{"check_id": "accessanalyzer.access-preview-detects-public-s3-bucket-policy", "deployments": [], "key": "accessanalyzer/access-preview-detects-public-s3-bucket-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAccessPreview", "accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAccessPreview", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListAccessPreviewFindings"], "path": "behavioral/accessanalyzer/check_access_preview_detects_public_s3_bucket_policy.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.access-preview-iam-role-external-trust-policy-finding", "deployments": [], "key": "accessanalyzer/access-preview-iam-role-external-trust-policy-finding", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAccessPreview", "accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAccessPreview", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListAccessPreviewFindings", "sts:GetCallerIdentity"], "path": "behavioral/accessanalyzer/check_access_preview_iam_role_external_trust_policy_finding.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.access-preview-private-bucket-policy-no-external-finding", "deployments": [], "key": "accessanalyzer/access-preview-private-bucket-policy-no-external-finding", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAccessPreview", "accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAccessPreview", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListAccessPreviewFindings", "sts:GetCallerIdentity"], "path": "behavioral/accessanalyzer/check_access_preview_private_bucket_policy_no_external_finding.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.analyzer-lifecycle-creating-to-active", "deployments": [], "key": "accessanalyzer/analyzer-lifecycle-creating-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListAnalyzers"], "path": "behavioral/accessanalyzer/check_analyzer_lifecycle_creating_to_active.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.apply-archive-rule-archives-real-finding-end-to-end", "deployments": [], "key": "accessanalyzer/apply-archive-rule-archives-real-finding-end-to-end", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:ApplyArchiveRule", "accessanalyzer:CreateAnalyzer", "accessanalyzer:CreateArchiveRule", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer", "accessanalyzer:GetFinding", "accessanalyzer:ListFindings", "accessanalyzer:StartResourceScan", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/accessanalyzer/check_apply_archive_rule_archives_real_finding_end_to_end.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.archive-rule-lifecycle-crud", "deployments": [], "key": "accessanalyzer/archive-rule-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:CreateArchiveRule", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:DeleteArchiveRule", "accessanalyzer:GetAnalyzer", "accessanalyzer:GetArchiveRule", "accessanalyzer:UpdateArchiveRule"], "path": "behavioral/accessanalyzer/check_archive_rule_lifecycle_crud.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.check-access-not-granted-fail-when-access-present", "deployments": [], "key": "accessanalyzer/check-access-not-granted-fail-when-access-present", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CheckAccessNotGranted"], "path": "behavioral/accessanalyzer/check_check_access_not_granted_fail_when_access_present.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.check-access-not-granted-invalid-parameter-rejected", "deployments": [], "key": "accessanalyzer/check-access-not-granted-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["accessanalyzer:CheckAccessNotGranted"], "path": "behavioral/accessanalyzer/check_check_access_not_granted_invalid_parameter_rejected.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.check-access-not-granted-pass-when-access-absent", "deployments": [], "key": "accessanalyzer/check-access-not-granted-pass-when-access-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CheckAccessNotGranted"], "path": "behavioral/accessanalyzer/check_check_access_not_granted_pass_when_access_absent.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.check-no-new-access-fail-expanded-scope", "deployments": [], "key": "accessanalyzer/check-no-new-access-fail-expanded-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CheckNoNewAccess"], "path": "behavioral/accessanalyzer/check_check_no_new_access_fail_expanded_scope.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.check-no-new-access-pass-same-scope", "deployments": [], "key": "accessanalyzer/check-no-new-access-pass-same-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CheckNoNewAccess"], "path": "behavioral/accessanalyzer/check_check_no_new_access_pass_same_scope.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.check-no-public-access-fail-public-policy", "deployments": [], "key": "accessanalyzer/check-no-public-access-fail-public-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CheckNoPublicAccess"], "path": "behavioral/accessanalyzer/check_check_no_public_access_fail_public_policy.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.check-no-public-access-pass-private-policy", "deployments": [], "key": "accessanalyzer/check-no-public-access-pass-private-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CheckNoPublicAccess"], "path": "behavioral/accessanalyzer/check_check_no_public_access_pass_private_policy.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.concurrent-duplicate-analyzer-creation-exactly-one-succeeds", "deployments": [], "key": "accessanalyzer/concurrent-duplicate-analyzer-creation-exactly-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:ListAnalyzers"], "path": "behavioral/accessanalyzer/check_concurrent_duplicate_analyzer_creation_exactly_one_succeeds.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.create-analyzer-duplicate-name-conflict-rejected", "deployments": [], "key": "accessanalyzer/create-analyzer-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer"], "path": "behavioral/accessanalyzer/check_create_analyzer_duplicate_name_conflict_rejected.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.create-service-linked-analyzer-access-denied-rejected", "deployments": [], "key": "accessanalyzer/create-service-linked-analyzer-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:CreateServiceLinkedAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListAnalyzers"], "path": "behavioral/accessanalyzer/check_create_service_linked_analyzer_access_denied_rejected.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.delete-analyzer-removes-resource", "deployments": [], "key": "accessanalyzer/delete-analyzer-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListAnalyzers", "accessanalyzer:TagResource"], "path": "behavioral/accessanalyzer/check_delete_analyzer_removes_resource.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.get-analyzer-nonexistent-name-rejected", "deployments": [], "key": "accessanalyzer/get-analyzer-nonexistent-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer"], "path": "behavioral/accessanalyzer/check_get_analyzer_nonexistent_name_rejected.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.list-analyzers-reflects-type-filter", "deployments": [], "key": "accessanalyzer/list-analyzers-reflects-type-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListAnalyzers"], "path": "behavioral/accessanalyzer/check_list_analyzers_reflects_type_filter.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.start-policy-generation-completes-then-cancel-terminal-rejected", "deployments": [], "key": "accessanalyzer/start-policy-generation-completes-then-cancel-terminal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["accessanalyzer:CancelPolicyGeneration", "accessanalyzer:GetGeneratedPolicy", "accessanalyzer:StartPolicyGeneration", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:StopLogging", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/accessanalyzer/check_start_policy_generation_completes_then_cancel_terminal_rejected.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "accessanalyzer/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListTagsForResource", "accessanalyzer:TagResource", "accessanalyzer:UntagResource"], "path": "behavioral/accessanalyzer/check_tag_resource_and_list_tags_roundtrip.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.update-analyzer-config-rejected-for-external-access-type", "deployments": [], "key": "accessanalyzer/update-analyzer-config-rejected-for-external-access-type", "labels": ["axis:rejection", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer", "accessanalyzer:UpdateAnalyzer"], "path": "behavioral/accessanalyzer/check_update_analyzer_config_rejected_for_external_access_type.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.update-analyzer-unused-access-configuration-persists", "deployments": [], "key": "accessanalyzer/update-analyzer-unused-access-configuration-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzer", "accessanalyzer:UpdateAnalyzer"], "path": "behavioral/accessanalyzer/check_update_analyzer_unused_access_configuration_persists.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.validate-policy-flags-wildcard-security-warning", "deployments": [], "key": "accessanalyzer/validate-policy-flags-wildcard-security-warning", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:ValidatePolicy"], "path": "behavioral/accessanalyzer/check_validate_policy_flags_wildcard_security_warning.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer.validate-policy-malformed-json-reported-as-error-finding", "deployments": [], "key": "accessanalyzer/validate-policy-malformed-json-reported-as-error-finding", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:ValidatePolicy"], "path": "behavioral/accessanalyzer/check_validate_policy_malformed_json_reported_as_error_finding.py", "service": "accessanalyzer"} {"check_id": "accessanalyzer__cloudformation.deploy-accessanalyzer-analyzer-and-archiverule-round-trip-then-child-and-stack-delete", "deployments": [], "key": "accessanalyzer__cloudformation/deploy-accessanalyzer-analyzer-and-archiverule-round-trip-then-child-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:GetAnalyzer", "accessanalyzer:GetArchiveRule", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/accessanalyzer__cloudformation/check_deploy_accessanalyzer_analyzer_and_archiverule_round_trip_then_child_and_stack_delete.py", "service": "accessanalyzer__cloudformation"} {"check_id": "accessanalyzer__cloudformation.deploy-accessanalyzer-analyzer-invalid-type-rejected-and-rolled-back", "deployments": [], "key": "accessanalyzer__cloudformation/deploy-accessanalyzer-analyzer-invalid-type-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["accessanalyzer:GetAnalyzer", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/accessanalyzer__cloudformation/check_deploy_accessanalyzer_analyzer_invalid_type_rejected_and_rolled_back.py", "service": "accessanalyzer__cloudformation"} {"check_id": "accessanalyzer__iam.obs-iam-3-external-trust-finding-resolves-when-trust-narrowed", "deployments": [], "key": "accessanalyzer__iam/obs-iam-3-external-trust-finding-resolves-when-trust-narrowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzedResource", "accessanalyzer:GetAnalyzer", "accessanalyzer:GetFinding", "accessanalyzer:ListFindings", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:UpdateAssumeRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/accessanalyzer__iam/check_obs_iam_3_external_trust_finding_resolves_when_trust_narrowed.py", "service": "accessanalyzer__iam"} {"check_id": "accessanalyzer__iam.obs-iam-3-service-principal-trust-yields-no-external-access-finding", "deployments": [], "key": "accessanalyzer__iam/obs-iam-3-service-principal-trust-yields-no-external-access-finding", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["accessanalyzer:CreateAnalyzer", "accessanalyzer:DeleteAnalyzer", "accessanalyzer:GetAnalyzedResource", "accessanalyzer:GetAnalyzer", "accessanalyzer:ListFindings", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole"], "path": "behavioral/accessanalyzer__iam/check_obs_iam_3_service_principal_trust_yields_no_external_access_finding.py", "service": "accessanalyzer__iam"} {"check_id": "account.account-name-concurrent-writes-atomic", "deployments": [], "key": "account/account-name-concurrent-writes-atomic", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:GetAccountInformation", "account:PutAccountName"], "path": "behavioral/account/check_account_name_concurrent_writes_atomic.py", "service": "account"} {"check_id": "account.account-name-pattern-boundary-accepted", "deployments": [], "key": "account/account-name-pattern-boundary-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:GetAccountInformation", "account:PutAccountName"], "path": "behavioral/account/check_account_name_pattern_boundary_accepted.py", "service": "account"} {"check_id": "account.account-name-put-get-round-trip", "deployments": [], "key": "account/account-name-put-get-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:GetAccountInformation", "account:PutAccountName"], "path": "behavioral/account/check_account_name_put_get_round_trip.py", "service": "account"} {"check_id": "account.account-name-too-long-rejected", "deployments": [], "key": "account/account-name-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["account:GetAccountInformation", "account:PutAccountName"], "path": "behavioral/account/check_account_name_too_long_rejected.py", "service": "account"} {"check_id": "account.alternate-contact-delete-removes-record", "deployments": [], "key": "account/alternate-contact-delete-removes-record", "labels": ["axis:rejection", "plane:control"], "operations": ["account:DeleteAlternateContact", "account:GetAlternateContact", "account:PutAlternateContact"], "path": "behavioral/account/check_alternate_contact_delete_removes_record.py", "service": "account"} {"check_id": "account.alternate-contact-not-found-when-unset", "deployments": [], "key": "account/alternate-contact-not-found-when-unset", "labels": ["axis:rejection", "plane:control"], "operations": ["account:DeleteAlternateContact", "account:GetAlternateContact", "account:PutAlternateContact"], "path": "behavioral/account/check_alternate_contact_not_found_when_unset.py", "service": "account"} {"check_id": "account.alternate-contact-overwrite-replaces-previous-value", "deployments": [], "key": "account/alternate-contact-overwrite-replaces-previous-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:DeleteAlternateContact", "account:GetAlternateContact", "account:PutAlternateContact"], "path": "behavioral/account/check_alternate_contact_overwrite_replaces_previous_value.py", "service": "account"} {"check_id": "account.alternate-contact-put-get-round-trip", "deployments": [], "key": "account/alternate-contact-put-get-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:DeleteAlternateContact", "account:GetAlternateContact", "account:PutAlternateContact"], "path": "behavioral/account/check_alternate_contact_put_get_round_trip.py", "service": "account"} {"check_id": "account.alternate-contact-type-independence", "deployments": [], "key": "account/alternate-contact-type-independence", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:DeleteAlternateContact", "account:GetAlternateContact", "account:PutAlternateContact"], "path": "behavioral/account/check_alternate_contact_type_independence.py", "service": "account"} {"check_id": "account.contact-information-missing-required-field-rejected", "deployments": [], "key": "account/contact-information-missing-required-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["account:GetContactInformation", "account:PutContactInformation"], "path": "behavioral/account/check_contact_information_missing_required_field_rejected.py", "service": "account"} {"check_id": "account.contact-information-optional-fields-round-trip", "deployments": [], "key": "account/contact-information-optional-fields-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:GetContactInformation", "account:PutContactInformation"], "path": "behavioral/account/check_contact_information_optional_fields_round_trip.py", "service": "account"} {"check_id": "account.contact-information-put-get-round-trip", "deployments": [], "key": "account/contact-information-put-get-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:GetContactInformation", "account:PutContactInformation"], "path": "behavioral/account/check_contact_information_put_get_round_trip.py", "service": "account"} {"check_id": "account.disable-region-enabled-by-default-conflict-rejected", "deployments": [], "key": "account/disable-region-enabled-by-default-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["account:DisableRegion", "account:GetRegionOptStatus"], "path": "behavioral/account/check_disable_region_enabled_by_default_conflict_rejected.py", "service": "account"} {"check_id": "account.get-account-information-fields-present", "deployments": [], "key": "account/get-account-information-fields-present", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:GetAccountInformation", "sts:GetCallerIdentity"], "path": "behavioral/account/check_get_account_information_fields_present.py", "service": "account"} {"check_id": "account.get-primary-email-update-status-never-started-not-found", "deployments": [], "key": "account/get-primary-email-update-status-never-started-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["account:GetAccountInformation", "account:GetPrimaryEmailUpdateStatus"], "path": "behavioral/account/check_get_primary_email_update_status_never_started_not_found.py", "service": "account"} {"check_id": "account.get-region-opt-status-matches-list-regions-consistency", "deployments": [], "key": "account/get-region-opt-status-matches-list-regions-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:GetRegionOptStatus", "account:ListRegions"], "path": "behavioral/account/check_get_region_opt_status_matches_list_regions_consistency.py", "service": "account"} {"check_id": "account.list-regions-filter-by-opt-status", "deployments": [], "key": "account/list-regions-filter-by-opt-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:ListRegions"], "path": "behavioral/account/check_list_regions_filter_by_opt_status.py", "service": "account"} {"check_id": "account.list-regions-invalid-max-results-rejected", "deployments": [], "key": "account/list-regions-invalid-max-results-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["account:ListRegions"], "path": "behavioral/account/check_list_regions_invalid_max_results_rejected.py", "service": "account"} {"check_id": "account.list-regions-pagination-consistency", "deployments": [], "key": "account/list-regions-pagination-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["account:ListRegions"], "path": "behavioral/account/check_list_regions_pagination_consistency.py", "service": "account"} {"check_id": "account.put-alternate-contact-invalid-email-rejected", "deployments": [], "key": "account/put-alternate-contact-invalid-email-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["account:DeleteAlternateContact", "account:GetAlternateContact", "account:PutAlternateContact"], "path": "behavioral/account/check_put_alternate_contact_invalid_email_rejected.py", "service": "account"} {"check_id": "account__apigatewayv2__events__lambda__stepfunctions.sfn-aws-sdk-resolves-distinct-services-with-prefixed-errors", "deployments": [], "key": "account__apigatewayv2__events__lambda__stepfunctions/sfn-aws-sdk-resolves-distinct-services-with-prefixed-errors", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/account__apigatewayv2__events__lambda__stepfunctions/check_sfn_aws_sdk_resolves_distinct_services_with_prefixed_errors.py", "service": "account__apigatewayv2__events__lambda__stepfunctions"} {"check_id": "acm-pca.api-passthrough-applies-only-under-a-passthrough-template", "deployments": [], "key": "acm-pca/api-passthrough-applies-only-under-a-passthrough-template", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_api_passthrough_applies_only_under_a_passthrough_template.py", "service": "acm-pca"} {"check_id": "acm-pca.audit-report-async-completion-managed", "deployments": [], "key": "acm-pca/audit-report-async-completion-managed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_audit_report_async_completion_managed.py", "service": "acm-pca"} {"check_id": "acm-pca.ca-arn-validation-precedes-resource-lookup", "deployments": [], "key": "acm-pca/ca-arn-validation-precedes-resource-lookup", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:ListCertificateAuthorities", "acm-pca:ListPermissions", "acm-pca:ListTags", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_ca_arn_validation_precedes_resource_lookup.py", "service": "acm-pca"} {"check_id": "acm-pca.ca-certificate-key-usage-forbids-server-auth-for-tls", "deployments": [], "key": "acm-pca/ca-certificate-key-usage-forbids-server-auth-for-tls", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_ca_certificate_key_usage_forbids_server_auth_for_tls.py", "service": "acm-pca"} {"check_id": "acm-pca.ca-csr-pem-structure-matches-requested-configuration", "deployments": [], "key": "acm-pca/ca-csr-pem-structure-matches-requested-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_ca_csr_pem_structure_matches_requested_configuration.py", "service": "acm-pca"} {"check_id": "acm-pca.ca-delete-restore-reactivates-pending-state", "deployments": [], "key": "acm-pca/ca-delete-restore-reactivates-pending-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_ca_delete_restore_reactivates_pending_state.py", "service": "acm-pca"} {"check_id": "acm-pca.ca-resource-policy-lockout-guard-classified", "deployments": [], "key": "acm-pca/ca-resource-policy-lockout-guard-classified", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:ListTags", "acm-pca:PutPolicy", "acm-pca:TagCertificateAuthority", "acm-pca:UntagCertificateAuthority", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_ca_resource_policy_lockout_guard_classified.py", "service": "acm-pca"} {"check_id": "acm-pca.ca-soft-delete-restore-window-and-refused-transitions", "deployments": [], "key": "acm-pca/ca-soft-delete-restore-window-and-refused-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:ListTags", "acm-pca:RestoreCertificateAuthority", "acm-pca:TagCertificateAuthority", "acm-pca:UntagCertificateAuthority", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_ca_soft_delete_restore_window_and_refused_transitions.py", "service": "acm-pca"} {"check_id": "acm-pca.certificate-mismatch-import-rejected", "deployments": [], "key": "acm-pca/certificate-mismatch-import-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_certificate_mismatch_import_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.certificate-signing-request-blob-preserved", "deployments": [], "key": "acm-pca/certificate-signing-request-blob-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_certificate_signing_request_blob_preserved.py", "service": "acm-pca"} {"check_id": "acm-pca.concurrent-delete-certificate-authority-race", "deployments": [], "key": "acm-pca/concurrent-delete-certificate-authority-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority"], "path": "behavioral/acm-pca/check_concurrent_delete_certificate_authority_race.py", "service": "acm-pca"} {"check_id": "acm-pca.concurrent-delete-policy-conflict", "deployments": [], "key": "acm-pca/concurrent-delete-policy-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_concurrent_delete_policy_conflict.py", "service": "acm-pca"} {"check_id": "acm-pca.concurrent-delete-policy-race-conflict", "deployments": [], "key": "acm-pca/concurrent-delete-policy-race-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:PutPolicy", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_concurrent_delete_policy_race_conflict.py", "service": "acm-pca"} {"check_id": "acm-pca.concurrent-duplicate-create-permission-rejected", "deployments": [], "key": "acm-pca/concurrent-duplicate-create-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreatePermission", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePermission", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:ListPermissions", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_concurrent_duplicate_create_permission_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.concurrent-issue-certificate-during-disable-race", "deployments": [], "key": "acm-pca/concurrent-issue-certificate-during-disable-race", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_concurrent_issue_certificate_during_disable_race.py", "service": "acm-pca"} {"check_id": "acm-pca.concurrent-put-policy-delete-policy-race", "deployments": [], "key": "acm-pca/concurrent-put-policy-delete-policy-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_concurrent_put_policy_delete_policy_race.py", "service": "acm-pca"} {"check_id": "acm-pca.concurrent-put-then-delete-policy-ordering", "deployments": [], "key": "acm-pca/concurrent-put-then-delete-policy-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_concurrent_put_then_delete_policy_ordering.py", "service": "acm-pca"} {"check_id": "acm-pca.create-and-describe-certificate-authority", "deployments": [], "key": "acm-pca/create-and-describe-certificate-authority", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority"], "path": "behavioral/acm-pca/check_create_and_describe_certificate_authority.py", "service": "acm-pca"} {"check_id": "acm-pca.create-audit-report-not-ready-fails", "deployments": [], "key": "acm-pca/create-audit-report-not-ready-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_create_audit_report_not_ready_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.create-ca-algorithm-pairing-rejected-and-classified", "deployments": [], "key": "acm-pca/create-ca-algorithm-pairing-rejected-and-classified", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_create_ca_algorithm_pairing_rejected_and_classified.py", "service": "acm-pca"} {"check_id": "acm-pca.create-ca-crl-configuration-requires-valid-bucket", "deployments": [], "key": "acm-pca/create-ca-crl-configuration-requires-valid-bucket", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_create_ca_crl_configuration_requires_valid_bucket.py", "service": "acm-pca"} {"check_id": "acm-pca.create-ca-idempotency-token-replays-same-authority", "deployments": [], "key": "acm-pca/create-ca-idempotency-token-replays-same-authority", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:ListCertificateAuthorities", "acm-pca:ListTags", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_create_ca_idempotency_token_replays_same_authority.py", "service": "acm-pca"} {"check_id": "acm-pca.create-ca-subject-field-contract-limits-rejected", "deployments": [], "key": "acm-pca/create-ca-subject-field-contract-limits-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_create_ca_subject_field_contract_limits_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.create-ca-tag-contract-limits-rejected", "deployments": [], "key": "acm-pca/create-ca-tag-contract-limits-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_create_ca_tag_contract_limits_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.create-certificate-authority-idempotency-token-mismatch", "deployments": [], "key": "acm-pca/create-certificate-authority-idempotency-token-mismatch", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:ListCertificateAuthorities", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_create_certificate_authority_idempotency_token_mismatch.py", "service": "acm-pca"} {"check_id": "acm-pca.create-certificate-authority-invalid-key-algorithm-rejected", "deployments": [], "key": "acm-pca/create-certificate-authority-invalid-key-algorithm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_create_certificate_authority_invalid_key_algorithm_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.create-certificate-authority-invalid-signing-algorithm", "deployments": [], "key": "acm-pca/create-certificate-authority-invalid-signing-algorithm", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_create_certificate_authority_invalid_signing_algorithm.py", "service": "acm-pca"} {"check_id": "acm-pca.create-certificate-authority-reserved-tag-fails", "deployments": [], "key": "acm-pca/create-certificate-authority-reserved-tag-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:ListCertificateAuthorities", "acm-pca:ListTags"], "path": "behavioral/acm-pca/check_create_certificate_authority_reserved_tag_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.crl-distribution-point-extension-configuration-governs-issued-cdp", "deployments": [], "key": "acm-pca/crl-distribution-point-extension-configuration-governs-issued-cdp", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_crl_distribution_point_extension_configuration_governs_issued_cdp.py", "service": "acm-pca"} {"check_id": "acm-pca.crl-generation-server-managed-publish", "deployments": [], "key": "acm-pca/crl-generation-server-managed-publish", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_crl_generation_server_managed_publish.py", "service": "acm-pca"} {"check_id": "acm-pca.crl-next-update-derives-from-expiration-in-days", "deployments": [], "key": "acm-pca/crl-next-update-derives-from-expiration-in-days", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_crl_next_update_derives_from_expiration_in_days.py", "service": "acm-pca"} {"check_id": "acm-pca.csr-pem-byte-stable-across-calls", "deployments": [], "key": "acm-pca/csr-pem-byte-stable-across-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificateAuthorityCsr"], "path": "behavioral/acm-pca/check_csr_pem_byte_stable_across_calls.py", "service": "acm-pca"} {"check_id": "acm-pca.csr-to-issued-certificate-pem-preserved", "deployments": [], "key": "acm-pca/csr-to-issued-certificate-pem-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_csr_to_issued_certificate_pem_preserved.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-active-ca-without-disable-rejected", "deployments": [], "key": "acm-pca/delete-active-ca-without-disable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_delete_active_ca_without_disable_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-certificate-authority-transitions-to-deleted", "deployments": [], "key": "acm-pca/delete-certificate-authority-transitions-to-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:TagCertificateAuthority"], "path": "behavioral/acm-pca/check_delete_certificate_authority_transitions_to_deleted.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-permission-not-found", "deployments": [], "key": "acm-pca/delete-permission-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreatePermission", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePermission", "acm-pca:ListPermissions"], "path": "behavioral/acm-pca/check_delete_permission_not_found.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-after-ca-deleted-invalid-state", "deployments": [], "key": "acm-pca/delete-policy-after-ca-deleted-invalid-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_after_ca_deleted_invalid_state.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-idempotent-no-existing-policy", "deployments": [], "key": "acm-pca/delete-policy-idempotent-no-existing-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_delete_policy_idempotent_no_existing_policy.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-invalid-arn", "deployments": [], "key": "acm-pca/delete-policy-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_invalid_arn.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-invalid-arn-rejected", "deployments": [], "key": "acm-pca/delete-policy-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_invalid_arn_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-malformed-arn-rejected", "deployments": [], "key": "acm-pca/delete-policy-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:PutPolicy", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_malformed_arn_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-no-policy-attached-not-found", "deployments": [], "key": "acm-pca/delete-policy-no-policy-attached-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:PutPolicy", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_no_policy_attached_not_found.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-on-disabled-ca-is-noop", "deployments": [], "key": "acm-pca/delete-policy-on-disabled-ca-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_on_disabled_ca_is_noop.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-on-pending-ca-is-noop", "deployments": [], "key": "acm-pca/delete-policy-on-pending-ca-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_on_pending_ca_is_noop.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-removes-policy-then-get-policy-not-found", "deployments": [], "key": "acm-pca/delete-policy-removes-policy-then-get-policy-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_removes_policy_then_get_policy_not_found.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-removes-resource-policy", "deployments": [], "key": "acm-pca/delete-policy-removes-resource-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:TagCertificateAuthority", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_removes_resource_policy.py", "service": "acm-pca"} {"check_id": "acm-pca.delete-policy-wrong-ca-state-fails", "deployments": [], "key": "acm-pca/delete-policy-wrong-ca-state-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_delete_policy_wrong_ca_state_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.deploy-certificate-authority-cfn-issues-certificate", "deployments": [], "key": "acm-pca/deploy-certificate-authority-cfn-issues-certificate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/acm-pca/check_deploy_certificate_authority_cfn_issues_certificate.py", "service": "acm-pca"} {"check_id": "acm-pca.deploy-certificate-authority-cfn-then-issue-certificate", "deployments": [], "key": "acm-pca/deploy-certificate-authority-cfn-then-issue-certificate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/acm-pca/check_deploy_certificate_authority_cfn_then_issue_certificate.py", "service": "acm-pca"} {"check_id": "acm-pca.deploy-cloudformation-ca-issues-certificate", "deployments": [], "key": "acm-pca/deploy-cloudformation-ca-issues-certificate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/acm-pca/check_deploy_cloudformation_ca_issues_certificate.py", "service": "acm-pca"} {"check_id": "acm-pca.describe-audit-report-not-found", "deployments": [], "key": "acm-pca/describe-audit-report-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_describe_audit_report_not_found.py", "service": "acm-pca"} {"check_id": "acm-pca.describe-certificate-authority-malformed-arn", "deployments": [], "key": "acm-pca/describe-certificate-authority-malformed-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:DescribeCertificateAuthority", "acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_describe_certificate_authority_malformed_arn.py", "service": "acm-pca"} {"check_id": "acm-pca.disable-enable-certificate-authority-transitions", "deployments": [], "key": "acm-pca/disable-enable-certificate-authority-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_disable_enable_certificate_authority_transitions.py", "service": "acm-pca"} {"check_id": "acm-pca.e2e-ca-lifecycle-issue-revoke-audit-teardown", "deployments": [], "key": "acm-pca/e2e-ca-lifecycle-issue-revoke-audit-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:ListCertificateAuthorities", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_e2e_ca_lifecycle_issue_revoke_audit_teardown.py", "service": "acm-pca"} {"check_id": "acm-pca.e2e-issue-and-revoke-certificate-reflected-in-audit-report", "deployments": [], "key": "acm-pca/e2e-issue-and-revoke-certificate-reflected-in-audit-report", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_e2e_issue_and_revoke_certificate_reflected_in_audit_report.py", "service": "acm-pca"} {"check_id": "acm-pca.e2e-root-ca-issue-revoke-audit-delete", "deployments": [], "key": "acm-pca/e2e-root-ca-issue-revoke-audit-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:ListCertificateAuthorities", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/acm-pca/check_e2e_root_ca_issue_revoke_audit_delete.py", "service": "acm-pca"} {"check_id": "acm-pca.get-ca-certificate-not-ready-fails", "deployments": [], "key": "acm-pca/get-ca-certificate-not-ready-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_get_ca_certificate_not_ready_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.get-certificate-not-ready-fails", "deployments": [], "key": "acm-pca/get-certificate-not-ready-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_get_certificate_not_ready_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.get-csr-not-ready-fails", "deployments": [], "key": "acm-pca/get-csr-not-ready-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificateAuthorityCsr"], "path": "behavioral/acm-pca/check_get_csr_not_ready_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.get-policy-not-found", "deployments": [], "key": "acm-pca/get-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:PutPolicy", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_get_policy_not_found.py", "service": "acm-pca"} {"check_id": "acm-pca.import-ca-certificate-base64-byte-preservation", "deployments": [], "key": "acm-pca/import-ca-certificate-base64-byte-preservation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_import_ca_certificate_base64_byte_preservation.py", "service": "acm-pca"} {"check_id": "acm-pca.import-ca-certificate-blob-byte-round-trip", "deployments": [], "key": "acm-pca/import-ca-certificate-blob-byte-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_import_ca_certificate_blob_byte_round_trip.py", "service": "acm-pca"} {"check_id": "acm-pca.import-ca-certificate-malformed-rejected", "deployments": [], "key": "acm-pca/import-ca-certificate-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_import_ca_certificate_malformed_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.import-ca-certificate-mismatched-key-rejected", "deployments": [], "key": "acm-pca/import-ca-certificate-mismatched-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_import_ca_certificate_mismatched_key_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.import-ca-certificate-oversized-chain-rejected", "deployments": [], "key": "acm-pca/import-ca-certificate-oversized-chain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_import_ca_certificate_oversized_chain_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.import-certificate-csr-key-mismatch-rejected", "deployments": [], "key": "acm-pca/import-certificate-csr-key-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_import_certificate_csr_key_mismatch_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.import-certificate-mismatch-rejected", "deployments": [], "key": "acm-pca/import-certificate-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_import_certificate_mismatch_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.import-certificate-on-deleted-ca-rejected", "deployments": [], "key": "acm-pca/import-certificate-on-deleted-ca-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_import_certificate_on_deleted_ca_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.imported-ca-certificate-chain-bytes-persist", "deployments": [], "key": "acm-pca/imported-ca-certificate-chain-bytes-persist", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_imported_ca_certificate_chain_bytes_persist.py", "service": "acm-pca"} {"check_id": "acm-pca.issue-certificate-idempotency-token-replays-same-certificate", "deployments": [], "key": "acm-pca/issue-certificate-idempotency-token-replays-same-certificate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_issue_certificate_idempotency_token_replays_same_certificate.py", "service": "acm-pca"} {"check_id": "acm-pca.issue-certificate-invalid-arn-rejected", "deployments": [], "key": "acm-pca/issue-certificate-invalid-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_issue_certificate_invalid_arn_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.issue-certificate-invalid-validity-period-rejected", "deployments": [], "key": "acm-pca/issue-certificate-invalid-validity-period-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_issue_certificate_invalid_validity_period_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.issue-certificate-malformed-csr-rejected", "deployments": [], "key": "acm-pca/issue-certificate-malformed-csr-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_issue_certificate_malformed_csr_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.issue-certificate-not-ready-fails", "deployments": [], "key": "acm-pca/issue-certificate-not-ready-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_issue_certificate_not_ready_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.issue-certificate-on-disabled-ca-rejected", "deployments": [], "key": "acm-pca/issue-certificate-on-disabled-ca-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_issue_certificate_on_disabled_ca_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.issue-certificate-validity-exceeds-ca-rejected", "deployments": [], "key": "acm-pca/issue-certificate-validity-exceeds-ca-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_issue_certificate_validity_exceeds_ca_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.issue-certificate-with-mismatched-signing-algorithm-rejected", "deployments": [], "key": "acm-pca/issue-certificate-with-mismatched-signing-algorithm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_issue_certificate_with_mismatched_signing_algorithm_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.issued-notbefore-is-backdated-unless-validity-not-before-is-given", "deployments": [], "key": "acm-pca/issued-notbefore-is-backdated-unless-validity-not-before-is-given", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_issued_notbefore_is_backdated_unless_validity_not_before_is_given.py", "service": "acm-pca"} {"check_id": "acm-pca.leaf-issued-past-ca-notafter-rejected", "deployments": [], "key": "acm-pca/leaf-issued-past-ca-notafter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_leaf_issued_past_ca_notafter_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.list-cas-invalid-next-token-is-not-silent-restart", "deployments": [], "key": "acm-pca/list-cas-invalid-next-token-is-not-silent-restart", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_list_cas_invalid_next_token_is_not_silent_restart.py", "service": "acm-pca"} {"check_id": "acm-pca.list-certificate-authorities-includes-created", "deployments": [], "key": "acm-pca/list-certificate-authorities-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_list_certificate_authorities_includes_created.py", "service": "acm-pca"} {"check_id": "acm-pca.list-certificate-authorities-invalid-next-token", "deployments": [], "key": "acm-pca/list-certificate-authorities-invalid-next-token", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:ListCertificateAuthorities"], "path": "behavioral/acm-pca/check_list_certificate_authorities_invalid_next_token.py", "service": "acm-pca"} {"check_id": "acm-pca.list-permissions-invalid-arn-rejected", "deployments": [], "key": "acm-pca/list-permissions-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:ListPermissions"], "path": "behavioral/acm-pca/check_list_permissions_invalid_arn_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.ocsp-configuration-adds-an-authority-information-access-responder", "deployments": [], "key": "acm-pca/ocsp-configuration-adds-an-authority-information-access-responder", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_ocsp_configuration_adds_an_authority_information_access_responder.py", "service": "acm-pca"} {"check_id": "acm-pca.permissions-create-list-delete", "deployments": [], "key": "acm-pca/permissions-create-list-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreatePermission", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePermission", "acm-pca:ListPermissions"], "path": "behavioral/acm-pca/check_permissions_create_list_delete.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-disallowed-action-rejected", "deployments": [], "key": "acm-pca/put-policy-disallowed-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_put_policy_disallowed_action_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-document-round-trip", "deployments": [], "key": "acm-pca/put-policy-document-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_put_policy_document_round_trip.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-document-unicode-round-trip", "deployments": [], "key": "acm-pca/put-policy-document-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_put_policy_document_unicode_round_trip.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-duplicate-conflicting-principal-blocked", "deployments": [], "key": "acm-pca/put-policy-duplicate-conflicting-principal-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_put_policy_duplicate_conflicting_principal_blocked.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-invalid-principal", "deployments": [], "key": "acm-pca/put-policy-invalid-principal", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:PutPolicy"], "path": "behavioral/acm-pca/check_put_policy_invalid_principal.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-invalid-principal-account-rejected", "deployments": [], "key": "acm-pca/put-policy-invalid-principal-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_put_policy_invalid_principal_account_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-json-unicode-round-trip", "deployments": [], "key": "acm-pca/put-policy-json-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_put_policy_json_unicode_round_trip.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-missing-permission-denied", "deployments": [], "key": "acm-pca/put-policy-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetPolicy", "acm-pca:PutPolicy", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_put_policy_missing_permission_denied.py", "service": "acm-pca"} {"check_id": "acm-pca.put-policy-then-delete-then-recreate-policy", "deployments": [], "key": "acm-pca/put-policy-then-delete-then-recreate-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DeletePolicy", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetPolicy", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:PutPolicy", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_put_policy_then_delete_then_recreate_policy.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-active-ca-invalid-state-fails", "deployments": [], "key": "acm-pca/restore-certificate-authority-active-ca-invalid-state-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_restore_certificate_authority_active_ca_invalid_state_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-active-ca-succeeds-as-noop", "deployments": [], "key": "acm-pca/restore-certificate-authority-active-ca-succeeds-as-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_restore_certificate_authority_active_ca_succeeds_as_noop.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-active-state-unchanged", "deployments": [], "key": "acm-pca/restore-certificate-authority-active-state-unchanged", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_restore_certificate_authority_active_state_unchanged.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-from-deleted-window", "deployments": [], "key": "acm-pca/restore-certificate-authority-from-deleted-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_restore_certificate_authority_from_deleted_window.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-from-deleted-within-window", "deployments": [], "key": "acm-pca/restore-certificate-authority-from-deleted-within-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_restore_certificate_authority_from_deleted_within_window.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-invalid-arn", "deployments": [], "key": "acm-pca/restore-certificate-authority-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_restore_certificate_authority_invalid_arn.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-malformed-arn-rejected", "deployments": [], "key": "acm-pca/restore-certificate-authority-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RestoreCertificateAuthority"], "path": "behavioral/acm-pca/check_restore_certificate_authority_malformed_arn_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-not-found", "deployments": [], "key": "acm-pca/restore-certificate-authority-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_restore_certificate_authority_not_found.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-unknown-arn-not-found", "deployments": [], "key": "acm-pca/restore-certificate-authority-unknown-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RestoreCertificateAuthority", "acm-pca:UpdateCertificateAuthority", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_restore_certificate_authority_unknown_arn_not_found.py", "service": "acm-pca"} {"check_id": "acm-pca.restore-certificate-authority-unknown-ca-not-found", "deployments": [], "key": "acm-pca/restore-certificate-authority-unknown-ca-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RestoreCertificateAuthority"], "path": "behavioral/acm-pca/check_restore_certificate_authority_unknown_ca_not_found.py", "service": "acm-pca"} {"check_id": "acm-pca.revoke-already-revoked-certificate-rejected", "deployments": [], "key": "acm-pca/revoke-already-revoked-certificate-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_revoke_already_revoked_certificate_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.revoke-certificate-already-revoked-conflict", "deployments": [], "key": "acm-pca/revoke-certificate-already-revoked-conflict", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_revoke_certificate_already_revoked_conflict.py", "service": "acm-pca"} {"check_id": "acm-pca.revoke-certificate-duplicate-revoke-already-processed", "deployments": [], "key": "acm-pca/revoke-certificate-duplicate-revoke-already-processed", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_revoke_certificate_duplicate_revoke_already_processed.py", "service": "acm-pca"} {"check_id": "acm-pca.revoke-certificate-not-ready-fails", "deployments": [], "key": "acm-pca/revoke-certificate-not-ready-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:RevokeCertificate"], "path": "behavioral/acm-pca/check_revoke_certificate_not_ready_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.revoke-certificate-triggers-server-side-crl-update", "deployments": [], "key": "acm-pca/revoke-certificate-triggers-server-side-crl-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_revoke_certificate_triggers_server_side_crl_update.py", "service": "acm-pca"} {"check_id": "acm-pca.revoke-root-ca-self-signed-certificate-rejected", "deployments": [], "key": "acm-pca/revoke-root-ca-self-signed-certificate-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_revoke_root_ca_self_signed_certificate_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.revoked-leaf-appears-in-audit-report-with-reason", "deployments": [], "key": "acm-pca/revoked-leaf-appears-in-audit-report-with-reason", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_revoked_leaf_appears_in_audit_report_with_reason.py", "service": "acm-pca"} {"check_id": "acm-pca.revoked-leaf-rejected-by-tls-client-checking-crl", "deployments": [], "key": "acm-pca/revoked-leaf-rejected-by-tls-client-checking-crl", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_revoked_leaf_rejected_by_tls_client_checking_crl.py", "service": "acm-pca"} {"check_id": "acm-pca.root-ca-activation-then-tls-handshake-with-issued-leaf", "deployments": [], "key": "acm-pca/root-ca-activation-then-tls-handshake-with-issued-leaf", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_root_ca_activation_then_tls_handshake_with_issued_leaf.py", "service": "acm-pca"} {"check_id": "acm-pca.server-side-audit-report-async-completion", "deployments": [], "key": "acm-pca/server-side-audit-report-async-completion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_server_side_audit_report_async_completion.py", "service": "acm-pca"} {"check_id": "acm-pca.server-side-ca-certificate-chain-auto-assembled", "deployments": [], "key": "acm-pca/server-side-ca-certificate-chain-auto-assembled", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_server_side_ca_certificate_chain_auto_assembled.py", "service": "acm-pca"} {"check_id": "acm-pca.server-side-crl-config-persisted-and-enforced", "deployments": [], "key": "acm-pca/server-side-crl-config-persisted-and-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:RevokeCertificate", "acm-pca:UpdateCertificateAuthority", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca/check_server_side_crl_config_persisted_and_enforced.py", "service": "acm-pca"} {"check_id": "acm-pca.subordinate-ca-chain-validates-two-levels-deep", "deployments": [], "key": "acm-pca/subordinate-ca-chain-validates-two-levels-deep", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_subordinate_ca_chain_validates_two_levels_deep.py", "service": "acm-pca"} {"check_id": "acm-pca.tag-certificate-authority-and-list-tags", "deployments": [], "key": "acm-pca/tag-certificate-authority-and-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListTags", "acm-pca:TagCertificateAuthority"], "path": "behavioral/acm-pca/check_tag_certificate_authority_and_list_tags.py", "service": "acm-pca"} {"check_id": "acm-pca.tag-certificate-authority-invalid-tag-key-rejected", "deployments": [], "key": "acm-pca/tag-certificate-authority-invalid-tag-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:ListTags", "acm-pca:TagCertificateAuthority", "acm-pca:UntagCertificateAuthority"], "path": "behavioral/acm-pca/check_tag_certificate_authority_invalid_tag_key_rejected.py", "service": "acm-pca"} {"check_id": "acm-pca.tag-certificate-authority-reserved-prefix-fails", "deployments": [], "key": "acm-pca/tag-certificate-authority-reserved-prefix-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListTags", "acm-pca:TagCertificateAuthority"], "path": "behavioral/acm-pca/check_tag_certificate_authority_reserved_prefix_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.tag-value-unicode-round-trip", "deployments": [], "key": "acm-pca/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:ListTags", "acm-pca:TagCertificateAuthority"], "path": "behavioral/acm-pca/check_tag_value_unicode_round_trip.py", "service": "acm-pca"} {"check_id": "acm-pca.untag-certificate-authority-removes-tag", "deployments": [], "key": "acm-pca/untag-certificate-authority-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:ListTags", "acm-pca:TagCertificateAuthority", "acm-pca:UntagCertificateAuthority"], "path": "behavioral/acm-pca/check_untag_certificate_authority_removes_tag.py", "service": "acm-pca"} {"check_id": "acm-pca.update-certificate-authority-not-ready-fails", "deployments": [], "key": "acm-pca/update-certificate-authority-not-ready-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_update_certificate_authority_not_ready_fails.py", "service": "acm-pca"} {"check_id": "acm-pca.validity-end-date-and-absolute-set-the-exact-notafter", "deployments": [], "key": "acm-pca/validity-end-date-and-absolute-set-the-exact-notafter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority"], "path": "behavioral/acm-pca/check_validity_end_date_and_absolute_set_the_exact_notafter.py", "service": "acm-pca"} {"check_id": "acm-pca__cloudformation.deploy-cfn-acmpca-permission-invalid-principal-rejected", "deployments": [], "key": "acm-pca__cloudformation/deploy-cfn-acmpca-permission-invalid-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/acm-pca__cloudformation/check_deploy_cfn_acmpca_permission_invalid_principal_rejected.py", "service": "acm-pca__cloudformation"} {"check_id": "acm-pca__cloudformation.deploy-cfn-acmpca-permission-provisions-and-revokes", "deployments": [], "key": "acm-pca__cloudformation/deploy-cfn-acmpca-permission-provisions-and-revokes", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificateAuthorityCsr", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/acm-pca__cloudformation/check_deploy_cfn_acmpca_permission_provisions_and_revokes.py", "service": "acm-pca__cloudformation"} {"check_id": "acm-pca__cloudwatch.issue-certificate-success-and-failure-counted-in-acmprivateca-namespace", "deployments": [], "key": "acm-pca__cloudwatch/issue-certificate-success-and-failure-counted-in-acmprivateca-namespace", "labels": ["axis:negative-delivery", "plane:control", "timing:real-time"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/acm-pca__cloudwatch/check_issue_certificate_success_and_failure_counted_in_acmprivateca_namespace.py", "service": "acm-pca__cloudwatch"} {"check_id": "acm-pca__iam.template-arn-condition-gates-a-real-signed-issue-certificate", "deployments": [], "key": "acm-pca__iam/template-arn-condition-gates-a-real-signed-issue-certificate", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/acm-pca__iam/check_template_arn_condition_gates_a_real_signed_issue_certificate.py", "service": "acm-pca__iam"} {"check_id": "acm.account-configuration-numeric-boundary-preserved", "deployments": [], "key": "acm/account-configuration-numeric-boundary-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:GetAccountConfiguration", "acm:PutAccountConfiguration"], "path": "behavioral/acm/check_account_configuration_numeric_boundary_preserved.py", "service": "acm"} {"check_id": "acm.acm-concurrent-reimport-into-one-arn-converges-to-a-single-serial", "deployments": [], "key": "acm/acm-concurrent-reimport-into-one-arn-converges-to-a-single-serial", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_acm_concurrent_reimport_into_one_arn_converges_to_a_single_serial.py", "service": "acm"} {"check_id": "acm.acm-imported-ec-p384-chain-completes-a-real-tls-handshake", "deployments": [], "key": "acm/acm-imported-ec-p384-chain-completes-a-real-tls-handshake", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_acm_imported_ec_p384_chain_completes_a_real_tls_handshake.py", "service": "acm"} {"check_id": "acm.acm-imported-pem-round-trips-to-byte-identical-der", "deployments": [], "key": "acm/acm-imported-pem-round-trips-to-byte-identical-der", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_acm_imported_pem_round_trips_to_byte_identical_der.py", "service": "acm"} {"check_id": "acm.acm-imported-rsa-chain-completes-a-real-tls-handshake", "deployments": [], "key": "acm/acm-imported-rsa-chain-completes-a-real-tls-handshake", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_acm_imported_rsa_chain_completes_a_real_tls_handshake.py", "service": "acm"} {"check_id": "acm.acm-reimport-into-an-amazon-issued-certificate-arn-rejected", "deployments": [], "key": "acm/acm-reimport-into-an-amazon-issued-certificate-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_acm_reimport_into_an_amazon_issued_certificate_arn_rejected.py", "service": "acm"} {"check_id": "acm.acm-reimport-with-a-mismatched-private-key-rejected", "deployments": [], "key": "acm/acm-reimport-with-a-mismatched-private-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_acm_reimport_with_a_mismatched_private_key_rejected.py", "service": "acm"} {"check_id": "acm.acm-serving-only-the-leaf-without-the-chain-fails-verification", "deployments": [], "key": "acm/acm-serving-only-the-leaf-without-the-chain-fails-verification", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_acm_serving_only_the_leaf_without_the_chain_fails_verification.py", "service": "acm"} {"check_id": "acm.acme-account-describe-list", "deployments": [], "key": "acm/acme-account-describe-list", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeAccounts", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_account_describe_list.py", "service": "acm"} {"check_id": "acm.acme-account-double-revoke-is-idempotent", "deployments": [], "key": "acm/acme-account-double-revoke-is-idempotent", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_account_double_revoke_is_idempotent.py", "service": "acm"} {"check_id": "acm.acme-account-identity-is-the-account-key-not-the-binding", "deployments": [], "key": "acm/acme-account-identity-is-the-account-key-not-the-binding", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeAccounts", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_account_identity_is_the_account_key_not_the_binding.py", "service": "acm"} {"check_id": "acm.acme-account-revoke-lifecycle", "deployments": [], "key": "acm/acme-account-revoke-lifecycle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeAccounts", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_account_revoke_lifecycle.py", "service": "acm"} {"check_id": "acm.acme-account-revoke-terminal-transition", "deployments": [], "key": "acm/acme-account-revoke-terminal-transition", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_account_revoke_terminal_transition.py", "service": "acm"} {"check_id": "acm.acme-account-revoke-transitions-state", "deployments": [], "key": "acm/acme-account-revoke-transitions-state", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_account_revoke_transitions_state.py", "service": "acm"} {"check_id": "acm.acme-contact-required-endpoint-refuses-a-registration-without-contact", "deployments": [], "key": "acm/acme-contact-required-endpoint-refuses-a-registration-without-contact", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeAccounts", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_contact_required_endpoint_refuses_a_registration_without_contact.py", "service": "acm"} {"check_id": "acm.acme-directory-serves-the-rfc8555-resource-map-and-single-use-nonces", "deployments": [], "key": "acm/acme-directory-serves-the-rfc8555-resource-map-and-single-use-nonces", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_acme_directory_serves_the_rfc8555_resource_map_and_single_use_nonces.py", "service": "acm"} {"check_id": "acm.acme-domain-validation-create-describe-list", "deployments": [], "key": "acm/acme-domain-validation-create-describe-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_acme_domain_validation_create_describe_list.py", "service": "acm"} {"check_id": "acm.acme-domain-validation-delete-then-describe-404", "deployments": [], "key": "acm/acme-domain-validation-delete-then-describe-404", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_acme_domain_validation_delete_then_describe_404.py", "service": "acm"} {"check_id": "acm.acme-domain-validation-duplicate-create-conflicts", "deployments": [], "key": "acm/acme-domain-validation-duplicate-create-conflicts", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_acme_domain_validation_duplicate_create_conflicts.py", "service": "acm"} {"check_id": "acm.acme-domain-validation-full-lifecycle", "deployments": [], "key": "acm/acme-domain-validation-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_acme_domain_validation_full_lifecycle.py", "service": "acm"} {"check_id": "acm.acme-domain-validation-nonexistent-endpoint-rejected", "deployments": [], "key": "acm/acme-domain-validation-nonexistent-endpoint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_acme_domain_validation_nonexistent_endpoint_rejected.py", "service": "acm"} {"check_id": "acm.acme-domain-validation-punycode-domain-persists", "deployments": [], "key": "acm/acme-domain-validation-punycode-domain-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_acme_domain_validation_punycode_domain_persists.py", "service": "acm"} {"check_id": "acm.acme-domain-validation-terminal-removal", "deployments": [], "key": "acm/acme-domain-validation-terminal-removal", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_acme_domain_validation_terminal_removal.py", "service": "acm"} {"check_id": "acm.acme-domain-validation-update-transitions-state", "deployments": [], "key": "acm/acme-domain-validation-update-transitions-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_acme_domain_validation_update_transitions_state.py", "service": "acm"} {"check_id": "acm.acme-endpoint-create-active-delete-404", "deployments": [], "key": "acm/acme-endpoint-create-active-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints"], "path": "behavioral/acm/check_acme_endpoint_create_active_delete_404.py", "service": "acm"} {"check_id": "acm.acme-endpoint-create-describe-list", "deployments": [], "key": "acm/acme-endpoint-create-describe-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints"], "path": "behavioral/acm/check_acme_endpoint_create_describe_list.py", "service": "acm"} {"check_id": "acm.acme-endpoint-delete-then-describe-404", "deployments": [], "key": "acm/acme-endpoint-delete-then-describe-404", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_delete_then_describe_404.py", "service": "acm"} {"check_id": "acm.acme-endpoint-directory-url-immutable-server-generated", "deployments": [], "key": "acm/acme-endpoint-directory-url-immutable-server-generated", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_directory_url_immutable_server_generated.py", "service": "acm"} {"check_id": "acm.acme-endpoint-directory-url-managed-by-service", "deployments": [], "key": "acm/acme-endpoint-directory-url-managed-by-service", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_directory_url_managed_by_service.py", "service": "acm"} {"check_id": "acm.acme-endpoint-directory-url-round-trip", "deployments": [], "key": "acm/acme-endpoint-directory-url-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_directory_url_round_trip.py", "service": "acm"} {"check_id": "acm.acme-endpoint-duplicate-create-conflicts", "deployments": [], "key": "acm/acme-endpoint-duplicate-create-conflicts", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_duplicate_create_conflicts.py", "service": "acm"} {"check_id": "acm.acme-endpoint-full-lifecycle", "deployments": [], "key": "acm/acme-endpoint-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_full_lifecycle.py", "service": "acm"} {"check_id": "acm.acme-endpoint-lifecycle-transitions", "deployments": [], "key": "acm/acme-endpoint-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_lifecycle_transitions.py", "service": "acm"} {"check_id": "acm.acme-endpoint-server-managed-directory-url", "deployments": [], "key": "acm/acme-endpoint-server-managed-directory-url", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_server_managed_directory_url.py", "service": "acm"} {"check_id": "acm.acme-endpoint-terminal-removal", "deployments": [], "key": "acm/acme-endpoint-terminal-removal", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints"], "path": "behavioral/acm/check_acme_endpoint_terminal_removal.py", "service": "acm"} {"check_id": "acm.acme-endpoint-unicode-tag-round-trip", "deployments": [], "key": "acm/acme-endpoint-unicode-tag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource", "acm:UntagResource"], "path": "behavioral/acm/check_acme_endpoint_unicode_tag_round_trip.py", "service": "acm"} {"check_id": "acm.acme-endpoint-update-modifies-config", "deployments": [], "key": "acm/acme-endpoint-update-modifies-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_acme_endpoint_update_modifies_config.py", "service": "acm"} {"check_id": "acm.acme-external-account-binding-full-lifecycle", "deployments": [], "key": "acm/acme-external-account-binding-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeExternalAccountBindings", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_external_account_binding_full_lifecycle.py", "service": "acm"} {"check_id": "acm.acme-external-account-binding-key-base64-round-trip", "deployments": [], "key": "acm/acme-external-account-binding-key-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_external_account_binding_key_base64_round_trip.py", "service": "acm"} {"check_id": "acm.acme-external-account-binding-lifecycle", "deployments": [], "key": "acm/acme-external-account-binding-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_acme_external_account_binding_lifecycle.py", "service": "acm"} {"check_id": "acm.acme-new-account-with-a-forged-eab-mac-rejected", "deployments": [], "key": "acm/acme-new-account-with-a-forged-eab-mac-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeAccounts", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_new_account_with_a_forged_eab_mac_rejected.py", "service": "acm"} {"check_id": "acm.acme-replayed-nonce-rejected-and-the-error-carries-a-usable-nonce", "deployments": [], "key": "acm/acme-replayed-nonce-rejected-and-the-error-carries-a-usable-nonce", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeAccounts", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_acme_replayed_nonce_rejected_and_the_error_carries_a_usable_nonce.py", "service": "acm"} {"check_id": "acm.add-tags-and-list-tags", "deployments": [], "key": "acm/add-tags-and-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate"], "path": "behavioral/acm/check_add_tags_and_list_tags.py", "service": "acm"} {"check_id": "acm.add-tags-exceeds-limit-fails", "deployments": [], "key": "acm/add-tags-exceeds-limit-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate"], "path": "behavioral/acm/check_add_tags_exceeds_limit_fails.py", "service": "acm"} {"check_id": "acm.add-tags-reserved-prefix-fails", "deployments": [], "key": "acm/add-tags-reserved-prefix-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate"], "path": "behavioral/acm/check_add_tags_reserved_prefix_fails.py", "service": "acm"} {"check_id": "acm.certificate-transparency-logging-preference-deprecated-field-ignored", "deployments": [], "key": "acm/certificate-transparency-logging-preference-deprecated-field-ignored", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:UpdateCertificateOptions"], "path": "behavioral/acm/check_certificate_transparency_logging_preference_deprecated_field_ignored.py", "service": "acm"} {"check_id": "acm.concurrent-add-tags-no-lost-updates", "deployments": [], "key": "acm/concurrent-add-tags-no-lost-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate"], "path": "behavioral/acm/check_concurrent_add_tags_no_lost_updates.py", "service": "acm"} {"check_id": "acm.concurrent-create-acme-external-account-binding-same-key-single-winner", "deployments": [], "key": "acm/concurrent-create-acme-external-account-binding-same-key-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:ListAcmeExternalAccountBindings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_concurrent_create_acme_external_account_binding_same_key_single_winner.py", "service": "acm"} {"check_id": "acm.concurrent-create-external-account-binding-duplicate-name-conflict", "deployments": [], "key": "acm/concurrent-create-external-account-binding-duplicate-name-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:ListAcmeExternalAccountBindings", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_concurrent_create_external_account_binding_duplicate_name_conflict.py", "service": "acm"} {"check_id": "acm.concurrent-revoke-acme-account-idempotent-terminal", "deployments": [], "key": "acm/concurrent-revoke-acme-account-idempotent-terminal", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_concurrent_revoke_acme_account_idempotent_terminal.py", "service": "acm"} {"check_id": "acm.concurrent-revoke-acme-account-single-winner", "deployments": [], "key": "acm/concurrent-revoke-acme-account-single-winner", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/acm/check_concurrent_revoke_acme_account_single_winner.py", "service": "acm"} {"check_id": "acm.concurrent-update-acme-domain-validation-conflict", "deployments": [], "key": "acm/concurrent-update-acme-domain-validation-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_concurrent_update_acme_domain_validation_conflict.py", "service": "acm"} {"check_id": "acm.concurrent-update-acme-domain-validation-no-lost-update", "deployments": [], "key": "acm/concurrent-update-acme-domain-validation-no-lost-update", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_concurrent_update_acme_domain_validation_no_lost_update.py", "service": "acm"} {"check_id": "acm.concurrent-update-acme-endpoint-conflict", "deployments": [], "key": "acm/concurrent-update-acme-endpoint-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_concurrent_update_acme_endpoint_conflict.py", "service": "acm"} {"check_id": "acm.concurrent-update-acme-endpoint-no-lost-updates", "deployments": [], "key": "acm/concurrent-update-acme-endpoint-no-lost-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_concurrent_update_acme_endpoint_no_lost_updates.py", "service": "acm"} {"check_id": "acm.create-acme-domain-validation-duplicate-conflict", "deployments": [], "key": "acm/create-acme-domain-validation-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_create_acme_domain_validation_duplicate_conflict.py", "service": "acm"} {"check_id": "acm.create-acme-domain-validation-duplicate-domain-rejected", "deployments": [], "key": "acm/create-acme-domain-validation-duplicate-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_create_acme_domain_validation_duplicate_domain_rejected.py", "service": "acm"} {"check_id": "acm.create-acme-domain-validation-duplicate-rejected", "deployments": [], "key": "acm/create-acme-domain-validation-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_create_acme_domain_validation_duplicate_rejected.py", "service": "acm"} {"check_id": "acm.create-acme-domain-validation-for-unowned-endpoint-denied", "deployments": [], "key": "acm/create-acme-domain-validation-for-unowned-endpoint-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_create_acme_domain_validation_for_unowned_endpoint_denied.py", "service": "acm"} {"check_id": "acm.create-acme-domain-validation-generates-server-managed-dns-record", "deployments": [], "key": "acm/create-acme-domain-validation-generates-server-managed-dns-record", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/acm/check_create_acme_domain_validation_generates_server_managed_dns_record.py", "service": "acm"} {"check_id": "acm.create-acme-domain-validation-malformed-domain-rejected", "deployments": [], "key": "acm/create-acme-domain-validation-malformed-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_create_acme_domain_validation_malformed_domain_rejected.py", "service": "acm"} {"check_id": "acm.create-acme-endpoint-duplicate-name-conflict", "deployments": [], "key": "acm/create-acme-endpoint-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_create_acme_endpoint_duplicate_name_conflict.py", "service": "acm"} {"check_id": "acm.create-acme-endpoint-then-describe-active", "deployments": [], "key": "acm/create-acme-endpoint-then-describe-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_create_acme_endpoint_then_describe_active.py", "service": "acm"} {"check_id": "acm.create-acme-external-account-binding-duplicate-key-conflict", "deployments": [], "key": "acm/create-acme-external-account-binding-duplicate-key-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_create_acme_external_account_binding_duplicate_key_conflict.py", "service": "acm"} {"check_id": "acm.create-acme-external-account-binding-unassumable-role-rejected", "deployments": [], "key": "acm/create-acme-external-account-binding-unassumable-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:ListAcmeExternalAccountBindings", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_create_acme_external_account_binding_unassumable_role_rejected.py", "service": "acm"} {"check_id": "acm.create-domain-validation-on-revoked-account-blocked", "deployments": [], "key": "acm/create-domain-validation-on-revoked-account-blocked", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/acm/check_create_domain_validation_on_revoked_account_blocked.py", "service": "acm"} {"check_id": "acm.delete-acme-domain-validation-while-validating-succeeds", "deployments": [], "key": "acm/delete-acme-domain-validation-while-validating-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/acm/check_delete_acme_domain_validation_while_validating_succeeds.py", "service": "acm"} {"check_id": "acm.delete-acme-endpoint-cascades-domain-validations", "deployments": [], "key": "acm/delete-acme-endpoint-cascades-domain-validations", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_delete_acme_endpoint_cascades_domain_validations.py", "service": "acm"} {"check_id": "acm.delete-acme-endpoint-cascades-through-active-domain-validation", "deployments": [], "key": "acm/delete-acme-endpoint-cascades-through-active-domain-validation", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_delete_acme_endpoint_cascades_through_active_domain_validation.py", "service": "acm"} {"check_id": "acm.delete-acme-endpoint-cascades-to-dependent-removal", "deployments": [], "key": "acm/delete-acme-endpoint-cascades-to-dependent-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_delete_acme_endpoint_cascades_to_dependent_removal.py", "service": "acm"} {"check_id": "acm.delete-acme-endpoint-in-use-conflict", "deployments": [], "key": "acm/delete-acme-endpoint-in-use-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_delete_acme_endpoint_in_use_conflict.py", "service": "acm"} {"check_id": "acm.delete-acme-endpoint-removes-resource", "deployments": [], "key": "acm/delete-acme-endpoint-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_delete_acme_endpoint_removes_resource.py", "service": "acm"} {"check_id": "acm.delete-acme-endpoint-with-active-validations-conflict", "deployments": [], "key": "acm/delete-acme-endpoint-with-active-validations-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_delete_acme_endpoint_with_active_validations_conflict.py", "service": "acm"} {"check_id": "acm.delete-acme-endpoint-with-validating-domain-validation-cascades", "deployments": [], "key": "acm/delete-acme-endpoint-with-validating-domain-validation-cascades", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_delete_acme_endpoint_with_validating_domain_validation_cascades.py", "service": "acm"} {"check_id": "acm.delete-acme-endpoint-without-permission-denied", "deployments": [], "key": "acm/delete-acme-endpoint-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_delete_acme_endpoint_without_permission_denied.py", "service": "acm"} {"check_id": "acm.delete-acme-external-account-binding-missing-idempotent-noop", "deployments": [], "key": "acm/delete-acme-external-account-binding-missing-idempotent-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_delete_acme_external_account_binding_missing_idempotent_noop.py", "service": "acm"} {"check_id": "acm.op-contract-delete-certificate", "deployments": [], "key": "acm/op-contract-delete-certificate", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_delete_certificate_contract.py", "service": "acm"} {"check_id": "acm.delete-certificate-removes-resource", "deployments": [], "key": "acm/delete-certificate-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_delete_certificate_removes_resource.py", "service": "acm"} {"check_id": "acm.deploy-acm-certificate-stack-behaves", "deployments": [], "key": "acm/deploy-acm-certificate-stack-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DescribeCertificate", "acm:ListTagsForCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource"], "path": "behavioral/acm/check_deploy_acm_certificate_stack_behaves.py", "service": "acm"} {"check_id": "acm.deploy-acme-endpoint-via-cloudformation-behaves", "deployments": [], "key": "acm/deploy-acme-endpoint-via-cloudformation-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints", "acm:UpdateAcmeEndpoint", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/acm/check_deploy_acme_endpoint_via_cloudformation_behaves.py", "service": "acm"} {"check_id": "acm.deploy-certificate-with-tags-via-cloudformation-tags-queryable", "deployments": [], "key": "acm/deploy-certificate-with-tags-via-cloudformation-tags-queryable", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "acm:DescribeCertificate", "acm:ListTagsForCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/acm/check_deploy_certificate_with_tags_via_cloudformation_tags_queryable.py", "service": "acm"} {"check_id": "acm.deploy-cfn-certificate-tags-propagate", "deployments": [], "key": "acm/deploy-cfn-certificate-tags-propagate", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DescribeCertificate", "acm:ListTagsForCertificate", "acm:ListTagsForResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/acm/check_deploy_cfn_certificate_tags_propagate.py", "service": "acm"} {"check_id": "acm.deploy-cfn-certificate-validation-behaves", "deployments": [], "key": "acm/deploy-cfn-certificate-validation-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DescribeCertificate", "acm:ListCertificates", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/acm/check_deploy_cfn_certificate_validation_behaves.py", "service": "acm"} {"check_id": "acm.deploy-stack-deletion-removes-certificate", "deployments": [], "key": "acm/deploy-stack-deletion-removes-certificate", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DescribeCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/acm/check_deploy_stack_deletion_removes_certificate.py", "service": "acm"} {"check_id": "acm.describe-acme-account-revoked-status-not-notfound", "deployments": [], "key": "acm/describe-acme-account-revoked-status-not-notfound", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_describe_acme_account_revoked_status_not_notfound.py", "service": "acm"} {"check_id": "acm.describe-acme-endpoint-nonexistent", "deployments": [], "key": "acm/describe-acme-endpoint-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_describe_acme_endpoint_nonexistent.py", "service": "acm"} {"check_id": "acm.describe-acme-endpoint-returns-server-managed-urls", "deployments": [], "key": "acm/describe-acme-endpoint-returns-server-managed-urls", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint"], "path": "behavioral/acm/check_describe_acme_endpoint_returns_server_managed_urls.py", "service": "acm"} {"check_id": "acm.describe-certificate-invalid-arn-rejected", "deployments": [], "key": "acm/describe-certificate-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_describe_certificate_invalid_arn_rejected.py", "service": "acm"} {"check_id": "acm.describe-certificate-malformed-arn-rejected", "deployments": [], "key": "acm/describe-certificate-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_describe_certificate_malformed_arn_rejected.py", "service": "acm"} {"check_id": "acm.describe-certificate-not-found", "deployments": [], "key": "acm/describe-certificate-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_describe_certificate_not_found.py", "service": "acm"} {"check_id": "acm.describe-nonexistent-acme-account-rejected", "deployments": [], "key": "acm/describe-nonexistent-acme-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DescribeAcmeAccount", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_describe_nonexistent_acme_account_rejected.py", "service": "acm"} {"check_id": "acm.describe-nonexistent-acme-domain-validation-rejected", "deployments": [], "key": "acm/describe-nonexistent-acme-domain-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_describe_nonexistent_acme_domain_validation_rejected.py", "service": "acm"} {"check_id": "acm.describe-nonexistent-acme-endpoint-rejected", "deployments": [], "key": "acm/describe-nonexistent-acme-endpoint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_describe_nonexistent_acme_endpoint_rejected.py", "service": "acm"} {"check_id": "acm.describe-nonexistent-acme-external-account-binding-rejected", "deployments": [], "key": "acm/describe-nonexistent-acme-external-account-binding-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_describe_nonexistent_acme_external_account_binding_rejected.py", "service": "acm"} {"check_id": "acm.dns-validated-certificate-issues-under-a-delegated-zone", "deployments": [], "key": "acm/dns-validated-certificate-issues-under-a-delegated-zone", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListCertificates", "acm:RequestCertificate", "route53:ChangeResourceRecordSets", "route53:GetChange", "route53:ListHostedZones", "route53:ListTagsForResource"], "path": "behavioral/acm/check_dns_validated_certificate_issues_under_a_delegated_zone.py", "service": "acm"} {"check_id": "acm.dns-validation-cname-collapses-wildcard-onto-its-apex-and-is-unique-per-san", "deployments": [], "key": "acm/dns-validation-cname-collapses-wildcard-onto-its-apex-and-is-unique-per-san", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListCertificateDomainValidations", "acm:RequestCertificate"], "path": "behavioral/acm/check_dns_validation_cname_collapses_wildcard_onto_its_apex_and_is_unique_per_san.py", "service": "acm"} {"check_id": "acm.dns-validation-withholds-issuance-when-the-zone-is-not-publicly-delegated", "deployments": [], "key": "acm/dns-validation-withholds-issuance-when-the-zone-is-not-publicly-delegated", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificateDomainValidations", "acm:ListCertificates", "acm:RequestCertificate", "route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/acm/check_dns_validation_withholds_issuance_when_the_zone_is_not_publicly_delegated.py", "service": "acm"} {"check_id": "acm.domain-validation-optional-field-empty-vs-absent-preserved", "deployments": [], "key": "acm/domain-validation-optional-field-empty-vs-absent-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_domain_validation_optional_field_empty_vs_absent_preserved.py", "service": "acm"} {"check_id": "acm.duplicate-domain-validation-rejected", "deployments": [], "key": "acm/duplicate-domain-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_duplicate_domain_validation_rejected.py", "service": "acm"} {"check_id": "acm.e2e-acme-endpoint-binding-revoke-flow", "deployments": [], "key": "acm/e2e-acme-endpoint-binding-revoke-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeDomainValidations", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_e2e_acme_endpoint_binding_revoke_flow.py", "service": "acm"} {"check_id": "acm.e2e-external-account-binding-credential-revocation-flow", "deployments": [], "key": "acm/e2e-external-account-binding-credential-revocation-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_e2e_external_account_binding_credential_revocation_flow.py", "service": "acm"} {"check_id": "acm.e2e-external-account-binding-issuance-flow", "deployments": [], "key": "acm/e2e-external-account-binding-issuance-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_e2e_external_account_binding_issuance_flow.py", "service": "acm"} {"check_id": "acm.e2e-import-export-delete-consequence-flow", "deployments": [], "key": "acm/e2e-import-export-delete-consequence-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ExportCertificate", "acm:GetCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_e2e_import_export_delete_consequence_flow.py", "service": "acm"} {"check_id": "acm.e2e-requested-certificate-stays-pending-independent-of-acme-endpoint", "deployments": [], "key": "acm/e2e-requested-certificate-stays-pending-independent-of-acme-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DeleteCertificate", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_e2e_requested_certificate_stays_pending_independent_of_acme_endpoint.py", "service": "acm"} {"check_id": "acm.eab-create-describe-list-credentials", "deployments": [], "key": "acm/eab-create-describe-list-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeExternalAccountBindings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_eab_create_describe_list_credentials.py", "service": "acm"} {"check_id": "acm.eab-credentials-are-server-generated-immutable", "deployments": [], "key": "acm/eab-credentials-are-server-generated-immutable", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_eab_credentials_are_server_generated_immutable.py", "service": "acm"} {"check_id": "acm.eab-credentials-server-generated-not-client-suppliable", "deployments": [], "key": "acm/eab-credentials-server-generated-not-client-suppliable", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_eab_credentials_server_generated_not_client_suppliable.py", "service": "acm"} {"check_id": "acm.eab-delete-then-describe-404", "deployments": [], "key": "acm/eab-delete-then-describe-404", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:ListAcmeExternalAccountBindings", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_eab_delete_then_describe_404.py", "service": "acm"} {"check_id": "acm.eab-hmac-key-base64-round-trip", "deployments": [], "key": "acm/eab-hmac-key-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_eab_hmac_key_base64_round_trip.py", "service": "acm"} {"check_id": "acm.eab-revoke-already-deleted-conflicts", "deployments": [], "key": "acm/eab-revoke-already-deleted-conflicts", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:ListAcmeExternalAccountBindings", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_eab_revoke_already_deleted_conflicts.py", "service": "acm"} {"check_id": "acm.op-contract-export-certificate", "deployments": [], "key": "acm/op-contract-export-certificate", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ExportCertificate", "acm:ImportCertificate", "acm:RequestCertificate", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_export_certificate_contract.py", "service": "acm"} {"check_id": "acm.export-certificate-key-matches-imported-cert", "deployments": [], "key": "acm/export-certificate-key-matches-imported-cert", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ExportCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_export_certificate_key_matches_imported_cert.py", "service": "acm"} {"check_id": "acm.export-certificate-on-imported-rejected", "deployments": [], "key": "acm/export-certificate-on-imported-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ExportCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_export_certificate_on_imported_rejected.py", "service": "acm"} {"check_id": "acm.export-non-exportable-certificate-types-rejected", "deployments": [], "key": "acm/export-non-exportable-certificate-types-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ExportCertificate", "acm:ImportCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_export_non_exportable_certificate_types_rejected.py", "service": "acm"} {"check_id": "acm.external-account-binding-create-revoke-lifecycle", "deployments": [], "key": "acm/external-account-binding-create-revoke-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_external_account_binding_create_revoke_lifecycle.py", "service": "acm"} {"check_id": "acm.external-account-binding-credentials-server-generated", "deployments": [], "key": "acm/external-account-binding-credentials-server-generated", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_external_account_binding_credentials_server_generated.py", "service": "acm"} {"check_id": "acm.get-acme-eab-credentials-not-found", "deployments": [], "key": "acm/get-acme-eab-credentials-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_get_acme_eab_credentials_not_found.py", "service": "acm"} {"check_id": "acm.get-acme-external-account-binding-credentials-cross-account-denied", "deployments": [], "key": "acm/get-acme-external-account-binding-credentials-cross-account-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_get_acme_external_account_binding_credentials_cross_account_denied.py", "service": "acm"} {"check_id": "acm.get-acme-external-account-binding-credentials-notfound-after-delete", "deployments": [], "key": "acm/get-acme-external-account-binding-credentials-notfound-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_get_acme_external_account_binding_credentials_notfound_after_delete.py", "service": "acm"} {"check_id": "acm.get-acme-external-account-binding-credentials-server-generated-hmac", "deployments": [], "key": "acm/get-acme-external-account-binding-credentials-server-generated-hmac", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/acm/check_get_acme_external_account_binding_credentials_server_generated_hmac.py", "service": "acm"} {"check_id": "acm.get-certificate-chain-present-only-for-chained-import", "deployments": [], "key": "acm/get-certificate-chain-present-only-for-chained-import", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_get_certificate_chain_present_only_for_chained_import.py", "service": "acm"} {"check_id": "acm.op-contract-get-certificate", "deployments": [], "key": "acm/op-contract-get-certificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_get_certificate_contract.py", "service": "acm"} {"check_id": "acm.get-certificate-pending-validation-fails", "deployments": [], "key": "acm/get-certificate-pending-validation-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_get_certificate_pending_validation_fails.py", "service": "acm"} {"check_id": "acm.get-certificate-returns-imported-pem", "deployments": [], "key": "acm/get-certificate-returns-imported-pem", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_get_certificate_returns_imported_pem.py", "service": "acm"} {"check_id": "acm.get-credentials-after-revoke-external-account-binding-blocked", "deployments": [], "key": "acm/get-credentials-after-revoke-external-account-binding-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/acm/check_get_credentials_after_revoke_external_account_binding_blocked.py", "service": "acm"} {"check_id": "acm.get-credentials-nonexistent-binding-rejected", "deployments": [], "key": "acm/get-credentials-nonexistent-binding-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_get_credentials_nonexistent_binding_rejected.py", "service": "acm"} {"check_id": "acm.get-eab-credentials-after-revoke-not-found", "deployments": [], "key": "acm/get-eab-credentials-after-revoke-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_get_eab_credentials_after_revoke_not_found.py", "service": "acm"} {"check_id": "acm.get-eab-credentials-cross-account-denied", "deployments": [], "key": "acm/get-eab-credentials-cross-account-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_get_eab_credentials_cross_account_denied.py", "service": "acm"} {"check_id": "acm.import-certificate-arn-mismatch-conflict", "deployments": [], "key": "acm/import-certificate-arn-mismatch-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_import_certificate_arn_mismatch_conflict.py", "service": "acm"} {"check_id": "acm.import-certificate-chain-byte-exact-round-trip", "deployments": [], "key": "acm/import-certificate-chain-byte-exact-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ExportCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_import_certificate_chain_byte_exact_round_trip.py", "service": "acm"} {"check_id": "acm.import-certificate-chain-not-matching-leaf-rejected", "deployments": [], "key": "acm/import-certificate-chain-not-matching-leaf-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_import_certificate_chain_not_matching_leaf_rejected.py", "service": "acm"} {"check_id": "acm.import-certificate-chain-roundtrip-fingerprint-match", "deployments": [], "key": "acm/import-certificate-chain-roundtrip-fingerprint-match", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_import_certificate_chain_roundtrip_fingerprint_match.py", "service": "acm"} {"check_id": "acm.import-certificate-ec-key-algorithm-derived", "deployments": [], "key": "acm/import-certificate-ec-key-algorithm-derived", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_import_certificate_ec_key_algorithm_derived.py", "service": "acm"} {"check_id": "acm.import-certificate-expired-rejected", "deployments": [], "key": "acm/import-certificate-expired-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_import_certificate_expired_rejected.py", "service": "acm"} {"check_id": "acm.import-certificate-issued-immediately", "deployments": [], "key": "acm/import-certificate-issued-immediately", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_import_certificate_issued_immediately.py", "service": "acm"} {"check_id": "acm.import-certificate-key-mismatch-fails", "deployments": [], "key": "acm/import-certificate-key-mismatch-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_import_certificate_key_mismatch_fails.py", "service": "acm"} {"check_id": "acm.import-certificate-pem-byte-exact-round-trip", "deployments": [], "key": "acm/import-certificate-pem-byte-exact-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_import_certificate_pem_byte_exact_round_trip.py", "service": "acm"} {"check_id": "acm.import-certificate-san-extension-parsed-from-der", "deployments": [], "key": "acm/import-certificate-san-extension-parsed-from-der", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_import_certificate_san_extension_parsed_from_der.py", "service": "acm"} {"check_id": "acm.import-certificate-sets-issued", "deployments": [], "key": "acm/import-certificate-sets-issued", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_import_certificate_sets_issued.py", "service": "acm"} {"check_id": "acm.import-certificate-unsupported-key-size-rejected", "deployments": [], "key": "acm/import-certificate-unsupported-key-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_import_certificate_unsupported_key_size_rejected.py", "service": "acm"} {"check_id": "acm.list-acme-accounts-nonexistent-endpoint", "deployments": [], "key": "acm/list-acme-accounts-nonexistent-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeAccounts", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_list_acme_accounts_nonexistent_endpoint.py", "service": "acm"} {"check_id": "acm.list-acme-accounts-pagination-server-enforced", "deployments": [], "key": "acm/list-acme-accounts-pagination-server-enforced", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:ListAcmeAccounts", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/acm/check_list_acme_accounts_pagination_server_enforced.py", "service": "acm"} {"check_id": "acm.list-acme-domain-validations-excludes-other-endpoint-detail", "deployments": [], "key": "acm/list-acme-domain-validations-excludes-other-endpoint-detail", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_list_acme_domain_validations_excludes_other_endpoint_detail.py", "service": "acm"} {"check_id": "acm.list-acme-domain-validations-nonexistent-endpoint", "deployments": [], "key": "acm/list-acme-domain-validations-nonexistent-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_list_acme_domain_validations_nonexistent_endpoint.py", "service": "acm"} {"check_id": "acm.list-acme-domain-validations-reflects-lifecycle", "deployments": [], "key": "acm/list-acme-domain-validations-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeDomainValidations"], "path": "behavioral/acm/check_list_acme_domain_validations_reflects_lifecycle.py", "service": "acm"} {"check_id": "acm.list-acme-endpoints-reflects-created", "deployments": [], "key": "acm/list-acme-endpoints-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints"], "path": "behavioral/acm/check_list_acme_endpoints_reflects_created.py", "service": "acm"} {"check_id": "acm.list-acme-endpoints-reflects-created-and-deleted", "deployments": [], "key": "acm/list-acme-endpoints-reflects-created-and-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints"], "path": "behavioral/acm/check_list_acme_endpoints_reflects_created_and_deleted.py", "service": "acm"} {"check_id": "acm.list-acme-endpoints-shape", "deployments": [], "key": "acm/list-acme-endpoints-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:ListAcmeEndpoints"], "path": "behavioral/acm/check_list_acme_endpoints_shape.py", "service": "acm"} {"check_id": "acm.list-acme-external-account-bindings-reflects-lifecycle", "deployments": [], "key": "acm/list-acme-external-account-bindings-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:ListAcmeExternalAccountBindings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_list_acme_external_account_bindings_reflects_lifecycle.py", "service": "acm"} {"check_id": "acm.list-certificate-domain-validations-invalid-args-rejected", "deployments": [], "key": "acm/list-certificate-domain-validations-invalid-args-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ListCertificateDomainValidations", "acm:RequestCertificate"], "path": "behavioral/acm/check_list_certificate_domain_validations_invalid_args_rejected.py", "service": "acm"} {"check_id": "acm.list-certificate-domain-validations-malformed-arn-rejected", "deployments": [], "key": "acm/list-certificate-domain-validations-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ListCertificateDomainValidations", "acm:RequestCertificate"], "path": "behavioral/acm/check_list_certificate_domain_validations_malformed_arn_rejected.py", "service": "acm"} {"check_id": "acm.list-certificate-domain-validations-nonexistent-cert-not-found", "deployments": [], "key": "acm/list-certificate-domain-validations-nonexistent-cert-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ListCertificateDomainValidations", "acm:RequestCertificate", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_list_certificate_domain_validations_nonexistent_cert_not_found.py", "service": "acm"} {"check_id": "acm.list-certificate-domain-validations-reflects-pending", "deployments": [], "key": "acm/list-certificate-domain-validations-reflects-pending", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListCertificateDomainValidations", "acm:RequestCertificate"], "path": "behavioral/acm/check_list_certificate_domain_validations_reflects_pending.py", "service": "acm"} {"check_id": "acm.list-certificate-domain-validations-returns-options", "deployments": [], "key": "acm/list-certificate-domain-validations-returns-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListCertificateDomainValidations", "acm:RequestCertificate"], "path": "behavioral/acm/check_list_certificate_domain_validations_returns_options.py", "service": "acm"} {"check_id": "acm.list-certificates-filter-by-status", "deployments": [], "key": "acm/list-certificates-filter-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_list_certificates_filter_by_status.py", "service": "acm"} {"check_id": "acm.list-certificates-filters-by-status", "deployments": [], "key": "acm/list-certificates-filters-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_list_certificates_filters_by_status.py", "service": "acm"} {"check_id": "acm.list-certificates-key-type-filter-excludes-others", "deployments": [], "key": "acm/list-certificates-key-type-filter-excludes-others", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_list_certificates_key_type_filter_excludes_others.py", "service": "acm"} {"check_id": "acm.list-certificates-pagination-consistent-with-describe", "deployments": [], "key": "acm/list-certificates-pagination-consistent-with-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_list_certificates_pagination_consistent_with_describe.py", "service": "acm"} {"check_id": "acm.list-certificates-pagination-next-token-exactness", "deployments": [], "key": "acm/list-certificates-pagination-next-token-exactness", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_list_certificates_pagination_next_token_exactness.py", "service": "acm"} {"check_id": "acm.list-certificates-reflects-created", "deployments": [], "key": "acm/list-certificates-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_list_certificates_reflects_created.py", "service": "acm"} {"check_id": "acm.list-certificates-summary-fields-populated", "deployments": [], "key": "acm/list-certificates-summary-fields-populated", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_list_certificates_summary_fields_populated.py", "service": "acm"} {"check_id": "acm.list-external-account-bindings-reflects-created", "deployments": [], "key": "acm/list-external-account-bindings-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:ListAcmeExternalAccountBindings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_list_external_account_bindings_reflects_created.py", "service": "acm"} {"check_id": "acm.list-tags-for-resource-malformed-arn-rejected", "deployments": [], "key": "acm/list-tags-for-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_list_tags_for_resource_malformed_arn_rejected.py", "service": "acm"} {"check_id": "acm.list-tags-for-resource-rejects-certificate-arn", "deployments": [], "key": "acm/list-tags-for-resource-rejects-certificate-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate", "acm:ListTagsForResource", "acm:TagResource"], "path": "behavioral/acm/check_list_tags_for_resource_rejects_certificate_arn.py", "service": "acm"} {"check_id": "acm.op-contract-addTagsToCertificate", "deployments": [], "key": "acm/op-contract-addTagsToCertificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListTagsForCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_op_contract_add_tags_to_certificate.py", "service": "acm"} {"check_id": "acm.op-contract-describeCertificate", "deployments": [], "key": "acm/op-contract-describeCertificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_op_contract_describe_certificate.py", "service": "acm"} {"check_id": "acm.op-contract-get-account-configuration", "deployments": [], "key": "acm/op-contract-get-account-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:GetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_op_contract_get_account_configuration.py", "service": "acm"} {"check_id": "acm.op-contract-import-certificate", "deployments": [], "key": "acm/op-contract-import-certificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_op_contract_import_certificate.py", "service": "acm"} {"check_id": "acm.op-contract-listCertificates", "deployments": [], "key": "acm/op-contract-listCertificates", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_op_contract_list_certificates.py", "service": "acm"} {"check_id": "acm.op-contract-listTagsForCertificate", "deployments": [], "key": "acm/op-contract-listTagsForCertificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListTagsForCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_op_contract_list_tags_for_certificate.py", "service": "acm"} {"check_id": "acm.op-contract-put-account-configuration", "deployments": [], "key": "acm/op-contract-put-account-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:GetAccountConfiguration", "acm:PutAccountConfiguration", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_op_contract_put_account_configuration.py", "service": "acm"} {"check_id": "acm.op-contract-removeTagsFromCertificate", "deployments": [], "key": "acm/op-contract-removeTagsFromCertificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListTagsForCertificate", "acm:RemoveTagsFromCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_op_contract_remove_tags_from_certificate.py", "service": "acm"} {"check_id": "acm.op-contract-renew-certificate", "deployments": [], "key": "acm/op-contract-renew-certificate", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RenewCertificate", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_op_contract_renew_certificate.py", "service": "acm"} {"check_id": "acm.op-contract-resend-validation-email", "deployments": [], "key": "acm/op-contract-resend-validation-email", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:ResendValidationEmail"], "path": "behavioral/acm/check_op_contract_resend_validation_email.py", "service": "acm"} {"check_id": "acm.op-contract-revoke-certificate", "deployments": [], "key": "acm/op-contract-revoke-certificate", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RevokeCertificate", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_op_contract_revoke_certificate.py", "service": "acm"} {"check_id": "acm.op-contract-update-certificate-options", "deployments": [], "key": "acm/op-contract-update-certificate-options", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:UpdateCertificateOptions"], "path": "behavioral/acm/check_op_contract_update_certificate_options.py", "service": "acm"} {"check_id": "acm.put-account-configuration-concurrent-update-conflicts", "deployments": [], "key": "acm/put-account-configuration-concurrent-update-conflicts", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:GetAccountConfiguration", "acm:PutAccountConfiguration"], "path": "behavioral/acm/check_put_account_configuration_concurrent_update_conflicts.py", "service": "acm"} {"check_id": "acm.put-account-configuration-expiry-events-roundtrip", "deployments": [], "key": "acm/put-account-configuration-expiry-events-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:GetAccountConfiguration", "acm:PutAccountConfiguration"], "path": "behavioral/acm/check_put_account_configuration_expiry_events_roundtrip.py", "service": "acm"} {"check_id": "acm.put-account-configuration-out-of-range-days-fails", "deployments": [], "key": "acm/put-account-configuration-out-of-range-days-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:GetAccountConfiguration", "acm:PutAccountConfiguration"], "path": "behavioral/acm/check_put_account_configuration_out_of_range_days_fails.py", "service": "acm"} {"check_id": "acm.reimport-certificate-different-domain-replaces-identity", "deployments": [], "key": "acm/reimport-certificate-different-domain-replaces-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_reimport_certificate_different_domain_replaces_identity.py", "service": "acm"} {"check_id": "acm.reimport-certificate-keypair-mismatch-rejected", "deployments": [], "key": "acm/reimport-certificate-keypair-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_reimport_certificate_keypair_mismatch_rejected.py", "service": "acm"} {"check_id": "acm.reimport-certificate-preserves-arn-updates-content", "deployments": [], "key": "acm/reimport-certificate-preserves-arn-updates-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_reimport_certificate_preserves_arn_updates_content.py", "service": "acm"} {"check_id": "acm.reimport-certificate-public-key-mismatch-rejected", "deployments": [], "key": "acm/reimport-certificate-public-key-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_reimport_certificate_public_key_mismatch_rejected.py", "service": "acm"} {"check_id": "acm.reimport-certificate-same-arn-updates-content", "deployments": [], "key": "acm/reimport-certificate-same-arn-updates-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:GetCertificate", "acm:ImportCertificate"], "path": "behavioral/acm/check_reimport_certificate_same_arn_updates_content.py", "service": "acm"} {"check_id": "acm.remove-nonexistent-tag-is-noop", "deployments": [], "key": "acm/remove-nonexistent-tag-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate", "acm:RemoveTagsFromCertificate"], "path": "behavioral/acm/check_remove_nonexistent_tag_is_noop.py", "service": "acm"} {"check_id": "acm.remove-tags-from-certificate", "deployments": [], "key": "acm/remove-tags-from-certificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate", "acm:RemoveTagsFromCertificate"], "path": "behavioral/acm/check_remove_tags_from_certificate.py", "service": "acm"} {"check_id": "acm.renew-certificate-concurrent-request-in-progress", "deployments": [], "key": "acm/renew-certificate-concurrent-request-in-progress", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RenewCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_renew_certificate_concurrent_request_in_progress.py", "service": "acm"} {"check_id": "acm.renew-certificate-ineligible-fails", "deployments": [], "key": "acm/renew-certificate-ineligible-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RenewCertificate"], "path": "behavioral/acm/check_renew_certificate_ineligible_fails.py", "service": "acm"} {"check_id": "acm.request-certificate-default-ct-logging-enabled", "deployments": [], "key": "acm/request-certificate-default-ct-logging-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_default_ct_logging_enabled.py", "service": "acm"} {"check_id": "acm.request-certificate-dns-validation-resource-record", "deployments": [], "key": "acm/request-certificate-dns-validation-resource-record", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_dns_validation_resource_record.py", "service": "acm"} {"check_id": "acm.request-certificate-dns-validation-token-shape", "deployments": [], "key": "acm/request-certificate-dns-validation-token-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_dns_validation_token_shape.py", "service": "acm"} {"check_id": "acm.request-certificate-domain-validation-mismatch", "deployments": [], "key": "acm/request-certificate-domain-validation-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_domain_validation_mismatch.py", "service": "acm"} {"check_id": "acm.request-certificate-domain-validation-options", "deployments": [], "key": "acm/request-certificate-domain-validation-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_domain_validation_options.py", "service": "acm"} {"check_id": "acm.request-certificate-email-validation-domain-options", "deployments": [], "key": "acm/request-certificate-email-validation-domain-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_email_validation_domain_options.py", "service": "acm"} {"check_id": "acm.request-certificate-idempotency-token", "deployments": [], "key": "acm/request-certificate-idempotency-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_idempotency_token.py", "service": "acm"} {"check_id": "acm.request-certificate-idempotency-token-charset", "deployments": [], "key": "acm/request-certificate-idempotency-token-charset", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_idempotency_token_charset.py", "service": "acm"} {"check_id": "acm.request-certificate-options-reflected", "deployments": [], "key": "acm/request-certificate-options-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_options_reflected.py", "service": "acm"} {"check_id": "acm.request-certificate-pending-validation", "deployments": [], "key": "acm/request-certificate-pending-validation", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_pending_validation.py", "service": "acm"} {"check_id": "acm.request-certificate-too-many-tags-rejected", "deployments": [], "key": "acm/request-certificate-too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ListCertificates", "acm:ListTagsForCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_too_many_tags_rejected.py", "service": "acm"} {"check_id": "acm.request-certificate-wildcard-position-rejected", "deployments": [], "key": "acm/request-certificate-wildcard-position-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListCertificates", "acm:RequestCertificate"], "path": "behavioral/acm/check_request_certificate_wildcard_position_rejected.py", "service": "acm"} {"check_id": "acm.resend-validation-email-already-issued-rejected", "deployments": [], "key": "acm/resend-validation-email-already-issued-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RequestCertificate", "acm:ResendValidationEmail"], "path": "behavioral/acm/check_resend_validation_email_already_issued_rejected.py", "service": "acm"} {"check_id": "acm.resend-validation-email-domain-mismatch", "deployments": [], "key": "acm/resend-validation-email-domain-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:ResendValidationEmail"], "path": "behavioral/acm/check_resend_validation_email_domain_mismatch.py", "service": "acm"} {"check_id": "acm.resend-validation-email-state-gated", "deployments": [], "key": "acm/resend-validation-email-state-gated", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RequestCertificate", "acm:ResendValidationEmail"], "path": "behavioral/acm/check_resend_validation_email_state_gated.py", "service": "acm"} {"check_id": "acm.resend-validation-email-wrong-domain-rejected", "deployments": [], "key": "acm/resend-validation-email-wrong-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:ResendValidationEmail"], "path": "behavioral/acm/check_resend_validation_email_wrong_domain_rejected.py", "service": "acm"} {"check_id": "acm.revoke-acme-account-reaches-terminal-state", "deployments": [], "key": "acm/revoke-acme-account-reaches-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/acm/check_revoke_acme_account_reaches_terminal_state.py", "service": "acm"} {"check_id": "acm.revoke-acme-account-sets-terminal-state", "deployments": [], "key": "acm/revoke-acme-account-sets-terminal-state", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_revoke_acme_account_sets_terminal_state.py", "service": "acm"} {"check_id": "acm.revoke-acme-external-account-binding-twice-conflicts", "deployments": [], "key": "acm/revoke-acme-external-account-binding-twice-conflicts", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_revoke_acme_external_account_binding_twice_conflicts.py", "service": "acm"} {"check_id": "acm.revoke-already-revoked-acme-account-is-idempotent", "deployments": [], "key": "acm/revoke-already-revoked-acme-account-is-idempotent", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_revoke_already_revoked_acme_account_is_idempotent.py", "service": "acm"} {"check_id": "acm.revoke-certificate-already-revoked-conflicts", "deployments": [], "key": "acm/revoke-certificate-already-revoked-conflicts", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RevokeCertificate"], "path": "behavioral/acm/check_revoke_certificate_already_revoked_conflicts.py", "service": "acm"} {"check_id": "acm.revoke-certificate-ineligible-type-fails", "deployments": [], "key": "acm/revoke-certificate-ineligible-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RevokeCertificate"], "path": "behavioral/acm/check_revoke_certificate_ineligible_type_fails.py", "service": "acm"} {"check_id": "acm.revoke-certificate-pending-validation-rejected", "deployments": [], "key": "acm/revoke-certificate-pending-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:RevokeCertificate", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_revoke_certificate_pending_validation_rejected.py", "service": "acm"} {"check_id": "acm.revoke-certificate-unexported-import-fails", "deployments": [], "key": "acm/revoke-certificate-unexported-import-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RevokeCertificate"], "path": "behavioral/acm/check_revoke_certificate_unexported_import_fails.py", "service": "acm"} {"check_id": "acm.revoke-external-account-binding-twice-preserves-revoked-at", "deployments": [], "key": "acm/revoke-external-account-binding-twice-preserves-revoked-at", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_revoke_external_account_binding_twice_preserves_revoked_at.py", "service": "acm"} {"check_id": "acm.revoked-eab-credentials-access-rejected", "deployments": [], "key": "acm/revoked-eab-credentials-access-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeEndpoint", "acm:DescribeAcmeExternalAccountBinding", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeExternalAccountBinding", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/acm/check_revoked_eab_credentials_access_rejected.py", "service": "acm"} {"check_id": "acm.search-certificates-filters-by-status-server-side", "deployments": [], "key": "acm/search-certificates-filters-by-status-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:RequestCertificate", "acm:SearchCertificates"], "path": "behavioral/acm/check_search_certificates_filters_by_status_server_side.py", "service": "acm"} {"check_id": "acm.search-certificates-finds-by-arn", "deployments": [], "key": "acm/search-certificates-finds-by-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "acm:SearchCertificates"], "path": "behavioral/acm/check_search_certificates_finds_by_arn.py", "service": "acm"} {"check_id": "acm.search-certificates-invalid-filter-rejected", "deployments": [], "key": "acm/search-certificates-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:SearchCertificates", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_search_certificates_invalid_filter_rejected.py", "service": "acm"} {"check_id": "acm.search-certificates-reflects-server-side-index", "deployments": [], "key": "acm/search-certificates-reflects-server-side-index", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListCertificates", "acm:RequestCertificate", "acm:SearchCertificates"], "path": "behavioral/acm/check_search_certificates_reflects_server_side_index.py", "service": "acm"} {"check_id": "acm.search-certificates-shape", "deployments": [], "key": "acm/search-certificates-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "acm:SearchCertificates"], "path": "behavioral/acm/check_search_certificates_shape.py", "service": "acm"} {"check_id": "acm.tag-resource-add-and-list", "deployments": [], "key": "acm/tag-resource-add-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ListTagsForCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_tag_resource_add_and_list.py", "service": "acm"} {"check_id": "acm.tag-resource-exceeds-quota-rejected", "deployments": [], "key": "acm/tag-resource-exceeds-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource"], "path": "behavioral/acm/check_tag_resource_exceeds_quota_rejected.py", "service": "acm"} {"check_id": "acm.tag-resource-generic-lifecycle", "deployments": [], "key": "acm/tag-resource-generic-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:ListTagsForCertificate", "acm:ListTagsForResource", "acm:TagResource", "acm:UntagResource"], "path": "behavioral/acm/check_tag_resource_generic_lifecycle.py", "service": "acm"} {"check_id": "acm.tag-resource-generic-visible-via-list-tags-for-certificate", "deployments": [], "key": "acm/tag-resource-generic-visible-via-list-tags-for-certificate", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate", "acm:ListTagsForResource", "acm:TagResource"], "path": "behavioral/acm/check_tag_resource_generic_visible_via_list_tags_for_certificate.py", "service": "acm"} {"check_id": "acm.tag-resource-invalid-key-on-acme-resource-rejected", "deployments": [], "key": "acm/tag-resource-invalid-key-on-acme-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource"], "path": "behavioral/acm/check_tag_resource_invalid_key_on_acme_resource_rejected.py", "service": "acm"} {"check_id": "acm.tag-resource-nonexistent-acme-endpoint-not-found", "deployments": [], "key": "acm/tag-resource-nonexistent-acme-endpoint-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource"], "path": "behavioral/acm/check_tag_resource_nonexistent_acme_endpoint_not_found.py", "service": "acm"} {"check_id": "acm.tag-resource-nonexistent-arn-rejected", "deployments": [], "key": "acm/tag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_tag_resource_nonexistent_arn_rejected.py", "service": "acm"} {"check_id": "acm.tag-resource-nonexistent-resource-not-found", "deployments": [], "key": "acm/tag-resource-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ListTagsForCertificate", "acm:RequestCertificate", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_tag_resource_nonexistent_resource_not_found.py", "service": "acm"} {"check_id": "acm.tag-resource-nonexistent-resource-rejected", "deployments": [], "key": "acm/tag-resource-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_tag_resource_nonexistent_resource_rejected.py", "service": "acm"} {"check_id": "acm.tag-resource-quota-exceeded-on-acme-endpoint", "deployments": [], "key": "acm/tag-resource-quota-exceeded-on-acme-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource", "acm:UntagResource"], "path": "behavioral/acm/check_tag_resource_quota_exceeded_on_acme_endpoint.py", "service": "acm"} {"check_id": "acm.tag-resource-quota-exceeded-rejected", "deployments": [], "key": "acm/tag-resource-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ListTagsForCertificate", "acm:RemoveTagsFromCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_tag_resource_quota_exceeded_rejected.py", "service": "acm"} {"check_id": "acm.tag-resource-rejects-certificate-arn", "deployments": [], "key": "acm/tag-resource-rejects-certificate-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate", "acm:ListTagsForResource", "acm:TagResource"], "path": "behavioral/acm/check_tag_resource_rejects_certificate_arn.py", "service": "acm"} {"check_id": "acm.tag-resource-unicode-value-round-trip", "deployments": [], "key": "acm/tag-resource-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource"], "path": "behavioral/acm/check_tag_resource_unicode_value_round_trip.py", "service": "acm"} {"check_id": "acm.tag-value-unicode-round-trip-on-acme-endpoint", "deployments": [], "key": "acm/tag-value-unicode-round-trip-on-acme-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource"], "path": "behavioral/acm/check_tag_value_unicode_round_trip_on_acme_endpoint.py", "service": "acm"} {"check_id": "acm.untag-resource-invalid-key-rejected", "deployments": [], "key": "acm/untag-resource-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource", "acm:UntagResource"], "path": "behavioral/acm/check_untag_resource_invalid_key_rejected.py", "service": "acm"} {"check_id": "acm.untag-resource-invalid-key-validation-rejected", "deployments": [], "key": "acm/untag-resource-invalid-key-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource", "acm:UntagResource"], "path": "behavioral/acm/check_untag_resource_invalid_key_validation_rejected.py", "service": "acm"} {"check_id": "acm.untag-resource-nonexistent-arn-rejected", "deployments": [], "key": "acm/untag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource", "acm:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_untag_resource_nonexistent_arn_rejected.py", "service": "acm"} {"check_id": "acm.untag-resource-on-deleted-acme-resource-rejected", "deployments": [], "key": "acm/untag-resource-on-deleted-acme-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListTagsForResource", "acm:TagResource", "acm:UntagResource"], "path": "behavioral/acm/check_untag_resource_on_deleted_acme_resource_rejected.py", "service": "acm"} {"check_id": "acm.untag-resource-rejects-certificate-arn", "deployments": [], "key": "acm/untag-resource-rejects-certificate-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ImportCertificate", "acm:ListTagsForCertificate", "acm:UntagResource"], "path": "behavioral/acm/check_untag_resource_rejects_certificate_arn.py", "service": "acm"} {"check_id": "acm.untag-resource-removes-tag", "deployments": [], "key": "acm/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ListTagsForCertificate", "acm:RemoveTagsFromCertificate", "acm:RequestCertificate"], "path": "behavioral/acm/check_untag_resource_removes_tag.py", "service": "acm"} {"check_id": "acm.untag-resource-removes-tag-added-via-addtags", "deployments": [], "key": "acm/untag-resource-removes-tag-added-via-addtags", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DeleteCertificate", "acm:DescribeAcmeEndpoint", "acm:ImportCertificate", "acm:ListTagsForCertificate", "acm:ListTagsForResource", "acm:TagResource", "acm:UntagResource"], "path": "behavioral/acm/check_untag_resource_removes_tag_added_via_addtags.py", "service": "acm"} {"check_id": "acm.update-acme-domain-validation-status-only-server-transitionable", "deployments": [], "key": "acm/update-acme-domain-validation-status-only-server-transitionable", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_update_acme_domain_validation_status_only_server_transitionable.py", "service": "acm"} {"check_id": "acm.update-acme-domain-validation-transitions-status", "deployments": [], "key": "acm/update-acme-domain-validation-transitions-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeDomainValidation", "acm:CreateAcmeEndpoint", "acm:DeleteAcmeDomainValidation", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeDomainValidation", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeDomainValidation"], "path": "behavioral/acm/check_update_acme_domain_validation_transitions_status.py", "service": "acm"} {"check_id": "acm.update-acme-endpoint-missing-returns-conflict", "deployments": [], "key": "acm/update-acme-endpoint-missing-returns-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_update_acme_endpoint_missing_returns_conflict.py", "service": "acm"} {"check_id": "acm.update-acme-endpoint-nonexistent-conflict", "deployments": [], "key": "acm/update-acme-endpoint-nonexistent-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_update_acme_endpoint_nonexistent_conflict.py", "service": "acm"} {"check_id": "acm.update-acme-endpoint-on-revoked-account-succeeds", "deployments": [], "key": "acm/update-acme-endpoint-on-revoked-account-succeeds", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:CreateAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DeleteAcmeEndpoint", "acm:DeleteAcmeExternalAccountBinding", "acm:DescribeAcmeAccount", "acm:DescribeAcmeEndpoint", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeAccount", "acm:UpdateAcmeEndpoint", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/acm/check_update_acme_endpoint_on_revoked_account_succeeds.py", "service": "acm"} {"check_id": "acm.update-acme-endpoint-persists-configuration-change", "deployments": [], "key": "acm/update-acme-endpoint-persists-configuration-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:CreateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:UpdateAcmeEndpoint"], "path": "behavioral/acm/check_update_acme_endpoint_persists_configuration_change.py", "service": "acm"} {"check_id": "acm.update-certificate-options-imported-fails", "deployments": [], "key": "acm/update-certificate-options-imported-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:UpdateCertificateOptions"], "path": "behavioral/acm/check_update_certificate_options_imported_fails.py", "service": "acm"} {"check_id": "acm.update-certificate-options-invalid-state-rejected", "deployments": [], "key": "acm/update-certificate-options-invalid-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RequestCertificate", "acm:UpdateCertificateOptions"], "path": "behavioral/acm/check_update_certificate_options_invalid_state_rejected.py", "service": "acm"} {"check_id": "acm.update-certificate-options-pending-validation-fails", "deployments": [], "key": "acm/update-certificate-options-pending-validation-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:UpdateCertificateOptions"], "path": "behavioral/acm/check_update_certificate_options_pending_validation_fails.py", "service": "acm"} {"check_id": "acm.update-certificate-options-transparency-logging", "deployments": [], "key": "acm/update-certificate-options-transparency-logging", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:UpdateCertificateOptions"], "path": "behavioral/acm/check_update_certificate_options_transparency_logging.py", "service": "acm"} {"check_id": "acm.update-certificate-options-validation-method-change-while-pending-rejected", "deployments": [], "key": "acm/update-certificate-options-validation-method-change-while-pending-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "acm:UpdateCertificateOptions"], "path": "behavioral/acm/check_update_certificate_options_validation_method_change_while_pending_rejected.py", "service": "acm"} {"check_id": "acm.wildcard-san-certificate-matches-exactly-one-label-at-a-real-handshake", "deployments": [], "key": "acm/wildcard-san-certificate-matches-exactly-one-label-at-a-real-handshake", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate", "acm:ListCertificates"], "path": "behavioral/acm/check_wildcard_san_certificate_matches_exactly_one_label_at_a_real_handshake.py", "service": "acm"} {"check_id": "acm__apigateway.regional-custom-domain-refuses-a-pending-certificate-then-serves-the-issued-one", "deployments": [], "key": "acm__apigateway/regional-custom-domain-refuses-a-pending-certificate-then-serves-the-issued-one", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RequestCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName", "apigateway:GetDomainNames", "route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:TestDNSAnswer"], "path": "behavioral/acm__apigateway/check_regional_custom_domain_refuses_a_pending_certificate_then_serves_the_issued_one.py", "service": "acm__apigateway"} {"check_id": "acm__apigateway__s3.regional-custom-domain-mutual-tls-enforces-trusted-client-certificates", "deployments": [], "key": "acm__apigateway__s3/regional-custom-domain-mutual-tls-enforces-trusted-client-certificates", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/acm__apigateway__s3/check_regional_custom_domain_mutual_tls_enforces_trusted_client_certificates.py", "service": "acm__apigateway__s3"} {"check_id": "acm__apigatewayv2.regional-custom-domain-presents-the-imported-certificate-and-rotation-swaps-it", "deployments": [], "key": "acm__apigatewayv2/regional-custom-domain-presents-the-imported-certificate-and-rotation-swaps-it", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName", "apigatewayv2:UpdateDomainName"], "path": "behavioral/acm__apigatewayv2/check_regional_custom_domain_presents_the_imported_certificate_and_rotation_swaps_it.py", "service": "acm__apigatewayv2"} {"check_id": "acm__cloudformation__ec2.deploy-ec2-client-vpn-endpoint-family-round-trip-and-delete", "deployments": [], "key": "acm__cloudformation__ec2/deploy-ec2-client-vpn-endpoint-family-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeClientVpnEndpoints", "ec2:DescribeVpcs"], "path": "behavioral/acm__cloudformation__ec2/check_deploy_ec2_client_vpn_endpoint_family_round_trip_and_delete.py", "service": "acm__cloudformation__ec2"} {"check_id": "acm__cloudformation__ec2.deploy-ec2-client-vpn-endpoint-invalid-client-cidr-rejected", "deployments": [], "key": "acm__cloudformation__ec2/deploy-ec2-client-vpn-endpoint-invalid-client-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeClientVpnEndpoints"], "path": "behavioral/acm__cloudformation__ec2/check_deploy_ec2_client_vpn_endpoint_invalid_client_cidr_rejected.py", "service": "acm__cloudformation__ec2"} {"check_id": "acm__cloudformation__ec2__elbv2.cfn-elbv2-listenercertificate-resource-lifecycle", "deployments": [], "key": "acm__cloudformation__ec2__elbv2/cfn-elbv2-listenercertificate-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elbv2:DescribeListenerCertificates"], "path": "behavioral/acm__cloudformation__ec2__elbv2/check_cfn_elbv2_listenercertificate_resource_lifecycle.py", "service": "acm__cloudformation__ec2__elbv2"} {"check_id": "acm__cloudformation__ec2__elbv2.cfn-listenercertificate-nonexistent-certificate-rejected", "deployments": [], "key": "acm__cloudformation__ec2__elbv2/cfn-listenercertificate-nonexistent-certificate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/acm__cloudformation__ec2__elbv2/check_cfn_listenercertificate_nonexistent_certificate_rejected.py", "service": "acm__cloudformation__ec2__elbv2"} {"check_id": "acm__cloudformation__mediaconvert.deploy-mediaconvert-certificateassociation-round-trip-and-delete", "deployments": [], "key": "acm__cloudformation__mediaconvert/deploy-mediaconvert-certificateassociation-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/acm__cloudformation__mediaconvert/check_deploy_mediaconvert_certificateassociation_round_trip_and_delete.py", "service": "acm__cloudformation__mediaconvert"} {"check_id": "acm__cloudformation__mediaconvert.deploy-mediaconvert-certificateassociation-unknown-certificate-rejected", "deployments": [], "key": "acm__cloudformation__mediaconvert/deploy-mediaconvert-certificateassociation-unknown-certificate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/acm__cloudformation__mediaconvert/check_deploy_mediaconvert_certificateassociation_unknown_certificate_rejected.py", "service": "acm__cloudformation__mediaconvert"} {"check_id": "acm__elbv2.acm-alb-https-listener-serves-the-imported-certificate", "deployments": [], "key": "acm__elbv2/acm-alb-https-listener-serves-the-imported-certificate", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers"], "path": "behavioral/acm__elbv2/check_acm_alb_https_listener_serves_the_imported_certificate.py", "service": "acm__elbv2"} {"check_id": "acm__elbv2.acm-certificate-in-use-by-a-listener-cannot-be-deleted-rejected", "deployments": [], "key": "acm__elbv2/acm-certificate-in-use-by-a-listener-cannot-be-deleted-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:GetCertificate", "acm:ImportCertificate", "acm:ListCertificates", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerCertificates"], "path": "behavioral/acm__elbv2/check_acm_certificate_in_use_by_a_listener_cannot_be_deleted_rejected.py", "service": "acm__elbv2"} {"check_id": "acm__elbv2.acm-inuseby-clears-only-after-the-last-listener-detaches", "deployments": [], "key": "acm__elbv2/acm-inuseby-clears-only-after-the-last-listener-detaches", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListeners"], "path": "behavioral/acm__elbv2/check_acm_inuseby_clears_only_after_the_last_listener_detaches.py", "service": "acm__elbv2"} {"check_id": "acm__elbv2.acm-never-issued-certificate-refused-by-an-https-listener-rejected", "deployments": [], "key": "acm__elbv2/acm-never-issued-certificate-refused-by-an-https-listener-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "acm:RequestCertificate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerCertificates", "elbv2:DescribeListeners"], "path": "behavioral/acm__elbv2/check_acm_never_issued_certificate_refused_by_an_https_listener_rejected.py", "service": "acm__elbv2"} {"check_id": "acm__elbv2.live-listener-certificate-rotation-swaps-the-presented-leaf-with-no-dropped-request", "deployments": [], "key": "acm__elbv2/live-listener-certificate-rotation-swaps-the-presented-leaf-with-no-dropped-request", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListener"], "path": "behavioral/acm__elbv2/check_live_listener_certificate_rotation_swaps_the_presented_leaf_with_no_dropped_request.py", "service": "acm__elbv2"} {"check_id": "agent-registry-control.approval-configuration-update-affects-only-future-submissions", "deployments": [], "key": "agent-registry-control/approval-configuration-update-affects-only-future-submissions", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistry", "agent-registry-control:UpdateRegistryRecordStatus"], "path": "behavioral/agent-registry-control/check_approval_configuration_update_affects_only_future_submissions.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.approve-draft-record-directly-rejected", "deployments": [], "key": "agent-registry-control/approve-draft-record-directly-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecordStatus"], "path": "behavioral/agent-registry-control/check_approve_draft_record_directly_rejected.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.auto-approval-rule-skips-manual-review", "deployments": [], "key": "agent-registry-control/auto-approval-rule-skips-manual-review", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval"], "path": "behavioral/agent-registry-control/check_auto_approval_rule_skips_manual_review.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.create-registry-record-client-token-idempotent", "deployments": [], "key": "agent-registry-control/create-registry-record-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:ListRegistryRecords"], "path": "behavioral/agent-registry-control/check_create_registry_record_client_token_idempotent.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.custom-metadata-schema-evolution-additive-only", "deployments": [], "key": "agent-registry-control/custom-metadata-schema-evolution-additive-only", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:UpdateRegistry"], "path": "behavioral/agent-registry-control/check_custom_metadata_schema_evolution_additive_only.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.custom-metadata-violations-rejected-at-create", "deployments": [], "key": "agent-registry-control/custom-metadata-violations-rejected-at-create", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:ListRegistryRecords"], "path": "behavioral/agent-registry-control/check_custom_metadata_violations_rejected_at_create.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.delete-registry-blocked-while-records-exist", "deployments": [], "key": "agent-registry-control/delete-registry-blocked-while-records-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord"], "path": "behavioral/agent-registry-control/check_delete_registry_blocked_while_records_exist.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.deprecated-record-rejects-every-later-change", "deployments": [], "key": "agent-registry-control/deprecated-record-rejects-every-later-change", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecord", "agent-registry-control:UpdateRegistryRecordStatus"], "path": "behavioral/agent-registry-control/check_deprecated_record_rejects_every_later_change.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.editing-pending-record-withdraws-it-to-draft", "deployments": [], "key": "agent-registry-control/editing-pending-record-withdraws-it-to-draft", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecord", "agent-registry-control:UpdateRegistryRecordStatus"], "path": "behavioral/agent-registry-control/check_editing_pending_record_withdraws_it_to_draft.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.invalid-descriptor-rejected-without-creating-record", "deployments": [], "key": "agent-registry-control/invalid-descriptor-rejected-without-creating-record", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:ListRegistryRecords"], "path": "behavioral/agent-registry-control/check_invalid_descriptor_rejected_without_creating_record.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.list-registry-records-filter-by-status-excludes-other-statuses", "deployments": [], "key": "agent-registry-control/list-registry-records-filter-by-status-excludes-other-statuses", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:ListRegistryRecords", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecordStatus"], "path": "behavioral/agent-registry-control/check_list_registry_records_filter_by_status_excludes_other_statuses.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.record-tags-independent-of-registry-tags", "deployments": [], "key": "agent-registry-control/record-tags-independent-of-registry-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:ListTagsForResource", "agent-registry-control:TagResource", "agent-registry-control:UntagResource"], "path": "behavioral/agent-registry-control/check_record_tags_independent_of_registry_tags.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.rejected-record-resubmittable-only-after-edit", "deployments": [], "key": "agent-registry-control/rejected-record-resubmittable-only-after-edit", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecord", "agent-registry-control:UpdateRegistryRecordStatus"], "path": "behavioral/agent-registry-control/check_rejected_record_resubmittable_only_after_edit.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.rename-record-to-taken-name-rejected", "deployments": [], "key": "agent-registry-control/rename-record-to-taken-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:UpdateRegistryRecord"], "path": "behavioral/agent-registry-control/check_rename_record_to_taken_name_rejected.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.submit-rejects-record-noncompliant-with-metadata-schema", "deployments": [], "key": "agent-registry-control/submit-rejects-record-noncompliant-with-metadata-schema", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecord"], "path": "behavioral/agent-registry-control/check_submit_rejects_record_noncompliant_with_metadata_schema.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.update-record-display-name-empty-wrapper-unsets", "deployments": [], "key": "agent-registry-control/update-record-display-name-empty-wrapper-unsets", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:UpdateRegistryRecord"], "path": "behavioral/agent-registry-control/check_update_record_display_name_empty_wrapper_unsets.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.update-registry-patch-leaves-omitted-fields", "deployments": [], "key": "agent-registry-control/update-registry-patch-leaves-omitted-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistry"], "path": "behavioral/agent-registry-control/check_update_registry_patch_leaves_omitted_fields.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control.update-registry-record-status-enforces-workflow-transitions", "deployments": [], "key": "agent-registry-control/update-registry-record-status-enforces-workflow-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecordStatus"], "path": "behavioral/agent-registry-control/check_update_registry_record_status_enforces_workflow_transitions.py", "service": "agent-registry-control"} {"check_id": "agent-registry-control__cloudformation.deploy-agent-registry-record-nonexistent-registry-rejected", "deployments": [], "key": "agent-registry-control__cloudformation/deploy-agent-registry-record-nonexistent-registry-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:DeleteRegistry", "agent-registry-control:GetRegistryRecord", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/agent-registry-control__cloudformation/check_deploy_agent_registry_record_nonexistent_registry_rejected.py", "service": "agent-registry-control__cloudformation"} {"check_id": "agent-registry-control__cloudformation.deploy-agent-registry-record-round-trip-and-delete", "deployments": [], "key": "agent-registry-control__cloudformation/deploy-agent-registry-record-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/agent-registry-control__cloudformation/check_deploy_agent_registry_record_round_trip_and_delete.py", "service": "agent-registry-control__cloudformation"} {"check_id": "agent-registry-control__cloudformation.deploy-agent-registry-round-trip-and-delete", "deployments": [], "key": "agent-registry-control__cloudformation/deploy-agent-registry-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["agent-registry-control:GetRegistry", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/agent-registry-control__cloudformation/check_deploy_agent_registry_round_trip_and_delete.py", "service": "agent-registry-control__cloudformation"} {"check_id": "agent-registry.batch-get-discoverable-registry-record-id-form-bypasses-authorization", "deployments": [], "key": "agent-registry/batch-get-discoverable-registry-record-id-form-bypasses-authorization", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["agent-registry:BatchGetDiscoverableRegistryRecord", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/agent-registry/check_batch_get_discoverable_registry_record_id_form_bypasses_authorization.py", "service": "agent-registry"} {"check_id": "agent-registry.batch-get-reports-unpublished-records-per-entry", "deployments": [], "key": "agent-registry/batch-get-reports-unpublished-records-per-entry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecordStatus", "agent-registry:BatchGetDiscoverableRegistryRecord"], "path": "behavioral/agent-registry/check_batch_get_reports_unpublished_records_per_entry.py", "service": "agent-registry"} {"check_id": "agent-registry.deprecating-approved-record-removes-it-from-discovery", "deployments": [], "key": "agent-registry/deprecating-approved-record-removes-it-from-discovery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecordStatus", "agent-registry:BatchGetDiscoverableRegistryRecord", "agent-registry:ListDiscoverableRegistryRecords"], "path": "behavioral/agent-registry/check_deprecating_approved_record_removes_it_from_discovery.py", "service": "agent-registry"} {"check_id": "agent-registry.edited-approved-record-keeps-published-revision-until-reapproved", "deployments": [], "key": "agent-registry/edited-approved-record-keeps-published-revision-until-reapproved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecord", "agent-registry-control:UpdateRegistryRecordStatus", "agent-registry:BatchGetDiscoverableRegistryRecord"], "path": "behavioral/agent-registry/check_edited_approved_record_keeps_published_revision_until_reapproved.py", "service": "agent-registry"} {"check_id": "agent-registry.list-discoverable-filters-by-record-and-descriptor-type", "deployments": [], "key": "agent-registry/list-discoverable-filters-by-record-and-descriptor-type", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry:ListDiscoverableRegistryRecords"], "path": "behavioral/agent-registry/check_list_discoverable_filters_by_record_and_descriptor_type.py", "service": "agent-registry"} {"check_id": "agent-registry.list-discoverable-pages-through-every-record-once", "deployments": [], "key": "agent-registry/list-discoverable-pages-through-every-record-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry:ListDiscoverableRegistryRecords"], "path": "behavioral/agent-registry/check_list_discoverable_pages_through_every_record_once.py", "service": "agent-registry"} {"check_id": "agent-registry.list-discoverable-registry-records-unauthorized", "deployments": [], "key": "agent-registry/list-discoverable-registry-records-unauthorized", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["agent-registry:ListDiscoverableRegistryRecords", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/agent-registry/check_list_discoverable_registry_records_unauthorized.py", "service": "agent-registry"} {"check_id": "agent-registry.list-discoverable-returns-only-approved-records", "deployments": [], "key": "agent-registry/list-discoverable-returns-only-approved-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecordStatus", "agent-registry:ListDiscoverableRegistryRecords"], "path": "behavioral/agent-registry/check_list_discoverable_returns_only_approved_records.py", "service": "agent-registry"} {"check_id": "agent-registry.search-and-batch-get-return-published-record", "deployments": [], "key": "agent-registry/search-and-batch-get-return-published-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecordStatus", "agent-registry:BatchGetDiscoverableRegistryRecord", "agent-registry:SearchDiscoverableRegistryRecords"], "path": "behavioral/agent-registry/check_search_and_batch_get_return_published_record.py", "service": "agent-registry"} {"check_id": "agent-registry.search-custom-metadata-filter-narrows-results", "deployments": [], "key": "agent-registry/search-custom-metadata-filter-narrows-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry:SearchDiscoverableRegistryRecords"], "path": "behavioral/agent-registry/check_search_custom_metadata_filter_narrows_results.py", "service": "agent-registry"} {"check_id": "agent-registry.search-discoverable-registry-records-unauthorized", "deployments": [], "key": "agent-registry/search-discoverable-registry-records-unauthorized", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["agent-registry:SearchDiscoverableRegistryRecords", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/agent-registry/check_search_discoverable_registry_records_unauthorized.py", "service": "agent-registry"} {"check_id": "agent-registry.search-excludes-unapproved-records", "deployments": [], "key": "agent-registry/search-excludes-unapproved-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["agent-registry-control:CreateRegistry", "agent-registry-control:CreateRegistryRecord", "agent-registry-control:DeleteRegistry", "agent-registry-control:DeleteRegistryRecord", "agent-registry-control:GetRegistry", "agent-registry-control:GetRegistryRecord", "agent-registry-control:SubmitRegistryRecordForApproval", "agent-registry-control:UpdateRegistryRecordStatus", "agent-registry:SearchDiscoverableRegistryRecords"], "path": "behavioral/agent-registry/check_search_excludes_unapproved_records.py", "service": "agent-registry"} {"check_id": "aiops.concurrent-create-investigation-group-race", "deployments": [], "key": "aiops/concurrent-create-investigation-group-race", "labels": ["axis:rejection", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "aiops:ListInvestigationGroups", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_concurrent_create_investigation_group_race.py", "service": "aiops"} {"check_id": "aiops.create-customer-managed-kms-key-encryption", "deployments": [], "key": "aiops/create-customer-managed-kms-key-encryption", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "iam:CreateRole", "iam:DeleteRole", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/aiops/check_create_customer_managed_kms_key_encryption.py", "service": "aiops"} {"check_id": "aiops.create-default-encryption-uses-aws-owned-key", "deployments": [], "key": "aiops/create-default-encryption-uses-aws-owned-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_create_default_encryption_uses_aws_owned_key.py", "service": "aiops"} {"check_id": "aiops.create-default-retention-and-cloudtrail-enabled", "deployments": [], "key": "aiops/create-default-retention-and-cloudtrail-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_create_default_retention_and_cloudtrail_enabled.py", "service": "aiops"} {"check_id": "aiops.create-get-investigation-group-fields-persist", "deployments": [], "key": "aiops/create-get-investigation-group-fields-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_create_get_investigation_group_fields_persist.py", "service": "aiops"} {"check_id": "aiops.create-invalid-name-pattern-rejected", "deployments": [], "key": "aiops/create-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "aiops:ListInvestigationGroups", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_create_invalid_name_pattern_rejected.py", "service": "aiops"} {"check_id": "aiops.create-retention-boundary-values-accepted", "deployments": [], "key": "aiops/create-retention-boundary-values-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_create_retention_boundary_values_accepted.py", "service": "aiops"} {"check_id": "aiops.create-tag-key-boundaries-persist", "deployments": [], "key": "aiops/create-tag-key-boundaries-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_create_tag_key_boundaries_persist.py", "service": "aiops"} {"check_id": "aiops.create-with-tags-at-creation", "deployments": [], "key": "aiops/create-with-tags-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:ListTagsForResource", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_create_with_tags_at_creation.py", "service": "aiops"} {"check_id": "aiops.delete-investigation-group-idempotent-then-not-found", "deployments": [], "key": "aiops/delete-investigation-group-idempotent-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_delete_investigation_group_idempotent_then_not_found.py", "service": "aiops"} {"check_id": "aiops.get-investigation-group-by-name-and-arn-equivalent", "deployments": [], "key": "aiops/get-investigation-group-by-name-and-arn-equivalent", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "aiops:ListInvestigationGroups", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_get_investigation_group_by_name_and_arn_equivalent.py", "service": "aiops"} {"check_id": "aiops.investigation-group-policy-full-lifecycle", "deployments": [], "key": "aiops/investigation-group-policy-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:DeleteInvestigationGroupPolicy", "aiops:GetInvestigationGroupPolicy", "aiops:PutInvestigationGroupPolicy", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/aiops/check_investigation_group_policy_full_lifecycle.py", "service": "aiops"} {"check_id": "aiops.list-investigation-groups-reflects-create-and-delete", "deployments": [], "key": "aiops/list-investigation-groups-reflects-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:ListInvestigationGroups", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_list_investigation_groups_reflects_create_and_delete.py", "service": "aiops"} {"check_id": "aiops.put-investigation-group-policy-malformed-json-rejected", "deployments": [], "key": "aiops/put-investigation-group-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroupPolicy", "aiops:PutInvestigationGroupPolicy", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/aiops/check_put_investigation_group_policy_malformed_json_rejected.py", "service": "aiops"} {"check_id": "aiops.singleton-second-create-conflict-rejected", "deployments": [], "key": "aiops/singleton-second-create-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "aiops:ListInvestigationGroups", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_singleton_second_create_conflict_rejected.py", "service": "aiops"} {"check_id": "aiops.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "aiops/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:ListTagsForResource", "aiops:TagResource", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_tag_resource_and_list_tags_roundtrip.py", "service": "aiops"} {"check_id": "aiops.tag-resource-exceeds-tag-limit-rejected", "deployments": [], "key": "aiops/tag-resource-exceeds-tag-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:ListTagsForResource", "aiops:TagResource", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_tag_resource_exceeds_tag_limit_rejected.py", "service": "aiops"} {"check_id": "aiops.untag-resource-removes-tag", "deployments": [], "key": "aiops/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:ListTagsForResource", "aiops:UntagResource", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_untag_resource_removes_tag.py", "service": "aiops"} {"check_id": "aiops.update-cloudtrail-history-flag-toggle", "deployments": [], "key": "aiops/update-cloudtrail-history-flag-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "aiops:UpdateInvestigationGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_update_cloudtrail_history_flag_toggle.py", "service": "aiops"} {"check_id": "aiops.update-cross-account-configurations-persist", "deployments": [], "key": "aiops/update-cross-account-configurations-persist", "labels": ["axis:rejection", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "aiops:UpdateInvestigationGroup", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/aiops/check_update_cross_account_configurations_persist.py", "service": "aiops"} {"check_id": "aiops.update-role-arn-persists", "deployments": [], "key": "aiops/update-role-arn-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["aiops:CreateInvestigationGroup", "aiops:DeleteInvestigationGroup", "aiops:GetInvestigationGroup", "aiops:UpdateInvestigationGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops/check_update_role_arn_persists.py", "service": "aiops"} {"check_id": "aiops__cloudformation.cfn-investigation-group-round-trip-then-invalid-rolearn-rejected", "deployments": [], "key": "aiops__cloudformation/cfn-investigation-group-round-trip-then-invalid-rolearn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["aiops:GetInvestigationGroup", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/aiops__cloudformation/check_cfn_investigation_group_round_trip_then_invalid_rolearn_rejected.py", "service": "aiops__cloudformation"} {"check_id": "amp.alert-manager-definition-duplicate-create-conflict-rejected", "deployments": [], "key": "amp/alert-manager-definition-duplicate-create-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amp:CreateAlertManagerDefinition", "amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeAlertManagerDefinition", "amp:DescribeWorkspace", "amp:PutAlertManagerDefinition", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/amp/check_alert_manager_definition_duplicate_create_conflict_rejected.py", "service": "amp"} {"check_id": "amp.alert-manager-definition-round-trip", "deployments": [], "key": "amp/alert-manager-definition-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateAlertManagerDefinition", "amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeAlertManagerDefinition", "amp:DescribeWorkspace", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/amp/check_alert_manager_definition_round_trip.py", "service": "amp"} {"check_id": "amp.anomaly-detector-create-delete-lifecycle", "deployments": [], "key": "amp/anomaly-detector-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateAnomalyDetector", "amp:CreateWorkspace", "amp:DeleteAnomalyDetector", "amp:DeleteWorkspace", "amp:DescribeAnomalyDetector", "amp:DescribeWorkspace", "amp:TagResource"], "path": "behavioral/amp/check_anomaly_detector_create_delete_lifecycle.py", "service": "amp"} {"check_id": "amp.anomaly-detector-evaluation-interval-range-rejected", "deployments": [], "key": "amp/anomaly-detector-evaluation-interval-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amp:CreateAnomalyDetector", "amp:CreateWorkspace", "amp:DeleteAnomalyDetector", "amp:DeleteWorkspace", "amp:DescribeAnomalyDetector", "amp:DescribeWorkspace", "amp:ListAnomalyDetectors"], "path": "behavioral/amp/check_anomaly_detector_evaluation_interval_range_rejected.py", "service": "amp"} {"check_id": "amp.default-scraper-configuration-returns-valid-yaml", "deployments": [], "key": "amp/default-scraper-configuration-returns-valid-yaml", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:GetDefaultScraperConfiguration"], "path": "behavioral/amp/check_default_scraper_configuration_returns_valid_yaml.py", "service": "amp"} {"check_id": "amp.list-workspaces-alias-filter", "deployments": [], "key": "amp/list-workspaces-alias-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace", "amp:ListWorkspaces"], "path": "behavioral/amp/check_list_workspaces_alias_filter.py", "service": "amp"} {"check_id": "amp.logging-configuration-lifecycle", "deployments": [], "key": "amp/logging-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateLoggingConfiguration", "amp:CreateWorkspace", "amp:DeleteLoggingConfiguration", "amp:DeleteWorkspace", "amp:DescribeLoggingConfiguration", "amp:DescribeWorkspace", "amp:UpdateLoggingConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/amp/check_logging_configuration_lifecycle.py", "service": "amp"} {"check_id": "amp.query-logging-configuration-lifecycle", "deployments": [], "key": "amp/query-logging-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateQueryLoggingConfiguration", "amp:CreateWorkspace", "amp:DeleteQueryLoggingConfiguration", "amp:DeleteWorkspace", "amp:DescribeQueryLoggingConfiguration", "amp:DescribeWorkspace", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/amp/check_query_logging_configuration_lifecycle.py", "service": "amp"} {"check_id": "amp.remote-write-query-round-trip", "deployments": [], "key": "amp/remote-write-query-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace"], "path": "behavioral/amp/check_remote_write_query_round_trip.py", "service": "amp"} {"check_id": "amp.resource-policy-concurrent-update-optimistic-lock", "deployments": [], "key": "amp/resource-policy-concurrent-update-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeResourcePolicy", "amp:DescribeWorkspace", "amp:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/amp/check_resource_policy_concurrent_update_optimistic_lock.py", "service": "amp"} {"check_id": "amp.resource-policy-lifecycle", "deployments": [], "key": "amp/resource-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteResourcePolicy", "amp:DeleteWorkspace", "amp:DescribeResourcePolicy", "amp:DescribeWorkspace", "amp:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/amp/check_resource_policy_lifecycle.py", "service": "amp"} {"check_id": "amp.resource-policy-stale-revision-conflict-rejected", "deployments": [], "key": "amp/resource-policy-stale-revision-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeResourcePolicy", "amp:DescribeWorkspace", "amp:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/amp/check_resource_policy_stale_revision_conflict_rejected.py", "service": "amp"} {"check_id": "amp.rule-groups-namespace-create-and-data-round-trip", "deployments": [], "key": "amp/rule-groups-namespace-create-and-data-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateRuleGroupsNamespace", "amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeRuleGroupsNamespace", "amp:DescribeWorkspace"], "path": "behavioral/amp/check_rule_groups_namespace_create_and_data_round_trip.py", "service": "amp"} {"check_id": "amp.rule-groups-namespace-list-name-filter", "deployments": [], "key": "amp/rule-groups-namespace-list-name-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateRuleGroupsNamespace", "amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeRuleGroupsNamespace", "amp:DescribeWorkspace", "amp:ListRuleGroupsNamespaces"], "path": "behavioral/amp/check_rule_groups_namespace_list_name_filter.py", "service": "amp"} {"check_id": "amp.rule-groups-namespace-update-round-trip", "deployments": [], "key": "amp/rule-groups-namespace-update-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateRuleGroupsNamespace", "amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeRuleGroupsNamespace", "amp:DescribeWorkspace", "amp:PutRuleGroupsNamespace"], "path": "behavioral/amp/check_rule_groups_namespace_update_round_trip.py", "service": "amp"} {"check_id": "amp.tag-resource-nonexistent-arn-rejected", "deployments": [], "key": "amp/tag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace", "amp:ListTagsForResource", "amp:TagResource"], "path": "behavioral/amp/check_tag_resource_nonexistent_arn_rejected.py", "service": "amp"} {"check_id": "amp.tag-resource-round-trip", "deployments": [], "key": "amp/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace", "amp:ListTagsForResource", "amp:TagResource", "amp:UntagResource"], "path": "behavioral/amp/check_tag_resource_round_trip.py", "service": "amp"} {"check_id": "amp.workspace-alias-update-round-trip", "deployments": [], "key": "amp/workspace-alias-update-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace", "amp:UpdateWorkspaceAlias"], "path": "behavioral/amp/check_workspace_alias_update_round_trip.py", "service": "amp"} {"check_id": "amp.workspace-configuration-update-round-trip", "deployments": [], "key": "amp/workspace-configuration-update-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace", "amp:DescribeWorkspaceConfiguration", "amp:UpdateWorkspaceConfiguration"], "path": "behavioral/amp/check_workspace_configuration_update_round_trip.py", "service": "amp"} {"check_id": "amp.workspace-create-active-lifecycle", "deployments": [], "key": "amp/workspace-create-active-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace"], "path": "behavioral/amp/check_workspace_create_active_lifecycle.py", "service": "amp"} {"check_id": "amp.workspace-delete-lifecycle", "deployments": [], "key": "amp/workspace-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace"], "path": "behavioral/amp/check_workspace_delete_lifecycle.py", "service": "amp"} {"check_id": "amp.workspace-double-delete-conflict-rejected", "deployments": [], "key": "amp/workspace-double-delete-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amp:CreateWorkspace", "amp:DeleteWorkspace", "amp:DescribeWorkspace"], "path": "behavioral/amp/check_workspace_double_delete_conflict_rejected.py", "service": "amp"} {"check_id": "amplify.branch-initial-job-state", "deployments": [], "key": "amplify/branch-initial-job-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:GetBranch", "amplify:ListJobs"], "path": "behavioral/amplify/check_branch_initial_job_state.py", "service": "amplify"} {"check_id": "amplify.concurrent-duplicate-branch-creation", "deployments": [], "key": "amplify/concurrent-duplicate-branch-creation", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:GetBranch", "amplify:ListBranches", "amplify:UpdateBranch"], "path": "behavioral/amplify/check_concurrent_duplicate_branch_creation.py", "service": "amplify"} {"check_id": "amplify.create-app-default-state", "deployments": [], "key": "amplify/create-app-default-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplify:GetApp", "amplify:UpdateApp"], "path": "behavioral/amplify/check_create_app_default_state.py", "service": "amplify"} {"check_id": "amplify.create-backend-environment-lifecycle", "deployments": [], "key": "amplify/create-backend-environment-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBackendEnvironment", "amplify:DeleteApp", "amplify:DeleteBackendEnvironment", "amplify:GetBackendEnvironment", "amplify:ListBackendEnvironments", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/amplify/check_create_backend_environment_lifecycle.py", "service": "amplify"} {"check_id": "amplify.create-domain-association-invalid-domain-pattern-rejected", "deployments": [], "key": "amplify/create-domain-association-invalid-domain-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:CreateDomainAssociation", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:DeleteDomainAssociation", "amplify:ListDomainAssociations"], "path": "behavioral/amplify/check_create_domain_association_invalid_domain_pattern_rejected.py", "service": "amplify"} {"check_id": "amplify.delete-app-cascades-to-branches", "deployments": [], "key": "amplify/delete-app-cascades-to-branches", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:GetApp", "amplify:GetBranch"], "path": "behavioral/amplify/check_delete_app_cascades_to_branches.py", "service": "amplify"} {"check_id": "amplify.domain-association-status-progresses", "deployments": [], "key": "amplify/domain-association-status-progresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:CreateDomainAssociation", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:DeleteDomainAssociation", "amplify:GetDomainAssociation"], "path": "behavioral/amplify/check_domain_association_status_progresses.py", "service": "amplify"} {"check_id": "amplify.get-app-not-found-rejected", "deployments": [], "key": "amplify/get-app-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplify:GetApp"], "path": "behavioral/amplify/check_get_app_not_found_rejected.py", "service": "amplify"} {"check_id": "amplify.list-apps-reflects-created-app", "deployments": [], "key": "amplify/list-apps-reflects-created-app", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplify:GetApp", "amplify:ListApps"], "path": "behavioral/amplify/check_list_apps_reflects_created_app.py", "service": "amplify"} {"check_id": "amplify.list-branches-pagination", "deployments": [], "key": "amplify/list-branches-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:ListBranches"], "path": "behavioral/amplify/check_list_branches_pagination.py", "service": "amplify"} {"check_id": "amplify.listjobs-maxresults-out-of-range-rejected", "deployments": [], "key": "amplify/listjobs-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:ListJobs"], "path": "behavioral/amplify/check_listjobs_maxresults_out_of_range_rejected.py", "service": "amplify"} {"check_id": "amplify.manual-deploy-build-and-serve-roundtrip", "deployments": [], "key": "amplify/manual-deploy-build-and-serve-roundtrip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:CreateDeployment", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:GetApp", "amplify:GetJob", "amplify:StartDeployment"], "path": "behavioral/amplify/check_manual_deploy_build_and_serve_roundtrip.py", "service": "amplify"} {"check_id": "amplify.startjob-retry-missing-jobid-rejected", "deployments": [], "key": "amplify/startjob-retry-missing-jobid-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:CreateDeployment", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:DeleteJob", "amplify:GetJob", "amplify:ListJobs", "amplify:StartDeployment", "amplify:StartJob", "amplify:StopJob"], "path": "behavioral/amplify/check_startjob_retry_missing_jobid_rejected.py", "service": "amplify"} {"check_id": "amplify.stopjob-completed-job-rejected", "deployments": [], "key": "amplify/stopjob-completed-job-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:CreateDeployment", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:DeleteJob", "amplify:GetJob", "amplify:ListJobs", "amplify:StartDeployment", "amplify:StopJob"], "path": "behavioral/amplify/check_stopjob_completed_job_rejected.py", "service": "amplify"} {"check_id": "amplify.tag-resource-merges-with-existing-tags", "deployments": [], "key": "amplify/tag-resource-merges-with-existing-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplify:ListTagsForResource", "amplify:TagResource"], "path": "behavioral/amplify/check_tag_resource_merges_with_existing_tags.py", "service": "amplify"} {"check_id": "amplify.untag-resource-removes-specific-key", "deployments": [], "key": "amplify/untag-resource-removes-specific-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplify:ListTagsForResource", "amplify:UntagResource"], "path": "behavioral/amplify/check_untag_resource_removes_specific_key.py", "service": "amplify"} {"check_id": "amplify.update-app-environment-variables-replace-semantics", "deployments": [], "key": "amplify/update-app-environment-variables-replace-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplify:GetApp", "amplify:UpdateApp"], "path": "behavioral/amplify/check_update_app_environment_variables_replace_semantics.py", "service": "amplify"} {"check_id": "amplify.update-branch-fields-persist", "deployments": [], "key": "amplify/update-branch-fields-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:GetBranch", "amplify:UpdateBranch"], "path": "behavioral/amplify/check_update_branch_fields_persist.py", "service": "amplify"} {"check_id": "amplify.webhook-lifecycle-crud", "deployments": [], "key": "amplify/webhook-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:CreateBranch", "amplify:CreateWebhook", "amplify:DeleteApp", "amplify:DeleteBranch", "amplify:DeleteWebhook", "amplify:GetWebhook", "amplify:ListWebhooks", "amplify:UpdateWebhook"], "path": "behavioral/amplify/check_webhook_lifecycle_crud.py", "service": "amplify"} {"check_id": "amplify__amplifyuibuilder__cloudformation.deploy-amplifyuibuilder-form-invalid-name-rejected-and-rolled-back", "deployments": [], "key": "amplify__amplifyuibuilder__cloudformation/deploy-amplifyuibuilder-form-invalid-name-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["amplifyuibuilder:GetForm", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/amplify__amplifyuibuilder__cloudformation/check_deploy_amplifyuibuilder_form_invalid_name_rejected_and_rolled_back.py", "service": "amplify__amplifyuibuilder__cloudformation"} {"check_id": "amplify__amplifyuibuilder__cloudformation.deploy-amplifyuibuilder-theme-form-component-round-trip-and-delete", "deployments": [], "key": "amplify__amplifyuibuilder__cloudformation/deploy-amplifyuibuilder-theme-form-component-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:GetApp", "amplifyuibuilder:GetComponent", "amplifyuibuilder:GetForm", "amplifyuibuilder:GetTheme", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/amplify__amplifyuibuilder__cloudformation/check_deploy_amplifyuibuilder_theme_form_component_round_trip_and_delete.py", "service": "amplify__amplifyuibuilder__cloudformation"} {"check_id": "amplify__cloudformation.deploy-amplify-app-and-branch-round-trip-and-delete", "deployments": [], "key": "amplify__cloudformation/deploy-amplify-app-and-branch-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:GetApp", "amplify:GetBranch", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/amplify__cloudformation/check_deploy_amplify_app_and_branch_round_trip_and_delete.py", "service": "amplify__cloudformation"} {"check_id": "amplify__cloudformation.deploy-amplify-branch-with-unknown-app-id-rejected-and-rolled-back", "deployments": [], "key": "amplify__cloudformation/deploy-amplify-branch-with-unknown-app-id-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:GetBranch", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/amplify__cloudformation/check_deploy_amplify_branch_with_unknown_app_id_rejected_and_rolled_back.py", "service": "amplify__cloudformation"} {"check_id": "amplifybackend.clone-backend-duplicate-target-rejected", "deployments": [], "key": "amplifybackend/clone-backend-duplicate-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CloneBackend", "amplifybackend:CreateBackend", "amplifybackend:DeleteBackend", "amplifybackend:GetBackend", "amplifybackend:GetBackendJob"], "path": "behavioral/amplifybackend/check_clone_backend_duplicate_target_rejected.py", "service": "amplifybackend"} {"check_id": "amplifybackend.concurrent-create-token-unique-session-ids", "deployments": [], "key": "amplifybackend/concurrent-create-token-unique-session-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateToken", "amplifybackend:DeleteToken", "amplifybackend:GetToken"], "path": "behavioral/amplifybackend/check_concurrent_create_token_unique_session_ids.py", "service": "amplifybackend"} {"check_id": "amplifybackend.create-backend-auth-job-lifecycle", "deployments": [], "key": "amplifybackend/create-backend-auth-job-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateBackend", "amplifybackend:CreateBackendAuth", "amplifybackend:DeleteBackend", "amplifybackend:GetBackendAuth", "amplifybackend:GetBackendJob"], "path": "behavioral/amplifybackend/check_create_backend_auth_job_lifecycle.py", "service": "amplifybackend"} {"check_id": "amplifybackend.create-backend-challenge-token-retrieval", "deployments": [], "key": "amplifybackend/create-backend-challenge-token-retrieval", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateToken", "amplifybackend:DeleteToken", "amplifybackend:GetToken"], "path": "behavioral/amplifybackend/check_create_backend_challenge_token_retrieval.py", "service": "amplifybackend"} {"check_id": "amplifybackend.create-backend-job-reaches-succeeded", "deployments": [], "key": "amplifybackend/create-backend-job-reaches-succeeded", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateBackend", "amplifybackend:DeleteBackend", "amplifybackend:GetBackend", "amplifybackend:GetBackendJob"], "path": "behavioral/amplifybackend/check_create_backend_job_reaches_succeeded.py", "service": "amplifybackend"} {"check_id": "amplifybackend.create-backend-nonexistent-app-not-found", "deployments": [], "key": "amplifybackend/create-backend-nonexistent-app-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateBackend"], "path": "behavioral/amplifybackend/check_create_backend_nonexistent_app_not_found.py", "service": "amplifybackend"} {"check_id": "amplifybackend.create-backend-storage-job-lifecycle", "deployments": [], "key": "amplifybackend/create-backend-storage-job-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateBackend", "amplifybackend:CreateBackendStorage", "amplifybackend:DeleteBackend", "amplifybackend:GetBackendJob", "amplifybackend:GetBackendStorage", "amplifybackend:ListBackendJobs"], "path": "behavioral/amplifybackend/check_create_backend_storage_job_lifecycle.py", "service": "amplifybackend"} {"check_id": "amplifybackend.delete-backend-job-reaches-succeeded", "deployments": [], "key": "amplifybackend/delete-backend-job-reaches-succeeded", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateBackend", "amplifybackend:DeleteBackend", "amplifybackend:GetBackend", "amplifybackend:GetBackendJob"], "path": "behavioral/amplifybackend/check_delete_backend_job_reaches_succeeded.py", "service": "amplifybackend"} {"check_id": "amplifybackend.delete-token-unknown-session-rejected", "deployments": [], "key": "amplifybackend/delete-token-unknown-session-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateToken", "amplifybackend:DeleteToken"], "path": "behavioral/amplifybackend/check_delete_token_unknown_session_rejected.py", "service": "amplifybackend"} {"check_id": "amplifybackend.get-backend-job-nonexistent-environment-not-found", "deployments": [], "key": "amplifybackend/get-backend-job-nonexistent-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:GetBackendJob"], "path": "behavioral/amplifybackend/check_get_backend_job_nonexistent_environment_not_found.py", "service": "amplifybackend"} {"check_id": "amplifybackend.get-backend-lists-created-environment", "deployments": [], "key": "amplifybackend/get-backend-lists-created-environment", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateBackend", "amplifybackend:DeleteBackend", "amplifybackend:GetBackend", "amplifybackend:GetBackendJob"], "path": "behavioral/amplifybackend/check_get_backend_lists_created_environment.py", "service": "amplifybackend"} {"check_id": "amplifybackend.get-token-after-delete-rejected", "deployments": [], "key": "amplifybackend/get-token-after-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateToken", "amplifybackend:DeleteToken", "amplifybackend:GetToken"], "path": "behavioral/amplifybackend/check_get_token_after_delete_rejected.py", "service": "amplifybackend"} {"check_id": "amplifybackend.list-backend-jobs-contains-created-job", "deployments": [], "key": "amplifybackend/list-backend-jobs-contains-created-job", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:CreateBackend", "amplifybackend:DeleteBackend", "amplifybackend:GetBackendJob", "amplifybackend:ListBackendJobs"], "path": "behavioral/amplifybackend/check_list_backend_jobs_contains_created_job.py", "service": "amplifybackend"} {"check_id": "amplifybackend.list-s3-buckets-includes-created-bucket", "deployments": [], "key": "amplifybackend/list-s3-buckets-includes-created-bucket", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplifybackend:ListS3Buckets", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/amplifybackend/check_list_s3_buckets_includes_created_bucket.py", "service": "amplifybackend"} {"check_id": "amplifybackend.remove-all-backends-nonexistent-app-not-found", "deployments": [], "key": "amplifybackend/remove-all-backends-nonexistent-app-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifybackend:RemoveAllBackends"], "path": "behavioral/amplifybackend/check_remove_all_backends_nonexistent_app_not_found.py", "service": "amplifybackend"} {"check_id": "amplifyuibuilder.create-component-collection-properties-roundtrip", "deployments": [], "key": "amplifyuibuilder/create-component-collection-properties-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent"], "path": "behavioral/amplifyuibuilder/check_create_component_collection_properties_roundtrip.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.create-component-duplicate-name-conflict-rejected", "deployments": [], "key": "amplifyuibuilder/create-component-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent", "amplifyuibuilder:ListComponents"], "path": "behavioral/amplifyuibuilder/check_create_component_duplicate_name_conflict_rejected.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.create-component-roundtrip-nested-properties", "deployments": [], "key": "amplifyuibuilder/create-component-roundtrip-nested-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent"], "path": "behavioral/amplifyuibuilder/check_create_component_roundtrip_nested_properties.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.create-form-roundtrip-fields-style-cta", "deployments": [], "key": "amplifyuibuilder/create-form-roundtrip-fields-style-cta", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateForm", "amplifyuibuilder:DeleteForm", "amplifyuibuilder:GetForm"], "path": "behavioral/amplifyuibuilder/check_create_form_roundtrip_fields_style_cta.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.create-theme-roundtrip-nested-values", "deployments": [], "key": "amplifyuibuilder/create-theme-roundtrip-nested-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateTheme", "amplifyuibuilder:DeleteTheme", "amplifyuibuilder:GetTheme"], "path": "behavioral/amplifyuibuilder/check_create_theme_roundtrip_nested_values.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.delete-component-nonexistent-id-not-found-rejected", "deployments": [], "key": "amplifyuibuilder/delete-component-nonexistent-id-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent"], "path": "behavioral/amplifyuibuilder/check_delete_component_nonexistent_id_not_found_rejected.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.delete-component-state-transition-then-not-found", "deployments": [], "key": "amplifyuibuilder/delete-component-state-transition-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent"], "path": "behavioral/amplifyuibuilder/check_delete_component_state_transition_then_not_found.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.delete-form-state-transition-then-not-found", "deployments": [], "key": "amplifyuibuilder/delete-form-state-transition-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateForm", "amplifyuibuilder:DeleteForm", "amplifyuibuilder:GetForm", "amplifyuibuilder:UpdateForm"], "path": "behavioral/amplifyuibuilder/check_delete_form_state_transition_then_not_found.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.delete-theme-state-transition-then-not-found", "deployments": [], "key": "amplifyuibuilder/delete-theme-state-transition-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateTheme", "amplifyuibuilder:DeleteTheme", "amplifyuibuilder:GetTheme", "amplifyuibuilder:UpdateTheme"], "path": "behavioral/amplifyuibuilder/check_delete_theme_state_transition_then_not_found.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.export-components-matches-created-set", "deployments": [], "key": "amplifyuibuilder/export-components-matches-created-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:ExportComponents"], "path": "behavioral/amplifyuibuilder/check_export_components_matches_created_set.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.get-component-cross-environment-isolation-rejected", "deployments": [], "key": "amplifyuibuilder/get-component-cross-environment-isolation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent"], "path": "behavioral/amplifyuibuilder/check_get_component_cross_environment_isolation_rejected.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.list-components-pagination-max-results", "deployments": [], "key": "amplifyuibuilder/list-components-pagination-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:ListComponents"], "path": "behavioral/amplifyuibuilder/check_list_components_pagination_max_results.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.list-components-reflects-creation-and-deletion", "deployments": [], "key": "amplifyuibuilder/list-components-reflects-creation-and-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:ListComponents"], "path": "behavioral/amplifyuibuilder/check_list_components_reflects_creation_and_deletion.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.put-metadata-flag-unknown-feature-name-rejected", "deployments": [], "key": "amplifyuibuilder/put-metadata-flag-unknown-feature-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:GetMetadata", "amplifyuibuilder:PutMetadataFlag"], "path": "behavioral/amplifyuibuilder/check_put_metadata_flag_unknown_feature_name_rejected.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.start-codegen-job-transitions-to-terminal-status", "deployments": [], "key": "amplifyuibuilder/start-codegen-job-transitions-to-terminal-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:GetCodegenJob", "amplifyuibuilder:StartCodegenJob"], "path": "behavioral/amplifyuibuilder/check_start_codegen_job_transitions_to_terminal_status.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.tag-resource-add-and-remove-roundtrip", "deployments": [], "key": "amplifyuibuilder/tag-resource-add-and-remove-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:ListTagsForResource", "amplifyuibuilder:TagResource", "amplifyuibuilder:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/amplifyuibuilder/check_tag_resource_add_and_remove_roundtrip.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.tags-at-creation-visible-via-get-component", "deployments": [], "key": "amplifyuibuilder/tags-at-creation-visible-via-get-component", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent"], "path": "behavioral/amplifyuibuilder/check_tags_at_creation_visible_via_get_component.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.update-component-nonexistent-id-conflict-rejected", "deployments": [], "key": "amplifyuibuilder/update-component-nonexistent-id-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent", "amplifyuibuilder:UpdateComponent"], "path": "behavioral/amplifyuibuilder/check_update_component_nonexistent_id_conflict_rejected.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.update-component-persists-changes", "deployments": [], "key": "amplifyuibuilder/update-component-persists-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateComponent", "amplifyuibuilder:DeleteComponent", "amplifyuibuilder:GetComponent", "amplifyuibuilder:UpdateComponent"], "path": "behavioral/amplifyuibuilder/check_update_component_persists_changes.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.update-form-persists-field-changes", "deployments": [], "key": "amplifyuibuilder/update-form-persists-field-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateForm", "amplifyuibuilder:DeleteForm", "amplifyuibuilder:GetForm", "amplifyuibuilder:UpdateForm"], "path": "behavioral/amplifyuibuilder/check_update_form_persists_field_changes.py", "service": "amplifyuibuilder"} {"check_id": "amplifyuibuilder.update-theme-persists-value-changes", "deployments": [], "key": "amplifyuibuilder/update-theme-persists-value-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["amplify:CreateApp", "amplify:DeleteApp", "amplifyuibuilder:CreateTheme", "amplifyuibuilder:DeleteTheme", "amplifyuibuilder:GetTheme", "amplifyuibuilder:UpdateTheme"], "path": "behavioral/amplifyuibuilder/check_update_theme_persists_value_changes.py", "service": "amplifyuibuilder"} {"check_id": "apigateway.api-key-customer-supplied-value-round-trip", "deployments": [], "key": "apigateway/api-key-customer-supplied-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey"], "path": "behavioral/apigateway/check_api_key_customer_supplied_value_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.api-key-lifecycle", "deployments": [], "key": "apigateway/api-key-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:UpdateApiKey"], "path": "behavioral/apigateway/check_api_key_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.api-key-required-enforced-at-stage", "deployments": [], "key": "apigateway/api-key-required-enforced-at-stage", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetApiKey", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateApiKey", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_api_key_required_enforced_at_stage.py", "service": "apigateway"} {"check_id": "apigateway.api-key-update-and-list", "deployments": [], "key": "apigateway/api-key-update-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:GetApiKeys", "apigateway:UpdateApiKey"], "path": "behavioral/apigateway/check_api_key_update_and_list.py", "service": "apigateway"} {"check_id": "apigateway.apigw-apikeyrequired-mismatched-key-rejected-before-proxy-integration", "deployments": [], "key": "apigateway/apigw-apikeyrequired-mismatched-key-rejected-before-proxy-integration", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateUsagePlan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/apigateway/check_apigw_apikeyrequired_mismatched_key_rejected_before_proxy_integration.py", "service": "apigateway"} {"check_id": "apigateway.apigw-cache-key-parameters-index-the-stage-cache-per-declared-key-only", "deployments": [], "key": "apigateway/apigw-cache-key-parameters-index-the-stage-cache-per-declared-key-only", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageCache", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_apigw_cache_key_parameters_index_the_stage_cache_per_declared_key_only.py", "service": "apigateway"} {"check_id": "apigateway.apigw-concurrent-invocations-through-one-stage-keep-per-request-identity", "deployments": [], "key": "apigateway/apigw-concurrent-invocations-through-one-stage-keep-per-request-identity", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_concurrent_invocations_through_one_stage_keep_per_request_identity.py", "service": "apigateway"} {"check_id": "apigateway.apigw-cors-preflight-served-from-mock-options-header-mappings", "deployments": [], "key": "apigateway/apigw-cors-preflight-served-from-mock-options-header-mappings", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_cors_preflight_served_from_mock_options_header_mappings.py", "service": "apigateway"} {"check_id": "apigateway.apigw-default-execute-api-endpoint-disabled-returns-403-until-reenabled", "deployments": [], "key": "apigateway/apigw-default-execute-api-endpoint-disabled-returns-403-until-reenabled", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_apigw_default_execute_api_endpoint_disabled_returns_403_until_reenabled.py", "service": "apigateway"} {"check_id": "apigateway.apigw-extended-request-id-is-minted-per-api-per-request-not-echoed", "deployments": [], "key": "apigateway/apigw-extended-request-id-is-minted-per-api-per-request-not-echoed", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_extended_request_id_is_minted_per_api_per_request_not_echoed.py", "service": "apigateway"} {"check_id": "apigateway.apigw-gateway-response-customization-is-served-for-an-unmatched-route", "deployments": [], "key": "apigateway/apigw-gateway-response-customization-is-served-for-an-unmatched-route", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetGatewayResponse", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_gateway_response_customization_is_served_for_an_unmatched_route.py", "service": "apigateway"} {"check_id": "apigateway.apigw-gateway-response-messagestring-renders-prequoted-error-message", "deployments": [], "key": "apigateway/apigw-gateway-response-messagestring-renders-prequoted-error-message", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetGatewayResponse", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_gateway_response_messagestring_renders_prequoted_error_message.py", "service": "apigateway"} {"check_id": "apigateway.apigw-header-parameter-required-rejected-case-insensitive-match", "deployments": [], "key": "apigateway/apigw-header-parameter-required-rejected-case-insensitive-match", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_header_parameter_required_rejected_case_insensitive_match.py", "service": "apigateway"} {"check_id": "apigateway.apigw-http-proxy-passes-cors-header-plain-http-integration-drops-it", "deployments": [], "key": "apigateway/apigw-http-proxy-passes-cors-header-plain-http-integration-drops-it", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_http_proxy_passes_cors_header_plain_http_integration_drops_it.py", "service": "apigateway"} {"check_id": "apigateway.apigw-iam-auth-unknown-access-key-rejected-at-stage", "deployments": [], "key": "apigateway/apigw-iam-auth-unknown-access-key-rejected-at-stage", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_iam_auth_unknown_access_key_rejected_at_stage.py", "service": "apigateway"} {"check_id": "apigateway.apigw-iam-auth-unsigned-request-rejected-at-stage", "deployments": [], "key": "apigateway/apigw-iam-auth-unsigned-request-rejected-at-stage", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_iam_auth_unsigned_request_rejected_at_stage.py", "service": "apigateway"} {"check_id": "apigateway.apigw-iam-auth-wrong-secret-signature-rejected-at-stage", "deployments": [], "key": "apigateway/apigw-iam-auth-wrong-secret-signature-rejected-at-stage", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_iam_auth_wrong_secret_signature_rejected_at_stage.py", "service": "apigateway"} {"check_id": "apigateway.apigw-import-rest-api-aws-proxy-integration-deploys-and-invokes-lambda", "deployments": [], "key": "apigateway/apigw-import-rest-api-aws-proxy-integration-deploys-and-invokes-lambda", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:ImportRestApi", "apigateway:TagResource", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigateway/check_apigw_import_rest_api_aws_proxy_integration_deploys_and_invokes_lambda.py", "service": "apigateway"} {"check_id": "apigateway.apigw-import-rest-api-fail-on-warnings-rejects-and-leaves-no-api-behind", "deployments": [], "key": "apigateway/apigw-import-rest-api-fail-on-warnings-rejects-and-leaves-no-api-behind", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetRestApis", "apigateway:ImportRestApi"], "path": "behavioral/apigateway/check_apigw_import_rest_api_fail_on_warnings_rejects_and_leaves_no_api_behind.py", "service": "apigateway"} {"check_id": "apigateway.apigw-integration-response-parameters-evaluate-context-api-account-and-route-vars", "deployments": [], "key": "apigateway/apigw-integration-response-parameters-evaluate-context-api-account-and-route-vars", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_integration_response_parameters_evaluate_context_api_account_and_route_vars.py", "service": "apigateway"} {"check_id": "apigateway.apigw-invoke-lambda-proxy", "deployments": [], "key": "apigateway/apigw-invoke-lambda-proxy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:TestInvokeMethod", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_apigw_invoke_lambda_proxy.py", "service": "apigateway"} {"check_id": "apigateway.apigw-invoke-mock-integration", "deployments": [], "key": "apigateway/apigw-invoke-mock-integration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_apigw_invoke_mock_integration.py", "service": "apigateway"} {"check_id": "apigateway.apigw-payload-over-the-ten-megabyte-limit-rejected-with-413", "deployments": [], "key": "apigateway/apigw-payload-over-the-ten-megabyte-limit-rejected-with-413", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_payload_over_the_ten_megabyte_limit_rejected_with_413.py", "service": "apigateway"} {"check_id": "apigateway.apigw-put-rest-api-warnings-transient-and-strict-overwrite-preserves-state", "deployments": [], "key": "apigateway/apigw-put-rest-api-warnings-transient-and-strict-overwrite-preserves-state", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:ImportRestApi", "apigateway:PutRestApi", "apigateway:TagResource"], "path": "behavioral/apigateway/check_apigw_put_rest_api_warnings_transient_and_strict_overwrite_preserves_state.py", "service": "apigateway"} {"check_id": "apigateway.apigw-request-parameter-required-rejection-happens-before-the-integration", "deployments": [], "key": "apigateway/apigw-request-parameter-required-rejection-happens-before-the-integration", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_request_parameter_required_rejection_happens_before_the_integration.py", "service": "apigateway"} {"check_id": "apigateway.apigw-request-template-selected-by-content-type-drives-mock-status", "deployments": [], "key": "apigateway/apigw-request-template-selected-by-content-type-drives-mock-status", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_request_template_selected_by_content_type_drives_mock_status.py", "service": "apigateway"} {"check_id": "apigateway.apigw-request-validator-selects-bad-request-body-vs-parameters-gateway-responses", "deployments": [], "key": "apigateway/apigw-request-validator-selects-bad-request-body-vs-parameters-gateway-responses", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateModel", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateMethod"], "path": "behavioral/apigateway/check_apigw_request_validator_selects_bad_request_body_vs_parameters_gateway_responses.py", "service": "apigateway"} {"check_id": "apigateway.apigw-response-compression-gzips-above-the-minimum-and-not-below", "deployments": [], "key": "apigateway/apigw-response-compression-gzips-above-the-minimum-and-not-below", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_apigw_response_compression_gzips_above_the_minimum_and_not_below.py", "service": "apigateway"} {"check_id": "apigateway.apigw-response-header-mapping-evaluates-context-and-stage-variables", "deployments": [], "key": "apigateway/apigw-response-header-mapping-evaluates-context-and-stage-variables", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_response_header_mapping_evaluates_context_and_stage_variables.py", "service": "apigateway"} {"check_id": "apigateway.apigw-response-override-status-requires-numeric-value", "deployments": [], "key": "apigateway/apigw-response-override-status-requires-numeric-value", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_response_override_status_requires_numeric_value.py", "service": "apigateway"} {"check_id": "apigateway.apigw-response-template-selected-by-accept-header", "deployments": [], "key": "apigateway/apigw-response-template-selected-by-accept-header", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_response_template_selected_by_accept_header.py", "service": "apigateway"} {"check_id": "apigateway.apigw-stage-cache-serves-a-stale-body-until-flush-invalidates-it", "deployments": [], "key": "apigateway/apigw-stage-cache-serves-a-stale-body-until-flush-invalidates-it", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_apigw_stage_cache_serves_a_stale_body_until_flush_invalidates_it.py", "service": "apigateway"} {"check_id": "apigateway.apigw-stage-method-settings-throttle-returns-default-too-many-requests", "deployments": [], "key": "apigateway/apigw-stage-method-settings-throttle-returns-default-too-many-requests", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_apigw_stage_method_settings_throttle_returns_default_too_many_requests.py", "service": "apigateway"} {"check_id": "apigateway.apigw-stage-variable-selects-a-different-backend-per-stage-from-one-deployment", "deployments": [], "key": "apigateway/apigw-stage-variable-selects-a-different-backend-per-stage-from-one-deployment", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_apigw_stage_variable_selects_a_different_backend_per_stage_from_one_deployment.py", "service": "apigateway"} {"check_id": "apigateway.apigw-strict-passthrough-rejects-an-unmapped-content-type-with-415", "deployments": [], "key": "apigateway/apigw-strict-passthrough-rejects-an-unmapped-content-type-with-415", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateIntegration"], "path": "behavioral/apigateway/check_apigw_strict_passthrough_rejects_an_unmapped_content_type_with_415.py", "service": "apigateway"} {"check_id": "apigateway.apigw-usage-plan-daily-quota-exhaustion-rejects-over-http", "deployments": [], "key": "apigateway/apigw-usage-plan-daily-quota-exhaustion-rejects-over-http", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:GetUsage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_apigw_usage_plan_daily_quota_exhaustion_rejects_over_http.py", "service": "apigateway"} {"check_id": "apigateway.apigw-vtl-request-and-response-templates-transform-a-real-body", "deployments": [], "key": "apigateway/apigw-vtl-request-and-response-templates-transform-a-real-body", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_apigw_vtl_request_and_response_templates_transform_a_real_body.py", "service": "apigateway"} {"check_id": "apigateway.apikey-not-in-usage-plan-rejected", "deployments": [], "key": "apigateway/apikey-not-in-usage-plan-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetApiKey", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_apikey_not_in_usage_plan_rejected.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-cache-ttl-window", "deployments": [], "key": "apigateway/authorizer-cache-ttl-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:TestInvokeAuthorizer", "apigateway:UpdateAuthorizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_authorizer_cache_ttl_window.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-cache-ttl-zero-disables-caching", "deployments": [], "key": "apigateway/authorizer-cache-ttl-zero-disables-caching", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_authorizer_cache_ttl_zero_disables_caching.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-deletion-blocked-while-referenced-rejected", "deployments": [], "key": "apigateway/authorizer-deletion-blocked-while-referenced-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_authorizer_deletion_blocked_while_referenced_rejected.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-lifecycle", "deployments": [], "key": "apigateway/authorizer-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:UpdateAuthorizer"], "path": "behavioral/apigateway/check_authorizer_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-missing-uri-fails", "deployments": [], "key": "apigateway/authorizer-missing-uri-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetAuthorizers", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_authorizer_missing_uri_fails.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-protected-method-invoke-flow", "deployments": [], "key": "apigateway/authorizer-protected-method-invoke-flow", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeAuthorizer", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_authorizer_protected_method_invoke_flow.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-token-missing-identitysource-badrequest", "deployments": [], "key": "apigateway/authorizer-token-missing-identitysource-badrequest", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetAuthorizers"], "path": "behavioral/apigateway/check_authorizer_token_missing_identitysource_badrequest.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-ttl-caches-result-within-window", "deployments": [], "key": "apigateway/authorizer-ttl-caches-result-within-window", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_authorizer_ttl_caches_result_within_window.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-ttl-default-and-update-reflected", "deployments": [], "key": "apigateway/authorizer-ttl-default-and-update-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:TestInvokeAuthorizer", "apigateway:UpdateAuthorizer"], "path": "behavioral/apigateway/check_authorizer_ttl_default_and_update_reflected.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-ttl-exceeds-max-rejected", "deployments": [], "key": "apigateway/authorizer-ttl-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetAuthorizers", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_authorizer_ttl_exceeds_max_rejected.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-ttl-out-of-range-rejected", "deployments": [], "key": "apigateway/authorizer-ttl-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetAuthorizers", "apigateway:UpdateAuthorizer"], "path": "behavioral/apigateway/check_authorizer_ttl_out_of_range_rejected.py", "service": "apigateway"} {"check_id": "apigateway.authorizer-ttl-zero-disables-caching", "deployments": [], "key": "apigateway/authorizer-ttl-zero-disables-caching", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_authorizer_ttl_zero_disables_caching.py", "service": "apigateway"} {"check_id": "apigateway.base-path-mapping-duplicate-basepath-rejected", "deployments": [], "key": "apigateway/base-path-mapping-duplicate-basepath-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_base_path_mapping_duplicate_basepath_rejected.py", "service": "apigateway"} {"check_id": "apigateway.base-path-mapping-duplicate-conflict-rejected", "deployments": [], "key": "apigateway/base-path-mapping-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_base_path_mapping_duplicate_conflict_rejected.py", "service": "apigateway"} {"check_id": "apigateway.base-path-mapping-lifecycle", "deployments": [], "key": "apigateway/base-path-mapping-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateBasePathMapping"], "path": "behavioral/apigateway/check_base_path_mapping_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.cache-cluster-enable-flush-lifecycle", "deployments": [], "key": "apigateway/cache-cluster-enable-flush-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_cache_cluster_enable_flush_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.canary-deployment-promote-flow", "deployments": [], "key": "apigateway/canary-deployment-promote-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_canary_deployment_promote_flow.py", "service": "apigateway"} {"check_id": "apigateway.canary-deployment-traffic-shift-and-promotion", "deployments": [], "key": "apigateway/canary-deployment-traffic-shift-and-promotion", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_canary_deployment_traffic_shift_and_promotion.py", "service": "apigateway"} {"check_id": "apigateway.canary-deployment-without-stage-name-rejected", "deployments": [], "key": "apigateway/canary-deployment-without-stage-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_canary_deployment_without_stage_name_rejected.py", "service": "apigateway"} {"check_id": "apigateway.canary-fifty-percent-split-serves-both-versions-within-tolerance", "deployments": [], "key": "apigateway/canary-fifty-percent-split-serves-both-versions-within-tolerance", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_canary_fifty_percent_split_serves_both_versions_within_tolerance.py", "service": "apigateway"} {"check_id": "apigateway.client-certificate-delete-while-assigned-rejected", "deployments": [], "key": "apigateway/client-certificate-delete-while-assigned-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteClientCertificate", "apigateway:DeleteRestApi", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_client_certificate_delete_while_assigned_rejected.py", "service": "apigateway"} {"check_id": "apigateway.client-certificate-expiration-tracked", "deployments": [], "key": "apigateway/client-certificate-expiration-tracked", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate"], "path": "behavioral/apigateway/check_client_certificate_expiration_tracked.py", "service": "apigateway"} {"check_id": "apigateway.client-certificate-expiration-window", "deployments": [], "key": "apigateway/client-certificate-expiration-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:GetClientCertificates"], "path": "behavioral/apigateway/check_client_certificate_expiration_window.py", "service": "apigateway"} {"check_id": "apigateway.client-certificate-lifecycle", "deployments": [], "key": "apigateway/client-certificate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:UpdateClientCertificate"], "path": "behavioral/apigateway/check_client_certificate_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-authorizer-same-config-no-dedup", "deployments": [], "key": "apigateway/concurrent-create-authorizer-same-config-no-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizers", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_concurrent_create_authorizer_same_config_no_dedup.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-base-path-mapping-duplicate-race", "deployments": [], "key": "apigateway/concurrent-create-base-path-mapping-duplicate-race", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetBasePathMappings", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcEndpoints"], "path": "behavioral/apigateway/check_concurrent_create_base_path_mapping_duplicate_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-base-path-mapping-race", "deployments": [], "key": "apigateway/concurrent-create-base-path-mapping-race", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMappings", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_concurrent_create_base_path_mapping_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-deployment-serializes-stage-update", "deployments": [], "key": "apigateway/concurrent-create-deployment-serializes-stage-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_concurrent_create_deployment_serializes_stage_update.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-deployment-stage-pointer-race", "deployments": [], "key": "apigateway/concurrent-create-deployment-stage-pointer-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_concurrent_create_deployment_stage_pointer_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-documentation-version-race", "deployments": [], "key": "apigateway/concurrent-create-documentation-version-race", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationVersion", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersions"], "path": "behavioral/apigateway/check_concurrent_create_documentation_version_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-domain-name-access-association-duplicate-race", "deployments": [], "key": "apigateway/concurrent-create-domain-name-access-association-duplicate-race", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_concurrent_create_domain_name_access_association_duplicate_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-domain-name-access-association-race", "deployments": [], "key": "apigateway/concurrent-create-domain-name-access-association-race", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainName", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcEndpoints"], "path": "behavioral/apigateway/check_concurrent_create_domain_name_access_association_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-usage-plan-key-invalid-keytype-rejected", "deployments": [], "key": "apigateway/concurrent-create-usage-plan-key-invalid-keytype-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_concurrent_create_usage_plan_key_invalid_keytype_rejected.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-usage-plan-key-nonexistent-key-rejected", "deployments": [], "key": "apigateway/concurrent-create-usage-plan-key-nonexistent-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_concurrent_create_usage_plan_key_nonexistent_key_rejected.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-create-usage-plan-key-same-key-dedup", "deployments": [], "key": "apigateway/concurrent-create-usage-plan-key-same-key-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_concurrent_create_usage_plan_key_same_key_dedup.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-delete-and-update-stage-serializes", "deployments": [], "key": "apigateway/concurrent-delete-and-update-stage-serializes", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_concurrent_delete_and_update_stage_serializes.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-delete-domain-name-access-association-race", "deployments": [], "key": "apigateway/concurrent-delete-domain-name-access-association-race", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints"], "path": "behavioral/apigateway/check_concurrent_delete_domain_name_access_association_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-delete-usage-plan-key-double-delete-rejected", "deployments": [], "key": "apigateway/concurrent-delete-usage-plan-key-double-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_concurrent_delete_usage_plan_key_double_delete_rejected.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-deployment-creation-conflict", "deployments": [], "key": "apigateway/concurrent-deployment-creation-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_concurrent_deployment_creation_conflict.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-domain-name-access-association-duplicate", "deployments": [], "key": "apigateway/concurrent-domain-name-access-association-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainName", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpoints"], "path": "behavioral/apigateway/check_concurrent_domain_name_access_association_duplicate.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-domain-name-access-association-request-dedup", "deployments": [], "key": "apigateway/concurrent-domain-name-access-association-request-dedup", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpoints", "ec2:ModifyVpcAttribute"], "path": "behavioral/apigateway/check_concurrent_domain_name_access_association_request_dedup.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-duplicate-resource-creation-exactly-one-wins", "deployments": [], "key": "apigateway/concurrent-duplicate-resource-creation-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources"], "path": "behavioral/apigateway/check_concurrent_duplicate_resource_creation_exactly_one_wins.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-put-integration-overwrite-last-write-wins", "deployments": [], "key": "apigateway/concurrent-put-integration-overwrite-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_concurrent_put_integration_overwrite_last_write_wins.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-put-integration-response-race", "deployments": [], "key": "apigateway/concurrent-put-integration-response-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_concurrent_put_integration_response_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-put-integration-response-race-last-write-wins", "deployments": [], "key": "apigateway/concurrent-put-integration-response-race-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_concurrent_put_integration_response_race_last_write_wins.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-put-method-response-conflicting-updates", "deployments": [], "key": "apigateway/concurrent-put-method-response-conflicting-updates", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_concurrent_put_method_response_conflicting_updates.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-stage-update-serializes", "deployments": [], "key": "apigateway/concurrent-stage-update-serializes", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_concurrent_stage_update_serializes.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-tag-resource-merge", "deployments": [], "key": "apigateway/concurrent-tag-resource-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource", "apigateway:UntagResource"], "path": "behavioral/apigateway/check_concurrent_tag_resource_merge.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-tag-resource-merges-tags", "deployments": [], "key": "apigateway/concurrent-tag-resource-merges-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource"], "path": "behavioral/apigateway/check_concurrent_tag_resource_merges_tags.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-update-rest-api-patch-race", "deployments": [], "key": "apigateway/concurrent-update-rest-api-patch-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_concurrent_update_rest_api_patch_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-update-stage-last-write-wins", "deployments": [], "key": "apigateway/concurrent-update-stage-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_concurrent_update_stage_last_write_wins.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-update-usage-plan-throttle-race", "deployments": [], "key": "apigateway/concurrent-update-usage-plan-throttle-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_concurrent_update_usage_plan_throttle_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-usage-plan-key-association-race", "deployments": [], "key": "apigateway/concurrent-usage-plan-key-association-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_concurrent_usage_plan_key_association_race.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-usage-plan-key-duplicate-conflict", "deployments": [], "key": "apigateway/concurrent-usage-plan-key-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_concurrent_usage_plan_key_duplicate_conflict.py", "service": "apigateway"} {"check_id": "apigateway.concurrent-usage-plan-key-invalid-keytype-rejected", "deployments": [], "key": "apigateway/concurrent-usage-plan-key-invalid-keytype-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_concurrent_usage_plan_key_invalid_keytype_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-api-key-duplicate-value-conflict", "deployments": [], "key": "apigateway/create-api-key-duplicate-value-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:GetApiKeys"], "path": "behavioral/apigateway/check_create_api_key_duplicate_value_conflict.py", "service": "apigateway"} {"check_id": "apigateway.create-api-key-limit-exceeded-quota", "deployments": [], "key": "apigateway/create-api-key-limit-exceeded-quota", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_api_key_limit_exceeded_quota.py", "service": "apigateway"} {"check_id": "apigateway.create-authorizer-invalid-type-rejected", "deployments": [], "key": "apigateway/create-authorizer-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetAuthorizers"], "path": "behavioral/apigateway/check_create_authorizer_invalid_type_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-authorizer-negative-ttl-rejected", "deployments": [], "key": "apigateway/create-authorizer-negative-ttl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetAuthorizers", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_create_authorizer_negative_ttl_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-base-path-mapping-duplicate-rejected", "deployments": [], "key": "apigateway/create-base-path-mapping-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcEndpoints"], "path": "behavioral/apigateway/check_create_base_path_mapping_duplicate_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-base-path-mapping-nonexistent-restapi-fails", "deployments": [], "key": "apigateway/create-base-path-mapping-nonexistent-restapi-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetBasePathMappings", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_base_path_mapping_nonexistent_restapi_fails.py", "service": "apigateway"} {"check_id": "apigateway.create-base-path-mapping-nonexistent-stage-rejected", "deployments": [], "key": "apigateway/create-base-path-mapping-nonexistent-stage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetBasePathMappings", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_create_base_path_mapping_nonexistent_stage_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-base-path-mapping-unknown-restapi-returns-badrequest", "deployments": [], "key": "apigateway/create-base-path-mapping-unknown-restapi-returns-badrequest", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetBasePathMappings", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_base_path_mapping_unknown_restapi_returns_badrequest.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-and-stage-lifecycle", "deployments": [], "key": "apigateway/create-deployment-and-stage-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_create_deployment_and_stage_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-canary-on-missing-stage-rejected", "deployments": [], "key": "apigateway/create-deployment-canary-on-missing-stage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_deployment_canary_on_missing_stage_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-canary-settings-without-stage-name-rejected", "deployments": [], "key": "apigateway/create-deployment-canary-settings-without-stage-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_deployment_canary_settings_without_stage_name_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-empty-stage-name-ignores-stage-settings", "deployments": [], "key": "apigateway/create-deployment-empty-stage-name-ignores-stage-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_deployment_empty_stage_name_ignores_stage_settings.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-invalid-stage-name-characters-rejected", "deployments": [], "key": "apigateway/create-deployment-invalid-stage-name-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_deployment_invalid_stage_name_characters_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-method-without-integration-rejected", "deployments": [], "key": "apigateway/create-deployment-method-without-integration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_create_deployment_method_without_integration_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-server-snapshot-immutable-after-creation", "deployments": [], "key": "apigateway/create-deployment-server-snapshot-immutable-after-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetResource", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_deployment_server_snapshot_immutable_after_creation.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-stage-name-conflict-error-contract", "deployments": [], "key": "apigateway/create-deployment-stage-name-conflict-error-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_deployment_stage_name_conflict_error_contract.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-whitespace-stage-name-rejected", "deployments": [], "key": "apigateway/create-deployment-whitespace-stage-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_deployment_whitespace_stage_name_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-deployment-without-methods-fails", "deployments": [], "key": "apigateway/create-deployment-without-methods-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_create_deployment_without_methods_fails.py", "service": "apigateway"} {"check_id": "apigateway.create-documentation-part-duplicate-location-fails", "deployments": [], "key": "apigateway/create-documentation-part-duplicate-location-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationPart", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts"], "path": "behavioral/apigateway/check_create_documentation_part_duplicate_location_fails.py", "service": "apigateway"} {"check_id": "apigateway.create-documentation-part-duplicate-location-rejected", "deployments": [], "key": "apigateway/create-documentation-part-duplicate-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationPart", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart", "apigateway:GetDocumentationParts"], "path": "behavioral/apigateway/check_create_documentation_part_duplicate_location_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-documentation-part-invalid-location-type-rejected", "deployments": [], "key": "apigateway/create-documentation-part-invalid-location-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart", "apigateway:GetDocumentationParts"], "path": "behavioral/apigateway/check_create_documentation_part_invalid_location_type_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-documentation-version-duplicate-conflict", "deployments": [], "key": "apigateway/create-documentation-version-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationVersion", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersion", "apigateway:GetDocumentationVersions"], "path": "behavioral/apigateway/check_create_documentation_version_duplicate_conflict.py", "service": "apigateway"} {"check_id": "apigateway.create-domain-name-access-association-invalid-source-rejected", "deployments": [], "key": "apigateway/create-domain-name-access-association-invalid-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs"], "path": "behavioral/apigateway/check_create_domain_name_access_association_invalid_source_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-domain-name-access-association-without-vpce-fails", "deployments": [], "key": "apigateway/create-domain-name-access-association-without-vpce-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "ec2:ModifyVpcAttribute"], "path": "behavioral/apigateway/check_create_domain_name_access_association_without_vpce_fails.py", "service": "apigateway"} {"check_id": "apigateway.create-domain-name-duplicate-conflict", "deployments": [], "key": "apigateway/create-domain-name-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName"], "path": "behavioral/apigateway/check_create_domain_name_duplicate_conflict.py", "service": "apigateway"} {"check_id": "apigateway.create-domain-name-malformed-certificate-arn-rejected", "deployments": [], "key": "apigateway/create-domain-name-malformed-certificate-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName"], "path": "behavioral/apigateway/check_create_domain_name_malformed_certificate_arn_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-duplicate-domain-name-conflict", "deployments": [], "key": "apigateway/create-duplicate-domain-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName"], "path": "behavioral/apigateway/check_create_duplicate_domain_name_conflict.py", "service": "apigateway"} {"check_id": "apigateway.create-duplicate-stage-conflict", "deployments": [], "key": "apigateway/create-duplicate-stage-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_duplicate_stage_conflict.py", "service": "apigateway"} {"check_id": "apigateway.create-model-duplicate-name-rejected", "deployments": [], "key": "apigateway/create-model-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModel"], "path": "behavioral/apigateway/check_create_model_duplicate_name_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-model-invalid-content-type-rejected", "deployments": [], "key": "apigateway/create-model-invalid-content-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModel"], "path": "behavioral/apigateway/check_create_model_invalid_content_type_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-model-invalid-json-schema-rejected", "deployments": [], "key": "apigateway/create-model-invalid-json-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModel"], "path": "behavioral/apigateway/check_create_model_invalid_json_schema_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-resource-duplicate-pathpart-conflict", "deployments": [], "key": "apigateway/create-resource-duplicate-pathpart-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources"], "path": "behavioral/apigateway/check_create_resource_duplicate_pathpart_conflict.py", "service": "apigateway"} {"check_id": "apigateway.create-resource-duplicate-pathpart-conflict-rejected", "deployments": [], "key": "apigateway/create-resource-duplicate-pathpart-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResources"], "path": "behavioral/apigateway/check_create_resource_duplicate_pathpart_conflict_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-resource-hierarchy", "deployments": [], "key": "apigateway/create-resource-hierarchy", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources"], "path": "behavioral/apigateway/check_create_resource_hierarchy.py", "service": "apigateway"} {"check_id": "apigateway.create-resource-invalid-pathpart-rejected", "deployments": [], "key": "apigateway/create-resource-invalid-pathpart-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources"], "path": "behavioral/apigateway/check_create_resource_invalid_pathpart_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-rest-api-empty-name-rejected", "deployments": [], "key": "apigateway/create-rest-api-empty-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:GetRestApis"], "path": "behavioral/apigateway/check_create_rest_api_empty_name_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-rest-api-invalid-endpoint-configuration-type-rejected", "deployments": [], "key": "apigateway/create-rest-api-invalid-endpoint-configuration-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:GetRestApis"], "path": "behavioral/apigateway/check_create_rest_api_invalid_endpoint_configuration_type_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-rest-api-invalid-endpoint-type-rejected", "deployments": [], "key": "apigateway/create-rest-api-invalid-endpoint-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:GetRestApis"], "path": "behavioral/apigateway/check_create_rest_api_invalid_endpoint_type_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-rest-api-lifecycle", "deployments": [], "key": "apigateway/create-rest-api-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:GetRestApis", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_create_rest_api_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.create-stage-empty-stage-name-rejected", "deployments": [], "key": "apigateway/create-stage-empty-stage-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_stage_empty_stage_name_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-stage-nonexistent-deployment-rejected", "deployments": [], "key": "apigateway/create-stage-nonexistent-deployment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_create_stage_nonexistent_deployment_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-usage-plan-invalid-throttle-rate-rejected", "deployments": [], "key": "apigateway/create-usage-plan-invalid-throttle-rate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:GetUsagePlans"], "path": "behavioral/apigateway/check_create_usage_plan_invalid_throttle_rate_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-usage-plan-key-duplicate-fails", "deployments": [], "key": "apigateway/create-usage-plan-key-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_create_usage_plan_key_duplicate_fails.py", "service": "apigateway"} {"check_id": "apigateway.create-usage-plan-key-invalid-type-rejected", "deployments": [], "key": "apigateway/create-usage-plan-key-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_create_usage_plan_key_invalid_type_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-usage-plan-key-nonexistent-key-not-found", "deployments": [], "key": "apigateway/create-usage-plan-key-nonexistent-key-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_create_usage_plan_key_nonexistent_key_not_found.py", "service": "apigateway"} {"check_id": "apigateway.create-usage-plan-key-wrong-type-fails", "deployments": [], "key": "apigateway/create-usage-plan-key-wrong-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_create_usage_plan_key_wrong_type_fails.py", "service": "apigateway"} {"check_id": "apigateway.create-usage-plan-negative-quota-limit-rejected", "deployments": [], "key": "apigateway/create-usage-plan-negative-quota-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:GetUsagePlans"], "path": "behavioral/apigateway/check_create_usage_plan_negative_quota_limit_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-usage-plan-negative-throttle-rate-rejected", "deployments": [], "key": "apigateway/create-usage-plan-negative-throttle-rate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:GetUsagePlans"], "path": "behavioral/apigateway/check_create_usage_plan_negative_throttle_rate_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-vpc-link-empty-target-arns-rejected", "deployments": [], "key": "apigateway/create-vpc-link-empty-target-arns-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:GetVpcLinks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_create_vpc_link_empty_target_arns_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-vpc-link-empty-target-list-rejected", "deployments": [], "key": "apigateway/create-vpc-link-empty-target-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:GetVpcLinks", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_create_vpc_link_empty_target_list_rejected.py", "service": "apigateway"} {"check_id": "apigateway.create-vpc-link-invalid-target-arn-returns-badrequest", "deployments": [], "key": "apigateway/create-vpc-link-invalid-target-arn-returns-badrequest", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:GetVpcLinks", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_create_vpc_link_invalid_target_arn_returns_badrequest.py", "service": "apigateway"} {"check_id": "apigateway.create-vpc-link-invalid-target-badrequest", "deployments": [], "key": "apigateway/create-vpc-link-invalid-target-badrequest", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:GetVpcLinks", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_create_vpc_link_invalid_target_badrequest.py", "service": "apigateway"} {"check_id": "apigateway.create-vpc-link-missing-target-arns-rejected", "deployments": [], "key": "apigateway/create-vpc-link-missing-target-arns-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:GetVpcLinks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_create_vpc_link_missing_target_arns_rejected.py", "service": "apigateway"} {"check_id": "apigateway.custom-authorization-without-authorizer-id-rejected", "deployments": [], "key": "apigateway/custom-authorization-without-authorizer-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_custom_authorization_without_authorizer_id_rejected.py", "service": "apigateway"} {"check_id": "apigateway.custom-domain-basepath-remap-flow", "deployments": [], "key": "apigateway/custom-domain-basepath-remap-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateBasePathMapping"], "path": "behavioral/apigateway/check_custom_domain_basepath_remap_flow.py", "service": "apigateway"} {"check_id": "apigateway.deep-apigateway-3-apigw-private-public-host-rejected", "deployments": [], "key": "apigateway/deep-apigateway-3-apigw-private-public-host-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_deep_apigateway_3_apigw_private_public_host_rejected.py", "service": "apigateway"} {"check_id": "apigateway.deep-apigateway-3-apigw-private-vpce-invoke-policy-gated", "deployments": [], "key": "apigateway/deep-apigateway-3-apigw-private-vpce-invoke-policy-gated", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateVpcLink", "apigateway:DeleteRestApi", "apigateway:DeleteVpcLink", "apigateway:GetResources", "apigateway:GetVpcLink", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/apigateway/check_deep_apigateway_3_apigw_private_vpce_invoke_policy_gated.py", "service": "apigateway"} {"check_id": "apigateway.deep-apigateway-3-apigw-private-vpclink-positive", "deployments": [], "key": "apigateway/deep-apigateway-3-apigw-private-vpclink-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateVpcLink", "apigateway:DeleteRestApi", "apigateway:DeleteVpcLink", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:GetVpcLink", "apigateway:PutIntegration", "apigateway:PutMethod", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/apigateway/check_deep_apigateway_3_apigw_private_vpclink_positive.py", "service": "apigateway"} {"check_id": "apigateway.deep-apigw-integration-request-validator-modes-validate-only-what-they-declare", "deployments": [], "key": "apigateway/deep-apigw-integration-request-validator-modes-validate-only-what-they-declare", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources"], "path": "behavioral/apigateway/check_deep_apigw_integration_request_validator_modes_validate_only_what_they_declare.py", "service": "apigateway"} {"check_id": "apigateway.deep-apigw-integration-usage-plan-quota-meters-each-key-separately", "deployments": [], "key": "apigateway/deep-apigw-integration-usage-plan-quota-meters-each-key-separately", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources"], "path": "behavioral/apigateway/check_deep_apigw_integration_usage_plan_quota_meters_each_key_separately.py", "service": "apigateway"} {"check_id": "apigateway.delete-api-key-twice-not-found", "deployments": [], "key": "apigateway/delete-api-key-twice-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey"], "path": "behavioral/apigateway/check_delete_api_key_twice_not_found.py", "service": "apigateway"} {"check_id": "apigateway.delete-authorizer-attached-to-method-conflict", "deployments": [], "key": "apigateway/delete-authorizer-attached-to-method-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_authorizer_attached_to_method_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-authorizer-in-use-rejected", "deployments": [], "key": "apigateway/delete-authorizer-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_authorizer_in_use_rejected.py", "service": "apigateway"} {"check_id": "apigateway.delete-client-certificate-in-use-rejected", "deployments": [], "key": "apigateway/delete-client-certificate-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteClientCertificate", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_delete_client_certificate_in_use_rejected.py", "service": "apigateway"} {"check_id": "apigateway.delete-deployment-active-on-stage-rejected", "deployments": [], "key": "apigateway/delete-deployment-active-on-stage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteDeployment", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetDeployment", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateDeployment"], "path": "behavioral/apigateway/check_delete_deployment_active_on_stage_rejected.py", "service": "apigateway"} {"check_id": "apigateway.delete-deployment-referenced-by-stage-conflict", "deployments": [], "key": "apigateway/delete-deployment-referenced-by-stage-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteDeployment", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_deployment_referenced_by_stage_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-domain-name-in-use-succeeds", "deployments": [], "key": "apigateway/delete-domain-name-in-use-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_domain_name_in_use_succeeds.py", "service": "apigateway"} {"check_id": "apigateway.delete-domain-name-with-active-association-succeeds", "deployments": [], "key": "apigateway/delete-domain-name-with-active-association-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainName", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateSecurityGroup", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteVpcEndpoints", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs"], "path": "behavioral/apigateway/check_delete_domain_name_with_active_association_succeeds.py", "service": "apigateway"} {"check_id": "apigateway.delete-domain-name-with-active-basepath-mapping-conflict", "deployments": [], "key": "apigateway/delete-domain-name-with-active-basepath-mapping-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_domain_name_with_active_basepath_mapping_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-domain-name-with-active-mapping-cascades", "deployments": [], "key": "apigateway/delete-domain-name-with-active-mapping-cascades", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_domain_name_with_active_mapping_cascades.py", "service": "apigateway"} {"check_id": "apigateway.delete-domain-name-with-active-mapping-succeeds", "deployments": [], "key": "apigateway/delete-domain-name-with-active-mapping-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_domain_name_with_active_mapping_succeeds.py", "service": "apigateway"} {"check_id": "apigateway.delete-domain-name-with-dependent-base-path-mapping-conflict", "deployments": [], "key": "apigateway/delete-domain-name-with-dependent-base-path-mapping-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_domain_name_with_dependent_base_path_mapping_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-domain-name-with-mapping-rejected", "deployments": [], "key": "apigateway/delete-domain-name-with-mapping-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetBasePathMappings", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutMethod", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_delete_domain_name_with_mapping_rejected.py", "service": "apigateway"} {"check_id": "apigateway.delete-gateway-response-default-type-resets-state", "deployments": [], "key": "apigateway/delete-gateway-response-default-type-resets-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteGatewayResponse", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_delete_gateway_response_default_type_resets_state.py", "service": "apigateway"} {"check_id": "apigateway.delete-integration-response-nonexistent-error-contract", "deployments": [], "key": "apigateway/delete-integration-response-nonexistent-error-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteIntegrationResponse", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_integration_response_nonexistent_error_contract.py", "service": "apigateway"} {"check_id": "apigateway.delete-integration-response-then-get-not-found", "deployments": [], "key": "apigateway/delete-integration-response-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegrationResponse", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_integration_response_then_get_not_found.py", "service": "apigateway"} {"check_id": "apigateway.delete-integration-then-get-not-found", "deployments": [], "key": "apigateway/delete-integration-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_integration_then_get_not_found.py", "service": "apigateway"} {"check_id": "apigateway.delete-method-error-contract-no-bad-request", "deployments": [], "key": "apigateway/delete-method-error-contract-no-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_method_error_contract_no_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.delete-method-removes-integration", "deployments": [], "key": "apigateway/delete-method-removes-integration", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_method_removes_integration.py", "service": "apigateway"} {"check_id": "apigateway.delete-method-too-many-requests", "deployments": [], "key": "apigateway/delete-method-too-many-requests", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_method_too_many_requests.py", "service": "apigateway"} {"check_id": "apigateway.delete-model-referenced-by-method-conflict", "deployments": [], "key": "apigateway/delete-model-referenced-by-method-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_model_referenced_by_method_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-basepath-mapping-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-basepath-mapping-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteBasePathMapping", "apigateway:GetBasePathMapping", "apigateway:GetDomainNames"], "path": "behavioral/apigateway/check_delete_nonexistent_basepath_mapping_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-client-certificate-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-client-certificate-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate"], "path": "behavioral/apigateway/check_delete_nonexistent_client_certificate_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-documentation-part-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-documentation-part-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationPart", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart"], "path": "behavioral/apigateway/check_delete_nonexistent_documentation_part_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-domain-name-access-association-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-domain-name-access-association-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainName", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs"], "path": "behavioral/apigateway/check_delete_nonexistent_domain_name_access_association_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-domain-name-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-domain-name-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName", "apigateway:GetDomainNames"], "path": "behavioral/apigateway/check_delete_nonexistent_domain_name_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-gateway-response-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-gateway-response-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteGatewayResponse", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_delete_nonexistent_gateway_response_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-integration-response-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-integration-response-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegrationResponse", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_nonexistent_integration_response_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-integration-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-integration-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_delete_nonexistent_integration_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-nonexistent-vpc-link-returns-notfound", "deployments": [], "key": "apigateway/delete-nonexistent-vpc-link-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_delete_nonexistent_vpc_link_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.delete-resource-removes-child-methods", "deployments": [], "key": "apigateway/delete-resource-removes-child-methods", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_resource_removes_child_methods.py", "service": "apigateway"} {"check_id": "apigateway.delete-rest-api-racing-base-path-mapping-leaves-orphaned-mapping", "deployments": [], "key": "apigateway/delete-rest-api-racing-base-path-mapping-leaves-orphaned-mapping", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMappings", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_rest_api_racing_base_path_mapping_leaves_orphaned_mapping.py", "service": "apigateway"} {"check_id": "apigateway.delete-rest-api-twice-not-found", "deployments": [], "key": "apigateway/delete-rest-api-twice-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi"], "path": "behavioral/apigateway/check_delete_rest_api_twice_not_found.py", "service": "apigateway"} {"check_id": "apigateway.delete-root-resource-rejected", "deployments": [], "key": "apigateway/delete-root-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources"], "path": "behavioral/apigateway/check_delete_root_resource_rejected.py", "service": "apigateway"} {"check_id": "apigateway.delete-stage-referenced-by-base-path-mapping-conflict", "deployments": [], "key": "apigateway/delete-stage-referenced-by-base-path-mapping-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_stage_referenced_by_base_path_mapping_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-stage-then-get-not-found", "deployments": [], "key": "apigateway/delete-stage-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_delete_stage_then_get_not_found.py", "service": "apigateway"} {"check_id": "apigateway.delete-stage-with-base-path-mapping-conflict", "deployments": [], "key": "apigateway/delete-stage-with-base-path-mapping-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_delete_stage_with_base_path_mapping_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-usage-plan-with-active-key-cascades", "deployments": [], "key": "apigateway/delete-usage-plan-with-active-key-cascades", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:GetApiKey", "apigateway:GetUsagePlan", "apigateway:GetUsagePlanKey"], "path": "behavioral/apigateway/check_delete_usage_plan_with_active_key_cascades.py", "service": "apigateway"} {"check_id": "apigateway.delete-usage-plan-with-keys-cascades", "deployments": [], "key": "apigateway/delete-usage-plan-with-keys-cascades", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:GetApiKey", "apigateway:GetUsagePlan", "apigateway:GetUsagePlanKey"], "path": "behavioral/apigateway/check_delete_usage_plan_with_keys_cascades.py", "service": "apigateway"} {"check_id": "apigateway.delete-vpc-link-in-use-by-integration-conflict", "deployments": [], "key": "apigateway/delete-vpc-link-in-use-by-integration-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:CreateVpcLink", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:DeleteVpcLink", "apigateway:GetResources", "apigateway:GetVpcLink", "apigateway:PutIntegration", "apigateway:PutMethod", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_delete_vpc_link_in_use_by_integration_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-vpc-link-in-use-conflict", "deployments": [], "key": "apigateway/delete-vpc-link-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:CreateVpcLink", "apigateway:DeleteRestApi", "apigateway:DeleteVpcLink", "apigateway:GetResources", "apigateway:GetVpcLink", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateVpcLink", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_delete_vpc_link_in_use_conflict.py", "service": "apigateway"} {"check_id": "apigateway.delete-vpc-link-in-use-fails", "deployments": [], "key": "apigateway/delete-vpc-link-in-use-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:CreateVpcLink", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:DeleteVpcLink", "apigateway:GetResources", "apigateway:GetVpcLink", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateVpcLink", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_delete_vpc_link_in_use_fails.py", "service": "apigateway"} {"check_id": "apigateway.delete-vpc-link-in-use-rejected", "deployments": [], "key": "apigateway/delete-vpc-link-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateVpcLink", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:DeleteVpcLink", "apigateway:GetResources", "apigateway:GetVpcLink", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateVpcLink", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_delete_vpc_link_in_use_rejected.py", "service": "apigateway"} {"check_id": "apigateway.delete-vpc-link-with-active-integration-fails", "deployments": [], "key": "apigateway/delete-vpc-link-with-active-integration-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:CreateVpcLink", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:DeleteVpcLink", "apigateway:GetResources", "apigateway:GetVpcLink", "apigateway:PutIntegration", "apigateway:PutMethod", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_delete_vpc_link_with_active_integration_fails.py", "service": "apigateway"} {"check_id": "apigateway.deleting-one-stage-leaves-a-sibling-stage-of-the-same-deployment-serving", "deployments": [], "key": "apigateway/deleting-one-stage-leaves-a-sibling-stage-of-the-same-deployment-serving", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_deleting_one_stage_leaves_a_sibling_stage_of_the_same_deployment_serving.py", "service": "apigateway"} {"check_id": "apigateway.deploy-apigateway-1-cfn-deployment-snapshot-ordering", "deployments": [], "key": "apigateway/deploy-apigateway-1-cfn-deployment-snapshot-ordering", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetDeployment", "apigateway:GetRestApi", "apigateway:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway/check_deploy_apigateway_1_cfn_deployment_snapshot_ordering.py", "service": "apigateway"} {"check_id": "apigateway.deploy-apigateway-1-cfn-deployment-without-method-rejected", "deployments": [], "key": "apigateway/deploy-apigateway-1-cfn-deployment-without-method-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_apigateway_1_cfn_deployment_without_method_rejected.py", "service": "apigateway"} {"check_id": "apigateway.deploy-apigateway-2-control-stack-serves-https", "deployments": [], "key": "apigateway/deploy-apigateway-2-control-stack-serves-https", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetRestApis", "apigateway:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_apigateway_2_control_stack_serves_https.py", "service": "apigateway"} {"check_id": "apigateway.deploy-apigateway-2-create-rollback-removes-rest-api", "deployments": [], "key": "apigateway/deploy-apigateway-2-create-rollback-removes-rest-api", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetRestApi", "apigateway:GetRestApis", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_apigateway_2_create_rollback_removes_rest_api.py", "service": "apigateway"} {"check_id": "apigateway.deploy-apigateway-2-update-rollback-keeps-serving-good-deployment", "deployments": [], "key": "apigateway/deploy-apigateway-2-update-rollback-keeps-serving-good-deployment", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetDeployment", "apigateway:GetIntegrationResponse", "apigateway:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway/check_deploy_apigateway_2_update_rollback_keeps_serving_good_deployment.py", "service": "apigateway"} {"check_id": "apigateway.deploy-authorizer-cfn-enforces-identity-source", "deployments": [], "key": "apigateway/deploy-authorizer-cfn-enforces-identity-source", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_authorizer_cfn_enforces_identity_source.py", "service": "apigateway"} {"check_id": "apigateway.deploy-custom-domain-cfn-mapping-active", "deployments": [], "key": "apigateway/deploy-custom-domain-cfn-mapping-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_custom_domain_cfn_mapping_active.py", "service": "apigateway"} {"check_id": "apigateway.deploy-domain-name-basepathmapping-cfn-resolves", "deployments": [], "key": "apigateway/deploy-domain-name-basepathmapping-cfn-resolves", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_domain_name_basepathmapping_cfn_resolves.py", "service": "apigateway"} {"check_id": "apigateway.deploy-domain-name-cfn-behaves", "deployments": [], "key": "apigateway/deploy-domain-name-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_domain_name_cfn_behaves.py", "service": "apigateway"} {"check_id": "apigateway.deploy-rest-api-cfn-behaves", "deployments": [], "key": "apigateway/deploy-rest-api-cfn-behaves", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_rest_api_cfn_behaves.py", "service": "apigateway"} {"check_id": "apigateway.deploy-rest-api-cfn-stack-invoke-behaves", "deployments": [], "key": "apigateway/deploy-rest-api-cfn-stack-invoke-behaves", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetStage", "apigateway:TestInvokeMethod", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_rest_api_cfn_stack_invoke_behaves.py", "service": "apigateway"} {"check_id": "apigateway.deploy-rest-api-stage-cfn-invoke-behaves", "deployments": [], "key": "apigateway/deploy-rest-api-stage-cfn-invoke-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:GetRestApi", "apigateway:TestInvokeMethod", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_rest_api_stage_cfn_invoke_behaves.py", "service": "apigateway"} {"check_id": "apigateway.deploy-stage-with-variables-cfn-behaves", "deployments": [], "key": "apigateway/deploy-stage-with-variables-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_stage_with_variables_cfn_behaves.py", "service": "apigateway"} {"check_id": "apigateway.deploy-usage-plan-cfn-behaves", "deployments": [], "key": "apigateway/deploy-usage-plan-cfn-behaves", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetApiKey", "apigateway:GetUsage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_usage_plan_cfn_behaves.py", "service": "apigateway"} {"check_id": "apigateway.deploy-usage-plan-cfn-quota-enforced", "deployments": [], "key": "apigateway/deploy-usage-plan-cfn-quota-enforced", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetApiKey", "apigateway:GetUsage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_deploy_usage_plan_cfn_quota_enforced.py", "service": "apigateway"} {"check_id": "apigateway.deployed-stage-serves-mock-for-a-path-parameter-put-with-its-mapped-status", "deployments": [], "key": "apigateway/deployed-stage-serves-mock-for-a-path-parameter-put-with-its-mapped-status", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResource", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_deployed_stage_serves_mock_for_a_path_parameter_put_with_its_mapped_status.py", "service": "apigateway"} {"check_id": "apigateway.deployed-stage-serves-mock-integration", "deployments": [], "key": "apigateway/deployed-stage-serves-mock-integration", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:GetRestApis", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_deployed_stage_serves_mock_integration.py", "service": "apigateway"} {"check_id": "apigateway.deployment-created-date-timestamp-precision-preserved", "deployments": [], "key": "apigateway/deployment-created-date-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteDeployment", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_deployment_created_date_timestamp_precision_preserved.py", "service": "apigateway"} {"check_id": "apigateway.deployment-description-empty-string-preserved", "deployments": [], "key": "apigateway/deployment-description-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_deployment_description_empty_string_preserved.py", "service": "apigateway"} {"check_id": "apigateway.deployment-throttling-burst-limit-window", "deployments": [], "key": "apigateway/deployment-throttling-burst-limit-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_deployment_throttling_burst_limit_window.py", "service": "apigateway"} {"check_id": "apigateway.deployment-update-and-listing", "deployments": [], "key": "apigateway/deployment-update-and-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteDeployment", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateDeployment"], "path": "behavioral/apigateway/check_deployment_update_and_listing.py", "service": "apigateway"} {"check_id": "apigateway.deployment-update-description-and-list", "deployments": [], "key": "apigateway/deployment-update-description-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateDeployment"], "path": "behavioral/apigateway/check_deployment_update_description_and_list.py", "service": "apigateway"} {"check_id": "apigateway.documentation-part-duplicate-location-rejected", "deployments": [], "key": "apigateway/documentation-part-duplicate-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationPart", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart", "apigateway:GetDocumentationParts"], "path": "behavioral/apigateway/check_documentation_part_duplicate_location_rejected.py", "service": "apigateway"} {"check_id": "apigateway.documentation-part-lifecycle", "deployments": [], "key": "apigateway/documentation-part-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationPart", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart", "apigateway:UpdateDocumentationPart"], "path": "behavioral/apigateway/check_documentation_part_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.documentation-part-nested-properties-round-trip", "deployments": [], "key": "apigateway/documentation-part-nested-properties-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart"], "path": "behavioral/apigateway/check_documentation_part_nested_properties_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.documentation-part-properties-json-preserved", "deployments": [], "key": "apigateway/documentation-part-properties-json-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart"], "path": "behavioral/apigateway/check_documentation_part_properties_json_preserved.py", "service": "apigateway"} {"check_id": "apigateway.documentation-part-properties-json-round-trip", "deployments": [], "key": "apigateway/documentation-part-properties-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationPart", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart"], "path": "behavioral/apigateway/check_documentation_part_properties_json_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.documentation-part-properties-unicode-preserved", "deployments": [], "key": "apigateway/documentation-part-properties-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationPart", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart"], "path": "behavioral/apigateway/check_documentation_part_properties_unicode_preserved.py", "service": "apigateway"} {"check_id": "apigateway.documentation-version-duplicate-creation-rejected", "deployments": [], "key": "apigateway/documentation-version-duplicate-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersion", "apigateway:GetDocumentationVersions"], "path": "behavioral/apigateway/check_documentation_version_duplicate_creation_rejected.py", "service": "apigateway"} {"check_id": "apigateway.documentation-version-lifecycle", "deployments": [], "key": "apigateway/documentation-version-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationVersion", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersion", "apigateway:UpdateDocumentationVersion"], "path": "behavioral/apigateway/check_documentation_version_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.documentation-version-ordering", "deployments": [], "key": "apigateway/documentation-version-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersions"], "path": "behavioral/apigateway/check_documentation_version_ordering.py", "service": "apigateway"} {"check_id": "apigateway.documentation-version-snapshot-pinned", "deployments": [], "key": "apigateway/documentation-version-snapshot-pinned", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateDocumentationPart"], "path": "behavioral/apigateway/check_documentation_version_snapshot_pinned.py", "service": "apigateway"} {"check_id": "apigateway.domain-access-association-concurrent-reject-delete", "deployments": [], "key": "apigateway/domain-access-association-concurrent-reject-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "apigateway:RejectDomainNameAccessAssociation", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "ec2:ModifyVpcAttribute"], "path": "behavioral/apigateway/check_domain_access_association_concurrent_reject_delete.py", "service": "apigateway"} {"check_id": "apigateway.domain-name-access-association-lifecycle", "deployments": [], "key": "apigateway/domain-name-access-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "ec2:ModifyVpcAttribute"], "path": "behavioral/apigateway/check_domain_name_access_association_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.domain-name-lifecycle", "deployments": [], "key": "apigateway/domain-name-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName", "apigateway:UpdateDomainName"], "path": "behavioral/apigateway/check_domain_name_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.domain-name-regional-provisioning-status-window", "deployments": [], "key": "apigateway/domain-name-regional-provisioning-status-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName"], "path": "behavioral/apigateway/check_domain_name_regional_provisioning_status_window.py", "service": "apigateway"} {"check_id": "apigateway.domain-name-unicode-basepath-round-trip", "deployments": [], "key": "apigateway/domain-name-unicode-basepath-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetBasePathMappings", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_domain_name_unicode_basepath_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.duplicate-documentation-part-location-rejected", "deployments": [], "key": "apigateway/duplicate-documentation-part-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationPart", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts"], "path": "behavioral/apigateway/check_duplicate_documentation_part_location_rejected.py", "service": "apigateway"} {"check_id": "apigateway.e2e-api-key-usage-plan-throttle-enforcement", "deployments": [], "key": "apigateway/e2e-api-key-usage-plan-throttle-enforcement", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:GetUsage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_e2e_api_key_usage_plan_throttle_enforcement.py", "service": "apigateway"} {"check_id": "apigateway.e2e-authorizer-cache-invalidation-flow", "deployments": [], "key": "apigateway/e2e-authorizer-cache-invalidation-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteAuthorizer", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:FlushStageAuthorizersCache", "apigateway:GetAuthorizer", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_e2e_authorizer_cache_invalidation_flow.py", "service": "apigateway"} {"check_id": "apigateway.e2e-authorizer-protected-method-consequence", "deployments": [], "key": "apigateway/e2e-authorizer-protected-method-consequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeAuthorizer", "apigateway:TestInvokeMethod", "apigateway:UpdateAuthorizer", "apigateway:UpdateMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_e2e_authorizer_protected_method_consequence.py", "service": "apigateway"} {"check_id": "apigateway.e2e-custom-authorizer-protected-method-flow", "deployments": [], "key": "apigateway/e2e-custom-authorizer-protected-method-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteAuthorizer", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_e2e_custom_authorizer_protected_method_flow.py", "service": "apigateway"} {"check_id": "apigateway.e2e-custom-domain-base-path-routing", "deployments": [], "key": "apigateway/e2e-custom-domain-base-path-routing", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetBasePathMappings", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateBasePathMapping"], "path": "behavioral/apigateway/check_e2e_custom_domain_base_path_routing.py", "service": "apigateway"} {"check_id": "apigateway.e2e-custom-domain-basepath-routing-consequence", "deployments": [], "key": "apigateway/e2e-custom-domain-basepath-routing-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateBasePathMapping"], "path": "behavioral/apigateway/check_e2e_custom_domain_basepath_routing_consequence.py", "service": "apigateway"} {"check_id": "apigateway.e2e-deploy-invoke-teardown-consequence", "deployments": [], "key": "apigateway/e2e-deploy-invoke-teardown-consequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_e2e_deploy_invoke_teardown_consequence.py", "service": "apigateway"} {"check_id": "apigateway.e2e-domain-name-basepath-mapping-routes-to-stage", "deployments": [], "key": "apigateway/e2e-domain-name-basepath-mapping-routes-to-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_e2e_domain_name_basepath_mapping_routes_to_stage.py", "service": "apigateway"} {"check_id": "apigateway.e2e-full-api-lifecycle-deploy-invoke-teardown", "deployments": [], "key": "apigateway/e2e-full-api-lifecycle-deploy-invoke-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_e2e_full_api_lifecycle_deploy_invoke_teardown.py", "service": "apigateway"} {"check_id": "apigateway.e2e-full-api-lifecycle-through-invoke", "deployments": [], "key": "apigateway/e2e-full-api-lifecycle-through-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_e2e_full_api_lifecycle_through_invoke.py", "service": "apigateway"} {"check_id": "apigateway.e2e-missing-api-key-rejected", "deployments": [], "key": "apigateway/e2e-missing-api-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_e2e_missing_api_key_rejected.py", "service": "apigateway"} {"check_id": "apigateway.e2e-request-validator-model-enforced-on-invoke", "deployments": [], "key": "apigateway/e2e-request-validator-model-enforced-on-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateModel", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_e2e_request_validator_model_enforced_on_invoke.py", "service": "apigateway"} {"check_id": "apigateway.e2e-usage-plan-key-throttle-consequence", "deployments": [], "key": "apigateway/e2e-usage-plan-key-throttle-consequence", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:GetApiKey", "apigateway:GetResources", "apigateway:GetUsagePlan", "apigateway:GetUsagePlanKey", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_e2e_usage_plan_key_throttle_consequence.py", "service": "apigateway"} {"check_id": "apigateway.flush-caches-bypass-ttl", "deployments": [], "key": "apigateway/flush-caches-bypass-ttl", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageAuthorizersCache", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_flush_caches_bypass_ttl.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-authorizers-cache-bypasses-ttl", "deployments": [], "key": "apigateway/flush-stage-authorizers-cache-bypasses-ttl", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:FlushStageAuthorizersCache", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_flush_stage_authorizers_cache_bypasses_ttl.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-authorizers-cache-clears-authorizer-cache", "deployments": [], "key": "apigateway/flush-stage-authorizers-cache-clears-authorizer-cache", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:FlushStageAuthorizersCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_flush_stage_authorizers_cache_clears_authorizer_cache.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-authorizers-cache-forces-reinvoke", "deployments": [], "key": "apigateway/flush-stage-authorizers-cache-forces-reinvoke", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:FlushStageAuthorizersCache", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_flush_stage_authorizers_cache_forces_reinvoke.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-authorizers-cache-invalidates", "deployments": [], "key": "apigateway/flush-stage-authorizers-cache-invalidates", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:FlushStageAuthorizersCache", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_flush_stage_authorizers_cache_invalidates.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-authorizers-cache-no-authorizer-accepted", "deployments": [], "key": "apigateway/flush-stage-authorizers-cache-no-authorizer-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageAuthorizersCache", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_flush_stage_authorizers_cache_no_authorizer_accepted.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-authorizers-cache-rejects-missing-stage", "deployments": [], "key": "apigateway/flush-stage-authorizers-cache-rejects-missing-stage", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageAuthorizersCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_flush_stage_authorizers_cache_rejects_missing_stage.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-bypasses-ttl", "deployments": [], "key": "apigateway/flush-stage-cache-bypasses-ttl", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_flush_stage_cache_bypasses_ttl.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-clears-response-cache", "deployments": [], "key": "apigateway/flush-stage-cache-clears-response-cache", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_flush_stage_cache_clears_response_cache.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-clears-responses", "deployments": [], "key": "apigateway/flush-stage-cache-clears-responses", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_flush_stage_cache_clears_responses.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-clears-server-managed-cache", "deployments": [], "key": "apigateway/flush-stage-cache-clears-server-managed-cache", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:FlushStageAuthorizersCache", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_flush_stage_cache_clears_server_managed_cache.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-invalidates-managed-cache", "deployments": [], "key": "apigateway/flush-stage-cache-invalidates-managed-cache", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_flush_stage_cache_invalidates_managed_cache.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-on-uncached-stage-is-a-noop", "deployments": [], "key": "apigateway/flush-stage-cache-on-uncached-stage-is-a-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:FlushStageAuthorizersCache", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_flush_stage_cache_on_uncached_stage_is_a_noop.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-without-cache-enabled-accepted", "deployments": [], "key": "apigateway/flush-stage-cache-without-cache-enabled-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_flush_stage_cache_without_cache_enabled_accepted.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-without-caching-is-a-noop", "deployments": [], "key": "apigateway/flush-stage-cache-without-caching-is-a-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageAuthorizersCache", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_flush_stage_cache_without_caching_is_a_noop.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-without-cluster-is-a-no-op", "deployments": [], "key": "apigateway/flush-stage-cache-without-cluster-is-a-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_flush_stage_cache_without_cluster_is_a_no_op.py", "service": "apigateway"} {"check_id": "apigateway.flush-stage-cache-without-cluster-succeeds-as-noop", "deployments": [], "key": "apigateway/flush-stage-cache-without-cluster-succeeds-as-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_flush_stage_cache_without_cluster_succeeds_as_noop.py", "service": "apigateway"} {"check_id": "apigateway.gateway-response-default-4xx-customized-at-stage", "deployments": [], "key": "apigateway/gateway-response-default-4xx-customized-at-stage", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetGatewayResponse", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_gateway_response_default_4xx_customized_at_stage.py", "service": "apigateway"} {"check_id": "apigateway.gateway-response-invalid-type-rejected", "deployments": [], "key": "apigateway/gateway-response-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:GetGatewayResponses", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_gateway_response_invalid_type_rejected.py", "service": "apigateway"} {"check_id": "apigateway.gateway-response-lifecycle", "deployments": [], "key": "apigateway/gateway-response-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteGatewayResponse", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:PutGatewayResponse", "apigateway:UpdateGatewayResponse"], "path": "behavioral/apigateway/check_gateway_response_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.gateway-response-list-ordering-deterministic", "deployments": [], "key": "apigateway/gateway-response-list-ordering-deterministic", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponses", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_gateway_response_list_ordering_deterministic.py", "service": "apigateway"} {"check_id": "apigateway.generate-client-certificate-server-managed-pem", "deployments": [], "key": "apigateway/generate-client-certificate-server-managed-pem", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate"], "path": "behavioral/apigateway/check_generate_client_certificate_server_managed_pem.py", "service": "apigateway"} {"check_id": "apigateway.get-api-keys-list-pagination-order-stable", "deployments": [], "key": "apigateway/get-api-keys-list-pagination-order-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKeys"], "path": "behavioral/apigateway/check_get_api_keys_list_pagination_order_stable.py", "service": "apigateway"} {"check_id": "apigateway.get-api-keys-pagination-order", "deployments": [], "key": "apigateway/get-api-keys-pagination-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKeys"], "path": "behavioral/apigateway/check_get_api_keys_pagination_order.py", "service": "apigateway"} {"check_id": "apigateway.get-api-keys-pagination-order-by-creation", "deployments": [], "key": "apigateway/get-api-keys-pagination-order-by-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKeys"], "path": "behavioral/apigateway/check_get_api_keys_pagination_order_by_creation.py", "service": "apigateway"} {"check_id": "apigateway.get-api-keys-pagination-token-stable-order", "deployments": [], "key": "apigateway/get-api-keys-pagination-token-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKeys"], "path": "behavioral/apigateway/check_get_api_keys_pagination_token_stable_order.py", "service": "apigateway"} {"check_id": "apigateway.get-base-path-mapping-not-found-vs-badrequest", "deployments": [], "key": "apigateway/get-base-path-mapping-not-found-vs-badrequest", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_base_path_mapping_not_found_vs_badrequest.py", "service": "apigateway"} {"check_id": "apigateway.get-base-path-mappings-lists-created", "deployments": [], "key": "apigateway/get-base-path-mappings-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetBasePathMappings", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_base_path_mappings_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-client-certificates-lists-created", "deployments": [], "key": "apigateway/get-client-certificates-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:GetClientCertificates", "apigateway:UpdateClientCertificate"], "path": "behavioral/apigateway/check_get_client_certificates_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-deployment-nonexistent-not-found", "deployments": [], "key": "apigateway/get-deployment-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_deployment_nonexistent_not_found.py", "service": "apigateway"} {"check_id": "apigateway.get-deployments-lists-created", "deployments": [], "key": "apigateway/get-deployments-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_deployments_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-deployments-ordered-by-creation", "deployments": [], "key": "apigateway/get-deployments-ordered-by-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_deployments_ordered_by_creation.py", "service": "apigateway"} {"check_id": "apigateway.get-deployments-ordering", "deployments": [], "key": "apigateway/get-deployments-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_deployments_ordering.py", "service": "apigateway"} {"check_id": "apigateway.get-documentation-part-not-found", "deployments": [], "key": "apigateway/get-documentation-part-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationPart"], "path": "behavioral/apigateway/check_get_documentation_part_not_found.py", "service": "apigateway"} {"check_id": "apigateway.get-documentation-version-error-contract", "deployments": [], "key": "apigateway/get-documentation-version-error-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersion"], "path": "behavioral/apigateway/check_get_documentation_version_error_contract.py", "service": "apigateway"} {"check_id": "apigateway.get-documentation-version-nonexistent-returns-notfound", "deployments": [], "key": "apigateway/get-documentation-version-nonexistent-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersion"], "path": "behavioral/apigateway/check_get_documentation_version_nonexistent_returns_notfound.py", "service": "apigateway"} {"check_id": "apigateway.get-documentation-version-unauthorized", "deployments": [], "key": "apigateway/get-documentation-version-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersion", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_get_documentation_version_unauthorized.py", "service": "apigateway"} {"check_id": "apigateway.get-documentation-version-unauthorized-vs-notfound", "deployments": [], "key": "apigateway/get-documentation-version-unauthorized-vs-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersion"], "path": "behavioral/apigateway/check_get_documentation_version_unauthorized_vs_notfound.py", "service": "apigateway"} {"check_id": "apigateway.get-documentation-versions-lists-created", "deployments": [], "key": "apigateway/get-documentation-versions-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateDocumentationVersion", "apigateway:CreateRestApi", "apigateway:DeleteDocumentationVersion", "apigateway:DeleteRestApi", "apigateway:GetDocumentationVersions"], "path": "behavioral/apigateway/check_get_documentation_versions_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-domain-names-lists-created", "deployments": [], "key": "apigateway/get-domain-names-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainNames"], "path": "behavioral/apigateway/check_get_domain_names_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-export-conflict", "deployments": [], "key": "apigateway/get-export-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_export_conflict.py", "service": "apigateway"} {"check_id": "apigateway.get-export-generates-openapi-definition", "deployments": [], "key": "apigateway/get-export-generates-openapi-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_export_generates_openapi_definition.py", "service": "apigateway"} {"check_id": "apigateway.get-export-generates-valid-openapi-for-stage", "deployments": [], "key": "apigateway/get-export-generates-valid-openapi-for-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_export_generates_valid_openapi_for_stage.py", "service": "apigateway"} {"check_id": "apigateway.get-export-oas30-vs-swagger-format-differs-server-side", "deployments": [], "key": "apigateway/get-export-oas30-vs-swagger-format-differs-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_export_oas30_vs_swagger_format_differs_server_side.py", "service": "apigateway"} {"check_id": "apigateway.get-export-produces-openapi-spec", "deployments": [], "key": "apigateway/get-export-produces-openapi-spec", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_export_produces_openapi_spec.py", "service": "apigateway"} {"check_id": "apigateway.get-export-reflects-live-api-state", "deployments": [], "key": "apigateway/get-export-reflects-live-api-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_get_export_reflects_live_api_state.py", "service": "apigateway"} {"check_id": "apigateway.get-export-server-generates-cors-configuration", "deployments": [], "key": "apigateway/get-export-server-generates-cors-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_export_server_generates_cors_configuration.py", "service": "apigateway"} {"check_id": "apigateway.get-gateway-responses-lists-defaults-and-custom", "deployments": [], "key": "apigateway/get-gateway-responses-lists-defaults-and-custom", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponses", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_get_gateway_responses_lists_defaults_and_custom.py", "service": "apigateway"} {"check_id": "apigateway.get-integration-response-not-found-vs-badrequest", "deployments": [], "key": "apigateway/get-integration-response-not-found-vs-badrequest", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_integration_response_not_found_vs_badrequest.py", "service": "apigateway"} {"check_id": "apigateway.get-method-family-unauthorized-error-contract", "deployments": [], "key": "apigateway/get-method-family-unauthorized-error-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetMethodResponse", "apigateway:GetResource", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_method_family_unauthorized_error_contract.py", "service": "apigateway"} {"check_id": "apigateway.get-method-unauthorized-vs-not-found", "deployments": [], "key": "apigateway/get-method-unauthorized-vs-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_get_method_unauthorized_vs_not_found.py", "service": "apigateway"} {"check_id": "apigateway.get-model-template-and-models", "deployments": [], "key": "apigateway/get-model-template-and-models", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModelTemplate", "apigateway:GetModels"], "path": "behavioral/apigateway/check_get_model_template_and_models.py", "service": "apigateway"} {"check_id": "apigateway.get-model-template-generates-example-json", "deployments": [], "key": "apigateway/get-model-template-generates-example-json", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModelTemplate"], "path": "behavioral/apigateway/check_get_model_template_generates_example_json.py", "service": "apigateway"} {"check_id": "apigateway.get-model-template-generates-example-payload", "deployments": [], "key": "apigateway/get-model-template-generates-example-payload", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:GetModelTemplate", "apigateway:GetModels"], "path": "behavioral/apigateway/check_get_model_template_generates_example_payload.py", "service": "apigateway"} {"check_id": "apigateway.get-models-list-creation-order-preserved", "deployments": [], "key": "apigateway/get-models-list-creation-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModels"], "path": "behavioral/apigateway/check_get_models_list_creation_order_preserved.py", "service": "apigateway"} {"check_id": "apigateway.get-models-listing-order-matches-creation", "deployments": [], "key": "apigateway/get-models-listing-order-matches-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModels", "apigateway:UpdateModel"], "path": "behavioral/apigateway/check_get_models_listing_order_matches_creation.py", "service": "apigateway"} {"check_id": "apigateway.get-models-lists-created", "deployments": [], "key": "apigateway/get-models-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModels"], "path": "behavioral/apigateway/check_get_models_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-models-ordering-reflects-creation", "deployments": [], "key": "apigateway/get-models-ordering-reflects-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModels"], "path": "behavioral/apigateway/check_get_models_ordering_reflects_creation.py", "service": "apigateway"} {"check_id": "apigateway.get-request-validators-lists-created", "deployments": [], "key": "apigateway/get-request-validators-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRequestValidators"], "path": "behavioral/apigateway/check_get_request_validators_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-resource-nonexistent-not-found", "deployments": [], "key": "apigateway/get-resource-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources"], "path": "behavioral/apigateway/check_get_resource_nonexistent_not_found.py", "service": "apigateway"} {"check_id": "apigateway.get-resource-unauthorized", "deployments": [], "key": "apigateway/get-resource-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_get_resource_unauthorized.py", "service": "apigateway"} {"check_id": "apigateway.get-resources-hierarchical-listing-order", "deployments": [], "key": "apigateway/get-resources-hierarchical-listing-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources"], "path": "behavioral/apigateway/check_get_resources_hierarchical_listing_order.py", "service": "apigateway"} {"check_id": "apigateway.get-resources-hierarchical-listing-order-stable", "deployments": [], "key": "apigateway/get-resources-hierarchical-listing-order-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources"], "path": "behavioral/apigateway/check_get_resources_hierarchical_listing_order_stable.py", "service": "apigateway"} {"check_id": "apigateway.get-resources-ordering-reflects-creation", "deployments": [], "key": "apigateway/get-resources-ordering-reflects-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources"], "path": "behavioral/apigateway/check_get_resources_ordering_reflects_creation.py", "service": "apigateway"} {"check_id": "apigateway.get-rest-api-not-found", "deployments": [], "key": "apigateway/get-rest-api-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi"], "path": "behavioral/apigateway/check_get_rest_api_not_found.py", "service": "apigateway"} {"check_id": "apigateway.get-sdk-bad-request-unsupported-type", "deployments": [], "key": "apigateway/get-sdk-bad-request-unsupported-type", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetSdk", "apigateway:GetSdkType", "apigateway:GetSdkTypes", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_sdk_bad_request_unsupported_type.py", "service": "apigateway"} {"check_id": "apigateway.get-sdk-generates-artifact-for-supported-types", "deployments": [], "key": "apigateway/get-sdk-generates-artifact-for-supported-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetSdk", "apigateway:GetSdkType", "apigateway:GetSdkTypes", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_sdk_generates_artifact_for_supported_types.py", "service": "apigateway"} {"check_id": "apigateway.get-sdk-generates-downloadable-artifact", "deployments": [], "key": "apigateway/get-sdk-generates-downloadable-artifact", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetSdk", "apigateway:GetSdkType", "apigateway:GetSdkTypes", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_sdk_generates_downloadable_artifact.py", "service": "apigateway"} {"check_id": "apigateway.get-sdk-type-not-found", "deployments": [], "key": "apigateway/get-sdk-type-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetSdkType", "apigateway:GetSdkTypes"], "path": "behavioral/apigateway/check_get_sdk_type_not_found.py", "service": "apigateway"} {"check_id": "apigateway.get-sdk-type-unknown-id-rejected", "deployments": [], "key": "apigateway/get-sdk-type-unknown-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetSdkType", "apigateway:GetSdkTypes"], "path": "behavioral/apigateway/check_get_sdk_type_unknown_id_rejected.py", "service": "apigateway"} {"check_id": "apigateway.get-sdk-unsupported-type-fails", "deployments": [], "key": "apigateway/get-sdk-unsupported-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetSdk", "apigateway:GetSdkType", "apigateway:GetSdkTypes", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_get_sdk_unsupported_type_fails.py", "service": "apigateway"} {"check_id": "apigateway.get-stages-lists-created", "deployments": [], "key": "apigateway/get-stages-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_get_stages_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-usage-not-found", "deployments": [], "key": "apigateway/get-usage-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsage"], "path": "behavioral/apigateway/check_get_usage_not_found.py", "service": "apigateway"} {"check_id": "apigateway.get-usage-plan-key-not-found-vs-badrequest", "deployments": [], "key": "apigateway/get-usage-plan-key-not-found-vs-badrequest", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKey"], "path": "behavioral/apigateway/check_get_usage_plan_key_not_found_vs_badrequest.py", "service": "apigateway"} {"check_id": "apigateway.get-usage-plan-keys-lists-associated", "deployments": [], "key": "apigateway/get-usage-plan-keys-lists-associated", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_get_usage_plan_keys_lists_associated.py", "service": "apigateway"} {"check_id": "apigateway.get-usage-plan-keys-pagination-order", "deployments": [], "key": "apigateway/get-usage-plan-keys-pagination-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKeys"], "path": "behavioral/apigateway/check_get_usage_plan_keys_pagination_order.py", "service": "apigateway"} {"check_id": "apigateway.get-usage-plans-lists-created", "deployments": [], "key": "apigateway/get-usage-plans-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:GetUsagePlans"], "path": "behavioral/apigateway/check_get_usage_plans_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.get-vpc-link-nonexistent-not-found", "deployments": [], "key": "apigateway/get-vpc-link-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetVpcLink"], "path": "behavioral/apigateway/check_get_vpc_link_nonexistent_not_found.py", "service": "apigateway"} {"check_id": "apigateway.get-vpc-links-lists-created", "deployments": [], "key": "apigateway/get-vpc-links-lists-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:GetVpcLinks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_get_vpc_links_lists_created.py", "service": "apigateway"} {"check_id": "apigateway.greedy-proxy-and-path-parameter-routing", "deployments": [], "key": "apigateway/greedy-proxy-and-path-parameter-routing", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_greedy_proxy_and_path_parameter_routing.py", "service": "apigateway"} {"check_id": "apigateway.import-api-keys-bulk", "deployments": [], "key": "apigateway/import-api-keys-bulk", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteApiKey", "apigateway:GetApiKeys", "apigateway:ImportApiKeys"], "path": "behavioral/apigateway/check_import_api_keys_bulk.py", "service": "apigateway"} {"check_id": "apigateway.import-api-keys-bulk-create", "deployments": [], "key": "apigateway/import-api-keys-bulk-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:GetApiKeys", "apigateway:ImportApiKeys", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_api_keys_bulk_create.py", "service": "apigateway"} {"check_id": "apigateway.import-api-keys-bulk-creates-from-payload", "deployments": [], "key": "apigateway/import-api-keys-bulk-creates-from-payload", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:ImportApiKeys", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_api_keys_bulk_creates_from_payload.py", "service": "apigateway"} {"check_id": "apigateway.import-api-keys-bulk-server-validation", "deployments": [], "key": "apigateway/import-api-keys-bulk-server-validation", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:GetApiKeys", "apigateway:ImportApiKeys"], "path": "behavioral/apigateway/check_import_api_keys_bulk_server_validation.py", "service": "apigateway"} {"check_id": "apigateway.import-api-keys-bulk-then-list", "deployments": [], "key": "apigateway/import-api-keys-bulk-then-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:GetApiKey", "apigateway:GetApiKeys", "apigateway:GetUsagePlanKeys", "apigateway:ImportApiKeys", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_api_keys_bulk_then_list.py", "service": "apigateway"} {"check_id": "apigateway.import-api-keys-duplicate-value-rejected", "deployments": [], "key": "apigateway/import-api-keys-duplicate-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:GetApiKeys", "apigateway:ImportApiKeys", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_api_keys_duplicate_value_rejected.py", "service": "apigateway"} {"check_id": "apigateway.import-api-keys-invalid-format-rejected", "deployments": [], "key": "apigateway/import-api-keys-invalid-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:GetApiKeys", "apigateway:ImportApiKeys"], "path": "behavioral/apigateway/check_import_api_keys_invalid_format_rejected.py", "service": "apigateway"} {"check_id": "apigateway.import-api-keys-rollback-on-failonwarnings-rejected", "deployments": [], "key": "apigateway/import-api-keys-rollback-on-failonwarnings-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteApiKey", "apigateway:GetApiKeys", "apigateway:ImportApiKeys", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_api_keys_rollback_on_failonwarnings_rejected.py", "service": "apigateway"} {"check_id": "apigateway.import-documentation-parts-bulk", "deployments": [], "key": "apigateway/import-documentation-parts-bulk", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts", "apigateway:ImportDocumentationParts"], "path": "behavioral/apigateway/check_import_documentation_parts_bulk.py", "service": "apigateway"} {"check_id": "apigateway.import-documentation-parts-bulk-and-list", "deployments": [], "key": "apigateway/import-documentation-parts-bulk-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts", "apigateway:ImportDocumentationParts"], "path": "behavioral/apigateway/check_import_documentation_parts_bulk_and_list.py", "service": "apigateway"} {"check_id": "apigateway.import-documentation-parts-bulk-atomic", "deployments": [], "key": "apigateway/import-documentation-parts-bulk-atomic", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts", "apigateway:ImportDocumentationParts"], "path": "behavioral/apigateway/check_import_documentation_parts_bulk_atomic.py", "service": "apigateway"} {"check_id": "apigateway.import-documentation-parts-bulk-create", "deployments": [], "key": "apigateway/import-documentation-parts-bulk-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts", "apigateway:ImportDocumentationParts"], "path": "behavioral/apigateway/check_import_documentation_parts_bulk_create.py", "service": "apigateway"} {"check_id": "apigateway.import-documentation-parts-invalid-format-fails", "deployments": [], "key": "apigateway/import-documentation-parts-invalid-format-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts", "apigateway:ImportDocumentationParts"], "path": "behavioral/apigateway/check_import_documentation_parts_invalid_format_fails.py", "service": "apigateway"} {"check_id": "apigateway.import-documentation-parts-malformed-body-rejected", "deployments": [], "key": "apigateway/import-documentation-parts-malformed-body-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts", "apigateway:ImportDocumentationParts"], "path": "behavioral/apigateway/check_import_documentation_parts_malformed_body_rejected.py", "service": "apigateway"} {"check_id": "apigateway.import-documentation-parts-overwrite-mode", "deployments": [], "key": "apigateway/import-documentation-parts-overwrite-mode", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDocumentationPart", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDocumentationParts", "apigateway:ImportDocumentationParts"], "path": "behavioral/apigateway/check_import_documentation_parts_overwrite_mode.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-basepath-prepend-vs-split-resource-paths", "deployments": [], "key": "apigateway/import-rest-api-basepath-prepend-vs-split-resource-paths", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:ImportRestApi"], "path": "behavioral/apigateway/check_import_rest_api_basepath_prepend_vs_split_resource_paths.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-builds-full-resource-tree", "deployments": [], "key": "apigateway/import-rest-api-builds-full-resource-tree", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:ImportRestApi", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_rest_api_builds_full_resource_tree.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-creates-full-api", "deployments": [], "key": "apigateway/import-rest-api-creates-full-api", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:ImportRestApi"], "path": "behavioral/apigateway/check_import_rest_api_creates_full_api.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-from-openapi", "deployments": [], "key": "apigateway/import-rest-api-from-openapi", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:ImportRestApi", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_rest_api_from_openapi.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-invalid-openapi-fails", "deployments": [], "key": "apigateway/import-rest-api-invalid-openapi-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetRestApis", "apigateway:ImportRestApi"], "path": "behavioral/apigateway/check_import_rest_api_invalid_openapi_fails.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-malformed-spec-rejected", "deployments": [], "key": "apigateway/import-rest-api-malformed-spec-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:GetRestApis", "apigateway:ImportRestApi", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_rest_api_malformed_spec_rejected.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-parses-openapi-server-side", "deployments": [], "key": "apigateway/import-rest-api-parses-openapi-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:ImportRestApi", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_rest_api_parses_openapi_server_side.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-resolves-aws-pseudo-parameters-and-reresolves-on-overwrite", "deployments": [], "key": "apigateway/import-rest-api-resolves-aws-pseudo-parameters-and-reresolves-on-overwrite", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:ImportRestApi", "apigateway:PutRestApi", "apigateway:TagResource"], "path": "behavioral/apigateway/check_import_rest_api_resolves_aws_pseudo_parameters_and_reresolves_on_overwrite.py", "service": "apigateway"} {"check_id": "apigateway.import-rest-api-unknown-basepath-mode-rejected", "deployments": [], "key": "apigateway/import-rest-api-unknown-basepath-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:ImportRestApi"], "path": "behavioral/apigateway/check_import_rest_api_unknown_basepath_mode_rejected.py", "service": "apigateway"} {"check_id": "apigateway.integration-delete-cascade", "deployments": [], "key": "apigateway/integration-delete-cascade", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteIntegrationResponse", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_integration_delete_cascade.py", "service": "apigateway"} {"check_id": "apigateway.integration-delete-cascade-removes-responses", "deployments": [], "key": "apigateway/integration-delete-cascade-removes-responses", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteIntegrationResponse", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_integration_delete_cascade_removes_responses.py", "service": "apigateway"} {"check_id": "apigateway.integration-delete-cascades-responses", "deployments": [], "key": "apigateway/integration-delete-cascades-responses", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetIntegrationResponse", "apigateway:GetMethod", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateIntegration", "apigateway:UpdateIntegrationResponse"], "path": "behavioral/apigateway/check_integration_delete_cascades_responses.py", "service": "apigateway"} {"check_id": "apigateway.integration-delete-removes-integration", "deployments": [], "key": "apigateway/integration-delete-removes-integration", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_integration_delete_removes_integration.py", "service": "apigateway"} {"check_id": "apigateway.integration-mapping-template-base64-round-trip", "deployments": [], "key": "apigateway/integration-mapping-template-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_integration_mapping_template_base64_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.integration-request-template-base64-blob-round-trip", "deployments": [], "key": "apigateway/integration-request-template-base64-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_integration_request_template_base64_blob_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.integration-request-templates-unicode-round-trip", "deployments": [], "key": "apigateway/integration-request-templates-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_integration_request_templates_unicode_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.integration-response-delete-removes-response", "deployments": [], "key": "apigateway/integration-response-delete-removes-response", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegrationResponse", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateIntegrationResponse"], "path": "behavioral/apigateway/check_integration_response_delete_removes_response.py", "service": "apigateway"} {"check_id": "apigateway.invoke-method-without-required-api-key-denied", "deployments": [], "key": "apigateway/invoke-method-without-required-api-key-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_invoke_method_without_required_api_key_denied.py", "service": "apigateway"} {"check_id": "apigateway.method-response-integration-response-lifecycle", "deployments": [], "key": "apigateway/method-response-integration-response-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteIntegrationResponse", "apigateway:DeleteMethodResponse", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_method_response_integration_response_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.mock-selection-pattern-selects-status-and-headers", "deployments": [], "key": "apigateway/mock-selection-pattern-selects-status-and-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_mock_selection_pattern_selects_status_and_headers.py", "service": "apigateway"} {"check_id": "apigateway.model-invalid-schema-json-rejected", "deployments": [], "key": "apigateway/model-invalid-schema-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:GetModels"], "path": "behavioral/apigateway/check_model_invalid_schema_json_rejected.py", "service": "apigateway"} {"check_id": "apigateway.model-lifecycle", "deployments": [], "key": "apigateway/model-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:UpdateModel"], "path": "behavioral/apigateway/check_model_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.model-schema-invalid-json-rejected", "deployments": [], "key": "apigateway/model-schema-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel"], "path": "behavioral/apigateway/check_model_schema_invalid_json_rejected.py", "service": "apigateway"} {"check_id": "apigateway.model-schema-numeric-precision-round-trip", "deployments": [], "key": "apigateway/model-schema-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel"], "path": "behavioral/apigateway/check_model_schema_numeric_precision_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.model-schema-unicode-and-nested-json-round-trip", "deployments": [], "key": "apigateway/model-schema-unicode-and-nested-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModel"], "path": "behavioral/apigateway/check_model_schema_unicode_and_nested_json_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.model-schema-unicode-round-trip", "deployments": [], "key": "apigateway/model-schema-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:UpdateModel"], "path": "behavioral/apigateway/check_model_schema_unicode_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-create-api-key", "deployments": [], "key": "apigateway/op-contract-create-api-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:GetApiKey", "apigateway:GetApiKeys", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_op_contract_create_api_key.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-createModel", "deployments": [], "key": "apigateway/op-contract-createModel", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:GetModels", "apigateway:GetResources"], "path": "behavioral/apigateway/check_op_contract_create_model.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-createRequestValidator", "deployments": [], "key": "apigateway/op-contract-createRequestValidator", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRequestValidator", "apigateway:DeleteRestApi", "apigateway:GetRequestValidator", "apigateway:GetRequestValidators", "apigateway:GetResources"], "path": "behavioral/apigateway/check_op_contract_create_request_validator.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-create-resource", "deployments": [], "key": "apigateway/op-contract-create-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources"], "path": "behavioral/apigateway/check_op_contract_create_resource.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-createRestApi", "deployments": [], "key": "apigateway/op-contract-createRestApi", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApis"], "path": "behavioral/apigateway/check_op_contract_create_rest_api.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-createUsagePlan", "deployments": [], "key": "apigateway/op-contract-createUsagePlan", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:GetUsagePlans"], "path": "behavioral/apigateway/check_op_contract_create_usage_plan.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-deleteApiKey", "deployments": [], "key": "apigateway/op-contract-deleteApiKey", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey"], "path": "behavioral/apigateway/check_op_contract_delete_api_key.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-delete-authorizer", "deployments": [], "key": "apigateway/op-contract-delete-authorizer", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_op_contract_delete_authorizer.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-deleteDeployment", "deployments": [], "key": "apigateway/op-contract-deleteDeployment", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteDeployment", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_op_contract_delete_deployment.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-deleteMethod", "deployments": [], "key": "apigateway/op-contract-deleteMethod", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_op_contract_delete_method.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-delete-method-response", "deployments": [], "key": "apigateway/op-contract-delete-method-response", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteMethodResponse", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_op_contract_delete_method_response.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-delete-model", "deployments": [], "key": "apigateway/op-contract-delete-model", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetModel", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateMethod"], "path": "behavioral/apigateway/check_op_contract_delete_model.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-delete-request-validator", "deployments": [], "key": "apigateway/op-contract-delete-request-validator", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRequestValidator", "apigateway:DeleteRestApi", "apigateway:GetRequestValidator", "apigateway:GetRequestValidators"], "path": "behavioral/apigateway/check_op_contract_delete_request_validator.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-deleteResource", "deployments": [], "key": "apigateway/op-contract-deleteResource", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources"], "path": "behavioral/apigateway/check_op_contract_delete_resource.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-deleteRestApi", "deployments": [], "key": "apigateway/op-contract-deleteRestApi", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi"], "path": "behavioral/apigateway/check_op_contract_delete_rest_api.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-delete-stage", "deployments": [], "key": "apigateway/op-contract-delete-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:DeleteUsagePlan", "apigateway:GetResources", "apigateway:GetStage", "apigateway:GetUsagePlan", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_op_contract_delete_stage.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-delete-usage-plan-key", "deployments": [], "key": "apigateway/op-contract-delete-usage-plan-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetApiKey", "apigateway:GetUsagePlan", "apigateway:GetUsagePlanKey"], "path": "behavioral/apigateway/check_op_contract_delete_usage_plan_key.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-get-account", "deployments": [], "key": "apigateway/op-contract-get-account", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount"], "path": "behavioral/apigateway/check_op_contract_get_account.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getApiKey", "deployments": [], "key": "apigateway/op-contract-getApiKey", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey"], "path": "behavioral/apigateway/check_op_contract_get_api_key.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getAuthorizer", "deployments": [], "key": "apigateway/op-contract-getAuthorizer", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer"], "path": "behavioral/apigateway/check_op_contract_get_authorizer.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getAuthorizers", "deployments": [], "key": "apigateway/op-contract-getAuthorizers", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizers"], "path": "behavioral/apigateway/check_op_contract_get_authorizers.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getExport", "deployments": [], "key": "apigateway/op-contract-getExport", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetExport", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_op_contract_get_export.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getModelTemplate", "deployments": [], "key": "apigateway/op-contract-getModelTemplate", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModelTemplate"], "path": "behavioral/apigateway/check_op_contract_get_model_template.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getRequestValidator", "deployments": [], "key": "apigateway/op-contract-getRequestValidator", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRequestValidator"], "path": "behavioral/apigateway/check_op_contract_get_request_validator.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getRestApis", "deployments": [], "key": "apigateway/op-contract-getRestApis", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApis"], "path": "behavioral/apigateway/check_op_contract_get_rest_apis.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getSdk", "deployments": [], "key": "apigateway/op-contract-getSdk", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetSdk", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_op_contract_get_sdk.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getSdkType", "deployments": [], "key": "apigateway/op-contract-getSdkType", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetSdkType", "apigateway:GetSdkTypes"], "path": "behavioral/apigateway/check_op_contract_get_sdk_type.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getSdkTypes", "deployments": [], "key": "apigateway/op-contract-getSdkTypes", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetSdkTypes"], "path": "behavioral/apigateway/check_op_contract_get_sdk_types.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getStage", "deployments": [], "key": "apigateway/op-contract-getStage", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_op_contract_get_stage.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getUsagePlan", "deployments": [], "key": "apigateway/op-contract-getUsagePlan", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan"], "path": "behavioral/apigateway/check_op_contract_get_usage_plan.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-getUsagePlanKey", "deployments": [], "key": "apigateway/op-contract-getUsagePlanKey", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKey"], "path": "behavioral/apigateway/check_op_contract_get_usage_plan_key.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-putMethod", "deployments": [], "key": "apigateway/op-contract-putMethod", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_op_contract_put_method.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-putMethodResponse", "deployments": [], "key": "apigateway/op-contract-putMethodResponse", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_op_contract_put_method_response.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-testInvokeMethod", "deployments": [], "key": "apigateway/op-contract-testInvokeMethod", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_op_contract_test_invoke_method.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-updateAccount", "deployments": [], "key": "apigateway/op-contract-updateAccount", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount"], "path": "behavioral/apigateway/check_op_contract_update_account.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-updateAuthorizer", "deployments": [], "key": "apigateway/op-contract-updateAuthorizer", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:UpdateAuthorizer"], "path": "behavioral/apigateway/check_op_contract_update_authorizer.py", "service": "apigateway"} {"check_id": "apigateway.op-contract-updateRestApi", "deployments": [], "key": "apigateway/op-contract-updateRestApi", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_op_contract_update_rest_api.py", "service": "apigateway"} {"check_id": "apigateway.put-gateway-response-invalid-response-parameters-rejected", "deployments": [], "key": "apigateway/put-gateway-response-invalid-response-parameters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_put_gateway_response_invalid_response_parameters_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-gateway-response-invalid-status-code-fails", "deployments": [], "key": "apigateway/put-gateway-response-invalid-status-code-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_put_gateway_response_invalid_status_code_fails.py", "service": "apigateway"} {"check_id": "apigateway.put-gateway-response-invalid-status-code-rejected", "deployments": [], "key": "apigateway/put-gateway-response-invalid-status-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_put_gateway_response_invalid_status_code_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-gateway-response-malformed-statuscode-rejected", "deployments": [], "key": "apigateway/put-gateway-response-malformed-statuscode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponse", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_put_gateway_response_malformed_statuscode_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-gateway-response-server-side-default-override", "deployments": [], "key": "apigateway/put-gateway-response-server-side-default-override", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetGatewayResponses", "apigateway:PutGatewayResponse"], "path": "behavioral/apigateway/check_put_gateway_response_server_side_default_override.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-aws-service-proxy-credential-validation-rejected", "deployments": [], "key": "apigateway/put-integration-aws-service-proxy-credential-validation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway/check_put_integration_aws_service_proxy_credential_validation_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-invalid-type-fails", "deployments": [], "key": "apigateway/put-integration-invalid-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_integration_invalid_type_fails.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-invalid-uri-scheme-rejected", "deployments": [], "key": "apigateway/put-integration-invalid-uri-scheme-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_integration_invalid_uri_scheme_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-response-invalid-content-handling-rejected", "deployments": [], "key": "apigateway/put-integration-response-invalid-content-handling-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_put_integration_response_invalid_content_handling_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-response-selection-pattern-server-evaluated", "deployments": [], "key": "apigateway/put-integration-response-selection-pattern-server-evaluated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_put_integration_response_selection_pattern_server_evaluated.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-response-without-integration-rejected", "deployments": [], "key": "apigateway/put-integration-response-without-integration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_put_integration_response_without_integration_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-then-get", "deployments": [], "key": "apigateway/put-integration-then-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_integration_then_get.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-timeout-out-of-range-rejected", "deployments": [], "key": "apigateway/put-integration-timeout-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_integration_timeout_out_of_range_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-integration-without-method-not-found", "deployments": [], "key": "apigateway/put-integration-without-method-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_integration_without_method_not_found.py", "service": "apigateway"} {"check_id": "apigateway.put-method-custom-auth-without-authorizer", "deployments": [], "key": "apigateway/put-method-custom-auth-without-authorizer", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_method_custom_auth_without_authorizer.py", "service": "apigateway"} {"check_id": "apigateway.put-method-duplicate-conflict", "deployments": [], "key": "apigateway/put-method-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_method_duplicate_conflict.py", "service": "apigateway"} {"check_id": "apigateway.put-method-invalid-http-method-fails", "deployments": [], "key": "apigateway/put-method-invalid-http-method-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_method_invalid_http_method_fails.py", "service": "apigateway"} {"check_id": "apigateway.put-method-invalid-request-parameter-location-rejected", "deployments": [], "key": "apigateway/put-method-invalid-request-parameter-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_method_invalid_request_parameter_location_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-method-invalid-request-parameter-name-rejected", "deployments": [], "key": "apigateway/put-method-invalid-request-parameter-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_method_invalid_request_parameter_name_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-method-malformed-request-parameter-name-rejected", "deployments": [], "key": "apigateway/put-method-malformed-request-parameter-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_method_malformed_request_parameter_name_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-method-response-invalid-model-reference-rejected", "deployments": [], "key": "apigateway/put-method-response-invalid-model-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_put_method_response_invalid_model_reference_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-method-response-invalid-status-code-rejected", "deployments": [], "key": "apigateway/put-method-response-invalid-status-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_put_method_response_invalid_status_code_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-method-then-get", "deployments": [], "key": "apigateway/put-method-then-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_put_method_then_get.py", "service": "apigateway"} {"check_id": "apigateway.put-rest-api-invalid-mode-fails", "deployments": [], "key": "apigateway/put-rest-api-invalid-mode-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutRestApi"], "path": "behavioral/apigateway/check_put_rest_api_invalid_mode_fails.py", "service": "apigateway"} {"check_id": "apigateway.put-rest-api-malformed-body-rejected", "deployments": [], "key": "apigateway/put-rest-api-malformed-body-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutRestApi"], "path": "behavioral/apigateway/check_put_rest_api_malformed_body_rejected.py", "service": "apigateway"} {"check_id": "apigateway.put-rest-api-overwrite", "deployments": [], "key": "apigateway/put-rest-api-overwrite", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:GetRestApis", "apigateway:PutRestApi", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_put_rest_api_overwrite.py", "service": "apigateway"} {"check_id": "apigateway.put-rest-api-overwrite-and-merge-modes", "deployments": [], "key": "apigateway/put-rest-api-overwrite-and-merge-modes", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutRestApi"], "path": "behavioral/apigateway/check_put_rest_api_overwrite_and_merge_modes.py", "service": "apigateway"} {"check_id": "apigateway.put-rest-api-overwrite-replaces-definition", "deployments": [], "key": "apigateway/put-rest-api-overwrite-replaces-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:PutRestApi"], "path": "behavioral/apigateway/check_put_rest_api_overwrite_replaces_definition.py", "service": "apigateway"} {"check_id": "apigateway.reject-domain-name-access-association-after-accept-conflict", "deployments": [], "key": "apigateway/reject-domain-name-access-association-after-accept-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainName", "apigateway:GetDomainNameAccessAssociations", "apigateway:RejectDomainNameAccessAssociation", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/apigateway/check_reject_domain_name_access_association_after_accept_conflict.py", "service": "apigateway"} {"check_id": "apigateway.reject-domain-name-access-association-invalid-fails", "deployments": [], "key": "apigateway/reject-domain-name-access-association-invalid-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetDomainNameAccessAssociations", "apigateway:RejectDomainNameAccessAssociation", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_reject_domain_name_access_association_invalid_fails.py", "service": "apigateway"} {"check_id": "apigateway.reject-domain-name-access-association-removes-pending", "deployments": [], "key": "apigateway/reject-domain-name-access-association-removes-pending", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "apigateway:RejectDomainNameAccessAssociation", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeVpcEndpoints", "ec2:ModifyVpcAttribute"], "path": "behavioral/apigateway/check_reject_domain_name_access_association_removes_pending.py", "service": "apigateway"} {"check_id": "apigateway.reject-domain-name-access-association-without-pending-fails", "deployments": [], "key": "apigateway/reject-domain-name-access-association-without-pending-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName", "apigateway:GetDomainNameAccessAssociations", "apigateway:RejectDomainNameAccessAssociation"], "path": "behavioral/apigateway/check_reject_domain_name_access_association_without_pending_fails.py", "service": "apigateway"} {"check_id": "apigateway.reject-domain-name-access-association-wrong-state-fails", "deployments": [], "key": "apigateway/reject-domain-name-access-association-wrong-state-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:CreateDomainNameAccessAssociation", "apigateway:DeleteDomainName", "apigateway:DeleteDomainNameAccessAssociation", "apigateway:GetDomainNameAccessAssociations", "apigateway:RejectDomainNameAccessAssociation", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints"], "path": "behavioral/apigateway/check_reject_domain_name_access_association_wrong_state_fails.py", "service": "apigateway"} {"check_id": "apigateway.request-validator-body-validation-skipped-for-unmapped-content-type", "deployments": [], "key": "apigateway/request-validator-body-validation-skipped-for-unmapped-content-type", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateModel", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_request_validator_body_validation_skipped_for_unmapped_content_type.py", "service": "apigateway"} {"check_id": "apigateway.request-validator-lifecycle", "deployments": [], "key": "apigateway/request-validator-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRequestValidator", "apigateway:DeleteRestApi", "apigateway:GetRequestValidator"], "path": "behavioral/apigateway/check_request_validator_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.request-validator-rejects-body-and-params-at-stage", "deployments": [], "key": "apigateway/request-validator-rejects-body-and-params-at-stage", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateModel", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_request_validator_rejects_body_and_params_at_stage.py", "service": "apigateway"} {"check_id": "apigateway.resource-method-get-lacks-badrequest-error", "deployments": [], "key": "apigateway/resource-method-get-lacks-badrequest-error", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetMethodResponse", "apigateway:GetResource", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_resource_method_get_lacks_badrequest_error.py", "service": "apigateway"} {"check_id": "apigateway.resource-pathpart-conflict-rejected", "deployments": [], "key": "apigateway/resource-pathpart-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources", "apigateway:UpdateResource"], "path": "behavioral/apigateway/check_resource_pathpart_conflict_rejected.py", "service": "apigateway"} {"check_id": "apigateway.resource-policy-denies-unlisted-path-at-stage", "deployments": [], "key": "apigateway/resource-policy-denies-unlisted-path-at-stage", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_resource_policy_denies_unlisted_path_at_stage.py", "service": "apigateway"} {"check_id": "apigateway.rest-api-binary-media-types-list-order-preserved", "deployments": [], "key": "apigateway/rest-api-binary-media-types-list-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_rest_api_binary_media_types_list_order_preserved.py", "service": "apigateway"} {"check_id": "apigateway.rest-api-binary-media-types-special-chars-preserved", "deployments": [], "key": "apigateway/rest-api-binary-media-types-special-chars-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi"], "path": "behavioral/apigateway/check_rest_api_binary_media_types_special_chars_preserved.py", "service": "apigateway"} {"check_id": "apigateway.rest-api-empty-description-vs-absent-distinguished", "deployments": [], "key": "apigateway/rest-api-empty-description-vs-absent-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_rest_api_empty_description_vs_absent_distinguished.py", "service": "apigateway"} {"check_id": "apigateway.rest-api-import-export-roundtrip", "deployments": [], "key": "apigateway/rest-api-import-export-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:DeleteRestApi", "apigateway:GetExport", "apigateway:GetResources", "apigateway:ImportRestApi", "apigateway:PutRestApi", "apigateway:TagResource"], "path": "behavioral/apigateway/check_rest_api_import_export_roundtrip.py", "service": "apigateway"} {"check_id": "apigateway.rest-api-put-overwrite-and-import", "deployments": [], "key": "apigateway/rest-api-put-overwrite-and-import", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:ImportRestApi", "apigateway:PutRestApi"], "path": "behavioral/apigateway/check_rest_api_put_overwrite_and_import.py", "service": "apigateway"} {"check_id": "apigateway.sdk-generation-lists-types", "deployments": [], "key": "apigateway/sdk-generation-lists-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetSdk", "apigateway:GetSdkType", "apigateway:GetSdkTypes", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_sdk_generation_lists_types.py", "service": "apigateway"} {"check_id": "apigateway.stage-cache-ttl-configuration-enforced", "deployments": [], "key": "apigateway/stage-cache-ttl-configuration-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_stage_cache_ttl_configuration_enforced.py", "service": "apigateway"} {"check_id": "apigateway.stage-cache-ttl-out-of-range-rejected", "deployments": [], "key": "apigateway/stage-cache-ttl-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_stage_cache_ttl_out_of_range_rejected.py", "service": "apigateway"} {"check_id": "apigateway.stage-cache-ttl-zero-disables-caching-immediately", "deployments": [], "key": "apigateway/stage-cache-ttl-zero-disables-caching-immediately", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_stage_cache_ttl_zero_disables_caching_immediately.py", "service": "apigateway"} {"check_id": "apigateway.stage-repoint-unblocks-old-deployment-delete", "deployments": [], "key": "apigateway/stage-repoint-unblocks-old-deployment-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteDeployment", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_stage_repoint_unblocks_old_deployment_delete.py", "service": "apigateway"} {"check_id": "apigateway.stage-serves-deployed-snapshot-not-live-config", "deployments": [], "key": "apigateway/stage-serves-deployed-snapshot-not-live-config", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteDeployment", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetDeployment", "apigateway:GetDeployments", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateDeployment", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_stage_serves_deployed_snapshot_not_live_config.py", "service": "apigateway"} {"check_id": "apigateway.stage-update-full-lifecycle", "deployments": [], "key": "apigateway/stage-update-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_stage_update_full_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.stage-variables-empty-map-vs-absent-distinguished", "deployments": [], "key": "apigateway/stage-variables-empty-map-vs-absent-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_stage_variables_empty_map_vs_absent_distinguished.py", "service": "apigateway"} {"check_id": "apigateway.stage-variables-empty-map-vs-absent-preserved", "deployments": [], "key": "apigateway/stage-variables-empty-map-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_stage_variables_empty_map_vs_absent_preserved.py", "service": "apigateway"} {"check_id": "apigateway.stage-variables-empty-vs-absent-preserved", "deployments": [], "key": "apigateway/stage-variables-empty-vs-absent-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_stage_variables_empty_vs_absent_preserved.py", "service": "apigateway"} {"check_id": "apigateway.stage-variables-unicode-value-round-trip", "deployments": [], "key": "apigateway/stage-variables-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_stage_variables_unicode_value_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.tag-resource-invalid-arn-rejected", "deployments": [], "key": "apigateway/tag-resource-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource", "apigateway:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_tag_resource_invalid_arn_rejected.py", "service": "apigateway"} {"check_id": "apigateway.tag-resource-lifecycle", "deployments": [], "key": "apigateway/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource", "apigateway:UntagResource"], "path": "behavioral/apigateway/check_tag_resource_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.tag-resource-reserved-prefix-rejected", "deployments": [], "key": "apigateway/tag-resource-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_tag_resource_reserved_prefix_rejected.py", "service": "apigateway"} {"check_id": "apigateway.tag-resource-unicode-key-value-round-trip", "deployments": [], "key": "apigateway/tag-resource-unicode-key-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource", "apigateway:UntagResource"], "path": "behavioral/apigateway/check_tag_resource_unicode_key_value_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.tag-value-unicode-round-trip", "deployments": [], "key": "apigateway/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource"], "path": "behavioral/apigateway/check_tag_value_unicode_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.tags-unicode-value-round-trip", "deployments": [], "key": "apigateway/tags-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource", "apigateway:UntagResource"], "path": "behavioral/apigateway/check_tags_unicode_value_round_trip.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-authorizer-enforces-identity-source", "deployments": [], "key": "apigateway/test-invoke-authorizer-enforces-identity-source", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_test_invoke_authorizer_enforces_identity_source.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-authorizer-executes-configured-authorizer", "deployments": [], "key": "apigateway/test-invoke-authorizer-executes-configured-authorizer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:TestInvokeAuthorizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway/check_test_invoke_authorizer_executes_configured_authorizer.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-authorizer-executes-lambda-policy", "deployments": [], "key": "apigateway/test-invoke-authorizer-executes-lambda-policy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:TestInvokeAuthorizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_test_invoke_authorizer_executes_lambda_policy.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-authorizer-missing-identity-source-fails", "deployments": [], "key": "apigateway/test-invoke-authorizer-missing-identity-source-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAuthorizers", "apigateway:TestInvokeAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_test_invoke_authorizer_missing_identity_source_fails.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-authorizer-missing-identity-source-rejected", "deployments": [], "key": "apigateway/test-invoke-authorizer-missing-identity-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_test_invoke_authorizer_missing_identity_source_rejected.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-authorizer-not-found", "deployments": [], "key": "apigateway/test-invoke-authorizer-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway/check_test_invoke_authorizer_not_found.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-authorizer-request-type-header-allow-and-deny", "deployments": [], "key": "apigateway/test-invoke-authorizer-request-type-header-allow-and-deny", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway/check_test_invoke_authorizer_request_type_header_allow_and_deny.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-authorizer-returns-policy-and-claims", "deployments": [], "key": "apigateway/test-invoke-authorizer-returns-policy-and-claims", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_test_invoke_authorizer_returns_policy_and_claims.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-method-bad-request", "deployments": [], "key": "apigateway/test-invoke-method-bad-request", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateModel", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_test_invoke_method_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-method-captures-latency-and-log-server-side", "deployments": [], "key": "apigateway/test-invoke-method-captures-latency-and-log-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_test_invoke_method_captures_latency_and_log_server_side.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-method-executes-configured-integration", "deployments": [], "key": "apigateway/test-invoke-method-executes-configured-integration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_test_invoke_method_executes_configured_integration.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-method-executes-integration-server-side", "deployments": [], "key": "apigateway/test-invoke-method-executes-integration-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_test_invoke_method_executes_integration_server_side.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-method-lambda-proxy-round-trips-headers-query-body", "deployments": [], "key": "apigateway/test-invoke-method-lambda-proxy-round-trips-headers-query-body", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:TestInvokeMethod", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway/check_test_invoke_method_lambda_proxy_round_trips_headers_query_body.py", "service": "apigateway"} {"check_id": "apigateway.test-invoke-method-missing-integration-rejected", "deployments": [], "key": "apigateway/test-invoke-method-missing-integration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod"], "path": "behavioral/apigateway/check_test_invoke_method_missing_integration_rejected.py", "service": "apigateway"} {"check_id": "apigateway.unrouted-path-and-method-rejected-at-stage", "deployments": [], "key": "apigateway/unrouted-path-and-method-rejected-at-stage", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway/check_unrouted_path_and_method_rejected_at_stage.py", "service": "apigateway"} {"check_id": "apigateway.untag-resource-nonexistent-resource-arn-rejected", "deployments": [], "key": "apigateway/untag-resource-nonexistent-resource-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_untag_resource_nonexistent_resource_arn_rejected.py", "service": "apigateway"} {"check_id": "apigateway.untag-resource-unknown-key-fails", "deployments": [], "key": "apigateway/untag-resource-unknown-key-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetTags", "apigateway:TagResource", "apigateway:UntagResource"], "path": "behavioral/apigateway/check_untag_resource_unknown_key_fails.py", "service": "apigateway"} {"check_id": "apigateway.update-account-cloudwatch-role-enforced-for-logging", "deployments": [], "key": "apigateway/update-account-cloudwatch-role-enforced-for-logging", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/apigateway/check_update_account_cloudwatch_role_enforced_for_logging.py", "service": "apigateway"} {"check_id": "apigateway.update-account-invalid-role-arn-fails", "deployments": [], "key": "apigateway/update-account-invalid-role-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_update_account_invalid_role_arn_fails.py", "service": "apigateway"} {"check_id": "apigateway.update-account-remove-cloudwatch-role-patch-rejected", "deployments": [], "key": "apigateway/update-account-remove-cloudwatch-role-patch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/apigateway/check_update_account_remove_cloudwatch_role_patch_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-api-key-and-list-keys", "deployments": [], "key": "apigateway/update-api-key-and-list-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:GetApiKeys", "apigateway:UpdateApiKey"], "path": "behavioral/apigateway/check_update_api_key_and_list_keys.py", "service": "apigateway"} {"check_id": "apigateway.update-api-key-enable-disable", "deployments": [], "key": "apigateway/update-api-key-enable-disable", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKeys", "apigateway:UpdateApiKey"], "path": "behavioral/apigateway/check_update_api_key_enable_disable.py", "service": "apigateway"} {"check_id": "apigateway.update-api-key-invalid-patch-bad-request", "deployments": [], "key": "apigateway/update-api-key-invalid-patch-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:UpdateApiKey"], "path": "behavioral/apigateway/check_update_api_key_invalid_patch_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.update-api-key-patch-enabled", "deployments": [], "key": "apigateway/update-api-key-patch-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:UpdateApiKey"], "path": "behavioral/apigateway/check_update_api_key_patch_enabled.py", "service": "apigateway"} {"check_id": "apigateway.update-api-key-value-field-unsupported-rejected", "deployments": [], "key": "apigateway/update-api-key-value-field-unsupported-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "apigateway:UpdateApiKey"], "path": "behavioral/apigateway/check_update_api_key_value_field_unsupported_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-authorizer-invalid-ttl-error-contract", "deployments": [], "key": "apigateway/update-authorizer-invalid-ttl-error-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAuthorizer", "apigateway:UpdateAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_update_authorizer_invalid_ttl_error_contract.py", "service": "apigateway"} {"check_id": "apigateway.update-base-path-mapping-patch-stage", "deployments": [], "key": "apigateway/update-base-path-mapping-patch-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateBasePathMapping", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteBasePathMapping", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetBasePathMapping", "apigateway:GetDomainName", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateBasePathMapping"], "path": "behavioral/apigateway/check_update_base_path_mapping_patch_stage.py", "service": "apigateway"} {"check_id": "apigateway.update-client-certificate-immutable-field-rejected", "deployments": [], "key": "apigateway/update-client-certificate-immutable-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:UpdateClientCertificate"], "path": "behavioral/apigateway/check_update_client_certificate_immutable_field_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-client-certificate-material-immutable-rejected", "deployments": [], "key": "apigateway/update-client-certificate-material-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:UpdateClientCertificate"], "path": "behavioral/apigateway/check_update_client_certificate_material_immutable_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-client-certificate-nonexistent-not-found", "deployments": [], "key": "apigateway/update-client-certificate-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:UpdateClientCertificate"], "path": "behavioral/apigateway/check_update_client_certificate_nonexistent_not_found.py", "service": "apigateway"} {"check_id": "apigateway.update-client-certificate-patch-description", "deployments": [], "key": "apigateway/update-client-certificate-patch-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:DeleteClientCertificate", "apigateway:GenerateClientCertificate", "apigateway:GetClientCertificate", "apigateway:UpdateClientCertificate"], "path": "behavioral/apigateway/check_update_client_certificate_patch_description.py", "service": "apigateway"} {"check_id": "apigateway.update-deployment-description", "deployments": [], "key": "apigateway/update-deployment-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateDeployment"], "path": "behavioral/apigateway/check_update_deployment_description.py", "service": "apigateway"} {"check_id": "apigateway.update-deployment-description-and-list", "deployments": [], "key": "apigateway/update-deployment-description-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateDeployment"], "path": "behavioral/apigateway/check_update_deployment_description_and_list.py", "service": "apigateway"} {"check_id": "apigateway.update-deployment-patch-description", "deployments": [], "key": "apigateway/update-deployment-patch-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetDeployment", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateDeployment"], "path": "behavioral/apigateway/check_update_deployment_patch_description.py", "service": "apigateway"} {"check_id": "apigateway.update-domain-name-immutable-field-rejected", "deployments": [], "key": "apigateway/update-domain-name-immutable-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName", "apigateway:UpdateDomainName"], "path": "behavioral/apigateway/check_update_domain_name_immutable_field_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-domain-name-invalid-security-policy-bad-request", "deployments": [], "key": "apigateway/update-domain-name-invalid-security-policy-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName", "apigateway:UpdateDomainName"], "path": "behavioral/apigateway/check_update_domain_name_invalid_security_policy_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.update-domain-name-invalid-security-policy-rejected", "deployments": [], "key": "apigateway/update-domain-name-invalid-security-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDomainName", "apigateway:DeleteDomainName", "apigateway:GetDomainName", "apigateway:UpdateDomainName"], "path": "behavioral/apigateway/check_update_domain_name_invalid_security_policy_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-integration-after-delete-not-found", "deployments": [], "key": "apigateway/update-integration-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteIntegration", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateIntegration"], "path": "behavioral/apigateway/check_update_integration_after_delete_not_found.py", "service": "apigateway"} {"check_id": "apigateway.update-integration-changes-uri-and-type", "deployments": [], "key": "apigateway/update-integration-changes-uri-and-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateIntegration"], "path": "behavioral/apigateway/check_update_integration_changes_uri_and_type.py", "service": "apigateway"} {"check_id": "apigateway.update-integration-patch-uri", "deployments": [], "key": "apigateway/update-integration-patch-uri", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateIntegration"], "path": "behavioral/apigateway/check_update_integration_patch_uri.py", "service": "apigateway"} {"check_id": "apigateway.update-integration-request-templates", "deployments": [], "key": "apigateway/update-integration-request-templates", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:UpdateIntegration", "apigateway:UpdateIntegrationResponse"], "path": "behavioral/apigateway/check_update_integration_request_templates.py", "service": "apigateway"} {"check_id": "apigateway.update-integration-response-changes-templates", "deployments": [], "key": "apigateway/update-integration-response-changes-templates", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:UpdateIntegrationResponse"], "path": "behavioral/apigateway/check_update_integration_response_changes_templates.py", "service": "apigateway"} {"check_id": "apigateway.update-integration-response-invalid-template-bad-request", "deployments": [], "key": "apigateway/update-integration-response-invalid-template-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateIntegrationResponse"], "path": "behavioral/apigateway/check_update_integration_response_invalid_template_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.update-integration-response-patch-templates", "deployments": [], "key": "apigateway/update-integration-response-patch-templates", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegrationResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateIntegrationResponse"], "path": "behavioral/apigateway/check_update_integration_response_patch_templates.py", "service": "apigateway"} {"check_id": "apigateway.update-integration-type-immutable-rejected", "deployments": [], "key": "apigateway/update-integration-type-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateIntegration"], "path": "behavioral/apigateway/check_update_integration_type_immutable_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-method-and-method-response", "deployments": [], "key": "apigateway/update-method-and-method-response", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateMethod", "apigateway:UpdateMethodResponse"], "path": "behavioral/apigateway/check_update_method_and_method_response.py", "service": "apigateway"} {"check_id": "apigateway.update-method-and-resource-state-transitions", "deployments": [], "key": "apigateway/update-method-and-resource-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResource", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:UpdateMethod", "apigateway:UpdateResource"], "path": "behavioral/apigateway/check_update_method_and_resource_state_transitions.py", "service": "apigateway"} {"check_id": "apigateway.update-method-and-response-in-place", "deployments": [], "key": "apigateway/update-method-and-response-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateMethod", "apigateway:UpdateMethodResponse"], "path": "behavioral/apigateway/check_update_method_and_response_in_place.py", "service": "apigateway"} {"check_id": "apigateway.update-method-http-method-immutable-rejected", "deployments": [], "key": "apigateway/update-method-http-method-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateMethod"], "path": "behavioral/apigateway/check_update_method_http_method_immutable_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-method-invalid-authorizer-rejected", "deployments": [], "key": "apigateway/update-method-invalid-authorizer-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:UpdateMethod"], "path": "behavioral/apigateway/check_update_method_invalid_authorizer_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-method-nonexistent-method-not-found", "deployments": [], "key": "apigateway/update-method-nonexistent-method-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:UpdateMethod"], "path": "behavioral/apigateway/check_update_method_nonexistent_method_not_found.py", "service": "apigateway"} {"check_id": "apigateway.update-method-not-found-error-contract", "deployments": [], "key": "apigateway/update-method-not-found-error-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteMethod", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:UpdateMethod"], "path": "behavioral/apigateway/check_update_method_not_found_error_contract.py", "service": "apigateway"} {"check_id": "apigateway.update-method-patch-authorization-type", "deployments": [], "key": "apigateway/update-method-patch-authorization-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:PutMethod", "apigateway:UpdateMethod"], "path": "behavioral/apigateway/check_update_method_patch_authorization_type.py", "service": "apigateway"} {"check_id": "apigateway.update-method-response-invalid-status-bad-request", "deployments": [], "key": "apigateway/update-method-response-invalid-status-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteMethodResponse", "apigateway:DeleteRestApi", "apigateway:GetMethodResponse", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateMethodResponse"], "path": "behavioral/apigateway/check_update_method_response_invalid_status_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.update-method-response-model-and-validator", "deployments": [], "key": "apigateway/update-method-response-model-and-validator", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethodResponse", "apigateway:GetModel", "apigateway:GetRequestValidator", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateMethodResponse", "apigateway:UpdateModel", "apigateway:UpdateRequestValidator"], "path": "behavioral/apigateway/check_update_method_response_model_and_validator.py", "service": "apigateway"} {"check_id": "apigateway.update-method-response-patch-model", "deployments": [], "key": "apigateway/update-method-response-patch-model", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetMethodResponse", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateMethodResponse"], "path": "behavioral/apigateway/check_update_method_response_patch_model.py", "service": "apigateway"} {"check_id": "apigateway.update-model-and-validator-in-place", "deployments": [], "key": "apigateway/update-model-and-validator-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:GetRequestValidator", "apigateway:UpdateModel", "apigateway:UpdateRequestValidator"], "path": "behavioral/apigateway/check_update_model_and_validator_in_place.py", "service": "apigateway"} {"check_id": "apigateway.update-model-invalid-patch-path-rejected", "deployments": [], "key": "apigateway/update-model-invalid-patch-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:UpdateModel"], "path": "behavioral/apigateway/check_update_model_invalid_patch_path_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-model-invalid-schema-bad-request", "deployments": [], "key": "apigateway/update-model-invalid-schema-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:GetModels", "apigateway:UpdateModel"], "path": "behavioral/apigateway/check_update_model_invalid_schema_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.update-model-patch-schema", "deployments": [], "key": "apigateway/update-model-patch-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteModel", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:UpdateModel"], "path": "behavioral/apigateway/check_update_model_patch_schema.py", "service": "apigateway"} {"check_id": "apigateway.update-model-schema", "deployments": [], "key": "apigateway/update-model-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateModel", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetModel", "apigateway:GetModels", "apigateway:UpdateModel"], "path": "behavioral/apigateway/check_update_model_schema.py", "service": "apigateway"} {"check_id": "apigateway.update-request-validator", "deployments": [], "key": "apigateway/update-request-validator", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRequestValidators", "apigateway:UpdateRequestValidator"], "path": "behavioral/apigateway/check_update_request_validator.py", "service": "apigateway"} {"check_id": "apigateway.update-request-validator-nonexistent-error", "deployments": [], "key": "apigateway/update-request-validator-nonexistent-error", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRequestValidator", "apigateway:DeleteRestApi", "apigateway:GetRequestValidator", "apigateway:GetRequestValidators", "apigateway:UpdateRequestValidator"], "path": "behavioral/apigateway/check_update_request_validator_nonexistent_error.py", "service": "apigateway"} {"check_id": "apigateway.update-request-validator-patch-flags", "deployments": [], "key": "apigateway/update-request-validator-patch-flags", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRequestValidator", "apigateway:CreateRestApi", "apigateway:DeleteRequestValidator", "apigateway:DeleteRestApi", "apigateway:GetRequestValidator", "apigateway:UpdateRequestValidator"], "path": "behavioral/apigateway/check_update_request_validator_patch_flags.py", "service": "apigateway"} {"check_id": "apigateway.update-resource-nonexistent-not-found", "deployments": [], "key": "apigateway/update-resource-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources", "apigateway:UpdateResource"], "path": "behavioral/apigateway/check_update_resource_nonexistent_not_found.py", "service": "apigateway"} {"check_id": "apigateway.update-resource-not-found-error-contract", "deployments": [], "key": "apigateway/update-resource-not-found-error-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources", "apigateway:UpdateResource"], "path": "behavioral/apigateway/check_update_resource_not_found_error_contract.py", "service": "apigateway"} {"check_id": "apigateway.update-resource-patch-pathpart", "deployments": [], "key": "apigateway/update-resource-patch-pathpart", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:UpdateResource"], "path": "behavioral/apigateway/check_update_resource_patch_pathpart.py", "service": "apigateway"} {"check_id": "apigateway.update-resource-pathpart-preserves-children", "deployments": [], "key": "apigateway/update-resource-pathpart-preserves-children", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetMethod", "apigateway:GetResource", "apigateway:GetResources", "apigateway:PutMethod", "apigateway:UpdateResource"], "path": "behavioral/apigateway/check_update_resource_pathpart_preserves_children.py", "service": "apigateway"} {"check_id": "apigateway.update-resource-rename-pathpart", "deployments": [], "key": "apigateway/update-resource-rename-pathpart", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResource", "apigateway:GetResources", "apigateway:UpdateResource"], "path": "behavioral/apigateway/check_update_resource_rename_pathpart.py", "service": "apigateway"} {"check_id": "apigateway.update-rest-api-immutable-field-rejected", "deployments": [], "key": "apigateway/update-rest-api-immutable-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_update_rest_api_immutable_field_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-rest-api-patch-description", "deployments": [], "key": "apigateway/update-rest-api-patch-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigateway:UpdateRestApi"], "path": "behavioral/apigateway/check_update_rest_api_patch_description.py", "service": "apigateway"} {"check_id": "apigateway.update-stage-cache-and-list", "deployments": [], "key": "apigateway/update-stage-cache-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_update_stage_cache_and_list.py", "service": "apigateway"} {"check_id": "apigateway.update-stage-conflict-during-deployment", "deployments": [], "key": "apigateway/update-stage-conflict-during-deployment", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_update_stage_conflict_during_deployment.py", "service": "apigateway"} {"check_id": "apigateway.update-stage-invalid-canary-percent-rejected", "deployments": [], "key": "apigateway/update-stage-invalid-canary-percent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_update_stage_invalid_canary_percent_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-stage-invalid-loglevel-rejected", "deployments": [], "key": "apigateway/update-stage-invalid-loglevel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_update_stage_invalid_loglevel_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-stage-invalid-tracing-config-rejected", "deployments": [], "key": "apigateway/update-stage-invalid-tracing-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_update_stage_invalid_tracing_config_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-stage-patch-variables", "deployments": [], "key": "apigateway/update-stage-patch-variables", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_update_stage_patch_variables.py", "service": "apigateway"} {"check_id": "apigateway.update-stage-settings", "deployments": [], "key": "apigateway/update-stage-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:GetStages", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage"], "path": "behavioral/apigateway/check_update_stage_settings.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-and-get-usage-report", "deployments": [], "key": "apigateway/update-usage-and-get-usage-report", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:GetUsage", "apigateway:GetUsagePlan", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateUsage", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_update_usage_and_get_usage_report.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-bad-request", "deployments": [], "key": "apigateway/update-usage-bad-request", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:GetUsage", "apigateway:GetUsagePlan", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateUsage", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_update_usage_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-enforced-server-side-throttling", "deployments": [], "key": "apigateway/update-usage-enforced-server-side-throttling", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsage", "apigateway:UpdateUsage"], "path": "behavioral/apigateway/check_update_usage_enforced_server_side_throttling.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-invalid-range-bad-request", "deployments": [], "key": "apigateway/update-usage-invalid-range-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsage", "apigateway:UpdateUsage"], "path": "behavioral/apigateway/check_update_usage_invalid_range_bad_request.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-plan-and-list-plans", "deployments": [], "key": "apigateway/update-usage-plan-and-list-plans", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:GetUsagePlans", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_update_usage_plan_and_list_plans.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-plan-and-usage-plan-list", "deployments": [], "key": "apigateway/update-usage-plan-and-usage-plan-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKeys", "apigateway:GetUsagePlans", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_update_usage_plan_and_usage_plan_list.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-plan-invalid-apistage-rejected", "deployments": [], "key": "apigateway/update-usage-plan-invalid-apistage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateUsagePlan", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:GetResources", "apigateway:GetUsagePlan", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_update_usage_plan_invalid_apistage_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-plan-invalid-quota-period-rejected", "deployments": [], "key": "apigateway/update-usage-plan-invalid-quota-period-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_update_usage_plan_invalid_quota_period_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-plan-quota-reflects-change", "deployments": [], "key": "apigateway/update-usage-plan-quota-reflects-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_update_usage_plan_quota_reflects_change.py", "service": "apigateway"} {"check_id": "apigateway.update-usage-throttle-reflects-change", "deployments": [], "key": "apigateway/update-usage-throttle-reflects-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsage", "apigateway:UpdateUsage"], "path": "behavioral/apigateway/check_update_usage_throttle_reflects_change.py", "service": "apigateway"} {"check_id": "apigateway.update-vpc-link-invalid-patch-op-rejected", "deployments": [], "key": "apigateway/update-vpc-link-invalid-patch-op-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:UpdateVpcLink", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_update_vpc_link_invalid_patch_op_rejected.py", "service": "apigateway"} {"check_id": "apigateway.update-vpc-link-patch-name", "deployments": [], "key": "apigateway/update-vpc-link-patch-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:UpdateVpcLink", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_update_vpc_link_patch_name.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-invalid-quota-offset-rejected", "deployments": [], "key": "apigateway/usage-plan-invalid-quota-offset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:GetUsagePlans"], "path": "behavioral/apigateway/check_usage_plan_invalid_quota_offset_rejected.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-key-association-lifecycle", "deployments": [], "key": "apigateway/usage-plan-key-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsagePlanKey"], "path": "behavioral/apigateway/check_usage_plan_key_association_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-key-throttle-override-window", "deployments": [], "key": "apigateway/usage-plan-key-throttle-override-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:GetUsagePlan", "apigateway:GetUsagePlanKeys", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_usage_plan_key_throttle_override_window.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-lifecycle", "deployments": [], "key": "apigateway/usage-plan-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_usage_plan_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-missing-api-key-rejected", "deployments": [], "key": "apigateway/usage-plan-missing-api-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetApiKey", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway/check_usage_plan_missing_api_key_rejected.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-negative-quota-limit-rejected", "deployments": [], "key": "apigateway/usage-plan-negative-quota-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan", "apigateway:GetUsagePlans"], "path": "behavioral/apigateway/check_usage_plan_negative_quota_limit_rejected.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-quota-exhaustion-flow", "deployments": [], "key": "apigateway/usage-plan-quota-exhaustion-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:GetUsage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateUsage", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_usage_plan_quota_exhaustion_flow.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-quota-large-integer-precision-preserved", "deployments": [], "key": "apigateway/usage-plan-quota-large-integer-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan"], "path": "behavioral/apigateway/check_usage_plan_quota_large_integer_precision_preserved.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-quota-large-numeric-precision-preserved", "deployments": [], "key": "apigateway/usage-plan-quota-large-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan"], "path": "behavioral/apigateway/check_usage_plan_quota_large_numeric_precision_preserved.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-quota-numeric-precision-preserved", "deployments": [], "key": "apigateway/usage-plan-quota-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlan"], "path": "behavioral/apigateway/check_usage_plan_quota_numeric_precision_preserved.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-quota-period-and-get-usage", "deployments": [], "key": "apigateway/usage-plan-quota-period-and-get-usage", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsage", "apigateway:UpdateUsage"], "path": "behavioral/apigateway/check_usage_plan_quota_period_and_get_usage.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-quota-period-reset-window", "deployments": [], "key": "apigateway/usage-plan-quota-period-reset-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsage", "apigateway:GetUsagePlan", "apigateway:UpdateUsage", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_usage_plan_quota_period_reset_window.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-quota-tracking", "deployments": [], "key": "apigateway/usage-plan-quota-tracking", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:GetUsage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateUsage"], "path": "behavioral/apigateway/check_usage_plan_quota_tracking.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-quota-unknown-key-rejected", "deployments": [], "key": "apigateway/usage-plan-quota-unknown-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetUsage", "apigateway:UpdateUsage"], "path": "behavioral/apigateway/check_usage_plan_quota_unknown_key_rejected.py", "service": "apigateway"} {"check_id": "apigateway.usage-plan-update-and-listing", "deployments": [], "key": "apigateway/usage-plan-update-and-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateUsagePlan", "apigateway:DeleteUsagePlan", "apigateway:GetUsagePlans", "apigateway:UpdateUsagePlan"], "path": "behavioral/apigateway/check_usage_plan_update_and_listing.py", "service": "apigateway"} {"check_id": "apigateway.vpc-link-integration-availability-flow", "deployments": [], "key": "apigateway/vpc-link-integration-availability-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateVpcLink", "apigateway:DeleteRestApi", "apigateway:DeleteVpcLink", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:GetVpcLink", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:TestInvokeMethod", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_vpc_link_integration_availability_flow.py", "service": "apigateway"} {"check_id": "apigateway.vpc-link-integration-missing-connection-id-rejected", "deployments": [], "key": "apigateway/vpc-link-integration-missing-connection-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod"], "path": "behavioral/apigateway/check_vpc_link_integration_missing_connection_id_rejected.py", "service": "apigateway"} {"check_id": "apigateway.vpc-link-invalid-target-arn-rejected", "deployments": [], "key": "apigateway/vpc-link-invalid-target-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:GetVpcLinks", "sts:GetCallerIdentity"], "path": "behavioral/apigateway/check_vpc_link_invalid_target_arn_rejected.py", "service": "apigateway"} {"check_id": "apigateway.vpc-link-lifecycle", "deployments": [], "key": "apigateway/vpc-link-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "apigateway:UpdateVpcLink", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_vpc_link_lifecycle.py", "service": "apigateway"} {"check_id": "apigateway.vpc-link-status-pending-to-available-transition-window", "deployments": [], "key": "apigateway/vpc-link-status-pending-to-available-transition-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateVpcLink", "apigateway:DeleteVpcLink", "apigateway:GetVpcLink", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway/check_vpc_link_status_pending_to_available_transition_window.py", "service": "apigateway"} {"check_id": "apigateway__apigatewayv2.httpapi-stage-default-throttle-returns-default-too-many-requests", "deployments": [], "key": "apigateway__apigatewayv2/httpapi-stage-default-throttle-returns-default-too-many-requests", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage"], "path": "behavioral/apigateway__apigatewayv2/check_httpapi_stage_default_throttle_returns_default_too_many_requests.py", "service": "apigateway__apigatewayv2"} {"check_id": "apigateway__apigatewayv2.rest-api-and-http-api-ids-never-collide", "deployments": [], "key": "apigateway__apigatewayv2/rest-api-and-http-api-ids-never-collide", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetRestApi", "apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:GetApi"], "path": "behavioral/apigateway__apigatewayv2/check_rest_api_and_http_api_ids_never_collide.py", "service": "apigateway__apigatewayv2"} {"check_id": "apigateway__appsync.appsync-http-data-source-sigv4-signs-request-to-api-gateway", "deployments": [], "key": "apigateway__appsync/appsync-http-data-source-sigv4-signs-request-to-api-gateway", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetDataSource", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateDataSource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__appsync/check_appsync_http_data_source_sigv4_signs_request_to_api_gateway.py", "service": "apigateway__appsync"} {"check_id": "apigateway__cloudformation.cfn-apigateway-deployment-in-place-description-retained-api-move-then-not-found", "deployments": [], "key": "apigateway__cloudformation/cfn-apigateway-deployment-in-place-description-retained-api-move-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetDeployment", "apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway__cloudformation/check_cfn_apigateway_deployment_in_place_description_retained_api_move_then_not_found.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-apigateway-method-mock-in-place-update-retained-verb-replacement-then-not-found", "deployments": [], "key": "apigateway__cloudformation/cfn-apigateway-method-mock-in-place-update-retained-verb-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["apigateway:GetMethod", "apigateway:GetRestApi", "apigateway:TestInvokeMethod", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway__cloudformation/check_cfn_apigateway_method_mock_in_place_update_retained_verb_replacement_then_not_found.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-apigateway-resource-retained-path-replacement-then-not-found", "deployments": [], "key": "apigateway__cloudformation/cfn-apigateway-resource-retained-path-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["apigateway:GetMethod", "apigateway:GetResource", "apigateway:GetRestApi", "apigateway:TestInvokeMethod", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway__cloudformation/check_cfn_apigateway_resource_retained_path_replacement_then_not_found.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-apigateway-restapi-mock-in-place-update-retained-stage-replacement-then-not-found", "deployments": [], "key": "apigateway__cloudformation/cfn-apigateway-restapi-mock-in-place-update-retained-stage-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["apigateway:DeleteStage", "apigateway:GetRestApi", "apigateway:GetStage", "apigateway:TestInvokeMethod", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway__cloudformation/check_cfn_apigateway_restapi_mock_in_place_update_retained_stage_replacement_then_not_found.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-apigateway-stage-in-place-variables-retained-api-move-then-not-found", "deployments": [], "key": "apigateway__cloudformation/cfn-apigateway-stage-in-place-variables-retained-api-move-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetExport", "apigateway:GetRestApi", "apigateway:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway__cloudformation/check_cfn_apigateway_stage_in_place_variables_retained_api_move_then_not_found.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-method-request-model-reference-rejected", "deployments": [], "key": "apigateway__cloudformation/cfn-method-request-model-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetMethod", "apigateway:GetRestApi", "apigateway:PutMethod", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_cfn_method_request_model_reference_rejected.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-resource-existence-apigateway-deployment", "deployments": [], "key": "apigateway__cloudformation/cfn-resource-existence-apigateway-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetDeployment", "apigateway:GetDeployments", "apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_cfn_resource_existence_apigateway_deployment.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-resource-existence-apigateway-method", "deployments": [], "key": "apigateway__cloudformation/cfn-resource-existence-apigateway-method", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetMethod", "apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_cfn_resource_existence_apigateway_method.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-resource-existence-apigateway-resource", "deployments": [], "key": "apigateway__cloudformation/cfn-resource-existence-apigateway-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetResource", "apigateway:GetResources", "apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_cfn_resource_existence_apigateway_resource.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.cfn-resource-existence-apigateway-restapi", "deployments": [], "key": "apigateway__cloudformation/cfn-resource-existence-apigateway-restapi", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetResources", "apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_cfn_resource_existence_apigateway_restapi.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-api-key-resource-round-trip", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-api-key-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetApiKey", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_api_key_resource_round_trip.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-client-certificate-resource-round-trip", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-client-certificate-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetClientCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_client_certificate_resource_round_trip.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-documentation-and-gateway-response-round-trip", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-documentation-and-gateway-response-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetGatewayResponse", "apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_documentation_and_gateway_response_round_trip.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-gateway-response-invalid-status-code-rejected", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-gateway-response-invalid-status-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetGatewayResponse", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_gateway_response_invalid_status_code_rejected.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-stage-resource-round-trip", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-stage-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetRestApi", "apigateway:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_stage_resource_round_trip.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-usage-plan-invalid-quota-rejected", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-usage-plan-invalid-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetUsagePlan", "apigateway:GetUsagePlans", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_usage_plan_invalid_quota_rejected.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-usage-plan-resource-round-trip", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-usage-plan-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetUsagePlan", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_usage_plan_resource_round_trip.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-usageplankey-invalid-keytype-rejected", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-usageplankey-invalid-keytype-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetUsagePlanKey", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_usageplankey_invalid_keytype_rejected.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-apigateway-usageplankey-resource-round-trip", "deployments": [], "key": "apigateway__cloudformation/deploy-apigateway-usageplankey-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetApiKey", "apigateway:GetUsagePlan", "apigateway:GetUsagePlanKey", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway__cloudformation/check_deploy_apigateway_usageplankey_resource_round_trip.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation.deploy-cdk-restapi-request-validator-model-rejects-invalid-body-test-invoke", "deployments": ["behavioral/apigateway__cloudformation/deployments/cdk_restapi_validator_model/app.py", "behavioral/apigateway__cloudformation/deployments/cdk_restapi_validator_model/cdk.json"], "key": "apigateway__cloudformation/deploy-cdk-restapi-request-validator-model-rejects-invalid-body-test-invoke", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetMethod", "apigateway:GetRestApi", "apigateway:TestInvokeMethod", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/apigateway__cloudformation/check_deploy_cdk_restapi_request_validator_model_rejects_invalid_body_test_invoke.py", "service": "apigateway__cloudformation"} {"check_id": "apigateway__cloudformation__cognito-idp.deploy-apigateway-cognito-authorizer-invalid-provider-arn-rejected", "deployments": [], "key": "apigateway__cloudformation__cognito-idp/deploy-apigateway-cognito-authorizer-invalid-provider-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cognito-idp:DescribeUserPool"], "path": "behavioral/apigateway__cloudformation__cognito-idp/check_deploy_apigateway_cognito_authorizer_invalid_provider_arn_rejected.py", "service": "apigateway__cloudformation__cognito-idp"} {"check_id": "apigateway__cloudformation__cognito-idp.deploy-apigateway-cognito-authorizer-resource-round-trip", "deployments": [], "key": "apigateway__cloudformation__cognito-idp/deploy-apigateway-cognito-authorizer-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetAuthorizer", "apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:DescribeUserPool"], "path": "behavioral/apigateway__cloudformation__cognito-idp/check_deploy_apigateway_cognito_authorizer_resource_round_trip.py", "service": "apigateway__cloudformation__cognito-idp"} {"check_id": "apigateway__cloudformation__ec2__elbv2.deploy-apigateway-vpclink-invalid-target-arn-rejected-and-rolled-back", "deployments": [], "key": "apigateway__cloudformation__ec2__elbv2/deploy-apigateway-vpclink-invalid-target-arn-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:GetVpcLink", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets"], "path": "behavioral/apigateway__cloudformation__ec2__elbv2/check_deploy_apigateway_vpclink_invalid_target_arn_rejected_and_rolled_back.py", "service": "apigateway__cloudformation__ec2__elbv2"} {"check_id": "apigateway__cloudformation__ec2__elbv2.deploy-apigateway-vpclink-round-trip-and-delete", "deployments": [], "key": "apigateway__cloudformation__ec2__elbv2/deploy-apigateway-vpclink-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetVpcLink", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigateway__cloudformation__ec2__elbv2/check_deploy_apigateway_vpclink_round_trip_and_delete.py", "service": "apigateway__cloudformation__ec2__elbv2"} {"check_id": "apigateway__cloudformation__lambda.apigw-authorizer-lambda-cfn-permission-missing-negative", "deployments": [], "key": "apigateway__cloudformation__lambda/apigw-authorizer-lambda-cfn-permission-missing-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__cloudformation__lambda/check_apigw_authorizer_lambda_cfn_permission_missing_negative.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.apigw-authorizer-lambda-checks-cfn-stack-tag-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/apigw-authorizer-lambda-checks-cfn-stack-tag-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_apigw_authorizer_lambda_checks_cfn_stack_tag_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.apigw-integration-lambda-alias-invocation-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/apigw-integration-lambda-alias-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:TestInvokeMethod", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:PublishVersion", "lambda:RemovePermission", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_apigw_integration_lambda_alias_invocation_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.apigw-integration-lambda-alias-mismatch-negative", "deployments": [], "key": "apigateway__cloudformation__lambda/apigw-integration-lambda-alias-mismatch-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:TestInvokeMethod", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:PublishVersion", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_apigw_integration_lambda_alias_mismatch_negative.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-apigw-lambda-proxy-integration-deploy-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-apigw-lambda-proxy-integration-deploy-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_apigw_lambda_proxy_integration_deploy_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-apigw-lambda-request-integration-mapping-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-apigw-lambda-request-integration-mapping-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_apigw_lambda_request_integration_mapping_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-apigw-role-missing-trust-principal-negative", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-apigw-role-missing-trust-principal-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DescribeLogStreams"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_apigw_role_missing_trust_principal_negative.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-apigw-role-trust-policy-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-apigw-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DescribeLogStreams"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_apigw_role_trust_policy_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-apigw-stack-update-swap-lambda-target-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-apigw-stack-update-swap-lambda-target-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_apigw_stack_update_swap_lambda_target_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-apigw-stage-deployment-invocation-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-apigw-stage-deployment-invocation-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_apigw_stage_deployment_invocation_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-apigw-wrong-integration-uri-negative", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-apigw-wrong-integration-uri-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunction"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_apigw_wrong_integration_uri_negative.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-custom-resource-invokes-lambda-create-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-custom-resource-invokes-lambda-create-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_custom_resource_invokes_lambda_create_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-custom-resource-invokes-lambda-delete-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-custom-resource-invokes-lambda-delete-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_custom_resource_invokes_lambda_delete_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-custom-resource-invokes-lambda-update-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-custom-resource-invokes-lambda-update-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_custom_resource_invokes_lambda_update_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-custom-resource-lambda-missing-servicetoken-permission-rejected", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-custom-resource-lambda-missing-servicetoken-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_custom_resource_lambda_missing_servicetoken_permission_rejected.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-custom-resource-signals-failure-stack-rollback-negative", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-custom-resource-signals-failure-stack-rollback-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:PutParameter"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_custom_resource_signals_failure_stack_rollback_negative.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-custom-resource-signals-success-updates-stack-status-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-custom-resource-signals-success-updates-stack-status-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_custom_resource_signals_success_updates_stack_status_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-lambda-role-missing-trust-principal-rejected", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-lambda-role-missing-trust-principal-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_lambda_role_missing_trust_principal_rejected.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-lambda-role-trust-policy-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-lambda-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "logs:DescribeLogStreams"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_lambda_role_trust_policy_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-nested-stack-lambda-provider-reuse-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-nested-stack-lambda-provider-reuse-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_nested_stack_lambda_provider_reuse_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cfn-stack-rollback-on-custom-resource-failure", "deployments": [], "key": "apigateway__cloudformation__lambda/cfn-stack-rollback-on-custom-resource-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sns:GetTopicAttributes"], "path": "behavioral/apigateway__cloudformation__lambda/check_cfn_stack_rollback_on_custom_resource_failure.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.cli-workflow-cfn-outputs-drive-apigateway-stage-update", "deployments": [], "key": "apigateway__cloudformation__lambda/cli-workflow-cfn-outputs-drive-apigateway-stage-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse"], "path": "behavioral/apigateway__cloudformation__lambda/check_cli_workflow_cfn_outputs_drive_apigateway_stage_update.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.deploy-cdk-lambdarestapi-deploy-false-test-invoke-returns-function-response", "deployments": ["behavioral/apigateway__cloudformation__lambda/deployments/cdk_lambdarestapi_deploy_false/app.py", "behavioral/apigateway__cloudformation__lambda/deployments/cdk_lambdarestapi_deploy_false/cdk.json"], "key": "apigateway__cloudformation__lambda/deploy-cdk-lambdarestapi-deploy-false-test-invoke-returns-function-response", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:GetStages", "apigateway:TestInvokeMethod", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListRoles", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/apigateway__cloudformation__lambda/check_deploy_cdk_lambdarestapi_deploy_false_test_invoke_returns_function_response.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.deploy-cfn-apigw-lambda-integration-missing-permission-test-invoke-rejected", "deployments": [], "key": "apigateway__cloudformation__lambda/deploy-cfn-apigw-lambda-integration-missing-permission-test-invoke-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:GetResources", "apigateway:GetRestApi", "apigateway:TestInvokeMethod", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/apigateway__cloudformation__lambda/check_deploy_cfn_apigw_lambda_integration_missing_permission_test_invoke_rejected.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.lambda-sdk-apigateway-create-deployment-missing-permission-negative", "deployments": [], "key": "apigateway__cloudformation__lambda/lambda-sdk-apigateway-create-deployment-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_lambda_sdk_apigateway_create_deployment_missing_permission_negative.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.lambda-sdk-apigateway-create-deployment-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/lambda-sdk-apigateway-create-deployment-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_lambda_sdk_apigateway_create_deployment_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.lambda-sdk-apigateway-get-rest-apis-missing-permission-negative", "deployments": [], "key": "apigateway__cloudformation__lambda/lambda-sdk-apigateway-get-rest-apis-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_lambda_sdk_apigateway_get_rest_apis_missing_permission_negative.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.lambda-sdk-apigateway-get-rest-apis-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/lambda-sdk-apigateway-get-rest-apis-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_lambda_sdk_apigateway_get_rest_apis_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.lambda-sdk-cfn-get-template-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/lambda-sdk-cfn-get-template-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_lambda_sdk_cfn_get_template_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.lambda-sdk-cfn-list-stack-resources-missing-permission-negative", "deployments": [], "key": "apigateway__cloudformation__lambda/lambda-sdk-cfn-list-stack-resources-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_lambda_sdk_cfn_list_stack_resources_missing_permission_negative.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.lambda-sdk-cfn-list-stack-resources-positive", "deployments": [], "key": "apigateway__cloudformation__lambda/lambda-sdk-cfn-list-stack-resources-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_lambda_sdk_cfn_list_stack_resources_positive.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.sam-apigw-proxy-integration-malformed-response-rejected", "deployments": ["behavioral/apigateway__cloudformation__lambda/deployments/sam_apigw_proxy/template.yaml"], "key": "apigateway__cloudformation__lambda/sam-apigw-proxy-integration-malformed-response-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["apigateway:GetResources", "apigateway:GetRestApi", "apigateway:TestInvokeMethod", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/apigateway__cloudformation__lambda/check_sam_apigw_proxy_integration_malformed_response_rejected.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.sam-implicit-api-synthesis-serves-real-https", "deployments": [], "key": "apigateway__cloudformation__lambda/sam-implicit-api-synthesis-serves-real-https", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetStages", "cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "lambda:AddPermission", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudformation__lambda/check_sam_implicit_api_synthesis_serves_real_https.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.sam-invalid-document-error-taxonomy-rejected", "deployments": [], "key": "apigateway__cloudformation__lambda/sam-invalid-document-error-taxonomy-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "cloudformation:ListStacks", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cloudformation__lambda/check_sam_invalid_document_error_taxonomy_rejected.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudformation__lambda.serverless-http-event-request-validator-rejects-missing-parameter", "deployments": [], "key": "apigateway__cloudformation__lambda/serverless-http-event-request-validator-rejects-missing-parameter", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:GetResources", "apigateway:GetRestApi", "apigateway:TestInvokeMethod", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "s3:GetBucketVersioning"], "path": "behavioral/apigateway__cloudformation__lambda/check_serverless_http_event_request_validator_rejects_missing_parameter.py", "service": "apigateway__cloudformation__lambda"} {"check_id": "apigateway__cloudfront__dynamodb__lambda__s3.e2e-spa-api-without-lambda-permission-rejected", "deployments": [], "key": "apigateway__cloudfront__dynamodb__lambda__s3/e2e-spa-api-without-lambda-permission-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateFunction", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteFunction", "cloudfront:DeleteOriginAccessControl", "cloudfront:DescribeFunction", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:PublishFunction", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__dynamodb__lambda__s3/check_e2e_spa_api_without_lambda_permission_rejected.py", "service": "apigateway__cloudfront__dynamodb__lambda__s3"} {"check_id": "apigateway__cloudfront__dynamodb__lambda__s3.e2e-spa-distribution-serves-shell-and-api-writes-dynamodb", "deployments": [], "key": "apigateway__cloudfront__dynamodb__lambda__s3/e2e-spa-distribution-serves-shell-and-api-writes-dynamodb", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateFunction", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteFunction", "cloudfront:DeleteOriginAccessControl", "cloudfront:DescribeFunction", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:PublishFunction", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__dynamodb__lambda__s3/check_e2e_spa_distribution_serves_shell_and_api_writes_dynamodb.py", "service": "apigateway__cloudfront__dynamodb__lambda__s3"} {"check_id": "apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions.cdk-api-estate-holds-reconciliation", "deployments": ["behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/app.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/analytics-processor/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/analytics-writer/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/buffer_timeout_handler/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/check_tenant_content/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/complete_provisioning/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/config-loader/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/configure_tenant_url/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/dev-processor/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/get_agreement/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/message-handler/message.js", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/motion-detection-task/Dockerfile", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/motion-detection-task/app.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/node-scripts/flint-node-persistent.sh", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/node-scripts/flint-node-professional.sh", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/node-scripts/flint-node.sh", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/onyx_handler/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/onyx_handler_beta/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/provision_keyspace/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/quartz-backfill/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/reconciliation-processor/index.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/tigris-api/Dockerfile", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/tigris-api/app.js", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/tigris-client/Dockerfile", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/assets/tigris-client/app.py", "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/deployments/cdk_api_observability_estate/cdk.json"], "key": "apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/cdk-api-estate-holds-reconciliation", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:control", "plane:data"], "operations": ["apigateway:GetAccount", "apigateway:GetDeployments", "apigateway:GetMethod", "apigateway:GetResources", "apigateway:GetStages", "apigateway:TestInvokeMethod", "apigateway:UpdateAccount", "apigatewayv2:GetDeployments", "apigatewayv2:GetRoutes", "apigatewayv2:GetStages", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "bedrock-agent:GetKnowledgeBase", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudfront:GetConnectionGroup", "cloudfront:GetDistributionConfig", "cloudwatch:GetMetricStatistics", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "ecs:DescribeServices", "efs:DescribeFileSystems", "efs:DescribeMountTargets", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "iam:SimulatePrincipalPolicy", "kms:DescribeKey", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "opensearch:DescribeDomain", "opensearch:DescribeDomains", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:DescribeClusters", "route53:GetHostedZone", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3vectors:PutVectors", "s3vectors:QueryVectors", "sagemaker:DescribeDomain", "sqs:GetQueueAttributes", "sqs:PurgeQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:GetParameter", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions/check_cdk_api_estate_holds_reconciliation.py", "service": "apigateway__cloudfront__ecs__elbv2__lambda__opensearch__redshift__stepfunctions"} {"check_id": "apigateway__cloudfront__s3.apigateway-s3-binary-media-type-passthrough", "deployments": [], "key": "apigateway__cloudfront__s3/apigateway-s3-binary-media-type-passthrough", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_apigateway_s3_binary_media_type_passthrough.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigateway-s3-getobject-proxy-integration-positive", "deployments": [], "key": "apigateway__cloudfront__s3/apigateway-s3-getobject-proxy-integration-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_apigateway_s3_getobject_proxy_integration_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigateway-s3-missing-role-permission-negative", "deployments": [], "key": "apigateway__cloudfront__s3/apigateway-s3-missing-role-permission-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_apigateway_s3_missing_role_permission_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigateway-s3-putobject-proxy-integration-positive", "deployments": [], "key": "apigateway__cloudfront__s3/apigateway-s3-putobject-proxy-integration-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/apigateway__cloudfront__s3/check_apigateway_s3_putobject_proxy_integration_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigateway-s3-role-trust-policy-missing-negative", "deployments": [], "key": "apigateway__cloudfront__s3/apigateway-s3-role-trust-policy-missing-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_apigateway_s3_role_trust_policy_missing_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigw-role-trust-policy-validation", "deployments": [], "key": "apigateway__cloudfront__s3/apigw-role-trust-policy-validation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/apigateway__cloudfront__s3/check_apigw_role_trust_policy_validation.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigw-s3-direct-integration-getobject-positive", "deployments": [], "key": "apigateway__cloudfront__s3/apigw-s3-direct-integration-getobject-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_apigw_s3_direct_integration_getobject_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigw-s3-direct-integration-putobject-positive", "deployments": [], "key": "apigateway__cloudfront__s3/apigw-s3-direct-integration-putobject-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/apigateway__cloudfront__s3/check_apigw_s3_direct_integration_putobject_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigw-s3-integration-missing-role-permission-negative", "deployments": [], "key": "apigateway__cloudfront__s3/apigw-s3-integration-missing-role-permission-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_apigw_s3_integration_missing_role_permission_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.apigw-s3-integration-wrong-bucket-arn-negative", "deployments": [], "key": "apigateway__cloudfront__s3/apigw-s3-integration-wrong-bucket-arn-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/apigateway__cloudfront__s3/check_apigw_s3_integration_wrong_bucket_arn_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cfn-deploy-cloudfront-apigw-stack-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cfn-deploy-cloudfront-apigw-stack-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cloudfront__s3/check_cfn_deploy_cloudfront_apigw_stack_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cfn-deploy-cloudfront-s3-missing-oac-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cfn-deploy-cloudfront-s3-missing-oac-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cfn_deploy_cloudfront_s3_missing_oac_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cfn-deploy-cloudfront-s3-oac-stack-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cfn-deploy-cloudfront-s3-oac-stack-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cfn_deploy_cloudfront_s3_oac_stack_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cfn-stack-update-cloudfront-origin-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cfn-stack-update-cloudfront-origin-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cfn_stack_update_cloudfront_origin_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-apigateway-deploy-stage-cloudfront-origin-workflow", "deployments": [], "key": "apigateway__cloudfront__s3/cli-apigateway-deploy-stage-cloudfront-origin-workflow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_apigateway_deploy_stage_cloudfront_origin_workflow.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-apigw-cloudfront-custom-domain-missing-cert-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cli-apigw-cloudfront-custom-domain-missing-cert-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_apigw_cloudfront_custom_domain_missing_cert_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-cloudfront-create-distribution-s3-origin-workflow", "deployments": [], "key": "apigateway__cloudfront__s3/cli-cloudfront-create-distribution-s3-origin-workflow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_cloudfront_create_distribution_s3_origin_workflow.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-cloudfront-invalidate-cache-after-s3-update", "deployments": [], "key": "apigateway__cloudfront__s3/cli-cloudfront-invalidate-cache-after-s3-update", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateInvalidation", "cloudfront:DeleteCachePolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetCachePolicy", "cloudfront:GetDistribution", "cloudfront:GetInvalidation", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_cloudfront_invalidate_cache_after_s3_update.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-cloudfront-missing-origin-access-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cli-cloudfront-missing-origin-access-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_cloudfront_missing_origin_access_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-cloudfront-s3-oac-setup-workflow", "deployments": [], "key": "apigateway__cloudfront__s3/cli-cloudfront-s3-oac-setup-workflow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_cloudfront_s3_oac_setup_workflow.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-deploy-apigw-cloudfront-distribution-workflow", "deployments": [], "key": "apigateway__cloudfront__s3/cli-deploy-apigw-cloudfront-distribution-workflow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_deploy_apigw_cloudfront_distribution_workflow.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-s3-cors-cloudfront-preflight-workflow", "deployments": [], "key": "apigateway__cloudfront__s3/cli-s3-cors-cloudfront-preflight-workflow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_s3_cors_cloudfront_preflight_workflow.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cli-s3-sync-cloudfront-invalidate-workflow", "deployments": [], "key": "apigateway__cloudfront__s3/cli-s3-sync-cloudfront-invalidate-workflow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__s3/check_cli_s3_sync_cloudfront_invalidate_workflow.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigateway-cache-behavior-forward-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigateway-cache-behavior-forward-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigateway_cache_behavior_forward_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigateway-custom-header-passthrough", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigateway-custom-header-passthrough", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigateway_custom_header_passthrough.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigateway-custom-origin-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigateway-custom-origin-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigateway_custom_origin_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigateway-origin-missing-resource-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigateway-origin-missing-resource-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigateway_origin_missing_resource_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigateway-viewer-protocol-policy-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigateway-viewer-protocol-policy-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigateway_viewer_protocol_policy_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigateway-wrong-origin-path-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigateway-wrong-origin-path-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigateway_wrong_origin_path_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigw-cache-behavior-path-routing", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigw-cache-behavior-path-routing", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigw_cache_behavior_path_routing.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigw-custom-header-forward-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigw-custom-header-forward-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigw_custom_header_forward_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigw-origin-missing-resource-policy-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigw-origin-missing-resource-policy-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateRestApi", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigw_origin_missing_resource_policy_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigw-origin-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigw-origin-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigw_origin_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigw-origin-protocol-mismatch-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigw-origin-protocol-mismatch-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigw_origin_protocol_mismatch_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-apigw-viewer-request-header-passthrough", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-apigw-viewer-request-header-passthrough", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_apigw_viewer_request_header_passthrough.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-invalidation-s3-object-update-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-invalidation-s3-object-update-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_invalidation_s3_object_update_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-access-logging-delivery-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-access-logging-delivery-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketAcl", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketAcl", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_access_logging_delivery_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-bucket-policy-wrong-distribution-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-bucket-policy-wrong-distribution-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_bucket_policy_wrong_distribution_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-missing-oac-policy-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-missing-oac-policy-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_missing_oac_policy_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-oac-origin-access-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-oac-origin-access-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_oac_origin_access_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-oac-origin-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-oac-origin-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_oac_origin_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-oai-legacy-access-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-oai-legacy-access-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:DeleteDistribution", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_oai_legacy_access_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-oai-legacy-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-oai-legacy-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:CreateDistribution", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:DeleteDistribution", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_oai_legacy_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-origin-mismatched-bucket-region-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-origin-mismatched-bucket-region-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_origin_mismatched_bucket_region_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-origin-missing-bucket-policy-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-origin-missing-bucket-policy-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_origin_missing_bucket_policy_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-origin-path-prefix-resolution", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-origin-path-prefix-resolution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_origin_path_prefix_resolution.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-public-bucket-direct-access-bypass", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-public-bucket-direct-access-bypass", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_public_bucket_direct_access_bypass.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-public-bucket-direct-access-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-public-bucket-direct-access-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_public_bucket_direct_access_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-signed-url-restricted-access-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-signed-url-restricted-access-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateKeyGroup", "cloudfront:CreateOriginAccessControl", "cloudfront:CreatePublicKey", "cloudfront:DeleteDistribution", "cloudfront:DeleteKeyGroup", "cloudfront:DeleteOriginAccessControl", "cloudfront:DeletePublicKey", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetKeyGroup", "cloudfront:GetOriginAccessControl", "cloudfront:GetPublicKey", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_signed_url_restricted_access_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-website-endpoint-origin-positive", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-website-endpoint-origin-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_website_endpoint_origin_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.cloudfront-s3-wrong-oac-signing-negative", "deployments": [], "key": "apigateway__cloudfront__s3/cloudfront-s3-wrong-oac-signing-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_cloudfront_s3_wrong_oac_signing_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.deploy-apigateway-role-trust-policy-positive", "deployments": [], "key": "apigateway__cloudfront__s3/deploy-apigateway-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_deploy_apigateway_role_trust_policy_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.deploy-apigateway-s3-integration-stack-positive", "deployments": [], "key": "apigateway__cloudfront__s3/deploy-apigateway-s3-integration-stack-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/apigateway__cloudfront__s3/check_deploy_apigateway_s3_integration_stack_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.deploy-cloudfront-apigateway-origin-stack-negative", "deployments": [], "key": "apigateway__cloudfront__s3/deploy-cloudfront-apigateway-origin-stack-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetDistribution"], "path": "behavioral/apigateway__cloudfront__s3/check_deploy_cloudfront_apigateway_origin_stack_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.deploy-cloudfront-s3-oac-stack-positive", "deployments": [], "key": "apigateway__cloudfront__s3/deploy-cloudfront-s3-oac-stack-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetDistribution", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_deploy_cloudfront_s3_oac_stack_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.deploy-s3-role-trust-policy-positive", "deployments": [], "key": "apigateway__cloudfront__s3/deploy-s3-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_deploy_s3_role_trust_policy_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.s3-eventbridge-missing-rule-target-permission-negative", "deployments": [], "key": "apigateway__cloudfront__s3/s3-eventbridge-missing-rule-target-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_s3_eventbridge_missing_rule_target_permission_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.s3-eventbridge-wrong-bucket-arn-pattern-negative", "deployments": [], "key": "apigateway__cloudfront__s3/s3-eventbridge-wrong-bucket-arn-pattern-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_s3_eventbridge_wrong_bucket_arn_pattern_negative.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.s3-object-created-eventbridge-cloudfront-invalidation-positive", "deployments": [], "key": "apigateway__cloudfront__s3/s3-object-created-eventbridge-cloudfront-invalidation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_s3_object_created_eventbridge_cloudfront_invalidation_positive.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudfront__s3.s3-role-trust-policy-validation", "deployments": [], "key": "apigateway__cloudfront__s3/s3-role-trust-policy-validation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:DeleteObjects", "s3:GetBucketReplication", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/apigateway__cloudfront__s3/check_s3_role_trust_policy_validation.py", "service": "apigateway__cloudfront__s3"} {"check_id": "apigateway__cloudwatch.apigw-method-metrics-reach-cloudwatch-only-when-detailed-metrics-are-enabled", "deployments": [], "key": "apigateway__cloudwatch/apigw-method-metrics-reach-cloudwatch-only-when-detailed-metrics-are-enabled", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/apigateway__cloudwatch/check_apigw_method_metrics_reach_cloudwatch_only_when_detailed_metrics_are_enabled.py", "service": "apigateway__cloudwatch"} {"check_id": "apigateway__cloudwatch.obs-apigateway-3-per-method-metrics-only-for-the-enabled-method", "deployments": [], "key": "apigateway__cloudwatch/obs-apigateway-3-per-method-metrics-only-for-the-enabled-method", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/apigateway__cloudwatch/check_obs_apigateway_3_per_method_metrics_only_for_the_enabled_method.py", "service": "apigateway__cloudwatch"} {"check_id": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs.xflavor-order-service-cdk-assetfree", "deployments": ["behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/deployments/order_service_cdk/app.py", "behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/deployments/order_service_cdk/cdk.json"], "key": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs/xflavor-order-service-cdk-assetfree", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/check_xflavor_order_service_cdk_assetfree.py", "service": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs"} {"check_id": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs.xflavor-order-service-cdk-assetfree-alarm-config", "deployments": ["behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/deployments/order_service_cdk/app.py", "behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/deployments/order_service_cdk/cdk.json"], "key": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs/xflavor-order-service-cdk-assetfree-alarm-config", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/check_xflavor_order_service_cdk_assetfree_alarm_config.py", "service": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs"} {"check_id": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs.xflavor-order-service-cfn", "deployments": ["behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/deployments/order_service_cfn.yaml"], "key": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs/xflavor-order-service-cfn", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/check_xflavor_order_service_cfn.py", "service": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs"} {"check_id": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs.xflavor-order-service-cfn-alarm-echoes-declared-period", "deployments": ["behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/deployments/order_service_cfn.yaml"], "key": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs/xflavor-order-service-cfn-alarm-echoes-declared-period", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/check_xflavor_order_service_cfn_alarm_echoes_declared_period.py", "service": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs"} {"check_id": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs.xflavor-order-service-sam", "deployments": ["behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/deployments/order_service_sam.yaml"], "key": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs/xflavor-order-service-sam", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateResource", "apigateway:GetRestApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:SetAlarmState", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListEventSourceMappings", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:PutLogEvents", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:SendMessage"], "path": "behavioral/apigateway__cloudwatch__dynamodb__lambda__logs__sqs/check_xflavor_order_service_sam.py", "service": "apigateway__cloudwatch__dynamodb__lambda__logs__sqs"} {"check_id": "apigateway__cloudwatch__lambda.metrics-elbv2-apigw-rest-api-lambda-authorizer-denied-403-counts-4xx-not-5xx", "deployments": [], "key": "apigateway__cloudwatch__lambda/metrics-elbv2-apigw-rest-api-lambda-authorizer-denied-403-counts-4xx-not-5xx", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudwatch__lambda/check_metrics_elbv2_apigw_rest_api_lambda_authorizer_denied_403_counts_4xx_not_5xx.py", "service": "apigateway__cloudwatch__lambda"} {"check_id": "apigateway__cloudwatch__lambda.metrics-elbv2-apigw-rest-api-stage-metrics-count-errors-latency-under-apiname-stage", "deployments": [], "key": "apigateway__cloudwatch__lambda/metrics-elbv2-apigw-rest-api-stage-metrics-count-errors-latency-under-apiname-stage", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudwatch__lambda/check_metrics_elbv2_apigw_rest_api_stage_metrics_count_errors_latency_under_apiname_stage.py", "service": "apigateway__cloudwatch__lambda"} {"check_id": "apigateway__cloudwatch__lambda.obs-apigateway-1-5xx-alarm-ok-to-alarm-notifies-sqs-via-sns", "deployments": [], "key": "apigateway__cloudwatch__lambda/obs-apigateway-1-5xx-alarm-ok-to-alarm-notifies-sqs-via-sns", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudwatch__lambda/check_obs_apigateway_1_5xx_alarm_ok_to_alarm_notifies_sqs_via_sns.py", "service": "apigateway__cloudwatch__lambda"} {"check_id": "apigateway__cloudwatch__lambda.obs-apigateway-1-cache-control-invalidation-rejected-403-when-unauthorized", "deployments": [], "key": "apigateway__cloudwatch__lambda/obs-apigateway-1-cache-control-invalidation-rejected-403-when-unauthorized", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudwatch__lambda/check_obs_apigateway_1_cache_control_invalidation_rejected_403_when_unauthorized.py", "service": "apigateway__cloudwatch__lambda"} {"check_id": "apigateway__cloudwatch__lambda.obs-apigateway-1-cache-hit-miss-metrics-track-flush-uncached-stage-has-none", "deployments": [], "key": "apigateway__cloudwatch__lambda/obs-apigateway-1-cache-hit-miss-metrics-track-flush-uncached-stage-has-none", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cloudwatch__lambda/check_obs_apigateway_1_cache_hit_miss_metrics_track_flush_uncached_stage_has_none.py", "service": "apigateway__cloudwatch__lambda"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-authorizer-invoke-role-missing-invoke-permission-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-authorizer-invoke-role-missing-invoke-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_authorizer_invoke_role_missing_invoke_permission_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-authorizer-invoke-role-missing-trust-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-authorizer-invoke-role-missing-trust-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_authorizer_invoke_role_missing_trust_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-authorizer-invoke-role-trust-apigateway-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-authorizer-invoke-role-trust-apigateway-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateRestApi", "apigateway:DeleteAuthorizer", "apigateway:DeleteRestApi", "apigateway:TestInvokeAuthorizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_authorizer_invoke_role_trust_apigateway_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-cognito-authorizer-claims-context-passthrough", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-cognito-authorizer-claims-context-passthrough", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_cognito_authorizer_claims_context_passthrough.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-cognito-authorizer-expired-token-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-cognito-authorizer-expired-token-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_cognito_authorizer_expired_token_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-cognito-authorizer-id-token-exp-matches-validity-and-is-accepted", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-cognito-authorizer-id-token-exp-matches-validity-and-is-accepted", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_cognito_authorizer_id_token_exp_matches_validity_and_is_accepted.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-cognito-authorizer-invalid-token-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-cognito-authorizer-invalid-token-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_cognito_authorizer_invalid_token_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-cognito-authorizer-multiple-user-pools-audience-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-cognito-authorizer-multiple-user-pools-audience-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_cognito_authorizer_multiple_user_pools_audience_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-cognito-authorizer-valid-token-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-cognito-authorizer-valid-token-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_cognito_authorizer_valid_token_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-cognito-authorizer-wrong-user-pool-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-cognito-authorizer-wrong-user-pool-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_cognito_authorizer_wrong_user_pool_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.apigw-cognito-user-pool-client-app-client-id-validation-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/apigw-cognito-user-pool-client-app-client-id-validation-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_apigw_cognito_user_pool_client_app_client_id_validation_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.cognito-identity-apigw-missing-execute-api-permission-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/cognito-identity-apigw-missing-execute-api-permission-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_cognito_identity_apigw_missing_execute_api_permission_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.cognito-identity-authenticated-role-invokes-apigw-iam-auth-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/cognito-identity-authenticated-role-invokes-apigw-iam-auth-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_cognito_identity_authenticated_role_invokes_apigw_iam_auth_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.cognito-identity-get-credentials-for-identity-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/cognito-identity-get-credentials-for-identity-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_cognito_identity_get_credentials_for_identity_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.cognito-identity-getid-with-userpool-token-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/cognito-identity-getid-with-userpool-token-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_cognito_identity_getid_with_userpool_token_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.cognito-identity-missing-role-trust-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/cognito-identity-missing-role-trust-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_cognito_identity_missing_role_trust_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.cognito-identity-unauthenticated-role-mapping-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/cognito-identity-unauthenticated-role-mapping-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_cognito_identity_unauthenticated_role_mapping_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.cognito-identity-wrong-login-provider-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/cognito-identity-wrong-login-provider-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_cognito_identity_wrong_login_provider_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.deploy-apigw-cognito-authorizer-wrong-provider-arns-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/deploy-apigw-cognito-authorizer-wrong-provider-arns-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_deploy_apigw_cognito_authorizer_wrong_provider_arns_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.deploy-apigw-execution-role-trust-policy-template-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/deploy-apigw-execution-role-trust-policy-template-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_deploy_apigw_execution_role_trust_policy_template_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.deploy-cognito-identity-pool-missing-role-arn-negative", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/deploy-cognito-identity-pool-missing-role-arn-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_deploy_cognito_identity_pool_missing_role_arn_negative.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.deploy-cognito-identity-pool-roles-stack-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/deploy-cognito-identity-pool-roles-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_deploy_cognito_identity_pool_roles_stack_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-identity__cognito-idp.deploy-cognito-userpool-apigw-authorizer-stack-positive", "deployments": [], "key": "apigateway__cognito-identity__cognito-idp/deploy-cognito-userpool-apigw-authorizer-stack-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword"], "path": "behavioral/apigateway__cognito-identity__cognito-idp/check_deploy_cognito_userpool_apigw_authorizer_stack_positive.py", "service": "apigateway__cognito-identity__cognito-idp"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-authorizer-claims-carry-custom-attributes-and-email-verified", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-authorizer-claims-carry-custom-attributes-and-email-verified", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_authorizer_claims_carry_custom_attributes_and_email_verified.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-authorizer-claims-passthrough-to-lambda", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-authorizer-claims-passthrough-to-lambda", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_authorizer_claims_passthrough_to_lambda.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-authorizer-claims-reach-integration", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-authorizer-claims-reach-integration", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_authorizer_claims_reach_integration.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-authorizer-group-based-access-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-authorizer-group-based-access-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_authorizer_group_based_access_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-authorizer-missing-token-not-delivered", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-authorizer-missing-token-not-delivered", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_authorizer_missing_token_not_delivered.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-authorizer-tampered-signature-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-authorizer-tampered-signature-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_authorizer_tampered_signature_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-authorizer-wrong-user-pool-arn-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-authorizer-wrong-user-pool-arn-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_authorizer_wrong_user_pool_arn_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-user-pools-authorizer-invalid-token-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-user-pools-authorizer-invalid-token-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_user_pools_authorizer_invalid_token_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-user-pools-authorizer-missing-scope-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-user-pools-authorizer-missing-scope-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_user_pools_authorizer_missing_scope_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.apigw-cognito-user-pools-authorizer-valid-token-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/apigw-cognito-user-pools-authorizer-valid-token-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_apigw_cognito_user_pools_authorizer_valid_token_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cfn-apigateway-role-trusts-apigateway-service-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/cfn-apigateway-role-trusts-apigateway-service-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cfn_apigateway_role_trusts_apigateway_service_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cfn-apigw-authorizer-wrong-userpool-arn-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/cfn-apigw-authorizer-wrong-userpool-arn-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cfn_apigw_authorizer_wrong_userpool_arn_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cfn-apigw-cognito-authorizer-stack-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/cfn-apigw-cognito-authorizer-stack-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cfn_apigw_cognito_authorizer_stack_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cfn-apigw-lambda-proxy-integration-resource-binding-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/cfn-apigw-lambda-proxy-integration-resource-binding-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cfn_apigw_lambda_proxy_integration_resource_binding_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cfn-cognito-userpool-lambda-trigger-config-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/cfn-cognito-userpool-lambda-trigger-config-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:SignUp"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cfn_cognito_userpool_lambda_trigger_config_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cfn-lambda-role-missing-trust-policy-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/cfn-lambda-role-missing-trust-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cfn_lambda_role_missing_trust_policy_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cfn-lambda-role-trusts-lambda-service-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/cfn-lambda-role-trusts-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cfn_lambda_role_trusts_lambda_service_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cfn-lambda-role-wrong-service-principal-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/cfn-lambda-role-wrong-service-principal-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cfn_lambda_role_wrong_service_principal_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cli-apigw-deploy-cognito-authorizer-test-unauthorized-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/cli-apigw-deploy-cognito-authorizer-test-unauthorized-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cli_apigw_deploy_cognito_authorizer_test_unauthorized_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cli-apigw-lambda-cognito-full-stack-smoke", "deployments": [], "key": "apigateway__cognito-idp__lambda/cli-apigw-lambda-cognito-full-stack-smoke", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cli_apigw_lambda_cognito_full_stack_smoke.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cli-cognito-admin-create-user-lambda-invoke", "deployments": [], "key": "apigateway__cognito-idp__lambda/cli-cognito-admin-create-user-lambda-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cli_cognito_admin_create_user_lambda_invoke.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cli-cognito-create-userpool-apigw-authorizer-invoke", "deployments": [], "key": "apigateway__cognito-idp__lambda/cli-cognito-create-userpool-apigw-authorizer-invoke", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "cognito-idp:DeleteUserPool", "cognito-idp:UpdateUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cli_cognito_create_userpool_apigw_authorizer_invoke.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cli-lambda-cognito-trigger-setup-and-test", "deployments": [], "key": "apigateway__cognito-idp__lambda/cli-lambda-cognito-trigger-setup-and-test", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminGetUser", "cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cli_lambda_cognito_trigger_setup_and_test.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cognito-custom-message-trigger-modifies-message", "deployments": [], "key": "apigateway__cognito-idp__lambda/cognito-custom-message-trigger-modifies-message", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cognito_custom_message_trigger_modifies_message.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cognito-define-auth-challenge-trigger-chain", "deployments": [], "key": "apigateway__cognito-idp__lambda/cognito-define-auth-challenge-trigger-chain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cognito_define_auth_challenge_trigger_chain.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cognito-post-confirmation-trigger-invokes-lambda", "deployments": [], "key": "apigateway__cognito-idp__lambda/cognito-post-confirmation-trigger-invokes-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cognito_post_confirmation_trigger_invokes_lambda.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cognito-pre-signup-trigger-blocks-signup-on-error", "deployments": [], "key": "apigateway__cognito-idp__lambda/cognito-pre-signup-trigger-blocks-signup-on-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cognito_pre_signup_trigger_blocks_signup_on_error.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cognito-pre-token-v2-trigger-group-override", "deployments": [], "key": "apigateway__cognito-idp__lambda/cognito-pre-token-v2-trigger-group-override", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cognito_pre_token_v2_trigger_group_override.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cognito-trigger-missing-invoke-permission-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/cognito-trigger-missing-invoke-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cognito_trigger_missing_invoke_permission_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.cognito-trigger-wrong-lambda-arn-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/cognito-trigger-wrong-lambda-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:UpdateUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__cognito-idp__lambda/check_cognito_trigger_wrong_lambda_arn_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-apigateway-create-deployment-missing-permission-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-apigateway-create-deployment-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_apigateway_create_deployment_missing_permission_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-apigateway-create-deployment-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-apigateway-create-deployment-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployments", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_apigateway_create_deployment_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-apigateway-get-resources-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-apigateway-get-resources-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_apigateway_get_resources_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-apigateway-get-rest-apis-missing-permission-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-apigateway-get-rest-apis-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_apigateway_get_rest_apis_missing_permission_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-apigateway-get-rest-apis-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-apigateway-get-rest-apis-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_apigateway_get_rest_apis_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-apigateway-update-stage-variables-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-apigateway-update-stage-variables-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_apigateway_update_stage_variables_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-cognito-admin-create-user-missing-permission-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-cognito-admin-create-user-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_cognito_admin_create_user_missing_permission_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-cognito-admin-create-user-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-cognito-admin-create-user-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_cognito_admin_create_user_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-cognito-admin-disable-user-missing-permission-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-cognito-admin-disable-user-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_cognito_admin_disable_user_missing_permission_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-cognito-admin-get-user-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-cognito-admin-get-user-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_cognito_admin_get_user_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-cognito-admin-set-user-password-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-cognito-admin-set-user-password-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_cognito_admin_set_user_password_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-cognito-list-users-positive", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-cognito-list-users-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_cognito_list_users_positive.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__cognito-idp__lambda.lambda-cognito-wrong-user-pool-id-negative", "deployments": [], "key": "apigateway__cognito-idp__lambda/lambda-cognito-wrong-user-pool-id-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/apigateway__cognito-idp__lambda/check_lambda_cognito_wrong_user_pool_id_negative.py", "service": "apigateway__cognito-idp__lambda"} {"check_id": "apigateway__dynamodb.apigw-aws-integration-mapping-template-writes-ddb", "deployments": [], "key": "apigateway__dynamodb/apigw-aws-integration-mapping-template-writes-ddb", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb/check_apigw_aws_integration_mapping_template_writes_ddb.py", "service": "apigateway__dynamodb"} {"check_id": "apigateway__dynamodb.deep-apigateway-1-apigw-methodsetting-cache-ttl-expiry-and-flush-eviction", "deployments": [], "key": "apigateway__dynamodb/deep-apigateway-1-apigw-methodsetting-cache-ttl-expiry-and-flush-eviction", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:FlushStageCache", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb/check_deep_apigateway_1_apigw_methodsetting_cache_ttl_expiry_and_flush_eviction.py", "service": "apigateway__dynamodb"} {"check_id": "apigateway__dynamodb.deep-apigateway-1-apigw-methodsetting-unauthorized-cache-control-strategies", "deployments": [], "key": "apigateway__dynamodb/deep-apigateway-1-apigw-methodsetting-unauthorized-cache-control-strategies", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb/check_deep_apigateway_1_apigw_methodsetting_unauthorized_cache_control_strategies.py", "service": "apigateway__dynamodb"} {"check_id": "apigateway__dynamodb__lambda.apigw-authorizer-deny-integration-not-invoked", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-authorizer-deny-integration-not-invoked", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_authorizer_deny_integration_not_invoked.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-authorizer-missing-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-authorizer-missing-permission-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_authorizer_missing_permission_negative.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-ddb-atomic-counter-advances-once-per-request", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-ddb-atomic-counter-advances-once-per-request", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_ddb_atomic_counter_advances_once_per_request.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-ddb-path-keyed-put-stores-typed-attributes-and-logs-each-id", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-ddb-path-keyed-put-stores-typed-attributes-and-logs-each-id", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_ddb_path_keyed_put_stores_typed_attributes_and_logs_each_id.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-ddb-pipeline-missing-ddb-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-ddb-pipeline-missing-ddb-permission-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_ddb_pipeline_missing_ddb_permission_negative.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-ddb-pipeline-positive", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-ddb-pipeline-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_ddb_pipeline_positive.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-ddb-update-pipeline-positive", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-ddb-update-pipeline-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_ddb_update_pipeline_positive.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-env-table-arn-resolution", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-env-table-arn-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_env_table_arn_resolution.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-event-invocation-returns-200-empty-and-runs-async", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-event-invocation-returns-200-empty-and-runs-async", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_event_invocation_returns_200_empty_and_runs_async.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-missing-invoke-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-missing-invoke-permission-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:RemovePermission", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_missing_invoke_permission_negative.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-payload-format-preservation", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-payload-format-preservation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_payload_format_preservation.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-proxy-malformed-response-bad-gateway", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-proxy-malformed-response-bad-gateway", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_proxy_malformed_response_bad_gateway.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-proxy-positive", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-proxy-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_proxy_positive.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-lambda-response-passthrough-format", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-lambda-response-passthrough-format", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_lambda_response_passthrough_format.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-missing-api-key-not-delivered-to-integration", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-missing-api-key-not-delivered-to-integration", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateUsagePlan", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_missing_api_key_not_delivered_to_integration.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-request-validator-rejects-bad-body-integration-not-invoked", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-request-validator-rejects-bad-body-integration-not-invoked", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateModel", "apigateway:CreateRequestValidator", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_request_validator_rejects_bad_body_integration_not_invoked.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-stage-variables-isolate-ddb-target-per-stage", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-stage-variables-isolate-ddb-target-per-stage", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_stage_variables_isolate_ddb_target_per_stage.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-token-authorizer-identity-validation-expression-rejects-without-invoking", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-token-authorizer-identity-validation-expression-rejects-without-invoking", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_token_authorizer_identity_validation_expression_rejects_without_invoking.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.apigw-wrong-lambda-arn-integration-negative", "deployments": [], "key": "apigateway__dynamodb__lambda/apigw-wrong-lambda-arn-integration-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_apigw_wrong_lambda_arn_integration_negative.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.ddb-stream-lambda-batch-items-data-format", "deployments": [], "key": "apigateway__dynamodb__lambda/ddb-stream-lambda-batch-items-data-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__dynamodb__lambda/check_ddb_stream_lambda_batch_items_data_format.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.ddb-stream-lambda-delete-event-format", "deployments": [], "key": "apigateway__dynamodb__lambda/ddb-stream-lambda-delete-event-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__dynamodb__lambda/check_ddb_stream_lambda_delete_event_format.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.ddb-stream-lambda-esm-missing-stream-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda/ddb-stream-lambda-esm-missing-stream-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_ddb_stream_lambda_esm_missing_stream_permission_negative.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.ddb-stream-lambda-esm-positive", "deployments": [], "key": "apigateway__dynamodb__lambda/ddb-stream-lambda-esm-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__dynamodb__lambda/check_ddb_stream_lambda_esm_positive.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.lambda-ddb-conditional-write-positive", "deployments": [], "key": "apigateway__dynamodb__lambda/lambda-ddb-conditional-write-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_lambda_ddb_conditional_write_positive.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.lambda-ddb-missing-putitem-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda/lambda-ddb-missing-putitem-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_lambda_ddb_missing_putitem_permission_negative.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.lambda-ddb-put-get-positive", "deployments": [], "key": "apigateway__dynamodb__lambda/lambda-ddb-put-get-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_lambda_ddb_put_get_positive.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.lambda-ddb-query-gsi-positive", "deployments": [], "key": "apigateway__dynamodb__lambda/lambda-ddb-query-gsi-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_lambda_ddb_query_gsi_positive.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.lambda-ddb-scan-no-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda/lambda-ddb-scan-no-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_lambda_ddb_scan_no_permission_negative.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.lambda-ddb-transact-write-no-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda/lambda-ddb-transact-write-no-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_lambda_ddb_transact_write_no_permission_negative.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda.lambda-describe-apigateway-positive", "deployments": [], "key": "apigateway__dynamodb__lambda/lambda-describe-apigateway-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda/check_lambda_describe_apigateway_positive.py", "service": "apigateway__dynamodb__lambda"} {"check_id": "apigateway__dynamodb__lambda__logs.apigateway-access-log-wrong-destination-arn-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigateway-access-log-wrong-destination-arn-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigateway_access_log_wrong_destination_arn_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigateway-access-logs-custom-format-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigateway-access-logs-custom-format-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigateway_access_logs_custom_format_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigateway-execution-logging-to-cloudwatch-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigateway-execution-logging-to-cloudwatch-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigateway_execution_logging_to_cloudwatch_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigateway-log-group-resource-policy-missing-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigateway-log-group-resource-policy-missing-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigateway_log_group_resource_policy_missing_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigateway-missing-cloudwatch-role-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigateway-missing-cloudwatch-role-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigateway_missing_cloudwatch_role_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-access-log-group-created-per-stage", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-access-log-group-created-per-stage", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_access_log_group_created_per_stage.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-access-logs-custom-format", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-access-logs-custom-format", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_access_logs_custom_format.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-dynamodb-batch-write-integration-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-dynamodb-batch-write-integration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_dynamodb_batch_write_integration_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-dynamodb-getitem-integration-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-dynamodb-getitem-integration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_dynamodb_getitem_integration_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-dynamodb-missing-execution-role-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-dynamodb-missing-execution-role-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_dynamodb_missing_execution_role_permission_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-dynamodb-putitem-integration-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-dynamodb-putitem-integration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_dynamodb_putitem_integration_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-dynamodb-query-integration-response-mapping-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-dynamodb-query-integration-response-mapping-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_dynamodb_query_integration_response_mapping_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-dynamodb-wrong-table-arn-in-integration-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-dynamodb-wrong-table-arn-in-integration-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:TestInvokeMethod", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_dynamodb_wrong_table_arn_in_integration_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-execution-logs-delivered-to-cloudwatch", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-execution-logs-delivered-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_execution_logs_delivered_to_cloudwatch.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-http-api-access-logs-json-format", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-http-api-access-logs-json-format", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_http_api_access_logs_json_format.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-http-api-lambda-integration-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-http-api-lambda-integration-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_http_api_lambda_integration_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-http-api-lambda-missing-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-http-api-lambda-missing-permission-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_http_api_lambda_missing_permission_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-log-group-arn-mismatch-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-log-group-arn-mismatch-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_log_group_arn_mismatch_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-missing-cloudwatch-role-arn-no-logs-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-missing-cloudwatch-role-arn-no-logs-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_missing_cloudwatch_role_arn_no_logs_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-stage-logging-level-error-only", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-stage-logging-level-error-only", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_stage_logging_level_error_only.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-websocket-api-lambda-integration-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-websocket-api-lambda-integration-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_websocket_api_lambda_integration_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.apigw-websocket-connect-disconnect-logged", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/apigw-websocket-connect-disconnect-logged", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_apigw_websocket_connect_disconnect_logged.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-apigateway-create-deploy-invoke-lambda", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-apigateway-create-deploy-invoke-lambda", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_apigateway_create_deploy_invoke_lambda.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-apigateway-create-deploy-invoke-roundtrip", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-apigateway-create-deploy-invoke-roundtrip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_apigateway_create_deploy_invoke_roundtrip.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-apigateway-lambda-integration-setup-and-test", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-apigateway-lambda-integration-setup-and-test", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "apigateway:GetIntegration", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_apigateway_lambda_integration_setup_and_test.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-apigateway-missing-deployment-stage-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-apigateway-missing-deployment-stage-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_apigateway_missing_deployment_stage_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-apigateway-missing-lambda-permission-rejected", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-apigateway-missing-lambda-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_apigateway_missing_lambda_permission_rejected.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-apigateway-stage-access-log-missing-destination-rejected", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-apigateway-stage-access-log-missing-destination-rejected", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_apigateway_stage_access_log_missing_destination_rejected.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-dynamodb-create-table-put-item-scan-roundtrip", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-dynamodb-create-table-put-item-scan-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_dynamodb_create_table_put_item_scan_roundtrip.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-dynamodb-put-item-then-lambda-scan", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-dynamodb-put-item-then-lambda-scan", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_dynamodb_put_item_then_lambda_scan.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-lambda-invoke-missing-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-lambda-invoke-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_lambda_invoke_missing_permission_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-lambda-tail-logs-after-invoke", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-lambda-tail-logs-after-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_lambda_tail_logs_after_invoke.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-lambda-update-alias-moves-the-alias-to-the-new-code-version", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-lambda-update-alias-moves-the-alias-to-the-new-code-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_lambda_update_alias_moves_the_alias_to_the_new_code_version.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-lambda-update-env-vars-dynamodb-table-name", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-lambda-update-env-vars-dynamodb-table-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_lambda_update_env_vars_dynamodb_table_name.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-lambda-update-function-code-publish-keeps-each-version-running-its-own-code", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-lambda-update-function-code-publish-keeps-each-version-running-its-own-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_lambda_update_function_code_publish_keeps_each_version_running_its_own_code.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-lambda-update-function-code-then-invoke-logs-check", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-lambda-update-function-code-then-invoke-logs-check", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_lambda_update_function_code_then_invoke_logs_check.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.cli-logs-put-retention-policy-then-verify", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/cli-logs-put-retention-policy-then-verify", "labels": ["axis:happy-path", "plane:control"], "operations": [], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_cli_logs_put_retention_policy_then_verify.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.ddb-esm-batch-size-one-record-per-invocation-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/ddb-esm-batch-size-one-record-per-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_ddb_esm_batch_size_one_record_per_invocation_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.ddb-esm-destination-on-failure-missing-config-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/ddb-esm-destination-on-failure-missing-config-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_ddb_esm_destination_on_failure_missing_config_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.ddb-esm-lambda-error-logged-to-cloudwatch-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/ddb-esm-lambda-error-logged-to-cloudwatch-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_ddb_esm_lambda_error_logged_to_cloudwatch_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.ddb-esm-lambda-missing-logs-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/ddb-esm-lambda-missing-logs-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_ddb_esm_lambda_missing_logs_permission_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.ddb-esm-parallelization-factor-multiple-shards-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/ddb-esm-parallelization-factor-multiple-shards-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_ddb_esm_parallelization_factor_multiple_shards_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.ddb-esm-tumbling-window-aggregation-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/ddb-esm-tumbling-window-aggregation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_ddb_esm_tumbling_window_aggregation_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-apigateway-account-cloudwatch-role-configured", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-apigateway-account-cloudwatch-role-configured", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_apigateway_account_cloudwatch_role_configured.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-cfn-apigateway-access-logging-enabled-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-cfn-apigateway-access-logging-enabled-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_cfn_apigateway_access_logging_enabled_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-cfn-apigateway-dynamodb-direct-integration-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-cfn-apigateway-dynamodb-direct-integration-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_cfn_apigateway_dynamodb_direct_integration_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-cfn-lambda-log-group-retention-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-cfn-lambda-log-group-retention-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_cfn_lambda_log_group_retention_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-cfn-missing-dynamodb-table-arn-env-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-cfn-missing-dynamodb-table-arn-env-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "lambda:Invoke"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_cfn_missing_dynamodb_table_arn_env_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-cfn-missing-lambda-permission-for-apigateway-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-cfn-missing-lambda-permission-for-apigateway-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_cfn_missing_lambda_permission_for_apigateway_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-cfn-serverless-api-full-stack-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-cfn-serverless-api-full-stack-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_cfn_serverless_api_full_stack_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-dynamodb-table-stream-arn-exported-correctly", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-dynamodb-table-stream-arn-exported-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "lambda:GetEventSourceMapping"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_dynamodb_table_stream_arn_exported_correctly.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-full-stack-apigateway-lambda-dynamodb-logs", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-full-stack-apigateway-lambda-dynamodb-logs", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_full_stack_apigateway_lambda_dynamodb_logs.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-lambda-dynamodb-event-source-mapping-created", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-lambda-dynamodb-event-source-mapping-created", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:PutItem", "lambda:GetEventSourceMapping", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_lambda_dynamodb_event_source_mapping_created.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-lambda-execution-role-trust-policy-created", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-lambda-execution-role-trust-policy-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_lambda_execution_role_trust_policy_created.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-log-retention-set-via-template", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-log-retention-set-via-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_log_retention_set_via_template.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-missing-lambda-permission-blocks-apigateway-invoke-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-missing-lambda-permission-blocks-apigateway-invoke-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:AddPermission", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_missing_lambda_permission_blocks_apigateway_invoke_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.deploy-wrong-integration-uri-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/deploy-wrong-integration-uri-negative", "labels": ["axis:negative-delivery", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_deploy_wrong_integration_uri_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.iam-role-missing-apigateway-trust-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/iam-role-missing-apigateway-trust-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_iam_role_missing_apigateway_trust_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.iam-role-missing-lambda-trust-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/iam-role-missing-lambda-trust-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:ListFunctions", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_iam_role_missing_lambda_trust_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.iam-role-trusts-apigateway-service-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/iam-role-trusts-apigateway-service-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_iam_role_trusts_apigateway_service_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.iam-role-trusts-lambda-service-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/iam-role-trusts-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_iam_role_trusts_lambda_service_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.iam-role-wrong-principal-service-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/iam-role-wrong-principal-service-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_iam_role_wrong_principal_service_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.iam-role-wrong-trust-principal-apigateway-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/iam-role-wrong-trust-principal-apigateway-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_iam_role_wrong_trust_principal_apigateway_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.iam-role-wrong-trust-principal-lambda-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/iam-role-wrong-trust-principal-lambda-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_iam_role_wrong_trust_principal_lambda_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-apigateway-create-deployment-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-apigateway-create-deployment-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetDeployment", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_apigateway_create_deployment_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-apigateway-cross-account-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-apigateway-cross-account-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_apigateway_cross_account_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-apigateway-get-rest-apis-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-apigateway-get-rest-apis-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_apigateway_get_rest_apis_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-apigateway-missing-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-apigateway-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_apigateway_missing_permission_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-apigateway-update-integration-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-apigateway-update-integration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_apigateway_update_integration_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-apigateway-wrong-api-id-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-apigateway-wrong-api-id-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_apigateway_wrong_api_id_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-apigateway-wrong-rest-api-id-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-apigateway-wrong-rest-api-id-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_apigateway_wrong_rest_api_id_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-concurrent-invocations-distinct-log-streams", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-concurrent-invocations-distinct-log-streams", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_concurrent_invocations_distinct_log_streams.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-create-apigateway-resource-via-sdk-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-create-apigateway-resource-via-sdk-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_create_apigateway_resource_via_sdk_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-custom-logger-writes-to-cloudwatch", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-custom-logger-writes-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_custom_logger_writes_to_cloudwatch.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-describe-rest-apis-via-sdk-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-describe-rest-apis-via-sdk-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateRestApi", "apigateway:DeleteRestApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_describe_rest_apis_via_sdk_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-error-stack-trace-in-logs", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-error-stack-trace-in-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_error_stack_trace_in_logs.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-get-deployment-details-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-get-deployment-details-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_get_deployment_details_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-invocation-creates-log-group", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-invocation-creates-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_invocation_creates_log_group.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-invocation-writes-log-stream-events", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-invocation-writes-log-stream-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_invocation_writes_log_stream_events.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-invoke-creates-log-group", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-invoke-creates-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_invoke_creates_log_group.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-log-group-explicit-arn-mismatch-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-log-group-explicit-arn-mismatch-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_log_group_explicit_arn_mismatch_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-log-retention-configuration", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-log-retention-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_log_retention_configuration.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-log-retention-set-via-put-retention-policy", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-log-retention-set-via-put-retention-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy", "logs:TagLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_log_retention_set_via_put_retention_policy.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-log-stream-contains-invocation-logs", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-log-stream-contains-invocation-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_log_stream_contains_invocation_logs.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-logs-correlation-request-id", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-logs-correlation-request-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_logs_correlation_request_id.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-logs-error-stack-trace-format", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-logs-error-stack-trace-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_logs_error_stack_trace_format.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-logs-missing-putlogevents-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-logs-missing-putlogevents-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_logs_missing_putlogevents_permission_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-missing-logs-permission-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-missing-logs-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_missing_logs_permission_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-missing-logs-permission-no-log-group-negative", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-missing-logs-permission-no-log-group-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_missing_logs_permission_no_log_group_negative.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-put-log-events-via-sdk-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-put-log-events-via-sdk-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_put_log_events_via_sdk_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__logs.lambda-update-apigateway-stage-variables-positive", "deployments": [], "key": "apigateway__dynamodb__lambda__logs/lambda-update-apigateway-stage-variables-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/apigateway__dynamodb__lambda__logs/check_lambda_update_apigateway_stage_variables_positive.py", "service": "apigateway__dynamodb__lambda__logs"} {"check_id": "apigateway__dynamodb__lambda__s3__xray.apigw-lambda-ddb-s3-trace-tree-shape", "deployments": [], "key": "apigateway__dynamodb__lambda__s3__xray/apigw-lambda-ddb-s3-trace-tree-shape", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity", "xray:BatchGetTraces"], "path": "behavioral/apigateway__dynamodb__lambda__s3__xray/check_apigw_lambda_ddb_s3_trace_tree_shape.py", "service": "apigateway__dynamodb__lambda__s3__xray"} {"check_id": "apigateway__dynamodb__lambda__s3__xray.apigw-trace-header-continuation-and-sampled-zero-rejects-recording", "deployments": [], "key": "apigateway__dynamodb__lambda__s3__xray/apigw-trace-header-continuation-and-sampled-zero-rejects-recording", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity", "xray:BatchGetTraces", "xray:GetTraceSummaries"], "path": "behavioral/apigateway__dynamodb__lambda__s3__xray/check_apigw_trace_header_continuation_and_sampled_zero_rejects_recording.py", "service": "apigateway__dynamodb__lambda__s3__xray"} {"check_id": "apigateway__dynamodb__logs.deep-apigateway-1-apigw-methodsetting-logging-level-and-data-trace-gate-execution-logs", "deployments": [], "key": "apigateway__dynamodb__logs/deep-apigateway-1-apigw-methodsetting-logging-level-and-data-trace-gate-execution-logs", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateAccount", "apigateway:UpdateStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__dynamodb__logs/check_deep_apigateway_1_apigw_methodsetting_logging_level_and_data_trace_gate_execution_logs.py", "service": "apigateway__dynamodb__logs"} {"check_id": "apigateway__dynamodb__stepfunctions.apigw-sfn-jsonata-execution-input-size-limit-rejected", "deployments": [], "key": "apigateway__dynamodb__stepfunctions/apigw-sfn-jsonata-execution-input-size-limit-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine"], "path": "behavioral/apigateway__dynamodb__stepfunctions/check_apigw_sfn_jsonata_execution_input_size_limit_rejected.py", "service": "apigateway__dynamodb__stepfunctions"} {"check_id": "apigateway__dynamodb__stepfunctions.apigw-sfn-jsonata-item-crud-lifecycle", "deployments": [], "key": "apigateway__dynamodb__stepfunctions/apigw-sfn-jsonata-item-crud-lifecycle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine"], "path": "behavioral/apigateway__dynamodb__stepfunctions/check_apigw_sfn_jsonata_item_crud_lifecycle.py", "service": "apigateway__dynamodb__stepfunctions"} {"check_id": "apigateway__ecr__lambda.container-image-custom-runtime-apigateway-proxy-response", "deployments": [], "key": "apigateway__ecr__lambda/container-image-custom-runtime-apigateway-proxy-response", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__ecr__lambda/check_container_image_custom_runtime_apigateway_proxy_response.py", "service": "apigateway__ecr__lambda"} {"check_id": "apigateway__events__sqs.xsvc-apigateway-1-near-miss-detail-type-is-not-delivered-to-rest-stage", "deployments": [], "key": "apigateway__events__sqs/xsvc-apigateway-1-near-miss-detail-type-is-not-delivered-to-rest-stage", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__events__sqs/check_xsvc_apigateway_1_near_miss_detail_type_is_not_delivered_to_rest_stage.py", "service": "apigateway__events__sqs"} {"check_id": "apigateway__events__sqs.xsvc-apigateway-1-rule-delivers-transformed-detail-with-path-and-header-to-rest-stage", "deployments": [], "key": "apigateway__events__sqs/xsvc-apigateway-1-rule-delivers-transformed-detail-with-path-and-header-to-rest-stage", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__events__sqs/check_xsvc_apigateway_1_rule_delivers_transformed_detail_with_path_and_header_to_rest_stage.py", "service": "apigateway__events__sqs"} {"check_id": "apigateway__events__sqs.xsvc-apigateway-1-stage-500-is-retried-then-dead-lettered-with-error-code", "deployments": [], "key": "apigateway__events__sqs/xsvc-apigateway-1-stage-500-is-retried-then-dead-lettered-with-error-code", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__events__sqs/check_xsvc_apigateway_1_stage_500_is_retried_then_dead_lettered_with_error_code.py", "service": "apigateway__events__sqs"} {"check_id": "apigateway__events__sqs.xsvc-apigateway-1-target-role-without-execute-api-invoke-is-denied", "deployments": [], "key": "apigateway__events__sqs/xsvc-apigateway-1-target-role-without-execute-api-invoke-is-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__events__sqs/check_xsvc_apigateway_1_target_role_without_execute_api_invoke_is_denied.py", "service": "apigateway__events__sqs"} {"check_id": "apigateway__iam.xsvc-apigateway-3-iam-identity-allow-invokes-only-the-granted-method", "deployments": [], "key": "apigateway__iam/xsvc-apigateway-3-iam-identity-allow-invokes-only-the-granted-method", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam/check_xsvc_apigateway_3_iam_identity_allow_invokes_only_the_granted_method.py", "service": "apigateway__iam"} {"check_id": "apigateway__iam.xsvc-apigateway-3-iam-resource-policy-allow-rescues-unauthorized-role", "deployments": [], "key": "apigateway__iam/xsvc-apigateway-3-iam-resource-policy-allow-rescues-unauthorized-role", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam/check_xsvc_apigateway_3_iam_resource_policy_allow_rescues_unauthorized_role.py", "service": "apigateway__iam"} {"check_id": "apigateway__iam.xsvc-apigateway-3-iam-resource-policy-explicit-deny-beats-identity-allow-denied", "deployments": [], "key": "apigateway__iam/xsvc-apigateway-3-iam-resource-policy-explicit-deny-beats-identity-allow-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam/check_xsvc_apigateway_3_iam_resource_policy_explicit_deny_beats_identity_allow_denied.py", "service": "apigateway__iam"} {"check_id": "apigateway__iam.xsvc-apigateway-3-iam-resource-policy-not-ip-address-deny-blocked", "deployments": [], "key": "apigateway__iam/xsvc-apigateway-3-iam-resource-policy-not-ip-address-deny-blocked", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam/check_xsvc_apigateway_3_iam_resource_policy_not_ip_address_deny_blocked.py", "service": "apigateway__iam"} {"check_id": "apigateway__iam.xsvc-apigateway-3-iam-resource-policy-source-ip-any-cidr-allow-invokes", "deployments": [], "key": "apigateway__iam/xsvc-apigateway-3-iam-resource-policy-source-ip-any-cidr-allow-invokes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam/check_xsvc_apigateway_3_iam_resource_policy_source_ip_any_cidr_allow_invokes.py", "service": "apigateway__iam"} {"check_id": "apigateway__iam.xsvc-apigateway-3-iam-role-without-invoke-permission-denied", "deployments": [], "key": "apigateway__iam/xsvc-apigateway-3-iam-role-without-invoke-permission-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam/check_xsvc_apigateway_3_iam_role_without_invoke_permission_denied.py", "service": "apigateway__iam"} {"check_id": "apigateway__iam.xsvc-apigateway-3-iam-unsigned-request-missing-authentication-token-rejected", "deployments": [], "key": "apigateway__iam/xsvc-apigateway-3-iam-unsigned-request-missing-authentication-token-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam/check_xsvc_apigateway_3_iam_unsigned_request_missing_authentication_token_rejected.py", "service": "apigateway__iam"} {"check_id": "apigateway__iam.xsvc-apigateway-3-iam-wrong-secret-signature-mismatch-rejected", "deployments": [], "key": "apigateway__iam/xsvc-apigateway-3-iam-wrong-secret-signature-mismatch-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam/check_xsvc_apigateway_3_iam_wrong_secret_signature_mismatch_rejected.py", "service": "apigateway__iam"} {"check_id": "apigateway__iam__s3.s3-proxy-integration-renamed-path-parameters", "deployments": [], "key": "apigateway__iam__s3/s3-proxy-integration-renamed-path-parameters", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigateway__iam__s3/check_s3_proxy_integration_renamed_path_parameters.py", "service": "apigateway__iam__s3"} {"check_id": "apigateway__iam__stepfunctions__sts.apigateway-invoke-surfaces-backend-status-as-apigateway-dot-code-error", "deployments": [], "key": "apigateway__iam__stepfunctions__sts/apigateway-invoke-surfaces-backend-status-as-apigateway-dot-code-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__iam__stepfunctions__sts/check_apigateway_invoke_surfaces_backend_status_as_apigateway_dot_code_error.py", "service": "apigateway__iam__stepfunctions__sts"} {"check_id": "apigateway__kinesis.rest-api-aws-integration-kinesis-putrecord-with-credentials-role-puts-the-record", "deployments": [], "key": "apigateway__kinesis/rest-api-aws-integration-kinesis-putrecord-with-credentials-role-puts-the-record", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards"], "path": "behavioral/apigateway__kinesis/check_rest_api_aws_integration_kinesis_putrecord_with_credentials_role_puts_the_record.py", "service": "apigateway__kinesis"} {"check_id": "apigateway__lambda.apigw-api-key-source-authorizer-meters-the-key-from-the-authorizer-not-the-header", "deployments": [], "key": "apigateway__lambda/apigw-api-key-source-authorizer-meters-the-key-from-the-authorizer-not-the-header", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateApiKey", "apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:CreateUsagePlan", "apigateway:CreateUsagePlanKey", "apigateway:DeleteApiKey", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:DeleteUsagePlan", "apigateway:DeleteUsagePlanKey", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "apigateway:UpdateUsagePlan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_apigw_api_key_source_authorizer_meters_the_key_from_the_authorizer_not_the_header.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-binary-media-types-round-trip-raw-bytes", "deployments": [], "key": "apigateway__lambda/apigw-binary-media-types-round-trip-raw-bytes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_apigw_binary_media_types_round_trip_raw_bytes.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-integration-timeout-maps-to-504-and-does-not-cancel-the-lambda", "deployments": [], "key": "apigateway__lambda/apigw-integration-timeout-maps-to-504-and-does-not-cancel-the-lambda", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetIntegration", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateIntegration", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_apigw_integration_timeout_maps_to_504_and_does_not_cancel_the_lambda.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-lambda-authorizer-error-and-bad-policy-both-return-configuration-error", "deployments": [], "key": "apigateway__lambda/apigw-lambda-authorizer-error-and-bad-policy-both-return-configuration-error", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__lambda/check_apigw_lambda_authorizer_error_and_bad_policy_both_return_configuration_error.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-lambda-integration-timeout-returns-default-endpoint-timeout", "deployments": [], "key": "apigateway__lambda/apigw-lambda-integration-timeout-returns-default-endpoint-timeout", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateIntegration", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__lambda/check_apigw_lambda_integration_timeout_returns_default_endpoint_timeout.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-lambda-invoke-throttled-returns-default-integration-failure", "deployments": [], "key": "apigateway__lambda/apigw-lambda-invoke-throttled-returns-default-integration-failure", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__lambda/check_apigw_lambda_invoke_throttled_returns_default_integration_failure.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-lambda-proxy-unhandled-exception-bad-gateway", "deployments": [], "key": "apigateway__lambda/apigw-lambda-proxy-unhandled-exception-bad-gateway", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigateway__lambda/check_apigw_lambda_proxy_unhandled_exception_bad_gateway.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-lambda-response-streaming-delivers-payload-past-the-10mb-rest-api-limit", "deployments": [], "key": "apigateway__lambda/apigw-lambda-response-streaming-delivers-payload-past-the-10mb-rest-api-limit", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigateway__lambda/check_apigw_lambda_response_streaming_delivers_payload_past_the_10mb_rest_api_limit.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-lambda-response-streaming-malformed-output-rejected-with-502", "deployments": [], "key": "apigateway__lambda/apigw-lambda-response-streaming-malformed-output-rejected-with-502", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigateway__lambda/check_apigw_lambda_response_streaming_malformed_output_rejected_with_502.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-lambda-response-streaming-proxy-integration-delivers-metadata-and-body", "deployments": [], "key": "apigateway__lambda/apigw-lambda-response-streaming-proxy-integration-delivers-metadata-and-body", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigateway__lambda/check_apigw_lambda_response_streaming_proxy_integration_delivers_metadata_and_body.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-mock-integration-serves-cors-preflight", "deployments": [], "key": "apigateway__lambda/apigw-mock-integration-serves-cors-preflight", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_apigw_mock_integration_serves_cors_preflight.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.apigw-request-authorizer-nested-map-context-value-rejected-500", "deployments": [], "key": "apigateway__lambda/apigw-request-authorizer-nested-map-context-value-rejected-500", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_apigw_request_authorizer_nested_map_context_value_rejected_500.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigateway-2-apigw-nonproxy-content-handling-converts-request-body-bytes", "deployments": [], "key": "apigateway__lambda/deep-apigateway-2-apigw-nonproxy-content-handling-converts-request-body-bytes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction"], "path": "behavioral/apigateway__lambda/check_deep_apigateway_2_apigw_nonproxy_content_handling_converts_request_body_bytes.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigateway-2-apigw-nonproxy-content-handling-converts-response-body-bytes", "deployments": [], "key": "apigateway__lambda/deep-apigateway-2-apigw-nonproxy-content-handling-converts-response-body-bytes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction"], "path": "behavioral/apigateway__lambda/check_deep_apigateway_2_apigw_nonproxy_content_handling_converts_response_body_bytes.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigateway-2-apigw-nonproxy-convert-to-binary-rejects-malformed-base64-with-500", "deployments": [], "key": "apigateway__lambda/deep-apigateway-2-apigw-nonproxy-convert-to-binary-rejects-malformed-base64-with-500", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutGatewayResponse", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction"], "path": "behavioral/apigateway__lambda/check_deep_apigateway_2_apigw_nonproxy_convert_to_binary_rejects_malformed_base64_with_500.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigateway-2-apigw-nonproxy-repeated-override-keeps-the-first-value-instead-of-failing", "deployments": [], "key": "apigateway__lambda/deep-apigateway-2-apigw-nonproxy-repeated-override-keeps-the-first-value-instead-of-failing", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction"], "path": "behavioral/apigateway__lambda/check_deep_apigateway_2_apigw_nonproxy_repeated_override_keeps_the_first_value_instead_of_failing.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigateway-2-apigw-nonproxy-request-override-header-and-querystring-reach-backend", "deployments": [], "key": "apigateway__lambda/deep-apigateway-2-apigw-nonproxy-request-override-header-and-querystring-reach-backend", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction"], "path": "behavioral/apigateway__lambda/check_deep_apigateway_2_apigw_nonproxy_request_override_header_and_querystring_reach_backend.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigateway-2-apigw-nonproxy-response-override-status-turns-backend-200-into-400", "deployments": [], "key": "apigateway__lambda/deep-apigateway-2-apigw-nonproxy-response-override-status-turns-backend-200-into-400", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction"], "path": "behavioral/apigateway__lambda/check_deep_apigateway_2_apigw_nonproxy_response_override_status_turns_backend_200_into_400.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigateway-2-apigw-nonproxy-undeclared-backend-header-dropped-declared-header-mapped", "deployments": [], "key": "apigateway__lambda/deep-apigateway-2-apigw-nonproxy-undeclared-backend-header-dropped-declared-header-mapped", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction"], "path": "behavioral/apigateway__lambda/check_deep_apigateway_2_apigw_nonproxy_undeclared_backend_header_dropped_declared_header_mapped.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigateway-2-apigw-nonproxy-when-no-templates-rejects-unmapped-content-type-with-415", "deployments": [], "key": "apigateway__lambda/deep-apigateway-2-apigw-nonproxy-when-no-templates-rejects-unmapped-content-type-with-415", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction"], "path": "behavioral/apigateway__lambda/check_deep_apigateway_2_apigw_nonproxy_when_no_templates_rejects_unmapped_content_type_with_415.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigw-integration-authorizer-cache-reuses-method-scoped-policy-denied", "deployments": [], "key": "apigateway__lambda/deep-apigw-integration-authorizer-cache-reuses-method-scoped-policy-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_deep_apigw_integration_authorizer_cache_reuses_method_scoped_policy_denied.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigw-integration-lambda-error-selection-pattern-maps-status", "deployments": [], "key": "apigateway__lambda/deep-apigw-integration-lambda-error-selection-pattern-maps-status", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_deep_apigw_integration_lambda_error_selection_pattern_maps_status.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigw-integration-lambda-non-proxy-vtl-maps-request-and-response", "deployments": [], "key": "apigateway__lambda/deep-apigw-integration-lambda-non-proxy-vtl-maps-request-and-response", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_deep_apigw_integration_lambda_non_proxy_vtl_maps_request_and_response.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigw-integration-request-authorizer-cache-keys-on-every-identity-source", "deployments": [], "key": "apigateway__lambda/deep-apigw-integration-request-authorizer-cache-keys-on-every-identity-source", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_deep_apigw_integration_request_authorizer_cache_keys_on_every_identity_source.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigw-integration-rest-aws-proxy-event-carries-the-v1-structure", "deployments": [], "key": "apigateway__lambda/deep-apigw-integration-rest-aws-proxy-event-carries-the-v1-structure", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "apigateway:GetRestApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__lambda/check_deep_apigw_integration_rest_aws_proxy_event_carries_the_v1_structure.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigw-integration-stage-variable-selects-lambda-ungranted-function-rejected", "deployments": [], "key": "apigateway__lambda/deep-apigw-integration-stage-variable-selects-lambda-ungranted-function-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_deep_apigw_integration_stage_variable_selects_lambda_ungranted_function_rejected.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.deep-apigw-integration-token-authorizer-deny-forbidden-and-context-reaches-backend", "deployments": [], "key": "apigateway__lambda/deep-apigw-integration-token-authorizer-deny-forbidden-and-context-reaches-backend", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_deep_apigw_integration_token_authorizer_deny_forbidden_and_context_reaches_backend.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.dotnet-rest-api-proxy-request-fields-and-response-shaping", "deployments": [], "key": "apigateway__lambda/dotnet-rest-api-proxy-request-fields-and-response-shaping", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetResources", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigateway__lambda/check_dotnet_rest_api_proxy_request_fields_and_response_shaping.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.go-handler-apigw-proxy-request-fields-and-response-shape-round-trip", "deployments": [], "key": "apigateway__lambda/go-handler-apigw-proxy-request-fields-and-response-shape-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigateway__lambda/check_go_handler_apigw_proxy_request_fields_and_response_shape_round_trip.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.java-apigw-proxy-request-fields-and-response-shaping-round-trip", "deployments": [], "key": "apigateway__lambda/java-apigw-proxy-request-fields-and-response-shaping-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigateway__lambda/check_java_apigw_proxy_request_fields_and_response_shaping_round_trip.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.rest-api-cors-signed-get-granted-unsigned-get-refused", "deployments": [], "key": "apigateway__lambda/rest-api-cors-signed-get-granted-unsigned-get-refused", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_rest_api_cors_signed_get_granted_unsigned_get_refused.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.ruby-apigw-rest-proxy-request-fields-and-response-shaping", "deployments": [], "key": "apigateway__lambda/ruby-apigw-rest-proxy-request-fields-and-response-shaping", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigateway__lambda/check_ruby_apigw_rest_proxy_request_fields_and_response_shaping.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.xsvc-apigateway-3-http-proxy-function-url-404-passes-through", "deployments": [], "key": "apigateway__lambda/xsvc-apigateway-3-http-proxy-function-url-404-passes-through", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_xsvc_apigateway_3_http_proxy_function_url_404_passes_through.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.xsvc-apigateway-3-http-proxy-function-url-500-passes-through", "deployments": [], "key": "apigateway__lambda/xsvc-apigateway-3-http-proxy-function-url-500-passes-through", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_xsvc_apigateway_3_http_proxy_function_url_500_passes_through.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.xsvc-apigateway-3-http-proxy-function-url-round-trips-path-query-headers", "deployments": [], "key": "apigateway__lambda/xsvc-apigateway-3-http-proxy-function-url-round-trips-path-query-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_xsvc_apigateway_3_http_proxy_function_url_round_trips_path_query_headers.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda.xsvc-apigateway-3-http-proxy-iam-function-url-unsigned-forward-forbidden", "deployments": [], "key": "apigateway__lambda/xsvc-apigateway-3-http-proxy-iam-function-url-unsigned-forward-forbidden", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda/check_xsvc_apigateway_3_http_proxy_iam_function_url_unsigned_forward_forbidden.py", "service": "apigateway__lambda"} {"check_id": "apigateway__lambda__logs.apigw-lambda-authorizer-deny-blocks-backend-invocation", "deployments": [], "key": "apigateway__lambda__logs/apigw-lambda-authorizer-deny-blocks-backend-invocation", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateAuthorizer", "apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda__logs/check_apigw_lambda_authorizer_deny_blocks_backend_invocation.py", "service": "apigateway__lambda__logs"} {"check_id": "apigateway__lambda__logs.apigw-method-level-log-level-overrides-the-stage-wide-level", "deployments": [], "key": "apigateway__lambda__logs/apigw-method-level-log-level-overrides-the-stage-wide-level", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda__logs/check_apigw_method_level_log_level_overrides_the_stage_wide_level.py", "service": "apigateway__lambda__logs"} {"check_id": "apigateway__lambda__logs.apigw-stage-access-logs-delivered-to-log-group", "deployments": [], "key": "apigateway__lambda__logs/apigw-stage-access-logs-delivered-to-log-group", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda__logs/check_apigw_stage_access_logs_delivered_to_log_group.py", "service": "apigateway__lambda__logs"} {"check_id": "apigateway__lambda__logs.apigw-stage-scoped-lambda-permission-other-stage-denied-and-logged", "deployments": [], "key": "apigateway__lambda__logs/apigw-stage-scoped-lambda-permission-other-stage-denied-and-logged", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda__logs/check_apigw_stage_scoped_lambda_permission_other_stage_denied_and_logged.py", "service": "apigateway__lambda__logs"} {"check_id": "apigateway__lambda__logs.obs-apigateway-2-execution-log-level-and-data-trace-gate-delivered-lines", "deployments": [], "key": "apigateway__lambda__logs/obs-apigateway-2-execution-log-level-and-data-trace-gate-delivered-lines", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:GetAccount", "apigateway:GetResources", "apigateway:GetStage", "apigateway:PutIntegration", "apigateway:PutMethod", "apigateway:UpdateAccount", "apigateway:UpdateStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__lambda__logs/check_obs_apigateway_2_execution_log_level_and_data_trace_gate_delivered_lines.py", "service": "apigateway__lambda__logs"} {"check_id": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs.api-key-discovered-tagged-and-removed-from-index-on-delete", "deployments": [], "key": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs/api-key-discovered-tagged-and-removed-from-index-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources"], "path": "behavioral/apigateway__lambda__logs__resourcegroupstaggingapi__sqs/check_api_key_discovered_tagged_and_removed_from_index_on_delete.py", "service": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs"} {"check_id": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs.sqs-queue-tag-write-reaches-native-tags-and-discovered-arn-usable", "deployments": [], "key": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs/sqs-queue-tag-write-reaches-native-tags-and-discovered-arn-usable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueueTags", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/apigateway__lambda__logs__resourcegroupstaggingapi__sqs/check_sqs_queue_tag_write_reaches_native_tags_and_discovered_arn_usable.py", "service": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs"} {"check_id": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs.tag-resources-nonexistent-api-key-arn-rejected-per-resource", "deployments": [], "key": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs/tag-resources-nonexistent-api-key-arn-rejected-per-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateApiKey", "apigateway:DeleteApiKey", "apigateway:GetApiKey", "resourcegroupstaggingapi:TagResources"], "path": "behavioral/apigateway__lambda__logs__resourcegroupstaggingapi__sqs/check_tag_resources_nonexistent_api_key_arn_rejected_per_resource.py", "service": "apigateway__lambda__logs__resourcegroupstaggingapi__sqs"} {"check_id": "apigateway__logs__wafv2.wafv2-logging-configuration-delivers-a-blocked-request-record-with-redacted-fields", "deployments": [], "key": "apigateway__logs__wafv2/wafv2-logging-configuration-delivers-a-blocked-request-record-with-redacted-fields", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetLoggingConfiguration", "wafv2:GetWebACL", "wafv2:PutLoggingConfiguration"], "path": "behavioral/apigateway__logs__wafv2/check_wafv2_logging_configuration_delivers_a_blocked_request_record_with_redacted_fields.py", "service": "apigateway__logs__wafv2"} {"check_id": "apigateway__logs__wafv2.wafv2-put-logging-configuration-log-group-without-the-waf-prefix-rejected", "deployments": [], "key": "apigateway__logs__wafv2/wafv2-put-logging-configuration-log-group-without-the-waf-prefix-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetLoggingConfiguration", "wafv2:GetWebACL", "wafv2:PutLoggingConfiguration"], "path": "behavioral/apigateway__logs__wafv2/check_wafv2_put_logging_configuration_log_group_without_the_waf_prefix_rejected.py", "service": "apigateway__logs__wafv2"} {"check_id": "apigateway__sns__sqs.xsvc-apigateway-2-sns-publish-message-attributes-reach-sqs-subscriber", "deployments": [], "key": "apigateway__sns__sqs/xsvc-apigateway-2-sns-publish-message-attributes-reach-sqs-subscriber", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/apigateway__sns__sqs/check_xsvc_apigateway_2_sns_publish_message_attributes_reach_sqs_subscriber.py", "service": "apigateway__sns__sqs"} {"check_id": "apigateway__sns__sqs.xsvc-apigateway-2-sns-role-missing-publish-denied-surfaces-authorization-error", "deployments": [], "key": "apigateway__sns__sqs/xsvc-apigateway-2-sns-role-missing-publish-denied-surfaces-authorization-error", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/apigateway__sns__sqs/check_xsvc_apigateway_2_sns_role_missing_publish_denied_surfaces_authorization_error.py", "service": "apigateway__sns__sqs"} {"check_id": "apigateway__sqs.xsvc-apigateway-2-sqs-form-template-sendmessage-delivers-body-and-md5", "deployments": [], "key": "apigateway__sqs/xsvc-apigateway-2-sqs-form-template-sendmessage-delivers-body-and-md5", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__sqs/check_xsvc_apigateway_2_sqs_form_template_sendmessage_delivers_body_and_md5.py", "service": "apigateway__sqs"} {"check_id": "apigateway__sqs.xsvc-apigateway-2-sqs-role-missing-sendmessage-denied-surfaces-access-denied", "deployments": [], "key": "apigateway__sqs/xsvc-apigateway-2-sqs-role-missing-sendmessage-denied-surfaces-access-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__sqs/check_xsvc_apigateway_2_sqs_role_missing_sendmessage_denied_surfaces_access_denied.py", "service": "apigateway__sqs"} {"check_id": "apigateway__stepfunctions.invoke-resource-policy-denial-fails-with-not-authorized-cause", "deployments": [], "key": "apigateway__stepfunctions/invoke-resource-policy-denial-fails-with-not-authorized-cause", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:GetRestApi", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigateway:UpdateRestApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/apigateway__stepfunctions/check_invoke_resource_policy_denial_fails_with_not_authorized_cause.py", "service": "apigateway__stepfunctions"} {"check_id": "apigateway__stepfunctions.xsvc-apigateway-2-sfn-role-missing-start-execution-denied-surfaces-access-denied", "deployments": [], "key": "apigateway__stepfunctions/xsvc-apigateway-2-sfn-role-missing-start-execution-denied-surfaces-access-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/apigateway__stepfunctions/check_xsvc_apigateway_2_sfn_role_missing_start_execution_denied_surfaces_access_denied.py", "service": "apigateway__stepfunctions"} {"check_id": "apigateway__stepfunctions.xsvc-apigateway-2-sfn-start-execution-input-visible-in-describe-execution", "deployments": [], "key": "apigateway__stepfunctions/xsvc-apigateway-2-sfn-start-execution-input-visible-in-describe-execution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/apigateway__stepfunctions/check_xsvc_apigateway_2_sfn_start_execution_input_visible_in_describe_execution.py", "service": "apigateway__stepfunctions"} {"check_id": "apigateway__stepfunctions.xsvc-apigateway-2-sfn-start-sync-execution-maps-output-and-failed-shape", "deployments": [], "key": "apigateway__stepfunctions/xsvc-apigateway-2-sfn-start-sync-execution-maps-output-and-failed-shape", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution"], "path": "behavioral/apigateway__stepfunctions/check_xsvc_apigateway_2_sfn_start_sync_execution_maps_output_and_failed_shape.py", "service": "apigateway__stepfunctions"} {"check_id": "apigateway__wafv2.wafv2-body-inspection-stops-at-the-oversize-limit-and-oversize-handling-decides-past-it", "deployments": [], "key": "apigateway__wafv2/wafv2-body-inspection-stops-at-the-oversize-limit-and-oversize-handling-decides-past-it", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_body_inspection_stops_at_the_oversize_limit_and_oversize_handling_decides_past_it.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-custom-request-handling-inserts-prefixed-headers-visible-to-the-origin", "deployments": [], "key": "apigateway__wafv2/wafv2-custom-request-handling-inserts-prefixed-headers-visible-to-the-origin", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_custom_request_handling_inserts_prefixed_headers_visible_to_the_origin.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-custom-response-body-and-status-served-at-the-edge-for-a-blocked-request", "deployments": [], "key": "apigateway__wafv2/wafv2-custom-response-body-and-status-served-at-the-edge-for-a-blocked-request", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/apigateway__wafv2/check_wafv2_custom_response_body_and_status_served_at_the_edge_for_a_blocked_request.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-delete-regex-pattern-set-referenced-by-a-webacl-rule-rejected", "deployments": [], "key": "apigateway__wafv2/wafv2-delete-regex-pattern-set-referenced-by-a-webacl-rule-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateRegexPatternSet", "wafv2:CreateWebACL", "wafv2:DeleteRegexPatternSet", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetRegexPatternSet", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_delete_regex_pattern_set_referenced_by_a_webacl_rule_rejected.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-delete-web-acl-associated-with-an-apigateway-stage-rejected", "deployments": [], "key": "apigateway__wafv2/wafv2-delete-web-acl-associated-with-an-apigateway-stage-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/apigateway__wafv2/check_wafv2_delete_web_acl_associated_with_an_apigateway_stage_rejected.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-forwarded-ip-set-reference-blocks-by-header-position", "deployments": [], "key": "apigateway__wafv2/wafv2-forwarded-ip-set-reference-blocks-by-header-position", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateIPSet", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_forwarded_ip_set_reference_blocks_by_header_position.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-label-match-statement-blocks-on-a-label-added-by-a-lower-priority-rule", "deployments": [], "key": "apigateway__wafv2/wafv2-label-match-statement-blocks-on-a-label-added-by-a-lower-priority-rule", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_label_match_statement_blocks_on_a_label_added_by_a_lower_priority_rule.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-managed-sqli-rule-group-refuses-a-payload-and-the-sample-names-the-rule", "deployments": [], "key": "apigateway__wafv2/wafv2-managed-sqli-rule-group-refuses-a-payload-and-the-sample-names-the-rule", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DescribeManagedRuleGroup", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_managed_sqli_rule_group_refuses_a_payload_and_the_sample_names_the_rule.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-rate-based-rule-refuses-the-caller-lists-its-key-then-recovers", "deployments": [], "key": "apigateway__wafv2/wafv2-rate-based-rule-refuses-the-caller-lists-its-key-then-recovers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetRateBasedStatementManagedKeys", "wafv2:GetSampledRequests", "wafv2:GetWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_rate_based_rule_refuses_the_caller_lists_its_key_then_recovers.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-scope-down-statement-limits-a-managed-rule-group-to-a-uri-prefix", "deployments": [], "key": "apigateway__wafv2/wafv2-scope-down-statement-limits-a-managed-rule-group-to-a-uri-prefix", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteResource", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_scope_down_statement_limits_a_managed_rule_group_to_a_uri_prefix.py", "service": "apigateway__wafv2"} {"check_id": "apigateway__wafv2.wafv2-stale-lock-token-update-rejected-and-leaves-the-edge-unchanged", "deployments": [], "key": "apigateway__wafv2/wafv2-stale-lock-token-update-rejected-and-leaves-the-edge-unchanged", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/apigateway__wafv2/check_wafv2_stale_lock_token_update_rejected_and_leaves_the_edge_unchanged.py", "service": "apigateway__wafv2"} {"check_id": "apigatewaymanagementapi.agwmgmt-cross-api-connection-id-rejected", "deployments": [], "key": "apigatewaymanagementapi/agwmgmt-cross-api-connection-id-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_agwmgmt_cross_api_connection_id_rejected.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.agwmgmt-identity-members-and-response-envelopes", "deployments": [], "key": "apigatewaymanagementapi/agwmgmt-identity-members-and-response-envelopes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewaymanagementapi/check_agwmgmt_identity_members_and_response_envelopes.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.agwmgmt-live-connection-get-post-delete-lifecycle", "deployments": [], "key": "apigatewaymanagementapi/agwmgmt-live-connection-get-post-delete-lifecycle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_agwmgmt_live_connection_get_post_delete_lifecycle.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.agwmgmt-malformed-connection-id-rejected", "deployments": [], "key": "apigatewaymanagementapi/agwmgmt-malformed-connection-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage"], "path": "behavioral/apigatewaymanagementapi/check_agwmgmt_malformed_connection_id_rejected.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.agwmgmt-post-oversize-payload-rejected-before-lookup", "deployments": [], "key": "apigatewaymanagementapi/agwmgmt-post-oversize-payload-rejected-before-lookup", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage"], "path": "behavioral/apigatewaymanagementapi/check_agwmgmt_post_oversize_payload_rejected_before_lookup.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.agwmgmt-post-payload-byte-ceiling-and-unread-socket-refusal", "deployments": [], "key": "apigatewaymanagementapi/agwmgmt-post-payload-byte-ceiling-and-unread-socket-refusal", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewaymanagementapi/check_agwmgmt_post_payload_byte_ceiling_and_unread_socket_refusal.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.agwmgmt-undeployed-stage-endpoint-forbidden", "deployments": [], "key": "apigatewaymanagementapi/agwmgmt-undeployed-stage-endpoint-forbidden", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStages"], "path": "behavioral/apigatewaymanagementapi/check_agwmgmt_undeployed_stage_endpoint_forbidden.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.backend-route-pushes-describes-and-disconnects-live-clients", "deployments": [], "key": "apigatewaymanagementapi/backend-route-pushes-describes-and-disconnects-live-clients", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewaymanagementapi/check_backend_route_pushes_describes_and_disconnects_live_clients.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.client-initiated-close-converges-to-gone-with-live-twin", "deployments": [], "key": "apigatewaymanagementapi/client-initiated-close-converges-to-gone-with-live-twin", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_client_initiated_close_converges_to_gone_with_live_twin.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.concurrent-post-to-connection-all-delivered", "deployments": [], "key": "apigatewaymanagementapi/concurrent-post-to-connection-all-delivered", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_concurrent_post_to_connection_all_delivered.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.connection-id-resolves-across-sibling-deployed-stages", "deployments": [], "key": "apigatewaymanagementapi/connection-id-resolves-across-sibling-deployed-stages", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewaymanagementapi/check_connection_id_resolves_across_sibling_deployed_stages.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.connection-operations-after-delete-return-gone-rejected", "deployments": [], "key": "apigatewaymanagementapi/connection-operations-after-delete-return-gone-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_connection_operations_after_delete_return_gone_rejected.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.cross-api-connection-id-returns-gone", "deployments": [], "key": "apigatewaymanagementapi/cross-api-connection-id-returns-gone", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_cross_api_connection_id_returns_gone.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.delete-connection-forces-client-disconnect", "deployments": [], "key": "apigatewaymanagementapi/delete-connection-forces-client-disconnect", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_delete_connection_forces_client_disconnect.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.delete-connection-triggers-disconnect-route", "deployments": [], "key": "apigatewaymanagementapi/delete-connection-triggers-disconnect-route", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_delete_connection_triggers_disconnect_route.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.forbidden-without-manage-connections-permission-rejected", "deployments": [], "key": "apigatewaymanagementapi/forbidden-without-manage-connections-permission-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_forbidden_without_manage_connections_permission_rejected.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.get-connection-last-active-at-advances-on-traffic-not-on-reads", "deployments": [], "key": "apigatewaymanagementapi/get-connection-last-active-at-advances-on-traffic-not-on-reads", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_get_connection_last_active_at_advances_on_traffic_not_on_reads.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.get-connection-last-active-at-not-before-connected-at", "deployments": [], "key": "apigatewaymanagementapi/get-connection-last-active-at-not-before-connected-at", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_get_connection_last_active_at_not_before_connected_at.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.get-connection-returns-identity-metadata", "deployments": [], "key": "apigatewaymanagementapi/get-connection-returns-identity-metadata", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_get_connection_returns_identity_metadata.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.get-connection-user-agent-matches-handshake-header", "deployments": [], "key": "apigatewaymanagementapi/get-connection-user-agent-matches-handshake-header", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_get_connection_user_agent_matches_handshake_header.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.manage-connections-denial-precedes-connection-lookup", "deployments": [], "key": "apigatewaymanagementapi/manage-connections-denial-precedes-connection-lookup", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:AssumeRole"], "path": "behavioral/apigatewaymanagementapi/check_manage_connections_denial_precedes_connection_lookup.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.multiple-connections-message-isolation", "deployments": [], "key": "apigatewaymanagementapi/multiple-connections-message-isolation", "labels": ["axis:negative-delivery", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_multiple_connections_message_isolation.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.payload-too-large-rejected-at-boundary", "deployments": [], "key": "apigatewaymanagementapi/payload-too-large-rejected-at-boundary", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_payload_too_large_rejected_at_boundary.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.post-to-connection-binary-payload-roundtrip", "deployments": [], "key": "apigatewaymanagementapi/post-to-connection-binary-payload-roundtrip", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_post_to_connection_binary_payload_roundtrip.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.post-to-connection-delivers-text-payload", "deployments": [], "key": "apigatewaymanagementapi/post-to-connection-delivers-text-payload", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_post_to_connection_delivers_text_payload.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.post-to-connection-empty-payload-delivers", "deployments": [], "key": "apigatewaymanagementapi/post-to-connection-empty-payload-delivers", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_post_to_connection_empty_payload_delivers.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.post-to-connection-fragments-large-payload-across-frames", "deployments": [], "key": "apigatewaymanagementapi/post-to-connection-fragments-large-payload-across-frames", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_post_to_connection_fragments_large_payload_across_frames.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.reconnect-produces-distinct-connection-and-later-connected-at", "deployments": [], "key": "apigatewaymanagementapi/reconnect-produces-distinct-connection-and-later-connected-at", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_reconnect_produces_distinct_connection_and_later_connected_at.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewaymanagementapi.sequential-posts-preserve-message-order", "deployments": [], "key": "apigatewaymanagementapi/sequential-posts-preserve-message-order", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewaymanagementapi/check_sequential_posts_preserve_message_order.py", "service": "apigatewaymanagementapi"} {"check_id": "apigatewayv2.api-mapping-duplicate-path-rejected", "deployments": [], "key": "apigatewayv2/api-mapping-duplicate-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_api_mapping_duplicate_path_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.api-mapping-key-collision-rejected", "deployments": [], "key": "apigatewayv2/api-mapping-key-collision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_api_mapping_key_collision_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.api-mapping-key-conflict-rejected", "deployments": [], "key": "apigatewayv2/api-mapping-key-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_api_mapping_key_conflict_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.api-mapping-key-non-ascii-rejected", "deployments": [], "key": "apigatewayv2/api-mapping-key-non-ascii-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteStage", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_api_mapping_key_non_ascii_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.api-mapping-lifecycle", "deployments": [], "key": "apigatewayv2/api-mapping-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApiMapping", "apigatewayv2:UpdateApiMapping"], "path": "behavioral/apigatewayv2/check_api_mapping_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.api-mapping-lifecycle-crud", "deployments": [], "key": "apigatewayv2/api-mapping-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteStage", "apigatewayv2:GetApiMapping", "apigatewayv2:UpdateApiMapping"], "path": "behavioral/apigatewayv2/check_api_mapping_lifecycle_crud.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.api-mapping-path-special-chars-round-trip", "deployments": [], "key": "apigatewayv2/api-mapping-path-special-chars-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_api_mapping_path_special_chars_round_trip.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.authorizer-lifecycle", "deployments": [], "key": "apigatewayv2/authorizer-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteAuthorizer", "apigatewayv2:GetAuthorizer", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewayv2/check_authorizer_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.bad-protocol-type-rejected", "deployments": [], "key": "apigatewayv2/bad-protocol-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:GetApis"], "path": "behavioral/apigatewayv2/check_bad_protocol_type_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.client-initiated-close-invokes-disconnect-route", "deployments": [], "key": "apigatewayv2/client-initiated-close-invokes-disconnect-route", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewayv2/check_client_initiated_close_invokes_disconnect_route.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.concurrent-api-mapping-same-path-conflict", "deployments": [], "key": "apigatewayv2/concurrent-api-mapping-same-path-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteStage", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_concurrent_api_mapping_same_path_conflict.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.concurrent-api-mapping-update-conflict", "deployments": [], "key": "apigatewayv2/concurrent-api-mapping-update-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteStage", "apigatewayv2:GetApiMapping", "apigatewayv2:UpdateApiMapping"], "path": "behavioral/apigatewayv2/check_concurrent_api_mapping_update_conflict.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.concurrent-domain-name-update-conflict", "deployments": [], "key": "apigatewayv2/concurrent-domain-name-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName", "apigatewayv2:UpdateDomainName"], "path": "behavioral/apigatewayv2/check_concurrent_domain_name_update_conflict.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.concurrent-portal-update-conflict", "deployments": [], "key": "apigatewayv2/concurrent-portal-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PublishPortal", "apigatewayv2:UpdatePortal"], "path": "behavioral/apigatewayv2/check_concurrent_portal_update_conflict.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.cors-wildcard-origin-with-credentials-rejected", "deployments": [], "key": "apigatewayv2/cors-wildcard-origin-with-credentials-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:GetApi", "apigatewayv2:UpdateApi"], "path": "behavioral/apigatewayv2/check_cors_wildcard_origin_with_credentials_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-api-mapping-duplicate-path-conflict", "deployments": [], "key": "apigatewayv2/create-api-mapping-duplicate-path-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteStage", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings", "apigatewayv2:UpdateApiMapping"], "path": "behavioral/apigatewayv2/check_create_api_mapping_duplicate_path_conflict.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-api-mapping-malformed-path-rejected", "deployments": [], "key": "apigatewayv2/create-api-mapping-malformed-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteStage", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_create_api_mapping_malformed_path_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-api-mapping-missing-stage-rejected", "deployments": [], "key": "apigatewayv2/create-api-mapping-missing-stage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_create_api_mapping_missing_stage_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-api-mapping-nonexistent-domain-not-found", "deployments": [], "key": "apigatewayv2/create-api-mapping-nonexistent-domain-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteStage", "apigatewayv2:GetApiMappings", "apigatewayv2:GetDomainName"], "path": "behavioral/apigatewayv2/check_create_api_mapping_nonexistent_domain_not_found.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-domain-name-duplicate-bad-request", "deployments": [], "key": "apigatewayv2/create-domain-name-duplicate-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName"], "path": "behavioral/apigatewayv2/check_create_domain_name_duplicate_bad_request.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-model-with-an-invalid-schema-rejected", "deployments": [], "key": "apigatewayv2/create-model-with-an-invalid-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateModel", "apigatewayv2:DeleteApi", "apigatewayv2:GetModel", "apigatewayv2:GetModels"], "path": "behavioral/apigatewayv2/check_create_model_with_an_invalid_schema_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-portal-access-denied-without-permission", "deployments": [], "key": "apigatewayv2/create-portal-access-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:ListPortals", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_create_portal_access_denied_without_permission.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-route-and-integration", "deployments": [], "key": "apigatewayv2/create-route-and-integration", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegration", "apigatewayv2:GetIntegrations", "apigatewayv2:GetRoute", "apigatewayv2:GetRoutes"], "path": "behavioral/apigatewayv2/check_create_route_and_integration.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-route-nonexistent-api-fails", "deployments": [], "key": "apigatewayv2/create-route-nonexistent-api-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoutes"], "path": "behavioral/apigatewayv2/check_create_route_nonexistent_api_fails.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-route-response-invalid-route-rejected", "deployments": [], "key": "apigatewayv2/create-route-response-invalid-route-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:DeleteApi", "apigatewayv2:GetRouteResponse", "apigatewayv2:GetRouteResponses"], "path": "behavioral/apigatewayv2/check_create_route_response_invalid_route_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-route-targeting-a-missing-integration-rejected", "deployments": [], "key": "apigatewayv2/create-route-targeting-a-missing-integration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoutes"], "path": "behavioral/apigatewayv2/check_create_route_targeting_a_missing_integration_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-routing-rule-missing-condition-rejected", "deployments": [], "key": "apigatewayv2/create-routing-rule-missing-condition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule", "apigatewayv2:ListRoutingRules"], "path": "behavioral/apigatewayv2/check_create_routing_rule_missing_condition_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-routing-rule-nonexistent-api-not-found", "deployments": [], "key": "apigatewayv2/create-routing-rule-nonexistent-api-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule", "apigatewayv2:ListRoutingRules"], "path": "behavioral/apigatewayv2/check_create_routing_rule_nonexistent_api_not_found.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-stage-and-deployment", "deployments": [], "key": "apigatewayv2/create-stage-and-deployment", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage"], "path": "behavioral/apigatewayv2/check_create_stage_and_deployment.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-stage-duplicate-name-rejected", "deployments": [], "key": "apigatewayv2/create-stage-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetStage"], "path": "behavioral/apigatewayv2/check_create_stage_duplicate_name_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.create-vpc-link-invalid-subnet-bad-request", "deployments": [], "key": "apigatewayv2/create-vpc-link-invalid-subnet-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "apigatewayv2:GetVpcLinks", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/apigatewayv2/check_create_vpc_link_invalid_subnet_bad_request.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.custom-domain-mapping-key-routes-to-stage-routes", "deployments": [], "key": "apigatewayv2/custom-domain-mapping-key-routes-to-stage-routes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteStage", "apigatewayv2:GetApiMappings", "apigatewayv2:GetDomainName", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_custom_domain_mapping_key_routes_to_stage_routes.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deep-apigatewayv2-2-enforce-aws-iam-route-unsigned-forbidden-signed-served", "deployments": [], "key": "apigatewayv2/deep-apigatewayv2-2-enforce-aws-iam-route-unsigned-forbidden-signed-served", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_deep_apigatewayv2_2_enforce_aws_iam_route_unsigned_forbidden_signed_served.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deep-apigatewayv2-2-enforce-disable-execute-api-endpoint-404-and-restore", "deployments": [], "key": "apigatewayv2/deep-apigatewayv2-2-enforce-disable-execute-api-endpoint-404-and-restore", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetApi", "apigatewayv2:UpdateApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_deep_apigatewayv2_2_enforce_disable_execute_api_endpoint_404_and_restore.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deep-apigatewayv2-2-enforce-integration-timeout-503-while-twin-route-serves", "deployments": [], "key": "apigatewayv2/deep-apigatewayv2-2-enforce-integration-timeout-503-while-twin-route-serves", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "apigatewayv2:UpdateIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_deep_apigatewayv2_2_enforce_integration_timeout_503_while_twin_route_serves.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deep-apigatewayv2-2-enforce-payload-10mib-limit-413-not-delivered", "deployments": [], "key": "apigatewayv2/deep-apigatewayv2-2-enforce-payload-10mib-limit-413-not-delivered", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/apigatewayv2/check_deep_apigatewayv2_2_enforce_payload_10mib_limit_413_not_delivered.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deep-apigatewayv2-3-stagesem-manual-stage-serves-deployment-snapshot", "deployments": [], "key": "apigatewayv2/deep-apigatewayv2-3-stagesem-manual-stage-serves-deployment-snapshot", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "apigatewayv2:UpdateIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_deep_apigatewayv2_3_stagesem_manual_stage_serves_deployment_snapshot.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deep-apigatewayv2-3-stagesem-request-authorizer-cache-expires-after-ttl", "deployments": [], "key": "apigatewayv2/deep-apigatewayv2-3-stagesem-request-authorizer-cache-expires-after-ttl", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_deep_apigatewayv2_3_stagesem_request_authorizer_cache_expires_after_ttl.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deep-apigatewayv2-3-stagesem-stage-variable-selects-lambda-backend", "deployments": [], "key": "apigatewayv2/deep-apigatewayv2-3-stagesem-stage-variable-selects-lambda-backend", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_deep_apigatewayv2_3_stagesem_stage_variable_selects_lambda_backend.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deep-apigatewayv2-3-stagesem-stage-variable-target-without-invoke-permission-rejected", "deployments": [], "key": "apigatewayv2/deep-apigatewayv2-3-stagesem-stage-variable-target-without-invoke-permission-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_deep_apigatewayv2_3_stagesem_stage_variable_target_without_invoke_permission_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-access-log-settings-removes-config", "deployments": [], "key": "apigatewayv2/delete-access-log-settings-removes-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateStage", "apigatewayv2:DeleteAccessLogSettings", "apigatewayv2:DeleteApi", "apigatewayv2:GetStage", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigatewayv2/check_delete_access_log_settings_removes_config.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-api-removes-its-routes-integrations-and-stages", "deployments": [], "key": "apigatewayv2/delete-api-removes-its-routes-integrations-and-stages", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetApi", "apigatewayv2:GetDeployment", "apigatewayv2:GetIntegration", "apigatewayv2:GetRoute", "apigatewayv2:GetStage"], "path": "behavioral/apigatewayv2/check_delete_api_removes_its_routes_integrations_and_stages.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-authorizer-in-use-by-a-route-rejected", "deployments": [], "key": "apigatewayv2/delete-authorizer-in-use-by-a-route-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteAuthorizer", "apigatewayv2:GetAuthorizer", "apigatewayv2:GetRoute", "apigatewayv2:UpdateRoute", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigatewayv2/check_delete_authorizer_in_use_by_a_route_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-cors-configuration-removes-config", "deployments": [], "key": "apigatewayv2/delete-cors-configuration-removes-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteCorsConfiguration", "apigatewayv2:GetApi"], "path": "behavioral/apigatewayv2/check_delete_cors_configuration_removes_config.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-deployment-in-use-by-stage-rejected", "deployments": [], "key": "apigatewayv2/delete-deployment-in-use-by-stage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteDeployment", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployments", "apigatewayv2:GetStage"], "path": "behavioral/apigatewayv2/check_delete_deployment_in_use_by_stage_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-domain-name-nonexistent-rejected", "deployments": [], "key": "apigatewayv2/delete-domain-name-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName"], "path": "behavioral/apigatewayv2/check_delete_domain_name_nonexistent_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-domain-name-twice-not-idempotent-404", "deployments": [], "key": "apigatewayv2/delete-domain-name-twice-not-idempotent-404", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName"], "path": "behavioral/apigatewayv2/check_delete_domain_name_twice_not_idempotent_404.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-integration-in-use-by-a-route-rejected", "deployments": [], "key": "apigatewayv2/delete-integration-in-use-by-a-route-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteIntegration", "apigatewayv2:DeleteRoute", "apigatewayv2:GetIntegration", "apigatewayv2:GetRoute"], "path": "behavioral/apigatewayv2/check_delete_integration_in_use_by_a_route_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-portal-product-access-denied-without-permission", "deployments": [], "key": "apigatewayv2/delete-portal-product-access-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:DeletePortalProduct", "apigatewayv2:GetPortalProduct", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_delete_portal_product_access_denied_without_permission.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-route-stops-delivery-on-autodeploy", "deployments": [], "key": "apigatewayv2/delete-route-stops-delivery-on-autodeploy", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRoute", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_delete_route_stops_delivery_on_autodeploy.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-stage-stops-serving-requests", "deployments": [], "key": "apigatewayv2/delete-stage-stops-serving-requests", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_delete_stage_stops_serving_requests.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.delete-vpc-link-in-use-succeeds-and-leaves-integration-dangling", "deployments": [], "key": "apigatewayv2/delete-vpc-link-in-use-succeeds-and-leaves-integration-dangling", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetIntegration", "apigatewayv2:GetVpcLink", "ec2:DescribeSubnets", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigatewayv2/check_delete_vpc_link_in_use_succeeds_and_leaves_integration_dangling.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deploy-api-mapping-cfn-behaves", "deployments": [], "key": "apigatewayv2/deploy-api-mapping-cfn-behaves", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:GetApiMapping", "apigatewayv2:GetDomainName", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2/check_deploy_api_mapping_cfn_behaves.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deploy-apigatewayv2-1-dangling-route-target-rejected-rolls-back-api", "deployments": ["behavioral/apigatewayv2/deployments/http-api-dangling-route-target.yaml"], "key": "apigatewayv2/deploy-apigatewayv2-1-dangling-route-target-rejected-rolls-back-api", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetRoutes", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2/check_deploy_apigatewayv2_1_dangling_route_target_rejected_rolls_back_api.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deploy-apigatewayv2-1-http-api-cors-removed-in-place-then-api-replaced", "deployments": ["behavioral/apigatewayv2/deployments/http-api-lambda-cors-update-replace.yaml"], "key": "apigatewayv2/deploy-apigatewayv2-1-http-api-cors-removed-in-place-then-api-replaced", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetRoutes", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigatewayv2/check_deploy_apigatewayv2_1_http_api_cors_removed_in_place_then_api_replaced.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deploy-apigatewayv2-3-cdk-http-api-cors-lambda-default-route-serves-then-destroys", "deployments": [], "key": "apigatewayv2/deploy-apigatewayv2-3-cdk-http-api-cors-lambda-default-route-serves-then-destroys", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetStages", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigatewayv2/check_deploy_apigatewayv2_3_cdk_http_api_cors_lambda_default_route_serves_then_destroys.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deploy-apigatewayv2-3-cdk-http-api-stripped-lambda-permission-invoke-rejected", "deployments": [], "key": "apigatewayv2/deploy-apigatewayv2-3-cdk-http-api-stripped-lambda-permission-invoke-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:GetIntegrations", "apigatewayv2:GetRoutes", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetPolicy", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigatewayv2/check_deploy_apigatewayv2_3_cdk_http_api_stripped_lambda_permission_invoke_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deploy-domain-name-cfn-behaves", "deployments": [], "key": "apigatewayv2/deploy-domain-name-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:GetApiMapping", "apigatewayv2:GetDomainName", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2/check_deploy_domain_name_cfn_behaves.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.deploy-vpc-link-cfn-behaves", "deployments": [], "key": "apigatewayv2/deploy-vpc-link-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteIntegration", "apigatewayv2:GetIntegration", "apigatewayv2:GetVpcLink", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers"], "path": "behavioral/apigatewayv2/check_deploy_vpc_link_cfn_behaves.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.disable-portal-revokes-access-server-side", "deployments": [], "key": "apigatewayv2/disable-portal-revokes-access-server-side", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PublishPortal"], "path": "behavioral/apigatewayv2/check_disable_portal_revokes_access_server_side.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.disabled-portal-preview-accepted", "deployments": [], "key": "apigatewayv2/disabled-portal-preview-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PreviewPortal", "apigatewayv2:PublishPortal"], "path": "behavioral/apigatewayv2/check_disabled_portal_preview_accepted.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.disabled-portal-publish-accepted", "deployments": [], "key": "apigatewayv2/disabled-portal-publish-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PublishPortal"], "path": "behavioral/apigatewayv2/check_disabled_portal_publish_accepted.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.domain-name-empty-configuration-rejected", "deployments": [], "key": "apigatewayv2/domain-name-empty-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName"], "path": "behavioral/apigatewayv2/check_domain_name_empty_configuration_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.domain-name-lifecycle", "deployments": [], "key": "apigatewayv2/domain-name-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName", "apigatewayv2:UpdateDomainName"], "path": "behavioral/apigatewayv2/check_domain_name_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.domain-name-lifecycle-crud-transitions", "deployments": [], "key": "apigatewayv2/domain-name-lifecycle-crud-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName", "apigatewayv2:UpdateDomainName"], "path": "behavioral/apigatewayv2/check_domain_name_lifecycle_crud_transitions.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.domain-name-mtls-ownership-verification-enforced", "deployments": [], "key": "apigatewayv2/domain-name-mtls-ownership-verification-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName", "apigatewayv2:UpdateDomainName", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/apigatewayv2/check_domain_name_mtls_ownership_verification_enforced.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.domain-name-security-policy-server-enforced", "deployments": [], "key": "apigatewayv2/domain-name-security-policy-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName", "apigatewayv2:UpdateDomainName"], "path": "behavioral/apigatewayv2/check_domain_name_security_policy_server_enforced.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.duplicate-route-key-conflict-rejected", "deployments": [], "key": "apigatewayv2/duplicate-route-key-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoutes"], "path": "behavioral/apigatewayv2/check_duplicate_route_key_conflict_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.e2e-custom-domain-mapping-invoke", "deployments": [], "key": "apigatewayv2/e2e-custom-domain-mapping-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApi", "apigatewayv2:GetApiMappings", "apigatewayv2:GetDomainName", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_e2e_custom_domain_mapping_invoke.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.e2e-custom-domain-mapping-invoke-flow", "deployments": [], "key": "apigatewayv2/e2e-custom-domain-mapping-invoke-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings", "apigatewayv2:GetDomainName", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:TestDNSAnswer"], "path": "behavioral/apigatewayv2/check_e2e_custom_domain_mapping_invoke_flow.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.e2e-portal-product-publish-flow", "deployments": [], "key": "apigatewayv2/e2e-portal-product-publish-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:CreatePortalProduct", "apigatewayv2:CreateProductPage", "apigatewayv2:DeletePortal", "apigatewayv2:DeletePortalProduct", "apigatewayv2:DeleteProductPage", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PublishPortal"], "path": "behavioral/apigatewayv2/check_e2e_portal_product_publish_flow.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.e2e-portal-publish-consume-flow", "deployments": [], "key": "apigatewayv2/e2e-portal-publish-consume-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:CreatePortalProduct", "apigatewayv2:CreateProductPage", "apigatewayv2:DeletePortal", "apigatewayv2:DeletePortalProduct", "apigatewayv2:DeleteProductPage", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PreviewPortal", "apigatewayv2:PublishPortal"], "path": "behavioral/apigatewayv2/check_e2e_portal_publish_consume_flow.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.e2e-vpc-link-private-integration-flow", "deployments": [], "key": "apigatewayv2/e2e-vpc-link-private-integration-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_e2e_vpc_link_private_integration_flow.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.e2e-vpc-link-private-integration-invoke", "deployments": [], "key": "apigatewayv2/e2e-vpc-link-private-integration-invoke", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteIntegration", "apigatewayv2:DeleteRoute", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetApi", "apigatewayv2:GetVpcLink", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_e2e_vpc_link_private_integration_invoke.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.export-api-reflects-current-config", "deployments": [], "key": "apigatewayv2/export-api-reflects-current-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRoute", "apigatewayv2:ExportApi", "apigatewayv2:GetRoutes"], "path": "behavioral/apigatewayv2/check_export_api_reflects_current_config.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.get-api-not-found", "deployments": [], "key": "apigatewayv2/get-api-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:GetApi", "apigatewayv2:GetApis"], "path": "behavioral/apigatewayv2/check_get_api_not_found.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.get-deployments-pagination-chains-every-deployment-once", "deployments": [], "key": "apigatewayv2/get-deployments-pagination-chains-every-deployment-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteDeployment", "apigatewayv2:GetDeployments"], "path": "behavioral/apigatewayv2/check_get_deployments_pagination_chains_every_deployment_once.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.get-model-template-returns-schema", "deployments": [], "key": "apigatewayv2/get-model-template-returns-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateModel", "apigatewayv2:DeleteApi", "apigatewayv2:GetModelTemplate"], "path": "behavioral/apigatewayv2/check_get_model_template_returns_schema.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.get-routes-pagination-chains-every-route-once", "deployments": [], "key": "apigatewayv2/get-routes-pagination-chains-every-route-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoutes"], "path": "behavioral/apigatewayv2/check_get_routes_pagination_chains_every_route_once.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.get-stages-pagination-chains-every-stage-once", "deployments": [], "key": "apigatewayv2/get-stages-pagination-chains-every-stage-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetStages"], "path": "behavioral/apigatewayv2/check_get_stages_pagination_chains_every_stage_once.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.get-vpc-link-after-delete-not-found", "deployments": [], "key": "apigatewayv2/get-vpc-link-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "apigatewayv2:GetVpcLinks", "apigatewayv2:UpdateVpcLink", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/apigatewayv2/check_get_vpc_link_after_delete_not_found.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-cors-configuration-overrides-backend-cors-headers", "deployments": [], "key": "apigatewayv2/http-api-cors-configuration-overrides-backend-cors-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_http_api_cors_configuration_overrides_backend_cors_headers.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-cors-preflight-caught-by-any-route-is-authorized", "deployments": [], "key": "apigatewayv2/http-api-cors-preflight-caught-by-any-route-is-authorized", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:UpdateRoute", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_http_api_cors_preflight_caught_by_any_route_is_authorized.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-cors-preflight-origin-allowlist-and-delete", "deployments": [], "key": "apigatewayv2/http-api-cors-preflight-origin-allowlist-and-delete", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteCorsConfiguration", "apigatewayv2:DeleteStage", "apigatewayv2:GetApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_http_api_cors_preflight_origin_allowlist_and_delete.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-create-get-delete", "deployments": [], "key": "apigatewayv2/http-api-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:GetApi", "apigatewayv2:GetApis", "apigatewayv2:UpdateApi"], "path": "behavioral/apigatewayv2/check_http_api_create_get_delete.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-integration-timeout-above-30000-rejected", "deployments": [], "key": "apigatewayv2/http-api-integration-timeout-above-30000-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegration", "apigatewayv2:GetIntegrations", "apigatewayv2:UpdateIntegration"], "path": "behavioral/apigatewayv2/check_http_api_integration_timeout_above_30000_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-lambda-proxy-function-error-returns-500-while-twin-route-serves", "deployments": [], "key": "apigatewayv2/http-api-lambda-proxy-function-error-returns-500-while-twin-route-serves", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetApi", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_http_api_lambda_proxy_function_error_returns_500_while_twin_route_serves.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-lambda-proxy-post-path-parameter-returns-the-functions-status-headers-and-body", "deployments": [], "key": "apigatewayv2/http-api-lambda-proxy-post-path-parameter-returns-the-functions-status-headers-and-body", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetApi", "apigatewayv2:GetApis", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_http_api_lambda_proxy_post_path_parameter_returns_the_functions_status_headers_and_body.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-list-reflects-created", "deployments": [], "key": "apigatewayv2/http-api-list-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:GetApis"], "path": "behavioral/apigatewayv2/check_http_api_list_reflects_created.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-named-stage-rawpath-includes-stage-prefix", "deployments": [], "key": "apigatewayv2/http-api-named-stage-rawpath-includes-stage-prefix", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_http_api_named_stage_rawpath_includes_stage_prefix.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-path-without-stage-prefix-not-delivered", "deployments": [], "key": "apigatewayv2/http-api-path-without-stage-prefix-not-delivered", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStages", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_http_api_path_without_stage_prefix_not_delivered.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-quick-create-synthesizes-integration-route-stage", "deployments": [], "key": "apigatewayv2/http-api-quick-create-synthesizes-integration-route-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:GetApi", "apigatewayv2:GetApis", "apigatewayv2:GetIntegrations", "apigatewayv2:GetRoutes", "apigatewayv2:GetStages"], "path": "behavioral/apigatewayv2/check_http_api_quick_create_synthesizes_integration_route_stage.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-route-key-precedence-and-path-parameters", "deployments": [], "key": "apigatewayv2/http-api-route-key-precedence-and-path-parameters", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_http_api_route_key_precedence_and_path_parameters.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-stage-requires-deployment-before-serving", "deployments": [], "key": "apigatewayv2/http-api-stage-requires-deployment-before-serving", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_http_api_stage_requires_deployment_before_serving.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-unmatched-route-key-not-delivered", "deployments": [], "key": "apigatewayv2/http-api-unmatched-route-key-not-delivered", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_http_api_unmatched_route_key_not_delivered.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-api-v2-binary-body-base64-encoded-both-ways", "deployments": [], "key": "apigatewayv2/http-api-v2-binary-body-base64-encoded-both-ways", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_http_api_v2_binary_body_base64_encoded_both_ways.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-proxy-payload-format-version-2-rejected", "deployments": [], "key": "apigatewayv2/http-proxy-payload-format-version-2-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegration", "apigatewayv2:GetIntegrations", "apigatewayv2:UpdateIntegration", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_http_proxy_payload_format_version_2_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.http-proxy-stage-variable-selects-backend-host", "deployments": [], "key": "apigatewayv2/http-proxy-stage-variable-selects-backend-host", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_http_proxy_stage_variable_selects_backend_host.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.import-api-payload-format-version-extension-honored", "deployments": [], "key": "apigatewayv2/import-api-payload-format-version-extension-honored", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "apigatewayv2:GetRoutes", "apigatewayv2:ImportApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_import_api_payload_format_version_extension_honored.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.import-api-then-reimport-changes-routing", "deployments": [], "key": "apigatewayv2/import-api-then-reimport-changes-routing", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoutes", "apigatewayv2:ImportApi", "apigatewayv2:ReimportApi", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_import_api_then_reimport_changes_routing.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.import-export-reimport-api-round-trip", "deployments": [], "key": "apigatewayv2/import-export-reimport-api-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:DeleteApi", "apigatewayv2:ExportApi", "apigatewayv2:GetApi", "apigatewayv2:GetIntegration", "apigatewayv2:GetRoutes", "apigatewayv2:ImportApi", "apigatewayv2:ReimportApi"], "path": "behavioral/apigatewayv2/check_import_export_reimport_api_round_trip.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.integration-response-key-format-validation", "deployments": [], "key": "apigatewayv2/integration-response-key-format-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateIntegrationResponse", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegrationResponse", "apigatewayv2:GetIntegrationResponses"], "path": "behavioral/apigatewayv2/check_integration_response_key_format_validation.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.invoke-http-api-httpproxy", "deployments": [], "key": "apigatewayv2/invoke-http-api-httpproxy", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage"], "path": "behavioral/apigatewayv2/check_invoke_http_api_httpproxy.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.invoke-http-api-lambda-proxy", "deployments": [], "key": "apigatewayv2/invoke-http-api-lambda-proxy", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetApi", "apigatewayv2:GetApis", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:ListRoles", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListFunctions", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_invoke_http_api_lambda_proxy.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.lambda-authorizer-array-context-value-passes-through-unchanged", "deployments": [], "key": "apigatewayv2/lambda-authorizer-array-context-value-passes-through-unchanged", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_lambda_authorizer_array_context_value_passes_through_unchanged.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.lambda-authorizer-context-propagates-to-integration-event", "deployments": [], "key": "apigatewayv2/lambda-authorizer-context-propagates-to-integration-event", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_lambda_authorizer_context_propagates_to_integration_event.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.lambda-authorizer-payload-format-1-0-iam-policy-response", "deployments": [], "key": "apigatewayv2/lambda-authorizer-payload-format-1-0-iam-policy-response", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetAuthorizer", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_lambda_authorizer_payload_format_1_0_iam_policy_response.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.lambda-authorizer-simple-response-explicit-deny-forbidden", "deployments": [], "key": "apigatewayv2/lambda-authorizer-simple-response-explicit-deny-forbidden", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_lambda_authorizer_simple_response_explicit_deny_forbidden.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.lambda-payload-format-1-0-and-2-0-envelopes-differ", "deployments": [], "key": "apigatewayv2/lambda-payload-format-1-0-and-2-0-envelopes-differ", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_lambda_payload_format_1_0_and_2_0_envelopes_differ.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.lambda-payload-format-2-0-response-inference-and-cookies", "deployments": [], "key": "apigatewayv2/lambda-payload-format-2-0-response-inference-and-cookies", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_lambda_payload_format_2_0_response_inference_and_cookies.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.list-api-mappings-reflects-created", "deployments": [], "key": "apigatewayv2/list-api-mappings-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateApi", "apigatewayv2:CreateApiMapping", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteApiMapping", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetApiMapping", "apigatewayv2:GetApiMappings"], "path": "behavioral/apigatewayv2/check_list_api_mappings_reflects_created.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.list-domain-names-reflects-created", "deployments": [], "key": "apigatewayv2/list-domain-names-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName", "apigatewayv2:GetDomainNames", "apigatewayv2:UpdateDomainName"], "path": "behavioral/apigatewayv2/check_list_domain_names_reflects_created.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.list-portals-and-portal-products-reflect-created", "deployments": [], "key": "apigatewayv2/list-portals-and-portal-products-reflect-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:CreatePortalProduct", "apigatewayv2:DeletePortal", "apigatewayv2:DeletePortalProduct"], "path": "behavioral/apigatewayv2/check_list_portals_and_portal_products_reflect_created.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.list-routing-rules-reflects-created", "deployments": [], "key": "apigatewayv2/list-routing-rules-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule", "apigatewayv2:ListRoutingRules"], "path": "behavioral/apigatewayv2/check_list_routing_rules_reflects_created.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.list-vpc-links-reflects-created", "deployments": [], "key": "apigatewayv2/list-vpc-links-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "apigatewayv2:GetVpcLinks", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/apigatewayv2/check_list_vpc_links_reflects_created.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.mock-integration-response-selected-by-status-code-pattern", "deployments": [], "key": "apigatewayv2/mock-integration-response-selected-by-status-code-pattern", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateIntegrationResponse", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment"], "path": "behavioral/apigatewayv2/check_mock_integration_response_selected_by_status_code_pattern.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.parameter-mapping-rewrites-a-real-request-and-response", "deployments": [], "key": "apigatewayv2/parameter-mapping-rewrites-a-real-request-and-response", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_parameter_mapping_rewrites_a_real_request_and_response.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-concurrent-publish-preview-conflict", "deployments": [], "key": "apigatewayv2/portal-concurrent-publish-preview-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PreviewPortal", "apigatewayv2:PublishPortal"], "path": "behavioral/apigatewayv2/check_portal_concurrent_publish_preview_conflict.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-lifecycle", "deployments": [], "key": "apigatewayv2/portal-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:GetPortal", "apigatewayv2:UpdatePortal"], "path": "behavioral/apigatewayv2/check_portal_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-lifecycle-crud", "deployments": [], "key": "apigatewayv2/portal-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:UpdatePortal"], "path": "behavioral/apigatewayv2/check_portal_lifecycle_crud.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-product-description-unicode-round-trip", "deployments": [], "key": "apigatewayv2/portal-product-description-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:DeletePortalProduct", "apigatewayv2:GetPortalProduct"], "path": "behavioral/apigatewayv2/check_portal_product_description_unicode_round_trip.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-product-lifecycle", "deployments": [], "key": "apigatewayv2/portal-product-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:DeletePortalProduct", "apigatewayv2:GetPortalProduct", "apigatewayv2:UpdatePortalProduct"], "path": "behavioral/apigatewayv2/check_portal_product_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-product-lifecycle-crud", "deployments": [], "key": "apigatewayv2/portal-product-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:DeletePortalProduct", "apigatewayv2:GetPortalProduct", "apigatewayv2:UpdatePortalProduct"], "path": "behavioral/apigatewayv2/check_portal_product_lifecycle_crud.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-product-sharing-policy-lifecycle", "deployments": [], "key": "apigatewayv2/portal-product-sharing-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:DeletePortalProduct", "apigatewayv2:DeletePortalProductSharingPolicy", "apigatewayv2:GetPortalProductSharingPolicy", "apigatewayv2:PutPortalProductSharingPolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_portal_product_sharing_policy_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-product-sharing-policy-resets-to-empty-after-delete", "deployments": [], "key": "apigatewayv2/portal-product-sharing-policy-resets-to-empty-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:DeletePortalProduct", "apigatewayv2:DeletePortalProductSharingPolicy", "apigatewayv2:GetPortalProductSharingPolicy", "apigatewayv2:PutPortalProductSharingPolicy", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_portal_product_sharing_policy_resets_to_empty_after_delete.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.portal-publish-server-managed-build", "deployments": [], "key": "apigatewayv2/portal-publish-server-managed-build", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PublishPortal"], "path": "behavioral/apigatewayv2/check_portal_publish_server_managed_build.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.product-page-lifecycle", "deployments": [], "key": "apigatewayv2/product-page-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:CreateProductPage", "apigatewayv2:DeletePortalProduct", "apigatewayv2:DeleteProductPage", "apigatewayv2:GetProductPage", "apigatewayv2:UpdateProductPage"], "path": "behavioral/apigatewayv2/check_product_page_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.product-page-lifecycle-crud", "deployments": [], "key": "apigatewayv2/product-page-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:CreateProductPage", "apigatewayv2:DeletePortalProduct", "apigatewayv2:DeleteProductPage", "apigatewayv2:GetProductPage", "apigatewayv2:UpdateProductPage"], "path": "behavioral/apigatewayv2/check_product_page_lifecycle_crud.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.product-rest-endpoint-page-lifecycle", "deployments": [], "key": "apigatewayv2/product-rest-endpoint-page-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreatePortalProduct", "apigatewayv2:CreateProductRestEndpointPage", "apigatewayv2:DeletePortalProduct", "apigatewayv2:DeleteProductRestEndpointPage", "apigatewayv2:GetProductRestEndpointPage", "apigatewayv2:UpdateProductRestEndpointPage"], "path": "behavioral/apigatewayv2/check_product_rest_endpoint_page_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.protocol-type-illegal-attributes-rejected", "deployments": [], "key": "apigatewayv2/protocol-type-illegal-attributes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateModel", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegrations", "apigatewayv2:GetModels", "apigatewayv2:GetRoutes"], "path": "behavioral/apigatewayv2/check_protocol_type_illegal_attributes_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.publish-portal-server-managed-status-transition", "deployments": [], "key": "apigatewayv2/publish-portal-server-managed-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreatePortal", "apigatewayv2:DeletePortal", "apigatewayv2:DisablePortal", "apigatewayv2:GetPortal", "apigatewayv2:PublishPortal"], "path": "behavioral/apigatewayv2/check_publish_portal_server_managed_status_transition.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.put-portal-product-sharing-policy-access-denied", "deployments": [], "key": "apigatewayv2/put-portal-product-sharing-policy-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreatePortalProduct", "apigatewayv2:DeletePortalProduct", "apigatewayv2:DeletePortalProductSharingPolicy", "apigatewayv2:GetPortalProductSharingPolicy", "apigatewayv2:PutPortalProductSharingPolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:SimulatePrincipalPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_put_portal_product_sharing_policy_access_denied.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.put-routing-rule-concurrent-convergence", "deployments": [], "key": "apigatewayv2/put-routing-rule-concurrent-convergence", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule", "apigatewayv2:PutRoutingRule"], "path": "behavioral/apigatewayv2/check_put_routing_rule_concurrent_convergence.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.put-routing-rule-nonexistent-not-found", "deployments": [], "key": "apigatewayv2/put-routing-rule-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule", "apigatewayv2:ListRoutingRules", "apigatewayv2:PutRoutingRule", "apigatewayv2:UpdateDomainName"], "path": "behavioral/apigatewayv2/check_put_routing_rule_nonexistent_not_found.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.quick-create-lambda-target-invoked-directly-delivers-v2-event", "deployments": [], "key": "apigatewayv2/quick-create-lambda-target-invoked-directly-delivers-v2-event", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegrations", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_quick_create_lambda_target_invoked_directly_delivers_v2_event.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.request-authorizer-cache-is-keyed-per-identity-source-value", "deployments": [], "key": "apigatewayv2/request-authorizer-cache-is-keyed-per-identity-source-value", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:ResetAuthorizersCache", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_request_authorizer_cache_is_keyed_per_identity_source_value.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.request-authorizer-missing-one-of-two-identity-sources-unauthorized", "deployments": [], "key": "apigatewayv2/request-authorizer-missing-one-of-two-identity-sources-unauthorized", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_request_authorizer_missing_one_of_two_identity_sources_unauthorized.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.reserved-header-mapping-refused-at-create", "deployments": [], "key": "apigatewayv2/reserved-header-mapping-refused-at-create", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegration"], "path": "behavioral/apigatewayv2/check_reserved_header_mapping_refused_at_create.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.reset-authorizers-cache-affects-invoke", "deployments": [], "key": "apigatewayv2/reset-authorizers-cache-affects-invoke", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:ResetAuthorizersCache", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_reset_authorizers_cache_affects_invoke.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.reset-authorizers-cache-invalid-stage-rejected", "deployments": [], "key": "apigatewayv2/reset-authorizers-cache-invalid-stage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetStage", "apigatewayv2:ResetAuthorizersCache"], "path": "behavioral/apigatewayv2/check_reset_authorizers_cache_invalid_stage_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.reset-authorizers-cache-server-side", "deployments": [], "key": "apigatewayv2/reset-authorizers-cache-server-side", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "apigatewayv2:ResetAuthorizersCache", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_reset_authorizers_cache_server_side.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.route-throttling-returns-429-while-twin-route-serves", "deployments": [], "key": "apigatewayv2/route-throttling-returns-429-while-twin-route-serves", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRouteSettings", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_route_throttling_returns_429_while_twin_route_serves.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.routing-rule-duplicate-priority-rejected", "deployments": [], "key": "apigatewayv2/routing-rule-duplicate-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateDomainName", "apigateway:CreateRestApi", "apigateway:DeleteDomainName", "apigateway:DeleteRestApi", "apigateway:GetDomainName", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetDomainName", "apigatewayv2:ListRoutingRules"], "path": "behavioral/apigatewayv2/check_routing_rule_duplicate_priority_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.routing-rule-invalid-target-api-rejected", "deployments": [], "key": "apigatewayv2/routing-rule-invalid-target-api-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule", "apigatewayv2:ListRoutingRules"], "path": "behavioral/apigatewayv2/check_routing_rule_invalid_target_api_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.routing-rule-lifecycle", "deployments": [], "key": "apigatewayv2/routing-rule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule", "apigatewayv2:PutRoutingRule"], "path": "behavioral/apigatewayv2/check_routing_rule_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.routing-rule-lifecycle-crud", "deployments": [], "key": "apigatewayv2/routing-rule-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule", "apigatewayv2:PutRoutingRule", "apigatewayv2:UpdateDomainName"], "path": "behavioral/apigatewayv2/check_routing_rule_lifecycle_crud.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.routing-rule-priority-numeric-precision-preserved", "deployments": [], "key": "apigatewayv2/routing-rule-priority-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule"], "path": "behavioral/apigatewayv2/check_routing_rule_priority_numeric_precision_preserved.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.routing-rule-priority-numeric-precision-round-trip", "deployments": [], "key": "apigatewayv2/routing-rule-priority-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:GetRoutingRule"], "path": "behavioral/apigatewayv2/check_routing_rule_priority_numeric_precision_round_trip.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.routing-rule-priority-out-of-range-rejected", "deployments": [], "key": "apigatewayv2/routing-rule-priority-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:CreateDomainName", "apigatewayv2:CreateRoutingRule", "apigatewayv2:DeleteDomainName", "apigatewayv2:DeleteRoutingRule", "apigatewayv2:ListRoutingRules"], "path": "behavioral/apigatewayv2/check_routing_rule_priority_out_of_range_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.simple-response-authorizer-under-payload-format-1-0-fails-500", "deployments": [], "key": "apigatewayv2/simple-response-authorizer-under-payload-format-1-0-fails-500", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_simple_response_authorizer_under_payload_format_1_0_fails_500.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.stage-variables-and-route-settings-round-trip", "deployments": [], "key": "apigatewayv2/stage-variables-and-route-settings-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRouteSettings", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "apigatewayv2:GetStages", "apigatewayv2:UpdateStage"], "path": "behavioral/apigatewayv2/check_stage_variables_and_route_settings_round_trip.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.update-domain-name-nonexistent-not-found", "deployments": [], "key": "apigatewayv2/update-domain-name-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "apigatewayv2:CreateDomainName", "apigatewayv2:DeleteDomainName", "apigatewayv2:GetDomainName", "apigatewayv2:UpdateDomainName"], "path": "behavioral/apigatewayv2/check_update_domain_name_nonexistent_not_found.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.update-route-response-preserves-fields", "deployments": [], "key": "apigatewayv2/update-route-response-preserves-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateModel", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:DeleteApi", "apigatewayv2:GetRouteResponse", "apigatewayv2:UpdateRouteResponse"], "path": "behavioral/apigatewayv2/check_update_route_response_preserves_fields.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.update-route-target-switch-takes-effect-on-autodeploy", "deployments": [], "key": "apigatewayv2/update-route-target-switch-takes-effect-on-autodeploy", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployments", "apigatewayv2:GetRoute", "apigatewayv2:GetStage", "apigatewayv2:UpdateRoute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2/check_update_route_target_switch_takes_effect_on_autodeploy.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.update-route-to-jwt-without-an-authorizer-rejected", "deployments": [], "key": "apigatewayv2/update-route-to-jwt-without-an-authorizer-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoute", "apigatewayv2:UpdateRoute", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/apigatewayv2/check_update_route_to_jwt_without_an_authorizer_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.update-vpc-link-invalid-security-group-rejected", "deployments": [], "key": "apigatewayv2/update-vpc-link-invalid-security-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "apigatewayv2:GetVpcLinks", "apigatewayv2:UpdateVpcLink", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets"], "path": "behavioral/apigatewayv2/check_update_vpc_link_invalid_security_group_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.vpc-link-lifecycle", "deployments": [], "key": "apigatewayv2/vpc-link-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "apigatewayv2:UpdateVpcLink", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/apigatewayv2/check_vpc_link_lifecycle.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.vpc-link-lifecycle-pending-to-available", "deployments": [], "key": "apigatewayv2/vpc-link-lifecycle-pending-to-available", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "apigatewayv2:UpdateVpcLink", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/apigatewayv2/check_vpc_link_lifecycle_pending_to_available.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.vpc-link-mismatched-subnet-vpcs-rejected", "deployments": [], "key": "apigatewayv2/vpc-link-mismatched-subnet-vpcs-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "apigatewayv2:GetVpcLinks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs"], "path": "behavioral/apigatewayv2/check_vpc_link_mismatched_subnet_vpcs_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.vpc-link-server-managed-provisioning", "deployments": [], "key": "apigatewayv2/vpc-link-server-managed-provisioning", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/apigatewayv2/check_vpc_link_server_managed_provisioning.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.vpc-link-tags-round-trip", "deployments": [], "key": "apigatewayv2/vpc-link-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "ec2:DescribeSubnets"], "path": "behavioral/apigatewayv2/check_vpc_link_tags_round_trip.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.vpc-link-tags-unicode-round-trip", "deployments": [], "key": "apigatewayv2/vpc-link-tags-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateVpcLink", "apigatewayv2:DeleteVpcLink", "apigatewayv2:GetVpcLink", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/apigatewayv2/check_vpc_link_tags_unicode_round_trip.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-api-create-route-delete", "deployments": [], "key": "apigatewayv2/websocket-api-create-route-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRoute", "apigatewayv2:GetApi", "apigatewayv2:GetApis", "apigatewayv2:GetRoute", "apigatewayv2:GetRoutes", "apigatewayv2:UpdateApi", "apigatewayv2:UpdateRoute"], "path": "behavioral/apigatewayv2/check_websocket_api_create_route_delete.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-broadcast-to-multiple-connections", "deployments": [], "key": "apigatewayv2/websocket-broadcast-to-multiple-connections", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_websocket_broadcast_to_multiple_connections.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-connect-custom-authorizer-nonexistent-id-rejected", "deployments": [], "key": "apigatewayv2/websocket-connect-custom-authorizer-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoutes"], "path": "behavioral/apigatewayv2/check_websocket_connect_custom_authorizer_nonexistent_id_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-connect-mock-integration-rejected", "deployments": [], "key": "apigatewayv2/websocket-connect-mock-integration-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateIntegrationResponse", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "apigatewayv2:GetRoutes", "apigatewayv2:UpdateRoute", "apigatewayv2:UpdateStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_websocket_connect_mock_integration_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-connect-request-authorizer-token-gate", "deployments": [], "key": "apigatewayv2/websocket-connect-request-authorizer-token-gate", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_websocket_connect_request_authorizer_token_gate.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-inbound-binary-frame-rejected", "deployments": [], "key": "apigatewayv2/websocket-inbound-binary-frame-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_websocket_inbound_binary_frame_rejected.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-inbound-message-32kb-boundary", "deployments": [], "key": "apigatewayv2/websocket-inbound-message-32kb-boundary", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_websocket_inbound_message_32kb_boundary.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-post-to-connection-delivers-then-gone-after-disconnect", "deployments": [], "key": "apigatewayv2/websocket-post-to-connection-delivers-then-gone-after-disconnect", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:DeleteConnection", "apigatewaymanagementapi:GetConnection", "apigatewaymanagementapi:PostToConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateIntegrationResponse", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetApi", "apigatewayv2:GetApis", "apigatewayv2:GetDeployment"], "path": "behavioral/apigatewayv2/check_websocket_post_to_connection_delivers_then_gone_after_disconnect.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-route-request-parameter-delete", "deployments": [], "key": "apigatewayv2/websocket-route-request-parameter-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRouteRequestParameter", "apigatewayv2:GetRoute"], "path": "behavioral/apigatewayv2/check_websocket_route_request_parameter_delete.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-route-selection-by-action", "deployments": [], "key": "apigatewayv2/websocket-route-selection-by-action", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_websocket_route_selection_by_action.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2.websocket-two-way-route-needs-a-route-response-to-reach-the-client", "deployments": [], "key": "apigatewayv2/websocket-two-way-route-needs-a-route-response-to-reach-the-client", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewaymanagementapi:GetConnection", "apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoute", "apigatewayv2:GetRouteResponses", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2/check_websocket_two_way_route_needs_a_route_response_to_reach_the_client.py", "service": "apigatewayv2"} {"check_id": "apigatewayv2__cloudcontrol__cloudformation.cfn-apigatewayv2-api-unknown-property-rejected-with-positive-control", "deployments": [], "key": "apigatewayv2__cloudcontrol__cloudformation/cfn-apigatewayv2-api-unknown-property-rejected-with-positive-control", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetApis", "cloudcontrol:GetResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudcontrol__cloudformation/check_cfn_apigatewayv2_api_unknown_property_rejected_with_positive_control.py", "service": "apigatewayv2__cloudcontrol__cloudformation"} {"check_id": "apigatewayv2__cloudcontrol__cloudformation.cfn-apigatewayv2-identity-readonly-ignored-writeonly-body-hidden-from-cloudcontrol", "deployments": [], "key": "apigatewayv2__cloudcontrol__cloudformation/cfn-apigatewayv2-identity-readonly-ignored-writeonly-body-hidden-from-cloudcontrol", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetRoutes", "cloudcontrol:GetResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudcontrol__cloudformation/check_cfn_apigatewayv2_identity_readonly_ignored_writeonly_body_hidden_from_cloudcontrol.py", "service": "apigatewayv2__cloudcontrol__cloudformation"} {"check_id": "apigatewayv2__cloudformation.cfn-apigatewayv2-api-in-place-description-retained-protocol-replacement-then-not-found", "deployments": [], "key": "apigatewayv2__cloudformation/cfn-apigatewayv2-api-in-place-description-retained-protocol-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:DeleteApi", "apigatewayv2:GetApi", "apigatewayv2:GetIntegrations", "apigatewayv2:GetRoutes", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigatewayv2__cloudformation/check_cfn_apigatewayv2_api_in_place_description_retained_protocol_replacement_then_not_found.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-bodys3location-missing-object-fails-stack", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-bodys3location-missing-object-fails-stack", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:GetRoutes", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_bodys3location_missing_object_fails_stack.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-deployment-status-and-removal", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-deployment-status-and-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetDeployment", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_deployment_status_and_removal.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-disable-execute-api-endpoint-blocks-default-domain", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-disable-execute-api-endpoint-blocks-default-domain", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:GetApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_disable_execute_api_endpoint_blocks_default_domain.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-failonwarnings-true-fails-create-on-import-warning", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-failonwarnings-true-fails-create-on-import-warning", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "apigatewayv2:GetRoutes", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_failonwarnings_true_fails_create_on_import_warning.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-inline-body-openapi-proxy-serves-its-routes", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-inline-body-openapi-proxy-serves-its-routes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:GetApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_inline_body_openapi_proxy_serves_its_routes.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-managed-overrides-persists-after-removal", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-managed-overrides-persists-after-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_managed_overrides_persists_after_removal.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-model-schema-type-rejected", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-model-schema-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_model_schema_type_rejected.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-websocket-response-and-model-removal", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-websocket-response-and-model-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetModel", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_websocket_response_and_model_removal.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-cfn-websocket-route-selection-expression-dispatches-by-action", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-cfn-websocket-route-selection-expression-dispatches-by-action", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_cfn_websocket_route_selection_expression_dispatches_by_action.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-portalproduct-displayname-over-maximum-rejected", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-portalproduct-displayname-over-maximum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:GetPortalProduct", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_portalproduct_displayname_over_maximum_rejected.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.deploy-apigatewayv2-portalproduct-round-trip-then-delete", "deployments": [], "key": "apigatewayv2__cloudformation/deploy-apigatewayv2-portalproduct-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:GetPortalProduct", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudformation/check_deploy_apigatewayv2_portalproduct_round_trip_then_delete.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation.stage-auto-deploy-republishes-on-a-cfn-route-change", "deployments": ["behavioral/apigatewayv2__cloudformation/deployments/http-api-autodeploy-route-change.yaml"], "key": "apigatewayv2__cloudformation/stage-auto-deploy-republishes-on-a-cfn-route-change", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateDeployment", "apigatewayv2:CreateStage", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoutes", "apigatewayv2:GetStage", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigatewayv2__cloudformation/check_stage_auto_deploy_republishes_on_a_cfn_route_change.py", "service": "apigatewayv2__cloudformation"} {"check_id": "apigatewayv2__cloudformation__cognito-idp.deploy-apigatewayv2-cfn-authorizer-identitysource-type-rejected", "deployments": [], "key": "apigatewayv2__cloudformation__cognito-idp/deploy-apigatewayv2-cfn-authorizer-identitysource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudformation__cognito-idp/check_deploy_apigatewayv2_cfn_authorizer_identitysource_type_rejected.py", "service": "apigatewayv2__cloudformation__cognito-idp"} {"check_id": "apigatewayv2__cloudformation__cognito-idp.deploy-apigatewayv2-cfn-jwt-authorizer-reads-back-and-removed", "deployments": [], "key": "apigatewayv2__cloudformation__cognito-idp/deploy-apigatewayv2-cfn-jwt-authorizer-reads-back-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetAuthorizer", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/apigatewayv2__cloudformation__cognito-idp/check_deploy_apigatewayv2_cfn_jwt_authorizer_reads_back_and_removed.py", "service": "apigatewayv2__cloudformation__cognito-idp"} {"check_id": "apigatewayv2__cloudformation__ec2.deploy-apigatewayv2-vpclink-mismatched-vpc-security-group-rejected", "deployments": [], "key": "apigatewayv2__cloudformation__ec2/deploy-apigatewayv2-vpclink-mismatched-vpc-security-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:GetVpcLink", "apigatewayv2:GetVpcLinks", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups"], "path": "behavioral/apigatewayv2__cloudformation__ec2/check_deploy_apigatewayv2_vpclink_mismatched_vpc_security_group_rejected.py", "service": "apigatewayv2__cloudformation__ec2"} {"check_id": "apigatewayv2__cloudformation__ec2.deploy-apigatewayv2-vpclink-round-trip-then-delete", "deployments": [], "key": "apigatewayv2__cloudformation__ec2/deploy-apigatewayv2-vpclink-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:GetVpcLink", "apigatewayv2:GetVpcLinks", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/apigatewayv2__cloudformation__ec2/check_deploy_apigatewayv2_vpclink_round_trip_then_delete.py", "service": "apigatewayv2__cloudformation__ec2"} {"check_id": "apigatewayv2__cloudformation__lambda.deploy-cdk-httpapi-lambda-integration-get-routes-and-integrations-read-back", "deployments": ["behavioral/apigatewayv2__cloudformation__lambda/deployments/cdk_httpapi_lambda_integration/app.py", "behavioral/apigatewayv2__cloudformation__lambda/deployments/cdk_httpapi_lambda_integration/cdk.json"], "key": "apigatewayv2__cloudformation__lambda/deploy-cdk-httpapi-lambda-integration-get-routes-and-integrations-read-back", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:GetIntegrations", "apigatewayv2:GetRoutes", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListRoles", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/apigatewayv2__cloudformation__lambda/check_deploy_cdk_httpapi_lambda_integration_get_routes_and_integrations_read_back.py", "service": "apigatewayv2__cloudformation__lambda"} {"check_id": "apigatewayv2__cloudformation__lambda.deploy-cfn-httpapi-lambda-integration-missing-permission-invoke-rejected", "deployments": [], "key": "apigatewayv2__cloudformation__lambda/deploy-cfn-httpapi-lambda-integration-missing-permission-invoke-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetIntegrations", "apigatewayv2:GetRoutes", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigatewayv2__cloudformation__lambda/check_deploy_cfn_httpapi_lambda_integration_missing_permission_invoke_rejected.py", "service": "apigatewayv2__cloudformation__lambda"} {"check_id": "apigatewayv2__cloudformation__lambda.sam-httpapi-aws-iam-route-unsigned-forbidden-signed-served", "deployments": ["behavioral/apigatewayv2__cloudformation__lambda/deployments/sam_httpapi_iam/template.yaml"], "key": "apigatewayv2__cloudformation__lambda/sam-httpapi-aws-iam-route-unsigned-forbidden-signed-served", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:GetApi", "apigatewayv2:GetRoutes", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigatewayv2__cloudformation__lambda/check_sam_httpapi_aws_iam_route_unsigned_forbidden_signed_served.py", "service": "apigatewayv2__cloudformation__lambda"} {"check_id": "apigatewayv2__cloudformation__lambda.sam-httpapi-event-serves-payload-v2-route", "deployments": ["behavioral/apigatewayv2__cloudformation__lambda/deployments/sam_httpapi/template.yaml"], "key": "apigatewayv2__cloudformation__lambda/sam-httpapi-event-serves-payload-v2-route", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigatewayv2__cloudformation__lambda/check_sam_httpapi_event_serves_payload_v2_route.py", "service": "apigatewayv2__cloudformation__lambda"} {"check_id": "apigatewayv2__cloudformation__lambda.sam-websocketapi-missing-route-selection-expression-rejected", "deployments": [], "key": "apigatewayv2__cloudformation__lambda/sam-websocketapi-missing-route-selection-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigatewayv2:GetApi", "cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2__cloudformation__lambda/check_sam_websocketapi_missing_route_selection_expression_rejected.py", "service": "apigatewayv2__cloudformation__lambda"} {"check_id": "apigatewayv2__cloudformation__lambda.sam-websocketapi-round-trip-and-removed-on-delete", "deployments": [], "key": "apigatewayv2__cloudformation__lambda/sam-websocketapi-round-trip-and-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigatewayv2:GetApi", "cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2__cloudformation__lambda/check_sam_websocketapi_round_trip_and_removed_on_delete.py", "service": "apigatewayv2__cloudformation__lambda"} {"check_id": "apigatewayv2__cloudwatch.http-api-count-and-4xx-metrics-carry-the-apiid-stage-dimensions", "deployments": [], "key": "apigatewayv2__cloudwatch/http-api-count-and-4xx-metrics-carry-the-apiid-stage-dimensions", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch/check_http_api_count_and_4xx_metrics_carry_the_apiid_stage_dimensions.py", "service": "apigatewayv2__cloudwatch"} {"check_id": "apigatewayv2__cloudwatch.http-api-missing-invoke-permission-rejected-as-5xx-metric", "deployments": [], "key": "apigatewayv2__cloudwatch/http-api-missing-invoke-permission-rejected-as-5xx-metric", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch/check_http_api_missing_invoke_permission_rejected_as_5xx_metric.py", "service": "apigatewayv2__cloudwatch"} {"check_id": "apigatewayv2__cloudwatch.http-api-route-throttle-zero-rejected-429-counted-in-4xx", "deployments": [], "key": "apigatewayv2__cloudwatch/http-api-route-throttle-zero-rejected-429-counted-in-4xx", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "apigatewayv2:UpdateStage", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch/check_http_api_route_throttle_zero_rejected_429_counted_in_4xx.py", "service": "apigatewayv2__cloudwatch"} {"check_id": "apigatewayv2__cloudwatch.obs-apigatewayv2-2-http-api-detailed-metrics-opt-in-adds-method-resource-series", "deployments": [], "key": "apigatewayv2__cloudwatch/obs-apigatewayv2-2-http-api-detailed-metrics-opt-in-adds-method-resource-series", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:UpdateStage", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch/check_obs_apigatewayv2_2_http_api_detailed_metrics_opt_in_adds_method_resource_series.py", "service": "apigatewayv2__cloudwatch"} {"check_id": "apigatewayv2__cloudwatch.obs-apigatewayv2-3-http-api-5xx-alarm-actions-disabled-notification-blocked", "deployments": [], "key": "apigatewayv2__cloudwatch/obs-apigatewayv2-3-http-api-5xx-alarm-actions-disabled-notification-blocked", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch/check_obs_apigatewayv2_3_http_api_5xx_alarm_actions_disabled_notification_blocked.py", "service": "apigatewayv2__cloudwatch"} {"check_id": "apigatewayv2__cloudwatch.obs-apigatewayv2-3-http-api-5xx-alarm-notifies-sqs-via-sns", "deployments": [], "key": "apigatewayv2__cloudwatch/obs-apigatewayv2-3-http-api-5xx-alarm-notifies-sqs-via-sns", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch/check_obs_apigatewayv2_3_http_api_5xx_alarm_notifies_sqs_via_sns.py", "service": "apigatewayv2__cloudwatch"} {"check_id": "apigatewayv2__cloudwatch__lambda.metrics-elbv2-apigw-http-api-authorizer-forbidden-403-counts-lowercase-4xx-under-apiid", "deployments": [], "key": "apigatewayv2__cloudwatch__lambda/metrics-elbv2-apigw-http-api-authorizer-forbidden-403-counts-lowercase-4xx-under-apiid", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch__lambda/check_metrics_elbv2_apigw_http_api_authorizer_forbidden_403_counts_lowercase_4xx_under_apiid.py", "service": "apigatewayv2__cloudwatch__lambda"} {"check_id": "apigatewayv2__cloudwatch__lambda.obs-apigatewayv2-1-websocket-connect-403-is-client-error-raising-route-execution-error", "deployments": [], "key": "apigatewayv2__cloudwatch__lambda/obs-apigatewayv2-1-websocket-connect-403-is-client-error-raising-route-execution-error", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch__lambda/check_obs_apigatewayv2_1_websocket_connect_403_is_client_error_raising_route_execution_error.py", "service": "apigatewayv2__cloudwatch__lambda"} {"check_id": "apigatewayv2__cloudwatch__lambda.obs-apigatewayv2-1-websocket-detailed-metrics-split-stage-totals-by-route", "deployments": [], "key": "apigatewayv2__cloudwatch__lambda/obs-apigatewayv2-1-websocket-detailed-metrics-split-stage-totals-by-route", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "apigatewayv2:GetStage", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch__lambda/check_obs_apigatewayv2_1_websocket_detailed_metrics_split_stage_totals_by_route.py", "service": "apigatewayv2__cloudwatch__lambda"} {"check_id": "apigatewayv2__cloudwatch__lambda.obs-apigatewayv2-1-websocket-stage-counts-connects-frames-replies-and-pushes", "deployments": [], "key": "apigatewayv2__cloudwatch__lambda/obs-apigatewayv2-1-websocket-stage-counts-connects-frames-replies-and-pushes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetDeployment", "cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cloudwatch__lambda/check_obs_apigatewayv2_1_websocket_stage_counts_connects_frames_replies_and_pushes.py", "service": "apigatewayv2__cloudwatch__lambda"} {"check_id": "apigatewayv2__cognito-idp__lambda.http-api-jwt-authorization-scope-mismatch-not-delivered", "deployments": [], "key": "apigatewayv2__cognito-idp__lambda/http-api-jwt-authorization-scope-mismatch-not-delivered", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cognito-idp__lambda/check_http_api_jwt_authorization_scope_mismatch_not_delivered.py", "service": "apigatewayv2__cognito-idp__lambda"} {"check_id": "apigatewayv2__cognito-idp__lambda.http-api-jwt-authorizer-rejects-foreign-issuer-and-audience", "deployments": [], "key": "apigatewayv2__cognito-idp__lambda/http-api-jwt-authorizer-rejects-foreign-issuer-and-audience", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetAuthorizer", "apigatewayv2:UpdateAuthorizer", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cognito-idp__lambda/check_http_api_jwt_authorizer_rejects_foreign_issuer_and_audience.py", "service": "apigatewayv2__cognito-idp__lambda"} {"check_id": "apigatewayv2__cognito-idp__lambda.jwt-authorizer-claims-reach-the-lambda-event", "deployments": [], "key": "apigatewayv2__cognito-idp__lambda/jwt-authorizer-claims-reach-the-lambda-event", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cognito-idp__lambda/check_jwt_authorizer_claims_reach_the_lambda_event.py", "service": "apigatewayv2__cognito-idp__lambda"} {"check_id": "apigatewayv2__cognito-idp__lambda.jwt-authorizer-expired-token-rejected-never-reaches-lambda", "deployments": [], "key": "apigatewayv2__cognito-idp__lambda/jwt-authorizer-expired-token-rejected-never-reaches-lambda", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__cognito-idp__lambda/check_jwt_authorizer_expired_token_rejected_never_reaches_lambda.py", "service": "apigatewayv2__cognito-idp__lambda"} {"check_id": "apigatewayv2__dynamodb__lambda.deep-apigatewayv2-1-wsroute-body-action-selects-custom-route-else-default", "deployments": [], "key": "apigatewayv2__dynamodb__lambda/deep-apigatewayv2-1-wsroute-body-action-selects-custom-route-else-default", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRoute", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__dynamodb__lambda/check_deep_apigatewayv2_1_wsroute_body_action_selects_custom_route_else_default.py", "service": "apigatewayv2__dynamodb__lambda"} {"check_id": "apigatewayv2__dynamodb__lambda.deep-apigatewayv2-1-wsroute-connect-request-authorizer-deny-refuses-before-integration", "deployments": [], "key": "apigatewayv2__dynamodb__lambda/deep-apigatewayv2-1-wsroute-connect-request-authorizer-deny-refuses-before-integration", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__dynamodb__lambda/check_deep_apigatewayv2_1_wsroute_connect_request_authorizer_deny_refuses_before_integration.py", "service": "apigatewayv2__dynamodb__lambda"} {"check_id": "apigatewayv2__dynamodb__lambda.deep-apigatewayv2-1-wsroute-selection-expression-update-redirects-dispatch", "deployments": [], "key": "apigatewayv2__dynamodb__lambda/deep-apigatewayv2-1-wsroute-selection-expression-update-redirects-dispatch", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:UpdateApi", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__dynamodb__lambda/check_deep_apigatewayv2_1_wsroute_selection_expression_update_redirects_dispatch.py", "service": "apigatewayv2__dynamodb__lambda"} {"check_id": "apigatewayv2__dynamodb__lambda.deep-apigatewayv2-1-wsroute-unmatched-action-without-default-route-not-delivered", "deployments": [], "key": "apigatewayv2__dynamodb__lambda/deep-apigatewayv2-1-wsroute-unmatched-action-without-default-route-not-delivered", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__dynamodb__lambda/check_deep_apigatewayv2_1_wsroute_unmatched_action_without_default_route_not_delivered.py", "service": "apigatewayv2__dynamodb__lambda"} {"check_id": "apigatewayv2__dynamodb__lambda.websocket-api-connect-message-post-back-disconnect", "deployments": [], "key": "apigatewayv2__dynamodb__lambda/websocket-api-connect-message-post-back-disconnect", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__dynamodb__lambda/check_websocket_api_connect_message_post_back_disconnect.py", "service": "apigatewayv2__dynamodb__lambda"} {"check_id": "apigatewayv2__dynamodb__lambda.wsduplex-client-binary-frame-rejected-close-1003", "deployments": [], "key": "apigatewayv2__dynamodb__lambda/wsduplex-client-binary-frame-rejected-close-1003", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__dynamodb__lambda/check_wsduplex_client_binary_frame_rejected_close_1003.py", "service": "apigatewayv2__dynamodb__lambda"} {"check_id": "apigatewayv2__dynamodb__lambda.wsduplex-connect-denial-rejects-handshake", "deployments": [], "key": "apigatewayv2__dynamodb__lambda/wsduplex-connect-denial-rejects-handshake", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__dynamodb__lambda/check_wsduplex_connect_denial_rejects_handshake.py", "service": "apigatewayv2__dynamodb__lambda"} {"check_id": "apigatewayv2__dynamodb__lambda.wsduplex-oversize-client-message-rejected-close-1009", "deployments": [], "key": "apigatewayv2__dynamodb__lambda/wsduplex-oversize-client-message-rejected-close-1009", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__dynamodb__lambda/check_wsduplex_oversize_client_message_rejected_close_1009.py", "service": "apigatewayv2__dynamodb__lambda"} {"check_id": "apigatewayv2__events__sqs.xsvc-apigatewayv2-1-putevents-subtype-routes-to-custom-bus-rule-queue", "deployments": [], "key": "apigatewayv2__events__sqs/xsvc-apigatewayv2-1-putevents-subtype-routes-to-custom-bus-rule-queue", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__events__sqs/check_xsvc_apigatewayv2_1_putevents_subtype_routes_to_custom_bus_rule_queue.py", "service": "apigatewayv2__events__sqs"} {"check_id": "apigatewayv2__events__sqs.xsvc-apigatewayv2-1-putevents-without-events-permission-denied-delivers-nothing", "deployments": [], "key": "apigatewayv2__events__sqs/xsvc-apigatewayv2-1-putevents-without-events-permission-denied-delivers-nothing", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/apigatewayv2__events__sqs/check_xsvc_apigatewayv2_1_putevents_without_events_permission_denied_delivers_nothing.py", "service": "apigatewayv2__events__sqs"} {"check_id": "apigatewayv2__iam__lambda.http-api-head-and-undeclared-method-dispatch-and-forwarded-headers", "deployments": [], "key": "apigatewayv2__iam__lambda/http-api-head-and-undeclared-method-dispatch-and-forwarded-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewayv2__iam__lambda/check_http_api_head_and_undeclared_method_dispatch_and_forwarded_headers.py", "service": "apigatewayv2__iam__lambda"} {"check_id": "apigatewayv2__iam__lambda.http-api-integration-response-passthrough-and-payload-format-multi-value-headers", "deployments": [], "key": "apigatewayv2__iam__lambda/http-api-integration-response-passthrough-and-payload-format-multi-value-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewayv2__iam__lambda/check_http_api_integration_response_passthrough_and_payload_format_multi_value_headers.py", "service": "apigatewayv2__iam__lambda"} {"check_id": "apigatewayv2__iam__lambda.http-api-request-target-decoded-twice-and-normalised-before-route-selection", "deployments": [], "key": "apigatewayv2__iam__lambda/http-api-request-target-decoded-twice-and-normalised-before-route-selection", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewayv2__iam__lambda/check_http_api_request_target_decoded_twice_and_normalised_before_route_selection.py", "service": "apigatewayv2__iam__lambda"} {"check_id": "apigatewayv2__iam__lambda.http-api-route-selection-ladder-method-and-greedy-depth", "deployments": [], "key": "apigatewayv2__iam__lambda/http-api-route-selection-ladder-method-and-greedy-depth", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRoute", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/apigatewayv2__iam__lambda/check_http_api_route_selection_ladder_method_and_greedy_depth.py", "service": "apigatewayv2__iam__lambda"} {"check_id": "apigatewayv2__iam__lambda__logs.lambda-authorizer-payload-format-2-0-iam-policy-response", "deployments": [], "key": "apigatewayv2__iam__lambda__logs/lambda-authorizer-payload-format-2-0-iam-policy-response", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetAuthorizer", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2__iam__lambda__logs/check_lambda_authorizer_payload_format_2_0_iam_policy_response.py", "service": "apigatewayv2__iam__lambda__logs"} {"check_id": "apigatewayv2__iam__lambda__logs.websocket-header-mapping-connect-only", "deployments": [], "key": "apigatewayv2__iam__lambda__logs/websocket-header-mapping-connect-only", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateIntegrationResponse", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/apigatewayv2__iam__lambda__logs/check_websocket_header_mapping_connect_only.py", "service": "apigatewayv2__iam__lambda__logs"} {"check_id": "apigatewayv2__iam__lambda__logs.ws-connect-event-carries-direction-domain-stage-and-handshake-headers", "deployments": [], "key": "apigatewayv2__iam__lambda__logs/ws-connect-event-carries-direction-domain-stage-and-handshake-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/apigatewayv2__iam__lambda__logs/check_ws_connect_event_carries_direction_domain_stage_and_handshake_headers.py", "service": "apigatewayv2__iam__lambda__logs"} {"check_id": "apigatewayv2__iam__lambda__logs__sts.disable-execute-api-endpoint-manual-stage-and-websocket-twin", "deployments": [], "key": "apigatewayv2__iam__lambda__logs__sts/disable-execute-api-endpoint-manual-stage-and-websocket-twin", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetApi", "apigatewayv2:GetDeployment", "apigatewayv2:UpdateApi", "apigatewayv2:UpdateStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__iam__lambda__logs__sts/check_disable_execute_api_endpoint_manual_stage_and_websocket_twin.py", "service": "apigatewayv2__iam__lambda__logs__sts"} {"check_id": "apigatewayv2__kinesis.aws-proxy-subtype-kinesis-putrecord-required-parameters-refused-else-lands-mapped-data-and-key", "deployments": [], "key": "apigatewayv2__kinesis/aws-proxy-subtype-kinesis-putrecord-required-parameters-refused-else-lands-mapped-data-and-key", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards"], "path": "behavioral/apigatewayv2__kinesis/check_aws_proxy_subtype_kinesis_putrecord_required_parameters_refused_else_lands_mapped_data_and_key.py", "service": "apigatewayv2__kinesis"} {"check_id": "apigatewayv2__lambda.http-api-cors-signed-iam-get-granted-unsigned-get-refused", "deployments": [], "key": "apigatewayv2__lambda/http-api-cors-signed-iam-get-granted-unsigned-get-refused", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_http_api_cors_signed_iam_get_granted_unsigned_get_refused.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.http-api-lambda-authorizer-raises-unauthorized-message-rejected-401", "deployments": [], "key": "apigatewayv2__lambda/http-api-lambda-authorizer-raises-unauthorized-message-rejected-401", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_http_api_lambda_authorizer_raises_unauthorized_message_rejected_401.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.http-api-node-esm-handler-shapes-statuscode-headers-body-and-base64-response", "deployments": [], "key": "apigatewayv2__lambda/http-api-node-esm-handler-shapes-statuscode-headers-body-and-base64-response", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/apigatewayv2__lambda/check_http_api_node_esm_handler_shapes_statuscode_headers_body_and_base64_response.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.http-proxy-integration-overwrites-via-and-x-forwarded-for", "deployments": [], "key": "apigatewayv2__lambda/http-proxy-integration-overwrites-via-and-x-forwarded-for", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_http_proxy_integration_overwrites_via_and_x_forwarded_for.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.lambda-proxy-status-keyed-response-mapping-rewrites-500-to-403", "deployments": [], "key": "apigatewayv2__lambda/lambda-proxy-status-keyed-response-mapping-rewrites-500-to-403", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/apigatewayv2__lambda/check_lambda_proxy_status_keyed_response_mapping_rewrites_500_to_403.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.websocket-unmatched-route-goes-to-default-route", "deployments": [], "key": "apigatewayv2__lambda/websocket-unmatched-route-goes-to-default-route", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteRoute", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_websocket_unmatched_route_goes_to_default_route.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.ws-route-model-validation-rejects-invalid-body-serves-valid", "deployments": [], "key": "apigatewayv2__lambda/ws-route-model-validation-rejects-invalid-body-serves-valid", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateModel", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_ws_route_model_validation_rejects_invalid_body_serves_valid.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-2-ws-connect-and-disconnect-routes-fire-their-own-lambdas", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-2-ws-connect-and-disconnect-routes-fire-their-own-lambdas", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_2_ws_connect_and_disconnect_routes_fire_their_own_lambdas.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-2-ws-request-authorizer-allow-passes-context-to-message-routes", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-2-ws-request-authorizer-allow-passes-context-to-message-routes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_2_ws_request_authorizer_allow_passes_context_to_message_routes.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-2-ws-request-authorizer-deny-policy-forbidden-403-handshake", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-2-ws-request-authorizer-deny-policy-forbidden-403-handshake", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_2_ws_request_authorizer_deny_policy_forbidden_403_handshake.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-2-ws-request-authorizer-missing-identity-source-unauthorized-401", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-2-ws-request-authorizer-missing-identity-source-unauthorized-401", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateAuthorizer", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_2_ws_request_authorizer_missing_identity_source_unauthorized_401.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-2-ws-route-selection-dispatches-each-action-to-its-own-lambda", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-2-ws-route-selection-dispatches-each-action-to-its-own-lambda", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_2_ws_route_selection_dispatches_each_action_to_its_own_lambda.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-2-ws-unmatched-action-without-default-route-rejected-with-error-frame", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-2-ws-unmatched-action-without-default-route-rejected-with-error-frame", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateDeployment", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetRoutes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_2_ws_unmatched_action_without_default_route_rejected_with_error_frame.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-3-http-api-integration-timeout-50ms-rejected-503", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-3-http-api-integration-timeout-50ms-rejected-503", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegration", "apigatewayv2:UpdateIntegration", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_3_http_api_integration_timeout_50ms_rejected_503.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-3-http-api-lambda-handler-raises-rejected-500", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-3-http-api-lambda-handler-raises-rejected-500", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_3_http_api_lambda_handler_raises_rejected_500.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-3-http-api-lambda-without-invoke-permission-rejected-500", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-3-http-api-lambda-without-invoke-permission-rejected-500", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_3_http_api_lambda_without_invoke_permission_rejected_500.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-3-http-api-malformed-proxy-response-rejected-500-not-502", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-3-http-api-malformed-proxy-response-rejected-500-not-502", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_3_http_api_malformed_proxy_response_rejected_500_not_502.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-3-websocket-aws-integration-request-template-reaches-lambda", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-3-websocket-aws-integration-request-template-reaches-lambda", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateIntegrationResponse", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:GetIntegration", "apigatewayv2:GetIntegrations", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_3_websocket_aws_integration_request_template_reaches_lambda.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda.xsvc-apigatewayv2-3-websocket-never-passthrough-unmatched-template-rejected", "deployments": [], "key": "apigatewayv2__lambda/xsvc-apigatewayv2-3-websocket-never-passthrough-unmatched-template-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateIntegrationResponse", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:UpdateIntegration", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda/check_xsvc_apigatewayv2_3_websocket_never_passthrough_unmatched_template_rejected.py", "service": "apigatewayv2__lambda"} {"check_id": "apigatewayv2__lambda__logs.access-log-record-joins-the-gateway-request-id", "deployments": [], "key": "apigatewayv2__lambda__logs/access-log-record-joins-the-gateway-request-id", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__lambda__logs/check_access_log_record_joins_the_gateway_request_id.py", "service": "apigatewayv2__lambda__logs"} {"check_id": "apigatewayv2__logs.obs-apigatewayv2-3-websocket-access-log-connect-message-disconnect", "deployments": [], "key": "apigatewayv2__logs/obs-apigatewayv2-3-websocket-access-log-connect-message-disconnect", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount", "apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__logs/check_obs_apigatewayv2_3_websocket_access_log_connect_message_disconnect.py", "service": "apigatewayv2__logs"} {"check_id": "apigatewayv2__logs.obs-apigatewayv2-3-websocket-connect-rejected-logs-connect-only", "deployments": [], "key": "apigatewayv2__logs/obs-apigatewayv2-3-websocket-connect-rejected-logs-connect-only", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetAccount", "apigateway:UpdateAccount", "apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateRouteResponse", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__logs/check_obs_apigatewayv2_3_websocket_connect_rejected_logs_connect_only.py", "service": "apigatewayv2__logs"} {"check_id": "apigatewayv2__sqs.aws-proxy-subtype-sqs-deletemessage-required-parameters-refused-else-deletes-the-message", "deployments": [], "key": "apigatewayv2__sqs/aws-proxy-subtype-sqs-deletemessage-required-parameters-refused-else-deletes-the-message", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/apigatewayv2__sqs/check_aws_proxy_subtype_sqs_deletemessage_required_parameters_refused_else_deletes_the_message.py", "service": "apigatewayv2__sqs"} {"check_id": "apigatewayv2__sqs.aws-proxy-subtype-sqs-purgequeue-required-queueurl-refused-else-empties-the-queue", "deployments": [], "key": "apigatewayv2__sqs/aws-proxy-subtype-sqs-purgequeue-required-queueurl-refused-else-empties-the-queue", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/apigatewayv2__sqs/check_aws_proxy_subtype_sqs_purgequeue_required_queueurl_refused_else_empties_the_queue.py", "service": "apigatewayv2__sqs"} {"check_id": "apigatewayv2__sqs.aws-proxy-subtype-sqs-receivemessage-required-queueurl-refused-else-reads-the-queue", "deployments": [], "key": "apigatewayv2__sqs/aws-proxy-subtype-sqs-receivemessage-required-queueurl-refused-else-reads-the-queue", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/apigatewayv2__sqs/check_aws_proxy_subtype_sqs_receivemessage_required_queueurl_refused_else_reads_the_queue.py", "service": "apigatewayv2__sqs"} {"check_id": "apigatewayv2__sqs.aws-proxy-subtype-sqs-sendmessage-delivers-to-the-queue", "deployments": [], "key": "apigatewayv2__sqs/aws-proxy-subtype-sqs-sendmessage-delivers-to-the-queue", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/apigatewayv2__sqs/check_aws_proxy_subtype_sqs_sendmessage_delivers_to_the_queue.py", "service": "apigatewayv2__sqs"} {"check_id": "apigatewayv2__stepfunctions.aws-proxy-subtype-stepfunctions-stopexecution-required-executionarn-refused-else-aborts-the-run", "deployments": [], "key": "apigatewayv2__stepfunctions/aws-proxy-subtype-stepfunctions-stopexecution-required-executionarn-refused-else-aborts-the-run", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/apigatewayv2__stepfunctions/check_aws_proxy_subtype_stepfunctions_stopexecution_required_executionarn_refused_else_aborts_the_run.py", "service": "apigatewayv2__stepfunctions"} {"check_id": "apigatewayv2__stepfunctions.xsvc-apigatewayv2-1-startexecution-subtype-execution-input-is-the-posted-body", "deployments": [], "key": "apigatewayv2__stepfunctions/xsvc-apigatewayv2-1-startexecution-subtype-execution-input-is-the-posted-body", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__stepfunctions/check_xsvc_apigatewayv2_1_startexecution_subtype_execution_input_is_the_posted_body.py", "service": "apigatewayv2__stepfunctions"} {"check_id": "apigatewayv2__stepfunctions.xsvc-apigatewayv2-1-startexecution-without-states-permission-denied-starts-nothing", "deployments": [], "key": "apigatewayv2__stepfunctions/xsvc-apigatewayv2-1-startexecution-without-states-permission-denied-starts-nothing", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__stepfunctions/check_xsvc_apigatewayv2_1_startexecution_without_states_permission_denied_starts_nothing.py", "service": "apigatewayv2__stepfunctions"} {"check_id": "apigatewayv2__stepfunctions.xsvc-apigatewayv2-1-startsyncexecution-subtype-returns-the-state-machine-output", "deployments": [], "key": "apigatewayv2__stepfunctions/xsvc-apigatewayv2-1-startsyncexecution-subtype-returns-the-state-machine-output", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "apigatewayv2:DeleteStage", "apigatewayv2:GetIntegration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/apigatewayv2__stepfunctions/check_xsvc_apigatewayv2_1_startsyncexecution_subtype_returns_the_state_machine_output.py", "service": "apigatewayv2__stepfunctions"} {"check_id": "appconfig.account-settings-deletion-protection-blocks-delete", "deployments": [], "key": "appconfig/account-settings-deletion-protection-blocks-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetAccountSettings", "appconfig:GetConfiguration", "appconfig:GetConfigurationProfile", "appconfig:GetDeployment", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:UpdateAccountSettings"], "path": "behavioral/appconfig/check_account_settings_deletion_protection_blocks_delete.py", "service": "appconfig"} {"check_id": "appconfig.account-settings-deletion-protection-round-trip", "deployments": [], "key": "appconfig/account-settings-deletion-protection-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:GetAccountSettings", "appconfig:UpdateAccountSettings"], "path": "behavioral/appconfig/check_account_settings_deletion_protection_round_trip.py", "service": "appconfig"} {"check_id": "appconfig.account-settings-get-default-and-update", "deployments": [], "key": "appconfig/account-settings-get-default-and-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:GetAccountSettings", "appconfig:UpdateAccountSettings"], "path": "behavioral/appconfig/check_account_settings_get_default_and_update.py", "service": "appconfig"} {"check_id": "appconfig.account-settings-negative-deletion-protection-window-rejected", "deployments": [], "key": "appconfig/account-settings-negative-deletion-protection-window-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:GetAccountSettings", "appconfig:UpdateAccountSettings"], "path": "behavioral/appconfig/check_account_settings_negative_deletion_protection_window_rejected.py", "service": "appconfig"} {"check_id": "appconfig.account-settings-update-and-get-roundtrip", "deployments": [], "key": "appconfig/account-settings-update-and-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:GetAccountSettings", "appconfig:UpdateAccountSettings"], "path": "behavioral/appconfig/check_account_settings_update_and_get_roundtrip.py", "service": "appconfig"} {"check_id": "appconfig.appconfig-application-cloudformation-behaves", "deployments": [], "key": "appconfig/appconfig-application-cloudformation-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:GetApplication", "appconfig:GetConfigurationProfile", "appconfig:GetEnvironment", "appconfig:ListApplications", "appconfig:ListConfigurationProfiles", "appconfig:ListEnvironments", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appconfig/check_appconfig_application_cloudformation_behaves.py", "service": "appconfig"} {"check_id": "appconfig.application-crud-lifecycle", "deployments": [], "key": "appconfig/application-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:GetApplication", "appconfig:ListApplications", "appconfig:UpdateApplication"], "path": "behavioral/appconfig/check_application_crud_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.application-lifecycle-list-and-delete", "deployments": [], "key": "appconfig/application-lifecycle-list-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:GetApplication", "appconfig:ListApplications", "appconfig:UpdateApplication", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_application_lifecycle_list_and_delete.py", "service": "appconfig"} {"check_id": "appconfig.binary-configuration-served-byte-exact", "deployments": [], "key": "appconfig/binary-configuration-served-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_binary_configuration_served_byte_exact.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-experiment-definition-update-optimistic-lock", "deployments": [], "key": "appconfig/concurrent-experiment-definition-update-optimistic-lock", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:UpdateExperimentDefinition"], "path": "behavioral/appconfig/check_concurrent_experiment_definition_update_optimistic_lock.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-extension-version-optimistic-lock", "deployments": [], "key": "appconfig/concurrent-extension-version-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/appconfig/check_concurrent_extension_version_optimistic_lock.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-hosted-configuration-version-optimistic-lock", "deployments": [], "key": "appconfig/concurrent-hosted-configuration-version-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_concurrent_hosted_configuration_version_optimistic_lock.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-sessions-never-serve-a-torn-document", "deployments": [], "key": "appconfig/concurrent-sessions-never-serve-a-torn-document", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_concurrent_sessions_never_serve_a_torn_document.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-start-experiment-run-conflict", "deployments": [], "key": "appconfig/concurrent-start-experiment-run-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_concurrent_start_experiment_run_conflict.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-start-experiment-run-only-one-succeeds", "deployments": [], "key": "appconfig/concurrent-start-experiment-run-only-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_concurrent_start_experiment_run_only_one_succeeds.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-update-environment-conflict", "deployments": [], "key": "appconfig/concurrent-update-environment-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteEnvironment", "appconfig:GetEnvironment", "appconfig:UpdateEnvironment"], "path": "behavioral/appconfig/check_concurrent_update_environment_conflict.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-update-experiment-definition-optimistic-lock", "deployments": [], "key": "appconfig/concurrent-update-experiment-definition-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "appconfig:UpdateExperimentDefinition"], "path": "behavioral/appconfig/check_concurrent_update_experiment_definition_optimistic_lock.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-update-experiment-run-conflict", "deployments": [], "key": "appconfig/concurrent-update-experiment-run-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "appconfig:UpdateExperimentRun"], "path": "behavioral/appconfig/check_concurrent_update_experiment_run_conflict.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-update-extension-optimistic-lock", "deployments": [], "key": "appconfig/concurrent-update-extension-optimistic-lock", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_concurrent_update_extension_optimistic_lock.py", "service": "appconfig"} {"check_id": "appconfig.concurrent-update-extension-version-last-writer-wins", "deployments": [], "key": "appconfig/concurrent-update-extension-version-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_concurrent_update_extension_version_last_writer_wins.py", "service": "appconfig"} {"check_id": "appconfig.configuration-profile-cross-application-isolation", "deployments": [], "key": "appconfig/configuration-profile-cross-application-isolation", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfigurationProfile", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_configuration_profile_cross_application_isolation.py", "service": "appconfig"} {"check_id": "appconfig.configuration-profile-delete-lifecycle", "deployments": [], "key": "appconfig/configuration-profile-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:GetConfigurationProfile", "appconfig:ListConfigurationProfiles", "appconfig:UpdateConfigurationProfile", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_configuration_profile_delete_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.configuration-profile-hosted-create-and-get", "deployments": [], "key": "appconfig/configuration-profile-hosted-create-and-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfigurationProfile", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_configuration_profile_hosted_create_and_get.py", "service": "appconfig"} {"check_id": "appconfig.configuration-profile-invalid-location-uri-rejected", "deployments": [], "key": "appconfig/configuration-profile-invalid-location-uri-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_configuration_profile_invalid_location_uri_rejected.py", "service": "appconfig"} {"check_id": "appconfig.configuration-profile-update-and-list", "deployments": [], "key": "appconfig/configuration-profile-update-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:GetConfigurationProfile", "appconfig:ListConfigurationProfiles", "appconfig:UpdateConfigurationProfile", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_configuration_profile_update_and_list.py", "service": "appconfig"} {"check_id": "appconfig.configuration-profile-update-fields", "deployments": [], "key": "appconfig/configuration-profile-update-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfigurationProfile", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment", "appconfig:UpdateConfigurationProfile"], "path": "behavioral/appconfig/check_configuration_profile_update_fields.py", "service": "appconfig"} {"check_id": "appconfig.configuration-profile-update-immutable-type-rejected", "deployments": [], "key": "appconfig/configuration-profile-update-immutable-type-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:GetConfigurationProfile", "appconfig:UpdateConfigurationProfile"], "path": "behavioral/appconfig/check_configuration_profile_update_immutable_type_rejected.py", "service": "appconfig"} {"check_id": "appconfig.create-configuration-profile-requires-valid-application", "deployments": [], "key": "appconfig/create-configuration-profile-requires-valid-application", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_create_configuration_profile_requires_valid_application.py", "service": "appconfig"} {"check_id": "appconfig.create-experiment-definition-duplicate-name-conflict-rejected", "deployments": [], "key": "appconfig/create-experiment-definition-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentDefinitions"], "path": "behavioral/appconfig/check_create_experiment_definition_duplicate_name_conflict_rejected.py", "service": "appconfig"} {"check_id": "appconfig.create-experiment-definition-invalid-treatment-percentage-rejected", "deployments": [], "key": "appconfig/create-experiment-definition-invalid-treatment-percentage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentDefinitions"], "path": "behavioral/appconfig/check_create_experiment_definition_invalid_treatment_percentage_rejected.py", "service": "appconfig"} {"check_id": "appconfig.create-experiment-definition-invalid-treatment-rejected", "deployments": [], "key": "appconfig/create-experiment-definition-invalid-treatment-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:ListExperimentDefinitions"], "path": "behavioral/appconfig/check_create_experiment_definition_invalid_treatment_rejected.py", "service": "appconfig"} {"check_id": "appconfig.create-experiment-definition-invalid-treatment-weights-rejected", "deployments": [], "key": "appconfig/create-experiment-definition-invalid-treatment-weights-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentDefinitions"], "path": "behavioral/appconfig/check_create_experiment_definition_invalid_treatment_weights_rejected.py", "service": "appconfig"} {"check_id": "appconfig.create-extension-association-missing-required-parameter-rejected", "deployments": [], "key": "appconfig/create-extension-association-missing-required-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:ListExtensionAssociations", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_create_extension_association_missing_required_parameter_rejected.py", "service": "appconfig"} {"check_id": "appconfig.create-extension-missing-required-parameter-rejected", "deployments": [], "key": "appconfig/create-extension-missing-required-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:ListExtensionAssociations", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_create_extension_missing_required_parameter_rejected.py", "service": "appconfig"} {"check_id": "appconfig.create-extension-version-conflict-rejected", "deployments": [], "key": "appconfig/create-extension-version-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_create_extension_version_conflict_rejected.py", "service": "appconfig"} {"check_id": "appconfig.delete-experiment-definition-with-active-run-conflict-rejected", "deployments": [], "key": "appconfig/delete-experiment-definition-with-active-run-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_delete_experiment_definition_with_active_run_conflict_rejected.py", "service": "appconfig"} {"check_id": "appconfig.delete-experiment-definition-with-active-run-rejected", "deployments": [], "key": "appconfig/delete-experiment-definition-with-active-run-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_delete_experiment_definition_with_active_run_rejected.py", "service": "appconfig"} {"check_id": "appconfig.delete-extension-with-active-association-rejected", "deployments": [], "key": "appconfig/delete-extension-with-active-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_delete_extension_with_active_association_rejected.py", "service": "appconfig"} {"check_id": "appconfig.deletion-protection-control-surface", "deployments": [], "key": "appconfig/deletion-protection-control-surface", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:GetAccountSettings", "appconfig:GetConfigurationProfile", "appconfig:UpdateAccountSettings", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_deletion_protection_control_surface.py", "service": "appconfig"} {"check_id": "appconfig.deploy-appconfig-experiment-via-cloudformation", "deployments": [], "key": "appconfig/deploy-appconfig-experiment-via-cloudformation", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/appconfig/check_deploy_appconfig_experiment_via_cloudformation.py", "service": "appconfig"} {"check_id": "appconfig.deployment-event-log-records-state-transitions", "deployments": [], "key": "appconfig/deployment-event-log-records-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetApplication", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_deployment_event_log_records_state_transitions.py", "service": "appconfig"} {"check_id": "appconfig.deployment-number-is-per-environment-sequence", "deployments": [], "key": "appconfig/deployment-number-is-per-environment-sequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetApplication", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_deployment_number_is_per_environment_sequence.py", "service": "appconfig"} {"check_id": "appconfig.deployment-strategy-crud-lifecycle", "deployments": [], "key": "appconfig/deployment-strategy-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy", "appconfig:UpdateDeploymentStrategy"], "path": "behavioral/appconfig/check_deployment_strategy_crud_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.deployment-strategy-invalid-growth-factor-rejected", "deployments": [], "key": "appconfig/deployment-strategy-invalid-growth-factor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:ListDeploymentStrategies"], "path": "behavioral/appconfig/check_deployment_strategy_invalid_growth_factor_rejected.py", "service": "appconfig"} {"check_id": "appconfig.deployment-strategy-minutes-upper-bound-matrix", "deployments": [], "key": "appconfig/deployment-strategy-minutes-upper-bound-matrix", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy", "appconfig:ListDeploymentStrategies", "appconfig:UpdateDeploymentStrategy"], "path": "behavioral/appconfig/check_deployment_strategy_minutes_upper_bound_matrix.py", "service": "appconfig"} {"check_id": "appconfig.deployment-strategy-update-and-list", "deployments": [], "key": "appconfig/deployment-strategy-update-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy", "appconfig:ListDeploymentStrategies", "appconfig:UpdateDeploymentStrategy"], "path": "behavioral/appconfig/check_deployment_strategy_update_and_list.py", "service": "appconfig"} {"check_id": "appconfig.e2e-experiment-full-flow", "deployments": [], "key": "appconfig/e2e-experiment-full-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:ListExperimentRunEvents", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_e2e_experiment_full_flow.py", "service": "appconfig"} {"check_id": "appconfig.e2e-experiment-full-flow-create-run-observe-teardown", "deployments": [], "key": "appconfig/e2e-experiment-full-flow-create-run-observe-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:ListDeployments", "appconfig:ListExperimentRunEvents", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_e2e_experiment_full_flow_create_run_observe_teardown.py", "service": "appconfig"} {"check_id": "appconfig.e2e-experiment-lifecycle-full-flow", "deployments": [], "key": "appconfig/e2e-experiment-lifecycle-full-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:ListExperimentRunEvents", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_e2e_experiment_lifecycle_full_flow.py", "service": "appconfig"} {"check_id": "appconfig.e2e-extension-association-flow", "deployments": [], "key": "appconfig/e2e-extension-association-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtension", "appconfig:GetExtensionAssociation", "appconfig:ListExtensionAssociations", "appconfig:UpdateExtensionAssociation", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_e2e_extension_association_flow.py", "service": "appconfig"} {"check_id": "appconfig.environment-delete-lifecycle", "deployments": [], "key": "appconfig/environment-delete-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteEnvironment", "appconfig:GetEnvironment", "appconfig:ListEnvironments", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_environment_delete_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.environment-initial-state-ready-for-deployment", "deployments": [], "key": "appconfig/environment-initial-state-ready-for-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_environment_initial_state_ready_for_deployment.py", "service": "appconfig"} {"check_id": "appconfig.environment-update-and-list", "deployments": [], "key": "appconfig/environment-update-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteEnvironment", "appconfig:GetEnvironment", "appconfig:ListEnvironments", "appconfig:UpdateEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_environment_update_and_list.py", "service": "appconfig"} {"check_id": "appconfig.environment-update-fields", "deployments": [], "key": "appconfig/environment-update-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteEnvironment", "appconfig:GetEnvironment", "appconfig:UpdateEnvironment"], "path": "behavioral/appconfig/check_environment_update_fields.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-create-active-delete-lifecycle", "deployments": [], "key": "appconfig/experiment-definition-create-active-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentDefinitions", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_create_active_delete_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-crud-lifecycle", "deployments": [], "key": "appconfig/experiment-definition-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:UpdateExperimentDefinition", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_crud_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-delete-then-get-404", "deployments": [], "key": "appconfig/experiment-definition-delete-then-get-404", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:UpdateExperimentDefinition", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_delete_then_get_404.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-delete-while-running-rejected", "deployments": [], "key": "appconfig/experiment-definition-delete-while-running-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_delete_while_running_rejected.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-delete-with-running-run-conflict-rejected", "deployments": [], "key": "appconfig/experiment-definition-delete-with-running-run-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_delete_with_running_run_conflict_rejected.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-full-lifecycle", "deployments": [], "key": "appconfig/experiment-definition-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentDefinitions", "appconfig:UpdateExperimentDefinition", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_full_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-get-after-delete-not-found", "deployments": [], "key": "appconfig/experiment-definition-get-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentDefinitions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_get_after_delete_not_found.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-invalid-profile-rejected", "deployments": [], "key": "appconfig/experiment-definition-invalid-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentDefinitions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_invalid_profile_rejected.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-lifecycle-create-active-update-delete", "deployments": [], "key": "appconfig/experiment-definition-lifecycle-create-active-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:UpdateExperimentDefinition", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_lifecycle_create_active_update_delete.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-run-observe-events", "deployments": [], "key": "appconfig/experiment-definition-run-observe-events", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_definition_run_observe_events.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-treatment-config-round-trip", "deployments": [], "key": "appconfig/experiment-definition-treatment-config-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetExperimentDefinition"], "path": "behavioral/appconfig/check_experiment_definition_treatment_config_round_trip.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-treatment-payload-round-trip", "deployments": [], "key": "appconfig/experiment-definition-treatment-payload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:StartDeployment"], "path": "behavioral/appconfig/check_experiment_definition_treatment_payload_round_trip.py", "service": "appconfig"} {"check_id": "appconfig.experiment-definition-unicode-name-description-round-trip", "deployments": [], "key": "appconfig/experiment-definition-unicode-name-description-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetExperimentDefinition"], "path": "behavioral/appconfig/check_experiment_definition_unicode_name_description_round_trip.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-cross-application-isolation-rejected", "deployments": [], "key": "appconfig/experiment-run-cross-application-isolation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_experiment_run_cross_application_isolation_rejected.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-event-payload-round-trip", "deployments": [], "key": "appconfig/experiment-run-event-payload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_event_payload_round_trip.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-events-chronological-order", "deployments": [], "key": "appconfig/experiment-run-events-chronological-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:ListExperimentRunEvents", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_events_chronological_order.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-events-chronological-ordering", "deployments": [], "key": "appconfig/experiment-run-events-chronological-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "appconfig:UpdateExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_events_chronological_ordering.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-events-emitted-for-lifecycle-transitions", "deployments": [], "key": "appconfig/experiment-run-events-emitted-for-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_events_emitted_for_lifecycle_transitions.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-events-ordering", "deployments": [], "key": "appconfig/experiment-run-events-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_events_ordering.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-events-recorded-in-order", "deployments": [], "key": "appconfig/experiment-run-events-recorded-in-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_events_recorded_in_order.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-events-server-generated", "deployments": [], "key": "appconfig/experiment-run-events-server-generated", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_events_server_generated.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-full-lifecycle", "deployments": [], "key": "appconfig/experiment-run-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "appconfig:UpdateExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_full_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-lifecycle-start-to-complete", "deployments": [], "key": "appconfig/experiment-run-lifecycle-start-to-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_lifecycle_start_to_complete.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-managed-computation-not-client-controlled", "deployments": [], "key": "appconfig/experiment-run-managed-computation-not-client-controlled", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_managed_computation_not_client_controlled.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-metrics-computed-server-side", "deployments": [], "key": "appconfig/experiment-run-metrics-computed-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_metrics_computed_server_side.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-metrics-unicode-preserved", "deployments": [], "key": "appconfig/experiment-run-metrics-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_metrics_unicode_preserved.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-scheduled-end-time-auto-stop", "deployments": [], "key": "appconfig/experiment-run-scheduled-end-time-auto-stop", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_scheduled_end_time_auto_stop.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-second-stop-rejected", "deployments": [], "key": "appconfig/experiment-run-second-stop-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_second_stop_rejected.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-start-active-complete-lifecycle", "deployments": [], "key": "appconfig/experiment-run-start-active-complete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_start_active_complete_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-start-stop-transitions", "deployments": [], "key": "appconfig/experiment-run-start-stop-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_start_stop_transitions.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-start-to-complete-lifecycle", "deployments": [], "key": "appconfig/experiment-run-start-to-complete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "appconfig:UpdateExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_start_to_complete_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-start-transitions-to-running", "deployments": [], "key": "appconfig/experiment-run-start-transitions-to-running", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetEnvironment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_start_transitions_to_running.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-start-while-running-conflict-rejected", "deployments": [], "key": "appconfig/experiment-run-start-while-running-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_start_while_running_conflict_rejected.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-stop-transitions-and-second-stop-rejected", "deployments": [], "key": "appconfig/experiment-run-stop-transitions-and-second-stop-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_stop_transitions_and_second_stop_rejected.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-stop-transitions-terminal", "deployments": [], "key": "appconfig/experiment-run-stop-transitions-terminal", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_stop_transitions_terminal.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-stop-transitions-to-stopped", "deployments": [], "key": "appconfig/experiment-run-stop-transitions-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetEnvironment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_stop_transitions_to_stopped.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-treatment-assignment-enforced-serverside", "deployments": [], "key": "appconfig/experiment-run-treatment-assignment-enforced-serverside", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_treatment_assignment_enforced_serverside.py", "service": "appconfig"} {"check_id": "appconfig.experiment-run-treatment-weights-numeric-precision-preserved", "deployments": [], "key": "appconfig/experiment-run-treatment-weights-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetDeployment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_experiment_run_treatment_weights_numeric_precision_preserved.py", "service": "appconfig"} {"check_id": "appconfig.exponential-growth-type-advances-in-powers-of-the-growth-factor", "deployments": [], "key": "appconfig/exponential-growth-type-advances-in-powers-of-the-growth-factor", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_exponential_growth_type_advances_in_powers_of_the_growth_factor.py", "service": "appconfig"} {"check_id": "appconfig.extension-action-point-invocation-enforced-server-side", "deployments": [], "key": "appconfig/extension-action-point-invocation-enforced-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetDeployment", "appconfig:StartDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_action_point_invocation_enforced_server_side.py", "service": "appconfig"} {"check_id": "appconfig.extension-association-drives-list-visibility", "deployments": [], "key": "appconfig/extension-association-drives-list-visibility", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:ListExtensionAssociations", "appconfig:ListExtensions", "appconfig:UpdateExtensionAssociation", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_association_drives_list_visibility.py", "service": "appconfig"} {"check_id": "appconfig.extension-association-full-lifecycle-with-list", "deployments": [], "key": "appconfig/extension-association-full-lifecycle-with-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:ListExtensionAssociations", "appconfig:UpdateExtensionAssociation", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_association_full_lifecycle_with_list.py", "service": "appconfig"} {"check_id": "appconfig.extension-association-list-reflects-lifecycle", "deployments": [], "key": "appconfig/extension-association-list-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:ListExtensionAssociations", "appconfig:ListExtensions", "appconfig:UpdateExtensionAssociation", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_association_list_reflects_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.extension-association-update-and-list-reflects-latest-parameters", "deployments": [], "key": "appconfig/extension-association-update-and-list-reflects-latest-parameters", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:UpdateExtensionAssociation", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_association_update_and_list_reflects_latest_parameters.py", "service": "appconfig"} {"check_id": "appconfig.extension-association-update-fields-and-not-found", "deployments": [], "key": "appconfig/extension-association-update-fields-and-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:UpdateExtensionAssociation", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_association_update_fields_and_not_found.py", "service": "appconfig"} {"check_id": "appconfig.extension-create-and-association-lifecycle", "deployments": [], "key": "appconfig/extension-create-and-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_create_and_association_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.extension-duplicate-name-conflict-rejected", "deployments": [], "key": "appconfig/extension-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:ListExtensions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_duplicate_name_conflict_rejected.py", "service": "appconfig"} {"check_id": "appconfig.extension-full-lifecycle-with-list", "deployments": [], "key": "appconfig/extension-full-lifecycle-with-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:ListExtensions", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_full_lifecycle_with_list.py", "service": "appconfig"} {"check_id": "appconfig.extension-required-parameter-enforced-at-association", "deployments": [], "key": "appconfig/extension-required-parameter-enforced-at-association", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtension", "appconfig:GetExtensionAssociation", "appconfig:ListExtensionAssociations", "appconfig:ListExtensions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_required_parameter_enforced_at_association.py", "service": "appconfig"} {"check_id": "appconfig.extension-update-fields-persist", "deployments": [], "key": "appconfig/extension-update-fields-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_update_fields_persist.py", "service": "appconfig"} {"check_id": "appconfig.extension-update-server-side-version-increment", "deployments": [], "key": "appconfig/extension-update-server-side-version-increment", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_extension_update_server_side_version_increment.py", "service": "appconfig"} {"check_id": "appconfig.feature-flag-attribute-constraints-bound-deployed-values", "deployments": [], "key": "appconfig/feature-flag-attribute-constraints-bound-deployed-values", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_feature_flag_attribute_constraints_bound_deployed_values.py", "service": "appconfig"} {"check_id": "appconfig.feature-flag-profile-serves-resolved-flag-document", "deployments": [], "key": "appconfig/feature-flag-profile-serves-resolved-flag-document", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_feature_flag_profile_serves_resolved_flag_document.py", "service": "appconfig"} {"check_id": "appconfig.feature-flags-profile-enforces-flag-schema", "deployments": [], "key": "appconfig/feature-flags-profile-enforces-flag-schema", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfigurationProfile", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_feature_flags_profile_enforces_flag_schema.py", "service": "appconfig"} {"check_id": "appconfig.final-bake-time-window-holds-the-deployment-non-terminal", "deployments": [], "key": "appconfig/final-bake-time-window-holds-the-deployment-non-terminal", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetDeploymentStrategy", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_final_bake_time_window_holds_the_deployment_non_terminal.py", "service": "appconfig"} {"check_id": "appconfig.get-configuration-nonexistent-profile-not-found", "deployments": [], "key": "appconfig/get-configuration-nonexistent-profile-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfiguration", "appconfig:GetDeployment", "appconfig:StartDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_get_configuration_nonexistent_profile_not_found.py", "service": "appconfig"} {"check_id": "appconfig.get-experiment-definition-not-found", "deployments": [], "key": "appconfig/get-experiment-definition-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_get_experiment_definition_not_found.py", "service": "appconfig"} {"check_id": "appconfig.get-experiment-definition-not-found-returns-resourcenotfound", "deployments": [], "key": "appconfig/get-experiment-definition-not-found-returns-resourcenotfound", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetExperimentDefinition", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_get_experiment_definition_not_found_returns_resourcenotfound.py", "service": "appconfig"} {"check_id": "appconfig.get-experiment-run-invalid-id-not-found", "deployments": [], "key": "appconfig/get-experiment-run-invalid-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_get_experiment_run_invalid_id_not_found.py", "service": "appconfig"} {"check_id": "appconfig.get-experiment-run-nonexistent-rejected", "deployments": [], "key": "appconfig/get-experiment-run-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_get_experiment_run_nonexistent_rejected.py", "service": "appconfig"} {"check_id": "appconfig.get-experiment-run-not-found", "deployments": [], "key": "appconfig/get-experiment-run-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_get_experiment_run_not_found.py", "service": "appconfig"} {"check_id": "appconfig.get-experiment-run-not-found-returns-resourcenotfound", "deployments": [], "key": "appconfig/get-experiment-run-not-found-returns-resourcenotfound", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_get_experiment_run_not_found_returns_resourcenotfound.py", "service": "appconfig"} {"check_id": "appconfig.get-latest-configuration-returns-empty-when-unchanged", "deployments": [], "key": "appconfig/get-latest-configuration-returns-empty-when-unchanged", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_get_latest_configuration_returns_empty_when_unchanged.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-concurrent-creates-unique-versions", "deployments": [], "key": "appconfig/hosted-configuration-version-concurrent-creates-unique-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteHostedConfigurationVersion", "appconfig:ListHostedConfigurationVersions"], "path": "behavioral/appconfig/check_hosted_configuration_version_concurrent_creates_unique_versions.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-content-roundtrip", "deployments": [], "key": "appconfig/hosted-configuration-version-content-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_hosted_configuration_version_content_roundtrip.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-delete-lifecycle", "deployments": [], "key": "appconfig/hosted-configuration-version-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_hosted_configuration_version_delete_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-json-schema-validator-rejects-invalid-content", "deployments": [], "key": "appconfig/hosted-configuration-version-json-schema-validator-rejects-invalid-content", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfigurationProfile", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListDeployments", "appconfig:StartDeployment"], "path": "behavioral/appconfig/check_hosted_configuration_version_json_schema_validator_rejects_invalid_content.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-list-and-get", "deployments": [], "key": "appconfig/hosted-configuration-version-list-and-get", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetHostedConfigurationVersion", "appconfig:ListHostedConfigurationVersions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_hosted_configuration_version_list_and_get.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-list-order-and-pagination", "deployments": [], "key": "appconfig/hosted-configuration-version-list-order-and-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_hosted_configuration_version_list_order_and_pagination.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-numeric-version-label-rejected", "deployments": [], "key": "appconfig/hosted-configuration-version-numeric-version-label-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_hosted_configuration_version_numeric_version_label_rejected.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-payload-too-large-rejected", "deployments": [], "key": "appconfig/hosted-configuration-version-payload-too-large-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_hosted_configuration_version_payload_too_large_rejected.py", "service": "appconfig"} {"check_id": "appconfig.hosted-configuration-version-versioning-and-stale-conflict", "deployments": [], "key": "appconfig/hosted-configuration-version-versioning-and-stale-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_hosted_configuration_version_versioning_and_stale_conflict.py", "service": "appconfig"} {"check_id": "appconfig.in-flight-deployment-does-not-block-leaf-deletion", "deployments": [], "key": "appconfig/in-flight-deployment-does-not-block-leaf-deletion", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetApplication", "appconfig:GetConfigurationProfile", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_in_flight_deployment_does_not_block_leaf_deletion.py", "service": "appconfig"} {"check_id": "appconfig.json-schema-validator-added-later-blocks-deploying-a-stored-version", "deployments": [], "key": "appconfig/json-schema-validator-added-later-blocks-deploying-a-stored-version", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfigurationProfile", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfig:UpdateConfigurationProfile", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_json_schema_validator_added_later_blocks_deploying_a_stored_version.py", "service": "appconfig"} {"check_id": "appconfig.linear-rollout-serves-both-versions-across-sessions", "deployments": [], "key": "appconfig/linear-rollout-serves-both-versions-across-sessions", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_linear_rollout_serves_both_versions_across_sessions.py", "service": "appconfig"} {"check_id": "appconfig.list-applications-pagination-and-contents", "deployments": [], "key": "appconfig/list-applications-pagination-and-contents", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:ListApplications"], "path": "behavioral/appconfig/check_list_applications_pagination_and_contents.py", "service": "appconfig"} {"check_id": "appconfig.list-applications-pagination-stable-order", "deployments": [], "key": "appconfig/list-applications-pagination-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:ListApplications"], "path": "behavioral/appconfig/check_list_applications_pagination_stable_order.py", "service": "appconfig"} {"check_id": "appconfig.list-applications-reflects-create-and-delete", "deployments": [], "key": "appconfig/list-applications-reflects-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:GetApplication", "appconfig:UpdateApplication", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_applications_reflects_create_and_delete.py", "service": "appconfig"} {"check_id": "appconfig.list-applications-reflects-created-applications", "deployments": [], "key": "appconfig/list-applications-reflects-created-applications", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:GetApplication", "appconfig:ListApplications", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_applications_reflects_created_applications.py", "service": "appconfig"} {"check_id": "appconfig.list-applications-reflects-created-set", "deployments": [], "key": "appconfig/list-applications-reflects-created-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:GetApplication", "appconfig:ListApplications", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_applications_reflects_created_set.py", "service": "appconfig"} {"check_id": "appconfig.list-deployments-returns-descending-order", "deployments": [], "key": "appconfig/list-deployments-returns-descending-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListDeployments", "appconfig:StartDeployment"], "path": "behavioral/appconfig/check_list_deployments_returns_descending_order.py", "service": "appconfig"} {"check_id": "appconfig.list-experiment-definitions-and-runs-reflect-state", "deployments": [], "key": "appconfig/list-experiment-definitions-and-runs-reflect-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentDefinitions", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_list_experiment_definitions_and_runs_reflect_state.py", "service": "appconfig"} {"check_id": "appconfig.list-experiment-definitions-invalid-application-id-rejected", "deployments": [], "key": "appconfig/list-experiment-definitions-invalid-application-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:ListExperimentDefinitions"], "path": "behavioral/appconfig/check_list_experiment_definitions_invalid_application_id_rejected.py", "service": "appconfig"} {"check_id": "appconfig.list-experiment-definitions-reflects-lifecycle", "deployments": [], "key": "appconfig/list-experiment-definitions-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:ListExperimentDefinitions"], "path": "behavioral/appconfig/check_list_experiment_definitions_reflects_lifecycle.py", "service": "appconfig"} {"check_id": "appconfig.list-experiment-definitions-scoped-to-application", "deployments": [], "key": "appconfig/list-experiment-definitions-scoped-to-application", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:ListExperimentDefinitions"], "path": "behavioral/appconfig/check_list_experiment_definitions_scoped_to_application.py", "service": "appconfig"} {"check_id": "appconfig.list-experiment-run-events-chronological-order", "deployments": [], "key": "appconfig/list-experiment-run-events-chronological-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_list_experiment_run_events_chronological_order.py", "service": "appconfig"} {"check_id": "appconfig.list-experiment-run-events-nonexistent-run-rejected", "deployments": [], "key": "appconfig/list-experiment-run-events-nonexistent-run-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRunEvents", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_experiment_run_events_nonexistent_run_rejected.py", "service": "appconfig"} {"check_id": "appconfig.list-experiment-runs-ordered-by-start-time", "deployments": [], "key": "appconfig/list-experiment-runs-ordered-by-start-time", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_list_experiment_runs_ordered_by_start_time.py", "service": "appconfig"} {"check_id": "appconfig.list-experiment-runs-reflects-history", "deployments": [], "key": "appconfig/list-experiment-runs-reflects-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_list_experiment_runs_reflects_history.py", "service": "appconfig"} {"check_id": "appconfig.list-extension-associations-filtered-by-resource", "deployments": [], "key": "appconfig/list-extension-associations-filtered-by-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:ListExtensionAssociations", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_extension_associations_filtered_by_resource.py", "service": "appconfig"} {"check_id": "appconfig.list-extension-associations-reflects-created-associations", "deployments": [], "key": "appconfig/list-extension-associations-reflects-created-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:ListExtensionAssociations", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_extension_associations_reflects_created_associations.py", "service": "appconfig"} {"check_id": "appconfig.list-extensions-includes-created", "deployments": [], "key": "appconfig/list-extensions-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:ListExtensions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_extensions_includes_created.py", "service": "appconfig"} {"check_id": "appconfig.list-extensions-includes-created-extension", "deployments": [], "key": "appconfig/list-extensions-includes-created-extension", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_extensions_includes_created_extension.py", "service": "appconfig"} {"check_id": "appconfig.list-extensions-malformed-token-rejected", "deployments": [], "key": "appconfig/list-extensions-malformed-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:ListExtensions"], "path": "behavioral/appconfig/check_list_extensions_malformed_token_rejected.py", "service": "appconfig"} {"check_id": "appconfig.list-extensions-pagination-consistent-order", "deployments": [], "key": "appconfig/list-extensions-pagination-consistent-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:ListExtensions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_list_extensions_pagination_consistent_order.py", "service": "appconfig"} {"check_id": "appconfig.next-poll-token-before-minimum-interval-rejected", "deployments": [], "key": "appconfig/next-poll-token-before-minimum-interval-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_next_poll_token_before_minimum_interval_rejected.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-createDeploymentStrategy", "deployments": [], "key": "appconfig/op-contract-createDeploymentStrategy", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy", "appconfig:ListDeploymentStrategies"], "path": "behavioral/appconfig/check_op_contract_create_deployment_strategy.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-createHostedConfigurationVersion", "deployments": [], "key": "appconfig/op-contract-createHostedConfigurationVersion", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteHostedConfigurationVersion", "appconfig:ListHostedConfigurationVersions"], "path": "behavioral/appconfig/check_op_contract_create_hosted_configuration_version.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-deleteConfigurationProfile", "deployments": [], "key": "appconfig/op-contract-deleteConfigurationProfile", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:GetConfigurationProfile", "appconfig:ListConfigurationProfiles", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_delete_configuration_profile.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-deleteDeploymentStrategy", "deployments": [], "key": "appconfig/op-contract-deleteDeploymentStrategy", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy", "appconfig:ListDeploymentStrategies"], "path": "behavioral/appconfig/check_op_contract_delete_deployment_strategy.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-deleteEnvironment", "deployments": [], "key": "appconfig/op-contract-deleteEnvironment", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteEnvironment", "appconfig:GetEnvironment", "appconfig:ListEnvironments", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_delete_environment.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-deleteExtensionAssociation", "deployments": [], "key": "appconfig/op-contract-deleteExtensionAssociation", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:ListExtensionAssociations", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_delete_extension_association.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-deleteHostedConfigurationVersion", "deployments": [], "key": "appconfig/op-contract-deleteHostedConfigurationVersion", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetHostedConfigurationVersion", "appconfig:ListHostedConfigurationVersions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_delete_hosted_configuration_version.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-getApplication", "deployments": [], "key": "appconfig/op-contract-getApplication", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:GetApplication", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_get_application.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-getConfiguration", "deployments": [], "key": "appconfig/op-contract-getConfiguration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfiguration", "appconfig:GetDeployment", "appconfig:StartDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_get_configuration.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-getDeployment", "deployments": [], "key": "appconfig/op-contract-getDeployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_get_deployment.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-getDeploymentStrategy", "deployments": [], "key": "appconfig/op-contract-getDeploymentStrategy", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy"], "path": "behavioral/appconfig/check_op_contract_get_deployment_strategy.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-getHostedConfigurationVersion", "deployments": [], "key": "appconfig/op-contract-getHostedConfigurationVersion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetHostedConfigurationVersion", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_get_hosted_configuration_version.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-listConfigurationProfiles", "deployments": [], "key": "appconfig/op-contract-listConfigurationProfiles", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:ListConfigurationProfiles", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_list_configuration_profiles.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-listDeploymentStrategies", "deployments": [], "key": "appconfig/op-contract-listDeploymentStrategies", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy", "appconfig:ListDeploymentStrategies", "appconfig:UpdateDeploymentStrategy"], "path": "behavioral/appconfig/check_op_contract_list_deployment_strategies.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-listDeployments", "deployments": [], "key": "appconfig/op-contract-listDeployments", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListDeployments", "appconfig:StartDeployment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_list_deployments.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-listEnvironments", "deployments": [], "key": "appconfig/op-contract-listEnvironments", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteEnvironment", "appconfig:ListEnvironments", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_list_environments.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-listHostedConfigurationVersions", "deployments": [], "key": "appconfig/op-contract-listHostedConfigurationVersions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetHostedConfigurationVersion", "appconfig:ListHostedConfigurationVersions", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_list_hosted_configuration_versions.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-listTagsForResource", "deployments": [], "key": "appconfig/op-contract-listTagsForResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:ListTagsForResource", "appconfig:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_list_tags_for_resource.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-startDeployment", "deployments": [], "key": "appconfig/op-contract-startDeployment", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListDeployments", "appconfig:StartDeployment", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_op_contract_start_deployment.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-stopDeployment", "deployments": [], "key": "appconfig/op-contract-stopDeployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_op_contract_stop_deployment.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-tagResource", "deployments": [], "key": "appconfig/op-contract-tagResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:ListTagsForResource", "appconfig:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_tag_resource.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-untagResource", "deployments": [], "key": "appconfig/op-contract-untagResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:ListTagsForResource", "appconfig:TagResource", "appconfig:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_untag_resource.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-updateApplication", "deployments": [], "key": "appconfig/op-contract-updateApplication", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:GetApplication", "appconfig:UpdateApplication", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_op_contract_update_application.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-updateDeploymentStrategy", "deployments": [], "key": "appconfig/op-contract-updateDeploymentStrategy", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy", "appconfig:UpdateDeploymentStrategy"], "path": "behavioral/appconfig/check_op_contract_update_deployment_strategy.py", "service": "appconfig"} {"check_id": "appconfig.op-contract-validateConfiguration", "deployments": [], "key": "appconfig/op-contract-validateConfiguration", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteHostedConfigurationVersion", "appconfig:ValidateConfiguration"], "path": "behavioral/appconfig/check_op_contract_validate_configuration.py", "service": "appconfig"} {"check_id": "appconfig.predefined-deployment-strategy-catalogue", "deployments": [], "key": "appconfig/predefined-deployment-strategy-catalogue", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateDeploymentStrategy", "appconfig:DeleteDeploymentStrategy", "appconfig:GetDeploymentStrategy", "appconfig:ListDeploymentStrategies", "appconfig:UpdateDeploymentStrategy"], "path": "behavioral/appconfig/check_predefined_deployment_strategy_catalogue.py", "service": "appconfig"} {"check_id": "appconfig.session-against-deleted-environment-rejected", "deployments": [], "key": "appconfig/session-against-deleted-environment-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_session_against_deleted_environment_rejected.py", "service": "appconfig"} {"check_id": "appconfig.start-deployment-concurrent-only-one-succeeds", "deployments": [], "key": "appconfig/start-deployment-concurrent-only-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_start_deployment_concurrent_only_one_succeeds.py", "service": "appconfig"} {"check_id": "appconfig.start-deployment-conflict-while-in-progress", "deployments": [], "key": "appconfig/start-deployment-conflict-while-in-progress", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_start_deployment_conflict_while_in_progress.py", "service": "appconfig"} {"check_id": "appconfig.start-deployment-full-lifecycle-to-complete", "deployments": [], "key": "appconfig/start-deployment-full-lifecycle-to-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetApplication", "appconfig:GetDeployment", "appconfig:GetDeploymentStrategy", "appconfig:GetEnvironment", "appconfig:ListApplications", "appconfig:ListConfigurationProfiles", "appconfig:ListDeploymentStrategies", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfig:UpdateDeploymentStrategy", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_start_deployment_full_lifecycle_to_complete.py", "service": "appconfig"} {"check_id": "appconfig.start-deployment-latest-deployment-number-is-not-enforced", "deployments": [], "key": "appconfig/start-deployment-latest-deployment-number-is-not-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_start_deployment_latest_deployment_number_is_not_enforced.py", "service": "appconfig"} {"check_id": "appconfig.start-experiment-run-concurrent-only-one-succeeds", "deployments": [], "key": "appconfig/start-experiment-run-concurrent-only-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_start_experiment_run_concurrent_only_one_succeeds.py", "service": "appconfig"} {"check_id": "appconfig.start-experiment-run-conflict-while-already-running", "deployments": [], "key": "appconfig/start-experiment-run-conflict-while-already-running", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_start_experiment_run_conflict_while_already_running.py", "service": "appconfig"} {"check_id": "appconfig.start-experiment-run-invalid-definition-id-rejected", "deployments": [], "key": "appconfig/start-experiment-run-invalid-definition-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_start_experiment_run_invalid_definition_id_rejected.py", "service": "appconfig"} {"check_id": "appconfig.start-experiment-run-invalid-definition-rejected", "deployments": [], "key": "appconfig/start-experiment-run-invalid-definition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_start_experiment_run_invalid_definition_rejected.py", "service": "appconfig"} {"check_id": "appconfig.start-experiment-run-invalid-treatment-allocation-rejected", "deployments": [], "key": "appconfig/start-experiment-run-invalid-treatment-allocation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetExperimentDefinition", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_start_experiment_run_invalid_treatment_allocation_rejected.py", "service": "appconfig"} {"check_id": "appconfig.start-experiment-run-nonexistent-definition-rejected", "deployments": [], "key": "appconfig/start-experiment-run-nonexistent-definition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:GetExperimentDefinition", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_start_experiment_run_nonexistent_definition_rejected.py", "service": "appconfig"} {"check_id": "appconfig.start-experiment-run-on-deleted-definition-rejected", "deployments": [], "key": "appconfig/start-experiment-run-on-deleted-definition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_start_experiment_run_on_deleted_definition_rejected.py", "service": "appconfig"} {"check_id": "appconfig.stop-already-stopped-experiment-run-conflict", "deployments": [], "key": "appconfig/stop-already-stopped-experiment-run-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_stop_already_stopped_experiment_run_conflict.py", "service": "appconfig"} {"check_id": "appconfig.stop-deployment-allow-revert-reverts-completed-deployment", "deployments": [], "key": "appconfig/stop-deployment-allow-revert-reverts-completed-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetApplication", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_stop_deployment_allow_revert_reverts_completed_deployment.py", "service": "appconfig"} {"check_id": "appconfig.stop-deployment-during-bake-reverts-to-the-previous-version", "deployments": [], "key": "appconfig/stop-deployment-during-bake-reverts-to-the-previous-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_stop_deployment_during_bake_reverts_to_the_previous_version.py", "service": "appconfig"} {"check_id": "appconfig.stop-deployment-mid-rollout-reverts-every-session", "deployments": [], "key": "appconfig/stop-deployment-mid-rollout-reverts-every-session", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfig/check_stop_deployment_mid_rollout_reverts_every_session.py", "service": "appconfig"} {"check_id": "appconfig.stop-deployment-then-list-deployments-state", "deployments": [], "key": "appconfig/stop-deployment-then-list-deployments-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListDeployments", "appconfig:StartDeployment", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_stop_deployment_then_list_deployments_state.py", "service": "appconfig"} {"check_id": "appconfig.stop-deployment-transitions-and-rejects-second-stop", "deployments": [], "key": "appconfig/stop-deployment-transitions-and-rejects-second-stop", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment"], "path": "behavioral/appconfig/check_stop_deployment_transitions_and_rejects_second_stop.py", "service": "appconfig"} {"check_id": "appconfig.stop-experiment-run-conflict-when-not-running", "deployments": [], "key": "appconfig/stop-experiment-run-conflict-when-not-running", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_stop_experiment_run_conflict_when_not_running.py", "service": "appconfig"} {"check_id": "appconfig.stop-experiment-run-double-stop-conflict", "deployments": [], "key": "appconfig/stop-experiment-run-double-stop-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetExperimentRun", "appconfig:ListExperimentRuns", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_stop_experiment_run_double_stop_conflict.py", "service": "appconfig"} {"check_id": "appconfig.stop-experiment-run-not-started-rejected", "deployments": [], "key": "appconfig/stop-experiment-run-not-started-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun"], "path": "behavioral/appconfig/check_stop_experiment_run_not_started_rejected.py", "service": "appconfig"} {"check_id": "appconfig.tag-resource-invalid-arn-rejected", "deployments": [], "key": "appconfig/tag-resource-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:ListTagsForResource", "appconfig:TagResource", "appconfig:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_tag_resource_invalid_arn_rejected.py", "service": "appconfig"} {"check_id": "appconfig.tag-resource-list-and-untag", "deployments": [], "key": "appconfig/tag-resource-list-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:DeleteApplication", "appconfig:ListTagsForResource", "appconfig:TagResource", "appconfig:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_tag_resource_list_and_untag.py", "service": "appconfig"} {"check_id": "appconfig.update-account-settings-invalid-value-rejected", "deployments": [], "key": "appconfig/update-account-settings-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:GetAccountSettings", "appconfig:UpdateAccountSettings"], "path": "behavioral/appconfig/check_update_account_settings_invalid_value_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-configuration-profile-modifies-validators-and-persists", "deployments": [], "key": "appconfig/update-configuration-profile-modifies-validators-and-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:GetConfigurationProfile", "appconfig:UpdateConfigurationProfile"], "path": "behavioral/appconfig/check_update_configuration_profile_modifies_validators_and_persists.py", "service": "appconfig"} {"check_id": "appconfig.update-environment-state-and-monitors-persist", "deployments": [], "key": "appconfig/update-environment-state-and-monitors-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteEnvironment", "appconfig:GetEnvironment", "appconfig:UpdateEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_environment_state_and_monitors_persist.py", "service": "appconfig"} {"check_id": "appconfig.update-experiment-definition-after-delete-rejected", "deployments": [], "key": "appconfig/update-experiment-definition-after-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:UpdateExperimentDefinition"], "path": "behavioral/appconfig/check_update_experiment_definition_after_delete_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-experiment-definition-invalid-schedule-rejected", "deployments": [], "key": "appconfig/update-experiment-definition-invalid-schedule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetExperimentDefinition", "appconfig:UpdateExperimentDefinition"], "path": "behavioral/appconfig/check_update_experiment_definition_invalid_schedule_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-experiment-definition-invalid-treatment-rejected", "deployments": [], "key": "appconfig/update-experiment-definition-invalid-treatment-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:GetExperimentDefinition", "appconfig:UpdateExperimentDefinition"], "path": "behavioral/appconfig/check_update_experiment_definition_invalid_treatment_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-experiment-definition-while-running-rejected", "deployments": [], "key": "appconfig/update-experiment-definition-while-running-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:GetExperimentDefinition", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "appconfig:UpdateExperimentDefinition"], "path": "behavioral/appconfig/check_update_experiment_definition_while_running_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-experiment-run-invalid-state-transition-rejected", "deployments": [], "key": "appconfig/update-experiment-run-invalid-state-transition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "appconfig:UpdateExperimentRun"], "path": "behavioral/appconfig/check_update_experiment_run_invalid_state_transition_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-experiment-run-malformed-input-rejected", "deployments": [], "key": "appconfig/update-experiment-run-malformed-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExperimentDefinition", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExperimentDefinition", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetExperimentRun", "appconfig:StartDeployment", "appconfig:StartExperimentRun", "appconfig:StopExperimentRun", "appconfig:UpdateExperimentRun"], "path": "behavioral/appconfig/check_update_experiment_run_malformed_input_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-association-change-extension-identifier-rejected", "deployments": [], "key": "appconfig/update-extension-association-change-extension-identifier-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:UpdateExtensionAssociation", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_association_change_extension_identifier_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-association-nonexistent-rejected", "deployments": [], "key": "appconfig/update-extension-association-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:ListExtensionAssociations", "appconfig:UpdateExtensionAssociation", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_association_nonexistent_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-association-nonexistent-resource-rejected", "deployments": [], "key": "appconfig/update-extension-association-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:UpdateExtensionAssociation", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_association_nonexistent_resource_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-association-wrong-resource-type-rejected", "deployments": [], "key": "appconfig/update-extension-association-wrong-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:DeleteApplication", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:GetExtensionAssociation", "appconfig:UpdateExtensionAssociation", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_association_wrong_resource_type_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-description-length-exceeded-rejected", "deployments": [], "key": "appconfig/update-extension-description-length-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_description_length_exceeded_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-invalid-parameter-schema-rejected", "deployments": [], "key": "appconfig/update-extension-invalid-parameter-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_invalid_parameter_schema_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-parameter-schema-enforced-server-side", "deployments": [], "key": "appconfig/update-extension-parameter-schema-enforced-server-side", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_parameter_schema_enforced_server_side.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-stale-version-conflict-rejected", "deployments": [], "key": "appconfig/update-extension-stale-version-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_stale_version_conflict_rejected.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-version-increments-and-is-gettable", "deployments": [], "key": "appconfig/update-extension-version-increments-and-is-gettable", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sts:GetCallerIdentity"], "path": "behavioral/appconfig/check_update_extension_version_increments_and_is_gettable.py", "service": "appconfig"} {"check_id": "appconfig.update-extension-version-increments-on-change", "deployments": [], "key": "appconfig/update-extension-version-increments-on-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:CreateExtension", "appconfig:DeleteExtension", "appconfig:GetExtension", "appconfig:UpdateExtension", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/appconfig/check_update_extension_version_increments_on_change.py", "service": "appconfig"} {"check_id": "appconfig.validate-configuration-invalid-json-rejected", "deployments": [], "key": "appconfig/validate-configuration-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteHostedConfigurationVersion", "appconfig:ValidateConfiguration"], "path": "behavioral/appconfig/check_validate_configuration_invalid_json_rejected.py", "service": "appconfig"} {"check_id": "appconfig.validate-configuration-schema", "deployments": [], "key": "appconfig/validate-configuration-schema", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StopDeployment", "appconfig:ValidateConfiguration"], "path": "behavioral/appconfig/check_validate_configuration_schema.py", "service": "appconfig"} {"check_id": "appconfig__cloudformation.deploy-cfn-appconfig-application-name-too-long-rejected", "deployments": [], "key": "appconfig__cloudformation/deploy-cfn-appconfig-application-name-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appconfig:GetApplication", "appconfig:ListApplications", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/appconfig__cloudformation/check_deploy_cfn_appconfig_application_name_too_long_rejected.py", "service": "appconfig__cloudformation"} {"check_id": "appconfig__cloudformation.deploy-cfn-appconfig-application-resource-lifecycle", "deployments": [], "key": "appconfig__cloudformation/deploy-cfn-appconfig-application-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appconfig:GetApplication", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appconfig__cloudformation/check_deploy_cfn_appconfig_application_resource_lifecycle.py", "service": "appconfig__cloudformation"} {"check_id": "appconfig__cloudwatch.alarm-monitor-role-not-assumable-deployment-rejected", "deployments": [], "key": "appconfig__cloudwatch/alarm-monitor-role-not-assumable-deployment-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appconfig__cloudwatch/check_alarm_monitor_role_not_assumable_deployment_rejected.py", "service": "appconfig__cloudwatch"} {"check_id": "appconfig__cloudwatch.cloudwatch-alarm-rollback-restores-previous-version", "deployments": [], "key": "appconfig__cloudwatch/cloudwatch-alarm-rollback-restores-previous-version", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetDeploymentStrategy", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appconfig__cloudwatch/check_cloudwatch_alarm_rollback_restores_previous_version.py", "service": "appconfig__cloudwatch"} {"check_id": "appconfig__lambda.at-deployment-tick-directive-rollback-reverts-the-deployment", "deployments": [], "key": "appconfig__lambda/at-deployment-tick-directive-rollback-reverts-the-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/appconfig__lambda/check_at_deployment_tick_directive_rollback_reverts_the_deployment.py", "service": "appconfig__lambda"} {"check_id": "appconfig__lambda.extension-action-point-invokes-lambda-during-deployment", "deployments": [], "key": "appconfig__lambda/extension-action-point-invokes-lambda-during-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/appconfig__lambda/check_extension_action_point_invokes_lambda_during_deployment.py", "service": "appconfig__lambda"} {"check_id": "appconfig__lambda.pre-create-hosted-configuration-version-extension-transforms-stored-content", "deployments": [], "key": "appconfig__lambda/pre-create-hosted-configuration-version-extension-transforms-stored-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExtension", "appconfig:CreateExtensionAssociation", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExtension", "appconfig:DeleteExtensionAssociation", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetExtensionAssociation", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/appconfig__lambda/check_pre_create_hosted_configuration_version_extension_transforms_stored_content.py", "service": "appconfig__lambda"} {"check_id": "appconfig__lambda.validator-lambda-rejects-noncompliant-content-rejected", "deployments": [], "key": "appconfig__lambda/validator-lambda-rejects-noncompliant-content-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfigurationProfile", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetHostedConfigurationVersion", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/appconfig__lambda/check_validator_lambda_rejects_noncompliant_content_rejected.py", "service": "appconfig__lambda"} {"check_id": "appconfig__sqs.deployment-events-to-sqs-extension-delivers-lifecycle-messages", "deployments": [], "key": "appconfig__sqs/deployment-events-to-sqs-extension-delivers-lifecycle-messages", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateExtensionAssociation", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteExtensionAssociation", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:GetExtension", "appconfig:GetExtensionAssociation", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListExtensions", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/appconfig__sqs/check_deployment_events_to_sqs_extension_delivers_lifecycle_messages.py", "service": "appconfig__sqs"} {"check_id": "appconfig__ssm.ssm-parameter-backed-profile-serves-the-deployed-parameter-version", "deployments": [], "key": "appconfig__ssm/ssm-parameter-backed-profile-serves-the-deployed-parameter-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetConfigurationProfile", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/appconfig__ssm/check_ssm_parameter_backed_profile_serves_the_deployed_parameter_version.py", "service": "appconfig__ssm"} {"check_id": "appconfigdata.appconfigdata-binary-content-round-trip", "deployments": [], "key": "appconfigdata/appconfigdata-binary-content-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_binary_content_round_trip.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-concurrent-token-reuse-all-succeed-idempotent", "deployments": [], "key": "appconfigdata/appconfigdata-concurrent-token-reuse-all-succeed-idempotent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_concurrent_token_reuse_all_succeed_idempotent.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-configuration-unicode-content-round-trip", "deployments": [], "key": "appconfigdata/appconfigdata-configuration-unicode-content-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_configuration_unicode_content_round_trip.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-content-type-round-trip-text-plain", "deployments": [], "key": "appconfigdata/appconfigdata-content-type-round-trip-text-plain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_content_type_round_trip_text_plain.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-cross-application-environment-mismatch-not-found", "deployments": [], "key": "appconfigdata/appconfigdata-cross-application-environment-mismatch-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_cross_application_environment_mismatch_not_found.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-cross-application-profile-mismatch-not-found", "deployments": [], "key": "appconfigdata/appconfigdata-cross-application-profile-mismatch-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_cross_application_profile_mismatch_not_found.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-empty-configuration-profile-first-poll-returns-empty", "deployments": [], "key": "appconfigdata/appconfigdata-empty-configuration-profile-first-poll-returns-empty", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListDeployments", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_empty_configuration_profile_first_poll_returns_empty.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-environment-configuration-isolation", "deployments": [], "key": "appconfigdata/appconfigdata-environment-configuration-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_environment_configuration_isolation.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-first-poll-returns-deployed-configuration", "deployments": [], "key": "appconfigdata/appconfigdata-first-poll-returns-deployed-configuration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetApplication", "appconfig:GetDeployment", "appconfig:ListApplications", "appconfig:StartDeployment", "appconfig:UpdateApplication", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_first_poll_returns_deployed_configuration.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-initial-poll-reflects-deployment-after-session-start", "deployments": [], "key": "appconfigdata/appconfigdata-initial-poll-reflects-deployment-after-session-start", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_initial_poll_reflects_deployment_after_session_start.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-invalid-configuration-token-rejected", "deployments": [], "key": "appconfigdata/appconfigdata-invalid-configuration-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_invalid_configuration_token_rejected.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-new-deployment-reflected-on-next-poll", "deployments": [], "key": "appconfigdata/appconfigdata-new-deployment-reflected-on-next-poll", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_new_deployment_reflected_on_next_poll.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-next-poll-configuration-token-changes-each-call", "deployments": [], "key": "appconfigdata/appconfigdata-next-poll-configuration-token-changes-each-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_next_poll_configuration_token_changes_each_call.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-second-poll-no-change-returns-empty-configuration", "deployments": [], "key": "appconfigdata/appconfigdata-second-poll-no-change-returns-empty-configuration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_second_poll_no_change_returns_empty_configuration.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-session-isolation-independent-tokens", "deployments": [], "key": "appconfigdata/appconfigdata-session-isolation-independent-tokens", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_session_isolation_independent_tokens.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-start-session-poll-interval-out-of-range-rejected", "deployments": [], "key": "appconfigdata/appconfigdata-start-session-poll-interval-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_start_session_poll_interval_out_of_range_rejected.py", "service": "appconfigdata"} {"check_id": "appconfigdata.appconfigdata-version-label-round-trip", "deployments": [], "key": "appconfigdata/appconfigdata-version-label-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_appconfigdata_version_label_round_trip.py", "service": "appconfigdata"} {"check_id": "appconfigdata.concurrent-independent-pollers-converge-on-new-deployment", "deployments": [], "key": "appconfigdata/concurrent-independent-pollers-converge-on-new-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_concurrent_independent_pollers_converge_on_new_deployment.py", "service": "appconfigdata"} {"check_id": "appconfigdata.concurrent-sessions-are-independent", "deployments": [], "key": "appconfigdata/concurrent-sessions-are-independent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_concurrent_sessions_are_independent.py", "service": "appconfigdata"} {"check_id": "appconfigdata.corrupted-configuration-token-rejected-with-problem-detail", "deployments": [], "key": "appconfigdata/corrupted-configuration-token-rejected-with-problem-detail", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_corrupted_configuration_token_rejected_with_problem_detail.py", "service": "appconfigdata"} {"check_id": "appconfigdata.custom-content-type-preserved-exactly", "deployments": [], "key": "appconfigdata/custom-content-type-preserved-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_custom_content_type_preserved_exactly.py", "service": "appconfigdata"} {"check_id": "appconfigdata.early-poll-rejected-when-minimum-interval-requested", "deployments": [], "key": "appconfigdata/early-poll-rejected-when-minimum-interval-requested", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_early_poll_rejected_when_minimum_interval_requested.py", "service": "appconfigdata"} {"check_id": "appconfigdata.environment-deletion-does-not-immediately-break-active-session-or-new-session", "deployments": [], "key": "appconfigdata/environment-deletion-does-not-immediately-break-active-session-or-new-session", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_environment_deletion_does_not_immediately_break_active_session_or_new_session.py", "service": "appconfigdata"} {"check_id": "appconfigdata.feature-flags-profile-type-round-trip", "deployments": [], "key": "appconfigdata/feature-flags-profile-type-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_feature_flags_profile_type_round_trip.py", "service": "appconfigdata"} {"check_id": "appconfigdata.hosted-version-violating-json-schema-validator-rejected", "deployments": [], "key": "appconfigdata/hosted-version-violating-json-schema-validator-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_hosted_version_violating_json_schema_validator_rejected.py", "service": "appconfigdata"} {"check_id": "appconfigdata.minimum-poll-interval-enforced-in-response", "deployments": [], "key": "appconfigdata/minimum-poll-interval-enforced-in-response", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_minimum_poll_interval_enforced_in_response.py", "service": "appconfigdata"} {"check_id": "appconfigdata.no-change-poll-preserves-content-type-and-version-label", "deployments": [], "key": "appconfigdata/no-change-poll-preserves-content-type-and-version-label", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_no_change_poll_preserves_content_type_and_version_label.py", "service": "appconfigdata"} {"check_id": "appconfigdata.poll-token-rotates-on-every-response", "deployments": [], "key": "appconfigdata/poll-token-rotates-on-every-response", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_poll_token_rotates_on_every_response.py", "service": "appconfigdata"} {"check_id": "appconfigdata.profile-deletion-does-not-immediately-break-active-session-token", "deployments": [], "key": "appconfigdata/profile-deletion-does-not-immediately-break-active-session-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_profile_deletion_does_not_immediately_break_active_session_token.py", "service": "appconfigdata"} {"check_id": "appconfigdata.profile-deployed-to-one-environment-not-another-rejected", "deployments": [], "key": "appconfigdata/profile-deployed-to-one-environment-not-another-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_profile_deployed_to_one_environment_not_another_rejected.py", "service": "appconfigdata"} {"check_id": "appconfigdata.same-named-profile-across-applications-does-not-cross-deliver", "deployments": [], "key": "appconfigdata/same-named-profile-across-applications-does-not-cross-deliver", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_same_named_profile_across_applications_does_not_cross_deliver.py", "service": "appconfigdata"} {"check_id": "appconfigdata.session-accepts-names-as-identifiers", "deployments": [], "key": "appconfigdata/session-accepts-names-as-identifiers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_session_accepts_names_as_identifiers.py", "service": "appconfigdata"} {"check_id": "appconfigdata.session-token-scoped-to-configuration-profile", "deployments": [], "key": "appconfigdata/session-token-scoped-to-configuration-profile", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_session_token_scoped_to_configuration_profile.py", "service": "appconfigdata"} {"check_id": "appconfigdata.sibling-environment-deployment-does-not-leak-into-active-session", "deployments": [], "key": "appconfigdata/sibling-environment-deployment-does-not-leak-into-active-session", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_sibling_environment_deployment_does_not_leak_into_active_session.py", "service": "appconfigdata"} {"check_id": "appconfigdata.sibling-profile-deployment-does-not-affect-unrelated-session", "deployments": [], "key": "appconfigdata/sibling-profile-deployment-does-not-affect-unrelated-session", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_sibling_profile_deployment_does_not_affect_unrelated_session.py", "service": "appconfigdata"} {"check_id": "appconfigdata.start-configuration-session-returns-valid-token", "deployments": [], "key": "appconfigdata/start-configuration-session-returns-valid-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_start_configuration_session_returns_valid_token.py", "service": "appconfigdata"} {"check_id": "appconfigdata.start-session-missing-permission-access-denied", "deployments": [], "key": "appconfigdata/start-session-missing-permission-access-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/appconfigdata/check_start_session_missing_permission_access_denied.py", "service": "appconfigdata"} {"check_id": "appconfigdata.start-session-nonexistent-application-not-found", "deployments": [], "key": "appconfigdata/start-session-nonexistent-application-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_start_session_nonexistent_application_not_found.py", "service": "appconfigdata"} {"check_id": "appconfigdata.start-session-unknown-identifier-rejected-per-resource-type", "deployments": [], "key": "appconfigdata/start-session-unknown-identifier-rejected-per-resource-type", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_start_session_unknown_identifier_rejected_per_resource_type.py", "service": "appconfigdata"} {"check_id": "appconfigdata.version-label-absent-when-not-set-at-creation", "deployments": [], "key": "appconfigdata/version-label-absent-when-not-set-at-creation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:StartDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_version_label_absent_when_not_set_at_creation.py", "service": "appconfigdata"} {"check_id": "appconfigdata.version-label-surfaced-only-with-changed-content", "deployments": [], "key": "appconfigdata/version-label-surfaced-only-with-changed-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appconfig:CreateApplication", "appconfig:CreateConfigurationProfile", "appconfig:CreateDeploymentStrategy", "appconfig:CreateEnvironment", "appconfig:CreateHostedConfigurationVersion", "appconfig:DeleteApplication", "appconfig:DeleteConfigurationProfile", "appconfig:DeleteDeploymentStrategy", "appconfig:DeleteEnvironment", "appconfig:DeleteHostedConfigurationVersion", "appconfig:GetDeployment", "appconfig:GetEnvironment", "appconfig:ListConfigurationProfiles", "appconfig:ListDeployments", "appconfig:ListEnvironments", "appconfig:ListHostedConfigurationVersions", "appconfig:StartDeployment", "appconfig:StopDeployment", "appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession"], "path": "behavioral/appconfigdata/check_version_label_surfaced_only_with_changed_content.py", "service": "appconfigdata"} {"check_id": "appfabric.app-authorization-initial-status-pending-connect", "deployments": [], "key": "appfabric/app-authorization-initial-status-pending-connect", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppAuthorization", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_app_authorization_initial_status_pending_connect.py", "service": "appfabric"} {"check_id": "appfabric.concurrent-create-app-authorization-duplicate-tenant-single-winner", "deployments": [], "key": "appfabric/concurrent-create-app-authorization-duplicate-tenant-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_concurrent_create_app_authorization_duplicate_tenant_single_winner.py", "service": "appfabric"} {"check_id": "appfabric.create-app-authorization-invalid-app-name-rejected", "deployments": [], "key": "appfabric/create-app-authorization-invalid-app-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppAuthorization", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_create_app_authorization_invalid_app_name_rejected.py", "service": "appfabric"} {"check_id": "appfabric.create-app-bundle-and-get-roundtrip", "deployments": [], "key": "appfabric/create-app-bundle-and-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_create_app_bundle_and_get_roundtrip.py", "service": "appfabric"} {"check_id": "appfabric.create-app-bundle-with-customer-managed-key", "deployments": [], "key": "appfabric/create-app-bundle-with-customer-managed-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppBundle", "appfabric:GetAppBundle", "appfabric:ListAppBundles", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/appfabric/check_create_app_bundle_with_customer_managed_key.py", "service": "appfabric"} {"check_id": "appfabric.create-ingestion-destination-s3-active", "deployments": [], "key": "appfabric/create-ingestion-destination-s3-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_create_ingestion_destination_s3_active.py", "service": "appfabric"} {"check_id": "appfabric.create-ingestion-destination-short-bucket-name-rejected", "deployments": [], "key": "appfabric/create-ingestion-destination-short-bucket-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:CreateIngestionDestination", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_create_ingestion_destination_short_bucket_name_rejected.py", "service": "appfabric"} {"check_id": "appfabric.create-ingestion-without-app-authorization-rejected", "deployments": [], "key": "appfabric/create-ingestion-without-app-authorization-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:CreateIngestion", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_create_ingestion_without_app_authorization_rejected.py", "service": "appfabric"} {"check_id": "appfabric.delete-app-authorization-removes-resource", "deployments": [], "key": "appfabric/delete-app-authorization-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppAuthorization", "appfabric:GetAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion", "appfabric:UpdateAppAuthorization"], "path": "behavioral/appfabric/check_delete_app_authorization_removes_resource.py", "service": "appfabric"} {"check_id": "appfabric.delete-app-bundle-with-contents-rejected", "deployments": [], "key": "appfabric/delete-app-bundle-with-contents-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_delete_app_bundle_with_contents_rejected.py", "service": "appfabric"} {"check_id": "appfabric.delete-ingestion-unknown-identifier-is-noop", "deployments": [], "key": "appfabric/delete-ingestion-unknown-identifier-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_delete_ingestion_unknown_identifier_is_noop.py", "service": "appfabric"} {"check_id": "appfabric.get-app-authorization-nonexistent-not-found", "deployments": [], "key": "appfabric/get-app-authorization-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppAuthorization", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_get_app_authorization_nonexistent_not_found.py", "service": "appfabric"} {"check_id": "appfabric.list-app-authorizations-maxresults-out-of-range-rejected", "deployments": [], "key": "appfabric/list-app-authorizations-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles"], "path": "behavioral/appfabric/check_list_app_authorizations_maxresults_out_of_range_rejected.py", "service": "appfabric"} {"check_id": "appfabric.list-app-bundles-reflects-created", "deployments": [], "key": "appfabric/list-app-bundles-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppBundle", "appfabric:ListAppBundles"], "path": "behavioral/appfabric/check_list_app_bundles_reflects_created.py", "service": "appfabric"} {"check_id": "appfabric.start-ingestion-without-connected-authorization-rejected", "deployments": [], "key": "appfabric/start-ingestion-without-connected-authorization-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:CreateIngestion", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppAuthorization", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_start_ingestion_without_connected_authorization_rejected.py", "service": "appfabric"} {"check_id": "appfabric.start-user-access-tasks-empty-bundle-not-found", "deployments": [], "key": "appfabric/start-user-access-tasks-empty-bundle-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:BatchGetUserAccessTasks", "appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StartUserAccessTasks", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_start_user_access_tasks_empty_bundle_not_found.py", "service": "appfabric"} {"check_id": "appfabric.start-user-access-tasks-reaches-failed-terminal-state", "deployments": [], "key": "appfabric/start-user-access-tasks-reaches-failed-terminal-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:BatchGetUserAccessTasks", "appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StartUserAccessTasks", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_start_user_access_tasks_reaches_failed_terminal_state.py", "service": "appfabric"} {"check_id": "appfabric.stop-already-disabled-ingestion-rejected", "deployments": [], "key": "appfabric/stop-already-disabled-ingestion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_stop_already_disabled_ingestion_rejected.py", "service": "appfabric"} {"check_id": "appfabric.stop-ingestion-transitions-enabled-to-disabled", "deployments": [], "key": "appfabric/stop-ingestion-transitions-enabled-to-disabled", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppBundle", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion", "appfabric:UpdateIngestionDestination"], "path": "behavioral/appfabric/check_stop_ingestion_transitions_enabled_to_disabled.py", "service": "appfabric"} {"check_id": "appfabric.tag-list-untag-resource-roundtrip", "deployments": [], "key": "appfabric/tag-list-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppBundle", "appfabric:ListAppBundles", "appfabric:ListTagsForResource", "appfabric:TagResource", "appfabric:UntagResource"], "path": "behavioral/appfabric/check_tag_list_untag_resource_roundtrip.py", "service": "appfabric"} {"check_id": "appfabric.update-app-authorization-tenant-field-persists-pending-connect", "deployments": [], "key": "appfabric/update-app-authorization-tenant-field-persists-pending-connect", "labels": ["axis:happy-path", "plane:control"], "operations": ["appfabric:CreateAppAuthorization", "appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppAuthorization", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion", "appfabric:UpdateAppAuthorization"], "path": "behavioral/appfabric/check_update_app_authorization_tenant_field_persists_pending_connect.py", "service": "appfabric"} {"check_id": "appfabric.update-ingestion-destination-changes-prefix-persists", "deployments": [], "key": "appfabric/update-ingestion-destination-changes-prefix-persists", "labels": ["axis:rejection", "plane:control"], "operations": ["appfabric:CreateAppBundle", "appfabric:DeleteAppAuthorization", "appfabric:DeleteAppBundle", "appfabric:DeleteIngestion", "appfabric:DeleteIngestionDestination", "appfabric:GetAppBundle", "appfabric:GetIngestionDestination", "appfabric:ListAppAuthorizations", "appfabric:ListAppBundles", "appfabric:ListIngestionDestinations", "appfabric:ListIngestions", "appfabric:ListTagsForResource", "appfabric:StopIngestion"], "path": "behavioral/appfabric/check_update_ingestion_destination_changes_prefix_persists.py", "service": "appfabric"} {"check_id": "appflow.cancel-flow-executions-reports-invalid-execution-id", "deployments": [], "key": "appflow/cancel-flow-executions-reports-invalid-execution-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CancelFlowExecutions", "appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlowExecutionRecords", "appflow:StartFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/appflow/check_cancel_flow_executions_reports_invalid_execution_id.py", "service": "appflow"} {"check_id": "appflow.concurrent-start-flow-second-call-conflicts", "deployments": [], "key": "appflow/concurrent-start-flow-second-call-conflicts", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlowExecutionRecords", "appflow:StartFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appflow/check_concurrent_start_flow_second_call_conflicts.py", "service": "appflow"} {"check_id": "appflow.create-flow-duplicate-name-rejected", "deployments": [], "key": "appflow/create-flow-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/appflow/check_create_flow_duplicate_name_rejected.py", "service": "appflow"} {"check_id": "appflow.create-flow-invalid-name-pattern-rejected", "deployments": [], "key": "appflow/create-flow-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/appflow/check_create_flow_invalid_name_pattern_rejected.py", "service": "appflow"} {"check_id": "appflow.create-flow-nonexistent-connector-profile-rejected", "deployments": [], "key": "appflow/create-flow-nonexistent-connector-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/appflow/check_create_flow_nonexistent_connector_profile_rejected.py", "service": "appflow"} {"check_id": "appflow.create-flow-ondemand-defaults-active", "deployments": [], "key": "appflow/create-flow-ondemand-defaults-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/appflow/check_create_flow_ondemand_defaults_active.py", "service": "appflow"} {"check_id": "appflow.create-flow-scheduled-defaults-draft", "deployments": [], "key": "appflow/create-flow-scheduled-defaults-draft", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/appflow/check_create_flow_scheduled_defaults_draft.py", "service": "appflow"} {"check_id": "appflow.delete-active-flow-without-force-rejected", "deployments": [], "key": "appflow/delete-active-flow-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "appflow:StartFlow", "appflow:StopFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/appflow/check_delete_active_flow_without_force_rejected.py", "service": "appflow"} {"check_id": "appflow.describe-connector-s3-builtin-capabilities", "deployments": [], "key": "appflow/describe-connector-s3-builtin-capabilities", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:DescribeConnector"], "path": "behavioral/appflow/check_describe_connector_s3_builtin_capabilities.py", "service": "appflow"} {"check_id": "appflow.describe-connectors-reports-s3-and-salesforce-capabilities", "deployments": [], "key": "appflow/describe-connectors-reports-s3-and-salesforce-capabilities", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:DescribeConnectors"], "path": "behavioral/appflow/check_describe_connectors_reports_s3_and_salesforce_capabilities.py", "service": "appflow"} {"check_id": "appflow.describe-flow-after-delete-not-found", "deployments": [], "key": "appflow/describe-flow-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "appflow:ListFlows", "appflow:StartFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/appflow/check_describe_flow_after_delete_not_found.py", "service": "appflow"} {"check_id": "appflow.describe-flow-reports-task-and-source-config-fidelity", "deployments": [], "key": "appflow/describe-flow-reports-task-and-source-config-fidelity", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/appflow/check_describe_flow_reports_task_and_source_config_fidelity.py", "service": "appflow"} {"check_id": "appflow.list-flows-reflects-flow-lifecycle", "deployments": [], "key": "appflow/list-flows-reflects-flow-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:ListFlows", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/appflow/check_list_flows_reflects_flow_lifecycle.py", "service": "appflow"} {"check_id": "appflow.list-tags-for-resource-reflects-tags-created-with-flow", "deployments": [], "key": "appflow/list-tags-for-resource-reflects-tags-created-with-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "appflow:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/appflow/check_list_tags_for_resource_reflects_tags_created_with_flow.py", "service": "appflow"} {"check_id": "appflow.s3-to-s3-flow-data-transfer-requires-bucket-policy", "deployments": [], "key": "appflow/s3-to-s3-flow-data-transfer-requires-bucket-policy", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "appflow:DescribeFlowExecutionRecords", "appflow:ListFlows", "appflow:StartFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/appflow/check_s3_to_s3_flow_data_transfer_requires_bucket_policy.py", "service": "appflow"} {"check_id": "appflow.scheduled-flow-start-stop-state-transitions", "deployments": [], "key": "appflow/scheduled-flow-start-stop-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "appflow:StartFlow", "appflow:StopFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/appflow/check_scheduled_flow_start_stop_state_transitions.py", "service": "appflow"} {"check_id": "appflow.start-flow-returns-new-execution-id-each-run", "deployments": [], "key": "appflow/start-flow-returns-new-execution-id-each-run", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlowExecutionRecords", "appflow:StartFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appflow/check_start_flow_returns_new_execution_id_each_run.py", "service": "appflow"} {"check_id": "appflow.stop-flow-state-conflicts-rejected", "deployments": [], "key": "appflow/stop-flow-state-conflicts-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "appflow:StartFlow", "appflow:StopFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/appflow/check_stop_flow_state_conflicts_rejected.py", "service": "appflow"} {"check_id": "appflow.tag-resource-round-trip-on-flow", "deployments": [], "key": "appflow/tag-resource-round-trip-on-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:ListTagsForResource", "appflow:TagResource", "appflow:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/appflow/check_tag_resource_round_trip_on_flow.py", "service": "appflow"} {"check_id": "appflow.update-flow-updates-task-configuration", "deployments": [], "key": "appflow/update-flow-updates-task-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:CreateFlow", "appflow:DeleteFlow", "appflow:DescribeFlow", "appflow:UpdateFlow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/appflow/check_update_flow_updates_task_configuration.py", "service": "appflow"} {"check_id": "appflow__cloudformation.deploy-appflow-connector-profile-redshift-bad-data-api-role-update-rejected-and-rolled-back", "deployments": [], "key": "appflow__cloudformation/deploy-appflow-connector-profile-redshift-bad-data-api-role-update-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["appflow:DescribeConnectorProfiles", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones"], "path": "behavioral/appflow__cloudformation/check_deploy_appflow_connector_profile_redshift_bad_data_api_role_update_rejected_and_rolled_back.py", "service": "appflow__cloudformation"} {"check_id": "appflow__cloudformation.deploy-appflow-connector-profile-redshift-serverless-round-trip-and-delete", "deployments": [], "key": "appflow__cloudformation/deploy-appflow-connector-profile-redshift-serverless-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:DescribeConnectorProfiles", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones"], "path": "behavioral/appflow__cloudformation/check_deploy_appflow_connector_profile_redshift_serverless_round_trip_and_delete.py", "service": "appflow__cloudformation"} {"check_id": "appflow__cloudformation__s3.deploy-appflow-flow-missing-bucket-policy-rejected-and-rolled-back", "deployments": [], "key": "appflow__cloudformation__s3/deploy-appflow-flow-missing-bucket-policy-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["appflow:DescribeFlow", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appflow__cloudformation__s3/check_deploy_appflow_flow_missing_bucket_policy_rejected_and_rolled_back.py", "service": "appflow__cloudformation__s3"} {"check_id": "appflow__cloudformation__s3.deploy-appflow-flow-s3-to-s3-round-trip-and-delete", "deployments": [], "key": "appflow__cloudformation__s3/deploy-appflow-flow-s3-to-s3-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appflow:DescribeFlow", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appflow__cloudformation__s3/check_deploy_appflow_flow_s3_to_s3_round_trip_and_delete.py", "service": "appflow__cloudformation__s3"} {"check_id": "appintegrations.create-application-duplicate-name-namespace-rejected", "deployments": [], "key": "appintegrations/create-application-duplicate-name-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:CreateApplication", "appintegrations:DeleteApplication", "appintegrations:GetApplication"], "path": "behavioral/appintegrations/check_create_application_duplicate_name_namespace_rejected.py", "service": "appintegrations"} {"check_id": "appintegrations.create-application-get-roundtrip", "deployments": [], "key": "appintegrations/create-application-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateApplication", "appintegrations:DeleteApplication", "appintegrations:GetApplication"], "path": "behavioral/appintegrations/check_create_application_get_roundtrip.py", "service": "appintegrations"} {"check_id": "appintegrations.create-application-invalid-namespace-pattern-rejected", "deployments": [], "key": "appintegrations/create-application-invalid-namespace-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:CreateApplication", "appintegrations:DeleteApplication", "appintegrations:GetApplication"], "path": "behavioral/appintegrations/check_create_application_invalid_namespace_pattern_rejected.py", "service": "appintegrations"} {"check_id": "appintegrations.create-data-integration-association-invalid-execution-configuration-rejected", "deployments": [], "key": "appintegrations/create-data-integration-association-invalid-execution-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:CreateDataIntegration", "appintegrations:CreateDataIntegrationAssociation", "appintegrations:DeleteDataIntegration", "appintegrations:ListDataIntegrationAssociations", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/appintegrations/check_create_data_integration_association_invalid_execution_configuration_rejected.py", "service": "appintegrations"} {"check_id": "appintegrations.create-data-integration-get-roundtrip", "deployments": [], "key": "appintegrations/create-data-integration-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateDataIntegration", "appintegrations:DeleteDataIntegration", "appintegrations:GetDataIntegration", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/appintegrations/check_create_data_integration_get_roundtrip.py", "service": "appintegrations"} {"check_id": "appintegrations.create-data-integration-nonexistent-kms-key-rejected", "deployments": [], "key": "appintegrations/create-data-integration-nonexistent-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:CreateDataIntegration", "appintegrations:DeleteDataIntegration", "appintegrations:GetDataIntegration", "appintegrations:ListDataIntegrations", "appintegrations:UpdateDataIntegration", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/appintegrations/check_create_data_integration_nonexistent_kms_key_rejected.py", "service": "appintegrations"} {"check_id": "appintegrations.create-event-integration-get-roundtrip", "deployments": [], "key": "appintegrations/create-event-integration-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateEventIntegration", "appintegrations:DeleteEventIntegration", "appintegrations:GetEventIntegration"], "path": "behavioral/appintegrations/check_create_event_integration_get_roundtrip.py", "service": "appintegrations"} {"check_id": "appintegrations.delete-data-integration-nonexistent-rejected-and-real-delete-removes-resource", "deployments": [], "key": "appintegrations/delete-data-integration-nonexistent-rejected-and-real-delete-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:CreateDataIntegration", "appintegrations:DeleteDataIntegration", "appintegrations:GetDataIntegration", "appintegrations:UpdateDataIntegration", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/appintegrations/check_delete_data_integration_nonexistent_rejected_and_real_delete_removes_resource.py", "service": "appintegrations"} {"check_id": "appintegrations.delete-event-integration-removes-from-list", "deployments": [], "key": "appintegrations/delete-event-integration-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateEventIntegration", "appintegrations:DeleteEventIntegration", "appintegrations:GetEventIntegration", "appintegrations:ListEventIntegrations"], "path": "behavioral/appintegrations/check_delete_event_integration_removes_from_list.py", "service": "appintegrations"} {"check_id": "appintegrations.get-application-after-delete-not-found", "deployments": [], "key": "appintegrations/get-application-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:CreateApplication", "appintegrations:DeleteApplication", "appintegrations:GetApplication", "appintegrations:UpdateApplication"], "path": "behavioral/appintegrations/check_get_application_after_delete_not_found.py", "service": "appintegrations"} {"check_id": "appintegrations.list-application-associations-empty-for-new-application", "deployments": [], "key": "appintegrations/list-application-associations-empty-for-new-application", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateApplication", "appintegrations:DeleteApplication", "appintegrations:ListApplicationAssociations"], "path": "behavioral/appintegrations/check_list_application_associations_empty_for_new_application.py", "service": "appintegrations"} {"check_id": "appintegrations.list-data-integration-associations-empty-for-unassociated-data-integration", "deployments": [], "key": "appintegrations/list-data-integration-associations-empty-for-unassociated-data-integration", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateDataIntegration", "appintegrations:CreateDataIntegrationAssociation", "appintegrations:DeleteDataIntegration", "appintegrations:ListDataIntegrationAssociations", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/appintegrations/check_list_data_integration_associations_empty_for_unassociated_data_integration.py", "service": "appintegrations"} {"check_id": "appintegrations.list-event-integrations-pagination", "deployments": [], "key": "appintegrations/list-event-integrations-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateEventIntegration", "appintegrations:DeleteEventIntegration", "appintegrations:ListEventIntegrations"], "path": "behavioral/appintegrations/check_list_event_integrations_pagination.py", "service": "appintegrations"} {"check_id": "appintegrations.tag-resource-list-and-untag-roundtrip", "deployments": [], "key": "appintegrations/tag-resource-list-and-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateApplication", "appintegrations:DeleteApplication", "appintegrations:GetApplication", "appintegrations:ListTagsForResource", "appintegrations:TagResource", "appintegrations:UntagResource"], "path": "behavioral/appintegrations/check_tag_resource_list_and_untag_roundtrip.py", "service": "appintegrations"} {"check_id": "appintegrations.update-application-permissions-replace-not-merge", "deployments": [], "key": "appintegrations/update-application-permissions-replace-not-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateApplication", "appintegrations:DeleteApplication", "appintegrations:GetApplication", "appintegrations:UpdateApplication"], "path": "behavioral/appintegrations/check_update_application_permissions_replace_not_merge.py", "service": "appintegrations"} {"check_id": "appintegrations.update-application-persists-description-and-permissions", "deployments": [], "key": "appintegrations/update-application-persists-description-and-permissions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateApplication", "appintegrations:DeleteApplication", "appintegrations:GetApplication", "appintegrations:UpdateApplication"], "path": "behavioral/appintegrations/check_update_application_persists_description_and_permissions.py", "service": "appintegrations"} {"check_id": "appintegrations.update-data-integration-association-nonexistent-identifiers-rejected", "deployments": [], "key": "appintegrations/update-data-integration-association-nonexistent-identifiers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:CreateDataIntegration", "appintegrations:DeleteDataIntegration", "appintegrations:GetDataIntegration", "appintegrations:ListDataIntegrationAssociations", "appintegrations:UpdateDataIntegrationAssociation", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/appintegrations/check_update_data_integration_association_nonexistent_identifiers_rejected.py", "service": "appintegrations"} {"check_id": "appintegrations.update-data-integration-persists-description", "deployments": [], "key": "appintegrations/update-data-integration-persists-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateDataIntegration", "appintegrations:DeleteDataIntegration", "appintegrations:GetDataIntegration", "appintegrations:UpdateDataIntegration", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/appintegrations/check_update_data_integration_persists_description.py", "service": "appintegrations"} {"check_id": "appintegrations.update-event-integration-description-only-fields-unchanged", "deployments": [], "key": "appintegrations/update-event-integration-description-only-fields-unchanged", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:CreateEventIntegration", "appintegrations:DeleteEventIntegration", "appintegrations:GetEventIntegration", "appintegrations:UpdateEventIntegration"], "path": "behavioral/appintegrations/check_update_event_integration_description_only_fields_unchanged.py", "service": "appintegrations"} {"check_id": "appintegrations__cloudformation.deploy-appintegrations-application-and-event-integration-round-trip-and-delete", "deployments": [], "key": "appintegrations__cloudformation/deploy-appintegrations-application-and-event-integration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:GetApplication", "appintegrations:GetEventIntegration", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appintegrations__cloudformation/check_deploy_appintegrations_application_and_event_integration_round_trip_and_delete.py", "service": "appintegrations__cloudformation"} {"check_id": "appintegrations__cloudformation.deploy-appintegrations-event-integration-invalid-event-source-rejected", "deployments": [], "key": "appintegrations__cloudformation/deploy-appintegrations-event-integration-invalid-event-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:GetEventIntegration", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appintegrations__cloudformation/check_deploy_appintegrations_event_integration_invalid_event_source_rejected.py", "service": "appintegrations__cloudformation"} {"check_id": "appintegrations__cloudformation__kms__s3.deploy-appintegrations-data-integration-source-uri-bucket-prefix-rejected", "deployments": [], "key": "appintegrations__cloudformation__kms__s3/deploy-appintegrations-data-integration-source-uri-bucket-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appintegrations:GetDataIntegration", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "s3:HeadBucket"], "path": "behavioral/appintegrations__cloudformation__kms__s3/check_deploy_appintegrations_data_integration_source_uri_bucket_prefix_rejected.py", "service": "appintegrations__cloudformation__kms__s3"} {"check_id": "appintegrations__cloudformation__kms__s3.deploy-appintegrations-data-integration-with-kms-and-s3-round-trip-and-delete", "deployments": [], "key": "appintegrations__cloudformation__kms__s3/deploy-appintegrations-data-integration-with-kms-and-s3-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appintegrations:GetDataIntegration", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "kms:GetKeyPolicy", "s3:GetBucketTagging"], "path": "behavioral/appintegrations__cloudformation__kms__s3/check_deploy_appintegrations_data_integration_with_kms_and_s3_round_trip_and_delete.py", "service": "appintegrations__cloudformation__kms__s3"} {"check_id": "application-autoscaling.at-action-missed-while-suspended-is-not-replayed-on-resume", "deployments": [], "key": "application-autoscaling/at-action-missed-while-suspended-is-not-replayed-on-resume", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_at_action_missed_while_suspended_is_not_replayed_on_resume.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.at-expression-actions-fire-in-schedule-order-not-creation-order", "deployments": [], "key": "application-autoscaling/at-expression-actions-fire-in-schedule-order-not-creation-order", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_at_expression_actions_fire_in_schedule_order_not_creation_order.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.aws-prefixed-tag-key-rejected-on-scalable-target", "deployments": [], "key": "application-autoscaling/aws-prefixed-tag-key-rejected-on-scalable-target", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:ListTagsForResource", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "application-autoscaling:UntagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_aws_prefixed_tag_key_rejected_on_scalable_target.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ceiling-only-scheduled-action-scales-the-table-in", "deployments": [], "key": "application-autoscaling/ceiling-only-scheduled-action-scales-the-table-in", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_ceiling_only_scheduled_action_scales_the_table_in.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.concurrent-register-scalable-target-updates-consistent", "deployments": [], "key": "application-autoscaling/concurrent-register-scalable-target-updates-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_concurrent_register_scalable_target_updates_consistent.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.concurrent-scheduled-action-puts-on-one-target-are-all-stored", "deployments": [], "key": "application-autoscaling/concurrent-scheduled-action-puts-on-one-target-are-all-stored", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_concurrent_scheduled_action_puts_on_one_target_are_all_stored.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.concurrent-upserts-of-one-policy-name-leave-one-policy-and-one-alarm-set", "deployments": [], "key": "application-autoscaling/concurrent-upserts-of-one-policy-name-leave-one-policy-and-one-alarm-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_concurrent_upserts_of_one_policy_name_leave_one_policy_and_one_alarm_set.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.custom-resource-registration-floor-patches-the-endpoint", "deployments": [], "key": "application-autoscaling/custom-resource-registration-floor-patches-the-endpoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_custom_resource_registration_floor_patches_the_endpoint.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.custom-resource-scheduled-action-patches-the-endpoint-when-it-fires", "deployments": [], "key": "application-autoscaling/custom-resource-scheduled-action-patches-the-endpoint-when-it-fires", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_custom_resource_scheduled_action_patches_the_endpoint_when_it_fires.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.custom-resource-stage-the-api-never-deployed-rejected", "deployments": [], "key": "application-autoscaling/custom-resource-stage-the-api-never-deployed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_custom_resource_stage_the_api_never_deployed_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.custom-resource-step-policy-alarm-patches-the-endpoint-up-to-the-ceiling", "deployments": [], "key": "application-autoscaling/custom-resource-step-policy-alarm-patches-the-endpoint-up-to-the-ceiling", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_custom_resource_step_policy_alarm_patches_the_endpoint_up_to_the_ceiling.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.custom-resource-target-tracking-with-scale-in-disabled-still-scales-out", "deployments": [], "key": "application-autoscaling/custom-resource-target-tracking-with-scale-in-disabled-still-scales-out", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricData", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_custom_resource_target_tracking_with_scale_in_disabled_still_scales_out.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.customized-metric-rejected-on-a-dynamodb-dimension", "deployments": [], "key": "application-autoscaling/customized-metric-rejected-on-a-dynamodb-dimension", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_customized_metric_rejected_on_a_dynamodb_dimension.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.delete-scaling-policy-never-created-rejected", "deployments": [], "key": "application-autoscaling/delete-scaling-policy-never-created-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_delete_scaling_policy_never_created_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.delete-scheduled-action-that-does-not-exist-rejected", "deployments": [], "key": "application-autoscaling/delete-scheduled-action-that-does-not-exist-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_delete_scheduled_action_that_does_not_exist_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deleted-scheduled-action-never-fires", "deployments": [], "key": "application-autoscaling/deleted-scheduled-action-never-fires", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_deleted_scheduled_action_never_fires.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deleted-table-leaves-its-scalable-target-registered", "deployments": [], "key": "application-autoscaling/deleted-table-leaves-its-scalable-target-registered", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_deleted_table_leaves_its_scalable_target_registered.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deploy-cloudformation-scalable-target-and-policy-scale-the-table", "deployments": [], "key": "application-autoscaling/deploy-cloudformation-scalable-target-and-policy-scale-the-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_deploy_cloudformation_scalable_target_and_policy_scale_the_table.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deploy-cloudformation-scalable-target-min-above-max-rejected", "deployments": [], "key": "application-autoscaling/deploy-cloudformation-scalable-target-min-above-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/application-autoscaling/check_deploy_cloudformation_scalable_target_min_above_max_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deregister-denied-by-a-resource-tag-condition", "deployments": [], "key": "application-autoscaling/deregister-denied-by-a-resource-tag-condition", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:ListTagsForResource", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_deregister_denied_by_a_resource_tag_condition.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deregister-in-one-region-keeps-the-same-named-target-in-another", "deployments": [], "key": "application-autoscaling/deregister-in-one-region-keeps-the-same-named-target-in-another", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_deregister_in_one_region_keeps_the_same_named_target_in_another.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deregister-index-target-leaves-the-table-policy-and-alarms", "deployments": [], "key": "application-autoscaling/deregister-index-target-leaves-the-table-policy-and-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_deregister_index_target_leaves_the_table_policy_and_alarms.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deregister-nonexistent-target-rejected", "deployments": [], "key": "application-autoscaling/deregister-nonexistent-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_deregister_nonexistent_target_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deregister-scalable-target-cascades-but-keeps-activities", "deployments": [], "key": "application-autoscaling/deregister-scalable-target-cascades-but-keeps-activities", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:ListTagsForResource", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_deregister_scalable_target_cascades_but_keeps_activities.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deregister-scalable-target-cascades-policies-and-actions", "deployments": [], "key": "application-autoscaling/deregister-scalable-target-cascades-policies-and-actions", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_deregister_scalable_target_cascades_policies_and_actions.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.deregistered-target-scheduled-enforcement-blocked", "deployments": [], "key": "application-autoscaling/deregistered-target-scheduled-enforcement-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_deregistered_target_scheduled_enforcement_blocked.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.describe-dimension-filter-without-a-resource-id-rejected", "deployments": [], "key": "application-autoscaling/describe-dimension-filter-without-a-resource-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_describe_dimension_filter_without_a_resource_id_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.describe-filter-lists-above-fifty-entries-rejected", "deployments": [], "key": "application-autoscaling/describe-filter-lists-above-fifty-entries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_describe_filter_lists_above_fifty_entries_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.describe-scalable-targets-invalid-next-token-rejected", "deployments": [], "key": "application-autoscaling/describe-scalable-targets-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_describe_scalable_targets_invalid_next_token_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.describe-scalable-targets-resource-ids-and-dimension-intersect", "deployments": [], "key": "application-autoscaling/describe-scalable-targets-resource-ids-and-dimension-intersect", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_describe_scalable_targets_resource_ids_and_dimension_intersect.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.describe-scaling-policies-filters-by-dimension", "deployments": [], "key": "application-autoscaling/describe-scaling-policies-filters-by-dimension", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_describe_scaling_policies_filters_by_dimension.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.describe-scheduled-actions-names-resource-and-dimension-intersect", "deployments": [], "key": "application-autoscaling/describe-scheduled-actions-names-resource-and-dimension-intersect", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_describe_scheduled_actions_names_resource_and_dimension_intersect.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.describe-scheduled-actions-pages-past-fifty", "deployments": [], "key": "application-autoscaling/describe-scheduled-actions-pages-past-fifty", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_describe_scheduled_actions_pages_past_fifty.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.disable-scale-in-withholds-the-scale-in-alarms", "deployments": [], "key": "application-autoscaling/disable-scale-in-withholds-the-scale-in-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_disable_scale_in_withholds_the_scale_in_alarms.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.dynamic-scaling-out-suspended-withholds-then-resume-delivers", "deployments": [], "key": "application-autoscaling/dynamic-scaling-out-suspended-withholds-then-resume-delivers", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_dynamic_scaling_out_suspended_withholds_then_resume_delivers.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.dynamodb-predefined-metric-on-a-keyspaces-dimension-rejected", "deployments": [], "key": "application-autoscaling/dynamodb-predefined-metric-on-a-keyspaces-dimension-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/application-autoscaling/check_dynamodb_predefined_metric_on_a_keyspaces_dimension_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-alb-request-count-policy-without-resource-label-rejected", "deployments": [], "key": "application-autoscaling/ecs-alb-request-count-policy-without-resource-label-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_alb_request_count_policy_without_resource_label_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-at-scheduled-action-sets-the-desired-count-and-stays-listed", "deployments": [], "key": "application-autoscaling/ecs-at-scheduled-action-sets-the-desired-count-and-stays-listed", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_at_scheduled_action_sets_the_desired_count_and_stays_listed.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-cpu-and-memory-policies-coexist-and-deleting-one-keeps-the-other", "deployments": [], "key": "application-autoscaling/ecs-cpu-and-memory-policies-coexist-and-deleting-one-keeps-the-other", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_cpu_and_memory_policies_coexist_and_deleting_one_keeps_the_other.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-cpu-target-tracking-policy-round-trips-and-mints-two-alarms", "deployments": [], "key": "application-autoscaling/ecs-cpu-target-tracking-policy-round-trips-and-mints-two-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_cpu_target_tracking_policy_round_trips_and_mints_two_alarms.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-register-missing-service-rejected", "deployments": [], "key": "application-autoscaling/ecs-register-missing-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_register_missing_service_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-registration-floor-sets-the-desired-count-with-no-capacity-to-run-it", "deployments": [], "key": "application-autoscaling/ecs-registration-floor-sets-the-desired-count-with-no-capacity-to-run-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_registration_floor_sets_the_desired_count_with_no_capacity_to_run_it.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-service-target-lifecycle-leaves-the-desired-count-after-deregister", "deployments": [], "key": "application-autoscaling/ecs-service-target-lifecycle-leaves-the-desired-count-after-deregister", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_service_target_lifecycle_leaves_the_desired_count_after_deregister.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-step-adjustment-without-any-bound-rejected", "deployments": [], "key": "application-autoscaling/ecs-step-adjustment-without-any-bound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_step_adjustment_without_any_bound_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.ecs-step-scaling-policy-without-step-adjustments-rejected", "deployments": [], "key": "application-autoscaling/ecs-step-scaling-policy-without-step-adjustments-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_ecs_step_scaling_policy_without_step_adjustments_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.external-capacity-change-below-floor-not-reverted", "deployments": [], "key": "application-autoscaling/external-capacity-change-below-floor-not-reverted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/application-autoscaling/check_external_capacity_change_below_floor_not_reverted.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.gsi-scalable-target-moves-the-index-not-the-table", "deployments": [], "key": "application-autoscaling/gsi-scalable-target-moves-the-index-not-the-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_gsi_scalable_target_moves_the_index_not_the_table.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.keyspaces-missing-table-in-an-existing-keyspace-rejected", "deployments": [], "key": "application-autoscaling/keyspaces-missing-table-in-an-existing-keyspace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/application-autoscaling/check_keyspaces_missing_table_in_an_existing_keyspace_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.keyspaces-on-demand-table-register-rejected", "deployments": [], "key": "application-autoscaling/keyspaces-on-demand-table-register-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable", "keyspaces:UpdateTable"], "path": "behavioral/application-autoscaling/check_keyspaces_on_demand_table_register_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.keyspaces-registration-floor-raises-the-table-write-capacity", "deployments": [], "key": "application-autoscaling/keyspaces-registration-floor-raises-the-table-write-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/application-autoscaling/check_keyspaces_registration_floor_raises_the_table_write_capacity.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.keyspaces-scheduled-action-moves-the-table-read-capacity", "deployments": [], "key": "application-autoscaling/keyspaces-scheduled-action-moves-the-table-read-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/application-autoscaling/check_keyspaces_scheduled_action_moves_the_table_read_capacity.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.keyspaces-table-auto-scaling-specification-registers-the-targets-and-policies", "deployments": [], "key": "application-autoscaling/keyspaces-table-auto-scaling-specification-registers-the-targets-and-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/application-autoscaling/check_keyspaces_table_auto_scaling_specification_registers_the_targets_and_policies.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.keyspaces-target-tracking-alarms-watch-the-table-metrics", "deployments": [], "key": "application-autoscaling/keyspaces-target-tracking-alarms-watch-the-table-metrics", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/application-autoscaling/check_keyspaces_target_tracking_alarms_watch_the_table_metrics.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.lambda-latest-and-unqualified-targets-rejected", "deployments": [], "key": "application-autoscaling/lambda-latest-and-unqualified-targets-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion"], "path": "behavioral/application-autoscaling/check_lambda_latest_and_unqualified_targets_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.lambda-target-on-a-missing-alias-rejected", "deployments": [], "key": "application-autoscaling/lambda-target-on-a-missing-alias-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_lambda_target_on_a_missing_alias_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.lambda-target-tracking-alarms-watch-the-alias-utilization", "deployments": [], "key": "application-autoscaling/lambda-target-tracking-alarms-watch-the-alias-utilization", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion"], "path": "behavioral/application-autoscaling/check_lambda_target_tracking_alarms_watch_the_alias_utilization.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.lambda-utilization-target-given-as-a-percentage-rejected", "deployments": [], "key": "application-autoscaling/lambda-utilization-target-given-as-a-percentage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion"], "path": "behavioral/application-autoscaling/check_lambda_utilization_target_given_as_a_percentage_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.lowering-the-minimum-does-not-scale-capacity-in", "deployments": [], "key": "application-autoscaling/lowering-the-minimum-does-not-scale-capacity-in", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_lowering_the_minimum_does_not_scale_capacity_in.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.min-only-register-above-the-stored-max-rejected", "deployments": [], "key": "application-autoscaling/min-only-register-above-the-stored-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_min_only_register_above_the_stored_max_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.not-scaled-activity-records-already-at-max-capacity", "deployments": [], "key": "application-autoscaling/not-scaled-activity-records-already-at-max-capacity", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_not_scaled_activity_records_already_at_max_capacity.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.partial-scheduled-action-update-keeps-schedule-and-replaces-action", "deployments": [], "key": "application-autoscaling/partial-scheduled-action-update-keeps-schedule-and-replaces-action", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_partial_scheduled_action_update_keeps_schedule_and_replaces_action.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.predefined-metric-of-the-other-dimension-rejected", "deployments": [], "key": "application-autoscaling/predefined-metric-of-the-other-dimension-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_predefined_metric_of_the_other_dimension_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scaling-policy-again-updates-in-place-keeping-the-policy-arn", "deployments": [], "key": "application-autoscaling/put-scaling-policy-again-updates-in-place-keeping-the-policy-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scaling_policy_again_updates_in_place_keeping_the_policy_arn.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scaling-policy-idempotent-upsert-updates-config", "deployments": [], "key": "application-autoscaling/put-scaling-policy-idempotent-upsert-updates-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scaling_policy_idempotent_upsert_updates_config.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scaling-policy-missing-configuration-rejected", "deployments": [], "key": "application-autoscaling/put-scaling-policy-missing-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scaling_policy_missing_configuration_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scaling-policy-rejects-unregistered-target", "deployments": [], "key": "application-autoscaling/put-scaling-policy-rejects-unregistered-target", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scaling_policy_rejects_unregistered_target.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scaling-policy-unregistered-dimension-rejected", "deployments": [], "key": "application-autoscaling/put-scaling-policy-unregistered-dimension-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scaling_policy_unregistered_dimension_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scaling-policy-without-target-rejected", "deployments": [], "key": "application-autoscaling/put-scaling-policy-without-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scaling_policy_without_target_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scheduled-action-idempotent-upsert", "deployments": [], "key": "application-autoscaling/put-scheduled-action-idempotent-upsert", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scheduled_action_idempotent_upsert.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scheduled-action-inverted-bounds-rejected", "deployments": [], "key": "application-autoscaling/put-scheduled-action-inverted-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scheduled_action_inverted_bounds_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scheduled-action-non-canonical-timezone-rejected", "deployments": [], "key": "application-autoscaling/put-scheduled-action-non-canonical-timezone-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scheduled_action_non_canonical_timezone_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scheduled-action-on-unregistered-dimension-rejected", "deployments": [], "key": "application-autoscaling/put-scheduled-action-on-unregistered-dimension-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scheduled_action_on_unregistered_dimension_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scheduled-action-rejects-invalid-cron-expression", "deployments": [], "key": "application-autoscaling/put-scheduled-action-rejects-invalid-cron-expression", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scheduled_action_rejects_invalid_cron_expression.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scheduled-action-start-after-end-rejected", "deployments": [], "key": "application-autoscaling/put-scheduled-action-start-after-end-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scheduled_action_start_after_end_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scheduled-action-unknown-rate-unit-rejected", "deployments": [], "key": "application-autoscaling/put-scheduled-action-unknown-rate-unit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scheduled_action_unknown_rate_unit_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.put-scheduled-action-without-schedule-rejected-on-create", "deployments": [], "key": "application-autoscaling/put-scheduled-action-without-schedule-rejected-on-create", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_put_scheduled_action_without_schedule_rejected_on_create.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.rate-action-stops-firing-after-its-end-time", "deployments": [], "key": "application-autoscaling/rate-action-stops-firing-after-its-end-time", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_rate_action_stops_firing_after_its_end_time.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.rate-action-waits-for-its-start-time-then-repeats", "deployments": [], "key": "application-autoscaling/rate-action-waits-for-its-start-time-then-repeats", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_rate_action_waits_for_its_start_time_then_repeats.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-below-namespace-minimum-rejected", "deployments": [], "key": "application-autoscaling/register-below-namespace-minimum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_below_namespace_minimum_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-missing-global-secondary-index-rejected", "deployments": [], "key": "application-autoscaling/register-missing-global-secondary-index-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_missing_global_secondary_index_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-new-target-without-capacity-bounds-rejected", "deployments": [], "key": "application-autoscaling/register-new-target-without-capacity-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_new_target_without_capacity_bounds_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-on-demand-table-rejected", "deployments": [], "key": "application-autoscaling/register-on-demand-table-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/application-autoscaling/check_register_on_demand_table_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-outside-the-allowed-scalable-dimension-denied", "deployments": [], "key": "application-autoscaling/register-outside-the-allowed-scalable-dimension-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_register_outside_the_allowed_scalable_dimension_denied.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-basic", "deployments": [], "key": "application-autoscaling/register-scalable-target-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_basic.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-capacity-clamped-on-max-decrease", "deployments": [], "key": "application-autoscaling/register-scalable-target-capacity-clamped-on-max-decrease", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_capacity_clamped_on_max_decrease.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-clamps-capacity-into-bounds", "deployments": [], "key": "application-autoscaling/register-scalable-target-clamps-capacity-into-bounds", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_clamps_capacity_into_bounds.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-idempotent-upsert", "deployments": [], "key": "application-autoscaling/register-scalable-target-idempotent-upsert", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_idempotent_upsert.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-invalid-dimension-rejected", "deployments": [], "key": "application-autoscaling/register-scalable-target-invalid-dimension-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_invalid_dimension_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-min-greater-than-max-rejected", "deployments": [], "key": "application-autoscaling/register-scalable-target-min-greater-than-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_min_greater_than_max_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-nonexistent-resource-rejected", "deployments": [], "key": "application-autoscaling/register-scalable-target-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_nonexistent_resource_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-rejects-min-above-max", "deployments": [], "key": "application-autoscaling/register-scalable-target-rejects-min-above-max", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_rejects_min_above_max.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-rejects-nonexistent-table", "deployments": [], "key": "application-autoscaling/register-scalable-target-rejects-nonexistent-table", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_rejects_nonexistent_table.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-scalable-target-suspended-state-persists", "deployments": [], "key": "application-autoscaling/register-scalable-target-suspended-state-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_scalable_target_suspended_state_persists.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-table-resource-id-with-an-index-dimension-rejected", "deployments": [], "key": "application-autoscaling/register-table-resource-id-with-an-index-dimension-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_table_resource_id_with_an_index_dimension_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-upsert-carrying-tags-rejected-and-bounds-kept", "deployments": [], "key": "application-autoscaling/register-upsert-carrying-tags-rejected-and-bounds-kept", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:ListTagsForResource", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_upsert_carrying_tags_rejected_and_bounds_kept.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-with-one-bound-keeps-the-other-stored-bound", "deployments": [], "key": "application-autoscaling/register-with-one-bound-keeps-the-other-stored-bound", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_register_with_one_bound_keeps_the_other_stored_bound.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.register-with-tags-denied-without-tag-resource-permission", "deployments": [], "key": "application-autoscaling/register-with-tags-denied-without-tag-resource-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:ListTagsForResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_register_with_tags_denied_without_tag_resource_permission.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.reregistering-after-deregister-mints-a-new-target-without-the-old-tags-or-policy", "deployments": [], "key": "application-autoscaling/reregistering-after-deregister-mints-a-new-target-without-the-old-tags-or-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:ListTagsForResource", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_reregistering_after_deregister_mints_a_new_target_without_the_old_tags_or_policy.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.role-arn-is-ignored-for-a-service-linked-namespace", "deployments": [], "key": "application-autoscaling/role-arn-is-ignored-for-a-service-linked-namespace", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_role_arn_is_ignored_for_a_service_linked_namespace.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scaling-activities-newest-first-with-fulfilment-text", "deployments": [], "key": "application-autoscaling/scaling-activities-newest-first-with-fulfilment-text", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_scaling_activities_newest_first_with_fulfilment_text.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scaling-activity-status-progresses-through-a-nonterminal-state", "deployments": [], "key": "application-autoscaling/scaling-activity-status-progresses-through-a-nonterminal-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_scaling_activity_status_progresses_through_a_nonterminal_state.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scheduled-action-above-registered-maximum-rejected-at-dispatch", "deployments": [], "key": "application-autoscaling/scheduled-action-above-registered-maximum-rejected-at-dispatch", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_scheduled_action_above_registered_maximum_rejected_at_dispatch.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scheduled-action-cron-fires-and-moves-capacity", "deployments": [], "key": "application-autoscaling/scheduled-action-cron-fires-and-moves-capacity", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_scheduled_action_cron_fires_and_moves_capacity.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scheduled-action-cron-is-read-in-its-declared-timezone", "deployments": [], "key": "application-autoscaling/scheduled-action-cron-is-read-in-its-declared-timezone", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_scheduled_action_cron_is_read_in_its_declared_timezone.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scheduled-action-in-a-second-region-scales-only-that-regions-table", "deployments": [], "key": "application-autoscaling/scheduled-action-in-a-second-region-scales-only-that-regions-table", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_scheduled_action_in_a_second_region_scales_only_that_regions_table.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scheduled-action-lifecycle", "deployments": [], "key": "application-autoscaling/scheduled-action-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_scheduled_action_lifecycle.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scheduled-action-name-is-scoped-to-its-dimension", "deployments": [], "key": "application-autoscaling/scheduled-action-name-is-scoped-to-its-dimension", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_scheduled_action_name_is_scoped_to_its_dimension.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scheduled-action-name-with-a-slash-rejected", "deployments": [], "key": "application-autoscaling/scheduled-action-name-with-a-slash-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_scheduled_action_name_with_a_slash_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.scheduled-scaling-suspended-blocks-scheduled-action", "deployments": [], "key": "application-autoscaling/scheduled-scaling-suspended-blocks-scheduled-action", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_scheduled_scaling_suspended_blocks_scheduled_action.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.second-target-tracking-policy-on-the-same-metric-rejected", "deployments": [], "key": "application-autoscaling/second-target-tracking-policy-on-the-same-metric-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_second_target_tracking_policy_on_the_same_metric_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.service-linked-role-is-the-role-the-scalable-target-uses", "deployments": [], "key": "application-autoscaling/service-linked-role-is-the-role-the-scalable-target-uses", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:DeleteRole", "iam:GetRole", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_service_linked_role_is_the_role_the_scalable_target_uses.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.superseded-scaling-activity-resolves-to-overridden", "deployments": [], "key": "application-autoscaling/superseded-scaling-activity-resolves-to-overridden", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_superseded_scaling_activity_resolves_to_overridden.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.suspended-state-upsert-changes-only-the-flags-it-names", "deployments": [], "key": "application-autoscaling/suspended-state-upsert-changes-only-the-flags-it-names", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_suspended_state_upsert_changes_only_the_flags_it_names.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.table-that-exists-only-in-another-region-register-rejected", "deployments": [], "key": "application-autoscaling/table-that-exists-only-in-another-region-register-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DescribeScalableTargets", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_table_that_exists_only_in_another_region_register_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.tag-operations-on-a-deregistered-target-arn-rejected", "deployments": [], "key": "application-autoscaling/tag-operations-on-a-deregistered-target-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:ListTagsForResource", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "application-autoscaling:UntagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_tag_operations_on_a_deregistered_target_arn_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.tag-resource-and-untag-roundtrip", "deployments": [], "key": "application-autoscaling/tag-resource-and-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:ListTagsForResource", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "application-autoscaling:UntagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_tag_resource_and_untag_roundtrip.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.tag-resource-nonexistent-resource-rejected", "deployments": [], "key": "application-autoscaling/tag-resource-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:ListTagsForResource", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_tag_resource_nonexistent_resource_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.tag-resource-too-many-tags-rejected", "deployments": [], "key": "application-autoscaling/tag-resource-too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:ListTagsForResource", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:TagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_tag_resource_too_many_tags_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.tags-given-at-registration-read-back-and-untagging-an-absent-key-is-a-no-op", "deployments": [], "key": "application-autoscaling/tags-given-at-registration-read-back-and-untagging-an-absent-key-is-a-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:ListTagsForResource", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:UntagResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_tags_given_at_registration_read_back_and_untagging_an_absent_key_is_a_no_op.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.target-tracking-alarm-breach-triggers-scaling-activity", "deployments": [], "key": "application-autoscaling/target-tracking-alarm-breach-triggers-scaling-activity", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/application-autoscaling/check_target_tracking_alarm_breach_triggers_scaling_activity.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.target-tracking-alarm-thresholds-are-recomputed-not-recorded", "deployments": [], "key": "application-autoscaling/target-tracking-alarm-thresholds-are-recomputed-not-recorded", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling/check_target_tracking_alarm_thresholds_are_recomputed_not_recorded.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.target-tracking-policy-manages-cloudwatch-alarms", "deployments": [], "key": "application-autoscaling/target-tracking-policy-manages-cloudwatch-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_target_tracking_policy_manages_cloudwatch_alarms.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.target-tracking-policy-provisions-cloudwatch-alarms", "deployments": [], "key": "application-autoscaling/target-tracking-policy-provisions-cloudwatch-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_target_tracking_policy_provisions_cloudwatch_alarms.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.target-tracking-policy-scales-out-table-capacity", "deployments": [], "key": "application-autoscaling/target-tracking-policy-scales-out-table-capacity", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/application-autoscaling/check_target_tracking_policy_scales_out_table_capacity.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.target-tracking-with-both-metric-specifications-rejected", "deployments": [], "key": "application-autoscaling/target-tracking-with-both-metric-specifications-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling/check_target_tracking_with_both_metric_specifications_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling.target-value-above-dynamodb-utilization-range-rejected", "deployments": [], "key": "application-autoscaling/target-value-above-dynamodb-utilization-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/application-autoscaling/check_target_value_above_dynamodb_utilization_range_rejected.py", "service": "application-autoscaling"} {"check_id": "application-autoscaling__cloudwatch__ec2__ecs__elbv2.step-scaling-continuing-alarm-adds-nothing-until-the-cooldown-ends", "deployments": [], "key": "application-autoscaling__cloudwatch__ec2__ecs__elbv2/step-scaling-continuing-alarm-adds-nothing-until-the-cooldown-ends", "labels": ["axis:negative-delivery", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/application-autoscaling__cloudwatch__ec2__ecs__elbv2/check_step_scaling_continuing_alarm_adds_nothing_until_the_cooldown_ends.py", "service": "application-autoscaling__cloudwatch__ec2__ecs__elbv2"} {"check_id": "application-autoscaling__cloudwatch__ec2__ecs__elbv2.step-scaling-suspended-scale-in-holds-while-scale-out-still-fires", "deployments": [], "key": "application-autoscaling__cloudwatch__ec2__ecs__elbv2/step-scaling-suspended-scale-in-holds-while-scale-out-still-fires", "labels": ["axis:negative-delivery", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/application-autoscaling__cloudwatch__ec2__ecs__elbv2/check_step_scaling_suspended_scale_in_holds_while_scale_out_still_fires.py", "service": "application-autoscaling__cloudwatch__ec2__ecs__elbv2"} {"check_id": "application-autoscaling__cloudwatch__ec2__ecs__sqs.step-scaling-never-fed-alarm-stays-insufficient-while-fed-twin-scales", "deployments": [], "key": "application-autoscaling__cloudwatch__ec2__ecs__sqs/step-scaling-never-fed-alarm-stays-insufficient-while-fed-twin-scales", "labels": ["axis:negative-delivery", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/application-autoscaling__cloudwatch__ec2__ecs__sqs/check_step_scaling_never_fed_alarm_stays_insufficient_while_fed_twin_scales.py", "service": "application-autoscaling__cloudwatch__ec2__ecs__sqs"} {"check_id": "application-autoscaling__cloudwatch__ec2__ecs__sqs.target-tracking-on-sqs-backlog-mints-alarms-at-target-and-ninety-percent", "deployments": [], "key": "application-autoscaling__cloudwatch__ec2__ecs__sqs/target-tracking-on-sqs-backlog-mints-alarms-at-target-and-ninety-percent", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessageBatch"], "path": "behavioral/application-autoscaling__cloudwatch__ec2__ecs__sqs/check_target_tracking_on_sqs_backlog_mints_alarms_at_target_and_ninety_percent.py", "service": "application-autoscaling__cloudwatch__ec2__ecs__sqs"} {"check_id": "application-autoscaling__dynamodb__ecs.same-bounds-change-is-parameterised-by-namespace-not-special-cased", "deployments": [], "key": "application-autoscaling__dynamodb__ecs/same-bounds-change-is-parameterised-by-namespace-not-special-cased", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__dynamodb__ecs/check_same_bounds_change_is_parameterised_by_namespace_not_special_cased.py", "service": "application-autoscaling__dynamodb__ecs"} {"check_id": "application-autoscaling__ecs.a-metric-that-never-breaches-produces-no-scaling-activity", "deployments": [], "key": "application-autoscaling__ecs/a-metric-that-never-breaches-produces-no-scaling-activity", "labels": ["axis:negative-delivery", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_a_metric_that_never_breaches_produces_no_scaling_activity.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.changing-a-policy-type-under-the-same-name-rejected", "deployments": [], "key": "application-autoscaling__ecs/changing-a-policy-type-under-the-same-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling__ecs/check_changing_a_policy_type_under_the_same_name_rejected.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.customized-metric-target-tracking-alarms-watch-the-customer-metric", "deployments": [], "key": "application-autoscaling__ecs/customized-metric-target-tracking-alarms-watch-the-customer-metric", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DescribeAlarms", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling__ecs/check_customized_metric_target_tracking_alarms_watch_the_customer_metric.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.deregister-strips-the-policy-from-a-customer-alarm-but-keeps-the-alarm", "deployments": [], "key": "application-autoscaling__ecs/deregister-strips-the-policy-from-a-customer-alarm-but-keeps-the-alarm", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling__ecs/check_deregister_strips_the_policy_from_a_customer_alarm_but_keeps_the_alarm.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.forecast-for-a-non-predictive-policy-rejected", "deployments": [], "key": "application-autoscaling__ecs/forecast-for-a-non-predictive-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:GetPredictiveScalingForecast", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling__ecs/check_forecast_for_a_non_predictive_policy_rejected.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.overlapping-step-adjustment-intervals-rejected", "deployments": [], "key": "application-autoscaling__ecs/overlapping-step-adjustment-intervals-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling__ecs/check_overlapping_step_adjustment_intervals_rejected.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.percent-change-sub-unit-rounding-and-magnitude-floor", "deployments": [], "key": "application-autoscaling__ecs/percent-change-sub-unit-rounding-and-magnitude-floor", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_percent_change_sub_unit_rounding_and_magnitude_floor.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.predictive-scaling-forecast-returns-hourly-slots-for-the-window", "deployments": [], "key": "application-autoscaling__ecs/predictive-scaling-forecast-returns-hourly-slots-for-the-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:GetPredictiveScalingForecast", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling__ecs/check_predictive_scaling_forecast_returns_hourly_slots_for_the_window.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.step-scaling-adjustment-is-clamped-into-the-current-registered-bounds", "deployments": [], "key": "application-autoscaling__ecs/step-scaling-adjustment-is-clamped-into-the-current-registered-bounds", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_step_scaling_adjustment_is_clamped_into_the_current_registered_bounds.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.step-scaling-cooldown-nets-the-prior-step-then-adds-the-whole-step-after-it", "deployments": [], "key": "application-autoscaling__ecs/step-scaling-cooldown-nets-the-prior-step-then-adds-the-whole-step-after-it", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/application-autoscaling__ecs/check_step_scaling_cooldown_nets_the_prior_step_then_adds_the_whole_step_after_it.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.step-scaling-exact-bound-picks-the-step-farther-from-the-threshold-on-both-sides", "deployments": [], "key": "application-autoscaling__ecs/step-scaling-exact-bound-picks-the-step-farther-from-the-threshold-on-both-sides", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/application-autoscaling__ecs/check_step_scaling_exact_bound_picks_the_step_farther_from_the_threshold_on_both_sides.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.step-scaling-percent-change-with-min-adjustment-magnitude", "deployments": [], "key": "application-autoscaling__ecs/step-scaling-percent-change-with-min-adjustment-magnitude", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_step_scaling_percent_change_with_min_adjustment_magnitude.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.step-scaling-policy-round-trips-and-lists-the-alarm-that-invokes-it", "deployments": [], "key": "application-autoscaling__ecs/step-scaling-policy-round-trips-and-lists-the-alarm-that-invokes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/application-autoscaling__ecs/check_step_scaling_policy_round_trips_and_lists_the_alarm_that_invokes_it.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.step-scaling-scale-in-cooldown-suppresses-then-permits", "deployments": [], "key": "application-autoscaling__ecs/step-scaling-scale-in-cooldown-suppresses-then-permits", "labels": ["axis:negative-delivery", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_step_scaling_scale_in_cooldown_suppresses_then_permits.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.step-scaling-three-adjustment-types-from-one-capacity", "deployments": [], "key": "application-autoscaling__ecs/step-scaling-three-adjustment-types-from-one-capacity", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_step_scaling_three_adjustment_types_from_one_capacity.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.suspended-scaling-dimensions-are-independent-not-one-switch", "deployments": [], "key": "application-autoscaling__ecs/suspended-scaling-dimensions-are-independent-not-one-switch", "labels": ["axis:negative-delivery", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_suspended_scaling_dimensions_are_independent_not_one_switch.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.target-tracking-converges-to-the-target-and-stops", "deployments": [], "key": "application-autoscaling__ecs/target-tracking-converges-to-the-target-and-stops", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_target_tracking_converges_to_the_target_and_stops.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__ecs.two-policies-triggered-together-scale-by-the-largest-not-the-sum", "deployments": [], "key": "application-autoscaling__ecs/two-policies-triggered-together-scale-by-the-largest-not-the-sum", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__ecs/check_two_policies_triggered_together_scale_by_the_largest_not_the_sum.py", "service": "application-autoscaling__ecs"} {"check_id": "application-autoscaling__lambda.min-capacity-pulls-lambda-provisioned-concurrency-up", "deployments": [], "key": "application-autoscaling__lambda/min-capacity-pulls-lambda-provisioned-concurrency-up", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:RegisterScalableTarget", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetAccountSettings", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:PublishVersion", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/application-autoscaling__lambda/check_min_capacity_pulls_lambda_provisioned_concurrency_up.py", "service": "application-autoscaling__lambda"} {"check_id": "application-insights.application-lifecycle-activates-on-component-monitoring", "deployments": [], "key": "application-insights/application-lifecycle-activates-on-component-monitoring", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-insights:CreateApplication", "application-insights:DeleteApplication", "application-insights:DescribeApplication", "application-insights:DescribeComponentConfiguration", "application-insights:ListComponents", "application-insights:UpdateComponentConfiguration", "resource-groups:CreateGroup", "resource-groups:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/application-insights/check_application_lifecycle_activates_on_component_monitoring.py", "service": "application-insights"} {"check_id": "application-insights.custom-component-ec2-only-and-exclusive", "deployments": [], "key": "application-insights/custom-component-ec2-only-and-exclusive", "labels": ["axis:rejection", "plane:control"], "operations": ["application-insights:CreateApplication", "application-insights:CreateComponent", "application-insights:DeleteApplication", "application-insights:DeleteComponent", "application-insights:DescribeComponent", "application-insights:ListComponents", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeVolumes", "ec2:RunInstances", "ec2:TerminateInstances", "resource-groups:CreateGroup", "resource-groups:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "ssm:GetParameter"], "path": "behavioral/application-insights/check_custom_component_ec2_only_and_exclusive.py", "service": "application-insights"} {"check_id": "application-insights__cloudformation__resource-groups.deploy-applicationinsights-application-missing-resource-group-rejected", "deployments": [], "key": "application-insights__cloudformation__resource-groups/deploy-applicationinsights-application-missing-resource-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-insights:DescribeApplication", "application-insights:ListApplications", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/application-insights__cloudformation__resource-groups/check_deploy_applicationinsights_application_missing_resource_group_rejected.py", "service": "application-insights__cloudformation__resource-groups"} {"check_id": "application-insights__cloudformation__resource-groups.deploy-applicationinsights-application-round-trip-and-delete", "deployments": [], "key": "application-insights__cloudformation__resource-groups/deploy-applicationinsights-application-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-insights:DescribeApplication", "application-insights:ListApplications", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "resource-groups:GetGroup", "resource-groups:GetGroupQuery"], "path": "behavioral/application-insights__cloudformation__resource-groups/check_deploy_applicationinsights_application_round_trip_and_delete.py", "service": "application-insights__cloudformation__resource-groups"} {"check_id": "application-signals.batch-delete-instrumentation-configurations-partial-failure-rejected", "deployments": [], "key": "application-signals/batch-delete-instrumentation-configurations-partial-failure-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-signals:BatchDeleteInstrumentationConfigurations", "application-signals:CreateInstrumentationConfiguration", "application-signals:DeleteInstrumentationConfiguration", "application-signals:GetInstrumentationConfiguration"], "path": "behavioral/application-signals/check_batch_delete_instrumentation_configurations_partial_failure_rejected.py", "service": "application-signals"} {"check_id": "application-signals.batch-get-budget-report-insufficient-data-for-fresh-slo", "deployments": [], "key": "application-signals/batch-get-budget-report-insufficient-data-for-fresh-slo", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:BatchGetServiceLevelObjectiveBudgetReport", "application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective"], "path": "behavioral/application-signals/check_batch_get_budget_report_insufficient_data_for_fresh_slo.py", "service": "application-signals"} {"check_id": "application-signals.batch-update-exclusion-windows-add-and-remove-roundtrip", "deployments": [], "key": "application-signals/batch-update-exclusion-windows-add-and-remove-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:BatchUpdateExclusionWindows", "application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:ListServiceLevelObjectiveExclusionWindows"], "path": "behavioral/application-signals/check_batch_update_exclusion_windows_add_and_remove_roundtrip.py", "service": "application-signals"} {"check_id": "application-signals.concurrent-create-slo-same-name-exactly-one-wins", "deployments": [], "key": "application-signals/concurrent-create-slo-same-name-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:GetServiceLevelObjective"], "path": "behavioral/application-signals/check_concurrent_create_slo_same_name_exactly_one_wins.py", "service": "application-signals"} {"check_id": "application-signals.delete-grouping-configuration-removes-configuration", "deployments": [], "key": "application-signals/delete-grouping-configuration-removes-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:DeleteGroupingConfiguration", "application-signals:ListGroupingAttributeDefinitions", "application-signals:PutGroupingConfiguration"], "path": "behavioral/application-signals/check_delete_grouping_configuration_removes_configuration.py", "service": "application-signals"} {"check_id": "application-signals.delete-instrumentation-config-not-found-rejected", "deployments": [], "key": "application-signals/delete-instrumentation-config-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-signals:CreateInstrumentationConfiguration", "application-signals:DeleteInstrumentationConfiguration", "application-signals:GetInstrumentationConfiguration"], "path": "behavioral/application-signals/check_delete_instrumentation_config_not_found_rejected.py", "service": "application-signals"} {"check_id": "application-signals.grouping-configuration-overwrite-replaces-previous", "deployments": [], "key": "application-signals/grouping-configuration-overwrite-replaces-previous", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:DeleteGroupingConfiguration", "application-signals:ListGroupingAttributeDefinitions", "application-signals:PutGroupingConfiguration"], "path": "behavioral/application-signals/check_grouping_configuration_overwrite_replaces_previous.py", "service": "application-signals"} {"check_id": "application-signals.grouping-configuration-put-list-roundtrip", "deployments": [], "key": "application-signals/grouping-configuration-put-list-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:DeleteGroupingConfiguration", "application-signals:ListGroupingAttributeDefinitions", "application-signals:PutGroupingConfiguration"], "path": "behavioral/application-signals/check_grouping_configuration_put_list_roundtrip.py", "service": "application-signals"} {"check_id": "application-signals.instrumentation-config-create-get-delete-lifecycle", "deployments": [], "key": "application-signals/instrumentation-config-create-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:CreateInstrumentationConfiguration", "application-signals:DeleteInstrumentationConfiguration", "application-signals:GetInstrumentationConfiguration"], "path": "behavioral/application-signals/check_instrumentation_config_create_get_delete_lifecycle.py", "service": "application-signals"} {"check_id": "application-signals.instrumentation-status-error-cause-via-report", "deployments": [], "key": "application-signals/instrumentation-status-error-cause-via-report", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:CreateInstrumentationConfiguration", "application-signals:DeleteInstrumentationConfiguration", "application-signals:GetInstrumentationConfigurationStatus", "application-signals:ReportInstrumentationConfigurationStatus"], "path": "behavioral/application-signals/check_instrumentation_status_error_cause_via_report.py", "service": "application-signals"} {"check_id": "application-signals.instrumentation-status-events-accumulate-multiple-transitions", "deployments": [], "key": "application-signals/instrumentation-status-events-accumulate-multiple-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["application-signals:CreateInstrumentationConfiguration", "application-signals:DeleteInstrumentationConfiguration", "application-signals:GetInstrumentationConfigurationStatus", "application-signals:ReportInstrumentationConfigurationStatus"], "path": "behavioral/application-signals/check_instrumentation_status_events_accumulate_multiple_transitions.py", "service": "application-signals"} {"check_id": "application-signals.instrumentation-status-transition-active-to-disabled-via-report", "deployments": [], "key": "application-signals/instrumentation-status-transition-active-to-disabled-via-report", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["application-signals:CreateInstrumentationConfiguration", "application-signals:DeleteInstrumentationConfiguration", "application-signals:GetInstrumentationConfigurationStatus", "application-signals:ReportInstrumentationConfigurationStatus"], "path": "behavioral/application-signals/check_instrumentation_status_transition_active_to_disabled_via_report.py", "service": "application-signals"} {"check_id": "application-signals.instrumentation-status-transition-ready-to-active-via-report", "deployments": [], "key": "application-signals/instrumentation-status-transition-ready-to-active-via-report", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["application-signals:CreateInstrumentationConfiguration", "application-signals:DeleteInstrumentationConfiguration", "application-signals:GetInstrumentationConfigurationStatus", "application-signals:ReportInstrumentationConfigurationStatus"], "path": "behavioral/application-signals/check_instrumentation_status_transition_ready_to_active_via_report.py", "service": "application-signals"} {"check_id": "application-signals.list-instrumentation-configurations-reflects-created-config", "deployments": [], "key": "application-signals/list-instrumentation-configurations-reflects-created-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:CreateInstrumentationConfiguration", "application-signals:DeleteInstrumentationConfiguration", "application-signals:ListInstrumentationConfigurations"], "path": "behavioral/application-signals/check_list_instrumentation_configurations_reflects_created_config.py", "service": "application-signals"} {"check_id": "application-signals.list-service-level-objectives-filters-by-metric-source-type", "deployments": [], "key": "application-signals/list-service-level-objectives-filters-by-metric-source-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:ListServiceLevelObjectives"], "path": "behavioral/application-signals/check_list_service_level_objectives_filters_by_metric_source_type.py", "service": "application-signals"} {"check_id": "application-signals.slo-budget-report-reflects-goal-and-sli-fields", "deployments": [], "key": "application-signals/slo-budget-report-reflects-goal-and-sli-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:BatchGetServiceLevelObjectiveBudgetReport", "application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective"], "path": "behavioral/application-signals/check_slo_budget_report_reflects_goal_and_sli_fields.py", "service": "application-signals"} {"check_id": "application-signals.slo-create-get-delete-lifecycle", "deployments": [], "key": "application-signals/slo-create-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:GetServiceLevelObjective", "application-signals:ListServiceLevelObjectives", "application-signals:UpdateServiceLevelObjective"], "path": "behavioral/application-signals/check_slo_create_get_delete_lifecycle.py", "service": "application-signals"} {"check_id": "application-signals.slo-duplicate-name-conflict-rejected", "deployments": [], "key": "application-signals/slo-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:GetServiceLevelObjective"], "path": "behavioral/application-signals/check_slo_duplicate_name_conflict_rejected.py", "service": "application-signals"} {"check_id": "application-signals.slo-incompatible-sli-type-switch-rejected", "deployments": [], "key": "application-signals/slo-incompatible-sli-type-switch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:GetServiceLevelObjective", "application-signals:UpdateServiceLevelObjective"], "path": "behavioral/application-signals/check_slo_incompatible_sli_type_switch_rejected.py", "service": "application-signals"} {"check_id": "application-signals.slo-missing-sli-config-validation-rejected", "deployments": [], "key": "application-signals/slo-missing-sli-config-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:GetServiceLevelObjective", "application-signals:ListServiceLevelObjectives"], "path": "behavioral/application-signals/check_slo_missing_sli_config_validation_rejected.py", "service": "application-signals"} {"check_id": "application-signals.slo-update-persists-fields-and-advances-timestamp", "deployments": [], "key": "application-signals/slo-update-persists-fields-and-advances-timestamp", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:GetServiceLevelObjective", "application-signals:UpdateServiceLevelObjective"], "path": "behavioral/application-signals/check_slo_update_persists_fields_and_advances_timestamp.py", "service": "application-signals"} {"check_id": "application-signals.tag-resource-list-untag-roundtrip", "deployments": [], "key": "application-signals/tag-resource-list-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:ListTagsForResource", "application-signals:TagResource", "application-signals:UntagResource"], "path": "behavioral/application-signals/check_tag_resource_list_untag_roundtrip.py", "service": "application-signals"} {"check_id": "application-signals.tag-resource-nonexistent-arn-rejected", "deployments": [], "key": "application-signals/tag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:ListTagsForResource", "application-signals:TagResource"], "path": "behavioral/application-signals/check_tag_resource_nonexistent_arn_rejected.py", "service": "application-signals"} {"check_id": "application-signals.untag-resource-removes-specific-key-only", "deployments": [], "key": "application-signals/untag-resource-removes-specific-key-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:CreateServiceLevelObjective", "application-signals:DeleteServiceLevelObjective", "application-signals:ListTagsForResource", "application-signals:TagResource", "application-signals:UntagResource"], "path": "behavioral/application-signals/check_untag_resource_removes_specific_key_only.py", "service": "application-signals"} {"check_id": "application-signals__cloudformation.deploy-application-signals-grouping-configuration-singleton-round-trip-and-delete", "deployments": [], "key": "application-signals__cloudformation/deploy-application-signals-grouping-configuration-singleton-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:ListGroupingAttributeDefinitions", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/application-signals__cloudformation/check_deploy_application_signals_grouping_configuration_singleton_round_trip_and_delete.py", "service": "application-signals__cloudformation"} {"check_id": "application-signals__cloudformation.deploy-application-signals-instrumentation-config-and-slo-round-trip-and-delete", "deployments": [], "key": "application-signals__cloudformation/deploy-application-signals-instrumentation-config-and-slo-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-signals:GetInstrumentationConfiguration", "application-signals:GetServiceLevelObjective", "application-signals:ListTagsForResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/application-signals__cloudformation/check_deploy_application_signals_instrumentation_config_and_slo_round_trip_and_delete.py", "service": "application-signals__cloudformation"} {"check_id": "application-signals__cloudformation.deploy-application-signals-instrumentation-config-missing-code-unit-rejected", "deployments": [], "key": "application-signals__cloudformation/deploy-application-signals-instrumentation-config-missing-code-unit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/application-signals__cloudformation/check_deploy_application_signals_instrumentation_config_missing_code_unit_rejected.py", "service": "application-signals__cloudformation"} {"check_id": "appstream.appblock-deletion-blocked-while-associated-rejected", "deployments": [], "key": "appstream/appblock-deletion-blocked-while-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:CreateAppBlock", "appstream:CreateApplication", "appstream:DeleteAppBlock", "appstream:DeleteApplication", "appstream:DescribeAppBlocks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appstream/check_appblock_deletion_blocked_while_associated_rejected.py", "service": "appstream"} {"check_id": "appstream.appblockbuilder-appblock-association-lifecycle", "deployments": [], "key": "appstream/appblockbuilder-appblock-association-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:AssociateAppBlockBuilderAppBlock", "appstream:CreateAppBlock", "appstream:CreateAppBlockBuilder", "appstream:DeleteAppBlock", "appstream:DeleteAppBlockBuilder", "appstream:DescribeAppBlockBuilderAppBlockAssociations", "appstream:DisassociateAppBlockBuilderAppBlock", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/appstream/check_appblockbuilder_appblock_association_lifecycle.py", "service": "appstream"} {"check_id": "appstream.appblockbuilder-association-incompatible-packaging-rejected", "deployments": [], "key": "appstream/appblockbuilder-association-incompatible-packaging-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:AssociateAppBlockBuilderAppBlock", "appstream:CreateAppBlock", "appstream:CreateAppBlockBuilder", "appstream:DeleteAppBlock", "appstream:DeleteAppBlockBuilder", "appstream:DescribeAppBlockBuilderAppBlockAssociations", "appstream:DisassociateAppBlockBuilderAppBlock", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/appstream/check_appblockbuilder_association_incompatible_packaging_rejected.py", "service": "appstream"} {"check_id": "appstream.appblockbuilder-invalid-role-rejected", "deployments": [], "key": "appstream/appblockbuilder-invalid-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:CreateAppBlockBuilder", "appstream:DeleteAppBlockBuilder", "appstream:DescribeAppBlockBuilders", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/appstream/check_appblockbuilder_invalid_role_rejected.py", "service": "appstream"} {"check_id": "appstream.appblockbuilder-running-update-rejected", "deployments": [], "key": "appstream/appblockbuilder-running-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:AssociateAppBlockBuilderAppBlock", "appstream:CreateAppBlock", "appstream:CreateAppBlockBuilder", "appstream:DeleteAppBlock", "appstream:DeleteAppBlockBuilder", "appstream:DescribeAppBlockBuilders", "appstream:DisassociateAppBlockBuilderAppBlock", "appstream:StartAppBlockBuilder", "appstream:StopAppBlockBuilder", "appstream:UpdateAppBlockBuilder", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/appstream/check_appblockbuilder_running_update_rejected.py", "service": "appstream"} {"check_id": "appstream.application-fleet-association-lifecycle", "deployments": [], "key": "appstream/application-fleet-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:AssociateApplicationFleet", "appstream:CreateAppBlock", "appstream:CreateApplication", "appstream:CreateFleet", "appstream:DeleteAppBlock", "appstream:DeleteApplication", "appstream:DeleteFleet", "appstream:DescribeApplicationFleetAssociations", "appstream:DisassociateApplicationFleet", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/appstream/check_application_fleet_association_lifecycle.py", "service": "appstream"} {"check_id": "appstream.application-update-lifecycle", "deployments": [], "key": "appstream/application-update-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:CreateAppBlock", "appstream:CreateApplication", "appstream:DeleteAppBlock", "appstream:DeleteApplication", "appstream:DescribeApplications", "appstream:UpdateApplication", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appstream/check_application_update_lifecycle.py", "service": "appstream"} {"check_id": "appstream.associate-application-fleet-platform-mismatch-rejected", "deployments": [], "key": "appstream/associate-application-fleet-platform-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:AssociateApplicationFleet", "appstream:CreateAppBlock", "appstream:CreateApplication", "appstream:CreateFleet", "appstream:DeleteAppBlock", "appstream:DeleteApplication", "appstream:DeleteFleet", "appstream:DescribeApplicationFleetAssociations", "appstream:DisassociateApplicationFleet", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/appstream/check_associate_application_fleet_platform_mismatch_rejected.py", "service": "appstream"} {"check_id": "appstream.batch-associate-disassociate-user-stack-round-trip", "deployments": [], "key": "appstream/batch-associate-disassociate-user-stack-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:BatchAssociateUserStack", "appstream:BatchDisassociateUserStack", "appstream:CreateStack", "appstream:CreateUser", "appstream:DeleteStack", "appstream:DeleteUser", "appstream:DescribeUserStackAssociations", "appstream:DescribeUsers"], "path": "behavioral/appstream/check_batch_associate_disassociate_user_stack_round_trip.py", "service": "appstream"} {"check_id": "appstream.concurrent-user-creation-duplicate-name", "deployments": [], "key": "appstream/concurrent-user-creation-duplicate-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:CreateUser", "appstream:DeleteUser", "appstream:DescribeUsers"], "path": "behavioral/appstream/check_concurrent_user_creation_duplicate_name.py", "service": "appstream"} {"check_id": "appstream.create-application-nonexistent-appblock-rejected", "deployments": [], "key": "appstream/create-application-nonexistent-appblock-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:CreateAppBlock", "appstream:CreateApplication", "appstream:DeleteAppBlock", "appstream:DeleteApplication", "appstream:DescribeApplications", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/appstream/check_create_application_nonexistent_appblock_rejected.py", "service": "appstream"} {"check_id": "appstream.create-duplicate-stack-name-rejected", "deployments": [], "key": "appstream/create-duplicate-stack-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:CreateStack", "appstream:DeleteStack", "appstream:DescribeStacks"], "path": "behavioral/appstream/check_create_duplicate_stack_name_rejected.py", "service": "appstream"} {"check_id": "appstream.delete-fleet-associated-with-stack-rejected", "deployments": [], "key": "appstream/delete-fleet-associated-with-stack-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:AssociateFleet", "appstream:CreateFleet", "appstream:CreateStack", "appstream:DeleteFleet", "appstream:DeleteStack", "appstream:DescribeFleets", "appstream:DisassociateFleet", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/appstream/check_delete_fleet_associated_with_stack_rejected.py", "service": "appstream"} {"check_id": "appstream.delete-nonexistent-fleet-not-found", "deployments": [], "key": "appstream/delete-nonexistent-fleet-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:CreateFleet", "appstream:DeleteFleet", "appstream:DescribeFleets", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/appstream/check_delete_nonexistent_fleet_not_found.py", "service": "appstream"} {"check_id": "appstream.delete-stack-with-associated-fleet-rejected", "deployments": [], "key": "appstream/delete-stack-with-associated-fleet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:AssociateFleet", "appstream:CreateFleet", "appstream:CreateStack", "appstream:DeleteFleet", "appstream:DeleteStack", "appstream:DescribeStacks", "appstream:DisassociateFleet", "appstream:ListAssociatedFleets", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/appstream/check_delete_stack_with_associated_fleet_rejected.py", "service": "appstream"} {"check_id": "appstream.entitlement-application-association-lifecycle", "deployments": [], "key": "appstream/entitlement-application-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:AssociateApplicationToEntitlement", "appstream:CreateAppBlock", "appstream:CreateApplication", "appstream:CreateEntitlement", "appstream:CreateStack", "appstream:DeleteAppBlock", "appstream:DeleteApplication", "appstream:DeleteEntitlement", "appstream:DeleteStack", "appstream:DescribeEntitlements", "appstream:DisassociateApplicationFromEntitlement", "appstream:ListEntitledApplications", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appstream/check_entitlement_application_association_lifecycle.py", "service": "appstream"} {"check_id": "appstream.fleet-stack-association-lifecycle", "deployments": [], "key": "appstream/fleet-stack-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:AssociateFleet", "appstream:CreateFleet", "appstream:CreateStack", "appstream:DeleteFleet", "appstream:DeleteStack", "appstream:DisassociateFleet", "appstream:ListAssociatedFleets", "appstream:ListAssociatedStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/appstream/check_fleet_stack_association_lifecycle.py", "service": "appstream"} {"check_id": "appstream.stack-theme-lifecycle", "deployments": [], "key": "appstream/stack-theme-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:CreateStack", "appstream:CreateThemeForStack", "appstream:DeleteStack", "appstream:DeleteThemeForStack", "appstream:DescribeThemeForStack", "appstream:UpdateThemeForStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appstream/check_stack_theme_lifecycle.py", "service": "appstream"} {"check_id": "appstream.stack-update-settings-lifecycle", "deployments": [], "key": "appstream/stack-update-settings-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:CreateStack", "appstream:DeleteStack", "appstream:DescribeStacks", "appstream:UpdateStack"], "path": "behavioral/appstream/check_stack_update_settings_lifecycle.py", "service": "appstream"} {"check_id": "appstream.streaming-url-rejected-until-fleet-running", "deployments": [], "key": "appstream/streaming-url-rejected-until-fleet-running", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appstream:AssociateFleet", "appstream:CreateFleet", "appstream:CreateStack", "appstream:CreateStreamingURL", "appstream:DeleteFleet", "appstream:DeleteStack", "appstream:DescribeFleets", "appstream:DescribeSessions", "appstream:DisassociateFleet", "appstream:StartFleet", "appstream:StopFleet", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/appstream/check_streaming_url_rejected_until_fleet_running.py", "service": "appstream"} {"check_id": "appstream.tag-resource-limit-exceeded-rejected", "deployments": [], "key": "appstream/tag-resource-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:CreateStack", "appstream:DeleteStack", "appstream:ListTagsForResource", "appstream:TagResource"], "path": "behavioral/appstream/check_tag_resource_limit_exceeded_rejected.py", "service": "appstream"} {"check_id": "appstream.tag-untag-resource-round-trip", "deployments": [], "key": "appstream/tag-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:CreateStack", "appstream:DeleteStack", "appstream:ListTagsForResource", "appstream:TagResource", "appstream:UntagResource"], "path": "behavioral/appstream/check_tag_untag_resource_round_trip.py", "service": "appstream"} {"check_id": "appstream.usage-report-subscription-singleton-limit-rejected", "deployments": [], "key": "appstream/usage-report-subscription-singleton-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:CreateUsageReportSubscription", "appstream:DeleteUsageReportSubscription", "appstream:DescribeUsageReportSubscriptions"], "path": "behavioral/appstream/check_usage_report_subscription_singleton_limit_rejected.py", "service": "appstream"} {"check_id": "appstream.user-enable-disable-state-transition", "deployments": [], "key": "appstream/user-enable-disable-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:CreateUser", "appstream:DeleteUser", "appstream:DescribeUsers", "appstream:DisableUser", "appstream:EnableUser"], "path": "behavioral/appstream/check_user_enable_disable_state_transition.py", "service": "appstream"} {"check_id": "appstream__cloudformation.deploy-appstream-fleet-stack-association-round-trip-and-delete", "deployments": [], "key": "appstream__cloudformation/deploy-appstream-fleet-stack-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appstream:DescribeFleets", "appstream:DescribeStacks", "appstream:ListTagsForResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appstream__cloudformation/check_deploy_appstream_fleet_stack_association_round_trip_and_delete.py", "service": "appstream__cloudformation"} {"check_id": "appstream__cloudformation.deploy-appstream-imagebuilder-bad-image-rejected-and-valid-image-round-trip-and-delete", "deployments": [], "key": "appstream__cloudformation/deploy-appstream-imagebuilder-bad-image-rejected-and-valid-image-round-trip-and-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["appstream:DescribeImageBuilders", "appstream:ListTagsForResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appstream__cloudformation/check_deploy_appstream_imagebuilder_bad_image_rejected_and_valid_image_round_trip_and_delete.py", "service": "appstream__cloudformation"} {"check_id": "appsync.access-denied-channel-namespace", "deployments": [], "key": "appsync/access-denied-channel-namespace", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace", "appsync:UpdateChannelNamespace", "iam:CreateAccessKey", "iam:CreateUser"], "path": "behavioral/appsync/check_access_denied_channel_namespace.py", "service": "appsync"} {"check_id": "appsync.access-denied-domain-name", "deployments": [], "key": "appsync/access-denied-domain-name", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDomainName", "appsync:DeleteDomainName", "appsync:GetDomainName", "appsync:ListDomainNames", "appsync:UpdateDomainName", "iam:CreateAccessKey", "iam:CreateUser", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_access_denied_domain_name.py", "service": "appsync"} {"check_id": "appsync.access-denied-event-api-mgmt", "deployments": [], "key": "appsync/access-denied-event-api-mgmt", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateApi", "appsync:CreateApi", "appsync:DeleteApi", "appsync:DisassociateApi", "appsync:GetApi", "appsync:GetApiAssociation", "appsync:ListApis", "appsync:UpdateApi", "iam:CreateAccessKey", "iam:CreateUser"], "path": "behavioral/appsync/check_access_denied_event_api_mgmt.py", "service": "appsync"} {"check_id": "appsync.access-denied-flush-api-cache", "deployments": [], "key": "appsync/access-denied-flush-api-cache", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_access_denied_flush_api_cache.py", "service": "appsync"} {"check_id": "appsync.access-denied-get-domain-name", "deployments": [], "key": "appsync/access-denied-get-domain-name", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetDomainName", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_access_denied_get_domain_name.py", "service": "appsync"} {"check_id": "appsync.access-denied-graphql-api", "deployments": [], "key": "appsync/access-denied-graphql-api", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables", "appsync:UpdateGraphqlApi", "iam:CreateAccessKey", "iam:CreateUser"], "path": "behavioral/appsync/check_access_denied_graphql_api.py", "service": "appsync"} {"check_id": "appsync.access-denied-list-domain-names", "deployments": [], "key": "appsync/access-denied-list-domain-names", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:ListDomainNames", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_access_denied_list_domain_names.py", "service": "appsync"} {"check_id": "appsync.access-denied-sandbox-eval", "deployments": [], "key": "appsync/access-denied-sandbox-eval", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:EvaluateCode", "appsync:EvaluateMappingTemplate", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/appsync/check_access_denied_sandbox_eval.py", "service": "appsync"} {"check_id": "appsync.access-denied-tagging", "deployments": [], "key": "appsync/access-denied-tagging", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListTagsForResource", "appsync:TagResource", "appsync:UntagResource", "iam:CreateAccessKey", "iam:CreateUser"], "path": "behavioral/appsync/check_access_denied_tagging.py", "service": "appsync"} {"check_id": "appsync.api-association-get-not-found-when-unassociated", "deployments": [], "key": "appsync/api-association-get-not-found-when-unassociated", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "appsync:AssociateApi", "appsync:CreateDomainName", "appsync:CreateGraphqlApi", "appsync:DeleteDomainName", "appsync:DeleteGraphqlApi", "appsync:DisassociateApi", "appsync:GetApiAssociation", "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListTagsForResource"], "path": "behavioral/appsync/check_api_association_get_not_found_when_unassociated.py", "service": "appsync"} {"check_id": "appsync.api-cache-flush-and-update-lifecycle", "deployments": [], "key": "appsync/api-cache-flush-and-update-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_api_cache_flush_and_update_lifecycle.py", "service": "appsync"} {"check_id": "appsync.api-cache-lifecycle-state-transitions", "deployments": [], "key": "appsync/api-cache-lifecycle-state-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache"], "path": "behavioral/appsync/check_api_cache_lifecycle_state_transitions.py", "service": "appsync"} {"check_id": "appsync.api-cache-lifecycle-transitions", "deployments": [], "key": "appsync/api-cache-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_api_cache_lifecycle_transitions.py", "service": "appsync"} {"check_id": "appsync.api-cache-refuses-update-and-delete-while-creating", "deployments": [], "key": "appsync/api-cache-refuses-update-and-delete-while-creating", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_api_cache_refuses_update_and_delete_while_creating.py", "service": "appsync"} {"check_id": "appsync.api-cache-ttl-boundary-enforcement", "deployments": [], "key": "appsync/api-cache-ttl-boundary-enforcement", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_api_cache_ttl_boundary_enforcement.py", "service": "appsync"} {"check_id": "appsync.api-cache-ttl-expiry-enforced", "deployments": [], "key": "appsync/api-cache-ttl-expiry-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_api_cache_ttl_expiry_enforced.py", "service": "appsync"} {"check_id": "appsync.api-cache-ttl-out-of-range-rejected", "deployments": [], "key": "appsync/api-cache-ttl-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_api_cache_ttl_out_of_range_rejected.py", "service": "appsync"} {"check_id": "appsync.api-cache-update-persists", "deployments": [], "key": "appsync/api-cache-update-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_api_cache_update_persists.py", "service": "appsync"} {"check_id": "appsync.api-cache-update-ttl-persists", "deployments": [], "key": "appsync/api-cache-update-ttl-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_api_cache_update_ttl_persists.py", "service": "appsync"} {"check_id": "appsync.api-crud-lifecycle", "deployments": [], "key": "appsync/api-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:ListApis", "appsync:UpdateApi"], "path": "behavioral/appsync/check_api_crud_lifecycle.py", "service": "appsync"} {"check_id": "appsync.api-key-concurrent-creation-count", "deployments": [], "key": "appsync/api-key-concurrent-creation-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_api_key_concurrent_creation_count.py", "service": "appsync"} {"check_id": "appsync.api-key-default-expiry-seven-days", "deployments": [], "key": "appsync/api-key-default-expiry-seven-days", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_api_key_default_expiry_seven_days.py", "service": "appsync"} {"check_id": "appsync.api-key-expiration-enforced-after-ttl", "deployments": [], "key": "appsync/api-key-expiration-enforced-after-ttl", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys", "appsync:UpdateApiKey"], "path": "behavioral/appsync/check_api_key_expiration_enforced_after_ttl.py", "service": "appsync"} {"check_id": "appsync.api-key-expiration-epoch-precision-round-trip", "deployments": [], "key": "appsync/api-key-expiration-epoch-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_api_key_expiration_epoch_precision_round_trip.py", "service": "appsync"} {"check_id": "appsync.api-key-expiry-out-of-bounds-rejected", "deployments": [], "key": "appsync/api-key-expiry-out-of-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_api_key_expiry_out_of_bounds_rejected.py", "service": "appsync"} {"check_id": "appsync.api-key-expiry-ttl-enforced-denies-access", "deployments": [], "key": "appsync/api-key-expiry-ttl-enforced-denies-access", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:ListApiKeys", "appsync:StartSchemaCreation", "appsync:UpdateApiKey"], "path": "behavioral/appsync/check_api_key_expiry_ttl_enforced_denies_access.py", "service": "appsync"} {"check_id": "appsync.api-key-limit-exceeded", "deployments": [], "key": "appsync/api-key-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_api_key_limit_exceeded.py", "service": "appsync"} {"check_id": "appsync.api-key-update-expiry-extends-deletion", "deployments": [], "key": "appsync/api-key-update-expiry-extends-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys", "appsync:UpdateApiKey"], "path": "behavioral/appsync/check_api_key_update_expiry_extends_deletion.py", "service": "appsync"} {"check_id": "appsync.api-key-validity-out-of-bounds-rejected", "deployments": [], "key": "appsync/api-key-validity-out-of-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_api_key_validity_out_of_bounds_rejected.py", "service": "appsync"} {"check_id": "appsync.api-lifecycle-state-transitions", "deployments": [], "key": "appsync/api-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:UpdateApi"], "path": "behavioral/appsync/check_api_lifecycle_state_transitions.py", "service": "appsync"} {"check_id": "appsync.api-resource-lifecycle-state-transitions", "deployments": [], "key": "appsync/api-resource-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:ListApis", "appsync:UpdateApi"], "path": "behavioral/appsync/check_api_resource_lifecycle_state_transitions.py", "service": "appsync"} {"check_id": "appsync.appsync-deleted-api-key-subscription-rejected", "deployments": [], "key": "appsync/appsync-deleted-api-key-subscription-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:ListApiKeys", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_appsync_deleted_api_key_subscription_rejected.py", "service": "appsync"} {"check_id": "appsync.appsync-graphql-query-end-to-end", "deployments": [], "key": "appsync/appsync-graphql-query-end-to-end", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_appsync_graphql_query_end_to_end.py", "service": "appsync"} {"check_id": "appsync.appsync-merged-api-executes-source-api-resolver", "deployments": [], "key": "appsync/appsync-merged-api-executes-source-api-resolver", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_appsync_merged_api_executes_source_api_resolver.py", "service": "appsync"} {"check_id": "appsync.appsync-subscription-delivers-mutation-to-realtime-subscriber", "deployments": [], "key": "appsync/appsync-subscription-delivers-mutation-to-realtime-subscriber", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_appsync_subscription_delivers_mutation_to_realtime_subscriber.py", "service": "appsync"} {"check_id": "appsync.appsync-subscription-filter-excludes-nonmatching-mutation", "deployments": [], "key": "appsync/appsync-subscription-filter-excludes-nonmatching-mutation", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_appsync_subscription_filter_excludes_nonmatching_mutation.py", "service": "appsync"} {"check_id": "appsync.associate-api-domain-mismatched-certificate-rejected", "deployments": [], "key": "appsync/associate-api-domain-mismatched-certificate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "appsync:CreateDomainName", "appsync:DeleteDomainName", "appsync:GetDomainName", "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListTagsForResource"], "path": "behavioral/appsync/check_associate_api_domain_mismatched_certificate_rejected.py", "service": "appsync"} {"check_id": "appsync.associate-merged-graphql-api-invalid-source-rejected", "deployments": [], "key": "appsync/associate-merged-graphql-api-invalid-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_associate_merged_graphql_api_invalid_source_rejected.py", "service": "appsync"} {"check_id": "appsync.auth-type-switch-to-iam-denies-api-key-and-admits-sigv4", "deployments": [], "key": "appsync/auth-type-switch-to-iam-denies-api-key-and-admits-sigv4", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:ListApiKeys", "appsync:StartSchemaCreation", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_auth_type_switch_to_iam_denies_api_key_and_admits_sigv4.py", "service": "appsync"} {"check_id": "appsync.channel-namespace-crud-lifecycle", "deployments": [], "key": "appsync/channel-namespace-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace", "appsync:UpdateChannelNamespace"], "path": "behavioral/appsync/check_channel_namespace_crud_lifecycle.py", "service": "appsync"} {"check_id": "appsync.channel-namespace-duplicate-name-conflict", "deployments": [], "key": "appsync/channel-namespace-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:ListChannelNamespaces"], "path": "behavioral/appsync/check_channel_namespace_duplicate_name_conflict.py", "service": "appsync"} {"check_id": "appsync.channel-namespace-duplicate-name-rejected", "deployments": [], "key": "appsync/channel-namespace-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace", "appsync:ListChannelNamespaces"], "path": "behavioral/appsync/check_channel_namespace_duplicate_name_rejected.py", "service": "appsync"} {"check_id": "appsync.channel-namespace-lifecycle", "deployments": [], "key": "appsync/channel-namespace-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace", "appsync:ListChannelNamespaces", "appsync:UpdateChannelNamespace"], "path": "behavioral/appsync/check_channel_namespace_lifecycle.py", "service": "appsync"} {"check_id": "appsync.channel-namespace-list-ordering", "deployments": [], "key": "appsync/channel-namespace-list-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace", "appsync:ListChannelNamespaces"], "path": "behavioral/appsync/check_channel_namespace_list_ordering.py", "service": "appsync"} {"check_id": "appsync.concurrent-api-cache-create-rejected", "deployments": [], "key": "appsync/concurrent-api-cache-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache"], "path": "behavioral/appsync/check_concurrent_api_cache_create_rejected.py", "service": "appsync"} {"check_id": "appsync.concurrent-associate-merged-graphql-api-conflict", "deployments": [], "key": "appsync/concurrent-associate-merged-graphql-api-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_concurrent_associate_merged_graphql_api_conflict.py", "service": "appsync"} {"check_id": "appsync.concurrent-association-operations", "deployments": [], "key": "appsync/concurrent-association-operations", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateApi", "appsync:DisassociateMergedGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "iam:CreateRole", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_concurrent_association_operations.py", "service": "appsync"} {"check_id": "appsync.concurrent-channel-namespace-creation-single-winner", "deployments": [], "key": "appsync/concurrent-channel-namespace-creation-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:ListChannelNamespaces"], "path": "behavioral/appsync/check_concurrent_channel_namespace_creation_single_winner.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-api-cache", "deployments": [], "key": "appsync/concurrent-update-api-cache", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_concurrent_update_api_cache.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-api-single-winner", "deployments": [], "key": "appsync/concurrent-update-api-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:UpdateApi"], "path": "behavioral/appsync/check_concurrent_update_api_single_winner.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-channel-namespace", "deployments": [], "key": "appsync/concurrent-update-channel-namespace", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace", "appsync:UpdateChannelNamespace"], "path": "behavioral/appsync/check_concurrent_update_channel_namespace.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-data-source", "deployments": [], "key": "appsync/concurrent-update-data-source", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:UpdateDataSource"], "path": "behavioral/appsync/check_concurrent_update_data_source.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-data-source-conflict", "deployments": [], "key": "appsync/concurrent-update-data-source-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:UpdateDataSource"], "path": "behavioral/appsync/check_concurrent_update_data_source_conflict.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-domain-name-single-winner", "deployments": [], "key": "appsync/concurrent-update-domain-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "appsync:CreateDomainName", "appsync:GetDomainName"], "path": "behavioral/appsync/check_concurrent_update_domain_name_single_winner.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-function", "deployments": [], "key": "appsync/concurrent-update-function", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:GetFunction", "appsync:UpdateFunction"], "path": "behavioral/appsync/check_concurrent_update_function.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-graphql-api", "deployments": [], "key": "appsync/concurrent-update-graphql-api", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_concurrent_update_graphql_api.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-resolver", "deployments": [], "key": "appsync/concurrent-update-resolver", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_concurrent_update_resolver.py", "service": "appsync"} {"check_id": "appsync.concurrent-update-type", "deployments": [], "key": "appsync/concurrent-update-type", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DeleteType", "appsync:GetSchemaCreationStatus", "appsync:GetType", "appsync:ListTypes", "appsync:ListTypesByAssociation", "appsync:StartSchemaCreation", "appsync:UpdateType", "iam:CreateRole", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_concurrent_update_type.py", "service": "appsync"} {"check_id": "appsync.create-api-cache-invalid-ttl-rejected", "deployments": [], "key": "appsync/create-api-cache-invalid-ttl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache"], "path": "behavioral/appsync/check_create_api_cache_invalid_ttl_rejected.py", "service": "appsync"} {"check_id": "appsync.create-api-cache-ttl-out-of-range", "deployments": [], "key": "appsync/create-api-cache-ttl-out-of-range", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache"], "path": "behavioral/appsync/check_create_api_cache_ttl_out_of_range.py", "service": "appsync"} {"check_id": "appsync.create-api-key-lifecycle", "deployments": [], "key": "appsync/create-api-key-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_create_api_key_lifecycle.py", "service": "appsync"} {"check_id": "appsync.create-api-key-validity-out-of-bounds", "deployments": [], "key": "appsync/create-api-key-validity-out-of-bounds", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_create_api_key_validity_out_of_bounds.py", "service": "appsync"} {"check_id": "appsync.create-api-key-validity-out-of-bounds-rejected", "deployments": [], "key": "appsync/create-api-key-validity-out-of-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_create_api_key_validity_out_of_bounds_rejected.py", "service": "appsync"} {"check_id": "appsync.op-contract-create-channel-namespace", "deployments": [], "key": "appsync/op-contract-create-channel-namespace", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace", "appsync:ListChannelNamespaces"], "path": "behavioral/appsync/check_create_channel_namespace_contract.py", "service": "appsync"} {"check_id": "appsync.create-channel-namespace-duplicate-conflict-rejected", "deployments": [], "key": "appsync/create-channel-namespace-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:ListChannelNamespaces"], "path": "behavioral/appsync/check_create_channel_namespace_duplicate_conflict_rejected.py", "service": "appsync"} {"check_id": "appsync.create-channel-namespace-invalid-auth-mode-rejected", "deployments": [], "key": "appsync/create-channel-namespace-invalid-auth-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace", "appsync:ListChannelNamespaces"], "path": "behavioral/appsync/check_create_channel_namespace_invalid_auth_mode_rejected.py", "service": "appsync"} {"check_id": "appsync.create-data-source-missing-iam-role-rejected", "deployments": [], "key": "appsync/create-data-source-missing-iam-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:ListDataSources", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/appsync/check_create_data_source_missing_iam_role_rejected.py", "service": "appsync"} {"check_id": "appsync.create-data-source-type-config-mismatch-rejected", "deployments": [], "key": "appsync/create-data-source-type-config-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:ListDataSources"], "path": "behavioral/appsync/check_create_data_source_type_config_mismatch_rejected.py", "service": "appsync"} {"check_id": "appsync.create-duplicate-resolver-fails", "deployments": [], "key": "appsync/create-duplicate-resolver-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_create_duplicate_resolver_fails.py", "service": "appsync"} {"check_id": "appsync.create-get-delete-graphql-api", "deployments": [], "key": "appsync/create-get-delete-graphql-api", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:ListGraphqlApis", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_create_get_delete_graphql_api.py", "service": "appsync"} {"check_id": "appsync.create-graphql-api-invalid-visibility-value-rejected", "deployments": [], "key": "appsync/create-graphql-api-invalid-visibility-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:ListGraphqlApis"], "path": "behavioral/appsync/check_create_graphql_api_invalid_visibility_value_rejected.py", "service": "appsync"} {"check_id": "appsync.create-graphql-api-limit-exceeded", "deployments": [], "key": "appsync/create-graphql-api-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListGraphqlApis"], "path": "behavioral/appsync/check_create_graphql_api_limit_exceeded.py", "service": "appsync"} {"check_id": "appsync.create-graphql-api-missing-auth-config", "deployments": [], "key": "appsync/create-graphql-api-missing-auth-config", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:ListGraphqlApis"], "path": "behavioral/appsync/check_create_graphql_api_missing_auth_config.py", "service": "appsync"} {"check_id": "appsync.create-graphql-api-oidc-missing-config-fails", "deployments": [], "key": "appsync/create-graphql-api-oidc-missing-config-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:ListGraphqlApis"], "path": "behavioral/appsync/check_create_graphql_api_oidc_missing_config_fails.py", "service": "appsync"} {"check_id": "appsync.create-ops-invalid-input-bad-request", "deployments": [], "key": "appsync/create-ops-invalid-input-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateApiCache", "appsync:CreateChannelNamespace", "appsync:CreateDataSource", "appsync:CreateDomainName", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:CreateType", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:DeleteType", "appsync:GetApiCache", "appsync:GetDomainName", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:GetType", "appsync:ListApis", "appsync:ListChannelNamespaces", "appsync:ListDataSources", "appsync:ListFunctions", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_create_ops_invalid_input_bad_request.py", "service": "appsync"} {"check_id": "appsync.create-pipeline-resolver-without-config-rejected", "deployments": [], "key": "appsync/create-pipeline-resolver-without-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:ListResolvers", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_create_pipeline_resolver_without_config_rejected.py", "service": "appsync"} {"check_id": "appsync.create-resolver-accepts-unparseable-vtl-fails-only-at-query-time", "deployments": [], "key": "appsync/create-resolver-accepts-unparseable-vtl-fails-only-at-query-time", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_create_resolver_accepts_unparseable_vtl_fails_only_at_query_time.py", "service": "appsync"} {"check_id": "appsync.create-resolver-pipeline-missing-config-rejected", "deployments": [], "key": "appsync/create-resolver-pipeline-missing-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_create_resolver_pipeline_missing_config_rejected.py", "service": "appsync"} {"check_id": "appsync.create-type-duplicate-name-rejected", "deployments": [], "key": "appsync/create-type-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:ListTypes"], "path": "behavioral/appsync/check_create_type_duplicate_name_rejected.py", "service": "appsync"} {"check_id": "appsync.create-type-duplicate-rejected", "deployments": [], "key": "appsync/create-type-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DeleteType", "appsync:GetType", "appsync:ListTypes"], "path": "behavioral/appsync/check_create_type_duplicate_rejected.py", "service": "appsync"} {"check_id": "appsync.cross-api-data-source-isolation-rejected", "deployments": [], "key": "appsync/cross-api-data-source-isolation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:ListDataSources"], "path": "behavioral/appsync/check_cross_api_data_source_isolation_rejected.py", "service": "appsync"} {"check_id": "appsync.cross-api-resolver-datasource-isolation-rejected", "deployments": [], "key": "appsync/cross-api-resolver-datasource-isolation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:ListResolvers", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_cross_api_resolver_datasource_isolation_rejected.py", "service": "appsync"} {"check_id": "appsync.data-source-crud-lifecycle", "deployments": [], "key": "appsync/data-source-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:ListDataSources", "appsync:UpdateDataSource"], "path": "behavioral/appsync/check_data_source_crud_lifecycle.py", "service": "appsync"} {"check_id": "appsync.data-source-description-empty-vs-absent-preserved", "deployments": [], "key": "appsync/data-source-description-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource"], "path": "behavioral/appsync/check_data_source_description_empty_vs_absent_preserved.py", "service": "appsync"} {"check_id": "appsync.data-source-introspection-async", "deployments": [], "key": "appsync/data-source-introspection-async", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:GetDataSourceIntrospection", "appsync:StartDataSourceIntrospection", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_data_source_introspection_async.py", "service": "appsync"} {"check_id": "appsync.data-source-introspection-lifecycle", "deployments": [], "key": "appsync/data-source-introspection-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetDataSourceIntrospection", "appsync:StartDataSourceIntrospection", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_data_source_introspection_lifecycle.py", "service": "appsync"} {"check_id": "appsync.data-source-introspection-not-found", "deployments": [], "key": "appsync/data-source-introspection-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetDataSourceIntrospection", "appsync:StartDataSourceIntrospection", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_data_source_introspection_not_found.py", "service": "appsync"} {"check_id": "appsync.data-source-type-config-mismatch-rejected", "deployments": [], "key": "appsync/data-source-type-config-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource"], "path": "behavioral/appsync/check_data_source_type_config_mismatch_rejected.py", "service": "appsync"} {"check_id": "appsync.data-source-type-mismatch-rejected", "deployments": [], "key": "appsync/data-source-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetDataSource"], "path": "behavioral/appsync/check_data_source_type_mismatch_rejected.py", "service": "appsync"} {"check_id": "appsync.deep-appsync-3-appsync-rt-evict-from-api-cache-spares-sibling-key", "deployments": [], "key": "appsync/deep-appsync-3-appsync-rt-evict-from-api-cache-spares-sibling-key", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiCache", "appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiCache", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetApiCache", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_deep_appsync_3_appsync_rt_evict_from_api_cache_spares_sibling_key.py", "service": "appsync"} {"check_id": "appsync.deep-appsync-3-appsync-rt-invalidation-completes-only-matching-subscriber", "deployments": [], "key": "appsync/deep-appsync-3-appsync-rt-invalidation-completes-only-matching-subscriber", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_deep_appsync_3_appsync_rt_invalidation_completes_only_matching_subscriber.py", "service": "appsync"} {"check_id": "appsync.deep-appsync-3-appsync-rt-operation-level-cache-separates-operation-names", "deployments": [], "key": "appsync/deep-appsync-3-appsync-rt-operation-level-cache-separates-operation-names", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiCache", "appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiCache", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetApiCache", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_deep_appsync_3_appsync_rt_operation_level_cache_separates_operation_names.py", "service": "appsync"} {"check_id": "appsync.delete-api-key-revokes-data-plane-access", "deployments": [], "key": "appsync/delete-api-key-revokes-data-plane-access", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:ListApiKeys", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_delete_api_key_revokes_data_plane_access.py", "service": "appsync"} {"check_id": "appsync.op-contract-delete-channel-namespace", "deployments": [], "key": "appsync/op-contract-delete-channel-namespace", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace"], "path": "behavioral/appsync/check_delete_channel_namespace_contract.py", "service": "appsync"} {"check_id": "appsync.delete-data-source-in-use-blocked", "deployments": [], "key": "appsync/delete-data-source-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetDataSource", "appsync:GetSchemaCreationStatus", "appsync:ListDataSources", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_delete_data_source_in_use_blocked.py", "service": "appsync"} {"check_id": "appsync.delete-data-source-referenced-by-resolver-rejected", "deployments": [], "key": "appsync/delete-data-source-referenced-by-resolver-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetDataSource", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_delete_data_source_referenced_by_resolver_rejected.py", "service": "appsync"} {"check_id": "appsync.op-contract-delete-function", "deployments": [], "key": "appsync/op-contract-delete-function", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetFunction", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_delete_function_contract.py", "service": "appsync"} {"check_id": "appsync.delete-function-referenced-by-pipeline-resolver-fails", "deployments": [], "key": "appsync/delete-function-referenced-by-pipeline-resolver-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetFunction", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_delete_function_referenced_by_pipeline_resolver_fails.py", "service": "appsync"} {"check_id": "appsync.delete-graphql-api-cascades-resolver-not-found", "deployments": [], "key": "appsync/delete-graphql-api-cascades-resolver-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_delete_graphql_api_cascades_resolver_not_found.py", "service": "appsync"} {"check_id": "appsync.delete-graphql-api-source-of-merge-rejected", "deployments": [], "key": "appsync/delete-graphql-api-source-of-merge-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_delete_graphql_api_source_of_merge_rejected.py", "service": "appsync"} {"check_id": "appsync.delete-nonexistent-api-key-not-found", "deployments": [], "key": "appsync/delete-nonexistent-api-key-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_delete_nonexistent_api_key_not_found.py", "service": "appsync"} {"check_id": "appsync.op-contract-delete-resolver", "deployments": [], "key": "appsync/op-contract-delete-resolver", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_delete_resolver_contract.py", "service": "appsync"} {"check_id": "appsync.op-contract-delete-type", "deployments": [], "key": "appsync/op-contract-delete-type", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DeleteType", "appsync:GetType"], "path": "behavioral/appsync/check_delete_type_contract.py", "service": "appsync"} {"check_id": "appsync.deploy-api-key-cfn-grants-access", "deployments": [], "key": "appsync/deploy-api-key-cfn-grants-access", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:GetGraphqlApi", "appsync:ListApiKeys", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_api_key_cfn_grants_access.py", "service": "appsync"} {"check_id": "appsync.deploy-api-key-cfn-grants-data-plane-access", "deployments": [], "key": "appsync/deploy-api-key-cfn-grants-data-plane-access", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:GetGraphqlApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_api_key_cfn_grants_data_plane_access.py", "service": "appsync"} {"check_id": "appsync.deploy-api-key-cfn-invalid-key-rejected", "deployments": [], "key": "appsync/deploy-api-key-cfn-invalid-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_api_key_cfn_invalid_key_rejected.py", "service": "appsync"} {"check_id": "appsync.deploy-appsync-2-cfn-update-replace-rollback-rejected", "deployments": [], "key": "appsync/deploy-appsync-2-cfn-update-replace-rollback-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:ListDataSources", "appsync:StartSchemaCreation", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:UpdateStack"], "path": "behavioral/appsync/check_deploy_appsync_2_cfn_update_replace_rollback_rejected.py", "service": "appsync"} {"check_id": "appsync.deploy-appsync-3-cfn-association-to-non-merged-api-rejected", "deployments": [], "key": "appsync/deploy-appsync-3-cfn-association-to-non-merged-api-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appsync:GetGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync/check_deploy_appsync_3_cfn_association_to_non_merged_api_rejected.py", "service": "appsync"} {"check_id": "appsync.deploy-appsync-3-cfn-merged-api-auto-merge-serves-source-update", "deployments": [], "key": "appsync/deploy-appsync-3-cfn-merged-api-auto-merge-serves-source-update", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:GetGraphqlApi", "appsync:GetSourceApiAssociation", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync/check_deploy_appsync_3_cfn_merged_api_auto_merge_serves_source_update.py", "service": "appsync"} {"check_id": "appsync.deploy-appsync-3-cfn-merged-api-disassociation-withdraws-source-fields", "deployments": [], "key": "appsync/deploy-appsync-3-cfn-merged-api-disassociation-withdraws-source-fields", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:GetGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync/check_deploy_appsync_3_cfn_merged_api_disassociation_withdraws_source_fields.py", "service": "appsync"} {"check_id": "appsync.deploy-appsync-3-cfn-merged-api-manual-merge-withholds-update-until-merge", "deployments": [], "key": "appsync/deploy-appsync-3-cfn-merged-api-manual-merge-withholds-update-until-merge", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:GetSourceApiAssociation", "appsync:StartSchemaMerge", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync/check_deploy_appsync_3_cfn_merged_api_manual_merge_withholds_update_until_merge.py", "service": "appsync"} {"check_id": "appsync.deploy-appsync-3-cfn-merged-endpoint-source-api-key-rejected", "deployments": [], "key": "appsync/deploy-appsync-3-cfn-merged-endpoint-source-api-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:GetSourceApiAssociation", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_appsync_3_cfn_merged_endpoint_source_api_key_rejected.py", "service": "appsync"} {"check_id": "appsync.deploy-appsync-3-cfn-merged-role-without-source-graphql-denied", "deployments": [], "key": "appsync/deploy-appsync-3-cfn-merged-role-without-source-graphql-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:GetGraphqlApi", "appsync:GetSourceApiAssociation", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync/check_deploy_appsync_3_cfn_merged_role_without_source_graphql_denied.py", "service": "appsync"} {"check_id": "appsync.deploy-cfn-invalid-schema-stack-rolls-back-rejected", "deployments": [], "key": "appsync/deploy-cfn-invalid-schema-stack-rolls-back-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_cfn_invalid_schema_stack_rolls_back_rejected.py", "service": "appsync"} {"check_id": "appsync.deploy-channel-namespace-cfn-event-api-functional", "deployments": [], "key": "appsync/deploy-channel-namespace-cfn-event-api-functional", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:GetApi", "appsync:GetChannelNamespace", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_channel_namespace_cfn_event_api_functional.py", "service": "appsync"} {"check_id": "appsync.deploy-data-source-resolver-cfn-executes-query", "deployments": [], "key": "appsync/deploy-data-source-resolver-cfn-executes-query", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:GetGraphqlApi", "appsync:GetResolver", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem"], "path": "behavioral/appsync/check_deploy_data_source_resolver_cfn_executes_query.py", "service": "appsync"} {"check_id": "appsync.deploy-domain-name-association-cfn-behavioral", "deployments": [], "key": "appsync/deploy-domain-name-association-cfn-behavioral", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetApiAssociation", "appsync:GetDomainName", "appsync:ListDomainNames", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListTagsForResource"], "path": "behavioral/appsync/check_deploy_domain_name_association_cfn_behavioral.py", "service": "appsync"} {"check_id": "appsync.deploy-domain-name-cfn-association-resolves", "deployments": [], "key": "appsync/deploy-domain-name-cfn-association-resolves", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "appsync:GetDomainName", "appsync:ListDomainNames", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_domain_name_cfn_association_resolves.py", "service": "appsync"} {"check_id": "appsync.deploy-function-cfn-pipeline-resolver-invocable", "deployments": [], "key": "appsync/deploy-function-cfn-pipeline-resolver-invocable", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:GetFunction", "appsync:GetGraphqlApi", "appsync:GetResolver", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_function_cfn_pipeline_resolver_invocable.py", "service": "appsync"} {"check_id": "appsync.deploy-graphql-api-cfn-behaves-live-query", "deployments": [], "key": "appsync/deploy-graphql-api-cfn-behaves-live-query", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:GetGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetResolver", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_graphql_api_cfn_behaves_live_query.py", "service": "appsync"} {"check_id": "appsync.deploy-graphql-api-cfn-behavioral", "deployments": [], "key": "appsync/deploy-graphql-api-cfn-behavioral", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:GetGraphqlApi", "appsync:GetResolver", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_graphql_api_cfn_behavioral.py", "service": "appsync"} {"check_id": "appsync.deploy-graphql-api-cfn-schema-active", "deployments": [], "key": "appsync/deploy-graphql-api-cfn-schema-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:GetGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_graphql_api_cfn_schema_active.py", "service": "appsync"} {"check_id": "appsync.deploy-resolver-cfn-insufficient-iam-permission-rejected", "deployments": [], "key": "appsync/deploy-resolver-cfn-insufficient-iam-permission-rejected", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:GetGraphqlApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_deploy_resolver_cfn_insufficient_iam_permission_rejected.py", "service": "appsync"} {"check_id": "appsync.deploy-resolver-cfn-pipeline-executes", "deployments": [], "key": "appsync/deploy-resolver-cfn-pipeline-executes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:GetFunction", "appsync:GetResolver", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync/check_deploy_resolver_cfn_pipeline_executes.py", "service": "appsync"} {"check_id": "appsync.disassociate-api-without-association-rejected", "deployments": [], "key": "appsync/disassociate-api-without-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:DisassociateApi", "appsync:GetApi"], "path": "behavioral/appsync/check_disassociate_api_without_association_rejected.py", "service": "appsync"} {"check_id": "appsync.disassociate-merged-graphql-api-without-association-rejected", "deployments": [], "key": "appsync/disassociate-merged-graphql-api-without-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_disassociate_merged_graphql_api_without_association_rejected.py", "service": "appsync"} {"check_id": "appsync.domain-api-association-lifecycle", "deployments": [], "key": "appsync/domain-api-association-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "appsync:AssociateApi", "appsync:CreateDomainName", "appsync:CreateGraphqlApi", "appsync:DeleteDomainName", "appsync:DeleteGraphqlApi", "appsync:GetDomainName", "appsync:ListDomainNames"], "path": "behavioral/appsync/check_domain_api_association_lifecycle.py", "service": "appsync"} {"check_id": "appsync.domain-name-api-association-lifecycle", "deployments": [], "key": "appsync/domain-name-api-association-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "appsync:CreateDomainName", "appsync:CreateGraphqlApi", "appsync:DeleteDomainName", "appsync:DeleteGraphqlApi", "appsync:GetDomainName", "appsync:GetGraphqlApi", "appsync:ListDomainNames"], "path": "behavioral/appsync/check_domain_name_api_association_lifecycle.py", "service": "appsync"} {"check_id": "appsync.domain-name-crud-lifecycle", "deployments": [], "key": "appsync/domain-name-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "appsync:CreateDomainName", "appsync:DeleteDomainName", "appsync:GetDomainName", "appsync:ListDomainNames", "appsync:UpdateDomainName", "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListTagsForResource"], "path": "behavioral/appsync/check_domain_name_crud_lifecycle.py", "service": "appsync"} {"check_id": "appsync.domain-name-get-not-found-after-delete", "deployments": [], "key": "appsync/domain-name-get-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "appsync:CreateDomainName", "appsync:DeleteDomainName", "appsync:GetDomainName", "appsync:UpdateDomainName", "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListTagsForResource"], "path": "behavioral/appsync/check_domain_name_get_not_found_after_delete.py", "service": "appsync"} {"check_id": "appsync.domain-name-lifecycle", "deployments": [], "key": "appsync/domain-name-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "appsync:CreateDomainName", "appsync:DeleteDomainName", "appsync:GetDomainName", "appsync:UpdateDomainName", "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListTagsForResource"], "path": "behavioral/appsync/check_domain_name_lifecycle.py", "service": "appsync"} {"check_id": "appsync.domain-name-lifecycle-state-transitions", "deployments": [], "key": "appsync/domain-name-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:RequestCertificate", "appsync:CreateDomainName", "appsync:DeleteDomainName", "appsync:GetDomainName", "appsync:UpdateDomainName", "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListTagsForResource"], "path": "behavioral/appsync/check_domain_name_lifecycle_state_transitions.py", "service": "appsync"} {"check_id": "appsync.e2e-api-cache-flush-affects-resolver-invocation", "deployments": [], "key": "appsync/e2e-api-cache-flush-affects-resolver-invocation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiCache", "appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_e2e_api_cache_flush_affects_resolver_invocation.py", "service": "appsync"} {"check_id": "appsync.e2e-api-cache-flush-then-fresh-fetch", "deployments": [], "key": "appsync/e2e-api-cache-flush-then-fresh-fetch", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiCache", "appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_e2e_api_cache_flush_then_fresh_fetch.py", "service": "appsync"} {"check_id": "appsync.e2e-data-source-introspection-driven-resolver-flow", "deployments": [], "key": "appsync/e2e-data-source-introspection-driven-resolver-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetDataSourceIntrospection", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartDataSourceIntrospection", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/appsync/check_e2e_data_source_introspection_driven_resolver_flow.py", "service": "appsync"} {"check_id": "appsync.e2e-event-api-publish-subscribe-flow", "deployments": [], "key": "appsync/e2e-event-api-publish-subscribe-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApi", "appsync:CreateApiKey", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteApiKey", "appsync:DeleteChannelNamespace"], "path": "behavioral/appsync/check_e2e_event_api_publish_subscribe_flow.py", "service": "appsync"} {"check_id": "appsync.e2e-schema-merge-cross-source-query-flow", "deployments": [], "key": "appsync/e2e-schema-merge-cross-source-query-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:GetType", "appsync:ListTypesByAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_e2e_schema_merge_cross_source_query_flow.py", "service": "appsync"} {"check_id": "appsync.e2e-schema-merge-source-to-merged-propagation-flow", "deployments": [], "key": "appsync/e2e-schema-merge-source-to-merged-propagation-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:GetType", "appsync:ListTypesByAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_e2e_schema_merge_source_to_merged_propagation_flow.py", "service": "appsync"} {"check_id": "appsync.e2e-source-api-merge-then-disassociate-reverts-types", "deployments": [], "key": "appsync/e2e-source-api-merge-then-disassociate-reverts-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:ListTypes", "appsync:ListTypesByAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_e2e_source_api_merge_then_disassociate_reverts_types.py", "service": "appsync"} {"check_id": "appsync.environment-variable-unicode-round-trip", "deployments": [], "key": "appsync/environment-variable-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_environment_variable_unicode_round_trip.py", "service": "appsync"} {"check_id": "appsync.environment-variables-put-is-full-replacement", "deployments": [], "key": "appsync/environment-variables-put-is-full-replacement", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_environment_variables_put_is_full_replacement.py", "service": "appsync"} {"check_id": "appsync.environment-variables-unicode-round-trip", "deployments": [], "key": "appsync/environment-variables-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_environment_variables_unicode_round_trip.py", "service": "appsync"} {"check_id": "appsync.evaluate-code-agrees-with-live-resolver-execution", "deployments": [], "key": "appsync/evaluate-code-agrees-with-live-resolver-execution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:EvaluateCode", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_evaluate_code_agrees_with_live_resolver_execution.py", "service": "appsync"} {"check_id": "appsync.evaluate-code-invalid-syntax-error-detail", "deployments": [], "key": "appsync/evaluate-code-invalid-syntax-error-detail", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateCode"], "path": "behavioral/appsync/check_evaluate_code_invalid_syntax_error_detail.py", "service": "appsync"} {"check_id": "appsync.evaluate-code-js-request-response", "deployments": [], "key": "appsync/evaluate-code-js-request-response", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateCode"], "path": "behavioral/appsync/check_evaluate_code_js_request_response.py", "service": "appsync"} {"check_id": "appsync.evaluate-code-js-runtime-error", "deployments": [], "key": "appsync/evaluate-code-js-runtime-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateCode"], "path": "behavioral/appsync/check_evaluate_code_js_runtime_error.py", "service": "appsync"} {"check_id": "appsync.evaluate-code-sandbox-isolation", "deployments": [], "key": "appsync/evaluate-code-sandbox-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:EvaluateCode", "appsync:GetGraphqlApi"], "path": "behavioral/appsync/check_evaluate_code_sandbox_isolation.py", "service": "appsync"} {"check_id": "appsync.evaluate-code-success", "deployments": [], "key": "appsync/evaluate-code-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateCode"], "path": "behavioral/appsync/check_evaluate_code_success.py", "service": "appsync"} {"check_id": "appsync.evaluate-code-transforms-context", "deployments": [], "key": "appsync/evaluate-code-transforms-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateCode"], "path": "behavioral/appsync/check_evaluate_code_transforms_context.py", "service": "appsync"} {"check_id": "appsync.evaluate-code-unsupported-runtime-rejected", "deployments": [], "key": "appsync/evaluate-code-unsupported-runtime-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appsync:EvaluateCode"], "path": "behavioral/appsync/check_evaluate_code_unsupported_runtime_rejected.py", "service": "appsync"} {"check_id": "appsync.evaluate-mapping-template-error-directive", "deployments": [], "key": "appsync/evaluate-mapping-template-error-directive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateMappingTemplate"], "path": "behavioral/appsync/check_evaluate_mapping_template_error_directive.py", "service": "appsync"} {"check_id": "appsync.evaluate-mapping-template-invalid-vtl-rejected", "deployments": [], "key": "appsync/evaluate-mapping-template-invalid-vtl-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["appsync:EvaluateMappingTemplate"], "path": "behavioral/appsync/check_evaluate_mapping_template_invalid_vtl_rejected.py", "service": "appsync"} {"check_id": "appsync.evaluate-mapping-template-success", "deployments": [], "key": "appsync/evaluate-mapping-template-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateMappingTemplate"], "path": "behavioral/appsync/check_evaluate_mapping_template_success.py", "service": "appsync"} {"check_id": "appsync.evaluate-mapping-template-syntax-error-fails", "deployments": [], "key": "appsync/evaluate-mapping-template-syntax-error-fails", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateMappingTemplate"], "path": "behavioral/appsync/check_evaluate_mapping_template_syntax_error_fails.py", "service": "appsync"} {"check_id": "appsync.evaluate-mapping-template-util-functions", "deployments": [], "key": "appsync/evaluate-mapping-template-util-functions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateMappingTemplate"], "path": "behavioral/appsync/check_evaluate_mapping_template_util_functions.py", "service": "appsync"} {"check_id": "appsync.event-api-crud-lifecycle", "deployments": [], "key": "appsync/event-api-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:ListApis", "appsync:UpdateApi"], "path": "behavioral/appsync/check_event_api_crud_lifecycle.py", "service": "appsync"} {"check_id": "appsync.event-api-ops-reject-graphql-api-id", "deployments": [], "key": "appsync/event-api-ops-reject-graphql-api-id", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:CreateGraphqlApi", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:DeleteGraphqlApi", "appsync:GetApi"], "path": "behavioral/appsync/check_event_api_ops_reject_graphql_api_id.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-clears-cache", "deployments": [], "key": "appsync/flush-api-cache-clears-cache", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiCache", "appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_flush_api_cache_clears_cache.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-clears-state", "deployments": [], "key": "appsync/flush-api-cache-clears-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_flush_api_cache_clears_state.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-clears-without-deleting", "deployments": [], "key": "appsync/flush-api-cache-clears-without-deleting", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache"], "path": "behavioral/appsync/check_flush_api_cache_clears_without_deleting.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-concurrent-double-flush-single-winner", "deployments": [], "key": "appsync/flush-api-cache-concurrent-double-flush-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache"], "path": "behavioral/appsync/check_flush_api_cache_concurrent_double_flush_single_winner.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-concurrent-modification-accepted", "deployments": [], "key": "appsync/flush-api-cache-concurrent-modification-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_flush_api_cache_concurrent_modification_accepted.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-deleted-cache-rejected", "deployments": [], "key": "appsync/flush-api-cache-deleted-cache-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache"], "path": "behavioral/appsync/check_flush_api_cache_deleted_cache_rejected.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-immediate-clear", "deployments": [], "key": "appsync/flush-api-cache-immediate-clear", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiCache", "appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiCache", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:FlushApiCache", "appsync:GetApiCache", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_flush_api_cache_immediate_clear.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-no-cache-configured-rejected", "deployments": [], "key": "appsync/flush-api-cache-no-cache-configured-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache"], "path": "behavioral/appsync/check_flush_api_cache_no_cache_configured_rejected.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-no-cache-rejected", "deployments": [], "key": "appsync/flush-api-cache-no-cache-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache"], "path": "behavioral/appsync/check_flush_api_cache_no_cache_rejected.py", "service": "appsync"} {"check_id": "appsync.flush-api-cache-nonexistent-cache-bad-request", "deployments": [], "key": "appsync/flush-api-cache-nonexistent-cache-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:FlushApiCache", "appsync:GetApiCache"], "path": "behavioral/appsync/check_flush_api_cache_nonexistent_cache_bad_request.py", "service": "appsync"} {"check_id": "appsync.function-crud-lifecycle", "deployments": [], "key": "appsync/function-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:GetFunction", "appsync:ListFunctions", "appsync:UpdateFunction"], "path": "behavioral/appsync/check_function_crud_lifecycle.py", "service": "appsync"} {"check_id": "appsync.get-api-after-delete-rejected", "deployments": [], "key": "appsync/get-api-after-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:UpdateApi"], "path": "behavioral/appsync/check_get_api_after_delete_rejected.py", "service": "appsync"} {"check_id": "appsync.get-api-not-found-after-delete", "deployments": [], "key": "appsync/get-api-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:UpdateApi"], "path": "behavioral/appsync/check_get_api_not_found_after_delete.py", "service": "appsync"} {"check_id": "appsync.op-contract-get-channel-namespace", "deployments": [], "key": "appsync/op-contract-get-channel-namespace", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:GetChannelNamespace"], "path": "behavioral/appsync/check_get_channel_namespace_contract.py", "service": "appsync"} {"check_id": "appsync.op-contract-get-data-source", "deployments": [], "key": "appsync/op-contract-get-data-source", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:UpdateDataSource"], "path": "behavioral/appsync/check_get_data_source_contract.py", "service": "appsync"} {"check_id": "appsync.get-data-source-introspection-invalid-id-not-found", "deployments": [], "key": "appsync/get-data-source-introspection-invalid-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetDataSourceIntrospection", "appsync:StartDataSourceIntrospection", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_get_data_source_introspection_invalid_id_not_found.py", "service": "appsync"} {"check_id": "appsync.get-domain-name-access-denied", "deployments": [], "key": "appsync/get-domain-name-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetDomainName", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_get_domain_name_access_denied.py", "service": "appsync"} {"check_id": "appsync.get-domain-name-malformed-input-rejected", "deployments": [], "key": "appsync/get-domain-name-malformed-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetDomainName"], "path": "behavioral/appsync/check_get_domain_name_malformed_input_rejected.py", "service": "appsync"} {"check_id": "appsync.get-domain-name-malformed-name-rejected", "deployments": [], "key": "appsync/get-domain-name-malformed-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDomainName", "appsync:GetDomainName", "appsync:ListDomainNames"], "path": "behavioral/appsync/check_get_domain_name_malformed_name_rejected.py", "service": "appsync"} {"check_id": "appsync.get-domain-name-nonexistent-not-found", "deployments": [], "key": "appsync/get-domain-name-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetDomainName", "appsync:ListDomainNames"], "path": "behavioral/appsync/check_get_domain_name_nonexistent_not_found.py", "service": "appsync"} {"check_id": "appsync.get-domain-name-not-found-rejected", "deployments": [], "key": "appsync/get-domain-name-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetDomainName", "appsync:ListDomainNames"], "path": "behavioral/appsync/check_get_domain_name_not_found_rejected.py", "service": "appsync"} {"check_id": "appsync.op-contract-get-function", "deployments": [], "key": "appsync/op-contract-get-function", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:GetFunction"], "path": "behavioral/appsync/check_get_function_contract.py", "service": "appsync"} {"check_id": "appsync.get-graphql-api-not-found", "deployments": [], "key": "appsync/get-graphql-api-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi"], "path": "behavioral/appsync/check_get_graphql_api_not_found.py", "service": "appsync"} {"check_id": "appsync.get-introspection-schema-before-schema-fails", "deployments": [], "key": "appsync/get-introspection-schema-before-schema-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_get_introspection_schema_before_schema_fails.py", "service": "appsync"} {"check_id": "appsync.get-introspection-schema-invalid-format-error", "deployments": [], "key": "appsync/get-introspection-schema-invalid-format-error", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_get_introspection_schema_invalid_format_error.py", "service": "appsync"} {"check_id": "appsync.get-introspection-schema-matches-defined-schema", "deployments": [], "key": "appsync/get-introspection-schema-matches-defined-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_get_introspection_schema_matches_defined_schema.py", "service": "appsync"} {"check_id": "appsync.get-nonexistent-function-not-found", "deployments": [], "key": "appsync/get-nonexistent-function-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:GetFunction"], "path": "behavioral/appsync/check_get_nonexistent_function_not_found.py", "service": "appsync"} {"check_id": "appsync.get-resolver-not-found-after-delete", "deployments": [], "key": "appsync/get-resolver-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_get_resolver_not_found_after_delete.py", "service": "appsync"} {"check_id": "appsync.get-schema-status-and-association-not-found", "deployments": [], "key": "appsync/get-schema-status-and-association-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetDataSourceIntrospection", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:StartDataSourceIntrospection", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_get_schema_status_and_association_not_found.py", "service": "appsync"} {"check_id": "appsync.graphql-api-tags-unicode-key-value-round-trip", "deployments": [], "key": "appsync/graphql-api-tags-unicode-key-value-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListTagsForResource", "appsync:TagResource"], "path": "behavioral/appsync/check_graphql_api_tags_unicode_key_value_round_trip.py", "service": "appsync"} {"check_id": "appsync.graphql-api-unicode-name-preserved", "deployments": [], "key": "appsync/graphql-api-unicode-name-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_graphql_api_unicode_name_preserved.py", "service": "appsync"} {"check_id": "appsync.graphql-api-unicode-name-round-trip", "deployments": [], "key": "appsync/graphql-api-unicode-name-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:ListApis"], "path": "behavioral/appsync/check_graphql_api_unicode_name_round_trip.py", "service": "appsync"} {"check_id": "appsync.graphql-append-error-partial-data-and-nonnull-propagation", "deployments": [], "key": "appsync/graphql-append-error-partial-data-and-nonnull-propagation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_append_error_partial_data_and_nonnull_propagation.py", "service": "appsync"} {"check_id": "appsync.graphql-appsync-js-resolver-live-execution", "deployments": [], "key": "appsync/graphql-appsync-js-resolver-live-execution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_appsync_js_resolver_live_execution.py", "service": "appsync"} {"check_id": "appsync.graphql-deleted-api-key-refused-on-data-plane", "deployments": [], "key": "appsync/graphql-deleted-api-key-refused-on-data-plane", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:ListApiKeys", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_deleted_api_key_refused_on_data_plane.py", "service": "appsync"} {"check_id": "appsync.graphql-endpoint-cors-preflight-and-cross-origin-error-readability", "deployments": [], "key": "appsync/graphql-endpoint-cors-preflight-and-cross-origin-error-readability", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_endpoint_cors_preflight_and_cross_origin_error_readability.py", "service": "appsync"} {"check_id": "appsync.graphql-field-level-auth-directive-denies-other-provider", "deployments": [], "key": "appsync/graphql-field-level-auth-directive-denies-other-provider", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_field_level_auth_directive_denies_other_provider.py", "service": "appsync"} {"check_id": "appsync.graphql-field-selection-alias-and-fragment-shaping", "deployments": [], "key": "appsync/graphql-field-selection-alias-and-fragment-shaping", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_field_selection_alias_and_fragment_shaping.py", "service": "appsync"} {"check_id": "appsync.graphql-introspection-query-and-disabled-config", "deployments": [], "key": "appsync/graphql-introspection-query-and-disabled-config", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_graphql_introspection_query_and_disabled_config.py", "service": "appsync"} {"check_id": "appsync.graphql-pipeline-stash-prev-result-and-before-return", "deployments": [], "key": "appsync/graphql-pipeline-stash-prev-result-and-before-return", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_graphql_pipeline_stash_prev_result_and_before_return.py", "service": "appsync"} {"check_id": "appsync.graphql-query-depth-and-resolver-count-limits", "deployments": [], "key": "appsync/graphql-query-depth-and-resolver-count-limits", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_graphql_query_depth_and_resolver_count_limits.py", "service": "appsync"} {"check_id": "appsync.graphql-query-execution-js-local-resolver", "deployments": [], "key": "appsync/graphql-query-execution-js-local-resolver", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_query_execution_js_local_resolver.py", "service": "appsync"} {"check_id": "appsync.graphql-query-execution-vtl-local-resolver", "deployments": [], "key": "appsync/graphql-query-execution-vtl-local-resolver", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_query_execution_vtl_local_resolver.py", "service": "appsync"} {"check_id": "appsync.graphql-query-list-argument-foreach-sum", "deployments": [], "key": "appsync/graphql-query-list-argument-foreach-sum", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_query_list_argument_foreach_sum.py", "service": "appsync"} {"check_id": "appsync.graphql-query-missing-api-key-rejected", "deployments": [], "key": "appsync/graphql-query-missing-api-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_query_missing_api_key_rejected.py", "service": "appsync"} {"check_id": "appsync.graphql-query-none-datasource-resolver", "deployments": [], "key": "appsync/graphql-query-none-datasource-resolver", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_query_none_datasource_resolver.py", "service": "appsync"} {"check_id": "appsync.graphql-query-validation-rejected-before-execution", "deployments": [], "key": "appsync/graphql-query-validation-rejected-before-execution", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_query_validation_rejected_before_execution.py", "service": "appsync"} {"check_id": "appsync.graphql-resolver-error-returns-http-200-with-errors-envelope", "deployments": [], "key": "appsync/graphql-resolver-error-returns-http-200-with-errors-envelope", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_resolver_error_returns_http_200_with_errors_envelope.py", "service": "appsync"} {"check_id": "appsync.graphql-resolver-util-error-returns-graphql-error", "deployments": [], "key": "appsync/graphql-resolver-util-error-returns-graphql-error", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_graphql_resolver_util_error_returns_graphql_error.py", "service": "appsync"} {"check_id": "appsync.introspection-schema-invalid-schema-exception", "deployments": [], "key": "appsync/introspection-schema-invalid-schema-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_introspection_schema_invalid_schema_exception.py", "service": "appsync"} {"check_id": "appsync.list-apis-pagination", "deployments": [], "key": "appsync/list-apis-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:ListApis"], "path": "behavioral/appsync/check_list_apis_pagination.py", "service": "appsync"} {"check_id": "appsync.list-apis-pagination-order", "deployments": [], "key": "appsync/list-apis-pagination-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:ListApis"], "path": "behavioral/appsync/check_list_apis_pagination_order.py", "service": "appsync"} {"check_id": "appsync.op-contract-list-channel-namespaces", "deployments": [], "key": "appsync/op-contract-list-channel-namespaces", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteChannelNamespace", "appsync:ListChannelNamespaces"], "path": "behavioral/appsync/check_list_channel_namespaces_contract.py", "service": "appsync"} {"check_id": "appsync.list-child-resources-nonexistent-parent-not-found", "deployments": [], "key": "appsync/list-child-resources-nonexistent-parent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteApi", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys", "appsync:ListChannelNamespaces", "appsync:ListDataSources", "appsync:ListFunctions", "appsync:ListResolvers", "appsync:ListResolversByFunction", "appsync:ListSourceApiAssociations"], "path": "behavioral/appsync/check_list_child_resources_nonexistent_parent_not_found.py", "service": "appsync"} {"check_id": "appsync.list-domain-names-access-denied", "deployments": [], "key": "appsync/list-domain-names-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:ListDomainNames", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_list_domain_names_access_denied.py", "service": "appsync"} {"check_id": "appsync.list-domain-names-invalid-next-token-rejected", "deployments": [], "key": "appsync/list-domain-names-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:ListDomainNames"], "path": "behavioral/appsync/check_list_domain_names_invalid_next_token_rejected.py", "service": "appsync"} {"check_id": "appsync.list-domain-names-invalid-pagination-token-rejected", "deployments": [], "key": "appsync/list-domain-names-invalid-pagination-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:ListDomainNames"], "path": "behavioral/appsync/check_list_domain_names_invalid_pagination_token_rejected.py", "service": "appsync"} {"check_id": "appsync.op-contract-list-graphql-apis", "deployments": [], "key": "appsync/op-contract-list-graphql-apis", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListGraphqlApis"], "path": "behavioral/appsync/check_list_graphql_apis_contract.py", "service": "appsync"} {"check_id": "appsync.list-resolvers-by-function", "deployments": [], "key": "appsync/list-resolvers-by-function", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:ListResolversByFunction", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_list_resolvers_by_function.py", "service": "appsync"} {"check_id": "appsync.op-contract-list-resolvers-by-function", "deployments": [], "key": "appsync/op-contract-list-resolvers-by-function", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:ListResolversByFunction", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_list_resolvers_by_function_contract.py", "service": "appsync"} {"check_id": "appsync.list-resolvers-by-function-reflects-pipeline", "deployments": [], "key": "appsync/list-resolvers-by-function-reflects-pipeline", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:ListResolversByFunction", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_list_resolvers_by_function_reflects_pipeline.py", "service": "appsync"} {"check_id": "appsync.op-contract-list-resolvers", "deployments": [], "key": "appsync/op-contract-list-resolvers", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:ListResolvers", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_list_resolvers_contract.py", "service": "appsync"} {"check_id": "appsync.list-types-by-association-after-merge", "deployments": [], "key": "appsync/list-types-by-association-after-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:ListTypesByAssociation", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_list_types_by_association_after_merge.py", "service": "appsync"} {"check_id": "appsync.list-types-by-association-ordering", "deployments": [], "key": "appsync/list-types-by-association-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListTypesByAssociation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_list_types_by_association_ordering.py", "service": "appsync"} {"check_id": "appsync.list-types-by-association-reflects-merge", "deployments": [], "key": "appsync/list-types-by-association-reflects-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListTypesByAssociation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_list_types_by_association_reflects_merge.py", "service": "appsync"} {"check_id": "appsync.list-types-by-association-reflects-merged-schema", "deployments": [], "key": "appsync/list-types-by-association-reflects-merged-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:ListTypes", "appsync:ListTypesByAssociation", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_list_types_by_association_reflects_merged_schema.py", "service": "appsync"} {"check_id": "appsync.merged-api-disassociate-wrong-source-rejected", "deployments": [], "key": "appsync/merged-api-disassociate-wrong-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_merged_api_disassociate_wrong_source_rejected.py", "service": "appsync"} {"check_id": "appsync.merged-api-wrong-target-type-rejected", "deployments": [], "key": "appsync/merged-api-wrong-target-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:ListSourceApiAssociations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_merged_api_wrong_target_type_rejected.py", "service": "appsync"} {"check_id": "appsync.merged-graphql-api-association-lifecycle", "deployments": [], "key": "appsync/merged-graphql-api-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_merged_graphql_api_association_lifecycle.py", "service": "appsync"} {"check_id": "appsync.op-contract-associateSourceGraphqlApi", "deployments": [], "key": "appsync/op-contract-associateSourceGraphqlApi", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_op_contract_associate_source_graphql_api.py", "service": "appsync"} {"check_id": "appsync.op-contract-createApiKey", "deployments": [], "key": "appsync/op-contract-createApiKey", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_op_contract_create_api_key.py", "service": "appsync"} {"check_id": "appsync.op-contract-create-data-source", "deployments": [], "key": "appsync/op-contract-create-data-source", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:ListDataSources"], "path": "behavioral/appsync/check_op_contract_create_data_source.py", "service": "appsync"} {"check_id": "appsync.op-contract-createFunction", "deployments": [], "key": "appsync/op-contract-createFunction", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:GetFunction", "appsync:ListFunctions"], "path": "behavioral/appsync/check_op_contract_create_function.py", "service": "appsync"} {"check_id": "appsync.op-contract-create-graphql-api", "deployments": [], "key": "appsync/op-contract-create-graphql-api", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:ListGraphqlApis"], "path": "behavioral/appsync/check_op_contract_create_graphql_api.py", "service": "appsync"} {"check_id": "appsync.op-contract-createResolver", "deployments": [], "key": "appsync/op-contract-createResolver", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_op_contract_create_resolver.py", "service": "appsync"} {"check_id": "appsync.op-contract-create-type", "deployments": [], "key": "appsync/op-contract-create-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DeleteType", "appsync:GetType", "appsync:ListTypes"], "path": "behavioral/appsync/check_op_contract_create_type.py", "service": "appsync"} {"check_id": "appsync.op-contract-delete-api-cache", "deployments": [], "key": "appsync/op-contract-delete-api-cache", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache"], "path": "behavioral/appsync/check_op_contract_delete_api_cache.py", "service": "appsync"} {"check_id": "appsync.op-contract-deleteApiKey", "deployments": [], "key": "appsync/op-contract-deleteApiKey", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_op_contract_delete_api_key.py", "service": "appsync"} {"check_id": "appsync.op-contract-deleteDataSource", "deployments": [], "key": "appsync/op-contract-deleteDataSource", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetDataSource", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_op_contract_delete_data_source.py", "service": "appsync"} {"check_id": "appsync.op-contract-deleteGraphqlApi", "deployments": [], "key": "appsync/op-contract-deleteGraphqlApi", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi"], "path": "behavioral/appsync/check_op_contract_delete_graphql_api.py", "service": "appsync"} {"check_id": "appsync.op-contract-disassociateSourceGraphqlApi", "deployments": [], "key": "appsync/op-contract-disassociateSourceGraphqlApi", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_op_contract_disassociate_source_graphql_api.py", "service": "appsync"} {"check_id": "appsync.op-contract-evaluateCode", "deployments": [], "key": "appsync/op-contract-evaluateCode", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateCode"], "path": "behavioral/appsync/check_op_contract_evaluate_code.py", "service": "appsync"} {"check_id": "appsync.op-contract-evaluateMappingTemplate", "deployments": [], "key": "appsync/op-contract-evaluateMappingTemplate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["appsync:EvaluateMappingTemplate"], "path": "behavioral/appsync/check_op_contract_evaluate_mapping_template.py", "service": "appsync"} {"check_id": "appsync.op-contract-getGraphqlApi", "deployments": [], "key": "appsync/op-contract-getGraphqlApi", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi"], "path": "behavioral/appsync/check_op_contract_get_graphql_api.py", "service": "appsync"} {"check_id": "appsync.op-contract-getGraphqlApiEnvironmentVariables", "deployments": [], "key": "appsync/op-contract-getGraphqlApiEnvironmentVariables", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_op_contract_get_graphql_api_environment_variables.py", "service": "appsync"} {"check_id": "appsync.op-contract-getIntrospectionSchema", "deployments": [], "key": "appsync/op-contract-getIntrospectionSchema", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_op_contract_get_introspection_schema.py", "service": "appsync"} {"check_id": "appsync.op-contract-getResolver", "deployments": [], "key": "appsync/op-contract-getResolver", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_op_contract_get_resolver.py", "service": "appsync"} {"check_id": "appsync.op-contract-getSchemaCreationStatus", "deployments": [], "key": "appsync/op-contract-getSchemaCreationStatus", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_op_contract_get_schema_creation_status.py", "service": "appsync"} {"check_id": "appsync.op-contract-getSourceApiAssociation", "deployments": [], "key": "appsync/op-contract-getSourceApiAssociation", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSourceApiAssociation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_op_contract_get_source_api_association.py", "service": "appsync"} {"check_id": "appsync.op-contract-getType", "deployments": [], "key": "appsync/op-contract-getType", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetType", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_op_contract_get_type.py", "service": "appsync"} {"check_id": "appsync.op-contract-listApiKeys", "deployments": [], "key": "appsync/op-contract-listApiKeys", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys"], "path": "behavioral/appsync/check_op_contract_list_api_keys.py", "service": "appsync"} {"check_id": "appsync.op-contract-listDataSources", "deployments": [], "key": "appsync/op-contract-listDataSources", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListDataSources"], "path": "behavioral/appsync/check_op_contract_list_data_sources.py", "service": "appsync"} {"check_id": "appsync.op-contract-listFunctions", "deployments": [], "key": "appsync/op-contract-listFunctions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListFunctions"], "path": "behavioral/appsync/check_op_contract_list_functions.py", "service": "appsync"} {"check_id": "appsync.op-contract-listSourceApiAssociations", "deployments": [], "key": "appsync/op-contract-listSourceApiAssociations", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListSourceApiAssociations"], "path": "behavioral/appsync/check_op_contract_list_source_api_associations.py", "service": "appsync"} {"check_id": "appsync.op-contract-listTagsForResource", "deployments": [], "key": "appsync/op-contract-listTagsForResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListTagsForResource"], "path": "behavioral/appsync/check_op_contract_list_tags_for_resource.py", "service": "appsync"} {"check_id": "appsync.op-contract-listTypes", "deployments": [], "key": "appsync/op-contract-listTypes", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:ListTypes", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_op_contract_list_types.py", "service": "appsync"} {"check_id": "appsync.op-contract-putGraphqlApiEnvironmentVariables", "deployments": [], "key": "appsync/op-contract-putGraphqlApiEnvironmentVariables", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_op_contract_put_graphql_api_environment_variables.py", "service": "appsync"} {"check_id": "appsync.op-contract-startSchemaCreation", "deployments": [], "key": "appsync/op-contract-startSchemaCreation", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_op_contract_start_schema_creation.py", "service": "appsync"} {"check_id": "appsync.op-contract-tag-resource", "deployments": [], "key": "appsync/op-contract-tag-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListTagsForResource", "appsync:TagResource"], "path": "behavioral/appsync/check_op_contract_tag_resource.py", "service": "appsync"} {"check_id": "appsync.op-contract-untag-resource", "deployments": [], "key": "appsync/op-contract-untag-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:ListTagsForResource", "appsync:UntagResource"], "path": "behavioral/appsync/check_op_contract_untag_resource.py", "service": "appsync"} {"check_id": "appsync.op-contract-updateApiKey", "deployments": [], "key": "appsync/op-contract-updateApiKey", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys", "appsync:UpdateApiKey"], "path": "behavioral/appsync/check_op_contract_update_api_key.py", "service": "appsync"} {"check_id": "appsync.op-contract-updateApiKey-expires-out-of-bounds-rejected", "deployments": [], "key": "appsync/op-contract-updateApiKey-expires-out-of-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys", "appsync:UpdateApiKey"], "path": "behavioral/appsync/check_op_contract_update_api_key_expires_out_of_bounds_rejected.py", "service": "appsync"} {"check_id": "appsync.op-contract-update-channel-namespace", "deployments": [], "key": "appsync/op-contract-update-channel-namespace", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:GetChannelNamespace", "appsync:UpdateChannelNamespace"], "path": "behavioral/appsync/check_op_contract_update_channel_namespace.py", "service": "appsync"} {"check_id": "appsync.op-contract-updateDataSource", "deployments": [], "key": "appsync/op-contract-updateDataSource", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:UpdateDataSource"], "path": "behavioral/appsync/check_op_contract_update_data_source.py", "service": "appsync"} {"check_id": "appsync.op-contract-updateDataSource-missing-lambda-config-rejected", "deployments": [], "key": "appsync/op-contract-updateDataSource-missing-lambda-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:UpdateDataSource"], "path": "behavioral/appsync/check_op_contract_update_data_source_missing_lambda_config_rejected.py", "service": "appsync"} {"check_id": "appsync.op-contract-update-function", "deployments": [], "key": "appsync/op-contract-update-function", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetFunction", "appsync:UpdateFunction"], "path": "behavioral/appsync/check_op_contract_update_function.py", "service": "appsync"} {"check_id": "appsync.op-contract-update-function-deleted-function-id-not-found", "deployments": [], "key": "appsync/op-contract-update-function-deleted-function-id-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:GetFunction", "appsync:UpdateFunction"], "path": "behavioral/appsync/check_op_contract_update_function_deleted_function_id_not_found.py", "service": "appsync"} {"check_id": "appsync.op-contract-update-graphql-api", "deployments": [], "key": "appsync/op-contract-update-graphql-api", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_op_contract_update_graphql_api.py", "service": "appsync"} {"check_id": "appsync.op-contract-update-resolver", "deployments": [], "key": "appsync/op-contract-update-resolver", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_op_contract_update_resolver.py", "service": "appsync"} {"check_id": "appsync.op-contract-update-source-api-association", "deployments": [], "key": "appsync/op-contract-update-source-api-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:UpdateSourceApiAssociation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_op_contract_update_source_api_association.py", "service": "appsync"} {"check_id": "appsync.op-contract-update-type", "deployments": [], "key": "appsync/op-contract-update-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetType", "appsync:StartSchemaCreation", "appsync:UpdateType"], "path": "behavioral/appsync/check_op_contract_update_type.py", "service": "appsync"} {"check_id": "appsync.per-resolver-caching-keys-scope-cache-entries", "deployments": [], "key": "appsync/per-resolver-caching-keys-scope-cache-entries", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiCache", "appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiCache", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetApiCache", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_per_resolver_caching_keys_scope_cache_entries.py", "service": "appsync"} {"check_id": "appsync.pipeline-function-error-short-circuits-later-stages", "deployments": [], "key": "appsync/pipeline-function-error-short-circuits-later-stages", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetFunction", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateFunction", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_pipeline_function_error_short_circuits_later_stages.py", "service": "appsync"} {"check_id": "appsync.pipeline-resolver-function-chain-stash-propagation", "deployments": [], "key": "appsync/pipeline-resolver-function-chain-stash-propagation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_pipeline_resolver_function_chain_stash_propagation.py", "service": "appsync"} {"check_id": "appsync.pipeline-resolver-function-chaining-stash", "deployments": [], "key": "appsync/pipeline-resolver-function-chaining-stash", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_pipeline_resolver_function_chaining_stash.py", "service": "appsync"} {"check_id": "appsync.pipeline-resolver-success", "deployments": [], "key": "appsync/pipeline-resolver-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_pipeline_resolver_success.py", "service": "appsync"} {"check_id": "appsync.pipeline-resolver-update-reorders-execution", "deployments": [], "key": "appsync/pipeline-resolver-update-reorders-execution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_pipeline_resolver_update_reorders_execution.py", "service": "appsync"} {"check_id": "appsync.put-and-get-environment-variables", "deployments": [], "key": "appsync/put-and-get-environment-variables", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_put_and_get_environment_variables.py", "service": "appsync"} {"check_id": "appsync.put-environment-variables-exceeds-size-limit-rejected", "deployments": [], "key": "appsync/put-environment-variables-exceeds-size-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_put_environment_variables_exceeds_size_limit_rejected.py", "service": "appsync"} {"check_id": "appsync.put-environment-variables-invalid-key-rejected", "deployments": [], "key": "appsync/put-environment-variables-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_put_environment_variables_invalid_key_rejected.py", "service": "appsync"} {"check_id": "appsync.put-environment-variables-size-limit-rejected", "deployments": [], "key": "appsync/put-environment-variables-size-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApiEnvironmentVariables", "appsync:PutGraphqlApiEnvironmentVariables"], "path": "behavioral/appsync/check_put_environment_variables_size_limit_rejected.py", "service": "appsync"} {"check_id": "appsync.reject-api-domain-association-mismatched-state", "deployments": [], "key": "appsync/reject-api-domain-association-mismatched-state", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateApi", "appsync:CreateApi", "appsync:DeleteApi", "appsync:DisassociateApi", "appsync:GetApiAssociation"], "path": "behavioral/appsync/check_reject_api_domain_association_mismatched_state.py", "service": "appsync"} {"check_id": "appsync.resolver-kind-pipeline-conflict-rejected", "deployments": [], "key": "appsync/resolver-kind-pipeline-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_resolver_kind_pipeline_conflict_rejected.py", "service": "appsync"} {"check_id": "appsync.resolver-mapping-template-unicode-round-trip", "deployments": [], "key": "appsync/resolver-mapping-template-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_resolver_mapping_template_unicode_round_trip.py", "service": "appsync"} {"check_id": "appsync.resolver-mapping-template-whitespace-preserved", "deployments": [], "key": "appsync/resolver-mapping-template-whitespace-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_resolver_mapping_template_whitespace_preserved.py", "service": "appsync"} {"check_id": "appsync.resolver-pipeline-function-ordering", "deployments": [], "key": "appsync/resolver-pipeline-function-ordering", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_resolver_pipeline_function_ordering.py", "service": "appsync"} {"check_id": "appsync.resolver-pipeline-requires-config", "deployments": [], "key": "appsync/resolver-pipeline-requires-config", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_resolver_pipeline_requires_config.py", "service": "appsync"} {"check_id": "appsync.resolver-util-unauthorized-denies-field-but-serves-sibling", "deployments": [], "key": "appsync/resolver-util-unauthorized-denies-field-but-serves-sibling", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_resolver_util_unauthorized_denies_field_but_serves_sibling.py", "service": "appsync"} {"check_id": "appsync.schema-creation-serialization", "deployments": [], "key": "appsync/schema-creation-serialization", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_schema_creation_serialization.py", "service": "appsync"} {"check_id": "appsync.schema-creation-status-transitions", "deployments": [], "key": "appsync/schema-creation-status-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_schema_creation_status_transitions.py", "service": "appsync"} {"check_id": "appsync.schema-creation-then-merge-ordering", "deployments": [], "key": "appsync/schema-creation-then-merge-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_schema_creation_then_merge_ordering.py", "service": "appsync"} {"check_id": "appsync.schema-merge-lifecycle", "deployments": [], "key": "appsync/schema-merge-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:ListSourceApiAssociations", "appsync:ListTypesByAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/appsync/check_schema_merge_lifecycle.py", "service": "appsync"} {"check_id": "appsync.schema-merge-requires-reconciled-source-association", "deployments": [], "key": "appsync/schema-merge-requires-reconciled-source-association", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_schema_merge_requires_reconciled_source_association.py", "service": "appsync"} {"check_id": "appsync.schema-merge-server-managed-execution", "deployments": [], "key": "appsync/schema-merge-server-managed-execution", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_schema_merge_server_managed_execution.py", "service": "appsync"} {"check_id": "appsync.schema-replacement-swaps-the-served-schema-atomically", "deployments": [], "key": "appsync/schema-replacement-swaps-the-served-schema-atomically", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_schema_replacement_swaps_the_served_schema_atomically.py", "service": "appsync"} {"check_id": "appsync.start-schema-creation-conflict-in-progress", "deployments": [], "key": "appsync/start-schema-creation-conflict-in-progress", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_start_schema_creation_conflict_in_progress.py", "service": "appsync"} {"check_id": "appsync.start-schema-creation-invalid-sdl-fails", "deployments": [], "key": "appsync/start-schema-creation-invalid-sdl-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_start_schema_creation_invalid_sdl_fails.py", "service": "appsync"} {"check_id": "appsync.start-schema-creation-success-poll-active", "deployments": [], "key": "appsync/start-schema-creation-success-poll-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetSchemaCreationStatus", "appsync:GetType", "appsync:ListTypes", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_start_schema_creation_success_poll_active.py", "service": "appsync"} {"check_id": "appsync.start-schema-creation-valid-sdl-active-state", "deployments": [], "key": "appsync/start-schema-creation-valid-sdl-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetType", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_start_schema_creation_valid_sdl_active_state.py", "service": "appsync"} {"check_id": "appsync.start-schema-merge-auto-merge-succeeds", "deployments": [], "key": "appsync/start-schema-merge-auto-merge-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSourceApiAssociation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_start_schema_merge_auto_merge_succeeds.py", "service": "appsync"} {"check_id": "appsync.start-schema-merge-concurrent-modification", "deployments": [], "key": "appsync/start-schema-merge-concurrent-modification", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_start_schema_merge_concurrent_modification.py", "service": "appsync"} {"check_id": "appsync.start-schema-merge-managed-execution", "deployments": [], "key": "appsync/start-schema-merge-managed-execution", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:GetType", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_start_schema_merge_managed_execution.py", "service": "appsync"} {"check_id": "appsync.start-schema-merge-server-managed", "deployments": [], "key": "appsync/start-schema-merge-server-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_start_schema_merge_server_managed.py", "service": "appsync"} {"check_id": "appsync.start-schema-merge-status-polling", "deployments": [], "key": "appsync/start-schema-merge-status-polling", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:AssociateMergedGraphqlApi", "appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DisassociateMergedGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:GetSourceApiAssociation", "appsync:ListTypes", "appsync:StartSchemaCreation", "appsync:StartSchemaMerge", "appsync:UpdateType", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_start_schema_merge_status_polling.py", "service": "appsync"} {"check_id": "appsync.start-schema-merge-without-source-association-rejected", "deployments": [], "key": "appsync/start-schema-merge-without-source-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:AssociateSourceGraphqlApi", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:DisassociateSourceGraphqlApi", "appsync:ListSourceApiAssociations", "appsync:StartSchemaMerge", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/appsync/check_start_schema_merge_without_source_association_rejected.py", "service": "appsync"} {"check_id": "appsync.tag-resource-lifecycle", "deployments": [], "key": "appsync/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListTagsForResource", "appsync:TagResource", "appsync:UntagResource"], "path": "behavioral/appsync/check_tag_resource_lifecycle.py", "service": "appsync"} {"check_id": "appsync.tag-resource-list-untag-round-trip", "deployments": [], "key": "appsync/tag-resource-list-untag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListTagsForResource", "appsync:TagResource", "appsync:UntagResource"], "path": "behavioral/appsync/check_tag_resource_list_untag_round_trip.py", "service": "appsync"} {"check_id": "appsync.tag-resource-reserved-prefix-rejected", "deployments": [], "key": "appsync/tag-resource-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListTagsForResource", "appsync:TagResource"], "path": "behavioral/appsync/check_tag_resource_reserved_prefix_rejected.py", "service": "appsync"} {"check_id": "appsync.tag-value-empty-string-vs-absent-preserved", "deployments": [], "key": "appsync/tag-value-empty-string-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListTagsForResource", "appsync:TagResource", "appsync:UntagResource"], "path": "behavioral/appsync/check_tag_value_empty_string_vs_absent_preserved.py", "service": "appsync"} {"check_id": "appsync.type-crud-lifecycle", "deployments": [], "key": "appsync/type-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DeleteType", "appsync:GetSchemaCreationStatus", "appsync:GetType", "appsync:ListTypes", "appsync:StartSchemaCreation", "appsync:UpdateType"], "path": "behavioral/appsync/check_type_crud_lifecycle.py", "service": "appsync"} {"check_id": "appsync.unauthorized-function-resolver", "deployments": [], "key": "appsync/unauthorized-function-resolver", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetFunction", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:CreateAccessKey", "iam:CreateUser", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_unauthorized_function_resolver.py", "service": "appsync"} {"check_id": "appsync.unauthorized-list-apis", "deployments": [], "key": "appsync/unauthorized-list-apis", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateGraphqlApi", "appsync:DeleteApi", "appsync:DeleteGraphqlApi", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/appsync/check_unauthorized_list_apis.py", "service": "appsync"} {"check_id": "appsync.unit-resolver-missing-datasource", "deployments": [], "key": "appsync/unit-resolver-missing-datasource", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation"], "path": "behavioral/appsync/check_unit_resolver_missing_datasource.py", "service": "appsync"} {"check_id": "appsync.unit-resolver-success-lifecycle", "deployments": [], "key": "appsync/unit-resolver-success-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:ListResolvers", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_unit_resolver_success_lifecycle.py", "service": "appsync"} {"check_id": "appsync.update-api-cache-concurrent-modification-rejected", "deployments": [], "key": "appsync/update-api-cache-concurrent-modification-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_update_api_cache_concurrent_modification_rejected.py", "service": "appsync"} {"check_id": "appsync.update-api-cache-invalid-ttl-rejected", "deployments": [], "key": "appsync/update-api-cache-invalid-ttl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_update_api_cache_invalid_ttl_rejected.py", "service": "appsync"} {"check_id": "appsync.update-api-cache-ttl-bounds-rejected", "deployments": [], "key": "appsync/update-api-cache-ttl-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_update_api_cache_ttl_bounds_rejected.py", "service": "appsync"} {"check_id": "appsync.update-api-cache-ttl-out-of-range-rejected", "deployments": [], "key": "appsync/update-api-cache-ttl-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiCache", "appsync:CreateGraphqlApi", "appsync:DeleteApiCache", "appsync:DeleteGraphqlApi", "appsync:GetApiCache", "appsync:UpdateApiCache"], "path": "behavioral/appsync/check_update_api_cache_ttl_out_of_range_rejected.py", "service": "appsync"} {"check_id": "appsync.update-api-concurrent-modification-converges", "deployments": [], "key": "appsync/update-api-concurrent-modification-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:UpdateApi"], "path": "behavioral/appsync/check_update_api_concurrent_modification_converges.py", "service": "appsync"} {"check_id": "appsync.update-api-invalid-event-config-rejected", "deployments": [], "key": "appsync/update-api-invalid-event-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApi", "appsync:DeleteApi", "appsync:GetApi", "appsync:UpdateApi"], "path": "behavioral/appsync/check_update_api_invalid_event_config_rejected.py", "service": "appsync"} {"check_id": "appsync.update-api-key-expiration", "deployments": [], "key": "appsync/update-api-key-expiration", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys", "appsync:UpdateApiKey"], "path": "behavioral/appsync/check_update_api_key_expiration.py", "service": "appsync"} {"check_id": "appsync.update-api-key-validity-out-of-bounds-rejected", "deployments": [], "key": "appsync/update-api-key-validity-out-of-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:ListApiKeys", "appsync:UpdateApiKey"], "path": "behavioral/appsync/check_update_api_key_validity_out_of_bounds_rejected.py", "service": "appsync"} {"check_id": "appsync.update-channel-namespace-auth-modes-persists", "deployments": [], "key": "appsync/update-channel-namespace-auth-modes-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateApi", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:GetChannelNamespace", "appsync:UpdateChannelNamespace"], "path": "behavioral/appsync/check_update_channel_namespace_auth_modes_persists.py", "service": "appsync"} {"check_id": "appsync.update-data-source-config-persists", "deployments": [], "key": "appsync/update-data-source-config-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:UpdateDataSource"], "path": "behavioral/appsync/check_update_data_source_config_persists.py", "service": "appsync"} {"check_id": "appsync.update-function-change-datasource", "deployments": [], "key": "appsync/update-function-change-datasource", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetFunction", "appsync:UpdateFunction"], "path": "behavioral/appsync/check_update_function_change_datasource.py", "service": "appsync"} {"check_id": "appsync.update-graphql-api-change-auth-type", "deployments": [], "key": "appsync/update-graphql-api-change-auth-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_update_graphql_api_change_auth_type.py", "service": "appsync"} {"check_id": "appsync.update-graphql-api-persists-fields", "deployments": [], "key": "appsync/update-graphql-api-persists-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:UpdateGraphqlApi"], "path": "behavioral/appsync/check_update_graphql_api_persists_fields.py", "service": "appsync"} {"check_id": "appsync.update-resolver-change-kind-to-pipeline", "deployments": [], "key": "appsync/update-resolver-change-kind-to-pipeline", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_update_resolver_change_kind_to_pipeline.py", "service": "appsync"} {"check_id": "appsync.update-resolver-changes-mapping-template", "deployments": [], "key": "appsync/update-resolver-changes-mapping-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_update_resolver_changes_mapping_template.py", "service": "appsync"} {"check_id": "appsync.update-resolver-changes-query-behavior", "deployments": [], "key": "appsync/update-resolver-changes-query-behavior", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateResolver"], "path": "behavioral/appsync/check_update_resolver_changes_query_behavior.py", "service": "appsync"} {"check_id": "appsync.update-type-invalid-sdl-rejected", "deployments": [], "key": "appsync/update-type-invalid-sdl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateType", "appsync:DeleteGraphqlApi", "appsync:DeleteType", "appsync:GetType", "appsync:UpdateType"], "path": "behavioral/appsync/check_update_type_invalid_sdl_rejected.py", "service": "appsync"} {"check_id": "appsync__cloudformation.cfn-appsync-api-key-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "appsync__cloudformation/cfn-appsync-api-key-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appsync:ListApiKeys", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_cfn_appsync_api_key_in_place_update_retained_replacement_then_not_found.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.cfn-appsync-data-source-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "appsync__cloudformation/cfn-appsync-data-source-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appsync:GetDataSource", "appsync:GetGraphqlApi", "appsync:GetResolver", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_cfn_appsync_data_source_in_place_update_retained_replacement_then_not_found.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.cfn-appsync-graphql-api-in-place-update-serves-query-then-not-found", "deployments": [], "key": "appsync__cloudformation/cfn-appsync-graphql-api-in-place-update-serves-query-then-not-found", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appsync:GetGraphqlApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_cfn_appsync_graphql_api_in_place_update_serves_query_then_not_found.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.cfn-appsync-graphql-schema-in-place-update-serves-new-fields-then-not-found", "deployments": [], "key": "appsync__cloudformation/cfn-appsync-graphql-schema-in-place-update-serves-new-fields-then-not-found", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appsync:GetGraphqlApi", "appsync:GetIntrospectionSchema", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_cfn_appsync_graphql_schema_in_place_update_serves_new_fields_then_not_found.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.cfn-appsync-resolver-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "appsync__cloudformation/cfn-appsync-resolver-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["appsync:DeleteResolver", "appsync:EvaluateCode", "appsync:GetGraphqlApi", "appsync:GetResolver", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_cfn_appsync_resolver_in_place_update_retained_replacement_then_not_found.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.deploy-appsync-apicache-cfn-invalid-ttl-rejected", "deployments": [], "key": "appsync__cloudformation/deploy-appsync-apicache-cfn-invalid-ttl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetApiCache", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/appsync__cloudformation/check_deploy_appsync_apicache_cfn_invalid_ttl_rejected.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.deploy-appsync-apicache-cfn-round-trip-and-delete", "deployments": [], "key": "appsync__cloudformation/deploy-appsync-apicache-cfn-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:GetApiCache", "appsync:GetGraphqlApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_deploy_appsync_apicache_cfn_round_trip_and_delete.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.deploy-appsync-source-api-association-cfn-ref-and-attributes", "deployments": [], "key": "appsync__cloudformation/deploy-appsync-source-api-association-cfn-ref-and-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:GetGraphqlApi", "appsync:GetSourceApiAssociation", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_deploy_appsync_source_api_association_cfn_ref_and_attributes.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.deploy-appsync-source-api-association-invalid-merge-type-rejected", "deployments": [], "key": "appsync__cloudformation/deploy-appsync-source-api-association-invalid-merge-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetSourceApiAssociation", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_deploy_appsync_source_api_association_invalid_merge_type_rejected.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.deploy-appsync-type-cfn-added-and-removed-in-place", "deployments": [], "key": "appsync__cloudformation/deploy-appsync-type-cfn-added-and-removed-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:GetGraphqlApi", "appsync:GetType", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/appsync__cloudformation/check_deploy_appsync_type_cfn_added_and_removed_in_place.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.sam-graphqlapi-missing-auth-rejected", "deployments": [], "key": "appsync__cloudformation/sam-graphqlapi-missing-auth-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["appsync:GetGraphqlApi", "cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appsync__cloudformation/check_sam_graphqlapi_missing_auth_rejected.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudformation.sam-graphqlapi-round-trip-and-removed-on-delete", "deployments": [], "key": "appsync__cloudformation/sam-graphqlapi-round-trip-and-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:GetFunction", "appsync:GetGraphqlApi", "appsync:GetIntrospectionSchema", "appsync:GetResolver", "cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/appsync__cloudformation/check_sam_graphqlapi_round_trip_and_removed_on_delete.py", "service": "appsync__cloudformation"} {"check_id": "appsync__cloudwatch.appsync-enhanced-metrics-publish-under-api-id-resolver-dimensions", "deployments": [], "key": "appsync__cloudwatch/appsync-enhanced-metrics-publish-under-api-id-resolver-dimensions", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/appsync__cloudwatch/check_appsync_enhanced_metrics_publish_under_api_id_resolver_dimensions.py", "service": "appsync__cloudwatch"} {"check_id": "appsync__cloudwatch.obs-appsync-1-resolver-datasource-metrics-opt-in-matrix", "deployments": [], "key": "appsync__cloudwatch/obs-appsync-1-resolver-datasource-metrics-opt-in-matrix", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateGraphqlApi", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/appsync__cloudwatch/check_obs_appsync_1_resolver_datasource_metrics_opt_in_matrix.py", "service": "appsync__cloudwatch"} {"check_id": "appsync__cloudwatch.obs-appsync-2-event-api-namespace-lifecycle-counters", "deployments": [], "key": "appsync__cloudwatch/obs-appsync-2-event-api-namespace-lifecycle-counters", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateApi", "appsync:CreateApiKey", "appsync:CreateChannelNamespace", "appsync:DeleteApi", "appsync:DeleteApiKey", "appsync:DeleteChannelNamespace", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/appsync__cloudwatch/check_obs_appsync_2_event_api_namespace_lifecycle_counters.py", "service": "appsync__cloudwatch"} {"check_id": "appsync__cloudwatch.obs-appsync-2-graphql-realtime-lifecycle-counters", "deployments": [], "key": "appsync__cloudwatch/obs-appsync-2-graphql-realtime-lifecycle-counters", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/appsync__cloudwatch/check_obs_appsync_2_graphql_realtime_lifecycle_counters.py", "service": "appsync__cloudwatch"} {"check_id": "appsync__cloudwatch.obs-appsync-2-realtime-connect-rejected-counts-client-error", "deployments": [], "key": "appsync__cloudwatch/obs-appsync-2-realtime-connect-rejected-counts-client-error", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/appsync__cloudwatch/check_obs_appsync_2_realtime_connect_rejected_counts_client_error.py", "service": "appsync__cloudwatch"} {"check_id": "appsync__cloudwatch.obs-appsync-3-4xx-error-alarm-closed-loop", "deployments": [], "key": "appsync__cloudwatch/obs-appsync-3-4xx-error-alarm-closed-loop", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/appsync__cloudwatch/check_obs_appsync_3_4xx_error_alarm_closed_loop.py", "service": "appsync__cloudwatch"} {"check_id": "appsync__cloudwatch.obs-appsync-3-unauthorized-burst-on-one-api-does-not-breach-sibling-api-alarm", "deployments": [], "key": "appsync__cloudwatch/obs-appsync-3-unauthorized-burst-on-one-api-does-not-breach-sibling-api-alarm", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/appsync__cloudwatch/check_obs_appsync_3_unauthorized_burst_on_one_api_does_not_breach_sibling_api_alarm.py", "service": "appsync__cloudwatch"} {"check_id": "appsync__cloudwatch__cognito-idp__dynamodb__logs.cdk-authenticated-graphql-app-workflow", "deployments": ["behavioral/appsync__cloudwatch__cognito-idp__dynamodb__logs/deployments/graphql_app_cdk/app.py", "behavioral/appsync__cloudwatch__cognito-idp__dynamodb__logs/deployments/graphql_app_cdk/cdk.json"], "key": "appsync__cloudwatch__cognito-idp__dynamodb__logs/cdk-authenticated-graphql-app-workflow", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:GetGraphqlApi", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:DescribeUserPool", "cognito-idp:InitiateAuth", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/appsync__cloudwatch__cognito-idp__dynamodb__logs/check_cdk_authenticated_graphql_app_workflow.py", "service": "appsync__cloudwatch__cognito-idp__dynamodb__logs"} {"check_id": "appsync__cognito-identity.xsvc-appsync-3-authenticated-identity-field-grant-echoes-cognito-identity", "deployments": [], "key": "appsync__cognito-identity/xsvc-appsync-3-authenticated-identity-field-grant-echoes-cognito-identity", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-identity/check_xsvc_appsync_3_authenticated_identity_field_grant_echoes_cognito_identity.py", "service": "appsync__cognito-identity"} {"check_id": "appsync__cognito-identity.xsvc-appsync-3-explicit-field-deny-overrides-api-wildcard-allow-denied", "deployments": [], "key": "appsync__cognito-identity/xsvc-appsync-3-explicit-field-deny-overrides-api-wildcard-allow-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-identity/check_xsvc_appsync_3_explicit_field_deny_overrides_api_wildcard_allow_denied.py", "service": "appsync__cognito-identity"} {"check_id": "appsync__cognito-identity.xsvc-appsync-3-unauthenticated-identity-role-without-grant-denied", "deployments": [], "key": "appsync__cognito-identity/xsvc-appsync-3-unauthenticated-identity-role-without-grant-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-identity/check_xsvc_appsync_3_unauthenticated_identity_role_without_grant_denied.py", "service": "appsync__cognito-identity"} {"check_id": "appsync__cognito-identity.xsvc-appsync-3-ungranted-query-field-denied", "deployments": [], "key": "appsync__cognito-identity/xsvc-appsync-3-ungranted-query-field-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-identity/check_xsvc_appsync_3_ungranted_query_field_denied.py", "service": "appsync__cognito-identity"} {"check_id": "appsync__cognito-identity__dynamodb.deep-appsync-2-appsync-authz-caller-credentials-getitem-denied-item-unchanged", "deployments": [], "key": "appsync__cognito-identity__dynamodb/deep-appsync-2-appsync-authz-caller-credentials-getitem-denied-item-unchanged", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetDataSource", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/appsync__cognito-identity__dynamodb/check_deep_appsync_2_appsync_authz_caller_credentials_getitem_denied_item_unchanged.py", "service": "appsync__cognito-identity__dynamodb"} {"check_id": "appsync__cognito-idp.deep-appsync-2-appsync-authz-oidc-iat-ttl-rejects-aged-token", "deployments": [], "key": "appsync__cognito-idp/deep-appsync-2-appsync-authz-oidc-iat-ttl-rejects-aged-token", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/appsync__cognito-idp/check_deep_appsync_2_appsync_authz_oidc_iat_ttl_rejects_aged_token.py", "service": "appsync__cognito-idp"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-apikey-expired-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-apikey-expired-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_apikey_expired_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-cognito-admin-created-user-can-query-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-cognito-admin-created-user-can-query-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_cognito_admin_created_user_can_query_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-cognito-expired-token-unauthorized-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-cognito-expired-token-unauthorized-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_cognito_expired_token_unauthorized_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-cognito-groups-claim-authorization-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-cognito-groups-claim-authorization-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_cognito_groups_claim_authorization_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-cognito-invalid-token-unauthorized-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-cognito-invalid-token-unauthorized-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_cognito_invalid_token_unauthorized_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-cognito-userpool-auth-valid-token-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-cognito-userpool-auth-valid-token-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_cognito_userpool_auth_valid_token_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-cognito-wrong-userpool-token-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-cognito-wrong-userpool-token-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_cognito_wrong_userpool_token_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-ddb-batch-pipeline-resolver-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-ddb-batch-pipeline-resolver-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_ddb_batch_pipeline_resolver_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-ddb-datasource-missing-role-permission-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-ddb-datasource-missing-role-permission-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_ddb_datasource_missing_role_permission_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-ddb-resolver-context-identity-write-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-ddb-resolver-context-identity-write-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_ddb_resolver_context_identity_write_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-ddb-resolver-delete-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-ddb-resolver-delete-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_ddb_resolver_delete_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-ddb-resolver-put-get-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-ddb-resolver-put-get-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_ddb_resolver_put_get_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-ddb-resolver-query-gsi-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-ddb-resolver-query-gsi-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_ddb_resolver_query_gsi_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-ddb-resolver-update-conditional-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-ddb-resolver-update-conditional-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_ddb_resolver_update_conditional_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-ddb-wrong-table-arn-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-ddb-wrong-table-arn-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateDataSource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_ddb_wrong_table_arn_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-iam-auth-missing-policy-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-iam-auth-missing-policy-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_iam_auth_missing_policy_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-invalid-api-key-rejected", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-invalid-api-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_invalid_api_key_rejected.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-mutation-triggers-subscription-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-mutation-triggers-subscription-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_mutation_triggers_subscription_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-subscription-cognito-group-filter-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-subscription-cognito-group-filter-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_subscription_cognito_group_filter_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-subscription-filter-mismatch-no-delivery-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-subscription-filter-mismatch-no-delivery-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_subscription_filter_mismatch_no_delivery_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-subscription-missing-subscribe-permission-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-subscription-missing-subscribe-permission-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_subscription_missing_subscribe_permission_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.appsync-subscription-payload-format", "deployments": [], "key": "appsync__cognito-idp__dynamodb/appsync-subscription-payload-format", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_appsync_subscription_payload_format.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.cli-appsync-apikey-query-ddb-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/cli-appsync-apikey-query-ddb-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_cli_appsync_apikey_query_ddb_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.cli-appsync-create-api-cognito-auth-workflow", "deployments": [], "key": "appsync__cognito-idp__dynamodb/cli-appsync-create-api-cognito-auth-workflow", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_cli_appsync_create_api_cognito_auth_workflow.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.cli-appsync-ddb-datasource-create-workflow", "deployments": [], "key": "appsync__cognito-idp__dynamodb/cli-appsync-ddb-datasource-create-workflow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_cli_appsync_ddb_datasource_create_workflow.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.cli-appsync-delete-datasource-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/cli-appsync-delete-datasource-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_cli_appsync_delete_datasource_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.cli-cognito-admin-disable-user-appsync-auth-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/cli-cognito-admin-disable-user-appsync-auth-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminInitiateAuth", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_cli_cognito_admin_disable_user_appsync_auth_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.cli-cognito-signup-confirm-appsync-query", "deployments": [], "key": "appsync__cognito-idp__dynamodb/cli-cognito-signup-confirm-appsync-query", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_cli_cognito_signup_confirm_appsync_query.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.deploy-appsync-cognito-groups-field-authorization-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/deploy-appsync-cognito-groups-field-authorization-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:InitiateAuth", "dynamodb:GetItem"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_deploy_appsync_cognito_groups_field_authorization_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.deploy-appsync-ddb-cognito-stack-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/deploy-appsync-ddb-cognito-stack-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:InitiateAuth", "dynamodb:GetItem"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_deploy_appsync_ddb_cognito_stack_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.deploy-appsync-ddb-missing-datasource-role-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/deploy-appsync-ddb-missing-datasource-role-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_deploy_appsync_ddb_missing_datasource_role_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.deploy-appsync-multi-datasource-pipeline-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/deploy-appsync-multi-datasource-pipeline-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_deploy_appsync_multi_datasource_pipeline_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.deploy-appsync-schema-resolver-mapping-positive", "deployments": [], "key": "appsync__cognito-idp__dynamodb/deploy-appsync-schema-resolver-mapping-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_deploy_appsync_schema_resolver_mapping_positive.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__cognito-idp__dynamodb.deploy-cognito-userpool-client-appsync-auth-config-negative", "deployments": [], "key": "appsync__cognito-idp__dynamodb/deploy-cognito-userpool-client-appsync-auth-config-negative", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:InitiateAuth", "dynamodb:GetItem"], "path": "behavioral/appsync__cognito-idp__dynamodb/check_deploy_cognito_userpool_client_appsync_auth_config_negative.py", "service": "appsync__cognito-idp__dynamodb"} {"check_id": "appsync__dynamodb.appsync-batch-get-item-resolver-preserves-arity-and-appends-per-key-errors", "deployments": [], "key": "appsync__dynamodb/appsync-batch-get-item-resolver-preserves-arity-and-appends-per-key-errors", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_appsync_batch_get_item_resolver_preserves_arity_and_appends_per_key_errors.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.appsync-concurrent-conditional-mutations-single-winner", "deployments": [], "key": "appsync__dynamodb/appsync-concurrent-conditional-mutations-single-winner", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_appsync_concurrent_conditional_mutations_single_winner.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.appsync-dynamodb-unit-resolver-round-trips-item", "deployments": [], "key": "appsync__dynamodb/appsync-dynamodb-unit-resolver-round-trips-item", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_appsync_dynamodb_unit_resolver_round_trips_item.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.appsync-iam-signed-mutation-reaches-realtime-subscriber-and-query-reads-it-back", "deployments": [], "key": "appsync__dynamodb/appsync-iam-signed-mutation-reaches-realtime-subscriber-and-query-reads-it-back", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_appsync_iam_signed_mutation_reaches_realtime_subscriber_and_query_reads_it_back.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.appsync-optimistic-concurrency-conflict-returns-server-version-and-data", "deployments": [], "key": "appsync__dynamodb/appsync-optimistic-concurrency-conflict-returns-server-version-and-data", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_appsync_optimistic_concurrency_conflict_returns_server_version_and_data.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.appsync-unit-resolver-reads-dynamodb-via-api-key", "deployments": [], "key": "appsync__dynamodb/appsync-unit-resolver-reads-dynamodb-via-api-key", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_appsync_unit_resolver_reads_dynamodb_via_api_key.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.appsync-unsigned-request-to-iam-auth-api-rejected", "deployments": [], "key": "appsync__dynamodb/appsync-unsigned-request-to-iam-auth-api-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_appsync_unsigned_request_to_iam_auth_api_rejected.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.deep-appsync-1-appsync-conflict-automerge-concurrent-stale-writers-all-merge-with-distinct-versions", "deployments": [], "key": "appsync__dynamodb/deep-appsync-1-appsync-conflict-automerge-concurrent-stale-writers-all-merge-with-distinct-versions", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_deep_appsync_1_appsync_conflict_automerge_concurrent_stale_writers_all_merge_with_distinct_versions.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.deep-appsync-1-appsync-conflict-automerge-stale-delete-rejected-and-no-tombstone-written", "deployments": [], "key": "appsync__dynamodb/deep-appsync-1-appsync-conflict-automerge-stale-delete-rejected-and-no-tombstone-written", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_deep_appsync_1_appsync_conflict_automerge_stale_delete_rejected_and_no_tombstone_written.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.deep-appsync-1-appsync-conflict-automerge-stale-disjoint-writes-both-land-and-same-scalar-keeps-server-value", "deployments": [], "key": "appsync__dynamodb/deep-appsync-1-appsync-conflict-automerge-stale-disjoint-writes-both-land-and-same-scalar-keeps-server-value", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_deep_appsync_1_appsync_conflict_automerge_stale_disjoint_writes_both_land_and_same_scalar_keeps_server_value.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb.deep-appsync-1-appsync-conflict-sync-delta-returns-only-changes-after-lastsync-with-tombstone", "deployments": [], "key": "appsync__dynamodb/deep-appsync-1-appsync-conflict-sync-delta-returns-only-changes-after-lastsync-with-tombstone", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/appsync__dynamodb/check_deep_appsync_1_appsync_conflict_sync_delta_returns_only_changes_after_lastsync_with_tombstone.py", "service": "appsync__dynamodb"} {"check_id": "appsync__dynamodb__events.xsvc-appsync-2-near-miss-events-not-delivered-while-the-pipeline-is-live", "deployments": [], "key": "appsync__dynamodb__events/xsvc-appsync-2-near-miss-events-not-delivered-while-the-pipeline-is-live", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/appsync__dynamodb__events/check_xsvc_appsync_2_near_miss_events_not_delivered_while_the_pipeline_is_live.py", "service": "appsync__dynamodb__events"} {"check_id": "appsync__dynamodb__events.xsvc-appsync-2-resolver-error-in-a-200-response-is-a-successful-delivery-not-dead-lettered", "deployments": [], "key": "appsync__dynamodb__events/xsvc-appsync-2-resolver-error-in-a-200-response-is-a-successful-delivery-not-dead-lettered", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/appsync__dynamodb__events/check_xsvc_appsync_2_resolver_error_in_a_200_response_is_a_successful_delivery_not_dead_lettered.py", "service": "appsync__dynamodb__events"} {"check_id": "appsync__dynamodb__events.xsvc-appsync-2-role-without-graphql-denied-dead-letters-and-counts-failed-invocations", "deployments": [], "key": "appsync__dynamodb__events/xsvc-appsync-2-role-without-graphql-denied-dead-letters-and-counts-failed-invocations", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/appsync__dynamodb__events/check_xsvc_appsync_2_role_without_graphql_denied_dead_letters_and_counts_failed_invocations.py", "service": "appsync__dynamodb__events"} {"check_id": "appsync__dynamodb__events.xsvc-appsync-2-rule-input-transformer-mutation-writes-the-mapped-item", "deployments": [], "key": "appsync__dynamodb__events/xsvc-appsync-2-rule-input-transformer-mutation-writes-the-mapped-item", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/appsync__dynamodb__events/check_xsvc_appsync_2_rule_input_transformer_mutation_writes_the_mapped_item.py", "service": "appsync__dynamodb__events"} {"check_id": "appsync__dynamodb__lambda.deep-appsync-1-appsync-conflict-lambda-handler-reject-surfaces-conflictunhandled-and-item-unchanged", "deployments": [], "key": "appsync__dynamodb__lambda/deep-appsync-1-appsync-conflict-lambda-handler-reject-surfaces-conflictunhandled-and-item-unchanged", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/appsync__dynamodb__lambda/check_deep_appsync_1_appsync_conflict_lambda_handler_reject_surfaces_conflictunhandled_and_item_unchanged.py", "service": "appsync__dynamodb__lambda"} {"check_id": "appsync__dynamodb__lambda.deep-appsync-2-appsync-authz-ttl-override-zero-reinvokes-authorizer-every-request", "deployments": [], "key": "appsync__dynamodb__lambda/deep-appsync-2-appsync-authz-ttl-override-zero-reinvokes-authorizer-every-request", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/appsync__dynamodb__lambda/check_deep_appsync_2_appsync_authz_ttl_override_zero_reinvokes_authorizer_every_request.py", "service": "appsync__dynamodb__lambda"} {"check_id": "appsync__events__sqs.eventbridge-datasource-batch-entries-route-independently-in-order", "deployments": [], "key": "appsync__events__sqs/eventbridge-datasource-batch-entries-route-independently-in-order", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/appsync__events__sqs/check_eventbridge_datasource_batch_entries_route_independently_in_order.py", "service": "appsync__events__sqs"} {"check_id": "appsync__events__sqs.eventbridge-datasource-non-object-detail-rejects-whole-batch", "deployments": [], "key": "appsync__events__sqs/eventbridge-datasource-non-object-detail-rejects-whole-batch", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/appsync__events__sqs/check_eventbridge_datasource_non_object_detail_rejects_whole_batch.py", "service": "appsync__events__sqs"} {"check_id": "appsync__events__sqs.eventbridge-datasource-role-scoped-to-other-bus-denied", "deployments": [], "key": "appsync__events__sqs/eventbridge-datasource-role-scoped-to-other-bus-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/appsync__events__sqs/check_eventbridge_datasource_role_scoped_to_other_bus_denied.py", "service": "appsync__events__sqs"} {"check_id": "appsync__events__sqs.eventbridge-datasource-role-without-put-events-denied", "deployments": [], "key": "appsync__events__sqs/eventbridge-datasource-role-without-put-events-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/appsync__events__sqs/check_eventbridge_datasource_role_without_put_events_denied.py", "service": "appsync__events__sqs"} {"check_id": "appsync__events__sqs.eventbridge-datasource-update-repoints-mutations-to-new-bus", "deployments": [], "key": "appsync__events__sqs/eventbridge-datasource-update-repoints-mutations-to-new-bus", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetDataSource", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "appsync:UpdateDataSource", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/appsync__events__sqs/check_eventbridge_datasource_update_repoints_mutations_to_new_bus.py", "service": "appsync__events__sqs"} {"check_id": "appsync__events__sqs.xsvc-appsync-1-eventbridge-datasource-mutation-routes-to-matching-rule-only", "deployments": [], "key": "appsync__events__sqs/xsvc-appsync-1-eventbridge-datasource-mutation-routes-to-matching-rule-only", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/appsync__events__sqs/check_xsvc_appsync_1_eventbridge_datasource_mutation_routes_to_matching_rule_only.py", "service": "appsync__events__sqs"} {"check_id": "appsync__lambda.appsync-batch-invoke-merges-sibling-fields-into-one-invocation", "deployments": [], "key": "appsync__lambda/appsync-batch-invoke-merges-sibling-fields-into-one-invocation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/appsync__lambda/check_appsync_batch_invoke_merges_sibling_fields_into_one_invocation.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.appsync-batch-invoke-partial-item-error-isolates-the-failing-sibling", "deployments": [], "key": "appsync__lambda/appsync-batch-invoke-partial-item-error-isolates-the-failing-sibling", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/appsync__lambda/check_appsync_batch_invoke_partial_item_error_isolates_the_failing_sibling.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.appsync-lambda-authorizer-denial-blocks-resolver-rejected", "deployments": [], "key": "appsync__lambda/appsync-lambda-authorizer-denial-blocks-resolver-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/appsync__lambda/check_appsync_lambda_authorizer_denial_blocks_resolver_rejected.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.appsync-lambda-authorizer-identity-validation-expression-rejects-before-invoke", "deployments": [], "key": "appsync__lambda/appsync-lambda-authorizer-identity-validation-expression-rejects-before-invoke", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:AddPermission", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/appsync__lambda/check_appsync_lambda_authorizer_identity_validation_expression_rejects_before_invoke.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.appsync-lambda-authorizer-result-ttl-caches-exactly-one-invocation", "deployments": [], "key": "appsync__lambda/appsync-lambda-authorizer-result-ttl-caches-exactly-one-invocation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetGraphqlApi", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/appsync__lambda/check_appsync_lambda_authorizer_result_ttl_caches_exactly_one_invocation.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.appsync-pipeline-direct-lambda-functions-thread-prev-result", "deployments": [], "key": "appsync__lambda/appsync-pipeline-direct-lambda-functions-thread-prev-result", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateFunction", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteFunction", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/appsync__lambda/check_appsync_pipeline_direct_lambda_functions_thread_prev_result.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.deep-appsync-2-appsync-authz-denied-fields-nulls-only-the-denied-field", "deployments": [], "key": "appsync__lambda/deep-appsync-2-appsync-authz-denied-fields-nulls-only-the-denied-field", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/appsync__lambda/check_deep_appsync_2_appsync_authz_denied_fields_nulls_only_the_denied_field.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.xsvc-appsync-3-direct-lambda-resolver-error-propagates-exception-type", "deployments": [], "key": "appsync__lambda/xsvc-appsync-3-direct-lambda-resolver-error-propagates-exception-type", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/appsync__lambda/check_xsvc_appsync_3_direct_lambda_resolver_error_propagates_exception_type.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.xsvc-appsync-3-direct-lambda-resolver-receives-full-context-event", "deployments": [], "key": "appsync__lambda/xsvc-appsync-3-direct-lambda-resolver-receives-full-context-event", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/appsync__lambda/check_xsvc_appsync_3_direct_lambda_resolver_receives_full_context_event.py", "service": "appsync__lambda"} {"check_id": "appsync__lambda.xsvc-appsync-3-service-role-without-lambda-invoke-permission-denied", "deployments": [], "key": "appsync__lambda/xsvc-appsync-3-service-role-without-lambda-invoke-permission-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetDataSource", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/appsync__lambda/check_xsvc_appsync_3_service_role_without_lambda_invoke_permission_denied.py", "service": "appsync__lambda"} {"check_id": "appsync__logs.appsync-field-log-level-all-delivers-tracing-for-the-response-request-id", "deployments": [], "key": "appsync__logs/appsync-field-log-level-all-delivers-tracing-for-the-response-request-id", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/appsync__logs/check_appsync_field_log_level_all_delivers_tracing_for_the_response_request_id.py", "service": "appsync__logs"} {"check_id": "appsync__wafv2.appsync-waf-blocked-request-returns-403-waf-forbidden", "deployments": [], "key": "appsync__wafv2/appsync-waf-blocked-request-returns-403-waf-forbidden", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["appsync:CreateApiKey", "appsync:CreateDataSource", "appsync:CreateGraphqlApi", "appsync:CreateResolver", "appsync:DeleteApiKey", "appsync:DeleteDataSource", "appsync:DeleteGraphqlApi", "appsync:DeleteResolver", "appsync:GetSchemaCreationStatus", "appsync:StartSchemaCreation", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/appsync__wafv2/check_appsync_waf_blocked_request_returns_403_waf_forbidden.py", "service": "appsync__wafv2"} {"check_id": "arc-region-switch.active-execution-blocks-start-and-delete-rejected", "deployments": [], "key": "arc-region-switch/active-execution-blocks-start-and-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-region-switch:ApprovePlanExecutionStep", "arc-region-switch:CancelPlanExecution", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlan", "arc-region-switch:GetPlanExecution", "arc-region-switch:ListPlanExecutions", "arc-region-switch:StartPlanExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole"], "path": "behavioral/arc-region-switch/check_active_execution_blocks_start_and_delete_rejected.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.approve-plan-execution-step-reapproval-rejected", "deployments": [], "key": "arc-region-switch/approve-plan-execution-step-reapproval-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["arc-region-switch:ApprovePlanExecutionStep", "arc-region-switch:CancelPlanExecution", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanExecution", "arc-region-switch:ListPlanExecutions", "arc-region-switch:StartPlanExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_approve_plan_execution_step_reapproval_rejected.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.concurrent-start-plan-execution-single-winner", "deployments": [], "key": "arc-region-switch/concurrent-start-plan-execution-single-winner", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["arc-region-switch:ApprovePlanExecutionStep", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanExecution", "arc-region-switch:ListPlanExecutions", "arc-region-switch:StartPlanExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_concurrent_start_plan_execution_single_winner.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.create-get-plan-roundtrip", "deployments": [], "key": "arc-region-switch/create-get-plan-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlan", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_create_get_plan_roundtrip.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.create-plan-invalid-region-count-rejected", "deployments": [], "key": "arc-region-switch/create-plan-invalid-region-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlan", "arc-region-switch:ListPlans", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_create_plan_invalid_region_count_rejected.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.decline-approval-step-cancels-execution", "deployments": [], "key": "arc-region-switch/decline-approval-step-cancels-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["arc-region-switch:ApprovePlanExecutionStep", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanExecution", "arc-region-switch:GetPlanInRegion", "arc-region-switch:StartPlanExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_decline_approval_step_cancels_execution.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.delete-plan-lifecycle-not-found-after-delete", "deployments": [], "key": "arc-region-switch/delete-plan-lifecycle-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlan", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_delete_plan_lifecycle_not_found_after_delete.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.eventbridge-execution-started-event-delivered", "deployments": [], "key": "arc-region-switch/eventbridge-execution-started-event-delivered", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["arc-region-switch:ApprovePlanExecutionStep", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanExecution", "arc-region-switch:StartPlanExecution", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_eventbridge_execution_started_event_delivered.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.get-plan-evaluation-status-flags-missing-config", "deployments": [], "key": "arc-region-switch/get-plan-evaluation-status-flags-missing-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanEvaluationStatus", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_get_plan_evaluation_status_flags_missing_config.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.get-plan-in-region-reflects-plan", "deployments": [], "key": "arc-region-switch/get-plan-in-region-reflects-plan", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanInRegion", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_get_plan_in_region_reflects_plan.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.get-plan-nonexistent-not-found", "deployments": [], "key": "arc-region-switch/get-plan-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlan", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_get_plan_nonexistent_not_found.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.list-plans-includes-created-plan", "deployments": [], "key": "arc-region-switch/list-plans-includes-created-plan", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:ListPlans", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_list_plans_includes_created_plan.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.list-route53-health-checks-empty-when-none-configured", "deployments": [], "key": "arc-region-switch/list-route53-health-checks-empty-when-none-configured", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:ListRoute53HealthChecks", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHealthCheck", "route53:DeleteHostedZone", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_list_route53_health_checks_empty_when_none_configured.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.missing-permission-start-plan-execution-denied", "deployments": [], "key": "arc-region-switch/missing-permission-start-plan-execution-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["arc-region-switch:ApprovePlanExecutionStep", "arc-region-switch:CancelPlanExecution", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanExecution", "arc-region-switch:ListPlanExecutions", "arc-region-switch:StartPlanExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_missing_permission_start_plan_execution_denied.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.start-plan-execution-manual-approval-completes", "deployments": [], "key": "arc-region-switch/start-plan-execution-manual-approval-completes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["arc-region-switch:ApprovePlanExecutionStep", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanExecution", "arc-region-switch:ListPlanExecutionEvents", "arc-region-switch:ListPlanExecutions", "arc-region-switch:StartPlanExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_start_plan_execution_manual_approval_completes.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.start-plan-execution-post-recovery-missing-id-rejected", "deployments": [], "key": "arc-region-switch/start-plan-execution-post-recovery-missing-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["arc-region-switch:CancelPlanExecution", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:ListPlanExecutions", "arc-region-switch:StartPlanExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/arc-region-switch/check_start_plan_execution_post_recovery_missing_id_rejected.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.tag-untag-resource-roundtrip", "deployments": [], "key": "arc-region-switch/tag-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:ListTagsForResource", "arc-region-switch:TagResource", "arc-region-switch:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_tag_untag_resource_roundtrip.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.update-plan-execution-resume-wrong-state-rejected", "deployments": [], "key": "arc-region-switch/update-plan-execution-resume-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-region-switch:ApprovePlanExecutionStep", "arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlanExecution", "arc-region-switch:GetPlanInRegion", "arc-region-switch:StartPlanExecution", "arc-region-switch:UpdatePlanExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_update_plan_execution_resume_wrong_state_rejected.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.update-plan-increments-version-and-persists-changes", "deployments": [], "key": "arc-region-switch/update-plan-increments-version-and-persists-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:GetPlan", "arc-region-switch:UpdatePlan", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_update_plan_increments_version_and_persists_changes.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch.update-plan-nonexistent-not-found", "deployments": [], "key": "arc-region-switch/update-plan-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-region-switch:CreatePlan", "arc-region-switch:DeletePlan", "arc-region-switch:UpdatePlan", "sts:GetCallerIdentity"], "path": "behavioral/arc-region-switch/check_update_plan_nonexistent_not_found.py", "service": "arc-region-switch"} {"check_id": "arc-region-switch__cloudformation.deploy-arcregionswitch-plan-duplicate-regions-rejected", "deployments": [], "key": "arc-region-switch__cloudformation/deploy-arcregionswitch-plan-duplicate-regions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-region-switch:GetPlan", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/arc-region-switch__cloudformation/check_deploy_arcregionswitch_plan_duplicate_regions_rejected.py", "service": "arc-region-switch__cloudformation"} {"check_id": "arc-region-switch__cloudformation.deploy-arcregionswitch-plan-round-trip-then-delete", "deployments": [], "key": "arc-region-switch__cloudformation/deploy-arcregionswitch-plan-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-region-switch:GetPlan", "arc-region-switch:ListTagsForResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/arc-region-switch__cloudformation/check_deploy_arcregionswitch_plan_round_trip_then_delete.py", "service": "arc-region-switch__cloudformation"} {"check_id": "arc-zonal-shift.autoshift-observer-notification-round-trip", "deployments": [], "key": "arc-zonal-shift/autoshift-observer-notification-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:GetAutoshiftObserverNotificationStatus", "arc-zonal-shift:UpdateAutoshiftObserverNotificationStatus"], "path": "behavioral/arc-zonal-shift/check_autoshift_observer_notification_round_trip.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.cancel-practice-run-wrong-shift-type-rejected", "deployments": [], "key": "arc-zonal-shift/cancel-practice-run-wrong-shift-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelPracticeRun", "arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListZonalShifts", "arc-zonal-shift:StartZonalShift", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_cancel_practice_run_wrong_shift_type_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.cancel-zonal-shift-already-canceled-rejected", "deployments": [], "key": "arc-zonal-shift/cancel-zonal-shift-already-canceled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:StartZonalShift", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_cancel_zonal_shift_already_canceled_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.cancel-zonal-shift-malformed-id-rejected", "deployments": [], "key": "arc-zonal-shift/cancel-zonal-shift-malformed-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:ListZonalShifts"], "path": "behavioral/arc-zonal-shift/check_cancel_zonal_shift_malformed_id_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.concurrent-start-zonal-shift-exactly-one-wins", "deployments": [], "key": "arc-zonal-shift/concurrent-start-zonal-shift-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListZonalShifts", "arc-zonal-shift:StartZonalShift", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_concurrent_start_zonal_shift_exactly_one_wins.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.create-practice-run-configuration-duplicate-conflict-rejected", "deployments": [], "key": "arc-zonal-shift/create-practice-run-configuration-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CreatePracticeRunConfiguration", "arc-zonal-shift:DeletePracticeRunConfiguration", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:UpdatePracticeRunConfiguration", "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_create_practice_run_configuration_duplicate_conflict_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.delete-practice-run-configuration-removes-it", "deployments": [], "key": "arc-zonal-shift/delete-practice-run-configuration-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:CreatePracticeRunConfiguration", "arc-zonal-shift:DeletePracticeRunConfiguration", "arc-zonal-shift:GetManagedResource", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_delete_practice_run_configuration_removes_it.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.delete-practice-run-configuration-while-autoshift-enabled-rejected", "deployments": [], "key": "arc-zonal-shift/delete-practice-run-configuration-while-autoshift-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CreatePracticeRunConfiguration", "arc-zonal-shift:DeletePracticeRunConfiguration", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_delete_practice_run_configuration_while_autoshift_enabled_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.get-managed-resource-malformed-identifier-rejected", "deployments": [], "key": "arc-zonal-shift/get-managed-resource-malformed-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListManagedResources"], "path": "behavioral/arc-zonal-shift/check_get_managed_resource_malformed_identifier_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.list-managed-resources-practice-run-status-reflects-config", "deployments": [], "key": "arc-zonal-shift/list-managed-resources-practice-run-status-reflects-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:CreatePracticeRunConfiguration", "arc-zonal-shift:DeletePracticeRunConfiguration", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListManagedResources", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_list_managed_resources_practice_run_status_reflects_config.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.list-zonal-shifts-invalid-status-filter-rejected", "deployments": [], "key": "arc-zonal-shift/list-zonal-shifts-invalid-status-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:ListZonalShifts"], "path": "behavioral/arc-zonal-shift/check_list_zonal_shifts_invalid_status_filter_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.practice-run-blocked-by-alarm-in-alarm-state-rejected", "deployments": [], "key": "arc-zonal-shift/practice-run-blocked-by-alarm-in-alarm-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelPracticeRun", "arc-zonal-shift:CreatePracticeRunConfiguration", "arc-zonal-shift:DeletePracticeRunConfiguration", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListZonalShifts", "arc-zonal-shift:StartPracticeRun", "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_practice_run_blocked_by_alarm_in_alarm_state_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.practice-run-lifecycle-start-and-cancel", "deployments": [], "key": "arc-zonal-shift/practice-run-lifecycle-start-and-cancel", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:CancelPracticeRun", "arc-zonal-shift:CreatePracticeRunConfiguration", "arc-zonal-shift:DeletePracticeRunConfiguration", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:StartPracticeRun", "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_practice_run_lifecycle_start_and_cancel.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.start-zonal-shift-creates-active-shift-and-shifts-weight", "deployments": [], "key": "arc-zonal-shift/start-zonal-shift-creates-active-shift-and-shifts-weight", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:StartZonalShift", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_start_zonal_shift_creates_active_shift_and_shifts_weight.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.start-zonal-shift-duplicate-active-conflict-rejected", "deployments": [], "key": "arc-zonal-shift/start-zonal-shift-duplicate-active-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListZonalShifts", "arc-zonal-shift:StartZonalShift", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_start_zonal_shift_duplicate_active_conflict_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.start-zonal-shift-invalid-az-rejected", "deployments": [], "key": "arc-zonal-shift/start-zonal-shift-invalid-az-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:StartZonalShift", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_start_zonal_shift_invalid_az_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.start-zonal-shift-invalid-expires-in-format-rejected", "deployments": [], "key": "arc-zonal-shift/start-zonal-shift-invalid-expires-in-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListZonalShifts", "arc-zonal-shift:StartZonalShift", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyLoadBalancerAttributes", "elbv2:RegisterTargets"], "path": "behavioral/arc-zonal-shift/check_start_zonal_shift_invalid_expires_in_format_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.start-zonal-shift-nonexistent-lb-access-denied", "deployments": [], "key": "arc-zonal-shift/start-zonal-shift-nonexistent-lb-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:ListZonalShifts", "arc-zonal-shift:StartZonalShift", "sts:GetCallerIdentity"], "path": "behavioral/arc-zonal-shift/check_start_zonal_shift_nonexistent_lb_access_denied.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.update-zonal-autoshift-enabled-without-practice-config-rejected", "deployments": [], "key": "arc-zonal-shift/update-zonal-autoshift-enabled-without-practice-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CreatePracticeRunConfiguration", "arc-zonal-shift:DeletePracticeRunConfiguration", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_update_zonal_autoshift_enabled_without_practice_config_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.update-zonal-shift-after-cancel-rejected", "deployments": [], "key": "arc-zonal-shift/update-zonal-shift-after-cancel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListZonalShifts", "arc-zonal-shift:StartZonalShift", "arc-zonal-shift:UpdateZonalShift", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_update_zonal_shift_after_cancel_rejected.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.update-zonal-shift-extends-expiry", "deployments": [], "key": "arc-zonal-shift/update-zonal-shift-extends-expiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:StartZonalShift", "arc-zonal-shift:UpdateZonalShift", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_update_zonal_shift_extends_expiry.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.zonal-autoshift-configuration-toggle-reflects-in-managed-resource", "deployments": [], "key": "arc-zonal-shift/zonal-autoshift-configuration-toggle-reflects-in-managed-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:CreatePracticeRunConfiguration", "arc-zonal-shift:DeletePracticeRunConfiguration", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_zonal_autoshift_configuration_toggle_reflects_in_managed_resource.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift.zonal-shift-expires-after-min-duration", "deployments": [], "key": "arc-zonal-shift/zonal-shift-expires-after-min-duration", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["arc-zonal-shift:CancelZonalShift", "arc-zonal-shift:GetManagedResource", "arc-zonal-shift:ListZonalShifts", "arc-zonal-shift:StartZonalShift", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/arc-zonal-shift/check_zonal_shift_expires_after_min_duration.py", "service": "arc-zonal-shift"} {"check_id": "arc-zonal-shift__cloudformation.deploy-arc-zonal-shift-autoshift-observer-notification-status-invalid-status-rejected", "deployments": [], "key": "arc-zonal-shift__cloudformation/deploy-arc-zonal-shift-autoshift-observer-notification-status-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["arc-zonal-shift:GetAutoshiftObserverNotificationStatus", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/arc-zonal-shift__cloudformation/check_deploy_arc_zonal_shift_autoshift_observer_notification_status_invalid_status_rejected.py", "service": "arc-zonal-shift__cloudformation"} {"check_id": "arc-zonal-shift__cloudformation.deploy-arc-zonal-shift-autoshift-observer-notification-status-round-trip-and-delete", "deployments": [], "key": "arc-zonal-shift__cloudformation/deploy-arc-zonal-shift-autoshift-observer-notification-status-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:GetAutoshiftObserverNotificationStatus", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/arc-zonal-shift__cloudformation/check_deploy_arc_zonal_shift_autoshift_observer_notification_status_round_trip_and_delete.py", "service": "arc-zonal-shift__cloudformation"} {"check_id": "arc-zonal-shift__cloudformation.deploy-arc-zonal-shift-zonal-autoshift-configuration-round-trip-and-delete", "deployments": [], "key": "arc-zonal-shift__cloudformation/deploy-arc-zonal-shift-zonal-autoshift-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["arc-zonal-shift:GetManagedResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/arc-zonal-shift__cloudformation/check_deploy_arc_zonal_shift_zonal_autoshift_configuration_round_trip_and_delete.py", "service": "arc-zonal-shift__cloudformation"} {"check_id": "artifact.account-settings-toggle-persists", "deployments": [], "key": "artifact/account-settings-toggle-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:GetAccountSettings", "artifact:PutAccountSettings"], "path": "behavioral/artifact/check_account_settings_toggle_persists.py", "service": "artifact"} {"check_id": "artifact.compliance-inquiry-appears-in-list", "deployments": [], "key": "artifact/compliance-inquiry-appears-in-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:ListComplianceInquiries"], "path": "behavioral/artifact/check_compliance_inquiry_appears_in_list.py", "service": "artifact"} {"check_id": "artifact.compliance-inquiry-concurrent-create-same-client-token-idempotent", "deployments": [], "key": "artifact/compliance-inquiry-concurrent-create-same-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:ListComplianceInquiries"], "path": "behavioral/artifact/check_compliance_inquiry_concurrent_create_same_client_token_idempotent.py", "service": "artifact"} {"check_id": "artifact.compliance-inquiry-queries-ai-only-reviewtype", "deployments": [], "key": "artifact/compliance-inquiry-queries-ai-only-reviewtype", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:GetComplianceInquiryMetadata", "artifact:ListComplianceInquiryQueries"], "path": "behavioral/artifact/check_compliance_inquiry_queries_ai_only_reviewtype.py", "service": "artifact"} {"check_id": "artifact.create-compliance-inquiry-invalid-client-token-pattern-rejected", "deployments": [], "key": "artifact/create-compliance-inquiry-invalid-client-token-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:ListComplianceInquiries"], "path": "behavioral/artifact/check_create_compliance_inquiry_invalid_client_token_pattern_rejected.py", "service": "artifact"} {"check_id": "artifact.create-compliance-inquiry-reaches-terminal-state", "deployments": [], "key": "artifact/create-compliance-inquiry-reaches-terminal-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:GetComplianceInquiryMetadata"], "path": "behavioral/artifact/check_create_compliance_inquiry_reaches_terminal_state.py", "service": "artifact"} {"check_id": "artifact.export-compliance-inquiry-after-terminal", "deployments": [], "key": "artifact/export-compliance-inquiry-after-terminal", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["artifact:CreateComplianceInquiry", "artifact:ExportComplianceInquiry", "artifact:GetComplianceInquiryMetadata"], "path": "behavioral/artifact/check_export_compliance_inquiry_after_terminal.py", "service": "artifact"} {"check_id": "artifact.export-compliance-inquiry-refused-while-processing", "deployments": [], "key": "artifact/export-compliance-inquiry-refused-while-processing", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:ExportComplianceInquiry", "artifact:GetComplianceInquiryMetadata"], "path": "behavioral/artifact/check_export_compliance_inquiry_refused_while_processing.py", "service": "artifact"} {"check_id": "artifact.get-compliance-inquiry-metadata-not-found", "deployments": [], "key": "artifact/get-compliance-inquiry-metadata-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:GetComplianceInquiryMetadata"], "path": "behavioral/artifact/check_get_compliance_inquiry_metadata_not_found.py", "service": "artifact"} {"check_id": "artifact.get-report-download-roundtrip", "deployments": [], "key": "artifact/get-report-download-roundtrip", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["artifact:GetReport", "artifact:GetTermForReport", "artifact:ListReports"], "path": "behavioral/artifact/check_get_report_download_roundtrip.py", "service": "artifact"} {"check_id": "artifact.get-report-metadata-invalid-id-pattern-rejected", "deployments": [], "key": "artifact/get-report-metadata-invalid-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:GetReportMetadata", "artifact:ListReports"], "path": "behavioral/artifact/check_get_report_metadata_invalid_id_pattern_rejected.py", "service": "artifact"} {"check_id": "artifact.get-report-metadata-matches-list-reports", "deployments": [], "key": "artifact/get-report-metadata-matches-list-reports", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:GetReportMetadata", "artifact:ListReports"], "path": "behavioral/artifact/check_get_report_metadata_matches_list_reports.py", "service": "artifact"} {"check_id": "artifact.get-report-metadata-not-found", "deployments": [], "key": "artifact/get-report-metadata-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:GetReportMetadata", "artifact:ListReports"], "path": "behavioral/artifact/check_get_report_metadata_not_found.py", "service": "artifact"} {"check_id": "artifact.get-report-term-token-cross-resource-rejected", "deployments": [], "key": "artifact/get-report-term-token-cross-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:GetReport", "artifact:GetTermForReport", "artifact:ListReports"], "path": "behavioral/artifact/check_get_report_term_token_cross_resource_rejected.py", "service": "artifact"} {"check_id": "artifact.list-customer-agreements-state-consistency", "deployments": [], "key": "artifact/list-customer-agreements-state-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:ListCustomerAgreements"], "path": "behavioral/artifact/check_list_customer_agreements_state_consistency.py", "service": "artifact"} {"check_id": "artifact.list-reports-max-results-out-of-range-rejected", "deployments": [], "key": "artifact/list-reports-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:ListReports"], "path": "behavioral/artifact/check_list_reports_max_results_out_of_range_rejected.py", "service": "artifact"} {"check_id": "artifact.list-reports-pagination-no-overlap", "deployments": [], "key": "artifact/list-reports-pagination-no-overlap", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:ListReports"], "path": "behavioral/artifact/check_list_reports_pagination_no_overlap.py", "service": "artifact"} {"check_id": "artifact.put-compliance-inquiry-feedback-conflicting-payload-rejected", "deployments": [], "key": "artifact/put-compliance-inquiry-feedback-conflicting-payload-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:GetComplianceInquiryMetadata", "artifact:ListComplianceInquiryQueries", "artifact:PutComplianceInquiryFeedback"], "path": "behavioral/artifact/check_put_compliance_inquiry_feedback_conflicting_payload_rejected.py", "service": "artifact"} {"check_id": "artifact.put-compliance-inquiry-feedback-idempotent-same-payload", "deployments": [], "key": "artifact/put-compliance-inquiry-feedback-idempotent-same-payload", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:GetComplianceInquiryMetadata", "artifact:ListComplianceInquiryQueries", "artifact:PutComplianceInquiryFeedback"], "path": "behavioral/artifact/check_put_compliance_inquiry_feedback_idempotent_same_payload.py", "service": "artifact"} {"check_id": "artifact.report-metadata-upload-state-values-valid", "deployments": [], "key": "artifact/report-metadata-upload-state-values-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:GetReportMetadata", "artifact:ListReports"], "path": "behavioral/artifact/check_report_metadata_upload_state_values_valid.py", "service": "artifact"} {"check_id": "artifact.report-version-listing-consistency", "deployments": [], "key": "artifact/report-version-listing-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:GetReportMetadata", "artifact:ListReportVersions", "artifact:ListReports"], "path": "behavioral/artifact/check_report_version_listing_consistency.py", "service": "artifact"} {"check_id": "artifact.tag-resource-exceeds-max-entries-rejected", "deployments": [], "key": "artifact/tag-resource-exceeds-max-entries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:ListTagsForResource", "artifact:TagResource", "artifact:UntagResource"], "path": "behavioral/artifact/check_tag_resource_exceeds_max_entries_rejected.py", "service": "artifact"} {"check_id": "artifact.tag-resource-round-trip-on-compliance-inquiry", "deployments": [], "key": "artifact/tag-resource-round-trip-on-compliance-inquiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["artifact:CreateComplianceInquiry", "artifact:ListTagsForResource", "artifact:TagResource", "artifact:UntagResource"], "path": "behavioral/artifact/check_tag_resource_round_trip_on_compliance_inquiry.py", "service": "artifact"} {"check_id": "athena.athena-batch-get-named-query-limit-exceeded-rejected", "deployments": [], "key": "athena/athena-batch-get-named-query-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:BatchGetNamedQuery", "athena:CreateNamedQuery", "athena:DeleteNamedQuery"], "path": "behavioral/athena/check_athena_batch_get_named_query_limit_exceeded_rejected.py", "service": "athena"} {"check_id": "athena.athena-capacity-reservation-below-minimum-dpus-rejected", "deployments": [], "key": "athena/athena-capacity-reservation-below-minimum-dpus-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation"], "path": "behavioral/athena/check_athena_capacity_reservation_below_minimum_dpus_rejected.py", "service": "athena"} {"check_id": "athena.athena-capacity-reservation-pending-then-cancelled-transition", "deployments": [], "key": "athena/athena-capacity-reservation-pending-then-cancelled-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:ListCapacityReservations"], "path": "behavioral/athena/check_athena_capacity_reservation_pending_then_cancelled_transition.py", "service": "athena"} {"check_id": "athena.athena-concurrent-named-query-creation-unique-ids", "deployments": [], "key": "athena/athena-concurrent-named-query-creation-unique-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:BatchGetNamedQuery", "athena:CreateNamedQuery", "athena:DeleteNamedQuery"], "path": "behavioral/athena/check_athena_concurrent_named_query_creation_unique_ids.py", "service": "athena"} {"check_id": "athena.athena-data-catalog-glue-create-complete-state", "deployments": [], "key": "athena/athena-data-catalog-glue-create-complete-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:ListDataCatalogs", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_athena_data_catalog_glue_create_complete_state.py", "service": "athena"} {"check_id": "athena.athena-delete-data-catalog-nonexistent-rejected", "deployments": [], "key": "athena/athena-delete-data-catalog-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_athena_delete_data_catalog_nonexistent_rejected.py", "service": "athena"} {"check_id": "athena.athena-get-data-catalog-after-delete-not-found", "deployments": [], "key": "athena/athena-get-data-catalog-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:ListDataCatalogs", "athena:UpdateDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_athena_get_data_catalog_after_delete_not_found.py", "service": "athena"} {"check_id": "athena.athena-get-query-results-not-finished-error", "deployments": [], "key": "athena/athena-get-query-results-not-finished-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_athena_get_query_results_not_finished_error.py", "service": "athena"} {"check_id": "athena.athena-named-query-client-request-token-idempotent", "deployments": [], "key": "athena/athena-named-query-client-request-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:ListNamedQueries"], "path": "behavioral/athena/check_athena_named_query_client_request_token_idempotent.py", "service": "athena"} {"check_id": "athena.athena-named-query-crud-lifecycle", "deployments": [], "key": "athena/athena-named-query-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:ListNamedQueries", "athena:UpdateNamedQuery"], "path": "behavioral/athena/check_athena_named_query_crud_lifecycle.py", "service": "athena"} {"check_id": "athena.athena-prepared-statement-crud-lifecycle", "deployments": [], "key": "athena/athena-prepared-statement-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:ListPreparedStatements", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_athena_prepared_statement_crud_lifecycle.py", "service": "athena"} {"check_id": "athena.athena-prepared-statement-duplicate-name-rejected", "deployments": [], "key": "athena/athena-prepared-statement-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetPreparedStatement"], "path": "behavioral/athena/check_athena_prepared_statement_duplicate_name_rejected.py", "service": "athena"} {"check_id": "athena.athena-query-execution-success-lifecycle", "deployments": [], "key": "athena/athena-query-execution-success-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_athena_query_execution_success_lifecycle.py", "service": "athena"} {"check_id": "athena.athena-query-execution-syntax-error-failed-state", "deployments": [], "key": "athena/athena-query-execution-syntax-error-failed-state", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_athena_query_execution_syntax_error_failed_state.py", "service": "athena"} {"check_id": "athena.athena-start-query-execution-client-request-token-idempotent", "deployments": [], "key": "athena/athena-start-query-execution-client-request-token-idempotent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_athena_start_query_execution_client_request_token_idempotent.py", "service": "athena"} {"check_id": "athena.athena-stop-query-execution-cancelled-transition", "deployments": [], "key": "athena/athena-stop-query-execution-cancelled-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_athena_stop_query_execution_cancelled_transition.py", "service": "athena"} {"check_id": "athena.athena-tag-resource-and-list-tags-round-trip", "deployments": [], "key": "athena/athena-tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "athena:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_athena_tag_resource_and_list_tags_round_trip.py", "service": "athena"} {"check_id": "athena.athena-tag-resource-nonexistent-arn-not-found", "deployments": [], "key": "athena/athena-tag-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_athena_tag_resource_nonexistent_arn_not_found.py", "service": "athena"} {"check_id": "athena.athena-untag-resource-contract", "deployments": [], "key": "athena/athena-untag-resource-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_athena_untag_resource_contract.py", "service": "athena"} {"check_id": "athena.athena-workgroup-create-default-state", "deployments": [], "key": "athena/athena-workgroup-create-default-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:ListWorkGroups"], "path": "behavioral/athena/check_athena_workgroup_create_default_state.py", "service": "athena"} {"check_id": "athena.athena-workgroup-default-output-location-used-by-query", "deployments": [], "key": "athena/athena-workgroup-default-output-location-used-by-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_athena_workgroup_default_output_location_used_by_query.py", "service": "athena"} {"check_id": "athena.athena-workgroup-duplicate-name-rejected", "deployments": [], "key": "athena/athena-workgroup-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup"], "path": "behavioral/athena/check_athena_workgroup_duplicate_name_rejected.py", "service": "athena"} {"check_id": "athena.batch-get-named-query-exceeds-limit-rejected", "deployments": [], "key": "athena/batch-get-named-query-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:BatchGetNamedQuery", "athena:CreateNamedQuery", "athena:DeleteNamedQuery"], "path": "behavioral/athena/check_batch_get_named_query_exceeds_limit_rejected.py", "service": "athena"} {"check_id": "athena.batch-get-named-query-limit-exceeded", "deployments": [], "key": "athena/batch-get-named-query-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:BatchGetNamedQuery", "athena:CreateNamedQuery", "athena:DeleteNamedQuery"], "path": "behavioral/athena/check_batch_get_named_query_limit_exceeded.py", "service": "athena"} {"check_id": "athena.batch-get-named-query-partial-unprocessed", "deployments": [], "key": "athena/batch-get-named-query-partial-unprocessed", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:BatchGetNamedQuery", "athena:CreateNamedQuery", "athena:DeleteNamedQuery"], "path": "behavioral/athena/check_batch_get_named_query_partial_unprocessed.py", "service": "athena"} {"check_id": "athena.batch-get-query-execution-partial-unprocessed", "deployments": [], "key": "athena/batch-get-query-execution-partial-unprocessed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:BatchGetQueryExecution", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_batch_get_query_execution_partial_unprocessed.py", "service": "athena"} {"check_id": "athena.batch-get-query-execution-reflects-started-queries", "deployments": [], "key": "athena/batch-get-query-execution-reflects-started-queries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:BatchGetQueryExecution", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_batch_get_query_execution_reflects_started_queries.py", "service": "athena"} {"check_id": "athena.bytes-scanned-cutoff-fails-the-oversized-query", "deployments": [], "key": "athena/bytes-scanned-cutoff-fails-the-oversized-query", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_bytes_scanned_cutoff_fails_the_oversized_query.py", "service": "athena"} {"check_id": "athena.calculation-execution-exceeds-timeout-marked-timed-out", "deployments": [], "key": "athena/calculation-execution-exceeds-timeout-marked-timed-out", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecutionStatus", "athena:GetSessionStatus", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_calculation_execution_exceeds_timeout_marked_timed_out.py", "service": "athena"} {"check_id": "athena.calculation-execution-lifecycle-start-get-status-code-stop", "deployments": [], "key": "athena/calculation-execution-lifecycle-start-get-status-code-stop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecution", "athena:GetCalculationExecutionCode", "athena:GetCalculationExecutionStatus", "athena:GetSessionStatus", "athena:ListCalculationExecutions", "athena:StartCalculationExecution", "athena:StartSession", "athena:StopCalculationExecution", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/athena/check_calculation_execution_lifecycle_start_get_status_code_stop.py", "service": "athena"} {"check_id": "athena.calculation-ops-reject-unknown-calculation", "deployments": [], "key": "athena/calculation-ops-reject-unknown-calculation", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecution", "athena:GetCalculationExecutionCode", "athena:GetCalculationExecutionStatus", "athena:GetSessionStatus", "athena:StartCalculationExecution", "athena:StartSession", "athena:StopCalculationExecution", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/athena/check_calculation_ops_reject_unknown_calculation.py", "service": "athena"} {"check_id": "athena.cancel-capacity-reservation-already-cancelled-fails", "deployments": [], "key": "athena/cancel-capacity-reservation-already-cancelled-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation"], "path": "behavioral/athena/check_cancel_capacity_reservation_already_cancelled_fails.py", "service": "athena"} {"check_id": "athena.cancel-capacity-reservation-not-active-fails", "deployments": [], "key": "athena/cancel-capacity-reservation-not-active-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation"], "path": "behavioral/athena/check_cancel_capacity_reservation_not_active_fails.py", "service": "athena"} {"check_id": "athena.cancelled-scan-writes-no-result-object-and-rejects-results", "deployments": [], "key": "athena/cancelled-scan-writes-no-result-object-and-rejects-results", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_cancelled_scan_writes_no_result_object_and_rejects_results.py", "service": "athena"} {"check_id": "athena.capacity-assignment-configuration-governs-workgroup-execution", "deployments": [], "key": "athena/capacity-assignment-configuration-governs-workgroup-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:CreateWorkGroup", "athena:DeleteCapacityReservation", "athena:DeleteWorkGroup", "athena:GetCapacityAssignmentConfiguration", "athena:GetCapacityReservation", "athena:GetQueryExecution", "athena:PutCapacityAssignmentConfiguration", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_capacity_assignment_configuration_governs_workgroup_execution.py", "service": "athena"} {"check_id": "athena.capacity-assignment-configuration-put-get-roundtrip", "deployments": [], "key": "athena/capacity-assignment-configuration-put-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:CreateWorkGroup", "athena:DeleteCapacityReservation", "athena:DeleteWorkGroup", "athena:GetCapacityAssignmentConfiguration", "athena:GetCapacityReservation", "athena:PutCapacityAssignmentConfiguration"], "path": "behavioral/athena/check_capacity_assignment_configuration_put_get_roundtrip.py", "service": "athena"} {"check_id": "athena.capacity-reservation-delete-before-cancel-rejected", "deployments": [], "key": "athena/capacity-reservation-delete-before-cancel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:ListCapacityReservations"], "path": "behavioral/athena/check_capacity_reservation_delete_before_cancel_rejected.py", "service": "athena"} {"check_id": "athena.capacity-reservation-lifecycle-create-get-update-cancel-delete", "deployments": [], "key": "athena/capacity-reservation-lifecycle-create-get-update-cancel-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:ListCapacityReservations", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_capacity_reservation_lifecycle_create_get_update_cancel_delete.py", "service": "athena"} {"check_id": "athena.capacity-reservation-lifecycle-create-update-delete", "deployments": [], "key": "athena/capacity-reservation-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_capacity_reservation_lifecycle_create_update_delete.py", "service": "athena"} {"check_id": "athena.capacity-reservation-negative-dpu-target-rejected", "deployments": [], "key": "athena/capacity-reservation-negative-dpu-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:ListCapacityReservations", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_capacity_reservation_negative_dpu_target_rejected.py", "service": "athena"} {"check_id": "athena.capacity-reservation-target-dpus-below-minimum-rejected", "deployments": [], "key": "athena/capacity-reservation-target-dpus-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:ListCapacityReservations"], "path": "behavioral/athena/check_capacity_reservation_target_dpus_below_minimum_rejected.py", "service": "athena"} {"check_id": "athena.capacity-reservation-target-dpus-numeric-precision-preserved", "deployments": [], "key": "athena/capacity-reservation-target-dpus-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation"], "path": "behavioral/athena/check_capacity_reservation_target_dpus_numeric_precision_preserved.py", "service": "athena"} {"check_id": "athena.capacity-reservation-target-dpus-round-trip", "deployments": [], "key": "athena/capacity-reservation-target-dpus-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_capacity_reservation_target_dpus_round_trip.py", "service": "athena"} {"check_id": "athena.capacity-reservation-timestamp-precision-preserved", "deployments": [], "key": "athena/capacity-reservation-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation"], "path": "behavioral/athena/check_capacity_reservation_timestamp_precision_preserved.py", "service": "athena"} {"check_id": "athena.capacity-reservation-unknown-name-rejected", "deployments": [], "key": "athena/capacity-reservation-unknown-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:CreateWorkGroup", "athena:DeleteCapacityReservation", "athena:DeleteWorkGroup", "athena:GetCapacityAssignmentConfiguration", "athena:GetCapacityReservation", "athena:ListCapacityReservations", "athena:PutCapacityAssignmentConfiguration"], "path": "behavioral/athena/check_capacity_reservation_unknown_name_rejected.py", "service": "athena"} {"check_id": "athena.capacity-reservation-update-below-minimum-rejected", "deployments": [], "key": "athena/capacity-reservation-update-below-minimum-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_capacity_reservation_update_below_minimum_rejected.py", "service": "athena"} {"check_id": "athena.capacity-reservation-update-while-pending-conflicts", "deployments": [], "key": "athena/capacity-reservation-update-while-pending-conflicts", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_capacity_reservation_update_while_pending_conflicts.py", "service": "athena"} {"check_id": "athena.client-request-token-dedup-returns-same-execution", "deployments": [], "key": "athena/client-request-token-dedup-returns-same-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_client_request_token_dedup_returns_same_execution.py", "service": "athena"} {"check_id": "athena.client-request-token-reuse-conflicting-params-rejected", "deployments": [], "key": "athena/client-request-token-reuse-conflicting-params-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_client_request_token_reuse_conflicting_params_rejected.py", "service": "athena"} {"check_id": "athena.columnar-projection-reads-a-fraction-of-the-row-format-bytes", "deployments": [], "key": "athena/columnar-projection-reads-a-fraction-of-the-row-format-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_columnar_projection_reads_a_fraction_of_the_row_format_bytes.py", "service": "athena"} {"check_id": "athena.concurrent-capacity-reservation-update-race", "deployments": [], "key": "athena/concurrent-capacity-reservation-update-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_concurrent_capacity_reservation_update_race.py", "service": "athena"} {"check_id": "athena.concurrent-capacity-reservation-update-race-resolves-consistently", "deployments": [], "key": "athena/concurrent-capacity-reservation-update-race-resolves-consistently", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_concurrent_capacity_reservation_update_race_resolves_consistently.py", "service": "athena"} {"check_id": "athena.concurrent-data-catalog-delete-only-one-succeeds", "deployments": [], "key": "athena/concurrent-data-catalog-delete-only-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_concurrent_data_catalog_delete_only_one_succeeds.py", "service": "athena"} {"check_id": "athena.concurrent-identical-queries-result-reuse-invariant", "deployments": [], "key": "athena/concurrent-identical-queries-result-reuse-invariant", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_concurrent_identical_queries_result_reuse_invariant.py", "service": "athena"} {"check_id": "athena.concurrent-named-query-delete-race-single-success", "deployments": [], "key": "athena/concurrent-named-query-delete-race-single-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery"], "path": "behavioral/athena/check_concurrent_named_query_delete_race_single_success.py", "service": "athena"} {"check_id": "athena.concurrent-prepared-statement-create-race", "deployments": [], "key": "athena/concurrent-prepared-statement-create-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement"], "path": "behavioral/athena/check_concurrent_prepared_statement_create_race.py", "service": "athena"} {"check_id": "athena.concurrent-query-executions-all-succeed", "deployments": [], "key": "athena/concurrent-query-executions-all-succeed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_concurrent_query_executions_all_succeed.py", "service": "athena"} {"check_id": "athena.concurrent-workgroup-create-duplicate-name", "deployments": [], "key": "athena/concurrent-workgroup-create-duplicate-name", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:ListWorkGroups"], "path": "behavioral/athena/check_concurrent_workgroup_create_duplicate_name.py", "service": "athena"} {"check_id": "athena.create-data-catalog-duplicate-name-rejected", "deployments": [], "key": "athena/create-data-catalog-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_create_data_catalog_duplicate_name_rejected.py", "service": "athena"} {"check_id": "athena.create-database-ddl-populates-glue-catalog-location", "deployments": [], "key": "athena/create-database-ddl-populates-glue-catalog-location", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:GetDatabase", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_create_database_ddl_populates_glue_catalog_location.py", "service": "athena"} {"check_id": "athena.create-notebook-on-sql-workgroup-rejected", "deployments": [], "key": "athena/create-notebook-on-sql-workgroup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:GetNotebookMetadata", "athena:ListNotebookMetadata", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_create_notebook_on_sql_workgroup_rejected.py", "service": "athena"} {"check_id": "athena.create-presigned-notebook-url-nonexistent-notebook-not-found", "deployments": [], "key": "athena/create-presigned-notebook-url-nonexistent-notebook-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreatePresignedNotebookUrl"], "path": "behavioral/athena/check_create_presigned_notebook_url_nonexistent_notebook_not_found.py", "service": "athena"} {"check_id": "athena.create-presigned-notebook-url-requires-existing-notebook", "deployments": [], "key": "athena/create-presigned-notebook-url-requires-existing-notebook", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreatePresignedNotebookUrl", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/athena/check_create_presigned_notebook_url_requires_existing_notebook.py", "service": "athena"} {"check_id": "athena.create-workgroup-duplicate-name-rejected", "deployments": [], "key": "athena/create-workgroup-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup"], "path": "behavioral/athena/check_create_workgroup_duplicate_name_rejected.py", "service": "athena"} {"check_id": "athena.csv-serde-quoted-field-and-skipped-header-yield-exact-rows", "deployments": [], "key": "athena/csv-serde-quoted-field-and-skipped-header-yield-exact-rows", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_csv_serde_quoted_field_and_skipped_header_yield_exact_rows.py", "service": "athena"} {"check_id": "athena.ctas-creates-queryable-table", "deployments": [], "key": "athena/ctas-creates-queryable-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_ctas_creates_queryable_table.py", "service": "athena"} {"check_id": "athena.ctas-partition-key-not-last-column-rejected", "deployments": [], "key": "athena/ctas-partition-key-not-last-column-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetTableMetadata", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_ctas_partition_key_not_last_column_rejected.py", "service": "athena"} {"check_id": "athena.ctas-partitioned-by-writes-one-s3-prefix-per-partition", "deployments": [], "key": "athena/ctas-partitioned-by-writes-one-s3-prefix-per-partition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_ctas_partitioned_by_writes_one_s3_prefix_per_partition.py", "service": "athena"} {"check_id": "athena.data-catalog-delete-reserved-aws-data-catalog-fails", "deployments": [], "key": "athena/data-catalog-delete-reserved-aws-data-catalog-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_data_catalog_delete_reserved_aws_data_catalog_fails.py", "service": "athena"} {"check_id": "athena.data-catalog-duplicate-name-rejected", "deployments": [], "key": "athena/data-catalog-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog"], "path": "behavioral/athena/check_data_catalog_duplicate_name_rejected.py", "service": "athena"} {"check_id": "athena.data-catalog-glue-create-synchronous-and-delete", "deployments": [], "key": "athena/data-catalog-glue-create-synchronous-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_data_catalog_glue_create_synchronous_and_delete.py", "service": "athena"} {"check_id": "athena.data-catalog-invalid-type-fails", "deployments": [], "key": "athena/data-catalog-invalid-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:ListDataCatalogs", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_data_catalog_invalid_type_fails.py", "service": "athena"} {"check_id": "athena.data-catalog-lambda-missing-metadata-function-rejected", "deployments": [], "key": "athena/data-catalog-lambda-missing-metadata-function-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog"], "path": "behavioral/athena/check_data_catalog_lambda_missing_metadata_function_rejected.py", "service": "athena"} {"check_id": "athena.data-catalog-lambda-type-missing-required-parameter-fails", "deployments": [], "key": "athena/data-catalog-lambda-type-missing-required-parameter-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog"], "path": "behavioral/athena/check_data_catalog_lambda_type_missing_required_parameter_fails.py", "service": "athena"} {"check_id": "athena.data-catalog-lifecycle", "deployments": [], "key": "athena/data-catalog-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:ListDataCatalogs", "athena:UpdateDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_data_catalog_lifecycle.py", "service": "athena"} {"check_id": "athena.data-catalog-lifecycle-create-get-update-delete", "deployments": [], "key": "athena/data-catalog-lifecycle-create-get-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_data_catalog_lifecycle_create_get_update_delete.py", "service": "athena"} {"check_id": "athena.data-catalog-list-contains-created", "deployments": [], "key": "athena/data-catalog-list-contains-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:ListDataCatalogs", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_data_catalog_list_contains_created.py", "service": "athena"} {"check_id": "athena.data-catalog-parameters-map-round-trip", "deployments": [], "key": "athena/data-catalog-parameters-map-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog"], "path": "behavioral/athena/check_data_catalog_parameters_map_round_trip.py", "service": "athena"} {"check_id": "athena.data-catalog-type-mismatch-update-rejected", "deployments": [], "key": "athena/data-catalog-type-mismatch-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_data_catalog_type_mismatch_update_rejected.py", "service": "athena"} {"check_id": "athena.data-catalog-update-type-immutable-rejected", "deployments": [], "key": "athena/data-catalog-update-type-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_data_catalog_update_type_immutable_rejected.py", "service": "athena"} {"check_id": "athena.database-ddl-lifecycle", "deployments": [], "key": "athena/database-ddl-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetDatabase", "athena:GetQueryExecution", "athena:ListDatabases", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_database_ddl_lifecycle.py", "service": "athena"} {"check_id": "athena.delete-capacity-reservation-while-active-fails", "deployments": [], "key": "athena/delete-capacity-reservation-while-active-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation"], "path": "behavioral/athena/check_delete_capacity_reservation_while_active_fails.py", "service": "athena"} {"check_id": "athena.delete-capacity-reservation-without-cancel-fails", "deployments": [], "key": "athena/delete-capacity-reservation-without-cancel-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:ListCapacityReservations"], "path": "behavioral/athena/check_delete_capacity_reservation_without_cancel_fails.py", "service": "athena"} {"check_id": "athena.delete-workgroup-requires-recursive-option-rejected", "deployments": [], "key": "athena/delete-workgroup-requires-recursive-option-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteNamedQuery", "athena:DeleteWorkGroup", "athena:GetWorkGroup"], "path": "behavioral/athena/check_delete_workgroup_requires_recursive_option_rejected.py", "service": "athena"} {"check_id": "athena.delete-workgroup-with-active-queries-rejected", "deployments": [], "key": "athena/delete-workgroup-with-active-queries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_delete_workgroup_with_active_queries_rejected.py", "service": "athena"} {"check_id": "athena.delete-workgroup-with-named-queries-rejected", "deployments": [], "key": "athena/delete-workgroup-with-named-queries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetNamedQuery", "athena:GetWorkGroup"], "path": "behavioral/athena/check_delete_workgroup_with_named_queries_rejected.py", "service": "athena"} {"check_id": "athena.deploy-datacatalog-cloudformation-queryable", "deployments": [], "key": "athena/deploy-datacatalog-cloudformation-queryable", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:GetDataCatalog", "athena:ListDataCatalogs", "athena:ListDatabases", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:CreateDatabase", "glue:DeleteDatabase", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_deploy_datacatalog_cloudformation_queryable.py", "service": "athena"} {"check_id": "athena.deploy-named-query-cloudformation-retrievable-and-removed-on-stack-delete", "deployments": [], "key": "athena/deploy-named-query-cloudformation-retrievable-and-removed-on-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:GetNamedQuery", "athena:ListNamedQueries", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/athena/check_deploy_named_query_cloudformation_retrievable_and_removed_on_stack_delete.py", "service": "athena"} {"check_id": "athena.deploy-workgroup-cfn-then-query-honors-config", "deployments": [], "key": "athena/deploy-workgroup-cfn-then-query-honors-config", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_deploy_workgroup_cfn_then_query_honors_config.py", "service": "athena"} {"check_id": "athena.deploy-workgroup-cloudformation-enforces-configuration", "deployments": [], "key": "athena/deploy-workgroup-cloudformation-enforces-configuration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_deploy_workgroup_cloudformation_enforces_configuration.py", "service": "athena"} {"check_id": "athena.deploy-workgroup-cloudformation-enforces-output-location", "deployments": [], "key": "athena/deploy-workgroup-cloudformation-enforces-output-location", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetWorkGroup", "athena:StartQueryExecution", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_deploy_workgroup_cloudformation_enforces_output_location.py", "service": "athena"} {"check_id": "athena.disabled-workgroup-preserves-running-query-and-rejects-new-start-rejected", "deployments": [], "key": "athena/disabled-workgroup-preserves-running-query-and-rejects-new-start-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_disabled_workgroup_preserves_running_query_and_rejects_new_start_rejected.py", "service": "athena"} {"check_id": "athena.e2e-capacity-reservation-assignment-influences-query-execution", "deployments": [], "key": "athena/e2e-capacity-reservation-assignment-influences-query-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:CreateWorkGroup", "athena:DeleteCapacityReservation", "athena:DeleteWorkGroup", "athena:GetCapacityAssignmentConfiguration", "athena:GetCapacityReservation", "athena:GetQueryExecution", "athena:PutCapacityAssignmentConfiguration", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_e2e_capacity_reservation_assignment_influences_query_execution.py", "service": "athena"} {"check_id": "athena.e2e-capacity-reservation-workgroup-query-teardown", "deployments": [], "key": "athena/e2e-capacity-reservation-workgroup-query-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:CreateWorkGroup", "athena:DeleteCapacityReservation", "athena:DeleteWorkGroup", "athena:GetCapacityReservation", "athena:GetQueryExecution", "athena:GetWorkGroup", "athena:PutCapacityAssignmentConfiguration", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_e2e_capacity_reservation_workgroup_query_teardown.py", "service": "athena"} {"check_id": "athena.e2e-named-query-to-results-and-teardown", "deployments": [], "key": "athena/e2e-named-query-to-results-and-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteNamedQuery", "athena:DeleteWorkGroup", "athena:GetNamedQuery", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_e2e_named_query_to_results_and_teardown.py", "service": "athena"} {"check_id": "athena.e2e-notebook-session-calculation-teardown", "deployments": [], "key": "athena/e2e-notebook-session-calculation-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:GetCalculationExecutionCode", "athena:GetCalculationExecutionStatus", "athena:GetSessionStatus", "athena:ListCalculationExecutions", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_e2e_notebook_session_calculation_teardown.py", "service": "athena"} {"check_id": "athena.e2e-query-lifecycle-dashboard-and-workgroup-teardown", "deployments": [], "key": "athena/e2e-query-lifecycle-dashboard-and-workgroup-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecution", "athena:GetResourceDashboard", "athena:GetSessionStatus", "athena:GetWorkGroup", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_e2e_query_lifecycle_dashboard_and_workgroup_teardown.py", "service": "athena"} {"check_id": "athena.enforce-workgroup-configuration-overrides-client-result-config", "deployments": [], "key": "athena/enforce-workgroup-configuration-overrides-client-result-config", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_enforce_workgroup_configuration_overrides_client_result_config.py", "service": "athena"} {"check_id": "athena.engine-versions-and-dpu-sizes", "deployments": [], "key": "athena/engine-versions-and-dpu-sizes", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:ListApplicationDPUSizes", "athena:ListEngineVersions"], "path": "behavioral/athena/check_engine_versions_and_dpu_sizes.py", "service": "athena"} {"check_id": "athena.execute-prepared-statement-from-other-workgroup-rejected", "deployments": [], "key": "athena/execute-prepared-statement-from-other-workgroup-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:ListPreparedStatements", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_execute_prepared_statement_from_other_workgroup_rejected.py", "service": "athena"} {"check_id": "athena.execute-prepared-statement-with-parameter", "deployments": [], "key": "athena/execute-prepared-statement-with-parameter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreatePreparedStatement", "athena:DeletePreparedStatement", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_execute_prepared_statement_with_parameter.py", "service": "athena"} {"check_id": "athena.expected-bucket-owner-mismatch-fails-the-query-and-writes-nothing", "deployments": [], "key": "athena/expected-bucket-owner-mismatch-fails-the-query-and-writes-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_expected_bucket_owner_mismatch_fails_the_query_and_writes_nothing.py", "service": "athena"} {"check_id": "athena.external-table-query-returns-exact-ordered-rows", "deployments": [], "key": "athena/external-table-query-returns-exact-ordered-rows", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetTableMetadata", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_external_table_query_returns_exact_ordered_rows.py", "service": "athena"} {"check_id": "athena.failed-query-error-classification-distinguishes-causes", "deployments": [], "key": "athena/failed-query-error-classification-distinguishes-causes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena/check_failed_query_error_classification_distinguishes_causes.py", "service": "athena"} {"check_id": "athena.get-calculation-execution-nonexistent-resource-not-found", "deployments": [], "key": "athena/get-calculation-execution-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetCalculationExecution", "athena:GetCalculationExecutionCode", "athena:GetCalculationExecutionStatus"], "path": "behavioral/athena/check_get_calculation_execution_nonexistent_resource_not_found.py", "service": "athena"} {"check_id": "athena.get-database-and-table-metadata-reflects-glue-catalog", "deployments": [], "key": "athena/get-database-and-table-metadata-reflects-glue-catalog", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:UpdateTable", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_get_database_and_table_metadata_reflects_glue_catalog.py", "service": "athena"} {"check_id": "athena.get-query-runtime-statistics-populated-after-completion", "deployments": [], "key": "athena/get-query-runtime-statistics-populated-after-completion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryRuntimeStatistics", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_get_query_runtime_statistics_populated_after_completion.py", "service": "athena"} {"check_id": "athena.get-query-runtime-statistics-reflects-execution-metrics", "deployments": [], "key": "athena/get-query-runtime-statistics-reflects-execution-metrics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetQueryRuntimeStatistics", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_get_query_runtime_statistics_reflects_execution_metrics.py", "service": "athena"} {"check_id": "athena.get-resource-dashboard-nonexistent-resource-not-found", "deployments": [], "key": "athena/get-resource-dashboard-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetResourceDashboard", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_get_resource_dashboard_nonexistent_resource_not_found.py", "service": "athena"} {"check_id": "athena.get-resource-dashboard-returns-monitoring-url", "deployments": [], "key": "athena/get-resource-dashboard-returns-monitoring-url", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetResourceDashboard", "athena:GetSessionStatus", "athena:ListEngineVersions", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_get_resource_dashboard_returns_monitoring_url.py", "service": "athena"} {"check_id": "athena.get-resource-dashboard-unknown-resource-not-found", "deployments": [], "key": "athena/get-resource-dashboard-unknown-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetResourceDashboard", "athena:GetWorkGroup", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_get_resource_dashboard_unknown_resource_not_found.py", "service": "athena"} {"check_id": "athena.get-session-accessors-nonexistent-resource-not-found", "deployments": [], "key": "athena/get-session-accessors-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetSession", "athena:GetSessionEndpoint", "athena:GetSessionStatus", "athena:TerminateSession"], "path": "behavioral/athena/check_get_session_accessors_nonexistent_resource_not_found.py", "service": "athena"} {"check_id": "athena.get-session-endpoint-malformed-id-rejected", "deployments": [], "key": "athena/get-session-endpoint-malformed-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetSessionEndpoint"], "path": "behavioral/athena/check_get_session_endpoint_malformed_id_rejected.py", "service": "athena"} {"check_id": "athena.get-session-endpoint-status-nonexistent-resource-not-found", "deployments": [], "key": "athena/get-session-endpoint-status-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetSession", "athena:GetSessionEndpoint", "athena:GetSessionStatus"], "path": "behavioral/athena/check_get_session_endpoint_status_nonexistent_resource_not_found.py", "service": "athena"} {"check_id": "athena.get-session-endpoint-unknown-session-not-found", "deployments": [], "key": "athena/get-session-endpoint-unknown-session-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetSessionEndpoint", "athena:StartSession"], "path": "behavioral/athena/check_get_session_endpoint_unknown_session_not_found.py", "service": "athena"} {"check_id": "athena.get-table-metadata-reflects-ctas-table", "deployments": [], "key": "athena/get-table-metadata-reflects-ctas-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetTableMetadata", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_get_table_metadata_reflects_ctas_table.py", "service": "athena"} {"check_id": "athena.group-by-aggregation-matches-independently-computed-values", "deployments": [], "key": "athena/group-by-aggregation-matches-independently-computed-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_group_by_aggregation_matches_independently_computed_values.py", "service": "athena"} {"check_id": "athena.iceberg-time-travel-returns-the-snapshot-before-the-row-level-update", "deployments": [], "key": "athena/iceberg-time-travel-returns-the-snapshot-before-the-row-level-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_iceberg_time_travel_returns_the_snapshot_before_the_row_level_update.py", "service": "athena"} {"check_id": "athena.insert-into-appends-rows-visible-to-subsequent-select", "deployments": [], "key": "athena/insert-into-appends-rows-visible-to-subsequent-select", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_insert_into_appends_rows_visible_to_subsequent_select.py", "service": "athena"} {"check_id": "athena.jdbc-bytes-scanned-cutoff-raises-a-driver-error-not-truncated-rows", "deployments": [], "key": "athena/jdbc-bytes-scanned-cutoff-raises-a-driver-error-not-truncated-rows", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["athena:BatchGetQueryExecution", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:ListQueryExecutions", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_jdbc_bytes_scanned_cutoff_raises_a_driver_error_not_truncated_rows.py", "service": "athena"} {"check_id": "athena.jdbc-database-metadata-maps-external-table-to-table-and-view-to-view", "deployments": [], "key": "athena/jdbc-database-metadata-maps-external-table-to-table-and-view-to-view", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetTableMetadata", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_jdbc_database_metadata_maps_external_table_to_table_and_view_to_view.py", "service": "athena"} {"check_id": "athena.jdbc-result-fetcher-variants-agree-on-rows-and-order", "deployments": [], "key": "athena/jdbc-result-fetcher-variants-agree-on-rows-and-order", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["athena:BatchGetQueryExecution", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_jdbc_result_fetcher_variants_agree_on_rows_and_order.py", "service": "athena"} {"check_id": "athena.jdbc-result-reuse-parameter-reaches-the-api-reuse-report", "deployments": [], "key": "athena/jdbc-result-reuse-parameter-reaches-the-api-reuse-report", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_jdbc_result_reuse_parameter_reaches_the_api_reuse_report.py", "service": "athena"} {"check_id": "athena.jdbc-result-set-rows-match-get-query-results-for-the-same-execution", "deployments": [], "key": "athena/jdbc-result-set-rows-match-get-query-results-for-the-same-execution", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["athena:BatchGetQueryExecution", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_jdbc_result_set_rows_match_get_query_results_for_the_same_execution.py", "service": "athena"} {"check_id": "athena.jdbc-small-fetch-size-yields-every-row-exactly-once-in-order", "deployments": [], "key": "athena/jdbc-small-fetch-size-yields-every-row-exactly-once-in-order", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_jdbc_small_fetch_size_yields_every_row_exactly_once_in_order.py", "service": "athena"} {"check_id": "athena.jdbc-type-mapping-decimal-timestamp-and-null-distinct-from-empty", "deployments": [], "key": "athena/jdbc-type-mapping-decimal-timestamp-and-null-distinct-from-empty", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["athena:GetQueryResults", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_jdbc_type_mapping_decimal_timestamp_and_null_distinct_from_empty.py", "service": "athena"} {"check_id": "athena.json-serde-nested-array-struct-and-map-project-exact-values", "deployments": [], "key": "athena/json-serde-nested-array-struct-and-map-project-exact-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_json_serde_nested_array_struct_and_map_project_exact_values.py", "service": "athena"} {"check_id": "athena.list-application-dpu-sizes-malformed-token-rejected", "deployments": [], "key": "athena/list-application-dpu-sizes-malformed-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:ListApplicationDPUSizes"], "path": "behavioral/athena/check_list_application_dpu_sizes_malformed_token_rejected.py", "service": "athena"} {"check_id": "athena.list-application-dpu-sizes-returns-server-managed-values", "deployments": [], "key": "athena/list-application-dpu-sizes-returns-server-managed-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:ListApplicationDPUSizes"], "path": "behavioral/athena/check_list_application_dpu_sizes_returns_server_managed_values.py", "service": "athena"} {"check_id": "athena.list-application-dpu-sizes-server-managed-set", "deployments": [], "key": "athena/list-application-dpu-sizes-server-managed-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:ListApplicationDPUSizes"], "path": "behavioral/athena/check_list_application_dpu_sizes_server_managed_set.py", "service": "athena"} {"check_id": "athena.list-data-catalogs-includes-built-in-and-created", "deployments": [], "key": "athena/list-data-catalogs-includes-built-in-and-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:ListDataCatalogs", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_list_data_catalogs_includes_built_in_and_created.py", "service": "athena"} {"check_id": "athena.list-data-catalogs-includes-builtin-and-created", "deployments": [], "key": "athena/list-data-catalogs-includes-builtin-and-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:ListDataCatalogs", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_list_data_catalogs_includes_builtin_and_created.py", "service": "athena"} {"check_id": "athena.list-data-catalogs-includes-default-deterministically", "deployments": [], "key": "athena/list-data-catalogs-includes-default-deterministically", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:ListDataCatalogs", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_list_data_catalogs_includes_default_deterministically.py", "service": "athena"} {"check_id": "athena.list-data-catalogs-pagination-completeness", "deployments": [], "key": "athena/list-data-catalogs-pagination-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:ListDataCatalogs", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_list_data_catalogs_pagination_completeness.py", "service": "athena"} {"check_id": "athena.list-engine-versions-returns-stable-supported-set", "deployments": [], "key": "athena/list-engine-versions-returns-stable-supported-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:ListEngineVersions"], "path": "behavioral/athena/check_list_engine_versions_returns_stable_supported_set.py", "service": "athena"} {"check_id": "athena.list-engine-versions-returns-static-supported-set", "deployments": [], "key": "athena/list-engine-versions-returns-static-supported-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:ListEngineVersions"], "path": "behavioral/athena/check_list_engine_versions_returns_static_supported_set.py", "service": "athena"} {"check_id": "athena.list-executors-fails-after-session-termination", "deployments": [], "key": "athena/list-executors-fails-after-session-termination", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:ListExecutors", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/athena/check_list_executors_fails_after_session_termination.py", "service": "athena"} {"check_id": "athena.list-executors-nonexistent-session-not-found", "deployments": [], "key": "athena/list-executors-nonexistent-session-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:ListExecutors"], "path": "behavioral/athena/check_list_executors_nonexistent_session_not_found.py", "service": "athena"} {"check_id": "athena.list-executors-reflects-session-executors", "deployments": [], "key": "athena/list-executors-reflects-session-executors", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:ListExecutors", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_list_executors_reflects_session_executors.py", "service": "athena"} {"check_id": "athena.list-named-queries-contains-created-and-stable-order", "deployments": [], "key": "athena/list-named-queries-contains-created-and-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListNamedQueries", "glue:CreateDatabase", "glue:DeleteDatabase"], "path": "behavioral/athena/check_list_named_queries_contains_created_and_stable_order.py", "service": "athena"} {"check_id": "athena.list-named-queries-invalid-next-token-rejected", "deployments": [], "key": "athena/list-named-queries-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListNamedQueries"], "path": "behavioral/athena/check_list_named_queries_invalid_next_token_rejected.py", "service": "athena"} {"check_id": "athena.list-named-queries-nonexistent-workgroup-rejected", "deployments": [], "key": "athena/list-named-queries-nonexistent-workgroup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteNamedQuery", "athena:DeleteWorkGroup", "athena:ListNamedQueries"], "path": "behavioral/athena/check_list_named_queries_nonexistent_workgroup_rejected.py", "service": "athena"} {"check_id": "athena.list-named-queries-pagination-completeness", "deployments": [], "key": "athena/list-named-queries-pagination-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListNamedQueries"], "path": "behavioral/athena/check_list_named_queries_pagination_completeness.py", "service": "athena"} {"check_id": "athena.list-named-queries-pagination-stable-order", "deployments": [], "key": "athena/list-named-queries-pagination-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListNamedQueries"], "path": "behavioral/athena/check_list_named_queries_pagination_stable_order.py", "service": "athena"} {"check_id": "athena.list-named-queries-reflects-creation-order", "deployments": [], "key": "athena/list-named-queries-reflects-creation-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListNamedQueries"], "path": "behavioral/athena/check_list_named_queries_reflects_creation_order.py", "service": "athena"} {"check_id": "athena.list-named-queries-reflects-live-creation-deletion", "deployments": [], "key": "athena/list-named-queries-reflects-live-creation-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:ListNamedQueries"], "path": "behavioral/athena/check_list_named_queries_reflects_live_creation_deletion.py", "service": "athena"} {"check_id": "athena.list-notebook-sessions-nonexistent-notebook-not-found", "deployments": [], "key": "athena/list-notebook-sessions-nonexistent-notebook-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListEngineVersions", "athena:ListNotebookSessions", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/athena/check_list_notebook_sessions_nonexistent_notebook_not_found.py", "service": "athena"} {"check_id": "athena.list-notebook-sessions-reflects-active-sessions", "deployments": [], "key": "athena/list-notebook-sessions-reflects-active-sessions", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:ListNotebookSessions", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_list_notebook_sessions_reflects_active_sessions.py", "service": "athena"} {"check_id": "athena.list-notebook-sessions-unknown-notebook-not-found", "deployments": [], "key": "athena/list-notebook-sessions-unknown-notebook-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListEngineVersions", "athena:ListNotebookSessions", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/athena/check_list_notebook_sessions_unknown_notebook_not_found.py", "service": "athena"} {"check_id": "athena.list-prepared-statements-pagination-stable-order", "deployments": [], "key": "athena/list-prepared-statements-pagination-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:ListPreparedStatements"], "path": "behavioral/athena/check_list_prepared_statements_pagination_stable_order.py", "service": "athena"} {"check_id": "athena.list-prepared-statements-pagination-token-consistent", "deployments": [], "key": "athena/list-prepared-statements-pagination-token-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListPreparedStatements"], "path": "behavioral/athena/check_list_prepared_statements_pagination_token_consistent.py", "service": "athena"} {"check_id": "athena.list-prepared-statements-reflects-live-creation-deletion", "deployments": [], "key": "athena/list-prepared-statements-reflects-live-creation-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:ListPreparedStatements"], "path": "behavioral/athena/check_list_prepared_statements_reflects_live_creation_deletion.py", "service": "athena"} {"check_id": "athena.list-prepared-statements-unknown-workgroup-rejected", "deployments": [], "key": "athena/list-prepared-statements-unknown-workgroup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListPreparedStatements"], "path": "behavioral/athena/check_list_prepared_statements_unknown_workgroup_rejected.py", "service": "athena"} {"check_id": "athena.list-query-executions-contains-started", "deployments": [], "key": "athena/list-query-executions-contains-started", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_list_query_executions_contains_started.py", "service": "athena"} {"check_id": "athena.list-query-executions-most-recent-first", "deployments": [], "key": "athena/list-query-executions-most-recent-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_list_query_executions_most_recent_first.py", "service": "athena"} {"check_id": "athena.list-query-executions-most-recent-first-ordering", "deployments": [], "key": "athena/list-query-executions-most-recent-first-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_list_query_executions_most_recent_first_ordering.py", "service": "athena"} {"check_id": "athena.list-query-executions-ordering-most-recent-first", "deployments": [], "key": "athena/list-query-executions-ordering-most-recent-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_list_query_executions_ordering_most_recent_first.py", "service": "athena"} {"check_id": "athena.list-query-executions-out-of-range-max-results-rejected", "deployments": [], "key": "athena/list-query-executions-out-of-range-max-results-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:ListQueryExecutions"], "path": "behavioral/athena/check_list_query_executions_out_of_range_max_results_rejected.py", "service": "athena"} {"check_id": "athena.list-query-executions-pagination-no-duplicates", "deployments": [], "key": "athena/list-query-executions-pagination-no-duplicates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_list_query_executions_pagination_no_duplicates.py", "service": "athena"} {"check_id": "athena.list-query-executions-pagination-no-gaps-or-dupes", "deployments": [], "key": "athena/list-query-executions-pagination-no-gaps-or-dupes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListQueryExecutions", "athena:StartQueryExecution"], "path": "behavioral/athena/check_list_query_executions_pagination_no_gaps_or_dupes.py", "service": "athena"} {"check_id": "athena.list-query-executions-reflects-workgroup-scope", "deployments": [], "key": "athena/list-query-executions-reflects-workgroup-scope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_list_query_executions_reflects_workgroup_scope.py", "service": "athena"} {"check_id": "athena.list-query-executions-returns-reverse-chronological-order", "deployments": [], "key": "athena/list-query-executions-returns-reverse-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListQueryExecutions", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:DeleteDatabase", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_list_query_executions_returns_reverse_chronological_order.py", "service": "athena"} {"check_id": "athena.list-work-groups-reflects-live-creation-deletion", "deployments": [], "key": "athena/list-work-groups-reflects-live-creation-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:ListWorkGroups"], "path": "behavioral/athena/check_list_work_groups_reflects_live_creation_deletion.py", "service": "athena"} {"check_id": "athena.list-workgroups-includes-primary-and-created", "deployments": [], "key": "athena/list-workgroups-includes-primary-and-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListWorkGroups"], "path": "behavioral/athena/check_list_workgroups_includes_primary_and_created.py", "service": "athena"} {"check_id": "athena.metadata-exception-for-invalid-catalog", "deployments": [], "key": "athena/metadata-exception-for-invalid-catalog", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase"], "path": "behavioral/athena/check_metadata_exception_for_invalid_catalog.py", "service": "athena"} {"check_id": "athena.metadata-nonexistent-catalog-database-table-raises-metadata-exception", "deployments": [], "key": "athena/metadata-nonexistent-catalog-database-table-raises-metadata-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase"], "path": "behavioral/athena/check_metadata_nonexistent_catalog_database_table_raises_metadata_exception.py", "service": "athena"} {"check_id": "athena.metadata-reads-reject-unknown-database", "deployments": [], "key": "athena/metadata-reads-reject-unknown-database", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_metadata_reads_reject_unknown_database.py", "service": "athena"} {"check_id": "athena.named-query-client-token-idempotency", "deployments": [], "key": "athena/named-query-client-token-idempotency", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteNamedQuery", "athena:DeleteWorkGroup", "athena:GetNamedQuery", "athena:ListNamedQueries"], "path": "behavioral/athena/check_named_query_client_token_idempotency.py", "service": "athena"} {"check_id": "athena.named-query-lifecycle", "deployments": [], "key": "athena/named-query-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:ListNamedQueries", "athena:UpdateNamedQuery"], "path": "behavioral/athena/check_named_query_lifecycle.py", "service": "athena"} {"check_id": "athena.named-query-lifecycle-create-get-update-delete", "deployments": [], "key": "athena/named-query-lifecycle-create-get-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:UpdateNamedQuery"], "path": "behavioral/athena/check_named_query_lifecycle_create_get_update_delete.py", "service": "athena"} {"check_id": "athena.named-query-unicode-and-special-char-round-trip", "deployments": [], "key": "athena/named-query-unicode-and-special-char-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetNamedQuery"], "path": "behavioral/athena/check_named_query_unicode_and_special_char_round_trip.py", "service": "athena"} {"check_id": "athena.named-query-unicode-and-special-chars-round-trip", "deployments": [], "key": "athena/named-query-unicode-and-special-chars-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery"], "path": "behavioral/athena/check_named_query_unicode_and_special_chars_round_trip.py", "service": "athena"} {"check_id": "athena.named-query-workgroup-filter-scoping", "deployments": [], "key": "athena/named-query-workgroup-filter-scoping", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListNamedQueries"], "path": "behavioral/athena/check_named_query_workgroup_filter_scoping.py", "service": "athena"} {"check_id": "athena.notebook-full-lifecycle", "deployments": [], "key": "athena/notebook-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreatePresignedNotebookUrl", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:ExportNotebook", "athena:GetNotebookMetadata", "athena:GetSessionStatus", "athena:ImportNotebook", "athena:ListNotebookMetadata", "athena:StartSession", "athena:TerminateSession", "athena:UpdateNotebook", "athena:UpdateNotebookMetadata", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_notebook_full_lifecycle.py", "service": "athena"} {"check_id": "athena.notebook-import-export-binary-content-byte-identical", "deployments": [], "key": "athena/notebook-import-export-binary-content-byte-identical", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:ExportNotebook", "athena:ImportNotebook", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_notebook_import_export_binary_content_byte_identical.py", "service": "athena"} {"check_id": "athena.notebook-lifecycle-create-update-export-import-delete", "deployments": [], "key": "athena/notebook-lifecycle-create-update-export-import-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:ExportNotebook", "athena:GetNotebookMetadata", "athena:ImportNotebook", "athena:ListNotebookMetadata", "athena:UpdateNotebook", "athena:UpdateNotebookMetadata", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/athena/check_notebook_lifecycle_create_update_export_import_delete.py", "service": "athena"} {"check_id": "athena.notebook-mutations-throttle-too-many-requests", "deployments": [], "key": "athena/notebook-mutations-throttle-too-many-requests", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_notebook_mutations_throttle_too_many_requests.py", "service": "athena"} {"check_id": "athena.notebook-ops-reject-unknown-notebook", "deployments": [], "key": "athena/notebook-ops-reject-unknown-notebook", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:ExportNotebook", "athena:GetNotebookMetadata", "athena:ImportNotebook", "athena:ListNotebookMetadata", "athena:UpdateNotebook", "athena:UpdateNotebookMetadata", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/athena/check_notebook_ops_reject_unknown_notebook.py", "service": "athena"} {"check_id": "athena.notebook-sessions-list-scoped-to-notebook", "deployments": [], "key": "athena/notebook-sessions-list-scoped-to-notebook", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:ListNotebookSessions", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_notebook_sessions_list_scoped_to_notebook.py", "service": "athena"} {"check_id": "athena.notebook-sessions-list-unknown-notebook-not-found", "deployments": [], "key": "athena/notebook-sessions-list-unknown-notebook-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:ListEngineVersions", "athena:ListNotebookSessions", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_notebook_sessions_list_unknown_notebook_not_found.py", "service": "athena"} {"check_id": "athena.op-contract-batchGetNamedQuery", "deployments": [], "key": "athena/op-contract-batchGetNamedQuery", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:BatchGetNamedQuery", "athena:CreateNamedQuery", "athena:DeleteNamedQuery"], "path": "behavioral/athena/check_op_contract_batch_get_named_query.py", "service": "athena"} {"check_id": "athena.op-contract-batch-get-prepared-statement", "deployments": [], "key": "athena/op-contract-batch-get-prepared-statement", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:BatchGetPreparedStatement", "athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup"], "path": "behavioral/athena/check_op_contract_batch_get_prepared_statement.py", "service": "athena"} {"check_id": "athena.op-contract-batch-get-query-execution", "deployments": [], "key": "athena/op-contract-batch-get-query-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:BatchGetQueryExecution", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_op_contract_batch_get_query_execution.py", "service": "athena"} {"check_id": "athena.op-contract-deleteDataCatalog", "deployments": [], "key": "athena/op-contract-deleteDataCatalog", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_op_contract_delete_data_catalog.py", "service": "athena"} {"check_id": "athena.op-contract-deleteNamedQuery", "deployments": [], "key": "athena/op-contract-deleteNamedQuery", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery"], "path": "behavioral/athena/check_op_contract_delete_named_query.py", "service": "athena"} {"check_id": "athena.op-contract-deletePreparedStatement", "deployments": [], "key": "athena/op-contract-deletePreparedStatement", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement"], "path": "behavioral/athena/check_op_contract_delete_prepared_statement.py", "service": "athena"} {"check_id": "athena.op-contract-get-data-catalog", "deployments": [], "key": "athena/op-contract-get-data-catalog", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:GetQueryExecution", "athena:ListDataCatalogs", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_op_contract_get_data_catalog.py", "service": "athena"} {"check_id": "athena.op-contract-getNamedQuery", "deployments": [], "key": "athena/op-contract-getNamedQuery", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery"], "path": "behavioral/athena/check_op_contract_get_named_query.py", "service": "athena"} {"check_id": "athena.op-contract-getPreparedStatement", "deployments": [], "key": "athena/op-contract-getPreparedStatement", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement"], "path": "behavioral/athena/check_op_contract_get_prepared_statement.py", "service": "athena"} {"check_id": "athena.op-contract-getQueryExecution", "deployments": [], "key": "athena/op-contract-getQueryExecution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_op_contract_get_query_execution.py", "service": "athena"} {"check_id": "athena.op-contract-getQueryResults", "deployments": [], "key": "athena/op-contract-getQueryResults", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_op_contract_get_query_results.py", "service": "athena"} {"check_id": "athena.op-contract-get-query-results-rejects-failed-query", "deployments": [], "key": "athena/op-contract-get-query-results-rejects-failed-query", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_op_contract_get_query_results_rejects_failed_query.py", "service": "athena"} {"check_id": "athena.op-contract-get-work-group", "deployments": [], "key": "athena/op-contract-get-work-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup"], "path": "behavioral/athena/check_op_contract_get_work_group.py", "service": "athena"} {"check_id": "athena.op-contract-listTagsForResource", "deployments": [], "key": "athena/op-contract-listTagsForResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_op_contract_list_tags_for_resource.py", "service": "athena"} {"check_id": "athena.op-contract-stopQueryExecution", "deployments": [], "key": "athena/op-contract-stopQueryExecution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_op_contract_stop_query_execution.py", "service": "athena"} {"check_id": "athena.op-contract-tagResource", "deployments": [], "key": "athena/op-contract-tagResource", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_op_contract_tag_resource.py", "service": "athena"} {"check_id": "athena.op-contract-updateDataCatalog", "deployments": [], "key": "athena/op-contract-updateDataCatalog", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_op_contract_update_data_catalog.py", "service": "athena"} {"check_id": "athena.op-contract-update-data-catalog-rejects-type-mismatch", "deployments": [], "key": "athena/op-contract-update-data-catalog-rejects-type-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_op_contract_update_data_catalog_rejects_type_mismatch.py", "service": "athena"} {"check_id": "athena.op-contract-updateNamedQuery", "deployments": [], "key": "athena/op-contract-updateNamedQuery", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:UpdateNamedQuery"], "path": "behavioral/athena/check_op_contract_update_named_query.py", "service": "athena"} {"check_id": "athena.op-contract-updatePreparedStatement", "deployments": [], "key": "athena/op-contract-updatePreparedStatement", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_op_contract_update_prepared_statement.py", "service": "athena"} {"check_id": "athena.op-contract-update-prepared-statement-rejected", "deployments": [], "key": "athena/op-contract-update-prepared-statement-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_op_contract_update_prepared_statement_rejected.py", "service": "athena"} {"check_id": "athena.op-contract-update-workgroup-configuration", "deployments": [], "key": "athena/op-contract-update-workgroup-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:UpdateWorkGroup"], "path": "behavioral/athena/check_op_contract_update_workgroup_configuration.py", "service": "athena"} {"check_id": "athena.op-contract-update-workgroup-nonexistent-rejected", "deployments": [], "key": "athena/op-contract-update-workgroup-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:UpdateWorkGroup"], "path": "behavioral/athena/check_op_contract_update_workgroup_nonexistent_rejected.py", "service": "athena"} {"check_id": "athena.partition-projection-bounds-the-scan-with-no-metastore-partitions", "deployments": [], "key": "athena/partition-projection-bounds-the-scan-with-no-metastore-partitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_partition_projection_bounds_the_scan_with_no_metastore_partitions.py", "service": "athena"} {"check_id": "athena.partition-pruning-scans-only-the-selected-partition", "deployments": [], "key": "athena/partition-pruning-scans-only-the-selected-partition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_partition_pruning_scans_only_the_selected_partition.py", "service": "athena"} {"check_id": "athena.prepared-statement-create-and-execute-with-param", "deployments": [], "key": "athena/prepared-statement-create-and-execute-with-param", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_prepared_statement_create_and_execute_with_param.py", "service": "athena"} {"check_id": "athena.prepared-statement-delete-then-get-not-found-rejected", "deployments": [], "key": "athena/prepared-statement-delete-then-get-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_prepared_statement_delete_then_get_not_found_rejected.py", "service": "athena"} {"check_id": "athena.prepared-statement-empty-vs-absent-description-preserved", "deployments": [], "key": "athena/prepared-statement-empty-vs-absent-description-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_prepared_statement_empty_vs_absent_description_preserved.py", "service": "athena"} {"check_id": "athena.prepared-statement-execute-with-parameters", "deployments": [], "key": "athena/prepared-statement-execute-with-parameters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena/check_prepared_statement_execute_with_parameters.py", "service": "athena"} {"check_id": "athena.prepared-statement-get-nonexistent-resource-not-found", "deployments": [], "key": "athena/prepared-statement-get-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement"], "path": "behavioral/athena/check_prepared_statement_get_nonexistent_resource_not_found.py", "service": "athena"} {"check_id": "athena.prepared-statement-lifecycle", "deployments": [], "key": "athena/prepared-statement-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:DeletePreparedStatement", "athena:GetPreparedStatement", "athena:ListPreparedStatements", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_prepared_statement_lifecycle.py", "service": "athena"} {"check_id": "athena.prepared-statement-lifecycle-create-get-update-delete", "deployments": [], "key": "athena/prepared-statement-lifecycle-create-get-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_prepared_statement_lifecycle_create_get_update_delete.py", "service": "athena"} {"check_id": "athena.prepared-statement-list-and-batch-get-partial", "deployments": [], "key": "athena/prepared-statement-list-and-batch-get-partial", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:BatchGetPreparedStatement", "athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup"], "path": "behavioral/athena/check_prepared_statement_list_and_batch_get_partial.py", "service": "athena"} {"check_id": "athena.prepared-statement-update-reflected", "deployments": [], "key": "athena/prepared-statement-update-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_prepared_statement_update_reflected.py", "service": "athena"} {"check_id": "athena.presigned-notebook-url-reports-ten-minute-token-lifetime", "deployments": [], "key": "athena/presigned-notebook-url-reports-ten-minute-token-lifetime", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["athena:CreateNotebook", "athena:CreatePresignedNotebookUrl", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_presigned_notebook_url_reports_ten_minute_token_lifetime.py", "service": "athena"} {"check_id": "athena.put-capacity-assignment-configuration-invalid-workgroup-fails", "deployments": [], "key": "athena/put-capacity-assignment-configuration-invalid-workgroup-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:CreateWorkGroup", "athena:DeleteCapacityReservation", "athena:DeleteWorkGroup", "athena:GetCapacityAssignmentConfiguration", "athena:GetCapacityReservation", "athena:PutCapacityAssignmentConfiguration"], "path": "behavioral/athena/check_put_capacity_assignment_configuration_invalid_workgroup_fails.py", "service": "athena"} {"check_id": "athena.put-capacity-assignment-configuration-serializes-concurrent-writes", "deployments": [], "key": "athena/put-capacity-assignment-configuration-serializes-concurrent-writes", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:CreateWorkGroup", "athena:DeleteCapacityReservation", "athena:DeleteWorkGroup", "athena:GetCapacityAssignmentConfiguration", "athena:GetCapacityReservation", "athena:PutCapacityAssignmentConfiguration"], "path": "behavioral/athena/check_put_capacity_assignment_configuration_serializes_concurrent_writes.py", "service": "athena"} {"check_id": "athena.query-execution-client-request-token-idempotent-replay", "deployments": [], "key": "athena/query-execution-client-request-token-idempotent-replay", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_client_request_token_idempotent_replay.py", "service": "athena"} {"check_id": "athena.query-execution-client-request-token-mismatch-fails", "deployments": [], "key": "athena/query-execution-client-request-token-mismatch-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_client_request_token_mismatch_fails.py", "service": "athena"} {"check_id": "athena.query-execution-disabled-workgroup-rejects-start", "deployments": [], "key": "athena/query-execution-disabled-workgroup-rejects-start", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetWorkGroup", "athena:ListQueryExecutions", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_disabled_workgroup_rejects_start.py", "service": "athena"} {"check_id": "athena.query-execution-external-table-s3-roundtrip", "deployments": [], "key": "athena/query-execution-external-table-s3-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetTableMetadata", "athena:ListTableMetadata", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_query_execution_external_table_s3_roundtrip.py", "service": "athena"} {"check_id": "athena.query-execution-failed-query-then-results-unavailable", "deployments": [], "key": "athena/query-execution-failed-query-then-results-unavailable", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_query_execution_failed_query_then_results_unavailable.py", "service": "athena"} {"check_id": "athena.query-execution-inherits-workgroup-output-location", "deployments": [], "key": "athena/query-execution-inherits-workgroup-output-location", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_inherits_workgroup_output_location.py", "service": "athena"} {"check_id": "athena.query-execution-invalid-workgroup-fails", "deployments": [], "key": "athena/query-execution-invalid-workgroup-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_invalid_workgroup_fails.py", "service": "athena"} {"check_id": "athena.query-execution-lifecycle-success", "deployments": [], "key": "athena/query-execution-lifecycle-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_lifecycle_success.py", "service": "athena"} {"check_id": "athena.query-execution-missing-output-location-fails", "deployments": [], "key": "athena/query-execution-missing-output-location-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_query_execution_missing_output_location_fails.py", "service": "athena"} {"check_id": "athena.query-execution-missing-table-fails", "deployments": [], "key": "athena/query-execution-missing-table-fails", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_missing_table_fails.py", "service": "athena"} {"check_id": "athena.query-execution-missing-table-fails-with-athena-error", "deployments": [], "key": "athena/query-execution-missing-table-fails-with-athena-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_missing_table_fails_with_athena_error.py", "service": "athena"} {"check_id": "athena.query-execution-result-reuse-ttl-window", "deployments": [], "key": "athena/query-execution-result-reuse-ttl-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_query_execution_result_reuse_ttl_window.py", "service": "athena"} {"check_id": "athena.query-execution-select-literal-lifecycle", "deployments": [], "key": "athena/query-execution-select-literal-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_select_literal_lifecycle.py", "service": "athena"} {"check_id": "athena.query-execution-select-literal-succeeds-with-results", "deployments": [], "key": "athena/query-execution-select-literal-succeeds-with-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_select_literal_succeeds_with_results.py", "service": "athena"} {"check_id": "athena.query-execution-stop-then-get-shows-cancelled", "deployments": [], "key": "athena/query-execution-stop-then-get-shows-cancelled", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_stop_then_get_shows_cancelled.py", "service": "athena"} {"check_id": "athena.query-execution-syntax-error-fails-with-athena-error", "deployments": [], "key": "athena/query-execution-syntax-error-fails-with-athena-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_syntax_error_fails_with_athena_error.py", "service": "athena"} {"check_id": "athena.query-execution-syntax-error-rejected-synchronously", "deployments": [], "key": "athena/query-execution-syntax-error-rejected-synchronously", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_query_execution_syntax_error_rejected_synchronously.py", "service": "athena"} {"check_id": "athena.query-execution-values-multirow-results-exact", "deployments": [], "key": "athena/query-execution-values-multirow-results-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_execution_values_multirow_results_exact.py", "service": "athena"} {"check_id": "athena.query-result-reuse-cache-hit-on-rerun", "deployments": [], "key": "athena/query-result-reuse-cache-hit-on-rerun", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_result_reuse_cache_hit_on_rerun.py", "service": "athena"} {"check_id": "athena.query-results-decimal-literal-precision-preserved", "deployments": [], "key": "athena/query-results-decimal-literal-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_results_decimal_literal_precision_preserved.py", "service": "athena"} {"check_id": "athena.query-results-header-row-only-for-select", "deployments": [], "key": "athena/query-results-header-row-only-for-select", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_query_results_header_row_only_for_select.py", "service": "athena"} {"check_id": "athena.query-results-metadata-and-rows", "deployments": [], "key": "athena/query-results-metadata-and-rows", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_results_metadata_and_rows.py", "service": "athena"} {"check_id": "athena.query-results-numeric-precision-preserved", "deployments": [], "key": "athena/query-results-numeric-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_results_numeric_precision_preserved.py", "service": "athena"} {"check_id": "athena.query-results-pagination-next-token-exactness", "deployments": [], "key": "athena/query-results-pagination-next-token-exactness", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena/check_query_results_pagination_next_token_exactness.py", "service": "athena"} {"check_id": "athena.query-results-typed-column-metadata", "deployments": [], "key": "athena/query-results-typed-column-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_query_results_typed_column_metadata.py", "service": "athena"} {"check_id": "athena.query-results-unicode-and-numeric-literal-preserved", "deployments": [], "key": "athena/query-results-unicode-and-numeric-literal-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_query_results_unicode_and_numeric_literal_preserved.py", "service": "athena"} {"check_id": "athena.query-runtime-statistics-after-completion", "deployments": [], "key": "athena/query-runtime-statistics-after-completion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryRuntimeStatistics", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_runtime_statistics_after_completion.py", "service": "athena"} {"check_id": "athena.query-statistics-reflect-actual-scan", "deployments": [], "key": "athena/query-statistics-reflect-actual-scan", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryRuntimeStatistics", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_query_statistics_reflect_actual_scan.py", "service": "athena"} {"check_id": "athena.query-without-output-location-rejected", "deployments": [], "key": "athena/query-without-output-location-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_query_without_output_location_rejected.py", "service": "athena"} {"check_id": "athena.result-reuse-respects-query-identity", "deployments": [], "key": "athena/result-reuse-respects-query-identity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena/check_result_reuse_respects_query_identity.py", "service": "athena"} {"check_id": "athena.result-reuse-serves-stale-rows-after-the-source-object-changes", "deployments": [], "key": "athena/result-reuse-serves-stale-rows-after-the-source-object-changes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_result_reuse_serves_stale_rows_after_the_source_object_changes.py", "service": "athena"} {"check_id": "athena.runtime-cast-of-non-numeric-text-rejected-with-invalid-cast-argument", "deployments": [], "key": "athena/runtime-cast-of-non-numeric-text-rejected-with-invalid-cast-argument", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_runtime_cast_of_non_numeric_text_rejected_with_invalid_cast_argument.py", "service": "athena"} {"check_id": "athena.schemaevo-add-column-reads-null-from-older-parquet-files", "deployments": [], "key": "athena/schemaevo-add-column-reads-null-from-older-parquet-files", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_schemaevo_add_column_reads_null_from_older_parquet_files.py", "service": "athena"} {"check_id": "athena.schemaevo-cross-family-type-change-fails-instead-of-reinterpreting-bytes", "deployments": [], "key": "athena/schemaevo-cross-family-type-change-fails-instead-of-reinterpreting-bytes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_schemaevo_cross_family_type_change_fails_instead_of_reinterpreting_bytes.py", "service": "athena"} {"check_id": "athena.schemaevo-dropped-column-is-recovered-by-re-adding-it", "deployments": [], "key": "athena/schemaevo-dropped-column-is-recovered-by-re-adding-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_schemaevo_dropped_column_is_recovered_by_re_adding_it.py", "service": "athena"} {"check_id": "athena.schemaevo-index-access-reorder-fails-while-name-based-reorder-resolves", "deployments": [], "key": "athena/schemaevo-index-access-reorder-fails-while-name-based-reorder-resolves", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_schemaevo_index_access_reorder_fails_while_name_based_reorder_resolves.py", "service": "athena"} {"check_id": "athena.schemaevo-narrowing-past-a-stored-value-fails-instead-of-truncating", "deployments": [], "key": "athena/schemaevo-narrowing-past-a-stored-value-fails-instead-of-truncating", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_schemaevo_narrowing_past_a_stored_value_fails_instead_of_truncating.py", "service": "athena"} {"check_id": "athena.schemaevo-widen-int-to-bigint-keeps-int32-files-readable", "deployments": [], "key": "athena/schemaevo-widen-int-to-bigint-keeps-int32-files-readable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_schemaevo_widen_int_to_bigint_keeps_int32_files_readable.py", "service": "athena"} {"check_id": "athena.server-side-enforced-workgroup-config-overrides-client-request", "deployments": [], "key": "athena/server-side-enforced-workgroup-config-overrides-client-request", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_server_side_enforced_workgroup_config_overrides_client_request.py", "service": "athena"} {"check_id": "athena.session-endpoint-unavailable-before-session-ready", "deployments": [], "key": "athena/session-endpoint-unavailable-before-session-ready", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSessionEndpoint", "athena:GetSessionStatus", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_session_endpoint_unavailable_before_session_ready.py", "service": "athena"} {"check_id": "athena.session-endpoint-unknown-session-not-found", "deployments": [], "key": "athena/session-endpoint-unknown-session-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:GetSessionEndpoint"], "path": "behavioral/athena/check_session_endpoint_unknown_session_not_found.py", "service": "athena"} {"check_id": "athena.session-full-lifecycle", "deployments": [], "key": "athena/session-full-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:GetCalculationExecutionStatus", "athena:GetSession", "athena:GetSessionEndpoint", "athena:GetSessionStatus", "athena:ListSessions", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_session_full_lifecycle.py", "service": "athena"} {"check_id": "athena.session-idle-timeout-auto-terminates", "deployments": [], "key": "athena/session-idle-timeout-auto-terminates", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_session_idle_timeout_auto_terminates.py", "service": "athena"} {"check_id": "athena.session-idle-ttl-transitions-to-terminated", "deployments": [], "key": "athena/session-idle-ttl-transitions-to-terminated", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_session_idle_ttl_transitions_to_terminated.py", "service": "athena"} {"check_id": "athena.session-lifecycle-start-get-status-endpoint-terminate", "deployments": [], "key": "athena/session-lifecycle-start-get-status-endpoint-terminate", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNotebook", "athena:CreateWorkGroup", "athena:DeleteNotebook", "athena:DeleteWorkGroup", "athena:GetCalculationExecutionStatus", "athena:GetSession", "athena:GetSessionEndpoint", "athena:GetSessionStatus", "athena:ListNotebookSessions", "athena:ListSessions", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/athena/check_session_lifecycle_start_get_status_endpoint_terminate.py", "service": "athena"} {"check_id": "athena.session-ops-reject-unknown-session", "deployments": [], "key": "athena/session-ops-reject-unknown-session", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreatePresignedNotebookUrl", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSession", "athena:GetSessionStatus", "athena:ListCalculationExecutions", "athena:ListExecutors", "athena:ListSessions", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession"], "path": "behavioral/athena/check_session_ops_reject_unknown_session.py", "service": "athena"} {"check_id": "athena.spark-calculation-returns-computed-stdout-result", "deployments": [], "key": "athena/spark-calculation-returns-computed-stdout-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecution", "athena:GetCalculationExecutionCode", "athena:GetSession", "athena:GetWorkGroup", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_spark_calculation_returns_computed_stdout_result.py", "service": "athena"} {"check_id": "athena.start-calculation-execution-on-terminated-session-rejected", "deployments": [], "key": "athena/start-calculation-execution-on-terminated-session-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecutionStatus", "athena:GetSessionStatus", "athena:ListCalculationExecutions", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_start_calculation_execution_on_terminated_session_rejected.py", "service": "athena"} {"check_id": "athena.start-calculation-execution-terminated-session-not-found", "deployments": [], "key": "athena/start-calculation-execution-terminated-session-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecutionStatus", "athena:GetSessionStatus", "athena:ListCalculationExecutions", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/athena/check_start_calculation_execution_terminated_session_not_found.py", "service": "athena"} {"check_id": "athena.start-query-execution-client-request-token-idempotent-concurrent", "deployments": [], "key": "athena/start-query-execution-client-request-token-idempotent-concurrent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_start_query_execution_client_request_token_idempotent_concurrent.py", "service": "athena"} {"check_id": "athena.start-query-execution-malformed-sql-rejected", "deployments": [], "key": "athena/start-query-execution-malformed-sql-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_start_query_execution_malformed_sql_rejected.py", "service": "athena"} {"check_id": "athena.start-query-execution-missing-output-location-rejected", "deployments": [], "key": "athena/start-query-execution-missing-output-location-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_start_query_execution_missing_output_location_rejected.py", "service": "athena"} {"check_id": "athena.statement-type-reflects-query-kind", "deployments": [], "key": "athena/statement-type-reflects-query-kind", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_statement_type_reflects_query_kind.py", "service": "athena"} {"check_id": "athena.stop-query-execution-cancels-and-blocks-results", "deployments": [], "key": "athena/stop-query-execution-cancels-and-blocks-results", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_stop_query_execution_cancels_and_blocks_results.py", "service": "athena"} {"check_id": "athena.stop-query-execution-cancels-running-query", "deployments": [], "key": "athena/stop-query-execution-cancels-running-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_stop_query_execution_cancels_running_query.py", "service": "athena"} {"check_id": "athena.stop-query-execution-second-stop-is-noop", "deployments": [], "key": "athena/stop-query-execution-second-stop-is-noop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_stop_query_execution_second_stop_is_noop.py", "service": "athena"} {"check_id": "athena.stop-query-execution-terminal-is-noop", "deployments": [], "key": "athena/stop-query-execution-terminal-is-noop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "athena:StopQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_stop_query_execution_terminal_is_noop.py", "service": "athena"} {"check_id": "athena.tag-resource-lifecycle", "deployments": [], "key": "athena/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "athena:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_tag_resource_lifecycle.py", "service": "athena"} {"check_id": "athena.tag-resource-lifecycle-on-workgroup", "deployments": [], "key": "athena/tag-resource-lifecycle-on-workgroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "athena:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_tag_resource_lifecycle_on_workgroup.py", "service": "athena"} {"check_id": "athena.tag-resource-list-and-untag-roundtrip", "deployments": [], "key": "athena/tag-resource-list-and-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "athena:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_tag_resource_list_and_untag_roundtrip.py", "service": "athena"} {"check_id": "athena.tag-resource-nonexistent-resource-rejected", "deployments": [], "key": "athena/tag-resource-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_tag_resource_nonexistent_resource_rejected.py", "service": "athena"} {"check_id": "athena.tag-resource-reserved-aws-prefix-fails", "deployments": [], "key": "athena/tag-resource-reserved-aws-prefix-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_tag_resource_reserved_aws_prefix_fails.py", "service": "athena"} {"check_id": "athena.telemetry-resource-dashboard-emitted-for-workgroup", "deployments": [], "key": "athena/telemetry-resource-dashboard-emitted-for-workgroup", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecutionStatus", "athena:GetResourceDashboard", "athena:GetSessionStatus", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_telemetry_resource_dashboard_emitted_for_workgroup.py", "service": "athena"} {"check_id": "athena.telemetry-resource-dashboard-reflects-query-activity", "deployments": [], "key": "athena/telemetry-resource-dashboard-reflects-query-activity", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetResourceDashboard", "athena:GetSessionStatus", "athena:ListEngineVersions", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_telemetry_resource_dashboard_reflects_query_activity.py", "service": "athena"} {"check_id": "athena.telemetry-resource-dashboard-reflects-reservation-usage", "deployments": [], "key": "athena/telemetry-resource-dashboard-reflects-reservation-usage", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetCalculationExecutionStatus", "athena:GetResourceDashboard", "athena:GetSessionStatus", "athena:ListEngineVersions", "athena:StartCalculationExecution", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_telemetry_resource_dashboard_reflects_reservation_usage.py", "service": "athena"} {"check_id": "athena.telemetry-resource-dashboard-unknown-workgroup-not-found", "deployments": [], "key": "athena/telemetry-resource-dashboard-unknown-workgroup-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetResourceDashboard", "athena:GetWorkGroup", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_telemetry_resource_dashboard_unknown_workgroup_not_found.py", "service": "athena"} {"check_id": "athena.terminate-session-already-terminated-fails", "deployments": [], "key": "athena/terminate-session-already-terminated-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSession", "athena:StartSession", "athena:TerminateSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_terminate_session_already_terminated_fails.py", "service": "athena"} {"check_id": "athena.terminate-session-idempotent-after-terminated", "deployments": [], "key": "athena/terminate-session-idempotent-after-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_terminate_session_idempotent_after_terminated.py", "service": "athena"} {"check_id": "athena.terminate-session-idempotent-during-creating", "deployments": [], "key": "athena/terminate-session-idempotent-during-creating", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetSessionStatus", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_terminate_session_idempotent_during_creating.py", "service": "athena"} {"check_id": "athena.terminate-session-never-existed-resource-not-found", "deployments": [], "key": "athena/terminate-session-never-existed-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:StartSession", "athena:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_terminate_session_never_existed_resource_not_found.py", "service": "athena"} {"check_id": "athena.unload-parquet-round-trips-through-a-new-external-table", "deployments": [], "key": "athena/unload-parquet-round-trips-through-a-new-external-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_unload_parquet_round_trips_through_a_new_external_table.py", "service": "athena"} {"check_id": "athena.op-contract-untag-resource", "deployments": [], "key": "athena/op-contract-untag-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "athena:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_untag_resource_op_contract.py", "service": "athena"} {"check_id": "athena.untag-resource-removes-tag", "deployments": [], "key": "athena/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:ListTagsForResource", "athena:TagResource", "athena:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_untag_resource_removes_tag.py", "service": "athena"} {"check_id": "athena.update-capacity-reservation-below-minimum-rejected", "deployments": [], "key": "athena/update-capacity-reservation-below-minimum-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_update_capacity_reservation_below_minimum_rejected.py", "service": "athena"} {"check_id": "athena.update-capacity-reservation-malformed-name-rejected", "deployments": [], "key": "athena/update-capacity-reservation-malformed-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:ListCapacityReservations", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_update_capacity_reservation_malformed_name_rejected.py", "service": "athena"} {"check_id": "athena.update-capacity-reservation-negative-target-dpus-rejected", "deployments": [], "key": "athena/update-capacity-reservation-negative-target-dpus-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_update_capacity_reservation_negative_target_dpus_rejected.py", "service": "athena"} {"check_id": "athena.update-capacity-reservation-unknown-name-rejected", "deployments": [], "key": "athena/update-capacity-reservation-unknown-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_update_capacity_reservation_unknown_name_rejected.py", "service": "athena"} {"check_id": "athena.update-capacity-reservation-wrong-lifecycle-state-rejected", "deployments": [], "key": "athena/update-capacity-reservation-wrong-lifecycle-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_update_capacity_reservation_wrong_lifecycle_state_rejected.py", "service": "athena"} {"check_id": "athena.update-capacity-reservation-wrong-state-rejected", "deployments": [], "key": "athena/update-capacity-reservation-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CancelCapacityReservation", "athena:CreateCapacityReservation", "athena:DeleteCapacityReservation", "athena:GetCapacityReservation", "athena:UpdateCapacityReservation"], "path": "behavioral/athena/check_update_capacity_reservation_wrong_state_rejected.py", "service": "athena"} {"check_id": "athena.update-data-catalog-description-round-trip", "deployments": [], "key": "athena/update-data-catalog-description-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:ListDataCatalogs", "athena:UpdateDataCatalog", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_update_data_catalog_description_round_trip.py", "service": "athena"} {"check_id": "athena.update-named-query-name-and-query-string", "deployments": [], "key": "athena/update-named-query-name-and-query-string", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:UpdateNamedQuery"], "path": "behavioral/athena/check_update_named_query_name_and_query_string.py", "service": "athena"} {"check_id": "athena.update-prepared-statement-query-text", "deployments": [], "key": "athena/update-prepared-statement-query-text", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreatePreparedStatement", "athena:CreateWorkGroup", "athena:DeletePreparedStatement", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "athena:ListPreparedStatements", "athena:UpdatePreparedStatement"], "path": "behavioral/athena/check_update_prepared_statement_query_text.py", "service": "athena"} {"check_id": "athena.view-select-returns-underlying-rows-and-is-not-a-table", "deployments": [], "key": "athena/view-select-returns-underlying-rows-and-is-not-a-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetTableMetadata", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_view_select_returns_underlying_rows_and_is_not_a_table.py", "service": "athena"} {"check_id": "athena.window-functions-rank-and-partition-total-per-row", "deployments": [], "key": "athena/window-functions-rank-and-partition-total-per-row", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena/check_window_functions_rank_and_partition_total_per_row.py", "service": "athena"} {"check_id": "athena.workgroup-concurrent-update-configuration-serializes", "deployments": [], "key": "athena/workgroup-concurrent-update-configuration-serializes", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:UpdateWorkGroup"], "path": "behavioral/athena/check_workgroup_concurrent_update_configuration_serializes.py", "service": "athena"} {"check_id": "athena.workgroup-configuration-round-trips", "deployments": [], "key": "athena/workgroup-configuration-round-trips", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_workgroup_configuration_round_trips.py", "service": "athena"} {"check_id": "athena.workgroup-create-get-defaults", "deployments": [], "key": "athena/workgroup-create-get-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:ListTagsForResource", "athena:ListWorkGroups", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_workgroup_create_get_defaults.py", "service": "athena"} {"check_id": "athena.workgroup-default-output-location-used-for-query", "deployments": [], "key": "athena/workgroup-default-output-location-used-for-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/athena/check_workgroup_default_output_location_used_for_query.py", "service": "athena"} {"check_id": "athena.workgroup-delete-conflict-rejected", "deployments": [], "key": "athena/workgroup-delete-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteNamedQuery", "athena:DeleteWorkGroup", "athena:GetNamedQuery", "athena:GetWorkGroup"], "path": "behavioral/athena/check_workgroup_delete_conflict_rejected.py", "service": "athena"} {"check_id": "athena.workgroup-delete-without-recursive-fails-when-named-query-exists", "deployments": [], "key": "athena/workgroup-delete-without-recursive-fails-when-named-query-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateNamedQuery", "athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetNamedQuery", "athena:GetWorkGroup"], "path": "behavioral/athena/check_workgroup_delete_without_recursive_fails_when_named_query_exists.py", "service": "athena"} {"check_id": "athena.workgroup-disabled-blocks-query-execution-rejected", "deployments": [], "key": "athena/workgroup-disabled-blocks-query-execution-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetWorkGroup", "athena:ListQueryExecutions", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_workgroup_disabled_blocks_query_execution_rejected.py", "service": "athena"} {"check_id": "athena.workgroup-enforced-configuration-overrides-client-output-location", "deployments": [], "key": "athena/workgroup-enforced-configuration-overrides-client-output-location", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena/check_workgroup_enforced_configuration_overrides_client_output_location.py", "service": "athena"} {"check_id": "athena.workgroup-list-contains-created", "deployments": [], "key": "athena/workgroup-list-contains-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup"], "path": "behavioral/athena/check_workgroup_list_contains_created.py", "service": "athena"} {"check_id": "athena.workgroup-result-configuration-enforced", "deployments": [], "key": "athena/workgroup-result-configuration-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena/check_workgroup_result_configuration_enforced.py", "service": "athena"} {"check_id": "athena.workgroup-scoped-iam-policy-denies-start-query-execution-on-one-workgroup", "deployments": [], "key": "athena/workgroup-scoped-iam-policy-denies-start-query-execution-on-one-workgroup", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetWorkGroup", "athena:ListQueryExecutions", "athena:StartQueryExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/athena/check_workgroup_scoped_iam_policy_denies_start_query_execution_on_one_workgroup.py", "service": "athena"} {"check_id": "athena.workgroup-state-toggle-enabled-disabled", "deployments": [], "key": "athena/workgroup-state-toggle-enabled-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetWorkGroup", "athena:UpdateWorkGroup"], "path": "behavioral/athena/check_workgroup_state_toggle_enabled_disabled.py", "service": "athena"} {"check_id": "athena__cloudformation.deploy-prepared-statement-cloudformation-missing-workgroup-rejected", "deployments": [], "key": "athena__cloudformation/deploy-prepared-statement-cloudformation-missing-workgroup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetPreparedStatement", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/athena__cloudformation/check_deploy_prepared_statement_cloudformation_missing_workgroup_rejected.py", "service": "athena__cloudformation"} {"check_id": "athena__cloudformation.deploy-prepared-statement-cloudformation-round-trip", "deployments": [], "key": "athena__cloudformation/deploy-prepared-statement-cloudformation-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:GetPreparedStatement", "athena:GetWorkGroup", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/athena__cloudformation/check_deploy_prepared_statement_cloudformation_round_trip.py", "service": "athena__cloudformation"} {"check_id": "athena__cloudwatch.publish-cloudwatch-metrics-enabled-delivers-processedbytes-for-the-workgroup", "deployments": [], "key": "athena__cloudwatch/publish-cloudwatch-metrics-enabled-delivers-processedbytes-for-the-workgroup", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__cloudwatch/check_publish_cloudwatch_metrics_enabled_delivers_processedbytes_for_the_workgroup.py", "service": "athena__cloudwatch"} {"check_id": "athena__emr-serverless__glue__s3.spark-created-glue-table-read-back-by-athena", "deployments": [], "key": "athena__emr-serverless__glue__s3/spark-created-glue-table-read-back-by-athena", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "glue:BatchCreatePartition", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartitions", "glue:GetTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__emr-serverless__glue__s3/check_spark_created_glue_table_read_back_by_athena.py", "service": "athena__emr-serverless__glue__s3"} {"check_id": "athena__emr-serverless__glue__s3.spark-saveastable-without-glue-createtable-permission-is-denied", "deployments": [], "key": "athena__emr-serverless__glue__s3/spark-saveastable-without-glue-createtable-permission-is-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__emr-serverless__glue__s3/check_spark_saveastable_without_glue_createtable_permission_is_denied.py", "service": "athena__emr-serverless__glue__s3"} {"check_id": "athena__events__sqs.query-state-change-event-carries-athenaerror-only-when-the-query-failed", "deployments": [], "key": "athena__events__sqs/query-state-change-event-carries-athenaerror-only-when-the-query-failed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/athena__events__sqs/check_query_state_change_event_carries_athenaerror_only_when_the_query_failed.py", "service": "athena__events__sqs"} {"check_id": "athena__firehose__glue__lambda__s3.fhtransform-dropped-records-never-become-athena-rows-until-the-verdict-is-repaired", "deployments": [], "key": "athena__firehose__glue__lambda__s3/fhtransform-dropped-records-never-become-athena-rows-until-the-verdict-is-repaired", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena__firehose__glue__lambda__s3/check_fhtransform_dropped_records_never_become_athena_rows_until_the_verdict_is_repaired.py", "service": "athena__firehose__glue__lambda__s3"} {"check_id": "athena__firehose__glue__lambda__s3.fhtransform-lambda-rewritten-records-are-read-back-as-parquet-rows-by-athena", "deployments": [], "key": "athena__firehose__glue__lambda__s3/fhtransform-lambda-rewritten-records-are-read-back-as-parquet-rows-by-athena", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena__firehose__glue__lambda__s3/check_fhtransform_lambda_rewritten_records_are_read_back_as_parquet_rows_by_athena.py", "service": "athena__firehose__glue__lambda__s3"} {"check_id": "athena__firehose__glue__lambda__s3.fhtransform-processing-failed-is-attributed-to-the-transform-not-the-parquet-conversion", "deployments": [], "key": "athena__firehose__glue__lambda__s3/fhtransform-processing-failed-is-attributed-to-the-transform-not-the-parquet-conversion", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena__firehose__glue__lambda__s3/check_fhtransform_processing_failed_is_attributed_to_the_transform_not_the_parquet_conversion.py", "service": "athena__firehose__glue__lambda__s3"} {"check_id": "athena__firehose__glue__s3.firehose-interval-ceiling-900-echoed-and-size-hint-flushes-through-athena", "deployments": [], "key": "athena__firehose__glue__s3/firehose-interval-ceiling-900-echoed-and-size-hint-flushes-through-athena", "labels": ["axis:rejection", "plane:control"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/athena__firehose__glue__s3/check_firehose_interval_ceiling_900_echoed_and_size_hint_flushes_through_athena.py", "service": "athena__firehose__glue__s3"} {"check_id": "athena__firehose__glue__s3.firehose-raw-json-delivery-queryable-via-athena-recursive-prefix", "deployments": [], "key": "athena__firehose__glue__s3/firehose-raw-json-delivery-queryable-via-athena-recursive-prefix", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena__firehose__glue__s3/check_firehose_raw_json_delivery_queryable_via_athena_recursive_prefix.py", "service": "athena__firehose__glue__s3"} {"check_id": "athena__firehose__glue__s3.non-numeric-scalar-coercion-rejected-while-numeric-string-sibling-converts", "deployments": [], "key": "athena__firehose__glue__s3/non-numeric-scalar-coercion-rejected-while-numeric-string-sibling-converts", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/athena__firehose__glue__s3/check_non_numeric_scalar_coercion_rejected_while_numeric_string_sibling_converts.py", "service": "athena__firehose__glue__s3"} {"check_id": "athena__glue__lakeformation__s3.lf-column-grant-projects-granted-columns-and-excluded-column-denied", "deployments": [], "key": "athena__glue__lakeformation__s3/lf-column-grant-projects-granted-columns-and-excluded-column-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lakeformation:DeregisterResource", "lakeformation:DescribeResource", "lakeformation:GrantPermissions", "lakeformation:RegisterResource", "lakeformation:RevokePermissions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__lakeformation__s3/check_lf_column_grant_projects_granted_columns_and_excluded_column_denied.py", "service": "athena__glue__lakeformation__s3"} {"check_id": "athena__glue__lakeformation__s3.lf-revoke-select-stops-athena-read-and-rehides-table", "deployments": [], "key": "athena__glue__lakeformation__s3/lf-revoke-select-stops-athena-read-and-rehides-table", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lakeformation:DeregisterResource", "lakeformation:DescribeResource", "lakeformation:GrantPermissions", "lakeformation:ListPermissions", "lakeformation:RegisterResource", "lakeformation:RevokePermissions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__lakeformation__s3/check_lf_revoke_select_stops_athena_read_and_rehides_table.py", "service": "athena__glue__lakeformation__s3"} {"check_id": "athena__glue__lakeformation__s3.lf-row-filter-restricts-athena-rows-to-matching-predicate", "deployments": [], "key": "athena__glue__lakeformation__s3/lf-row-filter-restricts-athena-rows-to-matching-predicate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lakeformation:CreateDataCellsFilter", "lakeformation:DeleteDataCellsFilter", "lakeformation:DeregisterResource", "lakeformation:DescribeResource", "lakeformation:GetDataCellsFilter", "lakeformation:GrantPermissions", "lakeformation:RegisterResource", "lakeformation:RevokePermissions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__lakeformation__s3/check_lf_row_filter_restricts_athena_rows_to_matching_predicate.py", "service": "athena__glue__lakeformation__s3"} {"check_id": "athena__glue__lakeformation__s3.lf-table-select-grant-readable-through-athena-and-ungranted-table-denied", "deployments": [], "key": "athena__glue__lakeformation__s3/lf-table-select-grant-readable-through-athena-and-ungranted-table-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lakeformation:DeregisterResource", "lakeformation:DescribeResource", "lakeformation:GrantPermissions", "lakeformation:ListPermissions", "lakeformation:RegisterResource", "lakeformation:RevokePermissions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__lakeformation__s3/check_lf_table_select_grant_readable_through_athena_and_ungranted_table_denied.py", "service": "athena__glue__lakeformation__s3"} {"check_id": "athena__glue__s3.athena-ddl-create-table-registers-in-glue-catalog-positive", "deployments": [], "key": "athena__glue__s3/athena-ddl-create-table-registers-in-glue-catalog-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/athena__glue__s3/check_athena_ddl_create_table_registers_in_glue_catalog_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-glue-catalog-cross-account-missing-permission-negative", "deployments": [], "key": "athena__glue__s3/athena-glue-catalog-cross-account-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__s3/check_athena_glue_catalog_cross_account_missing_permission_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-glue-catalog-missing-permission-negative", "deployments": [], "key": "athena__glue__s3/athena-glue-catalog-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__s3/check_athena_glue_catalog_missing_permission_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-list-databases-reflects-glue-database-positive", "deployments": [], "key": "athena__glue__s3/athena-list-databases-reflects-glue-database-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["athena:ListDatabases", "glue:CreateDatabase", "glue:DeleteDatabase"], "path": "behavioral/athena__glue__s3/check_athena_list_databases_reflects_glue_database_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-missing-s3-output-bucket-permission-negative", "deployments": [], "key": "athena__glue__s3/athena-missing-s3-output-bucket-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__s3/check_athena_missing_s3_output_bucket_permission_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-partition-projection-reads-glue-partitions-positive", "deployments": [], "key": "athena__glue__s3/athena-partition-projection-reads-glue-partitions-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:BatchCreatePartition", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_athena_partition_projection_reads_glue_partitions_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-query-large-result-multipart-s3-positive", "deployments": [], "key": "athena__glue__s3/athena-query-large-result-multipart-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_athena_query_large_result_multipart_s3_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-query-nonexistent-glue-table-negative", "deployments": [], "key": "athena__glue__s3/athena-query-nonexistent-glue-table-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_athena_query_nonexistent_glue_table_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-query-output-format-preserved-in-s3-positive", "deployments": [], "key": "athena__glue__s3/athena-query-output-format-preserved-in-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/athena__glue__s3/check_athena_query_output_format_preserved_in_s3_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-query-reads-csv-data-from-s3-positive", "deployments": [], "key": "athena__glue__s3/athena-query-reads-csv-data-from-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_athena_query_reads_csv_data_from_s3_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-query-results-written-to-s3-output-location-positive", "deployments": [], "key": "athena__glue__s3/athena-query-results-written-to-s3-output-location-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2"], "path": "behavioral/athena__glue__s3/check_athena_query_results_written_to_s3_output_location_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-query-uses-glue-catalog-table-positive", "deployments": [], "key": "athena__glue__s3/athena-query-uses-glue-catalog-table-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_athena_query_uses_glue_catalog_table_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-s3-bucket-policy-blocks-query-results-write-negative", "deployments": [], "key": "athena__glue__s3/athena-s3-bucket-policy-blocks-query-results-write-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/athena__glue__s3/check_athena_s3_bucket_policy_blocks_query_results_write_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.athena-workgroup-output-location-override-s3-positive", "deployments": [], "key": "athena__glue__s3/athena-workgroup-output-location-override-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena__glue__s3/check_athena_workgroup_output_location_override_s3_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.cli-athena-query-missing-glue-table-error-negative", "deployments": [], "key": "athena__glue__s3/cli-athena-query-missing-glue-table-error-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryResults", "glue:DeleteDatabase", "glue:DeleteTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_cli_athena_query_missing_glue_table_error_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.cli-athena-start-query-execution-poll-results-s3", "deployments": [], "key": "athena__glue__s3/cli-athena-start-query-execution-poll-results-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena__glue__s3/check_cli_athena_start_query_execution_poll_results_s3.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.cli-glue-crawler-missing-s3-permission-rejected", "deployments": [], "key": "athena__glue__s3/cli-glue-crawler-missing-s3-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:DeleteCrawler", "glue:DeleteDatabase", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_cli_glue_crawler_missing_s3_permission_rejected.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.cli-glue-crawler-run-then-athena-query-workflow", "deployments": [], "key": "athena__glue__s3/cli-glue-crawler-run-then-athena-query-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:DeleteCrawler", "glue:DeleteDatabase", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_cli_glue_crawler_run_then_athena_query_workflow.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.cli-glue-create-table-athena-query-s3-roundtrip", "deployments": [], "key": "athena__glue__s3/cli-glue-create-table-athena-query-s3-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:DeleteDatabase", "glue:DeleteTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_cli_glue_create_table_athena_query_s3_roundtrip.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.deploy-cfn-athena-workgroup-enforce-configuration-positive", "deployments": [], "key": "athena__glue__s3/deploy-cfn-athena-workgroup-enforce-configuration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2"], "path": "behavioral/athena__glue__s3/check_deploy_cfn_athena_workgroup_enforce_configuration_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.deploy-cfn-athena-workgroup-output-location-s3-positive", "deployments": [], "key": "athena__glue__s3/deploy-cfn-athena-workgroup-output-location-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2"], "path": "behavioral/athena__glue__s3/check_deploy_cfn_athena_workgroup_output_location_s3_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.deploy-cfn-glue-crawler-missing-s3-bucket-policy-negative", "deployments": [], "key": "athena__glue__s3/deploy-cfn-glue-crawler-missing-s3-bucket-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_deploy_cfn_glue_crawler_missing_s3_bucket_policy_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.deploy-cfn-glue-crawler-role-trust-policy-positive", "deployments": [], "key": "athena__glue__s3/deploy-cfn-glue-crawler-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:GetRole", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_deploy_cfn_glue_crawler_role_trust_policy_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.deploy-cfn-glue-database-table-s3-location-positive", "deployments": [], "key": "athena__glue__s3/deploy-cfn-glue-database-table-s3-location-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetTable", "s3:HeadBucket"], "path": "behavioral/athena__glue__s3/check_deploy_cfn_glue_database_table_s3_location_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.deploy-cfn-glue-job-role-missing-s3-write-permission-negative", "deployments": [], "key": "athena__glue__s3/deploy-cfn-glue-job-role-missing-s3-write-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__s3/check_deploy_cfn_glue_job_role_missing_s3_write_permission_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.deploy-cfn-stack-update-glue-table-schema-positive", "deployments": [], "key": "athena__glue__s3/deploy-cfn-stack-update-glue-table-schema-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetTable"], "path": "behavioral/athena__glue__s3/check_deploy_cfn_stack_update_glue_table_schema_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.eventbridge-rule-filters-glue-job-name-positive", "deployments": [], "key": "athena__glue__s3/eventbridge-rule-filters-glue-job-name-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "events:TestEventPattern", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue"], "path": "behavioral/athena__glue__s3/check_eventbridge_rule_filters_glue_job_name_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-catalog-table-location-points-to-s3-positive", "deployments": [], "key": "athena__glue__s3/glue-catalog-table-location-points-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_glue_catalog_table_location_points_to_s3_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-crawler-missing-s3-read-permission-negative", "deployments": [], "key": "athena__glue__s3/glue-crawler-missing-s3-read-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_glue_crawler_missing_s3_read_permission_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-crawler-reads-s3-data-positive", "deployments": [], "key": "athena__glue__s3/glue-crawler-reads-s3-data-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_glue_crawler_reads_s3_data_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-crawler-state-change-event-delivered-to-target-positive", "deployments": [], "key": "athena__glue__s3/glue-crawler-state-change-event-delivered-to-target-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_glue_crawler_state_change_event_delivered_to_target_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-job-authored-catalog-table-is-read-by-athena-and-a-partition-denied-role-fails", "deployments": [], "key": "athena__glue__s3/glue-job-authored-catalog-table-is-read-by-athena-and-a-partition-denied-role-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "glue:CreateDatabase", "glue:CreateJob", "glue:DeleteDatabase", "glue:DeleteJob", "glue:DeleteTable", "glue:GetDatabase", "glue:GetJob", "glue:GetJobRun", "glue:GetPartitions", "glue:GetTable", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_glue_job_authored_catalog_table_is_read_by_athena_and_a_partition_denied_role_fails.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-job-failed-event-missing-target-permission-negative", "deployments": [], "key": "athena__glue__s3/glue-job-failed-event-missing-target-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/athena__glue__s3/check_glue_job_failed_event_missing_target_permission_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-job-role-missing-trust-policy-negative", "deployments": [], "key": "athena__glue__s3/glue-job-role-missing-trust-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "glue:UpdateJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_glue_job_role_missing_trust_policy_negative.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-job-succeeded-event-triggers-eventbridge-rule-positive", "deployments": [], "key": "athena__glue__s3/glue-job-succeeded-event-triggers-eventbridge-rule-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/athena__glue__s3/check_glue_job_succeeded_event_triggers_eventbridge_rule_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.glue-job-writes-output-to-s3-positive", "deployments": [], "key": "athena__glue__s3/glue-job-writes-output-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_glue_job_writes_output_to_s3_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.iam-role-trusts-glue-service-positive", "deployments": [], "key": "athena__glue__s3/iam-role-trusts-glue-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__glue__s3/check_iam_role_trusts_glue_service_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__glue__s3.iam-role-trusts-s3-service-positive", "deployments": [], "key": "athena__glue__s3/iam-role-trusts-s3-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/athena__glue__s3/check_iam_role_trusts_s3_service_positive.py", "service": "athena__glue__s3"} {"check_id": "athena__kms__s3.minimum-encryption-configuration-rejects-a-weaker-client-encryption-option", "deployments": [], "key": "athena__kms__s3/minimum-encryption-configuration-rejects-a-weaker-client-encryption-option", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:UpdateWorkGroup", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena__kms__s3/check_minimum_encryption_configuration_rejects_a_weaker_client_encryption_option.py", "service": "athena__kms__s3"} {"check_id": "athena__s3.athena-query-result-object-written-to-s3-output-location", "deployments": [], "key": "athena__s3/athena-query-result-object-written-to-s3-output-location", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena__s3/check_athena_query_result_object_written_to_s3_output_location.py", "service": "athena__s3"} {"check_id": "athena__s3.ctas-partitioned-output-layout-matches-show-partitions", "deployments": [], "key": "athena__s3/ctas-partitioned-output-layout-matches-show-partitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__s3/check_ctas_partitioned_output_layout_matches_show_partitions.py", "service": "athena__s3"} {"check_id": "athena__s3.data-manifest-lists-exactly-the-objects-unload-wrote", "deployments": [], "key": "athena__s3/data-manifest-lists-exactly-the-objects-unload-wrote", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__s3/check_data_manifest_lists_exactly_the_objects_unload_wrote.py", "service": "athena__s3"} {"check_id": "athena__s3.result-csv-escapes-delimiters-and-distinguishes-null-from-empty-string", "deployments": [], "key": "athena__s3/result-csv-escapes-delimiters-and-distinguishes-null-from-empty-string", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/athena__s3/check_result_csv_escapes_delimiters_and_distinguishes_null_from_empty_string.py", "service": "athena__s3"} {"check_id": "athena__s3.unload-into-non-empty-s3-prefix-rejected", "deployments": [], "key": "athena__s3/unload-into-non-empty-s3-prefix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:GetQueryExecution", "athena:StartQueryExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/athena__s3/check_unload_into_non_empty_s3_prefix_rejected.py", "service": "athena__s3"} {"check_id": "athena__s3__stepfunctions.get-query-execution-for-an-unknown-id-fails-as-task-failed", "deployments": [], "key": "athena__s3__stepfunctions/get-query-execution-for-an-unknown-id-fails-as-task-failed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "athena:StopQueryExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/athena__s3__stepfunctions/check_get_query_execution_for_an_unknown_id_fails_as_task_failed.py", "service": "athena__s3__stepfunctions"} {"check_id": "athena__s3__stepfunctions.get-query-execution-results-and-stop-query-execution-direct-calls", "deployments": [], "key": "athena__s3__stepfunctions/get-query-execution-results-and-stop-query-execution-direct-calls", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StartQueryExecution", "athena:StopQueryExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/athena__s3__stepfunctions/check_get_query_execution_results_and_stop_query_execution_direct_calls.py", "service": "athena__s3__stepfunctions"} {"check_id": "athena__s3__stepfunctions.xsvc-sfn-1-athena-sync-missing-table-query-fails-as-task-failed", "deployments": [], "key": "athena__s3__stepfunctions/xsvc-sfn-1-athena-sync-missing-table-query-fails-as-task-failed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/athena__s3__stepfunctions/check_xsvc_sfn_1_athena_sync_missing_table_query_fails_as_task_failed.py", "service": "athena__s3__stepfunctions"} {"check_id": "athena__s3__stepfunctions.xsvc-sfn-1-athena-sync-stop-execution-cancels-the-running-query", "deployments": [], "key": "athena__s3__stepfunctions/xsvc-sfn-1-athena-sync-stop-execution-cancels-the-running-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:StopQueryExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/athena__s3__stepfunctions/check_xsvc_sfn_1_athena_sync_stop_execution_cancels_the_running_query.py", "service": "athena__s3__stepfunctions"} {"check_id": "athena__s3__stepfunctions.xsvc-sfn-1-athena-sync-succeeds-only-after-the-query-completes", "deployments": [], "key": "athena__s3__stepfunctions/xsvc-sfn-1-athena-sync-succeeds-only-after-the-query-completes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/athena__s3__stepfunctions/check_xsvc_sfn_1_athena_sync_succeeds_only_after_the_query_completes.py", "service": "athena__s3__stepfunctions"} {"check_id": "athena__s3__stepfunctions.xsvc-sfn-1-athena-sync-without-get-query-execution-is-denied", "deployments": [], "key": "athena__s3__stepfunctions/xsvc-sfn-1-athena-sync-without-get-query-execution-is-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["athena:CreateWorkGroup", "athena:DeleteWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/athena__s3__stepfunctions/check_xsvc_sfn_1_athena_sync_without_get_query_execution_is_denied.py", "service": "athena__s3__stepfunctions"} {"check_id": "autoscaling-plans.asp-absent-plan-reads-are-empty-but-writes-are-rejected", "deployments": [], "key": "autoscaling-plans/asp-absent-plan-reads-are-empty-but-writes-are-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlanResources", "autoscaling-plans:DescribeScalingPlans", "autoscaling-plans:GetScalingPlanResourceForecastData", "autoscaling-plans:UpdateScalingPlan", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/autoscaling-plans/check_asp_absent_plan_reads_are_empty_but_writes_are_rejected.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-absent-resource-plan-is-rejected-asynchronously", "deployments": [], "key": "autoscaling-plans/asp-absent-resource-plan-is-rejected-asynchronously", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlanResources", "autoscaling-plans:DescribeScalingPlans", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/autoscaling-plans/check_asp_absent_resource_plan_is_rejected_asynchronously.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-concurrent-update-is-rejected", "deployments": [], "key": "autoscaling-plans/asp-concurrent-update-is-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans", "autoscaling-plans:UpdateScalingPlan", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/autoscaling-plans/check_asp_concurrent_update_is_rejected.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-create-rejects-capacity-and-target-bounds", "deployments": [], "key": "autoscaling-plans/asp-create-rejects-capacity-and-target-bounds", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/autoscaling-plans/check_asp_create_rejects_capacity_and_target_bounds.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-create-rejects-mismatched-dimension-and-source", "deployments": [], "key": "autoscaling-plans/asp-create-rejects-mismatched-dimension-and-source", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/autoscaling-plans/check_asp_create_rejects_mismatched_dimension_and_source.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-delete-deregisters-the-scalable-target-it-created", "deployments": [], "key": "autoscaling-plans/asp-delete-deregisters-the-scalable-target-it-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingPolicies", "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans", "autoscaling-plans:UpdateScalingPlan", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/autoscaling-plans/check_asp_delete_deregisters_the_scalable_target_it_created.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-forecast-window-is-rejected-before-plan-lookup", "deployments": [], "key": "autoscaling-plans/asp-forecast-window-is-rejected-before-plan-lookup", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling-plans:GetScalingPlanResourceForecastData"], "path": "behavioral/autoscaling-plans/check_asp_forecast_window_is_rejected_before_plan_lookup.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-plan-activates-with-readable-instructions", "deployments": [], "key": "autoscaling-plans/asp-plan-activates-with-readable-instructions", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlanResources", "autoscaling-plans:DescribeScalingPlans", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/autoscaling-plans/check_asp_plan_activates_with_readable_instructions.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-predictive-forecast-without-history-has-no-datapoints", "deployments": [], "key": "autoscaling-plans/asp-predictive-forecast-without-history-has-no-datapoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans", "autoscaling-plans:GetScalingPlanResourceForecastData", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling-plans/check_asp_predictive_forecast_without_history_has_no_datapoints.py", "service": "autoscaling-plans"} {"check_id": "autoscaling-plans.asp-update-replaces-instruction-without-new-version", "deployments": [], "key": "autoscaling-plans/asp-update-replaces-instruction-without-new-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlanResources", "autoscaling-plans:DescribeScalingPlans", "autoscaling-plans:UpdateScalingPlan", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/autoscaling-plans/check_asp_update_replaces_instruction_without_new_version.py", "service": "autoscaling-plans"} {"check_id": "autoscaling.asg-attach-target-group", "deployments": [], "key": "autoscaling/asg-attach-target-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLoadBalancerTargetGroups", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_asg_attach_target_group.py", "service": "autoscaling"} {"check_id": "autoscaling.asg-capacity-large-numeric-precision-preserved", "deployments": [], "key": "autoscaling/asg-capacity-large-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_asg_capacity_large_numeric_precision_preserved.py", "service": "autoscaling"} {"check_id": "autoscaling.asg-min-size-exceeds-max-size-rejected", "deployments": [], "key": "autoscaling/asg-min-size-exceeds-max-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_asg_min_size_exceeds_max_size_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.asg-minsize-greater-than-maxsize-rejected", "deployments": [], "key": "autoscaling/asg-minsize-greater-than-maxsize-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_asg_minsize_greater_than_maxsize_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.asg-reflects-launch-template", "deployments": [], "key": "autoscaling/asg-reflects-launch-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeLaunchTemplates", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_asg_reflects_launch_template.py", "service": "autoscaling"} {"check_id": "autoscaling.asg-suspended-scheduled-actions-skip-an-occurrence-and-resume-without-backfill", "deployments": [], "key": "autoscaling/asg-suspended-scheduled-actions-skip-an-occurrence-and-resume-without-backfill", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_asg_suspended_scheduled_actions_skip_an_occurrence_and_resume_without_backfill.py", "service": "autoscaling"} {"check_id": "autoscaling.attach-detach-load-balancers-state", "deployments": [], "key": "autoscaling/attach-detach-load-balancers-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancers", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeLoadBalancers", "autoscaling:DetachLoadBalancers", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_attach_detach_load_balancers_state.py", "service": "autoscaling"} {"check_id": "autoscaling.attach-detach-traffic-sources-state", "deployments": [], "key": "autoscaling/attach-detach-traffic-sources-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachTrafficSources", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeTrafficSources", "autoscaling:DetachTrafficSources", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_attach_detach_traffic_sources_state.py", "service": "autoscaling"} {"check_id": "autoscaling.attach-instance-wrong-availability-zone-rejected", "deployments": [], "key": "autoscaling/attach-instance-wrong-availability-zone-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_attach_instance_wrong_availability_zone_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.attach-instances-exceeding-max-size-rejected", "deployments": [], "key": "autoscaling/attach-instances-exceeding-max-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_attach_instances_exceeding_max_size_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.attach-load-balancer-during-group-deletion-blocked", "deployments": [], "key": "autoscaling/attach-load-balancer-during-group-deletion-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachLoadBalancers", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLoadBalancers", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_attach_load_balancer_during_group_deletion_blocked.py", "service": "autoscaling"} {"check_id": "autoscaling.attach-load-balancers-nonexistent-rejected", "deployments": [], "key": "autoscaling/attach-load-balancers-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachLoadBalancers", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeLoadBalancers", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elb:AddTags", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_attach_load_balancers_nonexistent_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.attach-nonexistent-instance-fails", "deployments": [], "key": "autoscaling/attach-nonexistent-instance-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_attach_nonexistent_instance_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.attach-operations-accepted-during-instance-refresh", "deployments": [], "key": "autoscaling/attach-operations-accepted-during-instance-refresh", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:AttachLoadBalancers", "autoscaling:AttachTrafficSources", "autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_attach_operations_accepted_during_instance_refresh.py", "service": "autoscaling"} {"check_id": "autoscaling.autoscaling-group-duplicate-name-rejected", "deployments": [], "key": "autoscaling/autoscaling-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_autoscaling_group_duplicate_name_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.batch-delete-scheduled-action-atomic", "deployments": [], "key": "autoscaling/batch-delete-scheduled-action-atomic", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_batch_delete_scheduled_action_atomic.py", "service": "autoscaling"} {"check_id": "autoscaling.batch-delete-scheduled-action-partial-failure", "deployments": [], "key": "autoscaling/batch-delete-scheduled-action-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_batch_delete_scheduled_action_partial_failure.py", "service": "autoscaling"} {"check_id": "autoscaling.batch-put-scheduled-action-duplicate-fails", "deployments": [], "key": "autoscaling/batch-put-scheduled-action-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_batch_put_scheduled_action_duplicate_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.batch-put-scheduled-actions-creates-multiple", "deployments": [], "key": "autoscaling/batch-put-scheduled-actions-creates-multiple", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_batch_put_scheduled_actions_creates_multiple.py", "service": "autoscaling"} {"check_id": "autoscaling.batch-put-scheduled-actions-malformed-recurrence-rejected", "deployments": [], "key": "autoscaling/batch-put-scheduled-actions-malformed-recurrence-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_batch_put_scheduled_actions_malformed_recurrence_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.batch-put-scheduled-actions-preserves-order", "deployments": [], "key": "autoscaling/batch-put-scheduled-actions-preserves-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_batch_put_scheduled_actions_preserves_order.py", "service": "autoscaling"} {"check_id": "autoscaling.cancel-instance-refresh-not-found-fails", "deployments": [], "key": "autoscaling/cancel-instance-refresh-not-found-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_cancel_instance_refresh_not_found_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.capacity-bounds-converge-desired-capacity", "deployments": [], "key": "autoscaling/capacity-bounds-converge-desired-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_capacity_bounds_converge_desired_capacity.py", "service": "autoscaling"} {"check_id": "autoscaling.capacity-min-exceeds-max-rejected", "deployments": [], "key": "autoscaling/capacity-min-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_capacity_min_exceeds_max_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.capacity-numeric-boundary-values-preserved", "deployments": [], "key": "autoscaling/capacity-numeric-boundary-values-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_capacity_numeric_boundary_values_preserved.py", "service": "autoscaling"} {"check_id": "autoscaling.complete-lifecycle-action-reused-on-a-consumed-action-rejected-and-the-instance-stays-waiting", "deployments": [], "key": "autoscaling/complete-lifecycle-action-reused-on-a-consumed-action-rejected-and-the-instance-stays-waiting", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_complete_lifecycle_action_reused_on_a_consumed_action_rejected_and_the_instance_stays_waiting.py", "service": "autoscaling"} {"check_id": "autoscaling.complete-lifecycle-action-unknown-hook-rejected", "deployments": [], "key": "autoscaling/complete-lifecycle-action-unknown-hook-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:SetDesiredCapacity", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_complete_lifecycle_action_unknown_hook_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.complete-lifecycle-action-unknown-token-rejected", "deployments": [], "key": "autoscaling/complete-lifecycle-action-unknown-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingInstances", "autoscaling:PutLifecycleHook", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_complete_lifecycle_action_unknown_token_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.concurrent-attach-detach-instances-same-group-serialized", "deployments": [], "key": "autoscaling/concurrent-attach-detach-instances-same-group-serialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_concurrent_attach_detach_instances_same_group_serialized.py", "service": "autoscaling"} {"check_id": "autoscaling.concurrent-set-desired-capacity-converges-to-a-single-capacity", "deployments": [], "key": "autoscaling/concurrent-set-desired-capacity-converges-to-a-single-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_concurrent_set_desired_capacity_converges_to_a_single_capacity.py", "service": "autoscaling"} {"check_id": "autoscaling.concurrent-update-asg-resource-contention", "deployments": [], "key": "autoscaling/concurrent-update-asg-resource-contention", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_concurrent_update_asg_resource_contention.py", "service": "autoscaling"} {"check_id": "autoscaling.create-asg-both-launch-template-and-config-rejected", "deployments": [], "key": "autoscaling/create-asg-both-launch-template-and-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_asg_both_launch_template_and_config_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-asg-duplicate-name-fails", "deployments": [], "key": "autoscaling/create-asg-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_asg_duplicate_name_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.create-asg-invalid-availability-zone-rejected", "deployments": [], "key": "autoscaling/create-asg-invalid-availability-zone-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_asg_invalid_availability_zone_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-asg-invalid-launch-template-id-rejected", "deployments": [], "key": "autoscaling/create-asg-invalid-launch-template-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_asg_invalid_launch_template_id_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-asg-missing-launch-config-rejected", "deployments": [], "key": "autoscaling/create-asg-missing-launch-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_asg_missing_launch_config_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-asg-negative-min-size-rejected", "deployments": [], "key": "autoscaling/create-asg-negative-min-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_asg_negative_min_size_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-asg-state-transition", "deployments": [], "key": "autoscaling/create-asg-state-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_asg_state_transition.py", "service": "autoscaling"} {"check_id": "autoscaling.create-auto-scaling-group-duplicate-name-rejected", "deployments": [], "key": "autoscaling/create-auto-scaling-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_auto_scaling_group_duplicate_name_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-auto-scaling-group-min-exceeds-max-rejected", "deployments": [], "key": "autoscaling/create-auto-scaling-group-min-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_auto_scaling_group_min_exceeds_max_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-launch-configuration-duplicate-name-rejected", "deployments": [], "key": "autoscaling/create-launch-configuration-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteLaunchConfiguration", "autoscaling:DescribeLaunchConfigurations", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_launch_configuration_duplicate_name_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-launch-configuration-malformed-block-device-mapping-rejected", "deployments": [], "key": "autoscaling/create-launch-configuration-malformed-block-device-mapping-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteLaunchConfiguration", "autoscaling:DescribeLaunchConfigurations", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_launch_configuration_malformed_block_device_mapping_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.create-launch-template-conflicting-name-rejected", "deployments": [], "key": "autoscaling/create-launch-template-conflicting-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeLaunchTemplates", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_create_launch_template_conflicting_name_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-1-asg-recon-healthy-spread-over-100-rejected", "deployments": [], "key": "autoscaling/deep-autoscaling-1-asg-recon-healthy-spread-over-100-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_1_asg_recon_healthy_spread_over_100_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-1-asg-recon-max-healthy-without-min-rejected", "deployments": [], "key": "autoscaling/deep-autoscaling-1-asg-recon-max-healthy-without-min-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_1_asg_recon_max_healthy_without_min_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-1-asg-recon-oob-termination-replacement", "deployments": [], "key": "autoscaling/deep-autoscaling-1-asg-recon-oob-termination-replacement", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_1_asg_recon_oob_termination_replacement.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-1-asg-recon-refresh-max-healthy-surge", "deployments": [], "key": "autoscaling/deep-autoscaling-1-asg-recon-refresh-max-healthy-surge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_1_asg_recon_refresh_max_healthy_surge.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-1-asg-recon-refresh-min-healthy-floor", "deployments": [], "key": "autoscaling/deep-autoscaling-1-asg-recon-refresh-min-healthy-floor", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_1_asg_recon_refresh_min_healthy_floor.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-1-asg-recon-refresh-without-max-healthy-no-surge", "deployments": [], "key": "autoscaling/deep-autoscaling-1-asg-recon-refresh-without-max-healthy-no-surge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_1_asg_recon_refresh_without_max_healthy_no_surge.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-2-asg-enforce-new-instances-protected-scale-in-terminates-nothing", "deployments": [], "key": "autoscaling/deep-autoscaling-2-asg-enforce-new-instances-protected-scale-in-terminates-nothing", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLifecycleHooks", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_2_asg_enforce_new_instances_protected_scale_in_terminates_nothing.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-2-asg-enforce-prevent-all-deletion-rejects-plain-and-force-delete", "deployments": [], "key": "autoscaling/deep-autoscaling-2-asg-enforce-prevent-all-deletion-rejects-plain-and-force-delete", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_2_asg_enforce_prevent_all_deletion_rejects_plain_and_force_delete.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-2-asg-enforce-prevent-force-deletion-accepts-plain-delete-of-empty-group", "deployments": [], "key": "autoscaling/deep-autoscaling-2-asg-enforce-prevent-force-deletion-accepts-plain-delete-of-empty-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_2_asg_enforce_prevent_force_deletion_accepts_plain_delete_of_empty_group.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-2-asg-enforce-prevent-force-deletion-rejects-force-delete-of-live-group", "deployments": [], "key": "autoscaling/deep-autoscaling-2-asg-enforce-prevent-force-deletion-rejects-force-delete-of-live-group", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_2_asg_enforce_prevent_force_deletion_rejects_force_delete_of_live_group.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-2-asg-enforce-terminate-hook-abandon-retain-keeps-instance-outside-desired", "deployments": [], "key": "autoscaling/deep-autoscaling-2-asg-enforce-terminate-hook-abandon-retain-keeps-instance-outside-desired", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:TerminateInstanceInAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_2_asg_enforce_terminate_hook_abandon_retain_keeps_instance_outside_desired.py", "service": "autoscaling"} {"check_id": "autoscaling.deep-autoscaling-2-asg-enforce-terminate-hook-abandon-retain-rejects-force-delete", "deployments": [], "key": "autoscaling/deep-autoscaling-2-asg-enforce-terminate-hook-abandon-retain-rejects-force-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deep_autoscaling_2_asg_enforce_terminate_hook_abandon_retain_rejects_force_delete.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-asg-after-detaching-its-instance-succeeds-and-leaves-it-running", "deployments": [], "key": "autoscaling/delete-asg-after-detaching-its-instance-succeeds-and-leaves-it-running", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DetachInstances", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_asg_after_detaching_its_instance_succeeds_and_leaves_it_running.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-asg-in-use-without-force-fails", "deployments": [], "key": "autoscaling/delete-asg-in-use-without-force-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_asg_in_use_without_force_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-asg-removes-group", "deployments": [], "key": "autoscaling/delete-asg-removes-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_asg_removes_group.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-asg-with-instances-without-force-rejected", "deployments": [], "key": "autoscaling/delete-asg-with-instances-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_asg_with_instances_without_force_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-asg-with-only-a-standby-instance-without-force-rejected", "deployments": [], "key": "autoscaling/delete-asg-with-only-a-standby-instance-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_asg_with_only_a_standby_instance_without_force_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-auto-scaling-group-concurrent-contention-fails", "deployments": [], "key": "autoscaling/delete-auto-scaling-group-concurrent-contention-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_auto_scaling_group_concurrent_contention_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-auto-scaling-group-with-instances-rejected", "deployments": [], "key": "autoscaling/delete-auto-scaling-group-with-instances-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_auto_scaling_group_with_instances_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-auto-scaling-group-with-target-group-attached-rejected", "deployments": [], "key": "autoscaling/delete-auto-scaling-group-with-target-group-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DetachInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_auto_scaling_group_with_target_group_attached_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-launch-configuration-in-use-rejected", "deployments": [], "key": "autoscaling/delete-launch-configuration-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLaunchConfigurations", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_launch_configuration_in_use_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-nonexistent-group-fails", "deployments": [], "key": "autoscaling/delete-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_nonexistent_group_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-notification-config-nonexistent-rejected", "deployments": [], "key": "autoscaling/delete-notification-config-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteNotificationConfiguration", "autoscaling:DescribeNotificationConfigurations", "autoscaling:PutNotificationConfiguration", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "sns:CreateTopic", "sns:DeleteTopic", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_notification_config_nonexistent_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-policy-nonexistent-noop", "deployments": [], "key": "autoscaling/delete-policy-nonexistent-noop", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_policy_nonexistent_noop.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-scheduled-action-nonexistent-noop", "deployments": [], "key": "autoscaling/delete-scheduled-action-nonexistent-noop", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_scheduled_action_nonexistent_noop.py", "service": "autoscaling"} {"check_id": "autoscaling.delete-warm-pool-in-use-without-force-rejected", "deployments": [], "key": "autoscaling/delete-warm-pool-in-use-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_delete_warm_pool_in_use_without_force_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.deploy-asg-cloudformation-scales-to-desired", "deployments": [], "key": "autoscaling/deploy-asg-cloudformation-scales-to-desired", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:SetDesiredCapacity", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deploy_asg_cloudformation_scales_to_desired.py", "service": "autoscaling"} {"check_id": "autoscaling.deploy-asg-cloudformation-scaling-behavior", "deployments": [], "key": "autoscaling/deploy-asg-cloudformation-scaling-behavior", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deploy_asg_cloudformation_scaling_behavior.py", "service": "autoscaling"} {"check_id": "autoscaling.deploy-launch-template-asg-instance-launch", "deployments": [], "key": "autoscaling/deploy-launch-template-asg-instance-launch", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deploy_launch_template_asg_instance_launch.py", "service": "autoscaling"} {"check_id": "autoscaling.deploy-launch-template-cfn-instances-launch", "deployments": [], "key": "autoscaling/deploy-launch-template-cfn-instances-launch", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingInstances", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deploy_launch_template_cfn_instances_launch.py", "service": "autoscaling"} {"check_id": "autoscaling.deploy-scaling-policy-cloudformation-triggers-scaling", "deployments": [], "key": "autoscaling/deploy-scaling-policy-cloudformation-triggers-scaling", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:ExecutePolicy", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_deploy_scaling_policy_cloudformation_triggers_scaling.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-account-limits-concurrent-consistency", "deployments": [], "key": "autoscaling/describe-account-limits-concurrent-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAccountLimits", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_account_limits_concurrent_consistency.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-account-limits-concurrent-contention-handled", "deployments": [], "key": "autoscaling/describe-account-limits-concurrent-contention-handled", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAccountLimits", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_account_limits_concurrent_contention_handled.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-account-limits-reflects-server-enforced-caps", "deployments": [], "key": "autoscaling/describe-account-limits-reflects-server-enforced-caps", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAccountLimits", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_account_limits_reflects_server_enforced_caps.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-account-limits-returns-defaults", "deployments": [], "key": "autoscaling/describe-account-limits-returns-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAccountLimits", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_account_limits_returns_defaults.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-account-limits-under-contention-fails", "deployments": [], "key": "autoscaling/describe-account-limits-under-contention-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAccountLimits", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_account_limits_under_contention_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-adjustment-types-static-list", "deployments": [], "key": "autoscaling/describe-adjustment-types-static-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAdjustmentTypes"], "path": "behavioral/autoscaling/check_describe_adjustment_types_static_list.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-auto-scaling-groups-invalid-next-token-rejected", "deployments": [], "key": "autoscaling/describe-auto-scaling-groups-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups"], "path": "behavioral/autoscaling/check_describe_auto_scaling_groups_invalid_next_token_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-autoscaling-instances-reflects-membership", "deployments": [], "key": "autoscaling/describe-autoscaling-instances-reflects-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_autoscaling_instances_reflects_membership.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-invalid-next-token-multi-endpoint-fails", "deployments": [], "key": "autoscaling/describe-invalid-next-token-multi-endpoint-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLoadBalancers", "autoscaling:DescribeTrafficSources", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_invalid_next_token_multi_endpoint_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-metric-collection-types-static-list", "deployments": [], "key": "autoscaling/describe-metric-collection-types-static-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeMetricCollectionTypes"], "path": "behavioral/autoscaling/check_describe_metric_collection_types_static_list.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-nonexistent-group-returns-empty", "deployments": [], "key": "autoscaling/describe-nonexistent-group-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups"], "path": "behavioral/autoscaling/check_describe_nonexistent_group_returns_empty.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-scaling-activities-invalid-next-token-rejected", "deployments": [], "key": "autoscaling/describe-scaling-activities-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScalingActivities", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_scaling_activities_invalid_next_token_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-scaling-activities-records-events", "deployments": [], "key": "autoscaling/describe-scaling-activities-records-events", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScalingActivities", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_scaling_activities_records_events.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-scaling-activities-server-recorded", "deployments": [], "key": "autoscaling/describe-scaling-activities-server-recorded", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:SetDesiredCapacity", "autoscaling:TerminateInstanceInAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_scaling_activities_server_recorded.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-scaling-process-types-static-list", "deployments": [], "key": "autoscaling/describe-scaling-process-types-static-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingProcessTypes", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_describe_scaling_process_types_static_list.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-static-catalog-endpoints-stable", "deployments": [], "key": "autoscaling/describe-static-catalog-endpoints-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAdjustmentTypes", "autoscaling:DescribeAutoScalingNotificationTypes", "autoscaling:DescribeLifecycleHookTypes", "autoscaling:DescribeMetricCollectionTypes", "autoscaling:DescribeScalingProcessTypes", "autoscaling:DescribeTerminationPolicyTypes"], "path": "behavioral/autoscaling/check_describe_static_catalog_endpoints_stable.py", "service": "autoscaling"} {"check_id": "autoscaling.describe-termination-policy-types-static-list", "deployments": [], "key": "autoscaling/describe-termination-policy-types-static-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeTerminationPolicyTypes"], "path": "behavioral/autoscaling/check_describe_termination_policy_types_static_list.py", "service": "autoscaling"} {"check_id": "autoscaling.desired-capacity-type-vcpu-counts-vcpus-not-instances", "deployments": [], "key": "autoscaling/desired-capacity-type-vcpu-counts-vcpus-not-instances", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ResumeProcesses", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_desired_capacity_type_vcpu_counts_vcpus_not_instances.py", "service": "autoscaling"} {"check_id": "autoscaling.detach-instances-from-group", "deployments": [], "key": "autoscaling/detach-instances-from-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DetachInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_detach_instances_from_group.py", "service": "autoscaling"} {"check_id": "autoscaling.detach-instances-state", "deployments": [], "key": "autoscaling/detach-instances-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DetachInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_detach_instances_state.py", "service": "autoscaling"} {"check_id": "autoscaling.detach-instances-transitions-to-standalone", "deployments": [], "key": "autoscaling/detach-instances-transitions-to-standalone", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DetachInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_detach_instances_transitions_to_standalone.py", "service": "autoscaling"} {"check_id": "autoscaling.detach-nonexistent-attachment-rejected", "deployments": [], "key": "autoscaling/detach-nonexistent-attachment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:AttachLoadBalancers", "autoscaling:AttachTrafficSources", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeLoadBalancerTargetGroups", "autoscaling:DescribeLoadBalancers", "autoscaling:DescribeTrafficSources", "autoscaling:DetachLoadBalancerTargetGroups", "autoscaling:DetachLoadBalancers", "autoscaling:DetachTrafficSources", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elb:AddTags", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling/check_detach_nonexistent_attachment_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.detach-target-groups-state", "deployments": [], "key": "autoscaling/detach-target-groups-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeLoadBalancerTargetGroups", "autoscaling:DetachLoadBalancerTargetGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_detach_target_groups_state.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-instance-refresh-warm-pool-flow", "deployments": [], "key": "autoscaling/e2e-instance-refresh-warm-pool-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_instance_refresh_warm_pool_flow.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-lifecycle-hook-notification-flow", "deployments": [], "key": "autoscaling/e2e-lifecycle-hook-notification-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeNotificationConfigurations", "autoscaling:PutLifecycleHook", "autoscaling:PutNotificationConfiguration", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sns:CreateTopic", "sns:DeleteTopic", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_lifecycle_hook_notification_flow.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-scale-out-attach-lb-terminate-flow", "deployments": [], "key": "autoscaling/e2e-scale-out-attach-lb-terminate-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_scale_out_attach_lb_terminate_flow.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-scale-out-lifecycle-hook-scale-in-teardown", "deployments": [], "key": "autoscaling/e2e-scale-out-lifecycle-hook-scale-in-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_scale_out_lifecycle_hook_scale_in_teardown.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-scale-out-lifecycle-hook-terminate-flow", "deployments": [], "key": "autoscaling/e2e-scale-out-lifecycle-hook-terminate-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:PutLifecycleHook", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_scale_out_lifecycle_hook_terminate_flow.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-scale-out-scale-in-lifecycle-hook-flow", "deployments": [], "key": "autoscaling/e2e-scale-out-scale-in-lifecycle-hook-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_scale_out_scale_in_lifecycle_hook_flow.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-scheduled-action-capacity-change-flow", "deployments": [], "key": "autoscaling/e2e-scheduled-action-capacity-change-flow", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeAutoScalingGroups", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_scheduled_action_capacity_change_flow.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-warm-pool-scale-out-consumes-pool-instances", "deployments": [], "key": "autoscaling/e2e-warm-pool-scale-out-consumes-pool-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_warm_pool_scale_out_consumes_pool_instances.py", "service": "autoscaling"} {"check_id": "autoscaling.e2e-warm-pool-scale-then-drain", "deployments": [], "key": "autoscaling/e2e-warm-pool-scale-then-drain", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_e2e_warm_pool_scale_then_drain.py", "service": "autoscaling"} {"check_id": "autoscaling.enter-exit-standby-transitions", "deployments": [], "key": "autoscaling/enter-exit-standby-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_enter_exit_standby_transitions.py", "service": "autoscaling"} {"check_id": "autoscaling.enter-standby-without-decrement-launches-a-replacement", "deployments": [], "key": "autoscaling/enter-standby-without-decrement-launches-a-replacement", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:ResumeProcesses", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_enter_standby_without_decrement_launches_a_replacement.py", "service": "autoscaling"} {"check_id": "autoscaling.execute-policy-honors-cooldown", "deployments": [], "key": "autoscaling/execute-policy-honors-cooldown", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:DescribeScalingActivities", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_execute_policy_honors_cooldown.py", "service": "autoscaling"} {"check_id": "autoscaling.execute-policy-respects-cooldown", "deployments": [], "key": "autoscaling/execute-policy-respects-cooldown", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_execute_policy_respects_cooldown.py", "service": "autoscaling"} {"check_id": "autoscaling.force-delete-asg-cascades-child-resources", "deployments": [], "key": "autoscaling/force-delete-asg-cascades-child-resources", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:DescribeWarmPool", "autoscaling:PutLifecycleHook", "autoscaling:PutWarmPool", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_force_delete_asg_cascades_child_resources.py", "service": "autoscaling"} {"check_id": "autoscaling.get-predictive-scaling-forecast-returns-forecast", "deployments": [], "key": "autoscaling/get-predictive-scaling-forecast-returns-forecast", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_get_predictive_scaling_forecast_returns_forecast.py", "service": "autoscaling"} {"check_id": "autoscaling.get-predictive-scaling-forecast-server-computed", "deployments": [], "key": "autoscaling/get-predictive-scaling-forecast-server-computed", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_get_predictive_scaling_forecast_server_computed.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-attach-detach-lifecycle", "deployments": [], "key": "autoscaling/instance-attach-detach-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DetachInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_attach_detach_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-protection-blocks-scale-in", "deployments": [], "key": "autoscaling/instance-protection-blocks-scale-in", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:SetInstanceProtection", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_protection_blocks_scale_in.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-cancel-transition", "deployments": [], "key": "autoscaling/instance-refresh-cancel-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_cancel_transition.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-checkpoint-delay", "deployments": [], "key": "autoscaling/instance-refresh-checkpoint-delay", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_checkpoint_delay.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-full-lifecycle", "deployments": [], "key": "autoscaling/instance-refresh-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_full_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-health-spread-over-100-rejected", "deployments": [], "key": "autoscaling/instance-refresh-health-spread-over-100-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_health_spread_over_100_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-in-progress-conflict-fails", "deployments": [], "key": "autoscaling/instance-refresh-in-progress-conflict-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:SetInstanceProtection", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_in_progress_conflict_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-max-healthy-without-min-rejected", "deployments": [], "key": "autoscaling/instance-refresh-max-healthy-without-min-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_max_healthy_without_min_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-replaces-every-instance-with-the-new-launch-template-version", "deployments": [], "key": "autoscaling/instance-refresh-replaces-every-instance-with-the-new-launch-template-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_replaces_every_instance_with_the_new_launch_template_version.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-rollback-order", "deployments": [], "key": "autoscaling/instance-refresh-rollback-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:RollbackInstanceRefresh", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_rollback_order.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-serialized-then-cancelled", "deployments": [], "key": "autoscaling/instance-refresh-serialized-then-cancelled", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_serialized_then_cancelled.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-skip-matching-completes-successfully", "deployments": [], "key": "autoscaling/instance-refresh-skip-matching-completes-successfully", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_skip_matching_completes_successfully.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-timeout-progress", "deployments": [], "key": "autoscaling/instance-refresh-timeout-progress", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_timeout_progress.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-refresh-unsorted-checkpoints-rejected", "deployments": [], "key": "autoscaling/instance-refresh-unsorted-checkpoints-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_refresh_unsorted_checkpoints_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.instance-scoped-ops-reject-foreign-instances", "deployments": [], "key": "autoscaling/instance-scoped-ops-reject-foreign-instances", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:SetInstanceProtection", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_instance_scoped_ops_reject_foreign_instances.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-config-create-delete-lifecycle", "deployments": [], "key": "autoscaling/launch-config-create-delete-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLaunchConfigurations", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_config_create_delete_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-configuration-delete-lifecycle", "deployments": [], "key": "autoscaling/launch-configuration-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteLaunchConfiguration", "autoscaling:DescribeAccountLimits", "autoscaling:DescribeLaunchConfigurations", "ec2:DescribeImages", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_configuration_delete_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-configuration-delete-removes-config", "deployments": [], "key": "autoscaling/launch-configuration-delete-removes-config", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLaunchConfigurations", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_configuration_delete_removes_config.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-configuration-user-data-base64-round-trip", "deployments": [], "key": "autoscaling/launch-configuration-user-data-base64-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteLaunchConfiguration", "autoscaling:DescribeAccountLimits", "autoscaling:DescribeLaunchConfigurations", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_configuration_user_data_base64_round_trip.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-instances-creates-and-lists", "deployments": [], "key": "autoscaling/launch-instances-creates-and-lists", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingInstances", "autoscaling:LaunchInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_instances_creates_and_lists.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-instances-idempotency-token-dedup", "deployments": [], "key": "autoscaling/launch-instances-idempotency-token-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingInstances", "autoscaling:LaunchInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_instances_idempotency_token_dedup.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-instances-idempotent-token-returns-same-result", "deployments": [], "key": "autoscaling/launch-instances-idempotent-token-returns-same-result", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:LaunchInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_instances_idempotent_token_returns_same_result.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-instances-mismatched-token-params-fails", "deployments": [], "key": "autoscaling/launch-instances-mismatched-token-params-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:LaunchInstances", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_instances_mismatched_token_params_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-instances-missing-iam-permission-denied", "deployments": [], "key": "autoscaling/launch-instances-missing-iam-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling/check_launch_instances_missing_iam_permission_denied.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-template-user-data-base64-round-trip", "deployments": [], "key": "autoscaling/launch-template-user-data-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplateVersions", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_template_user_data_base64_round_trip.py", "service": "autoscaling"} {"check_id": "autoscaling.launch-template-userdata-base64-round-trip", "deployments": [], "key": "autoscaling/launch-template-userdata-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplateVersions", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_launch_template_userdata_base64_round_trip.py", "service": "autoscaling"} {"check_id": "autoscaling.lifecycle-hook-abandon-terminates-the-instance-instead-of-serving", "deployments": [], "key": "autoscaling/lifecycle-hook-abandon-terminates-the-instance-instead-of-serving", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_lifecycle_hook_abandon_terminates_the_instance_instead_of_serving.py", "service": "autoscaling"} {"check_id": "autoscaling.lifecycle-hook-create-delete-lifecycle", "deployments": [], "key": "autoscaling/lifecycle-hook-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_lifecycle_hook_create_delete_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.lifecycle-hook-full-cycle", "deployments": [], "key": "autoscaling/lifecycle-hook-full-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_lifecycle_hook_full_cycle.py", "service": "autoscaling"} {"check_id": "autoscaling.lifecycle-hook-full-lifecycle", "deployments": [], "key": "autoscaling/lifecycle-hook-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHookTypes", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_lifecycle_hook_full_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.lifecycle-hook-heartbeat-complete-order", "deployments": [], "key": "autoscaling/lifecycle-hook-heartbeat-complete-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_lifecycle_hook_heartbeat_complete_order.py", "service": "autoscaling"} {"check_id": "autoscaling.lifecycle-hook-heartbeat-extends-timeout", "deployments": [], "key": "autoscaling/lifecycle-hook-heartbeat-extends-timeout", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_lifecycle_hook_heartbeat_extends_timeout.py", "service": "autoscaling"} {"check_id": "autoscaling.lifecycle-hook-heartbeat-timeout-extension", "deployments": [], "key": "autoscaling/lifecycle-hook-heartbeat-timeout-extension", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_lifecycle_hook_heartbeat_timeout_extension.py", "service": "autoscaling"} {"check_id": "autoscaling.lifecycle-hook-timeout-applies-default-result", "deployments": [], "key": "autoscaling/lifecycle-hook-timeout-applies-default-result", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_lifecycle_hook_timeout_applies_default_result.py", "service": "autoscaling"} {"check_id": "autoscaling.load-balancer-attach-detach-lifecycle", "deployments": [], "key": "autoscaling/load-balancer-attach-detach-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancers", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeLoadBalancers", "autoscaling:DetachLoadBalancers", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elb:AddTags", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_load_balancer_attach_detach_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-disable-partial-removes-only-specified", "deployments": [], "key": "autoscaling/metrics-collection-disable-partial-removes-only-specified", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_disable_partial_removes_only_specified.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-emits-after-scaling-activity", "deployments": [], "key": "autoscaling/metrics-collection-emits-after-scaling-activity", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeMetricCollectionTypes", "autoscaling:DescribeScalingActivities", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_emits_after_scaling_activity.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-enable-disable", "deployments": [], "key": "autoscaling/metrics-collection-enable-disable", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_enable_disable.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-granularity-persists", "deployments": [], "key": "autoscaling/metrics-collection-granularity-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeMetricCollectionTypes", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_granularity_persists.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-invalid-granularity-rejected", "deployments": [], "key": "autoscaling/metrics-collection-invalid-granularity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_invalid_granularity_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-selected-metrics-only-enabled", "deployments": [], "key": "autoscaling/metrics-collection-selected-metrics-only-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeMetricCollectionTypes", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_selected_metrics_only_enabled.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-selected-metrics-subset-persists", "deployments": [], "key": "autoscaling/metrics-collection-selected-metrics-subset-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_selected_metrics_subset_persists.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-selective-enable-persists", "deployments": [], "key": "autoscaling/metrics-collection-selective-enable-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:EnableMetricsCollection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_selective_enable_persists.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-collection-toggle", "deployments": [], "key": "autoscaling/metrics-collection-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_collection_toggle.py", "service": "autoscaling"} {"check_id": "autoscaling.metrics-emitted-after-scaling-activity", "deployments": [], "key": "autoscaling/metrics-emitted-after-scaling-activity", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_metrics_emitted_after_scaling_activity.py", "service": "autoscaling"} {"check_id": "autoscaling.mixed-instances-duplicate-override-rejected", "deployments": [], "key": "autoscaling/mixed-instances-duplicate-override-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_mixed_instances_duplicate_override_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.mixed-instances-policy-overrides-launch", "deployments": [], "key": "autoscaling/mixed-instances-policy-overrides-launch", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_mixed_instances_policy_overrides_launch.py", "service": "autoscaling"} {"check_id": "autoscaling.notification-config-create-delete-lifecycle", "deployments": [], "key": "autoscaling/notification-config-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteNotificationConfiguration", "autoscaling:DescribeNotificationConfigurations", "autoscaling:PutNotificationConfiguration", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "sns:CreateTopic", "sns:DeleteTopic", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_notification_config_create_delete_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.notification-config-empty-vs-absent-field-preserved", "deployments": [], "key": "autoscaling/notification-config-empty-vs-absent-field-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_notification_config_empty_vs_absent_field_preserved.py", "service": "autoscaling"} {"check_id": "autoscaling.notification-configuration-empty-vs-absent-topic-preserved", "deployments": [], "key": "autoscaling/notification-configuration-empty-vs-absent-topic-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeNotificationConfigurations", "autoscaling:PutNotificationConfiguration", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sns:CreateTopic", "sns:DeleteTopic", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_notification_configuration_empty_vs_absent_topic_preserved.py", "service": "autoscaling"} {"check_id": "autoscaling.notification-configuration-lifecycle", "deployments": [], "key": "autoscaling/notification-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteNotificationConfiguration", "autoscaling:DescribeNotificationConfigurations", "autoscaling:PutNotificationConfiguration", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sns:CreateTopic", "sns:DeleteTopic", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_notification_configuration_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.numeric-precision-cooldown-value-preserved", "deployments": [], "key": "autoscaling/numeric-precision-cooldown-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_numeric_precision_cooldown_value_preserved.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-attachInstances", "deployments": [], "key": "autoscaling/op-contract-attachInstances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_attach_instances.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-attachLoadBalancerTargetGroups", "deployments": [], "key": "autoscaling/op-contract-attachLoadBalancerTargetGroups", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeLoadBalancerTargetGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_attach_load_balancer_target_groups.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-batchDeleteScheduledAction", "deployments": [], "key": "autoscaling/op-contract-batchDeleteScheduledAction", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_batch_delete_scheduled_action.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-cancelInstanceRefresh", "deployments": [], "key": "autoscaling/op-contract-cancelInstanceRefresh", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_cancel_instance_refresh.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-createOrUpdateTags", "deployments": [], "key": "autoscaling/op-contract-createOrUpdateTags", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeTags", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_create_or_update_tags.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-deleteAutoScalingGroup", "deployments": [], "key": "autoscaling/op-contract-deleteAutoScalingGroup", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_delete_auto_scaling_group.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-deletePolicy", "deployments": [], "key": "autoscaling/op-contract-deletePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_delete_policy.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-deleteTags", "deployments": [], "key": "autoscaling/op-contract-deleteTags", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteTags", "autoscaling:DescribeTags", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_delete_tags.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-deleteWarmPool", "deployments": [], "key": "autoscaling/op-contract-deleteWarmPool", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_delete_warm_pool.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-describeInstanceRefreshes", "deployments": [], "key": "autoscaling/op-contract-describeInstanceRefreshes", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_describe_instance_refreshes.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-describePolicies", "deployments": [], "key": "autoscaling/op-contract-describePolicies", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_describe_policies.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-describeTags", "deployments": [], "key": "autoscaling/op-contract-describeTags", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteTags", "autoscaling:DescribeTags", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_describe_tags.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-describeWarmPool", "deployments": [], "key": "autoscaling/op-contract-describeWarmPool", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_describe_warm_pool.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-enterStandby", "deployments": [], "key": "autoscaling/op-contract-enterStandby", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:EnterStandby", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_enter_standby.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-executePolicy", "deployments": [], "key": "autoscaling/op-contract-executePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_execute_policy.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-exit-standby", "deployments": [], "key": "autoscaling/op-contract-exit-standby", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_exit_standby.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-put-scheduled-update-group-action", "deployments": [], "key": "autoscaling/op-contract-put-scheduled-update-group-action", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_put_scheduled_update_group_action.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-put-warm-pool", "deployments": [], "key": "autoscaling/op-contract-put-warm-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_put_warm_pool.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-resume-processes", "deployments": [], "key": "autoscaling/op-contract-resume-processes", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_resume_processes.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-set-instance-health", "deployments": [], "key": "autoscaling/op-contract-set-instance-health", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetInstanceHealth", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_set_instance_health.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-set-instance-protection", "deployments": [], "key": "autoscaling/op-contract-set-instance-protection", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetInstanceProtection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_set_instance_protection.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-suspend-processes", "deployments": [], "key": "autoscaling/op-contract-suspend-processes", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingProcessTypes", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_suspend_processes.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-terminate-instance-in-auto-scaling-group", "deployments": [], "key": "autoscaling/op-contract-terminate-instance-in-auto-scaling-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:TerminateInstanceInAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_terminate_instance_in_auto_scaling_group.py", "service": "autoscaling"} {"check_id": "autoscaling.op-contract-update-auto-scaling-group", "deployments": [], "key": "autoscaling/op-contract-update-auto-scaling-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_op_contract_update_auto_scaling_group.py", "service": "autoscaling"} {"check_id": "autoscaling.percent-change-min-adjustment-magnitude", "deployments": [], "key": "autoscaling/percent-change-min-adjustment-magnitude", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_percent_change_min_adjustment_magnitude.py", "service": "autoscaling"} {"check_id": "autoscaling.predictive-scaling-forecast-empty-before-data-exists", "deployments": [], "key": "autoscaling/predictive-scaling-forecast-empty-before-data-exists", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_predictive_scaling_forecast_empty_before_data_exists.py", "service": "autoscaling"} {"check_id": "autoscaling.predictive-scaling-forecast-load-capacity-consistency", "deployments": [], "key": "autoscaling/predictive-scaling-forecast-load-capacity-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_predictive_scaling_forecast_load_capacity_consistency.py", "service": "autoscaling"} {"check_id": "autoscaling.predictive-scaling-forecast-reflects-updated-policy", "deployments": [], "key": "autoscaling/predictive-scaling-forecast-reflects-updated-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_predictive_scaling_forecast_reflects_updated_policy.py", "service": "autoscaling"} {"check_id": "autoscaling.predictive-scaling-forecast-respects-time-window", "deployments": [], "key": "autoscaling/predictive-scaling-forecast-respects-time-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_predictive_scaling_forecast_respects_time_window.py", "service": "autoscaling"} {"check_id": "autoscaling.predictive-scaling-forecast-timestamp-value-alignment", "deployments": [], "key": "autoscaling/predictive-scaling-forecast-timestamp-value-alignment", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_predictive_scaling_forecast_timestamp_value_alignment.py", "service": "autoscaling"} {"check_id": "autoscaling.predictive-scaling-forecast-values-consistent-across-calls", "deployments": [], "key": "autoscaling/predictive-scaling-forecast-values-consistent-across-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_predictive_scaling_forecast_values_consistent_across_calls.py", "service": "autoscaling"} {"check_id": "autoscaling.predictive-scaling-policy-and-forecast", "deployments": [], "key": "autoscaling/predictive-scaling-policy-and-forecast", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:GetPredictiveScalingForecast", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_predictive_scaling_policy_and_forecast.py", "service": "autoscaling"} {"check_id": "autoscaling.put-lifecycle-hook-limit-exceeded-rejected", "deployments": [], "key": "autoscaling/put-lifecycle-hook-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_put_lifecycle_hook_limit_exceeded_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.put-notification-configuration-invalid-topic-arn-rejected", "deployments": [], "key": "autoscaling/put-notification-configuration-invalid-topic-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteNotificationConfiguration", "autoscaling:DescribeNotificationConfigurations", "autoscaling:PutNotificationConfiguration", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "sns:CreateTopic", "sns:DeleteTopic", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_put_notification_configuration_invalid_topic_arn_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.put-scaling-policy-invalid-adjustment-type-fails", "deployments": [], "key": "autoscaling/put-scaling-policy-invalid-adjustment-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_put_scaling_policy_invalid_adjustment_type_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.put-scaling-policy-missing-required-param-rejected", "deployments": [], "key": "autoscaling/put-scaling-policy-missing-required-param-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_put_scaling_policy_missing_required_param_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.put-scaling-policy-negative-cooldown-rejected", "deployments": [], "key": "autoscaling/put-scaling-policy-negative-cooldown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_put_scaling_policy_negative_cooldown_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.put-scheduled-action-malformed-recurrence-rejected", "deployments": [], "key": "autoscaling/put-scheduled-action-malformed-recurrence-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_put_scheduled_action_malformed_recurrence_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.record-heartbeat-after-completion-rejected", "deployments": [], "key": "autoscaling/record-heartbeat-after-completion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingInstances", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_record_heartbeat_after_completion_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.refresh-ignore-preference-spares-the-scale-in-protected-instance", "deployments": [], "key": "autoscaling/refresh-ignore-preference-spares-the-scale-in-protected-instance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeInstanceRefreshes", "autoscaling:ResumeProcesses", "autoscaling:SetInstanceProtection", "autoscaling:StartInstanceRefresh", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_refresh_ignore_preference_spares_the_scale_in_protected_instance.py", "service": "autoscaling"} {"check_id": "autoscaling.rollback-instance-refresh-irreversible-fails", "deployments": [], "key": "autoscaling/rollback-instance-refresh-irreversible-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:RollbackInstanceRefresh", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_rollback_instance_refresh_irreversible_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.rollback-instance-refresh-no-active-fails", "deployments": [], "key": "autoscaling/rollback-instance-refresh-no-active-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeInstanceRefreshes", "autoscaling:RollbackInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_rollback_instance_refresh_no_active_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.rollback-without-active-refresh-fails", "deployments": [], "key": "autoscaling/rollback-without-active-refresh-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeInstanceRefreshes", "autoscaling:RollbackInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_rollback_without_active_refresh_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.scale-in-protection-spares-the-protected-instance", "deployments": [], "key": "autoscaling/scale-in-protection-spares-the-protected-instance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:SetDesiredCapacity", "autoscaling:SetInstanceProtection", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scale_in_protection_spares_the_protected_instance.py", "service": "autoscaling"} {"check_id": "autoscaling.scaling-activity-sequential-execution", "deployments": [], "key": "autoscaling/scaling-activity-sequential-execution", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scaling_activity_sequential_execution.py", "service": "autoscaling"} {"check_id": "autoscaling.scaling-policy-delete-removes-policy", "deployments": [], "key": "autoscaling/scaling-policy-delete-removes-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scaling_policy_delete_removes_policy.py", "service": "autoscaling"} {"check_id": "autoscaling.scaling-policy-execute-adjusts-capacity", "deployments": [], "key": "autoscaling/scaling-policy-execute-adjusts-capacity", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scaling_policy_execute_adjusts_capacity.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-batch-create-delete", "deployments": [], "key": "autoscaling/scheduled-action-batch-create-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_batch_create_delete.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-batch-lifecycle", "deployments": [], "key": "autoscaling/scheduled-action-batch-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_batch_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-batch-ordering", "deployments": [], "key": "autoscaling/scheduled-action-batch-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_batch_ordering.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-cron-is-interpreted-in-its-declared-time-zone", "deployments": [], "key": "autoscaling/scheduled-action-cron-is-interpreted-in-its-declared-time-zone", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_cron_is_interpreted_in_its_declared_time_zone.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-delete-single", "deployments": [], "key": "autoscaling/scheduled-action-delete-single", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_delete_single.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-end-before-start-rejected", "deployments": [], "key": "autoscaling/scheduled-action-end-before-start-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_end_before_start_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-lifecycle", "deployments": [], "key": "autoscaling/scheduled-action-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:BatchDeleteScheduledAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-time-window", "deployments": [], "key": "autoscaling/scheduled-action-time-window", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_time_window.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-time-window-triggers", "deployments": [], "key": "autoscaling/scheduled-action-time-window-triggers", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_time_window_triggers.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-timestamp-precision-preserved", "deployments": [], "key": "autoscaling/scheduled-action-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_timestamp_precision_preserved.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-timestamp-subsecond-preserved", "deployments": [], "key": "autoscaling/scheduled-action-timestamp-subsecond-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_timestamp_subsecond_preserved.py", "service": "autoscaling"} {"check_id": "autoscaling.scheduled-action-upsert-lifecycle", "deployments": [], "key": "autoscaling/scheduled-action-upsert-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DescribeScheduledActions", "autoscaling:PutScheduledUpdateGroupAction", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_scheduled_action_upsert_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.set-desired-capacity-above-max-size-rejected-and-no-instance-is-launched", "deployments": [], "key": "autoscaling/set-desired-capacity-above-max-size-rejected-and-no-instance-is-launched", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_desired_capacity_above_max_size_rejected_and_no_instance_is_launched.py", "service": "autoscaling"} {"check_id": "autoscaling.set-desired-capacity-below-min-rejected", "deployments": [], "key": "autoscaling/set-desired-capacity-below-min-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_desired_capacity_below_min_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.set-desired-capacity-counts-weighted-units-not-instances", "deployments": [], "key": "autoscaling/set-desired-capacity-counts-weighted-units-not-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeScalingActivities", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_desired_capacity_counts_weighted_units_not_instances.py", "service": "autoscaling"} {"check_id": "autoscaling.set-desired-capacity-exceeds-max-fails", "deployments": [], "key": "autoscaling/set-desired-capacity-exceeds-max-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_desired_capacity_exceeds_max_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.set-desired-capacity-launches-instances", "deployments": [], "key": "autoscaling/set-desired-capacity-launches-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_desired_capacity_launches_instances.py", "service": "autoscaling"} {"check_id": "autoscaling.set-desired-capacity-negative-value-rejected", "deployments": [], "key": "autoscaling/set-desired-capacity-negative-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_desired_capacity_negative_value_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.set-desired-capacity-partial-scale-in-keeps-one-of-three-instances", "deployments": [], "key": "autoscaling/set-desired-capacity-partial-scale-in-keeps-one-of-three-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_desired_capacity_partial_scale_in_keeps_one_of_three_instances.py", "service": "autoscaling"} {"check_id": "autoscaling.set-instance-health-inside-the-grace-period-rejected-and-the-instance-is-not-replaced", "deployments": [], "key": "autoscaling/set-instance-health-inside-the-grace-period-rejected-and-the-instance-is-not-replaced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:SetInstanceHealth", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_instance_health_inside_the_grace_period_rejected_and_the_instance_is_not_replaced.py", "service": "autoscaling"} {"check_id": "autoscaling.set-instance-health-updates-status", "deployments": [], "key": "autoscaling/set-instance-health-updates-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetInstanceHealth", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_instance_health_updates_status.py", "service": "autoscaling"} {"check_id": "autoscaling.set-instance-protection-blocks-termination-on-scale-in", "deployments": [], "key": "autoscaling/set-instance-protection-blocks-termination-on-scale-in", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:SetDesiredCapacity", "autoscaling:SetInstanceProtection", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_instance_protection_blocks_termination_on_scale_in.py", "service": "autoscaling"} {"check_id": "autoscaling.set-instance-protection-foreign-instance-fails", "deployments": [], "key": "autoscaling/set-instance-protection-foreign-instance-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetInstanceProtection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_instance_protection_foreign_instance_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.set-instance-protection-roundtrip", "deployments": [], "key": "autoscaling/set-instance-protection-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetInstanceProtection", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_set_instance_protection_roundtrip.py", "service": "autoscaling"} {"check_id": "autoscaling.standby-instances-excluded-from-health-driven-replacement", "deployments": [], "key": "autoscaling/standby-instances-excluded-from-health-driven-replacement", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:SetInstanceHealth", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_standby_instances_excluded_from_health_driven_replacement.py", "service": "autoscaling"} {"check_id": "autoscaling.start-instance-refresh-during-warm-pool-deletion-blocked", "deployments": [], "key": "autoscaling/start-instance-refresh-during-warm-pool-deletion-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeInstanceRefreshes", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "autoscaling:StartInstanceRefresh", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_start_instance_refresh_during_warm_pool_deletion_blocked.py", "service": "autoscaling"} {"check_id": "autoscaling.step-scaling-policy-without-adjustments-rejected", "deployments": [], "key": "autoscaling/step-scaling-policy-without-adjustments-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_step_scaling_policy_without_adjustments_rejected.py", "service": "autoscaling"} {"check_id": "autoscaling.step-scaling-selects-matching-step-adjustment", "deployments": [], "key": "autoscaling/step-scaling-selects-matching-step-adjustment", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_step_scaling_selects_matching_step_adjustment.py", "service": "autoscaling"} {"check_id": "autoscaling.suspend-resume-processes", "deployments": [], "key": "autoscaling/suspend-resume-processes", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_suspend_resume_processes.py", "service": "autoscaling"} {"check_id": "autoscaling.suspend-resume-processes-blocks-specific-actions", "deployments": [], "key": "autoscaling/suspend-resume-processes-blocks-specific-actions", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_suspend_resume_processes_blocks_specific_actions.py", "service": "autoscaling"} {"check_id": "autoscaling.suspended-launch-process-blocks-launch", "deployments": [], "key": "autoscaling/suspended-launch-process-blocks-launch", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_suspended_launch_process_blocks_launch.py", "service": "autoscaling"} {"check_id": "autoscaling.suspending-replace-unhealthy-withholds-the-replacement-until-it-is-resumed", "deployments": [], "key": "autoscaling/suspending-replace-unhealthy-withholds-the-replacement-until-it-is-resumed", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ResumeProcesses", "autoscaling:SetInstanceHealth", "autoscaling:SuspendProcesses", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_suspending_replace_unhealthy_withholds_the_replacement_until_it_is_resumed.py", "service": "autoscaling"} {"check_id": "autoscaling.suspending-terminate-withholds-the-scale-in-until-it-is-resumed", "deployments": [], "key": "autoscaling/suspending-terminate-withholds-the-scale-in-until-it-is-resumed", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:SuspendProcesses", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_suspending_terminate_withholds_the_scale_in_until_it_is_resumed.py", "service": "autoscaling"} {"check_id": "autoscaling.tag-upsert-filter-and-targeted-delete", "deployments": [], "key": "autoscaling/tag-upsert-filter-and-targeted-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteTags", "autoscaling:DescribeTags", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_tag_upsert_filter_and_targeted_delete.py", "service": "autoscaling"} {"check_id": "autoscaling.tags-concurrent-update-race", "deployments": [], "key": "autoscaling/tags-concurrent-update-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteTags", "autoscaling:DescribeTags", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_tags_concurrent_update_race.py", "service": "autoscaling"} {"check_id": "autoscaling.tags-create-describe-delete", "deployments": [], "key": "autoscaling/tags-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteTags", "autoscaling:DescribeTags", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_tags_create_describe_delete.py", "service": "autoscaling"} {"check_id": "autoscaling.tags-unicode-value-round-trip", "deployments": [], "key": "autoscaling/tags-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeTags", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_tags_unicode_value_round_trip.py", "service": "autoscaling"} {"check_id": "autoscaling.target-group-detach-removes-association", "deployments": [], "key": "autoscaling/target-group-detach-removes-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeLoadBalancerTargetGroups", "autoscaling:DetachLoadBalancerTargetGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_target_group_detach_removes_association.py", "service": "autoscaling"} {"check_id": "autoscaling.target-tracking-policy-creates-alarms", "deployments": [], "key": "autoscaling/target-tracking-policy-creates-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:DescribeScalingActivities", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "cloudwatch:DescribeAlarms", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_target_tracking_policy_creates_alarms.py", "service": "autoscaling"} {"check_id": "autoscaling.target-tracking-target-value-decimal-precision-preserved", "deployments": [], "key": "autoscaling/target-tracking-target-value-decimal-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_target_tracking_target_value_decimal_precision_preserved.py", "service": "autoscaling"} {"check_id": "autoscaling.terminate-instance-decrements-capacity", "deployments": [], "key": "autoscaling/terminate-instance-decrements-capacity", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:TerminateInstanceInAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_terminate_instance_decrements_capacity.py", "service": "autoscaling"} {"check_id": "autoscaling.terminate-without-decrement-replaces-instance", "deployments": [], "key": "autoscaling/terminate-without-decrement-replaces-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:TerminateInstanceInAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_terminate_without_decrement_replaces_instance.py", "service": "autoscaling"} {"check_id": "autoscaling.termination-policy-selects-instance", "deployments": [], "key": "autoscaling/termination-policy-selects-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_termination_policy_selects_instance.py", "service": "autoscaling"} {"check_id": "autoscaling.traffic-source-attach-detach", "deployments": [], "key": "autoscaling/traffic-source-attach-detach", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachTrafficSources", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeTrafficSources", "autoscaling:DetachTrafficSources", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_traffic_source_attach_detach.py", "service": "autoscaling"} {"check_id": "autoscaling.traffic-source-attach-detach-lifecycle", "deployments": [], "key": "autoscaling/traffic-source-attach-detach-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachTrafficSources", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeTrafficSources", "autoscaling:DetachTrafficSources", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_traffic_source_attach_detach_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.unhealthy-instance-replaced", "deployments": [], "key": "autoscaling/unhealthy-instance-replaced", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetInstanceHealth", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_unhealthy_instance_replaced.py", "service": "autoscaling"} {"check_id": "autoscaling.update-asg-capacity-bounds", "deployments": [], "key": "autoscaling/update-asg-capacity-bounds", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_update_asg_capacity_bounds.py", "service": "autoscaling"} {"check_id": "autoscaling.update-asg-min-above-max-fails", "deployments": [], "key": "autoscaling/update-asg-min-above-max-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_update_asg_min_above_max_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.update-nonexistent-group-fails", "deployments": [], "key": "autoscaling/update-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_update_nonexistent_group_fails.py", "service": "autoscaling"} {"check_id": "autoscaling.warm-pool-instance-reuse-returns-the-scaled-in-instance-to-the-pool", "deployments": [], "key": "autoscaling/warm-pool-instance-reuse-returns-the-scaled-in-instance-to-the-pool", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_warm_pool_instance_reuse_returns_the_scaled_in_instance_to_the_pool.py", "service": "autoscaling"} {"check_id": "autoscaling.warm-pool-lifecycle", "deployments": [], "key": "autoscaling/warm-pool-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_warm_pool_lifecycle.py", "service": "autoscaling"} {"check_id": "autoscaling.zonal-balance-takes-precedence-over-the-termination-policy", "deployments": [], "key": "autoscaling/zonal-balance-takes-precedence-over-the-termination-policy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:SuspendProcesses", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling/check_zonal_balance_takes_precedence_over_the_termination_policy.py", "service": "autoscaling"} {"check_id": "autoscaling__cloudformation.deploy-asg-lifecyclehook-scheduledaction-warmpool-provisioned-and-deleted", "deployments": [], "key": "autoscaling__cloudformation/deploy-asg-lifecyclehook-scheduledaction-warmpool-provisioned-and-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:DescribeWarmPool", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/autoscaling__cloudformation/check_deploy_asg_lifecyclehook_scheduledaction_warmpool_provisioned_and_deleted.py", "service": "autoscaling__cloudformation"} {"check_id": "autoscaling__cloudformation.deploy-asg-warmpool-poolstate-invalid-enum-rejected", "deployments": [], "key": "autoscaling__cloudformation/deploy-asg-warmpool-poolstate-invalid-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeWarmPool", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/autoscaling__cloudformation/check_deploy_asg_warmpool_poolstate_invalid_enum_rejected.py", "service": "autoscaling__cloudformation"} {"check_id": "autoscaling__cloudformation__cloudwatch__ec2.deploy-autoscaling-3-cdk-l2-asg-target-tracking-deploys-runs-and-drifts", "deployments": [], "key": "autoscaling__cloudformation__cloudwatch__ec2/deploy-autoscaling-3-cdk-l2-asg-target-tracking-deploys-runs-and-drifts", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:UpdateAutoScalingGroup", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudwatch:DescribeAlarms", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__cloudformation__cloudwatch__ec2/check_deploy_autoscaling_3_cdk_l2_asg_target_tracking_deploys_runs_and_drifts.py", "service": "autoscaling__cloudformation__cloudwatch__ec2"} {"check_id": "autoscaling__cloudformation__cloudwatch__ec2.target-tracking-alb-request-count-without-resource-label-rejected", "deployments": [], "key": "autoscaling__cloudformation__cloudwatch__ec2/target-tracking-alb-request-count-without-resource-label-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "cloudwatch:DescribeAlarms", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings"], "path": "behavioral/autoscaling__cloudformation__cloudwatch__ec2/check_target_tracking_alb_request_count_without_resource_label_rejected.py", "service": "autoscaling__cloudformation__cloudwatch__ec2"} {"check_id": "autoscaling__cloudformation__ec2.cfn-asg-availability-zones-derived-from-subnets", "deployments": ["behavioral/autoscaling__cloudformation__ec2/deployments/asg-zero-desired.yaml"], "key": "autoscaling__cloudformation__ec2/cfn-asg-availability-zones-derived-from-subnets", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeSubnets"], "path": "behavioral/autoscaling__cloudformation__ec2/check_cfn_asg_availability_zones_derived_from_subnets.py", "service": "autoscaling__cloudformation__ec2"} {"check_id": "autoscaling__cloudformation__ec2.cfn-autoscaling-group-in-place-max-size-retained-replacement-enforces-bounds-then-not-found", "deployments": [], "key": "autoscaling__cloudformation__ec2/cfn-autoscaling-group-in-place-max-size-retained-replacement-enforces-bounds-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeLaunchTemplates"], "path": "behavioral/autoscaling__cloudformation__ec2/check_cfn_autoscaling_group_in_place_max_size_retained_replacement_enforces_bounds_then_not_found.py", "service": "autoscaling__cloudformation__ec2"} {"check_id": "autoscaling__cloudformation__ec2.cfn-rolling-update-honours-max-batch-size-then-rolls-back-on-a-failed-signal", "deployments": ["behavioral/autoscaling__cloudformation__ec2/deployments/asg-rolling-update-signals.yaml"], "key": "autoscaling__cloudformation__ec2/cfn-rolling-update-honours-max-batch-size-then-rolls-back-on-a-failed-signal", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplateVersions"], "path": "behavioral/autoscaling__cloudformation__ec2/check_cfn_rolling_update_honours_max_batch_size_then_rolls_back_on_a_failed_signal.py", "service": "autoscaling__cloudformation__ec2"} {"check_id": "autoscaling__cloudformation__ec2.deploy-autoscaling-1-replacing-update-swaps-group-failed-signal-replacement-rejected", "deployments": [], "key": "autoscaling__cloudformation__ec2/deploy-autoscaling-1-replacing-update-swaps-group-failed-signal-replacement-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances"], "path": "behavioral/autoscaling__cloudformation__ec2/check_deploy_autoscaling_1_replacing_update_swaps_group_failed_signal_replacement_rejected.py", "service": "autoscaling__cloudformation__ec2"} {"check_id": "autoscaling__cloudtrail.obs-autoscaling-3-rejected-asg-calls-are-audited-with-their-sdk-error-and-request-parameters", "deployments": [], "key": "autoscaling__cloudtrail/obs-autoscaling-3-rejected-asg-calls-are-audited-with-their-sdk-error-and-request-parameters", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "cloudtrail:LookupEvents", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ssm:GetParameter"], "path": "behavioral/autoscaling__cloudtrail/check_obs_autoscaling_3_rejected_asg_calls_are_audited_with_their_sdk_error_and_request_parameters.py", "service": "autoscaling__cloudtrail"} {"check_id": "autoscaling__cloudwatch__ec2.alarm-action-executes-asg-scaling-policy", "deployments": [], "key": "autoscaling__cloudwatch__ec2/alarm-action-executes-asg-scaling-policy", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:PutScalingPolicy", "autoscaling:SuspendProcesses", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_alarm_action_executes_asg_scaling_policy.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.alarm-state-change-drives-the-scaling-policy-to-launch-an-instance", "deployments": [], "key": "autoscaling__cloudwatch__ec2/alarm-state-change-drives-the-scaling-policy-to-launch-an-instance", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:DescribeScalingActivities", "autoscaling:PutScalingPolicy", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_alarm_state_change_drives_the_scaling_policy_to_launch_an_instance.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.group-metrics-reach-cloudwatch-only-for-the-enabled-subset", "deployments": [], "key": "autoscaling__cloudwatch__ec2/group-metrics-reach-cloudwatch-only-for-the-enabled-subset", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_group_metrics_reach_cloudwatch_only_for_the_enabled_subset.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.instance-refresh-refuses-to-start-while-its-cloudwatch-alarm-is-in-alarm", "deployments": [], "key": "autoscaling__cloudwatch__ec2/instance-refresh-refuses-to-start-while-its-cloudwatch-alarm-is-in-alarm", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CancelInstanceRefresh", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:ResumeProcesses", "autoscaling:StartInstanceRefresh", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_instance_refresh_refuses_to_start_while_its_cloudwatch_alarm_is_in_alarm.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.obs-autoscaling-2-standby-group-metrics-values-and-per-metric-disable", "deployments": [], "key": "autoscaling__cloudwatch__ec2/obs-autoscaling-2-standby-group-metrics-values-and-per-metric-disable", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "autoscaling:EnterStandby", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ssm:GetParameter"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_obs_autoscaling_2_standby_group_metrics_values_and_per_metric_disable.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.suspended-alarm-notification-process-blocks-scaling-policy", "deployments": [], "key": "autoscaling__cloudwatch__ec2/suspended-alarm-notification-process-blocks-scaling-policy", "labels": ["axis:negative-delivery", "plane:control", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:PutScalingPolicy", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeSubnets"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_suspended_alarm_notification_process_blocks_scaling_policy.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.suspending-alarm-notification-blocks-the-policy-driven-scale-out", "deployments": [], "key": "autoscaling__cloudwatch__ec2/suspending-alarm-notification-blocks-the-policy-driven-scale-out", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:PutScalingPolicy", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_suspending_alarm_notification_blocks_the_policy_driven_scale_out.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.target-tracking-both-metric-specifications-rejected-and-no-alarm-minted", "deployments": [], "key": "autoscaling__cloudwatch__ec2/target-tracking-both-metric-specifications-rejected-and-no-alarm-minted", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "cloudwatch:DescribeAlarms", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_target_tracking_both_metric_specifications_rejected_and_no_alarm_minted.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.target-tracking-customized-metric-without-statistic-rejected-and-no-alarm-minted", "deployments": [], "key": "autoscaling__cloudwatch__ec2/target-tracking-customized-metric-without-statistic-rejected-and-no-alarm-minted", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "cloudwatch:DescribeAlarms", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_target_tracking_customized_metric_without_statistic_rejected_and_no_alarm_minted.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.target-tracking-disable-scale-in-omits-the-scale-in-alarm", "deployments": [], "key": "autoscaling__cloudwatch__ec2/target-tracking-disable-scale-in-omits-the-scale-in-alarm", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "autoscaling:ResumeProcesses", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:DescribeAlarms", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ssm:GetParameter"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_target_tracking_disable_scale_in_omits_the_scale_in_alarm.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.target-tracking-high-resolution-custom-metric-scales-out-by-the-ratio", "deployments": [], "key": "autoscaling__cloudwatch__ec2/target-tracking-high-resolution-custom-metric-scales-out-by-the-ratio", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:DescribeScalingActivities", "autoscaling:PutScalingPolicy", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricData", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_target_tracking_high_resolution_custom_metric_scales_out_by_the_ratio.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.target-tracking-zero-target-value-rejected-and-no-alarm-minted", "deployments": [], "key": "autoscaling__cloudwatch__ec2/target-tracking-zero-target-value-rejected-and-no-alarm-minted", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:PutScalingPolicy", "cloudwatch:DescribeAlarms", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_target_tracking_zero_target_value_rejected_and_no_alarm_minted.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__cloudwatch__ec2.weighted-capacity-group-metrics-diverge-from-instance-counts", "deployments": [], "key": "autoscaling__cloudwatch__ec2/weighted-capacity-group-metrics-diverge-from-instance-counts", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection", "autoscaling:UpdateAutoScalingGroup", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ssm:GetParameter"], "path": "behavioral/autoscaling__cloudwatch__ec2/check_weighted_capacity_group_metrics_diverge_from_instance_counts.py", "service": "autoscaling__cloudwatch__ec2"} {"check_id": "autoscaling__ec2.xsvc-autoscaling-2-ec2-terminated-member-is-replaced-at-unchanged-desired-unless-replace-unhealthy-is-suspended", "deployments": [], "key": "autoscaling__ec2/xsvc-autoscaling-2-ec2-terminated-member-is-replaced-at-unchanged-desired-unless-replace-unhealthy-is-suspended", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2/check_xsvc_autoscaling_2_ec2_terminated_member_is_replaced_at_unchanged_desired_unless_replace_unhealthy_is_suspended.py", "service": "autoscaling__ec2"} {"check_id": "autoscaling__ec2__ecs.ecs-capacity-provider-scales-asg-and-places-task", "deployments": [], "key": "autoscaling__ec2__ecs/ecs-capacity-provider-scales-asg-and-places-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetInstanceProfile", "iam:GetRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__ecs/check_ecs_capacity_provider_scales_asg_and_places_task.py", "service": "autoscaling__ec2__ecs"} {"check_id": "autoscaling__ec2__elbv2.alb-health-check-marks-ec2-instance-unhealthy", "deployments": [], "key": "autoscaling__ec2__elbv2/alb-health-check-marks-ec2-instance-unhealthy", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_alb_health_check_marks_ec2_instance_unhealthy.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.alb-listener-routes-traffic-to-registered-ec2-instance", "deployments": [], "key": "autoscaling__ec2__elbv2/alb-listener-routes-traffic-to-registered-ec2-instance", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_alb_listener_routes_traffic_to_registered_ec2_instance.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.alb-target-group-deregisters-ec2-instance-on-terminate", "deployments": [], "key": "autoscaling__ec2__elbv2/alb-target-group-deregisters-ec2-instance-on-terminate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_alb_target_group_deregisters_ec2_instance_on_terminate.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.alb-target-group-registers-ec2-instance-healthy", "deployments": [], "key": "autoscaling__ec2__elbv2/alb-target-group-registers-ec2-instance-healthy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_alb_target_group_registers_ec2_instance_healthy.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-attaches-multiple-target-groups", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-attaches-multiple-target-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_attaches_multiple_target_groups.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-cooldown-prevents-premature-ec2-termination", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-cooldown-prevents-premature-ec2-termination", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:ExecutePolicy", "autoscaling:PutScalingPolicy", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_cooldown_prevents_premature_ec2_termination.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-deregisters-terminated-instance-from-target-group", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-deregisters-terminated-instance-from-target-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_deregisters_terminated_instance_from_target_group.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-elb-health-check-triggers-instance-replacement", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-elb-health-check-triggers-instance-replacement", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_elb_health_check_triggers_instance_replacement.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-eventbridge-rule-invokes-target-on-scale-event", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-eventbridge-rule-invokes-target-on-scale-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_eventbridge_rule_invokes_target_on_scale_event.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-instance-launch-eventbridge-notification-delivered", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-instance-launch-eventbridge-notification-delivered", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_instance_launch_eventbridge_notification_delivered.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-instance-refresh-replaces-ec2-instances", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-instance-refresh-replaces-ec2-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:StartInstanceRefresh", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_instance_refresh_replaces_ec2_instances.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-launch-without-runinstances-permission-rejected", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-launch-without-runinstances-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_launch_without_runinstances_permission_rejected.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-launches-ec2-instance-with-correct-launch-template", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-launches-ec2-instance-with-correct-launch-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_launches_ec2_instance_with_correct_launch_template.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-launches-ec2-instances-per-desired-capacity", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-launches-ec2-instances-per-desired-capacity", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_launches_ec2_instances_per_desired_capacity.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-lifecycle-hook-event-not-delivered-without-notification-permission", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-lifecycle-hook-event-not-delivered-without-notification-permission", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:PutLifecycleHook", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:TagQueue", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_lifecycle_hook_event_not_delivered_without_notification_permission.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-lifecycle-hook-event-triggers-on-instance-launch", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-lifecycle-hook-event-triggers-on-instance-launch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_lifecycle_hook_event_triggers_on_instance_launch.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-lifecycle-hook-event-triggers-on-instance-terminate", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-lifecycle-hook-event-triggers-on-instance-terminate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:PutLifecycleHook", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_lifecycle_hook_event_triggers_on_instance_terminate.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-registers-new-ec2-instance-with-target-group", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-registers-new-ec2-instance-with-target-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_registers_new_ec2_instance_with_target_group.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-registration-fails-with-mismatched-target-group-vpc", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-registration-fails-with-mismatched-target-group-vpc", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_registration_fails_with_mismatched_target_group_vpc.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-scale-in-respects-termination-policy", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-scale-in-respects-termination-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_scale_in_respects_termination_policy.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-scale-up-blocked-after-target-group-deleted", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-scale-up-blocked-after-target-group-deleted", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:DetachLoadBalancerTargetGroups", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_scale_up_blocked_after_target_group_deleted.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-target-group-attachment-denied-without-permission", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-target-group-attachment-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLoadBalancerTargetGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "iam:CreateRole", "iam:DeleteRole", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_target_group_attachment_denied_without_permission.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-target-group-registration-serves-http-and-feeds-back-health", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-target-group-registration-serves-http-and-feeds-back-health", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_target_group_registration_serves_http_and_feeds_back_health.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-terminate-instance-outside-group-rejected", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-terminate-instance-outside-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:TerminateInstanceInAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_terminate_instance_outside_group_rejected.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-terminates-ec2-instance-on-scale-in", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-terminates-ec2-instance-on-scale-in", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_terminates_ec2_instance_on_scale_in.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.asg-waits-for-elb-healthy-before-marking-instance-inservice", "deployments": [], "key": "autoscaling__ec2__elbv2/asg-waits-for-elb-healthy-before-marking-instance-inservice", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_asg_waits_for_elb_healthy_before_marking_instance_inservice.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.cli-asg-attach-load-balancer-target-groups-command", "deployments": [], "key": "autoscaling__ec2__elbv2/cli-asg-attach-load-balancer-target-groups-command", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth"], "path": "behavioral/autoscaling__ec2__elbv2/check_cli_asg_attach_load_balancer_target_groups_command.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.cli-attach-instances-to-target-group-via-cli", "deployments": [], "key": "autoscaling__ec2__elbv2/cli-attach-instances-to-target-group-via-cli", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes"], "path": "behavioral/autoscaling__ec2__elbv2/check_cli_attach_instances_to_target_group_via_cli.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.cli-create-asg-with-target-group-and-verify-ec2-registration", "deployments": [], "key": "autoscaling__ec2__elbv2/cli-create-asg-with-target-group-and-verify-ec2-registration", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth"], "path": "behavioral/autoscaling__ec2__elbv2/check_cli_create_asg_with_target_group_and_verify_ec2_registration.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.cli-describe-target-health-reflects-asg-instances", "deployments": [], "key": "autoscaling__ec2__elbv2/cli-describe-target-health-reflects-asg-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth"], "path": "behavioral/autoscaling__ec2__elbv2/check_cli_describe_target_health_reflects_asg_instances.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.cli-detach-instance-from-asg-decrements-target-group", "deployments": [], "key": "autoscaling__ec2__elbv2/cli-detach-instance-from-asg-decrements-target-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:TerminateInstances", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes"], "path": "behavioral/autoscaling__ec2__elbv2/check_cli_detach_instance_from_asg_decrements_target_group.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.cli-scale-in-via-cli-denied-without-autoscaling-permission", "deployments": [], "key": "autoscaling__ec2__elbv2/cli-scale-in-via-cli-denied-without-autoscaling-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__elbv2/check_cli_scale_in_via_cli_denied_without_autoscaling_permission.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.cli-target-group-attach-fails-with-invalid-arn", "deployments": [], "key": "autoscaling__ec2__elbv2/cli-target-group-attach-fails-with-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup"], "path": "behavioral/autoscaling__ec2__elbv2/check_cli_target_group_attach_fails_with_invalid_arn.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.cli-update-asg-desired-capacity-scales-ec2-instances", "deployments": [], "key": "autoscaling__ec2__elbv2/cli-update-asg-desired-capacity-scales-ec2-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/autoscaling__ec2__elbv2/check_cli_update_asg_desired_capacity_scales_ec2_instances.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.deep-autoscaling-3-asg-suspend-add-to-load-balancer-withholds-registration", "deployments": [], "key": "autoscaling__ec2__elbv2/deep-autoscaling-3-asg-suspend-add-to-load-balancer-withholds-registration", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLoadBalancerTargetGroups", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:SuspendProcesses", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "sns:DeleteTopic", "sns:Unsubscribe", "sqs:DeleteQueue", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_deep_autoscaling_3_asg_suspend_add_to_load_balancer_withholds_registration.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.deploy-cfn-asg-launch-template-ec2-instances", "deployments": [], "key": "autoscaling__ec2__elbv2/deploy-cfn-asg-launch-template-ec2-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_deploy_cfn_asg_launch_template_ec2_instances.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.deploy-cfn-asg-scaling-policy-with-target-group", "deployments": [], "key": "autoscaling__ec2__elbv2/deploy-cfn-asg-scaling-policy-with-target-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:ExecutePolicy", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_deploy_cfn_asg_scaling_policy_with_target_group.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.deploy-cfn-asg-without-elb-permission-instances-not-registered", "deployments": [], "key": "autoscaling__ec2__elbv2/deploy-cfn-asg-without-elb-permission-instances-not-registered", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:DescribeAutoScalingGroups", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:DescribeTargetHealth", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__elbv2/check_deploy_cfn_asg_without_elb_permission_instances_not_registered.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.deploy-cfn-stack-asg-elb-ec2-integration", "deployments": [], "key": "autoscaling__ec2__elbv2/deploy-cfn-stack-asg-elb-ec2-integration", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_deploy_cfn_stack_asg_elb_ec2_integration.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.deploy-cfn-stack-missing-target-group-permission-fails-registration", "deployments": [], "key": "autoscaling__ec2__elbv2/deploy-cfn-stack-missing-target-group-permission-fails-registration", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:DescribeTargetHealth", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__elbv2/check_deploy_cfn_stack_missing_target_group_permission_fails_registration.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.elb-target-health-change-event-not-delivered-without-eventbridge-rule", "deployments": [], "key": "autoscaling__ec2__elbv2/elb-target-health-change-event-not-delivered-without-eventbridge-rule", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elbv2:AddTags", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/autoscaling__ec2__elbv2/check_elb_target_health_change_event_not_delivered_without_eventbridge_rule.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.nlb-target-group-registers-ec2-instance", "deployments": [], "key": "autoscaling__ec2__elbv2/nlb-target-group-registers-ec2-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_nlb_target_group_registers_ec2_instance.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.target-group-deregistration-drains-connections-before-removal", "deployments": [], "key": "autoscaling__ec2__elbv2/target-group-deregistration-drains-connections-before-removal", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_target_group_deregistration_drains_connections_before_removal.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.target-group-register-fails-instance-wrong-vpc", "deployments": [], "key": "autoscaling__ec2__elbv2/target-group-register-fails-instance-wrong-vpc", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__elbv2/check_target_group_register_fails_instance_wrong_vpc.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__elbv2.target-group-registration-denied-without-elasticloadbalancing-permission", "deployments": [], "key": "autoscaling__ec2__elbv2/target-group-registration-denied-without-elasticloadbalancing-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__elbv2/check_target_group_registration_denied_without_elasticloadbalancing_permission.py", "service": "autoscaling__ec2__elbv2"} {"check_id": "autoscaling__ec2__events__kms__sqs.xsvc-autoscaling-2-disabled-cmk-launch-is-cancelled-and-evented-until-the-key-is-enabled", "deployments": [], "key": "autoscaling__ec2__events__kms__sqs/xsvc-autoscaling-2-disabled-cmk-launch-is-cancelled-and-evented-until-the-key-is-enabled", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVolumes", "ec2:TerminateInstances", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__events__kms__sqs/check_xsvc_autoscaling_2_disabled_cmk_launch_is_cancelled_and_evented_until_the_key_is_enabled.py", "service": "autoscaling__ec2__events__kms__sqs"} {"check_id": "autoscaling__ec2__events__sqs.events-ec2-lifecycle-asg-desired-above-max-rejected-then-launch-event-names-group", "deployments": [], "key": "autoscaling__ec2__events__sqs/events-ec2-lifecycle-asg-desired-above-max-rejected-then-launch-event-names-group", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__events__sqs/check_events_ec2_lifecycle_asg_desired_above_max_rejected_then_launch_event_names_group.py", "service": "autoscaling__ec2__events__sqs"} {"check_id": "autoscaling__ec2__events__sqs.xsvc-autoscaling-1-filtered-by-group-name", "deployments": [], "key": "autoscaling__ec2__events__sqs/xsvc-autoscaling-1-filtered-by-group-name", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__events__sqs/check_xsvc_autoscaling_1_filtered_by_group_name.py", "service": "autoscaling__ec2__events__sqs"} {"check_id": "autoscaling__ec2__events__sqs.xsvc-autoscaling-1-scale-in-terminate-event", "deployments": [], "key": "autoscaling__ec2__events__sqs/xsvc-autoscaling-1-scale-in-terminate-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ec2__events__sqs/check_xsvc_autoscaling_1_scale_in_terminate_event.py", "service": "autoscaling__ec2__events__sqs"} {"check_id": "autoscaling__ec2__s3.asg-instance-role-scoped-to-one-prefix-is-denied-the-other-write", "deployments": [], "key": "autoscaling__ec2__s3/asg-instance-role-scoped-to-one-prefix-is-denied-the-other-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__s3/check_asg_instance_role_scoped_to_one_prefix_is_denied_the_other_write.py", "service": "autoscaling__ec2__s3"} {"check_id": "autoscaling__ec2__s3.asg-launched-instance-boots-and-writes-its-own-identity", "deployments": [], "key": "autoscaling__ec2__s3/asg-launched-instance-boots-and-writes-its-own-identity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__s3/check_asg_launched_instance_boots_and_writes_its_own_identity.py", "service": "autoscaling__ec2__s3"} {"check_id": "autoscaling__ec2__sns__sqs.deep-autoscaling-3-asg-notify-launch-and-terminate-name-the-exact-instance", "deployments": [], "key": "autoscaling__ec2__sns__sqs/deep-autoscaling-3-asg-notify-launch-and-terminate-name-the-exact-instance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeNotificationConfigurations", "autoscaling:DescribeScalingActivities", "autoscaling:PutNotificationConfiguration", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "elbv2:DeleteTargetGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__sns__sqs/check_deep_autoscaling_3_asg_notify_launch_and_terminate_name_the_exact_instance.py", "service": "autoscaling__ec2__sns__sqs"} {"check_id": "autoscaling__ec2__sns__sqs.deep-autoscaling-3-asg-notify-test-notification-reaches-only-the-configured-topic", "deployments": [], "key": "autoscaling__ec2__sns__sqs/deep-autoscaling-3-asg-notify-test-notification-reaches-only-the-configured-topic", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteNotificationConfiguration", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeNotificationConfigurations", "autoscaling:PutNotificationConfiguration", "autoscaling:ResumeProcesses", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "elbv2:DeleteTargetGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ec2__sns__sqs/check_deep_autoscaling_3_asg_notify_test_notification_reaches_only_the_configured_topic.py", "service": "autoscaling__ec2__sns__sqs"} {"check_id": "autoscaling__ecs__elbv2.alb-listener-forwards-request-to-ecs-task-ip", "deployments": [], "key": "autoscaling__ecs__elbv2/alb-listener-forwards-request-to-ecs-task-ip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/autoscaling__ecs__elbv2/check_alb_listener_forwards_request_to_ecs_task_ip.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.alb-target-group-health-check-marks-ecs-task-healthy", "deployments": [], "key": "autoscaling__ecs__elbv2/alb-target-group-health-check-marks-ecs-task-healthy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/autoscaling__ecs__elbv2/check_alb_target_group_health_check_marks_ecs_task_healthy.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.asg-instance-health-status-derived-from-elb-health-check", "deployments": [], "key": "autoscaling__ecs__elbv2/asg-instance-health-status-derived-from-elb-health-check", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_asg_instance_health_status_derived_from_elb_health_check.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.asg-scale-out-adds-new-targets-to-target-group", "deployments": [], "key": "autoscaling__ecs__elbv2/asg-scale-out-adds-new-targets-to-target-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_asg_scale_out_adds_new_targets_to_target_group.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.asg-target-group-mismatched-vpc-fails-registration", "deployments": [], "key": "autoscaling__ecs__elbv2/asg-target-group-mismatched-vpc-fails-registration", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScalingActivities", "autoscaling:DetachLoadBalancerTargetGroups", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeNetworkInterfaces", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_asg_target_group_mismatched_vpc_fails_registration.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.autoscaling-attach-load-balancer-target-groups-updates-elbv2-registration", "deployments": [], "key": "autoscaling__ecs__elbv2/autoscaling-attach-load-balancer-target-groups-updates-elbv2-registration", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_autoscaling_attach_load_balancer_target_groups_updates_elbv2_registration.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.autoscaling-event-rule-mismatched-pattern-no-delivery", "deployments": [], "key": "autoscaling__ecs__elbv2/autoscaling-event-rule-mismatched-pattern-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_autoscaling_event_rule_mismatched_pattern_no_delivery.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.autoscaling-group-registers-instances-with-target-group", "deployments": [], "key": "autoscaling__ecs__elbv2/autoscaling-group-registers-instances-with-target-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_autoscaling_group_registers_instances_with_target_group.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.autoscaling-group-without-elasticloadbalancing-permission-fails-attach", "deployments": [], "key": "autoscaling__ecs__elbv2/autoscaling-group-without-elasticloadbalancing-permission-fails-attach", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeTags", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ecs__elbv2/check_autoscaling_group_without_elasticloadbalancing_permission_fails_attach.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.autoscaling-instance-launch-event-triggers-target-group-check", "deployments": [], "key": "autoscaling__ecs__elbv2/autoscaling-instance-launch-event-triggers-target-group-check", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_autoscaling_instance_launch_event_triggers_target_group_check.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.autoscaling-lifecycle-hook-event-delivered-to-eventbridge", "deployments": [], "key": "autoscaling__ecs__elbv2/autoscaling-lifecycle-hook-event-delivered-to-eventbridge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLifecycleHook", "autoscaling:PutLifecycleHook", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_autoscaling_lifecycle_hook_event_delivered_to_eventbridge.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.cli-attach-target-group-wrong-region-fails", "deployments": [], "key": "autoscaling__ecs__elbv2/cli-attach-target-group-wrong-region-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLoadBalancerTargetGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ecs__elbv2/check_cli_attach_target_group_wrong_region_fails.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.cli-create-alb-target-group-ecs-service-e2e", "deployments": [], "key": "autoscaling__ecs__elbv2/cli-create-alb-target-group-ecs-service-e2e", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/autoscaling__ecs__elbv2/check_cli_create_alb_target_group_ecs_service_e2e.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.cli-create-asg-attach-target-group-verify-instances", "deployments": [], "key": "autoscaling__ecs__elbv2/cli-create-asg-attach-target-group-verify-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLoadBalancerTargetGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_cli_create_asg_attach_target_group_verify_instances.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.cli-describe-target-health-matches-ecs-task-count", "deployments": [], "key": "autoscaling__ecs__elbv2/cli-describe-target-health-matches-ecs-task-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/autoscaling__ecs__elbv2/check_cli_describe_target_health_matches_ecs_task_count.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.cli-ecs-service-nonexistent-target-group-arn-fails-creation", "deployments": [], "key": "autoscaling__ecs__elbv2/cli-ecs-service-nonexistent-target-group-arn-fails-creation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServices", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ecs__elbv2/check_cli_ecs_service_nonexistent_target_group_arn_fails_creation.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.cli-ecs-service-update-desired-count-reflects-target-group-targets", "deployments": [], "key": "autoscaling__ecs__elbv2/cli-ecs-service-update-desired-count-reflects-target-group-targets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/autoscaling__ecs__elbv2/check_cli_ecs_service_update_desired_count_reflects_target_group_targets.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.deploy-asg-missing-trust-policy-fails-instance-registration", "deployments": [], "key": "autoscaling__ecs__elbv2/deploy-asg-missing-trust-policy-fails-instance-registration", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:DescribeTargetHealth"], "path": "behavioral/autoscaling__ecs__elbv2/check_deploy_asg_missing_trust_policy_fails_instance_registration.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.deploy-asg-with-elb-target-group-attachment-cfn", "deployments": [], "key": "autoscaling__ecs__elbv2/deploy-asg-with-elb-target-group-attachment-cfn", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:DescribeTargetHealth"], "path": "behavioral/autoscaling__ecs__elbv2/check_deploy_asg_with_elb_target_group_attachment_cfn.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.deploy-ecs-capacity-provider-autoscaling-cfn", "deployments": [], "key": "autoscaling__ecs__elbv2/deploy-ecs-capacity-provider-autoscaling-cfn", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListContainerInstances"], "path": "behavioral/autoscaling__ecs__elbv2/check_deploy_ecs_capacity_provider_autoscaling_cfn.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.deploy-ecs-service-missing-target-group-permission-fails-stack", "deployments": [], "key": "autoscaling__ecs__elbv2/deploy-ecs-service-missing-target-group-permission-fails-stack", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListContainerInstances", "elbv2:DescribeTargetHealth"], "path": "behavioral/autoscaling__ecs__elbv2/check_deploy_ecs_service_missing_target_group_permission_fails_stack.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.deploy-ecs-service-with-alb-target-group-cfn", "deployments": [], "key": "autoscaling__ecs__elbv2/deploy-ecs-service-with-alb-target-group-cfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "elbv2:DescribeTargetHealth"], "path": "behavioral/autoscaling__ecs__elbv2/check_deploy_ecs_service_with_alb_target_group_cfn.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.deploy-ecs-task-role-trust-policy-cfn", "deployments": [], "key": "autoscaling__ecs__elbv2/deploy-ecs-task-role-trust-policy-cfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "logs:FilterLogEvents"], "path": "behavioral/autoscaling__ecs__elbv2/check_deploy_ecs_task_role_trust_policy_cfn.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-capacity-provider-associates-autoscaling-group", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-capacity-provider-associates-autoscaling-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeregisterContainerInstance", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:PutClusterCapacityProviders", "ecs:StopTask", "ecs:UpdateService", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_capacity_provider_associates_autoscaling_group.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-capacity-provider-scales-asg-desired-count", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-capacity-provider-scales-asg-desired-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_capacity_provider_scales_asg_desired_count.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-capacity-provider-without-autoscaling-permission-fails-association", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-capacity-provider-without-autoscaling-permission-fails-association", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_capacity_provider_without_autoscaling_permission_fails_association.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-run-task-fails-without-ecs-tasks-trust-policy", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-run-task-fails-without-ecs-tasks-trust-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_run_task_fails_without_ecs_tasks_trust_policy.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-service-action-event-triggers-target-lambda", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-service-action-event-triggers-target-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_service_action_event_triggers_target_lambda.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-service-create-without-elb-permission-fails-target-group-attachment", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-service-create-without-elb-permission-fails-target-group-attachment", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_service_create_without_elb_permission_fails_target_group_attachment.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-service-deregisters-tasks-on-scale-down", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-service-deregisters-tasks-on-scale-down", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_service_deregisters_tasks_on_scale_down.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-service-registers-tasks-with-target-group-arn", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-service-registers-tasks-with-target-group-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_service_registers_tasks_with_target_group_arn.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-task-execution-role-trusts-ecs-tasks-service", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-task-execution-role-trusts-ecs-tasks-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_task_execution_role_trusts_ecs_tasks_service.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.ecs-task-state-change-event-delivered-to-eventbridge-rule", "deployments": [], "key": "autoscaling__ecs__elbv2/ecs-task-state-change-event-delivered-to-eventbridge-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/autoscaling__ecs__elbv2/check_ecs_task_state_change_event_delivered_to_eventbridge_rule.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.eventbridge-rule-without-target-permission-no-invocation", "deployments": [], "key": "autoscaling__ecs__elbv2/eventbridge-rule-without-target-permission-no-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/autoscaling__ecs__elbv2/check_eventbridge_rule_without_target_permission_no_invocation.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__ecs__elbv2.target-group-port-mismatch-container-port-no-healthy-targets", "deployments": [], "key": "autoscaling__ecs__elbv2/target-group-port-mismatch-container-port-no-healthy-targets", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/autoscaling__ecs__elbv2/check_target_group_port_mismatch_container_port_no_healthy_targets.py", "service": "autoscaling__ecs__elbv2"} {"check_id": "autoscaling__events__lambda.xsvc-autoscaling-3-launch-hook-lambda-error-times-out-to-abandon", "deployments": [], "key": "autoscaling__events__lambda/xsvc-autoscaling-3-launch-hook-lambda-error-times-out-to-abandon", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CompleteLifecycleAction", "autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLifecycleHooks", "autoscaling:SetDesiredCapacity", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:TerminateInstances", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:FilterLogEvents", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/autoscaling__events__lambda/check_xsvc_autoscaling_3_launch_hook_lambda_error_times_out_to_abandon.py", "service": "autoscaling__events__lambda"} {"check_id": "b2bi.access-denied-missing-iam-permission-rejected", "deployments": [], "key": "b2bi/access-denied-missing-iam-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:ListProfiles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_access_denied_missing_iam_permission_rejected.py", "service": "b2bi"} {"check_id": "b2bi.capability-crud-with-transformer-reference", "deployments": [], "key": "b2bi/capability-crud-with-transformer-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeleteTransformer", "b2bi:GetCapability", "b2bi:UpdateCapability", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_capability_crud_with_transformer_reference.py", "service": "b2bi"} {"check_id": "b2bi.capability-instructions-documents-s3-roundtrip", "deployments": [], "key": "b2bi/capability-instructions-documents-s3-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeleteTransformer", "b2bi:GetCapability", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/b2bi/check_capability_instructions_documents_s3_roundtrip.py", "service": "b2bi"} {"check_id": "b2bi.create-capability-nonexistent-transformer-not-found", "deployments": [], "key": "b2bi/create-capability-nonexistent-transformer-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeleteTransformer", "b2bi:ListCapabilities", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/b2bi/check_create_capability_nonexistent_transformer_not_found.py", "service": "b2bi"} {"check_id": "b2bi.create-partnership-invalid-email-format-error", "deployments": [], "key": "b2bi/create-partnership-invalid-email-format-error", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreatePartnership", "b2bi:CreateProfile", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeletePartnership", "b2bi:DeleteProfile", "b2bi:DeleteTransformer", "b2bi:ListPartnerships", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/b2bi/check_create_partnership_invalid_email_format_error.py", "service": "b2bi"} {"check_id": "b2bi.create-partnership-missing-capability-not-found", "deployments": [], "key": "b2bi/create-partnership-missing-capability-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreatePartnership", "b2bi:CreateProfile", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeletePartnership", "b2bi:DeleteProfile", "b2bi:DeleteTransformer", "b2bi:ListPartnerships", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/b2bi/check_create_partnership_missing_capability_not_found.py", "service": "b2bi"} {"check_id": "b2bi.create-partnership-nonexistent-profile-rejected", "deployments": [], "key": "b2bi/create-partnership-nonexistent-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreatePartnership", "b2bi:CreateProfile", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeletePartnership", "b2bi:DeleteProfile", "b2bi:DeleteTransformer", "b2bi:GetPartnership", "b2bi:ListPartnerships", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_create_partnership_nonexistent_profile_rejected.py", "service": "b2bi"} {"check_id": "b2bi.create-profile-with-tags-visible-without-tag-resource-call", "deployments": [], "key": "b2bi/create-profile-with-tags-visible-without-tag-resource-call", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:ListTagsForResource"], "path": "behavioral/b2bi/check_create_profile_with_tags_visible_without_tag_resource_call.py", "service": "b2bi"} {"check_id": "b2bi.create-starter-mapping-template-with-output-sample", "deployments": [], "key": "b2bi/create-starter-mapping-template-with-output-sample", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:CreateStarterMappingTemplate", "b2bi:TestMapping", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/b2bi/check_create_starter_mapping_template_with_output_sample.py", "service": "b2bi"} {"check_id": "b2bi.create-starter-mapping-template-x12-850", "deployments": [], "key": "b2bi/create-starter-mapping-template-x12-850", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:CreateStarterMappingTemplate"], "path": "behavioral/b2bi/check_create_starter_mapping_template_x12_850.py", "service": "b2bi"} {"check_id": "b2bi.create-transformer-idempotent-token-concurrent-dedup", "deployments": [], "key": "b2bi/create-transformer-idempotent-token-concurrent-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:ListTransformers"], "path": "behavioral/b2bi/check_create_transformer_idempotent_token_concurrent_dedup.py", "service": "b2bi"} {"check_id": "b2bi.create-transformer-mixed-legacy-and-new-fields-error", "deployments": [], "key": "b2bi/create-transformer-mixed-legacy-and-new-fields-error", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:GetTransformer", "b2bi:ListTransformers"], "path": "behavioral/b2bi/check_create_transformer_mixed_legacy_and_new_fields_error.py", "service": "b2bi"} {"check_id": "b2bi.delete-dependency-order-enforced-rejected", "deployments": [], "key": "b2bi/delete-dependency-order-enforced-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreatePartnership", "b2bi:CreateProfile", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeletePartnership", "b2bi:DeleteProfile", "b2bi:DeleteTransformer", "b2bi:GetCapability", "b2bi:GetPartnership", "b2bi:GetProfile", "b2bi:GetTransformer", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_delete_dependency_order_enforced_rejected.py", "service": "b2bi"} {"check_id": "b2bi.generate-mapping-bedrock-produces-template", "deployments": [], "key": "b2bi/generate-mapping-bedrock-produces-template", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:GenerateMapping", "b2bi:TestMapping"], "path": "behavioral/b2bi/check_generate_mapping_bedrock_produces_template.py", "service": "b2bi"} {"check_id": "b2bi.get-profile-not-found", "deployments": [], "key": "b2bi/get-profile-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:GetProfile", "b2bi:UpdateProfile"], "path": "behavioral/b2bi/check_get_profile_not_found.py", "service": "b2bi"} {"check_id": "b2bi.get-transformer-job-cross-transformer-isolation-rejected", "deployments": [], "key": "b2bi/get-transformer-job-cross-transformer-isolation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:GetTransformerJob", "b2bi:StartTransformerJob", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/b2bi/check_get_transformer_job_cross_transformer_isolation_rejected.py", "service": "b2bi"} {"check_id": "b2bi.list-capabilities-max-results-out-of-range-error", "deployments": [], "key": "b2bi/list-capabilities-max-results-out-of-range-error", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:ListCapabilities"], "path": "behavioral/b2bi/check_list_capabilities_max_results_out_of_range_error.py", "service": "b2bi"} {"check_id": "b2bi.list-capabilities-reflects-created-capability", "deployments": [], "key": "b2bi/list-capabilities-reflects-created-capability", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeleteTransformer", "b2bi:ListCapabilities", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_list_capabilities_reflects_created_capability.py", "service": "b2bi"} {"check_id": "b2bi.list-partnerships-filtered-by-profile-id", "deployments": [], "key": "b2bi/list-partnerships-filtered-by-profile-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreatePartnership", "b2bi:CreateProfile", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeletePartnership", "b2bi:DeleteProfile", "b2bi:DeleteTransformer", "b2bi:ListPartnerships", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_list_partnerships_filtered_by_profile_id.py", "service": "b2bi"} {"check_id": "b2bi.list-tags-for-resource-malformed-arn-error", "deployments": [], "key": "b2bi/list-tags-for-resource-malformed-arn-error", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:ListTagsForResource"], "path": "behavioral/b2bi/check_list_tags_for_resource_malformed_arn_error.py", "service": "b2bi"} {"check_id": "b2bi.list-transformers-pagination-maxresults", "deployments": [], "key": "b2bi/list-transformers-pagination-maxresults", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:ListTransformers", "b2bi:UpdateTransformer"], "path": "behavioral/b2bi/check_list_transformers_pagination_maxresults.py", "service": "b2bi"} {"check_id": "b2bi.partnership-lifecycle-with-capability", "deployments": [], "key": "b2bi/partnership-lifecycle-with-capability", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreatePartnership", "b2bi:CreateProfile", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeletePartnership", "b2bi:DeleteProfile", "b2bi:DeleteTransformer", "b2bi:GetPartnership", "b2bi:ListPartnerships", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_partnership_lifecycle_with_capability.py", "service": "b2bi"} {"check_id": "b2bi.profile-lifecycle-logging-enabled-provisions-log-group", "deployments": [], "key": "b2bi/profile-lifecycle-logging-enabled-provisions-log-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:GetProfile", "b2bi:ListProfiles", "logs:DescribeLogGroups"], "path": "behavioral/b2bi/check_profile_lifecycle_logging_enabled_provisions_log_group.py", "service": "b2bi"} {"check_id": "b2bi.profile-logging-disabled-no-log-group", "deployments": [], "key": "b2bi/profile-logging-disabled-no-log-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:GetProfile", "logs:DescribeLogGroups"], "path": "behavioral/b2bi/check_profile_logging_disabled_no_log_group.py", "service": "b2bi"} {"check_id": "b2bi.profile-quota-enforced-under-concurrent-creation-rejected", "deployments": [], "key": "b2bi/profile-quota-enforced-under-concurrent-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:ListProfiles", "service-quotas:ListServiceQuotas"], "path": "behavioral/b2bi/check_profile_quota_enforced_under_concurrent_creation_rejected.py", "service": "b2bi"} {"check_id": "b2bi.start-transformer-job-e2e-state-transition", "deployments": [], "key": "b2bi/start-transformer-job-e2e-state-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:GetTransformerJob", "b2bi:StartTransformerJob", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_start_transformer_job_e2e_state_transition.py", "service": "b2bi"} {"check_id": "b2bi.start-transformer-job-inactive-transformer-rejected", "deployments": [], "key": "b2bi/start-transformer-job-inactive-transformer-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:GetTransformer", "b2bi:GetTransformerJob", "b2bi:StartTransformerJob", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/b2bi/check_start_transformer_job_inactive_transformer_rejected.py", "service": "b2bi"} {"check_id": "b2bi.start-transformer-job-independent-concurrent-runs", "deployments": [], "key": "b2bi/start-transformer-job-independent-concurrent-runs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:GetTransformerJob", "b2bi:StartTransformerJob", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/b2bi/check_start_transformer_job_independent_concurrent_runs.py", "service": "b2bi"} {"check_id": "b2bi.tag-resource-lifecycle", "deployments": [], "key": "b2bi/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:ListTagsForResource", "b2bi:TagResource", "b2bi:UntagResource"], "path": "behavioral/b2bi/check_tag_resource_lifecycle.py", "service": "b2bi"} {"check_id": "b2bi.tag-resource-nonexistent-arn-not-found", "deployments": [], "key": "b2bi/tag-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateProfile", "b2bi:DeleteProfile", "b2bi:ListTagsForResource", "b2bi:TagResource"], "path": "behavioral/b2bi/check_tag_resource_nonexistent_arn_not_found.py", "service": "b2bi"} {"check_id": "b2bi.test-conversion-json-to-x12-roundtrip", "deployments": [], "key": "b2bi/test-conversion-json-to-x12-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:TestConversion", "b2bi:TestParsing", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/b2bi/check_test_conversion_json_to_x12_roundtrip.py", "service": "b2bi"} {"check_id": "b2bi.test-conversion-unparsable-source-content-error", "deployments": [], "key": "b2bi/test-conversion-unparsable-source-content-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["b2bi:TestConversion", "b2bi:TestParsing", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/b2bi/check_test_conversion_unparsable_source_content_error.py", "service": "b2bi"} {"check_id": "b2bi.test-mapping-invalid-jsonata-template-rejected", "deployments": [], "key": "b2bi/test-mapping-invalid-jsonata-template-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["b2bi:TestMapping"], "path": "behavioral/b2bi/check_test_mapping_invalid_jsonata_template_rejected.py", "service": "b2bi"} {"check_id": "b2bi.test-mapping-jsonata-identity-roundtrip", "deployments": [], "key": "b2bi/test-mapping-jsonata-identity-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:TestMapping"], "path": "behavioral/b2bi/check_test_mapping_jsonata_identity_roundtrip.py", "service": "b2bi"} {"check_id": "b2bi.test-mapping-jsonata-transform-roundtrip", "deployments": [], "key": "b2bi/test-mapping-jsonata-transform-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:TestMapping"], "path": "behavioral/b2bi/check_test_mapping_jsonata_transform_roundtrip.py", "service": "b2bi"} {"check_id": "b2bi.test-parsing-malformed-edi-document-error", "deployments": [], "key": "b2bi/test-parsing-malformed-edi-document-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["b2bi:TestParsing", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/b2bi/check_test_parsing_malformed_edi_document_error.py", "service": "b2bi"} {"check_id": "b2bi.test-parsing-x12-850-purchase-order", "deployments": [], "key": "b2bi/test-parsing-x12-850-purchase-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:TestParsing", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_test_parsing_x12_850_purchase_order.py", "service": "b2bi"} {"check_id": "b2bi.test-parsing-x12-split-by-transaction", "deployments": [], "key": "b2bi/test-parsing-x12-split-by-transaction", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["b2bi:TestParsing", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/b2bi/check_test_parsing_x12_split_by_transaction.py", "service": "b2bi"} {"check_id": "b2bi.update-partnership-capabilities-list-replace", "deployments": [], "key": "b2bi/update-partnership-capabilities-list-replace", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreatePartnership", "b2bi:CreateProfile", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeletePartnership", "b2bi:DeleteProfile", "b2bi:DeleteTransformer", "b2bi:GetPartnership", "b2bi:UpdatePartnership", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/b2bi/check_update_partnership_capabilities_list_replace.py", "service": "b2bi"} {"check_id": "b2bi.update-partnership-nonexistent-capability-not-found", "deployments": [], "key": "b2bi/update-partnership-nonexistent-capability-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateCapability", "b2bi:CreatePartnership", "b2bi:CreateProfile", "b2bi:CreateTransformer", "b2bi:DeleteCapability", "b2bi:DeletePartnership", "b2bi:DeleteProfile", "b2bi:DeleteTransformer", "b2bi:GetPartnership", "b2bi:UpdatePartnership", "b2bi:UpdateTransformer", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/b2bi/check_update_partnership_nonexistent_capability_not_found.py", "service": "b2bi"} {"check_id": "b2bi.update-transformer-immutable-fields-once-active-rejected", "deployments": [], "key": "b2bi/update-transformer-immutable-fields-once-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:GetTransformer", "b2bi:UpdateTransformer"], "path": "behavioral/b2bi/check_update_transformer_immutable_fields_once_active_rejected.py", "service": "b2bi"} {"check_id": "b2bi.update-transformer-status-toggle-active-inactive", "deployments": [], "key": "b2bi/update-transformer-status-toggle-active-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:CreateTransformer", "b2bi:DeleteTransformer", "b2bi:GetTransformer", "b2bi:UpdateTransformer"], "path": "behavioral/b2bi/check_update_transformer_status_toggle_active_inactive.py", "service": "b2bi"} {"check_id": "b2bi__cloudformation.deploy-b2bi-capability-nonexistent-transformer-rejected-and-rolled-back", "deployments": [], "key": "b2bi__cloudformation/deploy-b2bi-capability-nonexistent-transformer-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["b2bi:GetCapability", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/b2bi__cloudformation/check_deploy_b2bi_capability_nonexistent_transformer_rejected_and_rolled_back.py", "service": "b2bi__cloudformation"} {"check_id": "b2bi__cloudformation.deploy-b2bi-profile-transformer-capability-partnership-round-trip-and-delete", "deployments": [], "key": "b2bi__cloudformation/deploy-b2bi-profile-transformer-capability-partnership-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["b2bi:GetCapability", "b2bi:GetPartnership", "b2bi:GetProfile", "b2bi:GetTransformer", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteObjects"], "path": "behavioral/b2bi__cloudformation/check_deploy_b2bi_profile_transformer_capability_partnership_round_trip_and_delete.py", "service": "b2bi__cloudformation"} {"check_id": "backup-gateway.concurrent-import-hypervisor-duplicate-name-host-all-independent", "deployments": [], "key": "backup-gateway/concurrent-import-hypervisor-duplicate-name-host-all-independent", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisor", "backup-gateway:ImportHypervisorConfiguration"], "path": "behavioral/backup-gateway/check_concurrent_import_hypervisor_duplicate_name_host_all_independent.py", "service": "backup-gateway"} {"check_id": "backup-gateway.create-gateway-rejects-unissued-activation-key", "deployments": [], "key": "backup-gateway/create-gateway-rejects-unissued-activation-key", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:CreateGateway", "backup-gateway:ListGateways"], "path": "behavioral/backup-gateway/check_create_gateway_rejects_unissued_activation_key.py", "service": "backup-gateway"} {"check_id": "backup-gateway.get-hypervisor-arn-validation-and-not-found", "deployments": [], "key": "backup-gateway/get-hypervisor-arn-validation-and-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:UpdateHypervisor", "sts:GetCallerIdentity"], "path": "behavioral/backup-gateway/check_get_hypervisor_arn_validation_and_not_found.py", "service": "backup-gateway"} {"check_id": "backup-gateway.hypervisor-name-validation-rejected", "deployments": [], "key": "backup-gateway/hypervisor-name-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListHypervisors", "backup-gateway:UpdateHypervisor"], "path": "behavioral/backup-gateway/check_hypervisor_name_validation_rejected.py", "service": "backup-gateway"} {"check_id": "backup-gateway.import-hypervisor-lifecycle-and-state", "deployments": [], "key": "backup-gateway/import-hypervisor-lifecycle-and-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListHypervisors", "backup-gateway:UpdateHypervisor"], "path": "behavioral/backup-gateway/check_import_hypervisor_lifecycle_and_state.py", "service": "backup-gateway"} {"check_id": "backup-gateway.import-hypervisor-password-pattern-rejected", "deployments": [], "key": "backup-gateway/import-hypervisor-password-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListHypervisors"], "path": "behavioral/backup-gateway/check_import_hypervisor_password_pattern_rejected.py", "service": "backup-gateway"} {"check_id": "backup-gateway.import-hypervisor-tags-visible-at-creation", "deployments": [], "key": "backup-gateway/import-hypervisor-tags-visible-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListTagsForResource"], "path": "behavioral/backup-gateway/check_import_hypervisor_tags_visible_at_creation.py", "service": "backup-gateway"} {"check_id": "backup-gateway.import-hypervisor-with-kms-key-round-trip", "deployments": [], "key": "backup-gateway/import-hypervisor-with-kms-key-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisor", "backup-gateway:ImportHypervisorConfiguration", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/backup-gateway/check_import_hypervisor_with_kms_key_round_trip.py", "service": "backup-gateway"} {"check_id": "backup-gateway.list-gateways-returns-list-shape", "deployments": [], "key": "backup-gateway/list-gateways-returns-list-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:ListGateways"], "path": "behavioral/backup-gateway/check_list_gateways_returns_list_shape.py", "service": "backup-gateway"} {"check_id": "backup-gateway.list-hypervisors-pagination", "deployments": [], "key": "backup-gateway/list-hypervisors-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListHypervisors"], "path": "behavioral/backup-gateway/check_list_hypervisors_pagination.py", "service": "backup-gateway"} {"check_id": "backup-gateway.list-tags-for-resource-multiple-resources-isolated", "deployments": [], "key": "backup-gateway/list-tags-for-resource-multiple-resources-isolated", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListTagsForResource", "backup-gateway:TagResource"], "path": "behavioral/backup-gateway/check_list_tags_for_resource_multiple_resources_isolated.py", "service": "backup-gateway"} {"check_id": "backup-gateway.list-virtual-machines-empty-for-hypervisor-without-sync", "deployments": [], "key": "backup-gateway/list-virtual-machines-empty-for-hypervisor-without-sync", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListVirtualMachines"], "path": "behavioral/backup-gateway/check_list_virtual_machines_empty_for_hypervisor_without_sync.py", "service": "backup-gateway"} {"check_id": "backup-gateway.put-hypervisor-property-mappings-fails-deterministically-without-gateway", "deployments": [], "key": "backup-gateway/put-hypervisor-property-mappings-fails-deterministically-without-gateway", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisorPropertyMappings", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:PutHypervisorPropertyMappings", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/backup-gateway/check_put_hypervisor_property_mappings_fails_deterministically_without_gateway.py", "service": "backup-gateway"} {"check_id": "backup-gateway.put-hypervisor-property-mappings-requires-trust-policy", "deployments": [], "key": "backup-gateway/put-hypervisor-property-mappings-requires-trust-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisorPropertyMappings", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:PutHypervisorPropertyMappings", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/backup-gateway/check_put_hypervisor_property_mappings_requires_trust_policy.py", "service": "backup-gateway"} {"check_id": "backup-gateway.start-metadata-sync-state-transition", "deployments": [], "key": "backup-gateway/start-metadata-sync-state-transition", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:StartVirtualMachinesMetadataSync", "sts:GetCallerIdentity"], "path": "behavioral/backup-gateway/check_start_metadata_sync_state_transition.py", "service": "backup-gateway"} {"check_id": "backup-gateway.tag-resource-lifecycle-round-trip", "deployments": [], "key": "backup-gateway/tag-resource-lifecycle-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListTagsForResource", "backup-gateway:TagResource", "backup-gateway:UntagResource"], "path": "behavioral/backup-gateway/check_tag_resource_lifecycle_round_trip.py", "service": "backup-gateway"} {"check_id": "backup-gateway.tags-removed-with-hypervisor-deletion", "deployments": [], "key": "backup-gateway/tags-removed-with-hypervisor-deletion", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListTagsForResource", "backup-gateway:TagResource"], "path": "behavioral/backup-gateway/check_tags_removed_with_hypervisor_deletion.py", "service": "backup-gateway"} {"check_id": "backup-gateway.untag-nonexistent-key-noop", "deployments": [], "key": "backup-gateway/untag-nonexistent-key-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:ListTagsForResource", "backup-gateway:TagResource", "backup-gateway:UntagResource"], "path": "behavioral/backup-gateway/check_untag_nonexistent_key_noop.py", "service": "backup-gateway"} {"check_id": "backup-gateway.update-hypervisor-persists-new-host", "deployments": [], "key": "backup-gateway/update-hypervisor-persists-new-host", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:DeleteHypervisor", "backup-gateway:GetHypervisor", "backup-gateway:ImportHypervisorConfiguration", "backup-gateway:UpdateHypervisor"], "path": "behavioral/backup-gateway/check_update_hypervisor_persists_new_host.py", "service": "backup-gateway"} {"check_id": "backup-gateway__cloudformation.deploy-backupgateway-hypervisor-invalid-name-rejected", "deployments": [], "key": "backup-gateway__cloudformation/deploy-backupgateway-hypervisor-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup-gateway:GetHypervisor", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/backup-gateway__cloudformation/check_deploy_backupgateway_hypervisor_invalid_name_rejected.py", "service": "backup-gateway__cloudformation"} {"check_id": "backup-gateway__cloudformation.deploy-backupgateway-hypervisor-round-trip-and-delete", "deployments": [], "key": "backup-gateway__cloudformation/deploy-backupgateway-hypervisor-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup-gateway:GetHypervisor", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/backup-gateway__cloudformation/check_deploy_backupgateway_hypervisor_round_trip_and_delete.py", "service": "backup-gateway__cloudformation"} {"check_id": "backup.associate-mpa-team-missing-parameter-rejected", "deployments": [], "key": "backup/associate-mpa-team-missing-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:AssociateBackupVaultMpaApprovalTeam", "backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupVault", "backup:ListTags", "backup:TagResource"], "path": "behavioral/backup/check_associate_mpa_team_missing_parameter_rejected.py", "service": "backup"} {"check_id": "backup.backup-vault-access-policy-json-round-trip", "deployments": [], "key": "backup/backup-vault-access-policy-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupVault", "backup:GetBackupVaultAccessPolicy", "backup:PutBackupVaultAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/backup/check_backup_vault_access_policy_json_round_trip.py", "service": "backup"} {"check_id": "backup.backup-vault-access-policy-lifecycle", "deployments": [], "key": "backup/backup-vault-access-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteBackupVaultAccessPolicy", "backup:GetBackupVaultAccessPolicy", "backup:PutBackupVaultAccessPolicy"], "path": "behavioral/backup/check_backup_vault_access_policy_lifecycle.py", "service": "backup"} {"check_id": "backup.backup-vault-access-policy-malformed-rejected", "deployments": [], "key": "backup/backup-vault-access-policy-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:GetBackupVaultAccessPolicy", "backup:PutBackupVaultAccessPolicy"], "path": "behavioral/backup/check_backup_vault_access_policy_malformed_rejected.py", "service": "backup"} {"check_id": "backup.backup-vault-lock-compliance-mode-server-enforced", "deployments": [], "key": "backup/backup-vault-lock-compliance-mode-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteBackupVaultLockConfiguration", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:DescribeRecoveryPoint", "backup:PutBackupVaultLockConfiguration", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/backup/check_backup_vault_lock_compliance_mode_server_enforced.py", "service": "backup"} {"check_id": "backup.backup-vault-notifications-lifecycle", "deployments": [], "key": "backup/backup-vault-notifications-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteBackupVaultNotifications", "backup:GetBackupVaultNotifications", "backup:PutBackupVaultNotifications", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes"], "path": "behavioral/backup/check_backup_vault_notifications_lifecycle.py", "service": "backup"} {"check_id": "backup.cancel-legal-hold-already-canceled-rejected", "deployments": [], "key": "backup/cancel-legal-hold-already-canceled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CancelLegalHold", "backup:CreateBackupVault", "backup:CreateLegalHold", "backup:DeleteBackupVault", "backup:GetLegalHold"], "path": "behavioral/backup/check_cancel_legal_hold_already_canceled_rejected.py", "service": "backup"} {"check_id": "backup.cancel-legal-hold-while-creating-rejected", "deployments": [], "key": "backup/cancel-legal-hold-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CancelLegalHold", "backup:CreateBackupVault", "backup:CreateLegalHold", "backup:DeleteBackupVault", "backup:GetLegalHold"], "path": "behavioral/backup/check_cancel_legal_hold_while_creating_rejected.py", "service": "backup"} {"check_id": "backup.concurrent-create-tiering-configuration-duplicate", "deployments": [], "key": "backup/concurrent-create-tiering-configuration-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateTieringConfiguration", "backup:DeleteTieringConfiguration", "backup:GetTieringConfiguration"], "path": "behavioral/backup/check_concurrent_create_tiering_configuration_duplicate.py", "service": "backup"} {"check_id": "backup.concurrent-update-restore-testing-plan-conflict", "deployments": [], "key": "backup/concurrent-update-restore-testing-plan-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateRestoreTestingPlan", "backup:DeleteRestoreTestingPlan", "backup:GetRestoreTestingPlan", "backup:UpdateRestoreTestingPlan"], "path": "behavioral/backup/check_concurrent_update_restore_testing_plan_conflict.py", "service": "backup"} {"check_id": "backup.create-legal-hold-missing-required-field-rejected", "deployments": [], "key": "backup/create-legal-hold-missing-required-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CancelLegalHold", "backup:CreateBackupVault", "backup:CreateLegalHold", "backup:DeleteBackupVault", "backup:GetLegalHold", "backup:ListLegalHolds"], "path": "behavioral/backup/check_create_legal_hold_missing_required_field_rejected.py", "service": "backup"} {"check_id": "backup.create-restore-testing-plan-duplicate-name-rejected", "deployments": [], "key": "backup/create-restore-testing-plan-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateRestoreTestingPlan", "backup:DeleteRestoreTestingPlan", "backup:GetRestoreTestingPlan"], "path": "behavioral/backup/check_create_restore_testing_plan_duplicate_name_rejected.py", "service": "backup"} {"check_id": "backup.delete-framework-in-use-conflict-rejected", "deployments": [], "key": "backup/delete-framework-in-use-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateFramework", "backup:DeleteFramework", "backup:DescribeFramework"], "path": "behavioral/backup/check_delete_framework_in_use_conflict_rejected.py", "service": "backup"} {"check_id": "backup.delete-framework-with-active-report-plan-blocked", "deployments": [], "key": "backup/delete-framework-with-active-report-plan-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateFramework", "backup:CreateReportPlan", "backup:DeleteFramework", "backup:DeleteReportPlan", "backup:DescribeFramework", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/backup/check_delete_framework_with_active_report_plan_blocked.py", "service": "backup"} {"check_id": "backup.delete-recovery-point-wrong-state-rejected", "deployments": [], "key": "backup/delete-recovery-point-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:StartBackupJob", "efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems", "efs:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/backup/check_delete_recovery_point_wrong_state_rejected.py", "service": "backup"} {"check_id": "backup.delete-vault-lock-config-during-active-lock-rejected", "deployments": [], "key": "backup/delete-vault-lock-config-during-active-lock-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:CreateLogicallyAirGappedBackupVault", "backup:DeleteBackupVault", "backup:DeleteBackupVaultLockConfiguration", "backup:DescribeBackupVault", "backup:PutBackupVaultLockConfiguration"], "path": "behavioral/backup/check_delete_vault_lock_config_during_active_lock_rejected.py", "service": "backup"} {"check_id": "backup.delete-vault-lock-in-compliance-mode-blocked", "deployments": [], "key": "backup/delete-vault-lock-in-compliance-mode-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteBackupVaultLockConfiguration", "backup:DescribeBackupVault", "backup:PutBackupVaultLockConfiguration"], "path": "behavioral/backup/check_delete_vault_lock_in_compliance_mode_blocked.py", "service": "backup"} {"check_id": "backup.deploy-backup-vault-cfn-behaves", "deployments": [], "key": "backup/deploy-backup-vault-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:DescribeBackupVault", "backup:GetBackupVaultAccessPolicy", "backup:ListBackupVaults", "backup:PutBackupVaultAccessPolicy", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sts:GetCallerIdentity"], "path": "behavioral/backup/check_deploy_backup_vault_cfn_behaves.py", "service": "backup"} {"check_id": "backup.deploy-backup-vault-cfn-lock-enforced", "deployments": [], "key": "backup/deploy-backup-vault-cfn-lock-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteBackupVaultLockConfiguration", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:DescribeRecoveryPoint", "backup:StartBackupJob", "backup:StopBackupJob", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/backup/check_deploy_backup_vault_cfn_lock_enforced.py", "service": "backup"} {"check_id": "backup.describe-report-job-missing-parameter-rejected", "deployments": [], "key": "backup/describe-report-job-missing-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateReportPlan", "backup:DeleteReportPlan", "backup:DescribeReportJob", "backup:StartReportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/backup/check_describe_report_job_missing_parameter_rejected.py", "service": "backup"} {"check_id": "backup.e2e-legal-hold-blocks-deletion-then-release", "deployments": [], "key": "backup/e2e-legal-hold-blocks-deletion-then-release", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CancelLegalHold", "backup:CreateBackupVault", "backup:CreateLegalHold", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:GetLegalHold", "backup:ListRecoveryPointsByLegalHold", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/backup/check_e2e_legal_hold_blocks_deletion_then_release.py", "service": "backup"} {"check_id": "backup.e2e-plan-selection-backup-job-to-recovery-point", "deployments": [], "key": "backup/e2e-plan-selection-backup-job-to-recovery-point", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupPlan", "backup:CreateBackupSelection", "backup:CreateBackupVault", "backup:DeleteBackupPlan", "backup:DeleteBackupSelection", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:GetBackupPlan", "backup:GetBackupSelection", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/backup/check_e2e_plan_selection_backup_job_to_recovery_point.py", "service": "backup"} {"check_id": "backup.e2e-restore-job-validation-flow", "deployments": [], "key": "backup/e2e-restore-job-validation-flow", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:DescribeRestoreJob", "backup:GetRestoreJobMetadata", "backup:PutRestoreValidationResult", "backup:StartBackupJob", "backup:StartRestoreJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/backup/check_e2e_restore_job_validation_flow.py", "service": "backup"} {"check_id": "backup.framework-lifecycle", "deployments": [], "key": "backup/framework-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateFramework", "backup:DeleteFramework", "backup:DescribeFramework", "backup:ListFrameworks", "backup:UpdateFramework"], "path": "behavioral/backup/check_framework_lifecycle.py", "service": "backup"} {"check_id": "backup.legal-hold-create-cancel-lifecycle", "deployments": [], "key": "backup/legal-hold-create-cancel-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CancelLegalHold", "backup:CreateLegalHold", "backup:GetLegalHold", "backup:ListLegalHolds"], "path": "behavioral/backup/check_legal_hold_create_cancel_lifecycle.py", "service": "backup"} {"check_id": "backup.legal-hold-lifecycle", "deployments": [], "key": "backup/legal-hold-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CancelLegalHold", "backup:CreateLegalHold", "backup:GetLegalHold", "backup:ListLegalHolds"], "path": "behavioral/backup/check_legal_hold_lifecycle.py", "service": "backup"} {"check_id": "backup.legal-hold-reason-unicode-round-trip", "deployments": [], "key": "backup/legal-hold-reason-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CancelLegalHold", "backup:CreateBackupVault", "backup:CreateLegalHold", "backup:DeleteBackupVault", "backup:GetLegalHold"], "path": "behavioral/backup/check_legal_hold_reason_unicode_round_trip.py", "service": "backup"} {"check_id": "backup.legal-hold-unicode-metadata-preserved", "deployments": [], "key": "backup/legal-hold-unicode-metadata-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CancelLegalHold", "backup:CreateBackupVault", "backup:CreateLegalHold", "backup:DeleteBackupVault", "backup:GetLegalHold"], "path": "behavioral/backup/check_legal_hold_unicode_metadata_preserved.py", "service": "backup"} {"check_id": "backup.list-tags-vault-and-plan-round-trip-and-deleted-vault-rejected", "deployments": [], "key": "backup/list-tags-vault-and-plan-round-trip-and-deleted-vault-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupPlan", "backup:CreateBackupVault", "backup:DeleteBackupPlan", "backup:DeleteBackupVault", "backup:ListTags", "backup:TagResource", "backup:UntagResource"], "path": "behavioral/backup/check_list_tags_vault_and_plan_round_trip_and_deleted_vault_rejected.py", "service": "backup"} {"check_id": "backup.logically-air-gapped-vault-create", "deployments": [], "key": "backup/logically-air-gapped-vault-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateLogicallyAirGappedBackupVault", "backup:DeleteBackupVault", "backup:ListBackupVaults"], "path": "behavioral/backup/check_logically_air_gapped_vault_create.py", "service": "backup"} {"check_id": "backup.mpa-approval-team-association-enforced", "deployments": [], "key": "backup/mpa-approval-team-association-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:AssociateBackupVaultMpaApprovalTeam", "backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupVault", "backup:DisassociateBackupVaultMpaApprovalTeam", "backup:ListTags", "backup:TagResource"], "path": "behavioral/backup/check_mpa_approval_team_association_enforced.py", "service": "backup"} {"check_id": "backup.mpa-approval-team-association-server-side", "deployments": [], "key": "backup/mpa-approval-team-association-server-side", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:AssociateBackupVaultMpaApprovalTeam", "backup:CreateLogicallyAirGappedBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupVault", "backup:DisassociateBackupVaultMpaApprovalTeam", "backup:ListTags", "backup:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/backup/check_mpa_approval_team_association_server_side.py", "service": "backup"} {"check_id": "backup.ondemand-dynamodb-backup-restore-keeps-global-secondary-index", "deployments": [], "key": "backup/ondemand-dynamodb-backup-restore-keeps-global-secondary-index", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:DescribeRestoreJob", "backup:StartBackupJob", "backup:StartRestoreJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/backup/check_ondemand_dynamodb_backup_restore_keeps_global_secondary_index.py", "service": "backup"} {"check_id": "backup.put-backup-vault-access-policy-malformed-policy-rejected", "deployments": [], "key": "backup/put-backup-vault-access-policy-malformed-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteBackupVaultAccessPolicy", "backup:GetBackupVaultAccessPolicy", "backup:PutBackupVaultAccessPolicy"], "path": "behavioral/backup/check_put_backup_vault_access_policy_malformed_policy_rejected.py", "service": "backup"} {"check_id": "backup.recovery-point-restore-metadata-read-from-completed-dynamodb-backup", "deployments": [], "key": "backup/recovery-point-restore-metadata-read-from-completed-dynamodb-backup", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:GetRecoveryPointRestoreMetadata", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/backup/check_recovery_point_restore_metadata_read_from_completed_dynamodb_backup.py", "service": "backup"} {"check_id": "backup.report-plan-lifecycle", "deployments": [], "key": "backup/report-plan-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateReportPlan", "backup:DeleteReportPlan", "backup:DescribeReportPlan", "backup:ListReportPlans", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/backup/check_report_plan_lifecycle.py", "service": "backup"} {"check_id": "backup.restore-access-vault-lifecycle", "deployments": [], "key": "backup/restore-access-vault-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateLogicallyAirGappedBackupVault", "backup:CreateRestoreAccessBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupVault", "backup:ListRestoreAccessBackupVaults", "backup:RevokeRestoreAccessBackupVault", "sts:GetCallerIdentity"], "path": "behavioral/backup/check_restore_access_vault_lifecycle.py", "service": "backup"} {"check_id": "backup.restore-testing-plan-lifecycle", "deployments": [], "key": "backup/restore-testing-plan-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateRestoreTestingPlan", "backup:DeleteRestoreTestingPlan", "backup:GetRestoreTestingPlan", "backup:ListRestoreTestingPlans", "backup:UpdateRestoreTestingPlan"], "path": "behavioral/backup/check_restore_testing_plan_lifecycle.py", "service": "backup"} {"check_id": "backup.restore-testing-selection-empty-vs-absent-preserved", "deployments": [], "key": "backup/restore-testing-selection-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateRestoreTestingPlan", "backup:CreateRestoreTestingSelection", "backup:DeleteRestoreTestingPlan", "backup:DeleteRestoreTestingSelection", "backup:GetRestoreTestingSelection", "sts:GetCallerIdentity"], "path": "behavioral/backup/check_restore_testing_selection_empty_vs_absent_preserved.py", "service": "backup"} {"check_id": "backup.restore-testing-selection-lifecycle", "deployments": [], "key": "backup/restore-testing-selection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateRestoreTestingPlan", "backup:CreateRestoreTestingSelection", "backup:DeleteRestoreTestingPlan", "backup:DeleteRestoreTestingSelection", "backup:GetRestoreTestingSelection", "backup:ListRestoreTestingSelections", "backup:UpdateRestoreTestingSelection", "sts:GetCallerIdentity"], "path": "behavioral/backup/check_restore_testing_selection_lifecycle.py", "service": "backup"} {"check_id": "backup.start-backup-job-insufficient-role-permission-denied", "deployments": [], "key": "backup/start-backup-job-insufficient-role-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListBackupJobs", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachRolePolicy", "iam:PutUserPolicy"], "path": "behavioral/backup/check_start_backup_job_insufficient_role_permission_denied.py", "service": "backup"} {"check_id": "backup.start-backup-job-invalid-resource-arn-rejected", "deployments": [], "key": "backup/start-backup-job-invalid-resource-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:ListBackupJobs", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/backup/check_start_backup_job_invalid_resource_arn_rejected.py", "service": "backup"} {"check_id": "backup.start-backup-job-nonexistent-resource-job-fails", "deployments": [], "key": "backup/start-backup-job-nonexistent-resource-job-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/backup/check_start_backup_job_nonexistent_resource_job_fails.py", "service": "backup"} {"check_id": "backup.start-restore-job-invalid-metadata-rejected", "deployments": [], "key": "backup/start-restore-job-invalid-metadata-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRecoveryPoint", "backup:DescribeRestoreJob", "backup:ListRestoreJobs", "backup:StartBackupJob", "backup:StartRestoreJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:UpdateContinuousBackups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/backup/check_start_restore_job_invalid_metadata_rejected.py", "service": "backup"} {"check_id": "backup.tiering-configuration-lifecycle", "deployments": [], "key": "backup/tiering-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateTieringConfiguration", "backup:DeleteTieringConfiguration", "backup:GetTieringConfiguration", "backup:ListTieringConfigurations", "backup:UpdateTieringConfiguration"], "path": "behavioral/backup/check_tiering_configuration_lifecycle.py", "service": "backup"} {"check_id": "backup.tiering-configuration-min-age-ttl-enforced", "deployments": [], "key": "backup/tiering-configuration-min-age-ttl-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:CreateTieringConfiguration", "backup:DeleteBackupVault", "backup:DeleteTieringConfiguration", "backup:GetTieringConfiguration", "backup:ListTieringConfigurations"], "path": "behavioral/backup/check_tiering_configuration_min_age_ttl_enforced.py", "service": "backup"} {"check_id": "backup.tiering-configuration-numeric-precision-round-trip", "deployments": [], "key": "backup/tiering-configuration-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateTieringConfiguration", "backup:DeleteTieringConfiguration", "backup:GetTieringConfiguration"], "path": "behavioral/backup/check_tiering_configuration_numeric_precision_round_trip.py", "service": "backup"} {"check_id": "backup.update-framework-concurrent-conflict-detected", "deployments": [], "key": "backup/update-framework-concurrent-conflict-detected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateFramework", "backup:DeleteFramework", "backup:DescribeFramework", "backup:UpdateFramework"], "path": "behavioral/backup/check_update_framework_concurrent_conflict_detected.py", "service": "backup"} {"check_id": "backup.update-tiering-configuration-concurrent-conflict-detected", "deployments": [], "key": "backup/update-tiering-configuration-concurrent-conflict-detected", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:CreateTieringConfiguration", "backup:DeleteBackupVault", "backup:DeleteTieringConfiguration", "backup:GetTieringConfiguration", "backup:UpdateTieringConfiguration"], "path": "behavioral/backup/check_update_tiering_configuration_concurrent_conflict_detected.py", "service": "backup"} {"check_id": "backup.vault-lock-governance-mode-server-enforced", "deployments": [], "key": "backup/vault-lock-governance-mode-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:CreateLogicallyAirGappedBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupVault", "backup:PutBackupVaultLockConfiguration"], "path": "behavioral/backup/check_vault_lock_governance_mode_server_enforced.py", "service": "backup"} {"check_id": "backup.vault-lock-min-retention-enforced", "deployments": [], "key": "backup/vault-lock-min-retention-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteBackupVaultLockConfiguration", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:DescribeRecoveryPoint", "backup:PutBackupVaultLockConfiguration", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/backup/check_vault_lock_min_retention_enforced.py", "service": "backup"} {"check_id": "backup__cloudformation.cfn-backup-vault-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "backup__cloudformation/cfn-backup-vault-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:DeleteBackupVault", "backup:DeleteBackupVaultLockConfiguration", "backup:DescribeBackupVault", "backup:GetBackupVaultAccessPolicy", "backup:ListBackupVaults", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/backup__cloudformation/check_cfn_backup_vault_create_update_in_place_replace_retained_then_delete.py", "service": "backup__cloudformation"} {"check_id": "backup__cloudformation.deploy-logically-air-gapped-backup-vault", "deployments": [], "key": "backup__cloudformation/deploy-logically-air-gapped-backup-vault", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:DescribeBackupVault", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/backup__cloudformation/check_deploy_logically_air_gapped_backup_vault.py", "service": "backup__cloudformation"} {"check_id": "backup__cloudformation.deploy-logically-air-gapped-vault-invalid-retention-window-rejected", "deployments": [], "key": "backup__cloudformation/deploy-logically-air-gapped-vault-invalid-retention-window-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:DescribeBackupVault", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/backup__cloudformation/check_deploy_logically_air_gapped_vault_invalid_retention_window_rejected.py", "service": "backup__cloudformation"} {"check_id": "backup__cloudformation.deploy-report-plan", "deployments": [], "key": "backup__cloudformation/deploy-report-plan", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:DescribeReportPlan", "backup:ListReportPlans", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/backup__cloudformation/check_deploy_report_plan.py", "service": "backup__cloudformation"} {"check_id": "backup__cloudformation.deploy-restore-testing-plan-and-selection", "deployments": [], "key": "backup__cloudformation/deploy-restore-testing-plan-and-selection", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:GetRestoreTestingPlan", "backup:GetRestoreTestingSelection", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/backup__cloudformation/check_deploy_restore_testing_plan_and_selection.py", "service": "backup__cloudformation"} {"check_id": "backup__cloudformation.deploy-tiering-configuration", "deployments": [], "key": "backup__cloudformation/deploy-tiering-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["backup:GetTieringConfiguration", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/backup__cloudformation/check_deploy_tiering_configuration.py", "service": "backup__cloudformation"} {"check_id": "backup__cloudformation.deploy-tiering-configuration-unsupported-resource-type-rejected", "deployments": [], "key": "backup__cloudformation/deploy-tiering-configuration-unsupported-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["backup:GetTieringConfiguration", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/backup__cloudformation/check_deploy_tiering_configuration_unsupported_resource_type_rejected.py", "service": "backup__cloudformation"} {"check_id": "backup__events.backup-continuous-backup-event-delivered-to-sns-via-eventbridge", "deployments": [], "key": "backup__events/backup-continuous-backup-event-delivered-to-sns-via-eventbridge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateContinuousBackups", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_continuous_backup_event_delivered_to_sns_via_eventbridge.py", "service": "backup__events"} {"check_id": "backup__events.backup-copy-job-cross-region-event-detail-fields", "deployments": [], "key": "backup__events/backup-copy-job-cross-region-event-detail-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeCopyJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "backup:StartCopyJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_copy_job_cross_region_event_detail_fields.py", "service": "backup__events"} {"check_id": "backup__events.backup-describe-job-correlates-with-eventbridge-event", "deployments": [], "key": "backup__events/backup-describe-job-correlates-with-eventbridge-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_describe_job_correlates_with_eventbridge_event.py", "service": "backup__events"} {"check_id": "backup__events.backup-event-triggers-lambda-remediation", "deployments": [], "key": "backup__events/backup-event-triggers-lambda-remediation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/backup__events/check_backup_event_triggers_lambda_remediation.py", "service": "backup__events"} {"check_id": "backup__events.backup-framework-compliance-change-event", "deployments": [], "key": "backup__events/backup-framework-compliance-change-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupPlan", "backup:CreateBackupVault", "backup:CreateFramework", "backup:DeleteBackupPlan", "backup:DeleteBackupVault", "backup:DeleteFramework", "backup:DescribeFramework", "backup:UpdateBackupPlan", "backup:UpdateFramework", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_framework_compliance_change_event.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-completed-emits-eventbridge-event", "deployments": [], "key": "backup__events/backup-job-completed-emits-eventbridge-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "backup:StopBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_completed_emits_eventbridge_event.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-completed-event-delivered-to-eventbridge-rule", "deployments": [], "key": "backup__events/backup-job-completed-event-delivered-to-eventbridge-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_completed_event_delivered_to_eventbridge_rule.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-event-detail-format-preserved", "deployments": [], "key": "backup__events/backup-job-event-detail-format-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_event_detail_format_preserved.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-event-payload-format-preserved-to-sqs", "deployments": [], "key": "backup__events/backup-job-event-payload-format-preserved-to-sqs", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_backup_job_event_payload_format_preserved_to_sqs.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-event-resource-arn-propagated", "deployments": [], "key": "backup__events/backup-job-event-resource-arn-propagated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_event_resource_arn_propagated.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-eventbridge-detail-type-list-matches-multiple-states", "deployments": [], "key": "backup__events/backup-job-eventbridge-detail-type-list-matches-multiple-states", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeCopyJob", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "backup:StartCopyJob", "backup:StopBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_eventbridge_detail_type_list_matches_multiple_states.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-failed-event-matches-pattern", "deployments": [], "key": "backup__events/backup-job-failed-event-matches-pattern", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_failed_event_matches_pattern.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-failed-state-change-event-detail", "deployments": [], "key": "backup__events/backup-job-failed-state-change-event-detail", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupJob", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_failed_state_change_event_detail.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-failed-state-routes-to-sqs-target", "deployments": [], "key": "backup__events/backup-job-failed-state-routes-to-sqs-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_failed_state_routes_to_sqs_target.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-state-change-event-matches-eventbridge-rule", "deployments": [], "key": "backup__events/backup-job-state-change-event-matches-eventbridge-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_state_change_event_matches_eventbridge_rule.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-state-change-invokes-lambda-target", "deployments": [], "key": "backup__events/backup-job-state-change-invokes-lambda-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/backup__events/check_backup_job_state_change_invokes_lambda_target.py", "service": "backup__events"} {"check_id": "backup__events.backup-job-state-change-multiple-targets-fanout", "deployments": [], "key": "backup__events/backup-job-state-change-multiple-targets-fanout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_job_state_change_multiple_targets_fanout.py", "service": "backup__events"} {"check_id": "backup__events.backup-restore-job-event-drives-sqs-queue-message", "deployments": [], "key": "backup__events/backup-restore-job-event-drives-sqs-queue-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRestoreJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "backup:StartRestoreJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_restore_job_event_drives_sqs_queue_message.py", "service": "backup__events"} {"check_id": "backup__events.backup-vault-notification-event-detail-format", "deployments": [], "key": "backup__events/backup-vault-notification-event-detail-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_vault_notification_event_detail_format.py", "service": "backup__events"} {"check_id": "backup__events.backup-vault-notifications-eventbridge-rule-scoped-by-detail-type", "deployments": [], "key": "backup__events/backup-vault-notifications-eventbridge-rule-scoped-by-detail-type", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_backup_vault_notifications_eventbridge_rule_scoped_by_detail_type.py", "service": "backup__events"} {"check_id": "backup__events.cfn-deploy-backup-eventbridge-target-missing-permission-negative", "deployments": [], "key": "backup__events/cfn-deploy-backup-eventbridge-target-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListBackupJobs", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRolePolicy", "iam:ListRolePolicies", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_cfn_deploy_backup_eventbridge_target_missing_permission_negative.py", "service": "backup__events"} {"check_id": "backup__events.cfn-deploy-backup-plan-missing-eventbridge-permission-rejected", "deployments": [], "key": "backup__events/cfn-deploy-backup-plan-missing-eventbridge-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_cfn_deploy_backup_plan_missing_eventbridge_permission_rejected.py", "service": "backup__events"} {"check_id": "backup__events.cfn-deploy-backup-plan-with-eventbridge-notification", "deployments": [], "key": "backup__events/cfn-deploy-backup-plan-with-eventbridge-notification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:StartBackupJob", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:ListTargetsByRule", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_cfn_deploy_backup_plan_with_eventbridge_notification.py", "service": "backup__events"} {"check_id": "backup__events.cfn-deploy-backup-plan-with-eventbridge-rule", "deployments": [], "key": "backup__events/cfn-deploy-backup-plan-with-eventbridge-rule", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_cfn_deploy_backup_plan_with_eventbridge_rule.py", "service": "backup__events"} {"check_id": "backup__events.cfn-deploy-backup-plan-with-eventbridge-rule-target", "deployments": [], "key": "backup__events/cfn-deploy-backup-plan-with-eventbridge-rule-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/backup__events/check_cfn_deploy_backup_plan_with_eventbridge_rule_target.py", "service": "backup__events"} {"check_id": "backup__events.cfn-deploy-eventbridge-role-trust-policy-for-backup-target", "deployments": [], "key": "backup__events/cfn-deploy-eventbridge-role-trust-policy-for-backup-target", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_cfn_deploy_eventbridge_role_trust_policy_for_backup_target.py", "service": "backup__events"} {"check_id": "backup__events.cfn-deploy-eventbridge-rule-without-target-permission-rejected", "deployments": [], "key": "backup__events/cfn-deploy-eventbridge-rule-without-target-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "lambda:GetFunction", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/backup__events/check_cfn_deploy_eventbridge_rule_without_target_permission_rejected.py", "service": "backup__events"} {"check_id": "backup__events.cfn-deploy-iam-role-trusts-events-for-backup-notifications", "deployments": [], "key": "backup__events/cfn-deploy-iam-role-trusts-events-for-backup-notifications", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeRule", "events:PutEvents", "iam:GetRole", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_cfn_deploy_iam_role_trusts_events_for_backup_notifications.py", "service": "backup__events"} {"check_id": "backup__events.cli-create-backup-plan-and-verify-eventbridge-rule-target", "deployments": [], "key": "backup__events/cli-create-backup-plan-and-verify-eventbridge-rule-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:DeleteBackupPlan", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_cli_create_backup_plan_and_verify_eventbridge_rule_target.py", "service": "backup__events"} {"check_id": "backup__events.copy-job-state-change-event-delivered", "deployments": [], "key": "backup__events/copy-job-state-change-event-delivered", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "backup:StartCopyJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_copy_job_state_change_event_delivered.py", "service": "backup__events"} {"check_id": "backup__events.copy-job-state-change-event-pattern-match", "deployments": [], "key": "backup__events/copy-job-state-change-event-pattern-match", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupJob", "backup:DescribeCopyJob", "backup:StartBackupJob", "backup:StartCopyJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:UpdateContinuousBackups", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_copy_job_state_change_event_pattern_match.py", "service": "backup__events"} {"check_id": "backup__events.copy-job-state-change-event-triggers-rule", "deployments": [], "key": "backup__events/copy-job-state-change-event-triggers-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:DescribeCopyJob", "backup:StartBackupJob", "backup:StartCopyJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_copy_job_state_change_event_triggers_rule.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-content-based-filtering-on-backup-vault-name", "deployments": [], "key": "backup__events/eventbridge-content-based-filtering-on-backup-vault-name", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_eventbridge_content_based_filtering_on_backup_vault_name.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-disabled-rule-does-not-trigger-backup-job", "deployments": [], "key": "backup__events/eventbridge-disabled-rule-does-not-trigger-backup-job", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeRegionSettings", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:UpdateRegionSettings", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:EnableRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_disabled_rule_does_not_trigger_backup_job.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-onetime-rule-triggers-start-copy-job", "deployments": [], "key": "backup__events/eventbridge-onetime-rule-triggers-start-copy-job", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:DescribeRegionSettings", "backup:ListCopyJobs", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "backup:UpdateRegionSettings", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_onetime_rule_triggers_start_copy_job.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-pattern-mismatch-suppressed-for-backup-source", "deployments": [], "key": "backup__events/eventbridge-pattern-mismatch-suppressed-for-backup-source", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_eventbridge_pattern_mismatch_suppressed_for_backup_source.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-put-events-custom-source-mismatched-not-matched", "deployments": [], "key": "backup__events/eventbridge-put-events-custom-source-mismatched-not-matched", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_eventbridge_put_events_custom_source_mismatched_not_matched.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-role-missing-backup-trust-policy-target-not-invoked", "deployments": [], "key": "backup__events/eventbridge-role-missing-backup-trust-policy-target-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_role_missing_backup_trust_policy_target_not_invoked.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-role-trusts-events-service-for-backup-target", "deployments": [], "key": "backup__events/eventbridge-role-trusts-events-service-for-backup-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeRegionSettings", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:UpdateRegionSettings", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_role_trusts_events_service_for_backup_target.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-account-id-filter-blocks-backup-event", "deployments": [], "key": "backup__events/eventbridge-rule-account-id-filter-blocks-backup-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_eventbridge_rule_account_id_filter_blocks_backup_event.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-disabled-does-not-deliver-backup-event", "deployments": [], "key": "backup__events/eventbridge-rule-disabled-does-not-deliver-backup-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_eventbridge_rule_disabled_does_not_deliver_backup_event.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-missing-target-permission-backup-job-event-not-invoked", "deployments": [], "key": "backup__events/eventbridge-rule-missing-target-permission-backup-job-event-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/backup__events/check_eventbridge_rule_missing_target_permission_backup_job_event_not_invoked.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-missing-target-permission-blocks-backup-event-delivery", "deployments": [], "key": "backup__events/eventbridge-rule-missing-target-permission-blocks-backup-event-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/backup__events/check_eventbridge_rule_missing_target_permission_blocks_backup_event_delivery.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-pattern-mismatch-suppresses-backup-event", "deployments": [], "key": "backup__events/eventbridge-rule-pattern-mismatch-suppresses-backup-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_eventbridge_rule_pattern_mismatch_suppresses_backup_event.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-scoped-to-specific-backup-vault-arn", "deployments": [], "key": "backup__events/eventbridge-rule-scoped-to-specific-backup-vault-arn", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_eventbridge_rule_scoped_to_specific_backup_vault_arn.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-target-missing-startbackupjob-permission-denied", "deployments": [], "key": "backup__events/eventbridge-rule-target-missing-startbackupjob-permission-denied", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeRegionSettings", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "backup:UpdateRegionSettings", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_eventbridge_rule_target_missing_startbackupjob_permission_denied.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-target-role-missing-trust-policy-rejected", "deployments": [], "key": "backup__events/eventbridge-rule-target-role-missing-trust-policy-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeRegionSettings", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:UpdateRegionSettings", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_rule_target_role_missing_trust_policy_rejected.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-triggers-startbackupjob-via-target-role", "deployments": [], "key": "backup__events/eventbridge-rule-triggers-startbackupjob-via-target-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_rule_triggers_startbackupjob_via_target_role.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-rule-wrong-event-bus-not-delivered", "deployments": [], "key": "backup__events/eventbridge-rule-wrong-event-bus-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_eventbridge_rule_wrong_event_bus_not_delivered.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-scheduled-rule-starts-backup-job", "deployments": [], "key": "backup__events/eventbridge-scheduled-rule-starts-backup-job", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeRegionSettings", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:UpdateRegionSettings", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_scheduled_rule_starts_backup_job.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-target-input-transformer-passes-backup-vault-param", "deployments": [], "key": "backup__events/eventbridge-target-input-transformer-passes-backup-vault-param", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeRegionSettings", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "backup:UpdateRegionSettings", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_target_input_transformer_passes_backup_vault_param.py", "service": "backup__events"} {"check_id": "backup__events.eventbridge-target-missing-backup-permission-not-invoked", "deployments": [], "key": "backup__events/eventbridge-target-missing-backup-permission-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:ListBackupJobs", "backup:ListRecoveryPointsByBackupVault", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_eventbridge_target_missing_backup_permission_not_invoked.py", "service": "backup__events"} {"check_id": "backup__events.iam-role-missing-events-trust-rejected-for-rule-target", "deployments": [], "key": "backup__events/iam-role-missing-events-trust-rejected-for-rule-target", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_iam_role_missing_events_trust_rejected_for_rule_target.py", "service": "backup__events"} {"check_id": "backup__events.iam-role-trusts-events-service-for-target-invocation", "deployments": [], "key": "backup__events/iam-role-trusts-events-service-for-target-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:ListExecutions"], "path": "behavioral/backup__events/check_iam_role_trusts_events_service_for_target_invocation.py", "service": "backup__events"} {"check_id": "backup__events.restore-from-nonexistent-recovery-point-emits-no-state-change-event", "deployments": [], "key": "backup__events/restore-from-nonexistent-recovery-point-emits-no-state-change-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DeleteRecoveryPoint", "backup:DescribeBackupJob", "backup:ListRecoveryPointsByBackupVault", "backup:StartBackupJob", "backup:StartRestoreJob", "backup:StopBackupJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/backup__events/check_restore_from_nonexistent_recovery_point_emits_no_state_change_event.py", "service": "backup__events"} {"check_id": "backup__events.restore-job-completed-event-triggers-rule", "deployments": [], "key": "backup__events/restore-job-completed-event-triggers-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backup:CreateBackupVault", "backup:DeleteBackupVault", "backup:DescribeBackupJob", "backup:DescribeBackupVault", "backup:DescribeRestoreJob", "backup:StartBackupJob", "backup:StartRestoreJob", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/backup__events/check_restore_job_completed_event_triggers_rule.py", "service": "backup__events"} {"check_id": "backupsearch.access-denied-without-backupsearch-permission-rejected", "deployments": [], "key": "backupsearch/access-denied-without-backupsearch-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchJobs", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/backupsearch/check_access_denied_without_backupsearch_permission_rejected.py", "service": "backupsearch"} {"check_id": "backupsearch.concurrent-stop-search-job-race-idempotent-convergence", "deployments": [], "key": "backupsearch/concurrent-stop-search-job-race-idempotent-convergence", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_concurrent_stop_search_job_race_idempotent_convergence.py", "service": "backupsearch"} {"check_id": "backupsearch.e2e-search-job-tag-lifecycle", "deployments": [], "key": "backupsearch/e2e-search-job-tag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchJobs", "backupsearch:ListTagsForResource", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob", "backupsearch:TagResource", "backupsearch:UntagResource"], "path": "behavioral/backupsearch/check_e2e_search_job_tag_lifecycle.py", "service": "backupsearch"} {"check_id": "backupsearch.get-search-job-not-found", "deployments": [], "key": "backupsearch/get-search-job-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_get_search_job_not_found.py", "service": "backupsearch"} {"check_id": "backupsearch.get-search-result-export-job-not-found", "deployments": [], "key": "backupsearch/get-search-result-export-job-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:GetSearchResultExportJob", "backupsearch:StartSearchJob", "backupsearch:StartSearchResultExportJob", "backupsearch:StopSearchJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/backupsearch/check_get_search_result_export_job_not_found.py", "service": "backupsearch"} {"check_id": "backupsearch.list-search-job-backups-not-found", "deployments": [], "key": "backupsearch/list-search-job-backups-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["backupsearch:ListSearchJobBackups", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_list_search_job_backups_not_found.py", "service": "backupsearch"} {"check_id": "backupsearch.list-search-job-results-and-backups-structure-for-completed-job", "deployments": [], "key": "backupsearch/list-search-job-results-and-backups-structure-for-completed-job", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchJobBackups", "backupsearch:ListSearchJobResults", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/backupsearch/check_list_search_job_results_and_backups_structure_for_completed_job.py", "service": "backupsearch"} {"check_id": "backupsearch.list-search-jobs-pagination-with-max-results", "deployments": [], "key": "backupsearch/list-search-jobs-pagination-with-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchJobs", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_list_search_jobs_pagination_with_max_results.py", "service": "backupsearch"} {"check_id": "backupsearch.list-search-jobs-reflects-new-job-and-filters-by-status", "deployments": [], "key": "backupsearch/list-search-jobs-reflects-new-job-and-filters-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchJobs", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_list_search_jobs_reflects_new_job_and_filters_by_status.py", "service": "backupsearch"} {"check_id": "backupsearch.list-search-result-export-jobs-lenient-filter-on-unknown-job", "deployments": [], "key": "backupsearch/list-search-result-export-jobs-lenient-filter-on-unknown-job", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchResultExportJobs", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_list_search_result_export_jobs_lenient_filter_on_unknown_job.py", "service": "backupsearch"} {"check_id": "backupsearch.list-tags-for-resource-not-found", "deployments": [], "key": "backupsearch/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListTagsForResource", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_list_tags_for_resource_not_found.py", "service": "backupsearch"} {"check_id": "backupsearch.start-search-job-client-token-idempotency", "deployments": [], "key": "backupsearch/start-search-job-client-token-idempotency", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchJobs", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_start_search_job_client_token_idempotency.py", "service": "backupsearch"} {"check_id": "backupsearch.start-search-job-fails-with-empty-scope", "deployments": [], "key": "backupsearch/start-search-job-fails-with-empty-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchJobBackups", "backupsearch:ListSearchJobResults", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_start_search_job_fails_with_empty_scope.py", "service": "backupsearch"} {"check_id": "backupsearch.start-search-job-invalid-encryption-key-arn-rejected", "deployments": [], "key": "backupsearch/start-search-job-invalid-encryption-key-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backupsearch:GetSearchJob", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_start_search_job_invalid_encryption_key_arn_rejected.py", "service": "backupsearch"} {"check_id": "backupsearch.start-search-job-nonexistent-backup-resource-arn-accepted-then-fails-async", "deployments": [], "key": "backupsearch/start-search-job-nonexistent-backup-resource-arn-accepted-then-fails-async", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob", "sts:GetCallerIdentity"], "path": "behavioral/backupsearch/check_start_search_job_nonexistent_backup_resource_arn_accepted_then_fails_async.py", "service": "backupsearch"} {"check_id": "backupsearch.start-search-result-export-job-empty-export-specification-rejected", "deployments": [], "key": "backupsearch/start-search-result-export-job-empty-export-specification-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchResultExportJobs", "backupsearch:StartSearchJob", "backupsearch:StartSearchResultExportJob", "backupsearch:StopSearchJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/backupsearch/check_start_search_result_export_job_empty_export_specification_rejected.py", "service": "backupsearch"} {"check_id": "backupsearch.start-search-result-export-job-immediately-after-start-rejected", "deployments": [], "key": "backupsearch/start-search-result-export-job-immediately-after-start-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListSearchResultExportJobs", "backupsearch:StartSearchJob", "backupsearch:StartSearchResultExportJob", "backupsearch:StopSearchJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/backupsearch/check_start_search_result_export_job_immediately_after_start_rejected.py", "service": "backupsearch"} {"check_id": "backupsearch.start-search-result-export-job-invalid-role-arn-rejected", "deployments": [], "key": "backupsearch/start-search-result-export-job-invalid-role-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["backupsearch:GetSearchJob", "backupsearch:GetSearchResultExportJob", "backupsearch:ListSearchResultExportJobs", "backupsearch:StartSearchJob", "backupsearch:StartSearchResultExportJob", "backupsearch:StopSearchJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/backupsearch/check_start_search_result_export_job_invalid_role_arn_rejected.py", "service": "backupsearch"} {"check_id": "backupsearch.stop-search-job-idempotent-when-already-stopped", "deployments": [], "key": "backupsearch/stop-search-job-idempotent-when-already-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_stop_search_job_idempotent_when_already_stopped.py", "service": "backupsearch"} {"check_id": "backupsearch.stop-search-job-not-found", "deployments": [], "key": "backupsearch/stop-search-job-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_stop_search_job_not_found.py", "service": "backupsearch"} {"check_id": "backupsearch.stop-search-job-transitions-to-stopped", "deployments": [], "key": "backupsearch/stop-search-job-transitions-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob"], "path": "behavioral/backupsearch/check_stop_search_job_transitions_to_stopped.py", "service": "backupsearch"} {"check_id": "backupsearch.tag-resource-not-found-with-positive-control", "deployments": [], "key": "backupsearch/tag-resource-not-found-with-positive-control", "labels": ["axis:rejection", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListTagsForResource", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob", "backupsearch:TagResource"], "path": "behavioral/backupsearch/check_tag_resource_not_found_with_positive_control.py", "service": "backupsearch"} {"check_id": "backupsearch.untag-resource-nonexistent-key-is-noop", "deployments": [], "key": "backupsearch/untag-resource-nonexistent-key-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:GetSearchJob", "backupsearch:ListTagsForResource", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob", "backupsearch:TagResource", "backupsearch:UntagResource"], "path": "behavioral/backupsearch/check_untag_resource_nonexistent_key_is_noop.py", "service": "backupsearch"} {"check_id": "backupsearch.untag-resource-removes-specific-key-only", "deployments": [], "key": "backupsearch/untag-resource-removes-specific-key-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["backupsearch:ListTagsForResource", "backupsearch:StartSearchJob", "backupsearch:StopSearchJob", "backupsearch:TagResource", "backupsearch:UntagResource"], "path": "behavioral/backupsearch/check_untag_resource_removes_specific_key_only.py", "service": "backupsearch"} {"check_id": "batch.array-job-children-receive-distinct-array-index", "deployments": [], "key": "batch/array-job-children-receive-distinct-array-index", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:ListJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteLogStream"], "path": "behavioral/batch/check_array_job_children_receive_distinct_array_index.py", "service": "batch"} {"check_id": "batch.batch-array-n-to-n-dependency-gates-only-matching-child-index", "deployments": [], "key": "batch/batch-array-n-to-n-dependency-gates-only-matching-child-index", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogStream"], "path": "behavioral/batch/check_batch_array_n_to_n_dependency_gates_only_matching_child_index.py", "service": "batch"} {"check_id": "batch.batch-consumable-resource-quantity-caps-concurrent-running-jobs", "deployments": [], "key": "batch/batch-consumable-resource-quantity-caps-concurrent-running-jobs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateConsumableResource", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteConsumableResource", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeConsumableResource", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogStream"], "path": "behavioral/batch/check_batch_consumable_resource_quantity_caps_concurrent_running_jobs.py", "service": "batch"} {"check_id": "batch.batch-job-runs-to-succeeded", "deployments": [], "key": "batch/batch-job-runs-to-succeeded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobDefinitions", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteLogStream", "logs:GetLogEvents"], "path": "behavioral/batch/check_batch_job_runs_to_succeeded.py", "service": "batch"} {"check_id": "batch.batch-submit-with-unregistered-consumable-resource-rejected", "deployments": [], "key": "batch/batch-submit-with-unregistered-consumable-resource-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateConsumableResource", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteConsumableResource", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeConsumableResource", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogStream"], "path": "behavioral/batch/check_batch_submit_with_unregistered_consumable_resource_rejected.py", "service": "batch"} {"check_id": "batch.cancel-job-before-running-moves-to-failed", "deployments": [], "key": "batch/cancel-job-before-running-moves-to-failed", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CancelJob", "batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_cancel_job_before_running_moves_to_failed.py", "service": "batch"} {"check_id": "batch.cancel-jobs-bulk-cancels-pending-job-and-leaves-terminal-job-frozen", "deployments": [], "key": "batch/cancel-jobs-bulk-cancels-pending-job-and-leaves-terminal-job-frozen", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CancelJob", "batch:CancelJobs", "batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_cancel_jobs_bulk_cancels_pending_job_and_leaves_terminal_job_frozen.py", "service": "batch"} {"check_id": "batch.cancel-running-job-requires-terminate", "deployments": [], "key": "batch/cancel-running-job-requires-terminate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CancelJob", "batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_cancel_running_job_requires_terminate.py", "service": "batch"} {"check_id": "batch.ce-delete-while-enabled-fails", "deployments": [], "key": "batch/ce-delete-while-enabled-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_ce_delete_while_enabled_fails.py", "service": "batch"} {"check_id": "batch.ce-managed-fargate-missing-subnets-fails", "deployments": [], "key": "batch/ce-managed-fargate-missing-subnets-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/batch/check_ce_managed_fargate_missing_subnets_fails.py", "service": "batch"} {"check_id": "batch.ce-update-unmanaged-with-compute-resources-fails", "deployments": [], "key": "batch/ce-update-unmanaged-with-compute-resources-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_ce_update_unmanaged_with_compute_resources_fails.py", "service": "batch"} {"check_id": "batch.compute-environment-disabled-withholds-placement-until-reenabled", "deployments": [], "key": "batch/compute-environment-disabled-withholds-placement-until-reenabled", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_compute_environment_disabled_withholds_placement_until_reenabled.py", "service": "batch"} {"check_id": "batch.concurrent-consumable-resource-allocation-enforces-capacity", "deployments": [], "key": "batch/concurrent-consumable-resource-allocation-enforces-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateConsumableResource", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteConsumableResource", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeConsumableResource", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/batch/check_concurrent_consumable_resource_allocation_enforces_capacity.py", "service": "batch"} {"check_id": "batch.concurrent-consumable-resource-quantity-decrement", "deployments": [], "key": "batch/concurrent-consumable-resource-quantity-decrement", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:UpdateConsumableResource"], "path": "behavioral/batch/check_concurrent_consumable_resource_quantity_decrement.py", "service": "batch"} {"check_id": "batch.concurrent-consumable-resource-updates-are-atomic", "deployments": [], "key": "batch/concurrent-consumable-resource-updates-are-atomic", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:UpdateConsumableResource"], "path": "behavioral/batch/check_concurrent_consumable_resource_updates_are_atomic.py", "service": "batch"} {"check_id": "batch.concurrent-job-definition-registrations-no-duplicate-revisions", "deployments": [], "key": "batch/concurrent-job-definition-registrations-no-duplicate-revisions", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_concurrent_job_definition_registrations_no_duplicate_revisions.py", "service": "batch"} {"check_id": "batch.concurrent-job-queue-priority-update-last-writer-wins", "deployments": [], "key": "batch/concurrent-job-queue-priority-update-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/batch/check_concurrent_job_queue_priority_update_last_writer_wins.py", "service": "batch"} {"check_id": "batch.concurrent-quota-share-updates-are-atomic", "deployments": [], "key": "batch/concurrent-quota-share-updates-are-atomic", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_concurrent_quota_share_updates_are_atomic.py", "service": "batch"} {"check_id": "batch.concurrent-quota-share-updates-are-serialized", "deployments": [], "key": "batch/concurrent-quota-share-updates-are-serialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_concurrent_quota_share_updates_are_serialized.py", "service": "batch"} {"check_id": "batch.concurrent-quota-share-updates-optimistic-lock", "deployments": [], "key": "batch/concurrent-quota-share-updates-optimistic-lock", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_concurrent_quota_share_updates_optimistic_lock.py", "service": "batch"} {"check_id": "batch.concurrent-service-job-terminate-and-update-race-consistent", "deployments": [], "key": "batch/concurrent-service-job-terminate-and-update-race-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_concurrent_service_job_terminate_and_update_race_consistent.py", "service": "batch"} {"check_id": "batch.concurrent-update-compute-environment-conflict", "deployments": [], "key": "batch/concurrent-update-compute-environment-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/batch/check_concurrent_update_compute_environment_conflict.py", "service": "batch"} {"check_id": "batch.concurrent-update-job-queue-optimistic-lock", "deployments": [], "key": "batch/concurrent-update-job-queue-optimistic-lock", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute"], "path": "behavioral/batch/check_concurrent_update_job_queue_optimistic_lock.py", "service": "batch"} {"check_id": "batch.consumable-resource-add-remove-arithmetic", "deployments": [], "key": "batch/consumable-resource-add-remove-arithmetic", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:ListConsumableResources", "batch:UpdateConsumableResource"], "path": "behavioral/batch/check_consumable_resource_add_remove_arithmetic.py", "service": "batch"} {"check_id": "batch.consumable-resource-lifecycle", "deployments": [], "key": "batch/consumable-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:UpdateConsumableResource"], "path": "behavioral/batch/check_consumable_resource_lifecycle.py", "service": "batch"} {"check_id": "batch.consumable-resource-listing-and-job-association", "deployments": [], "key": "batch/consumable-resource-listing-and-job-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:ListConsumableResources", "batch:ListJobsByConsumableResource"], "path": "behavioral/batch/check_consumable_resource_listing_and_job_association.py", "service": "batch"} {"check_id": "batch.create-consumable-resource-invalid-type-rejected", "deployments": [], "key": "batch/create-consumable-resource-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:ListConsumableResources"], "path": "behavioral/batch/check_create_consumable_resource_invalid_type_rejected.py", "service": "batch"} {"check_id": "batch.create-job-queue-unknown-compute-environment-fails", "deployments": [], "key": "batch/create-job-queue-unknown-compute-environment-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_create_job_queue_unknown_compute_environment_fails.py", "service": "batch"} {"check_id": "batch.create-quota-share-duplicate-name-blocked", "deployments": [], "key": "batch/create-quota-share-duplicate-name-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_duplicate_name_blocked.py", "service": "batch"} {"check_id": "batch.create-quota-share-duplicate-name-fails", "deployments": [], "key": "batch/create-quota-share-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_duplicate_name_fails.py", "service": "batch"} {"check_id": "batch.create-quota-share-duplicate-name-rejected", "deployments": [], "key": "batch/create-quota-share-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_duplicate_name_rejected.py", "service": "batch"} {"check_id": "batch.create-quota-share-invalid-account-id-rejected", "deployments": [], "key": "batch/create-quota-share-invalid-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_invalid_account_id_rejected.py", "service": "batch"} {"check_id": "batch.create-quota-share-invalid-share-identifier-fails", "deployments": [], "key": "batch/create-quota-share-invalid-share-identifier-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_invalid_share_identifier_fails.py", "service": "batch"} {"check_id": "batch.create-quota-share-invalid-share-value-rejected", "deployments": [], "key": "batch/create-quota-share-invalid-share-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_invalid_share_value_rejected.py", "service": "batch"} {"check_id": "batch.create-quota-share-malformed-share-identifier-rejected", "deployments": [], "key": "batch/create-quota-share-malformed-share-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_malformed_share_identifier_rejected.py", "service": "batch"} {"check_id": "batch.create-quota-share-missing-required-field-rejected", "deployments": [], "key": "batch/create-quota-share-missing-required-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_missing_required_field_rejected.py", "service": "batch"} {"check_id": "batch.create-quota-share-negative-weight-value-rejected", "deployments": [], "key": "batch/create-quota-share-negative-weight-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_negative_weight_value_rejected.py", "service": "batch"} {"check_id": "batch.create-quota-share-nonexistent-job-queue-rejected", "deployments": [], "key": "batch/create-quota-share-nonexistent-job-queue-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_nonexistent_job_queue_rejected.py", "service": "batch"} {"check_id": "batch.create-quota-share-unknown-scheduling-policy-fails", "deployments": [], "key": "batch/create-quota-share-unknown-scheduling-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_create_quota_share_unknown_scheduling_policy_fails.py", "service": "batch"} {"check_id": "batch.delete-compute-environment-lifecycle", "deployments": [], "key": "batch/delete-compute-environment-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/batch/check_delete_compute_environment_lifecycle.py", "service": "batch"} {"check_id": "batch.delete-consumable-resource-in-use-rejected", "deployments": [], "key": "batch/delete-consumable-resource-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateConsumableResource", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteConsumableResource", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeConsumableResource", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:UpdateComputeEnvironment", "batch:UpdateConsumableResource", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_delete_consumable_resource_in_use_rejected.py", "service": "batch"} {"check_id": "batch.delete-consumable-resource-lifecycle", "deployments": [], "key": "batch/delete-consumable-resource-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:UpdateConsumableResource"], "path": "behavioral/batch/check_delete_consumable_resource_lifecycle.py", "service": "batch"} {"check_id": "batch.delete-enabled-job-queue-fails", "deployments": [], "key": "batch/delete-enabled-job-queue-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_delete_enabled_job_queue_fails.py", "service": "batch"} {"check_id": "batch.delete-job-queue-lifecycle", "deployments": [], "key": "batch/delete-job-queue-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/batch/check_delete_job_queue_lifecycle.py", "service": "batch"} {"check_id": "batch.delete-quota-share-in-use-by-scheduling-policy-blocked", "deployments": [], "key": "batch/delete-quota-share-in-use-by-scheduling-policy-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_delete_quota_share_in_use_by_scheduling_policy_blocked.py", "service": "batch"} {"check_id": "batch.delete-quota-share-in-use-rejected", "deployments": [], "key": "batch/delete-quota-share-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_delete_quota_share_in_use_rejected.py", "service": "batch"} {"check_id": "batch.delete-quota-share-referenced-by-active-policy-fails", "deployments": [], "key": "batch/delete-quota-share-referenced-by-active-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_delete_quota_share_referenced_by_active_policy_fails.py", "service": "batch"} {"check_id": "batch.delete-quota-share-referenced-by-active-scheduling-policy-fails", "deployments": [], "key": "batch/delete-quota-share-referenced-by-active-scheduling-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_delete_quota_share_referenced_by_active_scheduling_policy_fails.py", "service": "batch"} {"check_id": "batch.delete-quota-share-referenced-by-scheduling-policy-fails", "deployments": [], "key": "batch/delete-quota-share-referenced-by-scheduling-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_delete_quota_share_referenced_by_scheduling_policy_fails.py", "service": "batch"} {"check_id": "batch.delete-quota-share-unknown-fails", "deployments": [], "key": "batch/delete-quota-share-unknown-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_delete_quota_share_unknown_fails.py", "service": "batch"} {"check_id": "batch.delete-quota-share-unknown-id-fails", "deployments": [], "key": "batch/delete-quota-share-unknown-id-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_delete_quota_share_unknown_id_fails.py", "service": "batch"} {"check_id": "batch.delete-quota-share-while-enabled-rejected", "deployments": [], "key": "batch/delete-quota-share-while-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_delete_quota_share_while_enabled_rejected.py", "service": "batch"} {"check_id": "batch.delete-referenced-compute-environment-fails", "deployments": [], "key": "batch/delete-referenced-compute-environment-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_delete_referenced_compute_environment_fails.py", "service": "batch"} {"check_id": "batch.delete-scheduling-policy-attached-to-queue-fails", "deployments": [], "key": "batch/delete-scheduling-policy-attached-to-queue-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeSchedulingPolicies", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_delete_scheduling_policy_attached_to_queue_fails.py", "service": "batch"} {"check_id": "batch.delete-scheduling-policy-lifecycle", "deployments": [], "key": "batch/delete-scheduling-policy-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeSchedulingPolicies", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "batch:UpdateSchedulingPolicy", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/batch/check_delete_scheduling_policy_lifecycle.py", "service": "batch"} {"check_id": "batch.delete-service-environment-lifecycle", "deployments": [], "key": "batch/delete-service-environment-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateServiceEnvironment", "batch:DeleteServiceEnvironment", "batch:DescribeServiceEnvironments", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_delete_service_environment_lifecycle.py", "service": "batch"} {"check_id": "batch.deploy-compute-environment-cloudformation-behaves", "deployments": [], "key": "batch/deploy-compute-environment-cloudformation-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:ListQuotaShares", "batch:SubmitServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_deploy_compute_environment_cloudformation_behaves.py", "service": "batch"} {"check_id": "batch.deploy-job-queue-via-cloudformation-accepts-and-runs-job", "deployments": [], "key": "batch/deploy-job-queue-via-cloudformation-accepts-and-runs-job", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:GetJobQueueSnapshot", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/batch/check_deploy_job_queue_via_cloudformation_accepts_and_runs_job.py", "service": "batch"} {"check_id": "batch.deploy-job-queue-via-cloudformation-processes-job", "deployments": [], "key": "batch/deploy-job-queue-via-cloudformation-processes-job", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:DescribeJobQueues", "batch:DescribeJobs", "batch:SubmitJob", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute"], "path": "behavioral/batch/check_deploy_job_queue_via_cloudformation_processes_job.py", "service": "batch"} {"check_id": "batch.deregister-job-definition-contract", "deployments": [], "key": "batch/deregister-job-definition-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_deregister_job_definition_contract.py", "service": "batch"} {"check_id": "batch.deregister-job-definition-marks-inactive", "deployments": [], "key": "batch/deregister-job-definition-marks-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_deregister_job_definition_marks_inactive.py", "service": "batch"} {"check_id": "batch.describe-compute-environments-contract", "deployments": [], "key": "batch/describe-compute-environments-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/batch/check_describe_compute_environments_contract.py", "service": "batch"} {"check_id": "batch.describe-jobs-multi-id-batch-lookup-preserves-order", "deployments": [], "key": "batch/describe-jobs-multi-id-batch-lookup-preserves-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_describe_jobs_multi_id_batch_lookup_preserves_order.py", "service": "batch"} {"check_id": "batch.describe-jobs-unknown-id-returns-empty", "deployments": [], "key": "batch/describe-jobs-unknown-id-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_describe_jobs_unknown_id_returns_empty.py", "service": "batch"} {"check_id": "batch.describe-quota-share-unknown-fails", "deployments": [], "key": "batch/describe-quota-share-unknown-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DescribeQuotaShare", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_describe_quota_share_unknown_fails.py", "service": "batch"} {"check_id": "batch.describe-quota-share-unknown-id-fails", "deployments": [], "key": "batch/describe-quota-share-unknown-id-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_describe_quota_share_unknown_id_fails.py", "service": "batch"} {"check_id": "batch.describe-scheduling-policies-contract", "deployments": [], "key": "batch/describe-scheduling-policies-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_describe_scheduling_policies_contract.py", "service": "batch"} {"check_id": "batch.describe-service-job-unknown-id-fails", "deployments": [], "key": "batch/describe-service-job-unknown-id-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_describe_service_job_unknown_id_fails.py", "service": "batch"} {"check_id": "batch.describe-service-job-unknown-id-returns-empty-or-notfound", "deployments": [], "key": "batch/describe-service-job-unknown-id-returns-empty-or-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:SubmitServiceJob", "batch:TerminateJob", "batch:TerminateServiceJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_describe_service_job_unknown_id_returns_empty_or_notfound.py", "service": "batch"} {"check_id": "batch.describe-unknown-consumable-resource-fails", "deployments": [], "key": "batch/describe-unknown-consumable-resource-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource"], "path": "behavioral/batch/check_describe_unknown_consumable_resource_fails.py", "service": "batch"} {"check_id": "batch.describe-unknown-quota-share-fails", "deployments": [], "key": "batch/describe-unknown-quota-share-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_describe_unknown_quota_share_fails.py", "service": "batch"} {"check_id": "batch.duplicate-compute-environment-name-fails", "deployments": [], "key": "batch/duplicate-compute-environment-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_duplicate_compute_environment_name_fails.py", "service": "batch"} {"check_id": "batch.duplicate-consumable-resource-name-fails", "deployments": [], "key": "batch/duplicate-consumable-resource-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource"], "path": "behavioral/batch/check_duplicate_consumable_resource_name_fails.py", "service": "batch"} {"check_id": "batch.e2e-fair-share-quota-lifecycle-affects-dispatch-and-teardown", "deployments": [], "key": "batch/e2e-fair-share-quota-lifecycle-affects-dispatch-and-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:GetJobQueueSnapshot", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_e2e_fair_share_quota_lifecycle_affects_dispatch_and_teardown.py", "service": "batch"} {"check_id": "batch.e2e-service-job-lifecycle-through-queue-snapshot", "deployments": [], "key": "batch/e2e-service-job-lifecycle-through-queue-snapshot", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:GetJobQueueSnapshot", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_e2e_service_job_lifecycle_through_queue_snapshot.py", "service": "batch"} {"check_id": "batch.e2e-service-job-quota-share-consumption-flow", "deployments": [], "key": "batch/e2e-service-job-quota-share-consumption-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:GetJobQueueSnapshot", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_e2e_service_job_quota_share_consumption_flow.py", "service": "batch"} {"check_id": "batch.e2e-service-job-submit-monitor-terminate-cleanup", "deployments": [], "key": "batch/e2e-service-job-submit-monitor-terminate-cleanup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_e2e_service_job_submit_monitor_terminate_cleanup.py", "service": "batch"} {"check_id": "batch.failing-job-reports-real-nonzero-exit-code", "deployments": [], "key": "batch/failing-job-reports-real-nonzero-exit-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteLogStream"], "path": "behavioral/batch/check_failing_job_reports_real_nonzero_exit_code.py", "service": "batch"} {"check_id": "batch.fair-share-quota-weight-orders-job-dispatch", "deployments": [], "key": "batch/fair-share-quota-weight-orders-job-dispatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CancelJob", "batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:GetJobQueueSnapshot", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_fair_share_quota_weight_orders_job_dispatch.py", "service": "batch"} {"check_id": "batch.fair-share-scheduling-enforces-quota-allocation-server-side", "deployments": [], "key": "batch/fair-share-scheduling-enforces-quota-allocation-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:GetJobQueueSnapshot", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_fair_share_scheduling_enforces_quota_allocation_server_side.py", "service": "batch"} {"check_id": "batch.fifo-scheduling-policy-preserves-submission-order-within-share", "deployments": [], "key": "batch/fifo-scheduling-policy-preserves-submission-order-within-share", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CancelJob", "batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:GetJobQueueSnapshot", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_fifo_scheduling_policy_preserves_submission_order_within_share.py", "service": "batch"} {"check_id": "batch.get-job-queue-snapshot-unknown-queue-rejected", "deployments": [], "key": "batch/get-job-queue-snapshot-unknown-queue-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:GetJobQueueSnapshot", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_get_job_queue_snapshot_unknown_queue_rejected.py", "service": "batch"} {"check_id": "batch.jd-deregister-sets-inactive-and-is-idempotent", "deployments": [], "key": "batch/jd-deregister-sets-inactive-and-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_jd_deregister_sets_inactive_and_is_idempotent.py", "service": "batch"} {"check_id": "batch.jd-describe-filters-by-status", "deployments": [], "key": "batch/jd-describe-filters-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_jd_describe_filters_by_status.py", "service": "batch"} {"check_id": "batch.jd-describe-pagination-covers-all-revisions", "deployments": [], "key": "batch/jd-describe-pagination-covers-all-revisions", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_jd_describe_pagination_covers_all_revisions.py", "service": "batch"} {"check_id": "batch.job-attempt-duration-below-minimum-rejected", "deployments": [], "key": "batch/job-attempt-duration-below-minimum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:ListJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_job_attempt_duration_below_minimum_rejected.py", "service": "batch"} {"check_id": "batch.job-attempt-duration-timeout-forces-failed", "deployments": [], "key": "batch/job-attempt-duration-timeout-forces-failed", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "logs:DeleteLogStream"], "path": "behavioral/batch/check_job_attempt_duration_timeout_forces_failed.py", "service": "batch"} {"check_id": "batch.job-attempt-duration-timeout-terminates-job", "deployments": [], "key": "batch/job-attempt-duration-timeout-terminates-job", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_job_attempt_duration_timeout_terminates_job.py", "service": "batch"} {"check_id": "batch.job-attempt-duration-timeout-terminates-running-job", "deployments": [], "key": "batch/job-attempt-duration-timeout-terminates-running-job", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_job_attempt_duration_timeout_terminates_running_job.py", "service": "batch"} {"check_id": "batch.job-cancel-unknown-id-is-a-no-op", "deployments": [], "key": "batch/job-cancel-unknown-id-is-a-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CancelJob", "batch:DescribeJobs", "batch:TerminateJob"], "path": "behavioral/batch/check_job_cancel_unknown_id_is_a_no_op.py", "service": "batch"} {"check_id": "batch.job-definition-environment-variable-empty-string-vs-absent-preserved", "deployments": [], "key": "batch/job-definition-environment-variable-empty-string-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_job_definition_environment_variable_empty_string_vs_absent_preserved.py", "service": "batch"} {"check_id": "batch.job-dependency-holds-job-pending", "deployments": [], "key": "batch/job-dependency-holds-job-pending", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_job_dependency_holds_job_pending.py", "service": "batch"} {"check_id": "batch.job-dependency-releases-on-success-and-blocks-on-parent-failure", "deployments": [], "key": "batch/job-dependency-releases-on-success-and-blocks-on-parent-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteLogStream"], "path": "behavioral/batch/check_job_dependency_releases_on_success_and_blocks_on_parent_failure.py", "service": "batch"} {"check_id": "batch.job-list-unknown-queue-returns-empty", "deployments": [], "key": "batch/job-list-unknown-queue-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:ListJobs"], "path": "behavioral/batch/check_job_list_unknown_queue_returns_empty.py", "service": "batch"} {"check_id": "batch.job-parameter-substitution-and-container-override-precedence", "deployments": [], "key": "batch/job-parameter-substitution-and-container-override-precedence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteLogStream"], "path": "behavioral/batch/check_job_parameter_substitution_and_container_override_precedence.py", "service": "batch"} {"check_id": "batch.job-queue-lifecycle-state-transitions", "deployments": [], "key": "batch/job-queue-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_job_queue_lifecycle_state_transitions.py", "service": "batch"} {"check_id": "batch.job-queue-priority-scheduling-order-enforced", "deployments": [], "key": "batch/job-queue-priority-scheduling-order-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_job_queue_priority_scheduling_order_enforced.py", "service": "batch"} {"check_id": "batch.job-queue-snapshot-capacity-usage-reflects-real-running-job", "deployments": [], "key": "batch/job-queue-snapshot-capacity-usage-reflects-real-running-job", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:GetJobQueueSnapshot", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_job_queue_snapshot_capacity_usage_reflects_real_running_job.py", "service": "batch"} {"check_id": "batch.job-queue-snapshot-caps-front-of-queue-at-100", "deployments": [], "key": "batch/job-queue-snapshot-caps-front-of-queue-at-100", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:GetJobQueueSnapshot", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_job_queue_snapshot_caps_front_of_queue_at_100.py", "service": "batch"} {"check_id": "batch.job-queue-snapshot-frontofqueue-ordered-and-deduplicated-array-jobs", "deployments": [], "key": "batch/job-queue-snapshot-frontofqueue-ordered-and-deduplicated-array-jobs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:GetJobQueueSnapshot", "batch:ListJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_job_queue_snapshot_frontofqueue_ordered_and_deduplicated_array_jobs.py", "service": "batch"} {"check_id": "batch.job-queue-snapshot-includes-service-job-entries", "deployments": [], "key": "batch/job-queue-snapshot-includes-service-job-entries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:GetJobQueueSnapshot", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_job_queue_snapshot_includes_service_job_entries.py", "service": "batch"} {"check_id": "batch.job-queue-snapshot-reflects-pending-job", "deployments": [], "key": "batch/job-queue-snapshot-reflects-pending-job", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:GetJobQueueSnapshot", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_job_queue_snapshot_reflects_pending_job.py", "service": "batch"} {"check_id": "batch.job-queue-snapshot-reflects-quota-share-usage", "deployments": [], "key": "batch/job-queue-snapshot-reflects-quota-share-usage", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:GetJobQueueSnapshot", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_job_queue_snapshot_reflects_quota_share_usage.py", "service": "batch"} {"check_id": "batch.job-queue-snapshot-reports-accurate-running-and-runnable-counts", "deployments": [], "key": "batch/job-queue-snapshot-reports-accurate-running-and-runnable-counts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CancelJob", "batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:GetJobQueueSnapshot", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_job_queue_snapshot_reports_accurate_running_and_runnable_counts.py", "service": "batch"} {"check_id": "batch.job-queue-state-time-limit-action-max-time-seconds-range-enforced", "deployments": [], "key": "batch/job-queue-state-time-limit-action-max-time-seconds-range-enforced", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_job_queue_state_time_limit_action_max_time_seconds_range_enforced.py", "service": "batch"} {"check_id": "batch.job-queue-tag-limit-exceeded-rejected", "deployments": [], "key": "batch/job-queue-tag-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:ListTagsForResource", "batch:TagResource", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_job_queue_tag_limit_exceeded_rejected.py", "service": "batch"} {"check_id": "batch.job-queue-tag-unicode-value-round-trip", "deployments": [], "key": "batch/job-queue-tag-unicode-value-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:ListTagsForResource", "batch:TagResource", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_job_queue_tag_unicode_value_round_trip.py", "service": "batch"} {"check_id": "batch.job-retry-strategy-evaluate-on-exit-controls-attempt-count", "deployments": [], "key": "batch/job-retry-strategy-evaluate-on-exit-controls-attempt-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "logs:DeleteLogStream"], "path": "behavioral/batch/check_job_retry_strategy_evaluate_on_exit_controls_attempt_count.py", "service": "batch"} {"check_id": "batch.job-runs-to-succeeded-with-exit-code-and-status-sequence", "deployments": [], "key": "batch/job-runs-to-succeeded-with-exit-code-and-status-sequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteLogStream"], "path": "behavioral/batch/check_job_runs_to_succeeded_with_exit_code_and_status_sequence.py", "service": "batch"} {"check_id": "batch.job-submit-to-unknown-queue-fails", "deployments": [], "key": "batch/job-submit-to-unknown-queue-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_job_submit_to_unknown_queue_fails.py", "service": "batch"} {"check_id": "batch.job-timeout-attribute-triggers-timeout-failure", "deployments": [], "key": "batch/job-timeout-attribute-triggers-timeout-failure", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobDefinitions", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/batch/check_job_timeout_attribute_triggers_timeout_failure.py", "service": "batch"} {"check_id": "batch.jq-create-with-unknown-scheduling-policy-fails", "deployments": [], "key": "batch/jq-create-with-unknown-scheduling-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_jq_create_with_unknown_scheduling_policy_fails.py", "service": "batch"} {"check_id": "batch.jq-service-queue-rejects-compute-environment-order", "deployments": [], "key": "batch/jq-service-queue-rejects-compute-environment-order", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_jq_service_queue_rejects_compute_environment_order.py", "service": "batch"} {"check_id": "batch.jq-snapshot-and-list-jobs-status-filter", "deployments": [], "key": "batch/jq-snapshot-and-list-jobs-status-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:GetJobQueueSnapshot", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_jq_snapshot_and_list_jobs_status_filter.py", "service": "batch"} {"check_id": "batch.list-consumable-resources-reflects-created", "deployments": [], "key": "batch/list-consumable-resources-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:ListConsumableResources"], "path": "behavioral/batch/check_list_consumable_resources_reflects_created.py", "service": "batch"} {"check_id": "batch.list-jobs-by-consumable-resource-returns-associated-jobs", "deployments": [], "key": "batch/list-jobs-by-consumable-resource-returns-associated-jobs", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateConsumableResource", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteConsumableResource", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:ListJobsByConsumableResource", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_list_jobs_by_consumable_resource_returns_associated_jobs.py", "service": "batch"} {"check_id": "batch.list-jobs-default-status-filter-is-running", "deployments": [], "key": "batch/list-jobs-default-status-filter-is-running", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:ListJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_list_jobs_default_status_filter_is_running.py", "service": "batch"} {"check_id": "batch.list-jobs-invalid-filter-combination-fails", "deployments": [], "key": "batch/list-jobs-invalid-filter-combination-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:ListJobs"], "path": "behavioral/batch/check_list_jobs_invalid_filter_combination_fails.py", "service": "batch"} {"check_id": "batch.list-quota-shares-invalid-filter-combination-fails", "deployments": [], "key": "batch/list-quota-shares-invalid-filter-combination-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_list_quota_shares_invalid_filter_combination_fails.py", "service": "batch"} {"check_id": "batch.list-quota-shares-invalid-filter-rejected", "deployments": [], "key": "batch/list-quota-shares-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_list_quota_shares_invalid_filter_rejected.py", "service": "batch"} {"check_id": "batch.list-quota-shares-pagination-is-consistent", "deployments": [], "key": "batch/list-quota-shares-pagination-is-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_list_quota_shares_pagination_is_consistent.py", "service": "batch"} {"check_id": "batch.list-quota-shares-reflects-create-and-delete", "deployments": [], "key": "batch/list-quota-shares-reflects-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_list_quota_shares_reflects_create_and_delete.py", "service": "batch"} {"check_id": "batch.list-quota-shares-reflects-created", "deployments": [], "key": "batch/list-quota-shares-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_list_quota_shares_reflects_created.py", "service": "batch"} {"check_id": "batch.list-quota-shares-reflects-created-shares", "deployments": [], "key": "batch/list-quota-shares-reflects-created-shares", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_list_quota_shares_reflects_created_shares.py", "service": "batch"} {"check_id": "batch.list-scheduling-policies-reflects-created", "deployments": [], "key": "batch/list-scheduling-policies-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "batch:ListSchedulingPolicies"], "path": "behavioral/batch/check_list_scheduling_policies_reflects_created.py", "service": "batch"} {"check_id": "batch.list-scheduling-policies-returns-created-policies", "deployments": [], "key": "batch/list-scheduling-policies-returns-created-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "batch:ListSchedulingPolicies"], "path": "behavioral/batch/check_list_scheduling_policies_returns_created_policies.py", "service": "batch"} {"check_id": "batch.list-service-jobs-filters-by-queue-and-status", "deployments": [], "key": "batch/list-service-jobs-filters-by-queue-and-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_list_service_jobs_filters_by_queue_and_status.py", "service": "batch"} {"check_id": "batch.list-service-jobs-filters-by-status", "deployments": [], "key": "batch/list-service-jobs-filters-by-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_list_service_jobs_filters_by_status.py", "service": "batch"} {"check_id": "batch.list-tags-for-resource-contract", "deployments": [], "key": "batch/list-tags-for-resource-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:ListTagsForResource", "batch:TagResource", "batch:UntagResource"], "path": "behavioral/batch/check_list_tags_for_resource_contract.py", "service": "batch"} {"check_id": "batch.managed-compute-environment-auto-scales-server-side", "deployments": [], "key": "batch/managed-compute-environment-auto-scales-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobDefinitions", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/batch/check_managed_compute_environment_auto_scales_server_side.py", "service": "batch"} {"check_id": "batch.managed-fargate-compute-environment-reaches-valid", "deployments": [], "key": "batch/managed-fargate-compute-environment-reaches-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/batch/check_managed_fargate_compute_environment_reaches_valid.py", "service": "batch"} {"check_id": "batch.op-contract-cancelJob", "deployments": [], "key": "batch/op-contract-cancelJob", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CancelJob", "batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_op_contract_cancel_job.py", "service": "batch"} {"check_id": "batch.op-contract-createServiceEnvironment", "deployments": [], "key": "batch/op-contract-createServiceEnvironment", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateServiceEnvironment", "batch:DeleteServiceEnvironment", "batch:DescribeServiceEnvironments", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_op_contract_create_service_environment.py", "service": "batch"} {"check_id": "batch.op-contract-deleteComputeEnvironment", "deployments": [], "key": "batch/op-contract-deleteComputeEnvironment", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_op_contract_delete_compute_environment.py", "service": "batch"} {"check_id": "batch.op-contract-deleteJobQueue", "deployments": [], "key": "batch/op-contract-deleteJobQueue", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_op_contract_delete_job_queue.py", "service": "batch"} {"check_id": "batch.op-contract-deleteServiceEnvironment", "deployments": [], "key": "batch/op-contract-deleteServiceEnvironment", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateServiceEnvironment", "batch:DeleteServiceEnvironment", "batch:DescribeServiceEnvironments", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_op_contract_delete_service_environment.py", "service": "batch"} {"check_id": "batch.op-contract-deregisterJobDefinition", "deployments": [], "key": "batch/op-contract-deregisterJobDefinition", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_op_contract_deregister_job_definition.py", "service": "batch"} {"check_id": "batch.op-contract-describeJobDefinitions", "deployments": [], "key": "batch/op-contract-describeJobDefinitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_op_contract_describe_job_definitions.py", "service": "batch"} {"check_id": "batch.op-contract-describeSchedulingPolicies", "deployments": [], "key": "batch/op-contract-describeSchedulingPolicies", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies"], "path": "behavioral/batch/check_op_contract_describe_scheduling_policies.py", "service": "batch"} {"check_id": "batch.op-contract-describeServiceEnvironments", "deployments": [], "key": "batch/op-contract-describeServiceEnvironments", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateServiceEnvironment", "batch:DeleteServiceEnvironment", "batch:DescribeServiceEnvironments", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_op_contract_describe_service_environments.py", "service": "batch"} {"check_id": "batch.op-contract-listJobs", "deployments": [], "key": "batch/op-contract-listJobs", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:ListJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_op_contract_list_jobs.py", "service": "batch"} {"check_id": "batch.op-contract-listTagsForResource", "deployments": [], "key": "batch/op-contract-listTagsForResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:ListTagsForResource", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_op_contract_list_tags_for_resource.py", "service": "batch"} {"check_id": "batch.op-contract-registerJobDefinition", "deployments": [], "key": "batch/op-contract-registerJobDefinition", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_op_contract_register_job_definition.py", "service": "batch"} {"check_id": "batch.op-contract-tagResource", "deployments": [], "key": "batch/op-contract-tagResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:ListTagsForResource", "batch:RegisterJobDefinition", "batch:TagResource"], "path": "behavioral/batch/check_op_contract_tag_resource.py", "service": "batch"} {"check_id": "batch.op-contract-terminateJob", "deployments": [], "key": "batch/op-contract-terminateJob", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_op_contract_terminate_job.py", "service": "batch"} {"check_id": "batch.op-contract-untag-resource", "deployments": [], "key": "batch/op-contract-untag-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:ListTagsForResource", "batch:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_op_contract_untag_resource.py", "service": "batch"} {"check_id": "batch.op-contract-update-compute-environment", "deployments": [], "key": "batch/op-contract-update-compute-environment", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_op_contract_update_compute_environment.py", "service": "batch"} {"check_id": "batch.op-contract-update-consumable-resource", "deployments": [], "key": "batch/op-contract-update-consumable-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:UpdateConsumableResource"], "path": "behavioral/batch/check_op_contract_update_consumable_resource.py", "service": "batch"} {"check_id": "batch.op-contract-update-scheduling-policy", "deployments": [], "key": "batch/op-contract-update-scheduling-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "batch:UpdateSchedulingPolicy"], "path": "behavioral/batch/check_op_contract_update_scheduling_policy.py", "service": "batch"} {"check_id": "batch.op-contract-update-service-environment", "deployments": [], "key": "batch/op-contract-update-service-environment", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateServiceEnvironment", "batch:DeleteServiceEnvironment", "batch:DescribeServiceEnvironments", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_op_contract_update_service_environment.py", "service": "batch"} {"check_id": "batch.op-contract-updateschedulingpolicy", "deployments": [], "key": "batch/op-contract-updateschedulingpolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "batch:UpdateSchedulingPolicy", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_op_contract_updateschedulingpolicy.py", "service": "batch"} {"check_id": "batch.op-contract-updateserviceenvironment", "deployments": [], "key": "batch/op-contract-updateserviceenvironment", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateServiceEnvironment", "batch:DeleteServiceEnvironment", "batch:DescribeServiceEnvironments", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_op_contract_updateserviceenvironment.py", "service": "batch"} {"check_id": "batch.quota-share-delete-then-describe-fails", "deployments": [], "key": "batch/quota-share-delete-then-describe-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_delete_then_describe_fails.py", "service": "batch"} {"check_id": "batch.quota-share-delete-while-enabled-rejected", "deployments": [], "key": "batch/quota-share-delete-while-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_delete_while_enabled_rejected.py", "service": "batch"} {"check_id": "batch.quota-share-enforced-server-side-on-job-scheduling", "deployments": [], "key": "batch/quota-share-enforced-server-side-on-job-scheduling", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_quota_share_enforced_server_side_on_job_scheduling.py", "service": "batch"} {"check_id": "batch.quota-share-lifecycle-create-active-delete", "deployments": [], "key": "batch/quota-share-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_lifecycle_create_active_delete.py", "service": "batch"} {"check_id": "batch.quota-share-lifecycle-create-update-delete-404", "deployments": [], "key": "batch/quota-share-lifecycle-create-update-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_lifecycle_create_update_delete_404.py", "service": "batch"} {"check_id": "batch.quota-share-lifecycle-crud", "deployments": [], "key": "batch/quota-share-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_lifecycle_crud.py", "service": "batch"} {"check_id": "batch.quota-share-lifecycle-state-transitions", "deployments": [], "key": "batch/quota-share-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_lifecycle_state_transitions.py", "service": "batch"} {"check_id": "batch.quota-share-scheduling-policy-idle-resource-assignment-strategy-enum-enforced", "deployments": [], "key": "batch/quota-share-scheduling-policy-idle-resource-assignment-strategy-enum-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "batch:ListSchedulingPolicies", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_quota_share_scheduling_policy_idle_resource_assignment_strategy_enum_enforced.py", "service": "batch"} {"check_id": "batch.quota-share-unicode-name-rejected", "deployments": [], "key": "batch/quota-share-unicode-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_unicode_name_rejected.py", "service": "batch"} {"check_id": "batch.quota-share-unicode-name-round-trip", "deployments": [], "key": "batch/quota-share-unicode-name-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_unicode_name_round_trip.py", "service": "batch"} {"check_id": "batch.quota-share-unicode-tags-round-trip", "deployments": [], "key": "batch/quota-share-unicode-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListTagsForResource", "batch:TagResource", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_unicode_tags_round_trip.py", "service": "batch"} {"check_id": "batch.quota-share-update-active-share-modifies-quota-value", "deployments": [], "key": "batch/quota-share-update-active-share-modifies-quota-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_quota_share_update_active_share_modifies_quota_value.py", "service": "batch"} {"check_id": "batch.quota-share-weight-numeric-precision-round-trip", "deployments": [], "key": "batch/quota-share-weight-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies"], "path": "behavioral/batch/check_quota_share_weight_numeric_precision_round_trip.py", "service": "batch"} {"check_id": "batch.register-fargate-job-definition-illegal-vcpu-memory-pair-fails", "deployments": [], "key": "batch/register-fargate-job-definition-illegal-vcpu-memory-pair-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_register_fargate_job_definition_illegal_vcpu_memory_pair_fails.py", "service": "batch"} {"check_id": "batch.register-fargate-job-definition-without-execution-role-fails", "deployments": [], "key": "batch/register-fargate-job-definition-without-execution-role-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/batch/check_register_fargate_job_definition_without_execution_role_fails.py", "service": "batch"} {"check_id": "batch.register-job-definition-contract", "deployments": [], "key": "batch/register-job-definition-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_register_job_definition_contract.py", "service": "batch"} {"check_id": "batch.register-job-definition-missing-container-properties-fails", "deployments": [], "key": "batch/register-job-definition-missing-container-properties-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_register_job_definition_missing_container_properties_fails.py", "service": "batch"} {"check_id": "batch.register-job-definition-retry-attempts-above-maximum-fails", "deployments": [], "key": "batch/register-job-definition-retry-attempts-above-maximum-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_register_job_definition_retry_attempts_above_maximum_fails.py", "service": "batch"} {"check_id": "batch.register-job-definition-revision-increment", "deployments": [], "key": "batch/register-job-definition-revision-increment", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition"], "path": "behavioral/batch/check_register_job_definition_revision_increment.py", "service": "batch"} {"check_id": "batch.register-multi-node-job-definition-main-node-at-or-above-num-nodes-rejected", "deployments": [], "key": "batch/register-multi-node-job-definition-main-node-at-or-above-num-nodes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:DescribeJobDefinitions", "batch:RegisterJobDefinition", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_register_multi_node_job_definition_main_node_at_or_above_num_nodes_rejected.py", "service": "batch"} {"check_id": "batch.retry-strategy-unmatched-evaluate-on-exit-condition-still-retries", "deployments": [], "key": "batch/retry-strategy-unmatched-evaluate-on-exit-condition-still-retries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteLogStream"], "path": "behavioral/batch/check_retry_strategy_unmatched_evaluate_on_exit_condition_still_retries.py", "service": "batch"} {"check_id": "batch.scheduling-policy-exclusive-fairshare-quotashare-rejected", "deployments": [], "key": "batch/scheduling-policy-exclusive-fairshare-quotashare-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:ListSchedulingPolicies"], "path": "behavioral/batch/check_scheduling_policy_exclusive_fairshare_quotashare_rejected.py", "service": "batch"} {"check_id": "batch.scheduling-policy-lifecycle", "deployments": [], "key": "batch/scheduling-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "batch:UpdateSchedulingPolicy"], "path": "behavioral/batch/check_scheduling_policy_lifecycle.py", "service": "batch"} {"check_id": "batch.scheduling-policy-type-immutable-after-creation-rejected", "deployments": [], "key": "batch/scheduling-policy-type-immutable-after-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "batch:UpdateSchedulingPolicy"], "path": "behavioral/batch/check_scheduling_policy_type_immutable_after_creation_rejected.py", "service": "batch"} {"check_id": "batch.scheduling-policy-update-and-list", "deployments": [], "key": "batch/scheduling-policy-update-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateSchedulingPolicy", "batch:DeleteSchedulingPolicy", "batch:DescribeSchedulingPolicies", "batch:ListSchedulingPolicies", "batch:UpdateSchedulingPolicy"], "path": "behavioral/batch/check_scheduling_policy_update_and_list.py", "service": "batch"} {"check_id": "batch.server-side-job-placement-honors-compute-environment-order", "deployments": [], "key": "batch/server-side-job-placement-honors-compute-environment-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_server_side_job_placement_honors_compute_environment_order.py", "service": "batch"} {"check_id": "batch.service-environment-delete-while-attached-to-queue-fails", "deployments": [], "key": "batch/service-environment-delete-while-attached-to-queue-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_service_environment_delete_while_attached_to_queue_fails.py", "service": "batch"} {"check_id": "batch.service-environment-delete-while-enabled-fails", "deployments": [], "key": "batch/service-environment-delete-while-enabled-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateServiceEnvironment", "batch:DeleteServiceEnvironment", "batch:DescribeServiceEnvironments", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_service_environment_delete_while_enabled_fails.py", "service": "batch"} {"check_id": "batch.service-environment-lifecycle", "deployments": [], "key": "batch/service-environment-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateServiceEnvironment", "batch:DeleteServiceEnvironment", "batch:DescribeServiceEnvironments", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_service_environment_lifecycle.py", "service": "batch"} {"check_id": "batch.service-job-lifecycle-state-transitions", "deployments": [], "key": "batch/service-job-lifecycle-state-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DeleteTrainingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrainingJob", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents", "sagemaker:ListTrials"], "path": "behavioral/batch/check_service_job_lifecycle_state_transitions.py", "service": "batch"} {"check_id": "batch.service-job-lifecycle-submit-to-terminal", "deployments": [], "key": "batch/service-job-lifecycle-submit-to-terminal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_service_job_lifecycle_submit_to_terminal.py", "service": "batch"} {"check_id": "batch.service-job-lifecycle-transitions", "deployments": [], "key": "batch/service-job-lifecycle-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_service_job_lifecycle_transitions.py", "service": "batch"} {"check_id": "batch.service-job-managed-execution-reaches-succeeded", "deployments": [], "key": "batch/service-job-managed-execution-reaches-succeeded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeSchedulingPolicies", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DeleteTrainingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrainingJob", "sagemaker:ListTrialComponents"], "path": "behavioral/batch/check_service_job_managed_execution_reaches_succeeded.py", "service": "batch"} {"check_id": "batch.service-job-numeric-parameters-precision-preserved", "deployments": [], "key": "batch/service-job-numeric-parameters-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_service_job_numeric_parameters_precision_preserved.py", "service": "batch"} {"check_id": "batch.service-job-submit-to-disabled-queue-fails", "deployments": [], "key": "batch/service-job-submit-to-disabled-queue-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_service_job_submit_to_disabled_queue_fails.py", "service": "batch"} {"check_id": "batch.service-job-submit-to-unknown-queue-fails", "deployments": [], "key": "batch/service-job-submit-to-unknown-queue-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_service_job_submit_to_unknown_queue_fails.py", "service": "batch"} {"check_id": "batch.service-job-terminate-forces-failed-state", "deployments": [], "key": "batch/service-job-terminate-forces-failed-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_service_job_terminate_forces_failed_state.py", "service": "batch"} {"check_id": "batch.service-job-terminate-terminal-is-idempotent", "deployments": [], "key": "batch/service-job-terminate-terminal-is-idempotent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_service_job_terminate_terminal_is_idempotent.py", "service": "batch"} {"check_id": "batch.service-job-terminate-transitions-to-terminal", "deployments": [], "key": "batch/service-job-terminate-transitions-to-terminal", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_service_job_terminate_transitions_to_terminal.py", "service": "batch"} {"check_id": "batch.service-job-update-persists-across-describe", "deployments": [], "key": "batch/service-job-update-persists-across-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_service_job_update_persists_across_describe.py", "service": "batch"} {"check_id": "batch.service-jobs-listing-empty-for-fresh-queue", "deployments": [], "key": "batch/service-jobs-listing-empty-for-fresh-queue", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:ListServiceJobs", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_service_jobs_listing_empty_for_fresh_queue.py", "service": "batch"} {"check_id": "batch.submit-job-progresses-to-runnable", "deployments": [], "key": "batch/submit-job-progresses-to-runnable", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_submit_job_progresses_to_runnable.py", "service": "batch"} {"check_id": "batch.submit-job-to-disabled-queue-fails", "deployments": [], "key": "batch/submit-job-to-disabled-queue-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:ListJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_submit_job_to_disabled_queue_fails.py", "service": "batch"} {"check_id": "batch.submit-job-to-disabled-queue-rejected", "deployments": [], "key": "batch/submit-job-to-disabled-queue-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobDefinitions", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:ListJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_submit_job_to_disabled_queue_rejected.py", "service": "batch"} {"check_id": "batch.submit-job-with-inactive-definition-fails", "deployments": [], "key": "batch/submit-job-with-inactive-definition-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobDefinitions", "batch:DescribeJobQueues", "batch:ListJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_submit_job_with_inactive_definition_fails.py", "service": "batch"} {"check_id": "batch.submit-service-job-missing-quota-share-name-rejected", "deployments": [], "key": "batch/submit-service-job-missing-quota-share-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_submit_service_job_missing_quota_share_name_rejected.py", "service": "batch"} {"check_id": "batch.submit-service-job-missing-required-quota-share-name-rejected", "deployments": [], "key": "batch/submit-service-job-missing-required-quota-share-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_submit_service_job_missing_required_quota_share_name_rejected.py", "service": "batch"} {"check_id": "batch.submit-service-job-progresses-to-running", "deployments": [], "key": "batch/submit-service-job-progresses-to-running", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_submit_service_job_progresses_to_running.py", "service": "batch"} {"check_id": "batch.submit-service-job-to-unknown-service-environment-fails", "deployments": [], "key": "batch/submit-service-job-to-unknown-service-environment-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:SubmitServiceJob"], "path": "behavioral/batch/check_submit_service_job_to_unknown_service_environment_fails.py", "service": "batch"} {"check_id": "batch.submit-service-job-unknown-service-environment-fails", "deployments": [], "key": "batch/submit-service-job-unknown-service-environment-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:ListServiceJobs", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_submit_service_job_unknown_service_environment_fails.py", "service": "batch"} {"check_id": "batch.tag-and-untag-resource-lifecycle", "deployments": [], "key": "batch/tag-and-untag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:ListTagsForResource", "batch:TagResource", "batch:UntagResource", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_tag_and_untag_resource_lifecycle.py", "service": "batch"} {"check_id": "batch.tag-nonexistent-resource-fails", "deployments": [], "key": "batch/tag-nonexistent-resource-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DeregisterJobDefinition", "batch:ListTagsForResource", "batch:RegisterJobDefinition", "batch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_tag_nonexistent_resource_fails.py", "service": "batch"} {"check_id": "batch.tag-resource-contract", "deployments": [], "key": "batch/tag-resource-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateConsumableResource", "batch:DeleteConsumableResource", "batch:DescribeConsumableResource", "batch:ListTagsForResource", "batch:TagResource"], "path": "behavioral/batch/check_tag_resource_contract.py", "service": "batch"} {"check_id": "batch.tag-resource-exceeds-limit-fails", "deployments": [], "key": "batch/tag-resource-exceeds-limit-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:ListTagsForResource", "batch:TagResource", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_tag_resource_exceeds_limit_fails.py", "service": "batch"} {"check_id": "batch.terminate-already-terminated-service-job-is-accepted-noop", "deployments": [], "key": "batch/terminate-already-terminated-service-job-is-accepted-noop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_terminate_already_terminated_service_job_is_accepted_noop.py", "service": "batch"} {"check_id": "batch.terminate-jobs-bulk-partitions-requested-ids-and-terminates-successful", "deployments": [], "key": "batch/terminate-jobs-bulk-partitions-requested-ids-and-terminates-successful", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:TerminateJobs", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_terminate_jobs_bulk_partitions_requested_ids_and_terminates_successful.py", "service": "batch"} {"check_id": "batch.terminate-runnable-job-forces-failed", "deployments": [], "key": "batch/terminate-runnable-job-forces-failed", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_terminate_runnable_job_forces_failed.py", "service": "batch"} {"check_id": "batch.terminate-service-job-moves-to-failed", "deployments": [], "key": "batch/terminate-service-job-moves-to-failed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_terminate_service_job_moves_to_failed.py", "service": "batch"} {"check_id": "batch.terminate-service-job-transitions-to-failed", "deployments": [], "key": "batch/terminate-service-job-transitions-to-failed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_terminate_service_job_transitions_to_failed.py", "service": "batch"} {"check_id": "batch.terminate-service-job-unknown-id-is-accepted", "deployments": [], "key": "batch/terminate-service-job-unknown-id-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeServiceJob", "batch:TerminateServiceJob"], "path": "behavioral/batch/check_terminate_service_job_unknown_id_is_accepted.py", "service": "batch"} {"check_id": "batch.terminate-service-job-unknown-id-silently-accepted", "deployments": [], "key": "batch/terminate-service-job-unknown-id-silently-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeJobs", "batch:DescribeServiceJob", "batch:TerminateJob", "batch:TerminateServiceJob"], "path": "behavioral/batch/check_terminate_service_job_unknown_id_silently_accepted.py", "service": "batch"} {"check_id": "batch.terminate-service-job-unknown-id-stays-unresolvable", "deployments": [], "key": "batch/terminate-service-job-unknown-id-stays-unresolvable", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DescribeServiceJob", "batch:TerminateServiceJob"], "path": "behavioral/batch/check_terminate_service_job_unknown_id_stays_unresolvable.py", "service": "batch"} {"check_id": "batch.terminate-service-job-without-permission-denied", "deployments": [], "key": "batch/terminate-service-job-without-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_terminate_service_job_without_permission_denied.py", "service": "batch"} {"check_id": "batch.terminate-terminal-job-is-idempotent", "deployments": [], "key": "batch/terminate-terminal-job-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/batch/check_terminate_terminal_job_is_idempotent.py", "service": "batch"} {"check_id": "batch.terminate-unknown-job-is-accepted", "deployments": [], "key": "batch/terminate-unknown-job-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeJobs", "batch:TerminateJob"], "path": "behavioral/batch/check_terminate_unknown_job_is_accepted.py", "service": "batch"} {"check_id": "batch.terminate-unknown-service-job-is-accepted", "deployments": [], "key": "batch/terminate-unknown-service-job-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeServiceJob", "batch:TerminateServiceJob"], "path": "behavioral/batch/check_terminate_unknown_service_job_is_accepted.py", "service": "batch"} {"check_id": "batch.unmanaged-compute-environment-lifecycle", "deployments": [], "key": "batch/unmanaged-compute-environment-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:DeleteComputeEnvironment", "batch:DescribeComputeEnvironments", "batch:UpdateComputeEnvironment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_unmanaged_compute_environment_lifecycle.py", "service": "batch"} {"check_id": "batch.update-job-queue-priority", "deployments": [], "key": "batch/update-job-queue-priority", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_update_job_queue_priority.py", "service": "batch"} {"check_id": "batch.update-quota-share-modifies-weight", "deployments": [], "key": "batch/update-quota-share-modifies-weight", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_update_quota_share_modifies_weight.py", "service": "batch"} {"check_id": "batch.update-quota-share-negative-amount-rejected", "deployments": [], "key": "batch/update-quota-share-negative-amount-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_update_quota_share_negative_amount_rejected.py", "service": "batch"} {"check_id": "batch.update-quota-share-unknown-fails", "deployments": [], "key": "batch/update-quota-share-unknown-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_update_quota_share_unknown_fails.py", "service": "batch"} {"check_id": "batch.update-quota-share-unknown-id-fails", "deployments": [], "key": "batch/update-quota-share-unknown-id-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:ListQuotaShares", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment"], "path": "behavioral/batch/check_update_quota_share_unknown_id_fails.py", "service": "batch"} {"check_id": "batch.update-service-job-in-terminal-state-rejected", "deployments": [], "key": "batch/update-service-job-in-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/batch/check_update_service_job_in_terminal_state_rejected.py", "service": "batch"} {"check_id": "batch.update-service-job-modifies-attributes-and-persists", "deployments": [], "key": "batch/update-service-job-modifies-attributes-and-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_update_service_job_modifies_attributes_and_persists.py", "service": "batch"} {"check_id": "batch.update-service-job-modifies-desired-state", "deployments": [], "key": "batch/update-service-job-modifies-desired-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_update_service_job_modifies_desired_state.py", "service": "batch"} {"check_id": "batch.update-service-job-modifies-scheduling-priority", "deployments": [], "key": "batch/update-service-job-modifies-scheduling-priority", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_update_service_job_modifies_scheduling_priority.py", "service": "batch"} {"check_id": "batch.update-service-job-on-terminal-job-fails", "deployments": [], "key": "batch/update-service-job-on-terminal-job-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateQuotaShare", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteQuotaShare", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/batch/check_update_service_job_on_terminal_job_fails.py", "service": "batch"} {"check_id": "batch.update-service-job-on-terminal-job-rejected", "deployments": [], "key": "batch/update-service-job-on-terminal-job-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/batch/check_update_service_job_on_terminal_job_rejected.py", "service": "batch"} {"check_id": "batch.update-service-job-terminal-state-blocked", "deployments": [], "key": "batch/update-service-job-terminal-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_update_service_job_terminal_state_blocked.py", "service": "batch"} {"check_id": "batch.update-service-job-terminal-state-rejected", "deployments": [], "key": "batch/update-service-job-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_update_service_job_terminal_state_rejected.py", "service": "batch"} {"check_id": "batch.update-service-job-unknown-id-fails", "deployments": [], "key": "batch/update-service-job-unknown-id-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:CreateJobQueue", "batch:CreateSchedulingPolicy", "batch:CreateServiceEnvironment", "batch:DeleteJobQueue", "batch:DeleteSchedulingPolicy", "batch:DeleteServiceEnvironment", "batch:DescribeJobQueues", "batch:DescribeServiceEnvironments", "batch:DescribeServiceJob", "batch:SubmitServiceJob", "batch:TerminateServiceJob", "batch:UpdateJobQueue", "batch:UpdateServiceEnvironment", "batch:UpdateServiceJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/batch/check_update_service_job_unknown_id_fails.py", "service": "batch"} {"check_id": "batch__cloudformation.deploy-compute-environment-and-job-queue-lifecycle", "deployments": [], "key": "batch__cloudformation/deploy-compute-environment-and-job-queue-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/batch__cloudformation/check_deploy_compute_environment_and_job_queue_lifecycle.py", "service": "batch__cloudformation"} {"check_id": "batch__cloudformation.deploy-consumable-resource-lifecycle", "deployments": [], "key": "batch__cloudformation/deploy-consumable-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeConsumableResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/batch__cloudformation/check_deploy_consumable_resource_lifecycle.py", "service": "batch__cloudformation"} {"check_id": "batch__cloudformation.deploy-consumable-resource-rejects-negative-quantity", "deployments": [], "key": "batch__cloudformation/deploy-consumable-resource-rejects-negative-quantity", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/batch__cloudformation/check_deploy_consumable_resource_rejects_negative_quantity.py", "service": "batch__cloudformation"} {"check_id": "batch__cloudformation.deploy-job-definition-lifecycle", "deployments": [], "key": "batch__cloudformation/deploy-job-definition-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/batch__cloudformation/check_deploy_job_definition_lifecycle.py", "service": "batch__cloudformation"} {"check_id": "batch__cloudformation.deploy-scheduling-policy-lifecycle", "deployments": [], "key": "batch__cloudformation/deploy-scheduling-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeSchedulingPolicies", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/batch__cloudformation/check_deploy_scheduling_policy_lifecycle.py", "service": "batch__cloudformation"} {"check_id": "batch__cloudformation.deploy-scheduling-policy-rejects-out-of-range-compute-reservation", "deployments": [], "key": "batch__cloudformation/deploy-scheduling-policy-rejects-out-of-range-compute-reservation", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DescribeSchedulingPolicies", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/batch__cloudformation/check_deploy_scheduling_policy_rejects_out_of_range_compute_reservation.py", "service": "batch__cloudformation"} {"check_id": "batch__cloudformation.deploy-service-environment-and-quota-share-lifecycle", "deployments": [], "key": "batch__cloudformation/deploy-service-environment-and-quota-share-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeJobQueues", "batch:DescribeQuotaShare", "batch:DescribeSchedulingPolicies", "batch:DescribeServiceEnvironments", "batch:UpdateJobQueue", "batch:UpdateQuotaShare", "batch:UpdateServiceEnvironment", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/batch__cloudformation/check_deploy_service_environment_and_quota_share_lifecycle.py", "service": "batch__cloudformation"} {"check_id": "batch__cloudformation__iam.compute-environment-missing-service-role-rejected", "deployments": [], "key": "batch__cloudformation__iam/compute-environment-missing-service-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["batch:DescribeComputeEnvironments", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/batch__cloudformation__iam/check_compute_environment_missing_service_role_rejected.py", "service": "batch__cloudformation__iam"} {"check_id": "batch__cloudformation__iam.compute-environment-tag-change-forces-replacement", "deployments": [], "key": "batch__cloudformation__iam/compute-environment-tag-change-forces-replacement", "labels": ["axis:happy-path", "plane:control"], "operations": ["batch:DescribeComputeEnvironments", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole"], "path": "behavioral/batch__cloudformation__iam/check_compute_environment_tag_change_forces_replacement.py", "service": "batch__cloudformation__iam"} {"check_id": "batch__ecs.batch-propagate-tags-copies-definition-and-job-tags-to-ecs-task-job-tag-wins", "deployments": [], "key": "batch__ecs/batch-propagate-tags-copies-definition-and-job-tags-to-ecs-task-job-tag-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobDefinitions", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecs:DescribeTasks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/batch__ecs/check_batch_propagate_tags_copies_definition_and_job_tags_to_ecs_task_job_tag_wins.py", "service": "batch__ecs"} {"check_id": "batch__ecs__logs.batch-fargate-job-runs-as-ecs-task-and-logs", "deployments": [], "key": "batch__ecs__logs/batch-fargate-job-runs-as-ecs-task-and-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DescribeTasks", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/batch__ecs__logs/check_batch_fargate_job_runs_as_ecs_task_and_logs.py", "service": "batch__ecs__logs"} {"check_id": "batch__ecs__logs.batch-job-with-missing-image-tag-fails-and-logs-nothing", "deployments": [], "key": "batch__ecs__logs/batch-job-with-missing-image-tag-fails-and-logs-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents"], "path": "behavioral/batch__ecs__logs/check_batch_job_with_missing_image_tag_fails_and_logs_nothing.py", "service": "batch__ecs__logs"} {"check_id": "batch__events__sqs.batch-job-state-change-event-delivered-to-matching-rule-and-withheld-from-other-queue", "deployments": [], "key": "batch__events__sqs/batch-job-state-change-event-delivered-to-matching-rule-and-withheld-from-other-queue", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/batch__events__sqs/check_batch_job_state_change_event_delivered_to_matching_rule_and_withheld_from_other_queue.py", "service": "batch__events__sqs"} {"check_id": "batch__events__sqs.events-workload-state-change-batch-failed-event-carries-exit-code-and-attempts-only-on-failed-rule", "deployments": [], "key": "batch__events__sqs/events-workload-state-change-batch-failed-event-carries-exit-code-and-attempts-only-on-failed-rule", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTaskDefinitions", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:DeleteLogStream", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/batch__events__sqs/check_events_workload_state_change_batch_failed_event_carries_exit_code_and_attempts_only_on_failed_rule.py", "service": "batch__events__sqs"} {"check_id": "batch__logs.batch-array-child-index-drives-distinct-stdout", "deployments": [], "key": "batch__logs/batch-array-child-index-drives-distinct-stdout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_array_child_index_drives_distinct_stdout.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-attempt-timeout-kills-container-before-completion-marker", "deployments": [], "key": "batch__logs/batch-attempt-timeout-kills-container-before-completion-marker", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_attempt_timeout_kills_container_before_completion_marker.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-awslogs-stream-prefix-derives-stream-name-from-prefix-and-ecs-task-id", "deployments": [], "key": "batch__logs/batch-awslogs-stream-prefix-derives-stream-name-from-prefix-and-ecs-task-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/batch__logs/check_batch_awslogs_stream_prefix_derives_stream_name_from_prefix_and_ecs_task_id.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-container-memory-limit-kills-job-before-completion-marker", "deployments": [], "key": "batch__logs/batch-container-memory-limit-kills-job-before-completion-marker", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_container_memory_limit_kills_job_before_completion_marker.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-job-stdout-matches-computed-output", "deployments": [], "key": "batch__logs/batch-job-stdout-matches-computed-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_job_stdout_matches_computed_output.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-maxvcpus-cap-holds-second-job-runnable-then-runs-it", "deployments": [], "key": "batch__logs/batch-maxvcpus-cap-holds-second-job-runnable-then-runs-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_maxvcpus_cap_holds_second_job_runnable_then_runs_it.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-retry-attempt-number-visible-to-container-and-second-attempt-succeeds", "deployments": [], "key": "batch__logs/batch-retry-attempt-number-visible-to-container-and-second-attempt-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_retry_attempt_number_visible_to_container_and_second_attempt_succeeds.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-sequential-array-child-failure-leaves-remaining-children-blocked", "deployments": [], "key": "batch__logs/batch-sequential-array-child-failure-leaves-remaining-children-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_sequential_array_child_failure_leaves_remaining_children_blocked.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-sequential-array-children-run-one-at-a-time-in-index-order", "deployments": [], "key": "batch__logs/batch-sequential-array-children-run-one-at-a-time-in-index-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_sequential_array_children_run_one_at_a_time_in_index_order.py", "service": "batch__logs"} {"check_id": "batch__logs.batch-terminate-running-job-stops-container-before-completion-marker", "deployments": [], "key": "batch__logs/batch-terminate-running-job-stops-container-before-completion-marker", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/batch__logs/check_batch_terminate_running_job_stops_container_before_completion_marker.py", "service": "batch__logs"} {"check_id": "batch__s3.batch-array-24-shards-write-own-object-and-out-of-scope-put-denied", "deployments": [], "key": "batch__s3/batch-array-24-shards-write-own-object-and-out-of-scope-put-denied", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/batch__s3/check_batch_array_24_shards_write_own_object_and_out_of_scope_put_denied.py", "service": "batch__s3"} {"check_id": "batch__s3.batch-job-s3-write-outside-job-role-scope-is-denied", "deployments": [], "key": "batch__s3/batch-job-s3-write-outside-job-role-scope-is-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/batch__s3/check_batch_job_s3_write_outside_job_role_scope_is_denied.py", "service": "batch__s3"} {"check_id": "batch__s3.batch-job-writes-s3-object-read-back-byte-exact", "deployments": [], "key": "batch__s3/batch-job-writes-s3-object-read-back-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["batch:CreateComputeEnvironment", "batch:CreateJobQueue", "batch:DeleteComputeEnvironment", "batch:DeleteJobQueue", "batch:DeregisterJobDefinition", "batch:DescribeComputeEnvironments", "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:RegisterJobDefinition", "batch:SubmitJob", "batch:TerminateJob", "batch:UpdateComputeEnvironment", "batch:UpdateJobQueue", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/batch__s3/check_batch_job_writes_s3_object_read_back_byte_exact.py", "service": "batch__s3"} {"check_id": "bcm-dashboards.create-dashboard-double-space-name-rejected", "deployments": [], "key": "bcm-dashboards/create-dashboard-double-space-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:GetDashboard", "bcm-dashboards:ListDashboards"], "path": "behavioral/bcm-dashboards/check_create_dashboard_double_space_name_rejected.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.create-dashboard-widget-count-exceeds-max-rejected", "deployments": [], "key": "bcm-dashboards/create-dashboard-widget-count-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:GetDashboard", "bcm-dashboards:ListDashboards"], "path": "behavioral/bcm-dashboards/check_create_dashboard_widget_count_exceeds_max_rejected.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.create-get-dashboard-roundtrip", "deployments": [], "key": "bcm-dashboards/create-get-dashboard-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:GetDashboard"], "path": "behavioral/bcm-dashboards/check_create_get_dashboard_roundtrip.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.create-scheduled-report-dashboard-not-found-rejected", "deployments": [], "key": "bcm-dashboards/create-scheduled-report-dashboard-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:GetScheduledReport", "bcm-dashboards:ListScheduledReports", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-dashboards/check_create_scheduled_report_dashboard_not_found_rejected.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.create-scheduled-report-idempotent-token-concurrent", "deployments": [], "key": "bcm-dashboards/create-scheduled-report-idempotent-token-concurrent", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:ListScheduledReports", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_create_scheduled_report_idempotent_token_concurrent.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.create-scheduled-report-malformed-role-arn-rejected", "deployments": [], "key": "bcm-dashboards/create-scheduled-report-malformed-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:GetScheduledReport", "bcm-dashboards:ListScheduledReports", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_create_scheduled_report_malformed_role_arn_rejected.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.create-scheduled-report-token-reuse-conflict-rejected", "deployments": [], "key": "bcm-dashboards/create-scheduled-report-token-reuse-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:ListScheduledReports", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_create_scheduled_report_token_reuse_conflict_rejected.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.delete-dashboard-removes-it", "deployments": [], "key": "bcm-dashboards/delete-dashboard-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:GetDashboard", "bcm-dashboards:UpdateDashboard"], "path": "behavioral/bcm-dashboards/check_delete_dashboard_removes_it.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.delete-nonexistent-dashboard-idempotent-noop", "deployments": [], "key": "bcm-dashboards/delete-nonexistent-dashboard-idempotent-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:GetDashboard"], "path": "behavioral/bcm-dashboards/check_delete_nonexistent_dashboard_idempotent_noop.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.delete-scheduled-report-already-deleted-not-found", "deployments": [], "key": "bcm-dashboards/delete-scheduled-report-already-deleted-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:GetScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_delete_scheduled_report_already_deleted_not_found.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.e2e-dashboard-scheduled-report-full-workflow", "deployments": [], "key": "bcm-dashboards/e2e-dashboard-scheduled-report-full-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:ExecuteScheduledReport", "bcm-dashboards:GetDashboard", "bcm-dashboards:GetScheduledReport", "bcm-dashboards:ListTagsForResource", "bcm-dashboards:TagResource", "bcm-dashboards:UpdateDashboard", "bcm-dashboards:UpdateScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_e2e_dashboard_scheduled_report_full_workflow.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.execute-scheduled-report-deleted-dashboard-unhealthy", "deployments": [], "key": "bcm-dashboards/execute-scheduled-report-deleted-dashboard-unhealthy", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:ExecuteScheduledReport", "bcm-dashboards:GetDashboard", "bcm-dashboards:GetScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_execute_scheduled_report_deleted_dashboard_unhealthy.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.execute-scheduled-report-dry-run-no-execution-triggered", "deployments": [], "key": "bcm-dashboards/execute-scheduled-report-dry-run-no-execution-triggered", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:ExecuteScheduledReport", "bcm-dashboards:GetScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_execute_scheduled_report_dry_run_no_execution_triggered.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.execute-scheduled-report-health-status-populated-after-dry-run", "deployments": [], "key": "bcm-dashboards/execute-scheduled-report-health-status-populated-after-dry-run", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:ExecuteScheduledReport", "bcm-dashboards:GetScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_execute_scheduled_report_health_status_populated_after_dry_run.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.execute-scheduled-report-role-not-assumable-unhealthy", "deployments": [], "key": "bcm-dashboards/execute-scheduled-report-role-not-assumable-unhealthy", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:ExecuteScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:UpdateAssumeRolePolicy"], "path": "behavioral/bcm-dashboards/check_execute_scheduled_report_role_not_assumable_unhealthy.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.get-resource-policy-absent-returns-empty-document", "deployments": [], "key": "bcm-dashboards/get-resource-policy-absent-returns-empty-document", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:GetDashboard", "bcm-dashboards:GetResourcePolicy"], "path": "behavioral/bcm-dashboards/check_get_resource_policy_absent_returns_empty_document.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.list-dashboards-max-results-out-of-range-rejected", "deployments": [], "key": "bcm-dashboards/list-dashboards-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:ListDashboards"], "path": "behavioral/bcm-dashboards/check_list_dashboards_max_results_out_of_range_rejected.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.list-dashboards-reflects-created-and-deleted", "deployments": [], "key": "bcm-dashboards/list-dashboards-reflects-created-and-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:ListDashboards"], "path": "behavioral/bcm-dashboards/check_list_dashboards_reflects_created_and_deleted.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.scheduled-report-default-schedule-state-enabled", "deployments": [], "key": "bcm-dashboards/scheduled-report-default-schedule-state-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:GetScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_scheduled_report_default_schedule_state_enabled.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.tag-and-list-tags-roundtrip", "deployments": [], "key": "bcm-dashboards/tag-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:ListTagsForResource"], "path": "behavioral/bcm-dashboards/check_tag_and_list_tags_roundtrip.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.tag-resource-merges-existing-tags", "deployments": [], "key": "bcm-dashboards/tag-resource-merges-existing-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:ListTagsForResource", "bcm-dashboards:TagResource"], "path": "behavioral/bcm-dashboards/check_tag_resource_merges_existing_tags.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.untag-resource-removes-specified-keys", "deployments": [], "key": "bcm-dashboards/untag-resource-removes-specified-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:ListTagsForResource", "bcm-dashboards:UntagResource"], "path": "behavioral/bcm-dashboards/check_untag_resource_removes_specified_keys.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.update-dashboard-replaces-widgets-completely", "deployments": [], "key": "bcm-dashboards/update-dashboard-replaces-widgets-completely", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:GetDashboard", "bcm-dashboards:UpdateDashboard"], "path": "behavioral/bcm-dashboards/check_update_dashboard_replaces_widgets_completely.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.update-dashboard-updated-at-changes", "deployments": [], "key": "bcm-dashboards/update-dashboard-updated-at-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:GetDashboard", "bcm-dashboards:UpdateDashboard"], "path": "behavioral/bcm-dashboards/check_update_dashboard_updated_at_changes.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.update-scheduled-report-clear-widget-ids-resets-empty", "deployments": [], "key": "bcm-dashboards/update-scheduled-report-clear-widget-ids-resets-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:GetDashboard", "bcm-dashboards:GetScheduledReport", "bcm-dashboards:UpdateScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_update_scheduled_report_clear_widget_ids_resets_empty.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards.update-scheduled-report-toggle-disabled-enabled", "deployments": [], "key": "bcm-dashboards/update-scheduled-report-toggle-disabled-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:CreateDashboard", "bcm-dashboards:CreateScheduledReport", "bcm-dashboards:DeleteDashboard", "bcm-dashboards:DeleteScheduledReport", "bcm-dashboards:GetScheduledReport", "bcm-dashboards:UpdateScheduledReport", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bcm-dashboards/check_update_scheduled_report_toggle_disabled_enabled.py", "service": "bcm-dashboards"} {"check_id": "bcm-dashboards__cloudformation.deploy-bcm-dashboard-invalid-widget-title-rejected-and-rolled-back", "deployments": [], "key": "bcm-dashboards__cloudformation/deploy-bcm-dashboard-invalid-widget-title-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-dashboards:GetDashboard", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/bcm-dashboards__cloudformation/check_deploy_bcm_dashboard_invalid_widget_title_rejected_and_rolled_back.py", "service": "bcm-dashboards__cloudformation"} {"check_id": "bcm-dashboards__cloudformation.deploy-bcm-dashboard-round-trip-and-delete", "deployments": [], "key": "bcm-dashboards__cloudformation/deploy-bcm-dashboard-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:GetDashboard", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/bcm-dashboards__cloudformation/check_deploy_bcm_dashboard_round_trip_and_delete.py", "service": "bcm-dashboards__cloudformation"} {"check_id": "bcm-dashboards__cloudformation.deploy-bcm-scheduled-report-round-trip-and-delete", "deployments": [], "key": "bcm-dashboards__cloudformation/deploy-bcm-scheduled-report-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-dashboards:GetDashboard", "bcm-dashboards:GetScheduledReport", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/bcm-dashboards__cloudformation/check_deploy_bcm_scheduled_report_round_trip_and_delete.py", "service": "bcm-dashboards__cloudformation"} {"check_id": "bcm-data-exports.concurrent-delete-export-exactly-one-succeeds", "deployments": [], "key": "bcm-data-exports/concurrent-delete-export-exactly-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_concurrent_delete_export_exactly_one_succeeds.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.create-export-invalid-name-pattern-rejected", "deployments": [], "key": "bcm-data-exports/create-export-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:ListExports", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_create_export_invalid_name_pattern_rejected.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.create-export-invalid-query-statement-rejected", "deployments": [], "key": "bcm-data-exports/create-export-invalid-query-statement-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:ListExports", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_create_export_invalid_query_statement_rejected.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.create-export-invalid-refresh-cadence-frequency-rejected", "deployments": [], "key": "bcm-data-exports/create-export-invalid-refresh-cadence-frequency-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:ListExports", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_create_export_invalid_refresh_cadence_frequency_rejected.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.create-export-without-iam-permission-rejected", "deployments": [], "key": "bcm-data-exports/create-export-without-iam-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:ListExports", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_create_export_without_iam_permission_rejected.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.create-get-export-round-trip", "deployments": [], "key": "bcm-data-exports/create-get-export-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_create_get_export_round_trip.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.delete-export-removes-from-list", "deployments": [], "key": "bcm-data-exports/delete-export-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:ListExports", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_delete_export_removes_from_list.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.export-delivery-fails-without-bucket-policy-positive-control-succeeds", "deployments": [], "key": "bcm-data-exports/export-delivery-fails-without-bucket-policy-positive-control-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:ListExports", "bcm-data-exports:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_export_delivery_fails_without_bucket_policy_positive_control_succeeds.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.export-status-healthy-immediately-after-creation", "deployments": [], "key": "bcm-data-exports/export-status-healthy-immediately-after-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_export_status_healthy_immediately_after_creation.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.get-execution-not-found-for-bogus-execution-id", "deployments": [], "key": "bcm-data-exports/get-execution-not-found-for-bogus-execution-id", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExecution", "bcm-data-exports:ListExecutions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_get_execution_not_found_for_bogus_execution_id.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.get-export-cross-account-arn-isolated", "deployments": [], "key": "bcm-data-exports/get-export-cross-account-arn-isolated", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_get_export_cross_account_arn_isolated.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.get-export-nonexistent-arn-not-found", "deployments": [], "key": "bcm-data-exports/get-export-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_get_export_nonexistent_arn_not_found.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.get-table-invalid-table-name-rejected", "deployments": [], "key": "bcm-data-exports/get-table-invalid-table-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:GetTable"], "path": "behavioral/bcm-data-exports/check_get_table_invalid_table_name_rejected.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.get-table-schema-known-columns", "deployments": [], "key": "bcm-data-exports/get-table-schema-known-columns", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-data-exports:GetTable"], "path": "behavioral/bcm-data-exports/check_get_table_schema_known_columns.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.list-executions-max-results-out-of-range-rejected", "deployments": [], "key": "bcm-data-exports/list-executions-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:ListExecutions", "bcm-data-exports:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_list_executions_max_results_out_of_range_rejected.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.list-exports-reflects-multiple-creates", "deployments": [], "key": "bcm-data-exports/list-exports-reflects-multiple-creates", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:ListExports", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_list_exports_reflects_multiple_creates.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.list-tables-pagination-and-known-table", "deployments": [], "key": "bcm-data-exports/list-tables-pagination-and-known-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-data-exports:ListTables"], "path": "behavioral/bcm-data-exports/check_list_tables_pagination_and_known_table.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "bcm-data-exports/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:ListTagsForResource", "bcm-data-exports:TagResource", "bcm-data-exports:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_tag_resource_and_list_tags_round_trip.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.tag-resource-exceeds-max-tag-count-rejected", "deployments": [], "key": "bcm-data-exports/tag-resource-exceeds-max-tag-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:ListTagsForResource", "bcm-data-exports:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_tag_resource_exceeds_max_tag_count_rejected.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.update-export-full-replace-does-not-merge-table-configurations", "deployments": [], "key": "bcm-data-exports/update-export-full-replace-does-not-merge-table-configurations", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:UpdateExport", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_update_export_full_replace_does_not_merge_table_configurations.py", "service": "bcm-data-exports"} {"check_id": "bcm-data-exports.update-export-on-deleted-export-rejected", "deployments": [], "key": "bcm-data-exports/update-export-on-deleted-export-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-data-exports:CreateExport", "bcm-data-exports:DeleteExport", "bcm-data-exports:GetExport", "bcm-data-exports:UpdateExport", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bcm-data-exports/check_update_export_on_deleted_export_rejected.py", "service": "bcm-data-exports"} {"check_id": "bcm-pricing-calculator.batch-create-workload-estimate-usage-exceeds-max-entries-rejected", "deployments": [], "key": "bcm-pricing-calculator/batch-create-workload-estimate-usage-exceeds-max-entries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-pricing-calculator:BatchCreateWorkloadEstimateUsage", "bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:ListWorkloadEstimateUsage", "sts:GetCallerIdentity"], "path": "behavioral/bcm-pricing-calculator/check_batch_create_workload_estimate_usage_exceeds_max_entries_rejected.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.bill-scenario-create-get-delete-lifecycle", "deployments": [], "key": "bcm-pricing-calculator/bill-scenario-create-get-delete-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-pricing-calculator:CreateBillScenario", "bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:ListBillScenarios"], "path": "behavioral/bcm-pricing-calculator/check_bill_scenario_create_get_delete_lifecycle.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.concurrent-create-bill-scenario-same-client-token-dedupes", "deployments": [], "key": "bcm-pricing-calculator/concurrent-create-bill-scenario-same-client-token-dedupes", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-pricing-calculator:CreateBillScenario", "bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:GetWorkloadEstimate", "bcm-pricing-calculator:ListBillScenarios"], "path": "behavioral/bcm-pricing-calculator/check_concurrent_create_bill_scenario_same_client_token_dedupes.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.create-workload-estimate-invalid-name-pattern-rejected", "deployments": [], "key": "bcm-pricing-calculator/create-workload-estimate-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:GetWorkloadEstimate", "bcm-pricing-calculator:ListWorkloadEstimates"], "path": "behavioral/bcm-pricing-calculator/check_create_workload_estimate_invalid_name_pattern_rejected.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.get-workload-estimate-after-delete-not-found-rejected", "deployments": [], "key": "bcm-pricing-calculator/get-workload-estimate-after-delete-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:GetWorkloadEstimate", "bcm-pricing-calculator:UpdateWorkloadEstimate"], "path": "behavioral/bcm-pricing-calculator/check_get_workload_estimate_after_delete_not_found_rejected.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.list-workload-estimates-pagination-includes-all-created", "deployments": [], "key": "bcm-pricing-calculator/list-workload-estimates-pagination-includes-all-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:ListWorkloadEstimates"], "path": "behavioral/bcm-pricing-calculator/check_list_workload_estimates_pagination_includes_all_created.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "bcm-pricing-calculator/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:ListTagsForResource", "bcm-pricing-calculator:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/bcm-pricing-calculator/check_tag_resource_and_list_tags_roundtrip.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.tag-resource-reserved-prefix-key-rejected", "deployments": [], "key": "bcm-pricing-calculator/tag-resource-reserved-prefix-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:ListTagsForResource", "bcm-pricing-calculator:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/bcm-pricing-calculator/check_tag_resource_reserved_prefix_key_rejected.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.untag-resource-removes-tag", "deployments": [], "key": "bcm-pricing-calculator/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:ListTagsForResource", "bcm-pricing-calculator:TagResource", "bcm-pricing-calculator:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/bcm-pricing-calculator/check_untag_resource_removes_tag.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.workload-estimate-create-get-delete-lifecycle", "deployments": [], "key": "bcm-pricing-calculator/workload-estimate-create-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:GetWorkloadEstimate"], "path": "behavioral/bcm-pricing-calculator/check_workload_estimate_create_get_delete_lifecycle.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.workload-estimate-usage-add-reaches-terminal-state", "deployments": [], "key": "bcm-pricing-calculator/workload-estimate-usage-add-reaches-terminal-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-pricing-calculator:BatchCreateWorkloadEstimateUsage", "bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:GetWorkloadEstimate", "bcm-pricing-calculator:ListWorkloadEstimateUsage", "sts:GetCallerIdentity"], "path": "behavioral/bcm-pricing-calculator/check_workload_estimate_usage_add_reaches_terminal_state.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.workload-estimate-usage-delete-removes-item", "deployments": [], "key": "bcm-pricing-calculator/workload-estimate-usage-delete-removes-item", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-pricing-calculator:BatchCreateWorkloadEstimateUsage", "bcm-pricing-calculator:BatchDeleteWorkloadEstimateUsage", "bcm-pricing-calculator:BatchUpdateWorkloadEstimateUsage", "bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:ListWorkloadEstimateUsage", "sts:GetCallerIdentity"], "path": "behavioral/bcm-pricing-calculator/check_workload_estimate_usage_delete_removes_item.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-pricing-calculator.workload-estimate-usage-update-changes-quantity", "deployments": [], "key": "bcm-pricing-calculator/workload-estimate-usage-update-changes-quantity", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-pricing-calculator:BatchCreateWorkloadEstimateUsage", "bcm-pricing-calculator:BatchUpdateWorkloadEstimateUsage", "bcm-pricing-calculator:CreateWorkloadEstimate", "bcm-pricing-calculator:DeleteWorkloadEstimate", "bcm-pricing-calculator:GetWorkloadEstimate", "bcm-pricing-calculator:ListWorkloadEstimateUsage", "sts:GetCallerIdentity"], "path": "behavioral/bcm-pricing-calculator/check_workload_estimate_usage_update_changes_quantity.py", "service": "bcm-pricing-calculator"} {"check_id": "bcm-recommended-actions.access-denied-without-permission-rejected", "deployments": [], "key": "bcm-recommended-actions/access-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bcm-recommended-actions/check_access_denied_without_permission_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.concurrent-differently-filtered-calls-do-not-cross-contaminate", "deployments": [], "key": "bcm-recommended-actions/concurrent-differently-filtered-calls-do-not-cross-contaminate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_concurrent_differently_filtered_calls_do_not_cross_contaminate.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.concurrent-identical-calls-return-consistent-ids", "deployments": [], "key": "bcm-recommended-actions/concurrent-identical-calls-return-consistent-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_concurrent_identical_calls_return_consistent_ids.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.concurrent-list-calls-consistent", "deployments": [], "key": "bcm-recommended-actions/concurrent-list-calls-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_concurrent_list_calls_consistent.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.empty-filter-actions-equivalent-to-no-filter", "deployments": [], "key": "bcm-recommended-actions/empty-filter-actions-equivalent-to-no-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_empty_filter_actions_equivalent_to_no_filter.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.empty-filter-values-list-rejected", "deployments": [], "key": "bcm-recommended-actions/empty-filter-values-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_empty_filter_values_list_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.equals-and-not-equals-same-value-is-self-contradiction-empty", "deployments": [], "key": "bcm-recommended-actions/equals-and-not-equals-same-value-is-self-contradiction-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_equals_and_not_equals_same_value_is_self_contradiction_empty.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.explicit-deny-overrides-broad-allow-rejected", "deployments": [], "key": "bcm-recommended-actions/explicit-deny-overrides-broad-allow-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bcm-recommended-actions/check_explicit_deny_overrides_broad_allow_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.feature-equals-unknown-value-returns-empty-not-error", "deployments": [], "key": "bcm-recommended-actions/feature-equals-unknown-value-returns-empty-not-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_feature_equals_unknown_value_returns_empty_not_error.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-contradictory-type-feature-combo-returns-empty", "deployments": [], "key": "bcm-recommended-actions/filter-contradictory-type-feature-combo-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_contradictory_type_feature_combo_returns_empty.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-feature-equals-and-not-equals-partition", "deployments": [], "key": "bcm-recommended-actions/filter-feature-equals-and-not-equals-partition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_feature_equals_and_not_equals_partition.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-feature-multivalue-or-semantics", "deployments": [], "key": "bcm-recommended-actions/filter-feature-multivalue-or-semantics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_feature_multivalue_or_semantics.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-invalid-key-rejected", "deployments": [], "key": "bcm-recommended-actions/filter-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_invalid_key_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-invalid-match-option-rejected", "deployments": [], "key": "bcm-recommended-actions/filter-invalid-match-option-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_invalid_match_option_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-match-option-wrong-case-rejected", "deployments": [], "key": "bcm-recommended-actions/filter-match-option-wrong-case-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_match_option_wrong_case_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-multiple-action-filters-is-and-semantics", "deployments": [], "key": "bcm-recommended-actions/filter-multiple-action-filters-is-and-semantics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_multiple_action_filters_is_and_semantics.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-not-equals-multiple-values-excludes-all", "deployments": [], "key": "bcm-recommended-actions/filter-not-equals-multiple-values-excludes-all", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_not_equals_multiple_values_excludes_all.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-severity-equals-and-not-equals-partition", "deployments": [], "key": "bcm-recommended-actions/filter-severity-equals-and-not-equals-partition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_severity_equals_and_not_equals_partition.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-severity-multivalue-or-partitions-against-info", "deployments": [], "key": "bcm-recommended-actions/filter-severity-multivalue-or-partitions-against-info", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_severity_multivalue_or_partitions_against_info.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-severity-not-equals-all-values-returns-empty", "deployments": [], "key": "bcm-recommended-actions/filter-severity-not-equals-all-values-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_severity_not_equals_all_values_returns_empty.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-severity-partition-invariant", "deployments": [], "key": "bcm-recommended-actions/filter-severity-partition-invariant", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_severity_partition_invariant.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-three-way-and-across-feature-severity-type", "deployments": [], "key": "bcm-recommended-actions/filter-three-way-and-across-feature-severity-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_three_way_and_across_feature_severity_type.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-type-equals-and-not-equals-partition", "deployments": [], "key": "bcm-recommended-actions/filter-type-equals-and-not-equals-partition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_type_equals_and_not_equals_partition.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-type-multivalue-or-semantics", "deployments": [], "key": "bcm-recommended-actions/filter-type-multivalue-or-semantics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_type_multivalue_or_semantics.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-type-partition-invariant", "deployments": [], "key": "bcm-recommended-actions/filter-type-partition-invariant", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_type_partition_invariant.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filter-unknown-value-returns-empty-no-error", "deployments": [], "key": "bcm-recommended-actions/filter-unknown-value-returns-empty-no-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filter_unknown_value_returns_empty_no_error.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.filtered-pagination-reconstructs-full-filtered-set", "deployments": [], "key": "bcm-recommended-actions/filtered-pagination-reconstructs-full-filtered-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_filtered_pagination_reconstructs_full_filtered_set.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.invalid-filter-key-rejected", "deployments": [], "key": "bcm-recommended-actions/invalid-filter-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_invalid_filter_key_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.invalid-match-option-rejected", "deployments": [], "key": "bcm-recommended-actions/invalid-match-option-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_invalid_match_option_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.list-recommended-actions-schema-valid", "deployments": [], "key": "bcm-recommended-actions/list-recommended-actions-schema-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_list_recommended_actions_schema_valid.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.max-results-boundary-values-accepted", "deployments": [], "key": "bcm-recommended-actions/max-results-boundary-values-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_max_results_boundary_values_accepted.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.max-results-enforces-page-size", "deployments": [], "key": "bcm-recommended-actions/max-results-enforces-page-size", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_max_results_enforces_page_size.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.max-results-larger-than-total-returns-all-without-token", "deployments": [], "key": "bcm-recommended-actions/max-results-larger-than-total-returns-all-without-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_max_results_larger_than_total_returns_all_without_token.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.max-results-out-of-range-rejected", "deployments": [], "key": "bcm-recommended-actions/max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_max_results_out_of_range_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.multiple-action-filters-are-anded", "deployments": [], "key": "bcm-recommended-actions/multiple-action-filters-are-anded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_multiple_action_filters_are_anded.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.next-token-absent-when-results-exhausted", "deployments": [], "key": "bcm-recommended-actions/next-token-absent-when-results-exhausted", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_next_token_absent_when_results_exhausted.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.next-token-absent-when-single-page", "deployments": [], "key": "bcm-recommended-actions/next-token-absent-when-single-page", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_next_token_absent_when_single_page.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.next-token-invalid-rejected", "deployments": [], "key": "bcm-recommended-actions/next-token-invalid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_next_token_invalid_rejected.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.next-token-reuse-deterministic", "deployments": [], "key": "bcm-recommended-actions/next-token-reuse-deterministic", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_next_token_reuse_deterministic.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.pagination-full-sweep-no-duplicate-ids", "deployments": [], "key": "bcm-recommended-actions/pagination-full-sweep-no-duplicate-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_pagination_full_sweep_no_duplicate_ids.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.pagination-matches-full-listing", "deployments": [], "key": "bcm-recommended-actions/pagination-matches-full-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_pagination_matches_full_listing.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.recommended-action-type-matches-documented-feature-severity", "deployments": [], "key": "bcm-recommended-actions/recommended-action-type-matches-documented-feature-severity", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_recommended_action_type_matches_documented_feature_severity.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.repeat-list-calls-return-consistent-ids", "deployments": [], "key": "bcm-recommended-actions/repeat-list-calls-return-consistent-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_repeat_list_calls_return_consistent_ids.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.response-contract-field-shapes", "deployments": [], "key": "bcm-recommended-actions/response-contract-field-shapes", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_response_contract_field_shapes.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.result-ids-unique-within-single-page", "deployments": [], "key": "bcm-recommended-actions/result-ids-unique-within-single-page", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_result_ids_unique_within_single_page.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.returned-account-ids-match-caller-account", "deployments": [], "key": "bcm-recommended-actions/returned-account-ids-match-caller-account", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions", "sts:GetCallerIdentity"], "path": "behavioral/bcm-recommended-actions/check_returned_account_ids_match_caller_account.py", "service": "bcm-recommended-actions"} {"check_id": "bcm-recommended-actions.type-not-equals-unknown-value-returns-everything", "deployments": [], "key": "bcm-recommended-actions/type-not-equals-unknown-value-returns-everything", "labels": ["axis:happy-path", "plane:control"], "operations": ["bcm-recommended-actions:ListRecommendedActions"], "path": "behavioral/bcm-recommended-actions/check_type_not_equals_unknown_value_returns_everything.py", "service": "bcm-recommended-actions"} {"check_id": "bedrock-agent-runtime.concurrent-create-invocation-same-id-race", "deployments": [], "key": "bedrock-agent-runtime/concurrent-create-invocation-same-id-race", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_concurrent_create_invocation_same_id_race.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.concurrent-create-invocation-same-id-single-winner", "deployments": [], "key": "bedrock-agent-runtime/concurrent-create-invocation-same-id-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_concurrent_create_invocation_same_id_single_winner.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.concurrent-end-session-single-winner", "deployments": [], "key": "bedrock-agent-runtime/concurrent-end-session-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_concurrent_end_session_single_winner.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.concurrent-put-invocation-step-distinct-ids-all-persisted", "deployments": [], "key": "bedrock-agent-runtime/concurrent-put-invocation-step-distinct-ids-all-persisted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_concurrent_put_invocation_step_distinct_ids_all_persisted.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.concurrent-put-invocation-step-same-id-consistent-winner", "deployments": [], "key": "bedrock-agent-runtime/concurrent-put-invocation-step-same-id-consistent-winner", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_concurrent_put_invocation_step_same_id_consistent_winner.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.concurrent-put-invocation-step-unique-ids", "deployments": [], "key": "bedrock-agent-runtime/concurrent-put-invocation-step-unique-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_concurrent_put_invocation_step_unique_ids.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.concurrent-update-session-metadata-no-corruption", "deployments": [], "key": "bedrock-agent-runtime/concurrent-update-session-metadata-no-corruption", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_concurrent_update_session_metadata_no_corruption.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-invocation-appears-in-list", "deployments": [], "key": "bedrock-agent-runtime/create-invocation-appears-in-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_create_invocation_appears_in_list.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-invocation-auto-generates-id", "deployments": [], "key": "bedrock-agent-runtime/create-invocation-auto-generates-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_create_invocation_auto_generates_id.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-invocation-createdat-matches-list", "deployments": [], "key": "bedrock-agent-runtime/create-invocation-createdat-matches-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_create_invocation_createdat_matches_list.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-invocation-duplicate-id-rejected", "deployments": [], "key": "bedrock-agent-runtime/create-invocation-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_create_invocation_duplicate_id_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-invocation-nonexistent-session-not-found", "deployments": [], "key": "bedrock-agent-runtime/create-invocation-nonexistent-session-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_create_invocation_nonexistent_session_not_found.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-invocation-on-ended-session-rejected", "deployments": [], "key": "bedrock-agent-runtime/create-invocation-on-ended-session-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_create_invocation_on_ended_session_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-session-concurrent-calls-return-distinct-sessions", "deployments": [], "key": "bedrock-agent-runtime/create-session-concurrent-calls-return-distinct-sessions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_create_session_concurrent_calls_return_distinct_sessions.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-session-invalid-encryption-key-rejected", "deployments": [], "key": "bedrock-agent-runtime/create-session-invalid-encryption-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_create_session_invalid_encryption_key_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-session-starts-active", "deployments": [], "key": "bedrock-agent-runtime/create-session-starts-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_create_session_starts_active.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.create-session-with-metadata-and-tags-persisted", "deployments": [], "key": "bedrock-agent-runtime/create-session-with-metadata-and-tags-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListTagsForResource"], "path": "behavioral/bedrock-agent-runtime/check_create_session_with_metadata_and_tags_persisted.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.cross-principal-get-session-denied", "deployments": [], "key": "bedrock-agent-runtime/cross-principal-get-session-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_cross_principal_get_session_denied.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.delete-active-session-rejected", "deployments": [], "key": "bedrock-agent-runtime/delete-active-session-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_delete_active_session_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.delete-agent-memory-without-permission-blocked", "deployments": [], "key": "bedrock-agent-runtime/delete-agent-memory-without-permission-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:DeleteAgentMemory", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_delete_agent_memory_without_permission_blocked.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.delete-session-after-end-succeeds", "deployments": [], "key": "bedrock-agent-runtime/delete-session-after-end-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_delete_session_after_end_succeeds.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.delete-session-twice-rejected", "deployments": [], "key": "bedrock-agent-runtime/delete-session-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_delete_session_twice_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.deploy-agent-alias-invoke-behaves", "deployments": [], "key": "bedrock-agent-runtime/deploy-agent-alias-invoke-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:InvokeFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agent-runtime/check_deploy_agent_alias_invoke_behaves.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.duplicate-invocation-id-rejected", "deployments": [], "key": "bedrock-agent-runtime/duplicate-invocation-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_duplicate_invocation_id_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.end-already-ended-session-rejected", "deployments": [], "key": "bedrock-agent-runtime/end-already-ended-session-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:ListInvocations", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_end_already_ended_session_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.end-session-already-ended-rejected", "deployments": [], "key": "bedrock-agent-runtime/end-session-already-ended-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_end_session_already_ended_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.end-session-transitions-to-ended", "deployments": [], "key": "bedrock-agent-runtime/end-session-transitions-to-ended", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_end_session_transitions_to_ended.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.end-session-twice-rejected", "deployments": [], "key": "bedrock-agent-runtime/end-session-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_end_session_twice_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.ended-session-invocation-rejected", "deployments": [], "key": "bedrock-agent-runtime/ended-session-invocation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_ended_session_invocation_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.flow-execution-events-ordering", "deployments": [], "key": "bedrock-agent-runtime/flow-execution-events-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:GetFlowExecution", "bedrock-agent-runtime:ListFlowExecutionEvents", "bedrock-agent-runtime:StartFlowExecution", "bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent-runtime/check_flow_execution_events_ordering.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.flow-execution-lifecycle-start-run-stop", "deployments": [], "key": "bedrock-agent-runtime/flow-execution-lifecycle-start-run-stop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:GetFlowExecution", "bedrock-agent-runtime:StartFlowExecution", "bedrock-agent-runtime:StopFlowExecution", "bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:GetFlow", "bedrock-agent:ListFlowAliases", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_flow_execution_lifecycle_start_run_stop.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.flow-execution-snapshot-availability-window", "deployments": [], "key": "bedrock-agent-runtime/flow-execution-snapshot-availability-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:GetExecutionFlowSnapshot", "bedrock-agent-runtime:GetFlowExecution", "bedrock-agent-runtime:StartFlowExecution", "bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agent-runtime/check_flow_execution_snapshot_availability_window.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.flow-execution-terminal-state-immutable-rejected", "deployments": [], "key": "bedrock-agent-runtime/flow-execution-terminal-state-immutable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:GetFlowExecution", "bedrock-agent-runtime:StartFlowExecution", "bedrock-agent-runtime:StopFlowExecution", "bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:GetFlow", "bedrock-agent:ListFlowAliases", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_flow_execution_terminal_state_immutable_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-agent-memory-nonexistent-agent-not-found", "deployments": [], "key": "bedrock-agent-runtime/get-agent-memory-nonexistent-agent-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:GetAgentMemory"], "path": "behavioral/bedrock-agent-runtime/check_get_agent_memory_nonexistent_agent_not_found.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-document-content-nonexistent-document-not-found", "deployments": [], "key": "bedrock-agent-runtime/get-document-content-nonexistent-document-not-found", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["bedrock-agent-runtime:GetDocumentContent", "bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:GetKnowledgeBaseDocuments", "bedrock-agent:IngestKnowledgeBaseDocuments", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agent-runtime/check_get_document_content_nonexistent_document_not_found.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-document-content-without-kb-access-denied", "deployments": [], "key": "bedrock-agent-runtime/get-document-content-without-kb-access-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:GetDocumentContent", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_get_document_content_without_kb_access_denied.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-flow-execution-nonexistent-not-found", "deployments": [], "key": "bedrock-agent-runtime/get-flow-execution-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:GetFlowExecution", "bedrock-agent-runtime:StartFlowExecution", "bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent-runtime/check_get_flow_execution_nonexistent_not_found.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-invocation-step-matches-specific-step-among-many", "deployments": [], "key": "bedrock-agent-runtime/get-invocation-step-matches-specific-step-among-many", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_get_invocation_step_matches_specific_step_among_many.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-invocation-step-wrong-invocation-scope-rejected", "deployments": [], "key": "bedrock-agent-runtime/get-invocation-step-wrong-invocation-scope-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_get_invocation_step_wrong_invocation_scope_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-invocation-step-wrong-session-scope-rejected", "deployments": [], "key": "bedrock-agent-runtime/get-invocation-step-wrong-session-scope-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_get_invocation_step_wrong_session_scope_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-session-nonexistent-not-found", "deployments": [], "key": "bedrock-agent-runtime/get-session-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_get_session_nonexistent_not_found.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-session-nonexistent-resource-not-found", "deployments": [], "key": "bedrock-agent-runtime/get-session-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_get_session_nonexistent_resource_not_found.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.get-session-not-found", "deployments": [], "key": "bedrock-agent-runtime/get-session-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_get_session_not_found.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.invocation-lifecycle-create-put-get", "deployments": [], "key": "bedrock-agent-runtime/invocation-lifecycle-create-put-get", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:ListInvocations", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_invocation_lifecycle_create_put_get.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.invocation-step-binary-payload-preserved", "deployments": [], "key": "bedrock-agent-runtime/invocation-step-binary-payload-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_invocation_step_binary_payload_preserved.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.invocation-step-timestamp-precision-preserved", "deployments": [], "key": "bedrock-agent-runtime/invocation-step-timestamp-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_invocation_step_timestamp_precision_preserved.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.invocation-steps-chronological-order", "deployments": [], "key": "bedrock-agent-runtime/invocation-steps-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_invocation_steps_chronological_order.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.invoke-flow-stream-ends-on-a-single-completion-event-and-gates-traces", "deployments": [], "key": "bedrock-agent-runtime/invoke-flow-stream-ends-on-a-single-completion-event-and-gates-traces", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:InvokeFlow", "bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent-runtime/check_invoke_flow_stream_ends_on_a_single_completion_event_and_gates_traces.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocation-steps-filtered-by-invocation-id", "deployments": [], "key": "bedrock-agent-runtime/list-invocation-steps-filtered-by-invocation-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_list_invocation_steps_filtered_by_invocation_id.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocation-steps-malformed-invocation-identifier-rejected", "deployments": [], "key": "bedrock-agent-runtime/list-invocation-steps-malformed-invocation-identifier-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps"], "path": "behavioral/bedrock-agent-runtime/check_list_invocation_steps_malformed_invocation_identifier_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocation-steps-multiple-puts", "deployments": [], "key": "bedrock-agent-runtime/list-invocation-steps-multiple-puts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_list_invocation_steps_multiple_puts.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocation-steps-ordering", "deployments": [], "key": "bedrock-agent-runtime/list-invocation-steps-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_list_invocation_steps_ordering.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocation-steps-pagination-complete", "deployments": [], "key": "bedrock-agent-runtime/list-invocation-steps-pagination-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_list_invocation_steps_pagination_complete.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocation-steps-pagination-completeness", "deployments": [], "key": "bedrock-agent-runtime/list-invocation-steps-pagination-completeness", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_list_invocation_steps_pagination_completeness.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocations-isolated-across-sessions", "deployments": [], "key": "bedrock-agent-runtime/list-invocations-isolated-across-sessions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_list_invocations_isolated_across_sessions.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocations-pagination-with-next-token", "deployments": [], "key": "bedrock-agent-runtime/list-invocations-pagination-with-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_list_invocations_pagination_with_next_token.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocations-reflects-created", "deployments": [], "key": "bedrock-agent-runtime/list-invocations-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_list_invocations_reflects_created.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-invocations-scoped-to-session", "deployments": [], "key": "bedrock-agent-runtime/list-invocations-scoped-to-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_list_invocations_scoped_to_session.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-sessions-includes-created-session", "deployments": [], "key": "bedrock-agent-runtime/list-sessions-includes-created-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListSessions"], "path": "behavioral/bedrock-agent-runtime/check_list_sessions_includes_created_session.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-sessions-invalid-next-token-rejected", "deployments": [], "key": "bedrock-agent-runtime/list-sessions-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListSessions"], "path": "behavioral/bedrock-agent-runtime/check_list_sessions_invalid_next_token_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-sessions-out-of-range-maxresults-rejected", "deployments": [], "key": "bedrock-agent-runtime/list-sessions-out-of-range-maxresults-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:ListSessions"], "path": "behavioral/bedrock-agent-runtime/check_list_sessions_out_of_range_maxresults_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-sessions-reflects-created-session", "deployments": [], "key": "bedrock-agent-runtime/list-sessions-reflects-created-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListSessions"], "path": "behavioral/bedrock-agent-runtime/check_list_sessions_reflects_created_session.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.list-sessions-stable-pagination-order", "deployments": [], "key": "bedrock-agent-runtime/list-sessions-stable-pagination-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListSessions"], "path": "behavioral/bedrock-agent-runtime/check_list_sessions_stable_pagination_order.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.malformed-session-id-input-rejected", "deployments": [], "key": "bedrock-agent-runtime/malformed-session-id-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocations"], "path": "behavioral/bedrock-agent-runtime/check_malformed_session_id_input_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.optimize-prompt-invalid-model-reference-validation-exception", "deployments": [], "key": "bedrock-agent-runtime/optimize-prompt-invalid-model-reference-validation-exception", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:OptimizePrompt", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_optimize_prompt_invalid_model_reference_validation_exception.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.optimize-prompt-returns-nonempty-result", "deployments": [], "key": "bedrock-agent-runtime/optimize-prompt-returns-nonempty-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:OptimizePrompt"], "path": "behavioral/bedrock-agent-runtime/check_optimize_prompt_returns_nonempty_result.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.optimize-prompt-round-trip", "deployments": [], "key": "bedrock-agent-runtime/optimize-prompt-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:OptimizePrompt"], "path": "behavioral/bedrock-agent-runtime/check_optimize_prompt_round_trip.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-get-invocation-step-round-trip", "deployments": [], "key": "bedrock-agent-runtime/put-get-invocation-step-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_get_invocation_step_round_trip.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-after-end-session-conflict", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-after-end-session-conflict", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_after_end_session_conflict.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-auto-generated-id-when-omitted", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-auto-generated-id-when-omitted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_auto_generated_id_when_omitted.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-conflicting-content-rejected", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-conflicting-content-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_conflicting_content_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-duplicate-id-conflicting-payload-rejected", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-duplicate-id-conflicting-payload-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_duplicate_id_conflicting_payload_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-duplicate-stepid-serialized", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-duplicate-stepid-serialized", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_duplicate_stepid_serialized.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-idempotent-same-content", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-idempotent-same-content", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_idempotent_same_content.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-multiple-content-blocks", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-multiple-content-blocks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_multiple_content_blocks.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-payload-round-trip", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-payload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_payload_round_trip.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-round-trip", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_round_trip.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.put-invocation-step-round-trip-payload-integrity", "deployments": [], "key": "bedrock-agent-runtime/put-invocation-step-round-trip-payload-integrity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateInvocation", "bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetInvocationStep", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListInvocationSteps", "bedrock-agent-runtime:PutInvocationStep"], "path": "behavioral/bedrock-agent-runtime/check_put_invocation_step_round_trip_payload_integrity.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.readonly-retrieve-cannot-mutate-kb-state", "deployments": [], "key": "bedrock-agent-runtime/readonly-retrieve-cannot-mutate-kb-state", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:Retrieve"], "path": "behavioral/bedrock-agent-runtime/check_readonly_retrieve_cannot_mutate_kb_state.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.rerank-orders-sources-by-relevance", "deployments": [], "key": "bedrock-agent-runtime/rerank-orders-sources-by-relevance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:Rerank"], "path": "behavioral/bedrock-agent-runtime/check_rerank_orders_sources_by_relevance.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.rerank-permutes-one-source-list-per-query-not-per-document", "deployments": [], "key": "bedrock-agent-runtime/rerank-permutes-one-source-list-per-query-not-per-document", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:Rerank"], "path": "behavioral/bedrock-agent-runtime/check_rerank_permutes_one_source_list_per_query_not_per_document.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.rerank-preserves-relevance-ordering", "deployments": [], "key": "bedrock-agent-runtime/rerank-preserves-relevance-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:Rerank"], "path": "behavioral/bedrock-agent-runtime/check_rerank_preserves_relevance_ordering.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.rerank-scoring-consistency-across-calls", "deployments": [], "key": "bedrock-agent-runtime/rerank-scoring-consistency-across-calls", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:Rerank"], "path": "behavioral/bedrock-agent-runtime/check_rerank_scoring_consistency_across_calls.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.retrieve-and-generate-citation-spans-index-the-generated-text", "deployments": [], "key": "bedrock-agent-runtime/retrieve-and-generate-citation-spans-index-the-generated-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:Retrieve", "bedrock-agent-runtime:RetrieveAndGenerate", "bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_retrieve_and_generate_citation_spans_index_the_generated_text.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.retrieve-number-of-results-truncates-one-stable-ranking", "deployments": [], "key": "bedrock-agent-runtime/retrieve-number-of-results-truncates-one-stable-ranking", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:Retrieve", "bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_retrieve_number_of_results_truncates_one_stable_ranking.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-arn-carries-the-request-region", "deployments": [], "key": "bedrock-agent-runtime/session-arn-carries-the-request-region", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime/check_session_arn_carries_the_request_region.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-attributes-unicode-round-trip", "deployments": [], "key": "bedrock-agent-runtime/session-attributes-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_session_attributes_unicode_round_trip.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-create-starts-active", "deployments": [], "key": "bedrock-agent-runtime/session-create-starts-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_session_create_starts_active.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-delete-then-404", "deployments": [], "key": "bedrock-agent-runtime/session-delete-then-404", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_session_delete_then_404.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-empty-vs-absent-attribute-preserved", "deployments": [], "key": "bedrock-agent-runtime/session-empty-vs-absent-attribute-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_session_empty_vs_absent_attribute_preserved.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-identifier-accepts-arn-or-id", "deployments": [], "key": "bedrock-agent-runtime/session-identifier-accepts-arn-or-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_session_identifier_accepts_arn_or_id.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-lastupdatedat-changes-after-update", "deployments": [], "key": "bedrock-agent-runtime/session-lastupdatedat-changes-after-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_session_lastupdatedat_changes_after_update.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-lifecycle-active-ended-deleted", "deployments": [], "key": "bedrock-agent-runtime/session-lifecycle-active-ended-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_session_lifecycle_active_ended_deleted.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-lifecycle-create-active-end-delete", "deployments": [], "key": "bedrock-agent-runtime/session-lifecycle-create-active-end-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_session_lifecycle_create_active_end_delete.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.session-metadata-persists-on-get", "deployments": [], "key": "bedrock-agent-runtime/session-metadata-persists-on-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_session_metadata_persists_on_get.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.stop-flow-execution-concurrent-race", "deployments": [], "key": "bedrock-agent-runtime/stop-flow-execution-concurrent-race", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:GetFlowExecution", "bedrock-agent-runtime:StartFlowExecution", "bedrock-agent-runtime:StopFlowExecution", "bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agent-runtime/check_stop_flow_execution_concurrent_race.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.tag-resource-is-additive-merge", "deployments": [], "key": "bedrock-agent-runtime/tag-resource-is-additive-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListTagsForResource", "bedrock-agent-runtime:TagResource"], "path": "behavioral/bedrock-agent-runtime/check_tag_resource_is_additive_merge.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.tag-resource-round-trip", "deployments": [], "key": "bedrock-agent-runtime/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListTagsForResource", "bedrock-agent-runtime:TagResource", "bedrock-agent-runtime:UntagResource"], "path": "behavioral/bedrock-agent-runtime/check_tag_resource_round_trip.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.tag-resource-unknown-arn-not-found", "deployments": [], "key": "bedrock-agent-runtime/tag-resource-unknown-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListTagsForResource", "bedrock-agent-runtime:TagResource"], "path": "behavioral/bedrock-agent-runtime/check_tag_resource_unknown_arn_not_found.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.tag-untag-resource-round-trip", "deployments": [], "key": "bedrock-agent-runtime/tag-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:ListTagsForResource", "bedrock-agent-runtime:TagResource", "bedrock-agent-runtime:UntagResource"], "path": "behavioral/bedrock-agent-runtime/check_tag_untag_resource_round_trip.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.unset-optional-map-is-omitted-not-empty", "deployments": [], "key": "bedrock-agent-runtime/unset-optional-map-is-omitted-not-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession"], "path": "behavioral/bedrock-agent-runtime/check_unset_optional_map_is_omitted_not_empty.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.untag-resource-nonexistent-key-is-noop", "deployments": [], "key": "bedrock-agent-runtime/untag-resource-nonexistent-key-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListTagsForResource", "bedrock-agent-runtime:UntagResource"], "path": "behavioral/bedrock-agent-runtime/check_untag_resource_nonexistent_key_is_noop.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.untag-resource-removes-tag", "deployments": [], "key": "bedrock-agent-runtime/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:ListTagsForResource", "bedrock-agent-runtime:UntagResource"], "path": "behavioral/bedrock-agent-runtime/check_untag_resource_removes_tag.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.update-session-after-end-rejected", "deployments": [], "key": "bedrock-agent-runtime/update-session-after-end-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_update_session_after_end_rejected.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.update-session-metadata-persists-while-active", "deployments": [], "key": "bedrock-agent-runtime/update-session-metadata-persists-while-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_update_session_metadata_persists_while_active.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.update-session-metadata-round-trip", "deployments": [], "key": "bedrock-agent-runtime/update-session-metadata-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_update_session_metadata_round_trip.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime.update-session-optimistic-lock-conflict", "deployments": [], "key": "bedrock-agent-runtime/update-session-optimistic-lock-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:CreateSession", "bedrock-agent-runtime:DeleteSession", "bedrock-agent-runtime:EndSession", "bedrock-agent-runtime:GetSession", "bedrock-agent-runtime:UpdateSession"], "path": "behavioral/bedrock-agent-runtime/check_update_session_optimistic_lock_conflict.py", "service": "bedrock-agent-runtime"} {"check_id": "bedrock-agent-runtime__cloudformation.deploy-bedrock-agent-runtime-session-nonexistent-kms-key-rejected-and-rolled-back", "deployments": [], "key": "bedrock-agent-runtime__cloudformation/deploy-bedrock-agent-runtime-session-nonexistent-kms-key-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent-runtime:GetSession", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agent-runtime__cloudformation/check_deploy_bedrock_agent_runtime_session_nonexistent_kms_key_rejected_and_rolled_back.py", "service": "bedrock-agent-runtime__cloudformation"} {"check_id": "bedrock-agent-runtime__cloudformation.deploy-bedrock-agent-runtime-session-round-trip-and-delete", "deployments": [], "key": "bedrock-agent-runtime__cloudformation/deploy-bedrock-agent-runtime-session-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent-runtime:GetSession", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agent-runtime__cloudformation/check_deploy_bedrock_agent_runtime_session_round_trip_and_delete.py", "service": "bedrock-agent-runtime__cloudformation"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-deploy-lambda-bedrock-s3vectors-full-stack-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-deploy-lambda-bedrock-s3vectors-full-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_deploy_lambda_bedrock_s3vectors_full_stack_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-deploy-wrong-execution-role-mismatch-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-deploy-wrong-execution-role-mismatch-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_deploy_wrong_execution_role_mismatch_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-lambda-missing-trust-policy-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-lambda-missing-trust-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_lambda_missing_trust_policy_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-lambda-role-bedrock-agent-permission-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-lambda-role-bedrock-agent-permission-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_lambda_role_bedrock_agent_permission_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-lambda-role-missing-bedrock-permission-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-lambda-role-missing-bedrock-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_lambda_role_missing_bedrock_permission_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-lambda-role-missing-s3vectors-permission-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-lambda-role-missing-s3vectors-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:ListVectors", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_lambda_role_missing_s3vectors_permission_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-lambda-role-s3vectors-permission-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-lambda-role-s3vectors-permission-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_lambda_role_s3vectors_permission_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-lambda-role-trust-policy-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-lambda-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_lambda_role_trust_policy_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-lambda-s3vectors-policy-wrong-resource-arn-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-lambda-s3vectors-policy-wrong-resource-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:ListVectors", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_lambda_s3vectors_policy_wrong_resource_arn_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-stack-update-add-bedrock-agent-permission-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-stack-update-add-bedrock-agent-permission-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:Invoke"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_stack_update_add_bedrock_agent_permission_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cfn-stack-update-add-s3vectors-permission-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cfn-stack-update-add-s3vectors-permission-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:Invoke"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cfn_stack_update_add_s3vectors_permission_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cli-lambda-deploy-role-with-s3vectors-bedrock-policies", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cli-lambda-deploy-role-with-s3vectors-bedrock-policies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cli_lambda_deploy_role_with_s3vectors_bedrock_policies.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cli-lambda-invoke-missing-s3vectors-permission-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cli-lambda-invoke-missing-s3vectors-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cli_lambda_invoke_missing_s3vectors_permission_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cli-s3vectors-bucket-index-put-query-workflow", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cli-s3vectors-bucket-index-put-query-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cli_s3vectors_bucket_index_put_query_workflow.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.cli-s3vectors-query-vectors-cli-put-sdk-verify", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/cli-s3vectors-query-vectors-cli-put-sdk-verify", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_cli_s3vectors_query_vectors_cli_put_sdk_verify.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-bedrock-agent-missing-invokeagent-permission-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-bedrock-agent-missing-invokeagent-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_bedrock_agent_missing_invokeagent_permission_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-bedrock-agent-missing-retrieve-permission-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-bedrock-agent-missing-retrieve-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_bedrock_agent_missing_retrieve_permission_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-bedrock-retrieve-and-generate-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-bedrock-retrieve-and-generate-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "bedrock-runtime:Converse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_bedrock_retrieve_and_generate_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-bedrock-retrieve-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-bedrock-retrieve-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_bedrock_retrieve_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-createindex-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-createindex-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_createindex_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-createvectorbucket-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-createvectorbucket-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:ListIndexes"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_createvectorbucket_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-deletevectors-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-deletevectors-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:PutVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_deletevectors_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-dimension-mismatch-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-dimension-mismatch-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_dimension_mismatch_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-listvectors-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-listvectors-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:PutVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_listvectors_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-missing-putvectors-permission-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-missing-putvectors-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_missing_putvectors_permission_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-missing-queryvectors-permission-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-missing-queryvectors-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:PutVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_missing_queryvectors_permission_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-putvectors-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-putvectors-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_putvectors_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-queryvectors-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-queryvectors-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:PutVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_queryvectors_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.lambda-s3vectors-wrong-vector-bucket-arn-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/lambda-s3vectors-wrong-vector-bucket-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:ListIndexes"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_lambda_s3vectors_wrong_vector_bucket_arn_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.pipeline-missing-s3vectors-permission-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/pipeline-missing-s3vectors-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:PutVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_pipeline_missing_s3vectors_permission_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.pipeline-vector-query-result-count-limit-positive", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/pipeline-vector-query-result-count-limit-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:PutVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_pipeline_vector_query_result_count_limit_positive.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__lambda__s3vectors.pipeline-wrong-vector-index-negative", "deployments": [], "key": "bedrock-agent-runtime__lambda__s3vectors/pipeline-wrong-vector-index-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:PutVectors"], "path": "behavioral/bedrock-agent-runtime__lambda__s3vectors/check_pipeline_wrong_vector_index_negative.py", "service": "bedrock-agent-runtime__lambda__s3vectors"} {"check_id": "bedrock-agent-runtime__s3.retrieve-result-location-resolves-to-the-exact-ingested-s3-object", "deployments": [], "key": "bedrock-agent-runtime__s3/retrieve-result-location-resolves-to-the-exact-ingested-s3-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:Retrieve", "bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:PutBucketTagging", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent-runtime__s3/check_retrieve_result_location_resolves_to_the_exact_ingested_s3_object.py", "service": "bedrock-agent-runtime__s3"} {"check_id": "bedrock-agent.concurrent-flow-alias-name-race", "deployments": [], "key": "bedrock-agent/concurrent-flow-alias-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:ListFlowAliases", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_concurrent_flow_alias_name_race.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.concurrent-prepare-flow-mutual-exclusion", "deployments": [], "key": "bedrock-agent/concurrent-prepare-flow-mutual-exclusion", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:DeleteFlow", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "bedrock-agent:UpdateFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_concurrent_prepare_flow_mutual_exclusion.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.concurrent-update-flow-draft-conflict", "deployments": [], "key": "bedrock-agent/concurrent-update-flow-draft-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:DeleteFlow", "bedrock-agent:GetFlow", "bedrock-agent:UpdateFlow", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agent/check_concurrent_update_flow_draft_conflict.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.create-flow-alias-conflicting-name-rejected", "deployments": [], "key": "bedrock-agent/create-flow-alias-conflicting-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:GetFlow", "bedrock-agent:ListFlowAliases", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agent/check_create_flow_alias_conflicting_name_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.create-knowledge-base-malformed-vector-config-rejected", "deployments": [], "key": "bedrock-agent/create-knowledge-base-malformed-vector-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:ListKnowledgeBases", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket"], "path": "behavioral/bedrock-agent/check_create_knowledge_base_malformed_vector_config_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.create-prompt-invalid-name-pattern-validation-error", "deployments": [], "key": "bedrock-agent/create-prompt-invalid-name-pattern-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:DeletePrompt", "bedrock-agent:GetPrompt", "bedrock-agent:ListPrompts"], "path": "behavioral/bedrock-agent/check_create_prompt_invalid_name_pattern_validation_error.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.create-prompt-variant-mismatch-validation-error", "deployments": [], "key": "bedrock-agent/create-prompt-variant-mismatch-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:DeletePrompt", "bedrock-agent:GetPrompt", "bedrock-agent:ListPrompts"], "path": "behavioral/bedrock-agent/check_create_prompt_variant_mismatch_validation_error.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.delete-knowledge-base-documents-proves-gone-and-unusable", "deployments": [], "key": "bedrock-agent/delete-knowledge-base-documents-proves-gone-and-unusable", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:DeleteKnowledgeBaseDocuments", "bedrock-agent:GetDataSource", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:GetKnowledgeBaseDocuments", "bedrock-agent:IngestKnowledgeBaseDocuments", "bedrock-agent:ListKnowledgeBaseDocuments", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_delete_knowledge_base_documents_proves_gone_and_unusable.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.deploy-flow-cfn-behaves", "deployments": [], "key": "bedrock-agent/deploy-flow-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:PrepareFlow", "bedrock-agent:ValidateFlowDefinition", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agent/check_deploy_flow_cfn_behaves.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.deploy-knowledge-base-cfn-behaves", "deployments": [], "key": "bedrock-agent/deploy-knowledge-base-cfn-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/bedrock-agent/check_deploy_knowledge_base_cfn_behaves.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.e2e-flow-version-alias-promotion", "deployments": [], "key": "bedrock-agent/e2e-flow-version-alias-promotion", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:PrepareFlow", "bedrock-agent:UpdateFlow", "bedrock-agent:UpdateFlowAlias", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_e2e_flow_version_alias_promotion.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.e2e-knowledge-base-ingestion-to-query-ready", "deployments": [], "key": "bedrock-agent/e2e-knowledge-base-ingestion-to-query-ready", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:GetKnowledgeBaseDocuments", "bedrock-agent:IngestKnowledgeBaseDocuments", "bedrock-agent:ListKnowledgeBaseDocuments", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_e2e_knowledge_base_ingestion_to_query_ready.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-alias-dangling-version-reference-rejected", "deployments": [], "key": "bedrock-agent/flow-alias-dangling-version-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:ListFlowAliases", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_alias_dangling_version_reference_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-alias-deploy-upgrade-and-rollback", "deployments": [], "key": "bedrock-agent/flow-alias-deploy-upgrade-and-rollback", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:PrepareFlow", "bedrock-agent:UpdateFlow", "bedrock-agent:UpdateFlowAlias", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_alias_deploy_upgrade_and_rollback.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-alias-invalid-version-rejected", "deployments": [], "key": "bedrock-agent/flow-alias-invalid-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:ListFlowAliases", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_flow_alias_invalid_version_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-create-starts-not-prepared", "deployments": [], "key": "bedrock-agent/flow-create-starts-not-prepared", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:DeleteFlow", "bedrock-agent:GetFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_create_starts_not_prepared.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-definition-representation-round-trip", "deployments": [], "key": "bedrock-agent/flow-definition-representation-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowVersion", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_definition_representation_round_trip.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-delete-in-use-by-alias-rejected", "deployments": [], "key": "bedrock-agent/flow-delete-in-use-by-alias-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_delete_in_use_by_alias_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-invoke-end-to-end-via-runtime", "deployments": [], "key": "bedrock-agent/flow-invoke-end-to-end-via-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent-runtime:InvokeFlow", "bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_invoke_end_to_end_via_runtime.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-lifecycle-draft-version-alias", "deployments": [], "key": "bedrock-agent/flow-lifecycle-draft-version-alias", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:GetFlowVersion", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agent/check_flow_lifecycle_draft_version_alias.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-numeric-parameter-precision-preserved", "deployments": [], "key": "bedrock-agent/flow-numeric-parameter-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:DeleteFlow", "bedrock-agent:GetFlow", "bedrock-agent:UpdateFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_numeric_parameter_precision_preserved.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-prepare-reaches-prepared", "deployments": [], "key": "bedrock-agent/flow-prepare-reaches-prepared", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:DeleteFlow", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_prepare_reaches_prepared.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-update-resets-prepared-status", "deployments": [], "key": "bedrock-agent/flow-update-resets-prepared-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:DeleteFlow", "bedrock-agent:GetFlow", "bedrock-agent:PrepareFlow", "bedrock-agent:UpdateFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_update_resets_prepared_status.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-version-creation-without-prepare-rejected", "deployments": [], "key": "bedrock-agent/flow-version-creation-without-prepare-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:ListFlowVersions", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_flow_version_creation_without_prepare_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-version-delete-in-use-by-alias-rejected", "deployments": [], "key": "bedrock-agent/flow-version-delete-in-use-by-alias-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowVersion", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_version_delete_in_use_by_alias_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-version-monotonic-numbering", "deployments": [], "key": "bedrock-agent/flow-version-monotonic-numbering", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:GetFlow", "bedrock-agent:ListFlowVersions", "bedrock-agent:PrepareFlow", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_flow_version_monotonic_numbering.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.flow-version-snapshots-definition-immutably", "deployments": [], "key": "bedrock-agent/flow-version-snapshots-definition-immutably", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowVersion", "bedrock-agent:PrepareFlow", "bedrock-agent:UpdateFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_flow_version_snapshots_definition_immutably.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.get-resource-policy-unknown-kb-not-found", "deployments": [], "key": "bedrock-agent/get-resource-policy-unknown-kb-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:GetResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_get_resource_policy_unknown_kb_not_found.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.ingestion-job-statistics-account-for-every-source-document", "deployments": [], "key": "bedrock-agent/ingestion-job-statistics-account-for-every-source-document", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:ListIngestionJobs", "bedrock-agent:ListKnowledgeBaseDocuments", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_ingestion_job_statistics_account_for_every_source_document.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.knowledge-base-index-dimension-mismatch-rejected", "deployments": [], "key": "bedrock-agent/knowledge-base-index-dimension-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:ListKnowledgeBases", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_knowledge_base_index_dimension_mismatch_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.prompt-empty-vs-absent-field-preserved", "deployments": [], "key": "bedrock-agent/prompt-empty-vs-absent-field-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:DeletePrompt", "bedrock-agent:GetPrompt"], "path": "behavioral/bedrock-agent/check_prompt_empty_vs_absent_field_preserved.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.prompt-update-on-published-version-rejected", "deployments": [], "key": "bedrock-agent/prompt-update-on-published-version-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:CreatePromptVersion", "bedrock-agent:DeletePrompt", "bedrock-agent:GetPrompt", "bedrock-agent:UpdatePrompt"], "path": "behavioral/bedrock-agent/check_prompt_update_on_published_version_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.prompt-version-lifecycle", "deployments": [], "key": "bedrock-agent/prompt-version-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:CreatePromptVersion", "bedrock-agent:DeletePrompt", "bedrock-agent:GetPrompt", "bedrock-agent:UpdatePrompt"], "path": "behavioral/bedrock-agent/check_prompt_version_lifecycle.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.prompt-version-monotonic-numbering", "deployments": [], "key": "bedrock-agent/prompt-version-monotonic-numbering", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:CreatePromptVersion", "bedrock-agent:DeletePrompt", "bedrock-agent:ListPrompts"], "path": "behavioral/bedrock-agent/check_prompt_version_monotonic_numbering.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.prompt-version-snapshots-draft-immutably", "deployments": [], "key": "bedrock-agent/prompt-version-snapshots-draft-immutably", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:CreatePromptVersion", "bedrock-agent:DeletePrompt", "bedrock-agent:GetPrompt", "bedrock-agent:UpdatePrompt"], "path": "behavioral/bedrock-agent/check_prompt_version_snapshots_draft_immutably.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.put-overly-broad-resource-policy-rejected", "deployments": [], "key": "bedrock-agent/put-overly-broad-resource-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:GetResourcePolicy", "bedrock-agent:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_put_overly_broad_resource_policy_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.start-ingestion-job-on-deleted-datasource-rejected", "deployments": [], "key": "bedrock-agent/start-ingestion-job-on-deleted-datasource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:ListIngestionJobs", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket"], "path": "behavioral/bedrock-agent/check_start_ingestion_job_on_deleted_datasource_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.tag-propagation-server-side", "deployments": [], "key": "bedrock-agent/tag-propagation-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:DeletePrompt", "bedrock-agent:ListTagsForResource", "bedrock-agent:TagResource", "bedrock-agent:UntagResource"], "path": "behavioral/bedrock-agent/check_tag_propagation_server_side.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.update-data-source-chunking-configuration-change-rejected", "deployments": [], "key": "bedrock-agent/update-data-source-chunking-configuration-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:UpdateDataSource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent/check_update_data_source_chunking_configuration_change_rejected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.update-prepared-flow-leaves-existing-alias-unaffected", "deployments": [], "key": "bedrock-agent/update-prepared-flow-leaves-existing-alias-unaffected", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowAlias", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowAlias", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:GetFlowVersion", "bedrock-agent:PrepareFlow", "bedrock-agent:UpdateFlow", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_update_prepared_flow_leaves_existing_alias_unaffected.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.update-prompt-version-qualified-identifier-redirects-to-draft", "deployments": [], "key": "bedrock-agent/update-prompt-version-qualified-identifier-redirects-to-draft", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:CreatePrompt", "bedrock-agent:CreatePromptVersion", "bedrock-agent:DeletePrompt", "bedrock-agent:GetPrompt", "bedrock-agent:UpdatePrompt"], "path": "behavioral/bedrock-agent/check_update_prompt_version_qualified_identifier_redirects_to_draft.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.validate-flow-definition-catches-cycle-before-version", "deployments": [], "key": "bedrock-agent/validate-flow-definition-catches-cycle-before-version", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:CreateFlow", "bedrock-agent:CreateFlowVersion", "bedrock-agent:DeleteFlow", "bedrock-agent:DeleteFlowVersion", "bedrock-agent:GetFlow", "bedrock-agent:ListFlowVersions", "bedrock-agent:PrepareFlow", "bedrock-agent:ValidateFlowDefinition", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agent/check_validate_flow_definition_catches_cycle_before_version.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent.validate-flow-definition-structural-vs-semantic", "deployments": [], "key": "bedrock-agent/validate-flow-definition-structural-vs-semantic", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:ValidateFlowDefinition"], "path": "behavioral/bedrock-agent/check_validate_flow_definition_structural_vs_semantic.py", "service": "bedrock-agent"} {"check_id": "bedrock-agent__cloudformation.deploy-bedrock-agent-prompt-and-version-round-trip-and-delete", "deployments": [], "key": "bedrock-agent__cloudformation/deploy-bedrock-agent-prompt-and-version-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:GetPrompt", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/bedrock-agent__cloudformation/check_deploy_bedrock_agent_prompt_and_version_round_trip_and_delete.py", "service": "bedrock-agent__cloudformation"} {"check_id": "bedrock-agent__cloudformation.deploy-bedrock-agent-prompt-default-variant-not-in-variants-rejected-and-rolled-back", "deployments": [], "key": "bedrock-agent__cloudformation/deploy-bedrock-agent-prompt-default-variant-not-in-variants-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:GetPrompt", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agent__cloudformation/check_deploy_bedrock_agent_prompt_default_variant_not_in_variants_rejected_and_rolled_back.py", "service": "bedrock-agent__cloudformation"} {"check_id": "bedrock-agent__cloudformation.deploy-flow-node-type-enum-rejected", "deployments": [], "key": "bedrock-agent__cloudformation/deploy-flow-node-type-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:GetFlow", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agent__cloudformation/check_deploy_flow_node_type_enum_rejected.py", "service": "bedrock-agent__cloudformation"} {"check_id": "bedrock-agent__cloudformation.deploy-flow-version-alias-round-trip-then-delete", "deployments": [], "key": "bedrock-agent__cloudformation/deploy-flow-version-alias-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:GetFlow", "bedrock-agent:GetFlowAlias", "bedrock-agent:GetFlowVersion", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/bedrock-agent__cloudformation/check_deploy_flow_version_alias_round_trip_then_delete.py", "service": "bedrock-agent__cloudformation"} {"check_id": "bedrock-agent__cloudformation__iam__s3__s3vectors.deploy-knowledge-base-data-source-cfn-lifecycle", "deployments": [], "key": "bedrock-agent__cloudformation/deploy-knowledge-base-data-source-cfn-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agent:GetDataSource", "bedrock-agent:GetKnowledgeBase", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/bedrock-agent__cloudformation/check_deploy_knowledge_base_data_source_cfn_lifecycle.py", "service": "bedrock-agent__cloudformation"} {"check_id": "bedrock-agent__cloudformation__iam__s3__s3vectors.deploy-data-source-cfn-rejects-unknown-knowledge-base", "deployments": [], "key": "bedrock-agent__cloudformation__s3/deploy-data-source-cfn-rejects-unknown-knowledge-base", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agent:GetDataSource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:HeadBucket"], "path": "behavioral/bedrock-agent__cloudformation__s3/check_deploy_data_source_cfn_rejects_unknown_knowledge_base.py", "service": "bedrock-agent__cloudformation__s3"} {"check_id": "bedrock-agent__lambda__opensearchserverless.bedrock-kb-opensearchserverless-vector-index-creation-positive", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/bedrock-kb-opensearchserverless-vector-index-creation-positive", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_bedrock_kb_opensearchserverless_vector_index_creation_positive.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.cli-bedrock-agent-invoke-missing-permission-negative", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/cli-bedrock-agent-invoke-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_cli_bedrock_agent_invoke_missing_permission_negative.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.cli-create-opensearchserverless-collection-lambda-list-positive", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/cli-create-opensearchserverless-collection-lambda-list-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "opensearchserverless:BatchGetCollection", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_cli_create_opensearchserverless_collection_lambda_list_positive.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.cli-opensearchserverless-collection-missing-permission-negative", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/cli-opensearchserverless-collection-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_cli_opensearchserverless_collection_missing_permission_negative.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.deploy-lambda-role-trust-policy-lambda-service-positive", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/deploy-lambda-role-trust-policy-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_deploy_lambda_role_trust_policy_lambda_service_positive.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-bedrock-agent-get-agent-missing-permission-negative", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-bedrock-agent-get-agent-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_bedrock_agent_get_agent_missing_permission_negative.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-bedrock-agent-invoke-agent-missing-permission-negative", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-bedrock-agent-invoke-agent-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_bedrock_agent_invoke_agent_missing_permission_negative.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-bedrock-agent-invoke-agent-wrong-agent-id-negative", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-bedrock-agent-invoke-agent-wrong-agent-id-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_bedrock_agent_invoke_agent_wrong_agent_id_negative.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-bedrock-agent-retrieve-missing-permission-negative", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-bedrock-agent-retrieve-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_bedrock_agent_retrieve_missing_permission_negative.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-opensearchserverless-batch-get-collection-positive", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-opensearchserverless-batch-get-collection-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_opensearchserverless_batch_get_collection_positive.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-opensearchserverless-create-collection-missing-permission-negative", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-opensearchserverless-create-collection-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "opensearchserverless:DeleteCollection", "opensearchserverless:ListCollections"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_opensearchserverless_create_collection_missing_permission_negative.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-opensearchserverless-create-collection-positive", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-opensearchserverless-create-collection-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "opensearchserverless:BatchGetCollection", "opensearchserverless:DeleteCollection", "opensearchserverless:ListCollections"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_opensearchserverless_create_collection_positive.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-opensearchserverless-list-collections-missing-permission-negative", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-opensearchserverless-list-collections-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_opensearchserverless_list_collections_missing_permission_negative.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-opensearchserverless-list-collections-positive", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-opensearchserverless-list-collections-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_opensearchserverless_list_collections_positive.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__lambda__opensearchserverless.lambda-opensearchserverless-tag-resource-positive", "deployments": [], "key": "bedrock-agent__lambda__opensearchserverless/lambda-opensearchserverless-tag-resource-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection"], "path": "behavioral/bedrock-agent__lambda__opensearchserverless/check_lambda_opensearchserverless_tag_resource_positive.py", "service": "bedrock-agent__lambda__opensearchserverless"} {"check_id": "bedrock-agent__s3vectors.data-deletion-policy-governs-vector-removal-at-the-store", "deployments": [], "key": "bedrock-agent__s3vectors/data-deletion-policy-governs-vector-removal-at-the-store", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agent:CreateDataSource", "bedrock-agent:CreateKnowledgeBase", "bedrock-agent:DeleteDataSource", "bedrock-agent:DeleteKnowledgeBase", "bedrock-agent:GetDataSource", "bedrock-agent:GetIngestionJob", "bedrock-agent:GetKnowledgeBase", "bedrock-agent:StartIngestionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:ListVectors", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agent__s3vectors/check_data_deletion_policy_governs_vector_removal_at_the_store.py", "service": "bedrock-agent__s3vectors"} {"check_id": "bedrock-agentcore-control.add-dataset-examples-concurrent-append-conflict", "deployments": [], "key": "bedrock-agentcore-control/add-dataset-examples-concurrent-append-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:AddDatasetExamples", "bedrock-agentcore-control:CreateDataset", "bedrock-agentcore-control:CreateDatasetVersion", "bedrock-agentcore-control:DeleteDataset", "bedrock-agentcore-control:GetDataset"], "path": "behavioral/bedrock-agentcore-control/check_add_dataset_examples_concurrent_append_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.agent-runtime-create-returns-creating-status", "deployments": [], "key": "bedrock-agentcore-control/agent-runtime-create-returns-creating-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:GetAgentRuntime", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_agent_runtime_create_returns_creating_status.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.agent-runtime-endpoint-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/agent-runtime-endpoint-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateAgentRuntimeEndpoint", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntimeEndpoint", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetAgentRuntimeEndpoint", "bedrock-agentcore-control:ListAgentRuntimeEndpoints", "bedrock-agentcore-control:UpdateAgentRuntime", "bedrock-agentcore-control:UpdateAgentRuntimeEndpoint", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock-agentcore-control/check_agent_runtime_endpoint_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.agent-runtime-endpoint-pinned-version-survives-runtime-update", "deployments": [], "key": "bedrock-agentcore-control/agent-runtime-endpoint-pinned-version-survives-runtime-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateAgentRuntimeEndpoint", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntimeEndpoint", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetAgentRuntimeEndpoint", "bedrock-agentcore-control:ListAgentRuntimeVersions", "bedrock-agentcore-control:UpdateAgentRuntime", "bedrock-agentcore-control:UpdateAgentRuntimeEndpoint", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_agent_runtime_endpoint_pinned_version_survives_runtime_update.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.agent-runtime-endpoint-version-pinning", "deployments": [], "key": "bedrock-agentcore-control/agent-runtime-endpoint-version-pinning", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateAgentRuntimeEndpoint", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntimeEndpoint", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetAgentRuntimeEndpoint", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_agent_runtime_endpoint_version_pinning.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.agent-runtime-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/agent-runtime-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:UpdateAgentRuntime", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock-agentcore-control/check_agent_runtime_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.api-key-credential-provider-concurrent-create-name-uniqueness", "deployments": [], "key": "bedrock-agentcore-control/api-key-credential-provider-concurrent-create-name-uniqueness", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:GetApiKeyCredentialProvider"], "path": "behavioral/bedrock-agentcore-control/check_api_key_credential_provider_concurrent_create_name_uniqueness.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.api-key-credential-provider-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/api-key-credential-provider-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:GetApiKeyCredentialProvider", "bedrock-agentcore-control:UpdateApiKeyCredentialProvider"], "path": "behavioral/bedrock-agentcore-control/check_api_key_credential_provider_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.api-key-credential-provider-secret-in-secrets-manager", "deployments": [], "key": "bedrock-agentcore-control/api-key-credential-provider-secret-in-secrets-manager", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:GetApiKeyCredentialProvider", "secretsmanager:GetSecretValue"], "path": "behavioral/bedrock-agentcore-control/check_api_key_credential_provider_secret_in_secrets_manager.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.batch-put-gateway-rate-limits-concurrent-writers-consistent", "deployments": [], "key": "bedrock-agentcore-control/batch-put-gateway-rate-limits-concurrent-writers-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:BatchPutGatewayRateLimits", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRateLimit", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRateLimit", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/bedrock-agentcore-control/check_batch_put_gateway_rate_limits_concurrent_writers_consistent.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.batch-put-gateway-rate-limits-negative-value-rejected", "deployments": [], "key": "bedrock-agentcore-control/batch-put-gateway-rate-limits-negative-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:BatchPutGatewayRateLimits", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRateLimit", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayRateLimits", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_batch_put_gateway_rate_limits_negative_value_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.browser-lifecycle-and-delete", "deployments": [], "key": "bedrock-agentcore-control/browser-lifecycle-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateBrowser", "bedrock-agentcore-control:DeleteBrowser", "bedrock-agentcore-control:GetBrowser"], "path": "behavioral/bedrock-agentcore-control/check_browser_lifecycle_and_delete.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.browser-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/browser-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateBrowser", "bedrock-agentcore-control:DeleteBrowser", "bedrock-agentcore-control:GetBrowser"], "path": "behavioral/bedrock-agentcore-control/check_browser_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.browser-profile-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/browser-profile-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateBrowser", "bedrock-agentcore-control:CreateBrowserProfile", "bedrock-agentcore-control:DeleteBrowser", "bedrock-agentcore-control:DeleteBrowserProfile", "bedrock-agentcore-control:GetBrowser", "bedrock-agentcore-control:GetBrowserProfile"], "path": "behavioral/bedrock-agentcore-control/check_browser_profile_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.browser-vpc-network-mode-requires-real-vpc-config", "deployments": [], "key": "bedrock-agentcore-control/browser-vpc-network-mode-requires-real-vpc-config", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateBrowser", "bedrock-agentcore-control:DeleteBrowser", "bedrock-agentcore-control:GetBrowser", "bedrock-agentcore-control:ListBrowsers", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/bedrock-agentcore-control/check_browser_vpc_network_mode_requires_real_vpc_config.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.capacity-provider-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/capacity-provider-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateCapacityProvider", "bedrock-agentcore-control:DeleteCapacityProvider", "bedrock-agentcore-control:GetCapacityProvider", "bedrock-agentcore-control:UpdateCapacityProvider", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_capacity_provider_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.code-interpreter-lifecycle-and-delete", "deployments": [], "key": "bedrock-agentcore-control/code-interpreter-lifecycle-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateCodeInterpreter", "bedrock-agentcore-control:DeleteCodeInterpreter", "bedrock-agentcore-control:GetCodeInterpreter"], "path": "behavioral/bedrock-agentcore-control/check_code_interpreter_lifecycle_and_delete.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.code-interpreter-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/code-interpreter-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateCodeInterpreter", "bedrock-agentcore-control:DeleteCodeInterpreter", "bedrock-agentcore-control:GetCodeInterpreter"], "path": "behavioral/bedrock-agentcore-control/check_code_interpreter_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.configuration-bundle-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/configuration-bundle-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateConfigurationBundle", "bedrock-agentcore-control:DeleteConfigurationBundle", "bedrock-agentcore-control:GetConfigurationBundle", "bedrock-agentcore-control:GetConfigurationBundleVersion", "bedrock-agentcore-control:UpdateConfigurationBundle"], "path": "behavioral/bedrock-agentcore-control/check_configuration_bundle_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.configuration-bundle-version-lifecycle", "deployments": [], "key": "bedrock-agentcore-control/configuration-bundle-version-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateConfigurationBundle", "bedrock-agentcore-control:DeleteConfigurationBundle", "bedrock-agentcore-control:GetConfigurationBundle", "bedrock-agentcore-control:GetConfigurationBundleVersion", "bedrock-agentcore-control:ListConfigurationBundleVersions", "bedrock-agentcore-control:UpdateConfigurationBundle"], "path": "behavioral/bedrock-agentcore-control/check_configuration_bundle_version_lifecycle.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.consent-portal-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/consent-portal-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateConsentPortal", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateOauth2CredentialProvider", "bedrock-agentcore-control:DeleteConsentPortal", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetConsentPortal", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateConsentPortal", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_consent_portal_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-agent-runtime-without-iam-permission-denied", "deployments": [], "key": "bedrock-agentcore-control/create-agent-runtime-without-iam-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:ListAgentRuntimes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_create_agent_runtime_without_iam_permission_denied.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-api-key-credential-provider-decryption-failure-on-bad-secret", "deployments": [], "key": "bedrock-agentcore-control/create-api-key-credential-provider-decryption-failure-on-bad-secret", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:GetApiKeyCredentialProvider", "kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/bedrock-agentcore-control/check_create_api_key_credential_provider_decryption_failure_on_bad_secret.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-browser-profile-malformed-binary-payload-rejected", "deployments": [], "key": "bedrock-agentcore-control/create-browser-profile-malformed-binary-payload-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateBrowserProfile", "bedrock-agentcore-control:DeleteBrowserProfile", "bedrock-agentcore-control:ListBrowserProfiles"], "path": "behavioral/bedrock-agentcore-control/check_create_browser_profile_malformed_binary_payload_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-capacity-provider-duplicate-name-conflict", "deployments": [], "key": "bedrock-agentcore-control/create-capacity-provider-duplicate-name-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateCapacityProvider", "bedrock-agentcore-control:DeleteCapacityProvider", "bedrock-agentcore-control:GetCapacityProvider", "bedrock-agentcore-control:ListCapacityProviders", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_create_capacity_provider_duplicate_name_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-capacity-provider-out-of-range-value-rejected", "deployments": [], "key": "bedrock-agentcore-control/create-capacity-provider-out-of-range-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateCapacityProvider", "bedrock-agentcore-control:DeleteCapacityProvider", "bedrock-agentcore-control:GetCapacityProvider", "bedrock-agentcore-control:ListCapacityProviders", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_create_capacity_provider_out_of_range_value_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-configuration-bundle-parallel-create-idempotency", "deployments": [], "key": "bedrock-agentcore-control/create-configuration-bundle-parallel-create-idempotency", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateConfigurationBundle", "bedrock-agentcore-control:DeleteConfigurationBundle", "bedrock-agentcore-control:ListConfigurationBundles"], "path": "behavioral/bedrock-agentcore-control/check_create_configuration_bundle_parallel_create_idempotency.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-dataset-version-invalid-schema-rejected", "deployments": [], "key": "bedrock-agentcore-control/create-dataset-version-invalid-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateDataset", "bedrock-agentcore-control:CreateDatasetVersion", "bedrock-agentcore-control:DeleteDataset", "bedrock-agentcore-control:GetDataset", "bedrock-agentcore-control:ListDatasetVersions", "bedrock-agentcore-control:ListDatasets"], "path": "behavioral/bedrock-agentcore-control/check_create_dataset_version_invalid_schema_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-duplicate-agent-runtime-endpoint-rejected", "deployments": [], "key": "bedrock-agentcore-control/create-duplicate-agent-runtime-endpoint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateAgentRuntimeEndpoint", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntimeEndpoint", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetAgentRuntimeEndpoint", "bedrock-agentcore-control:ListAgentRuntimeEndpoints", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/bedrock-agentcore-control/check_create_duplicate_agent_runtime_endpoint_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-gateway-duplicate-name-conflict", "deployments": [], "key": "bedrock-agentcore-control/create-gateway-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:ListGateways", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_create_gateway_duplicate_name_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-gateway-rate-limit-exceeding-max-value-rejected", "deployments": [], "key": "bedrock-agentcore-control/create-gateway-rate-limit-exceeding-max-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRateLimit", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRateLimit", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRateLimit", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayRateLimits", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_create_gateway_rate_limit_exceeding_max_value_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-memory-invalid-dependency-not-found", "deployments": [], "key": "bedrock-agentcore-control/create-memory-invalid-dependency-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore-control:ListMemories", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_create_memory_invalid_dependency_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-oauth2-credential-provider-invalid-scope-rejected", "deployments": [], "key": "bedrock-agentcore-control/create-oauth2-credential-provider-invalid-scope-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateOauth2CredentialProvider", "bedrock-agentcore-control:DeleteOauth2CredentialProvider", "bedrock-agentcore-control:GetOauth2CredentialProvider", "bedrock-agentcore-control:ListOauth2CredentialProviders"], "path": "behavioral/bedrock-agentcore-control/check_create_oauth2_credential_provider_invalid_scope_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-oauth2-credential-provider-malformed-input-rejected", "deployments": [], "key": "bedrock-agentcore-control/create-oauth2-credential-provider-malformed-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateOauth2CredentialProvider", "bedrock-agentcore-control:DeleteOauth2CredentialProvider", "bedrock-agentcore-control:GetOauth2CredentialProvider", "bedrock-agentcore-control:ListOauth2CredentialProviders"], "path": "behavioral/bedrock-agentcore-control/check_create_oauth2_credential_provider_malformed_input_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-payment-credential-provider-decryption-failure", "deployments": [], "key": "bedrock-agentcore-control/create-payment-credential-provider-decryption-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePaymentCredentialProvider", "bedrock-agentcore-control:DeletePaymentCredentialProvider", "bedrock-agentcore-control:GetPaymentCredentialProvider", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/bedrock-agentcore-control/check_create_payment_credential_provider_decryption_failure.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-policy-nonexistent-engine-rejected", "deployments": [], "key": "bedrock-agentcore-control/create-policy-nonexistent-engine-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreatePolicy", "bedrock-agentcore-control:CreatePolicyEngine", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeletePolicy", "bedrock-agentcore-control:DeletePolicyEngine", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetPolicy", "bedrock-agentcore-control:GetPolicyEngine", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:ListPolicies", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_create_policy_nonexistent_engine_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.create-workload-identity-missing-role-not-found", "deployments": [], "key": "bedrock-agentcore-control/create-workload-identity-missing-role-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore-control:GetWorkloadIdentity", "bedrock-agentcore-control:ListWorkloadIdentities"], "path": "behavioral/bedrock-agentcore-control/check_create_workload_identity_missing_role_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.credential-provider-type-isolation-get-rejected", "deployments": [], "key": "bedrock-agentcore-control/credential-provider-type-isolation-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:CreateOauth2CredentialProvider", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:DeleteOauth2CredentialProvider", "bedrock-agentcore-control:GetApiKeyCredentialProvider", "bedrock-agentcore-control:GetOauth2CredentialProvider"], "path": "behavioral/bedrock-agentcore-control/check_credential_provider_type_isolation_get_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.dataset-and-version-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/dataset-and-version-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateDataset", "bedrock-agentcore-control:CreateDatasetVersion", "bedrock-agentcore-control:DeleteDataset", "bedrock-agentcore-control:GetDataset", "bedrock-agentcore-control:ListDatasetVersions", "bedrock-agentcore-control:UpdateDataset"], "path": "behavioral/bedrock-agentcore-control/check_dataset_and_version_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.dataset-lifecycle-and-versioning", "deployments": [], "key": "bedrock-agentcore-control/dataset-lifecycle-and-versioning", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:AddDatasetExamples", "bedrock-agentcore-control:CreateDataset", "bedrock-agentcore-control:CreateDatasetVersion", "bedrock-agentcore-control:DeleteDataset", "bedrock-agentcore-control:GetDataset", "bedrock-agentcore-control:ListDatasetVersions"], "path": "behavioral/bedrock-agentcore-control/check_dataset_lifecycle_and_versioning.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-agent-runtime-while-endpoint-in-service-blocked", "deployments": [], "key": "bedrock-agentcore-control/delete-agent-runtime-while-endpoint-in-service-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateAgentRuntimeEndpoint", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntimeEndpoint", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetAgentRuntimeEndpoint", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/bedrock-agentcore-control/check_delete_agent_runtime_while_endpoint_in_service_blocked.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-api-key-credential-provider-nonexistent-not-found", "deployments": [], "key": "bedrock-agentcore-control/delete-api-key-credential-provider-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:GetApiKeyCredentialProvider", "bedrock-agentcore-control:UpdateApiKeyCredentialProvider"], "path": "behavioral/bedrock-agentcore-control/check_delete_api_key_credential_provider_nonexistent_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-builtin-browser-rejected", "deployments": [], "key": "bedrock-agentcore-control/delete-builtin-browser-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateBrowser", "bedrock-agentcore-control:DeleteBrowser", "bedrock-agentcore-control:GetBrowser"], "path": "behavioral/bedrock-agentcore-control/check_delete_builtin_browser_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-capacity-provider-in-use-by-runtime-blocked", "deployments": [], "key": "bedrock-agentcore-control/delete-capacity-provider-in-use-by-runtime-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateCapacityProvider", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteCapacityProvider", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetCapacityProvider", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_delete_capacity_provider_in_use_by_runtime_blocked.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-dataset-examples-concurrent-delete-conflict", "deployments": [], "key": "bedrock-agentcore-control/delete-dataset-examples-concurrent-delete-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:AddDatasetExamples", "bedrock-agentcore-control:CreateDataset", "bedrock-agentcore-control:CreateDatasetVersion", "bedrock-agentcore-control:DeleteDataset", "bedrock-agentcore-control:DeleteDatasetExamples", "bedrock-agentcore-control:GetDataset", "bedrock-agentcore-control:ListDatasetExamples"], "path": "behavioral/bedrock-agentcore-control/check_delete_dataset_examples_concurrent_delete_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-gateway-target-in-use-by-rule-allowed", "deployments": [], "key": "bedrock-agentcore-control/delete-gateway-target-in-use-by-rule-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRule", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRule", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRule", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_delete_gateway_target_in_use_by_rule_allowed.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-gateway-with-active-target-rejected", "deployments": [], "key": "bedrock-agentcore-control/delete-gateway-with-active-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_delete_gateway_with_active_target_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-gateway-with-active-targets-conflict", "deployments": [], "key": "bedrock-agentcore-control/delete-gateway-with-active-targets-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_delete_gateway_with_active_targets_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-gateway-without-iam-permission-denied", "deployments": [], "key": "bedrock-agentcore-control/delete-gateway-without-iam-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_delete_gateway_without_iam_permission_denied.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-harness-with-active-endpoints-blocked", "deployments": [], "key": "bedrock-agentcore-control/delete-harness-with-active-endpoints-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateHarness", "bedrock-agentcore-control:CreateHarnessEndpoint", "bedrock-agentcore-control:DeleteHarness", "bedrock-agentcore-control:DeleteHarnessEndpoint", "bedrock-agentcore-control:GetHarness", "bedrock-agentcore-control:GetHarnessEndpoint", "bedrock-agentcore-control:ListHarnessEndpoints", "bedrock-agentcore-control:ListHarnessVersions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_delete_harness_with_active_endpoints_blocked.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-memory-nonexistent-returns-resource-not-found", "deployments": [], "key": "bedrock-agentcore-control/delete-memory-nonexistent-returns-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory"], "path": "behavioral/bedrock-agentcore-control/check_delete_memory_nonexistent_returns_resource_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-online-evaluation-config-nonexistent-conflict-class", "deployments": [], "key": "bedrock-agentcore-control/delete-online-evaluation-config-nonexistent-conflict-class", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateOnlineEvaluationConfig", "bedrock-agentcore-control:DeleteOnlineEvaluationConfig", "bedrock-agentcore-control:GetOnlineEvaluationConfig", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agentcore-control/check_delete_online_evaluation_config_nonexistent_conflict_class.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-payment-credential-provider-nonexistent-not-found", "deployments": [], "key": "bedrock-agentcore-control/delete-payment-credential-provider-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePaymentCredentialProvider", "bedrock-agentcore-control:DeletePaymentCredentialProvider", "bedrock-agentcore-control:GetPaymentCredentialProvider"], "path": "behavioral/bedrock-agentcore-control/check_delete_payment_credential_provider_nonexistent_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-policy-engine-with-active-policies-blocked", "deployments": [], "key": "bedrock-agentcore-control/delete-policy-engine-with-active-policies-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreatePolicy", "bedrock-agentcore-control:CreatePolicyEngine", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeletePolicy", "bedrock-agentcore-control:DeletePolicyEngine", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetPolicy", "bedrock-agentcore-control:GetPolicyEngine", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:ListPolicies", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_delete_policy_engine_with_active_policies_blocked.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-policy-engine-with-policy-conflict-rejected", "deployments": [], "key": "bedrock-agentcore-control/delete-policy-engine-with-policy-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreatePolicy", "bedrock-agentcore-control:CreatePolicyEngine", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeletePolicy", "bedrock-agentcore-control:DeletePolicyEngine", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetPolicy", "bedrock-agentcore-control:GetPolicyEngine", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:ListPolicies", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_delete_policy_engine_with_policy_conflict_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-resource-policy-nonexistent-resource-not-found", "deployments": [], "key": "bedrock-agentcore-control/delete-resource-policy-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteResourcePolicy", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetResourcePolicy", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_delete_resource_policy_nonexistent_resource_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-workload-identity-attached-to-runtime-blocked", "deployments": [], "key": "bedrock-agentcore-control/delete-workload-identity-attached-to-runtime-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore-control:GetWorkloadIdentity"], "path": "behavioral/bedrock-agentcore-control/check_delete_workload_identity_attached_to_runtime_blocked.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.delete-workload-identity-nonexistent-returns-resource-not-found", "deployments": [], "key": "bedrock-agentcore-control/delete-workload-identity-nonexistent-returns-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore-control:GetWorkloadIdentity"], "path": "behavioral/bedrock-agentcore-control/check_delete_workload_identity_nonexistent_returns_resource_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.deploy-agent-runtime-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control/deploy-agent-runtime-cfn-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore:InvokeAgentRuntime", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock-agentcore-control/check_deploy_agent_runtime_cfn_behaves.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.deploy-gateway-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control/deploy-gateway-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control/check_deploy_gateway_cfn_behaves.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.deploy-memory-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control/deploy-memory-cfn-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:ListEvents", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control/check_deploy_memory_cfn_behaves.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.deploy-workload-identity-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control/deploy-workload-identity-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetWorkloadIdentity", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock-agentcore-control/check_deploy_workload_identity_cfn_behaves.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.evaluator-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/evaluator-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateEvaluator", "bedrock-agentcore-control:DeleteEvaluator", "bedrock-agentcore-control:GetEvaluator", "bedrock-agentcore-control:UpdateEvaluator"], "path": "behavioral/bedrock-agentcore-control/check_evaluator_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-create-lifecycle-ready", "deployments": [], "key": "bedrock-agentcore-control/gateway-create-lifecycle-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_gateway_create_lifecycle_ready.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-delete-with-target-conflict-rejected", "deployments": [], "key": "bedrock-agentcore-control/gateway-delete-with-target-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_gateway_delete_with_target_conflict_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-duplicate-name-conflict-rejected", "deployments": [], "key": "bedrock-agentcore-control/gateway-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_gateway_duplicate_name_conflict_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/gateway-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGateway", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_gateway_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-rate-limit-lifecycle", "deployments": [], "key": "bedrock-agentcore-control/gateway-rate-limit-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRateLimit", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRateLimit", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRateLimit", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGatewayRateLimit", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_gateway_rate_limit_lifecycle.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-rate-limit-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/gateway-rate-limit-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:BatchPutGatewayRateLimits", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRateLimit", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRateLimit", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRateLimit", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayRateLimits", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGatewayRateLimit", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_gateway_rate_limit_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-rule-duplicate-priority-rejected", "deployments": [], "key": "bedrock-agentcore-control/gateway-rule-duplicate-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateConfigurationBundle", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRule", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRule", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayRules", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_gateway_rule_duplicate_priority_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-rule-lifecycle", "deployments": [], "key": "bedrock-agentcore-control/gateway-rule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRule", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRule", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRule", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGatewayRule", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_gateway_rule_lifecycle.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-rule-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/gateway-rule-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateConfigurationBundle", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRule", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRule", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRule", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGatewayRule", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_gateway_rule_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-target-lifecycle-ready", "deployments": [], "key": "bedrock-agentcore-control/gateway-target-lifecycle-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGatewayTarget", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_gateway_target_lifecycle_ready.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.gateway-target-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/gateway-target-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGateway", "bedrock-agentcore-control:UpdateGatewayTarget", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_gateway_target_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.get-gateway-not-found-error", "deployments": [], "key": "bedrock-agentcore-control/get-gateway-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_get_gateway_not_found_error.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.harness-and-endpoint-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/harness-and-endpoint-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateHarness", "bedrock-agentcore-control:CreateHarnessEndpoint", "bedrock-agentcore-control:DeleteHarness", "bedrock-agentcore-control:DeleteHarnessEndpoint", "bedrock-agentcore-control:GetHarness", "bedrock-agentcore-control:GetHarnessEndpoint", "bedrock-agentcore-control:ListHarnessEndpoints", "bedrock-agentcore-control:UpdateHarness", "bedrock-agentcore-control:UpdateHarnessEndpoint", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_harness_and_endpoint_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.list-agent-runtimes-maxresults-range-rejected", "deployments": [], "key": "bedrock-agentcore-control/list-agent-runtimes-maxresults-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:ListAgentRuntimes"], "path": "behavioral/bedrock-agentcore-control/check_list_agent_runtimes_maxresults_range_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.memory-lifecycle-and-delete", "deployments": [], "key": "bedrock-agentcore-control/memory-lifecycle-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory"], "path": "behavioral/bedrock-agentcore-control/check_memory_lifecycle_and_delete.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.memory-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/memory-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore-control:UpdateMemory"], "path": "behavioral/bedrock-agentcore-control/check_memory_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.memory-update-merges-indexed-keys-but-replaces-namespace-keys", "deployments": [], "key": "bedrock-agentcore-control/memory-update-merges-indexed-keys-but-replaces-namespace-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore-control:UpdateMemory"], "path": "behavioral/bedrock-agentcore-control/check_memory_update_merges_indexed_keys_but_replaces_namespace_keys.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.oauth2-credential-provider-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/oauth2-credential-provider-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateOauth2CredentialProvider", "bedrock-agentcore-control:DeleteOauth2CredentialProvider", "bedrock-agentcore-control:GetOauth2CredentialProvider", "bedrock-agentcore-control:UpdateOauth2CredentialProvider"], "path": "behavioral/bedrock-agentcore-control/check_oauth2_credential_provider_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.oauth2-credential-provider-secret-in-secrets-manager", "deployments": [], "key": "bedrock-agentcore-control/oauth2-credential-provider-secret-in-secrets-manager", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateOauth2CredentialProvider", "bedrock-agentcore-control:DeleteOauth2CredentialProvider", "bedrock-agentcore-control:GetOauth2CredentialProvider", "secretsmanager:GetSecretValue"], "path": "behavioral/bedrock-agentcore-control/check_oauth2_credential_provider_secret_in_secrets_manager.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.online-evaluation-config-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/online-evaluation-config-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateOnlineEvaluationConfig", "bedrock-agentcore-control:DeleteOnlineEvaluationConfig", "bedrock-agentcore-control:GetOnlineEvaluationConfig", "bedrock-agentcore-control:UpdateOnlineEvaluationConfig", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agentcore-control/check_online_evaluation_config_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.payment-connector-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/payment-connector-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePaymentConnector", "bedrock-agentcore-control:CreatePaymentCredentialProvider", "bedrock-agentcore-control:CreatePaymentManager", "bedrock-agentcore-control:DeletePaymentConnector", "bedrock-agentcore-control:GetPaymentConnector", "bedrock-agentcore-control:GetPaymentManager", "bedrock-agentcore-control:UpdatePaymentConnector", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_payment_connector_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.payment-credential-provider-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/payment-credential-provider-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePaymentCredentialProvider", "bedrock-agentcore-control:DeletePaymentCredentialProvider", "bedrock-agentcore-control:GetPaymentCredentialProvider", "bedrock-agentcore-control:UpdatePaymentCredentialProvider"], "path": "behavioral/bedrock-agentcore-control/check_payment_credential_provider_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.payment-manager-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/payment-manager-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePaymentManager", "bedrock-agentcore-control:DeletePaymentManager", "bedrock-agentcore-control:GetPaymentManager", "bedrock-agentcore-control:UpdatePaymentManager", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_payment_manager_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.policy-engine-and-policy-lifecycle", "deployments": [], "key": "bedrock-agentcore-control/policy-engine-and-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreatePolicy", "bedrock-agentcore-control:CreatePolicyEngine", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeletePolicy", "bedrock-agentcore-control:DeletePolicyEngine", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetPolicy", "bedrock-agentcore-control:GetPolicyEngine", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:ListPolicies", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_policy_engine_and_policy_lifecycle.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.policy-engine-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/policy-engine-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePolicyEngine", "bedrock-agentcore-control:DeletePolicyEngine", "bedrock-agentcore-control:GetPolicyEngine", "bedrock-agentcore-control:UpdatePolicyEngine"], "path": "behavioral/bedrock-agentcore-control/check_policy_engine_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.policy-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/policy-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreatePolicy", "bedrock-agentcore-control:CreatePolicyEngine", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeletePolicy", "bedrock-agentcore-control:DeletePolicyEngine", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetPolicy", "bedrock-agentcore-control:GetPolicyEngine", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:ListPolicies", "bedrock-agentcore-control:UpdatePolicy", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_policy_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.put-resource-policy-nonexistent-resource-not-found", "deployments": [], "key": "bedrock-agentcore-control/put-resource-policy-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteResourcePolicy", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetResourcePolicy", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_put_resource_policy_nonexistent_resource_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.put-resource-policy-refused-for-unsupported-resource-types", "deployments": [], "key": "bedrock-agentcore-control/put-resource-policy-refused-for-unsupported-resource-types", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:CreateBrowser", "bedrock-agentcore-control:CreateCodeInterpreter", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:DeleteBrowser", "bedrock-agentcore-control:DeleteCodeInterpreter", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteResourcePolicy", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore-control:GetBrowser", "bedrock-agentcore-control:GetCodeInterpreter", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetResourcePolicy", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:PutResourcePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_put_resource_policy_refused_for_unsupported_resource_types.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.registry-creation-deterministically-refused-without-entitlement", "deployments": [], "key": "bedrock-agentcore-control/registry-creation-deterministically-refused-without-entitlement", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:CreateRegistry", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:GetApiKeyCredentialProvider", "bedrock-agentcore-control:ListGateways", "bedrock-agentcore-control:ListRegistries", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_registry_creation_deterministically_refused_without_entitlement.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.resource-policy-put-get-delete-roundtrip", "deployments": [], "key": "bedrock-agentcore-control/resource-policy-put-get-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteResourcePolicy", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetResourcePolicy", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_resource_policy_put_get_delete_roundtrip.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.set-token-vault-cmk-concurrent-modification", "deployments": [], "key": "bedrock-agentcore-control/set-token-vault-cmk-concurrent-modification", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetTokenVault", "bedrock-agentcore-control:SetTokenVaultCMK", "kms:CreateKey", "kms:DescribeKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_set_token_vault_cmk_concurrent_modification.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.synchronize-gateway-targets-advances-last-synchronized-at", "deployments": [], "key": "bedrock-agentcore-control/synchronize-gateway-targets-advances-last-synchronized-at", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:SynchronizeGatewayTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_synchronize_gateway_targets_advances_last_synchronized_at.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.tag-resource-list-and-untag-roundtrip", "deployments": [], "key": "bedrock-agentcore-control/tag-resource-list-and-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:ListTagsForResource", "bedrock-agentcore-control:TagResource", "bedrock-agentcore-control:UntagResource", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_tag_resource_list_and_untag_roundtrip.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-agent-runtime-endpoint-concurrent-traffic-shift-conflict", "deployments": [], "key": "bedrock-agentcore-control/update-agent-runtime-endpoint-concurrent-traffic-shift-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateAgentRuntimeEndpoint", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntimeEndpoint", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetAgentRuntimeEndpoint", "bedrock-agentcore-control:UpdateAgentRuntime", "bedrock-agentcore-control:UpdateAgentRuntimeEndpoint", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/bedrock-agentcore-control/check_update_agent_runtime_endpoint_concurrent_traffic_shift_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-agent-runtime-endpoint-nonexistent-version-rejected", "deployments": [], "key": "bedrock-agentcore-control/update-agent-runtime-endpoint-nonexistent-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateAgentRuntimeEndpoint", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntimeEndpoint", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetAgentRuntimeEndpoint", "bedrock-agentcore-control:UpdateAgentRuntimeEndpoint", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_update_agent_runtime_endpoint_nonexistent_version_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-agent-runtime-invalid-state-transition-rejected", "deployments": [], "key": "bedrock-agentcore-control/update-agent-runtime-invalid-state-transition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:UpdateAgentRuntime", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_update_agent_runtime_invalid_state_transition_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-capacity-provider-concurrent-updates-last-write-wins", "deployments": [], "key": "bedrock-agentcore-control/update-capacity-provider-concurrent-updates-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateCapacityProvider", "bedrock-agentcore-control:DeleteCapacityProvider", "bedrock-agentcore-control:GetCapacityProvider", "bedrock-agentcore-control:UpdateCapacityProvider", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/bedrock-agentcore-control/check_update_capacity_provider_concurrent_updates_last_write_wins.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-consent-portal-after-final-state-blocked", "deployments": [], "key": "bedrock-agentcore-control/update-consent-portal-after-final-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateConsentPortal", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateOauth2CredentialProvider", "bedrock-agentcore-control:DeleteConsentPortal", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteOauth2CredentialProvider", "bedrock-agentcore-control:GetConsentPortal", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateConsentPortal", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/bedrock-agentcore-control/check_update_consent_portal_after_final_state_blocked.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-dataset-concurrent-version-conflict", "deployments": [], "key": "bedrock-agentcore-control/update-dataset-concurrent-version-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateDataset", "bedrock-agentcore-control:CreateDatasetVersion", "bedrock-agentcore-control:DeleteDataset", "bedrock-agentcore-control:GetDataset", "bedrock-agentcore-control:ListDatasetVersions", "bedrock-agentcore-control:UpdateDataset"], "path": "behavioral/bedrock-agentcore-control/check_update_dataset_concurrent_version_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-deleted-evaluator-rejected", "deployments": [], "key": "bedrock-agentcore-control/update-deleted-evaluator-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateEvaluator", "bedrock-agentcore-control:DeleteEvaluator", "bedrock-agentcore-control:GetEvaluator", "bedrock-agentcore-control:UpdateEvaluator"], "path": "behavioral/bedrock-agentcore-control/check_update_deleted_evaluator_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-gateway-conflicting-name-rejected", "deployments": [], "key": "bedrock-agentcore-control/update-gateway-conflicting-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGateway", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control/check_update_gateway_conflicting_name_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-gateway-rate-limit-optimistic-lock-conflict", "deployments": [], "key": "bedrock-agentcore-control/update-gateway-rate-limit-optimistic-lock-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRateLimit", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRateLimit", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRateLimit", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGatewayRateLimit", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/bedrock-agentcore-control/check_update_gateway_rate_limit_optimistic_lock_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-gateway-rule-optimistic-lock-conflict", "deployments": [], "key": "bedrock-agentcore-control/update-gateway-rule-optimistic-lock-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateConfigurationBundle", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayRule", "bedrock-agentcore-control:DeleteConfigurationBundle", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayRule", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRule", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore-control:UpdateGatewayRule", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/bedrock-agentcore-control/check_update_gateway_rule_optimistic_lock_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-harness-endpoint-concurrent-update-conflict", "deployments": [], "key": "bedrock-agentcore-control/update-harness-endpoint-concurrent-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateHarness", "bedrock-agentcore-control:CreateHarnessEndpoint", "bedrock-agentcore-control:DeleteHarness", "bedrock-agentcore-control:DeleteHarnessEndpoint", "bedrock-agentcore-control:GetHarness", "bedrock-agentcore-control:GetHarnessEndpoint", "bedrock-agentcore-control:ListHarnessEndpoints", "bedrock-agentcore-control:UpdateHarnessEndpoint", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/bedrock-agentcore-control/check_update_harness_endpoint_concurrent_update_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-memory-invalid-state-transition-rejected", "deployments": [], "key": "bedrock-agentcore-control/update-memory-invalid-state-transition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore-control:UpdateMemory"], "path": "behavioral/bedrock-agentcore-control/check_update_memory_invalid_state_transition_rejected.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-oauth2-credential-provider-decryption-failure-on-rotated-kms", "deployments": [], "key": "bedrock-agentcore-control/update-oauth2-credential-provider-decryption-failure-on-rotated-kms", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateOauth2CredentialProvider", "bedrock-agentcore-control:DeleteOauth2CredentialProvider", "bedrock-agentcore-control:GetOauth2CredentialProvider", "bedrock-agentcore-control:UpdateOauth2CredentialProvider", "kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/bedrock-agentcore-control/check_update_oauth2_credential_provider_decryption_failure_on_rotated_kms.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-payment-manager-concurrent-update-conflict", "deployments": [], "key": "bedrock-agentcore-control/update-payment-manager-concurrent-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePaymentManager", "bedrock-agentcore-control:DeletePaymentManager", "bedrock-agentcore-control:GetPaymentManager", "bedrock-agentcore-control:UpdatePaymentManager", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agentcore-control/check_update_payment_manager_concurrent_update_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-policy-engine-concurrent-edit-conflict", "deployments": [], "key": "bedrock-agentcore-control/update-policy-engine-concurrent-edit-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePolicyEngine", "bedrock-agentcore-control:DeletePolicyEngine", "bedrock-agentcore-control:GetPolicyEngine", "bedrock-agentcore-control:UpdatePolicyEngine"], "path": "behavioral/bedrock-agentcore-control/check_update_policy_engine_concurrent_edit_conflict.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.update-workload-identity-nonexistent-returns-resource-not-found", "deployments": [], "key": "bedrock-agentcore-control/update-workload-identity-nonexistent-returns-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore-control:GetWorkloadIdentity", "bedrock-agentcore-control:UpdateWorkloadIdentity"], "path": "behavioral/bedrock-agentcore-control/check_update_workload_identity_nonexistent_returns_resource_not_found.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.workload-identity-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore-control/workload-identity-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore-control:GetWorkloadIdentity", "bedrock-agentcore-control:UpdateWorkloadIdentity"], "path": "behavioral/bedrock-agentcore-control/check_workload_identity_lifecycle_transitions.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control.workload-identity-update-roundtrip", "deployments": [], "key": "bedrock-agentcore-control/workload-identity-update-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore-control:GetWorkloadIdentity", "bedrock-agentcore-control:UpdateWorkloadIdentity"], "path": "behavioral/bedrock-agentcore-control/check_workload_identity_update_roundtrip.py", "service": "bedrock-agentcore-control"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-browser-resources-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-browser-resources-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetBrowser", "bedrock-agentcore-control:GetBrowserProfile", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_browser_resources_cfn_behaves.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-configuration-bundle-round-trip-then-stack-delete", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-configuration-bundle-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetConfigurationBundle", "bedrock-agentcore-control:ListTagsForResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_configuration_bundle_round_trip_then_stack_delete.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-consent-portal-cfn-provisions-and-tombstones", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-consent-portal-cfn-provisions-and-tombstones", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetConsentPortal", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_consent_portal_cfn_provisions_and_tombstones.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-dataset-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-dataset-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetDataset", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_dataset_cfn_behaves.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-dataset-missing-turns-field-rejected", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-dataset-missing-turns-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_dataset_missing_turns_field_rejected.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-duplicate-gateway-rate-limit-dimension-keys-rejected-and-rolled-back", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-duplicate-gateway-rate-limit-dimension-keys-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:GetGateway", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_duplicate_gateway_rate_limit_dimension_keys_rejected_and_rolled_back.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-evaluator-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-evaluator-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetEvaluator", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_evaluator_cfn_behaves.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-evaluator-invalid-placeholder-rejected", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-evaluator-invalid-placeholder-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:GetEvaluator", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_evaluator_invalid_placeholder_rejected.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-gateway-rate-limit-rule-and-resource-policy-cfn-provisions-and-tombstones", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-gateway-rate-limit-rule-and-resource-policy-cfn-provisions-and-tombstones", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayRateLimit", "bedrock-agentcore-control:GetGatewayRule", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetResourcePolicy", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_gateway_rate_limit_rule_and_resource_policy_cfn_provisions_and_tombstones.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-oauth2-credential-provider-cfn-provisions-and-tombstones", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-oauth2-credential-provider-cfn-provisions-and-tombstones", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetOauth2CredentialProvider", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_oauth2_credential_provider_cfn_provisions_and_tombstones.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-online-evaluation-config-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-online-evaluation-config-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetOnlineEvaluationConfig", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_online_evaluation_config_cfn_behaves.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-policy-wildcard-resource-statement-rejected", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-policy-wildcard-resource-statement-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:GetPolicyEngine", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_policy_wildcard_resource_statement_rejected.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-policyengine-and-policy-round-trip-then-child-and-stack-delete", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-policyengine-and-policy-round-trip-then-child-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetPolicy", "bedrock-agentcore-control:GetPolicyEngine", "bedrock-agentcore-control:ListTagsForResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_policyengine_and_policy_round_trip_then_child_and_stack_delete.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-resource-policy-mismatched-arn-rejected-and-rolled-back", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-resource-policy-mismatched-arn-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetResourcePolicy", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_resource_policy_mismatched_arn_rejected_and_rolled_back.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation.deploy-runtime-endpoint-cfn-behaves", "deployments": [], "key": "bedrock-agentcore-control__cloudformation/deploy-runtime-endpoint-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetAgentRuntimeEndpoint", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock-agentcore-control__cloudformation/check_deploy_runtime_endpoint_cfn_behaves.py", "service": "bedrock-agentcore-control__cloudformation"} {"check_id": "bedrock-agentcore-control__cloudformation__secretsmanager.deploy-api-key-credential-provider-cfn-secret-and-tombstones", "deployments": [], "key": "bedrock-agentcore-control__cloudformation__secretsmanager/deploy-api-key-credential-provider-cfn-secret-and-tombstones", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["bedrock-agentcore-control:GetApiKeyCredentialProvider", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/bedrock-agentcore-control__cloudformation__secretsmanager/check_deploy_api_key_credential_provider_cfn_secret_and_tombstones.py", "service": "bedrock-agentcore-control__cloudformation__secretsmanager"} {"check_id": "bedrock-agentcore-control__lambda.gateway-mcp-lambda-target-requires-existing-function", "deployments": [], "key": "bedrock-agentcore-control__lambda/gateway-mcp-lambda-target-requires-existing-function", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control__lambda/check_gateway_mcp_lambda_target_requires_existing_function.py", "service": "bedrock-agentcore-control__lambda"} {"check_id": "bedrock-agentcore-control__s3.agent-runtime-code-artifact-requires-existing-s3-object", "deployments": [], "key": "bedrock-agentcore-control__s3/agent-runtime-code-artifact-requires-existing-s3-object", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:ListAgentRuntimes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore-control__s3/check_agent_runtime_code_artifact_requires_existing_s3_object.py", "service": "bedrock-agentcore-control__s3"} {"check_id": "bedrock-agentcore.abtest-lifecycle-transitions", "deployments": [], "key": "bedrock-agentcore/abtest-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:CreateOnlineEvaluationConfig", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteOnlineEvaluationConfig", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetOnlineEvaluationConfig", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore:CreateABTest", "bedrock-agentcore:DeleteABTest", "bedrock-agentcore:GetABTest", "bedrock-agentcore:UpdateABTest", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity", "xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/bedrock-agentcore/check_abtest_lifecycle_transitions.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.agc-browser-screenshot-honours-session-viewport", "deployments": [], "key": "bedrock-agentcore/agc-browser-screenshot-honours-session-viewport", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeBrowser", "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession"], "path": "behavioral/bedrock-agentcore/check_agc_browser_screenshot_honours_session_viewport.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.agc-code-interpreter-file-tool-path-escape-rejected", "deployments": [], "key": "bedrock-agentcore/agc-code-interpreter-file-tool-path-escape-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeCodeInterpreter", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_agc_code_interpreter_file_tool_path_escape_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.agc-code-interpreter-file-tools-share-one-sandbox-filesystem", "deployments": [], "key": "bedrock-agentcore/agc-code-interpreter-file-tools-share-one-sandbox-filesystem", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeCodeInterpreter", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_agc_code_interpreter_file_tools_share_one_sandbox_filesystem.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.agc-code-interpreter-filesystem-isolated-across-sessions", "deployments": [], "key": "bedrock-agentcore/agc-code-interpreter-filesystem-isolated-across-sessions", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeCodeInterpreter", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_agc_code_interpreter_filesystem_isolated_across_sessions.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.agc-memory-event-session-isolation", "deployments": [], "key": "bedrock-agentcore/agc-memory-event-session-isolation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:ListSessions"], "path": "behavioral/bedrock-agentcore/check_agc_memory_event_session_isolation.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.agentcore-memory-record-delete-removes-only-that-record", "deployments": [], "key": "bedrock-agentcore/agentcore-memory-record-delete-removes-only-that-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords"], "path": "behavioral/bedrock-agentcore/check_agentcore_memory_record_delete_removes_only_that_record.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.batch-create-memory-records-client-token-is-idempotent", "deployments": [], "key": "bedrock-agentcore/batch-create-memory-records-client-token-is-idempotent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords"], "path": "behavioral/bedrock-agentcore/check_batch_create_memory_records_client_token_is_idempotent.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.batch-evaluation-async-server-side-scoring", "deployments": [], "key": "bedrock-agentcore/batch-evaluation-async-server-side-scoring", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore:DeleteBatchEvaluation", "bedrock-agentcore:GetBatchEvaluation", "bedrock-agentcore:StartBatchEvaluation", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agentcore/check_batch_evaluation_async_server_side_scoring.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.batch-evaluation-lifecycle", "deployments": [], "key": "bedrock-agentcore/batch-evaluation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore:DeleteBatchEvaluation", "bedrock-agentcore:GetBatchEvaluation", "bedrock-agentcore:StartBatchEvaluation", "bedrock-agentcore:StopBatchEvaluation", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agentcore/check_batch_evaluation_lifecycle.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.browser-session-idle-timeout-auto-stop", "deployments": [], "key": "bedrock-agentcore/browser-session-idle-timeout-auto-stop", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession"], "path": "behavioral/bedrock-agentcore/check_browser_session_idle_timeout_auto_stop.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.browser-session-invoke-after-stop-rejected", "deployments": [], "key": "bedrock-agentcore/browser-session-invoke-after-stop-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:InvokeBrowser", "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession"], "path": "behavioral/bedrock-agentcore/check_browser_session_invoke_after_stop_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.browser-session-lifecycle", "deployments": [], "key": "bedrock-agentcore/browser-session-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession"], "path": "behavioral/bedrock-agentcore/check_browser_session_lifecycle.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.code-interpreter-async-task-converges-and-stop-task-cancels", "deployments": [], "key": "bedrock-agentcore/code-interpreter-async-task-converges-and-stop-task-cancels", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeCodeInterpreter", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_code_interpreter_async_task_converges_and_stop_task_cancels.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.code-interpreter-session-lifecycle", "deployments": [], "key": "bedrock-agentcore/code-interpreter-session-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_code_interpreter_session_lifecycle.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.complete-resource-token-auth-server-validated-issuance", "deployments": [], "key": "bedrock-agentcore/complete-resource-token-auth-server-validated-issuance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateApiKeyCredentialProvider", "bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteApiKeyCredentialProvider", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore:CompleteResourceTokenAuth", "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:GetWorkloadAccessToken"], "path": "behavioral/bedrock-agentcore/check_complete_resource_token_auth_server_validated_issuance.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.create-ab-test-duplicate-name-blocked", "deployments": [], "key": "bedrock-agentcore/create-ab-test-duplicate-name-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:CreateOnlineEvaluationConfig", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteOnlineEvaluationConfig", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetOnlineEvaluationConfig", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore:CreateABTest", "bedrock-agentcore:DeleteABTest", "bedrock-agentcore:GetABTest", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/bedrock-agentcore/check_create_ab_test_duplicate_name_blocked.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.create-abtest-invalid-variant-weights-rejected", "deployments": [], "key": "bedrock-agentcore/create-abtest-invalid-variant-weights-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:CreateOnlineEvaluationConfig", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteOnlineEvaluationConfig", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetOnlineEvaluationConfig", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore:CreateABTest", "bedrock-agentcore:DeleteABTest", "bedrock-agentcore:GetABTest", "bedrock-agentcore:ListABTests", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/bedrock-agentcore/check_create_abtest_invalid_variant_weights_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.create-event-extraction-mode-skip-withholds-the-long-term-record", "deployments": [], "key": "bedrock-agentcore/create-event-extraction-mode-skip-withholds-the-long-term-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListEvents", "bedrock-agentcore:ListMemoryRecords", "bedrock-agentcore:RetrieveMemoryRecords", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/bedrock-agentcore/check_create_event_extraction_mode_skip_withholds_the_long_term_record.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.create-event-malformed-payload-rejected", "deployments": [], "key": "bedrock-agentcore/create-event-malformed-payload-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:CreateEvent"], "path": "behavioral/bedrock-agentcore/check_create_event_malformed_payload_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.delete-batch-evaluation-while-in-progress-rejected", "deployments": [], "key": "bedrock-agentcore/delete-batch-evaluation-while-in-progress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore:DeleteBatchEvaluation", "bedrock-agentcore:GetBatchEvaluation", "bedrock-agentcore:StartBatchEvaluation", "bedrock-agentcore:StopBatchEvaluation", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agentcore/check_delete_batch_evaluation_while_in_progress_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.delete-memory-record-invalid-input-malformed-id", "deployments": [], "key": "bedrock-agentcore/delete-memory-record-invalid-input-malformed-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:DeleteMemoryRecord"], "path": "behavioral/bedrock-agentcore/check_delete_memory_record_invalid_input_malformed_id.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.delete-nonexistent-abtest-conflict-not-notfound", "deployments": [], "key": "bedrock-agentcore/delete-nonexistent-abtest-conflict-not-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:CreateOnlineEvaluationConfig", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteOnlineEvaluationConfig", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetOnlineEvaluationConfig", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore:CreateABTest", "bedrock-agentcore:DeleteABTest", "bedrock-agentcore:GetABTest", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/bedrock-agentcore/check_delete_nonexistent_abtest_conflict_not_notfound.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.deploy-agent-runtime-invokable-via-cfn", "deployments": [], "key": "bedrock-agentcore/deploy-agent-runtime-invokable-via-cfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeAgentRuntime", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock-agentcore/check_deploy_agent_runtime_invokable_via_cfn.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.deploy-code-interpreter-custom-resource-executes", "deployments": [], "key": "bedrock-agentcore/deploy-code-interpreter-custom-resource-executes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeCodeInterpreter", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-agentcore/check_deploy_code_interpreter_custom_resource_executes.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.e2e-ab-test-traffic-routing-consequence", "deployments": [], "key": "bedrock-agentcore/e2e-ab-test-traffic-routing-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:CreateOnlineEvaluationConfig", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteOnlineEvaluationConfig", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetOnlineEvaluationConfig", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore:CreateABTest", "bedrock-agentcore:DeleteABTest", "bedrock-agentcore:GetABTest", "bedrock-agentcore:UpdateABTest", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity", "xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/bedrock-agentcore/check_e2e_ab_test_traffic_routing_consequence.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.e2e-code-interpreter-side-effect-persistence", "deployments": [], "key": "bedrock-agentcore/e2e-code-interpreter-side-effect-persistence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeCodeInterpreter", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_e2e_code_interpreter_side_effect_persistence.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.e2e-memory-extraction-to-retrieval", "deployments": [], "key": "bedrock-agentcore/e2e-memory-extraction-to-retrieval", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:IngestData", "bedrock-agentcore:ListMemoryExtractionJobs", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:StartMemoryExtractionJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/bedrock-agentcore/check_e2e_memory_extraction_to_retrieval.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.empty-vs-absent-field-preserved", "deployments": [], "key": "bedrock-agentcore/empty-vs-absent-field-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent"], "path": "behavioral/bedrock-agentcore/check_empty_vs_absent_field_preserved.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.evaluate-duplicate-id-rejected", "deployments": [], "key": "bedrock-agentcore/evaluate-duplicate-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:Evaluate"], "path": "behavioral/bedrock-agentcore/check_evaluate_duplicate_id_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.event-payload-base64-blob-round-trip", "deployments": [], "key": "bedrock-agentcore/event-payload-base64-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent"], "path": "behavioral/bedrock-agentcore/check_event_payload_base64_blob_round_trip.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.get-event-malformed-id-invalid-input", "deployments": [], "key": "bedrock-agentcore/get-event-malformed-id-invalid-input", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:GetEvent"], "path": "behavioral/bedrock-agentcore/check_get_event_malformed_id_invalid_input.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.get-event-missing-resource-not-found", "deployments": [], "key": "bedrock-agentcore/get-event-missing-resource-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:GetEvent"], "path": "behavioral/bedrock-agentcore/check_get_event_missing_resource_not_found.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.get-memory-record-cross-tenant-read-denied", "deployments": [], "key": "bedrock-agentcore/get-memory-record-cross-tenant-read-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore/check_get_memory_record_cross_tenant_read_denied.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.invoke-agent-runtime-cross-tenant-denied", "deployments": [], "key": "bedrock-agentcore/invoke-agent-runtime-cross-tenant-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore/check_invoke_agent_runtime_cross_tenant_denied.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.invoke-agent-runtime-missing-permission-denied", "deployments": [], "key": "bedrock-agentcore/invoke-agent-runtime-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeAgentRuntime", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore/check_invoke_agent_runtime_missing_permission_denied.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.invoke-agent-runtime-nonexistent-not-found", "deployments": [], "key": "bedrock-agentcore/invoke-agent-runtime-nonexistent-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateAgentRuntime", "bedrock-agentcore-control:DeleteAgentRuntime", "bedrock-agentcore-control:GetAgentRuntime", "bedrock-agentcore:InvokeAgentRuntime", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore/check_invoke_agent_runtime_nonexistent_not_found.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.invoke-code-interpreter-clear-context-resets-the-namespace", "deployments": [], "key": "bedrock-agentcore/invoke-code-interpreter-clear-context-resets-the-namespace", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeCodeInterpreter", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_invoke_code_interpreter_clear_context_resets_the_namespace.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.invoke-code-interpreter-sandbox-isolation", "deployments": [], "key": "bedrock-agentcore/invoke-code-interpreter-sandbox-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore:InvokeCodeInterpreter", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_invoke_code_interpreter_sandbox_isolation.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.invoke-harness-managed-orchestration-result", "deployments": [], "key": "bedrock-agentcore/invoke-harness-managed-orchestration-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateHarness", "bedrock-agentcore-control:DeleteHarness", "bedrock-agentcore-control:DeleteHarnessEndpoint", "bedrock-agentcore-control:GetHarness", "bedrock-agentcore-control:GetHarnessEndpoint", "bedrock-agentcore-control:ListHarnessEndpoints", "bedrock-agentcore:InvokeHarness", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agentcore/check_invoke_harness_managed_orchestration_result.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.list-abtests-maxresults-out-of-range-rejected", "deployments": [], "key": "bedrock-agentcore/list-abtests-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore:ListABTests"], "path": "behavioral/bedrock-agentcore/check_list_abtests_maxresults_out_of_range_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.list-batch-evaluations-stable-ordering-across-pages", "deployments": [], "key": "bedrock-agentcore/list-batch-evaluations-stable-ordering-across-pages", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore:DeleteBatchEvaluation", "bedrock-agentcore:ListBatchEvaluations", "bedrock-agentcore:StartBatchEvaluation", "bedrock-agentcore:StopBatchEvaluation", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agentcore/check_list_batch_evaluations_stable_ordering_across_pages.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.list-events-chronological-order-preserved", "deployments": [], "key": "bedrock-agentcore/list-events-chronological-order-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:ListEvents"], "path": "behavioral/bedrock-agentcore/check_list_events_chronological_order_preserved.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.list-events-include-payloads-false-omits-only-the-projection", "deployments": [], "key": "bedrock-agentcore/list-events-include-payloads-false-omits-only-the-projection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents"], "path": "behavioral/bedrock-agentcore/check_list_events_include_payloads_false_omits_only_the_projection.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.list-sessions-and-actors-scoped-to-their-own-actor", "deployments": [], "key": "bedrock-agentcore/list-sessions-and-actors-scoped-to-their-own-actor", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:ListActors", "bedrock-agentcore:ListEvents", "bedrock-agentcore:ListSessions"], "path": "behavioral/bedrock-agentcore/check_list_sessions_and_actors_scoped_to_their_own_actor.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.memory-record-lifecycle", "deployments": [], "key": "bedrock-agentcore/memory-record-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord"], "path": "behavioral/bedrock-agentcore/check_memory_record_lifecycle.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.memory-record-namespace-scoping-isolates-two-actors", "deployments": [], "key": "bedrock-agentcore/memory-record-namespace-scoping-isolates-two-actors", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords"], "path": "behavioral/bedrock-agentcore/check_memory_record_namespace_scoping_isolates_two_actors.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.memory-record-unicode-content-round-trip", "deployments": [], "key": "bedrock-agentcore/memory-record-unicode-content-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:GetMemoryRecord"], "path": "behavioral/bedrock-agentcore/check_memory_record_unicode_content_round_trip.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.metadata-pattern-violation-rejected", "deployments": [], "key": "bedrock-agentcore/metadata-pattern-violation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents"], "path": "behavioral/bedrock-agentcore/check_metadata_pattern_violation_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.namespace-condition-key-blocks-cross-namespace-memory-read", "deployments": [], "key": "bedrock-agentcore/namespace-condition-key-blocks-cross-namespace-memory-read", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-agentcore-control:CreateMemory", "bedrock-agentcore-control:DeleteMemory", "bedrock-agentcore-control:GetMemory", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:ListMemoryRecords", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore/check_namespace_condition_key_blocks_cross_namespace_memory_read.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.payment-instrument-numeric-precision-preserved", "deployments": [], "key": "bedrock-agentcore/payment-instrument-numeric-precision-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore:CreatePaymentInstrument", "bedrock-agentcore:ListABTests", "bedrock-agentcore:ListPaymentInstruments", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore/check_payment_instrument_numeric_precision_preserved.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.payment-session-expiry-minutes-range-enforced-and-echoed", "deployments": [], "key": "bedrock-agentcore/payment-session-expiry-minutes-range-enforced-and-echoed", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePaymentManager", "bedrock-agentcore-control:DeletePaymentManager", "bedrock-agentcore-control:GetPaymentManager", "bedrock-agentcore:CreatePaymentSession", "bedrock-agentcore:DeletePaymentSession", "bedrock-agentcore:GetPaymentSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agentcore/check_payment_session_expiry_minutes_range_enforced_and_echoed.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.payment-session-lifecycle", "deployments": [], "key": "bedrock-agentcore/payment-session-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreatePaymentManager", "bedrock-agentcore-control:DeletePaymentManager", "bedrock-agentcore-control:GetPaymentManager", "bedrock-agentcore:CreatePaymentSession", "bedrock-agentcore:DeletePaymentSession", "bedrock-agentcore:GetPaymentSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/bedrock-agentcore/check_payment_session_lifecycle.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.recommendation-lifecycle", "deployments": [], "key": "bedrock-agentcore/recommendation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore:DeleteRecommendation", "bedrock-agentcore:GetRecommendation", "bedrock-agentcore:StartRecommendation", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/bedrock-agentcore/check_recommendation_lifecycle.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.start-batch-evaluation-duplicate-name-both-succeed", "deployments": [], "key": "bedrock-agentcore/start-batch-evaluation-duplicate-name-both-succeed", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore:DeleteBatchEvaluation", "bedrock-agentcore:GetBatchEvaluation", "bedrock-agentcore:StartBatchEvaluation", "bedrock-agentcore:StopBatchEvaluation", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agentcore/check_start_batch_evaluation_duplicate_name_both_succeed.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.start-browser-session-out-of-range-timeout-rejected", "deployments": [], "key": "bedrock-agentcore/start-browser-session-out-of-range-timeout-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession"], "path": "behavioral/bedrock-agentcore/check_start_browser_session_out_of_range_timeout_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.stop-code-interpreter-session-wrong-state-blocked", "deployments": [], "key": "bedrock-agentcore/stop-code-interpreter-session-wrong-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession"], "path": "behavioral/bedrock-agentcore/check_stop_code_interpreter_session_wrong_state_blocked.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.stop-completed-batch-evaluation-conflict", "deployments": [], "key": "bedrock-agentcore/stop-completed-batch-evaluation-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore:DeleteBatchEvaluation", "bedrock-agentcore:GetBatchEvaluation", "bedrock-agentcore:StartBatchEvaluation", "bedrock-agentcore:StopBatchEvaluation", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/bedrock-agentcore/check_stop_completed_batch_evaluation_conflict.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.stop-runtime-session-unauthorized-denied", "deployments": [], "key": "bedrock-agentcore/stop-runtime-session-unauthorized-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore:StopRuntimeSession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore/check_stop_runtime_session_unauthorized_denied.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.timestamp-precision-round-trip", "deployments": [], "key": "bedrock-agentcore/timestamp-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession"], "path": "behavioral/bedrock-agentcore/check_timestamp_precision_round_trip.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.update-abtest-optimistic-lock-contention", "deployments": [], "key": "bedrock-agentcore/update-abtest-optimistic-lock-contention", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:CreateOnlineEvaluationConfig", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:DeleteOnlineEvaluationConfig", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:GetOnlineEvaluationConfig", "bedrock-agentcore-control:ListGatewayTargets", "bedrock-agentcore:CreateABTest", "bedrock-agentcore:DeleteABTest", "bedrock-agentcore:GetABTest", "bedrock-agentcore:UpdateABTest", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/bedrock-agentcore/check_update_abtest_optimistic_lock_contention.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.workload-access-token-for-jwt-invalid-rejected", "deployments": [], "key": "bedrock-agentcore/workload-access-token-for-jwt-invalid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT"], "path": "behavioral/bedrock-agentcore/check_workload_access_token_for_jwt_invalid_rejected.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.workload-access-token-for-user-id-ttl-scoped", "deployments": [], "key": "bedrock-agentcore/workload-access-token-for-user-id-ttl-scoped", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:GetWorkloadAccessTokenForUserId"], "path": "behavioral/bedrock-agentcore/check_workload_access_token_for_user_id_ttl_scoped.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore.workload-access-token-scope-overreach-denied", "deployments": [], "key": "bedrock-agentcore/workload-access-token-scope-overreach-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-agentcore-control:CreateWorkloadIdentity", "bedrock-agentcore-control:DeleteWorkloadIdentity", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore/check_workload_access_token_scope_overreach_denied.py", "service": "bedrock-agentcore"} {"check_id": "bedrock-agentcore__cloudwatch.active-session-count-reaches-cloudwatch-per-service-dimension", "deployments": [], "key": "bedrock-agentcore__cloudwatch/active-session-count-reaches-cloudwatch-per-service-dimension", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/bedrock-agentcore__cloudwatch/check_active_session_count_reaches_cloudwatch_per_service_dimension.py", "service": "bedrock-agentcore__cloudwatch"} {"check_id": "bedrock-agentcore__lambda__s3.gateway-mcp-tools-call-reaches-lambda-and-writes-to-s3", "deployments": [], "key": "bedrock-agentcore__lambda__s3/gateway-mcp-tools-call-reaches-lambda-and-writes-to-s3", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["bedrock-agentcore-control:CreateGateway", "bedrock-agentcore-control:CreateGatewayTarget", "bedrock-agentcore-control:DeleteGateway", "bedrock-agentcore-control:DeleteGatewayTarget", "bedrock-agentcore-control:GetGateway", "bedrock-agentcore-control:GetGatewayTarget", "bedrock-agentcore-control:ListGatewayTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-agentcore__lambda__s3/check_gateway_mcp_tools_call_reaches_lambda_and_writes_to_s3.py", "service": "bedrock-agentcore__lambda__s3"} {"check_id": "bedrock-data-automation-runtime.concurrent-invocations-produce-distinct-arns", "deployments": [], "key": "bedrock-data-automation-runtime/concurrent-invocations-produce-distinct-arns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:GetDataAutomationStatus", "bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_concurrent_invocations_produce_distinct_arns.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.get-status-invalid-arn-pattern-rejected", "deployments": [], "key": "bedrock-data-automation-runtime/get-status-invalid-arn-pattern-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:GetDataAutomationStatus", "bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_get_status_invalid_arn_pattern_rejected.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.get-status-nonexistent-invocation-arn-not-found-rejected", "deployments": [], "key": "bedrock-data-automation-runtime/get-status-nonexistent-invocation-arn-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation-runtime:GetDataAutomationStatus", "bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_get_status_nonexistent_invocation_arn_not_found_rejected.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.get-status-reports-created-or-in-progress-immediately-after-submission", "deployments": [], "key": "bedrock-data-automation-runtime/get-status-reports-created-or-in-progress-immediately-after-submission", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:GetDataAutomationStatus", "bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_get_status_reports_created_or_in_progress_immediately_after_submission.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.invoke-async-client-token-idempotent-retry-returns-same-arn", "deployments": [], "key": "bedrock-data-automation-runtime/invoke-async-client-token-idempotent-retry-returns-same-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:GetDataAutomationStatus", "bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_invoke_async_client_token_idempotent_retry_returns_same_arn.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.invoke-async-completion-event-delivered-via-eventbridge", "deployments": [], "key": "bedrock-data-automation-runtime/invoke-async-completion-event-delivered-via-eventbridge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_invoke_async_completion_event_delivered_via_eventbridge.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.invoke-async-creation-time-tags-visible-via-list-tags", "deployments": [], "key": "bedrock-data-automation-runtime/invoke-async-creation-time-tags-visible-via-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation-runtime:ListTagsForResource", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_invoke_async_creation_time_tags_visible_via_list_tags.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.invoke-async-cross-account-profile-arn-access-denied-rejected", "deployments": [], "key": "bedrock-data-automation-runtime/invoke-async-cross-account-profile-arn-access-denied-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:GetDataAutomationStatus", "bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_invoke_async_cross_account_profile_arn_access_denied_rejected.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.invoke-async-invalid-output-s3uri-pattern-rejected", "deployments": [], "key": "bedrock-data-automation-runtime/invoke-async-invalid-output-s3uri-pattern-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:GetDataAutomationStatus", "bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_invoke_async_invalid_output_s3uri_pattern_rejected.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.invoke-async-state-transitions-to-terminal-success", "deployments": [], "key": "bedrock-data-automation-runtime/invoke-async-state-transitions-to-terminal-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:GetDataAutomationStatus", "bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_invoke_async_state_transitions_to_terminal_success.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.invoke-sync-returns-semantic-modality-for-image", "deployments": [], "key": "bedrock-data-automation-runtime/invoke-sync-returns-semantic-modality-for-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation-runtime:InvokeDataAutomation", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_invoke_sync_returns_semantic_modality_for_image.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.list-tags-for-resource-empty-by-default-when-no-tags-specified", "deployments": [], "key": "bedrock-data-automation-runtime/list-tags-for-resource-empty-by-default-when-no-tags-specified", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation-runtime:ListTagsForResource", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_list_tags_for_resource_empty_by_default_when_no_tags_specified.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.tag-resource-exceeds-two-hundred-tag-limit-rejected", "deployments": [], "key": "bedrock-data-automation-runtime/tag-resource-exceeds-two-hundred-tag-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation-runtime:ListTagsForResource", "bedrock-data-automation-runtime:TagResource", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_tag_resource_exceeds_two_hundred_tag_limit_rejected.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.tag-resource-reserved-aws-prefix-key-rejected", "deployments": [], "key": "bedrock-data-automation-runtime/tag-resource-reserved-aws-prefix-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation-runtime:ListTagsForResource", "bedrock-data-automation-runtime:TagResource", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_tag_resource_reserved_aws_prefix_key_rejected.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.tag-untag-partial-removal-on-real-invocation", "deployments": [], "key": "bedrock-data-automation-runtime/tag-untag-partial-removal-on-real-invocation", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation-runtime:ListTagsForResource", "bedrock-data-automation-runtime:TagResource", "bedrock-data-automation-runtime:UntagResource", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_tag_untag_partial_removal_on_real_invocation.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation-runtime.untag-resource-missing-tag-key-is-noop-success", "deployments": [], "key": "bedrock-data-automation-runtime/untag-resource-missing-tag-key-is-noop-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation-runtime:InvokeDataAutomationAsync", "bedrock-data-automation-runtime:ListTagsForResource", "bedrock-data-automation-runtime:TagResource", "bedrock-data-automation-runtime:UntagResource", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation-runtime/check_untag_resource_missing_tag_key_is_noop_success.py", "service": "bedrock-data-automation-runtime"} {"check_id": "bedrock-data-automation.concurrent-blueprint-creation-same-name-one-wins", "deployments": [], "key": "bedrock-data-automation/concurrent-blueprint-creation-same-name-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_concurrent_blueprint_creation_same_name_one_wins.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.concurrent-blueprint-version-creation-unique-versions", "deployments": [], "key": "bedrock-data-automation/concurrent-blueprint-version-creation-unique-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:CreateBlueprintVersion", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_concurrent_blueprint_version_creation_unique_versions.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.concurrent-tag-resource-calls-merge-under-contention", "deployments": [], "key": "bedrock-data-automation/concurrent-tag-resource-calls-merge-under-contention", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint", "bedrock-data-automation:ListTagsForResource", "bedrock-data-automation:TagResource"], "path": "behavioral/bedrock-data-automation/check_concurrent_tag_resource_calls_merge_under_contention.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.copy-blueprint-stage-missing-source-not-found-rejected", "deployments": [], "key": "bedrock-data-automation/copy-blueprint-stage-missing-source-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CopyBlueprintStage", "bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_copy_blueprint_stage_missing_source_not_found_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.copy-blueprint-stage-promotes-development-to-live", "deployments": [], "key": "bedrock-data-automation/copy-blueprint-stage-promotes-development-to-live", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CopyBlueprintStage", "bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_copy_blueprint_stage_promotes_development_to_live.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-blueprint-defaults-to-live-stage", "deployments": [], "key": "bedrock-data-automation/create-blueprint-defaults-to-live-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_create_blueprint_defaults_to_live_stage.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-blueprint-duplicate-name-conflict-rejected", "deployments": [], "key": "bedrock-data-automation/create-blueprint-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_create_blueprint_duplicate_name_conflict_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-blueprint-invalid-name-pattern-rejected", "deployments": [], "key": "bedrock-data-automation/create-blueprint-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_create_blueprint_invalid_name_pattern_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-blueprint-version-increments-version-number", "deployments": [], "key": "bedrock-data-automation/create-blueprint-version-increments-version-number", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:CreateBlueprintVersion", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_create_blueprint_version_increments_version_number.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-data-automation-library-active-immediately", "deployments": [], "key": "bedrock-data-automation/create-data-automation-library-active-immediately", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibrary"], "path": "behavioral/bedrock-data-automation/check_create_data_automation_library_active_immediately.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-data-automation-library-duplicate-name-conflict-rejected", "deployments": [], "key": "bedrock-data-automation/create-data-automation-library-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibrary"], "path": "behavioral/bedrock-data-automation/check_create_data_automation_library_duplicate_name_conflict_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-data-automation-library-invalid-name-pattern-rejected", "deployments": [], "key": "bedrock-data-automation/create-data-automation-library-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibrary", "bedrock-data-automation:ListDataAutomationLibraries"], "path": "behavioral/bedrock-data-automation/check_create_data_automation_library_invalid_name_pattern_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-data-automation-project-default-project-type-is-async", "deployments": [], "key": "bedrock-data-automation/create-data-automation-project-default-project-type-is-async", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:GetDataAutomationProject"], "path": "behavioral/bedrock-data-automation/check_create_data_automation_project_default_project_type_is_async.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-data-automation-project-duplicate-name-same-stage-conflict-rejected", "deployments": [], "key": "bedrock-data-automation/create-data-automation-project-duplicate-name-same-stage-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:GetDataAutomationProject"], "path": "behavioral/bedrock-data-automation/check_create_data_automation_project_duplicate_name_same_stage_conflict_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-data-automation-project-invalid-name-pattern-rejected", "deployments": [], "key": "bedrock-data-automation/create-data-automation-project-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:GetDataAutomationProject", "bedrock-data-automation:ListDataAutomationProjects"], "path": "behavioral/bedrock-data-automation/check_create_data_automation_project_invalid_name_pattern_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.create-data-automation-project-reaches-completed-status", "deployments": [], "key": "bedrock-data-automation/create-data-automation-project-reaches-completed-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:GetDataAutomationProject"], "path": "behavioral/bedrock-data-automation/check_create_data_automation_project_reaches_completed_status.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.delete-blueprint-removes-resource", "deployments": [], "key": "bedrock-data-automation/delete-blueprint-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint", "bedrock-data-automation:UpdateBlueprint"], "path": "behavioral/bedrock-data-automation/check_delete_blueprint_removes_resource.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.delete-blueprint-specific-version-leaves-other-versions-intact", "deployments": [], "key": "bedrock-data-automation/delete-blueprint-specific-version-leaves-other-versions-intact", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:CreateBlueprintVersion", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint"], "path": "behavioral/bedrock-data-automation/check_delete_blueprint_specific_version_leaves_other_versions_intact.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.delete-data-automation-library-removes-resource", "deployments": [], "key": "bedrock-data-automation/delete-data-automation-library-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibrary"], "path": "behavioral/bedrock-data-automation/check_delete_data_automation_library_removes_resource.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.delete-data-automation-library-twice-second-call-not-found-rejected", "deployments": [], "key": "bedrock-data-automation/delete-data-automation-library-twice-second-call-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibrary"], "path": "behavioral/bedrock-data-automation/check_delete_data_automation_library_twice_second_call_not_found_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.delete-data-automation-project-removes-resource", "deployments": [], "key": "bedrock-data-automation/delete-data-automation-project-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:GetDataAutomationProject", "bedrock-data-automation:UpdateDataAutomationProject"], "path": "behavioral/bedrock-data-automation/check_delete_data_automation_project_removes_resource.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.get-blueprint-nonexistent-arn-not-found", "deployments": [], "key": "bedrock-data-automation/get-blueprint-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation/check_get_blueprint_nonexistent_arn_not_found.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.get-blueprint-optimization-status-nonexistent-invocation-not-found-rejected", "deployments": [], "key": "bedrock-data-automation/get-blueprint-optimization-status-nonexistent-invocation-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:GetBlueprintOptimizationStatus", "bedrock-data-automation:ListBlueprints", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation/check_get_blueprint_optimization_status_nonexistent_invocation_not_found_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.get-data-automation-project-wrong-stage-filter-not-found-rejected", "deployments": [], "key": "bedrock-data-automation/get-data-automation-project-wrong-stage-filter-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:GetDataAutomationProject"], "path": "behavioral/bedrock-data-automation/check_get_data_automation_project_wrong_stage_filter_not_found_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.ingestion-job-delete-operation-removes-entity", "deployments": [], "key": "bedrock-data-automation/ingestion-job-delete-operation-removes-entity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibraryEntity", "bedrock-data-automation:GetDataAutomationLibraryIngestionJob", "bedrock-data-automation:InvokeDataAutomationLibraryIngestionJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation/check_ingestion_job_delete_operation_removes_entity.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.ingestion-job-inline-upsert-completes-and-entity-retrievable", "deployments": [], "key": "bedrock-data-automation/ingestion-job-inline-upsert-completes-and-entity-retrievable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibraryEntity", "bedrock-data-automation:GetDataAutomationLibraryIngestionJob", "bedrock-data-automation:InvokeDataAutomationLibraryIngestionJob", "bedrock-data-automation:ListDataAutomationLibraryEntities", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/bedrock-data-automation/check_ingestion_job_inline_upsert_completes_and_entity_retrievable.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.ingestion-job-invalid-entity-type-rejected", "deployments": [], "key": "bedrock-data-automation/ingestion-job-invalid-entity-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibraryEntity", "bedrock-data-automation:GetDataAutomationLibraryIngestionJob", "bedrock-data-automation:InvokeDataAutomationLibraryIngestionJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/bedrock-data-automation/check_ingestion_job_invalid_entity_type_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.ingestion-job-missing-required-phrases-validation-rejected", "deployments": [], "key": "bedrock-data-automation/ingestion-job-missing-required-phrases-validation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibraryEntity", "bedrock-data-automation:GetDataAutomationLibraryIngestionJob", "bedrock-data-automation:InvokeDataAutomationLibraryIngestionJob", "bedrock-data-automation:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation/check_ingestion_job_missing_required_phrases_validation_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.invoke-blueprint-optimization-async-invalid-profile-rejected", "deployments": [], "key": "bedrock-data-automation/invoke-blueprint-optimization-async-invalid-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint", "bedrock-data-automation:InvokeBlueprintOptimizationAsync", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation/check_invoke_blueprint_optimization_async_invalid_profile_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.invoke-ingestion-job-wrong-arn-type-rejected", "deployments": [], "key": "bedrock-data-automation/invoke-ingestion-job-wrong-arn-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibraryEntity", "bedrock-data-automation:GetDataAutomationLibraryIngestionJob", "bedrock-data-automation:InvokeDataAutomationLibraryIngestionJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-data-automation/check_invoke_ingestion_job_wrong_arn_type_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.library-delete-while-referenced-by-project-validation-rejected", "deployments": [], "key": "bedrock-data-automation/library-delete-while-referenced-by-project-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:GetDataAutomationLibrary"], "path": "behavioral/bedrock-data-automation/check_library_delete_while_referenced_by_project_validation_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.list-blueprints-filtered-by-arn-reflects-created", "deployments": [], "key": "bedrock-data-automation/list-blueprints-filtered-by-arn-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint", "bedrock-data-automation:ListBlueprints"], "path": "behavioral/bedrock-data-automation/check_list_blueprints_filtered_by_arn_reflects_created.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.list-data-automation-libraries-reflects-lifecycle", "deployments": [], "key": "bedrock-data-automation/list-data-automation-libraries-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:ListDataAutomationLibraries"], "path": "behavioral/bedrock-data-automation/check_list_data_automation_libraries_reflects_lifecycle.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.list-data-automation-library-ingestion-jobs-empty-for-new-library", "deployments": [], "key": "bedrock-data-automation/list-data-automation-library-ingestion-jobs-empty-for-new-library", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:ListDataAutomationLibraryIngestionJobs"], "path": "behavioral/bedrock-data-automation/check_list_data_automation_library_ingestion_jobs_empty_for_new_library.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.list-data-automation-projects-reflects-lifecycle", "deployments": [], "key": "bedrock-data-automation/list-data-automation-projects-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:ListDataAutomationProjects"], "path": "behavioral/bedrock-data-automation/check_list_data_automation_projects_reflects_lifecycle.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.list-ingestion-jobs-reflects-invocation", "deployments": [], "key": "bedrock-data-automation/list-ingestion-jobs-reflects-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:InvokeDataAutomationLibraryIngestionJob", "bedrock-data-automation:ListDataAutomationLibraryIngestionJobs", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation/check_list_ingestion_jobs_reflects_invocation.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.list-tags-for-resource-reflects-tags-from-create-call", "deployments": [], "key": "bedrock-data-automation/list-tags-for-resource-reflects-tags-from-create-call", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:ListTagsForResource"], "path": "behavioral/bedrock-data-automation/check_list_tags_for_resource_reflects_tags_from_create_call.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.missing-permission-create-blueprint-rejected", "deployments": [], "key": "bedrock-data-automation/missing-permission-create-blueprint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint", "bedrock-data-automation:ListBlueprints", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-data-automation/check_missing_permission_create_blueprint_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.tag-resource-exceeds-array-limit-rejected", "deployments": [], "key": "bedrock-data-automation/tag-resource-exceeds-array-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:ListTagsForResource", "bedrock-data-automation:TagResource"], "path": "behavioral/bedrock-data-automation/check_tag_resource_exceeds_array_limit_rejected.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.tag-resource-list-and-untag-round-trip", "deployments": [], "key": "bedrock-data-automation/tag-resource-list-and-untag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:ListTagsForResource", "bedrock-data-automation:TagResource", "bedrock-data-automation:UntagResource"], "path": "behavioral/bedrock-data-automation/check_tag_resource_list_and_untag_round_trip.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.tag-resource-merges-with-existing-tags", "deployments": [], "key": "bedrock-data-automation/tag-resource-merges-with-existing-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:ListTagsForResource", "bedrock-data-automation:TagResource"], "path": "behavioral/bedrock-data-automation/check_tag_resource_merges_with_existing_tags.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.untag-resource-nonexistent-key-is-noop", "deployments": [], "key": "bedrock-data-automation/untag-resource-nonexistent-key-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:ListTagsForResource", "bedrock-data-automation:TagResource", "bedrock-data-automation:UntagResource"], "path": "behavioral/bedrock-data-automation/check_untag_resource_nonexistent_key_is_noop.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.update-blueprint-schema-persists-on-development-stage", "deployments": [], "key": "bedrock-data-automation/update-blueprint-schema-persists-on-development-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateBlueprint", "bedrock-data-automation:DeleteBlueprint", "bedrock-data-automation:GetBlueprint", "bedrock-data-automation:UpdateBlueprint"], "path": "behavioral/bedrock-data-automation/check_update_blueprint_schema_persists_on_development_stage.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.update-data-automation-library-description-persists", "deployments": [], "key": "bedrock-data-automation/update-data-automation-library-description-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationLibrary", "bedrock-data-automation:DeleteDataAutomationLibrary", "bedrock-data-automation:GetDataAutomationLibrary", "bedrock-data-automation:UpdateDataAutomationLibrary"], "path": "behavioral/bedrock-data-automation/check_update_data_automation_library_description_persists.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation.update-data-automation-project-persists-output-configuration", "deployments": [], "key": "bedrock-data-automation/update-data-automation-project-persists-output-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:CreateDataAutomationProject", "bedrock-data-automation:DeleteDataAutomationProject", "bedrock-data-automation:GetDataAutomationProject", "bedrock-data-automation:UpdateDataAutomationProject"], "path": "behavioral/bedrock-data-automation/check_update_data_automation_project_persists_output_configuration.py", "service": "bedrock-data-automation"} {"check_id": "bedrock-data-automation__cloudformation.deploy-blueprint-and-project-round-trip-then-delete", "deployments": [], "key": "bedrock-data-automation__cloudformation/deploy-blueprint-and-project-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:GetBlueprint", "bedrock-data-automation:GetDataAutomationProject", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-data-automation__cloudformation/check_deploy_blueprint_and_project_round_trip_then_delete.py", "service": "bedrock-data-automation__cloudformation"} {"check_id": "bedrock-data-automation__cloudformation.deploy-blueprint-invalid-type-enum-rejected", "deployments": [], "key": "bedrock-data-automation__cloudformation/deploy-blueprint-invalid-type-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-data-automation:GetBlueprint", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-data-automation__cloudformation/check_deploy_blueprint_invalid_type_enum_rejected.py", "service": "bedrock-data-automation__cloudformation"} {"check_id": "bedrock-data-automation__cloudformation.deploy-data-automation-library-round-trip-then-delete", "deployments": [], "key": "bedrock-data-automation__cloudformation/deploy-data-automation-library-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-data-automation:GetDataAutomationLibrary", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock-data-automation__cloudformation/check_deploy_data_automation_library_round_trip_then_delete.py", "service": "bedrock-data-automation__cloudformation"} {"check_id": "bedrock-runtime.apply-guardrail-interventions-scope-drops-undetected-policy", "deployments": [], "key": "bedrock-runtime/apply-guardrail-interventions-scope-drops-undetected-policy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock-runtime/check_apply_guardrail_interventions_scope_drops_undetected_policy.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.apply-guardrail-nonexistent-guardrail-not-found-rejected", "deployments": [], "key": "bedrock-runtime/apply-guardrail-nonexistent-guardrail-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock-runtime/check_apply_guardrail_nonexistent_guardrail_not_found_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.apply-guardrail-word-filter-state-transition", "deployments": [], "key": "bedrock-runtime/apply-guardrail-word-filter-state-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListGuardrails"], "path": "behavioral/bedrock-runtime/check_apply_guardrail_word_filter_state_transition.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-appears-in-list-after-creation", "deployments": [], "key": "bedrock-runtime/async-invoke-appears-in-list-after-creation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_appears_in_list_after_creation.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-client-token-reuse-never-conflicts", "deployments": [], "key": "bedrock-runtime/async-invoke-client-token-reuse-never-conflicts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_client_token_reuse_never_conflicts.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-invalid-output-config-rejected", "deployments": [], "key": "bedrock-runtime/async-invoke-invalid-output-config-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_invalid_output_config_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-lifecycle-transitions", "deployments": [], "key": "bedrock-runtime/async-invoke-lifecycle-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_lifecycle_transitions.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-list-sorted-by-submission-time", "deployments": [], "key": "bedrock-runtime/async-invoke-list-sorted-by-submission-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_list_sorted_by_submission_time.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-malformed-arn-validation-rejected", "deployments": [], "key": "bedrock-runtime/async-invoke-malformed-arn-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_malformed_arn_validation_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-output-retention-window", "deployments": [], "key": "bedrock-runtime/async-invoke-output-retention-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_output_retention_window.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-output-uri-rewritten-with-invocation-id", "deployments": [], "key": "bedrock-runtime/async-invoke-output-uri-rewritten-with-invocation-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_output_uri_rewritten_with_invocation_id.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-output-written-to-configured-destination-serverside", "deployments": [], "key": "bedrock-runtime/async-invoke-output-written-to-configured-destination-serverside", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_output_written_to_configured_destination_serverside.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-schema-gap-rejected-only-after-accept", "deployments": [], "key": "bedrock-runtime/async-invoke-schema-gap-rejected-only-after-accept", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_schema_gap_rejected_only_after_accept.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-status-filter-partitions-collection", "deployments": [], "key": "bedrock-runtime/async-invoke-status-filter-partitions-collection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_status_filter_partitions_collection.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-terminal-state-immutable", "deployments": [], "key": "bedrock-runtime/async-invoke-terminal-state-immutable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_terminal_state_immutable.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.async-invoke-timestamp-precision-round-trip", "deployments": [], "key": "bedrock-runtime/async-invoke-timestamp-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_async_invoke_timestamp_precision_round_trip.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.bedrock-runtime-bare-model-id-needing-inference-profile-rejected", "deployments": [], "key": "bedrock-runtime/bedrock-runtime-bare-model-id-needing-inference-profile-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_bedrock_runtime_bare_model_id_needing_inference_profile_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.bedrock-runtime-converse-stream-content-block-index-bookkeeping", "deployments": [], "key": "bedrock-runtime/bedrock-runtime-converse-stream-content-block-index-bookkeeping", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock-runtime/check_bedrock_runtime_converse_stream_content_block_index_bookkeeping.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.bedrock-runtime-converse-stream-tool-use-input-arrives-only-in-deltas", "deployments": [], "key": "bedrock-runtime/bedrock-runtime-converse-stream-tool-use-input-arrives-only-in-deltas", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock-runtime/check_bedrock_runtime_converse_stream_tool_use_input_arrives_only_in_deltas.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.bedrock-runtime-converse-tool-result-with-an-unknown-tool-use-id-rejected", "deployments": [], "key": "bedrock-runtime/bedrock-runtime-converse-tool-result-with-an-unknown-tool-use-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_bedrock_runtime_converse_tool_result_with_an_unknown_tool_use_id_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.bedrock-runtime-invoke-model-stream-invocation-metrics-match-nonstreaming-usage", "deployments": [], "key": "bedrock-runtime/bedrock-runtime-invoke-model-stream-invocation-metrics-match-nonstreaming-usage", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel", "bedrock-runtime:InvokeModelWithResponseStream"], "path": "behavioral/bedrock-runtime/check_bedrock_runtime_invoke_model_stream_invocation_metrics_match_nonstreaming_usage.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.bedrock-runtime-prompt-cache-point-reuses-input-tokens-across-calls", "deployments": [], "key": "bedrock-runtime/bedrock-runtime-prompt-cache-point-reuses-input-tokens-across-calls", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_bedrock_runtime_prompt_cache_point_reuses_input_tokens_across_calls.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.binary-blob-base64-round-trip-preserved", "deployments": [], "key": "bedrock-runtime/binary-blob-base64-round-trip-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_binary_blob_base64_round_trip_preserved.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.concurrent-start-async-invoke-distinct-tokens-unique-arns", "deployments": [], "key": "bedrock-runtime/concurrent-start-async-invoke-distinct-tokens-unique-arns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_concurrent_start_async_invoke_distinct_tokens_unique_arns.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-additional-model-request-fields-validated-by-the-provider", "deployments": [], "key": "bedrock-runtime/converse-additional-model-request-fields-validated-by-the-provider", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_additional_model_request_fields_validated_by_the_provider.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-and-invoke-model-agree-on-the-invocation-envelope", "deployments": [], "key": "bedrock-runtime/converse-and-invoke-model-agree-on-the-invocation-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_converse_and_invoke_model_agree_on_the_invocation_envelope.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-basic-text-roundtrip", "deployments": [], "key": "bedrock-runtime/converse-basic-text-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_basic_text_roundtrip.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-concurrent-requests-isolated", "deployments": [], "key": "bedrock-runtime/converse-concurrent-requests-isolated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_concurrent_requests_isolated.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-guardrail-intervention-stop-reason", "deployments": [], "key": "bedrock-runtime/converse-guardrail-intervention-stop-reason", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock-runtime:Converse", "bedrock-runtime:ConverseStream", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock-runtime/check_converse_guardrail_intervention_stop_reason.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-input-tokens-are-monotone-and-reproducible-over-prompt-length", "deployments": [], "key": "bedrock-runtime/converse-input-tokens-are-monotone-and-reproducible-over-prompt-length", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_input_tokens_are_monotone_and_reproducible_over_prompt_length.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-malformed-message-structure-rejected", "deployments": [], "key": "bedrock-runtime/converse-malformed-message-structure-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_malformed_message_structure_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-max-tokens-truncates-stop-reason", "deployments": [], "key": "bedrock-runtime/converse-max-tokens-truncates-stop-reason", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_max_tokens_truncates_stop_reason.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-multiturn-context-retained", "deployments": [], "key": "bedrock-runtime/converse-multiturn-context-retained", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_multiturn_context_retained.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-nonexistent-model-resource-not-found-rejected", "deployments": [], "key": "bedrock-runtime/converse-nonexistent-model-resource-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_nonexistent_model_resource_not_found_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-performance-config-must-not-silently-degrade-to-standard", "deployments": [], "key": "bedrock-runtime/converse-performance-config-must-not-silently-degrade-to-standard", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_performance_config_must_not_silently_degrade_to_standard.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-stop-reason-switches-on-the-budget-not-on-the-prompt", "deployments": [], "key": "bedrock-runtime/converse-stop-reason-switches-on-the-budget-not-on-the-prompt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_stop_reason_switches_on_the_budget_not_on_the_prompt.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-stop-sequence-halts-generation", "deployments": [], "key": "bedrock-runtime/converse-stop-sequence-halts-generation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_stop_sequence_halts_generation.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-stream-invalid-model-rejected", "deployments": [], "key": "bedrock-runtime/converse-stream-invalid-model-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock-runtime/check_converse_stream_invalid_model_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-stream-reassembles-exactly-what-converse-returns", "deployments": [], "key": "bedrock-runtime/converse-stream-reassembles-exactly-what-converse-returns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock-runtime/check_converse_stream_reassembles_exactly_what_converse_returns.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-stream-reassembly-matches-stop-reason", "deployments": [], "key": "bedrock-runtime/converse-stream-reassembly-matches-stop-reason", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock-runtime/check_converse_stream_reassembly_matches_stop_reason.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.converse-tool-use-full-cycle", "deployments": [], "key": "bedrock-runtime/converse-tool-use-full-cycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_converse_tool_use_full_cycle.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.count-tokens-rejection-consistent-across-input-shape-and-size", "deployments": [], "key": "bedrock-runtime/count-tokens-rejection-consistent-across-input-shape-and-size", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:CountTokens"], "path": "behavioral/bedrock-runtime/check_count_tokens_rejection_consistent_across_input_shape_and_size.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.count-tokens-rejects-unsupported-model-not-blanket-failure", "deployments": [], "key": "bedrock-runtime/count-tokens-rejects-unsupported-model-not-blanket-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:CountTokens"], "path": "behavioral/bedrock-runtime/check_count_tokens_rejects_unsupported_model_not_blanket_failure.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.count-tokens-unsupported-capability-rejected-not-as-unknown-model", "deployments": [], "key": "bedrock-runtime/count-tokens-unsupported-capability-rejected-not-as-unknown-model", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:CountTokens"], "path": "behavioral/bedrock-runtime/check_count_tokens_unsupported_capability_rejected_not_as_unknown_model.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.cross-account-async-invoke-access-denied", "deployments": [], "key": "bedrock-runtime/cross-account-async-invoke-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-runtime/check_cross_account_async_invoke_access_denied.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.cross-account-async-invoke-not-visible", "deployments": [], "key": "bedrock-runtime/cross-account-async-invoke-not-visible", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-runtime/check_cross_account_async_invoke_not_visible.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.e2e-async-invoke-full-lifecycle", "deployments": [], "key": "bedrock-runtime/e2e-async-invoke-full-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_e2e_async_invoke_full_lifecycle.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.e2e-guardrail-protected-conversation", "deployments": [], "key": "bedrock-runtime/e2e-guardrail-protected-conversation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail"], "path": "behavioral/bedrock-runtime/check_e2e_guardrail_protected_conversation.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.empty-vs-absent-optional-field-distinguished", "deployments": [], "key": "bedrock-runtime/empty-vs-absent-optional-field-distinguished", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_empty_vs_absent_optional_field_distinguished.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.get-async-invoke-malformed-arn-rejected-distinctly-from-absent-job", "deployments": [], "key": "bedrock-runtime/get-async-invoke-malformed-arn-rejected-distinctly-from-absent-job", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_get_async_invoke_malformed_arn_rejected_distinctly_from_absent_job.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.guardrail-cannot-be-bypassed-via-parameter-manipulation", "deployments": [], "key": "bedrock-runtime/guardrail-cannot-be-bypassed-via-parameter-manipulation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail"], "path": "behavioral/bedrock-runtime/check_guardrail_cannot_be_bypassed_via_parameter_manipulation.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.guardrail-checks-empty-check-config-rejected", "deployments": [], "key": "bedrock-runtime/guardrail-checks-empty-check-config-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeGuardrailChecks"], "path": "behavioral/bedrock-runtime/check_guardrail_checks_empty_check_config_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.guardrail-checks-offsets-locate-entity-in-source-text", "deployments": [], "key": "bedrock-runtime/guardrail-checks-offsets-locate-entity-in-source-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeGuardrailChecks"], "path": "behavioral/bedrock-runtime/check_guardrail_checks_offsets_locate_entity_in_source_text.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.guardrail-checks-results-mirror-requested-check-types", "deployments": [], "key": "bedrock-runtime/guardrail-checks-results-mirror-requested-check-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeGuardrailChecks"], "path": "behavioral/bedrock-runtime/check_guardrail_checks_results_mirror_requested_check_types.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.guardrail-checks-service-unavailable-distinct-error", "deployments": [], "key": "bedrock-runtime/guardrail-checks-service-unavailable-distinct-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeGuardrailChecks"], "path": "behavioral/bedrock-runtime/check_guardrail_checks_service_unavailable_distinct_error.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.guardrail-enforcement-consistent-across-apply-and-converse", "deployments": [], "key": "bedrock-runtime/guardrail-enforcement-consistent-across-apply-and-converse", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail"], "path": "behavioral/bedrock-runtime/check_guardrail_enforcement_consistent_across_apply_and_converse.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.guardrail-unknown-identifier-not-found", "deployments": [], "key": "bedrock-runtime/guardrail-unknown-identifier-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-runtime/check_guardrail_unknown_identifier_not_found.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-guardrail-checks-structural-roundtrip", "deployments": [], "key": "bedrock-runtime/invoke-guardrail-checks-structural-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeGuardrailChecks"], "path": "behavioral/bedrock-runtime/check_invoke_guardrail_checks_structural_roundtrip.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-malformed-json-body-rejected", "deployments": [], "key": "bedrock-runtime/invoke-model-malformed-json-body-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_invoke_model_malformed_json_body_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-missing-permission-denied", "deployments": [], "key": "bedrock-runtime/invoke-model-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/bedrock-runtime/check_invoke_model_missing_permission_denied.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-nova-native-body-roundtrip", "deployments": [], "key": "bedrock-runtime/invoke-model-nova-native-body-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_invoke_model_nova_native_body_roundtrip.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-parameter-out-of-range-rejected", "deployments": [], "key": "bedrock-runtime/invoke-model-parameter-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_invoke_model_parameter_out_of_range_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-response-stream-byte-ordering", "deployments": [], "key": "bedrock-runtime/invoke-model-response-stream-byte-ordering", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModelWithResponseStream", "bedrock:GetFoundationModel", "bedrock:ListFoundationModels"], "path": "behavioral/bedrock-runtime/check_invoke_model_response_stream_byte_ordering.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-response-stream-frames-verify-their-own-crc32", "deployments": [], "key": "bedrock-runtime/invoke-model-response-stream-frames-verify-their-own-crc32", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["bedrock-runtime:InvokeModelWithResponseStream"], "path": "behavioral/bedrock-runtime/check_invoke_model_response_stream_frames_verify_their_own_crc32.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-temperature-out-of-range-rejected", "deployments": [], "key": "bedrock-runtime/invoke-model-temperature-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_invoke_model_temperature_out_of_range_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-unknown-model-id-not-found", "deployments": [], "key": "bedrock-runtime/invoke-model-unknown-model-id-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_invoke_model_unknown_model_id_not_found.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.invoke-model-with-response-stream-nova-roundtrip", "deployments": [], "key": "bedrock-runtime/invoke-model-with-response-stream-nova-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModelWithResponseStream"], "path": "behavioral/bedrock-runtime/check_invoke_model_with_response_stream_nova_roundtrip.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.list-and-get-async-invoke-validation-boundaries-rejected", "deployments": [], "key": "bedrock-runtime/list-and-get-async-invoke-validation-boundaries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes"], "path": "behavioral/bedrock-runtime/check_list_and_get_async_invoke_validation_boundaries_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.list-async-invokes-invalid-max-results-rejected", "deployments": [], "key": "bedrock-runtime/list-async-invokes-invalid-max-results-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-runtime:ListAsyncInvokes"], "path": "behavioral/bedrock-runtime/check_list_async_invokes_invalid_max_results_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.malformed-invocation-arn-validation-rejected", "deployments": [], "key": "bedrock-runtime/malformed-invocation-arn-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_malformed_invocation_arn_validation_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.malformed-request-body-not-forwarded-to-model", "deployments": [], "key": "bedrock-runtime/malformed-request-body-not-forwarded-to-model", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_malformed_request_body_not_forwarded_to_model.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.managed-quota-throttling-enforced-uniformly", "deployments": [], "key": "bedrock-runtime/managed-quota-throttling-enforced-uniformly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_managed_quota_throttling_enforced_uniformly.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.model-runtime-failure-mapped-to-model-error-exception", "deployments": [], "key": "bedrock-runtime/model-runtime-failure-mapped-to-model-error-exception", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock-runtime/check_model_runtime_failure_mapped_to_model_error_exception.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.nonexistent-async-invoke-not-found", "deployments": [], "key": "bedrock-runtime/nonexistent-async-invoke-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_nonexistent_async_invoke_not_found.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.numeric-parameter-precision-preserved", "deployments": [], "key": "bedrock-runtime/numeric-parameter-precision-preserved", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock-runtime/check_numeric_parameter_precision_preserved.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.oversized-input-payload-rejected-not-truncated", "deployments": [], "key": "bedrock-runtime/oversized-input-payload-rejected-not-truncated", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_oversized_input_payload_rejected_not_truncated.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.response-stream-chunk-ordering", "deployments": [], "key": "bedrock-runtime/response-stream-chunk-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock-runtime/check_response_stream_chunk_ordering.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.start-async-invoke-idempotent-replay-same-params", "deployments": [], "key": "bedrock-runtime/start-async-invoke-idempotent-replay-same-params", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_start_async_invoke_idempotent_replay_same_params.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.start-async-invoke-invalid-model-rejected", "deployments": [], "key": "bedrock-runtime/start-async-invoke-invalid-model-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_start_async_invoke_invalid_model_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.start-async-invoke-lifecycle-and-idempotency", "deployments": [], "key": "bedrock-runtime/start-async-invoke-lifecycle-and-idempotency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_start_async_invoke_lifecycle_and_idempotency.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.start-async-invoke-rejects-destination-before-model-input", "deployments": [], "key": "bedrock-runtime/start-async-invoke-rejects-destination-before-model-input", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_start_async_invoke_rejects_destination_before_model_input.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.start-async-invoke-token-reuse-conflicting-params-blocked", "deployments": [], "key": "bedrock-runtime/start-async-invoke-token-reuse-conflicting-params-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime/check_start_async_invoke_token_reuse_conflicting_params_blocked.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.start-async-invoke-unsupported-model-wrong-state-rejected", "deployments": [], "key": "bedrock-runtime/start-async-invoke-unsupported-model-wrong-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/bedrock-runtime/check_start_async_invoke_unsupported_model_wrong_state_rejected.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.token-count-serverside-matches-context-limit-enforcement", "deployments": [], "key": "bedrock-runtime/token-count-serverside-matches-context-limit-enforcement", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:CountTokens"], "path": "behavioral/bedrock-runtime/check_token_count_serverside_matches_context_limit_enforcement.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime.unicode-text-round-trip-preserved", "deployments": [], "key": "bedrock-runtime/unicode-text-round-trip-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock-runtime/check_unicode_text_round_trip_preserved.py", "service": "bedrock-runtime"} {"check_id": "bedrock-runtime__cloudwatch.converse-invocations-reach-cloudwatch-with-the-documented-unit-and-dimension", "deployments": [], "key": "bedrock-runtime__cloudwatch/converse-invocations-reach-cloudwatch-with-the-documented-unit-and-dimension", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["bedrock-runtime:Converse", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/bedrock-runtime__cloudwatch/check_converse_invocations_reach_cloudwatch_with_the_documented_unit_and_dimension.py", "service": "bedrock-runtime__cloudwatch"} {"check_id": "bedrock-runtime__cloudwatch.refused-invocation-counted-as-client-error-never-as-an-invocation", "deployments": [], "key": "bedrock-runtime__cloudwatch/refused-invocation-counted-as-client-error-never-as-an-invocation", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["bedrock-runtime:Converse", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/bedrock-runtime__cloudwatch/check_refused_invocation_counted_as_client_error_never_as_an_invocation.py", "service": "bedrock-runtime__cloudwatch"} {"check_id": "bedrock-runtime__iam__sts.bedrock-runtime-model-arn-scoped-session-denied-for-second-model", "deployments": [], "key": "bedrock-runtime__iam__sts/bedrock-runtime-model-arn-scoped-session-denied-for-second-model", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock-runtime__iam__sts/check_bedrock_runtime_model_arn_scoped_session_denied_for_second_model.py", "service": "bedrock-runtime__iam__sts"} {"check_id": "bedrock-runtime__s3.bedrock-runtime-async-invoke-with-a-nonexistent-output-bucket-rejected", "deployments": [], "key": "bedrock-runtime__s3/bedrock-runtime-async-invoke-with-a-nonexistent-output-bucket-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketLocation", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime__s3/check_bedrock_runtime_async_invoke_with_a_nonexistent_output_bucket_rejected.py", "service": "bedrock-runtime__s3"} {"check_id": "bedrock-runtime__s3.bedrock-runtime-async-invoke-writes-a-playable-video-artifact-to-s3", "deployments": [], "key": "bedrock-runtime__s3/bedrock-runtime-async-invoke-writes-a-playable-video-artifact-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:GetAsyncInvoke", "bedrock-runtime:ListAsyncInvokes", "bedrock-runtime:StartAsyncInvoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock-runtime__s3/check_bedrock_runtime_async_invoke_writes_a_playable_video_artifact_to_s3.py", "service": "bedrock-runtime__s3"} {"check_id": "bedrock.accept-header-json", "deployments": [], "key": "bedrock/accept-header-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock/check_accept_header_json.py", "service": "bedrock"} {"check_id": "bedrock.account-data-retention-numeric-value-preserved", "deployments": [], "key": "bedrock/account-data-retention-numeric-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetAccountDataRetention", "bedrock:PutAccountDataRetention"], "path": "behavioral/bedrock/check_account_data_retention_numeric_value_preserved.py", "service": "bedrock"} {"check_id": "bedrock.account-data-retention-put-get-enforced", "deployments": [], "key": "bedrock/account-data-retention-put-get-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetAccountDataRetention", "bedrock:PutAccountDataRetention"], "path": "behavioral/bedrock/check_account_data_retention_put_get_enforced.py", "service": "bedrock"} {"check_id": "bedrock.account-data-retention-setting-enforced", "deployments": [], "key": "bedrock/account-data-retention-setting-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetAccountDataRetention", "bedrock:PutAccountDataRetention"], "path": "behavioral/bedrock/check_account_data_retention_setting_enforced.py", "service": "bedrock"} {"check_id": "bedrock.account-data-retention-ttl-enforced-on-logs", "deployments": [], "key": "bedrock/account-data-retention-ttl-enforced-on-logs", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetAccountDataRetention", "bedrock:PutAccountDataRetention"], "path": "behavioral/bedrock/check_account_data_retention_ttl_enforced_on_logs.py", "service": "bedrock"} {"check_id": "bedrock.advanced-prompt-optimization-job-lifecycle", "deployments": [], "key": "bedrock/advanced-prompt-optimization-job-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAdvancedPromptOptimizationJob", "bedrock:GetAdvancedPromptOptimizationJob", "bedrock:ListFoundationModels", "bedrock:StopAdvancedPromptOptimizationJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_advanced_prompt_optimization_job_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.advanced-prompt-optimization-job-stop-transitions", "deployments": [], "key": "bedrock/advanced-prompt-optimization-job-stop-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAdvancedPromptOptimizationJob", "bedrock:GetAdvancedPromptOptimizationJob", "bedrock:ListFoundationModels", "bedrock:StopAdvancedPromptOptimizationJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_advanced_prompt_optimization_job_stop_transitions.py", "service": "bedrock"} {"check_id": "bedrock.advanced-prompt-optimization-job-stop-transitions-to-stopped", "deployments": [], "key": "bedrock/advanced-prompt-optimization-job-stop-transitions-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAdvancedPromptOptimizationJob", "bedrock:GetAdvancedPromptOptimizationJob", "bedrock:ListFoundationModels", "bedrock:StopAdvancedPromptOptimizationJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_advanced_prompt_optimization_job_stop_transitions_to_stopped.py", "service": "bedrock"} {"check_id": "bedrock.apply-guardrail-benign-input-no-intervention", "deployments": [], "key": "bedrock/apply-guardrail-benign-input-no-intervention", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_apply_guardrail_benign_input_no_intervention.py", "service": "bedrock"} {"check_id": "bedrock.apply-guardrail-custom-regex-match-named-in-assessment", "deployments": [], "key": "bedrock/apply-guardrail-custom-regex-match-named-in-assessment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_apply_guardrail_custom_regex_match_named_in_assessment.py", "service": "bedrock"} {"check_id": "bedrock.apply-guardrail-custom-word-match-named-in-assessment", "deployments": [], "key": "bedrock/apply-guardrail-custom-word-match-named-in-assessment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_apply_guardrail_custom_word_match_named_in_assessment.py", "service": "bedrock"} {"check_id": "bedrock.apply-guardrail-denied-topic-named-in-assessment", "deployments": [], "key": "bedrock/apply-guardrail-denied-topic-named-in-assessment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_apply_guardrail_denied_topic_named_in_assessment.py", "service": "bedrock"} {"check_id": "bedrock.apply-guardrail-pii-anonymize-masks-output", "deployments": [], "key": "bedrock/apply-guardrail-pii-anonymize-masks-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_apply_guardrail_pii_anonymize_masks_output.py", "service": "bedrock"} {"check_id": "bedrock.apply-guardrail-pii-block-uses-configured-message", "deployments": [], "key": "bedrock/apply-guardrail-pii-block-uses-configured-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_apply_guardrail_pii_block_uses_configured_message.py", "service": "bedrock"} {"check_id": "bedrock.apply-guardrail-response-shape", "deployments": [], "key": "bedrock/apply-guardrail-response-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_apply_guardrail_response_shape.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-build-workflow-lifecycle", "deployments": [], "key": "bedrock/automated-reasoning-build-workflow-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow"], "path": "behavioral/bedrock/check_automated_reasoning_build_workflow_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-policy-create-delete-404", "deployments": [], "key": "bedrock/automated-reasoning-policy-create-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicy"], "path": "behavioral/bedrock/check_automated_reasoning_policy_create_delete_404.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-policy-definition-round-trip", "deployments": [], "key": "bedrock/automated-reasoning-policy-definition-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:ExportAutomatedReasoningPolicyVersion"], "path": "behavioral/bedrock/check_automated_reasoning_policy_definition_round_trip.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-policy-lifecycle", "deployments": [], "key": "bedrock/automated-reasoning-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicy", "bedrock:UpdateAutomatedReasoningPolicy"], "path": "behavioral/bedrock/check_automated_reasoning_policy_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-policy-unset-vs-present-description-preserved", "deployments": [], "key": "bedrock/automated-reasoning-policy-unset-vs-present-description-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicy"], "path": "behavioral/bedrock/check_automated_reasoning_policy_unset_vs_present_description_preserved.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-policy-version-immutable-snapshot", "deployments": [], "key": "bedrock/automated-reasoning-policy-version-immutable-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyVersion", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicy", "bedrock:UpdateAutomatedReasoningPolicy"], "path": "behavioral/bedrock/check_automated_reasoning_policy_version_immutable_snapshot.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-test-case-confidence-threshold-rejected", "deployments": [], "key": "bedrock/automated-reasoning-test-case-confidence-threshold-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyTestCase", "bedrock:ListAutomatedReasoningPolicyTestCases"], "path": "behavioral/bedrock/check_automated_reasoning_test_case_confidence_threshold_rejected.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-test-case-lifecycle", "deployments": [], "key": "bedrock/automated-reasoning-test-case-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyTestCase", "bedrock:UpdateAutomatedReasoningPolicyTestCase"], "path": "behavioral/bedrock/check_automated_reasoning_test_case_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-test-case-stale-token-rejected", "deployments": [], "key": "bedrock/automated-reasoning-test-case-stale-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyTestCase", "bedrock:UpdateAutomatedReasoningPolicyTestCase"], "path": "behavioral/bedrock/check_automated_reasoning_test_case_stale_token_rejected.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-test-case-unicode-content-preserved", "deployments": [], "key": "bedrock/automated-reasoning-test-case-unicode-content-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyTestCase"], "path": "behavioral/bedrock/check_automated_reasoning_test_case_unicode_content_preserved.py", "service": "bedrock"} {"check_id": "bedrock.automated-reasoning-test-case-unicode-content-round-trip", "deployments": [], "key": "bedrock/automated-reasoning-test-case-unicode-content-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyTestCase"], "path": "behavioral/bedrock/check_automated_reasoning_test_case_unicode_content_round_trip.py", "service": "bedrock"} {"check_id": "bedrock.batch-delete-evaluation-job-running-conflict", "deployments": [], "key": "bedrock/batch-delete-evaluation-job-running-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:BatchDeleteEvaluationJob", "bedrock:CreateEvaluationJob", "bedrock:GetEvaluationJob", "bedrock:StopEvaluationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock/check_batch_delete_evaluation_job_running_conflict.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-concurrent-converse-calls-do-not-cross-contaminate-responses", "deployments": [], "key": "bedrock/bedrock-concurrent-converse-calls-do-not-cross-contaminate-responses", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_bedrock_concurrent_converse_calls_do_not_cross_contaminate_responses.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-converse-stop-sequence-truncates-the-generated-text", "deployments": [], "key": "bedrock/bedrock-converse-stop-sequence-truncates-the-generated-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_bedrock_converse_stop_sequence_truncates_the_generated_text.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-converse-stream-emits-its-events-in-the-declared-order", "deployments": [], "key": "bedrock/bedrock-converse-stream-emits-its-events-in-the-declared-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock/check_bedrock_converse_stream_emits_its_events_in_the_declared_order.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-converse-with-a-nonexistent-guardrail-version-rejected", "deployments": [], "key": "bedrock/bedrock-converse-with-a-nonexistent-guardrail-version-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListGuardrails"], "path": "behavioral/bedrock/check_bedrock_converse_with_a_nonexistent_guardrail_version_rejected.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-guardrail-blocked-input-never-reaches-the-model", "deployments": [], "key": "bedrock/bedrock-guardrail-blocked-input-never-reaches-the-model", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_bedrock_guardrail_blocked_input_never_reaches_the_model.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-max-tokens-truncation-reports-stop-reason-max-tokens", "deployments": [], "key": "bedrock/bedrock-max-tokens-truncation-reports-stop-reason-max-tokens", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_bedrock_max_tokens_truncation_reports_stop_reason_max_tokens.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-model-invocation-logging-records-the-prompt-and-the-completion", "deployments": [], "key": "bedrock/bedrock-model-invocation-logging-records-the-prompt-and-the-completion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_bedrock_model_invocation_logging_records_the_prompt_and_the_completion.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-model-invocation-logging-with-a-cross-region-bucket-rejected", "deployments": [], "key": "bedrock/bedrock-model-invocation-logging-with-a-cross-region-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock-runtime:Converse", "bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/bedrock/check_bedrock_model_invocation_logging_with_a_cross_region_bucket_rejected.py", "service": "bedrock"} {"check_id": "bedrock.bedrock-tool-use-round-trip-returns-the-tool-result-in-the-final-answer", "deployments": [], "key": "bedrock/bedrock-tool-use-round-trip-returns-the-tool-result-in-the-final-answer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_bedrock_tool_use_round_trip_returns_the_tool_result_in_the_final_answer.py", "service": "bedrock"} {"check_id": "bedrock.cancel-build-workflow-already-completed-not-found", "deployments": [], "key": "bedrock/cancel-build-workflow-already-completed-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CancelAutomatedReasoningPolicyBuildWorkflow", "bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow"], "path": "behavioral/bedrock/check_cancel_build_workflow_already_completed_not_found.py", "service": "bedrock"} {"check_id": "bedrock.cancel-build-workflow-nonexistent-not-found", "deployments": [], "key": "bedrock/cancel-build-workflow-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CancelAutomatedReasoningPolicyBuildWorkflow", "bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:ListAutomatedReasoningPolicyBuildWorkflows", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow"], "path": "behavioral/bedrock/check_cancel_build_workflow_nonexistent_not_found.py", "service": "bedrock"} {"check_id": "bedrock.cancel-build-workflow-not-found-rejected", "deployments": [], "key": "bedrock/cancel-build-workflow-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CancelAutomatedReasoningPolicyBuildWorkflow", "bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:ListAutomatedReasoningPolicyBuildWorkflows", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow"], "path": "behavioral/bedrock/check_cancel_build_workflow_not_found_rejected.py", "service": "bedrock"} {"check_id": "bedrock.cancel-completed-build-workflow-succeeds-as-a-noop", "deployments": [], "key": "bedrock/cancel-completed-build-workflow-succeeds-as-a-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CancelAutomatedReasoningPolicyBuildWorkflow", "bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow"], "path": "behavioral/bedrock/check_cancel_completed_build_workflow_succeeds_as_a_noop.py", "service": "bedrock"} {"check_id": "bedrock.concurrent-create-automated-reasoning-policy-same-name-one-wins", "deployments": [], "key": "bedrock/concurrent-create-automated-reasoning-policy-same-name-one-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:ListAutomatedReasoningPolicies"], "path": "behavioral/bedrock/check_concurrent_create_automated_reasoning_policy_same_name_one_wins.py", "service": "bedrock"} {"check_id": "bedrock.concurrent-put-enforced-guardrail-configuration-last-write-wins", "deployments": [], "key": "bedrock/concurrent-put-enforced-guardrail-configuration-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListEnforcedGuardrailsConfiguration", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_concurrent_put_enforced_guardrail_configuration_last_write_wins.py", "service": "bedrock"} {"check_id": "bedrock.content-type-required-json", "deployments": [], "key": "bedrock/content-type-required-json", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock/check_content_type_required_json.py", "service": "bedrock"} {"check_id": "bedrock.converse-basic-response-shape", "deployments": [], "key": "bedrock/converse-basic-response-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_converse_basic_response_shape.py", "service": "bedrock"} {"check_id": "bedrock.converse-max-tokens-respected", "deployments": [], "key": "bedrock/converse-max-tokens-respected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_converse_max_tokens_respected.py", "service": "bedrock"} {"check_id": "bedrock.converse-metrics-latency", "deployments": [], "key": "bedrock/converse-metrics-latency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_converse_metrics_latency.py", "service": "bedrock"} {"check_id": "bedrock.converse-output-message-shape", "deployments": [], "key": "bedrock/converse-output-message-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_converse_output_message_shape.py", "service": "bedrock"} {"check_id": "bedrock.converse-stop-reason-end-turn", "deployments": [], "key": "bedrock/converse-stop-reason-end-turn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_converse_stop_reason_end_turn.py", "service": "bedrock"} {"check_id": "bedrock.converse-stream-content-block-delta-text", "deployments": [], "key": "bedrock/converse-stream-content-block-delta-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock/check_converse_stream_content_block_delta_text.py", "service": "bedrock"} {"check_id": "bedrock.converse-stream-event-types", "deployments": [], "key": "bedrock/converse-stream-event-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock/check_converse_stream_event_types.py", "service": "bedrock"} {"check_id": "bedrock.converse-stream-message-start-role", "deployments": [], "key": "bedrock/converse-stream-message-start-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock/check_converse_stream_message_start_role.py", "service": "bedrock"} {"check_id": "bedrock.converse-stream-message-stop-has-stop-reason", "deployments": [], "key": "bedrock/converse-stream-message-stop-has-stop-reason", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock/check_converse_stream_message_stop_has_stop_reason.py", "service": "bedrock"} {"check_id": "bedrock.converse-stream-metadata-usage", "deployments": [], "key": "bedrock/converse-stream-metadata-usage", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock/check_converse_stream_metadata_usage.py", "service": "bedrock"} {"check_id": "bedrock.converse-system-prompt", "deployments": [], "key": "bedrock/converse-system-prompt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_converse_system_prompt.py", "service": "bedrock"} {"check_id": "bedrock.converse-usage-fields", "deployments": [], "key": "bedrock/converse-usage-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_converse_usage_fields.py", "service": "bedrock"} {"check_id": "bedrock.create-automated-reasoning-policy-duplicate-name-succeeds", "deployments": [], "key": "bedrock/create-automated-reasoning-policy-duplicate-name-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicy"], "path": "behavioral/bedrock/check_create_automated_reasoning_policy_duplicate_name_succeeds.py", "service": "bedrock"} {"check_id": "bedrock.create-custom-model-missing-permission-denied", "deployments": [], "key": "bedrock/create-custom-model-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateCustomModel", "bedrock:DeleteCustomModel", "bedrock:GetCustomModel", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole"], "path": "behavioral/bedrock/check_create_custom_model_missing_permission_denied.py", "service": "bedrock"} {"check_id": "bedrock.create-inference-profile-duplicate-name-succeeds", "deployments": [], "key": "bedrock/create-inference-profile-duplicate-name-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:DeleteInferenceProfile", "bedrock:ListInferenceProfiles"], "path": "behavioral/bedrock/check_create_inference_profile_duplicate_name_succeeds.py", "service": "bedrock"} {"check_id": "bedrock.create-model-copy-job-nonexistent-source-model-rejected", "deployments": [], "key": "bedrock/create-model-copy-job-nonexistent-source-model-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateModelCopyJob", "bedrock:ListModelCopyJobs"], "path": "behavioral/bedrock/check_create_model_copy_job_nonexistent_source_model_rejected.py", "service": "bedrock"} {"check_id": "bedrock.create-model-invocation-job-malformed-s3-uri-rejected", "deployments": [], "key": "bedrock/create-model-invocation-job-malformed-s3-uri-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateModelInvocationJob", "bedrock:GetModelInvocationJob", "bedrock:ListModelInvocationJobs", "bedrock:StopModelInvocationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/bedrock/check_create_model_invocation_job_malformed_s3_uri_rejected.py", "service": "bedrock"} {"check_id": "bedrock.create-model-invocation-job-without-permission-denied", "deployments": [], "key": "bedrock/create-model-invocation-job-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateModelInvocationJob", "bedrock:ListFoundationModels", "bedrock:ListModelInvocationJobs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole"], "path": "behavioral/bedrock/check_create_model_invocation_job_without_permission_denied.py", "service": "bedrock"} {"check_id": "bedrock.create-prompt-router-duplicate-name-conflict-rejected", "deployments": [], "key": "bedrock/create-prompt-router-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreatePromptRouter", "bedrock:DeletePromptRouter", "bedrock:GetPromptRouter", "bedrock:ListPromptRouters"], "path": "behavioral/bedrock/check_create_prompt_router_duplicate_name_conflict_rejected.py", "service": "bedrock"} {"check_id": "bedrock.create-prompt-router-invalid-routing-criteria-rejected", "deployments": [], "key": "bedrock/create-prompt-router-invalid-routing-criteria-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreatePromptRouter", "bedrock:DeletePromptRouter", "bedrock:GetPromptRouter", "bedrock:ListPromptRouters"], "path": "behavioral/bedrock/check_create_prompt_router_invalid_routing_criteria_rejected.py", "service": "bedrock"} {"check_id": "bedrock.create-provisioned-throughput-invalid-model-units-out-of-range-rejected", "deployments": [], "key": "bedrock/create-provisioned-throughput-invalid-model-units-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateProvisionedModelThroughput", "bedrock:DeleteProvisionedModelThroughput", "bedrock:ListFoundationModels", "bedrock:ListProvisionedModelThroughputs"], "path": "behavioral/bedrock/check_create_provisioned_throughput_invalid_model_units_out_of_range_rejected.py", "service": "bedrock"} {"check_id": "bedrock.create-provisioned-throughput-zero-units-rejected", "deployments": [], "key": "bedrock/create-provisioned-throughput-zero-units-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateProvisionedModelThroughput", "bedrock:ListFoundationModels", "bedrock:ListProvisionedModelThroughputs"], "path": "behavioral/bedrock/check_create_provisioned_throughput_zero_units_rejected.py", "service": "bedrock"} {"check_id": "bedrock.custom-model-deployment-idle-timeout-transitions-to-inactive", "deployments": [], "key": "bedrock/custom-model-deployment-idle-timeout-transitions-to-inactive", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateCustomModelDeployment", "bedrock:GetCustomModelDeployment", "bedrock:ListCustomModelDeployments", "bedrock:ListFoundationModels", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_custom_model_deployment_idle_timeout_transitions_to_inactive.py", "service": "bedrock"} {"check_id": "bedrock.custom-model-deployment-lifecycle-transitions", "deployments": [], "key": "bedrock/custom-model-deployment-lifecycle-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateCustomModel", "bedrock:ListCustomModels", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_custom_model_deployment_lifecycle_transitions.py", "service": "bedrock"} {"check_id": "bedrock.custom-models-list", "deployments": [], "key": "bedrock/custom-models-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:ListCustomModels"], "path": "behavioral/bedrock/check_custom_models_list.py", "service": "bedrock"} {"check_id": "bedrock.delete-automated-reasoning-policy-in-use-rejected", "deployments": [], "key": "bedrock/delete-automated-reasoning-policy-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CancelAutomatedReasoningPolicyBuildWorkflow", "bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:ListAutomatedReasoningPolicies", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow"], "path": "behavioral/bedrock/check_delete_automated_reasoning_policy_in_use_rejected.py", "service": "bedrock"} {"check_id": "bedrock.delete-custom-model-missing-conflict-not-notfound", "deployments": [], "key": "bedrock/delete-custom-model-missing-conflict-not-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteCustomModel", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_delete_custom_model_missing_conflict_not_notfound.py", "service": "bedrock"} {"check_id": "bedrock.delete-default-prompt-router-rejected", "deployments": [], "key": "bedrock/delete-default-prompt-router-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreatePromptRouter", "bedrock:DeletePromptRouter", "bedrock:GetPromptRouter", "bedrock:ListPromptRouters"], "path": "behavioral/bedrock/check_delete_default_prompt_router_rejected.py", "service": "bedrock"} {"check_id": "bedrock.delete-enforced-guardrail-configuration-restores-default", "deployments": [], "key": "bedrock/delete-enforced-guardrail-configuration-restores-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListEnforcedGuardrailsConfiguration", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_delete_enforced_guardrail_configuration_restores_default.py", "service": "bedrock"} {"check_id": "bedrock.delete-guardrail-in-use-by-version-conflict", "deployments": [], "key": "bedrock/delete-guardrail-in-use-by-version-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListEnforcedGuardrailsConfiguration", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_delete_guardrail_in_use_by_version_conflict.py", "service": "bedrock"} {"check_id": "bedrock.delete-guardrail-with-enforced-config-blocked", "deployments": [], "key": "bedrock/delete-guardrail-with-enforced-config-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_delete_guardrail_with_enforced_config_blocked.py", "service": "bedrock"} {"check_id": "bedrock.delete-inference-profile-missing-conflict-not-notfound", "deployments": [], "key": "bedrock/delete-inference-profile-missing-conflict-not-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:DeleteInferenceProfile", "bedrock:GetInferenceProfile", "bedrock:ListInferenceProfiles"], "path": "behavioral/bedrock/check_delete_inference_profile_missing_conflict_not_notfound.py", "service": "bedrock"} {"check_id": "bedrock.delete-inference-profile-not-found-rejected", "deployments": [], "key": "bedrock/delete-inference-profile-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:DeleteInferenceProfile", "bedrock:GetInferenceProfile", "bedrock:ListInferenceProfiles"], "path": "behavioral/bedrock/check_delete_inference_profile_not_found_rejected.py", "service": "bedrock"} {"check_id": "bedrock.delete-inference-profile-referenced-by-prompt-router-accepted", "deployments": [], "key": "bedrock/delete-inference-profile-referenced-by-prompt-router-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:CreatePromptRouter", "bedrock:DeleteInferenceProfile", "bedrock:DeletePromptRouter", "bedrock:GetInferenceProfile", "bedrock:GetPromptRouter", "bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_delete_inference_profile_referenced_by_prompt_router_accepted.py", "service": "bedrock"} {"check_id": "bedrock.delete-inference-profile-twice-second-call-not-found", "deployments": [], "key": "bedrock/delete-inference-profile-twice-second-call-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:DeleteInferenceProfile", "bedrock:GetInferenceProfile", "bedrock:ListInferenceProfiles"], "path": "behavioral/bedrock/check_delete_inference_profile_twice_second_call_not_found.py", "service": "bedrock"} {"check_id": "bedrock.delete-inference-profile-while-referenced-blocked", "deployments": [], "key": "bedrock/delete-inference-profile-while-referenced-blocked", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:CreateModelInvocationJob", "bedrock:DeleteInferenceProfile", "bedrock:GetInferenceProfile", "bedrock:GetModelInvocationJob", "bedrock:ListFoundationModels", "bedrock:ListInferenceProfiles", "bedrock:StopModelInvocationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_delete_inference_profile_while_referenced_blocked.py", "service": "bedrock"} {"check_id": "bedrock.delete-model-invocation-logging-config-clears-server-state", "deployments": [], "key": "bedrock/delete-model-invocation-logging-config-clears-server-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_delete_model_invocation_logging_config_clears_server_state.py", "service": "bedrock"} {"check_id": "bedrock.delete-model-invocation-logging-config-without-permission-denied", "deployments": [], "key": "bedrock/delete-model-invocation-logging-config-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_delete_model_invocation_logging_config_without_permission_denied.py", "service": "bedrock"} {"check_id": "bedrock.delete-model-invocation-logging-configuration-idempotent", "deployments": [], "key": "bedrock/delete-model-invocation-logging-configuration-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_delete_model_invocation_logging_configuration_idempotent.py", "service": "bedrock"} {"check_id": "bedrock.delete-model-invocation-logging-withholds-further-records", "deployments": [], "key": "bedrock/delete-model-invocation-logging-withholds-further-records", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_delete_model_invocation_logging_withholds_further_records.py", "service": "bedrock"} {"check_id": "bedrock.delete-prompt-router-missing-returns-notfound", "deployments": [], "key": "bedrock/delete-prompt-router-missing-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreatePromptRouter", "bedrock:DeletePromptRouter", "bedrock:GetPromptRouter", "bedrock:ListPromptRouters"], "path": "behavioral/bedrock/check_delete_prompt_router_missing_returns_notfound.py", "service": "bedrock"} {"check_id": "bedrock.delete-provisioned-throughput-missing-conflict-not-notfound", "deployments": [], "key": "bedrock/delete-provisioned-throughput-missing-conflict-not-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:DeleteProvisionedModelThroughput", "bedrock:GetGuardrail", "bedrock:GetProvisionedModelThroughput"], "path": "behavioral/bedrock/check_delete_provisioned_throughput_missing_conflict_not_notfound.py", "service": "bedrock"} {"check_id": "bedrock.delete-resource-policy-access-denied", "deployments": [], "key": "bedrock/delete-resource-policy-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:DeleteResourcePolicy", "bedrock:GetGuardrail", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_delete_resource_policy_access_denied.py", "service": "bedrock"} {"check_id": "bedrock.delete-resource-policy-missing-returns-notfound", "deployments": [], "key": "bedrock/delete-resource-policy-missing-returns-notfound", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:DeleteResourcePolicy", "bedrock:GetGuardrail", "bedrock:GetResourcePolicy"], "path": "behavioral/bedrock/check_delete_resource_policy_missing_returns_notfound.py", "service": "bedrock"} {"check_id": "bedrock.deploy-guardrail-cfn-enforces-blocked-content", "deployments": [], "key": "bedrock/deploy-guardrail-cfn-enforces-blocked-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:GetGuardrail", "bedrock:ListGuardrails", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_deploy_guardrail_cfn_enforces_blocked_content.py", "service": "bedrock"} {"check_id": "bedrock.deploy-guardrail-via-cloudformation-enforces-denied-topic", "deployments": [], "key": "bedrock/deploy-guardrail-via-cloudformation-enforces-denied-topic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_deploy_guardrail_via_cloudformation_enforces_denied_topic.py", "service": "bedrock"} {"check_id": "bedrock.deploy-inference-profile-cfn-routes-invocation", "deployments": [], "key": "bedrock/deploy-inference-profile-cfn-routes-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:ListInferenceProfiles", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock/check_deploy_inference_profile_cfn_routes_invocation.py", "service": "bedrock"} {"check_id": "bedrock.deploy-provisioned-throughput-via-cloudformation-then-invoke", "deployments": [], "key": "bedrock/deploy-provisioned-throughput-via-cloudformation-then-invoke", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks"], "path": "behavioral/bedrock/check_deploy_provisioned_throughput_via_cloudformation_then_invoke.py", "service": "bedrock"} {"check_id": "bedrock.deregister-marketplace-endpoint-missing-returns-notfound", "deployments": [], "key": "bedrock/deregister-marketplace-endpoint-missing-returns-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:DeregisterMarketplaceModelEndpoint", "bedrock:ListMarketplaceModelEndpoints", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_deregister_marketplace_endpoint_missing_returns_notfound.py", "service": "bedrock"} {"check_id": "bedrock.e2e-automated-reasoning-policy-build-and-test-workflow", "deployments": [], "key": "bedrock/e2e-automated-reasoning-policy-build-and-test-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:CreateAutomatedReasoningPolicyVersion", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyTestResult", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow", "bedrock:StartAutomatedReasoningPolicyTestWorkflow"], "path": "behavioral/bedrock/check_e2e_automated_reasoning_policy_build_and_test_workflow.py", "service": "bedrock"} {"check_id": "bedrock.e2e-batch-inference-job-produces-output", "deployments": [], "key": "bedrock/e2e-batch-inference-job-produces-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock:CreateModelInvocationJob", "bedrock:GetModelInvocationJob", "bedrock:StopModelInvocationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_e2e_batch_inference_job_produces_output.py", "service": "bedrock"} {"check_id": "bedrock.e2e-enforced-guardrail-blocks-then-lifts", "deployments": [], "key": "bedrock/e2e-enforced-guardrail-blocks-then-lifts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_e2e_enforced_guardrail_blocks_then_lifts.py", "service": "bedrock"} {"check_id": "bedrock.e2e-evaluation-job-runs-and-is-purged", "deployments": [], "key": "bedrock/e2e-evaluation-job-runs-and-is-purged", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock:BatchDeleteEvaluationJob", "bedrock:CreateEvaluationJob", "bedrock:GetEvaluationJob", "bedrock:ListEvaluationJobs", "bedrock:StopEvaluationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_e2e_evaluation_job_runs_and_is_purged.py", "service": "bedrock"} {"check_id": "bedrock.e2e-evaluation-job-with-guardrail-results-teardown", "deployments": [], "key": "bedrock/e2e-evaluation-job-with-guardrail-results-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock:BatchDeleteEvaluationJob", "bedrock:CreateEvaluationJob", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetEvaluationJob", "bedrock:GetGuardrail", "bedrock:ListEnforcedGuardrailsConfiguration", "bedrock:ListEvaluationJobs", "bedrock:PutEnforcedGuardrailConfiguration", "bedrock:StopEvaluationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/bedrock/check_e2e_evaluation_job_with_guardrail_results_teardown.py", "service": "bedrock"} {"check_id": "bedrock.enforced-guardrail-configuration-applies-server-side", "deployments": [], "key": "bedrock/enforced-guardrail-configuration-applies-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListEnforcedGuardrailsConfiguration", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_enforced_guardrail_configuration_applies_server_side.py", "service": "bedrock"} {"check_id": "bedrock.enforced-guardrail-configuration-put-list-delete", "deployments": [], "key": "bedrock/enforced-guardrail-configuration-put-list-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListEnforcedGuardrailsConfiguration", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_enforced_guardrail_configuration_put_list_delete.py", "service": "bedrock"} {"check_id": "bedrock.enforced-guardrail-configuration-unknown-guardrail-rejected", "deployments": [], "key": "bedrock/enforced-guardrail-configuration-unknown-guardrail-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListEnforcedGuardrailsConfiguration", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_enforced_guardrail_configuration_unknown_guardrail_rejected.py", "service": "bedrock"} {"check_id": "bedrock.error-get-foundation-model-not-found", "deployments": [], "key": "bedrock/error-get-foundation-model-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:GetFoundationModel"], "path": "behavioral/bedrock/check_error_get_foundation_model_not_found.py", "service": "bedrock"} {"check_id": "bedrock.error-guardrail-not-found", "deployments": [], "key": "bedrock/error-guardrail-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_error_guardrail_not_found.py", "service": "bedrock"} {"check_id": "bedrock.error-model-not-found-converse", "deployments": [], "key": "bedrock/error-model-not-found-converse", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_error_model_not_found_converse.py", "service": "bedrock"} {"check_id": "bedrock.error-model-not-found-invoke", "deployments": [], "key": "bedrock/error-model-not-found-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock/check_error_model_not_found_invoke.py", "service": "bedrock"} {"check_id": "bedrock.error-validation-empty-messages", "deployments": [], "key": "bedrock/error-validation-empty-messages", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_error_validation_empty_messages.py", "service": "bedrock"} {"check_id": "bedrock.error-validation-malformed-body-invoke", "deployments": [], "key": "bedrock/error-validation-malformed-body-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock/check_error_validation_malformed_body_invoke.py", "service": "bedrock"} {"check_id": "bedrock.error-validation-wrong-role-order", "deployments": [], "key": "bedrock/error-validation-wrong-role-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_error_validation_wrong_role_order.py", "service": "bedrock"} {"check_id": "bedrock.evaluation-job-stop-transitions", "deployments": [], "key": "bedrock/evaluation-job-stop-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateEvaluationJob", "bedrock:GetEvaluationJob", "bedrock:ListFoundationModels", "bedrock:StopEvaluationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/bedrock/check_evaluation_job_stop_transitions.py", "service": "bedrock"} {"check_id": "bedrock.get-automated-reasoning-policy-annotations-not-found", "deployments": [], "key": "bedrock/get-automated-reasoning-policy-annotations-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CancelAutomatedReasoningPolicyBuildWorkflow", "bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicyAnnotations", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow"], "path": "behavioral/bedrock/check_get_automated_reasoning_policy_annotations_not_found.py", "service": "bedrock"} {"check_id": "bedrock.get-foundation-model-details", "deployments": [], "key": "bedrock/get-foundation-model-details", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetFoundationModel"], "path": "behavioral/bedrock/check_get_foundation_model_details.py", "service": "bedrock"} {"check_id": "bedrock.get-foundation-model-has-lifecycle", "deployments": [], "key": "bedrock/get-foundation-model-has-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetFoundationModel", "bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_get_foundation_model_has_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.get-model-invocation-logging-config", "deployments": [], "key": "bedrock/get-model-invocation-logging-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration"], "path": "behavioral/bedrock/check_get_model_invocation_logging_config.py", "service": "bedrock"} {"check_id": "bedrock.get-use-case-for-model-access-not-found", "deployments": [], "key": "bedrock/get-use-case-for-model-access-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:GetUseCaseForModelAccess"], "path": "behavioral/bedrock/check_get_use_case_for_model_access_not_found.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-actually-blocks-content", "deployments": [], "key": "bedrock/guardrail-actually-blocks-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_guardrail_actually_blocks_content.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-blocked-output-messaging-distinct-from-input", "deployments": [], "key": "bedrock/guardrail-blocked-output-messaging-distinct-from-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_guardrail_blocked_output_messaging_distinct_from_input.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-create-get-roundtrip", "deployments": [], "key": "bedrock/guardrail-create-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListGuardrails", "bedrock:UpdateGuardrail"], "path": "behavioral/bedrock/check_guardrail_create_get_roundtrip.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-delete", "deployments": [], "key": "bedrock/guardrail-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:UpdateGuardrail"], "path": "behavioral/bedrock/check_guardrail_delete.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-detect-mode-reports-detection-without-blocking", "deployments": [], "key": "bedrock/guardrail-detect-mode-reports-detection-without-blocking", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_guardrail_detect_mode_reports_detection_without_blocking.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-kms-key-id-and-alias-resolve-to-key-arn", "deployments": [], "key": "bedrock/guardrail-kms-key-id-and-alias-resolve-to-key-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:UpdateGuardrail", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_guardrail_kms_key_id_and_alias_resolve_to_key_arn.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-list-includes-created", "deployments": [], "key": "bedrock/guardrail-list-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:ListGuardrails"], "path": "behavioral/bedrock/check_guardrail_list_includes_created.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-malformed-custom-regex-rejected", "deployments": [], "key": "bedrock/guardrail-malformed-custom-regex-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListGuardrails"], "path": "behavioral/bedrock/check_guardrail_malformed_custom_regex_rejected.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-published-version-immutable-after-draft-update", "deployments": [], "key": "bedrock/guardrail-published-version-immutable-after-draft-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:UpdateGuardrail"], "path": "behavioral/bedrock/check_guardrail_published_version_immutable_after_draft_update.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-published-version-pins-enforcement-not-just-config", "deployments": [], "key": "bedrock/guardrail-published-version-pins-enforcement-not-just-config", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:UpdateGuardrail"], "path": "behavioral/bedrock/check_guardrail_published_version_pins_enforcement_not_just_config.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-regexes-over-max-count-rejected", "deployments": [], "key": "bedrock/guardrail-regexes-over-max-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListGuardrails"], "path": "behavioral/bedrock/check_guardrail_regexes_over_max_count_rejected.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-update", "deployments": [], "key": "bedrock/guardrail-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:UpdateGuardrail"], "path": "behavioral/bedrock/check_guardrail_update.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-version-concurrent-calls-get-distinct-versions", "deployments": [], "key": "bedrock/guardrail-version-concurrent-calls-get-distinct-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_guardrail_version_concurrent_calls_get_distinct_versions.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-version-creation-conflict-rejected", "deployments": [], "key": "bedrock/guardrail-version-creation-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_guardrail_version_creation_conflict_rejected.py", "service": "bedrock"} {"check_id": "bedrock.guardrail-versioning", "deployments": [], "key": "bedrock/guardrail-versioning", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock/check_guardrail_versioning.py", "service": "bedrock"} {"check_id": "bedrock.inference-params-stop-sequences", "deployments": [], "key": "bedrock/inference-params-stop-sequences", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_inference_params_stop_sequences.py", "service": "bedrock"} {"check_id": "bedrock.inference-params-temperature", "deployments": [], "key": "bedrock/inference-params-temperature", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_inference_params_temperature.py", "service": "bedrock"} {"check_id": "bedrock.inference-params-top-p", "deployments": [], "key": "bedrock/inference-params-top-p", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_inference_params_top_p.py", "service": "bedrock"} {"check_id": "bedrock.inference-profile-create-delete-404", "deployments": [], "key": "bedrock/inference-profile-create-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:DeleteInferenceProfile", "bedrock:GetInferenceProfile", "bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_inference_profile_create_delete_404.py", "service": "bedrock"} {"check_id": "bedrock.inference-profile-duplicate-name-rejected", "deployments": [], "key": "bedrock/inference-profile-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:DeleteInferenceProfile", "bedrock:GetInferenceProfile", "bedrock:ListInferenceProfiles"], "path": "behavioral/bedrock/check_inference_profile_duplicate_name_rejected.py", "service": "bedrock"} {"check_id": "bedrock.inference-profile-lifecycle", "deployments": [], "key": "bedrock/inference-profile-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:DeleteInferenceProfile", "bedrock:GetInferenceProfile", "bedrock:ListInferenceProfiles"], "path": "behavioral/bedrock/check_inference_profile_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.inference-profile-too-many-tags-rejected", "deployments": [], "key": "bedrock/inference-profile-too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateInferenceProfile", "bedrock:DeleteInferenceProfile", "bedrock:GetInferenceProfile", "bedrock:ListInferenceProfiles", "bedrock:ListTagsForResource"], "path": "behavioral/bedrock/check_inference_profile_too_many_tags_rejected.py", "service": "bedrock"} {"check_id": "bedrock.invoke-model-basic", "deployments": [], "key": "bedrock/invoke-model-basic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock/check_invoke_model_basic.py", "service": "bedrock"} {"check_id": "bedrock.invoke-model-content-type-header", "deployments": [], "key": "bedrock/invoke-model-content-type-header", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock/check_invoke_model_content_type_header.py", "service": "bedrock"} {"check_id": "bedrock.invoke-model-response-fields", "deployments": [], "key": "bedrock/invoke-model-response-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModel"], "path": "behavioral/bedrock/check_invoke_model_response_fields.py", "service": "bedrock"} {"check_id": "bedrock.invoke-model-stream-chunks", "deployments": [], "key": "bedrock/invoke-model-stream-chunks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:InvokeModelWithResponseStream"], "path": "behavioral/bedrock/check_invoke_model_stream_chunks.py", "service": "bedrock"} {"check_id": "bedrock.list-foundation-models-filter-output-modality", "deployments": [], "key": "bedrock/list-foundation-models-filter-output-modality", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_list_foundation_models_filter_output_modality.py", "service": "bedrock"} {"check_id": "bedrock.list-foundation-models-filters-compose-as-conjunction", "deployments": [], "key": "bedrock/list-foundation-models-filters-compose-as-conjunction", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetFoundationModel", "bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_list_foundation_models_filters_compose_as_conjunction.py", "service": "bedrock"} {"check_id": "bedrock.list-foundation-models-filters-exclude-non-matching", "deployments": [], "key": "bedrock/list-foundation-models-filters-exclude-non-matching", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_list_foundation_models_filters_exclude_non_matching.py", "service": "bedrock"} {"check_id": "bedrock.list-foundation-models-has-claude", "deployments": [], "key": "bedrock/list-foundation-models-has-claude", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_list_foundation_models_has_claude.py", "service": "bedrock"} {"check_id": "bedrock.list-foundation-models-model-fields", "deployments": [], "key": "bedrock/list-foundation-models-model-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_list_foundation_models_model_fields.py", "service": "bedrock"} {"check_id": "bedrock.list-foundation-models-nonempty", "deployments": [], "key": "bedrock/list-foundation-models-nonempty", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:ListFoundationModels"], "path": "behavioral/bedrock/check_list_foundation_models_nonempty.py", "service": "bedrock"} {"check_id": "bedrock.marketplace-endpoint-create-delete-404", "deployments": [], "key": "bedrock/marketplace-endpoint-create-delete-404", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateMarketplaceModelEndpoint", "bedrock:DeleteMarketplaceModelEndpoint", "bedrock:ListMarketplaceModelEndpoints", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:DescribeHubContent", "sagemaker:ListHubContents"], "path": "behavioral/bedrock/check_marketplace_endpoint_create_delete_404.py", "service": "bedrock"} {"check_id": "bedrock.model-customization-job-stop-transitions", "deployments": [], "key": "bedrock/model-customization-job-stop-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelCustomizationJob", "bedrock:GetModelCustomizationJob", "bedrock:ListFoundationModels", "bedrock:StopModelCustomizationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_model_customization_job_stop_transitions.py", "service": "bedrock"} {"check_id": "bedrock.model-customization-job-stop-transitions-to-stopped", "deployments": [], "key": "bedrock/model-customization-job-stop-transitions-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelCustomizationJob", "bedrock:GetModelCustomizationJob", "bedrock:ListFoundationModels", "bedrock:StopModelCustomizationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/bedrock/check_model_customization_job_stop_transitions_to_stopped.py", "service": "bedrock"} {"check_id": "bedrock.model-import-job-progresses-to-terminal-state", "deployments": [], "key": "bedrock/model-import-job-progresses-to-terminal-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelImportJob", "bedrock:GetImportedModel", "bedrock:GetModelImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_model_import_job_progresses_to_terminal_state.py", "service": "bedrock"} {"check_id": "bedrock.model-import-job-progression", "deployments": [], "key": "bedrock/model-import-job-progression", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelImportJob", "bedrock:DeleteImportedModel", "bedrock:GetImportedModel", "bedrock:GetModelImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/bedrock/check_model_import_job_progression.py", "service": "bedrock"} {"check_id": "bedrock.model-invocation-job-lifecycle", "deployments": [], "key": "bedrock/model-invocation-job-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelInvocationJob", "bedrock:GetModelInvocationJob", "bedrock:ListFoundationModels", "bedrock:StopModelInvocationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_model_invocation_job_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.model-invocation-job-stop-transitions-to-stopped", "deployments": [], "key": "bedrock/model-invocation-job-stop-transitions-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelInvocationJob", "bedrock:GetModelInvocationJob", "bedrock:ListFoundationModels", "bedrock:StopModelInvocationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_model_invocation_job_stop_transitions_to_stopped.py", "service": "bedrock"} {"check_id": "bedrock.model-invocation-job-timeout-transitions-to-failed", "deployments": [], "key": "bedrock/model-invocation-job-timeout-transitions-to-failed", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateModelInvocationJob", "bedrock:GetModelInvocationJob", "bedrock:ListModelInvocationJobs", "bedrock:StopModelInvocationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/bedrock/check_model_invocation_job_timeout_transitions_to_failed.py", "service": "bedrock"} {"check_id": "bedrock.model-invocation-job-timestamp-precision-preserved", "deployments": [], "key": "bedrock/model-invocation-job-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelInvocationJob", "bedrock:GetModelInvocationJob", "bedrock:StopModelInvocationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_model_invocation_job_timestamp_precision_preserved.py", "service": "bedrock"} {"check_id": "bedrock.model-invocation-logging-config-delete-resets-to-default", "deployments": [], "key": "bedrock/model-invocation-logging-config-delete-resets-to-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_model_invocation_logging_config_delete_resets_to_default.py", "service": "bedrock"} {"check_id": "bedrock.model-invocation-logging-text-delivery-disabled-omits-bodies", "deployments": [], "key": "bedrock/model-invocation-logging-text-delivery-disabled-omits-bodies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_model_invocation_logging_text_delivery_disabled_omits_bodies.py", "service": "bedrock"} {"check_id": "bedrock.multi-turn-conversation", "deployments": [], "key": "bedrock/multi-turn-conversation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_multi_turn_conversation.py", "service": "bedrock"} {"check_id": "bedrock.prompt-router-create-delete-404", "deployments": [], "key": "bedrock/prompt-router-create-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreatePromptRouter", "bedrock:DeletePromptRouter", "bedrock:GetPromptRouter"], "path": "behavioral/bedrock/check_prompt_router_create_delete_404.py", "service": "bedrock"} {"check_id": "bedrock.prompt-router-lifecycle", "deployments": [], "key": "bedrock/prompt-router-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreatePromptRouter", "bedrock:DeletePromptRouter", "bedrock:GetPromptRouter"], "path": "behavioral/bedrock/check_prompt_router_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.prompt-router-unknown-model-rejected", "deployments": [], "key": "bedrock/prompt-router-unknown-model-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreatePromptRouter", "bedrock:DeletePromptRouter", "bedrock:GetPromptRouter", "bedrock:ListPromptRouters"], "path": "behavioral/bedrock/check_prompt_router_unknown_model_rejected.py", "service": "bedrock"} {"check_id": "bedrock.provisioned-throughput-lifecycle", "deployments": [], "key": "bedrock/provisioned-throughput-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateProvisionedModelThroughput", "bedrock:DeleteProvisionedModelThroughput", "bedrock:GetProvisionedModelThroughput", "bedrock:ListFoundationModels", "bedrock:ListProvisionedModelThroughputs"], "path": "behavioral/bedrock/check_provisioned_throughput_lifecycle.py", "service": "bedrock"} {"check_id": "bedrock.put-account-data-retention-invalid-period-out-of-range-rejected", "deployments": [], "key": "bedrock/put-account-data-retention-invalid-period-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:GetAccountDataRetention", "bedrock:PutAccountDataRetention"], "path": "behavioral/bedrock/check_put_account_data_retention_invalid_period_out_of_range_rejected.py", "service": "bedrock"} {"check_id": "bedrock.put-enforced-guardrail-configuration-applies-to-invoke", "deployments": [], "key": "bedrock/put-enforced-guardrail-configuration-applies-to-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteEnforcedGuardrailConfiguration", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListEnforcedGuardrailsConfiguration", "bedrock:PutEnforcedGuardrailConfiguration"], "path": "behavioral/bedrock/check_put_enforced_guardrail_configuration_applies_to_invoke.py", "service": "bedrock"} {"check_id": "bedrock.put-model-invocation-logging-config-enforced-on-invoke", "deployments": [], "key": "bedrock/put-model-invocation-logging-config-enforced-on-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:InvokeModel", "bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/bedrock/check_put_model_invocation_logging_config_enforced_on_invoke.py", "service": "bedrock"} {"check_id": "bedrock.put-resource-policy-concurrent-writes-settle-on-one-policy", "deployments": [], "key": "bedrock/put-resource-policy-concurrent-writes-settle-on-one-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:GetResourcePolicy", "bedrock:PutResourcePolicy"], "path": "behavioral/bedrock/check_put_resource_policy_concurrent_writes_settle_on_one_policy.py", "service": "bedrock"} {"check_id": "bedrock.put-resource-policy-malformed-document-rejected", "deployments": [], "key": "bedrock/put-resource-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:DeleteResourcePolicy", "bedrock:GetResourcePolicy", "bedrock:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_put_resource_policy_malformed_document_rejected.py", "service": "bedrock"} {"check_id": "bedrock.put-resource-policy-malformed-policy-document-rejected", "deployments": [], "key": "bedrock/put-resource-policy-malformed-policy-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:DeleteResourcePolicy", "bedrock:GetGuardrail", "bedrock:GetResourcePolicy", "bedrock:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_put_resource_policy_malformed_policy_document_rejected.py", "service": "bedrock"} {"check_id": "bedrock.put-use-case-for-model-access-server-recorded", "deployments": [], "key": "bedrock/put-use-case-for-model-access-server-recorded", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:GetUseCaseForModelAccess", "bedrock:ListFoundationModels", "bedrock:PutUseCaseForModelAccess"], "path": "behavioral/bedrock/check_put_use_case_for_model_access_server_recorded.py", "service": "bedrock"} {"check_id": "bedrock.register-marketplace-endpoint-invalid-arn-rejected", "deployments": [], "key": "bedrock/register-marketplace-endpoint-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:ListMarketplaceModelEndpoints", "bedrock:RegisterMarketplaceModelEndpoint", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_register_marketplace_endpoint_invalid_arn_rejected.py", "service": "bedrock"} {"check_id": "bedrock.resource-policy-cross-account-access-enforced-denied", "deployments": [], "key": "bedrock/resource-policy-cross-account-access-enforced-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:DeleteResourcePolicy", "bedrock:GetGuardrail", "bedrock:GetResourcePolicy", "bedrock:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_resource_policy_cross_account_access_enforced_denied.py", "service": "bedrock"} {"check_id": "bedrock.resource-policy-json-round-trip-byte-equal", "deployments": [], "key": "bedrock/resource-policy-json-round-trip-byte-equal", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:GetResourcePolicy", "bedrock:PutResourcePolicy"], "path": "behavioral/bedrock/check_resource_policy_json_round_trip_byte_equal.py", "service": "bedrock"} {"check_id": "bedrock.resource-policy-put-get-delete-enforced", "deployments": [], "key": "bedrock/resource-policy-put-get-delete-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:DeleteResourcePolicy", "bedrock:GetGuardrail", "bedrock:GetResourcePolicy", "bedrock:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_resource_policy_put_get_delete_enforced.py", "service": "bedrock"} {"check_id": "bedrock.start-test-workflow-resource-in-use-blocked", "deployments": [], "key": "bedrock/start-test-workflow-resource-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CancelAutomatedReasoningPolicyBuildWorkflow", "bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:CreateAutomatedReasoningPolicyVersion", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicyTestCase", "bedrock:ListAutomatedReasoningPolicyBuildWorkflows", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow", "bedrock:StartAutomatedReasoningPolicyTestWorkflow"], "path": "behavioral/bedrock/check_start_test_workflow_resource_in_use_blocked.py", "service": "bedrock"} {"check_id": "bedrock.start-test-workflow-while-build-in-progress-blocked", "deployments": [], "key": "bedrock/start-test-workflow-while-build-in-progress-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CancelAutomatedReasoningPolicyBuildWorkflow", "bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicyTestCase", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow", "bedrock:StartAutomatedReasoningPolicyTestWorkflow"], "path": "behavioral/bedrock/check_start_test_workflow_while_build_in_progress_blocked.py", "service": "bedrock"} {"check_id": "bedrock.start-test-workflow-while-in-use-rejected", "deployments": [], "key": "bedrock/start-test-workflow-while-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyTestCase", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyBuildWorkflow", "bedrock:GetAutomatedReasoningPolicyTestCase", "bedrock:GetAutomatedReasoningPolicyTestResult", "bedrock:StartAutomatedReasoningPolicyBuildWorkflow", "bedrock:StartAutomatedReasoningPolicyTestWorkflow"], "path": "behavioral/bedrock/check_start_test_workflow_while_in_use_rejected.py", "service": "bedrock"} {"check_id": "bedrock.stop-evaluation-job-already-stopped-conflict-rejected", "deployments": [], "key": "bedrock/stop-evaluation-job-already-stopped-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateEvaluationJob", "bedrock:GetEvaluationJob", "bedrock:ListFoundationModels", "bedrock:StopEvaluationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock/check_stop_evaluation_job_already_stopped_conflict_rejected.py", "service": "bedrock"} {"check_id": "bedrock.stop-evaluation-job-already-stopped-rejected", "deployments": [], "key": "bedrock/stop-evaluation-job-already-stopped-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateEvaluationJob", "bedrock:GetEvaluationJob", "bedrock:ListFoundationModels", "bedrock:StopEvaluationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock/check_stop_evaluation_job_already_stopped_rejected.py", "service": "bedrock"} {"check_id": "bedrock.stop-terminated-evaluation-job-rejected", "deployments": [], "key": "bedrock/stop-terminated-evaluation-job-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateEvaluationJob", "bedrock:GetEvaluationJob", "bedrock:ListFoundationModels", "bedrock:StopEvaluationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/bedrock/check_stop_terminated_evaluation_job_rejected.py", "service": "bedrock"} {"check_id": "bedrock.stop-terminated-model-customization-job-is-an-idempotent-no-op", "deployments": [], "key": "bedrock/stop-terminated-model-customization-job-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelCustomizationJob", "bedrock:GetModelCustomizationJob", "bedrock:ListFoundationModels", "bedrock:StopModelCustomizationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/bedrock/check_stop_terminated_model_customization_job_is_an_idempotent_no_op.py", "service": "bedrock"} {"check_id": "bedrock.stop-terminated-model-invocation-job-is-an-idempotent-no-op", "deployments": [], "key": "bedrock/stop-terminated-model-invocation-job-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelInvocationJob", "bedrock:GetModelInvocationJob", "bedrock:ListFoundationModels", "bedrock:StopModelInvocationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_stop_terminated_model_invocation_job_is_an_idempotent_no_op.py", "service": "bedrock"} {"check_id": "bedrock.streaming-collects-full-response", "deployments": [], "key": "bedrock/streaming-collects-full-response", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock-runtime:ConverseStream"], "path": "behavioral/bedrock/check_streaming_collects_full_response.py", "service": "bedrock"} {"check_id": "bedrock.tag-resource-exceeds-tag-limit-rejected", "deployments": [], "key": "bedrock/tag-resource-exceeds-tag-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "bedrock:ListTagsForResource", "bedrock:TagResource"], "path": "behavioral/bedrock/check_tag_resource_exceeds_tag_limit_rejected.py", "service": "bedrock"} {"check_id": "bedrock.tag-resource-quota-exceeded-rejected", "deployments": [], "key": "bedrock/tag-resource-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:ListTagsForResource", "bedrock:TagResource"], "path": "behavioral/bedrock/check_tag_resource_quota_exceeded_rejected.py", "service": "bedrock"} {"check_id": "bedrock.tag-value-unicode-round-trip", "deployments": [], "key": "bedrock/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:ListTagsForResource", "bedrock:TagResource"], "path": "behavioral/bedrock/check_tag_value_unicode_round_trip.py", "service": "bedrock"} {"check_id": "bedrock.timestamp-precision-preserved-model-customization-job", "deployments": [], "key": "bedrock/timestamp-precision-preserved-model-customization-job", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:CreateModelCustomizationJob", "bedrock:GetModelCustomizationJob", "bedrock:ListFoundationModels", "bedrock:StopModelCustomizationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/bedrock/check_timestamp_precision_preserved_model_customization_job.py", "service": "bedrock"} {"check_id": "bedrock.tool-use-converse", "deployments": [], "key": "bedrock/tool-use-converse", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse"], "path": "behavioral/bedrock/check_tool_use_converse.py", "service": "bedrock"} {"check_id": "bedrock.update-automated-reasoning-policy-stale-version-rejected", "deployments": [], "key": "bedrock/update-automated-reasoning-policy-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateAutomatedReasoningPolicy", "bedrock:CreateAutomatedReasoningPolicyVersion", "bedrock:DeleteAutomatedReasoningPolicy", "bedrock:GetAutomatedReasoningPolicy", "bedrock:UpdateAutomatedReasoningPolicy"], "path": "behavioral/bedrock/check_update_automated_reasoning_policy_stale_version_rejected.py", "service": "bedrock"} {"check_id": "bedrock.update-nonexistent-marketplace-endpoint-rejected", "deployments": [], "key": "bedrock/update-nonexistent-marketplace-endpoint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:DeleteGuardrail", "bedrock:GetMarketplaceModelEndpoint", "bedrock:ListMarketplaceModelEndpoints", "bedrock:UpdateMarketplaceModelEndpoint", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/bedrock/check_update_nonexistent_marketplace_endpoint_rejected.py", "service": "bedrock"} {"check_id": "bedrock.update-provisioned-throughput-concurrent-race-one-wins", "deployments": [], "key": "bedrock/update-provisioned-throughput-concurrent-race-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateProvisionedModelThroughput", "bedrock:DeleteProvisionedModelThroughput", "bedrock:ListProvisionedModelThroughputs"], "path": "behavioral/bedrock/check_update_provisioned_throughput_concurrent_race_one_wins.py", "service": "bedrock"} {"check_id": "bedrock.use-case-for-model-access-put-get-roundtrip", "deployments": [], "key": "bedrock/use-case-for-model-access-put-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetUseCaseForModelAccess", "bedrock:ListFoundationModels", "bedrock:PutUseCaseForModelAccess"], "path": "behavioral/bedrock/check_use_case_for_model_access_put_get_roundtrip.py", "service": "bedrock"} {"check_id": "bedrock__bedrock-runtime.bedrock-runtime-apply-guardrail-without-the-grounding-source-rejected", "deployments": [], "key": "bedrock__bedrock-runtime/bedrock-runtime-apply-guardrail-without-the-grounding-source-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock__bedrock-runtime/check_bedrock_runtime_apply_guardrail_without_the_grounding_source_rejected.py", "service": "bedrock__bedrock-runtime"} {"check_id": "bedrock__bedrock-runtime.bedrock-runtime-converse-with-a-deleted-guardrail-rejected", "deployments": [], "key": "bedrock__bedrock-runtime/bedrock-runtime-converse-with-a-deleted-guardrail-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock__bedrock-runtime/check_bedrock_runtime_converse_with_a_deleted_guardrail_rejected.py", "service": "bedrock__bedrock-runtime"} {"check_id": "bedrock__bedrock-runtime.bedrock-runtime-guardrail-blocks-the-model-output-after-generation", "deployments": [], "key": "bedrock__bedrock-runtime/bedrock-runtime-guardrail-blocks-the-model-output-after-generation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock__bedrock-runtime/check_bedrock_runtime_guardrail_blocks_the_model_output_after_generation.py", "service": "bedrock__bedrock-runtime"} {"check_id": "bedrock__bedrock-runtime.bedrock-runtime-guardrail-contextual-grounding-scores-the-answer-against-the-source", "deployments": [], "key": "bedrock__bedrock-runtime/bedrock-runtime-guardrail-contextual-grounding-scores-the-answer-against-the-source", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["bedrock-runtime:ApplyGuardrail", "bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail"], "path": "behavioral/bedrock__bedrock-runtime/check_bedrock_runtime_guardrail_contextual_grounding_scores_the_answer_against_the_source.py", "service": "bedrock__bedrock-runtime"} {"check_id": "bedrock__cloudformation.deploy-bedrock-automated-reasoning-policy-and-version-round-trip-and-delete", "deployments": [], "key": "bedrock__cloudformation/deploy-bedrock-automated-reasoning-policy-and-version-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:ExportAutomatedReasoningPolicyVersion", "bedrock:GetAutomatedReasoningPolicy", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/bedrock__cloudformation/check_deploy_bedrock_automated_reasoning_policy_and_version_round_trip_and_delete.py", "service": "bedrock__cloudformation"} {"check_id": "bedrock__cloudformation.deploy-bedrock-automated-reasoning-policy-invalid-variable-type-rejected-and-rolled-back", "deployments": [], "key": "bedrock__cloudformation/deploy-bedrock-automated-reasoning-policy-invalid-variable-type-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:ExportAutomatedReasoningPolicyVersion", "bedrock:GetAutomatedReasoningPolicy", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock__cloudformation/check_deploy_bedrock_automated_reasoning_policy_invalid_variable_type_rejected_and_rolled_back.py", "service": "bedrock__cloudformation"} {"check_id": "bedrock__cloudformation.deploy-enforced-guardrail-configuration-cfn-lifecycle", "deployments": [], "key": "bedrock__cloudformation/deploy-enforced-guardrail-configuration-cfn-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetGuardrail", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock__cloudformation/check_deploy_enforced_guardrail_configuration_cfn_lifecycle.py", "service": "bedrock__cloudformation"} {"check_id": "bedrock__cloudformation.deploy-enforced-guardrail-configuration-cfn-rejects-unknown-guardrail", "deployments": [], "key": "bedrock__cloudformation/deploy-enforced-guardrail-configuration-cfn-rejects-unknown-guardrail", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:CreateGuardrail", "bedrock:CreateGuardrailVersion", "bedrock:DeleteGuardrail", "bedrock:GetGuardrail", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock__cloudformation/check_deploy_enforced_guardrail_configuration_cfn_rejects_unknown_guardrail.py", "service": "bedrock__cloudformation"} {"check_id": "bedrock__cloudformation.deploy-guardrail-version-resource-policy-cfn-lifecycle", "deployments": [], "key": "bedrock__cloudformation/deploy-guardrail-version-resource-policy-cfn-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetGuardrail", "bedrock:GetResourcePolicy", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/bedrock__cloudformation/check_deploy_guardrail_version_resource_policy_cfn_lifecycle.py", "service": "bedrock__cloudformation"} {"check_id": "bedrock__cloudformation.deploy-intelligent-prompt-router-response-quality-difference-rejected", "deployments": [], "key": "bedrock__cloudformation/deploy-intelligent-prompt-router-response-quality-difference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["bedrock:GetPromptRouter", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock__cloudformation/check_deploy_intelligent_prompt_router_response_quality_difference_rejected.py", "service": "bedrock__cloudformation"} {"check_id": "bedrock__cloudformation.deploy-intelligent-prompt-router-round-trip-then-delete", "deployments": [], "key": "bedrock__cloudformation/deploy-intelligent-prompt-router-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["bedrock:GetPromptRouter", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/bedrock__cloudformation/check_deploy_intelligent_prompt_router_round_trip_then_delete.py", "service": "bedrock__cloudformation"} {"check_id": "bedrock__cloudwatch.bedrock-invocation-publishes-token-metrics-to-cloudwatch", "deployments": [], "key": "bedrock__cloudwatch/bedrock-invocation-publishes-token-metrics-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["bedrock-runtime:Converse", "bedrock:GetFoundationModel", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"], "path": "behavioral/bedrock__cloudwatch/check_bedrock_invocation_publishes_token_metrics_to_cloudwatch.py", "service": "bedrock__cloudwatch"} {"check_id": "bedrock__logs.model-invocation-log-event-shape-at-cloudwatch-logs", "deployments": [], "key": "bedrock__logs/model-invocation-log-event-shape-at-cloudwatch-logs", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["bedrock-runtime:Converse", "bedrock:DeleteModelInvocationLoggingConfiguration", "bedrock:GetModelInvocationLoggingConfiguration", "bedrock:PutModelInvocationLoggingConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/bedrock__logs/check_model_invocation_log_event_shape_at_cloudwatch_logs.py", "service": "bedrock__logs"} {"check_id": "billing.associate-source-views-on-primary-view-rejected", "deployments": [], "key": "billing/associate-source-views-on-primary-view-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:AssociateSourceViews", "billing:GetBillingView", "billing:ListBillingViews"], "path": "behavioral/billing/check_associate_source_views_on_primary_view_rejected.py", "service": "billing"} {"check_id": "billing.create-billing-view-non-management-account-deterministic-rejection", "deployments": [], "key": "billing/create-billing-view-non-management-account-deterministic-rejection", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:CreateBillingView", "billing:DeleteBillingView", "billing:ListBillingViews"], "path": "behavioral/billing/check_create_billing_view_non_management_account_deterministic_rejection.py", "service": "billing"} {"check_id": "billing.delete-billing-view-primary-rejected", "deployments": [], "key": "billing/delete-billing-view-primary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:DeleteBillingView", "billing:GetBillingView", "billing:ListBillingViews"], "path": "behavioral/billing/check_delete_billing_view_primary_rejected.py", "service": "billing"} {"check_id": "billing.disassociate-source-views-from-primary-view-rejected", "deployments": [], "key": "billing/disassociate-source-views-from-primary-view-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:DisassociateSourceViews", "billing:GetBillingView", "billing:ListBillingViews", "billing:ListSourceViewsForBillingView", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_disassociate_source_views_from_primary_view_rejected.py", "service": "billing"} {"check_id": "billing.get-billing-preferences-access-denied-without-billing-access", "deployments": [], "key": "billing/get-billing-preferences-access-denied-without-billing-access", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:GetBillingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_get_billing_preferences_access_denied_without_billing_access.py", "service": "billing"} {"check_id": "billing.get-billing-view-cross-account-arn-access-denied-rejected", "deployments": [], "key": "billing/get-billing-view-cross-account-arn-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:GetBillingView", "billing:ListBillingViews", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_get_billing_view_cross_account_arn_access_denied_rejected.py", "service": "billing"} {"check_id": "billing.get-billing-view-invalid-arn-pattern-rejected", "deployments": [], "key": "billing/get-billing-view-invalid-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:GetBillingView", "billing:ListBillingViews"], "path": "behavioral/billing/check_get_billing_view_invalid_arn_pattern_rejected.py", "service": "billing"} {"check_id": "billing.get-credit-allocation-history-returns-list-for-own-account", "deployments": [], "key": "billing/get-credit-allocation-history-returns-list-for-own-account", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["billing:GetCreditAllocationHistory", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_get_credit_allocation_history_returns_list_for_own_account.py", "service": "billing"} {"check_id": "billing.get-credits-returns-list-for-own-account", "deployments": [], "key": "billing/get-credits-returns-list-for-own-account", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["billing:GetCredits", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_get_credits_returns_list_for_own_account.py", "service": "billing"} {"check_id": "billing.get-enterprise-support-charge-summary-malformed-month-rejected", "deployments": [], "key": "billing/get-enterprise-support-charge-summary-malformed-month-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:GetEnterpriseSupportChargeSummary"], "path": "behavioral/billing/check_get_enterprise_support_charge_summary_malformed_month_rejected.py", "service": "billing"} {"check_id": "billing.get-resource-policy-not-found-when-unshared", "deployments": [], "key": "billing/get-resource-policy-not-found-when-unshared", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:GetBillingView", "billing:GetResourcePolicy", "billing:ListBillingViews"], "path": "behavioral/billing/check_get_resource_policy_not_found_when_unshared.py", "service": "billing"} {"check_id": "billing.list-billing-views-by-type-excludes-primary", "deployments": [], "key": "billing/list-billing-views-by-type-excludes-primary", "labels": ["axis:happy-path", "plane:control"], "operations": ["billing:ListBillingViews"], "path": "behavioral/billing/check_list_billing_views_by_type_excludes_primary.py", "service": "billing"} {"check_id": "billing.list-billing-views-filters-by-arn", "deployments": [], "key": "billing/list-billing-views-filters-by-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["billing:ListBillingViews", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_list_billing_views_filters_by_arn.py", "service": "billing"} {"check_id": "billing.list-billing-views-max-results-out-of-range-rejected", "deployments": [], "key": "billing/list-billing-views-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:ListBillingViews"], "path": "behavioral/billing/check_list_billing_views_max_results_out_of_range_rejected.py", "service": "billing"} {"check_id": "billing.list-source-views-for-nonexistent-billing-view-rejected", "deployments": [], "key": "billing/list-source-views-for-nonexistent-billing-view-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:ListBillingViews", "billing:ListSourceViewsForBillingView", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_list_source_views_for_nonexistent_billing_view_rejected.py", "service": "billing"} {"check_id": "billing.primary-billing-view-always-present-and-healthy", "deployments": [], "key": "billing/primary-billing-view-always-present-and-healthy", "labels": ["axis:happy-path", "plane:control"], "operations": ["billing:GetBillingView", "billing:ListBillingViews", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_primary_billing_view_always_present_and_healthy.py", "service": "billing"} {"check_id": "billing.tag-resource-managed-billing-view-rejected", "deployments": [], "key": "billing/tag-resource-managed-billing-view-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:ListBillingViews", "billing:ListTagsForResource", "billing:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_tag_resource_managed_billing_view_rejected.py", "service": "billing"} {"check_id": "billing.update-billing-preferences-access-denied-rejected", "deployments": [], "key": "billing/update-billing-preferences-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:GetBillingPreferences", "billing:UpdateBillingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_update_billing_preferences_access_denied_rejected.py", "service": "billing"} {"check_id": "billing.update-billing-view-nonexistent-arn-rejected", "deployments": [], "key": "billing/update-billing-view-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["billing:GetBillingView", "billing:ListBillingViews", "billing:UpdateBillingView", "sts:GetCallerIdentity"], "path": "behavioral/billing/check_update_billing_view_nonexistent_arn_rejected.py", "service": "billing"} {"check_id": "billingconductor.associate-and-disassociate-pricing-rules-require-payer-account", "deployments": [], "key": "billingconductor/associate-and-disassociate-pricing-rules-require-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:AssociatePricingRules", "billingconductor:DisassociatePricingRules", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_associate_and_disassociate_pricing_rules_require_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.batch-associate-and-disassociate-resources-require-payer-account", "deployments": [], "key": "billingconductor/batch-associate-and-disassociate-resources-require-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:BatchAssociateResourcesToCustomLineItem", "billingconductor:BatchDisassociateResourcesFromCustomLineItem", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_batch_associate_and_disassociate_resources_require_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.billing-group-cost-report-ops-require-payer-account", "deployments": [], "key": "billingconductor/billing-group-cost-report-ops-require-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:GetBillingGroupCostReport", "billingconductor:ListBillingGroupCostReports", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_billing_group_cost_report_ops_require_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.create-billing-group-invalid-input-still-payer-gated", "deployments": [], "key": "billingconductor/create-billing-group-invalid-input-still-payer-gated", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:CreateBillingGroup", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_create_billing_group_invalid_input_still_payer_gated.py", "service": "billingconductor"} {"check_id": "billingconductor.create-billing-group-requires-payer-account", "deployments": [], "key": "billingconductor/create-billing-group-requires-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:CreateBillingGroup", "billingconductor:DeleteBillingGroup", "billingconductor:ListBillingGroups", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_create_billing_group_requires_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.create-custom-line-item-requires-payer-account", "deployments": [], "key": "billingconductor/create-custom-line-item-requires-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:CreateCustomLineItem", "billingconductor:ListCustomLineItems", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_create_custom_line_item_requires_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.create-pricing-plan-nonexistent-pricing-rule-arns-still-payer-gated", "deployments": [], "key": "billingconductor/create-pricing-plan-nonexistent-pricing-rule-arns-still-payer-gated", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:CreatePricingPlan", "billingconductor:DeletePricingPlan", "billingconductor:ListPricingPlans", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_create_pricing_plan_nonexistent_pricing_rule_arns_still_payer_gated.py", "service": "billingconductor"} {"check_id": "billingconductor.create-pricing-rule-client-token-reuse-still-payer-gated", "deployments": [], "key": "billingconductor/create-pricing-rule-client-token-reuse-still-payer-gated", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:CreatePricingRule", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_create_pricing_rule_client_token_reuse_still_payer_gated.py", "service": "billingconductor"} {"check_id": "billingconductor.create-pricing-rule-concurrent-denial-consistency", "deployments": [], "key": "billingconductor/create-pricing-rule-concurrent-denial-consistency", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:CreatePricingRule", "billingconductor:DeletePricingRule", "billingconductor:ListPricingRules", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_create_pricing_rule_concurrent_denial_consistency.py", "service": "billingconductor"} {"check_id": "billingconductor.create-pricing-rule-requires-payer-account", "deployments": [], "key": "billingconductor/create-pricing-rule-requires-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:CreatePricingRule", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_create_pricing_rule_requires_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.delete-operations-require-payer-account", "deployments": [], "key": "billingconductor/delete-operations-require-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:DeleteBillingGroup", "billingconductor:DeleteCustomLineItem", "billingconductor:DeletePricingPlan", "billingconductor:DeletePricingRule", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_delete_operations_require_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.disassociate-accounts-requires-payer-account", "deployments": [], "key": "billingconductor/disassociate-accounts-requires-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:DisassociateAccounts", "billingconductor:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_disassociate_accounts_requires_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.list-and-associated-resource-read-ops-require-payer-account", "deployments": [], "key": "billingconductor/list-and-associated-resource-read-ops-require-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:ListCustomLineItemVersions", "billingconductor:ListCustomLineItems", "billingconductor:ListResourcesAssociatedToCustomLineItem", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_list_and_associated_resource_read_ops_require_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.list-billing-groups-rules-and-account-associations-require-payer-account", "deployments": [], "key": "billingconductor/list-billing-groups-rules-and-account-associations-require-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:ListAccountAssociations", "billingconductor:ListBillingGroups", "billingconductor:ListPricingRules", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_list_billing_groups_rules_and_account_associations_require_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.pricing-rule-plan-bidirectional-listing-requires-payer-account", "deployments": [], "key": "billingconductor/pricing-rule-plan-bidirectional-listing-requires-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:ListPricingPlansAssociatedWithPricingRule", "billingconductor:ListPricingRulesAssociatedToPricingPlan", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_pricing_rule_plan_bidirectional_listing_requires_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.tag-operations-nonexistent-resource-not-found", "deployments": [], "key": "billingconductor/tag-operations-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:ListTagsForResource", "billingconductor:TagResource", "billingconductor:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_tag_operations_nonexistent_resource_not_found.py", "service": "billingconductor"} {"check_id": "billingconductor.update-operations-require-payer-account", "deployments": [], "key": "billingconductor/update-operations-require-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:UpdateBillingGroup", "billingconductor:UpdateCustomLineItem", "billingconductor:UpdatePricingRule", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_update_operations_require_payer_account.py", "service": "billingconductor"} {"check_id": "billingconductor.update-pricing-plan-and-list-pricing-plans-require-payer-account", "deployments": [], "key": "billingconductor/update-pricing-plan-and-list-pricing-plans-require-payer-account", "labels": ["axis:rejection", "plane:control"], "operations": ["billingconductor:ListPricingPlans", "billingconductor:TagResource", "billingconductor:UpdatePricingPlan", "sts:GetCallerIdentity"], "path": "behavioral/billingconductor/check_update_pricing_plan_and_list_pricing_plans_require_payer_account.py", "service": "billingconductor"} {"check_id": "braket.braket-cancel-quantum-task-after-completion-conflict-rejected", "deployments": [], "key": "braket/braket-cancel-quantum-task-after-completion-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["braket:CancelQuantumTask", "braket:CreateQuantumTask", "braket:GetDevice", "braket:GetQuantumTask", "iam:CreateServiceLinkedRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/braket/check_braket_cancel_quantum_task_after_completion_conflict_rejected.py", "service": "braket"} {"check_id": "braket.braket-create-job-invalid-job-name-pattern-rejected", "deployments": [], "key": "braket/braket-create-job-invalid-job-name-pattern-rejected", "labels": ["axis:rejection", "dp:native", "plane:control", "plane:data"], "operations": ["braket:CancelJob", "braket:CreateJob", "braket:GetJob", "ecr:CreateRepository", "ecr:DeleteRepository", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/braket/check_braket_create_job_invalid_job_name_pattern_rejected.py", "service": "braket"} {"check_id": "braket.braket-create-quantum-task-invalid-input-rejected", "deployments": [], "key": "braket/braket-create-quantum-task-invalid-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["braket:CancelQuantumTask", "braket:CreateQuantumTask", "braket:GetDevice", "iam:CreateServiceLinkedRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/braket/check_braket_create_quantum_task_invalid_input_rejected.py", "service": "braket"} {"check_id": "braket.braket-create-spending-limit-idempotency-under-concurrent-retries", "deployments": [], "key": "braket/braket-create-spending-limit-idempotency-under-concurrent-retries", "labels": ["axis:rejection", "plane:control"], "operations": ["braket:CreateSpendingLimit", "braket:SearchSpendingLimits"], "path": "behavioral/braket/check_braket_create_spending_limit_idempotency_under_concurrent_retries.py", "service": "braket"} {"check_id": "braket.braket-create-spending-limit-time-period-round-trips-exactly", "deployments": [], "key": "braket/braket-create-spending-limit-time-period-round-trips-exactly", "labels": ["axis:happy-path", "plane:control"], "operations": ["braket:CreateSpendingLimit", "braket:DeleteSpendingLimit", "braket:SearchSpendingLimits"], "path": "behavioral/braket/check_braket_create_spending_limit_time_period_round_trips_exactly.py", "service": "braket"} {"check_id": "braket.braket-get-device-returns-sv1-capabilities", "deployments": [], "key": "braket/braket-get-device-returns-sv1-capabilities", "labels": ["axis:happy-path", "plane:control"], "operations": ["braket:GetDevice"], "path": "behavioral/braket/check_braket_get_device_returns_sv1_capabilities.py", "service": "braket"} {"check_id": "braket.braket-malformed-job-arn-returns-validation-not-not-found", "deployments": [], "key": "braket/braket-malformed-job-arn-returns-validation-not-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["braket:GetJob", "sts:GetCallerIdentity"], "path": "behavioral/braket/check_braket_malformed_job_arn_returns_validation_not_not_found.py", "service": "braket"} {"check_id": "braket.braket-quantum-task-bell-circuit-completes-with-correct-measurement-counts", "deployments": [], "key": "braket/braket-quantum-task-bell-circuit-completes-with-correct-measurement-counts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["braket:CancelQuantumTask", "braket:CreateQuantumTask", "braket:GetDevice", "braket:GetQuantumTask", "braket:ListTagsForResource", "braket:SearchQuantumTasks", "iam:CreateServiceLinkedRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/braket/check_braket_quantum_task_bell_circuit_completes_with_correct_measurement_counts.py", "service": "braket"} {"check_id": "braket.braket-resource-not-found-error-semantics-consistent", "deployments": [], "key": "braket/braket-resource-not-found-error-semantics-consistent", "labels": ["axis:rejection", "plane:control"], "operations": ["braket:CancelJob", "braket:CancelQuantumTask", "braket:DeleteSpendingLimit", "braket:GetDevice", "braket:GetJob", "braket:GetQuantumTask", "braket:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/braket/check_braket_resource_not_found_error_semantics_consistent.py", "service": "braket"} {"check_id": "braket.braket-search-devices-filters-by-device-arn", "deployments": [], "key": "braket/braket-search-devices-filters-by-device-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["braket:SearchDevices"], "path": "behavioral/braket/check_braket_search_devices_filters_by_device_arn.py", "service": "braket"} {"check_id": "braket.braket-search-devices-invalid-filter-name-rejected", "deployments": [], "key": "braket/braket-search-devices-invalid-filter-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["braket:SearchDevices"], "path": "behavioral/braket/check_braket_search_devices_invalid_filter_name_rejected.py", "service": "braket"} {"check_id": "braket.braket-search-devices-no-filters-lists-catalog", "deployments": [], "key": "braket/braket-search-devices-no-filters-lists-catalog", "labels": ["axis:happy-path", "plane:control"], "operations": ["braket:SearchDevices"], "path": "behavioral/braket/check_braket_search_devices_no_filters_lists_catalog.py", "service": "braket"} {"check_id": "braket.braket-search-jobs-and-quantum-tasks-no-match-returns-empty-list", "deployments": [], "key": "braket/braket-search-jobs-and-quantum-tasks-no-match-returns-empty-list", "labels": ["axis:happy-path", "dp:native", "plane:control", "plane:data"], "operations": ["braket:CancelJob", "braket:CancelQuantumTask", "braket:CreateJob", "braket:CreateQuantumTask", "braket:GetJob", "braket:GetQuantumTask", "braket:SearchJobs", "braket:SearchQuantumTasks", "ecr:CreateRepository", "ecr:DeleteRepository", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/braket/check_braket_search_jobs_and_quantum_tasks_no_match_returns_empty_list.py", "service": "braket"} {"check_id": "braket.braket-spending-limit-lifecycle-create-search-update-delete", "deployments": [], "key": "braket/braket-spending-limit-lifecycle-create-search-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["braket:CreateSpendingLimit", "braket:DeleteSpendingLimit", "braket:ListTagsForResource", "braket:SearchSpendingLimits", "braket:UpdateSpendingLimit"], "path": "behavioral/braket/check_braket_spending_limit_lifecycle_create_search_update_delete.py", "service": "braket"} {"check_id": "braket.braket-tag-and-untag-resource-lifecycle", "deployments": [], "key": "braket/braket-tag-and-untag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["braket:CreateSpendingLimit", "braket:DeleteSpendingLimit", "braket:ListTagsForResource", "braket:TagResource", "braket:UntagResource"], "path": "behavioral/braket/check_braket_tag_and_untag_resource_lifecycle.py", "service": "braket"} {"check_id": "braket.braket-update-spending-limit-invalid-amount-pattern-rejected", "deployments": [], "key": "braket/braket-update-spending-limit-invalid-amount-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["braket:CreateSpendingLimit", "braket:DeleteSpendingLimit", "braket:SearchDevices", "braket:SearchSpendingLimits", "braket:UpdateSpendingLimit"], "path": "behavioral/braket/check_braket_update_spending_limit_invalid_amount_pattern_rejected.py", "service": "braket"} {"check_id": "braket__cloudformation.deploy-braket-spendinglimit-round-trip-and-delete", "deployments": [], "key": "braket__cloudformation/deploy-braket-spendinglimit-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/braket__cloudformation/check_deploy_braket_spendinglimit_round_trip_and_delete.py", "service": "braket__cloudformation"} {"check_id": "braket__cloudformation.deploy-braket-spendinglimit-simulator-device-rejected", "deployments": [], "key": "braket__cloudformation/deploy-braket-spendinglimit-simulator-device-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/braket__cloudformation/check_deploy_braket_spendinglimit_simulator_device_rejected.py", "service": "braket__cloudformation"} {"check_id": "budgets.concurrent-create-budget-same-name-single-winner", "deployments": [], "key": "budgets/concurrent-create-budget-same-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:DescribeBudget", "budgets:DescribeBudgets", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_concurrent_create_budget_same_name_single_winner.py", "service": "budgets"} {"check_id": "budgets.create-budget-action-invalid-execution-role-rejected", "deployments": [], "key": "budgets/create-budget-action-invalid-execution-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateBudgetAction", "budgets:DeleteBudget", "budgets:DeleteBudgetAction", "budgets:DescribeBudgetAction", "budgets:DescribeBudgetActionsForBudget", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_budget_action_invalid_execution_role_rejected.py", "service": "budgets"} {"check_id": "budgets.create-budget-action-starts-standby", "deployments": [], "key": "budgets/create-budget-action-starts-standby", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateBudgetAction", "budgets:DeleteBudget", "budgets:DeleteBudgetAction", "budgets:DescribeBudgetAction", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_budget_action_starts_standby.py", "service": "budgets"} {"check_id": "budgets.create-budget-duplicate-name-rejected", "deployments": [], "key": "budgets/create-budget-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:DescribeBudget", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_budget_duplicate_name_rejected.py", "service": "budgets"} {"check_id": "budgets.create-budget-invalid-time-period-rejected", "deployments": [], "key": "budgets/create-budget-invalid-time-period-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:DescribeBudget", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_budget_invalid_time_period_rejected.py", "service": "budgets"} {"check_id": "budgets.create-budget-limit-and-planned-conflict-rejected", "deployments": [], "key": "budgets/create-budget-limit-and-planned-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:DescribeBudget", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_budget_limit_and_planned_conflict_rejected.py", "service": "budgets"} {"check_id": "budgets.create-budget-with-tags-at-creation", "deployments": [], "key": "budgets/create-budget-with-tags-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_budget_with_tags_at_creation.py", "service": "budgets"} {"check_id": "budgets.create-describe-budget-fields-roundtrip", "deployments": [], "key": "budgets/create-describe-budget-fields-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:DescribeBudget", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_describe_budget_fields_roundtrip.py", "service": "budgets"} {"check_id": "budgets.create-notification-and-subscriber-roundtrip", "deployments": [], "key": "budgets/create-notification-and-subscriber-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateNotification", "budgets:CreateSubscriber", "budgets:DeleteBudget", "budgets:DescribeNotificationsForBudget", "budgets:DescribeSubscribersForNotification", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_notification_and_subscriber_roundtrip.py", "service": "budgets"} {"check_id": "budgets.create-notification-quota-exceeded-rejected", "deployments": [], "key": "budgets/create-notification-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateNotification", "budgets:CreateSubscriber", "budgets:DeleteBudget", "budgets:DeleteNotification", "budgets:DescribeNotificationsForBudget", "budgets:DescribeSubscribersForNotification", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_create_notification_quota_exceeded_rejected.py", "service": "budgets"} {"check_id": "budgets.delete-budget-action-removes-resource", "deployments": [], "key": "budgets/delete-budget-action-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateBudgetAction", "budgets:DeleteBudget", "budgets:DeleteBudgetAction", "budgets:DescribeBudgetAction", "budgets:ExecuteBudgetAction", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_delete_budget_action_removes_resource.py", "service": "budgets"} {"check_id": "budgets.delete-budget-cascades-notifications-and-subscribers", "deployments": [], "key": "budgets/delete-budget-cascades-notifications-and-subscribers", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateNotification", "budgets:DeleteBudget", "budgets:DescribeNotificationsForBudget", "budgets:DescribeSubscribersForNotification", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_delete_budget_cascades_notifications_and_subscribers.py", "service": "budgets"} {"check_id": "budgets.delete-budget-removes-resource", "deployments": [], "key": "budgets/delete-budget-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:DescribeBudget", "budgets:UpdateBudget", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_delete_budget_removes_resource.py", "service": "budgets"} {"check_id": "budgets.delete-last-subscriber-removes-notification", "deployments": [], "key": "budgets/delete-last-subscriber-removes-notification", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateNotification", "budgets:DeleteBudget", "budgets:DeleteSubscriber", "budgets:DescribeNotificationsForBudget", "budgets:DescribeSubscribersForNotification", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_delete_last_subscriber_removes_notification.py", "service": "budgets"} {"check_id": "budgets.delete-notification-cascades-subscribers", "deployments": [], "key": "budgets/delete-notification-cascades-subscribers", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateNotification", "budgets:DeleteBudget", "budgets:DeleteNotification", "budgets:DescribeNotificationsForBudget", "budgets:DescribeSubscribersForNotification", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_delete_notification_cascades_subscribers.py", "service": "budgets"} {"check_id": "budgets.delete-notification-removes-only-target", "deployments": [], "key": "budgets/delete-notification-removes-only-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateNotification", "budgets:DeleteBudget", "budgets:DeleteNotification", "budgets:DescribeNotificationsForBudget", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_delete_notification_removes_only_target.py", "service": "budgets"} {"check_id": "budgets.describe-budget-action-histories-logs-creation", "deployments": [], "key": "budgets/describe-budget-action-histories-logs-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateBudgetAction", "budgets:DeleteBudget", "budgets:DeleteBudgetAction", "budgets:DescribeBudgetActionHistories", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_describe_budget_action_histories_logs_creation.py", "service": "budgets"} {"check_id": "budgets.describe-budget-actions-for-account-and-budget-list-created-action", "deployments": [], "key": "budgets/describe-budget-actions-for-account-and-budget-list-created-action", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateBudgetAction", "budgets:DeleteBudget", "budgets:DeleteBudgetAction", "budgets:DescribeBudgetActionsForAccount", "budgets:DescribeBudgetActionsForBudget", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_describe_budget_actions_for_account_and_budget_list_created_action.py", "service": "budgets"} {"check_id": "budgets.describe-budget-notifications-for-account-lists-across-budgets", "deployments": [], "key": "budgets/describe-budget-notifications-for-account-lists-across-budgets", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateNotification", "budgets:DeleteBudget", "budgets:DescribeBudgetNotificationsForAccount", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_describe_budget_notifications_for_account_lists_across_budgets.py", "service": "budgets"} {"check_id": "budgets.execute-budget-action-wrong-state-rejected", "deployments": [], "key": "budgets/execute-budget-action-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateBudgetAction", "budgets:DeleteBudget", "budgets:DeleteBudgetAction", "budgets:DescribeBudgetAction", "budgets:ExecuteBudgetAction", "budgets:UpdateBudgetAction", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_execute_budget_action_wrong_state_rejected.py", "service": "budgets"} {"check_id": "budgets.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "budgets/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:ListTagsForResource", "budgets:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_tag_resource_and_list_tags_roundtrip.py", "service": "budgets"} {"check_id": "budgets.untag-resource-removes-tag", "deployments": [], "key": "budgets/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:ListTagsForResource", "budgets:TagResource", "budgets:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_untag_resource_removes_tag.py", "service": "budgets"} {"check_id": "budgets.update-budget-action-returns-old-and-new", "deployments": [], "key": "budgets/update-budget-action-returns-old-and-new", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateBudgetAction", "budgets:DeleteBudget", "budgets:DeleteBudgetAction", "budgets:DescribeBudgetAction", "budgets:UpdateBudgetAction", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_update_budget_action_returns_old_and_new.py", "service": "budgets"} {"check_id": "budgets.update-budget-persists-new-limit", "deployments": [], "key": "budgets/update-budget-persists-new-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:DeleteBudget", "budgets:DescribeBudget", "budgets:UpdateBudget", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_update_budget_persists_new_limit.py", "service": "budgets"} {"check_id": "budgets.update-subscriber-changes-address", "deployments": [], "key": "budgets/update-subscriber-changes-address", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:CreateBudget", "budgets:CreateNotification", "budgets:DeleteBudget", "budgets:DescribeSubscribersForNotification", "budgets:UpdateSubscriber", "sts:GetCallerIdentity"], "path": "behavioral/budgets/check_update_subscriber_changes_address.py", "service": "budgets"} {"check_id": "budgets__cloudformation.deploy-budgets-action-apply-iam-policy-lifecycle", "deployments": [], "key": "budgets__cloudformation/deploy-budgets-action-apply-iam-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:DescribeBudget", "budgets:DescribeBudgetAction", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/budgets__cloudformation/check_deploy_budgets_action_apply_iam_policy_lifecycle.py", "service": "budgets__cloudformation"} {"check_id": "budgets__cloudformation.deploy-budgets-budget-cost-lifecycle", "deployments": [], "key": "budgets__cloudformation/deploy-budgets-budget-cost-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["budgets:DescribeBudget", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/budgets__cloudformation/check_deploy_budgets_budget_cost_lifecycle.py", "service": "budgets__cloudformation"} {"check_id": "budgets__cloudformation.deploy-budgets-budget-invalid-time-period-rejected-rollback", "deployments": [], "key": "budgets__cloudformation/deploy-budgets-budget-invalid-time-period-rejected-rollback", "labels": ["axis:rejection", "plane:control"], "operations": ["budgets:DescribeBudget", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/budgets__cloudformation/check_deploy_budgets_budget_invalid_time_period_rejected_rollback.py", "service": "budgets__cloudformation"} {"check_id": "ce.anomaly-monitor-delete-orphans-subscription", "deployments": [], "key": "ce/anomaly-monitor-delete-orphans-subscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["ce:CreateAnomalyMonitor", "ce:CreateAnomalySubscription", "ce:DeleteAnomalyMonitor", "ce:DeleteAnomalySubscription", "ce:GetAnomalyMonitors", "ce:GetAnomalySubscriptions", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes"], "path": "behavioral/ce/check_anomaly_monitor_delete_orphans_subscription.py", "service": "ce"} {"check_id": "ce.anomaly-subscription-accepts-unreachable-sns", "deployments": [], "key": "ce/anomaly-subscription-accepts-unreachable-sns", "labels": ["axis:happy-path", "plane:control"], "operations": ["ce:CreateAnomalyMonitor", "ce:CreateAnomalySubscription", "ce:DeleteAnomalyMonitor", "ce:DeleteAnomalySubscription", "ce:GetAnomalySubscriptions", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes"], "path": "behavioral/ce/check_anomaly_subscription_accepts_unreachable_sns.py", "service": "ce"} {"check_id": "ce.anomaly-subscription-threshold-shorthand-expands", "deployments": [], "key": "ce/anomaly-subscription-threshold-shorthand-expands", "labels": ["axis:happy-path", "plane:control"], "operations": ["ce:CreateAnomalyMonitor", "ce:CreateAnomalySubscription", "ce:DeleteAnomalyMonitor", "ce:DeleteAnomalySubscription", "ce:GetAnomalySubscriptions", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes"], "path": "behavioral/ce/check_anomaly_subscription_threshold_shorthand_expands.py", "service": "ce"} {"check_id": "ce.tag-resource-scopes-tags-per-resource", "deployments": [], "key": "ce/tag-resource-scopes-tags-per-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["ce:CreateAnomalyMonitor", "ce:CreateAnomalySubscription", "ce:DeleteAnomalyMonitor", "ce:DeleteAnomalySubscription", "ce:ListTagsForResource", "ce:TagResource", "ce:UntagResource", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes"], "path": "behavioral/ce/check_tag_resource_scopes_tags_per_resource.py", "service": "ce"} {"check_id": "ce.update-anomaly-subscription-rejects-conflicting-threshold", "deployments": [], "key": "ce/update-anomaly-subscription-rejects-conflicting-threshold", "labels": ["axis:rejection", "plane:control"], "operations": ["ce:CreateAnomalyMonitor", "ce:CreateAnomalySubscription", "ce:DeleteAnomalyMonitor", "ce:DeleteAnomalySubscription", "ce:GetAnomalySubscriptions", "ce:UpdateAnomalySubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes"], "path": "behavioral/ce/check_update_anomaly_subscription_rejects_conflicting_threshold.py", "service": "ce"} {"check_id": "chatbot.account-preferences-update-get-roundtrip", "deployments": [], "key": "chatbot/account-preferences-update-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:GetAccountPreferences", "chatbot:UpdateAccountPreferences"], "path": "behavioral/chatbot/check_account_preferences_update_get_roundtrip.py", "service": "chatbot"} {"check_id": "chatbot.account-preferences-update-roundtrip", "deployments": [], "key": "chatbot/account-preferences-update-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:GetAccountPreferences", "chatbot:UpdateAccountPreferences"], "path": "behavioral/chatbot/check_account_preferences_update_roundtrip.py", "service": "chatbot"} {"check_id": "chatbot.associate-concurrent-unsupported-target-fails-atomically", "deployments": [], "key": "chatbot/associate-concurrent-unsupported-target-fails-atomically", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:AssociateToConfiguration", "chatbot:CreateChimeWebhookConfiguration", "chatbot:CreateCustomAction", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DeleteCustomAction", "chatbot:ListAssociations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_associate_concurrent_unsupported_target_fails_atomically.py", "service": "chatbot"} {"check_id": "chatbot.associate-to-unsupported-target-fails-without-partial-state", "deployments": [], "key": "chatbot/associate-to-unsupported-target-fails-without-partial-state", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:AssociateToConfiguration", "chatbot:CreateChimeWebhookConfiguration", "chatbot:CreateCustomAction", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction", "chatbot:ListAssociations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_associate_to_unsupported_target_fails_without_partial_state.py", "service": "chatbot"} {"check_id": "chatbot.associate-wrong-resource-type-rejected", "deployments": [], "key": "chatbot/associate-wrong-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:AssociateToConfiguration", "chatbot:CreateChimeWebhookConfiguration", "chatbot:CreateCustomAction", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction", "chatbot:ListAssociations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_associate_wrong_resource_type_rejected.py", "service": "chatbot"} {"check_id": "chatbot.chime-webhook-create-state-enabled", "deployments": [], "key": "chatbot/chime-webhook-create-state-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_chime_webhook_create_state_enabled.py", "service": "chatbot"} {"check_id": "chatbot.chime-webhook-delete-removes-resource", "deployments": [], "key": "chatbot/chime-webhook-delete-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_chime_webhook_delete_removes_resource.py", "service": "chatbot"} {"check_id": "chatbot.chime-webhook-duplicate-configuration-name-conflict-rejected", "deployments": [], "key": "chatbot/chime-webhook-duplicate-configuration-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_chime_webhook_duplicate_configuration_name_conflict_rejected.py", "service": "chatbot"} {"check_id": "chatbot.chime-webhook-invalid-url-pattern-rejected", "deployments": [], "key": "chatbot/chime-webhook-invalid-url-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_chime_webhook_invalid_url_pattern_rejected.py", "service": "chatbot"} {"check_id": "chatbot.chime-webhook-tags-at-creation-reflected", "deployments": [], "key": "chatbot/chime-webhook-tags-at-creation-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:ListTagsForResource", "chatbot:TagResource", "chatbot:UntagResource", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_chime_webhook_tags_at_creation_reflected.py", "service": "chatbot"} {"check_id": "chatbot.chime-webhook-update-description-persists", "deployments": [], "key": "chatbot/chime-webhook-update-description-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "chatbot:UpdateChimeWebhookConfiguration", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_chime_webhook_update_description_persists.py", "service": "chatbot"} {"check_id": "chatbot.chime-webhook-update-invalid-webhook-url-rejected-state-preserved", "deployments": [], "key": "chatbot/chime-webhook-update-invalid-webhook-url-rejected-state-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "chatbot:UpdateChimeWebhookConfiguration", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_chime_webhook_update_invalid_webhook_url_rejected_state_preserved.py", "service": "chatbot"} {"check_id": "chatbot.chime-webhook-update-sns-topics-and-logging-level-persists", "deployments": [], "key": "chatbot/chime-webhook-update-sns-topics-and-logging-level-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "chatbot:UpdateChimeWebhookConfiguration", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_chime_webhook_update_sns_topics_and_logging_level_persists.py", "service": "chatbot"} {"check_id": "chatbot.concurrent-tag-resource-different-keys-no-lost-updates", "deployments": [], "key": "chatbot/concurrent-tag-resource-different-keys-no-lost-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListTagsForResource", "chatbot:TagResource"], "path": "behavioral/chatbot/check_concurrent_tag_resource_different_keys_no_lost_updates.py", "service": "chatbot"} {"check_id": "chatbot.create-custom-action-idempotent-with-client-token", "deployments": [], "key": "chatbot/create-custom-action-idempotent-with-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListCustomActions"], "path": "behavioral/chatbot/check_create_custom_action_idempotent_with_client_token.py", "service": "chatbot"} {"check_id": "chatbot.create-custom-action-missing-permission-denied", "deployments": [], "key": "chatbot/create-custom-action-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction", "chatbot:ListCustomActions", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole"], "path": "behavioral/chatbot/check_create_custom_action_missing_permission_denied.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-alias-and-attachments-persist", "deployments": [], "key": "chatbot/custom-action-alias-and-attachments-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction"], "path": "behavioral/chatbot/check_custom_action_alias_and_attachments_persist.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-attachment-criteria-roundtrip", "deployments": [], "key": "chatbot/custom-action-attachment-criteria-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction"], "path": "behavioral/chatbot/check_custom_action_attachment_criteria_roundtrip.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-concurrent-duplicate-name-single-winner", "deployments": [], "key": "chatbot/custom-action-concurrent-duplicate-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction"], "path": "behavioral/chatbot/check_custom_action_concurrent_duplicate_name_single_winner.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-create-get-roundtrip", "deployments": [], "key": "chatbot/custom-action-create-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction"], "path": "behavioral/chatbot/check_custom_action_create_get_roundtrip.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-create-get-update-delete-lifecycle", "deployments": [], "key": "chatbot/custom-action-create-get-update-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction", "chatbot:UpdateCustomAction"], "path": "behavioral/chatbot/check_custom_action_create_get_update_delete_lifecycle.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-delete-removes-resource", "deployments": [], "key": "chatbot/custom-action-delete-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction", "sts:GetCallerIdentity"], "path": "behavioral/chatbot/check_custom_action_delete_removes_resource.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-get-nonexistent-rejected", "deployments": [], "key": "chatbot/custom-action-get-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction", "sts:GetCallerIdentity"], "path": "behavioral/chatbot/check_custom_action_get_nonexistent_rejected.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-list-contains-created", "deployments": [], "key": "chatbot/custom-action-list-contains-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListCustomActions"], "path": "behavioral/chatbot/check_custom_action_list_contains_created.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-list-reflects-create-and-delete", "deployments": [], "key": "chatbot/custom-action-list-reflects-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListCustomActions"], "path": "behavioral/chatbot/check_custom_action_list_reflects_create_and_delete.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-pagination-returns-all-created", "deployments": [], "key": "chatbot/custom-action-pagination-returns-all-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListCustomActions"], "path": "behavioral/chatbot/check_custom_action_pagination_returns_all_created.py", "service": "chatbot"} {"check_id": "chatbot.custom-action-update-changes-persist", "deployments": [], "key": "chatbot/custom-action-update-changes-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction", "chatbot:UpdateCustomAction"], "path": "behavioral/chatbot/check_custom_action_update_changes_persist.py", "service": "chatbot"} {"check_id": "chatbot.delete-microsoft-teams-configured-team-invalid-team-id-rejected", "deployments": [], "key": "chatbot/delete-microsoft-teams-configured-team-invalid-team-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:DeleteMicrosoftTeamsConfiguredTeam", "chatbot:GetCustomAction", "chatbot:ListMicrosoftTeamsConfiguredTeams"], "path": "behavioral/chatbot/check_delete_microsoft_teams_configured_team_invalid_team_id_rejected.py", "service": "chatbot"} {"check_id": "chatbot.describe-chime-webhook-configurations-filters-by-arn", "deployments": [], "key": "chatbot/describe-chime-webhook-configurations-filters-by-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_describe_chime_webhook_configurations_filters_by_arn.py", "service": "chatbot"} {"check_id": "chatbot.describe-chime-webhook-configurations-pagination-returns-all-created", "deployments": [], "key": "chatbot/describe-chime-webhook-configurations-pagination-returns-all-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DescribeChimeWebhookConfigurations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_describe_chime_webhook_configurations_pagination_returns_all_created.py", "service": "chatbot"} {"check_id": "chatbot.describe-slack-channel-configurations-invalid-next-token-rejected", "deployments": [], "key": "chatbot/describe-slack-channel-configurations-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:DescribeSlackChannelConfigurations"], "path": "behavioral/chatbot/check_describe_slack_channel_configurations_invalid_next_token_rejected.py", "service": "chatbot"} {"check_id": "chatbot.disassociate-from-configuration-malformed-resource-arn-rejected", "deployments": [], "key": "chatbot/disassociate-from-configuration-malformed-resource-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:CreateCustomAction", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DeleteCustomAction", "chatbot:DisassociateFromConfiguration", "chatbot:ListAssociations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_disassociate_from_configuration_malformed_resource_arn_rejected.py", "service": "chatbot"} {"check_id": "chatbot.disassociate-nonexistent-association-idempotent", "deployments": [], "key": "chatbot/disassociate-nonexistent-association-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:AssociateToConfiguration", "chatbot:CreateChimeWebhookConfiguration", "chatbot:CreateCustomAction", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:DeleteCustomAction", "chatbot:DisassociateFromConfiguration", "chatbot:ListAssociations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_disassociate_nonexistent_association_idempotent.py", "service": "chatbot"} {"check_id": "chatbot.list-associations-maxresults-bounds-rejected", "deployments": [], "key": "chatbot/list-associations-maxresults-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateChimeWebhookConfiguration", "chatbot:DeleteChimeWebhookConfiguration", "chatbot:ListAssociations", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/chatbot/check_list_associations_maxresults_bounds_rejected.py", "service": "chatbot"} {"check_id": "chatbot.list-custom-actions-maxresults-out-of-range-rejected", "deployments": [], "key": "chatbot/list-custom-actions-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:ListCustomActions"], "path": "behavioral/chatbot/check_list_custom_actions_maxresults_out_of_range_rejected.py", "service": "chatbot"} {"check_id": "chatbot.slack-native-oauth-delivery-skipped", "deployments": [], "key": "chatbot/slack-native-oauth-delivery-skipped", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:CreateSlackChannelConfiguration", "chatbot:DeleteCustomAction", "chatbot:DescribeSlackChannelConfigurations", "chatbot:GetCustomAction", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/chatbot/check_slack_native_oauth_delivery_skipped.py", "service": "chatbot"} {"check_id": "chatbot.tag-resource-empty-string-value-roundtrip", "deployments": [], "key": "chatbot/tag-resource-empty-string-value-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListTagsForResource", "chatbot:TagResource"], "path": "behavioral/chatbot/check_tag_resource_empty_string_value_roundtrip.py", "service": "chatbot"} {"check_id": "chatbot.tag-resource-exceeds-max-tags-rejected", "deployments": [], "key": "chatbot/tag-resource-exceeds-max-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListTagsForResource", "chatbot:TagResource", "chatbot:UntagResource"], "path": "behavioral/chatbot/check_tag_resource_exceeds_max_tags_rejected.py", "service": "chatbot"} {"check_id": "chatbot.tag-resource-list-reflects-and-untag-removes", "deployments": [], "key": "chatbot/tag-resource-list-reflects-and-untag-removes", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListTagsForResource", "chatbot:TagResource", "chatbot:UntagResource"], "path": "behavioral/chatbot/check_tag_resource_list_reflects_and_untag_removes.py", "service": "chatbot"} {"check_id": "chatbot.tag-resource-nonexistent-arn-rejected", "deployments": [], "key": "chatbot/tag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListTagsForResource", "chatbot:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/chatbot/check_tag_resource_nonexistent_arn_rejected.py", "service": "chatbot"} {"check_id": "chatbot.teams-channel-invalid-team-id-uuid-rejected", "deployments": [], "key": "chatbot/teams-channel-invalid-team-id-uuid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:CreateMicrosoftTeamsChannelConfiguration", "chatbot:DeleteCustomAction", "chatbot:GetCustomAction", "chatbot:ListMicrosoftTeamsChannelConfigurations", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/chatbot/check_teams_channel_invalid_team_id_uuid_rejected.py", "service": "chatbot"} {"check_id": "chatbot.untag-resource-nonexistent-key-is-idempotent-noop", "deployments": [], "key": "chatbot/untag-resource-nonexistent-key-is-idempotent-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:CreateCustomAction", "chatbot:DeleteCustomAction", "chatbot:ListTagsForResource", "chatbot:TagResource", "chatbot:UntagResource"], "path": "behavioral/chatbot/check_untag_resource_nonexistent_key_is_idempotent_noop.py", "service": "chatbot"} {"check_id": "chatbot__cloudformation.deploy-chatbot-customaction-invalid-actionname-rejected-and-rolled-back", "deployments": [], "key": "chatbot__cloudformation/deploy-chatbot-customaction-invalid-actionname-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["chatbot:GetCustomAction", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/chatbot__cloudformation/check_deploy_chatbot_customaction_invalid_actionname_rejected_and_rolled_back.py", "service": "chatbot__cloudformation"} {"check_id": "chatbot__cloudformation.deploy-chatbot-customaction-round-trip-and-delete", "deployments": [], "key": "chatbot__cloudformation/deploy-chatbot-customaction-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["chatbot:GetCustomAction", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/chatbot__cloudformation/check_deploy_chatbot_customaction_round_trip_and_delete.py", "service": "chatbot__cloudformation"} {"check_id": "chime-sdk-identity.concurrent-create-app-instance-admin-race", "deployments": [], "key": "chime-sdk-identity/concurrent-create-app-instance-admin-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceAdmin", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:ListAppInstanceAdmins"], "path": "behavioral/chime-sdk-identity/check_concurrent_create_app_instance_admin_race.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.concurrent-register-endpoint-same-token-dedup", "deployments": [], "key": "chime-sdk-identity/concurrent-register-endpoint-same-token-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:ListAppInstanceUserEndpoints", "chime-sdk-identity:RegisterAppInstanceUserEndpoint", "pinpoint:CreateApp", "pinpoint:DeleteApp", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-identity/check_concurrent_register_endpoint_same_token_dedup.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.create-app-instance-admin-promotes-user", "deployments": [], "key": "chime-sdk-identity/create-app-instance-admin-promotes-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceAdmin", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstanceAdmin", "chime-sdk-identity:ListAppInstanceAdmins"], "path": "behavioral/chime-sdk-identity/check_create_app_instance_admin_promotes_user.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.create-app-instance-bot-malformed-lex-arn-rejected", "deployments": [], "key": "chime-sdk-identity/create-app-instance-bot-malformed-lex-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceBot", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DeleteAppInstanceBot", "chime-sdk-identity:DescribeAppInstance", "chime-sdk-identity:ListAppInstanceBots", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-identity/check_create_app_instance_bot_malformed_lex_arn_rejected.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.create-app-instance-describe-roundtrip", "deployments": [], "key": "chime-sdk-identity/create-app-instance-describe-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstance"], "path": "behavioral/chime-sdk-identity/check_create_app_instance_describe_roundtrip.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.create-app-instance-idempotent-token", "deployments": [], "key": "chime-sdk-identity/create-app-instance-idempotent-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstance"], "path": "behavioral/chime-sdk-identity/check_create_app_instance_idempotent_token.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.create-app-instance-token-reuse-conflict-rejected", "deployments": [], "key": "chime-sdk-identity/create-app-instance-token-reuse-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstance"], "path": "behavioral/chime-sdk-identity/check_create_app_instance_token_reuse_conflict_rejected.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.create-app-instance-user-duplicate-id-conflict-rejected", "deployments": [], "key": "chime-sdk-identity/create-app-instance-user-duplicate-id-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstanceUser"], "path": "behavioral/chime-sdk-identity/check_create_app_instance_user_duplicate_id_conflict_rejected.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.create-app-instance-user-with-expiration-settings-at-creation", "deployments": [], "key": "chime-sdk-identity/create-app-instance-user-with-expiration-settings-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstanceUser"], "path": "behavioral/chime-sdk-identity/check_create_app_instance_user_with_expiration_settings_at_creation.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.delete-app-instance-admin-demotes", "deployments": [], "key": "chime-sdk-identity/delete-app-instance-admin-demotes", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceAdmin", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DeleteAppInstanceAdmin", "chime-sdk-identity:DescribeAppInstanceAdmin", "chime-sdk-identity:DescribeAppInstanceUser", "chime-sdk-identity:ListAppInstanceAdmins", "chime-sdk-identity:TagResource"], "path": "behavioral/chime-sdk-identity/check_delete_app_instance_admin_demotes.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.delete-app-instance-admin-not-admin-succeeds-as-a-noop", "deployments": [], "key": "chime-sdk-identity/delete-app-instance-admin-not-admin-succeeds-as-a-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceAdmin", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DeleteAppInstanceAdmin", "chime-sdk-identity:ListAppInstanceAdmins"], "path": "behavioral/chime-sdk-identity/check_delete_app_instance_admin_not_admin_succeeds_as_a_noop.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.delete-app-instance-cascades-users", "deployments": [], "key": "chime-sdk-identity/delete-app-instance-cascades-users", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstance", "chime-sdk-identity:DescribeAppInstanceUser", "chime-sdk-identity:UpdateAppInstanceUser"], "path": "behavioral/chime-sdk-identity/check_delete_app_instance_cascades_users.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.deregister-endpoint-removes", "deployments": [], "key": "chime-sdk-identity/deregister-endpoint-removes", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DeregisterAppInstanceUserEndpoint", "chime-sdk-identity:DescribeAppInstanceUserEndpoint", "chime-sdk-identity:ListAppInstanceUserEndpoints", "chime-sdk-identity:RegisterAppInstanceUserEndpoint", "chime-sdk-identity:UpdateAppInstanceUserEndpoint", "pinpoint:CreateApp", "pinpoint:DeleteApp"], "path": "behavioral/chime-sdk-identity/check_deregister_endpoint_removes.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.describe-app-instance-bot-not-found-rejected", "deployments": [], "key": "chime-sdk-identity/describe-app-instance-bot-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstance", "chime-sdk-identity:DescribeAppInstanceBot", "chime-sdk-identity:ListAppInstanceBots"], "path": "behavioral/chime-sdk-identity/check_describe_app_instance_bot_not_found_rejected.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.expiration-settings-set-and-clear", "deployments": [], "key": "chime-sdk-identity/expiration-settings-set-and-clear", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstanceUser", "chime-sdk-identity:PutAppInstanceUserExpirationSettings"], "path": "behavioral/chime-sdk-identity/check_expiration_settings_set_and_clear.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.list-app-instance-users-reflects-created", "deployments": [], "key": "chime-sdk-identity/list-app-instance-users-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:ListAppInstanceUsers"], "path": "behavioral/chime-sdk-identity/check_list_app_instance_users_reflects_created.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.put-app-instance-retention-settings-range-rejected", "deployments": [], "key": "chime-sdk-identity/put-app-instance-retention-settings-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:GetAppInstanceRetentionSettings", "chime-sdk-identity:PutAppInstanceRetentionSettings"], "path": "behavioral/chime-sdk-identity/check_put_app_instance_retention_settings_range_rejected.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.register-endpoint-idempotent-token", "deployments": [], "key": "chime-sdk-identity/register-endpoint-idempotent-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:ListAppInstanceUserEndpoints", "chime-sdk-identity:RegisterAppInstanceUserEndpoint", "pinpoint:CreateApp", "pinpoint:DeleteApp"], "path": "behavioral/chime-sdk-identity/check_register_endpoint_idempotent_token.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.register-endpoint-invalid-pinpoint-arn-inactive", "deployments": [], "key": "chime-sdk-identity/register-endpoint-invalid-pinpoint-arn-inactive", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstanceUserEndpoint", "chime-sdk-identity:ListAppInstanceUserEndpoints", "chime-sdk-identity:RegisterAppInstanceUserEndpoint", "pinpoint:CreateApp", "pinpoint:DeleteApp", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-identity/check_register_endpoint_invalid_pinpoint_arn_inactive.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.retention-settings-put-get-roundtrip", "deployments": [], "key": "chime-sdk-identity/retention-settings-put-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:GetAppInstanceRetentionSettings", "chime-sdk-identity:PutAppInstanceRetentionSettings"], "path": "behavioral/chime-sdk-identity/check_retention_settings_put_get_roundtrip.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.tag-resource-lifecycle-roundtrip", "deployments": [], "key": "chime-sdk-identity/tag-resource-lifecycle-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:ListTagsForResource", "chime-sdk-identity:TagResource", "chime-sdk-identity:UntagResource"], "path": "behavioral/chime-sdk-identity/check_tag_resource_lifecycle_roundtrip.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.update-app-instance-name-metadata-persists", "deployments": [], "key": "chime-sdk-identity/update-app-instance-name-metadata-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstance", "chime-sdk-identity:UpdateAppInstance"], "path": "behavioral/chime-sdk-identity/check_update_app_instance_name_metadata_persists.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.update-app-instance-user-endpoint-allow-messages-persists", "deployments": [], "key": "chime-sdk-identity/update-app-instance-user-endpoint-allow-messages-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstanceUserEndpoint", "chime-sdk-identity:RegisterAppInstanceUserEndpoint", "chime-sdk-identity:UpdateAppInstanceUserEndpoint", "pinpoint:CreateApp", "pinpoint:DeleteApp"], "path": "behavioral/chime-sdk-identity/check_update_app_instance_user_endpoint_allow_messages_persists.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-identity.update-app-instance-user-persists", "deployments": [], "key": "chime-sdk-identity/update-app-instance-user-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DescribeAppInstanceUser", "chime-sdk-identity:UpdateAppInstanceUser"], "path": "behavioral/chime-sdk-identity/check_update_app_instance_user_persists.py", "service": "chime-sdk-identity"} {"check_id": "chime-sdk-media-pipelines.create-media-insights-pipeline-configuration-conflicting-pii-settings-accepted", "deployments": [], "key": "chime-sdk-media-pipelines/create-media-insights-pipeline-configuration-conflicting-pii-settings-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:GetMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:ListMediaInsightsPipelineConfigurations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/chime-sdk-media-pipelines/check_create_media_insights_pipeline_configuration_conflicting_pii_settings_accepted.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.create-media-insights-pipeline-configuration-duplicate-processor-elements-rejected", "deployments": [], "key": "chime-sdk-media-pipelines/create-media-insights-pipeline-configuration-duplicate-processor-elements-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:ListMediaInsightsPipelineConfigurations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/chime-sdk-media-pipelines/check_create_media_insights_pipeline_configuration_duplicate_processor_elements_rejected.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.create-media-insights-pipeline-configuration-invalid-name-pattern-rejected", "deployments": [], "key": "chime-sdk-media-pipelines/create-media-insights-pipeline-configuration-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:ListMediaInsightsPipelineConfigurations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/chime-sdk-media-pipelines/check_create_media_insights_pipeline_configuration_invalid_name_pattern_rejected.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.create-media-insights-pipeline-configuration-role-not-found", "deployments": [], "key": "chime-sdk-media-pipelines/create-media-insights-pipeline-configuration-role-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:ListMediaInsightsPipelineConfigurations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-media-pipelines/check_create_media_insights_pipeline_configuration_role_not_found.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.create-media-pipeline-kinesis-video-stream-pool-missing-permission-rejected", "deployments": [], "key": "chime-sdk-media-pipelines/create-media-pipeline-kinesis-video-stream-pool-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:DeleteMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:ListMediaPipelineKinesisVideoStreamPools", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-media-pipelines/check_create_media_pipeline_kinesis_video_stream_pool_missing_permission_rejected.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.delete-media-insights-pipeline-configuration-not-found", "deployments": [], "key": "chime-sdk-media-pipelines/delete-media-insights-pipeline-configuration-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration"], "path": "behavioral/chime-sdk-media-pipelines/check_delete_media_insights_pipeline_configuration_not_found.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.get-media-pipeline-not-found", "deployments": [], "key": "chime-sdk-media-pipelines/get-media-pipeline-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaCapturePipeline", "chime-sdk-media-pipelines:DeleteMediaCapturePipeline", "chime-sdk-media-pipelines:GetMediaPipeline", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "iam:CreateServiceLinkedRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-media-pipelines/check_get_media_pipeline_not_found.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.get-speaker-search-task-not-found", "deployments": [], "key": "chime-sdk-media-pipelines/get-speaker-search-task-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:GetSpeakerSearchTask", "chime-sdk-media-pipelines:ListMediaPipelines"], "path": "behavioral/chime-sdk-media-pipelines/check_get_speaker_search_task_not_found.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.kinesis-video-stream-pool-creating-to-active-transition", "deployments": [], "key": "chime-sdk-media-pipelines/kinesis-video-stream-pool-creating-to-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:DeleteMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:GetMediaPipelineKinesisVideoStreamPool", "iam:CreateServiceLinkedRole"], "path": "behavioral/chime-sdk-media-pipelines/check_kinesis_video_stream_pool_creating_to_active_transition.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.kinesis-video-stream-pool-delete-removes-from-list", "deployments": [], "key": "chime-sdk-media-pipelines/kinesis-video-stream-pool-delete-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:DeleteMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:GetMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:ListMediaPipelineKinesisVideoStreamPools", "iam:CreateServiceLinkedRole"], "path": "behavioral/chime-sdk-media-pipelines/check_kinesis_video_stream_pool_delete_removes_from_list.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.kinesis-video-stream-pool-duplicate-name-concurrent-create-race", "deployments": [], "key": "chime-sdk-media-pipelines/kinesis-video-stream-pool-duplicate-name-concurrent-create-race", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:DeleteMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:ListMediaPipelineKinesisVideoStreamPools", "iam:CreateServiceLinkedRole"], "path": "behavioral/chime-sdk-media-pipelines/check_kinesis_video_stream_pool_duplicate_name_concurrent_create_race.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.kinesis-video-stream-pool-duplicate-name-rejected", "deployments": [], "key": "chime-sdk-media-pipelines/kinesis-video-stream-pool-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:DeleteMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:GetMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:ListMediaPipelineKinesisVideoStreamPools", "iam:CreateServiceLinkedRole"], "path": "behavioral/chime-sdk-media-pipelines/check_kinesis_video_stream_pool_duplicate_name_rejected.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.kinesis-video-stream-pool-update-retention-persists", "deployments": [], "key": "chime-sdk-media-pipelines/kinesis-video-stream-pool-update-retention-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:DeleteMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:GetMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:UpdateMediaPipelineKinesisVideoStreamPool", "iam:CreateServiceLinkedRole"], "path": "behavioral/chime-sdk-media-pipelines/check_kinesis_video_stream_pool_update_retention_persists.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.list-media-insights-pipeline-configurations-pagination", "deployments": [], "key": "chime-sdk-media-pipelines/list-media-insights-pipeline-configurations-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:ListMediaInsightsPipelineConfigurations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/chime-sdk-media-pipelines/check_list_media_insights_pipeline_configurations_pagination.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.media-capture-pipeline-lifecycle-with-chime-meeting", "deployments": [], "key": "chime-sdk-media-pipelines/media-capture-pipeline-lifecycle-with-chime-meeting", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaCapturePipeline", "chime-sdk-media-pipelines:DeleteMediaCapturePipeline", "chime-sdk-media-pipelines:GetMediaCapturePipeline", "chime-sdk-media-pipelines:GetMediaPipeline", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "iam:CreateServiceLinkedRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-media-pipelines/check_media_capture_pipeline_lifecycle_with_chime_meeting.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.media-insights-pipeline-configuration-create-get-roundtrip", "deployments": [], "key": "chime-sdk-media-pipelines/media-insights-pipeline-configuration-create-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:GetMediaInsightsPipelineConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/chime-sdk-media-pipelines/check_media_insights_pipeline_configuration_create_get_roundtrip.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.media-insights-pipeline-configuration-delete-lifecycle", "deployments": [], "key": "chime-sdk-media-pipelines/media-insights-pipeline-configuration-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:GetMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:ListMediaInsightsPipelineConfigurations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/chime-sdk-media-pipelines/check_media_insights_pipeline_configuration_delete_lifecycle.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.media-insights-pipeline-configuration-update-persists", "deployments": [], "key": "chime-sdk-media-pipelines/media-insights-pipeline-configuration-update-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:GetMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:UpdateMediaInsightsPipelineConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/chime-sdk-media-pipelines/check_media_insights_pipeline_configuration_update_persists.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.start-speaker-search-task-pipeline-not-found", "deployments": [], "key": "chime-sdk-media-pipelines/start-speaker-search-task-pipeline-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:GetSpeakerSearchTask", "chime-sdk-media-pipelines:ListMediaPipelines", "chime-sdk-media-pipelines:StartSpeakerSearchTask", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-media-pipelines/check_start_speaker_search_task_pipeline_not_found.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "chime-sdk-media-pipelines/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:DeleteMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:GetMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:ListTagsForResource", "chime-sdk-media-pipelines:TagResource", "iam:CreateServiceLinkedRole"], "path": "behavioral/chime-sdk-media-pipelines/check_tag_resource_and_list_tags_roundtrip.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.untag-resource-removes-tag", "deployments": [], "key": "chime-sdk-media-pipelines/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:DeleteMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:GetMediaPipelineKinesisVideoStreamPool", "chime-sdk-media-pipelines:ListTagsForResource", "chime-sdk-media-pipelines:TagResource", "chime-sdk-media-pipelines:UntagResource", "iam:CreateServiceLinkedRole"], "path": "behavioral/chime-sdk-media-pipelines/check_untag_resource_removes_tag.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines.update-media-insights-pipeline-status-not-found", "deployments": [], "key": "chime-sdk-media-pipelines/update-media-insights-pipeline-status-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:CreateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:DeleteMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:GetMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:UpdateMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:UpdateMediaInsightsPipelineStatus", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/chime-sdk-media-pipelines/check_update_media_insights_pipeline_status_not_found.py", "service": "chime-sdk-media-pipelines"} {"check_id": "chime-sdk-media-pipelines__cloudformation.deploy-chime-media-insights-pipeline-config-invalid-name-rejected", "deployments": [], "key": "chime-sdk-media-pipelines__cloudformation/deploy-chime-media-insights-pipeline-config-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-media-pipelines:GetMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:ListMediaInsightsPipelineConfigurations", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/chime-sdk-media-pipelines__cloudformation/check_deploy_chime_media_insights_pipeline_config_invalid_name_rejected.py", "service": "chime-sdk-media-pipelines__cloudformation"} {"check_id": "chime-sdk-media-pipelines__cloudformation.deploy-chime-media-insights-pipeline-configuration-round-trip-and-delete", "deployments": [], "key": "chime-sdk-media-pipelines__cloudformation/deploy-chime-media-insights-pipeline-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-media-pipelines:GetMediaInsightsPipelineConfiguration", "chime-sdk-media-pipelines:ListMediaInsightsPipelineConfigurations", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/chime-sdk-media-pipelines__cloudformation/check_deploy_chime_media_insights_pipeline_configuration_round_trip_and_delete.py", "service": "chime-sdk-media-pipelines__cloudformation"} {"check_id": "chime-sdk-meetings.batch-create-attendee-creates-all-and-returns-join-tokens", "deployments": [], "key": "chime-sdk-meetings/batch-create-attendee-creates-all-and-returns-join-tokens", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:BatchCreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee"], "path": "behavioral/chime-sdk-meetings/check_batch_create_attendee_creates_all_and_returns_join_tokens.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.batch-update-attendee-capabilities-except-excludes-correctly", "deployments": [], "key": "chime-sdk-meetings/batch-update-attendee-capabilities-except-excludes-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:BatchUpdateAttendeeCapabilitiesExcept", "chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee"], "path": "behavioral/chime-sdk-meetings/check_batch_update_attendee_capabilities_except_excludes_correctly.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.concurrent-attendee-creation-no-id-collisions", "deployments": [], "key": "chime-sdk-meetings/concurrent-attendee-creation-no-id-collisions", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:ListAttendees"], "path": "behavioral/chime-sdk-meetings/check_concurrent_attendee_creation_no_id_collisions.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.concurrent-capability-updates-final-state-consistent", "deployments": [], "key": "chime-sdk-meetings/concurrent-capability-updates-final-state-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee", "chime-sdk-meetings:UpdateAttendeeCapabilities"], "path": "behavioral/chime-sdk-meetings/check_concurrent_capability_updates_final_state_consistent.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-attendee-content-capability-without-video-rejected", "deployments": [], "key": "chime-sdk-meetings/create-attendee-content-capability-without-video-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:ListAttendees"], "path": "behavioral/chime-sdk-meetings/check_create_attendee_content_capability_without_video_rejected.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-attendee-default-capabilities-are-sendreceive", "deployments": [], "key": "chime-sdk-meetings/create-attendee-default-capabilities-are-sendreceive", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee"], "path": "behavioral/chime-sdk-meetings/check_create_attendee_default_capabilities_are_sendreceive.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-attendee-duplicate-external-user-id-allowed", "deployments": [], "key": "chime-sdk-meetings/create-attendee-duplicate-external-user-id-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:ListAttendees"], "path": "behavioral/chime-sdk-meetings/check_create_attendee_duplicate_external_user_id_allowed.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-attendee-join-token-and-get-attendee-roundtrip", "deployments": [], "key": "chime-sdk-meetings/create-attendee-join-token-and-get-attendee-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee"], "path": "behavioral/chime-sdk-meetings/check_create_attendee_join_token_and_get_attendee_roundtrip.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-attendee-reserved-external-user-id-rejected", "deployments": [], "key": "chime-sdk-meetings/create-attendee-reserved-external-user-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:ListAttendees"], "path": "behavioral/chime-sdk-meetings/check_create_attendee_reserved_external_user_id_rejected.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-meeting-conflict-token-different-params-returns-original", "deployments": [], "key": "chime-sdk-meetings/create-meeting-conflict-token-different-params-returns-original", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetMeeting"], "path": "behavioral/chime-sdk-meetings/check_create_meeting_conflict_token_different_params_returns_original.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-meeting-idempotent-token-returns-same-meeting", "deployments": [], "key": "chime-sdk-meetings/create-meeting-idempotent-token-returns-same-meeting", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetMeeting"], "path": "behavioral/chime-sdk-meetings/check_create_meeting_idempotent_token_returns_same_meeting.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-meeting-returns-full-meeting-fields", "deployments": [], "key": "chime-sdk-meetings/create-meeting-returns-full-meeting-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetMeeting", "sts:GetCallerIdentity"], "path": "behavioral/chime-sdk-meetings/check_create_meeting_returns_full_meeting_fields.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.create-meeting-with-attendees-creates-all-attendees", "deployments": [], "key": "chime-sdk-meetings/create-meeting-with-attendees-creates-all-attendees", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeetingWithAttendees", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee", "chime-sdk-meetings:GetMeeting", "chime-sdk-meetings:ListAttendees", "chime-sdk-meetings:ListTagsForResource", "chime-sdk-meetings:StartMeetingTranscription", "chime-sdk-meetings:StopMeetingTranscription", "chime-sdk-meetings:TagResource", "chime-sdk-meetings:UpdateAttendeeCapabilities"], "path": "behavioral/chime-sdk-meetings/check_create_meeting_with_attendees_creates_all_attendees.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.delete-attendee-invalidates-and-removes-from-list", "deployments": [], "key": "chime-sdk-meetings/delete-attendee-invalidates-and-removes-from-list", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteAttendee", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee", "chime-sdk-meetings:ListAttendees", "chime-sdk-meetings:UpdateAttendeeCapabilities"], "path": "behavioral/chime-sdk-meetings/check_delete_attendee_invalidates_and_removes_from_list.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.delete-meeting-cascades-deletes-attendees", "deployments": [], "key": "chime-sdk-meetings/delete-meeting-cascades-deletes-attendees", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetMeeting", "chime-sdk-meetings:ListAttendees"], "path": "behavioral/chime-sdk-meetings/check_delete_meeting_cascades_deletes_attendees.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.delete-meeting-not-found-rejected", "deployments": [], "key": "chime-sdk-meetings/delete-meeting-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetMeeting"], "path": "behavioral/chime-sdk-meetings/check_delete_meeting_not_found_rejected.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.get-meeting-reflects-media-region-and-features", "deployments": [], "key": "chime-sdk-meetings/get-meeting-reflects-media-region-and-features", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetMeeting"], "path": "behavioral/chime-sdk-meetings/check_get_meeting_reflects_media_region_and_features.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.list-attendees-pagination-completeness", "deployments": [], "key": "chime-sdk-meetings/list-attendees-pagination-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:ListAttendees"], "path": "behavioral/chime-sdk-meetings/check_list_attendees_pagination_completeness.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.native-media-data-plane-requires-client-sdk", "deployments": [], "key": "chime-sdk-meetings/native-media-data-plane-requires-client-sdk", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting"], "path": "behavioral/chime-sdk-meetings/check_native_media_data_plane_requires_client_sdk.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.start-and-stop-meeting-transcription-state-transition", "deployments": [], "key": "chime-sdk-meetings/start-and-stop-meeting-transcription-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:StartMeetingTranscription", "chime-sdk-meetings:StopMeetingTranscription"], "path": "behavioral/chime-sdk-meetings/check_start_and_stop_meeting_transcription_state_transition.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.stop-meeting-transcription-not-active-is-noop", "deployments": [], "key": "chime-sdk-meetings/stop-meeting-transcription-not-active-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:StartMeetingTranscription", "chime-sdk-meetings:StopMeetingTranscription"], "path": "behavioral/chime-sdk-meetings/check_stop_meeting_transcription_not_active_is_noop.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "chime-sdk-meetings/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:ListTagsForResource", "chime-sdk-meetings:TagResource"], "path": "behavioral/chime-sdk-meetings/check_tag_resource_and_list_tags_roundtrip.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.untag-resource-removes-tags", "deployments": [], "key": "chime-sdk-meetings/untag-resource-removes-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:ListTagsForResource", "chime-sdk-meetings:TagResource", "chime-sdk-meetings:UntagResource"], "path": "behavioral/chime-sdk-meetings/check_untag_resource_removes_tags.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.update-attendee-capabilities-success-roundtrip", "deployments": [], "key": "chime-sdk-meetings/update-attendee-capabilities-success-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee", "chime-sdk-meetings:UpdateAttendeeCapabilities"], "path": "behavioral/chime-sdk-meetings/check_update_attendee_capabilities_success_roundtrip.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-meetings.update-attendee-capabilities-video-maxresolution-none-rejected", "deployments": [], "key": "chime-sdk-meetings/update-attendee-capabilities-video-maxresolution-none-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["chime-sdk-meetings:CreateAttendee", "chime-sdk-meetings:CreateMeeting", "chime-sdk-meetings:DeleteMeeting", "chime-sdk-meetings:GetAttendee", "chime-sdk-meetings:UpdateAttendeeCapabilities"], "path": "behavioral/chime-sdk-meetings/check_update_attendee_capabilities_video_maxresolution_none_rejected.py", "service": "chime-sdk-meetings"} {"check_id": "chime-sdk-messaging.channel-ban-blocks-banned-member-rejected", "deployments": [], "key": "chime-sdk-messaging/channel-ban-blocks-banned-member-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:CreateChannelBan", "chime-sdk-messaging:CreateChannelMembership", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:DeleteChannelBan", "chime-sdk-messaging:SendChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_channel_ban_blocks_banned_member_rejected.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.concurrent-send-messages-all-persisted", "deployments": [], "key": "chime-sdk-messaging/concurrent-send-messages-all-persisted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:GetChannelMessage", "chime-sdk-messaging:ListChannelMessages", "chime-sdk-messaging:SendChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_concurrent_send_messages_all_persisted.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.delete-channel-message-by-moderator-rejected", "deployments": [], "key": "chime-sdk-messaging/delete-channel-message-by-moderator-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceAdmin", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:DeleteChannelMessage", "chime-sdk-messaging:GetChannelMessage", "chime-sdk-messaging:SendChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_delete_channel_message_by_moderator_rejected.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.list-private-channels-requires-app-instance-admin-rejected", "deployments": [], "key": "chime-sdk-messaging/list-private-channels-requires-app-instance-admin-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceAdmin", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-identity:DeleteAppInstanceAdmin", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:ListChannels"], "path": "behavioral/chime-sdk-messaging/check_list_private_channels_requires_app_instance_admin_rejected.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.non-persistent-message-read-back-rejected", "deployments": [], "key": "chime-sdk-messaging/non-persistent-message-read-back-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:GetChannelMessage", "chime-sdk-messaging:SendChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_non_persistent_message_read_back_rejected.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.private-channel-non-member-read-denied", "deployments": [], "key": "chime-sdk-messaging/private-channel-non-member-read-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:CreateChannelMembership", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:ListChannelMemberships", "chime-sdk-messaging:ListChannelMessages", "chime-sdk-messaging:SendChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_private_channel_non_member_read_denied.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.redact-message-removes-content-keeps-message", "deployments": [], "key": "chime-sdk-messaging/redact-message-removes-content-keeps-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:CreateChannelMembership", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:GetChannelMessage", "chime-sdk-messaging:RedactChannelMessage", "chime-sdk-messaging:SendChannelMessage", "chime-sdk-messaging:UpdateChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_redact_message_removes_content_keeps_message.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.restricted-channel-member-add-rejected", "deployments": [], "key": "chime-sdk-messaging/restricted-channel-member-add-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:CreateChannelMembership", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:ListChannelMemberships"], "path": "behavioral/chime-sdk-messaging/check_restricted_channel_member_add_rejected.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.search-channels-by-membership-reflects-join", "deployments": [], "key": "chime-sdk-messaging/search-channels-by-membership-reflects-join", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:CreateChannelMembership", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:DeleteChannelMembership", "chime-sdk-messaging:SearchChannels"], "path": "behavioral/chime-sdk-messaging/check_search_channels_by_membership_reflects_join.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.send-message-idempotent-client-request-token", "deployments": [], "key": "chime-sdk-messaging/send-message-idempotent-client-request-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:SendChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_send_message_idempotent_client_request_token.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.send-message-read-back-in-order", "deployments": [], "key": "chime-sdk-messaging/send-message-read-back-in-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:CreateChannelMembership", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:GetChannelMessage", "chime-sdk-messaging:ListChannelMessages", "chime-sdk-messaging:SendChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_send_message_read_back_in_order.py", "service": "chime-sdk-messaging"} {"check_id": "chime-sdk-messaging.send-message-token-reuse-new-content-rejected", "deployments": [], "key": "chime-sdk-messaging/send-message-token-reuse-new-content-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["chime-sdk-identity:CreateAppInstance", "chime-sdk-identity:CreateAppInstanceUser", "chime-sdk-identity:DeleteAppInstance", "chime-sdk-messaging:CreateChannel", "chime-sdk-messaging:DeleteChannel", "chime-sdk-messaging:SendChannelMessage"], "path": "behavioral/chime-sdk-messaging/check_send_message_token_reuse_new_content_rejected.py", "service": "chime-sdk-messaging"} {"check_id": "cleanrooms.collaboration-change-request-lifecycle", "deployments": [], "key": "cleanrooms/collaboration-change-request-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateCollaborationChangeRequest", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMember", "cleanrooms:DeleteMembership", "cleanrooms:GetCollaborationChangeRequest", "cleanrooms:ListMembers", "cleanrooms:UpdateCollaborationChangeRequest"], "path": "behavioral/cleanrooms/check_collaboration_change_request_lifecycle.py", "service": "cleanrooms"} {"check_id": "cleanrooms.collaboration-change-request-reapprove-rejected", "deployments": [], "key": "cleanrooms/collaboration-change-request-reapprove-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateCollaborationChangeRequest", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetCollaborationChangeRequest", "cleanrooms:GetMembership", "cleanrooms:UpdateCollaborationChangeRequest"], "path": "behavioral/cleanrooms/check_collaboration_change_request_reapprove_rejected.py", "service": "cleanrooms"} {"check_id": "cleanrooms.concurrent-analysis-template-name-race", "deployments": [], "key": "cleanrooms/concurrent-analysis-template-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateAnalysisTemplate", "cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteAnalysisTemplate", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetMembership", "cleanrooms:ListAnalysisTemplates"], "path": "behavioral/cleanrooms/check_concurrent_analysis_template_name_race.py", "service": "cleanrooms"} {"check_id": "cleanrooms.configured-table-association-role-arn-pattern-rejected", "deployments": [], "key": "cleanrooms/configured-table-association-role-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAssociation", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAssociation", "cleanrooms:DeleteMembership", "cleanrooms:GetMembership", "cleanrooms:ListConfiguredTableAssociations", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/cleanrooms/check_configured_table_association_role_arn_pattern_rejected.py", "service": "cleanrooms"} {"check_id": "cleanrooms.create-analysis-template-duplicate-name-conflict", "deployments": [], "key": "cleanrooms/create-analysis-template-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateAnalysisTemplate", "cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteAnalysisTemplate", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetMembership", "cleanrooms:ListAnalysisTemplates"], "path": "behavioral/cleanrooms/check_create_analysis_template_duplicate_name_conflict.py", "service": "cleanrooms"} {"check_id": "cleanrooms.create-collaboration-and-join-membership-active", "deployments": [], "key": "cleanrooms/create-collaboration-and-join-membership-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetCollaboration", "cleanrooms:GetMembership"], "path": "behavioral/cleanrooms/check_create_collaboration_and_join_membership_active.py", "service": "cleanrooms"} {"check_id": "cleanrooms.create-configured-table-analysis-rule-duplicate-conflict", "deployments": [], "key": "cleanrooms/create-configured-table-analysis-rule-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAnalysisRule", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAnalysisRule", "cleanrooms:GetConfiguredTableAnalysisRule", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase"], "path": "behavioral/cleanrooms/check_create_configured_table_analysis_rule_duplicate_conflict.py", "service": "cleanrooms"} {"check_id": "cleanrooms.create-membership-duplicate-conflict", "deployments": [], "key": "cleanrooms/create-membership-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetCollaboration", "cleanrooms:GetMembership"], "path": "behavioral/cleanrooms/check_create_membership_duplicate_conflict.py", "service": "cleanrooms"} {"check_id": "cleanrooms.create-privacy-budget-template-duplicate-conflict", "deployments": [], "key": "cleanrooms/create-privacy-budget-template-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:CreatePrivacyBudgetTemplate", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:DeletePrivacyBudgetTemplate", "cleanrooms:GetMembership", "cleanrooms:GetPrivacyBudgetTemplate", "cleanrooms:ListPrivacyBudgetTemplates"], "path": "behavioral/cleanrooms/check_create_privacy_budget_template_duplicate_conflict.py", "service": "cleanrooms"} {"check_id": "cleanrooms.delete-collaboration-cascades-membership-status", "deployments": [], "key": "cleanrooms/delete-collaboration-cascades-membership-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetCollaboration", "cleanrooms:GetMembership", "sts:GetCallerIdentity"], "path": "behavioral/cleanrooms/check_delete_collaboration_cascades_membership_status.py", "service": "cleanrooms"} {"check_id": "cleanrooms.delete-configured-table-conflict-with-association-rejected", "deployments": [], "key": "cleanrooms/delete-configured-table-conflict-with-association-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAnalysisRule", "cleanrooms:CreateConfiguredTableAssociation", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAnalysisRule", "cleanrooms:DeleteConfiguredTableAssociation", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cleanrooms/check_delete_configured_table_conflict_with_association_rejected.py", "service": "cleanrooms"} {"check_id": "cleanrooms.delete-member-creator-rejected", "deployments": [], "key": "cleanrooms/delete-member-creator-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateCollaborationChangeRequest", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMember", "cleanrooms:DeleteMembership", "cleanrooms:GetCollaboration", "cleanrooms:GetMembership", "cleanrooms:ListMembers", "cleanrooms:UpdateCollaborationChangeRequest", "sts:GetCallerIdentity"], "path": "behavioral/cleanrooms/check_delete_member_creator_rejected.py", "service": "cleanrooms"} {"check_id": "cleanrooms.get-configured-table-association-analysis-rule-not-found-before-creation", "deployments": [], "key": "cleanrooms/get-configured-table-association-analysis-rule-not-found-before-creation", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAnalysisRule", "cleanrooms:CreateConfiguredTableAssociation", "cleanrooms:CreateConfiguredTableAssociationAnalysisRule", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAssociation", "cleanrooms:DeleteConfiguredTableAssociationAnalysisRule", "cleanrooms:DeleteMembership", "cleanrooms:GetConfiguredTableAssociationAnalysisRule", "cleanrooms:GetMembership", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cleanrooms/check_get_configured_table_association_analysis_rule_not_found_before_creation.py", "service": "cleanrooms"} {"check_id": "cleanrooms.get-membership-not-found", "deployments": [], "key": "cleanrooms/get-membership-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetMembership", "cleanrooms:ListMemberships"], "path": "behavioral/cleanrooms/check_get_membership_not_found.py", "service": "cleanrooms"} {"check_id": "cleanrooms.get-schema-reflects-configured-table-association", "deployments": [], "key": "cleanrooms/get-schema-reflects-configured-table-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAnalysisRule", "cleanrooms:CreateConfiguredTableAssociation", "cleanrooms:CreateConfiguredTableAssociationAnalysisRule", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAssociation", "cleanrooms:GetSchema", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cleanrooms/check_get_schema_reflects_configured_table_association.py", "service": "cleanrooms"} {"check_id": "cleanrooms.protected-query-cancel-lifecycle", "deployments": [], "key": "cleanrooms/protected-query-cancel-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAnalysisRule", "cleanrooms:CreateConfiguredTableAssociation", "cleanrooms:CreateConfiguredTableAssociationAnalysisRule", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAssociation", "cleanrooms:DeleteMembership", "cleanrooms:GetMembership", "cleanrooms:GetProtectedQuery", "cleanrooms:StartProtectedQuery", "cleanrooms:UpdateProtectedQuery", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cleanrooms/check_protected_query_cancel_lifecycle.py", "service": "cleanrooms"} {"check_id": "cleanrooms.protected-query-list-rule-round-trip", "deployments": [], "key": "cleanrooms/protected-query-list-rule-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAnalysisRule", "cleanrooms:CreateConfiguredTableAssociation", "cleanrooms:CreateConfiguredTableAssociationAnalysisRule", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAssociation", "cleanrooms:DeleteMembership", "cleanrooms:GetProtectedQuery", "cleanrooms:StartProtectedQuery", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cleanrooms/check_protected_query_list_rule_round_trip.py", "service": "cleanrooms"} {"check_id": "cleanrooms.start-protected-query-bad-membership-not-found", "deployments": [], "key": "cleanrooms/start-protected-query-bad-membership-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetMembership", "cleanrooms:StartProtectedQuery"], "path": "behavioral/cleanrooms/check_start_protected_query_bad_membership_not_found.py", "service": "cleanrooms"} {"check_id": "cleanrooms.tag-resource-round-trip", "deployments": [], "key": "cleanrooms/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:DeleteCollaboration", "cleanrooms:ListTagsForResource", "cleanrooms:TagResource", "cleanrooms:UntagResource"], "path": "behavioral/cleanrooms/check_tag_resource_round_trip.py", "service": "cleanrooms"} {"check_id": "cleanrooms.update-configured-table-analysis-method-conflict-rejected", "deployments": [], "key": "cleanrooms/update-configured-table-analysis-method-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAnalysisRule", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAnalysisRule", "cleanrooms:GetConfiguredTable", "cleanrooms:UpdateConfiguredTable", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase"], "path": "behavioral/cleanrooms/check_update_configured_table_analysis_method_conflict_rejected.py", "service": "cleanrooms"} {"check_id": "cleanrooms.update-configured-table-association-analysis-rule-round-trip", "deployments": [], "key": "cleanrooms/update-configured-table-association-analysis-rule-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateConfiguredTable", "cleanrooms:CreateConfiguredTableAnalysisRule", "cleanrooms:CreateConfiguredTableAssociation", "cleanrooms:CreateConfiguredTableAssociationAnalysisRule", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteConfiguredTable", "cleanrooms:DeleteConfiguredTableAssociation", "cleanrooms:DeleteMembership", "cleanrooms:GetConfiguredTableAssociationAnalysisRule", "cleanrooms:GetMembership", "cleanrooms:UpdateConfiguredTableAssociationAnalysisRule", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/cleanrooms/check_update_configured_table_association_analysis_rule_round_trip.py", "service": "cleanrooms"} {"check_id": "cleanrooms.update-membership-query-log-status-persists", "deployments": [], "key": "cleanrooms/update-membership-query-log-status-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanrooms:DeleteMembership", "cleanrooms:GetMembership", "cleanrooms:UpdateMembership"], "path": "behavioral/cleanrooms/check_update_membership_query_log_status_persists.py", "service": "cleanrooms"} {"check_id": "cleanrooms__cleanroomsml__cloudformation.deploy-cfn-cleanroomsml-algorithm-and-association-round-trip-and-delete", "deployments": [], "key": "cleanrooms__cleanroomsml__cloudformation/deploy-cfn-cleanroomsml-algorithm-and-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:DeleteCollaboration", "cleanrooms:GetCollaboration", "cleanrooms:GetMembership", "cleanroomsml:GetConfiguredModelAlgorithm", "cleanroomsml:GetConfiguredModelAlgorithmAssociation", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cleanrooms__cleanroomsml__cloudformation/check_deploy_cfn_cleanroomsml_algorithm_and_association_round_trip_and_delete.py", "service": "cleanrooms__cleanroomsml__cloudformation"} {"check_id": "cleanrooms__cleanroomsml__cloudformation.deploy-cfn-cleanroomsml-association-nonexistent-algorithm-rejected", "deployments": [], "key": "cleanrooms__cleanroomsml__cloudformation/deploy-cfn-cleanroomsml-association-nonexistent-algorithm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:DeleteCollaboration", "cleanroomsml:GetConfiguredModelAlgorithmAssociation", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cleanrooms__cleanroomsml__cloudformation/check_deploy_cfn_cleanroomsml_association_nonexistent_algorithm_rejected.py", "service": "cleanrooms__cleanroomsml__cloudformation"} {"check_id": "cleanroomsml.collaboration-scoped-lists-empty-before-resources", "deployments": [], "key": "cleanroomsml/collaboration-scoped-lists-empty-before-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanroomsml:ListCollaborationConfiguredModelAlgorithmAssociations", "cleanroomsml:ListCollaborationMLInputChannels", "cleanroomsml:ListCollaborationTrainedModelInferenceJobs", "cleanroomsml:ListCollaborationTrainedModels"], "path": "behavioral/cleanroomsml/check_collaboration_scoped_lists_empty_before_resources.py", "service": "cleanroomsml"} {"check_id": "cleanroomsml.configured-model-algorithm-association-collaboration-view", "deployments": [], "key": "cleanroomsml/configured-model-algorithm-association-collaboration-view", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanroomsml:CreateConfiguredModelAlgorithm", "cleanroomsml:CreateConfiguredModelAlgorithmAssociation", "cleanroomsml:DeleteConfiguredModelAlgorithm", "cleanroomsml:DeleteConfiguredModelAlgorithmAssociation", "cleanroomsml:GetCollaborationConfiguredModelAlgorithmAssociation", "cleanroomsml:GetConfiguredModelAlgorithmAssociation", "cleanroomsml:ListCollaborationConfiguredModelAlgorithmAssociations", "cleanroomsml:ListConfiguredModelAlgorithmAssociations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/cleanroomsml/check_configured_model_algorithm_association_collaboration_view.py", "service": "cleanroomsml"} {"check_id": "cleanroomsml.create-association-nonexistent-algorithm-rejected", "deployments": [], "key": "cleanroomsml/create-association-nonexistent-algorithm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanrooms:CreateCollaboration", "cleanrooms:CreateMembership", "cleanrooms:DeleteCollaboration", "cleanroomsml:CreateConfiguredModelAlgorithm", "cleanroomsml:CreateConfiguredModelAlgorithmAssociation", "cleanroomsml:DeleteConfiguredModelAlgorithm", "cleanroomsml:DeleteConfiguredModelAlgorithmAssociation", "cleanroomsml:GetConfiguredModelAlgorithmAssociation", "cleanroomsml:ListConfiguredModelAlgorithmAssociations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/cleanroomsml/check_create_association_nonexistent_algorithm_rejected.py", "service": "cleanroomsml"} {"check_id": "cleanroomsml.tag-resource-round-trip", "deployments": [], "key": "cleanroomsml/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanroomsml:CreateConfiguredModelAlgorithm", "cleanroomsml:DeleteConfiguredModelAlgorithm", "cleanroomsml:ListTagsForResource", "cleanroomsml:TagResource", "cleanroomsml:UntagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/cleanroomsml/check_tag_resource_round_trip.py", "service": "cleanroomsml"} {"check_id": "cleanroomsml__cloudformation.deploy-cfn-cleanroomsml-training-dataset-empty-s3-location-rejected", "deployments": [], "key": "cleanroomsml__cloudformation__s3/deploy-cfn-cleanroomsml-training-dataset-empty-s3-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cleanroomsml:GetTrainingDataset", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/cleanroomsml__cloudformation__s3/check_deploy_cfn_cleanroomsml_training_dataset_empty_s3_location_rejected.py", "service": "cleanroomsml__cloudformation__s3"} {"check_id": "cleanroomsml__cloudformation.deploy-cfn-cleanroomsml-training-dataset-round-trip-and-delete", "deployments": [], "key": "cleanroomsml__cloudformation__s3/deploy-cfn-cleanroomsml-training-dataset-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cleanroomsml:GetTrainingDataset", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/cleanroomsml__cloudformation__s3/check_deploy_cfn_cleanroomsml_training_dataset_round_trip_and_delete.py", "service": "cleanroomsml__cloudformation__s3"} {"check_id": "cloudcontrol.base64-blob-property-persists", "deployments": [], "key": "cloudcontrol/base64-blob-property-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_base64_blob_property_persists.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.base64-blob-property-round-trip", "deployments": [], "key": "cloudcontrol/base64-blob-property-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_base64_blob_property_round_trip.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cancel-bogus-request-token-must-fail", "deployments": [], "key": "cloudcontrol/cancel-bogus-request-token-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_cancel_bogus_request_token_must_fail.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cancel-completed-request-fails", "deployments": [], "key": "cloudcontrol/cancel-completed-request-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_cancel_completed_request_fails.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cancel-in-flight-request-reaches-cancel-complete", "deployments": [], "key": "cloudcontrol/cancel-in-flight-request-reaches-cancel-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SignalResource"], "path": "behavioral/cloudcontrol/check_cancel_in_flight_request_reaches_cancel_complete.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cancel-terminal-request-rejected", "deployments": [], "key": "cloudcontrol/cancel-terminal-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_cancel_terminal_request_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cancel-window-closes-after-terminal-state", "deployments": [], "key": "cloudcontrol/cancel-window-closes-after-terminal-state", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_cancel_window_closes_after_terminal_state.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.client-token-conflict-different-params", "deployments": [], "key": "cloudcontrol/client-token-conflict-different-params", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_client_token_conflict_different_params.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.client-token-idempotent-retry-same-params-succeeds", "deployments": [], "key": "cloudcontrol/client-token-idempotent-retry-same-params-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "ssm:GetParameter", "ssm:GetParameterHistory"], "path": "behavioral/cloudcontrol/check_client_token_idempotent_retry_same_params_succeeds.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.client-token-replay-on-a-live-resource-performs-no-second-native-write", "deployments": [], "key": "cloudcontrol/client-token-replay-on-a-live-resource-performs-no-second-native-write", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory"], "path": "behavioral/cloudcontrol/check_client_token_replay_on_a_live_resource_performs_no_second_native_write.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.client-token-reuse-across-operation-types-rejected", "deployments": [], "key": "cloudcontrol/client-token-reuse-across-operation-types-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter"], "path": "behavioral/cloudcontrol/check_client_token_reuse_across_operation_types_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-cancel-in-flight-create-leaves-no-native-resource", "deployments": [], "key": "cloudcontrol/cloudcontrol-cancel-in-flight-create-leaves-no-native-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables"], "path": "behavioral/cloudcontrol/check_cloudcontrol_cancel_in_flight_create_leaves_no_native_resource.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-client-token-replay-after-delete-returns-cached-event-not-resurrected", "deployments": [], "key": "cloudcontrol/cloudcontrol-client-token-replay-after-delete-returns-cached-event-not-resurrected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter"], "path": "behavioral/cloudcontrol/check_cloudcontrol_client_token_replay_after_delete_returns_cached_event_not_resurrected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-concurrent-patches-native-version-count-equals-successes", "deployments": [], "key": "cloudcontrol/cloudcontrol-concurrent-patches-native-version-count-equals-successes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "ssm:DeleteParameter", "ssm:GetParameterHistory"], "path": "behavioral/cloudcontrol/check_cloudcontrol_concurrent_patches_native_version_count_equals_successes.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-create-over-preexisting-native-resource-rejected-and-native-value-untouched", "deployments": [], "key": "cloudcontrol/cloudcontrol-create-over-preexisting-native-resource-rejected-and-native-value-untouched", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudcontrol/check_cloudcontrol_create_over_preexisting_native_resource_rejected_and_native_value_untouched.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-create-ssm-parameter-visible-to-native-ssm-getparameter", "deployments": [], "key": "cloudcontrol/cloudcontrol-create-ssm-parameter-visible-to-native-ssm-getparameter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory"], "path": "behavioral/cloudcontrol/check_cloudcontrol_create_ssm_parameter_visible_to_native_ssm_getparameter.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-delete-resource-removes-the-native-log-group-not-just-the-index", "deployments": [], "key": "cloudcontrol/cloudcontrol-delete-resource-removes-the-native-log-group-not-just-the-index", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogEvents"], "path": "behavioral/cloudcontrol/check_cloudcontrol_delete_resource_removes_the_native_log_group_not_just_the_index.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-desired-state-tags-are-applied-to-the-native-resource", "deployments": [], "key": "cloudcontrol/cloudcontrol-desired-state-tags-are-applied-to-the-native-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "ssm:DeleteParameter", "ssm:ListTagsForResource"], "path": "behavioral/cloudcontrol/check_cloudcontrol_desired_state_tags_are_applied_to_the_native_resource.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-downstream-handler-rejected-create-leaves-no-native-table", "deployments": [], "key": "cloudcontrol/cloudcontrol-downstream-handler-rejected-create-leaves-no-native-table", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem"], "path": "behavioral/cloudcontrol/check_cloudcontrol_downstream_handler_rejected_create_leaves_no_native_table.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-list-resources-paginated-agrees-with-native-logs-inventory", "deployments": [], "key": "cloudcontrol/cloudcontrol-list-resources-paginated-agrees-with-native-logs-inventory", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudcontrol/check_cloudcontrol_list_resources_paginated_agrees_with_native_logs_inventory.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-patch-document-bumps-native-ssm-parameter-version-exactly-once", "deployments": [], "key": "cloudcontrol/cloudcontrol-patch-document-bumps-native-ssm-parameter-version-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory"], "path": "behavioral/cloudcontrol/check_cloudcontrol_patch_document_bumps_native_ssm_parameter_version_exactly_once.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.cloudcontrol-update-absent-identifier-denied-and-writes-nothing-native", "deployments": [], "key": "cloudcontrol/cloudcontrol-update-absent-identifier-denied-and-writes-nothing-native", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter"], "path": "behavioral/cloudcontrol/check_cloudcontrol_update_absent_identifier_denied_and_writes_nothing_native.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.concurrent-cancel-and-complete-race-ordering", "deployments": [], "key": "cloudcontrol/concurrent-cancel-and-complete-race-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_concurrent_cancel_and_complete_race_ordering.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.concurrent-cancel-vs-natural-completion-race", "deployments": [], "key": "cloudcontrol/concurrent-cancel-vs-natural-completion-race", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_concurrent_cancel_vs_natural_completion_race.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.concurrent-create-same-identifier-race", "deployments": [], "key": "cloudcontrol/concurrent-create-same-identifier-race", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_concurrent_create_same_identifier_race.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.concurrent-delete-and-update-same-identifier-race", "deployments": [], "key": "cloudcontrol/concurrent-delete-and-update-same-identifier-race", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:GetQueueAttributes"], "path": "behavioral/cloudcontrol/check_concurrent_delete_and_update_same_identifier_race.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.concurrent-delete-during-update-race-single-winner", "deployments": [], "key": "cloudcontrol/concurrent-delete-during-update-race-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_concurrent_delete_during_update_race_single_winner.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.concurrent-delete-same-identifier-race", "deployments": [], "key": "cloudcontrol/concurrent-delete-same-identifier-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "sqs:GetQueueAttributes"], "path": "behavioral/cloudcontrol/check_concurrent_delete_same_identifier_race.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.concurrent-update-same-identifier-race", "deployments": [], "key": "cloudcontrol/concurrent-update-same-identifier-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_concurrent_update_same_identifier_race.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-duplicate-identifier-rejected", "deployments": [], "key": "cloudcontrol/create-duplicate-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_create_duplicate_identifier_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-only-property-mutation-rejected", "deployments": [], "key": "cloudcontrol/create-only-property-mutation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_create_only_property_mutation_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-access-denied-blocked", "deployments": [], "key": "cloudcontrol/create-resource-access-denied-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:GetQueueUrl", "sqs:ListQueues"], "path": "behavioral/cloudcontrol/check_create_resource_access_denied_blocked.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-duplicate-identifier-already-exists", "deployments": [], "key": "cloudcontrol/create-resource-duplicate-identifier-already-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_create_resource_duplicate_identifier_already_exists.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-invalid-type-name", "deployments": [], "key": "cloudcontrol/create-resource-invalid-type-name", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_create_resource_invalid_type_name.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-malformed-desired-state-invalid-request", "deployments": [], "key": "cloudcontrol/create-resource-malformed-desired-state-invalid-request", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_create_resource_malformed_desired_state_invalid_request.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-missing-permission-denied-rejected", "deployments": [], "key": "cloudcontrol/create-resource-missing-permission-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "iam:CreateRole", "iam:DeleteRole", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_create_resource_missing_permission_denied_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-missing-required-property-rejected", "deployments": [], "key": "cloudcontrol/create-resource-missing-required-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "iam:GetRole"], "path": "behavioral/cloudcontrol/check_create_resource_missing_required_property_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-out-of-range-property-rejected", "deployments": [], "key": "cloudcontrol/create-resource-out-of-range-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "sqs:ListQueues"], "path": "behavioral/cloudcontrol/check_create_resource_out_of_range_property_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-out-of-range-value-rejected", "deployments": [], "key": "cloudcontrol/create-resource-out-of-range-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_create_resource_out_of_range_value_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-schema-type-mismatch-rejected", "deployments": [], "key": "cloudcontrol/create-resource-schema-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_create_resource_schema_type_mismatch_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-success-get", "deployments": [], "key": "cloudcontrol/create-resource-success-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_create_resource_success_get.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-unknown-extra-property-rejected", "deployments": [], "key": "cloudcontrol/create-resource-unknown-extra-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_create_resource_unknown_extra_property_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-resource-unsupported-type-target-rejected", "deployments": [], "key": "cloudcontrol/create-resource-unsupported-type-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudformation:ListTypes"], "path": "behavioral/cloudcontrol/check_create_resource_unsupported_type_target_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.create-then-list-request-immediately-visible", "deployments": [], "key": "cloudcontrol/create-then-list-request-immediately-visible", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_create_then_list_request_immediately_visible.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.delete-nonexistent-resource-failed-request-ordering-preserved", "deployments": [], "key": "cloudcontrol/delete-nonexistent-resource-failed-request-ordering-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_delete_nonexistent_resource_failed_request_ordering_preserved.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.delete-resource-during-in-progress-create-conflict", "deployments": [], "key": "cloudcontrol/delete-resource-during-in-progress-create-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SignalResource"], "path": "behavioral/cloudcontrol/check_delete_resource_during_in_progress_create_conflict.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.delete-resource-then-not-found", "deployments": [], "key": "cloudcontrol/delete-resource-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_delete_resource_then_not_found.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.delete-resource-twice-not-found", "deployments": [], "key": "cloudcontrol/delete-resource-twice-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_delete_resource_twice_not_found.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.delete-resource-wrong-state-blocked", "deployments": [], "key": "cloudcontrol/delete-resource-wrong-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudcontrol/check_delete_resource_wrong_state_blocked.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.delete-then-recreate-succeeds", "deployments": [], "key": "cloudcontrol/delete-then-recreate-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_delete_then_recreate_succeeds.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.deploy-cfn-immutable-property-update-rejected", "deployments": [], "key": "cloudcontrol/deploy-cfn-immutable-property-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sqs:GetQueueAttributes"], "path": "behavioral/cloudcontrol/check_deploy_cfn_immutable_property_update_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.deploy-cfn-resource-behaves", "deployments": [], "key": "cloudcontrol/deploy-cfn-resource-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:ListResources", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudcontrol/check_deploy_cfn_resource_behaves.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.deploy-cfn-resource-behaves-post-create", "deployments": [], "key": "cloudcontrol/deploy-cfn-resource-behaves-post-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sqs:GetQueueAttributes"], "path": "behavioral/cloudcontrol/check_deploy_cfn_resource_behaves_post_create.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.deploy-cfn-stack-deletion-removes-resource", "deployments": [], "key": "cloudcontrol/deploy-cfn-stack-deletion-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/cloudcontrol/check_deploy_cfn_stack_deletion_removes_resource.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.deploy-cfn-update-reflected-in-getresource", "deployments": [], "key": "cloudcontrol/deploy-cfn-update-reflected-in-getresource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudcontrol/check_deploy_cfn_update_reflected_in_getresource.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.deploy-cloudformation-resource-behaves", "deployments": [], "key": "cloudcontrol/deploy-cloudformation-resource-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sqs:GetQueueAttributes"], "path": "behavioral/cloudcontrol/check_deploy_cloudformation_resource_behaves.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.deploy-cloudformation-stack-deletion-removes-resource", "deployments": [], "key": "cloudcontrol/deploy-cloudformation-stack-deletion-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudcontrol/check_deploy_cloudformation_stack_deletion_removes_resource.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.desired-state-enum-violation-rejected", "deployments": [], "key": "cloudcontrol/desired-state-enum-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_desired_state_enum_violation_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.desired-state-pattern-violation-rejected", "deployments": [], "key": "cloudcontrol/desired-state-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_desired_state_pattern_violation_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.desired-state-unknown-property-rejected", "deployments": [], "key": "cloudcontrol/desired-state-unknown-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_desired_state_unknown_property_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.desired-state-wrong-json-type-rejected", "deployments": [], "key": "cloudcontrol/desired-state-wrong-json-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_desired_state_wrong_json_type_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.duplicate-client-token-conflict-rejected", "deployments": [], "key": "cloudcontrol/duplicate-client-token-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_duplicate_client_token_conflict_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.e2e-cancel-request-mid-flight-resource-absent", "deployments": [], "key": "cloudcontrol/e2e-cancel-request-mid-flight-resource-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources", "sns:GetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_e2e_cancel_request_mid_flight_resource_absent.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.e2e-create-update-delete-consequence-flow", "deployments": [], "key": "cloudcontrol/e2e-create-update-delete-consequence-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources", "cloudcontrol:UpdateResource", "sqs:GetQueueAttributes"], "path": "behavioral/cloudcontrol/check_e2e_create_update_delete_consequence_flow.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.e2e-create-update-observe-delete-flow", "deployments": [], "key": "cloudcontrol/e2e-create-update-observe-delete-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_e2e_create_update_observe_delete_flow.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.e2e-create-use-observe-delete", "deployments": [], "key": "cloudcontrol/e2e-create-use-observe-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources", "cloudcontrol:UpdateResource", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudcontrol/check_e2e_create_use_observe_delete.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.e2e-immutable-property-update-rejected", "deployments": [], "key": "cloudcontrol/e2e-immutable-property-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_e2e_immutable_property_update_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.e2e-list-visibility-after-partial-deletion", "deployments": [], "key": "cloudcontrol/e2e-list-visibility-after-partial-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_e2e_list_visibility_after_partial_deletion.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.e2e-update-changes-runtime-behavior", "deployments": [], "key": "cloudcontrol/e2e-update-changes-runtime-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudcontrol/check_e2e_update_changes_runtime_behavior.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.empty-string-vs-absent-property-preserved", "deployments": [], "key": "cloudcontrol/empty-string-vs-absent-property-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_empty_string_vs_absent_property_preserved.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.empty-vs-absent-property-distinguished", "deployments": [], "key": "cloudcontrol/empty-vs-absent-property-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudcontrol/check_empty_vs_absent_property_distinguished.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.empty-vs-absent-property-preserved", "deployments": [], "key": "cloudcontrol/empty-vs-absent-property-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_empty_vs_absent_property_preserved.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.fabricated-type-version-id-ignored-for-a-public-type", "deployments": [], "key": "cloudcontrol/fabricated-type-version-id-ignored-for-a-public-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter"], "path": "behavioral/cloudcontrol/check_fabricated_type_version_id_ignored_for_a_public_type.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.failed-request-progress-event-carries-error-code-and-status-message", "deployments": [], "key": "cloudcontrol/failed-request-progress-event-carries-error-code-and-status-message", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_failed_request_progress_event_carries_error_code_and_status_message.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.get-resource-nonexistent-returns-not-found", "deployments": [], "key": "cloudcontrol/get-resource-nonexistent-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_get_resource_nonexistent_returns_not_found.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.get-resource-request-status-bogus-token", "deployments": [], "key": "cloudcontrol/get-resource-request-status-bogus-token", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_get_resource_request_status_bogus_token.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.get-resource-request-status-cancelled-status-exact", "deployments": [], "key": "cloudcontrol/get-resource-request-status-cancelled-status-exact", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CancelResourceRequest", "cloudcontrol:CreateResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables"], "path": "behavioral/cloudcontrol/check_get_resource_request_status_cancelled_status_exact.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.get-resource-request-status-invalid-token-rejected", "deployments": [], "key": "cloudcontrol/get-resource-request-status-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_get_resource_request_status_invalid_token_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.get-resource-request-status-unauthorized-denied", "deployments": [], "key": "cloudcontrol/get-resource-request-status-unauthorized-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "iam:CreateRole", "iam:DeleteRole", "sqs:DeleteQueue", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_get_resource_request_status_unauthorized_denied.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.get-resource-request-status-unknown-token-rejected", "deployments": [], "key": "cloudcontrol/get-resource-request-status-unknown-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_get_resource_request_status_unknown_token_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.in-progress-request-bounded-completion-timeout", "deployments": [], "key": "cloudcontrol/in-progress-request-bounded-completion-timeout", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_in_progress_request_bounded_completion_timeout.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.invalid-schema-property-rejected", "deployments": [], "key": "cloudcontrol/invalid-schema-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudcontrol/check_invalid_schema_property_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-and-get-status-agree-on-one-request", "deployments": [], "key": "cloudcontrol/list-resource-requests-and-get-status-agree-on-one-request", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudcontrol/check_list_resource_requests_and_get_status_agree_on_one_request.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-chronological-order", "deployments": [], "key": "cloudcontrol/list-resource-requests-chronological-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_list_resource_requests_chronological_order.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-chronological-ordering", "deployments": [], "key": "cloudcontrol/list-resource-requests-chronological-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_list_resource_requests_chronological_ordering.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-honors-status-filter", "deployments": [], "key": "cloudcontrol/list-resource-requests-honors-status-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_honors_status_filter.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-invalid-next-token-rejected", "deployments": [], "key": "cloudcontrol/list-resource-requests-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_invalid_next_token_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-operation-type-filter-preserves-order", "deployments": [], "key": "cloudcontrol/list-resource-requests-operation-type-filter-preserves-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_list_resource_requests_operation_type_filter_preserves_order.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-ordered-by-requested-time-desc", "deployments": [], "key": "cloudcontrol/list-resource-requests-ordered-by-requested-time-desc", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_ordered_by_requested_time_desc.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-ordering-reflects-submission-order", "deployments": [], "key": "cloudcontrol/list-resource-requests-ordering-reflects-submission-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests", "cloudcontrol:UpdateResource", "sqs:DeleteQueue"], "path": "behavioral/cloudcontrol/check_list_resource_requests_ordering_reflects_submission_order.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-pagination-consistent-order", "deployments": [], "key": "cloudcontrol/list-resource-requests-pagination-consistent-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_pagination_consistent_order.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-pagination-no-duplicates", "deployments": [], "key": "cloudcontrol/list-resource-requests-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_pagination_no_duplicates.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-reflects-create", "deployments": [], "key": "cloudcontrol/list-resource-requests-reflects-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_reflects_create.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-resource-type-filter-preserves-order", "deployments": [], "key": "cloudcontrol/list-resource-requests-resource-type-filter-preserves-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_resource_type_filter_preserves_order.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-status-filter-preserves-order", "deployments": [], "key": "cloudcontrol/list-resource-requests-status-filter-preserves-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_status_filter_preserves_order.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resource-requests-time-window-filter", "deployments": [], "key": "cloudcontrol/list-resource-requests-time-window-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_list_resource_requests_time_window_filter.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resources-contains-created", "deployments": [], "key": "cloudcontrol/list-resources-contains-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_list_resources_contains_created.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resources-filters-by-type-name", "deployments": [], "key": "cloudcontrol/list-resources-filters-by-type-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_list_resources_filters_by_type_name.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resources-invalid-type-rejected", "deployments": [], "key": "cloudcontrol/list-resources-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_list_resources_invalid_type_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resources-pagination-no-duplicates-or-gaps", "deployments": [], "key": "cloudcontrol/list-resources-pagination-no-duplicates-or-gaps", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_list_resources_pagination_no_duplicates_or_gaps.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resources-pagination-stable-no-duplicates", "deployments": [], "key": "cloudcontrol/list-resources-pagination-stable-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_list_resources_pagination_stable_no_duplicates.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resources-pagination-stable-ordering", "deployments": [], "key": "cloudcontrol/list-resources-pagination-stable-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_list_resources_pagination_stable_ordering.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resources-properties-match-get-resource", "deployments": [], "key": "cloudcontrol/list-resources-properties-match-get-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_list_resources_properties_match_get_resource.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.list-resources-resource-model-scopes-compound-identifier", "deployments": [], "key": "cloudcontrol/list-resources-resource-model-scopes-compound-identifier", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources"], "path": "behavioral/cloudcontrol/check_list_resources_resource_model_scopes_compound_identifier.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.long-running-request-timeout-yields-failed-status", "deployments": [], "key": "cloudcontrol/long-running-request-timeout-yields-failed-status", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_long_running_request_timeout_yields_failed_status.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.numeric-precision-preserved", "deployments": [], "key": "cloudcontrol/numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudcontrol/check_numeric_precision_preserved.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.numeric-precision-property-round-trip", "deployments": [], "key": "cloudcontrol/numeric-precision-property-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_numeric_precision_property_round_trip.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.numeric-precision-round-trip", "deployments": [], "key": "cloudcontrol/numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_numeric_precision_round_trip.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.numeric-property-type-mismatch-rejected", "deployments": [], "key": "cloudcontrol/numeric-property-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudcontrol/check_numeric_property_type_mismatch_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.patch-create-only-non-identifier-property-refused-while-updatable-sibling-applies", "deployments": [], "key": "cloudcontrol/patch-create-only-non-identifier-property-refused-while-updatable-sibling-applies", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_patch_create_only_non_identifier_property_refused_while_updatable_sibling_applies.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.patch-multi-op-atomicity-no-partial-apply", "deployments": [], "key": "cloudcontrol/patch-multi-op-atomicity-no-partial-apply", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_patch_multi_op_atomicity_no_partial_apply.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.patch-remove-required-property-rejected", "deployments": [], "key": "cloudcontrol/patch-remove-required-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_patch_remove_required_property_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.patch-replace-nonexistent-path-rejected", "deployments": [], "key": "cloudcontrol/patch-replace-nonexistent-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_patch_replace_nonexistent_path_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.primary-identifier-accepted-as-json-derived-from-the-registry-schema", "deployments": [], "key": "cloudcontrol/primary-identifier-accepted-as-json-derived-from-the-registry-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudformation:DescribeType", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_primary_identifier_accepted_as_json_derived_from_the_registry_schema.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.progress-event-request-tokens-distinct-and-records-retained", "deployments": [], "key": "cloudcontrol/progress-event-request-tokens-distinct-and-records-retained", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_progress_event_request_tokens_distinct_and_records_retained.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.request-status-monotonic-transition-timing", "deployments": [], "key": "cloudcontrol/request-status-monotonic-transition-timing", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_request_status_monotonic_transition_timing.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.request-status-operation-field-reflects-update", "deployments": [], "key": "cloudcontrol/request-status-operation-field-reflects-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_request_status_operation_field_reflects_update.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.request-status-polls-to-success", "deployments": [], "key": "cloudcontrol/request-status-polls-to-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "ssm:GetParameter"], "path": "behavioral/cloudcontrol/check_request_status_polls_to_success.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.request-token-ttl-expiry-status-query", "deployments": [], "key": "cloudcontrol/request-token-ttl-expiry-status-query", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_request_token_ttl_expiry_status_query.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.request-visible-in-list-before-completion", "deployments": [], "key": "cloudcontrol/request-visible-in-list-before-completion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_request_visible_in_list_before_completion.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.resource-request-status-monotonic-progression", "deployments": [], "key": "cloudcontrol/resource-request-status-monotonic-progression", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_resource_request_status_monotonic_progression.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.resource-request-status-terminal-after-ttl-expiry", "deployments": [], "key": "cloudcontrol/resource-request-status-terminal-after-ttl-expiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests", "sqs:DeleteQueue"], "path": "behavioral/cloudcontrol/check_resource_request_status_terminal_after_ttl_expiry.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.role-arn-service-role-policy-governs-the-downstream-delete", "deployments": [], "key": "cloudcontrol/role-arn-service-role-policy-governs-the-downstream-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:DeleteParameter", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_role_arn_service_role_policy_governs_the_downstream_delete.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.same-identifier-different-types-isolated", "deployments": [], "key": "cloudcontrol/same-identifier-different-types-isolated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_same_identifier_different_types_isolated.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-enforced-concurrent-operation-limit-rejected", "deployments": [], "key": "cloudcontrol/server-enforced-concurrent-operation-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/cloudcontrol/check_server_enforced_concurrent_operation_limit_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-enforced-concurrent-operation-limit-throttling-dup-removed", "deployments": [], "key": "cloudcontrol/server-enforced-concurrent-operation-limit-throttling-dup-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_server_enforced_concurrent_operation_limit_throttling_dup_removed.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-computed-readonly-property-rejected-on-write", "deployments": [], "key": "cloudcontrol/server-side-computed-readonly-property-rejected-on-write", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_server_side_computed_readonly_property_rejected_on_write.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-default-property-populated", "deployments": [], "key": "cloudcontrol/server-side-default-property-populated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_server_side_default_property_populated.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-enforced-policy-applied-without-client-input", "deployments": [], "key": "cloudcontrol/server-side-enforced-policy-applied-without-client-input", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_server_side_enforced_policy_applied_without_client_input.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-handler-failure-propagates-exact-exception", "deployments": [], "key": "cloudcontrol/server-side-handler-failure-propagates-exact-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudcontrol/check_server_side_handler_failure_propagates_exact_exception.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-handler-failure-propagates-exact-exception-dup-removed", "deployments": [], "key": "cloudcontrol/server-side-handler-failure-propagates-exact-exception-dup-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_server_side_handler_failure_propagates_exact_exception_dup_removed.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-progress-events-tracked-per-request", "deployments": [], "key": "cloudcontrol/server-side-progress-events-tracked-per-request", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_server_side_progress_events_tracked_per_request.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-progress-events-tracked-per-request-dup-removed", "deployments": [], "key": "cloudcontrol/server-side-progress-events-tracked-per-request-dup-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests"], "path": "behavioral/cloudcontrol/check_server_side_progress_events_tracked_per_request_dup_removed.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-rollback-on-create-failure-no-partial-resource", "deployments": [], "key": "cloudcontrol/server-side-rollback-on-create-failure-no-partial-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_server_side_rollback_on_create_failure_no_partial_resource.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-rollback-on-create-failure-no-partial-resource-dup-removed", "deployments": [], "key": "cloudcontrol/server-side-rollback-on-create-failure-no-partial-resource-dup-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_server_side_rollback_on_create_failure_no_partial_resource_dup_removed.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-unique-request-token-per-operation", "deployments": [], "key": "cloudcontrol/server-side-unique-request-token-per-operation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "sns:DeleteTopic", "sns:GetTopicAttributes", "sqs:DeleteQueue", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_server_side_unique_request_token_per_operation.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.server-side-unique-request-token-per-operation-dup-removed", "deployments": [], "key": "cloudcontrol/server-side-unique-request-token-per-operation-dup-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_server_side_unique_request_token_per_operation_dup_removed.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.timestamp-property-precision-preserved", "deployments": [], "key": "cloudcontrol/timestamp-property-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_timestamp_property_precision_preserved.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.timestamp-property-preserved", "deployments": [], "key": "cloudcontrol/timestamp-property-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_timestamp_property_preserved.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.timestamp-property-preserved-exact-format", "deployments": [], "key": "cloudcontrol/timestamp-property-preserved-exact-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_timestamp_property_preserved_exact_format.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.unicode-property-round-trip", "deployments": [], "key": "cloudcontrol/unicode-property-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "sqs:ListQueueTags"], "path": "behavioral/cloudcontrol/check_unicode_property_round_trip.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.unicode-property-value-round-trip", "deployments": [], "key": "cloudcontrol/unicode-property-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus"], "path": "behavioral/cloudcontrol/check_unicode_property_value_round_trip.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-create-only-property-rejected", "deployments": [], "key": "cloudcontrol/update-create-only-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_create_only_property_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-during-in-progress-create-conflict", "deployments": [], "key": "cloudcontrol/update-during-in-progress-create-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_during_in_progress_create_conflict.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-immutable-property-rejected", "deployments": [], "key": "cloudcontrol/update-immutable-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_immutable_property_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-malformed-patch-document-rejected", "deployments": [], "key": "cloudcontrol/update-malformed-patch-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_malformed_patch_document_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-nonexistent-resource-must-fail", "deployments": [], "key": "cloudcontrol/update-nonexistent-resource-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudcontrol/check_update_nonexistent_resource_must_fail.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-patch-add-then-remove-property", "deployments": [], "key": "cloudcontrol/update-patch-add-then-remove-property", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_patch_add_then_remove_property.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-resource-conflicting-name-rejected", "deployments": [], "key": "cloudcontrol/update-resource-conflicting-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy"], "path": "behavioral/cloudcontrol/check_update_resource_conflicting_name_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-resource-empty-patch-is-noop", "deployments": [], "key": "cloudcontrol/update-resource-empty-patch-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol/check_update_resource_empty_patch_is_noop.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-resource-immutable-property-not-updatable", "deployments": [], "key": "cloudcontrol/update-resource-immutable-property-not-updatable", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_resource_immutable_property_not_updatable.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-resource-invalid-client-token-format-rejected", "deployments": [], "key": "cloudcontrol/update-resource-invalid-client-token-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_resource_invalid_client_token_format_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-resource-invalid-json-patch", "deployments": [], "key": "cloudcontrol/update-resource-invalid-json-patch", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_resource_invalid_json_patch.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-resource-nonexistent-fails-async-not-sync", "deployments": [], "key": "cloudcontrol/update-resource-nonexistent-fails-async-not-sync", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResourceRequests", "cloudcontrol:UpdateResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudcontrol/check_update_resource_nonexistent_fails_async_not_sync.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-resource-type-mismatch-value-rejected", "deployments": [], "key": "cloudcontrol/update-resource-type-mismatch-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/cloudcontrol/check_update_resource_type_mismatch_value_rejected.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol.update-resource-updates-value", "deployments": [], "key": "cloudcontrol/update-resource-updates-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource"], "path": "behavioral/cloudcontrol/check_update_resource_updates_value.py", "service": "cloudcontrol"} {"check_id": "cloudcontrol__cloudformation__lambda.lambda-function-code-zipfile-writeonly-update-hidden-from-cloudcontrol", "deployments": [], "key": "cloudcontrol__cloudformation__lambda/lambda-function-code-zipfile-writeonly-update-hidden-from-cloudcontrol", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudcontrol:GetResource", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListTags", "lambda:TagResource", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudcontrol__cloudformation__lambda/check_lambda_function_code_zipfile_writeonly_update_hidden_from_cloudcontrol.py", "service": "cloudcontrol__cloudformation__lambda"} {"check_id": "cloudcontrol__cloudformation__secretsmanager.cfn-secretsmanager-secret-unknown-property-rejected-with-positive-control", "deployments": [], "key": "cloudcontrol__cloudformation__secretsmanager/cfn-secretsmanager-secret-unknown-property-rejected-with-positive-control", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/cloudcontrol__cloudformation__secretsmanager/check_cfn_secretsmanager_secret_unknown_property_rejected_with_positive_control.py", "service": "cloudcontrol__cloudformation__secretsmanager"} {"check_id": "cloudcontrol__cloudformation__secretsmanager.secretsmanager-secretstring-writeonly-update-hidden-from-cloudcontrol", "deployments": [], "key": "cloudcontrol__cloudformation__secretsmanager/secretsmanager-secretstring-writeonly-update-hidden-from-cloudcontrol", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudcontrol:GetResource", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/cloudcontrol__cloudformation__secretsmanager/check_secretsmanager_secretstring_writeonly_update_hidden_from_cloudcontrol.py", "service": "cloudcontrol__cloudformation__secretsmanager"} {"check_id": "cloudcontrol__cloudformation__ssm.cfn-ssm-parameter-unknown-property-rejected-with-positive-control", "deployments": [], "key": "cloudcontrol__cloudformation__ssm/cfn-ssm-parameter-unknown-property-rejected-with-positive-control", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:GetParameter"], "path": "behavioral/cloudcontrol__cloudformation__ssm/check_cfn_ssm_parameter_unknown_property_rejected_with_positive_control.py", "service": "cloudcontrol__cloudformation__ssm"} {"check_id": "cloudcontrol__cloudformation__ssm.ssm-parameter-writeonly-properties-update-hidden-from-cloudcontrol", "deployments": [], "key": "cloudcontrol__cloudformation__ssm/ssm-parameter-writeonly-properties-update-hidden-from-cloudcontrol", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources", "ssm:DescribeParameters"], "path": "behavioral/cloudcontrol__cloudformation__ssm/check_ssm_parameter_writeonly_properties_update_hidden_from_cloudcontrol.py", "service": "cloudcontrol__cloudformation__ssm"} {"check_id": "cloudcontrol__cloudformation__stepfunctions.cfn-statemachine-missing-rolearn-rejected-with-positive-control", "deployments": [], "key": "cloudcontrol__cloudformation__stepfunctions/cfn-statemachine-missing-rolearn-rejected-with-positive-control", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "stepfunctions:DescribeStateMachine"], "path": "behavioral/cloudcontrol__cloudformation__stepfunctions/check_cfn_statemachine_missing_rolearn_rejected_with_positive_control.py", "service": "cloudcontrol__cloudformation__stepfunctions"} {"check_id": "cloudcontrol__dynamodb.cloudcontrol-success-means-the-native-table-is-already-active-and-writable", "deployments": [], "key": "cloudcontrol__dynamodb/cloudcontrol-success-means-the-native-table-is-already-active-and-writable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudcontrol__dynamodb/check_cloudcontrol_success_means_the_native_table_is_already_active_and_writable.py", "service": "cloudcontrol__dynamodb"} {"check_id": "cloudcontrol__dynamodb.native-dynamodb-table-delete-leaves-cloudcontrol-not-found", "deployments": [], "key": "cloudcontrol__dynamodb/native-dynamodb-table-delete-leaves-cloudcontrol-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:ListResources", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudcontrol__dynamodb/check_native_dynamodb_table_delete_leaves_cloudcontrol_not_found.py", "service": "cloudcontrol__dynamodb"} {"check_id": "cloudcontrol__iam__stepfunctions.cloudcontrol-iam-managed-policy-lifecycle-identifier-is-arn", "deployments": [], "key": "cloudcontrol__iam__stepfunctions/cloudcontrol-iam-managed-policy-lifecycle-identifier-is-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources", "cloudcontrol:UpdateResource", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicyVersions"], "path": "behavioral/cloudcontrol__iam__stepfunctions/check_cloudcontrol_iam_managed_policy_lifecycle_identifier_is_arn.py", "service": "cloudcontrol__iam__stepfunctions"} {"check_id": "cloudcontrol__iam__stepfunctions.cloudcontrol-state-machine-definition-object-round-trip", "deployments": [], "key": "cloudcontrol__iam__stepfunctions/cloudcontrol-state-machine-definition-object-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudcontrol__iam__stepfunctions/check_cloudcontrol_state_machine_definition_object_round_trip.py", "service": "cloudcontrol__iam__stepfunctions"} {"check_id": "cloudcontrol__iam__stepfunctions.cloudcontrol-state-machine-definition-replace-patch-rejected", "deployments": [], "key": "cloudcontrol__iam__stepfunctions/cloudcontrol-state-machine-definition-replace-patch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/cloudcontrol__iam__stepfunctions/check_cloudcontrol_state_machine_definition_replace_patch_rejected.py", "service": "cloudcontrol__iam__stepfunctions"} {"check_id": "cloudcontrol__logs.native-log-group-delete-leaves-cloudcontrol-not-found", "deployments": [], "key": "cloudcontrol__logs/native-log-group-delete-leaves-cloudcontrol-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:ListResources", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy"], "path": "behavioral/cloudcontrol__logs/check_native_log_group_delete_leaves_cloudcontrol_not_found.py", "service": "cloudcontrol__logs"} {"check_id": "cloudcontrol__s3.native-s3-bucket-delete-leaves-cloudcontrol-not-found", "deployments": [], "key": "cloudcontrol__s3/native-s3-bucket-delete-leaves-cloudcontrol-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:ListResources", "s3:CreateBucket", "s3:DeleteBucket", "s3:HeadBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudcontrol__s3/check_native_s3_bucket_delete_leaves_cloudcontrol_not_found.py", "service": "cloudcontrol__s3"} {"check_id": "cloudcontrol__sqs.cloudcontrol-lifecycle-visible-to-native-sqs-api", "deployments": [], "key": "cloudcontrol__sqs/cloudcontrol-lifecycle-visible-to-native-sqs-api", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudcontrol__sqs/check_cloudcontrol_lifecycle_visible_to_native_sqs_api.py", "service": "cloudcontrol__sqs"} {"check_id": "cloudcontrol__sqs.cloudcontrol-patch-remove-restores-the-native-sqs-default", "deployments": [], "key": "cloudcontrol__sqs/cloudcontrol-patch-remove-restores-the-native-sqs-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:CreateResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:UpdateResource", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol__sqs/check_cloudcontrol_patch_remove_restores_the_native_sqs_default.py", "service": "cloudcontrol__sqs"} {"check_id": "cloudcontrol__sqs.cloudcontrol-reads-and-writes-through-to-a-natively-created-queue", "deployments": [], "key": "cloudcontrol__sqs/cloudcontrol-reads-and-writes-through-to-a-natively-created-queue", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudcontrol:DeleteResource", "cloudcontrol:GetResource", "cloudcontrol:GetResourceRequestStatus", "cloudcontrol:ListResources", "cloudcontrol:UpdateResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:SetQueueAttributes"], "path": "behavioral/cloudcontrol__sqs/check_cloudcontrol_reads_and_writes_through_to_a_natively_created_queue.py", "service": "cloudcontrol__sqs"} {"check_id": "cloudcontrol__sqs.native-sqs-queue-delete-leaves-cloudcontrol-not-found", "deployments": [], "key": "cloudcontrol__sqs/native-sqs-queue-delete-leaves-cloudcontrol-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:ListResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudcontrol__sqs/check_native_sqs_queue_delete_leaves_cloudcontrol_not_found.py", "service": "cloudcontrol__sqs"} {"check_id": "cloudcontrol__ssm.native-ssm-parameter-delete-leaves-cloudcontrol-not-found", "deployments": [], "key": "cloudcontrol__ssm/native-ssm-parameter-delete-leaves-cloudcontrol-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudcontrol:GetResource", "cloudcontrol:ListResources", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudcontrol__ssm/check_native_ssm_parameter_delete_leaves_cloudcontrol_not_found.py", "service": "cloudcontrol__ssm"} {"check_id": "cloudformation.activate-nonexistent-public-type-fails", "deployments": [], "key": "cloudformation/activate-nonexistent-public-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ActivateType"], "path": "behavioral/cloudformation/check_activate_nonexistent_public_type_fails.py", "service": "cloudformation"} {"check_id": "cloudformation.batch-describe-type-configurations-multi-key-lookup", "deployments": [], "key": "cloudformation/batch-describe-type-configurations-multi-key-lookup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:BatchDescribeTypeConfigurations", "cloudformation:DeactivateType", "cloudformation:SetTypeConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudformation/check_batch_describe_type_configurations_multi_key_lookup.py", "service": "cloudformation"} {"check_id": "cloudformation.batch-describe-type-configurations-not-found-error", "deployments": [], "key": "cloudformation/batch-describe-type-configurations-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:BatchDescribeTypeConfigurations", "cloudformation:DeactivateType", "cloudformation:SetTypeConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudformation/check_batch_describe_type_configurations_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.batch-describe-type-configurations-partial-failure-isolation", "deployments": [], "key": "cloudformation/batch-describe-type-configurations-partial-failure-isolation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:BatchDescribeTypeConfigurations", "cloudformation:DeactivateType", "cloudformation:SetTypeConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudformation/check_batch_describe_type_configurations_partial_failure_isolation.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-default-synthesizer-needs-bootstrap-without-user-assets", "deployments": ["behavioral/cloudformation/deployments/cdk_table_bootstrap/app.py", "behavioral/cloudformation/deployments/cdk_table_bootstrap/cdk.json"], "key": "cloudformation/cdk-default-synthesizer-needs-bootstrap-without-user-assets", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "dynamodb:PutItem", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_default_synthesizer_needs_bootstrap_without_user_assets.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-deploy-method-direct-creates-and-updates-without-a-change-set", "deployments": ["behavioral/cloudformation/deployments/cdk_deploy_method_direct/app.py", "behavioral/cloudformation/deployments/cdk_deploy_method_direct/cdk.json"], "key": "cloudformation/cdk-deploy-method-direct-creates-and-updates-without-a-change-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets"], "path": "behavioral/cloudformation/check_cdk_deploy_method_direct_creates_and_updates_without_a_change_set.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-deploy-replaces-a-rollback-complete-stack-with-a-new-one", "deployments": ["behavioral/cloudformation/deployments/cdk_recreate_rollback_complete/app.py", "behavioral/cloudformation/deployments/cdk_recreate_rollback_complete/cdk.json"], "key": "cloudformation/cdk-deploy-replaces-a-rollback-complete-stack-with-a-new-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_cdk_deploy_replaces_a_rollback_complete_stack_with_a_new_one.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-deployed-l2-trio-serves-http-and-persists", "deployments": ["behavioral/cloudformation/deployments/cdk_trio/app.py", "behavioral/cloudformation/deployments/cdk_trio/cdk.json"], "key": "cloudformation/cdk-deployed-l2-trio-serves-http-and-persists", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetRestApi", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_deployed_l2_trio_serves_http_and_persists.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-destroy-refused-while-termination-protection-is-enabled", "deployments": ["behavioral/cloudformation/deployments/cdk_termination_protection/app.py", "behavioral/cloudformation/deployments/cdk_termination_protection/cdk.json"], "key": "cloudformation/cdk-destroy-refused-while-termination-protection-is-enabled", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection"], "path": "behavioral/cloudformation/check_cdk_destroy_refused_while_termination_protection_is_enabled.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-diff-sees-template-change-not-out-of-band-drift", "deployments": ["behavioral/cloudformation/deployments/cdk_table_diffable/app.py", "behavioral/cloudformation/deployments/cdk_table_diffable/cdk.json"], "key": "cloudformation/cdk-diff-sees-template-change-not-out-of-band-drift", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "dynamodb:DescribeContinuousBackups", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_diff_sees_template_change_not_out_of_band_drift.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-function-default-props-grant-real-log-writes", "deployments": ["behavioral/cloudformation/deployments/cdk_fn_defaults/app.py", "behavioral/cloudformation/deployments/cdk_fn_defaults/cdk.json"], "key": "cloudformation/cdk-function-default-props-grant-real-log-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:DeleteRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_function_default_props_grant_real_log_writes.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-grant-read-data-permits-real-read-denies-real-write", "deployments": ["behavioral/cloudformation/deployments/cdk_grant/app.py", "behavioral/cloudformation/deployments/cdk_grant/cdk.json"], "key": "cloudformation/cdk-grant-read-data-permits-real-read-denies-real-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "dynamodb:PutItem", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_grant_read_data_permits_real_read_denies_real_write.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-nested-stack-is-tracked-and-cascades-on-delete", "deployments": ["behavioral/cloudformation/deployments/cdk_nested_stack/app.py", "behavioral/cloudformation/deployments/cdk_nested_stack/cdk.json"], "key": "cloudformation/cdk-nested-stack-is-tracked-and-cascades-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:DescribeRepositories", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_nested_stack_is_tracked_and_cascades_on_delete.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-rebootstrap-with-a-custom-template-updates-the-toolkit-stack-in-place", "deployments": [], "key": "cloudformation/cdk-rebootstrap-with-a-custom-template-updates-the-toolkit-stack-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/cloudformation/check_cdk_rebootstrap_with_a_custom_template_updates_the_toolkit_stack_in_place.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-restapi-added-method-forces-a-new-deployment-that-serves", "deployments": ["behavioral/cloudformation/deployments/cdk_restapi_redeploy/app.py", "behavioral/cloudformation/deployments/cdk_restapi_redeploy/cdk.json"], "key": "cloudformation/cdk-restapi-added-method-forces-a-new-deployment-that-serves", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetRestApi", "apigateway:GetStage", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_restapi_added_method_forces_a_new_deployment_that_serves.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-restapi-cloudwatch-role-flag-governs-account-global-write", "deployments": ["behavioral/cloudformation/deployments/cdk_restapi_flag/app.py", "behavioral/cloudformation/deployments/cdk_restapi_flag/cdk.json"], "key": "cloudformation/cdk-restapi-cloudwatch-role-flag-governs-account-global-write", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:GetAccount", "apigateway:GetRestApi", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_restapi_cloudwatch_role_flag_governs_account_global_write.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-s3-auto-delete-objects-empties-past-destroy-manual-bucket-blocks-on-bucketnotempty", "deployments": ["behavioral/cloudformation/deployments/cdk_s3_autodelete/app.py", "behavioral/cloudformation/deployments/cdk_s3_autodelete/cdk.json"], "key": "cloudformation/cdk-s3-auto-delete-objects-empties-past-destroy-manual-bucket-blocks-on-bucketnotempty", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_s3_auto_delete_objects_empties_past_destroy_manual_bucket_blocks_on_bucketnotempty.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-synth-is-byte-deterministic-including-asset-hashes", "deployments": ["behavioral/cloudformation/deployments/cdk_fn_asset/app.py", "behavioral/cloudformation/deployments/cdk_fn_asset/cdk.json", "behavioral/cloudformation/deployments/cdk_fn_asset/handler/index.py", "behavioral/cloudformation/deployments/cdk_fn_inline/app.py", "behavioral/cloudformation/deployments/cdk_fn_inline/cdk.json"], "key": "cloudformation/cdk-synth-is-byte-deterministic-including-asset-hashes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_synth_is_byte_deterministic_including_asset_hashes.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-synth-refuses-construct-cycle-but-emits-a-cfn-cycle", "deployments": ["behavioral/cloudformation/deployments/cdk_cycle/app.py", "behavioral/cloudformation/deployments/cdk_cycle/cdk.json"], "key": "cloudformation/cdk-synth-refuses-construct-cycle-but-emits-a-cfn-cycle", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_synth_refuses_construct_cycle_but_emits_a_cfn_cycle.py", "service": "cloudformation"} {"check_id": "cloudformation.cdk-table-default-removal-policy-retains-past-destroy", "deployments": ["behavioral/cloudformation/deployments/cdk_table_removal/app.py", "behavioral/cloudformation/deployments/cdk_table_removal/cdk.json"], "key": "cloudformation/cdk-table-default-removal-policy-retains-past-destroy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_cdk_table_default_removal_policy_retains_past_destroy.py", "service": "cloudformation"} {"check_id": "cloudformation.cfn-bootstrap-version-rule-blocks-stale-qualifier", "deployments": ["behavioral/cloudformation/deployments/cdk_bootstrap_version_rule/app.py", "behavioral/cloudformation/deployments/cdk_bootstrap_version_rule/cdk.json"], "key": "cloudformation/cfn-bootstrap-version-rule-blocks-stale-qualifier", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "dynamodb:GetItem", "dynamodb:PutItem", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation/check_cfn_bootstrap_version_rule_blocks_stale_qualifier.py", "service": "cloudformation"} {"check_id": "cloudformation.cfn-changeset-resource-type-against-nonexistent-stack-rejected", "deployments": [], "key": "cloudformation/cfn-changeset-resource-type-against-nonexistent-stack-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_cfn_changeset_resource_type_against_nonexistent_stack_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.cfn-changeset-resource-type-provisions-real-change-set", "deployments": [], "key": "cloudformation/cfn-changeset-resource-type-provisions-real-change-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:GetTemplate"], "path": "behavioral/cloudformation/check_cfn_changeset_resource_type_provisions_real_change_set.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-client-token-retry-same-id-other-token-rejected", "deployments": [], "key": "cloudformation/change-set-client-token-retry-same-id-other-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets"], "path": "behavioral/cloudformation/check_change_set_client_token_retry_same_id_other_token_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-description-echoed-by-describe-and-list", "deployments": [], "key": "cloudformation/change-set-description-echoed-by-describe-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets"], "path": "behavioral/cloudformation/check_change_set_description_echoed_by_describe_and_list.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-execute-client-request-token-marks-only-its-events", "deployments": [], "key": "cloudformation/change-set-execute-client-request-token-marks-only-its-events", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_change_set_execute_client_request_token_marks_only_its_events.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-hooks-reflect-status", "deployments": [], "key": "cloudformation/change-set-hooks-reflect-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeChangeSetHooks", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_change_set_hooks_reflect_status.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-include-property-values-add-modify-remove-contexts", "deployments": [], "key": "cloudformation/change-set-include-property-values-add-modify-remove-contexts", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_change_set_include_property_values_add_modify_remove_contexts.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-on-stack-failure-delete-on-update-type-rejected", "deployments": [], "key": "cloudformation/change-set-on-stack-failure-delete-on-update-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets"], "path": "behavioral/cloudformation/check_change_set_on_stack_failure_delete_on_update_type_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-on-stack-failure-with-disable-rollback-rejected", "deployments": [], "key": "cloudformation/change-set-on-stack-failure-with-disable-rollback-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_change_set_on_stack_failure_with_disable_rollback_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-parameter-change-through-ref-chain-classifies-sources", "deployments": [], "key": "cloudformation/change-set-parameter-change-through-ref-chain-classifies-sources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_change_set_parameter_change_through_ref_chain_classifies_sources.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-replacement-vs-modify-classification", "deployments": [], "key": "cloudformation/change-set-replacement-vs-modify-classification", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_change_set_replacement_vs_modify_classification.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-resource-types-excluding-a-template-type-rejected", "deployments": [], "key": "cloudformation/change-set-resource-types-excluding-a-template-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_change_set_resource_types_excluding_a_template_type_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.change-set-stack-tag-change-scopes-tags-not-properties", "deployments": [], "key": "cloudformation/change-set-stack-tag-change-scopes-tags-not-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_change_set_stack_tag_change_scopes_tags_not_properties.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-arn-resolves-to-correct-stack-without-stack-name", "deployments": [], "key": "cloudformation/changeset-arn-resolves-to-correct-stack-without-stack-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_changeset_arn_resolves_to_correct_stack_without_stack_name.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-create-type-review-in-progress-flow", "deployments": [], "key": "cloudformation/changeset-create-type-review-in-progress-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_changeset_create_type_review_in_progress_flow.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-delete-invalid-status-rejected", "deployments": [], "key": "cloudformation/changeset-delete-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:SignalResource"], "path": "behavioral/cloudformation/check_changeset_delete_invalid_status_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-duplicate-create-rejected", "deployments": [], "key": "cloudformation/changeset-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:ListChangeSets"], "path": "behavioral/cloudformation/check_changeset_duplicate_create_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-execute-after-delete-not-found", "deployments": [], "key": "cloudformation/changeset-execute-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_changeset_execute_after_delete_not_found.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-execute-insufficient-capabilities-rejected", "deployments": [], "key": "cloudformation/changeset-execute-insufficient-capabilities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_changeset_execute_insufficient_capabilities_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-execute-invalid-status-rejected", "deployments": [], "key": "cloudformation/changeset-execute-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_changeset_execute_invalid_status_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-execution-dependency-ordering", "deployments": [], "key": "cloudformation/changeset-execution-dependency-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_changeset_execution_dependency_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-expiration-window-enforced", "deployments": [], "key": "cloudformation/changeset-expiration-window-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_changeset_expiration_window_enforced.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-hooks-not-found", "deployments": [], "key": "cloudformation/changeset-hooks-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeChangeSetHooks"], "path": "behavioral/cloudformation/check_changeset_hooks_not_found.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-not-found-across-read-apis-rejected", "deployments": [], "key": "cloudformation/changeset-not-found-across-read-apis-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeChangeSetHooks", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_changeset_not_found_across_read_apis_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-not-found-and-invalid-status-errors", "deployments": [], "key": "cloudformation/changeset-not-found-and-invalid-status-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate"], "path": "behavioral/cloudformation/check_changeset_not_found_and_invalid_status_errors.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-not-found-error-across-read-apis", "deployments": [], "key": "cloudformation/changeset-not-found-error-across-read-apis", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeChangeSetHooks", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_changeset_not_found_error_across_read_apis.py", "service": "cloudformation"} {"check_id": "cloudformation.changeset-update-type-on-new-stack-fails", "deployments": [], "key": "cloudformation/changeset-update-type-on-new-stack-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_changeset_update_type_on_new_stack_fails.py", "service": "cloudformation"} {"check_id": "cloudformation.circular-dependency-rejected-state-unchanged", "deployments": [], "key": "cloudformation/circular-dependency-rejected-state-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_circular_dependency_rejected_state_unchanged.py", "service": "cloudformation"} {"check_id": "cloudformation.cli-script-cfn-deploy-and-verify", "deployments": [], "key": "cloudformation/cli-script-cfn-deploy-and-verify", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "sqs:GetQueueUrl", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_cli_script_cfn_deploy_and_verify.py", "service": "cloudformation"} {"check_id": "cloudformation.concurrent-batch-describe-type-configurations-consistent-snapshot", "deployments": [], "key": "cloudformation/concurrent-batch-describe-type-configurations-consistent-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:BatchDescribeTypeConfigurations", "cloudformation:DeactivateType", "cloudformation:SetTypeConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_concurrent_batch_describe_type_configurations_consistent_snapshot.py", "service": "cloudformation"} {"check_id": "cloudformation.concurrent-create-stack-same-name", "deployments": [], "key": "cloudformation/concurrent-create-stack-same-name", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:GetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_concurrent_create_stack_same_name.py", "service": "cloudformation"} {"check_id": "cloudformation.concurrent-generated-template-limit", "deployments": [], "key": "cloudformation/concurrent-generated-template-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudformation/check_concurrent_generated_template_limit.py", "service": "cloudformation"} {"check_id": "cloudformation.concurrent-resources-limit-exceeded", "deployments": [], "key": "cloudformation/concurrent-resources-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:CreateStack", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DeleteStack", "cloudformation:DescribeGeneratedTemplate", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_concurrent_resources_limit_exceeded.py", "service": "cloudformation"} {"check_id": "cloudformation.concurrent-stack-instance-update-rejected", "deployments": [], "key": "cloudformation/concurrent-stack-instance-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:UpdateStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_concurrent_stack_instance_update_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.concurrent-stackset-update-rejected", "deployments": [], "key": "cloudformation/concurrent-stackset-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:UpdateStackSet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_concurrent_stackset_update_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.condition-boolean-operators-gate-resources-and-outputs", "deployments": [], "key": "cloudformation/condition-boolean-operators-gate-resources-and-outputs", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_condition_boolean_operators_gate_resources_and_outputs.py", "service": "cloudformation"} {"check_id": "cloudformation.condition-creates-resource", "deployments": [], "key": "cloudformation/condition-creates-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_condition_creates_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.condition-skips-resource", "deployments": [], "key": "cloudformation/condition-skips-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_condition_skips_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.condition-true-dependent-on-false-condition-dependency-skipped", "deployments": [], "key": "cloudformation/condition-true-dependent-on-false-condition-dependency-skipped", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_condition_true_dependent_on_false_condition_dependency_skipped.py", "service": "cloudformation"} {"check_id": "cloudformation.continue-update-rollback-on-stable-stack-fails", "deployments": [], "key": "cloudformation/continue-update-rollback-on-stable-stack-fails", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation/check_continue_update_rollback_on_stable_stack_fails.py", "service": "cloudformation"} {"check_id": "cloudformation.continue-update-rollback-wrong-state-rejected", "deployments": [], "key": "cloudformation/continue-update-rollback-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_continue_update_rollback_wrong_state_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.create-change-set", "deployments": [], "key": "cloudformation/create-change-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_create_change_set.py", "service": "cloudformation"} {"check_id": "cloudformation.create-changeset-missing-capabilities-rejected", "deployments": [], "key": "cloudformation/create-changeset-missing-capabilities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_create_changeset_missing_capabilities_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.create-failure-rollback", "deployments": [], "key": "cloudformation/create-failure-rollback", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation/check_create_failure_rollback.py", "service": "cloudformation"} {"check_id": "cloudformation.create-in-progress-status", "deployments": [], "key": "cloudformation/create-in-progress-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_create_in_progress_status.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-circular-dependson-rejected", "deployments": [], "key": "cloudformation/create-stack-circular-dependson-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation/check_create_stack_circular_dependson_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-client-request-token-semantics", "deployments": [], "key": "cloudformation/create-stack-client-request-token-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_create_stack_client_request_token_semantics.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-exceeding-parameter-count-limit-rejected", "deployments": [], "key": "cloudformation/create-stack-exceeding-parameter-count-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_create_stack_exceeding_parameter_count_limit_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-instances-duplicate-operation-id", "deployments": [], "key": "cloudformation/create-stack-instances-duplicate-operation-id", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_create_stack_instances_duplicate_operation_id.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-insufficient-capabilities-rejected", "deployments": [], "key": "cloudformation/create-stack-insufficient-capabilities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_create_stack_insufficient_capabilities_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-macro-missing-auto-expand-capability-rejected", "deployments": [], "key": "cloudformation/create-stack-macro-missing-auto-expand-capability-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation/check_create_stack_macro_missing_auto_expand_capability_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-missing-capabilities-rejected", "deployments": [], "key": "cloudformation/create-stack-missing-capabilities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_create_stack_missing_capabilities_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-reaches-complete", "deployments": [], "key": "cloudformation/create-stack-reaches-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_create_stack_reaches_complete.py", "service": "cloudformation"} {"check_id": "cloudformation.create-stack-s3-bucket-name-conflict-rolls-back", "deployments": [], "key": "cloudformation/create-stack-s3-bucket-name-conflict-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:HeadBucket"], "path": "behavioral/cloudformation/check_create_stack_s3_bucket_name_conflict_rolls_back.py", "service": "cloudformation"} {"check_id": "cloudformation.cross-stack-import-value", "deployments": [], "key": "cloudformation/cross-stack-import-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_cross_stack_import_value.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-1-cfn-enforce-continue-update-rollback-requires-resource-skip", "deployments": [], "key": "cloudformation/deep-cloudformation-1-cfn-enforce-continue-update-rollback-requires-resource-skip", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_deep_cloudformation_1_cfn_enforce_continue_update_rollback_requires_resource_skip.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-1-cfn-enforce-fail-hook-blocks-unencrypted-queue-create", "deployments": [], "key": "cloudformation/deep-cloudformation-1-cfn-enforce-fail-hook-blocks-unencrypted-queue-create", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListHookResults", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutObject", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation/check_deep_cloudformation_1_cfn_enforce_fail_hook_blocks_unencrypted_queue_create.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-1-cfn-enforce-force-delete-stack-orphans-functional-bucket", "deployments": [], "key": "cloudformation/deep-cloudformation-1-cfn-enforce-force-delete-stack-orphans-functional-bucket", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation/check_deep_cloudformation_1_cfn_enforce_force_delete_stack_orphans_functional_bucket.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-1-cfn-enforce-warn-hook-flags-but-allows-unencrypted-queue-create", "deployments": [], "key": "cloudformation/deep-cloudformation-1-cfn-enforce-warn-hook-flags-but-allows-unencrypted-queue-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListHookResults", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutObject", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation/check_deep_cloudformation_1_cfn_enforce_warn_hook_flags_but_allows_unencrypted_queue_create.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-2-deployment-mode-express", "deployments": [], "key": "cloudformation/deep-cloudformation-2-deployment-mode-express", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_deep_cloudformation_2_deployment_mode_express.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-2-express-disable-rollback-conflict-rejected", "deployments": [], "key": "cloudformation/deep-cloudformation-2-express-disable-rollback-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_deep_cloudformation_2_express_disable_rollback_conflict_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-2-retain-except-on-create", "deployments": [], "key": "cloudformation/deep-cloudformation-2-retain-except-on-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_deep_cloudformation_2_retain_except_on_create.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-2-snapshot-volume", "deployments": [], "key": "cloudformation/deep-cloudformation-2-snapshot-volume", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ec2:DeleteSnapshot", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/cloudformation/check_deep_cloudformation_2_snapshot_volume.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-3-cfn-flight-export-name-collision-rejected-then-recovers-after-owner-deleted", "deployments": [], "key": "cloudformation/deep-cloudformation-3-cfn-flight-export-name-collision-rejected-then-recovers-after-owner-deleted", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListExports"], "path": "behavioral/cloudformation/check_deep_cloudformation_3_cfn_flight_export_name_collision_rejected_then_recovers_after_owner_deleted.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-3-cfn-flight-stackset-tolerance-one-absorbs-region1-collision-and-deploys-region2", "deployments": [], "key": "cloudformation/deep-cloudformation-3-cfn-flight-stackset-tolerance-one-absorbs-region1-collision-and-deploys-region2", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeEvents", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_deep_cloudformation_3_cfn_flight_stackset_tolerance_one_absorbs_region1_collision_and_deploys_region2.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-3-cfn-flight-stackset-update-while-instance-barriered-rejected-then-applies", "deployments": [], "key": "cloudformation/deep-cloudformation-3-cfn-flight-stackset-update-while-instance-barriered-rejected-then-applies", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStacks", "cloudformation:ListStackInstances", "cloudformation:ListStackResources", "cloudformation:ListStackSetOperations", "cloudformation:SignalResource", "cloudformation:UpdateStackSet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_deep_cloudformation_3_cfn_flight_stackset_update_while_instance_barriered_rejected_then_applies.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-3-cfn-flight-stackset-zero-tolerance-collision-fails-operation-and-cancels-region2", "deployments": [], "key": "cloudformation/deep-cloudformation-3-cfn-flight-stackset-zero-tolerance-collision-fails-operation-and-cancels-region2", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeEvents", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_deep_cloudformation_3_cfn_flight_stackset_zero_tolerance_collision_fails_operation_and_cancels_region2.py", "service": "cloudformation"} {"check_id": "cloudformation.deep-cloudformation-3-cfn-flight-update-while-wait-condition-barriered-rejected-then-succeeds", "deployments": [], "key": "cloudformation/deep-cloudformation-3-cfn-flight-update-while-wait-condition-barriered-rejected-then-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:SignalResource", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_deep_cloudformation_3_cfn_flight_update_while_wait_condition_barriered_rejected_then_succeeds.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-change-set", "deployments": [], "key": "cloudformation/delete-change-set", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_delete_change_set.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-changeset-invalid-status-rejected", "deployments": [], "key": "cloudformation/delete-changeset-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_delete_changeset_invalid_status_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-executed-changeset-error", "deployments": [], "key": "cloudformation/delete-executed-changeset-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_delete_executed_changeset_error.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-nonempty-stack-set-fails", "deployments": [], "key": "cloudformation/delete-nonempty-stack-set-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_delete_nonempty_stack_set_fails.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-nonempty-stackset-rejected", "deployments": [], "key": "cloudformation/delete-nonempty-stackset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_delete_nonempty_stackset_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-nonexistent-stack", "deployments": [], "key": "cloudformation/delete-nonexistent-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_delete_nonexistent_stack.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stack-duplicate-token-rejected", "deployments": [], "key": "cloudformation/delete-stack-duplicate-token-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_delete_stack_duplicate_token_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stack-reaches-complete", "deployments": [], "key": "cloudformation/delete-stack-reaches-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_delete_stack_reaches_complete.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stack-retain-resources-invalid-list-rejected", "deployments": [], "key": "cloudformation/delete-stack-retain-resources-invalid-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudformation/check_delete_stack_retain_resources_invalid_list_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stack-retain-resources-leaves-the-retained-bucket-intact", "deployments": [], "key": "cloudformation/delete-stack-retain-resources-leaves-the-retained-bucket-intact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_delete_stack_retain_resources_leaves_the_retained_bucket_intact.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stack-termination-protection-enabled-rejected", "deployments": [], "key": "cloudformation/delete-stack-termination-protection-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection"], "path": "behavioral/cloudformation/check_delete_stack_termination_protection_enabled_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stack-termination-protection-rejected", "deployments": [], "key": "cloudformation/delete-stack-termination-protection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection"], "path": "behavioral/cloudformation/check_delete_stack_termination_protection_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stack-while-create-in-progress", "deployments": [], "key": "cloudformation/delete-stack-while-create-in-progress", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_delete_stack_while_create_in_progress.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stackset-not-empty-rejected", "deployments": [], "key": "cloudformation/delete-stackset-not-empty-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_delete_stackset_not_empty_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.delete-stackset-with-instances-rejected", "deployments": [], "key": "cloudformation/delete-stackset-with-instances-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_delete_stackset_with_instances_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.deletion-and-update-replace-policy-retain", "deployments": [], "key": "cloudformation/deletion-and-update-replace-policy-retain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_deletion_and_update_replace_policy_retain.py", "service": "cloudformation"} {"check_id": "cloudformation.depends-on-ordering", "deployments": [], "key": "cloudformation/depends-on-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_depends_on_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.deploy-cdk-cross-stack-export-ordering-and-in-use-guard", "deployments": ["behavioral/cloudformation/deployments/cdk_cross_stack_export/app.py", "behavioral/cloudformation/deployments/cdk_cross_stack_export/cdk.json"], "key": "cloudformation/deploy-cdk-cross-stack-export-ordering-and-in-use-guard", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListImports", "ssm:DescribeParameters", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_deploy_cdk_cross_stack_export_ordering_and_in_use_guard.py", "service": "cloudformation"} {"check_id": "cloudformation.deploy-cdk-update-rejected-by-aws-rolls-back-keeping-prior-config", "deployments": ["behavioral/cloudformation/deployments/cdk_env_rollback/app.py", "behavioral/cloudformation/deployments/cdk_env_rollback/cdk.json"], "key": "cloudformation/deploy-cdk-update-rejected-by-aws-rolls-back-keeping-prior-config", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_deploy_cdk_update_rejected_by_aws_rolls_back_keeping_prior_config.py", "service": "cloudformation"} {"check_id": "cloudformation.deploy-dynamodb-table-put-get-item", "deployments": [], "key": "cloudformation/deploy-dynamodb-table-put-get-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudformation/check_deploy_dynamodb_table_put_get_item.py", "service": "cloudformation"} {"check_id": "cloudformation.deploy-generated-template-reads-back-status-then-not-found-after-delete", "deployments": [], "key": "cloudformation/deploy-generated-template-reads-back-status-then-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeGeneratedTemplate", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_deploy_generated_template_reads_back_status_then_not_found_after_delete.py", "service": "cloudformation"} {"check_id": "cloudformation.deploy-iam-role-assumable-by-trusted-service", "deployments": [], "key": "cloudformation/deploy-iam-role-assumable-by-trusted-service", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_deploy_iam_role_assumable_by_trusted_service.py", "service": "cloudformation"} {"check_id": "cloudformation.deploy-lambda-function-invokable", "deployments": [], "key": "cloudformation/deploy-lambda-function-invokable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_deploy_lambda_function_invokable.py", "service": "cloudformation"} {"check_id": "cloudformation.deregister-aws-owned-type-rejected", "deployments": [], "key": "cloudformation/deregister-aws-owned-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:RegisterType", "cloudformation:SetTypeDefaultVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_deregister_aws_owned_type_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.deregister-in-use-type-version-rejected", "deployments": [], "key": "cloudformation/deregister-in-use-type-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeVersions", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_deregister_in_use_type_version_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.deregister-inuse-type-rejected", "deployments": [], "key": "cloudformation/deregister-inuse-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeVersions", "cloudformation:RegisterType", "cloudformation:SetTypeDefaultVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_deregister_inuse_type_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-account-limits-enforced", "deployments": [], "key": "cloudformation/describe-account-limits-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeAccountLimits", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_describe_account_limits_enforced.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-change-set-shows-changes", "deployments": [], "key": "cloudformation/describe-change-set-shows-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_describe_change_set_shows_changes.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-changeset-hooks-not-found-error", "deployments": [], "key": "cloudformation/describe-changeset-hooks-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeChangeSetHooks", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_describe_changeset_hooks_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-events-ordering", "deployments": [], "key": "cloudformation/describe-events-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_describe_events_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-nonexistent-stack-error", "deployments": [], "key": "cloudformation/describe-nonexistent-stack-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_describe_nonexistent_stack_error.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-resource-scan-not-found-error", "deployments": [], "key": "cloudformation/describe-resource-scan-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeResourceScan", "cloudformation:ListResourceScans", "cloudformation:StartResourceScan", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_describe_resource_scan_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-shows-termination-protection", "deployments": [], "key": "cloudformation/describe-shows-termination-protection", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection"], "path": "behavioral/cloudformation/check_describe_shows_termination_protection.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-stack-events-present", "deployments": [], "key": "cloudformation/describe-stack-events-present", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_describe_stack_events_present.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-stack-instance-not-found-error", "deployments": [], "key": "cloudformation/describe-stack-instance-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:ListStackInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_describe_stack_instance_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-stack-refactor-not-found-error", "deployments": [], "key": "cloudformation/describe-stack-refactor-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:CreateStackRefactor", "cloudformation:DeleteStack", "cloudformation:DescribeStackRefactor", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_describe_stack_refactor_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-stack-resource-drifts-list", "deployments": [], "key": "cloudformation/describe-stack-resource-drifts-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation/check_describe_stack_resource_drifts_list.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-stack-resource-single", "deployments": [], "key": "cloudformation/describe-stack-resource-single", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_describe_stack_resource_single.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-stacks-returns-created", "deployments": [], "key": "cloudformation/describe-stacks-returns-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_describe_stacks_returns_created.py", "service": "cloudformation"} {"check_id": "cloudformation.describe-unknown-stack-instance-fails", "deployments": [], "key": "cloudformation/describe-unknown-stack-instance-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_describe_unknown_stack_instance_fails.py", "service": "cloudformation"} {"check_id": "cloudformation.detect-stack-resource-drift-single", "deployments": [], "key": "cloudformation/detect-stack-resource-drift-single", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:DetectStackResourceDrift", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation/check_detect_stack_resource_drift_single.py", "service": "cloudformation"} {"check_id": "cloudformation.detect-stackset-drift-lifecycle", "deployments": [], "key": "cloudformation/detect-stackset-drift-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:DetectStackSetDrift", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_detect_stackset_drift_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.detect-stackset-drift-while-in-progress-rejected", "deployments": [], "key": "cloudformation/detect-stackset-drift-while-in-progress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:DetectStackSetDrift", "cloudformation:ListStackSetOperations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_detect_stackset_drift_while_in_progress_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.disable-rollback", "deployments": [], "key": "cloudformation/disable-rollback", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_disable_rollback.py", "service": "cloudformation"} {"check_id": "cloudformation.drift-detection-async-lifecycle", "deployments": [], "key": "cloudformation/drift-detection-async-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift"], "path": "behavioral/cloudformation/check_drift_detection_async_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.drift-detection-lifecycle", "deployments": [], "key": "cloudformation/drift-detection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:DetectStackResourceDrift", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation/check_drift_detection_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.drift-detection-status-tracking", "deployments": [], "key": "cloudformation/drift-detection-status-tracking", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation/check_drift_detection_status_tracking.py", "service": "cloudformation"} {"check_id": "cloudformation.drift-detection-status-unknown-id", "deployments": [], "key": "cloudformation/drift-detection-status-unknown-id", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift"], "path": "behavioral/cloudformation/check_drift_detection_status_unknown_id.py", "service": "cloudformation"} {"check_id": "cloudformation.drift-property-differences-name-expected-and-actual-values", "deployments": [], "key": "cloudformation/drift-property-differences-name-expected-and-actual-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation/check_drift_property_differences_name_expected_and_actual_values.py", "service": "cloudformation"} {"check_id": "cloudformation.duplicate-client-request-token-rejected", "deployments": [], "key": "cloudformation/duplicate-client-request-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_duplicate_client_request_token_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.duplicate-stack-name-error", "deployments": [], "key": "cloudformation/duplicate-stack-name-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_duplicate_stack_name_error.py", "service": "cloudformation"} {"check_id": "cloudformation.duplicate-stackset-name-rejected", "deployments": [], "key": "cloudformation/duplicate-stackset-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet"], "path": "behavioral/cloudformation/check_duplicate_stackset_name_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.e2e-deployed-resources-functional", "deployments": [], "key": "cloudformation/e2e-deployed-resources-functional", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_e2e_deployed_resources_functional.py", "service": "cloudformation"} {"check_id": "cloudformation.e2e-multi-resource-interaction", "deployments": [], "key": "cloudformation/e2e-multi-resource-interaction", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation/check_e2e_multi_resource_interaction.py", "service": "cloudformation"} {"check_id": "cloudformation.e2e-parameterized-deployment", "deployments": [], "key": "cloudformation/e2e-parameterized-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_e2e_parameterized_deployment.py", "service": "cloudformation"} {"check_id": "cloudformation.e2e-resource-scan-generated-template-to-managed-stack", "deployments": [], "key": "cloudformation/e2e-resource-scan-generated-template-to-managed-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeGeneratedTemplate", "cloudformation:DescribeResourceScan", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetGeneratedTemplate", "cloudformation:ListResourceScanResources", "cloudformation:ListResourceScans", "cloudformation:StartResourceScan", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/cloudformation/check_e2e_resource_scan_generated_template_to_managed_stack.py", "service": "cloudformation"} {"check_id": "cloudformation.e2e-stackset-drift-detect-then-remediate", "deployments": [], "key": "cloudformation/e2e-stackset-drift-detect-then-remediate", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackResources", "cloudformation:DescribeStackSetOperation", "cloudformation:DetectStackSetDrift", "cloudformation:UpdateStackSet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_e2e_stackset_drift_detect_then_remediate.py", "service": "cloudformation"} {"check_id": "cloudformation.empty-string-vs-absent-parameter-distinguished", "deployments": [], "key": "cloudformation/empty-string-vs-absent-parameter-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_empty_string_vs_absent_parameter_distinguished.py", "service": "cloudformation"} {"check_id": "cloudformation.estimate-template-cost-and-validation-errors", "deployments": [], "key": "cloudformation/estimate-template-cost-and-validation-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:EstimateTemplateCost", "cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_estimate_template_cost_and_validation_errors.py", "service": "cloudformation"} {"check_id": "cloudformation.estimate-template-cost-returns-url", "deployments": [], "key": "cloudformation/estimate-template-cost-returns-url", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:EstimateTemplateCost"], "path": "behavioral/cloudformation/check_estimate_template_cost_returns_url.py", "service": "cloudformation"} {"check_id": "cloudformation.events-chronological-ordering", "deployments": [], "key": "cloudformation/events-chronological-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_events_chronological_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.execute-change-set", "deployments": [], "key": "cloudformation/execute-change-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_execute_change_set.py", "service": "cloudformation"} {"check_id": "cloudformation.execute-change-set-twice-rejected", "deployments": [], "key": "cloudformation/execute-change-set-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_execute_change_set_twice_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.execute-changeset-already-executed-error", "deployments": [], "key": "cloudformation/execute-changeset-already-executed-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_execute_changeset_already_executed_error.py", "service": "cloudformation"} {"check_id": "cloudformation.execute-changeset-missing-capabilities-rejected", "deployments": [], "key": "cloudformation/execute-changeset-missing-capabilities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources", "iam:DeleteRole", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_execute_changeset_missing_capabilities_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.execute-changeset-rejects-non-executable-status", "deployments": [], "key": "cloudformation/execute-changeset-rejects-non-executable-status", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_execute_changeset_rejects_non_executable_status.py", "service": "cloudformation"} {"check_id": "cloudformation.execute-failed-changeset-rejected", "deployments": [], "key": "cloudformation/execute-failed-changeset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet"], "path": "behavioral/cloudformation/check_execute_failed_changeset_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.export-deletion-blocked-while-imported-rejected", "deployments": [], "key": "cloudformation/export-deletion-blocked-while-imported-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListExports", "cloudformation:ListImports"], "path": "behavioral/cloudformation/check_export_deletion_blocked_while_imported_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.export-in-use-blocks-stack-deletion", "deployments": [], "key": "cloudformation/export-in-use-blocks-stack-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListExports", "cloudformation:ListImports"], "path": "behavioral/cloudformation/check_export_in_use_blocks_stack_deletion.py", "service": "cloudformation"} {"check_id": "cloudformation.export-value-update-refused-while-imported", "deployments": [], "key": "cloudformation/export-value-update-refused-while-imported", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListExports", "cloudformation:ListImports", "cloudformation:UpdateStack", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation/check_export_value_update_refused_while_imported.py", "service": "cloudformation"} {"check_id": "cloudformation.find-in-map-default-value-without-transform", "deployments": [], "key": "cloudformation/find-in-map-default-value-without-transform", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_find_in_map_default_value_without_transform.py", "service": "cloudformation"} {"check_id": "cloudformation.fn-find-in-map-nested-lookup-drives-property", "deployments": [], "key": "cloudformation/fn-find-in-map-nested-lookup-drives-property", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_fn_find_in_map_nested_lookup_drives_property.py", "service": "cloudformation"} {"check_id": "cloudformation.fn-if-condition-false", "deployments": [], "key": "cloudformation/fn-if-condition-false", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_fn_if_condition_false.py", "service": "cloudformation"} {"check_id": "cloudformation.fn-if-condition-true", "deployments": [], "key": "cloudformation/fn-if-condition-true", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_fn_if_condition_true.py", "service": "cloudformation"} {"check_id": "cloudformation.fn-join", "deployments": [], "key": "cloudformation/fn-join", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_fn_join.py", "service": "cloudformation"} {"check_id": "cloudformation.fn-select", "deployments": [], "key": "cloudformation/fn-select", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_fn_select.py", "service": "cloudformation"} {"check_id": "cloudformation.fn-split", "deployments": [], "key": "cloudformation/fn-split", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_fn_split.py", "service": "cloudformation"} {"check_id": "cloudformation.fn-sub", "deployments": [], "key": "cloudformation/fn-sub", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_fn_sub.py", "service": "cloudformation"} {"check_id": "cloudformation.fn-sub-escape-and-variable-map", "deployments": [], "key": "cloudformation/fn-sub-escape-and-variable-map", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_fn_sub_escape_and_variable_map.py", "service": "cloudformation"} {"check_id": "cloudformation.force-delete-stack-rejected-unless-delete-failed", "deployments": [], "key": "cloudformation/force-delete-stack-rejected-unless-delete-failed", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudformation/check_force_delete_stack_rejected_unless_delete_failed.py", "service": "cloudformation"} {"check_id": "cloudformation.foreach-outside-allowed-sections-rejected", "deployments": [], "key": "cloudformation/foreach-outside-allowed-sections-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_foreach_outside_allowed_sections_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.foreach-resources-without-language-extensions-transform-rejected", "deployments": [], "key": "cloudformation/foreach-resources-without-language-extensions-transform-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_foreach_resources_without_language_extensions_transform_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.full-feature-template-resolves-every-declared-output", "deployments": [], "key": "cloudformation/full-feature-template-resolves-every-declared-output", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation/check_full_feature_template_resolves_every_declared_output.py", "service": "cloudformation"} {"check_id": "cloudformation.generated-template-and-scan-not-found-errors", "deployments": [], "key": "cloudformation/generated-template-and-scan-not-found-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:DescribeResourceScan", "cloudformation:GetGeneratedTemplate", "cloudformation:ListResourceScanRelatedResources", "cloudformation:ListResourceScanResources", "cloudformation:ListResourceScans", "cloudformation:StartResourceScan", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_generated_template_and_scan_not_found_errors.py", "service": "cloudformation"} {"check_id": "cloudformation.generated-template-concurrency-limit-rejected", "deployments": [], "key": "cloudformation/generated-template-concurrency-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:CreateStack", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DeleteStack", "cloudformation:DescribeGeneratedTemplate", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_generated_template_concurrency_limit_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.generated-template-full-lifecycle", "deployments": [], "key": "cloudformation/generated-template-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:GetGeneratedTemplate", "cloudformation:ListGeneratedTemplates", "cloudformation:UpdateGeneratedTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation/check_generated_template_full_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.generated-template-lifecycle", "deployments": [], "key": "cloudformation/generated-template-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:GetGeneratedTemplate", "cloudformation:ListGeneratedTemplates", "cloudformation:UpdateGeneratedTemplate", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/cloudformation/check_generated_template_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.generated-template-not-found-error", "deployments": [], "key": "cloudformation/generated-template-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:GetGeneratedTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudformation/check_generated_template_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.generated-template-not-found-rejected", "deployments": [], "key": "cloudformation/generated-template-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:GetGeneratedTemplate", "cloudformation:UpdateGeneratedTemplate", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/cloudformation/check_generated_template_not_found_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.generated-template-retention-window-expiry", "deployments": [], "key": "cloudformation/generated-template-retention-window-expiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:ListGeneratedTemplates", "cloudformation:UpdateGeneratedTemplate"], "path": "behavioral/cloudformation/check_generated_template_retention_window_expiry.py", "service": "cloudformation"} {"check_id": "cloudformation.generated-template-timestamp-precision-preserved", "deployments": [], "key": "cloudformation/generated-template-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudformation/check_generated_template_timestamp_precision_preserved.py", "service": "cloudformation"} {"check_id": "cloudformation.get-generated-template-not-found-error", "deployments": [], "key": "cloudformation/get-generated-template-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:GetGeneratedTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_get_generated_template_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.get-stack-output-reads-unexported-output-as-snapshot", "deployments": [], "key": "cloudformation/get-stack-output-reads-unexported-output-as-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_get_stack_output_reads_unexported_output_as_snapshot.py", "service": "cloudformation"} {"check_id": "cloudformation.get-stack-policy-defaults-empty-when-unset", "deployments": [], "key": "cloudformation/get-stack-policy-defaults-empty-when-unset", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:SetStackPolicy"], "path": "behavioral/cloudformation/check_get_stack_policy_defaults_empty_when_unset.py", "service": "cloudformation"} {"check_id": "cloudformation.get-template-returns-body", "deployments": [], "key": "cloudformation/get-template-returns-body", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate"], "path": "behavioral/cloudformation/check_get_template_returns_body.py", "service": "cloudformation"} {"check_id": "cloudformation.get-template-returns-submitted-body-while-review-in-progress", "deployments": [], "key": "cloudformation/get-template-returns-submitted-body-while-review-in-progress", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_get_template_returns_submitted_body_while_review_in_progress.py", "service": "cloudformation"} {"check_id": "cloudformation.get-template-stages", "deployments": [], "key": "cloudformation/get-template-stages", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate"], "path": "behavioral/cloudformation/check_get_template_stages.py", "service": "cloudformation"} {"check_id": "cloudformation.get-template-summary-returns-accurate-resource-metadata", "deployments": [], "key": "cloudformation/get-template-summary-returns-accurate-resource-metadata", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplateSummary"], "path": "behavioral/cloudformation/check_get_template_summary_returns_accurate_resource_metadata.py", "service": "cloudformation"} {"check_id": "cloudformation.get-template-summary-stackset-not-found", "deployments": [], "key": "cloudformation/get-template-summary-stackset-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:GetTemplateSummary"], "path": "behavioral/cloudformation/check_get_template_summary_stackset_not_found.py", "service": "cloudformation"} {"check_id": "cloudformation.get-template-summary-stackset-not-found-error", "deployments": [], "key": "cloudformation/get-template-summary-stackset-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:GetTemplateSummary"], "path": "behavioral/cloudformation/check_get_template_summary_stackset_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.handler-progress-bearer-token-rejected", "deployments": [], "key": "cloudformation/handler-progress-bearer-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:RecordHandlerProgress"], "path": "behavioral/cloudformation/check_handler_progress_bearer_token_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.handler-progress-invalid-operation-status-rejected", "deployments": [], "key": "cloudformation/handler-progress-invalid-operation-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:RecordHandlerProgress"], "path": "behavioral/cloudformation/check_handler_progress_invalid_operation_status_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.hook-result-and-handler-progress-lifecycle", "deployments": [], "key": "cloudformation/hook-result-and-handler-progress-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:GetHookResult", "cloudformation:ListHookResults", "cloudformation:RecordHandlerProgress"], "path": "behavioral/cloudformation/check_hook_result_and_handler_progress_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.hook-result-lifecycle", "deployments": [], "key": "cloudformation/hook-result-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:GetHookResult", "cloudformation:ListHookResults"], "path": "behavioral/cloudformation/check_hook_result_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.hook-result-not-found-error", "deployments": [], "key": "cloudformation/hook-result-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:GetHookResult"], "path": "behavioral/cloudformation/check_hook_result_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.hook-result-not-found-for-unhooked-resource", "deployments": [], "key": "cloudformation/hook-result-not-found-for-unhooked-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListHookResults"], "path": "behavioral/cloudformation/check_hook_result_not_found_for_unhooked_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.hook-result-not-found-rejected", "deployments": [], "key": "cloudformation/hook-result-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetHookResult", "cloudformation:ListHookResults"], "path": "behavioral/cloudformation/check_hook_result_not_found_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.hook-result-ttl-expiry-cleanup", "deployments": [], "key": "cloudformation/hook-result-ttl-expiry-cleanup", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:GetHookResult", "cloudformation:ListHookResults"], "path": "behavioral/cloudformation/check_hook_result_ttl_expiry_cleanup.py", "service": "cloudformation"} {"check_id": "cloudformation.import-existing-resources-adopts-named-parameter", "deployments": [], "key": "cloudformation/import-existing-resources-adopts-named-parameter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation/check_import_existing_resources_adopts_named_parameter.py", "service": "cloudformation"} {"check_id": "cloudformation.import-stacks-to-stackset-lifecycle", "deployments": [], "key": "cloudformation/import-stacks-to-stackset-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:CreateStackSet", "cloudformation:DeleteStack", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStacks", "cloudformation:ImportStacksToStackSet", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:UpdateStackInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_import_stacks_to_stackset_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.intrinsic-cidr-ipv6-and-parameter-block-outputs-exact", "deployments": [], "key": "cloudformation/intrinsic-cidr-ipv6-and-parameter-block-outputs-exact", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_intrinsic_cidr_ipv6_and_parameter_block_outputs_exact.py", "service": "cloudformation"} {"check_id": "cloudformation.intrinsic-foreach-expands-resources-and-outputs", "deployments": [], "key": "cloudformation/intrinsic-foreach-expands-resources-and-outputs", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate"], "path": "behavioral/cloudformation/check_intrinsic_foreach_expands_resources_and_outputs.py", "service": "cloudformation"} {"check_id": "cloudformation.intrinsic-foreach-invalid-collection-fails-transform", "deployments": [], "key": "cloudformation/intrinsic-foreach-invalid-collection-fails-transform", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_intrinsic_foreach_invalid_collection_fails_transform.py", "service": "cloudformation"} {"check_id": "cloudformation.intrinsic-length-and-to-json-string-resolve-nested-intrinsics", "deployments": [], "key": "cloudformation/intrinsic-length-and-to-json-string-resolve-nested-intrinsics", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_intrinsic_length_and_to_json_string_resolve_nested_intrinsics.py", "service": "cloudformation"} {"check_id": "cloudformation.invalid-operation-error-org-and-stackset-rejected", "deployments": [], "key": "cloudformation/invalid-operation-error-org-and-stackset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeOrganizationsAccess", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSets", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_invalid_operation_error_org_and_stackset_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.invalid-parameter-combination-stackset-ops-rejected", "deployments": [], "key": "cloudformation/invalid-parameter-combination-stackset-ops-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeOrganizationsAccess", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_invalid_parameter_combination_stackset_ops_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.invalid-stack-name-rejected", "deployments": [], "key": "cloudformation/invalid-stack-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_invalid_stack_name_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.invalid-state-transition-record-handler-progress", "deployments": [], "key": "cloudformation/invalid-state-transition-record-handler-progress", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ListStacks", "cloudformation:RecordHandlerProgress"], "path": "behavioral/cloudformation/check_invalid_state_transition_record_handler_progress.py", "service": "cloudformation"} {"check_id": "cloudformation.invalid-template-error", "deployments": [], "key": "cloudformation/invalid-template-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_invalid_template_error.py", "service": "cloudformation"} {"check_id": "cloudformation.language-extensions-length-tojsonstring-and-dynamic-getatt", "deployments": [], "key": "cloudformation/language-extensions-length-tojsonstring-and-dynamic-getatt", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_language_extensions_length_tojsonstring_and_dynamic_getatt.py", "service": "cloudformation"} {"check_id": "cloudformation.list-change-sets", "deployments": [], "key": "cloudformation/list-change-sets", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets"], "path": "behavioral/cloudformation/check_list_change_sets.py", "service": "cloudformation"} {"check_id": "cloudformation.list-imports-nonexistent-export-rejected", "deployments": [], "key": "cloudformation/list-imports-nonexistent-export-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListImports"], "path": "behavioral/cloudformation/check_list_imports_nonexistent_export_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.list-imports-reflects-export-consumers", "deployments": [], "key": "cloudformation/list-imports-reflects-export-consumers", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListExports", "cloudformation:ListImports"], "path": "behavioral/cloudformation/check_list_imports_reflects_export_consumers.py", "service": "cloudformation"} {"check_id": "cloudformation.list-pagination-stability", "deployments": [], "key": "cloudformation/list-pagination-stability", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:ListStacks"], "path": "behavioral/cloudformation/check_list_pagination_stability.py", "service": "cloudformation"} {"check_id": "cloudformation.list-stack-instance-resource-drifts", "deployments": [], "key": "cloudformation/list-stack-instance-resource-drifts", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackSetOperation", "cloudformation:DetectStackSetDrift", "cloudformation:ListStackInstanceResourceDrifts", "cloudformation:ListStackSetOperationResults", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_list_stack_instance_resource_drifts.py", "service": "cloudformation"} {"check_id": "cloudformation.list-stack-resources", "deployments": [], "key": "cloudformation/list-stack-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_list_stack_resources.py", "service": "cloudformation"} {"check_id": "cloudformation.list-stacks-deleted-filter", "deployments": [], "key": "cloudformation/list-stacks-deleted-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks"], "path": "behavioral/cloudformation/check_list_stacks_deleted_filter.py", "service": "cloudformation"} {"check_id": "cloudformation.list-stacks-includes-created", "deployments": [], "key": "cloudformation/list-stacks-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks"], "path": "behavioral/cloudformation/check_list_stacks_includes_created.py", "service": "cloudformation"} {"check_id": "cloudformation.list-stacks-status-filter-includes-deleted", "deployments": [], "key": "cloudformation/list-stacks-status-filter-includes-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks"], "path": "behavioral/cloudformation/check_list_stacks_status_filter_includes_deleted.py", "service": "cloudformation"} {"check_id": "cloudformation.list-stackset-autodeployment-targets-not-found-error", "deployments": [], "key": "cloudformation/list-stackset-autodeployment-targets-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:ListStackSetAutoDeploymentTargets"], "path": "behavioral/cloudformation/check_list_stackset_autodeployment_targets_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.list-stacksets-reflects-created-sets", "deployments": [], "key": "cloudformation/list-stacksets-reflects-created-sets", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:ListStackSets"], "path": "behavioral/cloudformation/check_list_stacksets_reflects_created_sets.py", "service": "cloudformation"} {"check_id": "cloudformation.list-type-registrations-chronological-ordering", "deployments": [], "key": "cloudformation/list-type-registrations-chronological-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeRegistrations", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_list_type_registrations_chronological_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.list-type-registrations-filters-by-status", "deployments": [], "key": "cloudformation/list-type-registrations-filters-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeRegistrations", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_list_type_registrations_filters_by_status.py", "service": "cloudformation"} {"check_id": "cloudformation.list-type-registrations-invalid-filter-rejected", "deployments": [], "key": "cloudformation/list-type-registrations-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ListTypeRegistrations"], "path": "behavioral/cloudformation/check_list_type_registrations_invalid_filter_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.list-type-registrations-pagination-stable-under-concurrent-registration", "deployments": [], "key": "cloudformation/list-type-registrations-pagination-stable-under-concurrent-registration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeRegistrations", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_list_type_registrations_pagination_stable_under_concurrent_registration.py", "service": "cloudformation"} {"check_id": "cloudformation.list-types-filters-by-visibility-and-category", "deployments": [], "key": "cloudformation/list-types-filters-by-visibility-and-category", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypes", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudformation/check_list_types_filters_by_visibility_and_category.py", "service": "cloudformation"} {"check_id": "cloudformation.list-types-invalid-visibility-filter-rejected", "deployments": [], "key": "cloudformation/list-types-invalid-visibility-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ListTypes"], "path": "behavioral/cloudformation/check_list_types_invalid_visibility_filter_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.list-types-stable-ordering-across-pagination", "deployments": [], "key": "cloudformation/list-types-stable-ordering-across-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ListTypes"], "path": "behavioral/cloudformation/check_list_types_stable_ordering_across_pagination.py", "service": "cloudformation"} {"check_id": "cloudformation.logstream-replacement-orphans-old-stream-in-former-group", "deployments": [], "key": "cloudformation/logstream-replacement-orphans-old-stream-in-former-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudformation/check_logstream_replacement_orphans_old_stream_in_former_group.py", "service": "cloudformation"} {"check_id": "cloudformation.metricfilter-colliding-rename-rollback-keeps-unrelated-filter", "deployments": [], "key": "cloudformation/metricfilter-colliding-rename-rollback-keeps-unrelated-filter", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:GetMetricStatistics", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/cloudformation/check_metricfilter_colliding_rename_rollback_keeps_unrelated_filter.py", "service": "cloudformation"} {"check_id": "cloudformation.missing-capability-iam-error", "deployments": [], "key": "cloudformation/missing-capability-iam-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_missing_capability_iam_error.py", "service": "cloudformation"} {"check_id": "cloudformation.nested-stack-parentage-and-cascade-delete", "deployments": [], "key": "cloudformation/nested-stack-parentage-and-cascade-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_nested_stack_parentage_and_cascade_delete.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-createStack", "deployments": [], "key": "cloudformation/op-contract-createStack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_op_contract_create_stack.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-deleteStackSet", "deployments": [], "key": "cloudformation/op-contract-deleteStackSet", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:UpdateStackSet"], "path": "behavioral/cloudformation/check_op_contract_delete_stack_set.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-describeAccountLimits", "deployments": [], "key": "cloudformation/op-contract-describeAccountLimits", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DescribeAccountLimits"], "path": "behavioral/cloudformation/check_op_contract_describe_account_limits.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-describeEvents", "deployments": [], "key": "cloudformation/op-contract-describeEvents", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_op_contract_describe_events.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-describeStackEvents", "deployments": [], "key": "cloudformation/op-contract-describeStackEvents", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_op_contract_describe_stack_events.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-describeStacks", "deployments": [], "key": "cloudformation/op-contract-describeStacks", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_op_contract_describe_stacks.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-estimateTemplateCost", "deployments": [], "key": "cloudformation/op-contract-estimateTemplateCost", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:EstimateTemplateCost"], "path": "behavioral/cloudformation/check_op_contract_estimate_template_cost.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-getStackPolicy", "deployments": [], "key": "cloudformation/op-contract-getStackPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:SetStackPolicy"], "path": "behavioral/cloudformation/check_op_contract_get_stack_policy.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-listChangeSets", "deployments": [], "key": "cloudformation/op-contract-listChangeSets", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:ListChangeSets"], "path": "behavioral/cloudformation/check_op_contract_list_change_sets.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-listExports", "deployments": [], "key": "cloudformation/op-contract-listExports", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListExports"], "path": "behavioral/cloudformation/check_op_contract_list_exports.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-listImports", "deployments": [], "key": "cloudformation/op-contract-listImports", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListImports"], "path": "behavioral/cloudformation/check_op_contract_list_imports.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-setStackPolicy", "deployments": [], "key": "cloudformation/op-contract-setStackPolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:SetStackPolicy", "cloudformation:UpdateStack", "s3:GetBucketTagging"], "path": "behavioral/cloudformation/check_op_contract_set_stack_policy.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-signalResource", "deployments": [], "key": "cloudformation/op-contract-signalResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SignalResource"], "path": "behavioral/cloudformation/check_op_contract_signal_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-updateTerminationProtection", "deployments": [], "key": "cloudformation/op-contract-updateTerminationProtection", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection"], "path": "behavioral/cloudformation/check_op_contract_update_termination_protection.py", "service": "cloudformation"} {"check_id": "cloudformation.op-contract-validateTemplate", "deployments": [], "key": "cloudformation/op-contract-validateTemplate", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_op_contract_validate_template.py", "service": "cloudformation"} {"check_id": "cloudformation.operation-not-found-error", "deployments": [], "key": "cloudformation/operation-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstanceResourceDrifts", "cloudformation:ListStackSetOperationResults", "cloudformation:StopStackSetOperation", "cloudformation:UpdateStackSet", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_operation_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.organizations-access-op-not-found", "deployments": [], "key": "cloudformation/organizations-access-op-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeAccountLimits", "cloudformation:DescribeOrganizationsAccess"], "path": "behavioral/cloudformation/check_organizations_access_op_not_found.py", "service": "cloudformation"} {"check_id": "cloudformation.parameter-allowed-values-reject", "deployments": [], "key": "cloudformation/parameter-allowed-values-reject", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_parameter_allowed_values_reject.py", "service": "cloudformation"} {"check_id": "cloudformation.parameter-constraint-description-on-number-and-allowed-values", "deployments": [], "key": "cloudformation/parameter-constraint-description-on-number-and-allowed-values", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_parameter_constraint_description_on_number_and_allowed_values.py", "service": "cloudformation"} {"check_id": "cloudformation.parameter-constraint-description-replaces-pattern-message", "deployments": [], "key": "cloudformation/parameter-constraint-description-replaces-pattern-message", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_parameter_constraint_description_replaces_pattern_message.py", "service": "cloudformation"} {"check_id": "cloudformation.parameter-constraint-violations-rejected", "deployments": [], "key": "cloudformation/parameter-constraint-violations-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplateSummary", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_parameter_constraint_violations_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.parameter-default-used", "deployments": [], "key": "cloudformation/parameter-default-used", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_parameter_default_used.py", "service": "cloudformation"} {"check_id": "cloudformation.parameter-no-echo", "deployments": [], "key": "cloudformation/parameter-no-echo", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_parameter_no_echo.py", "service": "cloudformation"} {"check_id": "cloudformation.parameter-override", "deployments": [], "key": "cloudformation/parameter-override", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_parameter_override.py", "service": "cloudformation"} {"check_id": "cloudformation.parameter-type-mismatch-rejected", "deployments": [], "key": "cloudformation/parameter-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_parameter_type_mismatch_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.pseudo-parameters-and-no-value-resolve", "deployments": [], "key": "cloudformation/pseudo-parameters-and-no-value-resolve", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ssm:DescribeParameters"], "path": "behavioral/cloudformation/check_pseudo_parameters_and_no_value_resolve.py", "service": "cloudformation"} {"check_id": "cloudformation.publisher-and-type-testing-lifecycle", "deployments": [], "key": "cloudformation/publisher-and-type-testing-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribePublisher", "cloudformation:PublishType", "cloudformation:RegisterPublisher", "cloudformation:TestType", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_publisher_and_type_testing_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.publisher-registration-lifecycle", "deployments": [], "key": "cloudformation/publisher-registration-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeAccountLimits", "cloudformation:DescribePublisher", "cloudformation:RegisterPublisher", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_publisher_registration_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.record-handler-progress-invalid-token-rejected", "deployments": [], "key": "cloudformation/record-handler-progress-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:RecordHandlerProgress"], "path": "behavioral/cloudformation/check_record_handler_progress_invalid_token_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.record-handler-progress-transitions", "deployments": [], "key": "cloudformation/record-handler-progress-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeAccountLimits", "cloudformation:RecordHandlerProgress"], "path": "behavioral/cloudformation/check_record_handler_progress_transitions.py", "service": "cloudformation"} {"check_id": "cloudformation.redeploy-broken-importvalue-rolls-back-preserving-original", "deployments": [], "key": "cloudformation/redeploy-broken-importvalue-rolls-back-preserving-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation/check_redeploy_broken_importvalue_rolls_back_preserving_original.py", "service": "cloudformation"} {"check_id": "cloudformation.redeploy-with-changed-template-applies-the-change", "deployments": [], "key": "cloudformation/redeploy-with-changed-template-applies-the-change", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_redeploy_with_changed_template_applies_the_change.py", "service": "cloudformation"} {"check_id": "cloudformation.ref-intrinsic-resolves", "deployments": [], "key": "cloudformation/ref-intrinsic-resolves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_ref_intrinsic_resolves.py", "service": "cloudformation"} {"check_id": "cloudformation.register-type-invalid-schema-rejected", "deployments": [], "key": "cloudformation/register-type-invalid-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypes", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudformation/check_register_type_invalid_schema_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.register-type-reserved-namespace-rejected", "deployments": [], "key": "cloudformation/register-type-reserved-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudformation/check_register_type_reserved_namespace_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.resource-scan-lifecycle", "deployments": [], "key": "cloudformation/resource-scan-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DescribeResourceScan", "cloudformation:ListResourceScanRelatedResources", "cloudformation:ListResourceScanResources", "cloudformation:ListResourceScans", "cloudformation:StartResourceScan", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/cloudformation/check_resource_scan_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.resource-scan-not-found-error", "deployments": [], "key": "cloudformation/resource-scan-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeResourceScan", "cloudformation:ListResourceScans", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_resource_scan_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.resource-scan-not-found-rejected", "deployments": [], "key": "cloudformation/resource-scan-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeResourceScan", "cloudformation:ListResourceScanRelatedResources", "cloudformation:ListResourceScanResources", "cloudformation:ListResourceScans", "cloudformation:StartResourceScan", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_resource_scan_not_found_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.resource-scan-related-resources-unknown-scan-rejected", "deployments": [], "key": "cloudformation/resource-scan-related-resources-unknown-scan-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeResourceScan", "cloudformation:ListResourceScanRelatedResources", "cloudformation:ListResourceScans", "cloudformation:StartResourceScan", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_resource_scan_related_resources_unknown_scan_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.resource-scan-result-ttl-expiry", "deployments": [], "key": "cloudformation/resource-scan-result-ttl-expiry", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeResourceScan", "cloudformation:ListResourceScanResources", "cloudformation:ListResourceScans", "cloudformation:StartResourceScan", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_resource_scan_result_ttl_expiry.py", "service": "cloudformation"} {"check_id": "cloudformation.resource-schema-rejects-unknown-and-mistyped-properties", "deployments": [], "key": "cloudformation/resource-schema-rejects-unknown-and-mistyped-properties", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ValidateTemplate", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues"], "path": "behavioral/cloudformation/check_resource_schema_rejects_unknown_and_mistyped_properties.py", "service": "cloudformation"} {"check_id": "cloudformation.retain-except-on-create-deletes-on-failed-create-retains-on-delete", "deployments": [], "key": "cloudformation/retain-except-on-create-deletes-on-failed-create-retains-on-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_retain_except_on_create_deletes_on_failed_create_retains_on_delete.py", "service": "cloudformation"} {"check_id": "cloudformation.rollback-cancel-continue-flow", "deployments": [], "key": "cloudformation/rollback-cancel-continue-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:RollbackStack", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_rollback_cancel_continue_flow.py", "service": "cloudformation"} {"check_id": "cloudformation.rollback-complete-stack-cannot-be-updated", "deployments": [], "key": "cloudformation/rollback-complete-stack-cannot-be-updated", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_rollback_complete_stack_cannot_be_updated.py", "service": "cloudformation"} {"check_id": "cloudformation.rollback-stack-physically-deletes-the-preserved-resource", "deployments": [], "key": "cloudformation/rollback-stack-physically-deletes-the-preserved-resource", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:RollbackStack", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_rollback_stack_physically_deletes_the_preserved_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.rollback-state-transition", "deployments": [], "key": "cloudformation/rollback-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:ListStacks", "cloudformation:RollbackStack", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_rollback_state_transition.py", "service": "cloudformation"} {"check_id": "cloudformation.rules-assertions-gate-stack-creation-rejected", "deployments": [], "key": "cloudformation/rules-assertions-gate-stack-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_rules_assertions_gate_stack_creation_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.set-type-configuration-invalid-json-rejected", "deployments": [], "key": "cloudformation/set-type-configuration-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:BatchDescribeTypeConfigurations", "cloudformation:SetTypeConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_set_type_configuration_invalid_json_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.signal-resource-completes-wait-condition", "deployments": [], "key": "cloudformation/signal-resource-completes-wait-condition", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_signal_resource_completes_wait_condition.py", "service": "cloudformation"} {"check_id": "cloudformation.signal-resource-invalid-status-rejected", "deployments": [], "key": "cloudformation/signal-resource-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SignalResource"], "path": "behavioral/cloudformation/check_signal_resource_invalid_status_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.signal-resource-is-lenient", "deployments": [], "key": "cloudformation/signal-resource-is-lenient", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:SignalResource"], "path": "behavioral/cloudformation/check_signal_resource_is_lenient.py", "service": "cloudformation"} {"check_id": "cloudformation.signal-resource-success-event-names-unique-id", "deployments": [], "key": "cloudformation/signal-resource-success-event-names-unique-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SignalResource"], "path": "behavioral/cloudformation/check_signal_resource_success_event_names_unique_id.py", "service": "cloudformation"} {"check_id": "cloudformation.signal-resource-wait-condition-timeout", "deployments": [], "key": "cloudformation/signal-resource-wait-condition-timeout", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SignalResource"], "path": "behavioral/cloudformation/check_signal_resource_wait_condition_timeout.py", "service": "cloudformation"} {"check_id": "cloudformation.ssm-dynamic-reference-resolves-at-deploy-and-stays-stale", "deployments": [], "key": "cloudformation/ssm-dynamic-reference-resolves-at-deploy-and-stays-stale", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation/check_ssm_dynamic_reference_resolves_at_deploy_and_stays_stale.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-addressed-by-id-through-update-and-changeset", "deployments": [], "key": "cloudformation/stack-addressed-by-id-through-update-and-changeset", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:UpdateStack", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_stack_addressed_by_id_through_update_and_changeset.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-cancel-update-client-request-token-marks-rollback-events", "deployments": [], "key": "cloudformation/stack-cancel-update-client-request-token-marks-rollback-events", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_cancel_update_client_request_token_marks_rollback_events.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-cancel-update-rollback-lifecycle", "deployments": [], "key": "cloudformation/stack-cancel-update-rollback-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_cancel_update_rollback_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-continue-update-rollback-client-request-token-marks-its-events", "deployments": [], "key": "cloudformation/stack-continue-update-rollback-client-request-token-marks-its-events", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_continue_update_rollback_client_request_token_marks_its_events.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-continue-update-rollback-force-rollback-skips-failed-resource", "deployments": [], "key": "cloudformation/stack-continue-update-rollback-force-rollback-skips-failed-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_continue_update_rollback_force_rollback_skips_failed_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-continue-update-rollback-lifecycle", "deployments": [], "key": "cloudformation/stack-continue-update-rollback-lifecycle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation/check_stack_continue_update_rollback_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-create-resource-types-excluding-template-type-rejected", "deployments": [], "key": "cloudformation/stack-create-resource-types-excluding-template-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_create_resource_types_excluding_template_type_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-create-resource-types-with-capabilities", "deployments": [], "key": "cloudformation/stack-create-resource-types-with-capabilities", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_create_resource_types_with_capabilities.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-create-timeout-in-minutes-rolls-back", "deployments": [], "key": "cloudformation/stack-create-timeout-in-minutes-rolls-back", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_create_timeout_in_minutes_rolls_back.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-deploys-real-fifo-queue-that-deduplicates-and-orders", "deployments": [], "key": "cloudformation/stack-deploys-real-fifo-queue-that-deduplicates-and-orders", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:UpdateStack", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_stack_deploys_real_fifo_queue_that_deduplicates_and_orders.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-deploys-real-queue", "deployments": [], "key": "cloudformation/stack-deploys-real-queue", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:UpdateStack", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_stack_deploys_real_queue.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-events-golden-create-update-delete", "deployments": [], "key": "cloudformation/stack-events-golden-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_events_golden_create_update_delete.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-events-include-resource-status", "deployments": [], "key": "cloudformation/stack-events-include-resource-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_events_include_resource_status.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-events-ordering", "deployments": [], "key": "cloudformation/stack-events-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_events_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-export-removal-while-imported-rolls-back-producer", "deployments": [], "key": "cloudformation/stack-export-removal-while-imported-rolls-back-producer", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListExports", "cloudformation:ListImports", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_export_removal_while_imported_rolls_back_producer.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-export-value", "deployments": [], "key": "cloudformation/stack-export-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListExports"], "path": "behavioral/cloudformation/check_stack_export_value.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-instance-and-operation-not-found-errors", "deployments": [], "key": "cloudformation/stack-instance-and-operation-not-found-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetAutoDeploymentTargets", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:StopStackSetOperation", "cloudformation:UpdateStackSet"], "path": "behavioral/cloudformation/check_stack_instance_and_operation_not_found_errors.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-instance-and-refactor-not-found", "deployments": [], "key": "cloudformation/stack-instance-and-refactor-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackRefactor", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_instance_and_refactor_not_found.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-instance-and-refactor-not-found-rejected", "deployments": [], "key": "cloudformation/stack-instance-and-refactor-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackRefactor", "cloudformation:ListStackInstanceResourceDrifts", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_instance_and_refactor_not_found_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-instance-not-found-error", "deployments": [], "key": "cloudformation/stack-instance-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_instance_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-instances-deployment-ordering", "deployments": [], "key": "cloudformation/stack-instances-deployment-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_instances_deployment_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-instances-lifecycle", "deployments": [], "key": "cloudformation/stack-instances-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStacks", "cloudformation:ImportStacksToStackSet", "cloudformation:ListStackInstances", "cloudformation:UpdateStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_instances_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-name-conflict-rejected", "deployments": [], "key": "cloudformation/stack-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_name_conflict_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-outputs-present", "deployments": [], "key": "cloudformation/stack-outputs-present", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_outputs_present.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-parameter-numeric-precision-preserved", "deployments": [], "key": "cloudformation/stack-parameter-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_parameter_numeric_precision_preserved.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-policy-blocks-unauthorized-updates", "deployments": [], "key": "cloudformation/stack-policy-blocks-unauthorized-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:SetStackPolicy", "cloudformation:UpdateStack", "sns:GetTopicAttributes", "sns:ListTagsForResource"], "path": "behavioral/cloudformation/check_stack_policy_blocks_unauthorized_updates.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-policy-delete-protected-resource-rejected", "deployments": [], "key": "cloudformation/stack-policy-delete-protected-resource-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SetStackPolicy", "cloudformation:UpdateStack", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation/check_stack_policy_delete_protected_resource_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-policy-during-update-body-overrides-for-one-update-only", "deployments": [], "key": "cloudformation/stack-policy-during-update-body-overrides-for-one-update-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:SetStackPolicy", "cloudformation:UpdateStack", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_stack_policy_during_update_body_overrides_for_one_update_only.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-policy-roundtrip-and-enforcement", "deployments": [], "key": "cloudformation/stack-policy-roundtrip-and-enforcement", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:SetStackPolicy", "cloudformation:UpdateStack", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation/check_stack_policy_roundtrip_and_enforcement.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-refactor-actions-ordering", "deployments": [], "key": "cloudformation/stack-refactor-actions-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:CreateStackRefactor", "cloudformation:DeleteStack", "cloudformation:DescribeStackRefactor", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteStackRefactor", "cloudformation:ListStackRefactorActions"], "path": "behavioral/cloudformation/check_stack_refactor_actions_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-refactor-full-lifecycle", "deployments": [], "key": "cloudformation/stack-refactor-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:CreateStackRefactor", "cloudformation:DeleteStack", "cloudformation:DescribeStackRefactor", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteStackRefactor", "cloudformation:ListStackRefactorActions", "cloudformation:ListStackRefactors"], "path": "behavioral/cloudformation/check_stack_refactor_full_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-refactor-lifecycle", "deployments": [], "key": "cloudformation/stack-refactor-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:CreateStackRefactor", "cloudformation:DeleteStack", "cloudformation:DescribeStackRefactor", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteStackRefactor", "cloudformation:ListStackRefactorActions", "cloudformation:ListStackRefactors", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation/check_stack_refactor_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-resource-status-and-listing", "deployments": [], "key": "cloudformation/stack-resource-status-and-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_stack_resource_status_and_listing.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-rollback-after-create-failed-lifecycle", "deployments": [], "key": "cloudformation/stack-rollback-after-create-failed-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:RollbackStack"], "path": "behavioral/cloudformation/check_stack_rollback_after_create_failed_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-rollback-after-failure", "deployments": [], "key": "cloudformation/stack-rollback-after-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:RollbackStack"], "path": "behavioral/cloudformation/check_stack_rollback_after_failure.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-rollback-cleans-up", "deployments": [], "key": "cloudformation/stack-rollback-cleans-up", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources"], "path": "behavioral/cloudformation/check_stack_rollback_cleans_up.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-rollback-events-golden-failed-and-cancelled", "deployments": [], "key": "cloudformation/stack-rollback-events-golden-failed-and-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_rollback_events_golden_failed_and_cancelled.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-rollback-on-resource-failure", "deployments": [], "key": "cloudformation/stack-rollback-on-resource-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_rollback_on_resource_failure.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-rollback-stack-client-request-token-marks-rollback-events", "deployments": [], "key": "cloudformation/stack-rollback-stack-client-request-token-marks-rollback-events", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:RollbackStack", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_rollback_stack_client_request_token_marks_rollback_events.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-set-drift-detection-lifecycle", "deployments": [], "key": "cloudformation/stack-set-drift-detection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackResources", "cloudformation:DescribeStackSetOperation", "cloudformation:DetectStackSetDrift", "cloudformation:ListStackInstanceResourceDrifts", "cloudformation:ListStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_set_drift_detection_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-set-instance-lifecycle", "deployments": [], "key": "cloudformation/stack-set-instance-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:UpdateStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_set_instance_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-set-operation-lifecycle", "deployments": [], "key": "cloudformation/stack-set-operation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:ListStackSets", "cloudformation:UpdateStackSet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_set_operation_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-set-operation-lifecycle-tracking", "deployments": [], "key": "cloudformation/stack-set-operation-lifecycle-tracking", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:StopStackSetOperation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_set_operation_lifecycle_tracking.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-set-operation-single-flight-sequencing", "deployments": [], "key": "cloudformation/stack-set-operation-single-flight-sequencing", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperations", "cloudformation:UpdateStackSet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_set_operation_single_flight_sequencing.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-set-operation-timeout-enforcement", "deployments": [], "key": "cloudformation/stack-set-operation-timeout-enforcement", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:StopStackSetOperation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stack_set_operation_timeout_enforcement.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-tag-value-unicode-round-trip", "deployments": [], "key": "cloudformation/stack-tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks"], "path": "behavioral/cloudformation/check_stack_tag_value_unicode_round_trip.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-tags-propagate-to-resources", "deployments": [], "key": "cloudformation/stack-tags-propagate-to-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "sns:GetTopicAttributes", "sns:ListTagsForResource", "sns:SetTopicAttributes"], "path": "behavioral/cloudformation/check_stack_tags_propagate_to_resources.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-tags-roundtrip", "deployments": [], "key": "cloudformation/stack-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_stack_tags_roundtrip.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-update-cancel-then-continue-rollback", "deployments": [], "key": "cloudformation/stack-update-cancel-then-continue-rollback", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation/check_stack_update_cancel_then_continue_rollback.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-update-disable-validation-defers-property-error-to-provisioning", "deployments": [], "key": "cloudformation/stack-update-disable-validation-defers-property-error-to-provisioning", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_update_disable_validation_defers_property_error_to_provisioning.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-update-replaces-resource", "deployments": [], "key": "cloudformation/stack-update-replaces-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_stack_update_replaces_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.stack-update-resource-types-excluding-added-type-rejected", "deployments": [], "key": "cloudformation/stack-update-resource-types-excluding-added-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_stack_update_resource_types_excluding_added_type_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-concurrent-operation-rejected", "deployments": [], "key": "cloudformation/stackset-concurrent-operation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:UpdateStackSet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_concurrent_operation_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-create-duplicate-name-rejected", "deployments": [], "key": "cloudformation/stackset-create-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies"], "path": "behavioral/cloudformation/check_stackset_create_duplicate_name_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-crud-lifecycle-empty-instances", "deployments": [], "key": "cloudformation/stackset-crud-lifecycle-empty-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:GetTemplateSummary", "cloudformation:ListStackSetOperations", "cloudformation:ListStackSets", "cloudformation:UpdateStackSet"], "path": "behavioral/cloudformation/check_stackset_crud_lifecycle_empty_instances.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-delete-nonempty-rejected", "deployments": [], "key": "cloudformation/stackset-delete-nonempty-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_delete_nonempty_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-deployment-targets-self-managed-rejected", "deployments": [], "key": "cloudformation/stackset-deployment-targets-self-managed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_deployment_targets_self_managed_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-instances-full-lifecycle", "deployments": [], "key": "cloudformation/stackset-instances-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStacks", "cloudformation:ListStackInstances", "cloudformation:UpdateStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_instances_full_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-not-found-across-apis-rejected", "deployments": [], "key": "cloudformation/stackset-not-found-across-apis-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:GetTemplateSummary", "cloudformation:ListStackInstances", "cloudformation:ListStackSetAutoDeploymentTargets", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:UpdateStackSet", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_not_found_across_apis_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-not-found-and-not-empty-errors", "deployments": [], "key": "cloudformation/stackset-not-found-and-not-empty-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:GetTemplateSummary", "cloudformation:ListStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_not_found_and_not_empty_errors.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-not-found-error-across-apis", "deployments": [], "key": "cloudformation/stackset-not-found-error-across-apis", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:GetTemplateSummary", "cloudformation:ListStackInstances", "cloudformation:ListStackSetAutoDeploymentTargets", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_not_found_error_across_apis.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-operation-lifecycle", "deployments": [], "key": "cloudformation/stackset-operation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackSetAutoDeploymentTargets", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:StopStackSetOperation", "cloudformation:UpdateStackSet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_operation_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-operation-monitoring-lifecycle", "deployments": [], "key": "cloudformation/stackset-operation-monitoring-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:StopStackSetOperation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_operation_monitoring_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-operation-not-found-error", "deployments": [], "key": "cloudformation/stackset-operation-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackSetOperations", "cloudformation:UpdateStackSet"], "path": "behavioral/cloudformation/check_stackset_operation_not_found_error.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-operation-not-found-rejected", "deployments": [], "key": "cloudformation/stackset-operation-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackSetOperationResults", "cloudformation:StopStackSetOperation", "cloudformation:UpdateStackSet"], "path": "behavioral/cloudformation/check_stackset_operation_not_found_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stackset-operation-results-ordering", "deployments": [], "key": "cloudformation/stackset-operation-results-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackSetOperationResults", "cloudformation:UpdateStackSet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_stackset_operation_results_ordering.py", "service": "cloudformation"} {"check_id": "cloudformation.start-resource-scan-in-progress-rejected", "deployments": [], "key": "cloudformation/start-resource-scan-in-progress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeResourceScan", "cloudformation:ListResourceScans", "cloudformation:StartResourceScan"], "path": "behavioral/cloudformation/check_start_resource_scan_in_progress_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.stop-nonexistent-stack-set-operation-fails", "deployments": [], "key": "cloudformation/stop-nonexistent-stack-set-operation-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:StopStackSetOperation", "cloudformation:UpdateStackSet"], "path": "behavioral/cloudformation/check_stop_nonexistent_stack_set_operation_fails.py", "service": "cloudformation"} {"check_id": "cloudformation.stop-nonexistent-stackset-operation-rejected", "deployments": [], "key": "cloudformation/stop-nonexistent-stackset-operation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:StopStackSetOperation", "cloudformation:UpdateStackSet"], "path": "behavioral/cloudformation/check_stop_nonexistent_stackset_operation_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.tags-propagate-and-update", "deployments": [], "key": "cloudformation/tags-propagate-and-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_tags_propagate_and_update.py", "service": "cloudformation"} {"check_id": "cloudformation.template-body-size-boundary-create-and-update-stack", "deployments": [], "key": "cloudformation/template-body-size-boundary-create-and-update-stack", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:ListChangeSets", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_template_body_size_boundary_create_and_update_stack.py", "service": "cloudformation"} {"check_id": "cloudformation.template-body-unicode-round-trip", "deployments": [], "key": "cloudformation/template-body-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate"], "path": "behavioral/cloudformation/check_template_body_unicode_round_trip.py", "service": "cloudformation"} {"check_id": "cloudformation.template-init-metadata-round-trips-describe-stack-resource", "deployments": [], "key": "cloudformation/template-init-metadata-round-trips-describe-stack-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_template_init_metadata_round_trips_describe_stack_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.template-interface-metadata-in-summary", "deployments": [], "key": "cloudformation/template-interface-metadata-in-summary", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplateSummary"], "path": "behavioral/cloudformation/check_template_interface_metadata_in_summary.py", "service": "cloudformation"} {"check_id": "cloudformation.template-mappings-conditions-output-set", "deployments": [], "key": "cloudformation/template-mappings-conditions-output-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_template_mappings_conditions_output_set.py", "service": "cloudformation"} {"check_id": "cloudformation.template-resource-count-limit", "deployments": [], "key": "cloudformation/template-resource-count-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplateSummary", "cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_template_resource_count_limit.py", "service": "cloudformation"} {"check_id": "cloudformation.template-wait-condition-failure-signal-fails-create", "deployments": [], "key": "cloudformation/template-wait-condition-failure-signal-fails-create", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_template_wait_condition_failure_signal_fails_create.py", "service": "cloudformation"} {"check_id": "cloudformation.termination-protection-allows-an-update-that-deletes-a-resource-but-blocks-delete", "deployments": [], "key": "cloudformation/termination-protection-allows-an-update-that-deletes-a-resource-but-blocks-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:ListStacks", "cloudformation:UpdateStack", "cloudformation:UpdateTerminationProtection", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_termination_protection_allows_an_update_that_deletes_a_resource_but_blocks_delete.py", "service": "cloudformation"} {"check_id": "cloudformation.termination-protection-blocks-delete", "deployments": [], "key": "cloudformation/termination-protection-blocks-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:UpdateStack", "cloudformation:UpdateTerminationProtection"], "path": "behavioral/cloudformation/check_termination_protection_blocks_delete.py", "service": "cloudformation"} {"check_id": "cloudformation.termination-protection-disable-then-delete", "deployments": [], "key": "cloudformation/termination-protection-disable-then-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection"], "path": "behavioral/cloudformation/check_termination_protection_disable_then_delete.py", "service": "cloudformation"} {"check_id": "cloudformation.termination-protection-enabled-after-update-blocks-delete-by-stack-id", "deployments": [], "key": "cloudformation/termination-protection-enabled-after-update-blocks-delete-by-stack-id", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:UpdateStack", "cloudformation:UpdateTerminationProtection", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_termination_protection_enabled_after_update_blocks_delete_by_stack_id.py", "service": "cloudformation"} {"check_id": "cloudformation.token-already-exists-rejects-duplicate-request-token", "deployments": [], "key": "cloudformation/token-already-exists-rejects-duplicate-request-token", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_token_already_exists_rejects_duplicate_request_token.py", "service": "cloudformation"} {"check_id": "cloudformation.type-activation-toggle-lifecycle", "deployments": [], "key": "cloudformation/type-activation-toggle-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:DeactivateType", "cloudformation:DescribeType", "cloudformation:ListTypes", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudformation/check_type_activation_toggle_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.type-configuration-nested-json-structure-preserved", "deployments": [], "key": "cloudformation/type-configuration-nested-json-structure-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:BatchDescribeTypeConfigurations", "cloudformation:DeactivateType", "cloudformation:DescribeType", "cloudformation:ListTypes", "cloudformation:SetTypeConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudformation/check_type_configuration_nested_json_structure_preserved.py", "service": "cloudformation"} {"check_id": "cloudformation.type-configuration-roundtrip", "deployments": [], "key": "cloudformation/type-configuration-roundtrip", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:BatchDescribeTypeConfigurations", "cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:RegisterType", "cloudformation:SetTypeConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudformation/check_type_configuration_roundtrip.py", "service": "cloudformation"} {"check_id": "cloudformation.type-configuration-set-and-batch-describe", "deployments": [], "key": "cloudformation/type-configuration-set-and-batch-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:BatchDescribeTypeConfigurations", "cloudformation:DeactivateType", "cloudformation:SetTypeConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_type_configuration_set_and_batch_describe.py", "service": "cloudformation"} {"check_id": "cloudformation.type-not-found-across-apis-rejected", "deployments": [], "key": "cloudformation/type-not-found-across-apis-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:DeactivateType", "cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:PublishType", "cloudformation:SetTypeConfiguration", "cloudformation:SetTypeDefaultVersion", "cloudformation:TestType", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_type_not_found_across_apis_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.type-not-found-error-across-apis", "deployments": [], "key": "cloudformation/type-not-found-error-across-apis", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:DeactivateType", "cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:PublishType", "cloudformation:SetTypeConfiguration", "cloudformation:SetTypeDefaultVersion", "cloudformation:TestType", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_type_not_found_error_across_apis.py", "service": "cloudformation"} {"check_id": "cloudformation.type-publishing-lifecycle", "deployments": [], "key": "cloudformation/type-publishing-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:BatchDescribeTypeConfigurations", "cloudformation:DeregisterType", "cloudformation:DescribePublisher", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeVersions", "cloudformation:ListTypes", "cloudformation:PublishType", "cloudformation:RegisterPublisher", "cloudformation:RegisterType", "cloudformation:SetTypeConfiguration", "cloudformation:TestType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_type_publishing_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.type-registration-full-lifecycle", "deployments": [], "key": "cloudformation/type-registration-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeRegistrations", "cloudformation:ListTypeVersions", "cloudformation:RegisterType", "cloudformation:SetTypeDefaultVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_type_registration_full_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.type-registration-in-progress-timeout-transitions-failed", "deployments": [], "key": "cloudformation/type-registration-in-progress-timeout-transitions-failed", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_type_registration_in_progress_timeout_transitions_failed.py", "service": "cloudformation"} {"check_id": "cloudformation.type-registration-lifecycle", "deployments": [], "key": "cloudformation/type-registration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeRegistrations", "cloudformation:ListTypeVersions", "cloudformation:ListTypes", "cloudformation:RegisterType", "cloudformation:SetTypeDefaultVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudformation/check_type_registration_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.type-registry-describes-public-resource-type", "deployments": [], "key": "cloudformation/type-registry-describes-public-resource-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DescribeType", "cloudformation:ListTypes"], "path": "behavioral/cloudformation/check_type_registry_describes_public_resource_type.py", "service": "cloudformation"} {"check_id": "cloudformation.type-registry-full-lifecycle", "deployments": [], "key": "cloudformation/type-registry-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:DeactivateType", "cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeRegistrations", "cloudformation:ListTypeVersions", "cloudformation:ListTypes", "cloudformation:RegisterType", "cloudformation:SetTypeDefaultVersion", "iam:CreateRole", "iam:DeleteRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudformation/check_type_registry_full_lifecycle.py", "service": "cloudformation"} {"check_id": "cloudformation.type-registry-not-found-errors", "deployments": [], "key": "cloudformation/type-registry-not-found-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ActivateType", "cloudformation:DeactivateType", "cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:PublishType", "cloudformation:SetTypeConfiguration", "cloudformation:SetTypeDefaultVersion", "cloudformation:TestType"], "path": "behavioral/cloudformation/check_type_registry_not_found_errors.py", "service": "cloudformation"} {"check_id": "cloudformation.type-version-publish-and-test", "deployments": [], "key": "cloudformation/type-version-publish-and-test", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeType", "cloudformation:PublishType", "cloudformation:TestType", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_type_version_publish_and_test.py", "service": "cloudformation"} {"check_id": "cloudformation.type-version-publish-before-test-rejected", "deployments": [], "key": "cloudformation/type-version-publish-before-test-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeregisterType", "cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypeVersions", "cloudformation:PublishType", "cloudformation:RegisterType", "cloudformation:TestType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation/check_type_version_publish_before_test_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.unrecognized-resource-type-rejected-up-front", "deployments": [], "key": "cloudformation/unrecognized-resource-type-rejected-up-front", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_unrecognized_resource_type_rejected_up_front.py", "service": "cloudformation"} {"check_id": "cloudformation.unresolvable-output-intrinsic-fails-the-stack-rather-than-vanishing", "deployments": [], "key": "cloudformation/unresolvable-output-intrinsic-fails-the-stack-rather-than-vanishing", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_unresolvable_output_intrinsic_fails_the_stack_rather_than_vanishing.py", "service": "cloudformation"} {"check_id": "cloudformation.update-generated-template-add-remove-resources", "deployments": [], "key": "cloudformation/update-generated-template-add-remove-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:GetGeneratedTemplate", "cloudformation:UpdateGeneratedTemplate", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/cloudformation/check_update_generated_template_add_remove_resources.py", "service": "cloudformation"} {"check_id": "cloudformation.update-generated-template-name-conflict", "deployments": [], "key": "cloudformation/update-generated-template-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:UpdateGeneratedTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudformation/check_update_generated_template_name_conflict.py", "service": "cloudformation"} {"check_id": "cloudformation.update-no-change-errors", "deployments": [], "key": "cloudformation/update-no-change-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_update_no_change_errors.py", "service": "cloudformation"} {"check_id": "cloudformation.update-nonexistent-stack-not-found", "deployments": [], "key": "cloudformation/update-nonexistent-stack-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_update_nonexistent_stack_not_found.py", "service": "cloudformation"} {"check_id": "cloudformation.update-rollback-restores-pre-update-state", "deployments": [], "key": "cloudformation/update-rollback-restores-pre-update-state", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_update_rollback_restores_pre_update_state.py", "service": "cloudformation"} {"check_id": "cloudformation.update-stack-add-resource", "deployments": [], "key": "cloudformation/update-stack-add-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_update_stack_add_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.update-stack-adds-then-removes-a-real-queue", "deployments": [], "key": "cloudformation/update-stack-adds-then-removes-a-real-queue", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:UpdateStack", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_update_stack_adds_then_removes_a_real_queue.py", "service": "cloudformation"} {"check_id": "cloudformation.update-stack-duplicate-token-rejected", "deployments": [], "key": "cloudformation/update-stack-duplicate-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_update_stack_duplicate_token_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.update-stack-insufficient-capabilities-rejected", "deployments": [], "key": "cloudformation/update-stack-insufficient-capabilities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole"], "path": "behavioral/cloudformation/check_update_stack_insufficient_capabilities_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.update-stack-malformed-json-template-rejected", "deployments": [], "key": "cloudformation/update-stack-malformed-json-template-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_update_stack_malformed_json_template_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.update-stack-remove-resource", "deployments": [], "key": "cloudformation/update-stack-remove-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation/check_update_stack_remove_resource.py", "service": "cloudformation"} {"check_id": "cloudformation.update-stack-replaces-a-renamed-queue-and-updates-visibility-in-place", "deployments": [], "key": "cloudformation/update-stack-replaces-a-renamed-queue-and-updates-visibility-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:UpdateStack", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation/check_update_stack_replaces_a_renamed_queue_and_updates_visibility_in_place.py", "service": "cloudformation"} {"check_id": "cloudformation.update-stack-set-invalid-region-rejected", "deployments": [], "key": "cloudformation/update-stack-set-invalid-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation/check_update_stack_set_invalid_region_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.update-use-previous-value-carries-the-noecho-parameter", "deployments": [], "key": "cloudformation/update-use-previous-value-carries-the-noecho-parameter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_update_use_previous_value_carries_the_noecho_parameter.py", "service": "cloudformation"} {"check_id": "cloudformation.validate-template-capabilities", "deployments": [], "key": "cloudformation/validate-template-capabilities", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_validate_template_capabilities.py", "service": "cloudformation"} {"check_id": "cloudformation.validate-template-invalid", "deployments": [], "key": "cloudformation/validate-template-invalid", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_validate_template_invalid.py", "service": "cloudformation"} {"check_id": "cloudformation.validate-template-malformed-rejected", "deployments": [], "key": "cloudformation/validate-template-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_validate_template_malformed_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.validate-template-returns-parameters", "deployments": [], "key": "cloudformation/validate-template-returns-parameters", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_validate_template_returns_parameters.py", "service": "cloudformation"} {"check_id": "cloudformation.validate-template-unsupported-format-version-rejected", "deployments": [], "key": "cloudformation/validate-template-unsupported-format-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_validate_template_unsupported_format_version_rejected.py", "service": "cloudformation"} {"check_id": "cloudformation.validate-template-valid", "deployments": [], "key": "cloudformation/validate-template-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/cloudformation/check_validate_template_valid.py", "service": "cloudformation"} {"check_id": "cloudformation.wait-condition-and-creation-policy-timeout-reasons", "deployments": [], "key": "cloudformation/wait-condition-and-creation-policy-timeout-reasons", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_wait_condition_and_creation_policy_timeout_reasons.py", "service": "cloudformation"} {"check_id": "cloudformation.wait-condition-count-and-data-signal-accounting", "deployments": [], "key": "cloudformation/wait-condition-count-and-data-signal-accounting", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation/check_wait_condition_count_and_data_signal_accounting.py", "service": "cloudformation"} {"check_id": "cloudformation.yaml-template-short-form-intrinsics", "deployments": [], "key": "cloudformation/yaml-template-short-form-intrinsics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:GetTemplateSummary", "ssm:GetParameter"], "path": "behavioral/cloudformation/check_yaml_template_short_form_intrinsics.py", "service": "cloudformation"} {"check_id": "cloudformation__cloudfront.cfn-cloudfront-origin-access-control-create-update-in-place-stale-etag-refused-then-delete", "deployments": [], "key": "cloudformation__cloudfront/cfn-cloudfront-origin-access-control-create-update-in-place-stale-etag-refused-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl"], "path": "behavioral/cloudformation__cloudfront/check_cfn_cloudfront_origin_access_control_create_update_in_place_stale_etag_refused_then_delete.py", "service": "cloudformation__cloudfront"} {"check_id": "cloudformation__cloudfront.deploy-cfn-cloudfront-cache-policy-invalid-ttl-order-create-rejected", "deployments": [], "key": "cloudformation__cloudfront/deploy-cfn-cloudfront-cache-policy-invalid-ttl-order-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetCachePolicy", "cloudfront:ListCachePolicies"], "path": "behavioral/cloudformation__cloudfront/check_deploy_cfn_cloudfront_cache_policy_invalid_ttl_order_create_rejected.py", "service": "cloudformation__cloudfront"} {"check_id": "cloudformation__cloudfront.deploy-cfn-cloudfront-standalone-resources-lifecycle", "deployments": [], "key": "cloudformation__cloudfront/deploy-cfn-cloudfront-standalone-resources-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:DescribeConnectionFunction", "cloudfront:DescribeKeyValueStore", "cloudfront:GetCachePolicy", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetConnectionFunction", "cloudfront:GetOriginAccessControl", "cloudfront:GetOriginRequestPolicy", "cloudfront:GetResponseHeadersPolicy"], "path": "behavioral/cloudformation__cloudfront/check_deploy_cfn_cloudfront_standalone_resources_lifecycle.py", "service": "cloudformation__cloudfront"} {"check_id": "cloudformation__cloudfront.deploy-cloudfront-connection-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__cloudfront/deploy-cloudfront-connection-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetConnectionGroup", "cloudfront:ListTagsForResource"], "path": "behavioral/cloudformation__cloudfront/check_deploy_cloudfront_connection_group_round_trip_and_delete.py", "service": "cloudformation__cloudfront"} {"check_id": "cloudformation__cloudfront.deploy-cloudfront-distribution-and-monitoring-subscription-round-trip-and-delete", "deployments": [], "key": "cloudformation__cloudfront/deploy-cloudfront-distribution-and-monitoring-subscription-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudfront:GetDistribution", "cloudfront:GetMonitoringSubscription", "cloudfront:ListTagsForResource"], "path": "behavioral/cloudformation__cloudfront/check_deploy_cloudfront_distribution_and_monitoring_subscription_round_trip_and_delete.py", "service": "cloudformation__cloudfront"} {"check_id": "cloudformation__cloudfront.deploy-cloudfront-publickey-and-keygroup-round-trip-and-delete", "deployments": [], "key": "cloudformation__cloudfront/deploy-cloudfront-publickey-and-keygroup-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:ListKeyGroups", "cloudfront:ListPublicKeys"], "path": "behavioral/cloudformation__cloudfront/check_deploy_cloudfront_publickey_and_keygroup_round_trip_and_delete.py", "service": "cloudformation__cloudfront"} {"check_id": "cloudformation__cloudfront.deploy-cloudfront-publickey-invalid-encoded-key-rejected", "deployments": [], "key": "cloudformation__cloudfront/deploy-cloudfront-publickey-invalid-encoded-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:ListPublicKeys"], "path": "behavioral/cloudformation__cloudfront/check_deploy_cloudfront_publickey_invalid_encoded_key_rejected.py", "service": "cloudformation__cloudfront"} {"check_id": "cloudformation__cloudfront.deploy-origin-access-control-invalid-signing-protocol-rejected", "deployments": [], "key": "cloudformation__cloudfront/deploy-origin-access-control-invalid-signing-protocol-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetOriginAccessControl", "cloudfront:ListOriginAccessControls"], "path": "behavioral/cloudformation__cloudfront/check_deploy_origin_access_control_invalid_signing_protocol_rejected.py", "service": "cloudformation__cloudfront"} {"check_id": "cloudformation__cloudfront__ec2__elbv2.deploy-cloudfront-vpc-origin-round-trip-and-delete", "deployments": [], "key": "cloudformation__cloudfront__ec2__elbv2/deploy-cloudfront-vpc-origin-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetVpcOrigin", "cloudfront:ListTagsForResource", "cloudfront:ListVpcOrigins", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudformation__cloudfront__ec2__elbv2/check_deploy_cloudfront_vpc_origin_round_trip_and_delete.py", "service": "cloudformation__cloudfront__ec2__elbv2"} {"check_id": "cloudformation__cloudfront__iam__kinesis.deploy-cloudfront-realtimelogconfig-round-trip-and-delete", "deployments": [], "key": "cloudformation__cloudfront__iam__kinesis/deploy-cloudfront-realtimelogconfig-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetRealtimeLogConfig", "cloudfront:ListRealtimeLogConfigs", "iam:GetRole", "iam:GetRolePolicy", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForStream"], "path": "behavioral/cloudformation__cloudfront__iam__kinesis/check_deploy_cloudfront_realtimelogconfig_round_trip_and_delete.py", "service": "cloudformation__cloudfront__iam__kinesis"} {"check_id": "cloudformation__cloudfront__iam__kinesis.deploy-cloudfront-realtimelogconfig-sampling-rate-over-maximum-rejected", "deployments": [], "key": "cloudformation__cloudfront__iam__kinesis/deploy-cloudfront-realtimelogconfig-sampling-rate-over-maximum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetRealtimeLogConfig", "cloudfront:ListRealtimeLogConfigs", "iam:GetRolePolicy", "kinesis:DescribeStreamSummary"], "path": "behavioral/cloudformation__cloudfront__iam__kinesis/check_deploy_cloudfront_realtimelogconfig_sampling_rate_over_maximum_rejected.py", "service": "cloudformation__cloudfront__iam__kinesis"} {"check_id": "cloudformation__cloudfront__s3.cfn-cloudfront-distribution-in-place-update-serves-new-root-object-then-not-found", "deployments": [], "key": "cloudformation__cloudfront__s3/cfn-cloudfront-distribution-in-place-update-serves-new-root-object-then-not-found", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudfront:GetDistribution", "cloudfront:ListCachePolicies", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudformation__cloudfront__s3/check_cfn_cloudfront_distribution_in_place_update_serves_new_root_object_then_not_found.py", "service": "cloudformation__cloudfront__s3"} {"check_id": "cloudformation__cloudfront__s3.deploy-cloudfront-truststore-invalid-ca-bundle-rejected", "deployments": [], "key": "cloudformation__cloudfront__s3/deploy-cloudfront-truststore-invalid-ca-bundle-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteObject", "s3:GetPublicAccessBlock", "s3:PutObject"], "path": "behavioral/cloudformation__cloudfront__s3/check_deploy_cloudfront_truststore_invalid_ca_bundle_rejected.py", "service": "cloudformation__cloudfront__s3"} {"check_id": "cloudformation__cloudfront__s3.deploy-cloudfront-truststore-round-trip-and-delete", "deployments": [], "key": "cloudformation__cloudfront__s3/deploy-cloudfront-truststore-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetTrustStore", "cloudfront:ListTagsForResource", "s3:DeleteObject", "s3:GetBucketTagging", "s3:GetPublicAccessBlock", "s3:HeadObject", "s3:PutObject"], "path": "behavioral/cloudformation__cloudfront__s3/check_deploy_cloudfront_truststore_round_trip_and_delete.py", "service": "cloudformation__cloudfront__s3"} {"check_id": "cloudformation__cloudhsmv2.deploy-cloudformation-cloudhsm-cluster-invalid-hsm-type-rejected", "deployments": [], "key": "cloudformation__cloudhsmv2/deploy-cloudformation-cloudhsm-cluster-invalid-hsm-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__cloudhsmv2/check_deploy_cloudformation_cloudhsm_cluster_invalid_hsm_type_rejected.py", "service": "cloudformation__cloudhsmv2"} {"check_id": "cloudformation__cloudhsmv2.deploy-cloudformation-cloudhsm-cluster-round-trip-and-delete", "deployments": [], "key": "cloudformation__cloudhsmv2/deploy-cloudformation-cloudhsm-cluster-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__cloudhsmv2/check_deploy_cloudformation_cloudhsm_cluster_round_trip_and_delete.py", "service": "cloudformation__cloudhsmv2"} {"check_id": "cloudformation__cloudtrail.create-stack-with-a-role-cloudformation-cannot-assume-is-rejected-and-audited", "deployments": [], "key": "cloudformation__cloudtrail/create-stack-with-a-role-cloudformation-cannot-assume-is-rejected-and-audited", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__cloudtrail/check_create_stack_with_a_role_cloudformation_cannot_assume_is_rejected_and_audited.py", "service": "cloudformation__cloudtrail"} {"check_id": "cloudformation__cloudtrail.obs-cloudformation-1-stack-lifecycle-is-audited-as-the-caller-and-provisioning-as-the-service", "deployments": [], "key": "cloudformation__cloudtrail/obs-cloudformation-1-stack-lifecycle-is-audited-as-the-caller-and-provisioning-as-the-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__cloudtrail/check_obs_cloudformation_1_stack_lifecycle_is_audited_as_the_caller_and_provisioning_as_the_service.py", "service": "cloudformation__cloudtrail"} {"check_id": "cloudformation__cloudwatch.cdk-deploy-composite-alarm-and-rule-requires-both-children-in-alarm", "deployments": ["behavioral/cloudformation__cloudwatch/deployments/cdk_composite_alarm/app.py", "behavioral/cloudformation__cloudwatch/deployments/cdk_composite_alarm/cdk.json"], "key": "cloudformation__cloudwatch/cdk-deploy-composite-alarm-and-rule-requires-both-children-in-alarm", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__cloudwatch/check_cdk_deploy_composite_alarm_and_rule_requires_both_children_in_alarm.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.cdk-deploy-composite-alarm-or-rule-reflects-either-child-alarm", "deployments": ["behavioral/cloudformation__cloudwatch/deployments/cdk_composite_alarm/app.py", "behavioral/cloudformation__cloudwatch/deployments/cdk_composite_alarm/cdk.json"], "key": "cloudformation__cloudwatch/cdk-deploy-composite-alarm-or-rule-reflects-either-child-alarm", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__cloudwatch/check_cdk_deploy_composite_alarm_or_rule_reflects_either_child_alarm.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.cfn-cloudwatch-alarm-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__cloudwatch/cfn-cloudwatch-alarm-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudformation__cloudwatch/check_cfn_cloudwatch_alarm_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.cfn-cloudwatch-alarm-nested-required-members-rejected", "deployments": [], "key": "cloudformation__cloudwatch/cfn-cloudwatch-alarm-nested-required-members-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudformation__cloudwatch/check_cfn_cloudwatch_alarm_nested_required_members_rejected.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.change-set-rollback-configuration-alarm-rolls-back-the-execution", "deployments": [], "key": "cloudformation__cloudwatch/change-set-rollback-configuration-alarm-rolls-back-the-execution", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudformation__cloudwatch/check_change_set_rollback_configuration_alarm_rolls_back_the_execution.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.cloudwatch-dashboard-follows-template-through-lifecycle", "deployments": [], "key": "cloudformation__cloudwatch/cloudwatch-dashboard-follows-template-through-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListTagsForResource"], "path": "behavioral/cloudformation__cloudwatch/check_cloudwatch_dashboard_follows_template_through_lifecycle.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.cloudwatch-insight-rule-cfn-deploy-delete-lifecycle", "deployments": [], "key": "cloudformation__cloudwatch/cloudwatch-insight-rule-cfn-deploy-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeInsightRules", "cloudwatch:ListTagsForResource"], "path": "behavioral/cloudformation__cloudwatch/check_cloudwatch_insight_rule_cfn_deploy_delete_lifecycle.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.cloudwatch-insight-rule-cfn-invalid-rule-body-rejected", "deployments": [], "key": "cloudformation__cloudwatch/cloudwatch-insight-rule-cfn-invalid-rule-body-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeInsightRules"], "path": "behavioral/cloudformation__cloudwatch/check_cloudwatch_insight_rule_cfn_invalid_rule_body_rejected.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.cloudwatch-log-alarm-cfn-deploy-delete-lifecycle", "deployments": [], "key": "cloudformation__cloudwatch/cloudwatch-log-alarm-cfn-deploy-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__cloudwatch/check_cloudwatch_log_alarm_cfn_deploy_delete_lifecycle.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.cloudwatch-otel-enrichment-cfn-singleton-lifecycle", "deployments": [], "key": "cloudformation__cloudwatch/cloudwatch-otel-enrichment-cfn-singleton-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetOTelEnrichment"], "path": "behavioral/cloudformation__cloudwatch/check_cloudwatch_otel_enrichment_cfn_singleton_lifecycle.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.deploy-cloudformation-alarm-mute-rule-malformed-schedule-rejected-rollback", "deployments": [], "key": "cloudformation__cloudwatch/deploy-cloudformation-alarm-mute-rule-malformed-schedule-rejected-rollback", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetAlarmMuteRule"], "path": "behavioral/cloudformation__cloudwatch/check_deploy_cloudformation_alarm_mute_rule_malformed_schedule_rejected_rollback.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.deploy-cloudformation-alarm-mute-rule-provisioned-and-deleted", "deployments": [], "key": "cloudformation__cloudwatch/deploy-cloudformation-alarm-mute-rule-provisioned-and-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetAlarmMuteRule"], "path": "behavioral/cloudformation__cloudwatch/check_deploy_cloudformation_alarm_mute_rule_provisioned_and_deleted.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch.deploy-cloudformation-anomaly-detector-provisioned-and-deleted", "deployments": [], "key": "cloudformation__cloudwatch/deploy-cloudformation-anomaly-detector-provisioned-and-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__cloudwatch/check_deploy_cloudformation_anomaly_detector_provisioned_and_deleted.py", "service": "cloudformation__cloudwatch"} {"check_id": "cloudformation__cloudwatch__ecr__ecs__elbv2__logs.cfn-nested-stack-microservice-platform-alarm-echoes-declared-period", "deployments": ["behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-child-invalid.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-network.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-observability.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-parent-rollback.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-parent.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-service.yaml"], "key": "cloudformation__cloudwatch__ecr__ecs__elbv2__logs/cfn-nested-stack-microservice-platform-alarm-echoes-declared-period", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateManagedPrefixList", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteManagedPrefixList", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeManagedPrefixLists", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutRetentionPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/check_cfn_nested_stack_microservice_platform_alarm_echoes_declared_period.py", "service": "cloudformation__cloudwatch__ecr__ecs__elbv2__logs"} {"check_id": "cloudformation__cloudwatch__ecr__ecs__elbv2__logs.cfn-nested-stack-microservice-platform-workflow", "deployments": ["behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-child-invalid.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-network.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-observability.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-parent-rollback.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-parent.yaml", "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/deployments/platform-service.yaml"], "key": "cloudformation__cloudwatch__ecr__ecs__elbv2__logs/cfn-nested-stack-microservice-platform-workflow", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateManagedPrefixList", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteManagedPrefixList", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeManagedPrefixLists", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutRetentionPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__cloudwatch__ecr__ecs__elbv2__logs/check_cfn_nested_stack_microservice_platform_workflow.py", "service": "cloudformation__cloudwatch__ecr__ecs__elbv2__logs"} {"check_id": "cloudformation__cloudwatch__lambda__logs__sqs__ssm.cfn-change-set-queue-worker-update-workflow", "deployments": ["behavioral/cloudformation__cloudwatch__lambda__logs__sqs__ssm/deployments/queue-worker-no-config-permission.yaml", "behavioral/cloudformation__cloudwatch__lambda__logs__sqs__ssm/deployments/queue-worker.yaml"], "key": "cloudformation__cloudwatch__lambda__logs__sqs__ssm/cfn-change-set-queue-worker-update-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:SendMessage", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__cloudwatch__lambda__logs__sqs__ssm/check_cfn_change_set_queue_worker_update_workflow.py", "service": "cloudformation__cloudwatch__lambda__logs__sqs__ssm"} {"check_id": "cloudformation__cloudwatch__logs.cdk-deploy-log-metric-filter-alarm-ignores-non-matching-events", "deployments": ["behavioral/cloudformation__cloudwatch__logs/deployments/cdk_log_metric_alarm/app.py", "behavioral/cloudformation__cloudwatch__logs/deployments/cdk_log_metric_alarm/cdk.json"], "key": "cloudformation__cloudwatch__logs/cdk-deploy-log-metric-filter-alarm-ignores-non-matching-events", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudwatch:DescribeAlarms", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:PutLogEvents", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__cloudwatch__logs/check_cdk_deploy_log_metric_filter_alarm_ignores_non_matching_events.py", "service": "cloudformation__cloudwatch__logs"} {"check_id": "cloudformation__cloudwatch__logs.deploy-logs-3-invalid-filter-pattern-rejected-rolls-back", "deployments": [], "key": "cloudformation__cloudwatch__logs/deploy-logs-3-invalid-filter-pattern-rejected-rolls-back", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:GetMetricStatistics", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeMetricFilters", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudformation__cloudwatch__logs/check_deploy_logs_3_invalid_filter_pattern_rejected_rolls_back.py", "service": "cloudformation__cloudwatch__logs"} {"check_id": "cloudformation__cloudwatch__logs.deploy-logs-3-invalid-pattern-update-rejected-keeps-old-filter", "deployments": [], "key": "cloudformation__cloudwatch__logs/deploy-logs-3-invalid-pattern-update-rejected-keeps-old-filter", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:GetMetricStatistics", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:PutLogEvents"], "path": "behavioral/cloudformation__cloudwatch__logs/check_deploy_logs_3_invalid_pattern_update_rejected_keeps_old_filter.py", "service": "cloudformation__cloudwatch__logs"} {"check_id": "cloudformation__cloudwatch__route53.deploy-route53-healthcheck-cloudwatch-metric-round-trip-and-delete", "deployments": [], "key": "cloudformation__cloudwatch__route53/deploy-route53-healthcheck-cloudwatch-metric-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53:GetHealthCheck"], "path": "behavioral/cloudformation__cloudwatch__route53/check_deploy_route53_healthcheck_cloudwatch_metric_round_trip_and_delete.py", "service": "cloudformation__cloudwatch__route53"} {"check_id": "cloudformation__cloudwatch__route53.deploy-route53-healthcheck-invalid-insufficient-data-status-rejected", "deployments": [], "key": "cloudformation__cloudwatch__route53/deploy-route53-healthcheck-invalid-insufficient-data-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__cloudwatch__route53/check_deploy_route53_healthcheck_invalid_insufficient_data_status_rejected.py", "service": "cloudformation__cloudwatch__route53"} {"check_id": "cloudformation__cloudwatch__s3__sns__sqs.cfn-changeset-include-nested-stacks-lists-child-resource-changes", "deployments": [], "key": "cloudformation__cloudwatch__s3__sns__sqs/cfn-changeset-include-nested-stacks-lists-child-resource-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__cloudwatch__s3__sns__sqs/check_cfn_changeset_include_nested_stacks_lists_child_resource_changes.py", "service": "cloudformation__cloudwatch__s3__sns__sqs"} {"check_id": "cloudformation__cloudwatch__s3__sns__sqs.cfn-deployed-sns-to-sqs-subscription-delivers-raw-message", "deployments": [], "key": "cloudformation__cloudwatch__s3__sns__sqs/cfn-deployed-sns-to-sqs-subscription-delivers-raw-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sns:GetSubscriptionAttributes", "sns:Publish", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__cloudwatch__s3__sns__sqs/check_cfn_deployed_sns_to_sqs_subscription_delivers_raw_message.py", "service": "cloudformation__cloudwatch__s3__sns__sqs"} {"check_id": "cloudformation__cloudwatch__s3__sns__sqs.cfn-deployed-subscription-without-queue-policy-delivery-blocked", "deployments": [], "key": "cloudformation__cloudwatch__s3__sns__sqs/cfn-deployed-subscription-without-queue-policy-delivery-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:ListSubscriptionsByTopic", "sns:Publish", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__cloudwatch__s3__sns__sqs/check_cfn_deployed_subscription_without_queue_policy_delivery_blocked.py", "service": "cloudformation__cloudwatch__s3__sns__sqs"} {"check_id": "cloudformation__cloudwatch__s3__sns__sqs.cfn-rollback-trigger-alarm-reverts-update-and-restores-property", "deployments": [], "key": "cloudformation__cloudwatch__s3__sns__sqs/cfn-rollback-trigger-alarm-reverts-update-and-restores-property", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__cloudwatch__s3__sns__sqs/check_cfn_rollback_trigger_alarm_reverts_update_and_restores_property.py", "service": "cloudformation__cloudwatch__s3__sns__sqs"} {"check_id": "cloudformation__cloudwatch__sns__sqs.cdk-deploy-alarm-sns-sqs-ok-transition-without-ok-actions-delivers-nothing", "deployments": ["behavioral/cloudformation__cloudwatch__sns__sqs/deployments/cdk_alarm_sns_sqs/app.py", "behavioral/cloudformation__cloudwatch__sns__sqs/deployments/cdk_alarm_sns_sqs/cdk.json"], "key": "cloudformation__cloudwatch__sns__sqs/cdk-deploy-alarm-sns-sqs-ok-transition-without-ok-actions-delivers-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sns:GetTopicAttributes", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__cloudwatch__sns__sqs/check_cdk_deploy_alarm_sns_sqs_ok_transition_without_ok_actions_delivers_nothing.py", "service": "cloudformation__cloudwatch__sns__sqs"} {"check_id": "cloudformation__cloudwatch__sqs.cfn-metric-breach-rolls-back-only-the-update-it-triggers", "deployments": [], "key": "cloudformation__cloudwatch__sqs/cfn-metric-breach-rolls-back-only-the-update-it-triggers", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__cloudwatch__sqs/check_cfn_metric_breach_rolls_back_only_the_update_it_triggers.py", "service": "cloudformation__cloudwatch__sqs"} {"check_id": "cloudformation__cloudwatch__sqs.obs-cloudformation-2-rollback-trigger-invalid-type-rejected", "deployments": [], "key": "cloudformation__cloudwatch__sqs/obs-cloudformation-2-rollback-trigger-invalid-type-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__cloudwatch__sqs/check_obs_cloudformation_2_rollback_trigger_invalid_type_rejected.py", "service": "cloudformation__cloudwatch__sqs"} {"check_id": "cloudformation__cloudwatchomni__iam.deploy-cloudwatch-omni-estate-provisioned-and-torn-down", "deployments": [], "key": "cloudformation__cloudwatchomni/deploy-cloudwatch-omni-estate-provisioned-and-torn-down", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatchomni:GetAccessGrant", "cloudwatchomni:GetAccessProfile", "cloudwatchomni:GetDomain", "cloudwatchomni:GetIntegration", "cloudwatchomni:GetOmniDashboard", "cloudwatchomni:GetSpace"], "path": "behavioral/cloudformation__cloudwatchomni/check_deploy_cloudwatch_omni_estate_provisioned_and_torn_down.py", "service": "cloudformation__cloudwatchomni"} {"check_id": "cloudformation__codeartifact.deploy-codeartifact-domain-repo-packagegroup-round-trip", "deployments": [], "key": "cloudformation__codeartifact/deploy-codeartifact-domain-repo-packagegroup-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "codeartifact:DescribeDomain", "codeartifact:DescribePackageGroup", "codeartifact:DescribeRepository", "codeartifact:ListTagsForResource"], "path": "behavioral/cloudformation__codeartifact/check_deploy_codeartifact_domain_repo_packagegroup_round_trip.py", "service": "cloudformation__codeartifact"} {"check_id": "cloudformation__codeartifact.deploy-codeartifact-packagegroup-invalid-pattern-rejected", "deployments": [], "key": "cloudformation__codeartifact/deploy-codeartifact-packagegroup-invalid-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codeartifact:DescribeDomain", "codeartifact:DescribePackageGroup"], "path": "behavioral/cloudformation__codeartifact/check_deploy_codeartifact_packagegroup_invalid_pattern_rejected.py", "service": "cloudformation__codeartifact"} {"check_id": "cloudformation__codebuild.cfn-codebuild-project-in-place-update-builds-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__codebuild/cfn-codebuild-project-in-place-update-builds-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild"], "path": "behavioral/cloudformation__codebuild/check_cfn_codebuild_project_in_place_update_builds_retained_replacement_then_not_found.py", "service": "cloudformation__codebuild"} {"check_id": "cloudformation__codebuild.deploy-cfn-codebuild-project-invalid-compute-type-rejected", "deployments": [], "key": "cloudformation__codebuild/deploy-cfn-codebuild-project-invalid-compute-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "codebuild:BatchGetProjects", "iam:GetRole"], "path": "behavioral/cloudformation__codebuild/check_deploy_cfn_codebuild_project_invalid_compute_type_rejected.py", "service": "cloudformation__codebuild"} {"check_id": "cloudformation__codebuild.deploy-cfn-codebuild-project-resource-lifecycle", "deployments": [], "key": "cloudformation__codebuild/deploy-cfn-codebuild-project-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "codebuild:BatchGetProjects", "iam:GetRole"], "path": "behavioral/cloudformation__codebuild/check_deploy_cfn_codebuild_project_resource_lifecycle.py", "service": "cloudformation__codebuild"} {"check_id": "cloudformation__codebuild.deploy-cfn-codebuild-reportgroup-resource-lifecycle", "deployments": [], "key": "cloudformation__codebuild/deploy-cfn-codebuild-reportgroup-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "codebuild:BatchGetReportGroups"], "path": "behavioral/cloudformation__codebuild/check_deploy_cfn_codebuild_reportgroup_resource_lifecycle.py", "service": "cloudformation__codebuild"} {"check_id": "cloudformation__codebuild.deploy-cfn-codebuild-reportgroup-s3-export-without-destination-rejected", "deployments": [], "key": "cloudformation__codebuild/deploy-cfn-codebuild-reportgroup-s3-export-without-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "codebuild:BatchGetReportGroups"], "path": "behavioral/cloudformation__codebuild/check_deploy_cfn_codebuild_reportgroup_s3_export_without_destination_rejected.py", "service": "cloudformation__codebuild"} {"check_id": "cloudformation__codecommit.deploy-codecommit-repository-identity-and-deletion", "deployments": [], "key": "cloudformation__codecommit/deploy-codecommit-repository-identity-and-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codecommit:GetRepository"], "path": "behavioral/cloudformation__codecommit/check_deploy_codecommit_repository_identity_and_deletion.py", "service": "cloudformation__codecommit"} {"check_id": "cloudformation__codecommit.deploy-codecommit-repository-invalid-kms-key-rejected", "deployments": [], "key": "cloudformation__codecommit/deploy-codecommit-repository-invalid-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codecommit:GetRepository"], "path": "behavioral/cloudformation__codecommit/check_deploy_codecommit_repository_invalid_kms_key_rejected.py", "service": "cloudformation__codecommit"} {"check_id": "cloudformation__codeconnections.cfn-codeconnections-host-invalid-provider-endpoint-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__codeconnections/cfn-codeconnections-host-invalid-provider-endpoint-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codeconnections:GetHost", "codeconnections:ListHosts"], "path": "behavioral/cloudformation__codeconnections/check_cfn_codeconnections_host_invalid_provider_endpoint_rejected_and_rolled_back.py", "service": "cloudformation__codeconnections"} {"check_id": "cloudformation__codeconnections.deploy-cfn-codeconnections-connection-and-host-round-trip-and-delete", "deployments": [], "key": "cloudformation__codeconnections/deploy-cfn-codeconnections-connection-and-host-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codeconnections:GetConnection", "codeconnections:GetHost"], "path": "behavioral/cloudformation__codeconnections/check_deploy_cfn_codeconnections_connection_and_host_round_trip_and_delete.py", "service": "cloudformation__codeconnections"} {"check_id": "cloudformation__codedeploy.deploy-cfn-codedeploy-deploymentgroup-invalid-role-rejected", "deployments": [], "key": "cloudformation__codedeploy__iam/deploy-cfn-codedeploy-deploymentgroup-invalid-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__codedeploy__iam/check_deploy_cfn_codedeploy_deploymentgroup_invalid_role_rejected.py", "service": "cloudformation__codedeploy__iam"} {"check_id": "cloudformation__codedeploy.deploy-cfn-codedeploy-provisioning-lifecycle", "deployments": [], "key": "cloudformation__codedeploy__iam/deploy-cfn-codedeploy-provisioning-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeploymentConfig", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__codedeploy__iam/check_deploy_cfn_codedeploy_provisioning_lifecycle.py", "service": "cloudformation__codedeploy__iam"} {"check_id": "cloudformation__codeguruprofiler.deploy-codeguruprofiler-profilinggroup-invalid-computeplatform-rejected", "deployments": [], "key": "cloudformation__codeguruprofiler/deploy-codeguruprofiler-profilinggroup-invalid-computeplatform-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/cloudformation__codeguruprofiler/check_deploy_codeguruprofiler_profilinggroup_invalid_computeplatform_rejected.py", "service": "cloudformation__codeguruprofiler"} {"check_id": "cloudformation__codeguruprofiler.deploy-codeguruprofiler-profilinggroup-round-trip-and-delete", "deployments": [], "key": "cloudformation__codeguruprofiler/deploy-codeguruprofiler-profilinggroup-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:ListTagsForResource"], "path": "behavioral/cloudformation__codeguruprofiler/check_deploy_codeguruprofiler_profilinggroup_round_trip_and_delete.py", "service": "cloudformation__codeguruprofiler"} {"check_id": "cloudformation__codepipeline.deploy-codepipeline-custom-action-type-round-trip-and-delete", "deployments": [], "key": "cloudformation__codepipeline/deploy-codepipeline-custom-action-type-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__codepipeline/check_deploy_codepipeline_custom_action_type_round_trip_and_delete.py", "service": "cloudformation__codepipeline"} {"check_id": "cloudformation__codepipeline.deploy-codepipeline-pipeline-round-trip-and-delete", "deployments": [], "key": "cloudformation__codepipeline/deploy-codepipeline-pipeline-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codepipeline:GetPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/cloudformation__codepipeline/check_deploy_codepipeline_pipeline_round_trip_and_delete.py", "service": "cloudformation__codepipeline"} {"check_id": "cloudformation__codepipeline.deploy-codepipeline-pipeline-unassumable-role-rolled-back", "deployments": [], "key": "cloudformation__codepipeline/deploy-codepipeline-pipeline-unassumable-role-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codepipeline:GetPipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/cloudformation__codepipeline/check_deploy_codepipeline_pipeline_unassumable_role_rolled_back.py", "service": "cloudformation__codepipeline"} {"check_id": "cloudformation__codepipeline.deploy-codepipeline-webhook-round-trip-and-delete", "deployments": [], "key": "cloudformation__codepipeline/deploy-codepipeline-webhook-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/cloudformation__codepipeline/check_deploy_codepipeline_webhook_round_trip_and_delete.py", "service": "cloudformation__codepipeline"} {"check_id": "cloudformation__codepipeline__s3.cfn-codepipeline-pipeline-in-place-update-deploys-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__codepipeline__s3/cfn-codepipeline-pipeline-in-place-update-deploys-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__codepipeline__s3/check_cfn_codepipeline_pipeline_in_place_update_deploys_retained_replacement_then_not_found.py", "service": "cloudformation__codepipeline__s3"} {"check_id": "cloudformation__codestar-connections.deploy-cfn-codestarconnections-connection-invalid-provider-type-rejected", "deployments": [], "key": "cloudformation__codestar-connections/deploy-cfn-codestarconnections-connection-invalid-provider-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "codestar-connections:GetConnection", "codestar-connections:ListConnections"], "path": "behavioral/cloudformation__codestar-connections/check_deploy_cfn_codestarconnections_connection_invalid_provider_type_rejected.py", "service": "cloudformation__codestar-connections"} {"check_id": "cloudformation__codestar-connections.deploy-cfn-codestarconnections-connection-resource-lifecycle", "deployments": [], "key": "cloudformation__codestar-connections/deploy-cfn-codestarconnections-connection-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codestar-connections:GetConnection", "codestar-connections:ListConnections"], "path": "behavioral/cloudformation__codestar-connections/check_deploy_cfn_codestarconnections_connection_resource_lifecycle.py", "service": "cloudformation__codestar-connections"} {"check_id": "cloudformation__cognito-identity.cfn-cognito-identity-pool-in-place-rename-keeps-developer-identities-then-not-found", "deployments": [], "key": "cloudformation__cognito-identity/cfn-cognito-identity-pool-in-place-rename-keeps-developer-identities-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cloudformation__cognito-identity/check_cfn_cognito_identity_pool_in_place_rename_keeps_developer_identities_then_not_found.py", "service": "cloudformation__cognito-identity"} {"check_id": "cloudformation__cognito-identity__sts.cfn-cognito-role-attachment-in-place-role-swap-retained-pool-move-then-not-found", "deployments": [], "key": "cloudformation__cognito-identity__sts/cfn-cognito-role-attachment-in-place-role-swap-retained-pool-move-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__cognito-identity__sts/check_cfn_cognito_role_attachment_in_place_role_swap_retained_pool_move_then_not_found.py", "service": "cloudformation__cognito-identity__sts"} {"check_id": "cloudformation__cognito-identity__sts.xsvc-cognito-identity-3-cfn-principal-tag-mapping-gates-s3-read-by-session-tag", "deployments": [], "key": "cloudformation__cognito-identity__sts/xsvc-cognito-identity-3-cfn-principal-tag-mapping-gates-s3-read-by-session-tag", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cognito-identity:DeleteIdentities", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__cognito-identity__sts/check_xsvc_cognito_identity_3_cfn_principal_tag_mapping_gates_s3_read_by_session_tag.py", "service": "cloudformation__cognito-identity__sts"} {"check_id": "cloudformation__cognito-idp.cfn-cognito-user-pool-in-place-admin-create-only-keeps-users-then-not-found", "deployments": [], "key": "cloudformation__cognito-idp/cfn-cognito-user-pool-in-place-admin-create-only-keeps-users-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:DescribeUserPool", "cognito-idp:SignUp"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_cognito_user_pool_in_place_admin_create_only_keeps_users_then_not_found.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-log-delivery-configuration-round-trip-and-removed-on-update", "deployments": [], "key": "cloudformation__cognito-idp/cfn-log-delivery-configuration-round-trip-and-removed-on-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:GetLogDeliveryConfiguration"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_log_delivery_configuration_round_trip_and_removed_on_update.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-log-delivery-configuration-user-auth-events-rejected-without-plus-tier", "deployments": [], "key": "cloudformation__cognito-idp/cfn-log-delivery-configuration-user-auth-events-rejected-without-plus-tier", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:DescribeUserPool", "cognito-idp:GetLogDeliveryConfiguration"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_log_delivery_configuration_user_auth_events_rejected_without_plus_tier.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-managed-login-branding-and-terms-round-trip-and-removed-on-update", "deployments": [], "key": "cloudformation__cognito-idp/cfn-managed-login-branding-and-terms-round-trip-and-removed-on-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:DescribeManagedLoginBranding", "cognito-idp:DescribeManagedLoginBrandingByClient", "cognito-idp:DescribeTerms", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:ListTerms"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_managed_login_branding_and_terms_round_trip_and_removed_on_update.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-user-pool-client-properties-round-trip-and-removed-on-stack-delete", "deployments": [], "key": "cloudformation__cognito-idp/cfn-user-pool-client-properties-round-trip-and-removed-on-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_user_pool_client_properties_round_trip_and_removed_on_stack_delete.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-user-pool-properties-round-trip-and-removed-on-stack-delete", "deployments": [], "key": "cloudformation__cognito-idp/cfn-user-pool-properties-round-trip-and-removed-on-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:DescribeUserPool"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_user_pool_properties_round_trip_and_removed_on_stack_delete.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-user-pool-risk-configuration-attachment-round-trip-and-removed-on-update", "deployments": [], "key": "cloudformation__cognito-idp/cfn-user-pool-risk-configuration-attachment-round-trip-and-removed-on-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:DescribeRiskConfiguration", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_user_pool_risk_configuration_attachment_round_trip_and_removed_on_update.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-user-pool-ui-customization-attachment-round-trip-and-removed-on-update", "deployments": [], "key": "cloudformation__cognito-idp/cfn-user-pool-ui-customization-attachment-round-trip-and-removed-on-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_user_pool_ui_customization_attachment_round_trip_and_removed_on_update.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-user-pool-user-to-group-attachment-nonexistent-username-rejected-rollback", "deployments": [], "key": "cloudformation__cognito-idp/cfn-user-pool-user-to-group-attachment-nonexistent-username-rejected-rollback", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:DescribeUserPool"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_user_pool_user_to_group_attachment_nonexistent_username_rejected_rollback.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cfn-user-pool-user-to-group-attachment-proves-and-removes-membership", "deployments": [], "key": "cloudformation__cognito-idp/cfn-user-pool-user-to-group-attachment-proves-and-removes-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:AdminGetUser", "cognito-idp:GetGroup"], "path": "behavioral/cloudformation__cognito-idp/check_cfn_user_pool_user_to_group_attachment_proves_and_removes_membership.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp.cognito-user-pool-group-explicit-generated-name-rejected-rollback", "deployments": [], "key": "cloudformation__cognito-idp/cognito-user-pool-group-explicit-generated-name-rejected-rollback", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:ListGroups"], "path": "behavioral/cloudformation__cognito-idp/check_cognito_user_pool_group_explicit_generated_name_rejected_rollback.py", "service": "cloudformation__cognito-idp"} {"check_id": "cloudformation__cognito-idp__wafv2.webacl-association-follows-template-across-replacement-and-stack-delete", "deployments": [], "key": "cloudformation__cognito-idp__wafv2/webacl-association-follows-template-across-replacement-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "wafv2:GetWebACLForResource", "wafv2:ListResourcesForWebACL"], "path": "behavioral/cloudformation__cognito-idp__wafv2/check_webacl_association_follows_template_across_replacement_and_stack_delete.py", "service": "cloudformation__cognito-idp__wafv2"} {"check_id": "cloudformation__cognito-idp__wafv2.webacl-association-unsupported-resource-type-rejected", "deployments": [], "key": "cloudformation__cognito-idp__wafv2/webacl-association-unsupported-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/cloudformation__cognito-idp__wafv2/check_webacl_association_unsupported_resource_type_rejected.py", "service": "cloudformation__cognito-idp__wafv2"} {"check_id": "cloudformation__comprehend.deploy-comprehend-flywheel-round-trip-and-delete", "deployments": [], "key": "cloudformation__comprehend/deploy-comprehend-flywheel-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "comprehend:DescribeFlywheel", "comprehend:ListFlywheels", "comprehend:ListTagsForResource", "s3:DeleteObjects"], "path": "behavioral/cloudformation__comprehend/check_deploy_comprehend_flywheel_round_trip_and_delete.py", "service": "cloudformation__comprehend"} {"check_id": "cloudformation__config.deploy-config-account-scoped-resources-round-trip-and-delete", "deployments": [], "key": "cloudformation__config/deploy-config-account-scoped-resources-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "config:DescribeAggregationAuthorizations", "config:DescribeConfigurationAggregators", "config:GetStoredQuery", "config:ListTagsForResource"], "path": "behavioral/cloudformation__config/check_deploy_config_account_scoped_resources_round_trip_and_delete.py", "service": "cloudformation__config"} {"check_id": "cloudformation__config.deploy-config-aggregation-authorization-invalid-region-rejected", "deployments": [], "key": "cloudformation__config/deploy-config-aggregation-authorization-invalid-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "config:DescribeAggregationAuthorizations", "config:ListTagsForResource"], "path": "behavioral/cloudformation__config/check_deploy_config_aggregation_authorization_invalid_region_rejected.py", "service": "cloudformation__config"} {"check_id": "cloudformation__config__iam__s3.cfn-config-rule-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__config__iam__s3/cfn-config-rule-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:GetComplianceDetailsByConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__config__iam__s3/check_cfn_config_rule_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__config__iam__s3"} {"check_id": "cloudformation__config__s3.config-delivery-denied-when-bucket-policy-is-removed", "deployments": [], "key": "cloudformation__config__s3/config-delivery-denied-when-bucket-policy-is-removed", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeliverConfigSnapshot", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannelStatus", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__config__s3/check_config_delivery_denied_when_bucket_policy_is_removed.py", "service": "cloudformation__config__s3"} {"check_id": "cloudformation__config__s3.config-managed-rule-verdict-flips-to-compliant-after-resource-is-fixed", "deployments": [], "key": "cloudformation__config__s3/config-managed-rule-verdict-flips-to-compliant-after-resource-is-fixed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetComplianceDetailsByConfigRule", "config:GetResourceConfigHistory", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/cloudformation__config__s3/check_config_managed_rule_verdict_flips_to_compliant_after_resource_is_fixed.py", "service": "cloudformation__config__s3"} {"check_id": "cloudformation__config__s3.config-rule-scoped-to-one-resource-id-evaluates-only-that-resource", "deployments": [], "key": "cloudformation__config__s3/config-rule-scoped-to-one-resource-id-evaluates-only-that-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetComplianceDetailsByConfigRule", "config:GetComplianceDetailsByResource", "config:GetResourceConfigHistory", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__config__s3/check_config_rule_scoped_to_one_resource_id_evaluates_only_that_resource.py", "service": "cloudformation__config__s3"} {"check_id": "cloudformation__config__s3.deploy-config-delivery-channel-by-cloudformation-delivers-a-snapshot-containing-the-recorded-item", "deployments": [], "key": "cloudformation__config__s3/deploy-config-delivery-channel-by-cloudformation-delivers-a-snapshot-containing-the-recorded-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeliverConfigSnapshot", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannelStatus", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__config__s3/check_deploy_config_delivery_channel_by_cloudformation_delivers_a_snapshot_containing_the_recorded_item.py", "service": "cloudformation__config__s3"} {"check_id": "cloudformation__connect.deploy-connect-instance-and-core-resource-types-round-trip-and-delete", "deployments": [], "key": "cloudformation__connect/deploy-connect-instance-and-core-resource-types-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "connect:DescribeAgentStatus", "connect:DescribeContactFlow", "connect:DescribeContactFlowModule", "connect:DescribeHoursOfOperation", "connect:DescribeInstance", "connect:DescribeQueue", "connect:DescribeRoutingProfile", "connect:DescribeUser", "connect:DescribeUserHierarchyStructure"], "path": "behavioral/cloudformation__connect/check_deploy_connect_instance_and_core_resource_types_round_trip_and_delete.py", "service": "cloudformation__connect"} {"check_id": "cloudformation__connect.deploy-connect-instance-duplicate-alias-rejected-leaving-the-original", "deployments": [], "key": "cloudformation__connect/deploy-connect-instance-duplicate-alias-rejected-leaving-the-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "connect:DescribeInstance"], "path": "behavioral/cloudformation__connect/check_deploy_connect_instance_duplicate_alias_rejected_leaving_the_original.py", "service": "cloudformation__connect"} {"check_id": "cloudformation__connectcases.deploy-cfn-cases-domain-field-caserule-layout-provisions-live-resources", "deployments": [], "key": "cloudformation__connectcases/deploy-cfn-cases-domain-field-caserule-layout-provisions-live-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "connectcases:BatchGetCaseRule", "connectcases:BatchGetField", "connectcases:GetDomain", "connectcases:GetLayout"], "path": "behavioral/cloudformation__connectcases/check_deploy_cfn_cases_domain_field_caserule_layout_provisions_live_resources.py", "service": "cloudformation__connectcases"} {"check_id": "cloudformation__connectcases.deploy-cfn-cases-domain-name-conflict-rolls-back-stack", "deployments": [], "key": "cloudformation__connectcases/deploy-cfn-cases-domain-name-conflict-rolls-back-stack", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "connectcases:CreateDomain", "connectcases:DeleteDomain", "connectcases:GetDomain", "connectcases:ListDomains", "connectcases:TagResource"], "path": "behavioral/cloudformation__connectcases/check_deploy_cfn_cases_domain_name_conflict_rolls_back_stack.py", "service": "cloudformation__connectcases"} {"check_id": "cloudformation__connectcases.deploy-cfn-cases-template-case-relateditem-against-live-customer-profile", "deployments": [], "key": "cloudformation__connectcases__customer-profiles/deploy-cfn-cases-template-case-relateditem-against-live-customer-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "connectcases:GetCase", "connectcases:GetDomain", "connectcases:GetTemplate", "connectcases:ListDomains", "connectcases:ListTemplates", "connectcases:SearchRelatedItems", "customer-profiles:CreateProfile", "customer-profiles:DeleteProfile", "customer-profiles:GetDomain"], "path": "behavioral/cloudformation__connectcases__customer-profiles/check_deploy_cfn_cases_template_case_relateditem_against_live_customer_profile.py", "service": "cloudformation__connectcases__customer-profiles"} {"check_id": "cloudformation__connecthealth.deploy-healthagent-domain-name-too-long-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__connecthealth/deploy-healthagent-domain-name-too-long-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "connecthealth:GetDomain"], "path": "behavioral/cloudformation__connecthealth/check_deploy_healthagent_domain_name_too_long_rejected_and_rolled_back.py", "service": "cloudformation__connecthealth"} {"check_id": "cloudformation__connecthealth.deploy-healthagent-domain-round-trip-and-delete", "deployments": [], "key": "cloudformation__connecthealth/deploy-healthagent-domain-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "connecthealth:GetDomain", "connecthealth:ListTagsForResource"], "path": "behavioral/cloudformation__connecthealth/check_deploy_healthagent_domain_round_trip_and_delete.py", "service": "cloudformation__connecthealth"} {"check_id": "cloudformation__databrew.deploy-databrew-dataset-and-ruleset-round-trip-and-delete", "deployments": [], "key": "cloudformation__databrew/deploy-databrew-dataset-and-ruleset-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "databrew:DescribeDataset", "databrew:DescribeRuleset"], "path": "behavioral/cloudformation__databrew/check_deploy_databrew_dataset_and_ruleset_round_trip_and_delete.py", "service": "cloudformation__databrew"} {"check_id": "cloudformation__databrew.deploy-databrew-recipe-and-schedule-round-trip-and-delete", "deployments": [], "key": "cloudformation__databrew/deploy-databrew-recipe-and-schedule-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "databrew:DescribeRecipe", "databrew:DescribeSchedule"], "path": "behavioral/cloudformation__databrew/check_deploy_databrew_recipe_and_schedule_round_trip_and_delete.py", "service": "cloudformation__databrew"} {"check_id": "cloudformation__databrew.deploy-databrew-recipe-invalid-operation-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__databrew/deploy-databrew-recipe-invalid-operation-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "databrew:DescribeRecipe"], "path": "behavioral/cloudformation__databrew/check_deploy_databrew_recipe_invalid_operation_rejected_and_rolled_back.py", "service": "cloudformation__databrew"} {"check_id": "cloudformation__dataexchange.deploy-dataexchange-data-set-invalid-asset-type-rejected", "deployments": [], "key": "cloudformation__dataexchange/deploy-dataexchange-data-set-invalid-asset-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dataexchange:GetDataSet"], "path": "behavioral/cloudformation__dataexchange/check_deploy_dataexchange_data_set_invalid_asset_type_rejected.py", "service": "cloudformation__dataexchange"} {"check_id": "cloudformation__dataexchange.deploy-dataexchange-data-set-lifecycle", "deployments": [], "key": "cloudformation__dataexchange/deploy-dataexchange-data-set-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dataexchange:GetDataSet"], "path": "behavioral/cloudformation__dataexchange/check_deploy_dataexchange_data_set_lifecycle.py", "service": "cloudformation__dataexchange"} {"check_id": "cloudformation__datasync.deploy-cfn-datasync-location-efs-round-trip-and-delete", "deployments": [], "key": "cloudformation__datasync/deploy-cfn-datasync-location-efs-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "datasync:DescribeLocationEfs", "datasync:ListLocations", "ec2:DescribeAvailabilityZones"], "path": "behavioral/cloudformation__datasync/check_deploy_cfn_datasync_location_efs_round_trip_and_delete.py", "service": "cloudformation__datasync"} {"check_id": "cloudformation__datasync.deploy-cfn-datasync-location-object-storage-round-trip-and-delete", "deployments": [], "key": "cloudformation__datasync/deploy-cfn-datasync-location-object-storage-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "datasync:DescribeLocationObjectStorage", "datasync:ListLocations"], "path": "behavioral/cloudformation__datasync/check_deploy_cfn_datasync_location_object_storage_round_trip_and_delete.py", "service": "cloudformation__datasync"} {"check_id": "cloudformation__datasync.deploy-cfn-datasync-s3-locations-and-task-round-trip-and-delete", "deployments": [], "key": "cloudformation__datasync/deploy-cfn-datasync-s3-locations-and-task-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "datasync:DescribeLocationS3", "datasync:DescribeTask", "datasync:ListLocations", "datasync:ListTasks"], "path": "behavioral/cloudformation__datasync/check_deploy_cfn_datasync_s3_locations_and_task_round_trip_and_delete.py", "service": "cloudformation__datasync"} {"check_id": "cloudformation__datasync.deploy-cfn-datasync-task-same-source-and-destination-location-rejected", "deployments": [], "key": "cloudformation__datasync/deploy-cfn-datasync-task-same-source-and-destination-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "datasync:DescribeLocationS3", "datasync:DescribeTask", "datasync:ListLocations", "datasync:ListTasks"], "path": "behavioral/cloudformation__datasync/check_deploy_cfn_datasync_task_same_source_and_destination_location_rejected.py", "service": "cloudformation__datasync"} {"check_id": "cloudformation__datasync__fsx.deploy-datasync-fsx-lustre-and-openzfs-locations-round-trip-and-delete", "deployments": [], "key": "cloudformation__datasync__fsx/deploy-datasync-fsx-lustre-location-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "datasync:DescribeLocationFsxLustre", "fsx:DescribeFileSystems"], "path": "behavioral/cloudformation__datasync__fsx/check_deploy_datasync_fsx_lustre_location_round_trip_and_delete.py", "service": "cloudformation__datasync__fsx"} {"check_id": "cloudformation__datasync__fsx.deploy-datasync-fsx-openzfs-location-round-trip-and-delete", "deployments": [], "key": "cloudformation__datasync__fsx/deploy-datasync-fsx-openzfs-location-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "datasync:DescribeLocationFsxOpenZfs", "fsx:DescribeFileSystems"], "path": "behavioral/cloudformation__datasync__fsx/check_deploy_datasync_fsx_openzfs_location_round_trip_and_delete.py", "service": "cloudformation__datasync__fsx"} {"check_id": "cloudformation__datazone.deploy-datazone-environment-profile-round-trip-and-delete", "deployments": [], "key": "cloudformation__datazone/deploy-datazone-environment-profile-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "datazone:DeleteEnvironmentBlueprintConfiguration", "datazone:GetDomain", "datazone:GetEnvironmentProfile", "datazone:GetProject", "datazone:PutEnvironmentBlueprintConfiguration"], "path": "behavioral/cloudformation__datazone/check_deploy_datazone_environment_profile_round_trip_and_delete.py", "service": "cloudformation__datazone"} {"check_id": "cloudformation__datazone.deploy-datazone-project-profile-v1-domain-rejected-v2-round-trips", "deployments": [], "key": "cloudformation__datazone/deploy-datazone-project-profile-v1-domain-rejected-v2-round-trips", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "datazone:GetDomain", "datazone:GetProjectProfile"], "path": "behavioral/cloudformation__datazone/check_deploy_datazone_project_profile_v1_domain_rejected_v2_round_trips.py", "service": "cloudformation__datazone"} {"check_id": "cloudformation__dax.deploy-dax-parameter-group-invalid-ttl-value-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__dax/deploy-dax-parameter-group-invalid-ttl-value-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dax:DescribeParameterGroups"], "path": "behavioral/cloudformation__dax/check_deploy_dax_parameter_group_invalid_ttl_value_rejected_and_rolled_back.py", "service": "cloudformation__dax"} {"check_id": "cloudformation__dax.deploy-dax-parameter-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__dax/deploy-dax-parameter-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dax:DescribeParameterGroups"], "path": "behavioral/cloudformation__dax/check_deploy_dax_parameter_group_round_trip_and_delete.py", "service": "cloudformation__dax"} {"check_id": "cloudformation__dax.deploy-dax-subnet-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__dax/deploy-dax-subnet-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dax:DescribeSubnetGroups"], "path": "behavioral/cloudformation__dax/check_deploy_dax_subnet_group_round_trip_and_delete.py", "service": "cloudformation__dax"} {"check_id": "cloudformation__deadline.deploy-deadline-farm-queue-storageprofile-round-trip-and-delete", "deployments": [], "key": "cloudformation__deadline/deploy-deadline-farm-queue-storageprofile-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "deadline:GetFarm", "deadline:GetQueue", "deadline:GetStorageProfile", "deadline:ListTagsForResource"], "path": "behavioral/cloudformation__deadline/check_deploy_deadline_farm_queue_storageprofile_round_trip_and_delete.py", "service": "cloudformation__deadline"} {"check_id": "cloudformation__deadline.deploy-deadline-fleet-queuefleetassociation-worker-round-trip-and-delete", "deployments": [], "key": "cloudformation__deadline/deploy-deadline-fleet-queuefleetassociation-worker-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "deadline:GetFarm", "deadline:GetFleet", "deadline:GetQueue", "deadline:GetQueueFleetAssociation", "deadline:GetWorker", "deadline:ListTagsForResource"], "path": "behavioral/cloudformation__deadline/check_deploy_deadline_fleet_queuefleetassociation_worker_round_trip_and_delete.py", "service": "cloudformation__deadline"} {"check_id": "cloudformation__deadline.deploy-deadline-limit-maxcount-zero-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__deadline/deploy-deadline-limit-maxcount-zero-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "deadline:GetFarm", "deadline:GetLimit"], "path": "behavioral/cloudformation__deadline/check_deploy_deadline_limit_maxcount_zero_rejected_and_rolled_back.py", "service": "cloudformation__deadline"} {"check_id": "cloudformation__deadline__ec2.deploy-deadline-license-endpoint-and-metered-product-round-trip-and-delete", "deployments": [], "key": "cloudformation__deadline__ec2/deploy-deadline-license-endpoint-and-metered-product-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "deadline:GetLicenseEndpoint", "deadline:ListTagsForResource", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServices"], "path": "behavioral/cloudformation__deadline__ec2/check_deploy_deadline_license_endpoint_and_metered_product_round_trip_and_delete.py", "service": "cloudformation__deadline__ec2"} {"check_id": "cloudformation__deadline__ec2.deploy-deadline-metered-product-unsupported-product-id-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__deadline__ec2/deploy-deadline-metered-product-unsupported-product-id-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "deadline:GetLicenseEndpoint", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServices"], "path": "behavioral/cloudformation__deadline__ec2/check_deploy_deadline_metered_product_unsupported_product_id_rejected_and_rolled_back.py", "service": "cloudformation__deadline__ec2"} {"check_id": "cloudformation__detective.deploy-detective-graph-round-trip-and-delete", "deployments": [], "key": "cloudformation__detective/deploy-detective-graph-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "detective:ListGraphs", "detective:ListTagsForResource"], "path": "behavioral/cloudformation__detective/check_deploy_detective_graph_round_trip_and_delete.py", "service": "cloudformation__detective"} {"check_id": "cloudformation__devicefarm.deploy-devicefarm-devicepool-invalid-rule-attribute-rejected", "deployments": [], "key": "cloudformation__devicefarm/deploy-devicefarm-devicepool-invalid-rule-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__devicefarm/check_deploy_devicefarm_devicepool_invalid_rule_attribute_rejected.py", "service": "cloudformation__devicefarm"} {"check_id": "cloudformation__devicefarm.deploy-devicefarm-devicepool-networkprofile-round-trip", "deployments": [], "key": "cloudformation__devicefarm/deploy-devicefarm-devicepool-networkprofile-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "devicefarm:GetDevicePool", "devicefarm:GetNetworkProfile", "devicefarm:GetProject", "devicefarm:ListTagsForResource"], "path": "behavioral/cloudformation__devicefarm/check_deploy_devicefarm_devicepool_networkprofile_round_trip.py", "service": "cloudformation__devicefarm"} {"check_id": "cloudformation__devicefarm.deploy-devicefarm-project-instanceprofile-testgridproject-round-trip", "deployments": [], "key": "cloudformation__devicefarm/deploy-devicefarm-project-instanceprofile-testgridproject-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "devicefarm:GetInstanceProfile", "devicefarm:GetProject", "devicefarm:GetTestGridProject", "devicefarm:ListTagsForResource"], "path": "behavioral/cloudformation__devicefarm/check_deploy_devicefarm_project_instanceprofile_testgridproject_round_trip.py", "service": "cloudformation__devicefarm"} {"check_id": "cloudformation__devicefarm.deploy-devicefarm-upload-round-trip", "deployments": [], "key": "cloudformation__devicefarm/deploy-devicefarm-upload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "devicefarm:GetProject", "devicefarm:GetUpload", "devicefarm:ListTagsForResource"], "path": "behavioral/cloudformation__devicefarm/check_deploy_devicefarm_upload_round_trip.py", "service": "cloudformation__devicefarm"} {"check_id": "cloudformation__devops-agent.deploy-devopsagent-agent-space-round-trip-and-delete", "deployments": [], "key": "cloudformation__devops-agent/deploy-devopsagent-agent-space-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "devops-agent:GetAgentSpace", "devops-agent:ListTagsForResource"], "path": "behavioral/cloudformation__devops-agent/check_deploy_devopsagent_agent_space_round_trip_and_delete.py", "service": "cloudformation__devops-agent"} {"check_id": "cloudformation__devops-agent.deploy-devopsagent-association-untrusted-role-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__devops-agent/deploy-devopsagent-association-untrusted-role-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "devops-agent:GetAgentSpace"], "path": "behavioral/cloudformation__devops-agent/check_deploy_devopsagent_association_untrusted_role_rejected_and_rolled_back.py", "service": "cloudformation__devops-agent"} {"check_id": "cloudformation__devops-agent.deploy-devopsagent-private-connection-round-trip-and-delete", "deployments": [], "key": "cloudformation__devops-agent/deploy-devopsagent-private-connection-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "devops-agent:DescribePrivateConnection", "devops-agent:ListPrivateConnections", "devops-agent:ListTagsForResource"], "path": "behavioral/cloudformation__devops-agent/check_deploy_devopsagent_private_connection_round_trip_and_delete.py", "service": "cloudformation__devops-agent"} {"check_id": "cloudformation__directconnect.deploy-directconnect-gateway-and-resiliency-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__directconnect/deploy-directconnect-gateway-and-resiliency-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "directconnect:DescribeDirectConnectGateways", "directconnect:DescribeTags", "directconnect:GetResiliencyGroup", "directconnect:ListResiliencyGroups"], "path": "behavioral/cloudformation__directconnect/check_deploy_directconnect_gateway_and_resiliency_group_round_trip_and_delete.py", "service": "cloudformation__directconnect"} {"check_id": "cloudformation__directconnect.deploy-directconnect-resiliency-group-invalid-model-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__directconnect/deploy-directconnect-resiliency-group-invalid-model-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "directconnect:GetResiliencyGroup", "directconnect:ListResiliencyGroups"], "path": "behavioral/cloudformation__directconnect/check_deploy_directconnect_resiliency_group_invalid_model_rejected_and_rolled_back.py", "service": "cloudformation__directconnect"} {"check_id": "cloudformation__directconnect__ec2.deploy-directconnect-gateway-association-invalid-gateway-rejected-and-round-trip", "deployments": [], "key": "cloudformation__directconnect__ec2/deploy-directconnect-gateway-association-invalid-gateway-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "directconnect:DescribeDirectConnectGateways", "ec2:DescribeVpcs", "ec2:DescribeVpnGateways"], "path": "behavioral/cloudformation__directconnect__ec2/check_deploy_directconnect_gateway_association_invalid_gateway_rejected_and_rolled_back.py", "service": "cloudformation__directconnect__ec2"} {"check_id": "cloudformation__directconnect__ec2.deploy-directconnect-gateway-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__directconnect__ec2/deploy-directconnect-gateway-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "directconnect:DescribeDirectConnectGatewayAssociations", "directconnect:DescribeDirectConnectGateways", "directconnect:DescribeTags", "ec2:DescribeVpcs", "ec2:DescribeVpnGateways"], "path": "behavioral/cloudformation__directconnect__ec2/check_deploy_directconnect_gateway_association_round_trip_and_delete.py", "service": "cloudformation__directconnect__ec2"} {"check_id": "cloudformation__dlm.deploy-cfn-dlm-lifecyclepolicy-cross-account-role-rejected", "deployments": [], "key": "cloudformation__dlm/deploy-cfn-dlm-lifecyclepolicy-cross-account-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dlm:GetLifecyclePolicies", "dlm:GetLifecyclePolicy"], "path": "behavioral/cloudformation__dlm/check_deploy_cfn_dlm_lifecyclepolicy_cross_account_role_rejected.py", "service": "cloudformation__dlm"} {"check_id": "cloudformation__dlm.deploy-cfn-dlm-lifecyclepolicy-ebs-snapshot-round-trip-and-delete", "deployments": [], "key": "cloudformation__dlm/deploy-cfn-dlm-lifecyclepolicy-ebs-snapshot-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dlm:GetLifecyclePolicies", "dlm:GetLifecyclePolicy"], "path": "behavioral/cloudformation__dlm/check_deploy_cfn_dlm_lifecyclepolicy_ebs_snapshot_round_trip_and_delete.py", "service": "cloudformation__dlm"} {"check_id": "cloudformation__docdb.deploy-docdb-dbclusterparametergroup-and-dbsubnetgroup-round-trip-and-delete", "deployments": [], "key": "cloudformation__docdb/deploy-docdb-dbclusterparametergroup-and-dbsubnetgroup-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "docdb:DescribeDBClusterParameterGroups", "docdb:DescribeDBSubnetGroups", "docdb:ListTagsForResource"], "path": "behavioral/cloudformation__docdb/check_deploy_docdb_dbclusterparametergroup_and_dbsubnetgroup_round_trip_and_delete.py", "service": "cloudformation__docdb"} {"check_id": "cloudformation__docdb.deploy-docdb-dbsubnetgroup-single-az-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__docdb/deploy-docdb-dbsubnetgroup-single-az-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "docdb:DescribeDBSubnetGroups"], "path": "behavioral/cloudformation__docdb/check_deploy_docdb_dbsubnetgroup_single_az_rejected_and_rolled_back.py", "service": "cloudformation__docdb"} {"check_id": "cloudformation__docdb.deploy-docdb-eventsubscription-round-trip-and-delete", "deployments": [], "key": "cloudformation__docdb/deploy-docdb-eventsubscription-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "docdb:DescribeEventSubscriptions"], "path": "behavioral/cloudformation__docdb/check_deploy_docdb_eventsubscription_round_trip_and_delete.py", "service": "cloudformation__docdb"} {"check_id": "cloudformation__docdb.deploy-docdb-globalcluster-round-trip-and-delete", "deployments": [], "key": "cloudformation__docdb/deploy-docdb-globalcluster-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "docdb:DescribeGlobalClusters", "docdb:ListTagsForResource"], "path": "behavioral/cloudformation__docdb/check_deploy_docdb_globalcluster_round_trip_and_delete.py", "service": "cloudformation__docdb"} {"check_id": "cloudformation__docdb__dynamodb__ecs__elbv2__firehose__lambda__rds.cdk-nine-stack-estate-delivery-stream-echoes-buffering-hints", "deployments": ["behavioral/cloudformation__docdb__dynamodb__ecs__elbv2__firehose__lambda__rds/deployments/cdk_workload_estate/app.py", "behavioral/cloudformation__docdb__dynamodb__ecs__elbv2__firehose__lambda__rds/deployments/cdk_workload_estate/cdk.json", "behavioral/cloudformation__docdb__dynamodb__ecs__elbv2__firehose__lambda__rds/deployments/cdk_workload_estate/lambda/fetch-instance-ids/index.py"], "key": "cloudformation__docdb__dynamodb__ecs__elbv2__firehose__lambda__rds/cdk-nine-stack-estate-delivery-stream-echoes-buffering-hints", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["apigateway:GetAccount", "apigateway:GetResources", "apigateway:TestInvokeMethod", "apigateway:UpdateAccount", "athena:GetQueryExecution", "athena:StartQueryExecution", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListExports", "cloudformation:ListImports", "cloudformation:ListStackResources", "cloudwatch:GetMetricStream", "cloudwatch:StopMetricStreams", "docdb:DescribeDBClusters", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ecr:DescribeRepositories", "ecs:DeleteTaskDefinitions", "ecs:DescribeServices", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "firehose:DescribeDeliveryStream", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "iam:SimulatePrincipalPolicy", "lambda:GetAlias", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "rds:DescribeDBInstances", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "sns:ListSubscriptionsByTopic", "sns:Publish", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__docdb__dynamodb__ecs__elbv2__firehose__lambda__rds/check_cdk_nine_stack_estate_delivery_stream_echoes_buffering_hints.py", "service": "cloudformation__docdb__dynamodb__ecs__elbv2__firehose__lambda__rds"} {"check_id": "cloudformation__dsql.deploy-dsql-cluster-invalid-kms-key-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__dsql/deploy-dsql-cluster-invalid-kms-key-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dsql:GetCluster", "dsql:ListClusters", "dsql:ListTagsForResource"], "path": "behavioral/cloudformation__dsql/check_deploy_dsql_cluster_invalid_kms_key_rejected_and_rolled_back.py", "service": "cloudformation__dsql"} {"check_id": "cloudformation__dsql.deploy-dsql-cluster-round-trip-and-delete", "deployments": [], "key": "cloudformation__dsql/deploy-dsql-cluster-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dsql:GetCluster", "dsql:ListTagsForResource"], "path": "behavioral/cloudformation__dsql/check_deploy_dsql_cluster_round_trip_and_delete.py", "service": "cloudformation__dsql"} {"check_id": "cloudformation__dynamodb.cdk-import-mapping-file-adopts-a-table-with-its-item-and-refuses-a-missing-one", "deployments": ["behavioral/cloudformation__dynamodb/deployments/cdk_import_table/app.py", "behavioral/cloudformation__dynamodb/deployments/cdk_import_table/cdk.json"], "key": "cloudformation__dynamodb/cdk-import-mapping-file-adopts-a-table-with-its-item-and-refuses-a-missing-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTagsOfResource", "dynamodb:PutItem"], "path": "behavioral/cloudformation__dynamodb/check_cdk_import_mapping_file_adopts_a_table_with_its_item_and_refuses_a_missing_one.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.cfn-custom-named-resource-replacement-refused-and-data-survives", "deployments": ["behavioral/cloudformation__dynamodb/deployments/named-vs-unnamed-table.yaml"], "key": "cloudformation__dynamodb/cfn-custom-named-resource-replacement-refused-and-data-survives", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudformation__dynamodb/check_cfn_custom_named_resource_replacement_refused_and_data_survives.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.cfn-dynamodb-provisioned-throughput-drift-reports-expected-and-actual", "deployments": [], "key": "cloudformation__dynamodb/cfn-dynamodb-provisioned-throughput-drift-reports-expected-and-actual", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/cloudformation__dynamodb/check_cfn_dynamodb_provisioned_throughput_drift_reports_expected_and_actual.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.cfn-dynamodb-table-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__dynamodb/cfn-dynamodb-table-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudformation__dynamodb/check_cfn_dynamodb_table_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.cfn-gsi-provisioned-throughput-with-pay-per-request-rejected", "deployments": [], "key": "cloudformation__dynamodb/cfn-gsi-provisioned-throughput-with-pay-per-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:ListTables"], "path": "behavioral/cloudformation__dynamodb/check_cfn_gsi_provisioned_throughput_with_pay_per_request_rejected.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.cfn-key-schema-without-attribute-definition-fails-the-stack", "deployments": [], "key": "cloudformation__dynamodb/cfn-key-schema-without-attribute-definition-fails-the-stack", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb/check_cfn_key_schema_without_attribute_definition_fails_the_stack.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.cfn-resource-existence-dynamodb-table", "deployments": [], "key": "cloudformation__dynamodb/cfn-resource-existence-dynamodb-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb/check_cfn_resource_existence_dynamodb_table.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.cfn-sam-transform-missing-auto-expand-capability-negative", "deployments": ["behavioral/cloudformation__dynamodb/deployments/sam-simple-table-only.yaml"], "key": "cloudformation__dynamodb/cfn-sam-transform-missing-auto-expand-capability-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb/check_cfn_sam_transform_missing_auto_expand_capability_negative.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.cfn-unsupported-table-property-is-not-silently-discarded", "deployments": [], "key": "cloudformation__dynamodb/cfn-unsupported-table-property-is-not-silently-discarded", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive"], "path": "behavioral/cloudformation__dynamodb/check_cfn_unsupported_table_property_is_not_silently_discarded.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.deploy-cdk-table-with-gsi-returns-matching-items-from-query-on-the-index", "deployments": ["behavioral/cloudformation__dynamodb/deployments/cdk_gsi_query/app.py", "behavioral/cloudformation__dynamodb/deployments/cdk_gsi_query/cdk.json"], "key": "cloudformation__dynamodb/deploy-cdk-table-with-gsi-returns-matching-items-from-query-on-the-index", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__dynamodb/check_deploy_cdk_table_with_gsi_returns_matching_items_from_query_on_the_index.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.deploy-cfn-dynamodb-getatt-stream-arn-follows-stream-view-change", "deployments": [], "key": "cloudformation__dynamodb/deploy-cfn-dynamodb-getatt-stream-arn-follows-stream-view-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb/check_deploy_cfn_dynamodb_getatt_stream_arn_follows_stream_view_change.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.deploy-cfn-dynamodb-getatt-unknown-attribute-rejected-after-the-table-is-built", "deployments": [], "key": "cloudformation__dynamodb/deploy-cfn-dynamodb-getatt-unknown-attribute-rejected-after-the-table-is-built", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudformation:ValidateTemplate", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb/check_deploy_cfn_dynamodb_getatt_unknown_attribute_rejected_after_the_table_is_built.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.deploy-cfn-dynamodb-table-settings-apply-and-flip-in-place", "deployments": [], "key": "cloudformation__dynamodb/deploy-cfn-dynamodb-table-settings-apply-and-flip-in-place", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudformation__dynamodb/check_deploy_cfn_dynamodb_table_settings_apply_and_flip_in_place.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.deploy-dynamodb-2-deletion-protection-blocks-stack-delete", "deployments": [], "key": "cloudformation__dynamodb/deploy-dynamodb-2-deletion-protection-blocks-stack-delete", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/cloudformation__dynamodb/check_deploy_dynamodb_2_deletion_protection_blocks_stack_delete.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.deploy-dynamodb-2-multi-resource-rollback", "deployments": [], "key": "cloudformation__dynamodb/deploy-dynamodb-2-multi-resource-rollback", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudformation__dynamodb/check_deploy_dynamodb_2_multi_resource_rollback.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.deploy-dynamodb-2-update-rollback-removes-added-table", "deployments": [], "key": "cloudformation__dynamodb/deploy-dynamodb-2-update-rollback-removes-added-table", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudformation__dynamodb/check_deploy_dynamodb_2_update_rollback_removes_added_table.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.deploy-dynamodb-table-value-constraints-rejected", "deployments": [], "key": "cloudformation__dynamodb/deploy-dynamodb-table-value-constraints-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb/check_deploy_dynamodb_table_value_constraints_rejected.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.sam-simpletable-defaults-to-string-id-on-demand", "deployments": ["behavioral/cloudformation__dynamodb/deployments/sam_simpletable/template.yaml"], "key": "cloudformation__dynamodb/sam-simpletable-defaults-to-string-id-on-demand", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/cloudformation__dynamodb/check_sam_simpletable_defaults_to_string_id_on_demand.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb.stack-tags-propagate-to-table-without-system-tags-and-update-in-place", "deployments": [], "key": "cloudformation__dynamodb/stack-tags-propagate-to-table-without-system-tags-and-update-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "dynamodb:DescribeTable", "dynamodb:ListTagsOfResource"], "path": "behavioral/cloudformation__dynamodb/check_stack_tags_propagate_to_table_without_system_tags_and_update_in_place.py", "service": "cloudformation__dynamodb"} {"check_id": "cloudformation__dynamodb__ecr__iam__s3__ssm.cdk-bootstrap-provisions-toolkit-and-serves-default-synth-deploy", "deployments": ["behavioral/cloudformation__dynamodb__ecr__iam__s3__ssm/deployments/cdk_table_bootstrap/app.py", "behavioral/cloudformation__dynamodb__ecr__iam__s3__ssm/deployments/cdk_table_bootstrap/cdk.json"], "key": "cloudformation__dynamodb__ecr__iam__s3__ssm/cdk-bootstrap-provisions-toolkit-and-serves-default-synth-deploy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListExports", "dynamodb:GetItem", "dynamodb:PutItem", "ecr:DescribeRepositories", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__dynamodb__ecr__iam__s3__ssm/check_cdk_bootstrap_provisions_toolkit_and_serves_default_synth_deploy.py", "service": "cloudformation__dynamodb__ecr__iam__s3__ssm"} {"check_id": "cloudformation__dynamodb__events__lambda.xsvc-cloudformation-3-rollback-complete-status-event-drives-lambda-dynamodb-write", "deployments": [], "key": "cloudformation__dynamodb__events__lambda/xsvc-cloudformation-3-rollback-complete-status-event-drives-lambda-dynamodb-write", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__events__lambda/check_xsvc_cloudformation_3_rollback_complete_status_event_drives_lambda_dynamodb_write.py", "service": "cloudformation__dynamodb__events__lambda"} {"check_id": "cloudformation__dynamodb__events__lambda.xsvc-cloudformation-3-update-rollback-complete-rejected-by-exact-rollback-complete-rule", "deployments": [], "key": "cloudformation__dynamodb__events__lambda/xsvc-cloudformation-3-update-rollback-complete-rejected-by-exact-rollback-complete-rule", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__events__lambda/check_xsvc_cloudformation_3_update_rollback_complete_rejected_by_exact_rollback_complete_rule.py", "service": "cloudformation__dynamodb__events__lambda"} {"check_id": "cloudformation__dynamodb__iam__lambda.sam-connector-function-table-grants-read-policy", "deployments": [], "key": "cloudformation__dynamodb__iam__lambda/sam-connector-function-table-grants-read-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "dynamodb:DescribeTable", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:ListAttachedRolePolicies", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__dynamodb__iam__lambda/check_sam_connector_function_table_grants_read_policy.py", "service": "cloudformation__dynamodb__iam__lambda"} {"check_id": "cloudformation__dynamodb__iam__lambda.sam-connector-invalid-permission-rejected", "deployments": [], "key": "cloudformation__dynamodb__iam__lambda/sam-connector-invalid-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "dynamodb:DescribeTable", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:ListAttachedRolePolicies", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__dynamodb__iam__lambda/check_sam_connector_invalid_permission_rejected.py", "service": "cloudformation__dynamodb__iam__lambda"} {"check_id": "cloudformation__dynamodb__iam__lambda__s3.sam-policies-shorthand-expansion-deny-probed", "deployments": [], "key": "cloudformation__dynamodb__iam__lambda__s3/sam-policies-shorthand-expansion-deny-probed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListStackResources", "dynamodb:DeleteTable", "dynamodb:GetItem", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:Invoke", "logs:DeleteLogGroup", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__iam__lambda__s3/check_sam_policies_shorthand_expansion_deny_probed.py", "service": "cloudformation__dynamodb__iam__lambda__s3"} {"check_id": "cloudformation__dynamodb__iam__sqs.cdk-bootstrap-custom-permissions-boundary-blocks-a-deploy-outside-it", "deployments": ["behavioral/cloudformation__dynamodb__iam__sqs/deployments/cdk_boundary_queue/app.py", "behavioral/cloudformation__dynamodb__iam__sqs/deployments/cdk_boundary_queue/cdk.json", "behavioral/cloudformation__dynamodb__iam__sqs/deployments/cdk_boundary_table/app.py", "behavioral/cloudformation__dynamodb__iam__sqs/deployments/cdk_boundary_table/cdk.json"], "key": "cloudformation__dynamodb__iam__sqs/cdk-bootstrap-custom-permissions-boundary-blocks-a-deploy-outside-it", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetRole", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__dynamodb__iam__sqs/check_cdk_bootstrap_custom_permissions_boundary_blocks_a_deploy_outside_it.py", "service": "cloudformation__dynamodb__iam__sqs"} {"check_id": "cloudformation__dynamodb__lambda.cdk-custom-resource-provider-iscomplete-timeout-fails-the-stack", "deployments": ["behavioral/cloudformation__dynamodb__lambda/deployments/cdk_custom_resource_waiter/app.py", "behavioral/cloudformation__dynamodb__lambda/deployments/cdk_custom_resource_waiter/cdk.json"], "key": "cloudformation__dynamodb__lambda/cdk-custom-resource-provider-iscomplete-timeout-fails-the-stack", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ecr:DescribeRepositories", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__lambda/check_cdk_custom_resource_provider_iscomplete_timeout_fails_the_stack.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.cdk-custom-resource-provider-waits-for-iscomplete", "deployments": ["behavioral/cloudformation__dynamodb__lambda/deployments/cdk_custom_resource_waiter/app.py", "behavioral/cloudformation__dynamodb__lambda/deployments/cdk_custom_resource_waiter/cdk.json"], "key": "cloudformation__dynamodb__lambda/cdk-custom-resource-provider-waits-for-iscomplete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ecr:DescribeRepositories", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__lambda/check_cdk_custom_resource_provider_waits_for_iscomplete.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.cdk-nested-stack-output-feeds-a-parent-function-that-writes-the-nested-table", "deployments": ["behavioral/cloudformation__dynamodb__lambda/deployments/cdk_nested_table_writer/app.py", "behavioral/cloudformation__dynamodb__lambda/deployments/cdk_nested_table_writer/cdk.json"], "key": "cloudformation__dynamodb__lambda/cdk-nested-stack-output-feeds-a-parent-function-that-writes-the-nested-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:GetItem", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudformation__dynamodb__lambda/check_cdk_nested_stack_output_feeds_a_parent_function_that_writes_the_nested_table.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.cfn-sam-read-and-crud-policy-templates-scope-the-generated-roles", "deployments": [], "key": "cloudformation__dynamodb__lambda/cfn-sam-read-and-crud-policy-templates-scope-the-generated-roles", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:GetRolePolicy", "iam:ListRolePolicies", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__dynamodb__lambda/check_cfn_sam_read_and_crud_policy_templates_scope_the_generated_roles.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.cfn-sam-transform-function-table-end-to-end", "deployments": ["behavioral/cloudformation__dynamodb__lambda/deployments/sam-function-table.yaml"], "key": "cloudformation__dynamodb__lambda/cfn-sam-transform-function-table-end-to-end", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__dynamodb__lambda/check_cfn_sam_transform_function_table_end_to_end.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.cfn-sam-transform-generated-names-number-key-function-table-end-to-end", "deployments": [], "key": "cloudformation__dynamodb__lambda/cfn-sam-transform-generated-names-number-key-function-table-end-to-end", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "dynamodb:DescribeTable", "dynamodb:GetItem", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__dynamodb__lambda/check_cfn_sam_transform_generated_names_number_key_function_table_end_to_end.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.deploy-cdk-table-stream-consumer-copies-inserts-into-a-second-table", "deployments": ["behavioral/cloudformation__dynamodb__lambda/deployments/cdk_stream_consumer/app.py", "behavioral/cloudformation__dynamodb__lambda/deployments/cdk_stream_consumer/cdk.json"], "key": "cloudformation__dynamodb__lambda/deploy-cdk-table-stream-consumer-copies-inserts-into-a-second-table", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:GetRole", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__dynamodb__lambda/check_deploy_cdk_table_stream_consumer_copies_inserts_into_a_second_table.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.deploy-cdk-table-stream-consumer-missing-sink-grant-blocks-propagation", "deployments": ["behavioral/cloudformation__dynamodb__lambda/deployments/cdk_stream_consumer_missing_grant/app.py", "behavioral/cloudformation__dynamodb__lambda/deployments/cdk_stream_consumer_missing_grant/cdk.json"], "key": "cloudformation__dynamodb__lambda/deploy-cdk-table-stream-consumer-missing-sink-grant-blocks-propagation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__dynamodb__lambda/check_deploy_cdk_table_stream_consumer_missing_sink_grant_blocks_propagation.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.response-request-id-is-a-real-uuid", "deployments": [], "key": "cloudformation__dynamodb__lambda/response-request-id-is-a-real-uuid", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DescribeStacks", "cloudformation:ListStacks", "dynamodb:DescribeTable", "dynamodb:ListTables", "lambda:GetFunction", "lambda:ListFunctions"], "path": "behavioral/cloudformation__dynamodb__lambda/check_response_request_id_is_a_real_uuid.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda.sam-ddb-stream-insert-filter-invokes-and-filters", "deployments": ["behavioral/cloudformation__dynamodb__lambda/deployments/sam_ddb_stream/template.yaml"], "key": "cloudformation__dynamodb__lambda/sam-ddb-stream-insert-filter-invokes-and-filters", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:GetRole", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__dynamodb__lambda/check_sam_ddb_stream_insert_filter_invokes_and_filters.py", "service": "cloudformation__dynamodb__lambda"} {"check_id": "cloudformation__dynamodb__lambda__logs__s3.cdk-default-deploy-function-writes-granted-table-and-carries-cdk-metadata", "deployments": ["behavioral/cloudformation__dynamodb__lambda__logs__s3/deployments/cdk_default_table_writer/app.py", "behavioral/cloudformation__dynamodb__lambda__logs__s3/deployments/cdk_default_table_writer/cdk.json"], "key": "cloudformation__dynamodb__lambda__logs__s3/cdk-default-deploy-function-writes-granted-table-and-carries-cdk-metadata", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "dynamodb:DescribeTable", "dynamodb:GetItem", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__dynamodb__lambda__logs__s3/check_cdk_default_deploy_function_writes_granted_table_and_carries_cdk_metadata.py", "service": "cloudformation__dynamodb__lambda__logs__s3"} {"check_id": "cloudformation__dynamodb__lambda__sqs.cdk-default-deploy-scoped-grants-deny-unauthorized-queue-receive-and-destroy-removes-all", "deployments": ["behavioral/cloudformation__dynamodb__lambda__sqs/deployments/cdk_trio_scoped_grants/app.py", "behavioral/cloudformation__dynamodb__lambda__sqs/deployments/cdk_trio_scoped_grants/cdk.json"], "key": "cloudformation__dynamodb__lambda__sqs/cdk-default-deploy-scoped-grants-deny-unauthorized-queue-receive-and-destroy-removes-all", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:GetRole", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__dynamodb__lambda__sqs/check_cdk_default_deploy_scoped_grants_deny_unauthorized_queue_receive_and_destroy_removes_all.py", "service": "cloudformation__dynamodb__lambda__sqs"} {"check_id": "cloudformation__dynamodb__s3.cfn-cli-delete-stack-removes-dynamodb-table-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-cli-delete-stack-removes-dynamodb-table-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_cli_delete_stack_removes_dynamodb_table_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-cli-delete-stack-retains-s3-bucket-with-retain-policy-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-cli-delete-stack-retains-s3-bucket-with-retain-policy-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DescribeStacks", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectsV2"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_cli_delete_stack_retains_s3_bucket_with_retain_policy_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-cli-describe-stack-resources-shows-dynamodb-table-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-cli-describe-stack-resources-shows-dynamodb-table-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_cli_describe_stack_resources_shows_dynamodb_table_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-cli-missing-s3-getobject-permission-blocks-template-fetch-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-cli-missing-s3-getobject-permission-blocks-template-fetch-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_cli_missing_s3_getobject_permission_blocks_template_fetch_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-cross-stack-export-dynamodb-table-name-to-s3-stack-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-cross-stack-export-dynamodb-table-name-to-s3-stack-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:GetBucketTagging", "s3:HeadBucket"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_cross_stack_export_dynamodb_table_name_to_s3_stack_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-deploy-changeset-references-s3-template-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-deploy-changeset-references-s3-template-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_deploy_changeset_references_s3_template_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-deploy-dynamodb-table-deletion-policy-retain-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-deploy-dynamodb-table-deletion-policy-retain-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_deploy_dynamodb_table_deletion_policy_retain_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-deploy-dynamodb-table-s3-bucket-stack-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-deploy-dynamodb-table-s3-bucket-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DeleteItem", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:PutObject"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_deploy_dynamodb_table_s3_bucket_stack_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-deploy-iam-role-trust-mismatched-principal-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-deploy-iam-role-trust-mismatched-principal-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_deploy_iam_role_trust_mismatched_principal_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-deploy-iam-role-trust-s3-service-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-deploy-iam-role-trust-s3-service-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListRoleTags"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_deploy_iam_role_trust_s3_service_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-deploy-missing-s3-object-template-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-deploy-missing-s3-object-template-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_deploy_missing_s3_object_template_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-deploy-s3-bucket-deletion-policy-retain-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-deploy-s3-bucket-deletion-policy-retain-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteBucket", "s3:HeadBucket"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_deploy_s3_bucket_deletion_policy_retain_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-nested-stack-template-from-s3-dynamodb-resource-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-nested-stack-template-from-s3-dynamodb-resource-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_nested_stack_template_from_s3_dynamodb_resource_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-package-large-template-uploads-to-s3-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-package-large-template-uploads-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_package_large_template_uploads_to_s3_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-stack-policy-protects-dynamodb-table-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-stack-policy-protects-dynamodb-table-positive", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:SetStackPolicy", "cloudformation:UpdateStack", "dynamodb:DescribeTable"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_stack_policy_protects_dynamodb_table_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-stack-update-dynamodb-table-billing-mode-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-stack-update-dynamodb-table-billing-mode-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_stack_update_dynamodb_table_billing_mode_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.cfn-template-url-invalid-s3-path-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/cfn-template-url-invalid-s3-path-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudformation__dynamodb__s3/check_cfn_template_url_invalid_s3_path_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.dynamodb-export-object-prefix-data-format-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/dynamodb-export-object-prefix-data-format-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__dynamodb__s3/check_dynamodb_export_object_prefix_data_format_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.dynamodb-export-requires-pitr-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/dynamodb-export-requires-pitr-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__dynamodb__s3/check_dynamodb_export_requires_pitr_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.dynamodb-export-table-to-s3-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/dynamodb-export-table-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__dynamodb__s3/check_dynamodb_export_table_to_s3_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.dynamodb-export-to-s3-missing-bucket-permission-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/dynamodb-export-to-s3-missing-bucket-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__s3/check_dynamodb_export_to_s3_missing_bucket_permission_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.s3-bucket-policy-allows-dynamodb-export-service-principal-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/s3-bucket-policy-allows-dynamodb-export-service-principal-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__s3/check_s3_bucket_policy_allows_dynamodb_export_service_principal_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.s3-bucket-policy-denies-dynamodb-export-service-principal-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/s3-bucket-policy-denies-dynamodb-export-service-principal-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__s3/check_s3_bucket_policy_denies_dynamodb_export_service_principal_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.s3-replication-role-missing-trust-negative", "deployments": [], "key": "cloudformation__dynamodb__s3/s3-replication-role-missing-trust-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__s3/check_s3_replication_role_missing_trust_negative.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3.s3-replication-role-trust-s3-positive", "deployments": [], "key": "cloudformation__dynamodb__s3/s3-replication-role-trust-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketReplication", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__dynamodb__s3/check_s3_replication_role_trust_s3_positive.py", "service": "cloudformation__dynamodb__s3"} {"check_id": "cloudformation__dynamodb__s3__ssm.cdk-default-deploy-all-two-stacks-share-an-export", "deployments": ["behavioral/cloudformation__dynamodb__s3__ssm/deployments/cdk_default_two_stacks/app.py", "behavioral/cloudformation__dynamodb__s3__ssm/deployments/cdk_default_two_stacks/cdk.json"], "key": "cloudformation__dynamodb__s3__ssm/cdk-default-deploy-all-two-stacks-share-an-export", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:ListExports", "cloudformation:ListImports", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__dynamodb__s3__ssm/check_cdk_default_deploy_all_two_stacks_share_an_export.py", "service": "cloudformation__dynamodb__s3__ssm"} {"check_id": "cloudformation__dynamodb__ssm.cdk-bootstrap-version-gate-blocks-deploy-until-rebootstrapped", "deployments": ["behavioral/cloudformation__dynamodb__ssm/deployments/cdk_table_bootstrap/app.py", "behavioral/cloudformation__dynamodb__ssm/deployments/cdk_table_bootstrap/cdk.json"], "key": "cloudformation__dynamodb__ssm/cdk-bootstrap-version-gate-blocks-deploy-until-rebootstrapped", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "dynamodb:PutItem", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__dynamodb__ssm/check_cdk_bootstrap_version_gate_blocks_deploy_until_rebootstrapped.py", "service": "cloudformation__dynamodb__ssm"} {"check_id": "cloudformation__dynamodb__ssm.resource-level-and-stack-tags-combine-on-table-and-parameter", "deployments": [], "key": "cloudformation__dynamodb__ssm/resource-level-and-stack-tags-combine-on-table-and-parameter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:ListTagsOfResource", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__dynamodb__ssm/check_resource_level_and_stack_tags_combine_on_table_and_parameter.py", "service": "cloudformation__dynamodb__ssm"} {"check_id": "cloudformation__dynamodb__ssm.ssm-parameter-map-tags-reserved-prefix-rejected-rolls-back-stack", "deployments": [], "key": "cloudformation__dynamodb__ssm/ssm-parameter-map-tags-reserved-prefix-rejected-rolls-back-stack", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "ssm:GetParameter"], "path": "behavioral/cloudformation__dynamodb__ssm/check_ssm_parameter_map_tags_reserved_prefix_rejected_rolls_back_stack.py", "service": "cloudformation__dynamodb__ssm"} {"check_id": "cloudformation__dynamodb__stepfunctions.deploy-cdk-dynamo-put-item-task-writes-item-execution-reads-it-back", "deployments": ["behavioral/cloudformation__dynamodb__stepfunctions/deployments/sfn_dynamo_put/app.py", "behavioral/cloudformation__dynamodb__stepfunctions/deployments/sfn_dynamo_put/cdk.json"], "key": "cloudformation__dynamodb__stepfunctions/deploy-cdk-dynamo-put-item-task-writes-item-execution-reads-it-back", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:GetRole", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudformation__dynamodb__stepfunctions/check_deploy_cdk_dynamo_put_item_task_writes_item_execution_reads_it_back.py", "service": "cloudformation__dynamodb__stepfunctions"} {"check_id": "cloudformation__dynamodb__stepfunctions.deploy-cdk-dynamo-putitem-denied-fails", "deployments": ["behavioral/cloudformation__dynamodb__stepfunctions/deployments/sfn_dynamo_put/app.py", "behavioral/cloudformation__dynamodb__stepfunctions/deployments/sfn_dynamo_put/cdk.json"], "key": "cloudformation__dynamodb__stepfunctions/deploy-cdk-dynamo-putitem-denied-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudformation__dynamodb__stepfunctions/check_deploy_cdk_dynamo_putitem_denied_fails.py", "service": "cloudformation__dynamodb__stepfunctions"} {"check_id": "cloudformation__dynamodb__stepfunctions.deploy-dynamodb-provisioned-billing-without-throughput-rejected-at-stack-create", "deployments": [], "key": "cloudformation__dynamodb__stepfunctions/deploy-dynamodb-provisioned-billing-without-throughput-rejected-at-stack-create", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "iam:GetRole", "stepfunctions:DescribeStateMachine"], "path": "behavioral/cloudformation__dynamodb__stepfunctions/check_deploy_dynamodb_provisioned_billing_without_throughput_rejected_at_stack_create.py", "service": "cloudformation__dynamodb__stepfunctions"} {"check_id": "cloudformation__ec2.cdk-destroy-removes-every-resource-the-stack-created", "deployments": ["behavioral/cloudformation__ec2/deployments/cdk-vpc-l2-defaults/app.py", "behavioral/cloudformation__ec2/deployments/cdk-vpc-l2-defaults/cdk.json"], "key": "cloudformation__ec2/cdk-destroy-removes-every-resource-the-stack-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2/check_cdk_destroy_removes_every_resource_the_stack_created.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cdk-diff-sees-a-template-change-and-is-blind-to-resource-drift", "deployments": ["behavioral/cloudformation__ec2/deployments/cdk-vpc-diff-subject/app.py", "behavioral/cloudformation__ec2/deployments/cdk-vpc-diff-subject/cdk.json"], "key": "cloudformation__ec2/cdk-diff-sees-a-template-change-and-is-blind-to-resource-drift", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:GetTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2/check_cdk_diff_sees_a_template_change_and_is_blind_to_resource_drift.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cdk-l2-vpc-max-azs-clamps-to-the-regions-availability-zone-count", "deployments": ["behavioral/cloudformation__ec2/deployments/cdk-vpc-maxazs-clamp/app.py", "behavioral/cloudformation__ec2/deployments/cdk-vpc-maxazs-clamp/cdk.json"], "key": "cloudformation__ec2/cdk-l2-vpc-max-azs-clamps-to-the-regions-availability-zone-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2/check_cdk_l2_vpc_max_azs_clamps_to_the_regions_availability_zone_count.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cdk-l2-vpc-max-azs-two-deploys-two-nat-gateways", "deployments": ["behavioral/cloudformation__ec2/deployments/cdk-vpc-l2-defaults/app.py", "behavioral/cloudformation__ec2/deployments/cdk-vpc-l2-defaults/cdk.json"], "key": "cloudformation__ec2/cdk-l2-vpc-max-azs-two-deploys-two-nat-gateways", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2/check_cdk_l2_vpc_max_azs_two_deploys_two_nat_gateways.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cdk-l2-vpc-nat-gateways-one-overrides-the-per-az-default", "deployments": ["behavioral/cloudformation__ec2/deployments/cdk-vpc-nat-gateways-one/app.py", "behavioral/cloudformation__ec2/deployments/cdk-vpc-nat-gateways-one/cdk.json"], "key": "cloudformation__ec2/cdk-l2-vpc-nat-gateways-one-overrides-the-per-az-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2/check_cdk_l2_vpc_nat_gateways_one_overrides_the_per_az_default.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cdk-l2-vpc-private-isolated-subnets-deploy-with-no-egress-route", "deployments": ["behavioral/cloudformation__ec2/deployments/cdk-vpc-private-isolated/app.py", "behavioral/cloudformation__ec2/deployments/cdk-vpc-private-isolated/cdk.json"], "key": "cloudformation__ec2/cdk-l2-vpc-private-isolated-subnets-deploy-with-no-egress-route", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2/check_cdk_l2_vpc_private_isolated_subnets_deploy_with_no_egress_route.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cdk-synth-construct-validation-rejects-an-unallocatable-cidr", "deployments": ["behavioral/cloudformation__ec2/deployments/cdk-construct-validation/app.py", "behavioral/cloudformation__ec2/deployments/cdk-construct-validation/cdk.json"], "key": "cloudformation__ec2/cdk-synth-construct-validation-rejects-an-unallocatable-cidr", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ValidateTemplate", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2/check_cdk_synth_construct_validation_rejects_an_unallocatable_cidr.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cdk-vpc-from-lookup-classifies-the-nat-egress-private-subnet-group", "deployments": ["behavioral/cloudformation__ec2/deployments/cdk-vpc-from-lookup/app.py", "behavioral/cloudformation__ec2/deployments/cdk-vpc-from-lookup/cdk.json", "behavioral/cloudformation__ec2/deployments/cdk-vpc-l2-defaults/app.py", "behavioral/cloudformation__ec2/deployments/cdk-vpc-l2-defaults/cdk.json"], "key": "cloudformation__ec2/cdk-vpc-from-lookup-classifies-the-nat-egress-private-subnet-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2/check_cdk_vpc_from_lookup_classifies_the_nat_egress_private_subnet_group.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-cidr-computed-blocks-accepted-by-ec2-and-bad-count-rejected", "deployments": [], "key": "cloudformation__ec2/cfn-cidr-computed-blocks-accepted-by-ec2-and-bad-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_cfn_cidr_computed_blocks_accepted_by_ec2_and_bad_count_rejected.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-dhcp-options-invalid-ntp-server-rolls-back", "deployments": [], "key": "cloudformation__ec2/cfn-dhcp-options-invalid-ntp-server-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ec2:DescribeDhcpOptions"], "path": "behavioral/cloudformation__ec2/check_cfn_dhcp_options_invalid_ntp_server_rolls_back.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-dhcp-options-read-back-through-ec2-api", "deployments": [], "key": "cloudformation__ec2/cfn-dhcp-options-read-back-through-ec2-api", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeDhcpOptions"], "path": "behavioral/cloudformation__ec2/check_cfn_dhcp_options_read_back_through_ec2_api.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-instance-tag-update-in-place-retained-replacement-keeps-both-running-then-terminated", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-instance-tag-update-in-place-retained-replacement-keeps-both-running-then-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_instance_tag_update_in_place_retained_replacement_keeps_both_running_then_terminated.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-internet-gateway-tag-update-in-place-attached-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-internet-gateway-tag-update-in-place-attached-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_internet_gateway_tag_update_in_place_attached_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-launch-template-in-place-new-version-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-launch-template-in-place-new-version-retained-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DeleteLaunchTemplate", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeLaunchTemplates", "ec2:RunInstances"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_launch_template_in_place_new_version_retained_replacement_then_not_found.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-route-ref-is-the-route-table-id-and-destination", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-route-ref-is-the-route-table-id-and-destination", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_route_ref_is_the_route_table_id_and_destination.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-route-retarget-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-route-retarget-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DeleteRoute", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_route_retarget_in_place_replace_retained_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-route-table-create-update-in-place-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-route-table-create-update-in-place-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeRouteTables"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_route_table_create_update_in_place_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-security-group-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-security-group-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_security_group_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-security-group-ingress-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-security-group-ingress-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_security_group_ingress_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-securitygroup-schema-structure-defers-to-ec2-api-and-warns", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-securitygroup-schema-structure-defers-to-ec2-api-and-warns", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_securitygroup_schema_structure_defers_to_ec2_api_and_warns.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-subnet-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-subnet-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DeleteSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSubnets"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_subnet_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-subnet-route-table-association-replace-deletes-first-despite-retain-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-subnet-route-table-association-replace-deletes-first-despite-retain-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DisassociateRouteTable"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_subnet_route_table_association_replace_deletes_first_despite_retain_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-volume-size-type-mismatch-rejected", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-volume-size-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_volume_size_type_mismatch_rejected.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-vpc-create-update-in-place-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-vpc-create-update-in-place-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeNetworkAcls", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_vpc_create_update_in_place_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.cfn-ec2-vpc-gateway-attachment-swap-gateway-in-place-then-delete", "deployments": [], "key": "cloudformation__ec2/cfn-ec2-vpc-gateway-attachment-swap-gateway-in-place-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeInternetGateways", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_cfn_ec2_vpc_gateway_attachment_swap_gateway_in_place_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-cfn-ec2-transit-gateway-attachments-association-propagation-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-cfn-ec2-transit-gateway-attachments-association-propagation-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_cfn_ec2_transit_gateway_attachments_association_propagation_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-cfn-ec2-transit-gateway-route-table-and-policy-table-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-cfn-ec2-transit-gateway-route-table-and-policy-table-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayRouteTables", "ec2:SearchTransitGatewayRoutes"], "path": "behavioral/cloudformation__ec2/check_deploy_cfn_ec2_transit_gateway_route_table_and_policy_table_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-cfn-ec2-transit-gateway-route-table-association-duplicate-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2/deploy-cfn-ec2-transit-gateway-route-table-association-duplicate-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones"], "path": "behavioral/cloudformation__ec2/check_deploy_cfn_ec2_transit_gateway_route_table_association_duplicate_rejected_and_rolled_back.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-1-bad-ami-instance-rolls-back-the-network-in-reverse-order", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-1-bad-ami-instance-rolls-back-the-network-in-reverse-order", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_1_bad_ami_instance_rolls_back_the_network_in_reverse_order.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-1-overlapping-subnet-cidr-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-1-overlapping-subnet-cidr-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_1_overlapping_subnet_cidr_rejected_and_rolled_back.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-1-volume-deletion-policy-snapshot-vs-retain", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-1-volume-deletion-policy-snapshot-vs-retain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_1_volume_deletion_policy_snapshot_vs_retain.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-capacity-reservation-and-fleet-lifecycle", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-capacity-reservation-and-fleet-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservationFleets", "ec2:DescribeCapacityReservations", "ec2:DescribeInstanceTypeOfferings"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_capacity_reservation_and_fleet_lifecycle.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-customer-gateway-and-vpn-gateway-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-customer-gateway-and-vpn-gateway-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnGateways"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_customer_gateway_and_vpn_gateway_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-customer-gateway-invalid-bgp-asn-rejected", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-customer-gateway-invalid-bgp-asn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeCustomerGateways"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_customer_gateway_invalid_bgp_asn_rejected.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-egress-only-internet-gateway-and-vpc-encryption-control-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-egress-only-internet-gateway-and-vpc-encryption-control-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeEgressOnlyInternetGateways", "ec2:DescribeVpcEncryptionControls", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_egress_only_internet_gateway_and_vpc_encryption_control_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-eip-network-interface-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-eip-network-interface-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_eip_network_interface_association_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-instance-event-window-time-range-too-short-rejected", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-instance-event-window-time-range-too-short-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstanceEventWindows"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_instance_event_window_time_range_too_short_rejected.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-instance-read-back-and-removed", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-instance-read-back-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_instance_read_back_and_removed.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-internet-gateway-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-internet-gateway-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInternetGateways"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_internet_gateway_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-ipam-pool-cidr-allocation-token-resolver-round-trip-then-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-ipam-pool-cidr-allocation-token-resolver-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeIpamExternalResourceVerificationTokens", "ec2:DescribeIpamPools", "ec2:DescribeIpamPrefixListResolverTargets", "ec2:DescribeIpamPrefixListResolvers", "ec2:GetIpamPoolAllocations"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_ipam_pool_cidr_allocation_token_resolver_round_trip_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-ipv4-pool-round-trip-then-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-ipv4-pool-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribePublicIpv4Pools"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_ipv4_pool_round_trip_then_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-keypair-placementgroup-appstatuscheck-read-back-and-removed", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-keypair-placementgroup-appstatuscheck-read-back-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeApplicationStatusChecks", "ec2:DescribeKeyPairs", "ec2:DescribePlacementGroups"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_keypair_placementgroup_appstatuscheck_read_back_and_removed.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-launch-template-duplicate-name-rejected", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-launch-template-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeLaunchTemplates"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_launch_template_duplicate_name_rejected.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-launch-template-read-back-and-removed", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-launch-template-read-back-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeLaunchTemplates", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_launch_template_read_back_and_removed.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-nat-gateway-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-nat-gateway-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_nat_gateway_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-network-acl-entry-and-subnet-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-network-acl-entry-and-subnet-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkAcls", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_network_acl_entry_and_subnet_association_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-network-insights-access-scope-and-analysis-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-network-insights-access-scope-and-analysis-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeNetworkInsightsAccessScopes", "ec2:GetNetworkInsightsAccessScopeContent"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_network_insights_access_scope_and_analysis_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-network-insights-access-scope-invalid-resource-type-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-network-insights-access-scope-invalid-resource-type-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:GetNetworkInsightsAccessScopeContent"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_network_insights_access_scope_invalid_resource_type_rejected_and_rolled_back.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-network-insights-path-and-analysis-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-network-insights-path-and-analysis-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeNetworkInsightsPaths"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_network_insights_path_and_analysis_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-network-interface-and-volume-attachment-read-back-and-removed", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-network-interface-and-volume-attachment-read-back-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVolumes"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_network_interface_and_volume_attachment_read_back_and_removed.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-prefix-list-max-entries-below-minimum-rejected", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-prefix-list-max-entries-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_prefix_list_max_entries_below_minimum_rejected.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-route-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-route-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_route_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-route-server-endpoint-and-peer-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-route-server-endpoint-and-peer-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_route_server_endpoint_and_peer_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-route-server-family-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-route-server-family-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeRouteServers", "ec2:GetRouteServerAssociations", "ec2:GetRouteServerPropagations"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_route_server_family_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-route-server-invalid-amazon-side-asn-rejected", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-route-server-invalid-amazon-side-asn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_route_server_invalid_amazon_side_asn_rejected.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-route-table-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-route-table-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeRouteTables", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_route_table_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-security-group-egress-invalid-port-range-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-security-group-egress-invalid-port-range-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_security_group_egress_invalid_port_range_rejected_and_rolled_back.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-security-group-ingress-invalid-port-range-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-security-group-ingress-invalid-port-range-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_security_group_ingress_invalid_port_range_rejected_and_rolled_back.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-snapshot-resource-type-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-snapshot-resource-type-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_snapshot_resource_type_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-subnet-route-table-association-read-back-and-removed", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-subnet-route-table-association-read-back-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_subnet_route_table_association_read_back_and_removed.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-traffic-mirror-filter-and-rule-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-traffic-mirror-filter-and-rule-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeTrafficMirrorFilterRules", "ec2:DescribeTrafficMirrorFilters"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_traffic_mirror_filter_and_rule_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-traffic-mirror-filter-rule-invalid-port-range-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-traffic-mirror-filter-rule-invalid-port-range-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeTrafficMirrorFilterRules"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_traffic_mirror_filter_rule_invalid_port_range_rejected_and_rolled_back.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-traffic-mirror-target-and-session-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-traffic-mirror-target-and-session-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeInstances", "ec2:DescribeTrafficMirrorSessions", "ec2:DescribeTrafficMirrorTargets"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_traffic_mirror_target_and_session_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-verified-access-lifecycle", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-verified-access-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeVerifiedAccessGroups", "ec2:DescribeVerifiedAccessInstances", "ec2:DescribeVerifiedAccessTrustProviders", "ec2:GetVerifiedAccessGroupPolicy"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_verified_access_lifecycle.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-verified-access-trust-provider-invalid-policy-reference-name-rejected", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-verified-access-trust-provider-invalid-policy-reference-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeVerifiedAccessTrustProviders"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_verified_access_trust_provider_invalid_policy_reference_name_rejected.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-vpc-block-public-access-exclusion-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-vpc-block-public-access-exclusion-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeVpcBlockPublicAccessExclusions"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_vpc_block_public_access_exclusion_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-vpc-cidr-block-and-subnet-cidr-block-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-vpc-cidr-block-and-subnet-cidr-block-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_vpc_cidr_block_and_subnet_cidr_block_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-vpc-endpoint-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-vpc-endpoint-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_vpc_endpoint_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-vpc-gateway-attachment-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-vpc-gateway-attachment-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInternetGateways", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_vpc_gateway_attachment_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-vpc-peering-connection-and-security-group-vpc-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-vpc-peering-connection-and-security-group-vpc-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroupVpcAssociations", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_vpc_peering_connection_and_security_group_vpc_association_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-vpn-concentrator-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-vpn-concentrator-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_vpn_concentrator_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-vpn-connection-and-connection-route-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-vpn-connection-and-connection-route-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_vpn_connection_and_connection_route_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.deploy-ec2-vpn-gateway-route-propagation-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2/deploy-ec2-vpn-gateway-route-propagation-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeRouteTables", "ec2:DescribeVpnGateways"], "path": "behavioral/cloudformation__ec2/check_deploy_ec2_vpn_gateway_route_propagation_round_trip_and_delete.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.parameter-ec2-typed-nonexistent-ids-roll-back", "deployments": [], "key": "cloudformation__ec2/parameter-ec2-typed-nonexistent-ids-roll-back", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/cloudformation__ec2/check_parameter_ec2_typed_nonexistent_ids_roll_back.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2.parameter-ec2-typed-values-drive-created-resources", "deployments": [], "key": "cloudformation__ec2/parameter-ec2-typed-values-drive-created-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:GetTemplateSummary", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups"], "path": "behavioral/cloudformation__ec2/check_parameter_ec2_typed_values_drive_created_resources.py", "service": "cloudformation__ec2"} {"check_id": "cloudformation__ec2__ecr__iam__lambda__logs__s3__ssm.cdk-bootstrap-session-tags-unlock-lookup-deploy-and-asset-publishing", "deployments": [], "key": "cloudformation__ec2__ecr__iam__lambda__logs__s3__ssm/cdk-bootstrap-session-tags-unlock-lookup-deploy-and-asset-publishing", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeVpcs", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "iam:SimulatePrincipalPolicy", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ec2__ecr__iam__lambda__logs__s3__ssm/check_cdk_bootstrap_session_tags_unlock_lookup_deploy_and_asset_publishing.py", "service": "cloudformation__ec2__ecr__iam__lambda__logs__s3__ssm"} {"check_id": "cloudformation__ec2__ecs.cfn-ecs-service-resource-lifecycle", "deployments": [], "key": "cloudformation__ec2__ecs/cfn-ecs-service-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/cloudformation__ec2__ecs/check_cfn_ecs_service_resource_lifecycle.py", "service": "cloudformation__ec2__ecs"} {"check_id": "cloudformation__ec2__ecs__glue__kms__lambda__rds__redshift__s3__stepfunctions.cdk-seven-region-estate-alarm-period", "deployments": ["behavioral/cloudformation__ec2__ecs__glue__kms__lambda__rds__redshift__s3__stepfunctions/deployments/cdk_seven_region_estate/app.py", "behavioral/cloudformation__ec2__ecs__glue__kms__lambda__rds__redshift__s3__stepfunctions/deployments/cdk_seven_region_estate/cdk.json"], "key": "cloudformation__ec2__ecs__glue__kms__lambda__rds__redshift__s3__stepfunctions/cdk-seven-region-estate-alarm-period", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:control", "plane:data"], "operations": ["appconfigdata:GetLatestConfiguration", "appconfigdata:StartConfigurationSession", "autoscaling:DescribeAutoScalingGroups", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:ListStackResources", "cloudwatch:DescribeAlarms", "dynamodb:GetItem", "dynamodb:PutItem", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeFlowLogs", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeManagedPrefixLists", "ec2:DescribeNatGateways", "ec2:DescribeNetworkAcls", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeTransitGateways", "ec2:DescribeVolumes", "ec2:SearchTransitGatewayRoutes", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetAuthorizationToken", "ecr:ListImages", "ecs:DeleteTaskDefinitions", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:UpdateService", "elasticache:DescribeCacheClusters", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "events:DescribeRule", "events:ListTargetsByRule", "glue:GetJob", "glue:GetJobRun", "glue:StartJobRun", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "iam:SimulatePrincipalPolicy", "kms:DescribeKey", "kms:GenerateDataKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "lakeformation:GetDataLakeSettings", "lakeformation:ListPermissions", "lakeformation:PutDataLakeSettings", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListEventSourceMappings", "lambda:UpdateAlias", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:GetLogEvents", "network-firewall:DescribeFirewall", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:DescribeClusters", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "sqs:SendMessage", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:GetParameter", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:AssumeRole", "sts:GetCallerIdentity", "wafv2:GetWebACLForResource"], "path": "behavioral/cloudformation__ec2__ecs__glue__kms__lambda__rds__redshift__s3__stepfunctions/check_cdk_seven_region_estate_alarm_period.py", "service": "cloudformation__ec2__ecs__glue__kms__lambda__rds__redshift__s3__stepfunctions"} {"check_id": "cloudformation__ec2__elbv2.cfn-elbv2-internal-load-balancer-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__ec2__elbv2/cfn-elbv2-internal-load-balancer-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeNetworkInterfaces", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTags"], "path": "behavioral/cloudformation__ec2__elbv2/check_cfn_elbv2_internal_load_balancer_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__ec2__elbv2"} {"check_id": "cloudformation__ec2__elbv2.cfn-elbv2-listener-fixed-response-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__ec2__elbv2/cfn-elbv2-listener-fixed-response-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeNetworkInterfaces", "elbv2:CreateListener", "elbv2:DescribeListeners", "elbv2:DescribeRules"], "path": "behavioral/cloudformation__ec2__elbv2/check_cfn_elbv2_listener_fixed_response_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__ec2__elbv2"} {"check_id": "cloudformation__ec2__elbv2.cfn-elbv2-listener-resource-lifecycle", "deployments": [], "key": "cloudformation__ec2__elbv2/cfn-elbv2-listener-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudformation__ec2__elbv2/check_cfn_elbv2_listener_resource_lifecycle.py", "service": "cloudformation__ec2__elbv2"} {"check_id": "cloudformation__ec2__elbv2.cfn-elbv2-listener-rule-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__ec2__elbv2/cfn-elbv2-listener-rule-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeNetworkInterfaces", "elbv2:CreateRule", "elbv2:DeleteRule", "elbv2:DescribeRules"], "path": "behavioral/cloudformation__ec2__elbv2/check_cfn_elbv2_listener_rule_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__ec2__elbv2"} {"check_id": "cloudformation__ec2__elbv2.cfn-elbv2-loadbalancer-resource-lifecycle", "deployments": [], "key": "cloudformation__ec2__elbv2/cfn-elbv2-loadbalancer-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudformation__ec2__elbv2/check_cfn_elbv2_loadbalancer_resource_lifecycle.py", "service": "cloudformation__ec2__elbv2"} {"check_id": "cloudformation__ec2__elbv2.cfn-elbv2-target-group-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__ec2__elbv2/cfn-elbv2-target-group-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeSubnets", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/cloudformation__ec2__elbv2/check_cfn_elbv2_target_group_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__ec2__elbv2"} {"check_id": "cloudformation__ec2__elbv2.cfn-elbv2-targetgroup-resource-lifecycle", "deployments": [], "key": "cloudformation__ec2__elbv2/cfn-elbv2-targetgroup-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "elbv2:DescribeTargetGroups"], "path": "behavioral/cloudformation__ec2__elbv2/check_cfn_elbv2_targetgroup_resource_lifecycle.py", "service": "cloudformation__ec2__elbv2"} {"check_id": "cloudformation__ec2__gamelift__iam.deploy-gamelift-game-server-group-invalid-instance-type-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2__gamelift__iam/deploy-gamelift-game-server-group-invalid-instance-type-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "gamelift:DescribeGameServerGroup", "gamelift:ListTagsForResource", "iam:GetRole"], "path": "behavioral/cloudformation__ec2__gamelift__iam/check_deploy_gamelift_game_server_group_invalid_instance_type_rejected_and_rolled_back.py", "service": "cloudformation__ec2__gamelift__iam"} {"check_id": "cloudformation__ec2__gamelift__iam.deploy-gamelift-game-server-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2__gamelift__iam/deploy-gamelift-game-server-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "gamelift:DescribeGameServerGroup", "gamelift:ListTagsForResource", "iam:GetRole"], "path": "behavioral/cloudformation__ec2__gamelift__iam/check_deploy_gamelift_game_server_group_round_trip_and_delete.py", "service": "cloudformation__ec2__gamelift__iam"} {"check_id": "cloudformation__ec2__iam.cdk-vpc-lookup-context-cache-outlives-a-denied-lookup-role", "deployments": ["behavioral/cloudformation__ec2__iam/deployments/cdk-vpc-lookup-cache/app.py", "behavioral/cloudformation__ec2__iam/deployments/cdk-vpc-lookup-cache/cdk.json"], "key": "cloudformation__ec2__iam/cdk-vpc-lookup-context-cache-outlives-a-denied-lookup-role", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ecr:DescribeRepositories", "iam:DeleteRolePolicy", "iam:ListRoles", "iam:PutRolePolicy", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2__iam/check_cdk_vpc_lookup_context_cache_outlives_a_denied_lookup_role.py", "service": "cloudformation__ec2__iam"} {"check_id": "cloudformation__ec2__iam.deploy-ec2-spot-fleet-wrong-trust-policy-rejected-and-valid-role-succeeds", "deployments": [], "key": "cloudformation__ec2__iam/deploy-ec2-spot-fleet-wrong-trust-policy-rejected-and-valid-role-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSpotFleetInstances", "ec2:DescribeSpotFleetRequests", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ec2__iam/check_deploy_ec2_spot_fleet_wrong_trust_policy_rejected_and_valid_role_succeeds.py", "service": "cloudformation__ec2__iam"} {"check_id": "cloudformation__ec2__iam__lambda.deploy-lambda-capacity-provider-invalid-architecture-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2__iam__lambda/deploy-lambda-capacity-provider-invalid-architecture-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "iam:GetRole", "iam:GetRolePolicy", "lambda:GetCapacityProvider", "lambda:ListTags"], "path": "behavioral/cloudformation__ec2__iam__lambda/check_deploy_lambda_capacity_provider_invalid_architecture_rejected_and_rolled_back.py", "service": "cloudformation__ec2__iam__lambda"} {"check_id": "cloudformation__ec2__iam__lambda.deploy-lambda-capacity-provider-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2__iam__lambda/deploy-lambda-capacity-provider-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "iam:GetRole", "iam:GetRolePolicy", "lambda:GetCapacityProvider", "lambda:ListTags"], "path": "behavioral/cloudformation__ec2__iam__lambda/check_deploy_lambda_capacity_provider_round_trip_and_delete.py", "service": "cloudformation__ec2__iam__lambda"} {"check_id": "cloudformation__sagemaker.deploy-sagemaker-domain-auth-mode-invalid-value-rejected", "deployments": [], "key": "cloudformation__ec2__iam__sagemaker/deploy-sagemaker-domain-auth-mode-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "iam:CreateRole", "iam:DeleteRole", "sagemaker:DescribeDomain"], "path": "behavioral/cloudformation__ec2__iam__sagemaker/check_deploy_sagemaker_domain_auth_mode_invalid_value_rejected.py", "service": "cloudformation__ec2__iam__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-sagemaker-domain-userprofile-space-round-trip-then-delete", "deployments": [], "key": "cloudformation__ec2__iam__sagemaker/deploy-sagemaker-domain-userprofile-space-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "iam:CreateRole", "iam:DeleteRole", "sagemaker:DescribeDomain", "sagemaker:DescribeSpace", "sagemaker:DescribeUserProfile"], "path": "behavioral/cloudformation__ec2__iam__sagemaker/check_deploy_sagemaker_domain_userprofile_space_round_trip_then_delete.py", "service": "cloudformation__ec2__iam__sagemaker"} {"check_id": "cloudformation__ec2__iam__ssm.cdk-vpc-context-lookup-denied-lookup-role-fails-synth", "deployments": [], "key": "cloudformation__ec2__iam__ssm/cdk-vpc-context-lookup-denied-lookup-role-fails-synth", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "iam:DeleteRolePolicy", "iam:ListRoles", "iam:PutRolePolicy", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2__iam__ssm/check_cdk_vpc_context_lookup_denied_lookup_role_fails_synth.py", "service": "cloudformation__ec2__iam__ssm"} {"check_id": "cloudformation__ec2__lambda-core.deploy-lambda-network-connector-invalid-protocol-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2__lambda-core/deploy-lambda-network-connector-invalid-protocol-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "lambda-core:GetNetworkConnector"], "path": "behavioral/cloudformation__ec2__lambda-core/check_deploy_lambda_network_connector_invalid_protocol_rejected_and_rolled_back.py", "service": "cloudformation__ec2__lambda-core"} {"check_id": "cloudformation__ec2__lambda-core.deploy-lambda-network-connector-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2__lambda-core/deploy-lambda-network-connector-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "lambda-core:GetNetworkConnector"], "path": "behavioral/cloudformation__ec2__lambda-core/check_deploy_lambda_network_connector_round_trip_and_delete.py", "service": "cloudformation__ec2__lambda-core"} {"check_id": "cloudformation__ec2__memorydb.deploy-memorydb-parametergroup-and-subnetgroup-round-trip-then-delete", "deployments": [], "key": "cloudformation__ec2__memorydb/deploy-memorydb-parametergroup-and-subnetgroup-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "memorydb:DescribeParameterGroups", "memorydb:DescribeSubnetGroups", "memorydb:ListTags"], "path": "behavioral/cloudformation__ec2__memorydb/check_deploy_memorydb_parametergroup_and_subnetgroup_round_trip_then_delete.py", "service": "cloudformation__ec2__memorydb"} {"check_id": "cloudformation__ec2__neptune-graph.deploy-neptune-graph-snapshot-and-private-endpoint-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2__neptune-graph/deploy-neptune-graph-private-endpoint-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeVpcEndpoints", "neptune-graph:GetGraph", "neptune-graph:GetPrivateGraphEndpoint"], "path": "behavioral/cloudformation__ec2__neptune-graph/check_deploy_neptune_graph_private_endpoint_round_trip_and_delete.py", "service": "cloudformation__ec2__neptune-graph"} {"check_id": "cloudformation__ec2__neptune.cfn-deploy-neptune-db-subnet-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2__neptune/cfn-deploy-neptune-db-subnet-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "neptune:DescribeDBSubnetGroups", "neptune:ListTagsForResource"], "path": "behavioral/cloudformation__ec2__neptune/check_cfn_deploy_neptune_db_subnet_group_round_trip_and_delete.py", "service": "cloudformation__ec2__neptune"} {"check_id": "cloudformation__ec2__neptune.cfn-deploy-neptune-db-subnet-group-single-az-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2__neptune/cfn-deploy-neptune-db-subnet-group-single-az-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "neptune:DescribeDBSubnetGroups"], "path": "behavioral/cloudformation__ec2__neptune/check_cfn_deploy_neptune_db_subnet_group_single_az_rejected_and_rolled_back.py", "service": "cloudformation__ec2__neptune"} {"check_id": "cloudformation__ec2__neptune.deploy-neptune-cluster-and-instance-provisioned", "deployments": [], "key": "cloudformation__ec2__neptune/deploy-neptune-cluster-and-instance-provisioned", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "neptune:DescribeDBClusters", "neptune:DescribeDBInstances", "neptune:DescribeDBSubnetGroups", "neptune:DescribeOrderableDBInstanceOptions"], "path": "behavioral/cloudformation__ec2__neptune/check_deploy_neptune_cluster_and_instance_provisioned.py", "service": "cloudformation__ec2__neptune"} {"check_id": "cloudformation__ec2__neptune.deploy-neptune-cluster-invalid-engine-version-rejected", "deployments": [], "key": "cloudformation__ec2__neptune/deploy-neptune-cluster-invalid-engine-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "neptune:DescribeDBClusters", "neptune:DescribeDBEngineVersions", "neptune:DescribeOrderableDBInstanceOptions"], "path": "behavioral/cloudformation__ec2__neptune/check_deploy_neptune_cluster_invalid_engine_version_rejected.py", "service": "cloudformation__ec2__neptune"} {"check_id": "cloudformation__ec2__network-firewall.deploy-cfn-nfwr-firewall-and-logging-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2__network-firewall/deploy-cfn-nfwr-firewall-and-logging-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "network-firewall:DescribeFirewall", "network-firewall:DescribeFirewallPolicy", "network-firewall:DescribeLoggingConfiguration"], "path": "behavioral/cloudformation__ec2__network-firewall/check_deploy_cfn_nfwr_firewall_and_logging_round_trip_and_delete.py", "service": "cloudformation__ec2__network-firewall"} {"check_id": "cloudformation__ec2__networkmanager.deploy-customer-gateway-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2__networkmanager/deploy-customer-gateway-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeCustomerGateways", "ec2:DescribeTransitGateways", "ec2:DescribeVpnConnections"], "path": "behavioral/cloudformation__ec2__networkmanager/check_deploy_customer_gateway_association_round_trip_and_delete.py", "service": "cloudformation__ec2__networkmanager"} {"check_id": "cloudformation__ec2__rds.cfn-rds-db-subnet-group-single-az-rejected-negative", "deployments": ["behavioral/cloudformation__ec2__rds/deployments/rds-subnet-group.yaml"], "key": "cloudformation__ec2__rds/cfn-rds-db-subnet-group-single-az-rejected-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups"], "path": "behavioral/cloudformation__ec2__rds/check_cfn_rds_db_subnet_group_single_az_rejected_negative.py", "service": "cloudformation__ec2__rds"} {"check_id": "cloudformation__ec2__rds.deploy-cfn-rds-db-subnet-group-cross-vpc-subnets-rejected", "deployments": [], "key": "cloudformation__ec2__rds/deploy-cfn-rds-db-subnet-group-cross-vpc-subnets-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "rds:DescribeDBSubnetGroups"], "path": "behavioral/cloudformation__ec2__rds/check_deploy_cfn_rds_db_subnet_group_cross_vpc_subnets_rejected.py", "service": "cloudformation__ec2__rds"} {"check_id": "cloudformation__ec2__rds.deploy-cfn-rds-db-subnet-group-provisions-with-getatt-arn-and-lowercased-ref", "deployments": [], "key": "cloudformation__ec2__rds/deploy-cfn-rds-db-subnet-group-provisions-with-getatt-arn-and-lowercased-ref", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:DescribeDBSubnetGroups"], "path": "behavioral/cloudformation__ec2__rds/check_deploy_cfn_rds_db_subnet_group_provisions_with_getatt_arn_and_lowercased_ref.py", "service": "cloudformation__ec2__rds"} {"check_id": "cloudformation__ec2__redshift-serverless.deploy-redshift-serverless-workgroup-invalid-base-capacity-rejected", "deployments": [], "key": "cloudformation__ec2__redshift-serverless/deploy-redshift-serverless-workgroup-invalid-base-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/cloudformation__ec2__redshift-serverless/check_deploy_redshift_serverless_workgroup_invalid_base_capacity_rejected.py", "service": "cloudformation__ec2__redshift-serverless"} {"check_id": "cloudformation__ec2__redshift-serverless.deploy-redshift-serverless-workgroup-snapshot-provisions-and-tombstones", "deployments": [], "key": "cloudformation__ec2__redshift-serverless/deploy-redshift-serverless-workgroup-snapshot-provisions-and-tombstones", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeVpcAttribute", "redshift-serverless:GetNamespace", "redshift-serverless:GetSnapshot", "redshift-serverless:GetWorkgroup"], "path": "behavioral/cloudformation__ec2__redshift-serverless/check_deploy_redshift_serverless_workgroup_snapshot_provisions_and_tombstones.py", "service": "cloudformation__ec2__redshift-serverless"} {"check_id": "cloudformation__ec2__s3__s3control.deploy-s3express-directorybucket-bucketpolicy-accesspoint-round-trip-then-delete", "deployments": [], "key": "cloudformation__ec2__s3__s3control/deploy-s3express-directorybucket-bucketpolicy-accesspoint-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "s3:GetBucketPolicy", "s3:HeadBucket", "s3control:GetAccessPoint"], "path": "behavioral/cloudformation__ec2__s3__s3control/check_deploy_s3express_directorybucket_bucketpolicy_accesspoint_round_trip_then_delete.py", "service": "cloudformation__ec2__s3__s3control"} {"check_id": "cloudformation__ec2__sqs__ssm.cfn-yaml-short-form-intrinsics-shape-resources", "deployments": ["behavioral/cloudformation__ec2__sqs__ssm/deployments/yaml-short-form-intrinsics.yaml"], "key": "cloudformation__ec2__sqs__ssm/cfn-yaml-short-form-intrinsics-shape-resources", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ec2:DescribeAvailabilityZones", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__sqs__ssm/check_cfn_yaml_short_form_intrinsics_shape_resources.py", "service": "cloudformation__ec2__sqs__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-change-set-preview-ec2-ssm-association-update-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-change-set-preview-ec2-ssm-association-update-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DescribeAssociation", "ssm:DescribeAssociationExecutions", "ssm:DescribeInstanceInformation"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_change_set_preview_ec2_ssm_association_update_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-delete-stack-deregisters-ec2-from-ssm-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-delete-stack-deregisters-ec2-from-ssm-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_delete_stack_deregisters_ec2_from_ssm_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-deploy-ec2-instance-ssm-managed-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-deploy-ec2-instance-ssm-managed-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_deploy_ec2_instance_ssm_managed_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-deploy-ssm-document-association-ec2-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-deploy-ssm-document-association-ec2-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeAssociation", "ssm:DescribeAssociationExecutionTargets", "ssm:DescribeAssociationExecutions", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:ListCommandInvocations"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_deploy_ssm_document_association_ec2_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-deploy-ssm-maintenance-window-targets-ec2-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-deploy-ssm-maintenance-window-targets-ec2-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ssm:DescribeInstanceInformation", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:DescribeMaintenanceWindowExecutions"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_deploy_ssm_maintenance_window_targets_ec2_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-deploy-ssm-patch-baseline-associated-ec2-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-deploy-ssm-patch-baseline-associated-ec2-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeInstanceInformation", "ssm:DescribeInstancePatchStates", "ssm:ListComplianceItems", "ssm:StartAssociationsOnce"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_deploy_ssm_patch_baseline_associated_ec2_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ec2-instance-profile-enables-ssm-agent-registration-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ec2-instance-profile-enables-ssm-agent-registration-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ec2_instance_profile_enables_ssm_agent_registration_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ec2-missing-ssm-instance-profile-negative", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ec2-missing-ssm-instance-profile-negative", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ec2_missing_ssm_instance_profile_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ec2-tag-propagation-to-ssm-inventory-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ec2-tag-propagation-to-ssm-inventory-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeTags", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ec2_tag_propagation_to_ssm_inventory_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-nested-stack-ec2-ssm-parameter-cross-reference-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-nested-stack-ec2-ssm-parameter-cross-reference-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_nested_stack_ec2_ssm_parameter_cross_reference_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ssm-association-missing-target-tag-negative", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ssm-association-missing-target-tag-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeAssociation", "ssm:DescribeAssociationExecutionTargets", "ssm:DescribeAssociationExecutions", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ssm_association_missing_target_tag_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ssm-automation-document-stops-ec2-instance-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ssm-automation-document-stops-ec2-instance-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ssm_automation_document_stops_ec2_instance_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ssm-document-wrong-instance-tag-key-negative", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ssm-document-wrong-instance-tag-key-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeAssociation", "ssm:DescribeAssociationExecutionTargets", "ssm:DescribeAssociationExecutions", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ssm_document_wrong_instance_tag_key_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ssm-maintenance-window-missing-service-role-negative", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ssm-maintenance-window-missing-service-role-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ssm:DescribeMaintenanceWindowExecutionTaskInvocations", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetMaintenanceWindowExecutionTask"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ssm_maintenance_window_missing_service_role_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ssm-maintenance-window-registers-ec2-target-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ssm-maintenance-window-registers-ec2-target-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeInstanceInformation", "ssm:DescribeMaintenanceWindowTargets", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ssm_maintenance_window_registers_ec2_target_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ssm-parameter-referenced-in-ec2-userdata-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ssm-parameter-referenced-in-ec2-userdata-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:PutParameter", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ssm_parameter_referenced_in_ec2_userdata_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-ssm-patch-baseline-wrong-tag-filter-negative", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-ssm-patch-baseline-wrong-tag-filter-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ssm:DescribeAssociationExecutions", "ssm:DescribeInstanceInformation"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_ssm_patch_baseline_wrong_tag_filter_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-stack-output-exports-ec2-instance-id-to-ssm-parameter-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-stack-output-exports-ec2-instance-id-to-ssm-parameter-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_stack_output_exports_ec2_instance_id_to_ssm_parameter_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-stack-rollback-on-invalid-ec2-instance-type-negative", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-stack-rollback-on-invalid-ec2-instance-type-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeInstances"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_stack_rollback_on_invalid_ec2_instance_type_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cfn-update-ec2-instance-type-triggers-ssm-reregistration-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cfn-update-ec2-instance-type-triggers-ssm-reregistration-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeInstances", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cfn_update_ec2_instance_type_triggers_ssm_reregistration_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cli-script-cfn-deploy-ec2-then-ssm-command-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cli-script-cfn-deploy-ec2-then-ssm-command-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation"], "path": "behavioral/cloudformation__ec2__ssm/check_cli_script_cfn_deploy_ec2_then_ssm_command_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cli-script-cfn-stack-delete-removes-ssm-association-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cli-script-cfn-stack-delete-removes-ssm-association-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeInstances", "ssm:DescribeAssociation"], "path": "behavioral/cloudformation__ec2__ssm/check_cli_script_cfn_stack_delete_removes_ssm_association_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cli-script-cfn-update-stack-security-group-blocks-ssm-negative", "deployments": [], "key": "cloudformation__ec2__ssm/cli-script-cfn-update-stack-security-group-blocks-ssm-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStacks", "ec2:DescribeInstances", "ec2:StartInstances", "ec2:StopInstances", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_cli_script_cfn_update_stack_security_group_blocks_ssm_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cli-script-ssm-command-denied-without-iam-role-negative", "deployments": [], "key": "cloudformation__ec2__ssm/cli-script-ssm-command-denied-without-iam-role-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_cli_script_ssm_command_denied_without_iam_role_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.cli-script-ssm-parameter-created-by-cfn-then-used-by-ec2-launch-positive", "deployments": [], "key": "cloudformation__ec2__ssm/cli-script-ssm-parameter-created-by-cfn-then-used-by-ec2-launch-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStacks", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_cli_script_ssm_parameter_created_by_cfn_then_used_by_ec2_launch_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.deploy-ec2-3-group-rename-replaces-the-group-and-source-group-rule-still-drops-an-unrelated-instance", "deployments": [], "key": "cloudformation__ec2__ssm/deploy-ec2-3-group-rename-replaces-the-group-and-source-group-rule-still-drops-an-unrelated-instance", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:AuthorizeSecurityGroupIngress", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupIngress", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_deploy_ec2_3_group_rename_replaces_the_group_and_source_group_rule_still_drops_an_unrelated_instance.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.deploy-ec2-3-instance-type-update-reboots-in-place-tags-do-not-drift-tracks-out-of-band-ingress", "deployments": [], "key": "cloudformation__ec2__ssm/deploy-ec2-3-instance-type-update-reboots-in-place-tags-do-not-drift-tracks-out-of-band-ingress", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:UpdateStack", "ec2:AuthorizeSecurityGroupIngress", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RevokeSecurityGroupIngress", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_deploy_ec2_3_instance_type_update_reboots_in_place_tags_do_not_drift_tracks_out_of_band_ingress.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ec2-instance-without-ssm-agent-not-listed-negative", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ec2-instance-without-ssm-agent-not-listed-negative", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ec2_instance_without_ssm_agent_not_listed_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-command-output-retrieved-from-ec2-positive", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-command-output-retrieved-from-ec2-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_command_output_retrieved_from_ec2_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-encrypted-parameter-used-in-ec2-launch-positive", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-encrypted-parameter-used-in-ec2-launch-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteParameter", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:PutParameter", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_encrypted_parameter_used_in_ec2_launch_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-get-parameter-used-as-ec2-ami-id-positive", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-get-parameter-used-as-ec2-ami-id-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_get_parameter_used_as_ec2_ami_id_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-inventory-collects-ec2-metadata-positive", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-inventory-collects-ec2-metadata-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateAssociation", "ssm:DeleteAssociation", "ssm:DescribeAssociation", "ssm:DescribeInstanceInformation", "ssm:GetInventory", "ssm:GetParameter", "ssm:StartAssociationsOnce"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_inventory_collects_ec2_metadata_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-list-command-invocations-scoped-to-ec2-instance-positive", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-list-command-invocations-scoped-to-ec2-instance-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:ListCommandInvocations", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_list_command_invocations_scoped_to_ec2_instance_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-missing-sendcommand-permission-negative", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-missing-sendcommand-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:ListCommands", "ssm:SendCommand", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_missing_sendcommand_permission_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-parameter-policy-restricts-ec2-cross-account-read-negative", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-parameter-policy-restricts-ec2-cross-account-read-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_parameter_policy_restricts_ec2_cross_account_read_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-run-command-timeout-on-stopped-ec2-negative", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-run-command-timeout-on-stopped-ec2-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:ListCommandInvocations", "ssm:ListCommands", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_run_command_timeout_on_stopped_ec2_negative.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__ssm.sdk-ssm-send-command-executes-on-ec2-instance-positive", "deployments": [], "key": "cloudformation__ec2__ssm/sdk-ssm-send-command-executes-on-ec2-instance-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudformation__ec2__ssm/check_sdk_ssm_send_command_executes_on_ec2_instance_positive.py", "service": "cloudformation__ec2__ssm"} {"check_id": "cloudformation__ec2__vpc-lattice.deploy-vpclattice-gateway-configuration-and-associations-round-trip-and-delete", "deployments": [], "key": "cloudformation__ec2__vpc-lattice/deploy-vpclattice-gateway-configuration-and-associations-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeTags", "ec2:DescribeVpcs", "vpc-lattice:GetResourceConfiguration", "vpc-lattice:GetResourceGateway", "vpc-lattice:GetServiceNetwork", "vpc-lattice:GetServiceNetworkResourceAssociation", "vpc-lattice:GetServiceNetworkVpcAssociation", "vpc-lattice:ListTagsForResource"], "path": "behavioral/cloudformation__ec2__vpc-lattice/check_deploy_vpclattice_gateway_configuration_and_associations_round_trip_and_delete.py", "service": "cloudformation__ec2__vpc-lattice"} {"check_id": "cloudformation__ec2__vpc-lattice.deploy-vpclattice-resource-configuration-invalid-port-range-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ec2__vpc-lattice/deploy-vpclattice-resource-configuration-invalid-port-range-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "vpc-lattice:GetResourceConfiguration", "vpc-lattice:GetResourceGateway"], "path": "behavioral/cloudformation__ec2__vpc-lattice/check_deploy_vpclattice_resource_configuration_invalid_port_range_rejected_and_rolled_back.py", "service": "cloudformation__ec2__vpc-lattice"} {"check_id": "cloudformation__ecr.cfn-ecr-repository-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__ecr/cfn-ecr-repository-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/cloudformation__ecr/check_cfn_ecr_repository_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.cfn-ecr-repository-name-string-constraints-rejected", "deployments": [], "key": "cloudformation__ecr/cfn-ecr-repository-name-string-constraints-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ecr:DescribeRepositories"], "path": "behavioral/cloudformation__ecr/check_cfn_ecr_repository_name_string_constraints_rejected.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.deploy-ecr-pull-through-cache-rule-duplicate-prefix-rejected", "deployments": [], "key": "cloudformation__ecr/deploy-ecr-pull-through-cache-rule-duplicate-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:DescribePullThroughCacheRules", "ecr:DescribeRegistry"], "path": "behavioral/cloudformation__ecr/check_deploy_ecr_pull_through_cache_rule_duplicate_prefix_rejected.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.deploy-ecr-pull-through-cache-rule-provisioned", "deployments": [], "key": "cloudformation__ecr/deploy-ecr-pull-through-cache-rule-provisioned", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:DescribePullThroughCacheRules"], "path": "behavioral/cloudformation__ecr/check_deploy_ecr_pull_through_cache_rule_provisioned.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.deploy-ecr-registry-singletons-provisioned", "deployments": [], "key": "cloudformation__ecr/deploy-ecr-registry-singletons-provisioned", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:DescribeRegistry", "ecr:GetRegistryPolicy", "ecr:GetRegistryScanningConfiguration"], "path": "behavioral/cloudformation__ecr/check_deploy_ecr_registry_singletons_provisioned.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.deploy-ecr-repository-creation-template-provisioned", "deployments": [], "key": "cloudformation__ecr/deploy-ecr-repository-creation-template-provisioned", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__ecr/check_deploy_ecr_repository_creation_template_provisioned.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.deploy-ecr-repository-duplicate-name-rejected", "deployments": [], "key": "cloudformation__ecr/deploy-ecr-repository-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories"], "path": "behavioral/cloudformation__ecr/check_deploy_ecr_repository_duplicate_name_rejected.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.deploy-ecr-repository-lifecycle-then-not-found", "deployments": [], "key": "cloudformation__ecr/deploy-ecr-repository-lifecycle-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:DescribeRepositories"], "path": "behavioral/cloudformation__ecr/check_deploy_ecr_repository_lifecycle_then_not_found.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.deploy-ecr-repository-name-change-replaces-mutability-change-updates-in-place", "deployments": [], "key": "cloudformation__ecr/deploy-ecr-repository-name-change-replaces-mutability-change-updates-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ecr:DescribeRepositories"], "path": "behavioral/cloudformation__ecr/check_deploy_ecr_repository_name_change_replaces_mutability_change_updates_in_place.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr.deploy-ecr-repository-rename-collision-blocks-replacement-rolls-back", "deployments": [], "key": "cloudformation__ecr/deploy-ecr-repository-rename-collision-blocks-replacement-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories"], "path": "behavioral/cloudformation__ecr/check_deploy_ecr_repository_rename_collision_blocks_replacement_rolls_back.py", "service": "cloudformation__ecr"} {"check_id": "cloudformation__ecr__iam.deploy-ecr-pull-time-update-exclusion-duplicate-principal-rejected", "deployments": [], "key": "cloudformation__ecr__iam/deploy-ecr-pull-time-update-exclusion-duplicate-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:ListPullTimeUpdateExclusions", "iam:GetRole"], "path": "behavioral/cloudformation__ecr__iam/check_deploy_ecr_pull_time_update_exclusion_duplicate_principal_rejected.py", "service": "cloudformation__ecr__iam"} {"check_id": "cloudformation__ecr__iam__lambda__logs__s3__ssm.cdk-bootstrap-default-synthesis-without-new-style-flag-deploys-as-exec-role", "deployments": [], "key": "cloudformation__ecr__iam__lambda__logs__s3__ssm/cdk-bootstrap-default-synthesis-without-new-style-flag-deploys-as-exec-role", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__lambda__logs__s3__ssm/check_cdk_bootstrap_default_synthesis_without_new_style_flag_deploys_as_exec_role.py", "service": "cloudformation__ecr__iam__lambda__logs__s3__ssm"} {"check_id": "cloudformation__ecr__iam__lambda__logs__s3__ssm.cdk-bootstrap-legacy-upgrade-in-use-retains-old-bucket-redeploys-from-new", "deployments": [], "key": "cloudformation__ecr__iam__lambda__logs__s3__ssm/cdk-bootstrap-legacy-upgrade-in-use-retains-old-bucket-redeploys-from-new", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__lambda__logs__s3__ssm/check_cdk_bootstrap_legacy_upgrade_in_use_retains_old_bucket_redeploys_from_new.py", "service": "cloudformation__ecr__iam__lambda__logs__s3__ssm"} {"check_id": "cloudformation__ecr__iam__lambda__logs__s3__ssm.cdk-bootstrap-new-style-synthesis-deploys-the-asset-lambda-as-the-exec-role", "deployments": [], "key": "cloudformation__ecr__iam__lambda__logs__s3__ssm/cdk-bootstrap-new-style-synthesis-deploys-the-asset-lambda-as-the-exec-role", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__lambda__logs__s3__ssm/check_cdk_bootstrap_new_style_synthesis_deploys_the_asset_lambda_as_the_exec_role.py", "service": "cloudformation__ecr__iam__lambda__logs__s3__ssm"} {"check_id": "cloudformation__ecr__iam__lambda__logs__s3__ssm.cdk-bootstrap-omitted-execution-policies-default-to-admin-for-a-lambda-deploy", "deployments": [], "key": "cloudformation__ecr__iam__lambda__logs__s3__ssm/cdk-bootstrap-omitted-execution-policies-default-to-admin-for-a-lambda-deploy", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ecr__iam__lambda__logs__s3__ssm/check_cdk_bootstrap_omitted_execution_policies_default_to_admin_for_a_lambda_deploy.py", "service": "cloudformation__ecr__iam__lambda__logs__s3__ssm"} {"check_id": "cloudformation__ecr__iam__lambda__logs__s3__ssm.cdk-bootstrap-unknown-toolkit-stack-name-still-deploys-a-lambda-asset", "deployments": [], "key": "cloudformation__ecr__iam__lambda__logs__s3__ssm/cdk-bootstrap-unknown-toolkit-stack-name-still-deploys-a-lambda-asset", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ecr__iam__lambda__logs__s3__ssm/check_cdk_bootstrap_unknown_toolkit_stack_name_still_deploys_a_lambda_asset.py", "service": "cloudformation__ecr__iam__lambda__logs__s3__ssm"} {"check_id": "cloudformation__ecr__iam__lambda__s3__ssm.cdk-bootstrap-qualifier-provisions-real-resources-used-by-deploy", "deployments": ["behavioral/cloudformation__ecr__iam__lambda__s3__ssm/deployments/cdk_fn_bootstrap_asset/app.py", "behavioral/cloudformation__ecr__iam__lambda__s3__ssm/deployments/cdk_fn_bootstrap_asset/cdk.json", "behavioral/cloudformation__ecr__iam__lambda__s3__ssm/deployments/cdk_fn_bootstrap_asset/handler/index.py"], "key": "cloudformation__ecr__iam__lambda__s3__ssm/cdk-bootstrap-qualifier-provisions-real-resources-used-by-deploy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:ListStackResources", "ecr:DescribeRepositories", "iam:GetRole", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ecr__iam__lambda__s3__ssm/check_cdk_bootstrap_qualifier_provisions_real_resources_used_by_deploy.py", "service": "cloudformation__ecr__iam__lambda__s3__ssm"} {"check_id": "cloudformation__ecr__iam__lambda__s3__ssm.cdk-deploy-refused-for-unbootstrapped-qualifier-leaves-nothing-provisioned", "deployments": ["behavioral/cloudformation__ecr__iam__lambda__s3__ssm/deployments/cdk_fn_bootstrap_asset/app.py", "behavioral/cloudformation__ecr__iam__lambda__s3__ssm/deployments/cdk_fn_bootstrap_asset/cdk.json", "behavioral/cloudformation__ecr__iam__lambda__s3__ssm/deployments/cdk_fn_bootstrap_asset/handler/index.py"], "key": "cloudformation__ecr__iam__lambda__s3__ssm/cdk-deploy-refused-for-unbootstrapped-qualifier-leaves-nothing-provisioned", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:ListStacks", "iam:GetRole", "lambda:GetFunction", "lambda:Invoke", "lambda:ListFunctions", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ecr__iam__lambda__s3__ssm/check_cdk_deploy_refused_for_unbootstrapped_qualifier_leaves_nothing_provisioned.py", "service": "cloudformation__ecr__iam__lambda__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__sqs__ssm__sts.cdk-bootstrap-deploy-without-execution-role-runs-as-the-session-tagged-deploy-role", "deployments": [], "key": "cloudformation__ecr__iam__s3__sqs__ssm__sts/cdk-bootstrap-deploy-without-execution-role-runs-as-the-session-tagged-deploy-role", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "iam:SimulatePrincipalPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:GetParameter", "ssm:ListTagsForResource", "sts:AssumeRole"], "path": "behavioral/cloudformation__ecr__iam__s3__sqs__ssm__sts/check_cdk_bootstrap_deploy_without_execution_role_runs_as_the_session_tagged_deploy_role.py", "service": "cloudformation__ecr__iam__s3__sqs__ssm__sts"} {"check_id": "cloudformation__ecr__iam__s3__ssm.cdk-bootstrap-container-assets-repository-refuses-to-overwrite-an-image-tag", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm/cdk-bootstrap-container-assets-repository-refuses-to-overwrite-an-image-tag", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchCheckLayerAvailability", "ecr:BatchDeleteImage", "ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm/check_cdk_bootstrap_container_assets_repository_refuses_to_overwrite_an_image_tag.py", "service": "cloudformation__ecr__iam__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__ssm.cdk-bootstrap-custom-permissions-boundary-bounds-only-the-exec-role", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm/cdk-bootstrap-custom-permissions-boundary-bounds-only-the-exec-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:SimulatePrincipalPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm/check_cdk_bootstrap_custom_permissions_boundary_bounds_only_the_exec_role.py", "service": "cloudformation__ecr__iam__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__ssm.cdk-bootstrap-custom-permissions-boundary-with-a-path-bounds-the-exec-role", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm/cdk-bootstrap-custom-permissions-boundary-with-a-path-bounds-the-exec-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:SimulatePrincipalPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm/check_cdk_bootstrap_custom_permissions_boundary_with_a_path_bounds_the_exec_role.py", "service": "cloudformation__ecr__iam__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__ssm.cdk-bootstrap-example-permissions-boundary-bounds-the-exec-role-and-denies-its-removal", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm/cdk-bootstrap-example-permissions-boundary-bounds-the-exec-role-and-denies-its-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:SimulatePrincipalPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm/check_cdk_bootstrap_example_permissions_boundary_bounds_the_exec_role_and_denies_its_removal.py", "service": "cloudformation__ecr__iam__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__ssm.cdk-bootstrap-image-asset-already-in-ecr-is-not-rebuilt-or-pushed-again", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm/cdk-bootstrap-image-asset-already-in-ecr-is-not-rebuilt-or-pushed-again", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchCheckLayerAvailability", "ecr:BatchDeleteImage", "ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm/check_cdk_bootstrap_image_asset_already_in_ecr_is_not_rebuilt_or_pushed_again.py", "service": "cloudformation__ecr__iam__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__ssm.cdk-bootstrap-removing-custom-permissions-boundary-clears-it-from-the-exec-role-in-place", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm/cdk-bootstrap-removing-custom-permissions-boundary-clears-it-from-the-exec-role-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm/check_cdk_bootstrap_removing_custom_permissions_boundary_clears_it_from_the_exec_role_in_place.py", "service": "cloudformation__ecr__iam__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__ssm.cdk-bootstrap-termination-protection-survives-a-forced-re-bootstrap-and-refuses-delete", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm/cdk-bootstrap-termination-protection-survives-a-forced-re-bootstrap-and-refuses-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm/check_cdk_bootstrap_termination_protection_survives_a_forced_re_bootstrap_and_refuses_delete.py", "service": "cloudformation__ecr__iam__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__ssm.cdk-bootstrap-untrust-removes-the-account-from-every-role-trust-in-place", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm/cdk-bootstrap-untrust-removes-the-account-from-every-role-trust-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:DeletePolicy", "iam:GetPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm/check_cdk_bootstrap_untrust_removes_the_account_from_every_role_trust_in_place.py", "service": "cloudformation__ecr__iam__s3__ssm"} {"check_id": "cloudformation__ecr__iam__s3__ssm__sts.cdk-bootstrap-add-tags-propagate-to-toolkit-resources-and-survive-a-tagless-re-bootstrap", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm__sts/cdk-bootstrap-add-tags-propagate-to-toolkit-resources-and-survive-a-tagless-re-bootstrap", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "ssm:GetParameter", "ssm:ListTagsForResource", "sts:AssumeRole"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm__sts/check_cdk_bootstrap_add_tags_propagate_to_toolkit_resources_and_survive_a_tagless_re_bootstrap.py", "service": "cloudformation__ecr__iam__s3__ssm__sts"} {"check_id": "cloudformation__ecr__iam__s3__ssm__sts.cdk-bootstrap-customized-vendor-template-does-not-overwrite-the-default-toolkit", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm__sts/cdk-bootstrap-customized-vendor-template-does-not-overwrite-the-default-toolkit", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "ssm:GetParameter", "ssm:ListTagsForResource", "sts:AssumeRole"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm__sts/check_cdk_bootstrap_customized_vendor_template_does_not_overwrite_the_default_toolkit.py", "service": "cloudformation__ecr__iam__s3__ssm__sts"} {"check_id": "cloudformation__ecr__iam__s3__ssm__sts.cdk-bootstrap-deploy-role-refuses-an-external-id-unless-the-protection-is-off", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm__sts/cdk-bootstrap-deploy-role-refuses-an-external-id-unless-the-protection-is-off", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateTerminationProtection", "ecr:BatchDeleteImage", "ecr:DescribeRepositories", "ecr:ListImages", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm__sts/check_cdk_bootstrap_deploy_role_refuses_an_external_id_unless_the_protection_is_off.py", "service": "cloudformation__ecr__iam__s3__ssm__sts"} {"check_id": "cloudformation__ecr__iam__s3__ssm__sts.cdk-bootstrap-dumped-template-with-an-added-output-deploys-as-the-toolkit", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm__sts/cdk-bootstrap-dumped-template-with-an-added-output-deploys-as-the-toolkit", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "ssm:GetParameter", "ssm:ListTagsForResource", "sts:AssumeRole"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm__sts/check_cdk_bootstrap_dumped_template_with_an_added_output_deploys_as_the_toolkit.py", "service": "cloudformation__ecr__iam__s3__ssm__sts"} {"check_id": "cloudformation__ecr__iam__s3__ssm__sts.cdk-bootstrap-re-bootstrap-after-stack-deletion-imports-the-retained-staging-bucket", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm__sts/cdk-bootstrap-re-bootstrap-after-stack-deletion-imports-the-retained-staging-bucket", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutObject", "ssm:GetParameter", "ssm:ListTagsForResource", "sts:AssumeRole"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm__sts/check_cdk_bootstrap_re_bootstrap_after_stack_deletion_imports_the_retained_staging_bucket.py", "service": "cloudformation__ecr__iam__s3__ssm__sts"} {"check_id": "cloudformation__ecr__iam__s3__ssm__sts.cdk-bootstrap-re-bootstrap-with-a-new-tag-value-updates-every-toolkit-resource-in-place", "deployments": [], "key": "cloudformation__ecr__iam__s3__ssm__sts/cdk-bootstrap-re-bootstrap-with-a-new-tag-value-updates-every-toolkit-resource-in-place", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "ssm:GetParameter", "ssm:ListTagsForResource", "sts:AssumeRole"], "path": "behavioral/cloudformation__ecr__iam__s3__ssm__sts/check_cdk_bootstrap_re_bootstrap_with_a_new_tag_value_updates_every_toolkit_resource_in_place.py", "service": "cloudformation__ecr__iam__s3__ssm__sts"} {"check_id": "cloudformation__ecr__imagebuilder.deploy-imagebuilder-container-recipe-round-trip-and-delete", "deployments": [], "key": "cloudformation__ecr__imagebuilder/deploy-imagebuilder-container-recipe-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecr:DescribeRepositories", "ecr:ListTagsForResource", "imagebuilder:GetComponent", "imagebuilder:GetContainerRecipe"], "path": "behavioral/cloudformation__ecr__imagebuilder/check_deploy_imagebuilder_container_recipe_round_trip_and_delete.py", "service": "cloudformation__ecr__imagebuilder"} {"check_id": "cloudformation__ecr__imagebuilder.deploy-imagebuilder-container-recipe-unknown-repository-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ecr__imagebuilder/deploy-imagebuilder-container-recipe-unknown-repository-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "imagebuilder:GetContainerRecipe"], "path": "behavioral/cloudformation__ecr__imagebuilder/check_deploy_imagebuilder_container_recipe_unknown_repository_rejected_and_rolled_back.py", "service": "cloudformation__ecr__imagebuilder"} {"check_id": "cloudformation__ecr__lambda.cdk-docker-image-asset-build-failure-blocks-deploy-and-publishes-no-image", "deployments": [], "key": "cloudformation__ecr__lambda/cdk-docker-image-asset-build-failure-blocks-deploy-and-publishes-no-image", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "iam:ListRoles", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__lambda/check_cdk_docker_image_asset_build_failure_blocks_deploy_and_publishes_no_image.py", "service": "cloudformation__ecr__lambda"} {"check_id": "cloudformation__ecr__lambda.cdk-docker-image-asset-pushed-by-content-hash-and-function-invokes-it", "deployments": [], "key": "cloudformation__ecr__lambda/cdk-docker-image-asset-pushed-by-content-hash-and-function-invokes-it", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "iam:ListRoles", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecr__lambda/check_cdk_docker_image_asset_pushed_by_content_hash_and_function_invokes_it.py", "service": "cloudformation__ecr__lambda"} {"check_id": "cloudformation__ecr__signer.deploy-ecr-signing-configuration-duplicate-rejected", "deployments": [], "key": "cloudformation__ecr__signer/deploy-ecr-signing-configuration-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:DescribeRegistry", "ecr:GetSigningConfiguration", "signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/cloudformation__ecr__signer/check_deploy_ecr_signing_configuration_duplicate_rejected.py", "service": "cloudformation__ecr__signer"} {"check_id": "cloudformation__ecs.cdk-l2-ecs-asg-capacity-provider-managed-scaling-reaches-the-ecs-api", "deployments": ["behavioral/cloudformation__ecs/deployments/cdk-ecs-asg-capacity/app.py", "behavioral/cloudformation__ecs/deployments/cdk-ecs-asg-capacity/cdk.json"], "key": "cloudformation__ecs/cdk-l2-ecs-asg-capacity-provider-managed-scaling-reaches-the-ecs-api", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeVpcs", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ecs/check_cdk_l2_ecs_asg_capacity_provider_managed_scaling_reaches_the_ecs_api.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.cfn-ecs-cluster-in-place-update-retained-replacement-then-inactive", "deployments": [], "key": "cloudformation__ecs/cfn-ecs-cluster-in-place-update-retained-replacement-then-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:ListServices"], "path": "behavioral/cloudformation__ecs/check_cfn_ecs_cluster_in_place_update_retained_replacement_then_inactive.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.cfn-ecs-fargate-service-in-place-update-retained-replacement-then-inactive", "deployments": [], "key": "cloudformation__ecs/cfn-ecs-fargate-service-in-place-update-retained-replacement-then-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/cloudformation__ecs/check_cfn_ecs_fargate_service_in_place_update_retained_replacement_then_inactive.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.cfn-ecs-task-definition-tag-update-in-place-retained-new-revision-then-inactive", "deployments": [], "key": "cloudformation__ecs/cfn-ecs-task-definition-tag-update-in-place-retained-new-revision-then-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitions"], "path": "behavioral/cloudformation__ecs/check_cfn_ecs_task_definition_tag_update_in_place_retained_new_revision_then_inactive.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.deploy-ecs-capacity-provider-round-trip-then-delete", "deployments": [], "key": "cloudformation__ecs/deploy-ecs-capacity-provider-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecs:DescribeCapacityProviders"], "path": "behavioral/cloudformation__ecs/check_deploy_ecs_capacity_provider_round_trip_then_delete.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.deploy-ecs-capacity-provider-with-nonexistent-asg-rejected", "deployments": [], "key": "cloudformation__ecs/deploy-ecs-capacity-provider-with-nonexistent-asg-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecs:DescribeCapacityProviders"], "path": "behavioral/cloudformation__ecs/check_deploy_ecs_capacity_provider_with_nonexistent_asg_rejected.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.deploy-ecs-cluster-and-capacity-provider-associations-round-trip-then-stack-delete", "deployments": [], "key": "cloudformation__ecs/deploy-ecs-cluster-and-capacity-provider-associations-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecs:DescribeClusters"], "path": "behavioral/cloudformation__ecs/check_deploy_ecs_cluster_and_capacity_provider_associations_round_trip_then_stack_delete.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.deploy-ecs-cluster-capacity-provider-associations-unassociated-strategy-rejected", "deployments": [], "key": "cloudformation__ecs/deploy-ecs-cluster-capacity-provider-associations-unassociated-strategy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecs:DescribeClusters"], "path": "behavioral/cloudformation__ecs/check_deploy_ecs_cluster_capacity_provider_associations_unassociated_strategy_rejected.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.deploy-ecs-service-round-trip-then-stack-delete", "deployments": [], "key": "cloudformation__ecs/deploy-ecs-service-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition"], "path": "behavioral/cloudformation__ecs/check_deploy_ecs_service_round_trip_then_stack_delete.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.deploy-ecs-task-definition-invalid-fargate-cpu-rejected", "deployments": [], "key": "cloudformation__ecs/deploy-ecs-task-definition-invalid-fargate-cpu-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitions"], "path": "behavioral/cloudformation__ecs/check_deploy_ecs_task_definition_invalid_fargate_cpu_rejected.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.deploy-ecs-task-definition-read-back-and-deregistered", "deployments": [], "key": "cloudformation__ecs/deploy-ecs-task-definition-read-back-and-deregistered", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition"], "path": "behavioral/cloudformation__ecs/check_deploy_ecs_task_definition_read_back_and_deregistered.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs.deploy-ecs-taskset-and-primary-taskset-round-trip-then-stack-delete", "deployments": [], "key": "cloudformation__ecs/deploy-ecs-taskset-and-primary-taskset-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecs:DeleteTaskDefinitions", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets"], "path": "behavioral/cloudformation__ecs/check_deploy_ecs_taskset_and_primary_taskset_round_trip_then_stack_delete.py", "service": "cloudformation__ecs"} {"check_id": "cloudformation__ecs__elbv2.cfn-alb-listener-rule-routes-to-ecs-service-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-alb-listener-rule-routes-to-ecs-service-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_alb_listener_rule_routes_to_ecs_service_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-alb-target-group-deregistration-delay-configured-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-alb-target-group-deregistration-delay-configured-positive", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:UpdateService", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_alb_target_group_deregistration_delay_configured_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-alb-target-group-port-mismatch-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-alb-target-group-port-mismatch-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:UpdateService", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_alb_target_group_port_mismatch_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-ecs-service-alb-target-group-registration-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-ecs-service-alb-target-group-registration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_ecs_service_alb_target_group_registration_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-ecs-service-awsvpc-ip-target-type-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-ecs-service-awsvpc-ip-target-type-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_ecs_service_awsvpc_ip_target_type_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-ecs-service-health-check-grace-period-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-ecs-service-health-check-grace-period-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_ecs_service_health_check_grace_period_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-ecs-service-without-load-balancer-config-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-ecs-service-without-load-balancer-config-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_ecs_service_without_load_balancer_config_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-ecs-task-role-missing-trust-policy-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-ecs-task-role-missing-trust-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_ecs_task_role_missing_trust_policy_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-ecs-task-role-trusts-ecs-tasks-service-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-ecs-task-role-trusts-ecs-tasks-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:StopTask", "iam:GetRole"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_ecs_task_role_trusts_ecs_tasks_service_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cfn-security-group-blocks-alb-to-ecs-traffic-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/cfn-security-group-blocks-alb-to-ecs-traffic-negative", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:CreateService", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cfn_security_group_blocks_alb_to_ecs_traffic_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cli-cloudformation-create-stack-then-ecs-service-list-tasks", "deployments": [], "key": "cloudformation__ecs__elbv2/cli-cloudformation-create-stack-then-ecs-service-list-tasks", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudformation__ecs__elbv2/check_cli_cloudformation_create_stack_then_ecs_service_list_tasks.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cli-ecs-create-service-with-alb-attach-and-verify-targets", "deployments": [], "key": "cloudformation__ecs__elbv2/cli-ecs-create-service-with-alb-attach-and-verify-targets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_cli_ecs_create_service_with_alb_attach_and_verify_targets.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cli-ecs-service-missing-iam-pass-role-permission-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/cli-ecs-service-missing-iam-pass-role-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeregisterTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__ecs__elbv2/check_cli_ecs_service_missing_iam_pass_role_permission_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cli-ecs-update-service-target-group-swap-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/cli-ecs-update-service-target-group-swap-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/cloudformation__ecs__elbv2/check_cli_ecs_update_service_target_group_swap_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cli-elbv2-create-target-group-wrong-vpc-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/cli-elbv2-create-target-group-wrong-vpc-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_cli_elbv2_create_target_group_wrong_vpc_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.cli-elbv2-register-unregister-targets-manual-workflow", "deployments": [], "key": "cloudformation__ecs__elbv2/cli-elbv2-register-unregister-targets-manual-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_cli_elbv2_register_unregister_targets_manual_workflow.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.ecs-service-alb-health-check-grace-period-prevents-premature-deregistration-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/ecs-service-alb-health-check-grace-period-prevents-premature-deregistration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_ecs_service_alb_health_check_grace_period_prevents_premature_deregistration_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.ecs-service-missing-elb-service-linked-role-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/ecs-service-missing-elb-service-linked-role-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListContainerInstances", "ecs:ListServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/cloudformation__ecs__elbv2/check_ecs_service_missing_elb_service_linked_role_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.ecs-service-registers-tasks-as-alb-targets-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/ecs-service-registers-tasks-as-alb-targets-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_ecs_service_registers_tasks_as_alb_targets_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.ecs-service-scale-down-deregisters-alb-targets-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/ecs-service-scale-down-deregisters-alb-targets-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/cloudformation__ecs__elbv2/check_ecs_service_scale_down_deregisters_alb_targets_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.ecs-service-scale-up-increases-alb-targets-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/ecs-service-scale-up-increases-alb-targets-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/cloudformation__ecs__elbv2/check_ecs_service_scale_up_increases_alb_targets_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.ecs-service-target-group-arn-attribute-not-set-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/ecs-service-target-group-arn-attribute-not-set-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_ecs_service_target_group_arn_attribute_not_set_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.ecs-task-network-mode-awsvpc-ip-target-registration-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/ecs-task-network-mode-awsvpc-ip-target-registration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_ecs_task_network_mode_awsvpc_ip_target_registration_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.ecs-task-stopped-event-triggers-target-deregistration-event", "deployments": [], "key": "cloudformation__ecs__elbv2/ecs-task-stopped-event-triggers-target-deregistration-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__ecs__elbv2/check_ecs_task_stopped_event_triggers_target_deregistration_event.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.elbv2-deregisters-targets-on-ecs-task-stop-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/elbv2-deregisters-targets-on-ecs-task-stop-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/cloudformation__ecs__elbv2/check_elbv2_deregisters_targets_on_ecs_task_stop_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.elbv2-listener-rule-path-based-routing-to-multiple-ecs-services-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/elbv2-listener-rule-path-based-routing-to-multiple-ecs-services-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_elbv2_listener_rule_path_based_routing_to_multiple_ecs_services_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.elbv2-security-group-mismatch-blocks-health-checks-negative", "deployments": [], "key": "cloudformation__ecs__elbv2/elbv2-security-group-mismatch-blocks-health-checks-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_elbv2_security_group_mismatch_blocks_health_checks_negative.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.elbv2-target-group-deregistration-delay-respected-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/elbv2-target-group-deregistration-delay-respected-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_elbv2_target_group_deregistration_delay_respected_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__elbv2.elbv2-target-health-check-path-affects-ecs-target-status-positive", "deployments": [], "key": "cloudformation__ecs__elbv2/elbv2-target-health-check-path-affects-ecs-target-status-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroup", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudformation__ecs__elbv2/check_elbv2_target_health_check_path_affects_ecs_target_status_positive.py", "service": "cloudformation__ecs__elbv2"} {"check_id": "cloudformation__ecs__logs.deploy-ecs-2-cfn-circuit-breaker-rolls-stack-back-to-last-good-token", "deployments": [], "key": "cloudformation__ecs__logs/deploy-ecs-2-cfn-circuit-breaker-rolls-stack-back-to-last-good-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:ListTasks", "iam:CreateServiceLinkedRole", "iam:GetRole", "logs:GetLogEvents"], "path": "behavioral/cloudformation__ecs__logs/check_deploy_ecs_2_cfn_circuit_breaker_rolls_stack_back_to_last_good_token.py", "service": "cloudformation__ecs__logs"} {"check_id": "cloudformation__ecs__network-firewall.deploy-networkfirewall-container-association-ecs-cluster-round-trip-and-delete", "deployments": [], "key": "cloudformation__ecs__network-firewall/deploy-networkfirewall-container-association-ecs-cluster-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecs:DescribeClusters", "network-firewall:DescribeContainerAssociation"], "path": "behavioral/cloudformation__ecs__network-firewall/check_deploy_networkfirewall_container_association_ecs_cluster_round_trip_and_delete.py", "service": "cloudformation__ecs__network-firewall"} {"check_id": "cloudformation__ecs__network-firewall.deploy-networkfirewall-container-association-invalid-cluster-arn-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ecs__network-firewall/deploy-networkfirewall-container-association-invalid-cluster-arn-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecs:DescribeClusters", "network-firewall:DescribeContainerAssociation"], "path": "behavioral/cloudformation__ecs__network-firewall/check_deploy_networkfirewall_container_association_invalid_cluster_arn_rejected_and_rolled_back.py", "service": "cloudformation__ecs__network-firewall"} {"check_id": "cloudformation__efs.deploy-cfn-efs-access-point-and-mount-target-round-trip-and-delete", "deployments": [], "key": "cloudformation__efs/deploy-cfn-efs-access-point-and-mount-target-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "efs:DescribeAccessPoints", "efs:DescribeFileSystems", "efs:DescribeMountTargetSecurityGroups", "efs:DescribeMountTargets"], "path": "behavioral/cloudformation__efs/check_deploy_cfn_efs_access_point_and_mount_target_round_trip_and_delete.py", "service": "cloudformation__efs"} {"check_id": "cloudformation__efs.deploy-cfn-efs-file-system-provisioned-throughput-missing-rejected", "deployments": [], "key": "cloudformation__efs/deploy-cfn-efs-file-system-provisioned-throughput-missing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "efs:DescribeFileSystems"], "path": "behavioral/cloudformation__efs/check_deploy_cfn_efs_file_system_provisioned_throughput_missing_rejected.py", "service": "cloudformation__efs"} {"check_id": "cloudformation__efs.deploy-cfn-efs-file-system-resource-lifecycle", "deployments": [], "key": "cloudformation__efs/deploy-cfn-efs-file-system-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "efs:DescribeFileSystems"], "path": "behavioral/cloudformation__efs/check_deploy_cfn_efs_file_system_resource_lifecycle.py", "service": "cloudformation__efs"} {"check_id": "cloudformation__efs.deploy-cfn-efs-mount-target-second-in-same-az-rejected", "deployments": [], "key": "cloudformation__efs/deploy-cfn-efs-mount-target-second-in-same-az-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "efs:DescribeMountTargetSecurityGroups", "efs:DescribeMountTargets"], "path": "behavioral/cloudformation__efs/check_deploy_cfn_efs_mount_target_second_in_same_az_rejected.py", "service": "cloudformation__efs"} {"check_id": "cloudformation__eks.cfn-eks-private-cluster-in-place-update-serves-oidc-discovery-then-not-found", "deployments": [], "key": "cloudformation__eks/cfn-eks-private-cluster-in-place-update-serves-oidc-discovery-then-not-found", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeClusterVersions"], "path": "behavioral/cloudformation__eks/check_cfn_eks_private_cluster_in_place_update_serves_oidc_discovery_then_not_found.py", "service": "cloudformation__eks"} {"check_id": "cloudformation__eks.deploy-cfn-cluster-single-az-subnets-rejected", "deployments": [], "key": "cloudformation__eks/deploy-cfn-cluster-single-az-subnets-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "eks:DescribeCluster"], "path": "behavioral/cloudformation__eks/check_deploy_cfn_cluster_single_az_subnets_rejected.py", "service": "cloudformation__eks"} {"check_id": "cloudformation__eks.deploy-cfn-fargateprofile-active-and-deleted", "deployments": [], "key": "cloudformation__eks/deploy-cfn-fargateprofile-active-and-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "eks:DescribeCluster", "eks:DescribeFargateProfile"], "path": "behavioral/cloudformation__eks/check_deploy_cfn_fargateprofile_active_and_deleted.py", "service": "cloudformation__eks"} {"check_id": "cloudformation__eks__emr-containers.deploy-cfn-virtualcluster-invalid-eks-cluster-rejected", "deployments": [], "key": "cloudformation__eks__emr-containers/deploy-cfn-virtualcluster-invalid-eks-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "eks:DescribeCluster", "emr-containers:DescribeVirtualCluster", "emr-containers:ListTagsForResource"], "path": "behavioral/cloudformation__eks__emr-containers/check_deploy_cfn_virtualcluster_invalid_eks_cluster_rejected.py", "service": "cloudformation__eks__emr-containers"} {"check_id": "cloudformation__elasticache.cfn-elasticache-snapshot-unknown-cache-cluster-id-rejected", "deployments": [], "key": "cloudformation__elasticache/cfn-elasticache-snapshot-unknown-cache-cluster-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__elasticache/check_cfn_elasticache_snapshot_unknown_cache_cluster_id_rejected.py", "service": "cloudformation__elasticache"} {"check_id": "cloudformation__elasticache.deploy-elasticache-cachecluster-and-snapshot-round-trip-and-delete", "deployments": [], "key": "cloudformation__elasticache/deploy-elasticache-cachecluster-and-snapshot-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheSubnetGroups"], "path": "behavioral/cloudformation__elasticache/check_deploy_elasticache_cachecluster_and_snapshot_round_trip_and_delete.py", "service": "cloudformation__elasticache"} {"check_id": "cloudformation__elasticache.deploy-elasticache-parametergroup-round-trip-then-stack-delete", "deployments": [], "key": "cloudformation__elasticache/deploy-elasticache-parametergroup-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elasticache:DescribeCacheParameterGroups", "elasticache:ListTagsForResource"], "path": "behavioral/cloudformation__elasticache/check_deploy_elasticache_parametergroup_round_trip_then_stack_delete.py", "service": "cloudformation__elasticache"} {"check_id": "cloudformation__elasticache.deploy-elasticache-serverlesscache-and-serverlesscachesnapshot-round-trip-and-delete", "deployments": [], "key": "cloudformation__elasticache/deploy-elasticache-serverlesscache-and-serverlesscachesnapshot-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elasticache:DescribeServerlessCacheSnapshots", "elasticache:DescribeServerlessCaches"], "path": "behavioral/cloudformation__elasticache/check_deploy_elasticache_serverlesscache_and_serverlesscachesnapshot_round_trip_and_delete.py", "service": "cloudformation__elasticache"} {"check_id": "cloudformation__elasticache.deploy-elasticache-subnetgroup-name-lowercased-round-trip-then-stack-delete", "deployments": [], "key": "cloudformation__elasticache/deploy-elasticache-subnetgroup-name-lowercased-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elasticache:DescribeCacheSubnetGroups", "elasticache:ListTagsForResource"], "path": "behavioral/cloudformation__elasticache/check_deploy_elasticache_subnetgroup_name_lowercased_round_trip_then_stack_delete.py", "service": "cloudformation__elasticache"} {"check_id": "cloudformation__elasticache.deploy-elasticache-user-and-usergroup-round-trip-then-child-and-stack-delete", "deployments": [], "key": "cloudformation__elasticache/deploy-elasticache-user-and-usergroup-round-trip-then-child-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elasticache:DescribeUserGroups", "elasticache:DescribeUsers", "elasticache:ListTagsForResource"], "path": "behavioral/cloudformation__elasticache/check_deploy_elasticache_user_and_usergroup_round_trip_then_child_and_stack_delete.py", "service": "cloudformation__elasticache"} {"check_id": "cloudformation__elasticache.deploy-elasticache-user-reserved-userid-default-rejected", "deployments": [], "key": "cloudformation__elasticache/deploy-elasticache-user-reserved-userid-default-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elasticache:ListTagsForResource"], "path": "behavioral/cloudformation__elasticache/check_deploy_elasticache_user_reserved_userid_default_rejected.py", "service": "cloudformation__elasticache"} {"check_id": "cloudformation__elasticbeanstalk.cfn-elasticbeanstalk-application-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__elasticbeanstalk/cfn-elasticbeanstalk-application-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/cloudformation__elasticbeanstalk/check_cfn_elasticbeanstalk_application_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__elasticbeanstalk"} {"check_id": "cloudformation__elasticbeanstalk.cfn-elasticbeanstalk-environment-in-place-update-keeps-instance-then-terminated", "deployments": [], "key": "cloudformation__elasticbeanstalk/cfn-elasticbeanstalk-environment-in-place-update-keeps-instance-then-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudformation__elasticbeanstalk/check_cfn_elasticbeanstalk_environment_in_place_update_keeps_instance_then_terminated.py", "service": "cloudformation__elasticbeanstalk"} {"check_id": "cloudformation__elasticbeanstalk.cfn-elasticbeanstalk-environment-retained-replacement-keeps-old-running-then-terminated", "deployments": [], "key": "cloudformation__elasticbeanstalk/cfn-elasticbeanstalk-environment-retained-replacement-keeps-old-running-then-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudformation__elasticbeanstalk/check_cfn_elasticbeanstalk_environment_retained_replacement_keeps_old_running_then_terminated.py", "service": "cloudformation__elasticbeanstalk"} {"check_id": "cloudformation__elasticbeanstalk.deploy-elasticbeanstalk-application-version-and-configurationtemplate-round-trip-and-delete", "deployments": [], "key": "cloudformation__elasticbeanstalk/deploy-elasticbeanstalk-application-and-configurationtemplate-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/cloudformation__elasticbeanstalk/check_deploy_elasticbeanstalk_application_and_configurationtemplate_round_trip_and_delete.py", "service": "cloudformation__elasticbeanstalk"} {"check_id": "cloudformation__elasticbeanstalk.deploy-elasticbeanstalk-configurationtemplate-invalid-solutionstack-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__elasticbeanstalk/deploy-elasticbeanstalk-configurationtemplate-invalid-solutionstack-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/cloudformation__elasticbeanstalk/check_deploy_elasticbeanstalk_configurationtemplate_invalid_solutionstack_rejected_and_rolled_back.py", "service": "cloudformation__elasticbeanstalk"} {"check_id": "cloudformation__elasticbeanstalk.deploy-elasticbeanstalk-environment-invalid-solution-stack-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__elasticbeanstalk/deploy-elasticbeanstalk-environment-invalid-solution-stack-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "s3:DeleteObjects"], "path": "behavioral/cloudformation__elasticbeanstalk/check_deploy_elasticbeanstalk_environment_invalid_solution_stack_rejected_and_rolled_back.py", "service": "cloudformation__elasticbeanstalk"} {"check_id": "cloudformation__elasticbeanstalk.deploy-elasticbeanstalk-environment-round-trip-and-delete", "deployments": [], "key": "cloudformation__elasticbeanstalk/deploy-elasticbeanstalk-environment-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "s3:DeleteObjects"], "path": "behavioral/cloudformation__elasticbeanstalk/check_deploy_elasticbeanstalk_environment_round_trip_and_delete.py", "service": "cloudformation__elasticbeanstalk"} {"check_id": "cloudformation__elbv2.deploy-elbv2-2-duplicate-rule-priority-rejected-rolls-back-stack", "deployments": [], "key": "cloudformation__elbv2/deploy-elbv2-2-duplicate-rule-priority-rejected-rolls-back-stack", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "elbv2:CreateRule", "elbv2:DeleteRule", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/cloudformation__elbv2/check_deploy_elbv2_2_duplicate_rule_priority_rejected_rolls_back_stack.py", "service": "cloudformation__elbv2"} {"check_id": "cloudformation__cloudfront__ec2__elbv2.deploy-loadbalancer-invalid-scheme-rejected", "deployments": [], "key": "cloudformation__elbv2/deploy-loadbalancer-invalid-scheme-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudformation__elbv2/check_deploy_loadbalancer_invalid_scheme_rejected.py", "service": "cloudformation__elbv2"} {"check_id": "cloudformation__elbv2__s3.cfn-elbv2-truststorerevocation-resource-lifecycle", "deployments": [], "key": "cloudformation__elbv2__s3/cfn-elbv2-truststorerevocation-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__elbv2__s3/check_cfn_elbv2_truststorerevocation_resource_lifecycle.py", "service": "cloudformation__elbv2__s3"} {"check_id": "cloudformation__elbv2__s3.cfn-truststorerevocation-missing-s3-object-rejected", "deployments": [], "key": "cloudformation__elbv2__s3/cfn-truststorerevocation-missing-s3-object-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__elbv2__s3/check_cfn_truststorerevocation_missing_s3_object_rejected.py", "service": "cloudformation__elbv2__s3"} {"check_id": "cloudformation__emr-containers.deploy-emrcontainers-jobtemplate-invalid-releaselabel-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__emr-containers/deploy-emrcontainers-jobtemplate-invalid-releaselabel-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__emr-containers/check_deploy_emrcontainers_jobtemplate_invalid_releaselabel_rejected_and_rolled_back.py", "service": "cloudformation__emr-containers"} {"check_id": "cloudformation__emr-containers.deploy-emrcontainers-jobtemplate-round-trip-and-delete", "deployments": [], "key": "cloudformation__emr-containers/deploy-emrcontainers-jobtemplate-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "emr-containers:DescribeJobTemplate"], "path": "behavioral/cloudformation__emr-containers/check_deploy_emrcontainers_jobtemplate_round_trip_and_delete.py", "service": "cloudformation__emr-containers"} {"check_id": "cloudformation__emr-containers.deploy-emrcontainers-securityconfiguration-round-trip-and-delete", "deployments": [], "key": "cloudformation__emr-containers/deploy-emrcontainers-securityconfiguration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "emr-containers:DeleteSecurityConfiguration", "emr-containers:DescribeSecurityConfiguration"], "path": "behavioral/cloudformation__emr-containers/check_deploy_emrcontainers_securityconfiguration_round_trip_and_delete.py", "service": "cloudformation__emr-containers"} {"check_id": "cloudformation__emr-serverless.deploy-cfn-emrserverless-application-invalid-release-label-rejected", "deployments": [], "key": "cloudformation__emr-serverless/deploy-cfn-emrserverless-application-invalid-release-label-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "emr-serverless:GetApplication"], "path": "behavioral/cloudformation__emr-serverless/check_deploy_cfn_emrserverless_application_invalid_release_label_rejected.py", "service": "cloudformation__emr-serverless"} {"check_id": "cloudformation__emr-serverless.deploy-cfn-emrserverless-application-reaches-created-and-terminated", "deployments": [], "key": "cloudformation__emr-serverless/deploy-cfn-emrserverless-application-reaches-created-and-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "emr-serverless:GetApplication"], "path": "behavioral/cloudformation__emr-serverless/check_deploy_cfn_emrserverless_application_reaches_created_and_terminated.py", "service": "cloudformation__emr-serverless"} {"check_id": "cloudformation__emr.deploy-emr-security-configuration-malformed-json-rejected", "deployments": [], "key": "cloudformation__emr/deploy-emr-security-configuration-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "emr:DescribeSecurityConfiguration"], "path": "behavioral/cloudformation__emr/check_deploy_emr_security_configuration_malformed_json_rejected.py", "service": "cloudformation__emr"} {"check_id": "cloudformation__emr.deploy-emr-security-configuration-resource-lifecycle", "deployments": [], "key": "cloudformation__emr/deploy-emr-security-configuration-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "emr:DescribeSecurityConfiguration"], "path": "behavioral/cloudformation__emr/check_deploy_emr_security_configuration_resource_lifecycle.py", "service": "cloudformation__emr"} {"check_id": "cloudformation__emr.deploy-emr-studio-iam-resource-lifecycle", "deployments": [], "key": "cloudformation__emr/deploy-emr-studio-iam-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "emr:DescribeStudio", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__emr/check_deploy_emr_studio_iam_resource_lifecycle.py", "service": "cloudformation__emr"} {"check_id": "cloudformation__entityresolution.deploy-entityresolution-id-mapping-workflow-lifecycle", "deployments": [], "key": "cloudformation__entityresolution/deploy-entityresolution-id-mapping-workflow-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "entityresolution:GetIdMappingWorkflow", "entityresolution:GetIdNamespace"], "path": "behavioral/cloudformation__entityresolution/check_deploy_entityresolution_id_mapping_workflow_lifecycle.py", "service": "cloudformation__entityresolution"} {"check_id": "cloudformation__entityresolution.deploy-entityresolution-namespace-workflow-policy-lifecycle", "deployments": [], "key": "cloudformation__entityresolution/deploy-entityresolution-namespace-workflow-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "entityresolution:GetIdNamespace", "entityresolution:GetMatchingWorkflow", "entityresolution:GetPolicy"], "path": "behavioral/cloudformation__entityresolution/check_deploy_entityresolution_namespace_workflow_policy_lifecycle.py", "service": "cloudformation__entityresolution"} {"check_id": "cloudformation__entityresolution.deploy-entityresolution-schema-mapping-lifecycle", "deployments": [], "key": "cloudformation__entityresolution/deploy-entityresolution-schema-mapping-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "entityresolution:GetSchemaMapping"], "path": "behavioral/cloudformation__entityresolution/check_deploy_entityresolution_schema_mapping_lifecycle.py", "service": "cloudformation__entityresolution"} {"check_id": "cloudformation__entityresolution.deploy-entityresolution-schema-mapping-reserved-field-name-rejected", "deployments": [], "key": "cloudformation__entityresolution/deploy-entityresolution-schema-mapping-reserved-field-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "entityresolution:GetSchemaMapping"], "path": "behavioral/cloudformation__entityresolution/check_deploy_entityresolution_schema_mapping_reserved_field_name_rejected.py", "service": "cloudformation__entityresolution"} {"check_id": "cloudformation__eventbridgev2__iam__sqs.deploy-eventsv2-eventsource-conflicting-configuration-rejected", "deployments": [], "key": "cloudformation__eventbridgev2/deploy-eventsv2-eventsource-conflicting-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "eventbridgev2:DescribeEventSource"], "path": "behavioral/cloudformation__eventbridgev2/check_deploy_eventsv2_eventsource_conflicting_configuration_rejected.py", "service": "cloudformation__eventbridgev2"} {"check_id": "cloudformation__eventbridgev2__iam__sqs.deploy-eventsv2-bus-source-policy-subscriber-round-trip-and-delete", "deployments": [], "key": "cloudformation__eventbridgev2__iam__sqs/deploy-eventsv2-bus-source-policy-subscriber-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeEventSource", "eventbridgev2:DescribeSubscriber", "eventbridgev2:GetResourcePolicy", "iam:GetRole", "iam:GetRolePolicy", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__eventbridgev2__iam__sqs/check_deploy_eventsv2_bus_source_policy_subscriber_round_trip_and_delete.py", "service": "cloudformation__eventbridgev2__iam__sqs"} {"check_id": "cloudformation__events.cfn-events-rule-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__events/cfn-events-rule-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:DeleteRule", "events:DescribeRule", "events:TestEventPattern"], "path": "behavioral/cloudformation__events/check_cfn_events_rule_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__events"} {"check_id": "cloudformation__events.deploy-cfn-events-api-destination-nonexistent-connection-rejected", "deployments": [], "key": "cloudformation__events/deploy-cfn-events-api-destination-nonexistent-connection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeApiDestination"], "path": "behavioral/cloudformation__events/check_deploy_cfn_events_api_destination_nonexistent_connection_rejected.py", "service": "cloudformation__events"} {"check_id": "cloudformation__events.deploy-cfn-events-connection-and-api-destination-lifecycle", "deployments": [], "key": "cloudformation__events/deploy-cfn-events-connection-and-api-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeApiDestination", "events:DescribeConnection"], "path": "behavioral/cloudformation__events/check_deploy_cfn_events_connection_and_api_destination_lifecycle.py", "service": "cloudformation__events"} {"check_id": "cloudformation__events.deploy-cfn-events-global-endpoint-lifecycle", "deployments": [], "key": "cloudformation__events/deploy-cfn-events-global-endpoint-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeEndpoint", "events:DescribeEventBus", "route53:GetHealthCheck"], "path": "behavioral/cloudformation__events/check_deploy_cfn_events_global_endpoint_lifecycle.py", "service": "cloudformation__events"} {"check_id": "cloudformation__events.deploy-cfn-events-rule-invalid-schedule-expression-rejected", "deployments": [], "key": "cloudformation__events/deploy-cfn-events-rule-invalid-schedule-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "events:DescribeRule"], "path": "behavioral/cloudformation__events/check_deploy_cfn_events_rule_invalid_schedule_expression_rejected.py", "service": "cloudformation__events"} {"check_id": "cloudformation__events.deploy-eventbus-lifecycle-then-not-found", "deployments": [], "key": "cloudformation__events/deploy-eventbus-lifecycle-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeEventBus"], "path": "behavioral/cloudformation__events/check_deploy_eventbus_lifecycle_then_not_found.py", "service": "cloudformation__events"} {"check_id": "cloudformation__events.deploy-eventbus-named-default-rejected", "deployments": [], "key": "cloudformation__events/deploy-eventbus-named-default-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "events:DescribeEventBus"], "path": "behavioral/cloudformation__events/check_deploy_eventbus_named_default_rejected.py", "service": "cloudformation__events"} {"check_id": "cloudformation__events__lambda.sam-eventbridge-rule-event-matching-invokes-nonmatching-does-not", "deployments": ["behavioral/cloudformation__events__lambda/deployments/sam_eventbridge_rule/template.yaml"], "key": "cloudformation__events__lambda/sam-eventbridge-rule-event-matching-invokes-nonmatching-does-not", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/cloudformation__events__lambda/check_sam_eventbridge_rule_event_matching_invokes_nonmatching_does_not.py", "service": "cloudformation__events__lambda"} {"check_id": "cloudformation__events__lambda.sam-schedule-events-create-rules-in-declared-state", "deployments": ["behavioral/cloudformation__events__lambda/deployments/sam_schedule_events/template.yaml"], "key": "cloudformation__events__lambda/sam-schedule-events-create-rules-in-declared-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "events:DescribeRule", "events:ListTargetsByRule", "lambda:GetFunctionConfiguration", "lambda:GetPolicy"], "path": "behavioral/cloudformation__events__lambda/check_sam_schedule_events_create_rules_in_declared_state.py", "service": "cloudformation__events__lambda"} {"check_id": "cloudformation__events__lambda__sqs.cfn-lambda-permission-retained-replacement-keeps-both-grants-then-not-found", "deployments": [], "key": "cloudformation__events__lambda__sqs/cfn-lambda-permission-retained-replacement-keeps-both-grants-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:PutEvents", "lambda:GetPolicy", "lambda:RemovePermission", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__events__lambda__sqs/check_cfn_lambda_permission_retained_replacement_keeps_both_grants_then_not_found.py", "service": "cloudformation__events__lambda__sqs"} {"check_id": "cloudformation__events__schemas.deploy-eventschemas-discoverer-invalid-source-arn-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__events__schemas/deploy-eventschemas-discoverer-invalid-source-arn-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeEventBus"], "path": "behavioral/cloudformation__events__schemas/check_deploy_eventschemas_discoverer_invalid_source_arn_rejected_and_rolled_back.py", "service": "cloudformation__events__schemas"} {"check_id": "cloudformation__events__schemas.deploy-eventschemas-discoverer-round-trip-and-delete", "deployments": [], "key": "cloudformation__events__schemas/deploy-eventschemas-discoverer-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:DescribeEventBus", "schemas:DescribeDiscoverer"], "path": "behavioral/cloudformation__events__schemas/check_deploy_eventschemas_discoverer_round_trip_and_delete.py", "service": "cloudformation__events__schemas"} {"check_id": "cloudformation__events__sqs.cfn-events-event-bus-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__events__sqs/cfn-events-event-bus-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:DeleteEventBus", "events:DescribeEventBus", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__events__sqs/check_cfn_events_event_bus_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.cfn-events-rule-target-nested-required-members-rejected", "deployments": [], "key": "cloudformation__events__sqs/cfn-events-rule-target-nested-required-members-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "events:DescribeRule", "events:ListTargetsByRule", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__events__sqs/check_cfn_events_rule_target_nested_required_members_rejected.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.cfn-resource-status-change-event-carries-the-runtime-physical-id", "deployments": [], "key": "cloudformation__events__sqs/cfn-resource-status-change-event-carries-the-runtime-physical-id", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__events__sqs/check_cfn_resource_status_change_event_carries_the_runtime_physical_id.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.deploy-cdk-eventbridge-rule-sqs-target-pattern-match-delivers-mismatch-withholds", "deployments": ["behavioral/cloudformation__events__sqs/deployments/cdk_rule_sqs_target/app.py", "behavioral/cloudformation__events__sqs/deployments/cdk_rule_sqs_target/cdk.json"], "key": "cloudformation__events__sqs/deploy-cdk-eventbridge-rule-sqs-target-pattern-match-delivers-mismatch-withholds", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__events__sqs/check_deploy_cdk_eventbridge_rule_sqs_target_pattern_match_delivers_mismatch_withholds.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.deploy-cfn-events-rule-with-target-resource-lifecycle", "deployments": [], "key": "cloudformation__events__sqs/deploy-cfn-events-rule-with-target-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeRule", "events:ListTargetsByRule", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__events__sqs/check_deploy_cfn_events_rule_with_target_resource_lifecycle.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.xsvc-cloudformation-1-delete", "deployments": [], "key": "cloudformation__events__sqs/xsvc-cloudformation-1-delete", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__events__sqs/check_xsvc_cloudformation_1_delete.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.xsvc-cloudformation-1-pattern-precision", "deployments": [], "key": "cloudformation__events__sqs/xsvc-cloudformation-1-pattern-precision", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__events__sqs/check_xsvc_cloudformation_1_pattern_precision.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.xsvc-cloudformation-2-drift-detection-status", "deployments": [], "key": "cloudformation__events__sqs/xsvc-cloudformation-2-drift-detection-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__events__sqs/check_xsvc_cloudformation_2_drift_detection_status.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.xsvc-cloudformation-2-stackset-failed-instance-operation-status", "deployments": [], "key": "cloudformation__events__sqs/xsvc-cloudformation-2-stackset-failed-instance-operation-status", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__events__sqs/check_xsvc_cloudformation_2_stackset_failed_instance_operation_status.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__events__sqs.xsvc-cloudformation-2-stackset-operation-status", "deployments": [], "key": "cloudformation__events__sqs/xsvc-cloudformation-2-stackset-operation-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStacks", "cloudformation:ListStackInstances", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__events__sqs/check_xsvc_cloudformation_2_stackset_operation_status.py", "service": "cloudformation__events__sqs"} {"check_id": "cloudformation__firehose__s3.cfn-firehose-delivery-stream-in-place-prefix-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__firehose__s3/cfn-firehose-delivery-stream-in-place-prefix-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/cloudformation__firehose__s3/check_cfn_firehose_delivery_stream_in_place_prefix_update_retained_replacement_then_not_found.py", "service": "cloudformation__firehose__s3"} {"check_id": "cloudformation__fis.deploy-fis-experiment-template-invalid-action-id-rejected-rollback", "deployments": [], "key": "cloudformation__fis/deploy-fis-experiment-template-invalid-action-id-rejected-rollback", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "fis:GetExperimentTemplate"], "path": "behavioral/cloudformation__fis/check_deploy_fis_experiment_template_invalid_action_id_rejected_rollback.py", "service": "cloudformation__fis"} {"check_id": "cloudformation__fis.deploy-fis-experiment-template-round-trip-and-delete", "deployments": [], "key": "cloudformation__fis/deploy-fis-experiment-template-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "fis:GetExperimentTemplate", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudformation__fis/check_deploy_fis_experiment_template_round_trip_and_delete.py", "service": "cloudformation__fis"} {"check_id": "cloudformation__fis.deploy-fis-target-account-configuration-round-trip-and-delete", "deployments": [], "key": "cloudformation__fis/deploy-fis-target-account-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "fis:GetExperimentTemplate", "fis:GetTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudformation__fis/check_deploy_fis_target_account_configuration_round_trip_and_delete.py", "service": "cloudformation__fis"} {"check_id": "cloudformation__fsx.deploy-fsx-lustre-data-repository-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__fsx/deploy-fsx-lustre-data-repository-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "fsx:DescribeDataRepositoryAssociations", "fsx:DescribeFileSystems"], "path": "behavioral/cloudformation__fsx/check_deploy_fsx_lustre_data_repository_association_round_trip_and_delete.py", "service": "cloudformation__fsx"} {"check_id": "cloudformation__fsx.deploy-fsx-lustre-filesystem-invalid-perunitstoragethroughput-rejected", "deployments": [], "key": "cloudformation__fsx/deploy-fsx-lustre-filesystem-invalid-perunitstoragethroughput-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeAvailabilityZones"], "path": "behavioral/cloudformation__fsx/check_deploy_fsx_lustre_filesystem_invalid_perunitstoragethroughput_rejected.py", "service": "cloudformation__fsx"} {"check_id": "cloudformation__gamelift.deploy-gamelift-alias-simple-routing-missing-fleet-id-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-alias-simple-routing-missing-fleet-id-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "gamelift:DescribeAlias"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_alias_simple_routing_missing_fleet_id_rejected_and_rolled_back.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift.deploy-gamelift-alias-terminal-routing-round-trip-and-delete", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-alias-terminal-routing-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:DescribeAlias"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_alias_terminal_routing_round_trip_and_delete.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift__iam.deploy-gamelift-container-fleet-nonexistent-role-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-container-fleet-nonexistent-role-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_container_fleet_nonexistent_role_rejected_and_rolled_back.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift__iam.deploy-gamelift-container-fleet-round-trip-and-delete", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-container-fleet-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:DescribeContainerFleet", "gamelift:ListTagsForResource"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_container_fleet_round_trip_and_delete.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift.deploy-gamelift-custom-location-round-trip-and-delete", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-custom-location-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:ListTagsForResource"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_custom_location_round_trip_and_delete.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift.deploy-gamelift-fleet-anywhere-round-trip-and-delete", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-fleet-anywhere-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:DescribeFleetAttributes", "gamelift:DescribeFleetLocationAttributes", "gamelift:ListLocations"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_fleet_anywhere_round_trip_and_delete.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift.deploy-gamelift-game-session-queue-duplicate-name-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-game-session-queue-duplicate-name-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:DescribeGameSessionQueues"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_game_session_queue_duplicate_name_rejected_and_rolled_back.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift.deploy-gamelift-game-session-queue-round-trip-and-delete", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-game-session-queue-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:DescribeGameSessionQueues"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_game_session_queue_round_trip_and_delete.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift.deploy-gamelift-matchmaking-ruleset-and-configuration-round-trip-and-delete", "deployments": [], "key": "cloudformation__gamelift/deploy-gamelift-matchmaking-ruleset-and-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "gamelift:DescribeMatchmakingConfigurations", "gamelift:DescribeMatchmakingRuleSets"], "path": "behavioral/cloudformation__gamelift/check_deploy_gamelift_matchmaking_ruleset_and_configuration_round_trip_and_delete.py", "service": "cloudformation__gamelift"} {"check_id": "cloudformation__gamelift__iam__s3.deploy-gamelift-build-round-trip-and-delete", "deployments": [], "key": "cloudformation__gamelift__iam__s3/deploy-gamelift-build-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:DescribeBuild", "gamelift:ListBuilds", "iam:GetRole", "iam:GetRolePolicy", "iam:ListRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__gamelift__iam__s3/check_deploy_gamelift_build_round_trip_and_delete.py", "service": "cloudformation__gamelift__iam__s3"} {"check_id": "cloudformation__gamelift__iam__s3.deploy-gamelift-script-missing-nodejs-version-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__gamelift__iam__s3/deploy-gamelift-script-missing-nodejs-version-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:DescribeScript", "gamelift:ListScripts", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__gamelift__iam__s3/check_deploy_gamelift_script_missing_nodejs_version_rejected_and_rolled_back.py", "service": "cloudformation__gamelift__iam__s3"} {"check_id": "cloudformation__gamelift__iam__s3.deploy-gamelift-script-round-trip-and-delete", "deployments": [], "key": "cloudformation__gamelift__iam__s3/deploy-gamelift-script-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gamelift:DescribeScript", "gamelift:ListScripts", "iam:GetRole", "iam:GetRolePolicy", "iam:ListRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__gamelift__iam__s3/check_deploy_gamelift_script_round_trip_and_delete.py", "service": "cloudformation__gamelift__iam__s3"} {"check_id": "cloudformation__gameliftstreams.deploy-gameliftstreams-stream-group-invalid-stream-class-rejected", "deployments": [], "key": "cloudformation__gameliftstreams/deploy-gameliftstreams-stream-group-invalid-stream-class-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gameliftstreams:GetStreamGroup"], "path": "behavioral/cloudformation__gameliftstreams/check_deploy_gameliftstreams_stream_group_invalid_stream_class_rejected.py", "service": "cloudformation__gameliftstreams"} {"check_id": "cloudformation__gameliftstreams.deploy-gameliftstreams-stream-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__gameliftstreams/deploy-gameliftstreams-stream-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "gameliftstreams:GetStreamGroup", "gameliftstreams:ListTagsForResource"], "path": "behavioral/cloudformation__gameliftstreams/check_deploy_gameliftstreams_stream_group_round_trip_and_delete.py", "service": "cloudformation__gameliftstreams"} {"check_id": "cloudformation__globalaccelerator.cfn-globalaccelerator-listener-invalid-port-range-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__globalaccelerator/cfn-globalaccelerator-listener-invalid-port-range-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__globalaccelerator/check_cfn_globalaccelerator_listener_invalid_port_range_rejected_and_rolled_back.py", "service": "cloudformation__globalaccelerator"} {"check_id": "cloudformation__globalaccelerator.deploy-globalaccelerator-accelerator-listener-endpointgroup-lifecycle", "deployments": [], "key": "cloudformation__globalaccelerator/deploy-globalaccelerator-accelerator-listener-endpointgroup-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "globalaccelerator:DescribeAccelerator", "globalaccelerator:DescribeEndpointGroup", "globalaccelerator:DescribeListener", "globalaccelerator:ListTagsForResource"], "path": "behavioral/cloudformation__globalaccelerator/check_deploy_globalaccelerator_accelerator_listener_endpointgroup_lifecycle.py", "service": "cloudformation__globalaccelerator"} {"check_id": "cloudformation__globalaccelerator.deploy-globalaccelerator-cross-account-attachment-invalid-name-rejected", "deployments": [], "key": "cloudformation__globalaccelerator/deploy-globalaccelerator-cross-account-attachment-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__globalaccelerator/check_deploy_globalaccelerator_cross_account_attachment_invalid_name_rejected.py", "service": "cloudformation__globalaccelerator"} {"check_id": "cloudformation__globalaccelerator.deploy-globalaccelerator-cross-account-attachment-round-trip-and-delete", "deployments": [], "key": "cloudformation__globalaccelerator/deploy-globalaccelerator-cross-account-attachment-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "globalaccelerator:DescribeCrossAccountAttachment", "globalaccelerator:ListTagsForResource"], "path": "behavioral/cloudformation__globalaccelerator/check_deploy_globalaccelerator_cross_account_attachment_round_trip_and_delete.py", "service": "cloudformation__globalaccelerator"} {"check_id": "cloudformation__glue.cfn-glue-database-in-place-update-retained-replacement-keeps-tables-then-not-found", "deployments": [], "key": "cloudformation__glue/cfn-glue-database-in-place-update-retained-replacement-keeps-tables-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:CreateTable", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetTables"], "path": "behavioral/cloudformation__glue/check_cfn_glue_database_in_place_update_retained_replacement_keeps_tables_then_not_found.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.cfn-glue-table-in-place-column-update-retained-replacement-keeps-partitions-then-not-found", "deployments": [], "key": "cloudformation__glue/cfn-glue-table-in-place-column-update-retained-replacement-keeps-partitions-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:CreateDatabase", "glue:CreatePartition", "glue:DeleteDatabase", "glue:GetPartitions", "glue:GetTable"], "path": "behavioral/cloudformation__glue/check_cfn_glue_table_in_place_column_update_retained_replacement_keeps_partitions_then_not_found.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-catalog-encryption-settings-singleton-round-trip-and-delete", "deployments": [], "key": "cloudformation__glue/deploy-glue-catalog-encryption-settings-singleton-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetDataCatalogEncryptionSettings"], "path": "behavioral/cloudformation__glue/check_deploy_glue_catalog_encryption_settings_singleton_round_trip_and_delete.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-classifier-invalid-grok-pattern-rejected", "deployments": [], "key": "cloudformation__glue/deploy-glue-classifier-invalid-grok-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetClassifier"], "path": "behavioral/cloudformation__glue/check_deploy_glue_classifier_invalid_grok_pattern_rejected.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-classifier-lifecycle", "deployments": [], "key": "cloudformation__glue/deploy-glue-classifier-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetClassifier"], "path": "behavioral/cloudformation__glue/check_deploy_glue_classifier_lifecycle.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-connection-invalid-connection-type-rejected", "deployments": [], "key": "cloudformation__glue/deploy-glue-connection-invalid-connection-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetConnection"], "path": "behavioral/cloudformation__glue/check_deploy_glue_connection_invalid_connection_type_rejected.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-connection-lifecycle", "deployments": [], "key": "cloudformation__glue/deploy-glue-connection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetConnection"], "path": "behavioral/cloudformation__glue/check_deploy_glue_connection_lifecycle.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-connection-type-lifecycle", "deployments": [], "key": "cloudformation__glue/deploy-glue-connection-type-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:DescribeConnectionType"], "path": "behavioral/cloudformation__glue/check_deploy_glue_connection_type_lifecycle.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-custom-entity-type-lifecycle", "deployments": [], "key": "cloudformation__glue/deploy-glue-custom-entity-type-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetCustomEntityType"], "path": "behavioral/cloudformation__glue/check_deploy_glue_custom_entity_type_lifecycle.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-data-quality-ruleset-and-udf-lifecycle", "deployments": [], "key": "cloudformation__glue/deploy-glue-data-quality-ruleset-and-udf-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetDataQualityRuleset", "glue:GetDatabase", "glue:GetTable"], "path": "behavioral/cloudformation__glue/check_deploy_glue_data_quality_ruleset_and_udf_lifecycle.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-database-table-partition-lifecycle", "deployments": [], "key": "cloudformation__glue/deploy-glue-database-table-partition-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetDatabase", "glue:GetTable"], "path": "behavioral/cloudformation__glue/check_deploy_glue_database_table_partition_lifecycle.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-integration-resource-property-round-trip-and-delete", "deployments": [], "key": "cloudformation__glue/deploy-glue-integration-resource-property-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetDatabase", "glue:GetIntegrationResourceProperty", "glue:ListIntegrationResourceProperties"], "path": "behavioral/cloudformation__glue/check_deploy_glue_integration_resource_property_round_trip_and_delete.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue__iam.deploy-glue-ml-transform-invalid-primary-key-column-rejected", "deployments": [], "key": "cloudformation__glue/deploy-glue-ml-transform-invalid-primary-key-column-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetMLTransforms"], "path": "behavioral/cloudformation__glue/check_deploy_glue_ml_transform_invalid_primary_key_column_rejected.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-registry-schema-schemaversion-and-metadata-round-trip-and-delete", "deployments": [], "key": "cloudformation__glue/deploy-glue-registry-schema-schemaversion-and-metadata-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetRegistry", "glue:GetSchema", "glue:GetSchemaVersion", "glue:ListSchemaVersions", "glue:QuerySchemaVersionMetadata"], "path": "behavioral/cloudformation__glue/check_deploy_glue_registry_schema_schemaversion_and_metadata_round_trip_and_delete.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue.deploy-glue-schema-duplicate-name-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__glue/deploy-glue-schema-duplicate-name-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "glue:GetRegistry", "glue:GetSchema", "glue:GetSchemaVersion"], "path": "behavioral/cloudformation__glue/check_deploy_glue_schema_duplicate_name_rejected_and_rolled_back.py", "service": "cloudformation__glue"} {"check_id": "cloudformation__glue__iam.deploy-glue-ml-transform-lifecycle", "deployments": [], "key": "cloudformation__glue__iam/deploy-glue-ml-transform-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetMLTransform", "glue:GetTags", "iam:GetRole"], "path": "behavioral/cloudformation__glue__iam/check_deploy_glue_ml_transform_lifecycle.py", "service": "cloudformation__glue__iam"} {"check_id": "cloudformation__glue__iam__kinesisanalyticsv2__logs.deploy-kda-streaming-mode-on-zeppelin-runtime-rejected", "deployments": [], "key": "cloudformation__glue__iam__kinesisanalyticsv2__logs/deploy-kda-streaming-mode-on-zeppelin-runtime-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesisanalyticsv2:DescribeApplication"], "path": "behavioral/cloudformation__glue__iam__kinesisanalyticsv2__logs/check_deploy_kda_streaming_mode_on_zeppelin_runtime_rejected.py", "service": "cloudformation__glue__iam__kinesisanalyticsv2__logs"} {"check_id": "cloudformation__glue__iam__kinesisanalyticsv2__logs.deploy-kda-studio-application-and-logging-option-round-trip", "deployments": [], "key": "cloudformation__glue__iam__kinesisanalyticsv2__logs/deploy-kda-studio-application-and-logging-option-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetDatabase", "iam:GetRole", "iam:GetRolePolicy", "kinesisanalyticsv2:DescribeApplication", "kinesisanalyticsv2:ListTagsForResource"], "path": "behavioral/cloudformation__glue__iam__kinesisanalyticsv2__logs/check_deploy_kda_studio_application_and_logging_option_round_trip.py", "service": "cloudformation__glue__iam__kinesisanalyticsv2__logs"} {"check_id": "cloudformation__glue__iam__lakeformation.deploy-cfn-lakeformation-permissions-grant-round-trip-and-revoke", "deployments": [], "key": "cloudformation__glue__iam__lakeformation/deploy-cfn-lakeformation-permissions-grant-round-trip-and-revoke", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetDatabase", "iam:GetRole", "lakeformation:ListPermissions"], "path": "behavioral/cloudformation__glue__iam__lakeformation/check_deploy_cfn_lakeformation_permissions_grant_round_trip_and_revoke.py", "service": "cloudformation__glue__iam__lakeformation"} {"check_id": "cloudformation__glue__iam__lakeformation.deploy-cfn-lakeformation-principalpermissions-invalid-permission-rejected", "deployments": [], "key": "cloudformation__glue__iam__lakeformation/deploy-cfn-lakeformation-principalpermissions-invalid-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "glue:GetDatabase", "iam:GetRole", "lakeformation:ListPermissions"], "path": "behavioral/cloudformation__glue__iam__lakeformation/check_deploy_cfn_lakeformation_principalpermissions_invalid_permission_rejected.py", "service": "cloudformation__glue__iam__lakeformation"} {"check_id": "cloudformation__glue__iam__s3.deploy-glue-table-optimizer-invalid-type-rejected", "deployments": [], "key": "cloudformation__glue__iam__s3/deploy-glue-table-optimizer-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetTableOptimizer", "iam:GetRole", "s3:DeleteObjects"], "path": "behavioral/cloudformation__glue__iam__s3/check_deploy_glue_table_optimizer_invalid_type_rejected.py", "service": "cloudformation__glue__iam__s3"} {"check_id": "cloudformation__glue__iam__s3.deploy-glue-table-optimizer-lifecycle", "deployments": [], "key": "cloudformation__glue__iam__s3/deploy-glue-table-optimizer-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetTable", "glue:GetTableOptimizer", "iam:GetRole", "s3:DeleteObjects"], "path": "behavioral/cloudformation__glue__iam__s3/check_deploy_glue_table_optimizer_lifecycle.py", "service": "cloudformation__glue__iam__s3"} {"check_id": "cloudformation__glue__lakeformation.deploy-cfn-lakeformation-datacellsfilter-missing-row-filter-rolled-back", "deployments": [], "key": "cloudformation__glue__lakeformation/deploy-cfn-lakeformation-datacellsfilter-missing-row-filter-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetDatabase"], "path": "behavioral/cloudformation__glue__lakeformation/check_deploy_cfn_lakeformation_datacellsfilter_missing_row_filter_rolled_back.py", "service": "cloudformation__glue__lakeformation"} {"check_id": "cloudformation__glue__lakeformation.deploy-cfn-lakeformation-datacellsfilter-round-trip-and-delete", "deployments": [], "key": "cloudformation__glue__lakeformation/deploy-cfn-lakeformation-datacellsfilter-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetDatabase", "glue:GetTable"], "path": "behavioral/cloudformation__glue__lakeformation/check_deploy_cfn_lakeformation_datacellsfilter_round_trip_and_delete.py", "service": "cloudformation__glue__lakeformation"} {"check_id": "cloudformation__glue__logs__s3.cfn-glue-crawler-in-place-update-crawls-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__glue__logs__s3/cfn-glue-crawler-in-place-update-crawls-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:DeleteCrawler", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "glue:StopCrawler", "logs:DeleteLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__glue__logs__s3/check_cfn_glue_crawler_in_place_update_crawls_retained_replacement_then_not_found.py", "service": "cloudformation__glue__logs__s3"} {"check_id": "cloudformation__glue__logs__s3.cfn-glue-job-in-place-update-runs-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__glue__logs__s3/cfn-glue-job-in-place-update-runs-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:BatchStopJobRun", "glue:DeleteJob", "glue:GetJob", "glue:GetJobRun", "glue:StartJobRun", "logs:DeleteLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__glue__logs__s3/check_cfn_glue_job_in_place_update_runs_retained_replacement_then_not_found.py", "service": "cloudformation__glue__logs__s3"} {"check_id": "cloudformation__greengrassv2__iot.deploy-greengrassv2-component-and-deployment-round-trip-and-delete", "deployments": [], "key": "cloudformation__greengrassv2__iot/deploy-greengrassv2-component-and-deployment-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "greengrassv2:DescribeComponent", "greengrassv2:GetDeployment", "greengrassv2:ListComponentVersions", "greengrassv2:ListDeployments", "iot:CreateThingGroup", "iot:DeleteThingGroup"], "path": "behavioral/cloudformation__greengrassv2__iot/check_deploy_greengrassv2_component_and_deployment_round_trip_and_delete.py", "service": "cloudformation__greengrassv2__iot"} {"check_id": "cloudformation__greengrassv2__iot.deploy-greengrassv2-deployment-nonexistent-target-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__greengrassv2__iot/deploy-greengrassv2-deployment-nonexistent-target-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "greengrassv2:GetDeployment", "greengrassv2:ListDeployments", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/cloudformation__greengrassv2__iot/check_deploy_greengrassv2_deployment_nonexistent_target_rejected_and_rolled_back.py", "service": "cloudformation__greengrassv2__iot"} {"check_id": "cloudformation__groundstation.deploy-groundstation-config-invalid-name-pattern-rejected", "deployments": [], "key": "cloudformation__groundstation/deploy-groundstation-config-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "groundstation:GetConfig"], "path": "behavioral/cloudformation__groundstation/check_deploy_groundstation_config_invalid_name_pattern_rejected.py", "service": "cloudformation__groundstation"} {"check_id": "cloudformation__groundstation.deploy-groundstation-config-round-trip-and-delete", "deployments": [], "key": "cloudformation__groundstation/deploy-groundstation-config-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "groundstation:GetConfig", "groundstation:ListTagsForResource"], "path": "behavioral/cloudformation__groundstation/check_deploy_groundstation_config_round_trip_and_delete.py", "service": "cloudformation__groundstation"} {"check_id": "cloudformation__groundstation.deploy-groundstation-dataflowendpointgroup-and-missionprofile-round-trip-and-delete", "deployments": [], "key": "cloudformation__groundstation/deploy-groundstation-dataflowendpointgroup-and-missionprofile-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "groundstation:GetConfig", "groundstation:GetDataflowEndpointGroup", "groundstation:GetMissionProfile", "groundstation:ListTagsForResource"], "path": "behavioral/cloudformation__groundstation/check_deploy_groundstation_dataflowendpointgroup_and_missionprofile_round_trip_and_delete.py", "service": "cloudformation__groundstation"} {"check_id": "cloudformation__groundstation.deploy-groundstation-dataflowendpointgroupv2-round-trip-and-delete", "deployments": [], "key": "cloudformation__groundstation/deploy-groundstation-dataflowendpointgroupv2-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "groundstation:GetDataflowEndpointGroup", "groundstation:ListTagsForResource"], "path": "behavioral/cloudformation__groundstation/check_deploy_groundstation_dataflowendpointgroupv2_round_trip_and_delete.py", "service": "cloudformation__groundstation"} {"check_id": "cloudformation__healthlake.deploy-healthlake-data-transformation-profile-invalid-source-format-rejected", "deployments": [], "key": "cloudformation__healthlake/deploy-healthlake-data-transformation-profile-invalid-source-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "healthlake:GetDataTransformationProfile"], "path": "behavioral/cloudformation__healthlake/check_deploy_healthlake_data_transformation_profile_invalid_source_format_rejected.py", "service": "cloudformation__healthlake"} {"check_id": "cloudformation__healthlake.deploy-healthlake-data-transformation-profile-round-trip-and-delete", "deployments": [], "key": "cloudformation__healthlake/deploy-healthlake-data-transformation-profile-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "healthlake:GetDataTransformationProfile", "healthlake:ListTagsForResource"], "path": "behavioral/cloudformation__healthlake/check_deploy_healthlake_data_transformation_profile_round_trip_and_delete.py", "service": "cloudformation__healthlake"} {"check_id": "cloudformation__healthlake.deploy-healthlake-fhir-datastore-invalid-type-version-rejected", "deployments": [], "key": "cloudformation__healthlake/deploy-healthlake-fhir-datastore-invalid-type-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "healthlake:DescribeFHIRDatastore", "healthlake:ListFHIRDatastores"], "path": "behavioral/cloudformation__healthlake/check_deploy_healthlake_fhir_datastore_invalid_type_version_rejected.py", "service": "cloudformation__healthlake"} {"check_id": "cloudformation__healthlake.deploy-healthlake-fhir-datastore-round-trip-and-delete", "deployments": [], "key": "cloudformation__healthlake/deploy-healthlake-fhir-datastore-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "healthlake:DescribeFHIRDatastore", "healthlake:ListFHIRDatastores", "healthlake:ListTagsForResource"], "path": "behavioral/cloudformation__healthlake/check_deploy_healthlake_fhir_datastore_round_trip_and_delete.py", "service": "cloudformation__healthlake"} {"check_id": "cloudformation__iam.cdk-deploy-role-with-attached-managed-policy-read-back-then-destroyed", "deployments": ["behavioral/cloudformation__iam/deployments/cdk-iam-role-managed-policy/app.py", "behavioral/cloudformation__iam/deployments/cdk-iam-role-managed-policy/cdk.json"], "key": "cloudformation__iam/cdk-deploy-role-with-attached-managed-policy-read-back-then-destroyed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListAttachedRolePolicies", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam/check_cdk_deploy_role_with_attached_managed_policy_read_back_then_destroyed.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-instance-profile-in-place-role-swap-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__iam/cfn-iam-instance-profile-in-place-role-swap-retained-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile", "iam:ListInstanceProfilesForRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/cloudformation__iam/check_cfn_iam_instance_profile_in_place_role_swap_retained_replacement_then_not_found.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-managed-policy-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__iam/cfn-iam-managed-policy-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:CreateRole", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListAttachedRolePolicies", "iam:ListEntitiesForPolicy", "iam:ListPolicyVersions", "iam:SimulatePrincipalPolicy"], "path": "behavioral/cloudformation__iam/check_cfn_iam_managed_policy_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-managed-policy-duplicate-name-rejected-leaving-the-original", "deployments": [], "key": "cloudformation__iam/cfn-iam-managed-policy-duplicate-name-rejected-leaving-the-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy"], "path": "behavioral/cloudformation__iam/check_cfn_iam_managed_policy_duplicate_name_rejected_leaving_the_original.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-managed-policy-instance-profile-and-inline-policies-read-back-then-removed-on-delete", "deployments": [], "key": "cloudformation__iam/cfn-iam-managed-policy-instance-profile-and-inline-policies-read-back-then-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetInstanceProfile", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:GetRolePolicy"], "path": "behavioral/cloudformation__iam/check_cfn_iam_managed_policy_instance_profile_and_inline_policies_read_back_then_removed_on_delete.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-oidc-provider-properties-and-getatt-read-back-then-deleted", "deployments": [], "key": "cloudformation__iam/cfn-iam-oidc-provider-properties-and-getatt-read-back-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetOpenIDConnectProvider", "iam:ListOpenIDConnectProviders"], "path": "behavioral/cloudformation__iam/check_cfn_iam_oidc_provider_properties_and_getatt_read_back_then_deleted.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-role-properties-and-getatt-read-back-then-no-such-entity-after-delete", "deployments": [], "key": "cloudformation__iam/cfn-iam-role-properties-and-getatt-read-back-then-no-such-entity-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole"], "path": "behavioral/cloudformation__iam/check_cfn_iam_role_properties_and_getatt_read_back_then_no_such_entity_after_delete.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-saml-provider-metadata-and-getatt-read-back-then-deleted", "deployments": [], "key": "cloudformation__iam/cfn-iam-saml-provider-metadata-and-getatt-read-back-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetSAMLProvider", "iam:ListSAMLProviders"], "path": "behavioral/cloudformation__iam/check_cfn_iam_saml_provider_metadata_and_getatt_read_back_then_deleted.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-server-certificate-body-and-getatt-read-back-then-deleted", "deployments": [], "key": "cloudformation__iam/cfn-iam-server-certificate-body-and-getatt-read-back-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetServerCertificate"], "path": "behavioral/cloudformation__iam/check_cfn_iam_server_certificate_body_and_getatt_read_back_then_deleted.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-server-certificate-mismatched-private-key-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__iam/cfn-iam-server-certificate-mismatched-private-key-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetServerCertificate"], "path": "behavioral/cloudformation__iam/check_cfn_iam_server_certificate_mismatched_private_key_rejected_and_rolled_back.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-service-linked-role-autoscaling-suffix-read-back-then-deleted", "deployments": [], "key": "cloudformation__iam/cfn-iam-service-linked-role-autoscaling-suffix-read-back-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole"], "path": "behavioral/cloudformation__iam/check_cfn_iam_service_linked_role_autoscaling_suffix_read_back_then_deleted.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.cfn-iam-user-group-policies-and-virtual-mfa-device-read-back-then-removed-on-delete", "deployments": [], "key": "cloudformation__iam/cfn-iam-user-group-policies-and-virtual-mfa-device-read-back-then-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetGroup", "iam:GetGroupPolicy", "iam:GetUser", "iam:GetUserPolicy"], "path": "behavioral/cloudformation__iam/check_cfn_iam_user_group_policies_and_virtual_mfa_device_read_back_then_removed_on_delete.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.iam-role-missing-trust-policy-action-rejected", "deployments": [], "key": "cloudformation__iam/iam-role-missing-trust-policy-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:GetRole"], "path": "behavioral/cloudformation__iam/check_iam_role_missing_trust_policy_action_rejected.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam.stack-rollback-stack-role-arn-unassumable-role-rejected", "deployments": [], "key": "cloudformation__iam/stack-rollback-stack-role-arn-unassumable-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:RollbackStack", "cloudformation:UpdateStack", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/cloudformation__iam/check_stack_rollback_stack_role_arn_unassumable_role_rejected.py", "service": "cloudformation__iam"} {"check_id": "cloudformation__iam__imagebuilder.deploy-imagebuilder-image-pipeline-round-trip-and-delete", "deployments": [], "key": "cloudformation__iam__imagebuilder/deploy-imagebuilder-image-pipeline-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetInstanceProfile", "imagebuilder:GetImagePipeline", "imagebuilder:GetImageRecipe", "imagebuilder:GetInfrastructureConfiguration"], "path": "behavioral/cloudformation__iam__imagebuilder/check_deploy_imagebuilder_image_pipeline_round_trip_and_delete.py", "service": "cloudformation__iam__imagebuilder"} {"check_id": "cloudformation__iam__imagebuilder.deploy-imagebuilder-infra-config-unknown-instance-profile-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__iam__imagebuilder/deploy-imagebuilder-infra-config-unknown-instance-profile-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetInstanceProfile", "imagebuilder:GetInfrastructureConfiguration"], "path": "behavioral/cloudformation__iam__imagebuilder/check_deploy_imagebuilder_infra_config_unknown_instance_profile_rejected_and_rolled_back.py", "service": "cloudformation__iam__imagebuilder"} {"check_id": "cloudformation__iam__imagebuilder.deploy-imagebuilder-infrastructure-configuration-round-trip-and-delete", "deployments": [], "key": "cloudformation__iam__imagebuilder/deploy-imagebuilder-infrastructure-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetInstanceProfile", "iam:GetRole", "imagebuilder:GetInfrastructureConfiguration"], "path": "behavioral/cloudformation__iam__imagebuilder/check_deploy_imagebuilder_infrastructure_configuration_round_trip_and_delete.py", "service": "cloudformation__iam__imagebuilder"} {"check_id": "cloudformation__iam__imagebuilder.deploy-imagebuilder-lifecycle-policy-round-trip-and-delete", "deployments": [], "key": "cloudformation__iam__imagebuilder/deploy-imagebuilder-lifecycle-policy-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "imagebuilder:GetLifecyclePolicy"], "path": "behavioral/cloudformation__iam__imagebuilder/check_deploy_imagebuilder_lifecycle_policy_round_trip_and_delete.py", "service": "cloudformation__iam__imagebuilder"} {"check_id": "cloudformation__iam__iot__s3.cfn-iot-ota-update-create-and-delete-with-stack", "deployments": [], "key": "cloudformation__iam__iot__s3/cfn-iot-ota-update-create-and-delete-with-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateStream", "iot:DeleteStream", "iot:DescribeJob", "iot:DescribeThing", "iot:GetOTAUpdate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__iot__s3/check_cfn_iot_ota_update_create_and_delete_with_stack.py", "service": "cloudformation__iam__iot__s3"} {"check_id": "cloudformation__iam__iot__s3.cfn-iot-stream-create-and-delete-with-stack", "deployments": [], "key": "cloudformation__iam__iot__s3/cfn-iot-stream-create-and-delete-with-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateStream", "iot:DeleteStream", "iot:DescribeStream", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__iot__s3/check_cfn_iot_stream_create_and_delete_with_stack.py", "service": "cloudformation__iam__iot__s3"} {"check_id": "cloudformation__iam__iot__s3.cfn-iot-stream-nonexistent-s3-object-rejected", "deployments": [], "key": "cloudformation__iam__iot__s3/cfn-iot-stream-nonexistent-s3-object-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateStream", "iot:DeleteStream", "iot:DescribeStream", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__iot__s3/check_cfn_iot_stream_nonexistent_s3_object_rejected.py", "service": "cloudformation__iam__iot__s3"} {"check_id": "cloudformation__iam__iotdeviceadvisor.deploy-iotcoredeviceadvisor-suitedefinition-empty-root-group-rejected", "deployments": [], "key": "cloudformation__iam__iotdeviceadvisor/deploy-iotcoredeviceadvisor-suitedefinition-empty-root-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:ListSuiteDefinitions"], "path": "behavioral/cloudformation__iam__iotdeviceadvisor/check_deploy_iotcoredeviceadvisor_suitedefinition_empty_root_group_rejected.py", "service": "cloudformation__iam__iotdeviceadvisor"} {"check_id": "cloudformation__iam__iotdeviceadvisor.deploy-iotcoredeviceadvisor-suitedefinition-round-trip-and-delete", "deployments": [], "key": "cloudformation__iam__iotdeviceadvisor/deploy-iotcoredeviceadvisor-suitedefinition-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:ListSuiteDefinitions"], "path": "behavioral/cloudformation__iam__iotdeviceadvisor/check_deploy_iotcoredeviceadvisor_suitedefinition_round_trip_and_delete.py", "service": "cloudformation__iam__iotdeviceadvisor"} {"check_id": "cloudformation__iam__kinesis__logs.cfn-logs-destination-kinesis-round-trip-then-delete", "deployments": [], "key": "cloudformation__iam__kinesis__logs/cfn-logs-destination-kinesis-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iam:GetRolePolicy", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForStream", "logs:ListTagsForResource"], "path": "behavioral/cloudformation__iam__kinesis__logs/check_cfn_logs_destination_kinesis_round_trip_then_delete.py", "service": "cloudformation__iam__kinesis__logs"} {"check_id": "cloudformation__iam__kinesis__logs.cfn-logs-destination-malformed-policy-document-rejected", "deployments": [], "key": "cloudformation__iam__kinesis__logs/cfn-logs-destination-malformed-policy-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__iam__kinesis__logs/check_cfn_logs_destination_malformed_policy_document_rejected.py", "service": "cloudformation__iam__kinesis__logs"} {"check_id": "cloudformation__iam__lakeformation__s3.deploy-cfn-lakeformation-resource-invalid-role-arn-rejected", "deployments": [], "key": "cloudformation__iam__lakeformation__s3/deploy-cfn-lakeformation-resource-invalid-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lakeformation:DescribeResource", "lakeformation:ListResources", "s3:HeadBucket"], "path": "behavioral/cloudformation__iam__lakeformation__s3/check_deploy_cfn_lakeformation_resource_invalid_role_arn_rejected.py", "service": "cloudformation__iam__lakeformation__s3"} {"check_id": "cloudformation__iam__lakeformation__s3.deploy-cfn-lakeformation-resource-round-trip-and-delete", "deployments": [], "key": "cloudformation__iam__lakeformation__s3/deploy-cfn-lakeformation-resource-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iam:GetRolePolicy", "lakeformation:DescribeResource", "lakeformation:ListResources", "s3:HeadBucket"], "path": "behavioral/cloudformation__iam__lakeformation__s3/check_deploy_cfn_lakeformation_resource_round_trip_and_delete.py", "service": "cloudformation__iam__lakeformation__s3"} {"check_id": "cloudformation__iam__lambda-microvms__s3.deploy-lambda-microvm-image-invalid-architecture-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__iam__lambda-microvms__s3/deploy-lambda-microvm-image-invalid-architecture-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda-microvms__s3/check_deploy_lambda_microvm_image_invalid_architecture_rejected_and_rolled_back.py", "service": "cloudformation__iam__lambda-microvms__s3"} {"check_id": "cloudformation__iam__lambda-microvms__s3.deploy-lambda-microvm-image-round-trip-and-delete", "deployments": [], "key": "cloudformation__iam__lambda-microvms__s3/deploy-lambda-microvm-image-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda-microvms__s3/check_deploy_lambda_microvm_image_round_trip_and_delete.py", "service": "cloudformation__iam__lambda-microvms__s3"} {"check_id": "cloudformation__iam__lambda__logs.cfn-declared-log-group-receives-lambda-logs", "deployments": ["behavioral/cloudformation__iam__lambda__logs/deployments/declared-log-group.yaml"], "key": "cloudformation__iam__lambda__logs/cfn-declared-log-group-receives-lambda-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRolePolicy", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents"], "path": "behavioral/cloudformation__iam__lambda__logs/check_cfn_declared_log_group_receives_lambda_logs.py", "service": "cloudformation__iam__lambda__logs"} {"check_id": "cloudformation__iam__lambda__logs.deploy-logs-2-declared-log-group-collides-with-implicit-rejected", "deployments": [], "key": "cloudformation__iam__lambda__logs/deploy-logs-2-declared-log-group-collides-with-implicit-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:GetLogEvents"], "path": "behavioral/cloudformation__iam__lambda__logs/check_deploy_logs_2_declared_log_group_collides_with_implicit_rejected.py", "service": "cloudformation__iam__lambda__logs"} {"check_id": "cloudformation__iam__lambda__logs.deploy-logs-2-implicit-log-group-created-on-first-invoke", "deployments": [], "key": "cloudformation__iam__lambda__logs/deploy-logs-2-implicit-log-group-created-on-first-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:GetLogEvents"], "path": "behavioral/cloudformation__iam__lambda__logs/check_deploy_logs_2_implicit_log_group_created_on_first_invoke.py", "service": "cloudformation__iam__lambda__logs"} {"check_id": "cloudformation__iam__lambda__logs.deploy-logs-2-implicit-log-group-denied-without-create-permission", "deployments": [], "key": "cloudformation__iam__lambda__logs/deploy-logs-2-implicit-log-group-denied-without-create-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/cloudformation__iam__lambda__logs/check_deploy_logs_2_implicit_log_group_denied_without_create_permission.py", "service": "cloudformation__iam__lambda__logs"} {"check_id": "cloudformation__iam__lambda__logs__s3.serverless-remove-bucket-not-empty-blocks-stack-delete", "deployments": [], "key": "cloudformation__iam__lambda__logs__s3/serverless-remove-bucket-not-empty-blocks-stack-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__logs__s3/check_serverless_remove_bucket_not_empty_blocks_stack_delete.py", "service": "cloudformation__iam__lambda__logs__s3"} {"check_id": "cloudformation__iam__lambda__s3.cdk-bootstrap-asset-deploy-is-content-addressed", "deployments": [], "key": "cloudformation__iam__lambda__s3/cdk-bootstrap-asset-deploy-is-content-addressed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "iam:ListRoles", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cdk_bootstrap_asset_deploy_is_content_addressed.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cdk-deploy-role-passrole-rejects-non-cfn-exec-role", "deployments": [], "key": "cloudformation__iam__lambda__s3/cdk-deploy-role-passrole-rejects-non-cfn-exec-role", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRoles", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cdk_deploy_role_passrole_rejects_non_cfn_exec_role.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-custom-resource-lambda-missing-s3-permission-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-custom-resource-lambda-missing-s3-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_custom_resource_lambda_missing_s3_permission_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-custom-resource-role-least-privilege-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-custom-resource-role-least-privilege-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_custom_resource_role_least_privilege_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-delete-stack-removes-iam-role-and-lambda-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-delete-stack-removes-iam-role-and-lambda-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:GetRole", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_delete_stack_removes_iam_role_and_lambda_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-iam-role-created-before-lambda-function-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-iam-role-created-before-lambda-function-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_iam_role_created_before_lambda_function_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-iam-role-permissions-boundary-in-template-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-iam-role-permissions-boundary-in-template-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:DeleteRolePermissionsBoundary", "iam:DeleteUser", "iam:GetRole", "iam:GetUser", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_iam_role_permissions_boundary_in_template_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-lambda-role-getatt-arn-resolution-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-lambda-role-getatt-arn-resolution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_lambda_role_getatt_arn_resolution_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-nested-stack-template-wrong-region-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-nested-stack-template-wrong-region-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_nested_stack_template_wrong_region_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-passrole-denied-for-service-role-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-passrole-denied-for-service-role-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_passrole_denied_for_service_role_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-service-role-lacks-s3-getobject-for-template-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-service-role-lacks-s3-getobject-for-template-negative", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_service_role_lacks_s3_getobject_for_template_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-stack-named-iam-role-requires-capability-named-iam-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-stack-named-iam-role-requires-capability-named-iam-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_stack_named_iam_role_requires_capability_named_iam_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-stack-with-iam-role-requires-capability-iam-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-stack-with-iam-role-requires-capability-iam-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_stack_with_iam_role_requires_capability_iam_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-template-url-s3-missing-object-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-template-url-s3-missing-object-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_template_url_s3_missing_object_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-template-url-s3-versioned-object-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-template-url-s3-versioned-object-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_template_url_s3_versioned_object_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cfn-update-iam-role-policy-reflected-in-lambda-execution-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cfn-update-iam-role-policy-reflected-in-lambda-execution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cfn_update_iam_role_policy_reflected_in_lambda_execution_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cli-cfn-deploy-stack-describe-resources-iam-lambda-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cli-cfn-deploy-stack-describe-resources-iam-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": [], "path": "behavioral/cloudformation__iam__lambda__s3/check_cli_cfn_deploy_stack_describe_resources_iam_lambda_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cli-iam-role-create-attach-lambda-execution-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cli-iam-role-create-attach-lambda-execution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cli_iam_role_create_attach_lambda_execution_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cli-iam-role-deleted-breaks-lambda-invoke-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cli-iam-role-deleted-breaks-lambda-invoke-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cli_iam_role_deleted_breaks_lambda_invoke_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cli-lambda-create-function-missing-role-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/cli-lambda-create-function-missing-role-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cli_lambda_create_function_missing_role_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.cli-lambda-update-function-code-from-s3-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/cli-lambda-update-function-code-from-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_cli_lambda_update_function_code_from_s3_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.iam-explicit-deny-overrides-allow-s3-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/iam-explicit-deny-overrides-allow-s3-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_iam_explicit_deny_overrides_allow_s3_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.iam-role-policy-update-reflected-lambda-s3-access-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/iam-role-policy-update-reflected-lambda-s3-access-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_iam_role_policy_update_reflected_lambda_s3_access_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.iam-role-trust-policy-allows-lambda-assume-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/iam-role-trust-policy-allows-lambda-assume-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_iam_role_trust_policy_allows_lambda_assume_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.iam-role-trust-policy-missing-lambda-principal-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/iam-role-trust-policy-missing-lambda-principal-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/cloudformation__iam__lambda__s3/check_iam_role_trust_policy_missing_lambda_principal_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.lambda-role-permission-boundary-restricts-s3-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/lambda-role-permission-boundary-restricts-s3-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__iam__lambda__s3/check_lambda_role_permission_boundary_restricts_s3_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.lambda-role-s3-resource-arn-mismatch-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/lambda-role-s3-resource-arn-mismatch-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_lambda_role_s3_resource_arn_mismatch_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.lambda-role-wildcard-resource-s3-access-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/lambda-role-wildcard-resource-s3-access-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__lambda__s3/check_lambda_role_wildcard_resource_s3_access_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.lambda-sdk-cfn-create-stack-missing-passrole-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/lambda-sdk-cfn-create-stack-missing-passrole-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__iam__lambda__s3/check_lambda_sdk_cfn_create_stack_missing_passrole_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.lambda-sdk-cfn-create-stack-with-iam-capability-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/lambda-sdk-cfn-create-stack-with-iam-capability-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:TagRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__iam__lambda__s3/check_lambda_sdk_cfn_create_stack_with_iam_capability_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.lambda-sdk-cfn-delete-stack-missing-permission-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/lambda-sdk-cfn-delete-stack-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__iam__lambda__s3/check_lambda_sdk_cfn_delete_stack_missing_permission_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.lambda-sdk-cfn-delete-stack-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/lambda-sdk-cfn-delete-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__iam__lambda__s3/check_lambda_sdk_cfn_delete_stack_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.lambda-sdk-cfn-update-stack-missing-capability-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/lambda-sdk-cfn-update-stack-missing-capability-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__iam__lambda__s3/check_lambda_sdk_cfn_update_stack_missing_capability_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.s3-notification-cross-account-bucket-lambda-role-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/s3-notification-cross-account-bucket-lambda-role-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketNotificationConfiguration", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__lambda__s3/check_s3_notification_cross_account_bucket_lambda_role_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.s3-notification-lambda-role-missing-put-tagging-negative", "deployments": [], "key": "cloudformation__iam__lambda__s3/s3-notification-lambda-role-missing-put-tagging-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectTagging", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__lambda__s3/check_s3_notification_lambda_role_missing_put_tagging_negative.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3.s3-notification-triggers-lambda-role-tags-object-positive", "deployments": [], "key": "cloudformation__iam__lambda__s3/s3-notification-triggers-lambda-role-tags-object-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectTagging", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__lambda__s3/check_s3_notification_triggers_lambda_role_tags_object_positive.py", "service": "cloudformation__iam__lambda__s3"} {"check_id": "cloudformation__iam__lambda__s3__ssm.deploy-lambda-3-rollback-blocked-when-prior-code-object-deleted", "deployments": [], "key": "cloudformation__iam__lambda__s3__ssm/deploy-lambda-3-rollback-blocked-when-prior-code-object-deleted", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "ssm:GetParameter"], "path": "behavioral/cloudformation__iam__lambda__s3__ssm/check_deploy_lambda_3_rollback_blocked_when_prior_code_object_deleted.py", "service": "cloudformation__iam__lambda__s3__ssm"} {"check_id": "cloudformation__iam__lambda__s3__ssm.deploy-lambda-3-update-disable-rollback-keeps-applied-param-until-rollback-stack", "deployments": [], "key": "cloudformation__iam__lambda__s3__ssm/deploy-lambda-3-update-disable-rollback-keeps-applied-param-until-rollback-stack", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:ContinueUpdateRollback", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:RollbackStack", "cloudformation:UpdateStack", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "ssm:GetParameter"], "path": "behavioral/cloudformation__iam__lambda__s3__ssm/check_deploy_lambda_3_update_disable_rollback_keeps_applied_param_until_rollback_stack.py", "service": "cloudformation__iam__lambda__s3__ssm"} {"check_id": "cloudformation__iam__lambda__s3__ssm.deploy-lambda-3-update-missing-code-object-rolls-back", "deployments": [], "key": "cloudformation__iam__lambda__s3__ssm/deploy-lambda-3-update-missing-code-object-rolls-back", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "ssm:GetParameter"], "path": "behavioral/cloudformation__iam__lambda__s3__ssm/check_deploy_lambda_3_update_missing_code_object_rolls_back.py", "service": "cloudformation__iam__lambda__s3__ssm"} {"check_id": "cloudformation__iam__lambda__secretsmanager.deploy-secretsmanager-rotationschedule-enabled-then-disabled-by-stack-update", "deployments": [], "key": "cloudformation__iam__lambda__secretsmanager/deploy-secretsmanager-rotationschedule-enabled-then-disabled-by-stack-update", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRolePolicy", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecrets"], "path": "behavioral/cloudformation__iam__lambda__secretsmanager/check_deploy_secretsmanager_rotationschedule_enabled_then_disabled_by_stack_update.py", "service": "cloudformation__iam__lambda__secretsmanager"} {"check_id": "cloudformation__iam__lambda__secretsmanager.deploy-secretsmanager-rotationschedule-missing-invoke-permission-rejected", "deployments": [], "key": "cloudformation__iam__lambda__secretsmanager/deploy-secretsmanager-rotationschedule-missing-invoke-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:GetPolicy", "secretsmanager:DescribeSecret"], "path": "behavioral/cloudformation__iam__lambda__secretsmanager/check_deploy_secretsmanager_rotationschedule_missing_invoke_permission_rejected.py", "service": "cloudformation__iam__lambda__secretsmanager"} {"check_id": "cloudformation__iam__logs.logs-loggroup-handler-permission-role-deploys-then-denies-without-create-permission", "deployments": [], "key": "cloudformation__iam__logs/logs-loggroup-handler-permission-role-deploys-then-denies-without-create-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__iam__logs/check_logs_loggroup_handler_permission_role_deploys_then_denies_without_create_permission.py", "service": "cloudformation__iam__logs"} {"check_id": "cloudformation__iam__logs.logs-loggroup-handler-permission-update-denied-then-delete-denied-recovers", "deployments": [], "key": "cloudformation__iam__logs/logs-loggroup-handler-permission-update-denied-then-delete-denied-recovers", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__iam__logs/check_logs_loggroup_handler_permission_update_denied_then_delete_denied_recovers.py", "service": "cloudformation__iam__logs"} {"check_id": "cloudformation__mwaa-serverless.deploy-mwaaserverless-workflow-invalid-rolearn-pattern-rejected", "deployments": [], "key": "cloudformation__iam__mwaa-serverless__s3/deploy-mwaaserverless-workflow-invalid-rolearn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa-serverless:GetWorkflow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/cloudformation__iam__mwaa-serverless__s3/check_deploy_mwaaserverless_workflow_invalid_rolearn_pattern_rejected.py", "service": "cloudformation__iam__mwaa-serverless__s3"} {"check_id": "cloudformation__mwaa-serverless.deploy-mwaaserverless-workflow-round-trip-and-delete", "deployments": [], "key": "cloudformation__iam__mwaa-serverless__s3/deploy-mwaaserverless-workflow-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa-serverless:GetWorkflow", "mwaa-serverless:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/cloudformation__iam__mwaa-serverless__s3/check_deploy_mwaaserverless_workflow_round_trip_and_delete.py", "service": "cloudformation__iam__mwaa-serverless__s3"} {"check_id": "cloudformation__iam__opensearch.cfn-opensearch-vpc-domain-in-place-update-then-not-found", "deployments": [], "key": "cloudformation__iam__opensearch/cfn-opensearch-vpc-domain-in-place-update-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:CreateServiceLinkedRole", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainChangeProgress", "opensearch:ListTags"], "path": "behavioral/cloudformation__iam__opensearch/check_cfn_opensearch_vpc_domain_in_place_update_then_not_found.py", "service": "cloudformation__iam__opensearch"} {"check_id": "cloudformation__iam__opensearch__sts.deploy-opensearch-1-changeset-swaps-allowed-and-denied-roles-in-place", "deployments": [], "key": "cloudformation__iam__opensearch__sts/deploy-opensearch-1-changeset-swaps-allowed-and-denied-roles-in-place", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "iam:GetRole", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:AssumeRole"], "path": "behavioral/cloudformation__iam__opensearch__sts/check_deploy_opensearch_1_changeset_swaps_allowed_and_denied_roles_in_place.py", "service": "cloudformation__iam__opensearch__sts"} {"check_id": "cloudformation__iam__opensearchserverless.cfn-access-policy-cross-account-principal-rejected", "deployments": [], "key": "cloudformation__iam__opensearchserverless/cfn-access-policy-cross-account-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "opensearchserverless:GetAccessPolicy", "opensearchserverless:ListAccessPolicies"], "path": "behavioral/cloudformation__iam__opensearchserverless/check_cfn_access_policy_cross_account_principal_rejected.py", "service": "cloudformation__iam__opensearchserverless"} {"check_id": "cloudformation__iam__opensearchserverless.cfn-access-policy-data-principal-role-read-back-then-gone", "deployments": [], "key": "cloudformation__iam__opensearchserverless/cfn-access-policy-data-principal-role-read-back-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "opensearchserverless:GetAccessPolicy", "opensearchserverless:ListAccessPolicies"], "path": "behavioral/cloudformation__iam__opensearchserverless/check_cfn_access_policy_data_principal_role_read_back_then_gone.py", "service": "cloudformation__iam__opensearchserverless"} {"check_id": "cloudformation__iam__personalize__s3.cfn-personalize-metric-attribution-invalid-expression-rejected-leaving-valid-attribution", "deployments": [], "key": "cloudformation__iam__personalize__s3/cfn-personalize-metric-attribution-invalid-expression-rejected-leaving-valid-attribution", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iam:GetRolePolicy", "personalize:DescribeMetricAttribution", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudformation__iam__personalize__s3/check_cfn_personalize_metric_attribution_invalid_expression_rejected_leaving_valid_attribution.py", "service": "cloudformation__iam__personalize__s3"} {"check_id": "cloudformation__iam__personalize__s3.cfn-personalize-metric-attribution-round-trip-and-delete", "deployments": [], "key": "cloudformation__iam__personalize__s3/cfn-personalize-metric-attribution-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole", "iam:GetRolePolicy", "personalize:DescribeDatasetGroup", "personalize:DescribeMetricAttribution", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudformation__iam__personalize__s3/check_cfn_personalize_metric_attribution_round_trip_and_delete.py", "service": "cloudformation__iam__personalize__s3"} {"check_id": "cloudformation__iam__s3.cfn-changeset-template-url-caller-lacks-s3-getobject-rejected", "deployments": [], "key": "cloudformation__iam__s3/cfn-changeset-template-url-caller-lacks-s3-getobject-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:AssumeRole"], "path": "behavioral/cloudformation__iam__s3/check_cfn_changeset_template_url_caller_lacks_s3_getobject_rejected.py", "service": "cloudformation__iam__s3"} {"check_id": "cloudformation__iam__s3.deploy-iam-2-cfn-access-key-deactivate-and-serial-rotation-old-key-rejected", "deployments": [], "key": "cloudformation__iam__s3/deploy-iam-2-cfn-access-key-deactivate-and-serial-rotation-old-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:ListAccessKeys", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__s3/check_deploy_iam_2_cfn_access_key_deactivate_and_serial_rotation_old_key_rejected.py", "service": "cloudformation__iam__s3"} {"check_id": "cloudformation__iam__s3.deploy-iam-2-cfn-group-explicit-deny-overrides-allow-for-deployed-access-key-denied", "deployments": [], "key": "cloudformation__iam__s3/deploy-iam-2-cfn-group-explicit-deny-overrides-allow-for-deployed-access-key-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetGroup", "iam:GetUser", "iam:ListAccessKeys", "iam:ListGroupsForUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__iam__s3/check_deploy_iam_2_cfn_group_explicit_deny_overrides_allow_for_deployed_access_key_denied.py", "service": "cloudformation__iam__s3"} {"check_id": "cloudformation__iam__sagemaker.deploy-sagemaker-cfn-image-nonexistent-role-arn-rejected", "deployments": [], "key": "cloudformation__iam__sagemaker/deploy-sagemaker-cfn-image-nonexistent-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "sagemaker:DescribeImage"], "path": "behavioral/cloudformation__iam__sagemaker/check_deploy_sagemaker_cfn_image_nonexistent_role_arn_rejected.py", "service": "cloudformation__iam__sagemaker"} {"check_id": "cloudformation__iam__sagemaker.deploy-sagemaker-cfn-image-with-role-read-back-then-gone", "deployments": [], "key": "cloudformation__iam__sagemaker/deploy-sagemaker-cfn-image-with-role-read-back-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "sagemaker:DescribeImage"], "path": "behavioral/cloudformation__iam__sagemaker/check_deploy_sagemaker_cfn_image_with_role_read_back_then_gone.py", "service": "cloudformation__iam__sagemaker"} {"check_id": "cloudformation__iam__sns.sns-topic-handler-permission-role-deploys-then-denies-without-create-permission", "deployments": [], "key": "cloudformation__iam__sns/sns-topic-handler-permission-role-deploys-then-denies-without-create-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__iam__sns/check_sns_topic_handler_permission_role_deploys_then_denies_without_create_permission.py", "service": "cloudformation__iam__sns"} {"check_id": "cloudformation__iam__sqs.sqs-queue-handler-permission-role-deploys-then-denies-without-create-permission", "deployments": [], "key": "cloudformation__iam__sqs/sqs-queue-handler-permission-role-deploys-then-denies-without-create-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__iam__sqs/check_sqs_queue_handler_permission_role_deploys_then_denies_without_create_permission.py", "service": "cloudformation__iam__sqs"} {"check_id": "cloudformation__iam__sqs.sqs-queue-handler-permission-update-denied-then-delete-denied-recovers", "deployments": [], "key": "cloudformation__iam__sqs/sqs-queue-handler-permission-update-denied-then-delete-denied-recovers", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueueTags"], "path": "behavioral/cloudformation__iam__sqs/check_sqs_queue_handler_permission_update_denied_then_delete_denied_recovers.py", "service": "cloudformation__iam__sqs"} {"check_id": "cloudformation__iam__sqs__ssm.cdk-deploy-role-arn-stays-the-stacks-role-for-later-deploys", "deployments": ["behavioral/cloudformation__iam__sqs__ssm/deployments/cdk_role_arn/app.py", "behavioral/cloudformation__iam__sqs__ssm/deployments/cdk_role_arn/cdk.json"], "key": "cloudformation__iam__sqs__ssm/cdk-deploy-role-arn-stays-the-stacks-role-for-later-deploys", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:DeleteQueue", "sqs:GetQueueUrl", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__iam__sqs__ssm/check_cdk_deploy_role_arn_stays_the_stacks_role_for_later_deploys.py", "service": "cloudformation__iam__sqs__ssm"} {"check_id": "cloudformation__iam__sqs__ssm.change-set-role-arn-is-the-acting-principal", "deployments": [], "key": "cloudformation__iam__sqs__ssm/change-set-role-arn-is-the-acting-principal", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__iam__sqs__ssm/check_change_set_role_arn_is_the_acting_principal.py", "service": "cloudformation__iam__sqs__ssm"} {"check_id": "cloudformation__iam__ssm.change-set-role-arn-on-update-is-kept-for-later-change-sets", "deployments": [], "key": "cloudformation__iam__ssm/change-set-role-arn-on-update-is-kept-for-later-change-sets", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "ssm:GetParameter"], "path": "behavioral/cloudformation__iam__ssm/check_change_set_role_arn_on_update_is_kept_for_later_change_sets.py", "service": "cloudformation__iam__ssm"} {"check_id": "cloudformation__iam__ssm.stackset-managed-execution-accepts-a-conflicting-update-and-runs-it-after", "deployments": [], "key": "cloudformation__iam__ssm/stackset-managed-execution-accepts-a-conflicting-update-and-runs-it-after", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:SignalResource", "cloudformation:UpdateStackSet", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "ssm:GetParameter"], "path": "behavioral/cloudformation__iam__ssm/check_stackset_managed_execution_accepts_a_conflicting_update_and_runs_it_after.py", "service": "cloudformation__iam__ssm"} {"check_id": "cloudformation__iam__ssm.stackset-parameter-overrides-survive-a-stack-set-parameter-update", "deployments": [], "key": "cloudformation__iam__ssm/stackset-parameter-overrides-survive-a-stack-set-parameter-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "cloudformation:ListStackSetOperations", "cloudformation:UpdateStackSet", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "ssm:GetParameter"], "path": "behavioral/cloudformation__iam__ssm/check_stackset_parameter_overrides_survive_a_stack_set_parameter_update.py", "service": "cloudformation__iam__ssm"} {"check_id": "cloudformation__iam__sts.cfn-iam-role-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__iam__sts/cfn-iam-role-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:DeleteRole", "iam:GetRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__sts/check_cfn_iam_role_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__iam__sts"} {"check_id": "cloudformation__iam__sts.deploy-iam-1-cfn-rollback-and-trust-flip-assume-denied", "deployments": [], "key": "cloudformation__iam__sts/deploy-iam-1-cfn-rollback-and-trust-flip-assume-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetRole", "iam:ListPolicies", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__iam__sts/check_deploy_iam_1_cfn_rollback_and_trust_flip_assume_denied.py", "service": "cloudformation__iam__sts"} {"check_id": "cloudformation__imagebuilder.deploy-imagebuilder-component-invalid-action-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__imagebuilder/deploy-imagebuilder-component-invalid-action-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "imagebuilder:GetComponent"], "path": "behavioral/cloudformation__imagebuilder/check_deploy_imagebuilder_component_invalid_action_rejected_and_rolled_back.py", "service": "cloudformation__imagebuilder"} {"check_id": "cloudformation__imagebuilder.deploy-imagebuilder-component-round-trip-and-delete", "deployments": [], "key": "cloudformation__imagebuilder/deploy-imagebuilder-component-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "imagebuilder:GetComponent"], "path": "behavioral/cloudformation__imagebuilder/check_deploy_imagebuilder_component_round_trip_and_delete.py", "service": "cloudformation__imagebuilder"} {"check_id": "cloudformation__imagebuilder.deploy-imagebuilder-distribution-configuration-round-trip-and-delete", "deployments": [], "key": "cloudformation__imagebuilder/deploy-imagebuilder-distribution-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "imagebuilder:GetDistributionConfiguration"], "path": "behavioral/cloudformation__imagebuilder/check_deploy_imagebuilder_distribution_configuration_round_trip_and_delete.py", "service": "cloudformation__imagebuilder"} {"check_id": "cloudformation__imagebuilder.deploy-imagebuilder-image-recipe-round-trip-and-delete", "deployments": [], "key": "cloudformation__imagebuilder/deploy-imagebuilder-image-recipe-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "imagebuilder:GetComponent", "imagebuilder:GetImageRecipe"], "path": "behavioral/cloudformation__imagebuilder/check_deploy_imagebuilder_image_recipe_round_trip_and_delete.py", "service": "cloudformation__imagebuilder"} {"check_id": "cloudformation__imagebuilder.deploy-imagebuilder-workflow-round-trip-and-delete", "deployments": [], "key": "cloudformation__imagebuilder/deploy-imagebuilder-workflow-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "imagebuilder:GetWorkflow"], "path": "behavioral/cloudformation__imagebuilder/check_deploy_imagebuilder_workflow_round_trip_and_delete.py", "service": "cloudformation__imagebuilder"} {"check_id": "cloudformation__inspector2.deploy-inspectorv2-filter-and-scan-config-round-trip-and-delete", "deployments": [], "key": "cloudformation__inspector2/deploy-inspectorv2-filter-and-scan-config-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "inspector2:GetCodeSecurityScanConfiguration", "inspector2:ListCodeSecurityScanConfigurations", "inspector2:ListFilters"], "path": "behavioral/cloudformation__inspector2/check_deploy_inspectorv2_filter_and_scan_config_round_trip_and_delete.py", "service": "cloudformation__inspector2"} {"check_id": "cloudformation__inspector2.deploy-inspectorv2-filter-invalid-filter-action-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__inspector2/deploy-inspectorv2-filter-invalid-filter-action-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__inspector2/check_deploy_inspectorv2_filter_invalid_filter_action_rejected_and_rolled_back.py", "service": "cloudformation__inspector2"} {"check_id": "cloudformation__internetmonitor.deploy-cloudformation-internetmonitor-monitor-name-pattern-rejected", "deployments": [], "key": "cloudformation__internetmonitor/deploy-cloudformation-internetmonitor-monitor-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "internetmonitor:GetMonitor"], "path": "behavioral/cloudformation__internetmonitor/check_deploy_cloudformation_internetmonitor_monitor_name_pattern_rejected.py", "service": "cloudformation__internetmonitor"} {"check_id": "cloudformation__internetmonitor.deploy-cloudformation-internetmonitor-monitor-round-trip-update-and-delete", "deployments": [], "key": "cloudformation__internetmonitor/deploy-cloudformation-internetmonitor-monitor-round-trip-update-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "internetmonitor:GetMonitor"], "path": "behavioral/cloudformation__internetmonitor/check_deploy_cloudformation_internetmonitor_monitor_round_trip_update_and_delete.py", "service": "cloudformation__internetmonitor"} {"check_id": "cloudformation__iot.cfn-iot-certificate-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__iot/cfn-iot-certificate-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iot:DeleteCertificate", "iot:DescribeCertificate", "iot:UpdateCertificate"], "path": "behavioral/cloudformation__iot/check_cfn_iot_certificate_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-job-create-and-delete-with-stack", "deployments": [], "key": "cloudformation__iot/cfn-iot-job-create-and-delete-with-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeJob", "iot:DescribeThing", "iot:GetJobDocument"], "path": "behavioral/cloudformation__iot/check_cfn_iot_job_create_and_delete_with_stack.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-job-template-create-and-delete-with-stack", "deployments": [], "key": "cloudformation__iot/cfn-iot-job-template-create-and-delete-with-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeJobTemplate"], "path": "behavioral/cloudformation__iot/check_cfn_iot_job_template_create_and_delete_with_stack.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-job-template-duplicate-id-rejected", "deployments": [], "key": "cloudformation__iot/cfn-iot-job-template-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "iot:CreateJobTemplate", "iot:DeleteJobTemplate", "iot:DescribeJobTemplate"], "path": "behavioral/cloudformation__iot/check_cfn_iot_job_template_duplicate_id_rejected.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-logging-and-resource-specific-logging-read-back-then-disabled-after-delete", "deployments": [], "key": "cloudformation__iot/cfn-iot-logging-and-resource-specific-logging-read-back-then-disabled-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeThingGroup", "iot:GetV2LoggingOptions", "iot:ListV2LoggingLevels"], "path": "behavioral/cloudformation__iot/check_cfn_iot_logging_and_resource_specific_logging_read_back_then_disabled_after_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-mitigation-action-cross-account-role-rejected", "deployments": [], "key": "cloudformation__iot/cfn-iot-mitigation-action-cross-account-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeMitigationAction"], "path": "behavioral/cloudformation__iot/check_cfn_iot_mitigation_action_cross_account_role_rejected.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-mitigation-action-properties-and-getatt-read-back-then-not-found-after-delete", "deployments": [], "key": "cloudformation__iot/cfn-iot-mitigation-action-properties-and-getatt-read-back-then-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeMitigationAction"], "path": "behavioral/cloudformation__iot/check_cfn_iot_mitigation_action_properties_and_getatt_read_back_then_not_found_after_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-thing-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__iot/cfn-iot-thing-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iot:DeleteThing", "iot:DescribeThing", "iot:ListThings"], "path": "behavioral/cloudformation__iot/check_cfn_iot_thing_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-cacertificate-sni-only-round-trip-and-delete", "deployments": [], "key": "cloudformation__iot/deploy-iot-cacertificate-sni-only-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeCACertificate", "iot:ListCACertificates"], "path": "behavioral/cloudformation__iot/check_deploy_iot_cacertificate_sni_only_round_trip_and_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.deploy-iot-command-invalid-namespace-rejected", "deployments": [], "key": "cloudformation__iot/deploy-iot-command-invalid-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:GetCommand"], "path": "behavioral/cloudformation__iot/check_deploy_iot_command_invalid_namespace_rejected.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.deploy-iot-command-round-trip-then-pending-deletion", "deployments": [], "key": "cloudformation__iot/deploy-iot-command-round-trip-then-pending-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:GetCommand"], "path": "behavioral/cloudformation__iot/check_deploy_iot_command_round_trip_then_pending_deletion.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-policy-certificate-principal-attachments-round-trip-and-delete", "deployments": [], "key": "cloudformation__iot/deploy-iot-policy-certificate-principal-attachments-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iot:DescribeCertificate", "iot:DescribeThing", "iot:GetPolicy"], "path": "behavioral/cloudformation__iot/check_deploy_iot_policy_certificate_principal_attachments_round_trip_and_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.deploy-iot-softwarepackage-version-and-fleetmetric-round-trip-then-delete", "deployments": [], "key": "cloudformation__iot/deploy-iot-softwarepackage-version-and-fleetmetric-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iot:DescribeFleetMetric", "iot:DescribeIndex", "iot:DescribeThing", "iot:GetIndexingConfiguration", "iot:GetPackage", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration"], "path": "behavioral/cloudformation__iot/check_deploy_iot_softwarepackage_version_and_fleetmetric_round_trip_then_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-thing-thinggroup-billinggroup-round-trip-and-delete", "deployments": [], "key": "cloudformation__iot/deploy-iot-thing-thinggroup-billinggroup-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeBillingGroup", "iot:DescribeThing", "iot:DescribeThingGroup"], "path": "behavioral/cloudformation__iot/check_deploy_iot_thing_thinggroup_billinggroup_round_trip_and_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-thing-too-many-attributes-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__iot/deploy-iot-thing-too-many-attributes-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeThing"], "path": "behavioral/cloudformation__iot/check_deploy_iot_thing_too_many_attributes_rejected_and_rolled_back.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot.cfn-iot-thingtype-round-trip-and-delete", "deployments": [], "key": "cloudformation__iot/deploy-iot-thingtype-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeThingType"], "path": "behavioral/cloudformation__iot/check_deploy_iot_thingtype_round_trip_and_delete.py", "service": "cloudformation__iot"} {"check_id": "cloudformation__iot__iotsitewise.cfn-deploy-iotsitewise-gateway", "deployments": [], "key": "cloudformation__iot__iotsitewise/cfn-deploy-iotsitewise-gateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeThing", "iotsitewise:DescribeGateway"], "path": "behavioral/cloudformation__iot__iotsitewise/check_cfn_deploy_iotsitewise_gateway.py", "service": "cloudformation__iot__iotsitewise"} {"check_id": "cloudformation__iot__iotsitewise.cfn-iotsitewise-gateway-platform-oneof-violation-rejected", "deployments": [], "key": "cloudformation__iot__iotsitewise/cfn-iotsitewise-gateway-platform-oneof-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DescribeThing", "iotsitewise:DescribeGateway"], "path": "behavioral/cloudformation__iot__iotsitewise/check_cfn_iotsitewise_gateway_platform_oneof_violation_rejected.py", "service": "cloudformation__iot__iotsitewise"} {"check_id": "cloudformation__iot__lambda.cfn-iot-authorizer-active-create-and-delete-with-stack", "deployments": [], "key": "cloudformation__iot__lambda/cfn-iot-authorizer-active-create-and-delete-with-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iot:DescribeAuthorizer", "iot:ListTagsForResource", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/cloudformation__iot__lambda/check_cfn_iot_authorizer_active_create_and_delete_with_stack.py", "service": "cloudformation__iot__lambda"} {"check_id": "cloudformation__iot__lambda.cfn-iot-authorizer-duplicate-name-rejected", "deployments": [], "key": "cloudformation__iot__lambda/cfn-iot-authorizer-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "iam:CreateRole", "iam:DeleteRole", "iot:CreateAuthorizer", "iot:DeleteAuthorizer", "iot:DescribeAuthorizer", "iot:UpdateAuthorizer", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/cloudformation__iot__lambda/check_cfn_iot_authorizer_duplicate_name_rejected.py", "service": "cloudformation__iot__lambda"} {"check_id": "cloudformation__iot__lambda.cfn-iot-certificate-provider-create-and-delete-with-stack", "deployments": [], "key": "cloudformation__iot__lambda/cfn-iot-certificate-provider-create-and-delete-with-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iot:DescribeCertificateProvider", "iot:ListCertificateProviders", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetPolicy"], "path": "behavioral/cloudformation__iot__lambda/check_cfn_iot_certificate_provider_create_and_delete_with_stack.py", "service": "cloudformation__iot__lambda"} {"check_id": "cloudformation__iot__lambda.cfn-iot-certificate-provider-duplicate-name-rejected", "deployments": [], "key": "cloudformation__iot__lambda/cfn-iot-certificate-provider-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iot:CreateCertificateProvider", "iot:DeleteCertificateProvider", "iot:DescribeCertificateProvider", "iot:ListCertificateProviders", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission"], "path": "behavioral/cloudformation__iot__lambda/check_cfn_iot_certificate_provider_duplicate_name_rejected.py", "service": "cloudformation__iot__lambda"} {"check_id": "cloudformation__iotsitewise.cfn-deploy-iotsitewise-asset-model-and-asset", "deployments": [], "key": "cloudformation__iotsitewise/cfn-deploy-iotsitewise-asset-model-and-asset", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DescribeAssetProperty"], "path": "behavioral/cloudformation__iotsitewise/check_cfn_deploy_iotsitewise_asset_model_and_asset.py", "service": "cloudformation__iotsitewise"} {"check_id": "cloudformation__iotsitewise.cfn-iotsitewise-asset-model-invalid-attribute-default-value-rejected", "deployments": [], "key": "cloudformation__iotsitewise/cfn-iotsitewise-asset-model-invalid-attribute-default-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iotsitewise:DescribeAssetModel"], "path": "behavioral/cloudformation__iotsitewise/check_cfn_iotsitewise_asset_model_invalid_attribute_default_value_rejected.py", "service": "cloudformation__iotsitewise"} {"check_id": "cloudformation__iottwinmaker.deploy-iottwinmaker-componenttype-not-stored-externally-rejected", "deployments": [], "key": "cloudformation__iottwinmaker/deploy-iottwinmaker-componenttype-not-stored-externally-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iottwinmaker:GetComponentType"], "path": "behavioral/cloudformation__iottwinmaker/check_deploy_iottwinmaker_componenttype_not_stored_externally_rejected.py", "service": "cloudformation__iottwinmaker"} {"check_id": "cloudformation__iottwinmaker.deploy-iottwinmaker-sync-job-round-trip-and-delete", "deployments": [], "key": "cloudformation__iottwinmaker/deploy-iottwinmaker-sync-job-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iottwinmaker:GetSyncJob", "iottwinmaker:GetWorkspace", "iottwinmaker:ListTagsForResource"], "path": "behavioral/cloudformation__iottwinmaker/check_deploy_iottwinmaker_sync_job_round_trip_and_delete.py", "service": "cloudformation__iottwinmaker"} {"check_id": "cloudformation__iottwinmaker.deploy-iottwinmaker-workspace-componenttype-entity-scene-round-trip-and-delete", "deployments": [], "key": "cloudformation__iottwinmaker/deploy-iottwinmaker-workspace-componenttype-entity-scene-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iottwinmaker:GetComponentType", "iottwinmaker:GetEntity", "iottwinmaker:GetScene", "iottwinmaker:GetWorkspace", "iottwinmaker:ListTagsForResource"], "path": "behavioral/cloudformation__iottwinmaker/check_deploy_iottwinmaker_workspace_componenttype_entity_scene_round_trip_and_delete.py", "service": "cloudformation__iottwinmaker"} {"check_id": "cloudformation__ivs-realtime.deploy-ivs-realtime-encoderconfiguration-bitrate-over-max-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ivs-realtime/deploy-ivs-realtime-encoderconfiguration-bitrate-over-max-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ivs-realtime:GetEncoderConfiguration", "ivs-realtime:ListEncoderConfigurations"], "path": "behavioral/cloudformation__ivs-realtime/check_deploy_ivs_realtime_encoderconfiguration_bitrate_over_max_rejected_and_rolled_back.py", "service": "cloudformation__ivs-realtime"} {"check_id": "cloudformation__ivs-realtime.deploy-ivs-realtime-resource-types-round-trip-and-delete", "deployments": [], "key": "cloudformation__ivs-realtime/deploy-ivs-realtime-resource-types-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ivs-realtime:GetEncoderConfiguration", "ivs-realtime:GetIngestConfiguration", "ivs-realtime:GetPublicKey", "ivs-realtime:GetStage", "ivs-realtime:GetStorageConfiguration"], "path": "behavioral/cloudformation__ivs-realtime/check_deploy_ivs_realtime_resource_types_round_trip_and_delete.py", "service": "cloudformation__ivs-realtime"} {"check_id": "cloudformation__ivs.deploy-ivs-channel-stream-key-playback-key-pair-and-restriction-policy-round-trip-and-delete", "deployments": [], "key": "cloudformation__ivs/deploy-ivs-channel-stream-key-playback-key-pair-and-restriction-policy-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ivs:GetChannel", "ivs:GetPlaybackKeyPair", "ivs:GetPlaybackRestrictionPolicy", "ivs:GetStreamKey", "ivs:ListPlaybackRestrictionPolicies"], "path": "behavioral/cloudformation__ivs/check_deploy_ivs_channel_stream_key_playback_key_pair_and_restriction_policy_round_trip_and_delete.py", "service": "cloudformation__ivs"} {"check_id": "cloudformation__ivs.deploy-ivs-playback-key-pair-invalid-public-key-material-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ivs/deploy-ivs-playback-key-pair-invalid-public-key-material-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ivs:GetPlaybackKeyPair"], "path": "behavioral/cloudformation__ivs/check_deploy_ivs_playback_key_pair_invalid_public_key_material_rejected_and_rolled_back.py", "service": "cloudformation__ivs"} {"check_id": "cloudformation__ivs__mediatailor.deploy-ivs-ad-configuration-mediatailor-playback-configuration-round-trip-and-delete", "deployments": [], "key": "cloudformation__ivs__mediatailor/deploy-ivs-ad-configuration-mediatailor-playback-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ivs:GetAdConfiguration", "ivs:GetChannel", "mediatailor:GetPlaybackConfiguration"], "path": "behavioral/cloudformation__ivs__mediatailor/check_deploy_ivs_ad_configuration_mediatailor_playback_configuration_round_trip_and_delete.py", "service": "cloudformation__ivs__mediatailor"} {"check_id": "cloudformation__ivs__mediatailor.deploy-ivs-ad-configuration-wrong-insertion-mode-rejected-with-positive-control", "deployments": [], "key": "cloudformation__ivs__mediatailor/deploy-ivs-ad-configuration-wrong-insertion-mode-rejected-with-positive-control", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ivs:GetAdConfiguration", "mediatailor:GetPlaybackConfiguration"], "path": "behavioral/cloudformation__ivs__mediatailor/check_deploy_ivs_ad_configuration_wrong_insertion_mode_rejected_with_positive_control.py", "service": "cloudformation__ivs__mediatailor"} {"check_id": "cloudformation__ivs__s3.deploy-ivs-recording-configuration-nonexistent-bucket-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__ivs__s3/deploy-ivs-recording-configuration-nonexistent-bucket-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ivs:GetRecordingConfiguration", "s3:GetBucketVersioning"], "path": "behavioral/cloudformation__ivs__s3/check_deploy_ivs_recording_configuration_nonexistent_bucket_rejected_and_rolled_back.py", "service": "cloudformation__ivs__s3"} {"check_id": "cloudformation__ivs__s3.deploy-ivs-recording-configuration-s3-destination-round-trip-and-delete", "deployments": [], "key": "cloudformation__ivs__s3/deploy-ivs-recording-configuration-s3-destination-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ivs:GetRecordingConfiguration", "s3:GetBucketVersioning", "s3:HeadBucket"], "path": "behavioral/cloudformation__ivs__s3/check_deploy_ivs_recording_configuration_s3_destination_round_trip_and_delete.py", "service": "cloudformation__ivs__s3"} {"check_id": "cloudformation__ivschat.cfn-ivschat-room-maximummessagelength-above-schema-max-rejected", "deployments": [], "key": "cloudformation__ivschat/cfn-ivschat-room-maximummessagelength-above-schema-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ivschat:GetRoom"], "path": "behavioral/cloudformation__ivschat/check_cfn_ivschat_room_maximummessagelength_above_schema_max_rejected.py", "service": "cloudformation__ivschat"} {"check_id": "cloudformation__ivschat.deploy-ivschat-logging-configuration-and-room-round-trip-and-delete", "deployments": [], "key": "cloudformation__ivschat/deploy-ivschat-logging-configuration-and-room-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ivschat:GetLoggingConfiguration", "ivschat:GetRoom"], "path": "behavioral/cloudformation__ivschat/check_deploy_ivschat_logging_configuration_and_room_round_trip_and_delete.py", "service": "cloudformation__ivschat"} {"check_id": "cloudformation__kafka.deploy-cfn-msk-serverless-cluster-provisions-and-tears-down", "deployments": [], "key": "cloudformation__kafka/deploy-cfn-msk-serverless-cluster-provisions-and-tears-down", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kafka:DescribeClusterV2"], "path": "behavioral/cloudformation__kafka/check_deploy_cfn_msk_serverless_cluster_provisions_and_tears_down.py", "service": "cloudformation__kafka"} {"check_id": "cloudformation__kafka.deploy-cfn-msk-serverless-cluster-rejects-iam-auth-disabled", "deployments": [], "key": "cloudformation__kafka/deploy-cfn-msk-serverless-cluster-rejects-iam-auth-disabled", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kafka:DescribeClusterV2"], "path": "behavioral/cloudformation__kafka/check_deploy_cfn_msk_serverless_cluster_rejects_iam_auth_disabled.py", "service": "cloudformation__kafka"} {"check_id": "cloudformation__kafka.deploy-msk-configuration-invalid-kafka-version-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__kafka/deploy-msk-configuration-invalid-kafka-version-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kafka:DescribeConfiguration", "kafka:ListKafkaVersions"], "path": "behavioral/cloudformation__kafka/check_deploy_msk_configuration_invalid_kafka_version_rejected_and_rolled_back.py", "service": "cloudformation__kafka"} {"check_id": "cloudformation__kafka.deploy-msk-configuration-round-trip-and-delete", "deployments": [], "key": "cloudformation__kafka/deploy-msk-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kafka:DescribeConfiguration", "kafka:DescribeConfigurationRevision", "kafka:ListKafkaVersions"], "path": "behavioral/cloudformation__kafka/check_deploy_msk_configuration_round_trip_and_delete.py", "service": "cloudformation__kafka"} {"check_id": "cloudformation__kafkaconnect.deploy-kafkaconnect-workerconfiguration-name-too-long-rejected", "deployments": [], "key": "cloudformation__kafkaconnect/deploy-kafkaconnect-workerconfiguration-name-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "kafkaconnect:DescribeWorkerConfiguration"], "path": "behavioral/cloudformation__kafkaconnect/check_deploy_kafkaconnect_workerconfiguration_name_too_long_rejected.py", "service": "cloudformation__kafkaconnect"} {"check_id": "cloudformation__kafkaconnect.deploy-kafkaconnect-workerconfiguration-round-trip-and-delete", "deployments": [], "key": "cloudformation__kafkaconnect/deploy-kafkaconnect-workerconfiguration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kafkaconnect:DescribeWorkerConfiguration"], "path": "behavioral/cloudformation__kafkaconnect/check_deploy_kafkaconnect_workerconfiguration_round_trip_and_delete.py", "service": "cloudformation__kafkaconnect"} {"check_id": "cloudformation__keyspaces.deploy-cassandra-keyspace-table-type-round-trip-and-delete", "deployments": [], "key": "cloudformation__keyspaces/deploy-cassandra-keyspace-table-type-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "keyspaces:GetKeyspace", "keyspaces:GetTable", "keyspaces:GetType"], "path": "behavioral/cloudformation__keyspaces/check_deploy_cassandra_keyspace_table_type_round_trip_and_delete.py", "service": "cloudformation__keyspaces"} {"check_id": "cloudformation__keyspaces.deploy-cassandra-table-missing-keyspace-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__keyspaces/deploy-cassandra-table-missing-keyspace-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "keyspaces:CreateKeyspace", "keyspaces:DeleteKeyspace", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/cloudformation__keyspaces/check_deploy_cassandra_table_missing_keyspace_rejected_and_rolled_back.py", "service": "cloudformation__keyspaces"} {"check_id": "cloudformation__kinesis.cfn-kinesis-stream-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__kinesis/cfn-kinesis-stream-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/cloudformation__kinesis/check_cfn_kinesis_stream_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__kinesis"} {"check_id": "cloudformation__kinesis.cfn-kinesis-stream-name-length-and-pattern-rejected", "deployments": [], "key": "cloudformation__kinesis/cfn-kinesis-stream-name-length-and-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/cloudformation__kinesis/check_cfn_kinesis_stream_name_length_and_pattern_rejected.py", "service": "cloudformation__kinesis"} {"check_id": "cloudformation__kinesis.deploy-cfn-kinesis-channel-provisioned-and-removed", "deployments": [], "key": "cloudformation__kinesis/deploy-cfn-kinesis-channel-provisioned-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:DeleteObjects"], "path": "behavioral/cloudformation__kinesis/check_deploy_cfn_kinesis_channel_provisioned_and_removed.py", "service": "cloudformation__kinesis"} {"check_id": "cloudformation__kinesis.deploy-cfn-kinesis-resourcepolicy-foreign-service-action-rejected", "deployments": [], "key": "cloudformation__kinesis/deploy-cfn-kinesis-resourcepolicy-foreign-service-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy"], "path": "behavioral/cloudformation__kinesis/check_deploy_cfn_kinesis_resourcepolicy_foreign_service_action_rejected.py", "service": "cloudformation__kinesis"} {"check_id": "cloudformation__kinesis.deploy-cfn-kinesis-resourcepolicy-provisioned-and-removed", "deployments": [], "key": "cloudformation__kinesis/deploy-cfn-kinesis-resourcepolicy-provisioned-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy"], "path": "behavioral/cloudformation__kinesis/check_deploy_cfn_kinesis_resourcepolicy_provisioned_and_removed.py", "service": "cloudformation__kinesis"} {"check_id": "cloudformation__kinesis.deploy-cfn-kinesis-streamconsumer-provisioned-and-removed", "deployments": [], "key": "cloudformation__kinesis/deploy-cfn-kinesis-streamconsumer-provisioned-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary"], "path": "behavioral/cloudformation__kinesis/check_deploy_cfn_kinesis_streamconsumer_provisioned_and_removed.py", "service": "cloudformation__kinesis"} {"check_id": "cloudformation__kinesis.deploy-kinesis-stream-value-constraints-rejected", "deployments": [], "key": "cloudformation__kinesis/deploy-kinesis-stream-value-constraints-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "kinesis:DescribeStreamSummary"], "path": "behavioral/cloudformation__kinesis/check_deploy_kinesis_stream_value_constraints_rejected.py", "service": "cloudformation__kinesis"} {"check_id": "cloudformation__kinesisvideo.deploy-kinesisvideo-signalingchannel-round-trip-and-delete", "deployments": [], "key": "cloudformation__kinesisvideo/deploy-kinesisvideo-signalingchannel-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:ListTagsForResource"], "path": "behavioral/cloudformation__kinesisvideo/check_deploy_kinesisvideo_signalingchannel_round_trip_and_delete.py", "service": "cloudformation__kinesisvideo"} {"check_id": "cloudformation__kinesisvideo.deploy-kinesisvideo-stream-round-trip-and-delete", "deployments": [], "key": "cloudformation__kinesisvideo/deploy-kinesisvideo-stream-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesisvideo:DescribeStream", "kinesisvideo:ListTagsForStream"], "path": "behavioral/cloudformation__kinesisvideo/check_deploy_kinesisvideo_stream_round_trip_and_delete.py", "service": "cloudformation__kinesisvideo"} {"check_id": "cloudformation__kms.cfn-kms-alias-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__kms/cfn-kms-alias-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kms:Decrypt", "kms:DeleteAlias", "kms:DescribeKey", "kms:Encrypt", "kms:ListAliases"], "path": "behavioral/cloudformation__kms/check_cfn_kms_alias_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__kms"} {"check_id": "cloudformation__kms.cfn-kms-key-create-update-in-place-multi-region-change-refused-then-delete", "deployments": [], "key": "cloudformation__kms/cfn-kms-key-create-update-in-place-multi-region-change-refused-then-delete", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetKeyRotationStatus"], "path": "behavioral/cloudformation__kms/check_cfn_kms_key_create_update_in_place_multi_region_change_refused_then_delete.py", "service": "cloudformation__kms"} {"check_id": "cloudformation__kms.deploy-kms-replicakey-cfn-non-multiregion-primary-rejected", "deployments": [], "key": "cloudformation__kms/deploy-kms-replicakey-cfn-non-multiregion-primary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/cloudformation__kms/check_deploy_kms_replicakey_cfn_non_multiregion_primary_rejected.py", "service": "cloudformation__kms"} {"check_id": "cloudformation__kms.deploy-kms-replicakey-cfn-provisions-replica-then-tombstones", "deployments": [], "key": "cloudformation__kms/deploy-kms-replicakey-cfn-provisions-replica-then-tombstones", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetKeyPolicy"], "path": "behavioral/cloudformation__kms/check_deploy_kms_replicakey_cfn_provisions_replica_then_tombstones.py", "service": "cloudformation__kms"} {"check_id": "cloudformation__kms__redshift.cfn-redshift-snapshotcopygrant-invalid-kms-key-rejected", "deployments": [], "key": "cloudformation__kms__redshift/cfn-redshift-snapshotcopygrant-invalid-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "redshift:DescribeSnapshotCopyGrants"], "path": "behavioral/cloudformation__kms__redshift/check_cfn_redshift_snapshotcopygrant_invalid_kms_key_rejected.py", "service": "cloudformation__kms__redshift"} {"check_id": "cloudformation__kms__redshift.cfn-redshift-snapshotcopygrant-round-trip-and-delete", "deployments": [], "key": "cloudformation__kms__redshift/cfn-redshift-snapshotcopygrant-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "redshift:DescribeSnapshotCopyGrants"], "path": "behavioral/cloudformation__kms__redshift/check_cfn_redshift_snapshotcopygrant_round_trip_and_delete.py", "service": "cloudformation__kms__redshift"} {"check_id": "cloudformation__kms__s3.cdk-bootstrap-customer-key-disabled-blocks-asset-publish-and-the-deploy", "deployments": ["behavioral/cloudformation__kms__s3/deployments/cdk_customer_key_fn_asset/app.py", "behavioral/cloudformation__kms__s3/deployments/cdk_customer_key_fn_asset/cdk.json", "behavioral/cloudformation__kms__s3/deployments/cdk_customer_key_fn_asset/handler/index.py"], "key": "cloudformation__kms__s3/cdk-bootstrap-customer-key-disabled-blocks-asset-publish-and-the-deploy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "kms:DisableKey", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:HeadObject", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__kms__s3/check_cdk_bootstrap_customer_key_disabled_blocks_asset_publish_and_the_deploy.py", "service": "cloudformation__kms__s3"} {"check_id": "cloudformation__kms__s3.cdk-bootstrap-customer-key-encrypts-the-staging-bucket-and-published-assets", "deployments": ["behavioral/cloudformation__kms__s3/deployments/cdk_customer_key_fn_asset/app.py", "behavioral/cloudformation__kms__s3/deployments/cdk_customer_key_fn_asset/cdk.json", "behavioral/cloudformation__kms__s3/deployments/cdk_customer_key_fn_asset/handler/index.py"], "key": "cloudformation__kms__s3/cdk-bootstrap-customer-key-encrypts-the-staging-bucket-and-published-assets", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:HeadObject", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__kms__s3/check_cdk_bootstrap_customer_key_encrypts_the_staging_bucket_and_published_assets.py", "service": "cloudformation__kms__s3"} {"check_id": "cloudformation__kms__sqs.cdk-deploy-kms-alias-encrypted-queue-names-the-key-and-round-trips-a-message-then-destroyed", "deployments": ["behavioral/cloudformation__kms__sqs/deployments/cdk-kms-sqs/app.py", "behavioral/cloudformation__kms__sqs/deployments/cdk-kms-sqs/cdk.json"], "key": "cloudformation__kms__sqs/cdk-deploy-kms-alias-encrypted-queue-names-the-key-and-round-trips-a-message-then-destroyed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__kms__sqs/check_cdk_deploy_kms_alias_encrypted_queue_names_the_key_and_round_trips_a_message_then_destroyed.py", "service": "cloudformation__kms__sqs"} {"check_id": "cloudformation__lambda.cdk-deploy-hotswap-updates-lambda-code-without-a-stack-update", "deployments": ["behavioral/cloudformation__lambda/deployments/cdk_hotswap/app.py", "behavioral/cloudformation__lambda/deployments/cdk_hotswap/cdk.json"], "key": "cloudformation__lambda/cdk-deploy-hotswap-updates-lambda-code-without-a-stack-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/cloudformation__lambda/check_cdk_deploy_hotswap_updates_lambda_code_without_a_stack_update.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cdk-deploy-lambda-version-alias-invoke-reads-back-configuration", "deployments": ["behavioral/cloudformation__lambda/deployments/cdk_lambda_version_alias/app.py", "behavioral/cloudformation__lambda/deployments/cdk_lambda_version_alias/cdk.json"], "key": "cloudformation__lambda/cdk-deploy-lambda-version-alias-invoke-reads-back-configuration", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListRoles", "lambda:GetAlias", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:GetParameter"], "path": "behavioral/cloudformation__lambda/check_cdk_deploy_lambda_version_alias_invoke_reads_back_configuration.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cdk-hotswap-lambda-code-update-skips-stack-update-timeout-change-falls-back", "deployments": ["behavioral/cloudformation__lambda/deployments/cdk_hotswap_fn/app.py", "behavioral/cloudformation__lambda/deployments/cdk_hotswap_fn/cdk.json"], "key": "cloudformation__lambda/cdk-hotswap-lambda-code-update-skips-stack-update-timeout-change-falls-back", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__lambda/check_cdk_hotswap_lambda_code_update_skips_stack_update_timeout_change_falls_back.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cdk-watch-default-hotswap-ignores-non-hotswappable-property-edit", "deployments": ["behavioral/cloudformation__lambda/deployments/cdk_watch_fn/app.py", "behavioral/cloudformation__lambda/deployments/cdk_watch_fn/cdk.json"], "key": "cloudformation__lambda/cdk-watch-default-hotswap-ignores-non-hotswappable-property-edit", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__lambda/check_cdk_watch_default_hotswap_ignores_non_hotswappable_property_edit.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cdk-watch-lambda-code-edit-hotswaps-then-timeout-edit-falls-back", "deployments": ["behavioral/cloudformation__lambda/deployments/cdk_watch_fn/app.py", "behavioral/cloudformation__lambda/deployments/cdk_watch_fn/cdk.json"], "key": "cloudformation__lambda/cdk-watch-lambda-code-edit-hotswaps-then-timeout-edit-falls-back", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__lambda/check_cdk_watch_lambda_code_edit_hotswaps_then_timeout_edit_falls_back.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-alias-in-place-routing-retained-replacement-invokes-versions-then-not-found", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-alias-in-place-routing-retained-replacement-invokes-versions-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:DeleteAlias", "lambda:GetAlias", "lambda:Invoke"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_alias_in_place_routing_retained_replacement_invokes_versions_then_not_found.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-alias-read-back-and-removed-on-delete", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-alias-read-back-and-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetAlias"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_alias_read_back_and_removed_on_delete.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-detect-stack-resource-drift-unknown-logical-id-rejected", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-detect-stack-resource-drift-unknown-logical-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:DetectStackResourceDrift", "iam:GetRole", "lambda:GetFunction"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_detect_stack_resource_drift_unknown_logical_id_rejected.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-eventinvokeconfig-and-resourcepolicy-read-back-and-removed-on-delete", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-eventinvokeconfig-and-resourcepolicy-read-back-and-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:GetPolicy", "lambda:GetResourcePolicy"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_eventinvokeconfig_and_resourcepolicy_read_back_and_removed_on_delete.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-eventinvokeconfig-maximumretryattempts-above-schema-max-rejected", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-eventinvokeconfig-maximumretryattempts-above-schema-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:GetFunctionEventInvokeConfig"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_eventinvokeconfig_maximumretryattempts_above_schema_max_rejected.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-function-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-function-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_function_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-function-invoke-runs-handler-code-and-reports-unhandled-errors", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-function-invoke-runs-handler-code-and-reports-unhandled-errors", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_function_invoke_runs_handler_code_and_reports_unhandled_errors.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-function-read-back-and-removed-on-delete", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-function-read-back-and-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_function_read_back_and_removed_on_delete.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-layer-version-reads-back-through-lambda-then-not-found-after-delete", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-layer-version-reads-back-through-lambda-then-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "lambda:GetLayerVersionByArn", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_layer_version_reads_back_through_lambda_then_not_found_after_delete.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-memory-size-drift-reports-expected-and-actual", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-memory-size-drift-reports-expected-and-actual", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_memory_size_drift_reports_expected_and_actual.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-permission-read-back-and-removed-on-delete", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-permission-read-back-and-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetPolicy"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_permission_read_back_and_removed_on_delete.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-url-duplicate-on-same-function-rejected", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-url-duplicate-on-same-function-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionUrlConfig"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_url_duplicate_on_same_function_rejected.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-url-reads-back-and-its-removal-leaves-the-function-without-one", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-url-reads-back-and-its-removal-leaves-the-function-without-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionUrlConfig"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_url_reads_back_and_its_removal_leaves_the_function_without_one.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-version-codesha256-mismatch-rejected", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-version-codesha256-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:ListVersionsByFunction", "lambda:PublishVersion"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_version_codesha256_mismatch_rejected.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-version-read-back-and-removed-on-delete", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-version-read-back-and-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunctionConfiguration"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_version_read_back_and_removed_on_delete.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.cfn-lambda-version-runtime-policy-change-refused-retained-replacement-invokes-both-then-not-found", "deployments": [], "key": "cloudformation__lambda/cfn-lambda-version-runtime-policy-change-refused-retained-replacement-invokes-both-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetFunctionConfiguration", "lambda:GetRuntimeManagementConfig", "lambda:Invoke", "lambda:ListVersionsByFunction"], "path": "behavioral/cloudformation__lambda/check_cfn_lambda_version_runtime_policy_change_refused_retained_replacement_invokes_both_then_not_found.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.deploy-lambda-function-recursive-loop-enum-rejected", "deployments": [], "key": "cloudformation__lambda/deploy-lambda-function-recursive-loop-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "lambda:GetFunctionRecursionConfig"], "path": "behavioral/cloudformation__lambda/check_deploy_lambda_function_recursive_loop_enum_rejected.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.deploy-lambda-layerversionpermission-principal-malformed-rejected", "deployments": [], "key": "cloudformation__lambda/deploy-lambda-layerversionpermission-principal-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetLayerVersionPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda/check_deploy_lambda_layerversionpermission_principal_malformed_rejected.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.deploy-lambda-layerversionpermission-round-trip", "deployments": [], "key": "cloudformation__lambda/deploy-lambda-layerversionpermission-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetLayerVersionByArn", "lambda:GetLayerVersionPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda/check_deploy_lambda_layerversionpermission_round_trip.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.output-getatt-on-writeonly-lambda-code-rejected", "deployments": [], "key": "cloudformation__lambda/output-getatt-on-writeonly-lambda-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__lambda/check_output_getatt_on_writeonly_lambda_code_rejected.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.reserved-concurrency-zero-blocks-invoke-through-alias-rejected", "deployments": [], "key": "cloudformation__lambda/reserved-concurrency-zero-blocks-invoke-through-alias-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__lambda/check_reserved_concurrency_zero_blocks_invoke_through_alias_rejected.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.sam-autopublish-codesha256-governs-version-publication", "deployments": ["behavioral/cloudformation__lambda/deployments/sam_autopublish_codesha256/template.yaml"], "key": "cloudformation__lambda/sam-autopublish-codesha256-governs-version-publication", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:UpdateStack", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListVersionsByFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__lambda/check_sam_autopublish_codesha256_governs_version_publication.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.sam-function-globals-autopublishalias-publishes-new-version", "deployments": ["behavioral/cloudformation__lambda/deployments/sam_globals_autopublishalias/template.yaml"], "key": "cloudformation__lambda/sam-function-globals-autopublishalias-publishes-new-version", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:UpdateStack", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListVersionsByFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__lambda/check_sam_function_globals_autopublishalias_publishes_new_version.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.sam-function-url-config-aws-iam-unsigned-forbidden-signed-served", "deployments": ["behavioral/cloudformation__lambda/deployments/sam_function_url_iam/template.yaml"], "key": "cloudformation__lambda/sam-function-url-config-aws-iam-unsigned-forbidden-signed-served", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionUrlConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__lambda/check_sam_function_url_config_aws_iam_unsigned_forbidden_signed_served.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda.sam-globals-function-override-precedence", "deployments": ["behavioral/cloudformation__lambda/deployments/sam_globals_precedence/template.yaml"], "key": "cloudformation__lambda/sam-globals-function-override-precedence", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListTags", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__lambda/check_sam_globals_function_override_precedence.py", "service": "cloudformation__lambda"} {"check_id": "cloudformation__lambda__logs.cdk-lambda-managed-log-group-flag-update-collides-with-service-created-group-rejected", "deployments": ["behavioral/cloudformation__lambda__logs/deployments/cdk_lambda_log_group_flag/app.py", "behavioral/cloudformation__lambda__logs/deployments/cdk_lambda_log_group_flag/cdk.json"], "key": "cloudformation__lambda__logs/cdk-lambda-managed-log-group-flag-update-collides-with-service-created-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__lambda__logs/check_cdk_lambda_managed_log_group_flag_update_collides_with_service_created_group_rejected.py", "service": "cloudformation__lambda__logs"} {"check_id": "cloudformation__lambda__logs.cfn-custom-resource-failure-reason-exact-and-delete-removes-resources", "deployments": [], "key": "cloudformation__lambda__logs/cfn-custom-resource-failure-reason-exact-and-delete-removes-resources", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/cloudformation__lambda__logs/check_cfn_custom_resource_failure_reason_exact_and_delete_removes_resources.py", "service": "cloudformation__lambda__logs"} {"check_id": "cloudformation__lambda__logs.cfn-logs-subscription-filter-missing-permission-rejected-at-create", "deployments": [], "key": "cloudformation__lambda__logs/cfn-logs-subscription-filter-missing-permission-rejected-at-create", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeSubscriptionFilters", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudformation__lambda__logs/check_cfn_logs_subscription_filter_missing_permission_rejected_at_create.py", "service": "cloudformation__lambda__logs"} {"check_id": "cloudformation__lambda__logs.cfn-logs-subscription-filter-reads-back-and-forwards-a-matching-event-to-lambda", "deployments": [], "key": "cloudformation__lambda__logs/cfn-logs-subscription-filter-reads-back-and-forwards-a-matching-event-to-lambda", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeSubscriptionFilters", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudformation__lambda__logs/check_cfn_logs_subscription_filter_reads_back_and_forwards_a_matching_event_to_lambda.py", "service": "cloudformation__lambda__logs"} {"check_id": "cloudformation__lambda__s3.sam-cli-build-deploy-invokes-built-code", "deployments": ["behavioral/cloudformation__lambda__s3/deployments/sam_cli_build_deploy/src/app.py", "behavioral/cloudformation__lambda__s3/deployments/sam_cli_build_deploy/template.yaml"], "key": "cloudformation__lambda__s3/sam-cli-build-deploy-invokes-built-code", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__lambda__s3/check_sam_cli_build_deploy_invokes_built_code.py", "service": "cloudformation__lambda__s3"} {"check_id": "cloudformation__lambda__s3.sam-cli-parameter-overrides-reach-function-and-update", "deployments": ["behavioral/cloudformation__lambda__s3/deployments/sam_cli_parameters/src/app.py", "behavioral/cloudformation__lambda__s3/deployments/sam_cli_parameters/template.yaml"], "key": "cloudformation__lambda__s3/sam-cli-parameter-overrides-reach-function-and-update", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__lambda__s3/check_sam_cli_parameter_overrides_reach_function_and_update.py", "service": "cloudformation__lambda__s3"} {"check_id": "cloudformation__lambda__s3.sam-cli-sync-code-updates-function-without-stack-update", "deployments": ["behavioral/cloudformation__lambda__s3/deployments/sam_cli_sync/src/app.py", "behavioral/cloudformation__lambda__s3/deployments/sam_cli_sync/template.yaml"], "key": "cloudformation__lambda__s3/sam-cli-sync-code-updates-function-without-stack-update", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__lambda__s3/check_sam_cli_sync_code_updates_function_without_stack_update.py", "service": "cloudformation__lambda__s3"} {"check_id": "cloudformation__lambda__s3.sam-layerversion-serves-function-and-outlives-stack", "deployments": ["behavioral/cloudformation__lambda__s3/deployments/sam_layerversion/template.yaml"], "key": "cloudformation__lambda__s3/sam-layerversion-serves-function-and-outlives-stack", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "lambda:DeleteLayerVersion", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetLayerVersion", "lambda:Invoke", "lambda:ListLayerVersions", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda__s3/check_sam_layerversion_serves_function_and_outlives_stack.py", "service": "cloudformation__lambda__s3"} {"check_id": "cloudformation__lambda__s3.sam-s3-event-prefix-filter-invokes-and-filters", "deployments": ["behavioral/cloudformation__lambda__s3/deployments/sam_s3_event/template.yaml"], "key": "cloudformation__lambda__s3/sam-s3-event-prefix-filter-invokes-and-filters", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketNotificationConfiguration", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda__s3/check_sam_s3_event_prefix_filter_invokes_and_filters.py", "service": "cloudformation__lambda__s3"} {"check_id": "cloudformation__lambda__s3.stack-lambda-code-s3key-update-serves-new-code-and-missing-key-rolls-back", "deployments": [], "key": "cloudformation__lambda__s3/stack-lambda-code-s3key-update-serves-new-code-and-missing-key-rolls-back", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetFunction", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda__s3/check_stack_lambda_code_s3key_update_serves_new_code_and_missing_key_rolls_back.py", "service": "cloudformation__lambda__s3"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-custom-resource-lambda-invocation-positive", "deployments": ["behavioral/cloudformation__lambda__s3__sqs/deployments/custom-resource.yaml"], "key": "cloudformation__lambda__s3__sqs/cfn-custom-resource-lambda-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_custom_resource_lambda_invocation_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-deploy-broken-lambda-role-negative", "deployments": ["behavioral/cloudformation__lambda__s3__sqs/deployments/lambda-sqs-broken-perms.yaml"], "key": "cloudformation__lambda__s3__sqs/cfn-deploy-broken-lambda-role-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_deploy_broken_lambda_role_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-deploy-lambda-sqs-stack-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/cfn-deploy-lambda-sqs-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutObject", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_deploy_lambda_sqs_stack_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-deploy-lambda-sqs-stack-prefixed-json-objects-and-attributed-messages", "deployments": [], "key": "cloudformation__lambda__s3__sqs/cfn-deploy-lambda-sqs-stack-prefixed-json-objects-and-attributed-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutObject", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_deploy_lambda_sqs_stack_prefixed_json_objects_and_attributed_messages.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-deploy-s3-notification-sqs-stack-positive", "deployments": ["behavioral/cloudformation__lambda__s3__sqs/deployments/s3-sqs-notification.yaml"], "key": "cloudformation__lambda__s3__sqs/cfn-deploy-s3-notification-sqs-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_deploy_s3_notification_sqs_stack_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-deploy-sqs-event-source-mapping-drives-lambda-into-s3", "deployments": [], "key": "cloudformation__lambda__s3__sqs/cfn-deploy-sqs-event-source-mapping-drives-lambda-into-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutObject", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_deploy_sqs_event_source_mapping_drives_lambda_into_s3.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-invalid-lambda-code-s3-key-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/cfn-invalid-lambda-code-s3-key-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_invalid_lambda_code_s3_key_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-stack-update-lambda-env-positive", "deployments": ["behavioral/cloudformation__lambda__s3__sqs/deployments/lambda-env-update-v1.yaml", "behavioral/cloudformation__lambda__s3__sqs/deployments/lambda-env-update-v2.yaml"], "key": "cloudformation__lambda__s3__sqs/cfn-stack-update-lambda-env-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:Invoke"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_stack_update_lambda_env_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.cfn-template-from-s3-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/cfn-template-from-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_cfn_template_from_s3_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.deploy-cdk-bucket-sqs-notification-prefix-filter-and-auto-delete-objects-on-destroy", "deployments": ["behavioral/cloudformation__lambda__s3__sqs/deployments/cdk_bucket_notification_autodelete/app.py", "behavioral/cloudformation__lambda__s3__sqs/deployments/cdk_bucket_notification_autodelete/cdk.json"], "key": "cloudformation__lambda__s3__sqs/deploy-cdk-bucket-sqs-notification-prefix-filter-and-auto-delete-objects-on-destroy", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListRoles", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_deploy_cdk_bucket_sqs_notification_prefix_filter_and_auto_delete_objects_on_destroy.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.lambda-env-var-queue-url-resolution-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/lambda-env-var-queue-url-resolution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_lambda_env_var_queue_url_resolution_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.lambda-sdk-cfn-describe-stacks-missing-permission-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/lambda-sdk-cfn-describe-stacks-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_lambda_sdk_cfn_describe_stacks_missing_permission_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.lambda-sdk-cfn-describe-stacks-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/lambda-sdk-cfn-describe-stacks-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_lambda_sdk_cfn_describe_stacks_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.lambda-sdk-s3-getobject-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/lambda-sdk-s3-getobject-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_lambda_sdk_s3_getobject_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.lambda-sdk-s3-missing-putobject-permission-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/lambda-sdk-s3-missing-putobject-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_lambda_sdk_s3_missing_putobject_permission_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.lambda-sdk-s3-putobject-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/lambda-sdk-s3-putobject-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_lambda_sdk_s3_putobject_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.lambda-sdk-send-sqs-message-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/lambda-sdk-send-sqs-message-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_lambda_sdk_send_sqs_message_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.lambda-sdk-send-sqs-missing-permission-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/lambda-sdk-send-sqs-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_lambda_sdk_send_sqs_missing_permission_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-bucket-policy-blocks-lambda-getobject-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-bucket-policy-blocks-lambda-getobject-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_bucket_policy_blocks_lambda_getobject_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-notification-event-structure-preserved", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-notification-event-structure-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_notification_event_structure_preserved.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-notification-filter-prefix-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-notification-filter-prefix-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_notification_filter_prefix_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-notification-lambda-missing-resource-policy-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-notification-lambda-missing-resource-policy-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_notification_lambda_missing_resource_policy_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-notification-sqs-missing-policy-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-notification-sqs-missing-policy-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_notification_sqs_missing_policy_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-notification-to-lambda-event-format-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-notification-to-lambda-event-format-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_notification_to_lambda_event_format_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-notification-to-lambda-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-notification-to-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_notification_to_lambda_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-notification-to-sqs-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-notification-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_notification_to_sqs_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.s3-to-sqs-to-lambda-pipeline-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/s3-to-sqs-to-lambda-pipeline-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_s3_to_sqs_to_lambda_pipeline_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.sqs-esm-batch-attributes-preserved", "deployments": [], "key": "cloudformation__lambda__s3__sqs/sqs-esm-batch-attributes-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_sqs_esm_batch_attributes_preserved.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.sqs-esm-lambda-partial-batch-response-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/sqs-esm-lambda-partial-batch-response-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_sqs_esm_lambda_partial_batch_response_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.sqs-esm-lambda-trigger-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/sqs-esm-lambda-trigger-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_sqs_esm_lambda_trigger_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.sqs-esm-missing-receive-permission-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/sqs-esm-missing-receive-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_sqs_esm_missing_receive_permission_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.sqs-queue-policy-blocks-lambda-send-negative", "deployments": [], "key": "cloudformation__lambda__s3__sqs/sqs-queue-policy-blocks-lambda-send-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_sqs_queue_policy_blocks_lambda_send_negative.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__s3__sqs.sqs-to-lambda-to-s3-pipeline-positive", "deployments": [], "key": "cloudformation__lambda__s3__sqs/sqs-to-lambda-to-s3-pipeline-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__s3__sqs/check_sqs_to_lambda_to_s3_pipeline_positive.py", "service": "cloudformation__lambda__s3__sqs"} {"check_id": "cloudformation__lambda__secretsmanager.cfn-lambda-env-secretsmanager-missing-json-key-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__lambda__secretsmanager/cfn-lambda-env-secretsmanager-missing-json-key-rejected-and-rolled-back", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:Invoke", "lambda:ListFunctions", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/cloudformation__lambda__secretsmanager/check_cfn_lambda_env_secretsmanager_missing_json_key_rejected_and_rolled_back.py", "service": "cloudformation__lambda__secretsmanager"} {"check_id": "cloudformation__lambda__signer.deploy-lambda-codesigningconfig-round-trip", "deployments": [], "key": "cloudformation__lambda__signer/deploy-lambda-codesigningconfig-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetCodeSigningConfig", "signer:GetSigningProfile"], "path": "behavioral/cloudformation__lambda__signer/check_deploy_lambda_codesigningconfig_round_trip.py", "service": "cloudformation__lambda__signer"} {"check_id": "cloudformation__lambda__signer.deploy-lambda-codesigningconfig-signingprofilearn-malformed-rejected", "deployments": [], "key": "cloudformation__lambda__signer/deploy-lambda-codesigningconfig-signingprofilearn-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetCodeSigningConfig", "signer:GetSigningProfile"], "path": "behavioral/cloudformation__lambda__signer/check_deploy_lambda_codesigningconfig_signingprofilearn_malformed_rejected.py", "service": "cloudformation__lambda__signer"} {"check_id": "cloudformation__lambda__sqs.cdk-deploy-lambda-sqs-event-source-processes-and-drains", "deployments": ["behavioral/cloudformation__lambda__sqs/deployments/cdk_lambda_sqs_processor/app.py", "behavioral/cloudformation__lambda__sqs/deployments/cdk_lambda_sqs_processor/cdk.json"], "key": "cloudformation__lambda__sqs/cdk-deploy-lambda-sqs-event-source-processes-and-drains", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListRoles", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:GetParameter"], "path": "behavioral/cloudformation__lambda__sqs/check_cdk_deploy_lambda_sqs_event_source_processes_and_drains.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.cfn-custom-resource-create-delete-lifecycle-signals", "deployments": ["behavioral/cloudformation__lambda__sqs/deployments/custom-resource-response-status.yaml"], "key": "cloudformation__lambda__sqs/cfn-custom-resource-create-delete-lifecycle-signals", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__sqs/check_cfn_custom_resource_create_delete_lifecycle_signals.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.cfn-custom-resource-failed-response-rollback-negative", "deployments": ["behavioral/cloudformation__lambda__sqs/deployments/custom-resource-response-status.yaml"], "key": "cloudformation__lambda__sqs/cfn-custom-resource-failed-response-rollback-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__lambda__sqs/check_cfn_custom_resource_failed_response_rollback_negative.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.cfn-lambda-sqs-event-source-mapping-in-place-batch-retained-replacement-both-deliver-then-not-found", "deployments": [], "key": "cloudformation__lambda__sqs/cfn-lambda-sqs-event-source-mapping-in-place-batch-retained-replacement-both-deliver-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:DeleteEventSourceMapping", "lambda:GetEventSourceMapping", "lambda:ListEventSourceMappings", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__sqs/check_cfn_lambda_sqs_event_source_mapping_in_place_batch_retained_replacement_both_deliver_then_not_found.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.cfn-sqs-esm-create-list-delete-lifecycle", "deployments": [], "key": "cloudformation__lambda__sqs/cfn-sqs-esm-create-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetEventSourceMapping", "lambda:ListEventSourceMappings"], "path": "behavioral/cloudformation__lambda__sqs/check_cfn_sqs_esm_create_list_delete_lifecycle.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.cfn-sqs-esm-filter-criteria-drops-non-matching-message-without-invoking", "deployments": [], "key": "cloudformation__lambda__sqs/cfn-sqs-esm-filter-criteria-drops-non-matching-message-without-invoking", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__sqs/check_cfn_sqs_esm_filter_criteria_drops_non_matching_message_without_invoking.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.deploy-cloudformation-2-lambdahook-rejects-deny-queue", "deployments": [], "key": "cloudformation__lambda__sqs/deploy-cloudformation-2-lambdahook-rejects-deny-queue", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__sqs/check_deploy_cloudformation_2_lambdahook_rejects_deny_queue.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.sam-sqs-dlq-poison-message-redriven-after-retries", "deployments": ["behavioral/cloudformation__lambda__sqs/deployments/sam_sqs_dlq/template.yaml"], "key": "cloudformation__lambda__sqs/sam-sqs-dlq-poison-message-redriven-after-retries", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__lambda__sqs/check_sam_sqs_dlq_poison_message_redriven_after_retries.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.serverless-sqs-event-filter-criteria-blocks-nonmatching-message", "deployments": [], "key": "cloudformation__lambda__sqs/serverless-sqs-event-filter-criteria-blocks-nonmatching-message", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "s3:GetBucketVersioning", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__sqs/check_serverless_sqs_event_filter_criteria_blocks_nonmatching_message.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs.serverless-sqs-event-processes-message-and-drains-queue", "deployments": [], "key": "cloudformation__lambda__sqs/serverless-sqs-event-processes-message-and-drains-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "s3:GetBucketVersioning", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:SendMessage"], "path": "behavioral/cloudformation__lambda__sqs/check_serverless_sqs_event_processes_message_and_drains_queue.py", "service": "cloudformation__lambda__sqs"} {"check_id": "cloudformation__lambda__sqs__ssm.cfn-sqs-event-source-mapping-create-rejects-a-role-without-receive-permission", "deployments": [], "key": "cloudformation__lambda__sqs__ssm/cfn-sqs-event-source-mapping-create-rejects-a-role-without-receive-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:SendMessage", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__lambda__sqs__ssm/check_cfn_sqs_event_source_mapping_create_rejects_a_role_without_receive_permission.py", "service": "cloudformation__lambda__sqs__ssm"} {"check_id": "cloudformation__lambda__sqs__ssm.sam-sqs-event-creates-esm-that-consumes", "deployments": ["behavioral/cloudformation__lambda__sqs__ssm/deployments/sam_sqs_event/template.yaml"], "key": "cloudformation__lambda__sqs__ssm/sam-sqs-event-creates-esm-that-consumes", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "lambda:GetEventSourceMapping", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__lambda__sqs__ssm/check_sam_sqs_event_creates_esm_that_consumes.py", "service": "cloudformation__lambda__sqs__ssm"} {"check_id": "cloudformation__lambda__sqs__ssm.sam-sqs-event-role-without-queue-access-fails-the-mapping-create", "deployments": ["behavioral/cloudformation__lambda__sqs__ssm/deployments/sam_sqs_event_explicit_role/template.yaml"], "key": "cloudformation__lambda__sqs__ssm/sam-sqs-event-role-without-queue-access-fails-the-mapping-create", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__lambda__sqs__ssm/check_sam_sqs_event_role_without_queue_access_fails_the_mapping_create.py", "service": "cloudformation__lambda__sqs__ssm"} {"check_id": "cloudformation__lambda__ssm.cdk-custom-resource-lifecycle-wires-response-field-and-rejects-conflict", "deployments": ["behavioral/cloudformation__lambda__ssm/deployments/cdk_custom_resource_ssm/app.py", "behavioral/cloudformation__lambda__ssm/deployments/cdk_custom_resource_ssm/cdk.json"], "key": "cloudformation__lambda__ssm/cdk-custom-resource-lifecycle-wires-response-field-and-rejects-conflict", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:DescribeRepositories", "iam:ListRoles", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__lambda__ssm/check_cdk_custom_resource_lifecycle_wires_response_field_and_rejects_conflict.py", "service": "cloudformation__lambda__ssm"} {"check_id": "cloudformation__lambda__ssm.cdk-custom-resource-onevent-raise-create-failed-rolls-back-cleanly", "deployments": ["behavioral/cloudformation__lambda__ssm/deployments/cdk_cr_onevent_raises/app.py", "behavioral/cloudformation__lambda__ssm/deployments/cdk_cr_onevent_raises/cdk.json"], "key": "cloudformation__lambda__ssm/cdk-custom-resource-onevent-raise-create-failed-rolls-back-cleanly", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecr:DescribeRepositories", "iam:ListRoles", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "ssm:DeleteParameter", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__lambda__ssm/check_cdk_custom_resource_onevent_raise_create_failed_rolls_back_cleanly.py", "service": "cloudformation__lambda__ssm"} {"check_id": "cloudformation__lambda__ssm.cfn-lambda-env-ssm-dynamic-reference-and-parameter-type-resolve-and-update", "deployments": [], "key": "cloudformation__lambda__ssm/cfn-lambda-env-ssm-dynamic-reference-and-parameter-type-resolve-and-update", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "ssm:DeleteParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__lambda__ssm/check_cfn_lambda_env_ssm_dynamic_reference_and_parameter_type_resolve_and_update.py", "service": "cloudformation__lambda__ssm"} {"check_id": "cloudformation__lambda__ssm.cfn-lambda-env-ssm-missing-dynamic-reference-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__lambda__ssm/cfn-lambda-env-ssm-missing-dynamic-reference-rejected-and-rolled-back", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:Invoke", "lambda:ListFunctions", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__lambda__ssm/check_cfn_lambda_env_ssm_missing_dynamic_reference_rejected_and_rolled_back.py", "service": "cloudformation__lambda__ssm"} {"check_id": "cloudformation__lambda__ssm.cfn-macro-transform-injects-working-resource", "deployments": ["behavioral/cloudformation__lambda__ssm/deployments/macro-consumer.yaml", "behavioral/cloudformation__lambda__ssm/deployments/macro-registration.yaml"], "key": "cloudformation__lambda__ssm/cfn-macro-transform-injects-working-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:ListStackResources", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__lambda__ssm/check_cfn_macro_transform_injects_working_resource.py", "service": "cloudformation__lambda__ssm"} {"check_id": "cloudformation__lambda__ssm.cfn-ssm-parameter-type-resolution-and-rule-assertion-negative", "deployments": ["behavioral/cloudformation__lambda__ssm/deployments/ssm-parameter-type-bootstrap-rule.yaml"], "key": "cloudformation__lambda__ssm/cfn-ssm-parameter-type-resolution-and-rule-assertion-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:Invoke", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__lambda__ssm/check_cfn_ssm_parameter_type_resolution_and_rule_assertion_negative.py", "service": "cloudformation__lambda__ssm"} {"check_id": "cloudformation__lambda__ssm.sam-ssm-parameter-read-policy-other-parameter-denied", "deployments": ["behavioral/cloudformation__lambda__ssm/deployments/sam_ssm_read_policy/template.yaml"], "key": "cloudformation__lambda__ssm/sam-ssm-parameter-read-policy-other-parameter-denied", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__lambda__ssm/check_sam_ssm_parameter_read_policy_other_parameter_denied.py", "service": "cloudformation__lambda__ssm"} {"check_id": "cloudformation__lambda__stepfunctions.deploy-cdk-lambda-invoke-task-ends-execution-succeeded-with-function-output", "deployments": ["behavioral/cloudformation__lambda__stepfunctions/deployments/sfn_lambda_invoke/app.py", "behavioral/cloudformation__lambda__stepfunctions/deployments/sfn_lambda_invoke/cdk.json"], "key": "cloudformation__lambda__stepfunctions/deploy-cdk-lambda-invoke-task-ends-execution-succeeded-with-function-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListRoles", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudformation__lambda__stepfunctions/check_deploy_cdk_lambda_invoke_task_ends_execution_succeeded_with_function_output.py", "service": "cloudformation__lambda__stepfunctions"} {"check_id": "cloudformation__lambda__stepfunctions.deploy-cdk-state-machine-lambda-invoke-denied-fails", "deployments": ["behavioral/cloudformation__lambda__stepfunctions/deployments/sfn_lambda_invoke/app.py", "behavioral/cloudformation__lambda__stepfunctions/deployments/sfn_lambda_invoke/cdk.json"], "key": "cloudformation__lambda__stepfunctions/deploy-cdk-state-machine-lambda-invoke-denied-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudformation__lambda__stepfunctions/check_deploy_cdk_state_machine_lambda_invoke_denied_fails.py", "service": "cloudformation__lambda__stepfunctions"} {"check_id": "cloudformation__lambda__stepfunctions.deploy-lambda-memorysize-over-the-maximum-rejected-at-stack-create", "deployments": [], "key": "cloudformation__lambda__stepfunctions/deploy-lambda-memorysize-over-the-maximum-rejected-at-stack-create", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "stepfunctions:DescribeStateMachine"], "path": "behavioral/cloudformation__lambda__stepfunctions/check_deploy_lambda_memorysize_over_the_maximum_rejected_at_stack_create.py", "service": "cloudformation__lambda__stepfunctions"} {"check_id": "cloudformation__lambda__stepfunctions.sam-statemachine-invalid-definition-stack-create-rejected", "deployments": ["behavioral/cloudformation__lambda__stepfunctions/deployments/sam_statemachine_invalid_definition/template.yaml", "behavioral/cloudformation__lambda__stepfunctions/deployments/sam_statemachine_invoke/template.yaml"], "key": "cloudformation__lambda__stepfunctions/sam-statemachine-invalid-definition-stack-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:DescribeStateMachine"], "path": "behavioral/cloudformation__lambda__stepfunctions/check_sam_statemachine_invalid_definition_stack_create_rejected.py", "service": "cloudformation__lambda__stepfunctions"} {"check_id": "cloudformation__lambda__stepfunctions.sam-statemachine-invokes-function-startexecution-succeeded", "deployments": ["behavioral/cloudformation__lambda__stepfunctions/deployments/sam_statemachine_invoke/template.yaml"], "key": "cloudformation__lambda__stepfunctions/sam-statemachine-invokes-function-startexecution-succeeded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudformation__lambda__stepfunctions/check_sam_statemachine_invokes_function_startexecution_succeeded.py", "service": "cloudformation__lambda__stepfunctions"} {"check_id": "cloudformation__lexv2-models.cfn-lex-bot-duplicate-name-rejected-leaving-the-original", "deployments": [], "key": "cloudformation__lexv2-models/cfn-lex-bot-duplicate-name-rejected-leaving-the-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lexv2-models:DescribeBot", "lexv2-models:ListBots"], "path": "behavioral/cloudformation__lexv2-models/check_cfn_lex_bot_duplicate_name_rejected_leaving_the_original.py", "service": "cloudformation__lexv2-models"} {"check_id": "cloudformation__lexv2-models.cfn-lex-bot-properties-and-getatt-read-back-then-resource-not-found-after-delete", "deployments": [], "key": "cloudformation__lexv2-models/cfn-lex-bot-properties-and-getatt-read-back-then-resource-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "lexv2-models:DescribeBot", "lexv2-models:ListBots"], "path": "behavioral/cloudformation__lexv2-models/check_cfn_lex_bot_properties_and_getatt_read_back_then_resource_not_found_after_delete.py", "service": "cloudformation__lexv2-models"} {"check_id": "cloudformation__lexv2-models.cfn-lex-bot-version-and-alias-read-back-then-resource-not-found-after-delete", "deployments": [], "key": "cloudformation__lexv2-models/cfn-lex-bot-version-and-alias-read-back-then-resource-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotAlias", "lexv2-models:DescribeBotLocale", "lexv2-models:DescribeBotVersion", "lexv2-models:ListBotAliases", "lexv2-models:ListIntents"], "path": "behavioral/cloudformation__lexv2-models/check_cfn_lex_bot_version_and_alias_read_back_then_resource_not_found_after_delete.py", "service": "cloudformation__lexv2-models"} {"check_id": "cloudformation__lexv2-models.cfn-lex-resource-policy-read-back-then-resource-not-found-after-delete", "deployments": [], "key": "cloudformation__lexv2-models/cfn-lex-resource-policy-read-back-then-resource-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lexv2-models:DescribeBot", "lexv2-models:DescribeResourcePolicy", "lexv2-models:ListBots"], "path": "behavioral/cloudformation__lexv2-models/check_cfn_lex_resource_policy_read_back_then_resource_not_found_after_delete.py", "service": "cloudformation__lexv2-models"} {"check_id": "cloudformation__lightsail.deploy-lightsail-keypair-invalid-name-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__lightsail/deploy-lightsail-keypair-invalid-name-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__lightsail/check_deploy_lightsail_keypair_invalid_name_rejected_and_rolled_back.py", "service": "cloudformation__lightsail"} {"check_id": "cloudformation__lightsail.deploy-lightsail-keypair-round-trip-and-delete", "deployments": [], "key": "cloudformation__lightsail/deploy-lightsail-keypair-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lightsail:GetKeyPair"], "path": "behavioral/cloudformation__lightsail/check_deploy_lightsail_keypair_round_trip_and_delete.py", "service": "cloudformation__lightsail"} {"check_id": "cloudformation__lightsail.deploy-lightsail-static-ip-round-trip-and-delete", "deployments": [], "key": "cloudformation__lightsail/deploy-lightsail-static-ip-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lightsail:GetStaticIp"], "path": "behavioral/cloudformation__lightsail/check_deploy_lightsail_static_ip_round_trip_and_delete.py", "service": "cloudformation__lightsail"} {"check_id": "cloudformation__location.deploy-location-geofencecollection-nonexistent-kms-key-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__location/deploy-location-geofencecollection-nonexistent-kms-key-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "location:DescribeGeofenceCollection", "location:ListTagsForResource"], "path": "behavioral/cloudformation__location/check_deploy_location_geofencecollection_nonexistent_kms_key_rejected_and_rolled_back.py", "service": "cloudformation__location"} {"check_id": "cloudformation__location.deploy-location-map-and-apikey-restricted-to-map-round-trip-and-delete", "deployments": [], "key": "cloudformation__location/deploy-location-map-and-apikey-restricted-to-map-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "location:DescribeKey", "location:DescribeMap", "location:ListTagsForResource"], "path": "behavioral/cloudformation__location/check_deploy_location_map_and_apikey_restricted_to_map_round_trip_and_delete.py", "service": "cloudformation__location"} {"check_id": "cloudformation__location.deploy-location-placeindex-round-trip-and-delete", "deployments": [], "key": "cloudformation__location/deploy-location-placeindex-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "location:DescribePlaceIndex", "location:ListTagsForResource"], "path": "behavioral/cloudformation__location/check_deploy_location_placeindex_round_trip_and_delete.py", "service": "cloudformation__location"} {"check_id": "cloudformation__location.deploy-location-routecalculator-round-trip-and-delete", "deployments": [], "key": "cloudformation__location/deploy-location-routecalculator-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "location:DescribeRouteCalculator", "location:ListTagsForResource"], "path": "behavioral/cloudformation__location/check_deploy_location_routecalculator_round_trip_and_delete.py", "service": "cloudformation__location"} {"check_id": "cloudformation__location.deploy-location-routecalculator-unsupported-data-source-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__location/deploy-location-routecalculator-unsupported-data-source-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "location:DescribeRouteCalculator", "location:ListTagsForResource"], "path": "behavioral/cloudformation__location/check_deploy_location_routecalculator_unsupported_data_source_rejected_and_rolled_back.py", "service": "cloudformation__location"} {"check_id": "cloudformation__location.deploy-location-tracker-geofencecollection-and-consumer-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__location/deploy-location-tracker-geofencecollection-and-consumer-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "location:DescribeGeofenceCollection", "location:DescribeTracker", "location:ListTagsForResource"], "path": "behavioral/cloudformation__location/check_deploy_location_tracker_geofencecollection_and_consumer_association_round_trip_and_delete.py", "service": "cloudformation__location"} {"check_id": "cloudformation__logs.cfn-logs-account-policy-and-storage-tier-policy-singleton-round-trip", "deployments": [], "key": "cloudformation__logs/cfn-logs-account-policy-and-storage-tier-policy-singleton-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:GetStorageTierPolicy"], "path": "behavioral/cloudformation__logs/check_cfn_logs_account_policy_and_storage_tier_policy_singleton_round_trip.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-delivery-source-destination-and-delivery-round-trip-then-delete", "deployments": [], "key": "cloudformation__logs/cfn-logs-delivery-source-destination-and-delivery-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:GetDelivery", "logs:GetDeliveryDestination", "logs:GetDeliverySource", "logs:ListTagsForResource"], "path": "behavioral/cloudformation__logs/check_cfn_logs_delivery_source_destination_and_delivery_round_trip_then_delete.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-delivery-source-invalid-log-type-rejected", "deployments": [], "key": "cloudformation__logs/cfn-logs-delivery-source-invalid-log-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:GetDeliverySource"], "path": "behavioral/cloudformation__logs/check_cfn_logs_delivery_source_invalid_log_type_rejected.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-log-group-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__logs/cfn-logs-log-group-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudformation__logs/check_cfn_logs_log_group_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-log-group-retention-and-getatt-read-back-then-not-found-after-delete", "deployments": [], "key": "cloudformation__logs/cfn-logs-log-group-retention-and-getatt-read-back-then-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "logs:DescribeLogGroups", "logs:PutLogEvents"], "path": "behavioral/cloudformation__logs/check_cfn_logs_log_group_retention_and_getatt_read_back_then_not_found_after_delete.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-log-stream-retained-replacement-keeps-events-then-not-found", "deployments": [], "key": "cloudformation__logs/cfn-logs-log-stream-retained-replacement-keeps-events-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudformation__logs/check_cfn_logs_log_stream_retained_replacement_keeps_events_then_not_found.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-loggroup-getatt-unknown-attribute-rejected-rolls-back", "deployments": [], "key": "cloudformation__logs/cfn-logs-loggroup-getatt-unknown-attribute-rejected-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ValidateTemplate", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__logs/check_cfn_logs_loggroup_getatt_unknown_attribute_rejected_rolls_back.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-loggroup-readonly-arn-ignored-and-ref-getatt-match-logs", "deployments": [], "key": "cloudformation__logs/cfn-logs-loggroup-readonly-arn-ignored-and-ref-getatt-match-logs", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:PutLogEvents"], "path": "behavioral/cloudformation__logs/check_cfn_logs_loggroup_readonly_arn_ignored_and_ref_getatt_match_logs.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-metric-filter-in-place-update-delete-first-replacement-ignores-retain-then-gone", "deployments": [], "key": "cloudformation__logs/cfn-logs-metric-filter-in-place-update-delete-first-replacement-ignores-retain-then-gone", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:TestMetricFilter"], "path": "behavioral/cloudformation__logs/check_cfn_logs_metric_filter_in_place_update_delete_first_replacement_ignores_retain_then_gone.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-metric-filter-reads-back-and-its-removal-leaves-the-log-group-without-it", "deployments": [], "key": "cloudformation__logs/cfn-logs-metric-filter-reads-back-and-its-removal-leaves-the-log-group-without-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:DescribeMetricFilters"], "path": "behavioral/cloudformation__logs/check_cfn_logs_metric_filter_reads_back_and_its_removal_leaves_the_log_group_without_it.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-metricfilter-dimension-unsupported-property-rejected", "deployments": [], "key": "cloudformation__logs/cfn-logs-metricfilter-dimension-unsupported-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "logs:DescribeMetricFilters"], "path": "behavioral/cloudformation__logs/check_cfn_logs_metricfilter_dimension_unsupported_property_rejected.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-logs-metricfilter-schema-structure-rejected", "deployments": [], "key": "cloudformation__logs/cfn-logs-metricfilter-schema-structure-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "logs:DescribeMetricFilters"], "path": "behavioral/cloudformation__logs/check_cfn_logs_metricfilter_schema_structure_rejected.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.cfn-metric-filter-name-string-constraints-rejected", "deployments": [], "key": "cloudformation__logs/cfn-metric-filter-name-string-constraints-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeMetricFilters"], "path": "behavioral/cloudformation__logs/check_cfn_metric_filter_name_string_constraints_rejected.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.deploy-logs-anomaly-detector-invalid-evaluationfrequency-rejected", "deployments": [], "key": "cloudformation__logs/deploy-logs-anomaly-detector-invalid-evaluationfrequency-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__logs/check_deploy_logs_anomaly_detector_invalid_evaluationfrequency_rejected.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.deploy-logs-anomaly-query-transformer-round-trip-then-child-and-stack-delete", "deployments": [], "key": "cloudformation__logs/deploy-logs-anomaly-query-transformer-round-trip-then-child-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:DescribeQueryDefinitions", "logs:GetLogAnomalyDetector", "logs:GetTransformer"], "path": "behavioral/cloudformation__logs/check_deploy_logs_anomaly_query_transformer_round_trip_then_child_and_stack_delete.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.deploy-logs-log-group-name-change-replaces-retention-change-updates-in-place", "deployments": [], "key": "cloudformation__logs/deploy-logs-log-group-name-change-replaces-retention-change-updates-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__logs/check_deploy_logs_log_group_name_change_replaces_retention_change_updates_in_place.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.deploy-logs-log-group-rename-collision-blocks-replacement-rolls-back", "deployments": [], "key": "cloudformation__logs/deploy-logs-log-group-rename-collision-blocks-replacement-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__logs/check_deploy_logs_log_group_rename_collision_blocks_replacement_rolls_back.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.deploy-logs-loggroup-logstream-metricfilter-round-trip-then-child-and-stack-delete", "deployments": [], "key": "cloudformation__logs/deploy-logs-loggroup-logstream-metricfilter-round-trip-then-child-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:ListTagsForResource"], "path": "behavioral/cloudformation__logs/check_deploy_logs_loggroup_logstream_metricfilter_round_trip_then_child_and_stack_delete.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.deploy-logs-resourcepolicy-round-trip-then-stack-delete", "deployments": [], "key": "cloudformation__logs/deploy-logs-resourcepolicy-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__logs/check_deploy_logs_resourcepolicy_round_trip_then_stack_delete.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.deploy-logs-scheduledquery-round-trip-then-child-and-stack-delete", "deployments": [], "key": "cloudformation__logs/deploy-logs-scheduledquery-round-trip-then-child-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:GetScheduledQuery"], "path": "behavioral/cloudformation__logs/check_deploy_logs_scheduledquery_round_trip_then_child_and_stack_delete.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.log-group-invalid-retention-update-rejected-rolls-back", "deployments": [], "key": "cloudformation__logs/log-group-invalid-retention-update-rejected-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:DescribeLogGroups"], "path": "behavioral/cloudformation__logs/check_log_group_invalid_retention_update_rejected_rolls_back.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.metric-filter-tags-property-rejected-rolls-back-stack", "deployments": [], "key": "cloudformation__logs/metric-filter-tags-property-rejected-rolls-back-stack", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "logs:DescribeLogGroups", "logs:DescribeMetricFilters"], "path": "behavioral/cloudformation__logs/check_metric_filter_tags_property_rejected_rolls_back_stack.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs.stack-tags-propagate-with-system-tags-and-non-taggable-filter-deploys", "deployments": [], "key": "cloudformation__logs/stack-tags-propagate-with-system-tags-and-non-taggable-filter-deploys", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:DescribeLogGroups", "logs:DescribeMetricFilters", "logs:ListTagsForResource"], "path": "behavioral/cloudformation__logs/check_stack_tags_propagate_with_system_tags_and_non_taggable_filter_deploys.py", "service": "cloudformation__logs"} {"check_id": "cloudformation__logs__vpc-lattice.deploy-vpclattice-access-log-subscription-missing-log-group-rejected", "deployments": [], "key": "cloudformation__logs__vpc-lattice/deploy-vpclattice-access-log-subscription-missing-log-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__logs__vpc-lattice/check_deploy_vpclattice_access_log_subscription_missing_log_group_rejected.py", "service": "cloudformation__logs__vpc-lattice"} {"check_id": "cloudformation__logs__vpc-lattice.deploy-vpclattice-access-log-subscription-round-trip-and-delete", "deployments": [], "key": "cloudformation__logs__vpc-lattice/deploy-vpclattice-access-log-subscription-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:ListTagsForResource", "vpc-lattice:GetAccessLogSubscription", "vpc-lattice:GetServiceNetwork"], "path": "behavioral/cloudformation__logs__vpc-lattice/check_deploy_vpclattice_access_log_subscription_round_trip_and_delete.py", "service": "cloudformation__logs__vpc-lattice"} {"check_id": "cloudformation__mailmanager.deploy-mailmanager-addresslist-archive-relay-functional", "deployments": [], "key": "cloudformation__mailmanager/deploy-mailmanager-addresslist-archive-relay-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mailmanager:GetAddressList", "mailmanager:GetArchive", "mailmanager:GetRelay", "mailmanager:ListTagsForResource"], "path": "behavioral/cloudformation__mailmanager/check_deploy_mailmanager_addresslist_archive_relay_round_trip_and_delete.py", "service": "cloudformation__mailmanager"} {"check_id": "cloudformation__mailmanager.deploy-mailmanager-duplicate-address-list-name-rejected", "deployments": [], "key": "cloudformation__mailmanager/deploy-mailmanager-duplicate-address-list-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mailmanager:GetAddressList", "mailmanager:ListTagsForResource"], "path": "behavioral/cloudformation__mailmanager/check_deploy_mailmanager_duplicate_address_list_name_rejected.py", "service": "cloudformation__mailmanager"} {"check_id": "cloudformation__mailmanager.deploy-mailmanager-ruleset-and-trafficpolicy-functional", "deployments": [], "key": "cloudformation__mailmanager/deploy-mailmanager-ruleset-and-trafficpolicy-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mailmanager:GetRuleSet", "mailmanager:GetTrafficPolicy", "mailmanager:ListTagsForResource"], "path": "behavioral/cloudformation__mailmanager/check_deploy_mailmanager_ruleset_and_trafficpolicy_round_trip_and_delete.py", "service": "cloudformation__mailmanager"} {"check_id": "cloudformation__mediaconvert.deploy-mediaconvert-queue-jobtemplate-preset-round-trip-and-delete", "deployments": [], "key": "cloudformation__mediaconvert/deploy-mediaconvert-queue-jobtemplate-preset-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "mediaconvert:GetJobTemplate", "mediaconvert:GetPreset", "mediaconvert:GetQueue", "mediaconvert:ListTagsForResource"], "path": "behavioral/cloudformation__mediaconvert/check_deploy_mediaconvert_queue_jobtemplate_preset_round_trip_and_delete.py", "service": "cloudformation__mediaconvert"} {"check_id": "cloudformation__mediaconvert.deploy-mediaconvert-queue-reserved-pricing-plan-rejected", "deployments": [], "key": "cloudformation__mediaconvert/deploy-mediaconvert-queue-reserved-pricing-plan-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mediaconvert:GetQueue"], "path": "behavioral/cloudformation__mediaconvert/check_deploy_mediaconvert_queue_reserved_pricing_plan_rejected.py", "service": "cloudformation__mediaconvert"} {"check_id": "cloudformation__medialive.deploy-medialive-channel-round-trip-and-delete", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-channel-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medialive:DescribeChannel", "medialive:DescribeInput"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_channel_round_trip_and_delete.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__medialive.deploy-medialive-cloudwatch-alarm-template-group-and-template-round-trip-and-delete", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-cloudwatch-alarm-template-group-and-template-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "medialive:GetCloudWatchAlarmTemplate", "medialive:GetCloudWatchAlarmTemplateGroup"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_cloudwatch_alarm_template_group_and_template_round_trip_and_delete.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__medialive.deploy-medialive-cloudwatch-alarm-template-invalid-comparison-operator-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-cloudwatch-alarm-template-invalid-comparison-operator-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medialive:GetCloudWatchAlarmTemplate"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_cloudwatch_alarm_template_invalid_comparison_operator_rejected_and_rolled_back.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__medialive.deploy-medialive-cluster-and-channel-placement-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-cluster-and-channel-placement-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medialive:DescribeChannelPlacementGroup", "medialive:DescribeCluster", "medialive:DescribeNetwork"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_cluster_and_channel_placement_group_round_trip_and_delete.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__medialive.deploy-medialive-eventbridge-rule-template-group-and-template-round-trip-and-delete", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-eventbridge-rule-template-group-and-template-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medialive:GetEventBridgeRuleTemplate", "medialive:GetEventBridgeRuleTemplateGroup"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_eventbridge_rule_template_group_and_template_round_trip_and_delete.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__medialive.deploy-medialive-eventbridge-rule-template-invalid-event-type-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-eventbridge-rule-template-invalid-event-type-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medialive:GetEventBridgeRuleTemplate"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_eventbridge_rule_template_invalid_event_type_rejected_and_rolled_back.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__medialive.deploy-medialive-network-round-trip-and-delete", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-network-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medialive:DescribeNetwork"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_network_round_trip_and_delete.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__medialive.deploy-medialive-sdi-source-round-trip-and-delete", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-sdi-source-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medialive:DescribeSdiSource"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_sdi_source_round_trip_and_delete.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__medialive.deploy-medialive-signal-map-round-trip-and-delete", "deployments": [], "key": "cloudformation__medialive/deploy-medialive-signal-map-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medialive:GetSignalMap"], "path": "behavioral/cloudformation__medialive/check_deploy_medialive_signal_map_round_trip_and_delete.py", "service": "cloudformation__medialive"} {"check_id": "cloudformation__mediapackage-vod.deploy-packaging-configuration-invalid-packaging-group-id-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__mediapackage-vod/deploy-packaging-configuration-invalid-packaging-group-id-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mediapackage-vod:DescribePackagingConfiguration"], "path": "behavioral/cloudformation__mediapackage-vod/check_deploy_packaging_configuration_invalid_packaging_group_id_rejected_and_rolled_back.py", "service": "cloudformation__mediapackage-vod"} {"check_id": "cloudformation__mediapackage-vod.deploy-packaging-group-and-configuration-round-trip-and-delete", "deployments": [], "key": "cloudformation__mediapackage-vod/deploy-packaging-group-and-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mediapackage-vod:DescribePackagingConfiguration", "mediapackage-vod:DescribePackagingGroup"], "path": "behavioral/cloudformation__mediapackage-vod/check_deploy_packaging_group_and_configuration_round_trip_and_delete.py", "service": "cloudformation__mediapackage-vod"} {"check_id": "cloudformation__mediapackage.deploy-channel-and-origin-endpoint-round-trip-and-delete", "deployments": [], "key": "cloudformation__mediapackage/deploy-channel-and-origin-endpoint-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mediapackage:DescribeChannel", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/cloudformation__mediapackage/check_deploy_channel_and_origin_endpoint_round_trip_and_delete.py", "service": "cloudformation__mediapackage"} {"check_id": "cloudformation__mediapackage.deploy-origin-endpoint-invalid-channel-id-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__mediapackage/deploy-origin-endpoint-invalid-channel-id-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/cloudformation__mediapackage/check_deploy_origin_endpoint_invalid_channel_id_rejected_and_rolled_back.py", "service": "cloudformation__mediapackage"} {"check_id": "cloudformation__mediapackagev2.deploy-mediapackagev2-channel-and-origin-endpoint-stack-round-trip-and-delete", "deployments": [], "key": "cloudformation__mediapackagev2/deploy-mediapackagev2-channel-and-origin-endpoint-stack-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "mediapackagev2:GetChannel", "mediapackagev2:GetChannelGroup", "mediapackagev2:GetChannelPolicy", "mediapackagev2:GetOriginEndpoint", "mediapackagev2:GetOriginEndpointPolicy", "mediapackagev2:ListTagsForResource"], "path": "behavioral/cloudformation__mediapackagev2/check_deploy_mediapackagev2_channel_and_origin_endpoint_stack_round_trip_and_delete.py", "service": "cloudformation__mediapackagev2"} {"check_id": "cloudformation__mediapackagev2.deploy-mediapackagev2-channel-invalid-input-type-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__mediapackagev2/deploy-mediapackagev2-channel-invalid-input-type-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mediapackagev2:GetChannel", "mediapackagev2:GetChannelGroup"], "path": "behavioral/cloudformation__mediapackagev2/check_deploy_mediapackagev2_channel_invalid_input_type_rejected_and_rolled_back.py", "service": "cloudformation__mediapackagev2"} {"check_id": "cloudformation__mediatailor.deploy-mediatailor-channel-channel-policy-program-round-trip-and-delete", "deployments": [], "key": "cloudformation__mediatailor/deploy-mediatailor-channel-channel-policy-program-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "mediatailor:DescribeChannel", "mediatailor:DescribeProgram", "mediatailor:DescribeSourceLocation", "mediatailor:GetChannelPolicy", "mediatailor:GetChannelSchedule", "mediatailor:ListTagsForResource"], "path": "behavioral/cloudformation__mediatailor/check_deploy_mediatailor_channel_channel_policy_program_round_trip_and_delete.py", "service": "cloudformation__mediatailor"} {"check_id": "cloudformation__mediatailor.deploy-mediatailor-channel-invalid-playback-mode-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__mediatailor/deploy-mediatailor-channel-invalid-playback-mode-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mediatailor:DescribeChannel"], "path": "behavioral/cloudformation__mediatailor/check_deploy_mediatailor_channel_invalid_playback_mode_rejected_and_rolled_back.py", "service": "cloudformation__mediatailor"} {"check_id": "cloudformation__mediatailor.deploy-mediatailor-function-round-trip-and-delete", "deployments": [], "key": "cloudformation__mediatailor/deploy-mediatailor-function-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mediatailor:GetFunction", "mediatailor:ListTagsForResource"], "path": "behavioral/cloudformation__mediatailor/check_deploy_mediatailor_function_round_trip_and_delete.py", "service": "cloudformation__mediatailor"} {"check_id": "cloudformation__mediatailor.deploy-mediatailor-playback-configuration-invalid-name-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__mediatailor/deploy-mediatailor-playback-configuration-invalid-name-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__mediatailor/check_deploy_mediatailor_playback_configuration_invalid_name_rejected_and_rolled_back.py", "service": "cloudformation__mediatailor"} {"check_id": "cloudformation__mediatailor.deploy-mediatailor-playback-configuration-prefetch-schedule-round-trip-and-delete", "deployments": [], "key": "cloudformation__mediatailor/deploy-mediatailor-playback-configuration-prefetch-schedule-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "mediatailor:GetPlaybackConfiguration", "mediatailor:GetPrefetchSchedule", "mediatailor:ListTagsForResource"], "path": "behavioral/cloudformation__mediatailor/check_deploy_mediatailor_playback_configuration_prefetch_schedule_round_trip_and_delete.py", "service": "cloudformation__mediatailor"} {"check_id": "cloudformation__mediatailor.deploy-mediatailor-source-location-live-source-vod-source-round-trip-and-delete", "deployments": [], "key": "cloudformation__mediatailor/deploy-mediatailor-source-location-live-source-vod-source-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "mediatailor:DescribeSourceLocation", "mediatailor:ListTagsForResource"], "path": "behavioral/cloudformation__mediatailor/check_deploy_mediatailor_source_location_live_source_vod_source_round_trip_and_delete.py", "service": "cloudformation__mediatailor"} {"check_id": "cloudformation__medical-imaging.deploy-healthimaging-datastore-invalid-name-rejected", "deployments": [], "key": "cloudformation__medical-imaging/deploy-healthimaging-datastore-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medical-imaging:GetDatastore"], "path": "behavioral/cloudformation__medical-imaging/check_deploy_healthimaging_datastore_invalid_name_rejected.py", "service": "cloudformation__medical-imaging"} {"check_id": "cloudformation__medical-imaging.deploy-healthimaging-datastore-provisions-active-store", "deployments": [], "key": "cloudformation__medical-imaging/deploy-healthimaging-datastore-provisions-active-store", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "medical-imaging:GetDatastore", "medical-imaging:ListTagsForResource"], "path": "behavioral/cloudformation__medical-imaging/check_deploy_healthimaging_datastore_provisions_active_store.py", "service": "cloudformation__medical-imaging"} {"check_id": "cloudformation__ec2__memorydb.deploy-memorydb-user-and-acl-round-trip-then-delete", "deployments": [], "key": "cloudformation__memorydb/deploy-memorydb-user-and-acl-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "memorydb:DescribeACLs", "memorydb:DescribeUsers", "memorydb:ListTags"], "path": "behavioral/cloudformation__memorydb/check_deploy_memorydb_user_and_acl_round_trip_then_delete.py", "service": "cloudformation__memorydb"} {"check_id": "cloudformation__ec2__memorydb.deploy-memorydb-user-password-too-short-rejected", "deployments": [], "key": "cloudformation__memorydb/deploy-memorydb-user-password-too-short-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "memorydb:DescribeUsers"], "path": "behavioral/cloudformation__memorydb/check_deploy_memorydb_user_password_too_short_rejected.py", "service": "cloudformation__memorydb"} {"check_id": "cloudformation__mq.deploy-amazonmq-broker-engine-version-rejected-then-config-association-verified", "deployments": [], "key": "cloudformation__mq/deploy-amazonmq-broker-engine-version-rejected-then-config-association-verified", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mq:DeleteConfiguration", "mq:DescribeBroker", "mq:DescribeBrokerEngineTypes", "mq:DescribeConfiguration"], "path": "behavioral/cloudformation__mq/check_deploy_amazonmq_broker_engine_version_rejected_then_config_association_verified.py", "service": "cloudformation__mq"} {"check_id": "cloudformation__mq.deploy-amazonmq-configuration-invalid-engine-version-rejected", "deployments": [], "key": "cloudformation__mq/deploy-amazonmq-configuration-invalid-engine-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mq:DescribeBrokerEngineTypes", "mq:ListConfigurations"], "path": "behavioral/cloudformation__mq/check_deploy_amazonmq_configuration_invalid_engine_version_rejected.py", "service": "cloudformation__mq"} {"check_id": "cloudformation__mq.deploy-amazonmq-configuration-round-trip-and-delete", "deployments": [], "key": "cloudformation__mq/deploy-amazonmq-configuration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mq:DescribeConfiguration", "mq:DescribeConfigurationRevision", "mq:ListConfigurations"], "path": "behavioral/cloudformation__mq/check_deploy_amazonmq_configuration_round_trip_and_delete.py", "service": "cloudformation__mq"} {"check_id": "cloudformation__mwaa.deploy-mwaa-environment-network-configuration-single-subnet-rejected", "deployments": [], "key": "cloudformation__mwaa/deploy-mwaa-environment-network-configuration-single-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "mwaa:GetEnvironment"], "path": "behavioral/cloudformation__mwaa/check_deploy_mwaa_environment_network_configuration_single_subnet_rejected.py", "service": "cloudformation__mwaa"} {"check_id": "cloudformation__mwaa.deploy-mwaa-environment-round-trip-and-delete", "deployments": [], "key": "cloudformation__mwaa/deploy-mwaa-environment-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "mwaa:GetEnvironment"], "path": "behavioral/cloudformation__mwaa/check_deploy_mwaa_environment_round_trip_and_delete.py", "service": "cloudformation__mwaa"} {"check_id": "cloudformation__ec2__neptune-graph.deploy-neptune-graph-provisioned-memory-out-of-range-rejected", "deployments": [], "key": "cloudformation__neptune-graph/deploy-neptune-graph-provisioned-memory-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "neptune-graph:GetGraph", "neptune-graph:ListTagsForResource"], "path": "behavioral/cloudformation__neptune-graph/check_deploy_neptune_graph_provisioned_memory_out_of_range_rejected.py", "service": "cloudformation__neptune-graph"} {"check_id": "cloudformation__neptune-graph.deploy-neptune-graph-snapshot-round-trip-and-delete", "deployments": [], "key": "cloudformation__neptune-graph/deploy-neptune-graph-snapshot-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "neptune-graph:GetGraph", "neptune-graph:GetGraphSnapshot", "neptune-graph:ListTagsForResource"], "path": "behavioral/cloudformation__neptune-graph/check_deploy_neptune_graph_snapshot_round_trip_and_delete.py", "service": "cloudformation__neptune-graph"} {"check_id": "cloudformation__neptune.cfn-deploy-neptune-cluster-and-db-parameter-groups-round-trip-and-delete", "deployments": [], "key": "cloudformation__neptune/cfn-deploy-neptune-cluster-and-db-parameter-groups-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "neptune:DescribeDBClusterParameterGroups", "neptune:DescribeDBParameterGroups", "neptune:ListTagsForResource"], "path": "behavioral/cloudformation__neptune/check_cfn_deploy_neptune_cluster_and_db_parameter_groups_round_trip_and_delete.py", "service": "cloudformation__neptune"} {"check_id": "cloudformation__neptune.cfn-deploy-neptune-cluster-parameter-group-invalid-value-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__neptune/cfn-deploy-neptune-cluster-parameter-group-invalid-value-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "neptune:DescribeDBClusterParameterGroups", "neptune:DescribeEngineDefaultClusterParameters", "neptune:ListTagsForResource"], "path": "behavioral/cloudformation__neptune/check_cfn_deploy_neptune_cluster_parameter_group_invalid_value_rejected_and_rolled_back.py", "service": "cloudformation__neptune"} {"check_id": "cloudformation__neptune.cfn-deploy-neptune-global-cluster-round-trip-and-delete", "deployments": [], "key": "cloudformation__neptune/cfn-deploy-neptune-global-cluster-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "neptune:DescribeGlobalClusters", "neptune:ListTagsForResource"], "path": "behavioral/cloudformation__neptune/check_cfn_deploy_neptune_global_cluster_round_trip_and_delete.py", "service": "cloudformation__neptune"} {"check_id": "cloudformation__neptune__sns.cfn-deploy-neptune-event-subscription-invalid-source-type-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__neptune__sns/cfn-deploy-neptune-event-subscription-invalid-source-type-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "neptune:DescribeEventSubscriptions", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__neptune__sns/check_cfn_deploy_neptune_event_subscription_invalid_source_type_rejected_and_rolled_back.py", "service": "cloudformation__neptune__sns"} {"check_id": "cloudformation__neptune__sns.cfn-deploy-neptune-event-subscription-round-trip-and-delete", "deployments": [], "key": "cloudformation__neptune__sns/cfn-deploy-neptune-event-subscription-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "neptune:DescribeEventSubscriptions", "neptune:ListTagsForResource", "sns:GetTopicAttributes", "sns:ListTagsForResource"], "path": "behavioral/cloudformation__neptune__sns/check_cfn_deploy_neptune_event_subscription_round_trip_and_delete.py", "service": "cloudformation__neptune__sns"} {"check_id": "cloudformation__network-firewall.deploy-networkfirewall-firewall-policy-invalid-default-action-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__network-firewall/deploy-networkfirewall-firewall-policy-invalid-default-action-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "network-firewall:DescribeFirewallPolicy"], "path": "behavioral/cloudformation__network-firewall/check_deploy_networkfirewall_firewall_policy_invalid_default_action_rejected_and_rolled_back.py", "service": "cloudformation__network-firewall"} {"check_id": "cloudformation__network-firewall.deploy-networkfirewall-firewall-policy-round-trip-and-delete", "deployments": [], "key": "cloudformation__network-firewall/deploy-networkfirewall-firewall-policy-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "network-firewall:DescribeFirewallPolicy"], "path": "behavioral/cloudformation__network-firewall/check_deploy_networkfirewall_firewall_policy_round_trip_and_delete.py", "service": "cloudformation__network-firewall"} {"check_id": "cloudformation__network-firewall.deploy-networkfirewall-stateful-rule-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__network-firewall/deploy-networkfirewall-stateful-rule-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "network-firewall:DescribeRuleGroup"], "path": "behavioral/cloudformation__network-firewall/check_deploy_networkfirewall_stateful_rule_group_round_trip_and_delete.py", "service": "cloudformation__network-firewall"} {"check_id": "cloudformation__network-security-manager.deploy-network-security-manager-policy-ambiguous-reference-rejected", "deployments": [], "key": "cloudformation__network-security-manager/deploy-network-security-manager-policy-ambiguous-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "network-security-manager:GetPolicy"], "path": "behavioral/cloudformation__network-security-manager/check_deploy_network_security_manager_policy_ambiguous_reference_rejected.py", "service": "cloudformation__network-security-manager"} {"check_id": "cloudformation__network-security-manager.deploy-network-security-manager-waf-stack-reads-back-then-removed", "deployments": [], "key": "cloudformation__network-security-manager/deploy-network-security-manager-waf-stack-reads-back-then-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "network-security-manager:ListTagsForResource"], "path": "behavioral/cloudformation__network-security-manager/check_deploy_network_security_manager_waf_stack_reads_back_then_removed.py", "service": "cloudformation__network-security-manager"} {"check_id": "cloudformation__networkmanager.deploy-networkmanager-core-resources-round-trip-and-delete", "deployments": [], "key": "cloudformation__networkmanager/deploy-networkmanager-core-resources-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "networkmanager:GetSites", "networkmanager:ListTagsForResource"], "path": "behavioral/cloudformation__networkmanager/check_deploy_networkmanager_core_resources_round_trip_and_delete.py", "service": "cloudformation__networkmanager"} {"check_id": "cloudformation__networkmanager.deploy-networkmanager-transit-gateway-registration-round-trip-and-delete", "deployments": [], "key": "cloudformation__networkmanager/deploy-networkmanager-transit-gateway-registration-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "networkmanager:GetTransitGatewayRegistrations"], "path": "behavioral/cloudformation__networkmanager/check_deploy_networkmanager_transit_gateway_registration_round_trip_and_delete.py", "service": "cloudformation__networkmanager"} {"check_id": "cloudformation__ec2__networkmonitor.deploy-networkmonitor-monitor-and-probe-round-trip-and-delete", "deployments": [], "key": "cloudformation__networkmonitor/deploy-networkmonitor-monitor-and-probe-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "networkmonitor:ListTagsForResource"], "path": "behavioral/cloudformation__networkmonitor/check_deploy_networkmonitor_monitor_and_probe_round_trip_and_delete.py", "service": "cloudformation__networkmonitor"} {"check_id": "cloudformation__ec2__networkmonitor.deploy-networkmonitor-probe-invalid-destination-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__networkmonitor/deploy-networkmonitor-probe-invalid-destination-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "networkmonitor:GetMonitor"], "path": "behavioral/cloudformation__networkmonitor/check_deploy_networkmonitor_probe_invalid_destination_rejected_and_rolled_back.py", "service": "cloudformation__networkmonitor"} {"check_id": "cloudformation__oam.deploy-oam-sink-invalid-name-pattern-rejected-before-any-sink-is-created", "deployments": [], "key": "cloudformation__oam/deploy-oam-sink-invalid-name-pattern-rejected-before-any-sink-is-created", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__oam/check_deploy_oam_sink_invalid_name_pattern_rejected_before_any_sink_is_created.py", "service": "cloudformation__oam"} {"check_id": "cloudformation__oam.deploy-oam-sink-properties-getatt-and-sink-policy-read-back-then-resource-not-found-after-delete", "deployments": [], "key": "cloudformation__oam/deploy-oam-sink-properties-getatt-and-sink-policy-read-back-then-resource-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "oam:GetSink", "oam:GetSinkPolicy"], "path": "behavioral/cloudformation__oam/check_deploy_oam_sink_properties_getatt_and_sink_policy_read_back_then_resource_not_found_after_delete.py", "service": "cloudformation__oam"} {"check_id": "cloudformation__omics.deploy-reference-and-sequence-store-via-cloudformation-reaches-create-complete", "deployments": [], "key": "cloudformation__omics/deploy-reference-and-sequence-store-via-cloudformation-reaches-create-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "omics:GetReferenceStore", "omics:GetS3AccessPolicy", "omics:GetSequenceStore"], "path": "behavioral/cloudformation__omics/check_deploy_reference_and_sequence_store_via_cloudformation_reaches_create_complete.py", "service": "cloudformation__omics"} {"check_id": "cloudformation__omics.deploy-run-cache-via-cloudformation-reaches-create-complete", "deployments": [], "key": "cloudformation__omics/deploy-run-cache-via-cloudformation-reaches-create-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "omics:GetRunCache", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__omics/check_deploy_run_cache_via_cloudformation_reaches_create_complete.py", "service": "cloudformation__omics"} {"check_id": "cloudformation__omics.deploy-sequence-store-duplicate-name-rejected", "deployments": [], "key": "cloudformation__omics/deploy-sequence-store-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:GetSequenceStore"], "path": "behavioral/cloudformation__omics/check_deploy_sequence_store_duplicate_name_rejected.py", "service": "cloudformation__omics"} {"check_id": "cloudformation__omics.deploy-workflow-and-workflow-version-via-cloudformation-reaches-create-complete", "deployments": [], "key": "cloudformation__omics/deploy-workflow-and-workflow-version-via-cloudformation-reaches-create-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "omics:GetWorkflow", "omics:GetWorkflowVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__omics/check_deploy_workflow_and_workflow_version_via_cloudformation_reaches_create_complete.py", "service": "cloudformation__omics"} {"check_id": "cloudformation__opensearch.deploy-domain-ref-getatt-and-properties-match-service-then-removed", "deployments": [], "key": "cloudformation__opensearch/deploy-domain-ref-getatt-and-properties-match-service-then-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListDomainNames", "opensearch:ListTags"], "path": "behavioral/cloudformation__opensearch/check_deploy_domain_ref_getatt_and_properties_match_service_then_removed.py", "service": "cloudformation__opensearch"} {"check_id": "cloudformation__opensearch.deploy-domain-unsupported-property-rejected-before-any-domain-exists", "deployments": [], "key": "cloudformation__opensearch/deploy-domain-unsupported-property-rejected-before-any-domain-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListDomainNames", "opensearch:ListTags"], "path": "behavioral/cloudformation__opensearch/check_deploy_domain_unsupported_property_rejected_before_any_domain_exists.py", "service": "cloudformation__opensearch"} {"check_id": "cloudformation__opensearch.deploy-opensearch-application-invalid-name-rejected", "deployments": [], "key": "cloudformation__opensearch/deploy-opensearch-application-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:GetApplication", "opensearch:ListTags"], "path": "behavioral/cloudformation__opensearch/check_deploy_opensearch_application_invalid_name_rejected.py", "service": "cloudformation__opensearch"} {"check_id": "cloudformation__opensearch.deploy-opensearch-application-round-trip-and-delete", "deployments": [], "key": "cloudformation__opensearch/deploy-opensearch-application-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:GetApplication", "opensearch:ListTags"], "path": "behavioral/cloudformation__opensearch/check_deploy_opensearch_application_round_trip_and_delete.py", "service": "cloudformation__opensearch"} {"check_id": "cloudformation__opensearch__sns.deploy-opensearch-2-gp3-volume-below-instance-minimum-rejected-and-topic-rolled-back", "deployments": ["behavioral/cloudformation__opensearch__sns/deployments/domain-ebs-volume-below-instance-minimum.json"], "key": "cloudformation__opensearch__sns/deploy-opensearch-2-gp3-volume-below-instance-minimum-rejected-and-topic-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeInstanceTypeLimits", "opensearch:ListDomainNames", "sns:GetTopicAttributes", "sns:ListTopics"], "path": "behavioral/cloudformation__opensearch__sns/check_deploy_opensearch_2_gp3_volume_below_instance_minimum_rejected_and_topic_rolled_back.py", "service": "cloudformation__opensearch__sns"} {"check_id": "cloudformation__opensearch__sns.deploy-opensearch-2-instance-type-newer-than-engine-rejected-and-topic-rolled-back", "deployments": ["behavioral/cloudformation__opensearch__sns/deployments/domain-instance-type-newer-than-engine.json"], "key": "cloudformation__opensearch__sns/deploy-opensearch-2-instance-type-newer-than-engine-rejected-and-topic-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeInstanceTypeLimits", "opensearch:ListDomainNames", "opensearch:ListVersions", "sns:GetTopicAttributes", "sns:ListTopics"], "path": "behavioral/cloudformation__opensearch__sns/check_deploy_opensearch_2_instance_type_newer_than_engine_rejected_and_topic_rolled_back.py", "service": "cloudformation__opensearch__sns"} {"check_id": "cloudformation__opensearchserverless.cfn-collection-group-standby-disabled-read-back-then-gone", "deployments": [], "key": "cloudformation__opensearchserverless/cfn-collection-group-standby-disabled-read-back-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearchserverless:BatchGetCollectionGroup", "opensearchserverless:ListTagsForResource"], "path": "behavioral/cloudformation__opensearchserverless/check_cfn_collection_group_standby_disabled_read_back_then_gone.py", "service": "cloudformation__opensearchserverless"} {"check_id": "cloudformation__opensearchserverless.cfn-lifecycle-policy-retention-read-back-then-gone", "deployments": [], "key": "cloudformation__opensearchserverless/cfn-lifecycle-policy-retention-read-back-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearchserverless:BatchGetLifecyclePolicy"], "path": "behavioral/cloudformation__opensearchserverless/check_cfn_lifecycle_policy_retention_read_back_then_gone.py", "service": "cloudformation__opensearchserverless"} {"check_id": "cloudformation__opensearchserverless.cfn-lifecycle-policy-wrong-resourcetype-for-retention-rejected", "deployments": [], "key": "cloudformation__opensearchserverless/cfn-lifecycle-policy-wrong-resourcetype-for-retention-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearchserverless:BatchGetLifecyclePolicy"], "path": "behavioral/cloudformation__opensearchserverless/check_cfn_lifecycle_policy_wrong_resourcetype_for_retention_rejected.py", "service": "cloudformation__opensearchserverless"} {"check_id": "cloudformation__opensearchserverless.cfn-security-config-saml-read-back-then-gone", "deployments": [], "key": "cloudformation__opensearchserverless/cfn-security-config-saml-read-back-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearchserverless:GetSecurityConfig"], "path": "behavioral/cloudformation__opensearchserverless/check_cfn_security_config_saml_read_back_then_gone.py", "service": "cloudformation__opensearchserverless"} {"check_id": "cloudformation__osis.deploy-osis-pipeline-minunits-above-maxunits-rejected", "deployments": [], "key": "cloudformation__osis/deploy-osis-pipeline-minunits-above-maxunits-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "osis:GetPipeline", "osis:ListPipelines"], "path": "behavioral/cloudformation__osis/check_deploy_osis_pipeline_minunits_above_maxunits_rejected.py", "service": "cloudformation__osis"} {"check_id": "cloudformation__outposts.deploy-outposts-site-invalid-country-code-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__outposts/deploy-outposts-site-invalid-country-code-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "outposts:GetSite", "outposts:GetSiteAddress"], "path": "behavioral/cloudformation__outposts/check_deploy_outposts_site_invalid_country_code_rejected_and_rolled_back.py", "service": "cloudformation__outposts"} {"check_id": "cloudformation__outposts.deploy-outposts-site-round-trip-and-delete", "deployments": [], "key": "cloudformation__outposts/deploy-outposts-site-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "outposts:GetSite", "outposts:GetSiteAddress"], "path": "behavioral/cloudformation__outposts/check_deploy_outposts_site_round_trip_and_delete.py", "service": "cloudformation__outposts"} {"check_id": "cloudformation__payment-cryptography.deploy-payment-cryptography-alias-nonexistent-keyarn-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__payment-cryptography/deploy-payment-cryptography-alias-nonexistent-keyarn-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "payment-cryptography:GetAlias"], "path": "behavioral/cloudformation__payment-cryptography/check_deploy_payment_cryptography_alias_nonexistent_keyarn_rejected_and_rolled_back.py", "service": "cloudformation__payment-cryptography"} {"check_id": "cloudformation__payment-cryptography.deploy-payment-cryptography-alias-round-trip-and-delete", "deployments": [], "key": "cloudformation__payment-cryptography/deploy-payment-cryptography-alias-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "payment-cryptography:GetAlias"], "path": "behavioral/cloudformation__payment-cryptography/check_deploy_payment_cryptography_alias_round_trip_and_delete.py", "service": "cloudformation__payment-cryptography"} {"check_id": "cloudformation__personalize.cfn-personalize-dataset-invalid-type-rejected-leaving-valid-dataset", "deployments": [], "key": "cloudformation__personalize/cfn-personalize-dataset-invalid-type-rejected-leaving-valid-dataset", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "personalize:DescribeDataset"], "path": "behavioral/cloudformation__personalize/check_cfn_personalize_dataset_invalid_type_rejected_leaving_valid_dataset.py", "service": "cloudformation__personalize"} {"check_id": "cloudformation__personalize.cfn-personalize-datasetgroup-schema-dataset-eventtracker-read-back-then-deleted", "deployments": [], "key": "cloudformation__personalize/cfn-personalize-datasetgroup-schema-dataset-eventtracker-read-back-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeEventTracker", "personalize:DescribeSchema"], "path": "behavioral/cloudformation__personalize/check_cfn_personalize_datasetgroup_schema_dataset_eventtracker_read_back_then_deleted.py", "service": "cloudformation__personalize"} {"check_id": "cloudformation__pi__rds.deploy-pi-perfreports-bad-service-type-rejected", "deployments": [], "key": "cloudformation__pi__rds/deploy-pi-perfreports-bad-service-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pi:ListPerformanceAnalysisReports", "rds:DescribeDBInstances"], "path": "behavioral/cloudformation__pi__rds/check_deploy_pi_perfreports_bad_service_type_rejected.py", "service": "cloudformation__pi__rds"} {"check_id": "cloudformation__pi__rds.deploy-pi-perfreports-round-trip-then-stack-delete", "deployments": [], "key": "cloudformation__pi__rds/deploy-pi-perfreports-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pi:GetPerformanceAnalysisReport", "pi:ListPerformanceAnalysisReports", "rds:DescribeDBInstances"], "path": "behavioral/cloudformation__pi__rds/check_deploy_pi_perfreports_round_trip_then_stack_delete.py", "service": "cloudformation__pi__rds"} {"check_id": "cloudformation__pinpoint-sms-voice-v2.deploy-cloudformation-smsvoice-configurationset-invalid-protect-configuration-rejected", "deployments": [], "key": "cloudformation__pinpoint-sms-voice-v2/deploy-cloudformation-smsvoice-configurationset-invalid-protect-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pinpoint-sms-voice-v2:DescribeConfigurationSets"], "path": "behavioral/cloudformation__pinpoint-sms-voice-v2/check_deploy_cloudformation_smsvoice_configurationset_invalid_protect_configuration_rejected.py", "service": "cloudformation__pinpoint-sms-voice-v2"} {"check_id": "cloudformation__pinpoint-sms-voice-v2.deploy-cloudformation-smsvoice-core-resources-round-trip-and-delete", "deployments": [], "key": "cloudformation__pinpoint-sms-voice-v2/deploy-cloudformation-smsvoice-core-resources-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "pinpoint-sms-voice-v2:DescribeConfigurationSets", "pinpoint-sms-voice-v2:DescribeOptOutLists", "pinpoint-sms-voice-v2:DescribeProtectConfigurations", "pinpoint-sms-voice-v2:GetResourcePolicy", "pinpoint-sms-voice-v2:ListTagsForResource"], "path": "behavioral/cloudformation__pinpoint-sms-voice-v2/check_deploy_cloudformation_smsvoice_core_resources_round_trip_and_delete.py", "service": "cloudformation__pinpoint-sms-voice-v2"} {"check_id": "cloudformation__pinpoint-sms-voice-v2.deploy-cloudformation-smsvoice-registration-resources-round-trip-and-delete", "deployments": [], "key": "cloudformation__pinpoint-sms-voice-v2/deploy-cloudformation-smsvoice-registration-resources-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pinpoint-sms-voice-v2:ListTagsForResource"], "path": "behavioral/cloudformation__pinpoint-sms-voice-v2/check_deploy_cloudformation_smsvoice_registration_resources_round_trip_and_delete.py", "service": "cloudformation__pinpoint-sms-voice-v2"} {"check_id": "cloudformation__pipes.deploy-cloudformation-pipe-missing-target-property-rejected", "deployments": [], "key": "cloudformation__pipes/deploy-cloudformation-pipe-missing-target-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pipes:DescribePipe"], "path": "behavioral/cloudformation__pipes/check_deploy_cloudformation_pipe_missing_target_property_rejected.py", "service": "cloudformation__pipes"} {"check_id": "cloudformation__pipes.deploy-cloudformation-pipe-ref-and-getatt-match-the-provisioned-resource", "deployments": [], "key": "cloudformation__pipes/deploy-cloudformation-pipe-ref-and-getatt-match-the-provisioned-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pipes:DescribePipe"], "path": "behavioral/cloudformation__pipes/check_deploy_cloudformation_pipe_ref_and_getatt_match_the_provisioned_resource.py", "service": "cloudformation__pipes"} {"check_id": "cloudformation__pipes__sqs.cfn-pipes-pipe-in-place-template-update-retained-replacement-both-deliver-then-not-found", "deployments": [], "key": "cloudformation__pipes__sqs/cfn-pipes-pipe-in-place-template-update-retained-replacement-both-deliver-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__pipes__sqs/check_cfn_pipes_pipe_in_place_template_update_retained_replacement_both_deliver_then_not_found.py", "service": "cloudformation__pipes__sqs"} {"check_id": "cloudformation__polly.cfn-polly-lexicon-attributes-and-getatt-read-back-then-not-found-after-delete", "deployments": [], "key": "cloudformation__polly/cfn-polly-lexicon-attributes-and-getatt-read-back-then-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "polly:GetLexicon"], "path": "behavioral/cloudformation__polly/check_cfn_polly_lexicon_attributes_and_getatt_read_back_then_not_found_after_delete.py", "service": "cloudformation__polly"} {"check_id": "cloudformation__polly.cfn-polly-lexicon-invalid-pls-content-rejected", "deployments": [], "key": "cloudformation__polly/cfn-polly-lexicon-invalid-pls-content-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "polly:DeleteLexicon", "polly:GetLexicon"], "path": "behavioral/cloudformation__polly/check_cfn_polly_lexicon_invalid_pls_content_rejected.py", "service": "cloudformation__polly"} {"check_id": "cloudformation__qconnect.deploy-wisdom-aiprompt-aiguardrail-aiagent-and-their-versions-round-trip-and-delete", "deployments": [], "key": "cloudformation__qconnect/deploy-wisdom-aiprompt-aiguardrail-aiagent-and-their-versions-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "qconnect:GetAIAgent", "qconnect:GetAIGuardrail", "qconnect:GetAIPrompt", "qconnect:GetAssistant"], "path": "behavioral/cloudformation__qconnect/check_deploy_wisdom_aiprompt_aiguardrail_aiagent_and_their_versions_round_trip_and_delete.py", "service": "cloudformation__qconnect"} {"check_id": "cloudformation__qconnect.deploy-wisdom-aiprompt-mismatched-apiformat-rejected", "deployments": [], "key": "cloudformation__qconnect/deploy-wisdom-aiprompt-mismatched-apiformat-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "qconnect:GetAIPrompt"], "path": "behavioral/cloudformation__qconnect/check_deploy_wisdom_aiprompt_mismatched_apiformat_rejected.py", "service": "cloudformation__qconnect"} {"check_id": "cloudformation__qconnect.deploy-wisdom-message-template-and-version-round-trip-and-delete", "deployments": [], "key": "cloudformation__qconnect/deploy-wisdom-message-template-and-version-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "qconnect:GetKnowledgeBase", "qconnect:GetMessageTemplate", "qconnect:ListMessageTemplateVersions", "qconnect:ListTagsForResource"], "path": "behavioral/cloudformation__qconnect/check_deploy_wisdom_message_template_and_version_round_trip_and_delete.py", "service": "cloudformation__qconnect"} {"check_id": "cloudformation__qconnect.deploy-wisdom-quick-response-on-message-templates-knowledge-base-rejected", "deployments": [], "key": "cloudformation__qconnect/deploy-wisdom-quick-response-on-message-templates-knowledge-base-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "qconnect:GetQuickResponse"], "path": "behavioral/cloudformation__qconnect/check_deploy_wisdom_quick_response_on_message_templates_knowledge_base_rejected.py", "service": "cloudformation__qconnect"} {"check_id": "cloudformation__qconnect.deploy-wisdom-quick-response-round-trip-and-delete", "deployments": [], "key": "cloudformation__qconnect/deploy-wisdom-quick-response-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "qconnect:GetKnowledgeBase", "qconnect:GetQuickResponse", "qconnect:ListTagsForResource"], "path": "behavioral/cloudformation__qconnect/check_deploy_wisdom_quick_response_round_trip_and_delete.py", "service": "cloudformation__qconnect"} {"check_id": "cloudformation__ram.deploy-ram-permission-resource-type-rejected", "deployments": [], "key": "cloudformation__ram/deploy-ram-permission-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__ram/check_deploy_ram_permission_resource_type_rejected.py", "service": "cloudformation__ram"} {"check_id": "cloudformation__ram.deploy-ram-resource-share-permission-round-trip-then-delete", "deployments": [], "key": "cloudformation__ram/deploy-ram-resource-share-permission-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ram:GetPermission"], "path": "behavioral/cloudformation__ram/check_deploy_ram_resource_share_permission_round_trip_then_delete.py", "service": "cloudformation__ram"} {"check_id": "cloudformation__rbin.deploy-rbin-rule-retention-period-over-one-year-rejected", "deployments": [], "key": "cloudformation__rbin/deploy-rbin-rule-retention-period-over-one-year-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rbin:GetRule"], "path": "behavioral/cloudformation__rbin/check_deploy_rbin_rule_retention_period_over_one_year_rejected.py", "service": "cloudformation__rbin"} {"check_id": "cloudformation__rbin.deploy-rbin-rule-round-trip-then-stack-delete-confirms-removal", "deployments": [], "key": "cloudformation__rbin/deploy-rbin-rule-round-trip-then-stack-delete-confirms-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rbin:GetRule", "rbin:ListTagsForResource"], "path": "behavioral/cloudformation__rbin/check_deploy_rbin_rule_round_trip_then_stack_delete_confirms_removal.py", "service": "cloudformation__rbin"} {"check_id": "cloudformation__rds.cfn-rds-cluster-snapshot-provisioning-and-teardown", "deployments": [], "key": "cloudformation__rds/cfn-rds-cluster-snapshot-provisioning-and-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters"], "path": "behavioral/cloudformation__rds/check_cfn_rds_cluster_snapshot_provisioning_and_teardown.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds.cfn-rds-db-subnet-group-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__rds/cfn-rds-db-subnet-group-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups"], "path": "behavioral/cloudformation__rds/check_cfn_rds_db_subnet_group_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds.cfn-rds-instance-default-deletion-policy-snapshot", "deployments": [], "key": "cloudformation__rds/cfn-rds-instance-default-deletion-policy-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/cloudformation__rds/check_cfn_rds_instance_default_deletion_policy_snapshot.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds.cfn-rds-instance-invalid-engine-version-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__rds/cfn-rds-instance-invalid-engine-version-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/cloudformation__rds/check_cfn_rds_instance_invalid_engine_version_rejected_and_rolled_back.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds.cfn-rds-instance-snapshot-provisioning-and-teardown", "deployments": [], "key": "cloudformation__rds/cfn-rds-instance-snapshot-provisioning-and-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/cloudformation__rds/check_cfn_rds_instance_snapshot_provisioning_and_teardown.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds.deploy-cfn-rds-db-parameter-group-invalid-family-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__rds/deploy-cfn-rds-db-parameter-group-invalid-family-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeDBParameterGroups"], "path": "behavioral/cloudformation__rds/check_deploy_cfn_rds_db_parameter_group_invalid_family_rejected_and_rolled_back.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds.deploy-cfn-rds-group-resource-types-provision-and-deprovision", "deployments": [], "key": "cloudformation__rds/deploy-cfn-rds-group-resource-types-provision-and-deprovision", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeDBClusterParameterGroups", "rds:DescribeDBParameterGroups", "rds:DescribeGlobalClusters", "rds:DescribeOptionGroups", "rds:ListTagsForResource"], "path": "behavioral/cloudformation__rds/check_deploy_cfn_rds_group_resource_types_provision_and_deprovision.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds.deploy-rds-db-cluster-endpoint-round-trip-and-delete", "deployments": [], "key": "cloudformation__rds/deploy-rds-db-cluster-endpoint-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:DescribeDBClusters", "rds:ListTagsForResource"], "path": "behavioral/cloudformation__rds/check_deploy_rds_db_cluster_endpoint_round_trip_and_delete.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds.deploy-rds-db-cluster-parameter-group-invalid-family-rejected", "deployments": [], "key": "cloudformation__rds/deploy-rds-db-cluster-parameter-group-invalid-family-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeDBClusterParameterGroups", "rds:DescribeDBEngineVersions", "rds:ListTagsForResource"], "path": "behavioral/cloudformation__rds/check_deploy_rds_db_cluster_parameter_group_invalid_family_rejected.py", "service": "cloudformation__rds"} {"check_id": "cloudformation__rds__secretsmanager.deploy-secret-target-attachment-rds-instance", "deployments": [], "key": "cloudformation__rds__secretsmanager/deploy-secret-target-attachment-rds-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/cloudformation__rds__secretsmanager/check_deploy_secret_target_attachment_rds_instance.py", "service": "cloudformation__rds__secretsmanager"} {"check_id": "cloudformation__rds__secretsmanager.secret-target-attachment-update-nonexistent-target-rejected", "deployments": [], "key": "cloudformation__rds__secretsmanager/deploy-secret-target-attachment-update-nonexistent-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "secretsmanager:GetSecretValue"], "path": "behavioral/cloudformation__rds__secretsmanager/check_deploy_secret_target_attachment_update_nonexistent_target_rejected.py", "service": "cloudformation__rds__secretsmanager"} {"check_id": "cloudformation__rds__sns.deploy-cfn-rds-event-subscription-provisions-and-rejects-bad-category", "deployments": [], "key": "cloudformation__rds__sns/deploy-rds-event-subscription-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeEventSubscriptions", "sns:GetTopicAttributes", "sns:ListTagsForResource"], "path": "behavioral/cloudformation__rds__sns/check_deploy_rds_event_subscription_round_trip_and_delete.py", "service": "cloudformation__rds__sns"} {"check_id": "cloudformation__rds__sns.deploy-rds-event-subscription-undefined-category-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__rds__sns/deploy-rds-event-subscription-undefined-category-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeEventSubscriptions"], "path": "behavioral/cloudformation__rds__sns/check_deploy_rds_event_subscription_undefined_category_rejected_and_rolled_back.py", "service": "cloudformation__rds__sns"} {"check_id": "cloudformation__rds__ssm.rds-ssm-secure-dynamic-reference-misuse-rejected", "deployments": [], "key": "cloudformation__rds__ssm/rds-ssm-secure-dynamic-reference-misuse-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__rds__ssm/check_rds_ssm_secure_dynamic_reference_misuse_rejected.py", "service": "cloudformation__rds__ssm"} {"check_id": "cloudformation__redshift-serverless.deploy-redshiftserverless-namespace-invalid-name-rejected", "deployments": [], "key": "cloudformation__redshift-serverless/deploy-redshiftserverless-namespace-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "redshift-serverless:GetNamespace"], "path": "behavioral/cloudformation__redshift-serverless/check_deploy_redshiftserverless_namespace_invalid_name_rejected.py", "service": "cloudformation__redshift-serverless"} {"check_id": "cloudformation__redshift-serverless.deploy-redshiftserverless-namespace-round-trip-then-delete", "deployments": [], "key": "cloudformation__redshift-serverless/deploy-redshiftserverless-namespace-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "redshift-serverless:GetNamespace", "redshift-serverless:ListTagsForResource"], "path": "behavioral/cloudformation__redshift-serverless/check_deploy_redshiftserverless_namespace_round_trip_then_delete.py", "service": "cloudformation__redshift-serverless"} {"check_id": "cloudformation__redshift.cfn-redshift-clusterparametergroup-and-snapshotschedule-round-trip-and-delete", "deployments": [], "key": "cloudformation__redshift/cfn-redshift-clusterparametergroup-and-snapshotschedule-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "redshift:DescribeClusterParameterGroups"], "path": "behavioral/cloudformation__redshift/check_cfn_redshift_clusterparametergroup_and_snapshotschedule_round_trip_and_delete.py", "service": "cloudformation__redshift"} {"check_id": "cloudformation__redshift.cfn-redshift-clusterparametergroup-invalid-family-rejected", "deployments": [], "key": "cloudformation__redshift/cfn-redshift-clusterparametergroup-invalid-family-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "redshift:DescribeClusterParameterGroups"], "path": "behavioral/cloudformation__redshift/check_cfn_redshift_clusterparametergroup_invalid_family_rejected.py", "service": "cloudformation__redshift"} {"check_id": "cloudformation__ec2__redshift.cfn-redshift-clustersubnetgroup-invalid-subnet-rejected", "deployments": [], "key": "cloudformation__redshift/cfn-redshift-clustersubnetgroup-invalid-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__redshift/check_cfn_redshift_clustersubnetgroup_invalid_subnet_rejected.py", "service": "cloudformation__redshift"} {"check_id": "cloudformation__ec2__redshift.cfn-redshift-clustersubnetgroup-round-trip-and-delete", "deployments": [], "key": "cloudformation__redshift/cfn-redshift-clustersubnetgroup-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "redshift:DescribeClusterSubnetGroups"], "path": "behavioral/cloudformation__redshift/check_cfn_redshift_clustersubnetgroup_round_trip_and_delete.py", "service": "cloudformation__redshift"} {"check_id": "cloudformation__redshift__sns.cfn-redshift-eventsubscription-invalid-source-type-rejected", "deployments": [], "key": "cloudformation__redshift/cfn-redshift-eventsubscription-invalid-source-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "redshift:DescribeEventSubscriptions"], "path": "behavioral/cloudformation__redshift/check_cfn_redshift_eventsubscription_invalid_source_type_rejected.py", "service": "cloudformation__redshift"} {"check_id": "cloudformation__redshift.deploy-redshift-usagelimit-scheduledaction-snapshot-round-trip-then-delete", "deployments": [], "key": "cloudformation__redshift/deploy-redshift-usagelimit-scheduledaction-snapshot-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:DescribeScheduledActions", "redshift:DescribeUsageLimits"], "path": "behavioral/cloudformation__redshift/check_deploy_redshift_usagelimit_scheduledaction_snapshot_round_trip_then_delete.py", "service": "cloudformation__redshift"} {"check_id": "cloudformation__redshift__sns.cfn-redshift-eventsubscription-round-trip-and-delete", "deployments": [], "key": "cloudformation__redshift__sns/cfn-redshift-eventsubscription-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "redshift:DescribeEventSubscriptions", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__redshift__sns/check_cfn_redshift_eventsubscription_round_trip_and_delete.py", "service": "cloudformation__redshift__sns"} {"check_id": "cloudformation__rekognition.deploy-rekognition-collection-duplicate-id-rejected", "deployments": [], "key": "cloudformation__rekognition/deploy-rekognition-collection-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rekognition:DescribeCollection"], "path": "behavioral/cloudformation__rekognition/check_deploy_rekognition_collection_duplicate_id_rejected.py", "service": "cloudformation__rekognition"} {"check_id": "cloudformation__rekognition.deploy-rekognition-collection-project-and-dataset-round-trip-and-delete", "deployments": [], "key": "cloudformation__rekognition/deploy-rekognition-collection-project-and-dataset-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rekognition:DescribeCollection", "rekognition:DescribeDataset"], "path": "behavioral/cloudformation__rekognition/check_deploy_rekognition_collection_project_and_dataset_round_trip_and_delete.py", "service": "cloudformation__rekognition"} {"check_id": "cloudformation__resiliencehubv2.deploy-resiliencehubv2-policy-availabilityslo-target-over-maximum-rejected", "deployments": [], "key": "cloudformation__resiliencehubv2/deploy-resiliencehubv2-policy-availabilityslo-target-over-maximum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "resiliencehubv2:GetPolicy"], "path": "behavioral/cloudformation__resiliencehubv2/check_deploy_resiliencehubv2_policy_availabilityslo_target_over_maximum_rejected.py", "service": "cloudformation__resiliencehubv2"} {"check_id": "cloudformation__resiliencehubv2.deploy-resiliencehubv2-policy-round-trip-then-stack-delete", "deployments": [], "key": "cloudformation__resiliencehubv2/deploy-resiliencehubv2-policy-round-trip-then-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "resiliencehubv2:GetPolicy", "resiliencehubv2:ListTagsForResource"], "path": "behavioral/cloudformation__resiliencehubv2/check_deploy_resiliencehubv2_policy_round_trip_then_stack_delete.py", "service": "cloudformation__resiliencehubv2"} {"check_id": "cloudformation__resiliencehubv2.deploy-resiliencehubv2-service-and-servicefunction-round-trip-then-child-and-stack-delete", "deployments": [], "key": "cloudformation__resiliencehubv2/deploy-resiliencehubv2-service-and-servicefunction-round-trip-then-child-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "resiliencehubv2:GetService", "resiliencehubv2:ListTagsForResource"], "path": "behavioral/cloudformation__resiliencehubv2/check_deploy_resiliencehubv2_service_and_servicefunction_round_trip_then_child_and_stack_delete.py", "service": "cloudformation__resiliencehubv2"} {"check_id": "cloudformation__resiliencehubv2.deploy-resiliencehubv2-system-and-userjourney-round-trip-then-child-and-stack-delete", "deployments": [], "key": "cloudformation__resiliencehubv2/deploy-resiliencehubv2-system-and-userjourney-round-trip-then-child-and-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "resiliencehubv2:GetSystem", "resiliencehubv2:GetUserJourney", "resiliencehubv2:ListTagsForResource"], "path": "behavioral/cloudformation__resiliencehubv2/check_deploy_resiliencehubv2_system_and_userjourney_round_trip_then_child_and_stack_delete.py", "service": "cloudformation__resiliencehubv2"} {"check_id": "cloudformation__resource-groups.deploy-resourcegroups-group-duplicate-name-rejected-leaving-the-original", "deployments": [], "key": "cloudformation__resource-groups/deploy-resourcegroups-group-duplicate-name-rejected-leaving-the-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "resource-groups:GetGroup", "resource-groups:GetGroupQuery"], "path": "behavioral/cloudformation__resource-groups/check_deploy_resourcegroups_group_duplicate_name_rejected_leaving_the_original.py", "service": "cloudformation__resource-groups"} {"check_id": "cloudformation__resource-groups.deploy-resourcegroups-group-tag-query-round-trip-and-delete", "deployments": [], "key": "cloudformation__resource-groups/deploy-resourcegroups-group-tag-query-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "resource-groups:GetGroup", "resource-groups:GetGroupQuery"], "path": "behavioral/cloudformation__resource-groups/check_deploy_resourcegroups_group_tag_query_round_trip_and_delete.py", "service": "cloudformation__resource-groups"} {"check_id": "cloudformation__rolesanywhere.deploy-rolesanywhere-trust-anchor-crl-and-profile-round-trip-then-delete", "deployments": [], "key": "cloudformation__rolesanywhere/deploy-rolesanywhere-trust-anchor-crl-and-profile-round-trip-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rolesanywhere:GetCrl", "rolesanywhere:GetProfile", "rolesanywhere:GetTrustAnchor", "rolesanywhere:ListTagsForResource"], "path": "behavioral/cloudformation__rolesanywhere/check_deploy_rolesanywhere_trust_anchor_crl_and_profile_round_trip_then_delete.py", "service": "cloudformation__rolesanywhere"} {"check_id": "cloudformation__rolesanywhere.deploy-rolesanywhere-trust-anchor-non-ca-certificate-rejected", "deployments": [], "key": "cloudformation__rolesanywhere/deploy-rolesanywhere-trust-anchor-non-ca-certificate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rolesanywhere:GetTrustAnchor"], "path": "behavioral/cloudformation__rolesanywhere/check_deploy_rolesanywhere_trust_anchor_non_ca_certificate_rejected.py", "service": "cloudformation__rolesanywhere"} {"check_id": "cloudformation__route53.cfn-route53-recordset-hostedzone-id-and-name-both-rejected", "deployments": [], "key": "cloudformation__route53/cfn-route53-recordset-hostedzone-id-and-name-both-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/cloudformation__route53/check_cfn_route53_recordset_hostedzone_id_and_name_both_rejected.py", "service": "cloudformation__route53"} {"check_id": "cloudformation__route53.deploy-route53-cidrcollection-delegationset-trafficpolicy-round-trip-and-delete", "deployments": [], "key": "cloudformation__route53/deploy-route53-cidrcollection-delegationset-trafficpolicy-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53:GetReusableDelegationSet", "route53:GetTrafficPolicy", "route53:ListCidrBlocks", "route53:ListTrafficPolicyVersions"], "path": "behavioral/cloudformation__route53/check_deploy_route53_cidrcollection_delegationset_trafficpolicy_round_trip_and_delete.py", "service": "cloudformation__route53"} {"check_id": "cloudformation__route53.deploy-route53-hostedzone-round-trip-and-delete", "deployments": [], "key": "cloudformation__route53/deploy-route53-hostedzone-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:ListTagsForResource"], "path": "behavioral/cloudformation__route53/check_deploy_route53_hostedzone_round_trip_and_delete.py", "service": "cloudformation__route53"} {"check_id": "cloudformation__route53.deploy-route53-recordset-and-recordsetgroup-round-trip-and-delete", "deployments": [], "key": "cloudformation__route53/deploy-route53-recordset-and-recordsetgroup-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "route53:ListResourceRecordSets"], "path": "behavioral/cloudformation__route53/check_deploy_route53_recordset_and_recordsetgroup_round_trip_and_delete.py", "service": "cloudformation__route53"} {"check_id": "cloudformation__route53.deploy-route53-recordset-nonexistent-hostedzone-rejected", "deployments": [], "key": "cloudformation__route53/deploy-route53-recordset-nonexistent-hostedzone-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53:ListHostedZonesByName"], "path": "behavioral/cloudformation__route53/check_deploy_route53_recordset_nonexistent_hostedzone_rejected.py", "service": "cloudformation__route53"} {"check_id": "cloudformation__route53.deploy-route53-trafficpolicy-invalid-document-rejected", "deployments": [], "key": "cloudformation__route53/deploy-route53-trafficpolicy-invalid-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53:GetTrafficPolicy", "route53:ListTrafficPolicies"], "path": "behavioral/cloudformation__route53/check_deploy_route53_trafficpolicy_invalid_document_rejected.py", "service": "cloudformation__route53"} {"check_id": "cloudformation__route53resolver.deploy-resolver-config-enable-on-create-rejected", "deployments": [], "key": "cloudformation__route53resolver/deploy-resolver-config-enable-on-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:GetResolverConfig"], "path": "behavioral/cloudformation__route53resolver/check_deploy_resolver_config_enable_on_create_rejected.py", "service": "cloudformation__route53resolver"} {"check_id": "cloudformation__route53resolver.deploy-resolver-query-logging-config-and-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__route53resolver/deploy-resolver-query-logging-config-and-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53resolver:GetResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation"], "path": "behavioral/cloudformation__route53resolver/check_deploy_resolver_query_logging_config_and_association_round_trip_and_delete.py", "service": "cloudformation__route53resolver"} {"check_id": "cloudformation__route53resolver.deploy-resolver-query-logging-config-nonexistent-destination-rejected", "deployments": [], "key": "cloudformation__route53resolver/deploy-resolver-query-logging-config-nonexistent-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "logs:CreateLogGroup", "logs:DeleteLogGroup", "route53resolver:GetResolverQueryLogConfig"], "path": "behavioral/cloudformation__route53resolver/check_deploy_resolver_query_logging_config_nonexistent_destination_rejected.py", "service": "cloudformation__route53resolver"} {"check_id": "cloudformation__route53resolver.deploy-vpc-configs-cfn-reset-on-delete", "deployments": [], "key": "cloudformation__route53resolver/deploy-vpc-configs-cfn-reset-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:GetFirewallConfig", "route53resolver:GetResolverConfig", "route53resolver:GetResolverDnssecConfig"], "path": "behavioral/cloudformation__route53resolver/check_deploy_vpc_configs_cfn_reset_on_delete.py", "service": "cloudformation__route53resolver"} {"check_id": "cloudformation__s3.cdk-bootstrap-legacy-no-execute-leaves-a-reviewable-change-set-and-creates-nothing", "deployments": [], "key": "cloudformation__s3/cdk-bootstrap-legacy-no-execute-leaves-a-reviewable-change-set-and-creates-nothing", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions"], "path": "behavioral/cloudformation__s3/check_cdk_bootstrap_legacy_no_execute_leaves_a_reviewable_change_set_and_creates_nothing.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cdk-bootstrap-legacy-public-access-block-false-omits-the-block-and-tags-the-bucket", "deployments": [], "key": "cloudformation__s3/cdk-bootstrap-legacy-public-access-block-false-omits-the-block-and-tags-the-bucket", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cdk_bootstrap_legacy_public_access_block_false_omits_the_block_and_tags_the_bucket.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cdk-bootstrap-two-legacy-toolkit-stacks-in-one-environment-keep-separate-buckets-and-tags", "deployments": [], "key": "cloudformation__s3/cdk-bootstrap-two-legacy-toolkit-stacks-in-one-environment-keep-separate-buckets-and-tags", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetBucketPolicy", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetPublicAccessBlock", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cdk_bootstrap_two_legacy_toolkit_stacks_in_one_environment_keep_separate_buckets_and_tags.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cdk-gc-created-buffer-days-protects-a-freshly-isolated-asset-from-deletion", "deployments": ["behavioral/cloudformation__s3/deployments/cdk_asset_gc/app.py", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/cdk.json", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/lambda_v1/index.py", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/lambda_v2/index.py"], "key": "cloudformation__s3/cdk-gc-created-buffer-days-protects-a-freshly-isolated-asset-from-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__s3/check_cdk_gc_created_buffer_days_protects_a_freshly_isolated_asset_from_deletion.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cdk-gc-tags-the-unused-asset-isolated-and-deletes-it-while-the-referenced-one-stays", "deployments": ["behavioral/cloudformation__s3/deployments/cdk_asset_gc/app.py", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/cdk.json", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/lambda_v1/index.py", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/lambda_v2/index.py"], "key": "cloudformation__s3/cdk-gc-tags-the-unused-asset-isolated-and-deletes-it-while-the-referenced-one-stays", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__s3/check_cdk_gc_tags_the_unused_asset_isolated_and_deletes_it_while_the_referenced_one_stays.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cdk-publish-assets-uploads-without-a-stack-then-deploy-skips-the-reupload", "deployments": ["behavioral/cloudformation__s3/deployments/cdk_asset_gc/app.py", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/cdk.json", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/lambda_v1/index.py", "behavioral/cloudformation__s3/deployments/cdk_asset_gc/lambda_v2/index.py"], "key": "cloudformation__s3/cdk-publish-assets-uploads-without-a-stack-then-deploy-skips-the-reupload", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__s3/check_cdk_publish_assets_uploads_without_a_stack_then_deploy_skips_the_reupload.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cdk-s3-public-access-blocked-by-default-flag-governs-whether-a-public-bucket-policy-is-rejected", "deployments": ["behavioral/cloudformation__s3/deployments/cdk_s3_public_access_block_flag/app.py", "behavioral/cloudformation__s3/deployments/cdk_s3_public_access_block_flag/cdk.json"], "key": "cloudformation__s3/cdk-s3-public-access-blocked-by-default-flag-governs-whether-a-public-bucket-policy-is-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:GetBucketPolicy", "s3:GetPublicAccessBlock", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__s3/check_cdk_s3_public_access_blocked_by_default_flag_governs_whether_a_public_bucket_policy_is_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-cdk-style-asset-bucket-deploy-and-no-change-redeploy", "deployments": [], "key": "cloudformation__s3/cfn-changeset-cdk-style-asset-bucket-deploy-and-no-change-redeploy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketEncryption", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_cdk_style_asset_bucket_deploy_and_no_change_redeploy.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-source-conflicts-rejected", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-source-conflicts-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_source_conflicts_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-allows-template-over-inline-limit", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-allows-template-over-inline-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_allows_template_over_inline_limit.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-deleted-or-unknown-version-rejected", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-deleted-or-unknown-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_deleted_or_unknown_version_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-global-endpoint-forms-create-stacks", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-global-endpoint-forms-create-stacks", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_global_endpoint_forms_create_stacks.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-include-nested-stacks-child-url", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-include-nested-stacks-child-url", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_include_nested_stacks_child_url.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-missing-bucket-rejected", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-missing-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_missing_bucket_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-missing-object-rejected", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-missing-object-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_missing_object_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-object-over-1mb-rejected", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-object-over-1mb-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_object_over_1mb_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-path-style-creates-stack", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-path-style-creates-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_path_style_creates_stack.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-presigned-url-creates-stack", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-presigned-url-creates-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_presigned_url_creates_stack.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-unsupported-location-rejected", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-unsupported-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_unsupported_location_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-update-previews-and-applies-diff", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-update-previews-and-applies-diff", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_update_previews_and_applies_diff.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-version-id-selects-object-version", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-version-id-selects-object-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_version_id_selects_object_version.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-changeset-template-url-virtual-hosted-regional-creates-stack", "deployments": [], "key": "cloudformation__s3/cfn-changeset-template-url-virtual-hosted-regional-creates-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_changeset_template_url_virtual_hosted_regional_creates_stack.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-s3-bucket-cors-allowed-methods-duplicate-rejected", "deployments": [], "key": "cloudformation__s3/cfn-s3-bucket-cors-allowed-methods-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "s3:GetBucketCors", "s3:HeadBucket"], "path": "behavioral/cloudformation__s3/check_cfn_s3_bucket_cors_allowed_methods_duplicate_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-s3-bucket-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__s3/cfn-s3-bucket-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_cfn_s3_bucket_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-s3-bucket-tags-drift-reports-expected-and-actual", "deployments": [], "key": "cloudformation__s3/cfn-s3-bucket-tags-drift-reports-expected-and-actual", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "s3:GetBucketTagging", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__s3/check_cfn_s3_bucket_tags_drift_reports_expected_and_actual.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-s3-bucket-uppercase-name-rejected-and-never-created", "deployments": [], "key": "cloudformation__s3/cfn-s3-bucket-uppercase-name-rejected-and-never-created", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:GetBucketVersioning", "s3:HeadBucket"], "path": "behavioral/cloudformation__s3/check_cfn_s3_bucket_uppercase_name_rejected_and_never_created.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.cfn-s3-bucket-versioning-and-getatt-read-back-then-no-such-bucket-after-delete", "deployments": [], "key": "cloudformation__s3/cfn-s3-bucket-versioning-and-getatt-read-back-then-no-such-bucket-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "s3:GetBucketVersioning"], "path": "behavioral/cloudformation__s3/check_cfn_s3_bucket_versioning_and_getatt_read_back_then_no_such_bucket_after_delete.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.change-set-disable-validation-defers-the-bucket-name-collision-to-execution", "deployments": [], "key": "cloudformation__s3/change-set-disable-validation-defers-the-bucket-name-collision-to-execution", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketTagging", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__s3/check_change_set_disable_validation_defers_the_bucket_name_collision_to_execution.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.change-set-include-nested-stacks-links-the-change-set-tree", "deployments": [], "key": "cloudformation__s3/change-set-include-nested-stacks-links-the-change-set-tree", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_change_set_include_nested_stacks_links_the_change_set_tree.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.change-set-pre-deployment-validation-rejects-an-existing-bucket-name", "deployments": [], "key": "cloudformation__s3/change-set-pre-deployment-validation-rejects-an-existing-bucket-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketTagging", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__s3/check_change_set_pre_deployment_validation_rejects_an_existing_bucket_name.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.deploy-cdk-bucket-deployment-denied-put-blocks-create-and-lands-nothing", "deployments": ["behavioral/cloudformation__s3/deployments/bucket_deployment_denied_put/app.py", "behavioral/cloudformation__s3/deployments/bucket_deployment_denied_put/cdk.json"], "key": "cloudformation__s3/deploy-cdk-bucket-deployment-denied-put-blocks-create-and-lands-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecr:DescribeRepositories", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__s3/check_deploy_cdk_bucket_deployment_denied_put_blocks_create_and_lands_nothing.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.deploy-cdk-bucket-deployment-lands-prunes-and-retains-on-destroy", "deployments": ["behavioral/cloudformation__s3/deployments/bucket_deployment_lifecycle/app.py", "behavioral/cloudformation__s3/deployments/bucket_deployment_lifecycle/cdk.json"], "key": "cloudformation__s3/deploy-cdk-bucket-deployment-lands-prunes-and-retains-on-destroy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ecr:DeleteRepository", "ecr:DescribeRepositories", "iam:ListRoles", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__s3/check_deploy_cdk_bucket_deployment_lands_prunes_and_retains_on_destroy.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.deploy-s3-bucket-policy-lifecycle-then-not-found", "deployments": [], "key": "cloudformation__s3/deploy-s3-bucket-policy-lifecycle-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:GetBucketPolicy"], "path": "behavioral/cloudformation__s3/check_deploy_s3_bucket_policy_lifecycle_then_not_found.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.deploy-s3-bucket-policy-missing-policydocument-rejected", "deployments": [], "key": "cloudformation__s3/deploy-s3-bucket-policy-missing-policydocument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "s3:GetBucketPolicy", "s3:HeadBucket"], "path": "behavioral/cloudformation__s3/check_deploy_s3_bucket_policy_missing_policydocument_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__ec2__s3__s3control.deploy-s3express-directorybucket-invalid-data-redundancy-rejected", "deployments": [], "key": "cloudformation__s3/deploy-s3express-directorybucket-invalid-data-redundancy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:HeadBucket"], "path": "behavioral/cloudformation__s3/check_deploy_s3express_directorybucket_invalid_data_redundancy_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.nested-change-set-child-execution-status-unavailable", "deployments": [], "key": "cloudformation__s3/nested-change-set-child-execution-status-unavailable", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_nested_change_set_child_execution_status_unavailable.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.register-type-non-zip-handler-package-rejected", "deployments": [], "key": "cloudformation__s3/register-type-non-zip-handler-package-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DescribeType", "cloudformation:DescribeTypeRegistration", "cloudformation:RegisterType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_register_type_non_zip_handler_package_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.sam-cli-delete-no-prompts-removes-stack-and-prefixed-artifacts", "deployments": ["behavioral/cloudformation__s3/deployments/sam_cli_minimal/src/app.py", "behavioral/cloudformation__s3/deployments/sam_cli_minimal/template.yaml"], "key": "cloudformation__s3/sam-cli-delete-no-prompts-removes-stack-and-prefixed-artifacts", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_sam_cli_delete_no_prompts_removes_stack_and_prefixed_artifacts.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.sam-cli-no-execute-changeset-leaves-stack-in-review", "deployments": ["behavioral/cloudformation__s3/deployments/sam_cli_minimal/src/app.py", "behavioral/cloudformation__s3/deployments/sam_cli_minimal/template.yaml"], "key": "cloudformation__s3/sam-cli-no-execute-changeset-leaves-stack-in-review", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__s3/check_sam_cli_no_execute_changeset_leaves_stack_in_review.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.sam-cli-parameter-override-outside-allowed-values-rejected", "deployments": ["behavioral/cloudformation__s3/deployments/sam_cli_allowed_values/template.yaml"], "key": "cloudformation__s3/sam-cli-parameter-override-outside-allowed-values-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__s3/check_sam_cli_parameter_override_outside_allowed_values_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.sam-cli-redeploy-unchanged-reports-empty-changeset", "deployments": ["behavioral/cloudformation__s3/deployments/sam_cli_minimal/src/app.py", "behavioral/cloudformation__s3/deployments/sam_cli_minimal/template.yaml"], "key": "cloudformation__s3/sam-cli-redeploy-unchanged-reports-empty-changeset", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudformation__s3/check_sam_cli_redeploy_unchanged_reports_empty_changeset.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.stack-create-stack-policy-url-applied-and-validated", "deployments": [], "key": "cloudformation__s3/stack-create-stack-policy-url-applied-and-validated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_stack_create_stack_policy_url_applied_and_validated.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.stack-create-stack-policy-url-missing-object-rejected", "deployments": [], "key": "cloudformation__s3/stack-create-stack-policy-url-missing-object-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_stack_create_stack_policy_url_missing_object_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.stack-nested-child-update-failure-reason-chain", "deployments": [], "key": "cloudformation__s3/stack-nested-child-update-failure-reason-chain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_stack_nested_child_update_failure_reason_chain.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.stack-update-from-template-url", "deployments": [], "key": "cloudformation__s3/stack-update-from-template-url", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_stack_update_from_template_url.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.stack-update-stack-policy-during-update-url-overrides-once", "deployments": [], "key": "cloudformation__s3/stack-update-stack-policy-during-update-url-overrides-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_stack_update_stack_policy_during_update_url_overrides_once.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.stack-update-stack-policy-url-replaces-stored-policy", "deployments": [], "key": "cloudformation__s3/stack-update-stack-policy-url-replaces-stored-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_stack_update_stack_policy_url_replaces_stored_policy.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.stack-update-template-url-missing-object-rejected", "deployments": [], "key": "cloudformation__s3/stack-update-template-url-missing-object-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_stack_update_template_url_missing_object_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.template-url-missing-object-rejected", "deployments": [], "key": "cloudformation__s3/template-url-missing-object-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:EstimateTemplateCost", "cloudformation:GetTemplateSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_template_url_missing_object_rejected.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__s3.template-url-summary-cost-and-stack-set", "deployments": [], "key": "cloudformation__s3/template-url-summary-cost-and-stack-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackSet", "cloudformation:EstimateTemplateCost", "cloudformation:GetTemplateSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/cloudformation__s3/check_template_url_summary_cost_and_stack_set.py", "service": "cloudformation__s3"} {"check_id": "cloudformation__servicecatalog.deploy-servicecatalog-product-portfolio-constraints-round-trip", "deployments": [], "key": "cloudformation__s3__servicecatalog/deploy-servicecatalog-product-portfolio-constraints-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "servicecatalog:DescribeConstraint", "servicecatalog:DescribePortfolio", "servicecatalog:DescribeProductAsAdmin", "servicecatalog:DescribeServiceAction", "servicecatalog:ListProvisioningArtifacts"], "path": "behavioral/cloudformation__s3__servicecatalog/check_deploy_servicecatalog_product_portfolio_constraints_round_trip.py", "service": "cloudformation__s3__servicecatalog"} {"check_id": "cloudformation__servicecatalog.deploy-servicecatalog-stackset-constraint-account-list-rejected", "deployments": [], "key": "cloudformation__s3__servicecatalog/deploy-servicecatalog-stackset-constraint-account-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:DescribeConstraint", "servicecatalog:DescribePortfolio", "servicecatalog:DescribeProductAsAdmin"], "path": "behavioral/cloudformation__s3__servicecatalog/check_deploy_servicecatalog_stackset_constraint_account_list_rejected.py", "service": "cloudformation__s3__servicecatalog"} {"check_id": "cloudformation__servicecatalog.deploy-servicecatalog-stackset-constraint-round-trip", "deployments": [], "key": "cloudformation__s3__servicecatalog/deploy-servicecatalog-stackset-constraint-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:DescribeConstraint", "servicecatalog:DescribePortfolio", "servicecatalog:DescribeProductAsAdmin"], "path": "behavioral/cloudformation__s3__servicecatalog/check_deploy_servicecatalog_stackset_constraint_round_trip.py", "service": "cloudformation__s3__servicecatalog"} {"check_id": "cloudformation__servicecatalog.deploy-servicecatalog-provisioned-product-round-trip", "deployments": [], "key": "cloudformation__s3__servicecatalog__sts/deploy-servicecatalog-provisioned-product-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "servicecatalog:DescribePortfolio", "servicecatalog:DescribeProductAsAdmin", "servicecatalog:DescribeProvisionedProduct", "servicecatalog:DescribeRecord", "servicecatalog:SearchProvisionedProducts", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__s3__servicecatalog__sts/check_deploy_servicecatalog_provisioned_product_round_trip.py", "service": "cloudformation__s3__servicecatalog__sts"} {"check_id": "cloudformation__s3__sqs.cdk-default-deploy-queue-with-dlq-redrives-and-carries-cdk-metadata", "deployments": ["behavioral/cloudformation__s3__sqs/deployments/cdk_default_queue_redrive/app.py", "behavioral/cloudformation__s3__sqs/deployments/cdk_default_queue_redrive/cdk.json"], "key": "cloudformation__s3__sqs/cdk-default-deploy-queue-with-dlq-redrives-and-carries-cdk-metadata", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__s3__sqs/check_cdk_default_deploy_queue_with_dlq_redrives_and_carries_cdk_metadata.py", "service": "cloudformation__s3__sqs"} {"check_id": "cloudformation__s3__sqs.deploy-cloudformation-3-include-malformed-snippet-fails", "deployments": [], "key": "cloudformation__s3__sqs/deploy-cloudformation-3-include-malformed-snippet-fails", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__s3__sqs/check_deploy_cloudformation_3_include_malformed_snippet_fails.py", "service": "cloudformation__s3__sqs"} {"check_id": "cloudformation__s3__sqs.deploy-cloudformation-3-include-snippet-snapshotted-until-stack-update", "deployments": [], "key": "cloudformation__s3__sqs/deploy-cloudformation-3-include-snippet-snapshotted-until-stack-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__s3__sqs/check_deploy_cloudformation_3_include_snippet_snapshotted_until_stack_update.py", "service": "cloudformation__s3__sqs"} {"check_id": "cloudformation__s3__sqs.deploy-cloudformation-3-include-transform-injects-queue-properties", "deployments": [], "key": "cloudformation__s3__sqs/deploy-cloudformation-3-include-transform-injects-queue-properties", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueueTags", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__s3__sqs/check_deploy_cloudformation_3_include_transform_injects_queue_properties.py", "service": "cloudformation__s3__sqs"} {"check_id": "cloudformation__s3__sqs.deploy-cloudformation-3-include-transform-missing-s3-key-fails", "deployments": [], "key": "cloudformation__s3__sqs/deploy-cloudformation-3-include-transform-missing-s3-key-fails", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__s3__sqs/check_deploy_cloudformation_3_include_transform_missing_s3_key_fails.py", "service": "cloudformation__s3__sqs"} {"check_id": "cloudformation__s3__sqs.deploy-cloudformation-3-include-without-auto-expand-rejected", "deployments": [], "key": "cloudformation__s3__sqs/deploy-cloudformation-3-include-without-auto-expand-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__s3__sqs/check_deploy_cloudformation_3_include_without_auto_expand_rejected.py", "service": "cloudformation__s3__sqs"} {"check_id": "cloudformation__s3__sqs.sam-cli-local-application-deploys-nested-stack", "deployments": ["behavioral/cloudformation__s3__sqs/deployments/sam_cli_nested_app/child/template.yaml", "behavioral/cloudformation__s3__sqs/deployments/sam_cli_nested_app/template.yaml"], "key": "cloudformation__s3__sqs/sam-cli-local-application-deploys-nested-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__s3__sqs/check_sam_cli_local_application_deploys_nested_stack.py", "service": "cloudformation__s3__sqs"} {"check_id": "cloudformation__s3__sqs.sam-serverless-application-s3-location-creates-real-nested-stack", "deployments": [], "key": "cloudformation__s3__sqs/sam-serverless-application-s3-location-creates-real-nested-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__s3__sqs/check_sam_serverless_application_s3_location_creates_real_nested_stack.py", "service": "cloudformation__s3__sqs"} {"check_id": "cloudformation__s3__sqs__ssm.cdk-default-deploy-nested-stack-queue-url-reaches-parent-output", "deployments": ["behavioral/cloudformation__s3__sqs__ssm/deployments/cdk_default_nested_queue/app.py", "behavioral/cloudformation__s3__sqs__ssm/deployments/cdk_default_nested_queue/cdk.json"], "key": "cloudformation__s3__sqs__ssm/cdk-default-deploy-nested-stack-queue-url-reaches-parent-output", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:GetParameter"], "path": "behavioral/cloudformation__s3__sqs__ssm/check_cdk_default_deploy_nested_stack_queue_url_reaches_parent_output.py", "service": "cloudformation__s3__sqs__ssm"} {"check_id": "cloudformation__s3__ssm.cfn-nested-stack-in-place-parameter-update-reaches-child-resource-then-not-found", "deployments": [], "key": "cloudformation__s3__ssm/cfn-nested-stack-in-place-parameter-update-reaches-child-resource-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "ssm:GetParameter"], "path": "behavioral/cloudformation__s3__ssm/check_cfn_nested_stack_in_place_parameter_update_reaches_child_resource_then_not_found.py", "service": "cloudformation__s3__ssm"} {"check_id": "cloudformation__s3__sts.cfn-s3-bucket-policy-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__s3__sts/cfn-s3-bucket-policy-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__s3__sts/check_cfn_s3_bucket_policy_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__s3__sts"} {"check_id": "cloudformation__s3control.deploy-s3-access-grants-instance-location-grant-lifecycle", "deployments": [], "key": "cloudformation__s3control/deploy-s3-access-grants-instance-location-grant-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3control:GetAccessGrant", "s3control:GetAccessGrantsInstance", "s3control:GetAccessGrantsLocation"], "path": "behavioral/cloudformation__s3control/check_deploy_s3_access_grants_instance_location_grant_lifecycle.py", "service": "cloudformation__s3control"} {"check_id": "cloudformation__s3control.deploy-s3-access-point-lifecycle", "deployments": [], "key": "cloudformation__s3control/deploy-s3-access-point-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3control:GetAccessPoint"], "path": "behavioral/cloudformation__s3control/check_deploy_s3_access_point_lifecycle.py", "service": "cloudformation__s3control"} {"check_id": "cloudformation__s3control.deploy-s3-multi-region-access-point-and-policy-lifecycle", "deployments": [], "key": "cloudformation__s3control/deploy-s3-multi-region-access-point-and-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3control:GetMultiRegionAccessPoint", "s3control:GetMultiRegionAccessPointPolicy", "s3control:GetMultiRegionAccessPointPolicyStatus"], "path": "behavioral/cloudformation__s3control/check_deploy_s3_multi_region_access_point_and_policy_lifecycle.py", "service": "cloudformation__s3control"} {"check_id": "cloudformation__s3control.deploy-s3-multi-region-access-point-missing-bucket-rejected", "deployments": [], "key": "cloudformation__s3control/deploy-s3-multi-region-access-point-missing-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3control:GetMultiRegionAccessPoint"], "path": "behavioral/cloudformation__s3control/check_deploy_s3_multi_region_access_point_missing_bucket_rejected.py", "service": "cloudformation__s3control"} {"check_id": "cloudformation__s3control.deploy-s3-storage-lens-and-group-lifecycle", "deployments": [], "key": "cloudformation__s3control/deploy-s3-storage-lens-and-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3control:GetStorageLensConfiguration", "s3control:GetStorageLensGroup"], "path": "behavioral/cloudformation__s3control/check_deploy_s3_storage_lens_and_group_lifecycle.py", "service": "cloudformation__s3control"} {"check_id": "cloudformation__s3files.deploy-s3files-accesspoint-round-trip-and-delete", "deployments": [], "key": "cloudformation__s3files/deploy-s3files-accesspoint-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3files:GetAccessPoint"], "path": "behavioral/cloudformation__s3files/check_deploy_s3files_accesspoint_round_trip_and_delete.py", "service": "cloudformation__s3files"} {"check_id": "cloudformation__s3files.deploy-s3files-filesystem-round-trip-and-delete", "deployments": [], "key": "cloudformation__s3files/deploy-s3files-filesystem-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3files:GetFileSystem"], "path": "behavioral/cloudformation__s3files/check_deploy_s3files_filesystem_round_trip_and_delete.py", "service": "cloudformation__s3files"} {"check_id": "cloudformation__s3files.deploy-s3files-filesystem-unversioned-bucket-rejected", "deployments": [], "key": "cloudformation__s3files/deploy-s3files-filesystem-unversioned-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__s3files/check_deploy_s3files_filesystem_unversioned_bucket_rejected.py", "service": "cloudformation__s3files"} {"check_id": "cloudformation__s3files.deploy-s3files-filesystempolicy-round-trip-and-delete", "deployments": [], "key": "cloudformation__s3files/deploy-s3files-filesystempolicy-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3files:GetFileSystem", "s3files:GetFileSystemPolicy"], "path": "behavioral/cloudformation__s3files/check_deploy_s3files_filesystempolicy_round_trip_and_delete.py", "service": "cloudformation__s3files"} {"check_id": "cloudformation__s3files.deploy-s3files-mounttarget-round-trip-and-delete", "deployments": [], "key": "cloudformation__s3files/deploy-s3files-mounttarget-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3files:GetMountTarget"], "path": "behavioral/cloudformation__s3files/check_deploy_s3files_mounttarget_round_trip_and_delete.py", "service": "cloudformation__s3files"} {"check_id": "cloudformation__s3tables.cfn-s3tables-table-bucket-in-place-update-retained-replacement-hosts-table-then-not-found", "deployments": [], "key": "cloudformation__s3tables/cfn-s3tables-table-bucket-in-place-update-retained-replacement-hosts-table-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetNamespace", "s3tables:GetTable", "s3tables:GetTableBucket", "s3tables:GetTableBucketMaintenanceConfiguration", "s3tables:ListTables", "s3tables:ListTagsForResource"], "path": "behavioral/cloudformation__s3tables/check_cfn_s3tables_table_bucket_in_place_update_retained_replacement_hosts_table_then_not_found.py", "service": "cloudformation__s3tables"} {"check_id": "cloudformation__s3tables.cfn-s3tables-table-compaction-target-file-size-below-minimum-rejected", "deployments": [], "key": "cloudformation__s3tables/cfn-s3tables-table-compaction-target-file-size-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3tables:GetTableMaintenanceConfiguration"], "path": "behavioral/cloudformation__s3tables/check_cfn_s3tables_table_compaction_target_file_size_below_minimum_rejected.py", "service": "cloudformation__s3tables"} {"check_id": "cloudformation__s3tables.deploy-s3tables-resource-types-read-back-and-removed", "deployments": [], "key": "cloudformation__s3tables/deploy-s3tables-resource-types-read-back-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3tables:GetTable", "s3tables:GetTableBucket", "s3tables:GetTableBucketPolicy", "s3tables:GetTablePolicy", "s3tables:ListTagsForResource"], "path": "behavioral/cloudformation__s3tables/check_deploy_s3tables_resource_types_read_back_and_removed.py", "service": "cloudformation__s3tables"} {"check_id": "cloudformation__s3vectors.cfn-s3vectors-index-in-place-update-retained-replacement-queries-nearest-then-not-found", "deployments": [], "key": "cloudformation__s3vectors/cfn-s3vectors-index-in-place-update-retained-replacement-queries-nearest-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3vectors:DeleteIndex", "s3vectors:GetIndex", "s3vectors:GetVectorBucket", "s3vectors:ListIndexes", "s3vectors:ListTagsForResource", "s3vectors:ListVectors", "s3vectors:PutVectors", "s3vectors:QueryVectors"], "path": "behavioral/cloudformation__s3vectors/check_cfn_s3vectors_index_in_place_update_retained_replacement_queries_nearest_then_not_found.py", "service": "cloudformation__s3vectors"} {"check_id": "cloudformation__s3vectors.cfn-s3vectors-vector-bucket-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__s3vectors/cfn-s3vectors-vector-bucket-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3vectors:CreateIndex", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket", "s3vectors:GetVectors", "s3vectors:ListTagsForResource", "s3vectors:PutVectors"], "path": "behavioral/cloudformation__s3vectors/check_cfn_s3vectors_vector_bucket_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__s3vectors"} {"check_id": "cloudformation__s3vectors.cfn-s3vectors-vector-bucket-policy-invalid-action-namespace-rejected", "deployments": [], "key": "cloudformation__s3vectors/cfn-s3vectors-vector-bucket-policy-invalid-action-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3vectors:GetVectorBucket", "s3vectors:GetVectorBucketPolicy"], "path": "behavioral/cloudformation__s3vectors/check_cfn_s3vectors_vector_bucket_policy_invalid_action_namespace_rejected.py", "service": "cloudformation__s3vectors"} {"check_id": "cloudformation__s3vectors.deploy-s3vectors-vector-bucket-policy-provisioned-and-removed", "deployments": [], "key": "cloudformation__s3vectors/deploy-s3vectors-vector-bucket-policy-provisioned-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3vectors:GetVectorBucket", "s3vectors:GetVectorBucketPolicy"], "path": "behavioral/cloudformation__s3vectors/check_deploy_s3vectors_vector_bucket_policy_provisioned_and_removed.py", "service": "cloudformation__s3vectors"} {"check_id": "cloudformation__sagemaker.cfn-notebook-lifecycle-config-invalid-name-rejected", "deployments": [], "key": "cloudformation__sagemaker/cfn-notebook-lifecycle-config-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeNotebookInstanceLifecycleConfig"], "path": "behavioral/cloudformation__sagemaker/check_cfn_notebook_lifecycle_config_invalid_name_rejected.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.cfn-notebook-lifecycle-config-round-trip", "deployments": [], "key": "cloudformation__sagemaker/cfn-notebook-lifecycle-config-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeNotebookInstanceLifecycleConfig"], "path": "behavioral/cloudformation__sagemaker/check_cfn_notebook_lifecycle_config_round_trip.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.cfn-sagemaker-experiment-duplicate-name-rejected-leaving-the-original", "deployments": [], "key": "cloudformation__sagemaker/cfn-sagemaker-experiment-duplicate-name-rejected-leaving-the-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeExperiment"], "path": "behavioral/cloudformation__sagemaker/check_cfn_sagemaker_experiment_duplicate_name_rejected_leaving_the_original.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.cfn-sagemaker-model-in-place-tags-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__sagemaker/cfn-sagemaker-model-in-place-tags-retained-replacement-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sagemaker:DeleteModel", "sagemaker:DescribeModel", "sagemaker:ListTags"], "path": "behavioral/cloudformation__sagemaker/check_cfn_sagemaker_model_in_place_tags_retained_replacement_then_not_found.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-cloudformation-sagemaker-ai-workload-config-round-trip-and-delete", "deployments": [], "key": "cloudformation__sagemaker/deploy-cloudformation-sagemaker-ai-workload-config-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeAIWorkloadConfig"], "path": "behavioral/cloudformation__sagemaker/check_deploy_cloudformation_sagemaker_ai_workload_config_round_trip_and_delete.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-cloudformation-sagemaker-experiment-and-trial-component-round-trip-and-delete", "deployments": [], "key": "cloudformation__sagemaker/deploy-cloudformation-sagemaker-experiment-and-trial-component-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeExperiment", "sagemaker:DescribeTrialComponent"], "path": "behavioral/cloudformation__sagemaker/check_deploy_cloudformation_sagemaker_experiment_and_trial_component_round_trip_and_delete.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-cloudformation-sagemaker-lineage-entities-round-trip-and-delete", "deployments": [], "key": "cloudformation__sagemaker/deploy-cloudformation-sagemaker-lineage-entities-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeAction", "sagemaker:DescribeArtifact", "sagemaker:DescribeContext"], "path": "behavioral/cloudformation__sagemaker/check_deploy_cloudformation_sagemaker_lineage_entities_round_trip_and_delete.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-sagemaker-cfn-algorithm-read-back-then-gone", "deployments": [], "key": "cloudformation__sagemaker/deploy-sagemaker-cfn-algorithm-read-back-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeAlgorithm"], "path": "behavioral/cloudformation__sagemaker/check_deploy_sagemaker_cfn_algorithm_read_back_then_gone.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-sagemaker-cfn-config-resources-read-back-then-gone", "deployments": [], "key": "cloudformation__sagemaker/deploy-sagemaker-cfn-config-resources-read-back-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DeleteContext", "sagemaker:DescribeAppImageConfig", "sagemaker:DescribeCodeRepository", "sagemaker:DescribeHub", "sagemaker:DescribeModelCard", "sagemaker:DescribeModelPackageGroup", "sagemaker:DescribeStudioLifecycleConfig"], "path": "behavioral/cloudformation__sagemaker/check_deploy_sagemaker_cfn_config_resources_read_back_then_gone.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-sagemaker-cfn-model-package-in-group-read-back-then-gone", "deployments": [], "key": "cloudformation__sagemaker/deploy-sagemaker-cfn-model-package-in-group-read-back-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sagemaker:DeleteAction", "sagemaker:DeleteArtifact", "sagemaker:DeleteAssociation", "sagemaker:DeleteContext", "sagemaker:DescribeModelPackage", "sagemaker:DescribeModelPackageGroup"], "path": "behavioral/cloudformation__sagemaker/check_deploy_sagemaker_cfn_model_package_in_group_read_back_then_gone.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-sagemaker-cfn-modelcard-invalid-status-rejected", "deployments": [], "key": "cloudformation__sagemaker/deploy-sagemaker-cfn-modelcard-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeModelCard"], "path": "behavioral/cloudformation__sagemaker/check_deploy_sagemaker_cfn_modelcard_invalid_status_rejected.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-sagemaker-featuregroup-and-pipeline-round-trip-and-delete", "deployments": [], "key": "cloudformation__sagemaker/deploy-sagemaker-featuregroup-and-pipeline-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeFeatureGroup", "sagemaker:DescribePipeline"], "path": "behavioral/cloudformation__sagemaker/check_deploy_sagemaker_featuregroup_and_pipeline_round_trip_and_delete.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__sagemaker.deploy-sagemaker-featuregroup-eventtimefeaturename-not-in-definitions-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__sagemaker/deploy-sagemaker-featuregroup-eventtimefeaturename-not-in-definitions-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/cloudformation__sagemaker/check_deploy_sagemaker_featuregroup_eventtimefeaturename_not_in_definitions_rejected_and_rolled_back.py", "service": "cloudformation__sagemaker"} {"check_id": "cloudformation__scheduler.deploy-scheduler-schedule-and-group-round-trip-and-delete", "deployments": [], "key": "cloudformation__scheduler/deploy-scheduler-schedule-and-group-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "scheduler:ListTagsForResource"], "path": "behavioral/cloudformation__scheduler/check_deploy_scheduler_schedule_and_group_round_trip_and_delete.py", "service": "cloudformation__scheduler"} {"check_id": "cloudformation__scheduler.deploy-scheduler-schedule-malformed-rate-expression-rejected", "deployments": [], "key": "cloudformation__scheduler/deploy-scheduler-schedule-malformed-rate-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "scheduler:GetSchedule"], "path": "behavioral/cloudformation__scheduler/check_deploy_scheduler_schedule_malformed_rate_expression_rejected.py", "service": "cloudformation__scheduler"} {"check_id": "cloudformation__scheduler__sqs.cfn-scheduler-schedule-in-place-at-update-delivers-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__scheduler__sqs/cfn-scheduler-schedule-in-place-at-update-delivers-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__scheduler__sqs/check_cfn_scheduler_schedule_in_place_at_update_delivers_retained_replacement_then_not_found.py", "service": "cloudformation__scheduler__sqs"} {"check_id": "cloudformation__schemas.deploy-eventschemas-registry-policy-schema-round-trip-and-delete", "deployments": [], "key": "cloudformation__schemas/deploy-eventschemas-registry-policy-schema-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "schemas:DescribeRegistry", "schemas:DescribeSchema", "schemas:GetResourcePolicy", "schemas:ListTagsForResource"], "path": "behavioral/cloudformation__schemas/check_deploy_eventschemas_registry_policy_schema_round_trip_and_delete.py", "service": "cloudformation__schemas"} {"check_id": "cloudformation__schemas.deploy-eventschemas-schema-invalid-content-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__schemas/deploy-eventschemas-schema-invalid-content-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "schemas:DescribeRegistry", "schemas:DescribeSchema"], "path": "behavioral/cloudformation__schemas/check_deploy_eventschemas_schema_invalid_content_rejected_and_rolled_back.py", "service": "cloudformation__schemas"} {"check_id": "cloudformation__secretsmanager.cfn-secretsmanager-secret-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__secretsmanager/cfn-secretsmanager-secret-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/cloudformation__secretsmanager/check_cfn_secretsmanager_secret_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__secretsmanager"} {"check_id": "cloudformation__secretsmanager.cfn-secretsmanager-secret-ref-and-getatt-id-match-secretsmanager-arn", "deployments": [], "key": "cloudformation__secretsmanager/cfn-secretsmanager-secret-ref-and-getatt-id-match-secretsmanager-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/cloudformation__secretsmanager/check_cfn_secretsmanager_secret_ref_and_getatt_id_match_secretsmanager_arn.py", "service": "cloudformation__secretsmanager"} {"check_id": "cloudformation__secretsmanager.deploy-secretsmanager-resourcepolicy-attached-then-removed-by-stack-update", "deployments": [], "key": "cloudformation__secretsmanager/deploy-secretsmanager-resourcepolicy-attached-then-removed-by-stack-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "secretsmanager:DescribeSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue"], "path": "behavioral/cloudformation__secretsmanager/check_deploy_secretsmanager_resourcepolicy_attached_then_removed_by_stack_update.py", "service": "cloudformation__secretsmanager"} {"check_id": "cloudformation__secretsmanager.deploy-secretsmanager-rotationschedule-conflicting-rules-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__secretsmanager/deploy-secretsmanager-rotationschedule-conflicting-rules-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret"], "path": "behavioral/cloudformation__secretsmanager/check_deploy_secretsmanager_rotationschedule_conflicting_rules_rejected_and_rolled_back.py", "service": "cloudformation__secretsmanager"} {"check_id": "cloudformation__secretsmanager.output-getatt-on-writeonly-secretstring-rejected", "deployments": [], "key": "cloudformation__secretsmanager/output-getatt-on-writeonly-secretstring-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/cloudformation__secretsmanager/check_output_getatt_on_writeonly_secretstring_rejected.py", "service": "cloudformation__secretsmanager"} {"check_id": "cloudformation__secretsmanager__ssm.cdk-deploy-generated-secret-and-tagged-parameter-read-back-then-destroyed", "deployments": ["behavioral/cloudformation__secretsmanager__ssm/deployments/cdk-secret-param/app.py", "behavioral/cloudformation__secretsmanager__ssm/deployments/cdk-secret-param/cdk.json"], "key": "cloudformation__secretsmanager__ssm/cdk-deploy-generated-secret-and-tagged-parameter-read-back-then-destroyed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "secretsmanager:GetSecretValue", "ssm:GetParameter", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__secretsmanager__ssm/check_cdk_deploy_generated_secret_and_tagged_parameter_read_back_then_destroyed.py", "service": "cloudformation__secretsmanager__ssm"} {"check_id": "cloudformation__secretsmanager__ssm.cloudformation-stack-deletion-removes-the-secret-and-the-ssm-reference-then-404s", "deployments": [], "key": "cloudformation__secretsmanager__ssm/cloudformation-stack-deletion-removes-the-secret-and-the-ssm-reference-then-404s", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "ssm:GetParameter"], "path": "behavioral/cloudformation__secretsmanager__ssm/check_cloudformation_stack_deletion_removes_the_secret_and_the_ssm_reference_then_404s.py", "service": "cloudformation__secretsmanager__ssm"} {"check_id": "cloudformation__securityagent.deploy-securityagent-agent-space-and-artifact-lifecycle", "deployments": [], "key": "cloudformation__securityagent/deploy-securityagent-agent-space-and-artifact-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "securityagent:BatchGetAgentSpaces", "securityagent:GetArtifact"], "path": "behavioral/cloudformation__securityagent/check_deploy_securityagent_agent_space_and_artifact_lifecycle.py", "service": "cloudformation__securityagent"} {"check_id": "cloudformation__securityagent.deploy-securityagent-application-lifecycle", "deployments": [], "key": "cloudformation__securityagent/deploy-securityagent-application-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "securityagent:GetApplication"], "path": "behavioral/cloudformation__securityagent/check_deploy_securityagent_application_lifecycle.py", "service": "cloudformation__securityagent"} {"check_id": "cloudformation__securityagent.deploy-securityagent-artifact-invalid-type-rejected", "deployments": [], "key": "cloudformation__securityagent/deploy-securityagent-artifact-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "securityagent:GetArtifact"], "path": "behavioral/cloudformation__securityagent/check_deploy_securityagent_artifact_invalid_type_rejected.py", "service": "cloudformation__securityagent"} {"check_id": "cloudformation__securityagent.deploy-securityagent-private-connection-lifecycle", "deployments": [], "key": "cloudformation__securityagent/deploy-securityagent-private-connection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "securityagent:DescribePrivateConnection"], "path": "behavioral/cloudformation__securityagent/check_deploy_securityagent_private_connection_lifecycle.py", "service": "cloudformation__securityagent"} {"check_id": "cloudformation__securityagent.deploy-securityagent-security-requirement-pack-invalid-status-rejected", "deployments": [], "key": "cloudformation__securityagent/deploy-securityagent-security-requirement-pack-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "securityagent:GetSecurityRequirementPack"], "path": "behavioral/cloudformation__securityagent/check_deploy_securityagent_security_requirement_pack_invalid_status_rejected.py", "service": "cloudformation__securityagent"} {"check_id": "cloudformation__securityagent.deploy-securityagent-security-requirement-pack-lifecycle", "deployments": [], "key": "cloudformation__securityagent/deploy-securityagent-security-requirement-pack-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "securityagent:GetSecurityRequirementPack"], "path": "behavioral/cloudformation__securityagent/check_deploy_securityagent_security_requirement_pack_lifecycle.py", "service": "cloudformation__securityagent"} {"check_id": "cloudformation__securityhub.deploy-securityhub-automationrulev2-invalid-ruleorder-rejected", "deployments": [], "key": "cloudformation__securityhub/deploy-securityhub-automationrulev2-invalid-ruleorder-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "securityhub:DescribeSecurityHubV2", "securityhub:GetAutomationRuleV2", "securityhub:ListAutomationRulesV2"], "path": "behavioral/cloudformation__securityhub/check_deploy_securityhub_automationrulev2_invalid_ruleorder_rejected.py", "service": "cloudformation__securityhub"} {"check_id": "cloudformation__securityhub.deploy-securityhub-hubv2-aggregatorv2-rulev2-round-trip", "deployments": [], "key": "cloudformation__securityhub/deploy-securityhub-hubv2-aggregatorv2-rulev2-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "securityhub:DescribeSecurityHubV2", "securityhub:GetAggregatorV2", "securityhub:GetAutomationRuleV2", "securityhub:ListAutomationRulesV2", "securityhub:ListTagsForResource"], "path": "behavioral/cloudformation__securityhub/check_deploy_securityhub_hubv2_aggregatorv2_rulev2_round_trip.py", "service": "cloudformation__securityhub"} {"check_id": "cloudformation__securityhub.securityhub-hub-invalid-mode-rejected-and-children-round-trip", "deployments": [], "key": "cloudformation__securityhub/securityhub-hub-invalid-mode-rejected-and-children-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "securityhub:BatchGetAutomationRules", "securityhub:DescribeActionTargets", "securityhub:DescribeHub", "securityhub:GetFindingAggregator", "securityhub:GetInsights", "securityhub:ListAutomationRules", "securityhub:ListTagsForResource"], "path": "behavioral/cloudformation__securityhub/check_securityhub_hub_invalid_mode_rejected_and_children_round_trip.py", "service": "cloudformation__securityhub"} {"check_id": "cloudformation__serverlessrepo.deploy-cfn-serverlessrepo-application-invalid-name-rejected", "deployments": [], "key": "cloudformation__serverlessrepo/deploy-cfn-serverlessrepo-application-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "serverlessrepo:GetApplication"], "path": "behavioral/cloudformation__serverlessrepo/check_deploy_cfn_serverlessrepo_application_invalid_name_rejected.py", "service": "cloudformation__serverlessrepo"} {"check_id": "cloudformation__serverlessrepo.deploy-cfn-serverlessrepo-application-round-trip-and-delete", "deployments": [], "key": "cloudformation__serverlessrepo/deploy-cfn-serverlessrepo-application-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "serverlessrepo:GetApplication"], "path": "behavioral/cloudformation__serverlessrepo/check_deploy_cfn_serverlessrepo_application_round_trip_and_delete.py", "service": "cloudformation__serverlessrepo"} {"check_id": "cloudformation__serverlessrepo__sqs.deploy-sar-changeset-for-unpublished-version-rejected", "deployments": [], "key": "cloudformation__serverlessrepo__sqs/deploy-sar-changeset-for-unpublished-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "serverlessrepo:CreateApplication", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:DeleteApplication", "serverlessrepo:ListApplicationVersions"], "path": "behavioral/cloudformation__serverlessrepo__sqs/check_deploy_sar_changeset_for_unpublished_version_rejected.py", "service": "cloudformation__serverlessrepo__sqs"} {"check_id": "cloudformation__serverlessrepo__sqs.deploy-sar-published-version-changeset-into-a-working-queue", "deployments": [], "key": "cloudformation__serverlessrepo__sqs/deploy-sar-published-version-changeset-into-a-working-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "serverlessrepo:CreateApplication", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:DeleteApplication", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__serverlessrepo__sqs/check_deploy_sar_published_version_changeset_into_a_working_queue.py", "service": "cloudformation__serverlessrepo__sqs"} {"check_id": "cloudformation__serverlessrepo__sqs.rejects-changeset-for-versionless-application", "deployments": [], "key": "cloudformation__serverlessrepo__sqs/rejects-changeset-for-versionless-application", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:CreateCloudFormationTemplate", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplication"], "path": "behavioral/cloudformation__serverlessrepo__sqs/check_rejects_changeset_for_versionless_application.py", "service": "cloudformation__serverlessrepo__sqs"} {"check_id": "cloudformation__serverlessrepo__sqs.rejects-changeset-missing-required-capability", "deployments": [], "key": "cloudformation__serverlessrepo__sqs/rejects-changeset-missing-required-capability", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplication"], "path": "behavioral/cloudformation__serverlessrepo__sqs/check_rejects_changeset_missing_required_capability.py", "service": "cloudformation__serverlessrepo__sqs"} {"check_id": "cloudformation__serverlessrepo__sqs.sar-change-set-deploys-functioning-queue", "deployments": [], "key": "cloudformation__serverlessrepo__sqs/sar-change-set-deploys-functioning-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "serverlessrepo:CreateApplication", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:DeleteApplication", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__serverlessrepo__sqs/check_sar_change_set_deploys_functioning_queue.py", "service": "cloudformation__serverlessrepo__sqs"} {"check_id": "cloudformation__servicecatalog.deploy-servicecatalog-portfolio-tagoption-and-serviceaction-round-trip-and-delete", "deployments": [], "key": "cloudformation__servicecatalog/deploy-servicecatalog-portfolio-tagoption-and-serviceaction-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "servicecatalog:DescribePortfolio", "servicecatalog:DescribeServiceAction", "servicecatalog:DescribeTagOption"], "path": "behavioral/cloudformation__servicecatalog/check_deploy_servicecatalog_portfolio_tagoption_and_serviceaction_round_trip_and_delete.py", "service": "cloudformation__servicecatalog"} {"check_id": "cloudformation__servicecatalog.deploy-servicecatalog-tagoption-value-over-max-length-rejected", "deployments": [], "key": "cloudformation__servicecatalog/deploy-servicecatalog-tagoption-value-over-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "servicecatalog:DescribeTagOption"], "path": "behavioral/cloudformation__servicecatalog/check_deploy_servicecatalog_tagoption_value_over_max_length_rejected.py", "service": "cloudformation__servicecatalog"} {"check_id": "cloudformation__servicediscovery.deploy-http-namespace-service-instance-lifecycle", "deployments": [], "key": "cloudformation__servicediscovery/deploy-http-namespace-service-instance-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "servicediscovery:GetInstance", "servicediscovery:GetNamespace", "servicediscovery:GetService"], "path": "behavioral/cloudformation__servicediscovery/check_deploy_http_namespace_service_instance_lifecycle.py", "service": "cloudformation__servicediscovery"} {"check_id": "cloudformation__servicediscovery.deploy-public-dns-namespace-lifecycle", "deployments": [], "key": "cloudformation__servicediscovery/deploy-public-dns-namespace-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "servicediscovery:GetNamespace"], "path": "behavioral/cloudformation__servicediscovery/check_deploy_public_dns_namespace_lifecycle.py", "service": "cloudformation__servicediscovery"} {"check_id": "cloudformation__servicediscovery.deploy-service-dnsconfig-in-http-namespace-rejected", "deployments": [], "key": "cloudformation__servicediscovery/deploy-service-dnsconfig-in-http-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "servicediscovery:GetNamespace"], "path": "behavioral/cloudformation__servicediscovery/check_deploy_service_dnsconfig_in_http_namespace_rejected.py", "service": "cloudformation__servicediscovery"} {"check_id": "cloudformation__ses.deploy-ses-receipt-rule-nonexistent-ruleset-rejected", "deployments": [], "key": "cloudformation__ses/deploy-ses-receipt-rule-nonexistent-ruleset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ses:DescribeReceiptRule"], "path": "behavioral/cloudformation__ses/check_deploy_ses_receipt_rule_nonexistent_ruleset_rejected.py", "service": "cloudformation__ses"} {"check_id": "cloudformation__ses.deploy-ses-receipt-ruleset-rule-and-filter-functional", "deployments": [], "key": "cloudformation__ses/deploy-ses-receipt-ruleset-rule-and-filter-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "ses:ListReceiptFilters"], "path": "behavioral/cloudformation__ses/check_deploy_ses_receipt_ruleset_rule_and_filter_round_trip_and_delete.py", "service": "cloudformation__ses"} {"check_id": "cloudformation__sesv2.deploy-cfn-ses-configuration-set-event-destination-round-trip-and-delete", "deployments": [], "key": "cloudformation__sesv2/deploy-cfn-ses-configuration-set-event-destination-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sesv2:GetConfigurationSet", "sesv2:GetConfigurationSetEventDestinations", "sesv2:ListTagsForResource", "sesv2:TagResource"], "path": "behavioral/cloudformation__sesv2/check_deploy_cfn_ses_configuration_set_event_destination_round_trip_and_delete.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-cfn-ses-contact-list-round-trip-and-delete", "deployments": [], "key": "cloudformation__sesv2/deploy-cfn-ses-contact-list-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetContactList", "sesv2:ListTagsForResource"], "path": "behavioral/cloudformation__sesv2/check_deploy_cfn_ses_contact_list_round_trip_and_delete.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-cfn-ses-dedicated-ip-pool-invalid-scaling-mode-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__sesv2/deploy-cfn-ses-dedicated-ip-pool-invalid-scaling-mode-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetDedicatedIpPool"], "path": "behavioral/cloudformation__sesv2/check_deploy_cfn_ses_dedicated_ip_pool_invalid_scaling_mode_rejected_and_rolled_back.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-cfn-ses-dedicated-ip-pool-round-trip-and-delete", "deployments": [], "key": "cloudformation__sesv2/deploy-cfn-ses-dedicated-ip-pool-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetDedicatedIpPool", "sesv2:ListTagsForResource"], "path": "behavioral/cloudformation__sesv2/check_deploy_cfn_ses_dedicated_ip_pool_round_trip_and_delete.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-cfn-ses-email-identity-round-trip-and-delete", "deployments": [], "key": "cloudformation__sesv2/deploy-cfn-ses-email-identity-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetEmailIdentity"], "path": "behavioral/cloudformation__sesv2/check_deploy_cfn_ses_email_identity_round_trip_and_delete.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-cfn-ses-multi-region-endpoint-round-trip-and-delete", "deployments": [], "key": "cloudformation__sesv2/deploy-cfn-ses-multi-region-endpoint-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetMultiRegionEndpoint", "sesv2:ListTagsForResource"], "path": "behavioral/cloudformation__sesv2/check_deploy_cfn_ses_multi_region_endpoint_round_trip_and_delete.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-cfn-ses-tenant-invalid-name-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__sesv2/deploy-cfn-ses-tenant-invalid-name-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetTenant"], "path": "behavioral/cloudformation__sesv2/check_deploy_cfn_ses_tenant_invalid_name_rejected_and_rolled_back.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-cfn-ses-tenant-round-trip-and-delete", "deployments": [], "key": "cloudformation__sesv2/deploy-cfn-ses-tenant-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetTenant", "sesv2:ListTagsForResource"], "path": "behavioral/cloudformation__sesv2/check_deploy_cfn_ses_tenant_round_trip_and_delete.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-ses-vdm-attributes-invalid-value-rejected", "deployments": [], "key": "cloudformation__sesv2/deploy-ses-vdm-attributes-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetAccount", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/cloudformation__sesv2/check_deploy_ses_vdm_attributes_invalid_value_rejected.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__sesv2.deploy-ses-vdm-attributes-singleton-functional-and-invalid-value-rejected", "deployments": [], "key": "cloudformation__sesv2/deploy-ses-vdm-attributes-singleton-round-trip-and-restored", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sesv2:GetAccount", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/cloudformation__sesv2/check_deploy_ses_vdm_attributes_singleton_round_trip_and_restored.py", "service": "cloudformation__sesv2"} {"check_id": "cloudformation__signer.deploy-signer-profilepermission-invalid-action-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__signer/deploy-signer-profilepermission-invalid-action-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "signer:GetSigningProfile", "signer:ListProfilePermissions"], "path": "behavioral/cloudformation__signer/check_deploy_signer_profilepermission_invalid_action_rejected_and_rolled_back.py", "service": "cloudformation__signer"} {"check_id": "cloudformation__signer.deploy-signer-signingprofile-and-profilepermission-round-trip-and-delete", "deployments": [], "key": "cloudformation__signer/deploy-signer-signingprofile-and-profilepermission-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "signer:GetSigningProfile", "signer:ListProfilePermissions"], "path": "behavioral/cloudformation__signer/check_deploy_signer_signingprofile_and_profilepermission_round_trip_and_delete.py", "service": "cloudformation__signer"} {"check_id": "cloudformation__sns.cfn-sns-topic-display-name-and-getatt-read-back-then-not-found-after-delete", "deployments": [], "key": "cloudformation__sns/cfn-sns-topic-display-name-and-getatt-read-back-then-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__sns/check_cfn_sns_topic_display_name_and_getatt_read_back_then_not_found_after_delete.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.deploy-sns-topic-inline-policy-lifecycle-then-not-found", "deployments": [], "key": "cloudformation__sns/deploy-sns-topic-inline-policy-lifecycle-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__sns/check_deploy_sns_topic_inline_policy_lifecycle_then_not_found.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.deploy-sns-topic-inline-policy-missing-policydocument-rejected", "deployments": [], "key": "cloudformation__sns/deploy-sns-topic-inline-policy-missing-policydocument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__sns/check_deploy_sns_topic_inline_policy_missing_policydocument_rejected.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.deploy-sns-topic-maximum-message-size-boundary-rejected", "deployments": [], "key": "cloudformation__sns/deploy-sns-topic-maximum-message-size-boundary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__sns/check_deploy_sns_topic_maximum_message_size_boundary_rejected.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.deploy-sns-topic-policy-lifecycle-then-not-found", "deployments": [], "key": "cloudformation__sns/deploy-sns-topic-policy-lifecycle-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__sns/check_deploy_sns_topic_policy_lifecycle_then_not_found.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.deploy-sns-topic-policy-missing-policydocument-rejected", "deployments": [], "key": "cloudformation__sns/deploy-sns-topic-policy-missing-policydocument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__sns/check_deploy_sns_topic_policy_missing_policydocument_rejected.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.deploy-stackset-self-managed-provisions-a-real-stack-instance-then-removes-it", "deployments": [], "key": "cloudformation__sns/deploy-stackset-self-managed-provisions-a-real-stack-instance-then-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackSet", "cloudformation:DescribeStacks", "sns:GetTopicAttributes", "sns:ListTagsForResource"], "path": "behavioral/cloudformation__sns/check_deploy_stackset_self_managed_provisions_a_real_stack_instance_then_removes_it.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.sns-topic-display-name-too-long-rejected", "deployments": [], "key": "cloudformation__sns/sns-topic-display-name-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sns:GetTopicAttributes"], "path": "behavioral/cloudformation__sns/check_sns_topic_display_name_too_long_rejected.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.stack-tags-plus-system-tags-exceed-topic-tag-limit-fails", "deployments": [], "key": "cloudformation__sns/stack-tags-plus-system-tags-exceed-topic-tag-limit-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sns:GetTopicAttributes", "sns:ListTagsForResource"], "path": "behavioral/cloudformation__sns/check_stack_tags_plus_system_tags_exceed_topic_tag_limit_fails.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns.stackset-invalid-name-pattern-rejected-then-succeeds-with-a-valid-name", "deployments": [], "key": "cloudformation__sns/stackset-invalid-name-pattern-rejected-then-succeeds-with-a-valid-name", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:GetTopicAttributes", "sns:ListTagsForResource"], "path": "behavioral/cloudformation__sns/check_stackset_invalid_name_pattern_rejected_then_succeeds_with_a_valid_name.py", "service": "cloudformation__sns"} {"check_id": "cloudformation__sns__sqs.aws-prefixed-stack-tag-rejected-on-create-and-update", "deployments": [], "key": "cloudformation__sns__sqs/aws-prefixed-stack-tag-rejected-on-create-and-update", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack"], "path": "behavioral/cloudformation__sns__sqs/check_aws_prefixed_stack_tag_rejected_on_create_and_update.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cdk-deploy-notification-arns-deliver-every-stack-event", "deployments": ["behavioral/cloudformation__sns__sqs/deployments/cdk_notification_arns/app.py", "behavioral/cloudformation__sns__sqs/deployments/cdk_notification_arns/cdk.json"], "key": "cloudformation__sns__sqs/cdk-deploy-notification-arns-deliver-every-stack-event", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_cdk_deploy_notification_arns_deliver_every_stack_event.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cdk-deploy-tags-and-tags-of-land-on-stack-and-queue-and-topic-tag-apis", "deployments": ["behavioral/cloudformation__sns__sqs/deployments/cdk_tags/app.py", "behavioral/cloudformation__sns__sqs/deployments/cdk_tags/cdk.json"], "key": "cloudformation__sns__sqs/cdk-deploy-tags-and-tags-of-land-on-stack-and-queue-and-topic-tag-apis", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:ListTagsForResource", "sqs:ListQueueTags"], "path": "behavioral/cloudformation__sns__sqs/check_cdk_deploy_tags_and_tags_of_land_on_stack_and_queue_and_topic_tag_apis.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cdk-deploy-tags-update-with-reserved-aws-prefix-key-rejected-leaving-tags-unchanged", "deployments": ["behavioral/cloudformation__sns__sqs/deployments/cdk_tags/app.py", "behavioral/cloudformation__sns__sqs/deployments/cdk_tags/cdk.json"], "key": "cloudformation__sns__sqs/cdk-deploy-tags-update-with-reserved-aws-prefix-key-rejected-leaving-tags-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "sns:ListTagsForResource", "sqs:ListQueueTags"], "path": "behavioral/cloudformation__sns__sqs/check_cdk_deploy_tags_update_with_reserved_aws_prefix_key_rejected_leaving_tags_unchanged.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cdk-sibling-nested-stacks-deliver-topic-to-queue-across-a-producer-only-update", "deployments": ["behavioral/cloudformation__sns__sqs/deployments/cdk_nested_topic_queue/app.py", "behavioral/cloudformation__sns__sqs/deployments/cdk_nested_topic_queue/cdk.json"], "key": "cloudformation__sns__sqs/cdk-sibling-nested-stacks-deliver-topic-to-queue-across-a-producer-only-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sns:GetTopicAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__sns__sqs/check_cdk_sibling_nested_stacks_deliver_topic_to_queue_across_a_producer_only_update.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cfn-foreach-language-extensions-expands-to-24-working-queues-and-rejects-missing-capability", "deployments": [], "key": "cloudformation__sns__sqs/cfn-foreach-language-extensions-expands-to-24-working-queues-and-rejects-missing-capability", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudformation:ListStackResources", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__sns__sqs/check_cfn_foreach_language_extensions_expands_to_24_working_queues_and_rejects_missing_capability.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cfn-independent-branches-provision-concurrently-and-tear-down-in-reverse", "deployments": [], "key": "cloudformation__sns__sqs/cfn-independent-branches-provision-concurrently-and-tear-down-in-reverse", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:SignalResource", "sns:GetTopicAttributes", "sns:Publish", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__sns__sqs/check_cfn_independent_branches_provision_concurrently_and_tear_down_in_reverse.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cfn-nested-sibling-stacks-getatt-wiring-missing-queue-policy-blocks-delivery", "deployments": [], "key": "cloudformation__sns__sqs/cfn-nested-sibling-stacks-getatt-wiring-missing-queue-policy-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__sns__sqs/check_cfn_nested_sibling_stacks_getatt_wiring_missing_queue_policy_blocks_delivery.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cfn-notification-arns-publish-every-stack-event", "deployments": ["behavioral/cloudformation__sns__sqs/deployments/notified-stack.yaml"], "key": "cloudformation__sns__sqs/cfn-notification-arns-publish-every-stack-event", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_cfn_notification_arns_publish_every_stack_event.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cfn-sns-subscription-in-place-update-retained-replacement-delivers-to-both-then-not-found", "deployments": [], "key": "cloudformation__sns__sqs/cfn-sns-subscription-in-place-update-retained-replacement-delivers-to-both-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Unsubscribe", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__sns__sqs/check_cfn_sns_subscription_in_place_update_retained_replacement_delivers_to_both_then_not_found.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cfn-sns-topic-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__sns__sqs/cfn-sns-topic-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__sns__sqs/check_cfn_sns_topic_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cfn-sqs-queue-policy-in-place-queues-change-gates-sns-delivery-then-removed", "deployments": [], "key": "cloudformation__sns__sqs/cfn-sqs-queue-policy-in-place-queues-change-gates-sns-delivery-then-removed", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:GetTopicAttributes", "sns:Publish", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__sns__sqs/check_cfn_sqs_queue_policy_in_place_queues_change_gates_sns_delivery_then_removed.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.cfn-subscription-raw-message-delivery-non-boolean-rejected-creates-nothing", "deployments": [], "key": "cloudformation__sns__sqs/cfn-subscription-raw-message-delivery-non-boolean-rejected-creates-nothing", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sns__sqs/check_cfn_subscription_raw_message_delivery_non_boolean_rejected_creates_nothing.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.change-set-empty-notification-arns-stops-delivery-until-restored", "deployments": [], "key": "cloudformation__sns__sqs/change-set-empty-notification-arns-stops-delivery-until-restored", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_change_set_empty_notification_arns_stops_delivery_until_restored.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.custom-resource-getatt-missing-data-key-fails", "deployments": [], "key": "cloudformation__sns__sqs/custom-resource-getatt-missing-data-key-fails", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_custom_resource_getatt_missing_data_key_fails.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.custom-resource-response-over-4096-bytes-fails", "deployments": [], "key": "cloudformation__sns__sqs/custom-resource-response-over-4096-bytes-fails", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_custom_resource_response_over_4096_bytes_fails.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.custom-resource-service-timeout-fails-create", "deployments": [], "key": "cloudformation__sns__sqs/custom-resource-service-timeout-fails-create", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_custom_resource_service_timeout_fails_create.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.custom-resource-service-timeout-out-of-range-fails-the-resource", "deployments": [], "key": "cloudformation__sns__sqs/custom-resource-service-timeout-out-of-range-fails-the-resource", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_custom_resource_service_timeout_out_of_range_fails_the_resource.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.deploy-cdk-sns-topic-sqs-subscription-queue-policy-gates-delivery", "deployments": ["behavioral/cloudformation__sns__sqs/deployments/cdk_sns_sqs_subscription/app.py", "behavioral/cloudformation__sns__sqs/deployments/cdk_sns_sqs_subscription/cdk.json"], "key": "cloudformation__sns__sqs/deploy-cdk-sns-topic-sqs-subscription-queue-policy-gates-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_deploy_cdk_sns_topic_sqs_subscription_queue_policy_gates_delivery.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.deploy-cfn-subscription-raw-message-delivery-toggled-in-place-changes-delivered-envelope", "deployments": [], "key": "cloudformation__sns__sqs/deploy-cfn-subscription-raw-message-delivery-toggled-in-place-changes-delivered-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:GetSubscriptionAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudformation__sns__sqs/check_deploy_cfn_subscription_raw_message_delivery_toggled_in_place_changes_delivered_envelope.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.deploy-sns-subscription-endpoint-change-replaces-raw-delivery-change-updates-in-place", "deployments": [], "key": "cloudformation__sns__sqs/deploy-sns-subscription-endpoint-change-replaces-raw-delivery-change-updates-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "sns:GetSubscriptionAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_deploy_sns_subscription_endpoint_change_replaces_raw_delivery_change_updates_in_place.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.deploy-sns-subscription-missing-protocol-rejected", "deployments": [], "key": "cloudformation__sns__sqs/deploy-sns-subscription-missing-protocol-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sns__sqs/check_deploy_sns_subscription_missing_protocol_rejected.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.deploy-sns-subscription-topic-arn-to-missing-topic-blocks-replacement-rolls-back", "deployments": [], "key": "cloudformation__sns__sqs/deploy-sns-subscription-topic-arn-to-missing-topic-blocks-replacement-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:GetSubscriptionAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_deploy_sns_subscription_topic_arn_to_missing_topic_blocks_replacement_rolls_back.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.obs-cloudformation-3-notification-arns-stream-update-rollback-delete-and-stop-when-cleared", "deployments": ["behavioral/cloudformation__sns__sqs/deployments/notified-stack.yaml"], "key": "cloudformation__sns__sqs/obs-cloudformation-3-notification-arns-stream-update-rollback-delete-and-stop-when-cleared", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_obs_cloudformation_3_notification_arns_stream_update_rollback_delete_and_stop_when_cleared.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.stack-and-system-tags-land-on-created-resources", "deployments": [], "key": "cloudformation__sns__sqs/stack-and-system-tags-land-on-created-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:ListTagsForResource", "sqs:ListQueueTags"], "path": "behavioral/cloudformation__sns__sqs/check_stack_and_system_tags_land_on_created_resources.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.xsvc-cloudformation-3-notification-arns-cleared-stops-readded-resumes-delete-notifies", "deployments": [], "key": "cloudformation__sns__sqs/xsvc-cloudformation-3-notification-arns-cleared-stops-readded-resumes-delete-notifies", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_xsvc_cloudformation_3_notification_arns_cleared_stops_readded_resumes_delete_notifies.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.xsvc-cloudformation-3-sns-custom-resource-failed-response-rolls-back-with-its-reason", "deployments": [], "key": "cloudformation__sns__sqs/xsvc-cloudformation-3-sns-custom-resource-failed-response-rolls-back-with-its-reason", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_xsvc_cloudformation_3_sns_custom_resource_failed_response_rolls_back_with_its_reason.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.xsvc-cloudformation-3-sns-custom-resource-new-physical-id-on-update-triggers-cleanup-delete-of-old", "deployments": [], "key": "cloudformation__sns__sqs/xsvc-cloudformation-3-sns-custom-resource-new-physical-id-on-update-triggers-cleanup-delete-of-old", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_xsvc_cloudformation_3_sns_custom_resource_new_physical_id_on_update_triggers_cleanup_delete_of_old.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs.xsvc-cloudformation-3-sns-custom-resource-request-roundtrip-and-getatt-returns-response-data", "deployments": [], "key": "cloudformation__sns__sqs/xsvc-cloudformation-3-sns-custom-resource-request-roundtrip-and-getatt-returns-response-data", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sns__sqs/check_xsvc_cloudformation_3_sns_custom_resource_request_roundtrip_and_getatt_returns_response_data.py", "service": "cloudformation__sns__sqs"} {"check_id": "cloudformation__sns__sqs__sts.change-set-notification-arns-deliver-every-stack-event-to-the-topic", "deployments": [], "key": "cloudformation__sns__sqs__sts/change-set-notification-arns-deliver-every-stack-event-to-the-topic", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__sns__sqs__sts/check_change_set_notification_arns_deliver_every_stack_event_to_the_topic.py", "service": "cloudformation__sns__sqs__sts"} {"check_id": "cloudformation__sqs.cdk-diagnose-names-the-failing-resource-and-its-reason-after-a-failed-deploy", "deployments": [], "key": "cloudformation__sqs/cdk-diagnose-names-the-failing-resource-and-its-reason-after-a-failed-deploy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks"], "path": "behavioral/cloudformation__sqs/check_cdk_diagnose_names_the_failing_resource_and_its_reason_after_a_failed_deploy.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cdk-import-adopts-an-existing-queue-and-refuses-a-missing-one", "deployments": ["behavioral/cloudformation__sqs/deployments/cdk_import_queue/app.py", "behavioral/cloudformation__sqs/deployments/cdk_import_queue/cdk.json"], "key": "cloudformation__sqs/cdk-import-adopts-an-existing-queue-and-refuses-a-missing-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__sqs/check_cdk_import_adopts_an_existing_queue_and_refuses_a_missing_one.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cdk-migrate-from-stack-deploy-updates-in-place-without-replacing-the-queue", "deployments": [], "key": "cloudformation__sqs/cdk-migrate-from-stack-deploy-updates-in-place-without-replacing-the-queue", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__sqs/check_cdk_migrate_from_stack_deploy_updates_in_place_without_replacing_the_queue.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cdk-refactor-refuses-a-combined-rename-and-property-change", "deployments": ["behavioral/cloudformation__sqs/deployments/cdk_refactor_rename_and_property_change/app.py", "behavioral/cloudformation__sqs/deployments/cdk_refactor_rename_and_property_change/cdk.json"], "key": "cloudformation__sqs/cdk-refactor-refuses-a-combined-rename-and-property-change", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:DescribeRepositories", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "sqs:GetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__sqs/check_cdk_refactor_refuses_a_combined_rename_and_property_change.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cdk-refactor-renames-a-construct-keeping-the-queues-physical-id-and-messages", "deployments": ["behavioral/cloudformation__sqs/deployments/cdk_refactor_queue_rename/app.py", "behavioral/cloudformation__sqs/deployments/cdk_refactor_queue_rename/cdk.json"], "key": "cloudformation__sqs/cdk-refactor-renames-a-construct-keeping-the-queues-physical-id-and-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ecr:DescribeRepositories", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "sqs:ChangeMessageVisibility", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__sqs/check_cdk_refactor_renames_a_construct_keeping_the_queues_physical_id_and_messages.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cdk-rollback-force-completes-past-the-resource-whose-rollback-fails", "deployments": ["behavioral/cloudformation__sqs/deployments/cdk_rollback_skip_failed_resource/app.py", "behavioral/cloudformation__sqs/deployments/cdk_rollback_skip_failed_resource/cdk.json"], "key": "cloudformation__sqs/cdk-rollback-force-completes-past-the-resource-whose-rollback-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cdk_rollback_force_completes_past_the_resource_whose_rollback_fails.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cdk-rollback-orphan-skips-the-resource-whose-rollback-fails", "deployments": ["behavioral/cloudformation__sqs/deployments/cdk_rollback_skip_failed_resource/app.py", "behavioral/cloudformation__sqs/deployments/cdk_rollback_skip_failed_resource/cdk.json"], "key": "cloudformation__sqs/cdk-rollback-orphan-skips-the-resource-whose-rollback-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cdk_rollback_orphan_skips_the_resource_whose_rollback_fails.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-drift-reports-deleted-resource-and-drifted-stack-counts", "deployments": [], "key": "cloudformation__sqs/cfn-drift-reports-deleted-resource-and-drifted-stack-counts", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ListQueues"], "path": "behavioral/cloudformation__sqs/check_cfn_drift_reports_deleted_resource_and_drifted_stack_counts.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-execute-obsolete-changeset-rejected", "deployments": [], "key": "cloudformation__sqs/cfn-execute-obsolete-changeset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cfn_execute_obsolete_changeset_rejected.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-on-failure-do-nothing-preserves-partial-resources-that-still-work", "deployments": [], "key": "cloudformation__sqs/cfn-on-failure-do-nothing-preserves-partial-resources-that-still-work", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__sqs/check_cfn_on_failure_do_nothing_preserves_partial_resources_that_still_work.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-resource-import-adopts-existing-queue-without-recreating-it", "deployments": [], "key": "cloudformation__sqs/cfn-resource-import-adopts-existing-queue-without-recreating-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:DetectStackResourceDrift", "cloudformation:ExecuteChangeSet", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__sqs/check_cfn_resource_import_adopts_existing_queue_without_recreating_it.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-resource-import-with-mismatched-visibility-timeout-reconciles-live-value-to-template", "deployments": [], "key": "cloudformation__sqs/cfn-resource-import-with-mismatched-visibility-timeout-reconciles-live-value-to-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:ExecuteChangeSet", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:SetQueueAttributes"], "path": "behavioral/cloudformation__sqs/check_cfn_resource_import_with_mismatched_visibility_timeout_reconciles_live_value_to_template.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-resource-import-wrong-identifier-key-rejected-before-change-set-exists", "deployments": [], "key": "cloudformation__sqs/cfn-resource-import-wrong-identifier-key-rejected-before-change-set-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cfn_resource_import_wrong_identifier_key_rejected_before_change_set_exists.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-sqs-queue-attributes-and-getatt-read-back-then-nonexistent-after-delete", "deployments": [], "key": "cloudformation__sqs/cfn-sqs-queue-attributes-and-getatt-read-back-then-nonexistent-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__sqs/check_cfn_sqs_queue_attributes_and_getatt_read_back_then_nonexistent_after_delete.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-sqs-queue-create-visibility-timeout-over-limit-rejected", "deployments": [], "key": "cloudformation__sqs/cfn-sqs-queue-create-visibility-timeout-over-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cfn_sqs_queue_create_visibility_timeout_over_limit_rejected.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-sqs-queue-getatt-unknown-attribute-rejected-rolls-back", "deployments": [], "key": "cloudformation__sqs/cfn-sqs-queue-getatt-unknown-attribute-rejected-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ValidateTemplate", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cfn_sqs_queue_getatt_unknown_attribute_rejected_rolls_back.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-sqs-queue-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__sqs/cfn-sqs-queue-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__sqs/check_cfn_sqs_queue_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-sqs-queue-readonly-arn-ignored-and-ref-getatt-match-sqs", "deployments": [], "key": "cloudformation__sqs/cfn-sqs-queue-readonly-arn-ignored-and-ref-getatt-match-sqs", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueueTags"], "path": "behavioral/cloudformation__sqs/check_cfn_sqs_queue_readonly_arn_ignored_and_ref_getatt_match_sqs.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-sqs-queue-readonly-queueurl-set-in-template-rejected-rolls-back", "deployments": [], "key": "cloudformation__sqs/cfn-sqs-queue-readonly-queueurl-set-in-template-rejected-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cfn_sqs_queue_readonly_queueurl_set_in_template_rejected_rolls_back.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-sqs-queueinlinepolicy-ref-is-queue-url-and-removed-by-stack-update", "deployments": [], "key": "cloudformation__sqs/cfn-sqs-queueinlinepolicy-ref-is-queue-url-and-removed-by-stack-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cfn_sqs_queueinlinepolicy_ref_is_queue_url_and_removed_by_stack_update.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-sqs-queuepolicy-invalid-action-rejected", "deployments": [], "key": "cloudformation__sqs/cfn-sqs-queuepolicy-invalid-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cfn_sqs_queuepolicy_invalid_action_rejected.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-stack-policy-protected-resource-replacement-rejected", "deployments": [], "key": "cloudformation__sqs/cfn-stack-policy-protected-resource-replacement-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SetStackPolicy", "cloudformation:UpdateStack", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_cfn_stack_policy_protected_resource_replacement_rejected.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-stackset-instance-deployed-queue-is-functional-and-tracks-updates", "deployments": [], "key": "cloudformation__sqs/cfn-stackset-instance-deployed-queue-is-functional-and-tracks-updates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:ListStackSetOperationResults", "cloudformation:UpdateStackSet", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudformation__sqs/check_cfn_stackset_instance_deployed_queue_is_functional_and_tracks_updates.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-update-out-of-range-visibility-timeout-rejected-rolls-back", "deployments": [], "key": "cloudformation__sqs/cfn-update-out-of-range-visibility-timeout-rejected-rolls-back", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__sqs/check_cfn_update_out_of_range_visibility_timeout_rejected_rolls_back.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.cfn-update-replacement-changes-physical-id", "deployments": ["behavioral/cloudformation__sqs/deployments/update-replace-policy.yaml"], "key": "cloudformation__sqs/cfn-update-replacement-changes-physical-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudformation__sqs/check_cfn_update_replacement_changes_physical_id.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.stack-event-detailed-status-configuration-complete-precedes-create-complete", "deployments": [], "key": "cloudformation__sqs/stack-event-detailed-status-configuration-complete-precedes-create-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/cloudformation__sqs/check_stack_event_detailed_status_configuration_complete_precedes_create_complete.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.stack-policy-implicit-deny-for-unnamed-resource", "deployments": [], "key": "cloudformation__sqs/stack-policy-implicit-deny-for-unnamed-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:SetStackPolicy", "cloudformation:UpdateStack", "sqs:GetQueueAttributes"], "path": "behavioral/cloudformation__sqs/check_stack_policy_implicit_deny_for_unnamed_resource.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.stack-tag-removal-propagates-to-queue-without-replacement", "deployments": [], "key": "cloudformation__sqs/stack-tag-removal-propagates-to-queue-without-replacement", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:GetQueueAttributes", "sqs:ListQueueTags"], "path": "behavioral/cloudformation__sqs/check_stack_tag_removal_propagates_to_queue_without_replacement.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs.stack-tags-over-fifty-rejected-before-queue-creation", "deployments": [], "key": "cloudformation__sqs/stack-tags-over-fifty-rejected-before-queue-creation", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "sqs:GetQueueUrl", "sqs:ListQueueTags"], "path": "behavioral/cloudformation__sqs/check_stack_tags_over_fifty_rejected_before_queue_creation.py", "service": "cloudformation__sqs"} {"check_id": "cloudformation__sqs__ssm.cdk-default-deploy-legacy-synthesizer-carries-cdk-metadata-without-bootstrap", "deployments": ["behavioral/cloudformation__sqs__ssm/deployments/cdk_legacy_metadata/app.py", "behavioral/cloudformation__sqs__ssm/deployments/cdk_legacy_metadata/cdk.json"], "key": "cloudformation__sqs__ssm/cdk-default-deploy-legacy-synthesizer-carries-cdk-metadata-without-bootstrap", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:GetParameter"], "path": "behavioral/cloudformation__sqs__ssm/check_cdk_default_deploy_legacy_synthesizer_carries_cdk_metadata_without_bootstrap.py", "service": "cloudformation__sqs__ssm"} {"check_id": "cloudformation__sqs__ssm.cdk-deploy-no-rollback-keeps-create-failed-then-fixed-redeploy-completes", "deployments": ["behavioral/cloudformation__sqs__ssm/deployments/cdk_no_rollback/app.py", "behavioral/cloudformation__sqs__ssm/deployments/cdk_no_rollback/cdk.json"], "key": "cloudformation__sqs__ssm/cdk-deploy-no-rollback-keeps-create-failed-then-fixed-redeploy-completes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__sqs__ssm/check_cdk_deploy_no_rollback_keeps_create_failed_then_fixed_redeploy_completes.py", "service": "cloudformation__sqs__ssm"} {"check_id": "cloudformation__sqs__ssm.cdk-destroy-deletes-a-create-failed-stack-and-its-live-resources", "deployments": ["behavioral/cloudformation__sqs__ssm/deployments/cdk_no_rollback/app.py", "behavioral/cloudformation__sqs__ssm/deployments/cdk_no_rollback/cdk.json"], "key": "cloudformation__sqs__ssm/cdk-destroy-deletes-a-create-failed-stack-and-its-live-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__sqs__ssm/check_cdk_destroy_deletes_a_create_failed_stack_and_its_live_resources.py", "service": "cloudformation__sqs__ssm"} {"check_id": "cloudformation__sqs__ssm.cdk-rollback-restores-an-update-failed-stack-to-its-last-good-state", "deployments": ["behavioral/cloudformation__sqs__ssm/deployments/cdk_rollback_update_failed/app.py", "behavioral/cloudformation__sqs__ssm/deployments/cdk_rollback_update_failed/cdk.json"], "key": "cloudformation__sqs__ssm/cdk-rollback-restores-an-update-failed-stack-to-its-last-good-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__sqs__ssm/check_cdk_rollback_restores_an_update_failed_stack_to_its_last_good_state.py", "service": "cloudformation__sqs__ssm"} {"check_id": "cloudformation__sqs__ssm.cfn-delete-exporting-stack-rejected-while-import-exists", "deployments": [], "key": "cloudformation__sqs__ssm/cfn-delete-exporting-stack-rejected-while-import-exists", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListExports", "cloudformation:ListImports", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__sqs__ssm/check_cfn_delete_exporting_stack_rejected_while_import_exists.py", "service": "cloudformation__sqs__ssm"} {"check_id": "cloudformation__sqs__ssm.cfn-deletion-policy-retain-survives-stack-delete", "deployments": ["behavioral/cloudformation__sqs__ssm/deployments/deletion-policy-retain.yaml"], "key": "cloudformation__sqs__ssm/cfn-deletion-policy-retain-survives-stack-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__sqs__ssm/check_cfn_deletion_policy_retain_survives_stack_delete.py", "service": "cloudformation__sqs__ssm"} {"check_id": "cloudformation__sqs__ssm.cfn-update-rollback-restores-last-good-value-negative", "deployments": ["behavioral/cloudformation__sqs__ssm/deployments/update-rollback-parameter.yaml"], "key": "cloudformation__sqs__ssm/cfn-update-rollback-restores-last-good-value-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:DeleteQueue", "sqs:GetQueueUrl", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__sqs__ssm/check_cfn_update_rollback_restores_last_good_value_negative.py", "service": "cloudformation__sqs__ssm"} {"check_id": "cloudformation__sqs__ssm.change-set-disable-rollback-execute-leaves-create-failed-and-is-updatable", "deployments": [], "key": "cloudformation__sqs__ssm/change-set-disable-rollback-execute-leaves-create-failed-and-is-updatable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__sqs__ssm/check_change_set_disable_rollback_execute_leaves_create_failed_and_is_updatable.py", "service": "cloudformation__sqs__ssm"} {"check_id": "cloudformation__ssm-quicksetup.deploy-ssmquicksetup-configuration-manager-host-mgmt-round-trip-and-delete", "deployments": [], "key": "cloudformation__ssm-quicksetup/deploy-ssmquicksetup-configuration-manager-host-mgmt-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackSet", "cloudformation:DescribeStacks", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListTagsForResource"], "path": "behavioral/cloudformation__ssm-quicksetup/check_deploy_ssmquicksetup_configuration_manager_host_mgmt_round_trip_and_delete.py", "service": "cloudformation__ssm-quicksetup"} {"check_id": "cloudformation__ssm-quicksetup.deploy-ssmquicksetup-configuration-manager-invalid-name-rejected-before-create", "deployments": [], "key": "cloudformation__ssm-quicksetup/deploy-ssmquicksetup-configuration-manager-invalid-name-rejected-before-create", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm-quicksetup:GetConfigurationManager"], "path": "behavioral/cloudformation__ssm-quicksetup/check_deploy_ssmquicksetup_configuration_manager_invalid_name_rejected_before_create.py", "service": "cloudformation__ssm-quicksetup"} {"check_id": "cloudformation__ssm.cdk-deploy-concurrency-2-still-orders-a-declared-stack-dependency", "deployments": ["behavioral/cloudformation__ssm/deployments/cdk_concurrency/app.py", "behavioral/cloudformation__ssm/deployments/cdk_concurrency/cdk.json"], "key": "cloudformation__ssm/cdk-deploy-concurrency-2-still-orders-a-declared-stack-dependency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_cdk_deploy_concurrency_2_still_orders_a_declared_stack_dependency.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cdk-deploy-exclusively-flag-skips-an-undeployed-dependency-which-then-fails", "deployments": ["behavioral/cloudformation__ssm/deployments/cdk_exclusively/app.py", "behavioral/cloudformation__ssm/deployments/cdk_exclusively/cdk.json"], "key": "cloudformation__ssm/cdk-deploy-exclusively-flag-skips-an-undeployed-dependency-which-then-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_cdk_deploy_exclusively_flag_skips_an_undeployed_dependency_which_then_fails.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cdk-deploy-import-existing-resources-adopts-a-named-parameter", "deployments": ["behavioral/cloudformation__ssm/deployments/cdk_import_existing_resources/app.py", "behavioral/cloudformation__ssm/deployments/cdk_import_existing_resources/cdk.json"], "key": "cloudformation__ssm/cdk-deploy-import-existing-resources-adopts-a-named-parameter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ListChangeSets", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_cdk_deploy_import_existing_resources_adopts_a_named_parameter.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cdk-deploy-outputs-file-matches-describe-stacks-outputs-for-every-deployed-stack", "deployments": ["behavioral/cloudformation__ssm/deployments/cdk_outputs_file/app.py", "behavioral/cloudformation__ssm/deployments/cdk_outputs_file/cdk.json"], "key": "cloudformation__ssm/cdk-deploy-outputs-file-matches-describe-stacks-outputs-for-every-deployed-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_cdk_deploy_outputs_file_matches_describe_stacks_outputs_for_every_deployed_stack.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cdk-deploy-parameters-are-reused-until-no-previous-parameters", "deployments": ["behavioral/cloudformation__ssm/deployments/cdk_parameters/app.py", "behavioral/cloudformation__ssm/deployments/cdk_parameters/cdk.json"], "key": "cloudformation__ssm/cdk-deploy-parameters-are-reused-until-no-previous-parameters", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_cdk_deploy_parameters_are_reused_until_no_previous_parameters.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cdk-deploy-prepare-change-set-leaves-it-unexecuted-until-execute-change-set", "deployments": ["behavioral/cloudformation__ssm/deployments/cdk_prepare_change_set/app.py", "behavioral/cloudformation__ssm/deployments/cdk_prepare_change_set/cdk.json"], "key": "cloudformation__ssm/cdk-deploy-prepare-change-set-leaves-it-unexecuted-until-execute-change-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_cdk_deploy_prepare_change_set_leaves_it_unexecuted_until_execute_change_set.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cfn-nested-three-level-grandchild-update-failure-rolls-back-every-level", "deployments": [], "key": "cloudformation__ssm/cfn-nested-three-level-grandchild-update-failure-rolls-back-every-level", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_cfn_nested_three_level_grandchild_update_failure_rolls_back_every_level.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cfn-ssm-parameter-create-update-in-place-replace-retained-then-delete", "deployments": [], "key": "cloudformation__ssm/cfn-ssm-parameter-create-update-in-place-replace-retained-then-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:GetParametersByPath"], "path": "behavioral/cloudformation__ssm/check_cfn_ssm_parameter_create_update_in_place_replace_retained_then_delete.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cfn-ssm-parameter-getatt-unknown-attribute-rejected-rolls-back", "deployments": [], "key": "cloudformation__ssm/cfn-ssm-parameter-getatt-unknown-attribute-rejected-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ValidateTemplate", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_cfn_ssm_parameter_getatt_unknown_attribute_rejected_rolls_back.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cfn-ssm-parameter-missing-required-properties-rejected", "deployments": [], "key": "cloudformation__ssm/cfn-ssm-parameter-missing-required-properties-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_cfn_ssm_parameter_missing_required_properties_rejected.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.cfn-ssm-parameter-readonly-arn-ignored-and-ref-getatt-match-ssm", "deployments": [], "key": "cloudformation__ssm/cfn-ssm-parameter-readonly-arn-ignored-and-ref-getatt-match-ssm", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetParameter", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ssm/check_cfn_ssm_parameter_readonly_arn_ignored_and_ref_getatt_match_ssm.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-bootstrap-version-param-missing-rejected", "deployments": [], "key": "cloudformation__ssm/change-set-bootstrap-version-param-missing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_bootstrap_version_param_missing_rejected.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-execute-retain-except-on-create-deletes-the-new-retained-resource", "deployments": [], "key": "cloudformation__ssm/change-set-execute-retain-except-on-create-deletes-the-new-retained-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_execute_retain_except_on_create_deletes_the_new_retained_resource.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-express-mode-create-then-express-update-stack-and-delete-stack", "deployments": [], "key": "cloudformation__ssm/change-set-express-mode-create-then-express-update-stack-and-delete-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_express_mode_create_then_express_update_stack_and_delete_stack.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-express-mode-failed-update-is-not-rolled-back", "deployments": [], "key": "cloudformation__ssm/change-set-express-mode-failed-update-is-not-rolled-back", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_express_mode_failed_update_is_not_rolled_back.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-import-existing-resources-name-owned-by-another-stack-fails", "deployments": [], "key": "cloudformation__ssm/change-set-import-existing-resources-name-owned-by-another-stack-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_import_existing_resources_name_owned_by_another_stack_fails.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-import-existing-resources-without-a-match-adds", "deployments": [], "key": "cloudformation__ssm/change-set-import-existing-resources-without-a-match-adds", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_import_existing_resources_without_a_match_adds.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-import-of-nonexistent-identifier-fails", "deployments": [], "key": "cloudformation__ssm/change-set-import-of-nonexistent-identifier-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_import_of_nonexistent_identifier_fails.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-import-of-resource-managed-by-another-stack-fails", "deployments": [], "key": "cloudformation__ssm/change-set-import-of-resource-managed-by-another-stack-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_import_of_resource_managed_by_another_stack_fails.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-import-without-deletion-policy-rejected", "deployments": [], "key": "cloudformation__ssm/change-set-import-without-deletion-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_import_without_deletion_policy_rejected.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-on-stack-failure-delete-removes-the-failed-new-stack", "deployments": [], "key": "cloudformation__ssm/change-set-on-stack-failure-delete-removes-the-failed-new-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_on_stack_failure_delete_removes_the_failed_new_stack.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-on-stack-failure-do-nothing-keeps-the-created-resource", "deployments": [], "key": "cloudformation__ssm/change-set-on-stack-failure-do-nothing-keeps-the-created-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_on_stack_failure_do_nothing_keeps_the_created_resource.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-on-stack-failure-rollback-removes-the-created-resource", "deployments": [], "key": "cloudformation__ssm/change-set-on-stack-failure-rollback-removes-the-created-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_on_stack_failure_rollback_removes_the_created_resource.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.change-set-revert-drift-restores-an-out-of-band-parameter-change", "deployments": [], "key": "cloudformation__ssm/change-set-revert-drift-restores-an-out-of-band-parameter-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_change_set_revert_drift_restores_an_out_of_band_parameter_change.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.deploy-ssm-document-invalid-content-rejected", "deployments": [], "key": "cloudformation__ssm/deploy-ssm-document-invalid-content-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:CreateDocument", "ssm:DeleteDocument", "ssm:GetDocument"], "path": "behavioral/cloudformation__ssm/check_deploy_ssm_document_invalid_content_rejected.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.deploy-ssm-maintenancewindowtask-via-cloudformation-then-lifecycle", "deployments": [], "key": "cloudformation__ssm/deploy-ssm-maintenancewindowtask-via-cloudformation-then-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:GetMaintenanceWindow", "ssm:GetMaintenanceWindowTask", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ssm/check_deploy_ssm_maintenancewindowtask_via_cloudformation_then_lifecycle.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.deploy-ssm-opsitem-via-cloudformation-then-lifecycle", "deployments": [], "key": "cloudformation__ssm/deploy-ssm-opsitem-via-cloudformation-then-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetOpsItem", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ssm/check_deploy_ssm_opsitem_via_cloudformation_then_lifecycle.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.deploy-ssm-patchbaseline-via-cloudformation-then-lifecycle", "deployments": [], "key": "cloudformation__ssm/deploy-ssm-patchbaseline-via-cloudformation-then-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetPatchBaseline", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ssm/check_deploy_ssm_patchbaseline_via_cloudformation_then_lifecycle.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.deploy-ssm-resourcepolicy-via-cloudformation-then-lifecycle", "deployments": [], "key": "cloudformation__ssm/deploy-ssm-resourcepolicy-via-cloudformation-then-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:GetParameter", "ssm:GetResourcePolicies", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ssm/check_deploy_ssm_resourcepolicy_via_cloudformation_then_lifecycle.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.deploy-ssm-service-setting-unknown-setting-id-rejected-then-round-trip-and-reset", "deployments": [], "key": "cloudformation__ssm/deploy-ssm-service-setting-unknown-setting-id-rejected-then-round-trip-and-reset", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetServiceSetting", "ssm:ResetServiceSetting"], "path": "behavioral/cloudformation__ssm/check_deploy_ssm_service_setting_unknown_setting_id_rejected_then_round_trip_and_reset.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.deploy-ssmquicksetup-lifecycleautomation-missing-automation-document-rejected", "deployments": [], "key": "cloudformation__ssm/deploy-ssmquicksetup-lifecycleautomation-missing-automation-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeAssociation"], "path": "behavioral/cloudformation__ssm/check_deploy_ssmquicksetup_lifecycleautomation_missing_automation_document_rejected.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.deploy-ssmquicksetup-lifecycleautomation-round-trip-then-update-and-delete", "deployments": [], "key": "cloudformation__ssm/deploy-ssmquicksetup-lifecycleautomation-round-trip-then-update-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:DescribeAssociation", "ssm:GetDocument", "ssm:ListTagsForResource"], "path": "behavioral/cloudformation__ssm/check_deploy_ssmquicksetup_lifecycleautomation_round_trip_then_update_and_delete.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.intrinsic-deletion-policy-if-honoured-on-delete", "deployments": [], "key": "cloudformation__ssm/intrinsic-deletion-policy-if-honoured-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_intrinsic_deletion_policy_if_honoured_on_delete.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.intrinsic-deletion-policy-if-resolves-without-transform", "deployments": [], "key": "cloudformation__ssm/intrinsic-deletion-policy-if-resolves-without-transform", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_intrinsic_deletion_policy_if_resolves_without_transform.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.intrinsic-novalue-on-update-does-not-clear-ssm-property", "deployments": [], "key": "cloudformation__ssm/intrinsic-novalue-on-update-does-not-clear-ssm-property", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:DescribeParameters", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_intrinsic_novalue_on_update_does_not_clear_ssm_property.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.output-getatt-on-writeonly-ssm-parameter-property-rejected", "deployments": [], "key": "cloudformation__ssm/output-getatt-on-writeonly-ssm-parameter-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:DescribeParameters", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_output_getatt_on_writeonly_ssm_parameter_property_rejected.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.parameter-ssm-list-resolved-value-until-update", "deployments": [], "key": "cloudformation__ssm/parameter-ssm-list-resolved-value-until-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_parameter_ssm_list_resolved_value_until_update.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.stack-create-disable-validation-defers-name-conflict-to-provisioning", "deployments": [], "key": "cloudformation__ssm/stack-create-disable-validation-defers-name-conflict-to-provisioning", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeEvents", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_stack_create_disable_validation_defers_name_conflict_to_provisioning.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.stack-create-stack-policy-body-denies-modify-until-overridden", "deployments": [], "key": "cloudformation__ssm/stack-create-stack-policy-body-denies-modify-until-overridden", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:UpdateStack", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_stack_create_stack_policy_body_denies_modify_until_overridden.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.stack-detect-drift-logical-subset-checks-only-named-resources", "deployments": [], "key": "cloudformation__ssm/stack-detect-drift-logical-subset-checks-only-named-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "ssm:PutParameter"], "path": "behavioral/cloudformation__ssm/check_stack_detect_drift_logical_subset_checks_only_named_resources.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.stack-replacement-update-cleanup-deletes-old-physical-resource", "deployments": [], "key": "cloudformation__ssm/stack-replacement-update-cleanup-deletes-old-physical-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_stack_replacement_update_cleanup_deletes_old_physical_resource.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.stack-update-retain-except-on-create-deletes-new-retained-resource", "deployments": [], "key": "cloudformation__ssm/stack-update-retain-except-on-create-deletes-new-retained-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CancelUpdateStack", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_stack_update_retain_except_on_create_deletes_new_retained_resource.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__ssm.template-snapshot-policy-on-unsupported-type-deletes", "deployments": [], "key": "cloudformation__ssm/template-snapshot-policy-on-unsupported-type-deletes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/cloudformation__ssm/check_template_snapshot_policy_on_unsupported_type_deletes.py", "service": "cloudformation__ssm"} {"check_id": "cloudformation__stepfunctions.cfn-activity-round-trip-and-removed-on-stack-delete", "deployments": [], "key": "cloudformation__stepfunctions/cfn-activity-round-trip-and-removed-on-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "stepfunctions:DescribeActivity"], "path": "behavioral/cloudformation__stepfunctions/check_cfn_activity_round_trip_and_removed_on_stack_delete.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__stepfunctions.cfn-state-machine-alias-routing-weights-not-summing-to-100-rejected", "deployments": [], "key": "cloudformation__stepfunctions/cfn-state-machine-alias-routing-weights-not-summing-to-100-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:ListStateMachineAliases"], "path": "behavioral/cloudformation__stepfunctions/check_cfn_state_machine_alias_routing_weights_not_summing_to_100_rejected.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__stepfunctions.cfn-state-machine-properties-round-trip-and-removed-on-stack-delete", "deployments": [], "key": "cloudformation__stepfunctions/cfn-state-machine-properties-round-trip-and-removed-on-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "stepfunctions:DescribeStateMachine"], "path": "behavioral/cloudformation__stepfunctions/check_cfn_state_machine_properties_round_trip_and_removed_on_stack_delete.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__stepfunctions.cfn-state-machine-version-and-alias-round-trip-and-removed-on-stack-delete", "deployments": [], "key": "cloudformation__stepfunctions/cfn-state-machine-version-and-alias-round-trip-and-removed-on-stack-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "stepfunctions:DescribeStateMachine", "stepfunctions:DescribeStateMachineAlias"], "path": "behavioral/cloudformation__stepfunctions/check_cfn_state_machine_version_and_alias_round_trip_and_removed_on_stack_delete.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__stepfunctions.cfn-stepfunctions-state-machine-in-place-update-retained-replacement-then-not-found", "deployments": [], "key": "cloudformation__stepfunctions/cfn-stepfunctions-state-machine-in-place-update-retained-replacement-then-not-found", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudformation__stepfunctions/check_cfn_stepfunctions_state_machine_in_place_update_retained_replacement_then_not_found.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__stepfunctions.deploy-cdk-choice-default-unknown-state-rejected", "deployments": [], "key": "cloudformation__stepfunctions/deploy-cdk-choice-default-unknown-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudformation__stepfunctions/check_deploy_cdk_choice_default_unknown_state_rejected.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__stepfunctions.deploy-cdk-choice-into-fail-ends-execution-failed-with-declared-error-and-cause", "deployments": ["behavioral/cloudformation__stepfunctions/deployments/sfn_choice_fail/app.py", "behavioral/cloudformation__stepfunctions/deployments/sfn_choice_fail/cdk.json"], "key": "cloudformation__stepfunctions/deploy-cdk-choice-into-fail-ends-execution-failed-with-declared-error-and-cause", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "iam:ListRoles", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudformation__stepfunctions/check_deploy_cdk_choice_into_fail_ends_execution_failed_with_declared_error_and_cause.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__stepfunctions.deploy-pass-state-with-next-and-end-together-rejected-at-stack-create", "deployments": [], "key": "cloudformation__stepfunctions/deploy-pass-state-with-next-and-end-together-rejected-at-stack-create", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:GetRole", "stepfunctions:DescribeStateMachine"], "path": "behavioral/cloudformation__stepfunctions/check_deploy_pass_state_with_next_and_end_together_rejected_at_stack_create.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__stepfunctions.update-state-machine-preserves-arn-and-bumps-revision", "deployments": [], "key": "cloudformation__stepfunctions/update-state-machine-preserves-arn-and-bumps-revision", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "stepfunctions:DescribeStateMachine"], "path": "behavioral/cloudformation__stepfunctions/check_update_state_machine_preserves_arn_and_bumps_revision.py", "service": "cloudformation__stepfunctions"} {"check_id": "cloudformation__supportauthz.deploy-cfn-supportauthz-supportpermit-invalid-name-rejected", "deployments": [], "key": "cloudformation__supportauthz/deploy-cfn-supportauthz-supportpermit-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "supportauthz:GetSupportPermit"], "path": "behavioral/cloudformation__supportauthz/check_deploy_cfn_supportauthz_supportpermit_invalid_name_rejected.py", "service": "cloudformation__supportauthz"} {"check_id": "cloudformation__supportauthz.deploy-cfn-supportauthz-supportpermit-round-trip-and-delete", "deployments": [], "key": "cloudformation__supportauthz/deploy-cfn-supportauthz-supportpermit-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "supportauthz:GetSupportPermit", "supportauthz:ListTagsForResource"], "path": "behavioral/cloudformation__supportauthz/check_deploy_cfn_supportauthz_supportpermit_round_trip_and_delete.py", "service": "cloudformation__supportauthz"} {"check_id": "cloudformation__synthetics.cfn-synthetics-canary-properties-and-getatt-read-back-then-resources-removed-on-delete", "deployments": [], "key": "cloudformation__synthetics/cfn-synthetics-canary-properties-and-getatt-read-back-then-resources-removed-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "synthetics:DescribeCanaries", "synthetics:GetCanary"], "path": "behavioral/cloudformation__synthetics/check_cfn_synthetics_canary_properties_and_getatt_read_back_then_resources_removed_on_delete.py", "service": "cloudformation__synthetics"} {"check_id": "cloudformation__synthetics.cfn-synthetics-group-duplicate-name-rejected-leaving-the-original", "deployments": [], "key": "cloudformation__synthetics/cfn-synthetics-group-duplicate-name-rejected-leaving-the-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "synthetics:GetGroup"], "path": "behavioral/cloudformation__synthetics/check_cfn_synthetics_group_duplicate_name_rejected_leaving_the_original.py", "service": "cloudformation__synthetics"} {"check_id": "cloudformation__synthetics.cfn-synthetics-group-tags-and-getatt-read-back-then-not-found-after-delete", "deployments": [], "key": "cloudformation__synthetics/cfn-synthetics-group-tags-and-getatt-read-back-then-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "synthetics:GetGroup", "synthetics:ListGroups"], "path": "behavioral/cloudformation__synthetics/check_cfn_synthetics_group_tags_and_getatt_read_back_then_not_found_after_delete.py", "service": "cloudformation__synthetics"} {"check_id": "cloudformation__textract.deploy-cfn-textract-adapter-invalid-feature-type-rejected", "deployments": [], "key": "cloudformation__textract/deploy-cfn-textract-adapter-invalid-feature-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "textract:GetAdapter"], "path": "behavioral/cloudformation__textract/check_deploy_cfn_textract_adapter_invalid_feature_type_rejected.py", "service": "cloudformation__textract"} {"check_id": "cloudformation__textract.deploy-cfn-textract-adapter-round-trip-then-update-and-delete", "deployments": [], "key": "cloudformation__textract/deploy-cfn-textract-adapter-round-trip-then-update-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "textract:GetAdapter", "textract:ListTagsForResource"], "path": "behavioral/cloudformation__textract/check_deploy_cfn_textract_adapter_round_trip_then_update_and_delete.py", "service": "cloudformation__textract"} {"check_id": "cloudformation__timestream-influxdb.deploy-timestream-influxdb-instance-bad-deployment-type-rejected-then-valid", "deployments": [], "key": "cloudformation__timestream-influxdb/deploy-timestream-influxdb-instance-bad-deployment-type-rejected-then-valid", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "timestream-influxdb:GetDbInstance"], "path": "behavioral/cloudformation__timestream-influxdb/check_deploy_timestream_influxdb_instance_bad_deployment_type_rejected_then_valid.py", "service": "cloudformation__timestream-influxdb"} {"check_id": "cloudformation__timestream-influxdb.deploy-timestream-influxdb-instance-round-trip-and-delete", "deployments": [], "key": "cloudformation__timestream-influxdb/deploy-timestream-influxdb-instance-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "timestream-influxdb:GetDbInstance", "timestream-influxdb:ListTagsForResource"], "path": "behavioral/cloudformation__timestream-influxdb/check_deploy_timestream_influxdb_instance_round_trip_and_delete.py", "service": "cloudformation__timestream-influxdb"} {"check_id": "cloudformation__transcribe.deploy-transcribe-call-analytics-category-duplicate-name-rejected-leaving-original", "deployments": [], "key": "cloudformation__transcribe/deploy-transcribe-call-analytics-category-duplicate-name-rejected-leaving-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transcribe:GetCallAnalyticsCategory"], "path": "behavioral/cloudformation__transcribe/check_deploy_transcribe_call_analytics_category_duplicate_name_rejected_leaving_original.py", "service": "cloudformation__transcribe"} {"check_id": "cloudformation__transcribe.deploy-transcribe-call-analytics-category-round-trip-and-delete", "deployments": [], "key": "cloudformation__transcribe/deploy-transcribe-call-analytics-category-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transcribe:GetCallAnalyticsCategory"], "path": "behavioral/cloudformation__transcribe/check_deploy_transcribe_call_analytics_category_round_trip_and_delete.py", "service": "cloudformation__transcribe"} {"check_id": "cloudformation__transcribe.deploy-transcribe-medical-vocabulary-round-trip-and-delete", "deployments": [], "key": "cloudformation__transcribe/deploy-transcribe-medical-vocabulary-round-trip-and-delete", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "transcribe:GetMedicalVocabulary"], "path": "behavioral/cloudformation__transcribe/check_deploy_transcribe_medical_vocabulary_round_trip_and_delete.py", "service": "cloudformation__transcribe"} {"check_id": "cloudformation__transcribe.deploy-transcribe-vocabulary-filter-duplicate-name-rejected-leaving-original", "deployments": [], "key": "cloudformation__transcribe/deploy-transcribe-vocabulary-filter-duplicate-name-rejected-leaving-original", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transcribe:GetVocabularyFilter"], "path": "behavioral/cloudformation__transcribe/check_deploy_transcribe_vocabulary_filter_duplicate_name_rejected_leaving_original.py", "service": "cloudformation__transcribe"} {"check_id": "cloudformation__transcribe.deploy-transcribe-vocabulary-filter-round-trip-and-delete", "deployments": [], "key": "cloudformation__transcribe/deploy-transcribe-vocabulary-filter-round-trip-and-delete", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transcribe:GetVocabularyFilter"], "path": "behavioral/cloudformation__transcribe/check_deploy_transcribe_vocabulary_filter_round_trip_and_delete.py", "service": "cloudformation__transcribe"} {"check_id": "cloudformation__transcribe.deploy-transcribe-vocabulary-round-trip-and-delete", "deployments": [], "key": "cloudformation__transcribe/deploy-transcribe-vocabulary-round-trip-and-delete", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transcribe:GetVocabulary"], "path": "behavioral/cloudformation__transcribe/check_deploy_transcribe_vocabulary_round_trip_and_delete.py", "service": "cloudformation__transcribe"} {"check_id": "cloudformation__transfer.deploy-transfer-as2-server-and-agreement-round-trip-and-delete", "deployments": [], "key": "cloudformation__transfer/deploy-transfer-as2-server-and-agreement-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "transfer:DescribeAgreement", "transfer:DescribeProfile", "transfer:DescribeServer"], "path": "behavioral/cloudformation__transfer/check_deploy_transfer_as2_server_and_agreement_round_trip_and_delete.py", "service": "cloudformation__transfer"} {"check_id": "cloudformation__transfer.deploy-transfer-connector-invalid-trusted-host-key-algorithm-rejected", "deployments": [], "key": "cloudformation__transfer/deploy-transfer-connector-invalid-trusted-host-key-algorithm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transfer:DescribeConnector"], "path": "behavioral/cloudformation__transfer/check_deploy_transfer_connector_invalid_trusted_host_key_algorithm_rejected.py", "service": "cloudformation__transfer"} {"check_id": "cloudformation__transfer.deploy-transfer-profile-certificate-workflow-connector-round-trip-and-delete", "deployments": [], "key": "cloudformation__transfer/deploy-transfer-profile-certificate-workflow-connector-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transfer:DescribeCertificate", "transfer:DescribeConnector", "transfer:DescribeProfile", "transfer:DescribeWorkflow"], "path": "behavioral/cloudformation__transfer/check_deploy_transfer_profile_certificate_workflow_connector_round_trip_and_delete.py", "service": "cloudformation__transfer"} {"check_id": "cloudformation__s3__translate.deploy-translate-parallel-data-missing-s3-key-rejected-and-rolled-back", "deployments": [], "key": "cloudformation__translate/deploy-translate-parallel-data-missing-s3-key-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "translate:GetParallelData", "translate:ListParallelData", "translate:ListTagsForResource"], "path": "behavioral/cloudformation__translate/check_deploy_translate_parallel_data_missing_s3_key_rejected_and_rolled_back.py", "service": "cloudformation__translate"} {"check_id": "cloudformation__s3__translate.deploy-translate-parallel-data-round-trip-and-delete", "deployments": [], "key": "cloudformation__translate/deploy-translate-parallel-data-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "translate:GetParallelData", "translate:ListParallelData", "translate:ListTagsForResource"], "path": "behavioral/cloudformation__translate/check_deploy_translate_parallel_data_round_trip_and_delete.py", "service": "cloudformation__translate"} {"check_id": "cloudformation__translate.deploy-translate-terminology-round-trip-and-delete", "deployments": [], "key": "cloudformation__translate/deploy-translate-terminology-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "translate:GetTerminology", "translate:ListTagsForResource"], "path": "behavioral/cloudformation__translate/check_deploy_translate_terminology_round_trip_and_delete.py", "service": "cloudformation__translate"} {"check_id": "cloudformation__vpc-lattice.deploy-vpclattice-rule-fixedresponse-statuscode-rejected", "deployments": [], "key": "cloudformation__vpc-lattice/deploy-vpclattice-rule-fixedresponse-statuscode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "vpc-lattice:GetRule"], "path": "behavioral/cloudformation__vpc-lattice/check_deploy_vpclattice_rule_fixedresponse_statuscode_rejected.py", "service": "cloudformation__vpc-lattice"} {"check_id": "cloudformation__vpc-lattice.deploy-vpclattice-service-network-association-round-trip-and-delete", "deployments": [], "key": "cloudformation__vpc-lattice/deploy-vpclattice-service-network-association-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "vpc-lattice:GetService", "vpc-lattice:GetServiceNetwork", "vpc-lattice:GetServiceNetworkServiceAssociation", "vpc-lattice:ListTagsForResource"], "path": "behavioral/cloudformation__vpc-lattice/check_deploy_vpclattice_service_network_association_round_trip_and_delete.py", "service": "cloudformation__vpc-lattice"} {"check_id": "cloudformation__vpc-lattice.deploy-vpclattice-servicenetwork-authpolicy-resourcepolicy-round-trip-and-delete", "deployments": [], "key": "cloudformation__vpc-lattice/deploy-vpclattice-servicenetwork-authpolicy-resourcepolicy-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "vpc-lattice:GetAuthPolicy", "vpc-lattice:GetResourcePolicy", "vpc-lattice:GetServiceNetwork", "vpc-lattice:ListTagsForResource"], "path": "behavioral/cloudformation__vpc-lattice/check_deploy_vpclattice_servicenetwork_authpolicy_resourcepolicy_round_trip_and_delete.py", "service": "cloudformation__vpc-lattice"} {"check_id": "cloudformation__vpc-lattice.deploy-vpclattice-targetgroup-listener-rule-round-trip-and-delete", "deployments": [], "key": "cloudformation__vpc-lattice/deploy-vpclattice-targetgroup-listener-rule-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "vpc-lattice:GetListener", "vpc-lattice:GetRule", "vpc-lattice:GetService", "vpc-lattice:GetTargetGroup", "vpc-lattice:ListTagsForResource"], "path": "behavioral/cloudformation__vpc-lattice/check_deploy_vpclattice_targetgroup_listener_rule_round_trip_and_delete.py", "service": "cloudformation__vpc-lattice"} {"check_id": "cloudformation__wafv2.deploy-loggingconfiguration-provisioned-then-removed", "deployments": [], "key": "cloudformation__wafv2/deploy-loggingconfiguration-provisioned-then-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "wafv2:GetLoggingConfiguration", "wafv2:GetWebACL", "wafv2:ListTagsForResource"], "path": "behavioral/cloudformation__wafv2/check_deploy_loggingconfiguration_provisioned_then_removed.py", "service": "cloudformation__wafv2"} {"check_id": "cloudformation__wafv2.deploy-rulegroup-cfn-capacity-too-low-rejected", "deployments": [], "key": "cloudformation__wafv2/deploy-rulegroup-cfn-capacity-too-low-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wafv2:GetRuleGroup", "wafv2:ListTagsForResource"], "path": "behavioral/cloudformation__wafv2/check_deploy_rulegroup_cfn_capacity_too_low_rejected.py", "service": "cloudformation__wafv2"} {"check_id": "cloudformation__wafv2.deploy-webacl-rulegroup-ipset-regexpatternset-provisioned-then-removed", "deployments": [], "key": "cloudformation__wafv2/deploy-webacl-rulegroup-ipset-regexpatternset-provisioned-then-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wafv2:GetIPSet", "wafv2:GetRegexPatternSet", "wafv2:GetRuleGroup", "wafv2:GetWebACL", "wafv2:ListTagsForResource"], "path": "behavioral/cloudformation__wafv2/check_deploy_webacl_rulegroup_ipset_regexpatternset_provisioned_then_removed.py", "service": "cloudformation__wafv2"} {"check_id": "cloudformation__wisdom.deploy-wisdom-assistant-knowledgebase-and-assistantassociation-round-trip-and-delete", "deployments": [], "key": "cloudformation__wisdom/deploy-wisdom-assistant-knowledgebase-and-assistantassociation-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "wisdom:GetAssistant", "wisdom:GetAssistantAssociation", "wisdom:GetKnowledgeBase"], "path": "behavioral/cloudformation__wisdom/check_deploy_wisdom_assistant_knowledgebase_and_assistantassociation_round_trip_and_delete.py", "service": "cloudformation__wisdom"} {"check_id": "cloudformation__wisdom.deploy-wisdom-assistantassociation-unknown-knowledgebase-rejected", "deployments": [], "key": "cloudformation__wisdom/deploy-wisdom-assistantassociation-unknown-knowledgebase-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wisdom:GetAssistant", "wisdom:GetAssistantAssociation", "wisdom:GetKnowledgeBase"], "path": "behavioral/cloudformation__wisdom/check_deploy_wisdom_assistantassociation_unknown_knowledgebase_rejected.py", "service": "cloudformation__wisdom"} {"check_id": "cloudfront-keyvaluestore.concurrent-delete-key-race-single-winner", "deployments": [], "key": "cloudfront-keyvaluestore/concurrent-delete-key-race-single-winner", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_concurrent_delete_key_race_single_winner.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.concurrent-put-key-stale-etag-only-one-wins", "deployments": [], "key": "cloudfront-keyvaluestore/concurrent-put-key-stale-etag-only-one-wins", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_concurrent_put_key_stale_etag_only_one_wins.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.concurrent-update-keys-race-single-winner", "deployments": [], "key": "cloudfront-keyvaluestore/concurrent-update-keys-race-single-winner", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_concurrent_update_keys_race_single_winner.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.control-plane-etag-rejected-for-data-plane-put", "deployments": [], "key": "cloudfront-keyvaluestore/control-plane-etag-rejected-for-data-plane-put", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_control_plane_etag_rejected_for_data_plane_put.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.cross-store-key-isolation", "deployments": [], "key": "cloudfront-keyvaluestore/cross-store-key-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_cross_store_key_isolation.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.delete-key-denied-by-iam-policy-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/delete-key-denied-by-iam-policy-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/cloudfront-keyvaluestore/check_delete_key_denied_by_iam_policy_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.delete-key-removes-key-and-get-key-not-found", "deployments": [], "key": "cloudfront-keyvaluestore/delete-key-removes-key-and-get-key-not-found", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_delete_key_removes_key_and_get_key_not_found.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.delete-key-stale-etag-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/delete-key-stale-etag-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_delete_key_stale_etag_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.describe-key-value-store-created-stable-last-modified-advances", "deployments": [], "key": "cloudfront-keyvaluestore/describe-key-value-store-created-stable-last-modified-advances", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_describe_key_value_store_created_stable_last_modified_advances.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.describe-key-value-store-tracks-item-count-and-size", "deployments": [], "key": "cloudfront-keyvaluestore/describe-key-value-store-tracks-item-count-and-size", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:PutKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_describe_key_value_store_tracks_item_count_and_size.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.etag-bumps-on-every-mutation", "deployments": [], "key": "cloudfront-keyvaluestore/etag-bumps-on-every-mutation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_etag_bumps_on_every_mutation.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.get-key-itemcount-reflects-whole-store-not-queried-key", "deployments": [], "key": "cloudfront-keyvaluestore/get-key-itemcount-reflects-whole-store-not-queried-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_get_key_itemcount_reflects_whole_store_not_queried_key.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.get-key-nonexistent-key-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/get-key-nonexistent-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_get_key_nonexistent_key_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.get-key-on-nonexistent-store-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/get-key-on-nonexistent-store-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront-keyvaluestore/check_get_key_on_nonexistent_store_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.get-key-value-matches-exact-bytes-after-multiple-overwrites", "deployments": [], "key": "cloudfront-keyvaluestore/get-key-value-matches-exact-bytes-after-multiple-overwrites", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_get_key_value_matches_exact_bytes_after_multiple_overwrites.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.key-special-characters-roundtrip", "deployments": [], "key": "cloudfront-keyvaluestore/key-special-characters-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_key_special_characters_roundtrip.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.kvs-deleted-store-data-plane-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/kvs-deleted-store-data-plane-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:PutKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "cloudfront:ListKeyValueStores"], "path": "behavioral/cloudfront-keyvaluestore/check_kvs_deleted_store_data_plane_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.list-keys-default-max-results-is-ten", "deployments": [], "key": "cloudfront-keyvaluestore/list-keys-default-max-results-is-ten", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_list_keys_default_max_results_is_ten.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.list-keys-malformed-next-token-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/list-keys-malformed-next-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_list_keys_malformed_next_token_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.list-keys-maxresults-boundary-min-returns-one", "deployments": [], "key": "cloudfront-keyvaluestore/list-keys-maxresults-boundary-min-returns-one", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_list_keys_maxresults_boundary_min_returns_one.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.list-keys-maxresults-out-of-range-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/list-keys-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_list_keys_maxresults_out_of_range_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.list-keys-pagination-covers-all-items", "deployments": [], "key": "cloudfront-keyvaluestore/list-keys-pagination-covers-all-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_list_keys_pagination_covers_all_items.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.list-keys-reflects-zero-after-deleting-all-keys", "deployments": [], "key": "cloudfront-keyvaluestore/list-keys-reflects-zero-after-deleting-all-keys", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_list_keys_reflects_zero_after_deleting_all_keys.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-case-sensitive-distinct-keys", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-case-sensitive-distinct-keys", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "cloudfront:TagResource"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_case_sensitive_distinct_keys.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-denied-by-iam-policy-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-denied-by-iam-policy-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_denied_by_iam_policy_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-empty-value-allowed", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-empty-value-allowed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_empty_value_allowed.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-get-key-roundtrip", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-get-key-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_get_key_roundtrip.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-key-containing-slash-characters-roundtrip", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-key-containing-slash-characters-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_key_containing_slash_characters_roundtrip.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-large-value-roundtrip", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-large-value-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_large_value_roundtrip.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-oversized-key-rejected-validation", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-oversized-key-rejected-validation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_oversized_key_rejected_validation.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-overwrite-replaces-value", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-overwrite-replaces-value", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_overwrite_replaces_value.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-stale-etag-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-stale-etag-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_stale_etag_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-key-value-persists-exact-bytes-including-unicode", "deployments": [], "key": "cloudfront-keyvaluestore/put-key-value-persists-exact-bytes-including-unicode", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_key_value_persists_exact_bytes_including_unicode.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.put-then-delete-key-restores-total-size", "deployments": [], "key": "cloudfront-keyvaluestore/put-then-delete-key-restores-total-size", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_put_then_delete_key_restores_total_size.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.store-provisions-to-ready-status", "deployments": [], "key": "cloudfront-keyvaluestore/store-provisions-to-ready-status", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_store_provisions_to_ready_status.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.store-size-quota-blocks-write-until-space-is-freed", "deployments": [], "key": "cloudfront-keyvaluestore/store-size-quota-blocks-write-until-space-is-freed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_store_size_quota_blocks_write_until_space_is_freed.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.total-size-in-bytes-tracks-value-byte-deltas-exactly", "deployments": [], "key": "cloudfront-keyvaluestore/total-size-in-bytes-tracks-value-byte-deltas-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_total_size_in_bytes_tracks_value_byte_deltas_exactly.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.update-keys-batch-exceeding-max-items-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/update-keys-batch-exceeding-max-items-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_update_keys_batch_exceeding_max_items_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.update-keys-batch-put-and-delete-atomic", "deployments": [], "key": "cloudfront-keyvaluestore/update-keys-batch-put-and-delete-atomic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_update_keys_batch_put_and_delete_atomic.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.update-keys-delete-nonexistent-key-is-idempotent-no-op", "deployments": [], "key": "cloudfront-keyvaluestore/update-keys-delete-nonexistent-key-is-idempotent-no-op", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_update_keys_delete_nonexistent_key_is_idempotent_no_op.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.update-keys-delete-only-batch", "deployments": [], "key": "cloudfront-keyvaluestore/update-keys-delete-only-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_update_keys_delete_only_batch.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.update-keys-duplicate-key-in-deletes-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/update-keys-duplicate-key-in-deletes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_update_keys_duplicate_key_in_deletes_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.update-keys-duplicate-key-validation-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/update-keys-duplicate-key-validation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_update_keys_duplicate_key_validation_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.update-keys-exceeding-value-quota-in-batch-rejected", "deployments": [], "key": "cloudfront-keyvaluestore/update-keys-exceeding-value-quota-in-batch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_update_keys_exceeding_value_quota_in_batch_rejected.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.update-keys-multiple-puts-single-etag-bump", "deployments": [], "key": "cloudfront-keyvaluestore/update-keys-multiple-puts-single-etag-bump", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:ListKeys", "cloudfront-keyvaluestore:UpdateKeys", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_update_keys_multiple_puts_single_etag_bump.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront-keyvaluestore.value-size-quota-is-measured-in-utf8-bytes-not-characters", "deployments": [], "key": "cloudfront-keyvaluestore/value-size-quota-is-measured-in-utf8-bytes-not-characters", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront-keyvaluestore/check_value_size_quota_is_measured_in_utf8_bytes_not_characters.py", "service": "cloudfront-keyvaluestore"} {"check_id": "cloudfront.associate-distribution-tenant-web-acl-entity-not-found-rejected", "deployments": [], "key": "cloudfront/associate-distribution-tenant-web-acl-entity-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_associate_distribution_tenant_web_acl_entity_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.associate-distribution-tenant-web-acl-limit-exceeded-fails", "deployments": [], "key": "cloudfront/associate-distribution-tenant-web-acl-limit-exceeded-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_associate_distribution_tenant_web_acl_limit_exceeded_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.associate-distribution-tenant-web-acl-nonexistent-tenant-rejected", "deployments": [], "key": "cloudfront/associate-distribution-tenant-web-acl-nonexistent-tenant-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_associate_distribution_tenant_web_acl_nonexistent_tenant_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.associate-distribution-tenant-web-acl-not-found-rejected", "deployments": [], "key": "cloudfront/associate-distribution-tenant-web-acl-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "sts:GetCallerIdentity", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_associate_distribution_tenant_web_acl_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.associate-distribution-web-acl-nonexistent-distribution-fails", "deployments": [], "key": "cloudfront/associate-distribution-web-acl-nonexistent-distribution-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributionsByWebACLId", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_associate_distribution_web_acl_nonexistent_distribution_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.associate-web-acl-nonexistent-distribution-fails", "deployments": [], "key": "cloudfront/associate-web-acl-nonexistent-distribution-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_associate_web_acl_nonexistent_distribution_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.cache-behavior-first-listed-match-wins-over-more-specific-pattern", "deployments": [], "key": "cloudfront/cache-behavior-first-listed-match-wins-over-more-specific-pattern", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cache_behavior_first_listed_match_wins_over_more_specific_pattern.py", "service": "cloudfront"} {"check_id": "cloudfront.cache-policy-invalid-ttl-order-rejected", "deployments": [], "key": "cloudfront/cache-policy-invalid-ttl-order-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:GetCachePolicyConfig", "cloudfront:ListCachePolicies"], "path": "behavioral/cloudfront/check_cache_policy_invalid_ttl_order_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.cache-policy-lifecycle-crud", "deployments": [], "key": "cloudfront/cache-policy-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:ListCachePolicies", "cloudfront:UpdateCachePolicy"], "path": "behavioral/cloudfront/check_cache_policy_lifecycle_crud.py", "service": "cloudfront"} {"check_id": "cloudfront.cache-policy-update-stale-etag-fails", "deployments": [], "key": "cloudfront/cache-policy-update-stale-etag-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:UpdateCachePolicy"], "path": "behavioral/cloudfront/check_cache_policy_update_stale_etag_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-cache-key-querystring-allowlist-separates-cache-entries", "deployments": [], "key": "cloudfront/cf-cache-key-querystring-allowlist-separates-cache-entries", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cf_cache_key_querystring_allowlist_separates_cache_entries.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-compression-serves-gzip-only-when-accept-encoding-present", "deployments": [], "key": "cloudfront/cf-compression-serves-gzip-only-when-accept-encoding-present", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cf_compression_serves_gzip_only_when_accept_encoding_present.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-concurrent-update-distribution-etag-single-winner", "deployments": [], "key": "cloudfront/cf-concurrent-update-distribution-etag-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_cf_concurrent_update_distribution_etag_single_winner.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-continuous-deployment-single-header-routes-to-staging-distribution", "deployments": [], "key": "cloudfront/cf-continuous-deployment-single-header-routes-to-staging-distribution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateContinuousDeploymentPolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetContinuousDeploymentPolicy", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cf_continuous_deployment_single_header_routes_to_staging_distribution.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-fetch-through-distribution", "deployments": [], "key": "cloudfront/cf-fetch-through-distribution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cf_fetch_through_distribution.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-function-viewer-request-rewrites-uri-and-headers", "deployments": [], "key": "cloudfront/cf-function-viewer-request-rewrites-uri-and-headers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:TestFunction"], "path": "behavioral/cloudfront/check_cf_function_viewer_request_rewrites_uri_and_headers.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-keyvaluestore-put-key-visible-to-function-at-edge", "deployments": [], "key": "cloudfront/cf-keyvaluestore-put-key-visible-to-function-at-edge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront-keyvaluestore:DeleteKey", "cloudfront-keyvaluestore:DescribeKeyValueStore", "cloudfront-keyvaluestore:GetKey", "cloudfront-keyvaluestore:PutKey", "cloudfront:CreateFunction", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteFunction", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeFunction", "cloudfront:DescribeKeyValueStore", "cloudfront:TestFunction"], "path": "behavioral/cloudfront/check_cf_keyvaluestore_put_key_visible_to_function_at_edge.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-oai-lifecycle-crud", "deployments": [], "key": "cloudfront/cf-oai-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentityConfig", "cloudfront:UpdateCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_cf_oai_lifecycle_crud.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-ordered-cache-behaviors", "deployments": [], "key": "cloudfront/cf-ordered-cache-behaviors", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_cf_ordered_cache_behaviors.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-response-headers-policy-adds-and-overrides-headers-at-edge", "deployments": [], "key": "cloudfront/cf-response-headers-policy-adds-and-overrides-headers-at-edge", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cf_response_headers_policy_adds_and_overrides_headers_at_edge.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-unsigned-request-to-trusted-key-group-distribution-rejected", "deployments": [], "key": "cloudfront/cf-unsigned-request-to-trusted-key-group-distribution-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateKeyGroup", "cloudfront:CreateOriginAccessControl", "cloudfront:CreatePublicKey", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_cf_unsigned_request_to_trusted_key_group_distribution_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.cf-wildcard-invalidation-clears-only-matching-objects", "deployments": [], "key": "cloudfront/cf-wildcard-invalidation-clears-only-matching-objects", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidation", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_cf_wildcard_invalidation_clears_only_matching_objects.py", "service": "cloudfront"} {"check_id": "cloudfront.cfcache-conditional-get-304-only-for-the-matching-etag", "deployments": [], "key": "cloudfront/cfcache-conditional-get-304-only-for-the-matching-etag", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cfcache_conditional_get_304_only_for_the_matching_etag.py", "service": "cloudfront"} {"check_id": "cloudfront.cfcache-cookie-allowlist-separates-cache-entries", "deployments": [], "key": "cloudfront/cfcache-cookie-allowlist-separates-cache-entries", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cfcache_cookie_allowlist_separates_cache_entries.py", "service": "cloudfront"} {"check_id": "cloudfront.cfcache-min-ttl-floors-origin-no-cache-directive", "deployments": [], "key": "cloudfront/cfcache-min-ttl-floors-origin-no-cache-directive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cfcache_min_ttl_floors_origin_no_cache_directive.py", "service": "cloudfront"} {"check_id": "cloudfront.cfcache-range-beyond-object-rejected-and-partial-served-from-cache", "deployments": [], "key": "cloudfront/cfcache-range-beyond-object-rejected-and-partial-served-from-cache", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_cfcache_range_beyond_object_rejected_and_partial_served_from_cache.py", "service": "cloudfront"} {"check_id": "cloudfront.cloudfront-oai-delete-stale-etag-rejected", "deployments": [], "key": "cloudfront/cloudfront-oai-delete-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:UpdateCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_cloudfront_oai_delete_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.cloudfront-oai-lifecycle", "deployments": [], "key": "cloudfront/cloudfront-oai-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentityConfig", "cloudfront:UpdateCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_cloudfront_oai_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.concurrent-associate-disassociate-web-acl-race-consistent", "deployments": [], "key": "cloudfront/concurrent-associate-disassociate-web-acl-race-consistent", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_concurrent_associate_disassociate_web_acl_race_consistent.py", "service": "cloudfront"} {"check_id": "cloudfront.concurrent-associate-web-acl-race", "deployments": [], "key": "cloudfront/concurrent-associate-web-acl-race", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_concurrent_associate_web_acl_race.py", "service": "cloudfront"} {"check_id": "cloudfront.concurrent-create-cache-policy-same-name", "deployments": [], "key": "cloudfront/concurrent-create-cache-policy-same-name", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:ListCachePolicies"], "path": "behavioral/cloudfront/check_concurrent_create_cache_policy_same_name.py", "service": "cloudfront"} {"check_id": "cloudfront.concurrent-distribution-tenant-update-delete-race", "deployments": [], "key": "cloudfront/concurrent-distribution-tenant-update-delete-race", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_concurrent_distribution_tenant_update_delete_race.py", "service": "cloudfront"} {"check_id": "cloudfront.concurrent-distribution-updates-single-winner", "deployments": [], "key": "cloudfront/concurrent-distribution-updates-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_concurrent_distribution_updates_single_winner.py", "service": "cloudfront"} {"check_id": "cloudfront.concurrent-invalidation-caller-reference-dedup", "deployments": [], "key": "cloudfront/concurrent-invalidation-caller-reference-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_concurrent_invalidation_caller_reference_dedup.py", "service": "cloudfront"} {"check_id": "cloudfront.concurrent-update-key-group-conflicting-etag", "deployments": [], "key": "cloudfront/concurrent-update-key-group-conflicting-etag", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:UpdateKeyGroup"], "path": "behavioral/cloudfront/check_concurrent_update_key_group_conflicting_etag.py", "service": "cloudfront"} {"check_id": "cloudfront.concurrent-update-origin-request-policy-single-winner", "deployments": [], "key": "cloudfront/concurrent-update-origin-request-policy-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:UpdateOriginRequestPolicy"], "path": "behavioral/cloudfront/check_concurrent_update_origin_request_policy_single_winner.py", "service": "cloudfront"} {"check_id": "cloudfront.connection-function-lifecycle", "deployments": [], "key": "cloudfront/connection-function-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionFunction", "cloudfront:DeleteConnectionFunction", "cloudfront:DescribeConnectionFunction", "cloudfront:GetConnectionFunction", "cloudfront:PublishConnectionFunction", "cloudfront:TestConnectionFunction", "cloudfront:UpdateConnectionFunction"], "path": "behavioral/cloudfront/check_connection_function_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.connection-group-delete-enabled-rejected", "deployments": [], "key": "cloudfront/connection-group-delete-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:DeleteConnectionGroup", "cloudfront:GetConnectionGroup", "cloudfront:UpdateConnectionGroup"], "path": "behavioral/cloudfront/check_connection_group_delete_enabled_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.connection-group-lifecycle", "deployments": [], "key": "cloudfront/connection-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:DeleteConnectionGroup", "cloudfront:GetConnectionGroup", "cloudfront:GetConnectionGroupByRoutingEndpoint", "cloudfront:ListConnectionGroups", "cloudfront:UpdateConnectionGroup"], "path": "behavioral/cloudfront/check_connection_group_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.continuous-deployment-policy-lifecycle", "deployments": [], "key": "cloudfront/continuous-deployment-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CopyDistribution", "cloudfront:CreateContinuousDeploymentPolicy", "cloudfront:CreateDistribution", "cloudfront:DeleteContinuousDeploymentPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetContinuousDeploymentPolicy", "cloudfront:GetContinuousDeploymentPolicyConfig", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListContinuousDeploymentPolicies", "cloudfront:UpdateContinuousDeploymentPolicy", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/cloudfront/check_continuous_deployment_policy_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.copy-distribution-independent-clone", "deployments": [], "key": "cloudfront/copy-distribution-independent-clone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CopyDistribution", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudfront/check_copy_distribution_independent_clone.py", "service": "cloudfront"} {"check_id": "cloudfront.copy-distribution-lifecycle", "deployments": [], "key": "cloudfront/copy-distribution-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CopyDistribution", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_copy_distribution_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.create_cache_policy_duplicate_name_rejected", "deployments": [], "key": "cloudfront/create_cache_policy_duplicate_name_rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:ListCachePolicies"], "path": "behavioral/cloudfront/check_create_cache_policy_duplicate_name_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.create-invalidation-for-tenant-batch-too-large-fails", "deployments": [], "key": "cloudfront/create-invalidation-for-tenant-batch-too-large-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListInvalidationsForDistributionTenant", "cloudfront:TagResource", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_create_invalidation_for_tenant_batch_too_large_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.create-invalidation-for-tenant-batch-too-large-rejected", "deployments": [], "key": "cloudfront/create-invalidation-for-tenant-batch-too-large-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListInvalidationsForDistributionTenant", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_create_invalidation_for_tenant_batch_too_large_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.create-trust-store-invalid-bundle-fails", "deployments": [], "key": "cloudfront/create-trust-store-invalid-bundle-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateTrustStore", "cloudfront:DeleteTrustStore", "cloudfront:GetTrustStore", "cloudfront:ListTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_create_trust_store_invalid_bundle_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.custom-error-response-rewrites-status-and-caches-for-error-caching-min-ttl", "deployments": [], "key": "cloudfront/custom-error-response-rewrites-status-and-caches-for-error-caching-min-ttl", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_custom_error_response_rewrites_status_and_caches_for_error_caching_min_ttl.py", "service": "cloudfront"} {"check_id": "cloudfront.deep-cloudfront-1-cf-edge-fn-kvs-put-key-serves-new-value", "deployments": [], "key": "cloudfront/deep-cloudfront-1-cf-edge-fn-kvs-put-key-serves-new-value", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateFunction", "cloudfront:CreateKeyValueStore", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteFunction", "cloudfront:DeleteKeyValueStore", "cloudfront:DeleteOriginAccessControl", "cloudfront:DescribeFunction", "cloudfront:DescribeKeyValueStore", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:PublishFunction", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_deep_cloudfront_1_cf_edge_fn_kvs_put_key_serves_new_value.py", "service": "cloudfront"} {"check_id": "cloudfront.deep-cloudfront-1-cf-edge-fn-lambda-edge-unqualified-arn-rejected", "deployments": [], "key": "cloudfront/deep-cloudfront-1-cf-edge-fn-lambda-edge-unqualified-arn-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateFunction", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteFunction", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:PublishVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_deep_cloudfront_1_cf_edge_fn_lambda_edge_unqualified_arn_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.deep-cloudfront-1-cf-edge-fn-throw-yields-503-rejected", "deployments": [], "key": "cloudfront/deep-cloudfront-1-cf-edge-fn-throw-yields-503-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateFunction", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteFunction", "cloudfront:DeleteOriginAccessControl", "cloudfront:DescribeFunction", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:PublishFunction", "cloudfront:TestFunction", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_deep_cloudfront_1_cf_edge_fn_throw_yields_503_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.deep-cloudfront-1-cf-edge-fn-viewer-request-rewrite", "deployments": [], "key": "cloudfront/deep-cloudfront-1-cf-edge-fn-viewer-request-rewrite", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateFunction", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteFunction", "cloudfront:DeleteOriginAccessControl", "cloudfront:DescribeFunction", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:PublishFunction", "cloudfront:TestFunction", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_deep_cloudfront_1_cf_edge_fn_viewer_request_rewrite.py", "service": "cloudfront"} {"check_id": "cloudfront.deep-cloudfront-1-cf-edge-fn-viewer-response-header", "deployments": [], "key": "cloudfront/deep-cloudfront-1-cf-edge-fn-viewer-response-header", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateFunction", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteFunction", "cloudfront:DeleteOriginAccessControl", "cloudfront:DescribeFunction", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:PublishFunction", "cloudfront:TestFunction", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_deep_cloudfront_1_cf_edge_fn_viewer_response_header.py", "service": "cloudfront"} {"check_id": "cloudfront.delete-distribution-tenant-in-use-connection-group-fails", "deployments": [], "key": "cloudfront/delete-distribution-tenant-in-use-connection-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:TagResource", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_delete_distribution_tenant_in_use_connection_group_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.delete-distribution-tenant-stale-etag-rejected", "deployments": [], "key": "cloudfront/delete-distribution-tenant-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_delete_distribution_tenant_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.delete-distribution-tenant-stale-version-rejected", "deployments": [], "key": "cloudfront/delete-distribution-tenant-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_delete_distribution_tenant_stale_version_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.delete-function-stale-etag-rejected", "deployments": [], "key": "cloudfront/delete-function-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction"], "path": "behavioral/cloudfront/check_delete_function_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.delete-managed-origin-request-policy-rejected", "deployments": [], "key": "cloudfront/delete-managed-origin-request-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:ListOriginRequestPolicies"], "path": "behavioral/cloudfront/check_delete_managed_origin_request_policy_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.delete_oai_stale_etag_rejected", "deployments": [], "key": "cloudfront/delete_oai_stale_etag_rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:UpdateCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_delete_oai_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.delete-public-key-in-use-by-key-group-fails", "deployments": [], "key": "cloudfront/delete-public-key-in-use-by-key-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetKeyGroupConfig", "cloudfront:GetPublicKey", "cloudfront:UpdateKeyGroup"], "path": "behavioral/cloudfront/check_delete_public_key_in_use_by_key_group_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.delete_public_key_in_use_rejected", "deployments": [], "key": "cloudfront/delete_public_key_in_use_rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetKeyGroupConfig", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_delete_public_key_in_use_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.delete-resource-policy-illegal-delete-rejected", "deployments": [], "key": "cloudfront/delete-resource-policy-illegal-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy"], "path": "behavioral/cloudfront/check_delete_resource_policy_illegal_delete_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.delete-resource-policy-in-use-illegal-delete-rejected", "deployments": [], "key": "cloudfront/delete-resource-policy-in-use-illegal-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:CreateVpcOrigin", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_delete_resource_policy_in_use_illegal_delete_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cache-policy-cfn-enforced-on-distribution", "deployments": [], "key": "cloudfront/deploy-cache-policy-cfn-enforced-on-distribution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetCachePolicyConfig", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/cloudfront/check_deploy_cache_policy_cfn_enforced_on_distribution.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cache-policy-cfn-ttl-enforced", "deployments": [], "key": "cloudfront/deploy-cache-policy-cfn-ttl-enforced", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudfront:GetCachePolicyConfig", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/cloudfront/check_deploy_cache_policy_cfn_ttl_enforced.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cache-policy-enforced-via-cloudformation", "deployments": [], "key": "cloudfront/deploy-cache-policy-enforced-via-cloudformation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudfront/check_deploy_cache_policy_enforced_via_cloudformation.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cloudfront-1-cache-policy-invalid-ttl-order-update-rejected-rolls-back", "deployments": [], "key": "cloudfront/deploy-cloudfront-1-cache-policy-invalid-ttl-order-update-rejected-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:GetCachePolicyConfig", "cloudfront:ListCachePolicies"], "path": "behavioral/cloudfront/check_deploy_cloudfront_1_cache_policy_invalid_ttl_order_update_rejected_rolls_back.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cloudfront-1-cache-policy-out-of-band-ttl-drift-detected-then-updated-in-place", "deployments": [], "key": "cloudfront/deploy-cloudfront-1-cache-policy-out-of-band-ttl-drift-detected-then-updated-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:UpdateStack", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:GetCachePolicyConfig", "cloudfront:ListCachePolicies", "cloudfront:UpdateCachePolicy"], "path": "behavioral/cloudfront/check_deploy_cloudfront_1_cache_policy_out_of_band_ttl_drift_detected_then_updated_in_place.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cloudfront-1-distribution-nonexistent-cache-policy-rejected-rolls-back", "deployments": [], "key": "cloudfront/deploy-cloudfront-1-distribution-nonexistent-cache-policy-rejected-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudfront:DeleteCachePolicy", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetCachePolicy", "cloudfront:GetOriginAccessControl", "cloudfront:ListCachePolicies", "cloudfront:ListOriginAccessControls"], "path": "behavioral/cloudfront/check_deploy_cloudfront_1_distribution_nonexistent_cache_policy_rejected_rolls_back.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cloudfront-2-function-autopublish-toggle-publishes-live", "deployments": [], "key": "cloudfront/deploy-cloudfront-2-function-autopublish-toggle-publishes-live", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudfront:DescribeFunction", "cloudfront:GetFunction", "cloudfront:TestFunction"], "path": "behavioral/cloudfront/check_deploy_cloudfront_2_function_autopublish_toggle_publishes_live.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cloudfront-2-function-kvs-rename-replaces-code-update-in-place", "deployments": [], "key": "cloudfront/deploy-cloudfront-2-function-kvs-rename-replaces-code-update-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudfront:DescribeFunction", "cloudfront:DescribeKeyValueStore", "cloudfront:GetFunction", "cloudfront:TestFunction", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_deploy_cloudfront_2_function_kvs_rename_replaces_code_update_in_place.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cloudfront-2-function-second-kvs-association-rejected", "deployments": [], "key": "cloudfront/deploy-cloudfront-2-function-second-kvs-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeFunction", "cloudfront:DescribeKeyValueStore", "cloudfront:TestFunction", "cloudfront:UpdateFunction"], "path": "behavioral/cloudfront/check_deploy_cloudfront_2_function_second_kvs_association_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-cloudfront-distribution-serves-origin-content", "deployments": [], "key": "cloudfront/deploy-cloudfront-distribution-serves-origin-content", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudfront/check_deploy_cloudfront_distribution_serves_origin_content.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-distribution-cfn-serves-live-content", "deployments": [], "key": "cloudfront/deploy-distribution-cfn-serves-live-content", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/cloudfront/check_deploy_distribution_cfn_serves_live_content.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-distribution-cfn-serves-live-traffic", "deployments": [], "key": "cloudfront/deploy-distribution-cfn-serves-live-traffic", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/cloudfront/check_deploy_distribution_cfn_serves_live_traffic.py", "service": "cloudfront"} {"check_id": "cloudfront.deploy-distribution-serves-content-via-cloudformation", "deployments": [], "key": "cloudfront/deploy-distribution-serves-content-via-cloudformation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudfront:GetDistribution", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudfront/check_deploy_distribution_serves_content_via_cloudformation.py", "service": "cloudfront"} {"check_id": "cloudfront.disassociate-distribution-tenant-web-acl-no-association-invalid-argument-rejected", "deployments": [], "key": "cloudfront/disassociate-distribution-tenant-web-acl-no-association-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateConnectionGroup", "cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:DisassociateDistributionTenantWebACL", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_disassociate_distribution_tenant_web_acl_no_association_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.disassociate-distribution-web-acl-no-association-invalid-argument-rejected", "deployments": [], "key": "cloudfront/disassociate-distribution-web-acl-no-association-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_disassociate_distribution_web_acl_no_association_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.disassociate-tenant-web-acl-when-none-associated-invalid-argument", "deployments": [], "key": "cloudfront/disassociate-tenant-web-acl-when-none-associated-invalid-argument", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:DisassociateDistributionTenantWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_disassociate_tenant_web_acl_when_none_associated_invalid_argument.py", "service": "cloudfront"} {"check_id": "cloudfront.disassociate-web-acl-invalid-argument-rejected", "deployments": [], "key": "cloudfront/disassociate-web-acl-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:TagResource"], "path": "behavioral/cloudfront/check_disassociate_web_acl_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.disassociate-web-acl-when-none-associated-invalid-argument", "deployments": [], "key": "cloudfront/disassociate-web-acl-when-none-associated-invalid-argument", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_disassociate_web_acl_when_none_associated_invalid_argument.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-cache-behavior-order-preserved", "deployments": [], "key": "cloudfront/distribution-cache-behavior-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_cache_behavior_order_preserved.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-caller-reference-change-rejected", "deployments": [], "key": "cloudfront/distribution-caller-reference-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_caller_reference_change_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-caller-reference-replay-is-idempotent", "deployments": [], "key": "cloudfront/distribution-caller-reference-replay-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_caller_reference_replay_is_idempotent.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-config-defaults-materialized", "deployments": [], "key": "cloudfront/distribution-config-defaults-materialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_config_defaults_materialized.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-create-deploy-lifecycle", "deployments": [], "key": "cloudfront/distribution-create-deploy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_create_deploy_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-delete-while-enabled-rejected", "deployments": [], "key": "cloudfront/distribution-delete-while-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_delete_while_enabled_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-delete-without-disabling-rejected", "deployments": [], "key": "cloudfront/distribution-delete-without-disabling-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_delete_without_disabling_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-disable-then-delete-removes-resource", "deployments": [], "key": "cloudfront/distribution-disable-then-delete-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_disable_then_delete_removes_resource.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-duplicate-caller-reference-conflict", "deployments": [], "key": "cloudfront/distribution-duplicate-caller-reference-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_duplicate_caller_reference_conflict.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-field-level-encryption-association", "deployments": [], "key": "cloudfront/distribution-field-level-encryption-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteDistribution", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetFieldLevelEncryptionConfig", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_field_level_encryption_association.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-forwarded-values-with-cache-policy-rejected", "deployments": [], "key": "cloudfront/distribution-forwarded-values-with-cache-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_forwarded_values_with_cache_policy_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-get-nonexistent-not-found", "deployments": [], "key": "cloudfront/distribution-get-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_get_nonexistent_not_found.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-get-vs-get-config-shape-parity", "deployments": [], "key": "cloudfront/distribution-get-vs-get-config-shape-parity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_get_vs_get_config_shape_parity.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-if-match-omitted-rejected", "deployments": [], "key": "cloudfront/distribution-if-match-omitted-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_if_match_omitted_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-invalid-target-origin-rejected", "deployments": [], "key": "cloudfront/distribution-invalid-target-origin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListDistributions"], "path": "behavioral/cloudfront/check_distribution_invalid_target_origin_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-origin-group-failover-round-trip", "deployments": [], "key": "cloudfront/distribution-origin-group-failover-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_origin_group_failover_round_trip.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-staging-config-promotion", "deployments": [], "key": "cloudfront/distribution-staging-config-promotion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CopyDistribution", "cloudfront:CreateContinuousDeploymentPolicy", "cloudfront:CreateDistribution", "cloudfront:DeleteContinuousDeploymentPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetContinuousDeploymentPolicyConfig", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionWithStagingConfig", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/cloudfront/check_distribution_staging_config_promotion.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tag-untag-lifecycle", "deployments": [], "key": "cloudfront/distribution-tag-untag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListTagsForResource", "cloudfront:TagResource", "cloudfront:UntagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_tag_untag_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tenant-customization-unicode-domain-preserved", "deployments": [], "key": "cloudfront/distribution-tenant-customization-unicode-domain-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_distribution_tenant_customization_unicode_domain_preserved.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tenant-delete-stale-etag-rejected", "deployments": [], "key": "cloudfront/distribution-tenant-delete-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_distribution_tenant_delete_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tenant-invalidation-status-transitions", "deployments": [], "key": "cloudfront/distribution-tenant-invalidation-status-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetInvalidationForDistributionTenant", "cloudfront:ListInvalidationsForDistributionTenant", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_distribution_tenant_invalidation_status_transitions.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tenant-lifecycle", "deployments": [], "key": "cloudfront/distribution-tenant-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetDistributionTenantByDomain", "cloudfront:ListDistributionTenants", "cloudfront:ListDistributionTenantsByCustomization", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_distribution_tenant_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tenant-unicode-customization-round-trip", "deployments": [], "key": "cloudfront/distribution-tenant-unicode-customization-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionTenant", "cloudfront:ListTagsForResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/cloudfront/check_distribution_tenant_unicode_customization_round_trip.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tenant-web-acl-association-entity-not-found-rejected", "deployments": [], "key": "cloudfront/distribution-tenant-web-acl-association-entity-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_distribution_tenant_web_acl_association_entity_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tenant-web-acl-association-lifecycle", "deployments": [], "key": "cloudfront/distribution-tenant-web-acl-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateConnectionGroup", "cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:DisassociateDistributionTenantWebACL", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_distribution_tenant_web_acl_association_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-tenant-web-acl-association-toggles-state", "deployments": [], "key": "cloudfront/distribution-tenant-web-acl-association-toggles-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:DisassociateDistributionTenantWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_distribution_tenant_web_acl_association_toggles_state.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-trusted-key-group-validation-rejected", "deployments": [], "key": "cloudfront/distribution-trusted-key-group-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteDistribution", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_trusted_key_group_validation_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-update-malformed-etag-invalid", "deployments": [], "key": "cloudfront/distribution-update-malformed-etag-invalid", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_update_malformed_etag_invalid.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-update-persists-config", "deployments": [], "key": "cloudfront/distribution-update-persists-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_update_persists_config.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-update-stale-etag-precondition-failed", "deployments": [], "key": "cloudfront/distribution-update-stale-etag-precondition-failed", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_update_stale_etag_precondition_failed.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-web-acl-association-toggles-state", "deployments": [], "key": "cloudfront/distribution-web-acl-association-toggles-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_distribution_web_acl_association_toggles_state.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-web-acl-disassociate-no-association-rejected", "deployments": [], "key": "cloudfront/distribution-web-acl-disassociate-no-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_distribution_web_acl_disassociate_no_association_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.distribution-with-tags-lifecycle", "deployments": [], "key": "cloudfront/distribution-with-tags-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListTagsForResource", "cloudfront:TagResource", "cloudfront:UntagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_distribution_with_tags_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.domain-conflict-detection-flow", "deployments": [], "key": "cloudfront/domain-conflict-detection-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionTenant", "cloudfront:ListDomainConflicts", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_domain_conflict_detection_flow.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-distribution-invalidation-cache-refresh", "deployments": [], "key": "cloudfront/e2e-distribution-invalidation-cache-refresh", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteCachePolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetCachePolicy", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/cloudfront/check_e2e_distribution_invalidation_cache_refresh.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-distribution-tenant-invalidation-scoped-to-tenant", "deployments": [], "key": "cloudfront/e2e-distribution-tenant-invalidation-scoped-to-tenant", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetInvalidationForDistributionTenant", "cloudfront:ListInvalidationsForDistributionTenant", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_e2e_distribution_tenant_invalidation_scoped_to_tenant.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-distribution-tenant-webacl-invalidation-flow", "deployments": [], "key": "cloudfront/e2e-distribution-tenant-webacl-invalidation-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetInvalidationForDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_e2e_distribution_tenant_webacl_invalidation_flow.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-distribution-webacl-association-blocks-request", "deployments": [], "key": "cloudfront/e2e-distribution-webacl-association-blocks-request", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_e2e_distribution_webacl_association_blocks_request.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-invalidation-clears-cached-content", "deployments": [], "key": "cloudfront/e2e-invalidation-clears-cached-content", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetInvalidation", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_e2e_invalidation_clears_cached_content.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-invalidation-clears-cached-object", "deployments": [], "key": "cloudfront/e2e-invalidation-clears-cached-object", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteCachePolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetCachePolicy", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/cloudfront/check_e2e_invalidation_clears_cached_object.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-invalidation-refreshes-stale-cached-object", "deployments": [], "key": "cloudfront/e2e-invalidation-refreshes-stale-cached-object", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidation", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/cloudfront/check_e2e_invalidation_refreshes_stale_cached_object.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-resource-policy-grants-and-revokes-cross-account-access", "deployments": [], "key": "cloudfront/e2e-resource-policy-grants-and-revokes-cross-account-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_e2e_resource_policy_grants_and_revokes_cross_account_access.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-web-acl-association-changes-distribution-behavior", "deployments": [], "key": "cloudfront/e2e-web-acl-association-changes-distribution-behavior", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_e2e_web_acl_association_changes_distribution_behavior.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-webacl-association-blocks-then-unblocks-requests", "deployments": [], "key": "cloudfront/e2e-webacl-association-blocks-then-unblocks-requests", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "s3:PutPublicAccessBlock", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_e2e_webacl_association_blocks_then_unblocks_requests.py", "service": "cloudfront"} {"check_id": "cloudfront.e2e-webacl-regional-scope-association-rejected", "deployments": [], "key": "cloudfront/e2e-webacl-regional-scope-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_e2e_webacl_regional_scope_association_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.edge-requests-deliver-requests-metric-with-global-dimension", "deployments": [], "key": "cloudfront/edge-requests-deliver-requests-metric-with-global-dimension", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateMonitoringSubscription", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteMonitoringSubscription", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetMonitoringSubscription", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_edge_requests_deliver_requests_metric_with_global_dimension.py", "service": "cloudfront"} {"check_id": "cloudfront.field-level-encryption-config-delete-stale-etag-rejected", "deployments": [], "key": "cloudfront/field-level-encryption-config-delete-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionConfig", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey", "cloudfront:UpdateFieldLevelEncryptionConfig"], "path": "behavioral/cloudfront/check_field_level_encryption_config_delete_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.field-level-encryption-config-inconsistent-quantities-rejected", "deployments": [], "key": "cloudfront/field-level-encryption-config-inconsistent-quantities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionConfig", "cloudfront:GetFieldLevelEncryptionProfileConfig", "cloudfront:GetPublicKey", "cloudfront:ListFieldLevelEncryptionConfigs"], "path": "behavioral/cloudfront/check_field_level_encryption_config_inconsistent_quantities_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.field-level-encryption-config-lifecycle", "deployments": [], "key": "cloudfront/field-level-encryption-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryption", "cloudfront:GetFieldLevelEncryptionConfig", "cloudfront:GetFieldLevelEncryptionProfileConfig", "cloudfront:GetPublicKey", "cloudfront:ListFieldLevelEncryptionConfigs", "cloudfront:UpdateFieldLevelEncryptionConfig"], "path": "behavioral/cloudfront/check_field_level_encryption_config_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.field-level-encryption-profile-delete-in-use-rejected", "deployments": [], "key": "cloudfront/field-level-encryption-profile-delete-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionConfig", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetFieldLevelEncryptionProfileConfig", "cloudfront:GetPublicKeyConfig"], "path": "behavioral/cloudfront/check_field_level_encryption_profile_delete_in_use_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.field-level-encryption-profile-in-use-delete-fails", "deployments": [], "key": "cloudfront/field-level-encryption-profile-in-use-delete-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:GetFieldLevelEncryptionConfig", "cloudfront:GetFieldLevelEncryptionProfile"], "path": "behavioral/cloudfront/check_field_level_encryption_profile_in_use_delete_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.field-level-encryption-profile-lifecycle", "deployments": [], "key": "cloudfront/field-level-encryption-profile-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetFieldLevelEncryptionProfileConfig", "cloudfront:GetPublicKey", "cloudfront:ListFieldLevelEncryptionProfiles", "cloudfront:UpdateFieldLevelEncryptionProfile"], "path": "behavioral/cloudfront/check_field_level_encryption_profile_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.function-association-requires-published-stage-rejected", "deployments": [], "key": "cloudfront/function-association-requires-published-stage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateFunction", "cloudfront:DeleteDistribution", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:PublishFunction", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_function_association_requires_published_stage_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.function-delete-stale-etag-fails", "deployments": [], "key": "cloudfront/function-delete-stale-etag-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction"], "path": "behavioral/cloudfront/check_function_delete_stale_etag_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.function-development-to-live-publish-lifecycle", "deployments": [], "key": "cloudfront/function-development-to-live-publish-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:PublishFunction", "cloudfront:TestFunction"], "path": "behavioral/cloudfront/check_function_development_to_live_publish_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.function-duplicate-name-conflict", "deployments": [], "key": "cloudfront/function-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:GetFunction"], "path": "behavioral/cloudfront/check_function_duplicate_name_conflict.py", "service": "cloudfront"} {"check_id": "cloudfront.function-live-stage-isolated-from-development-edits", "deployments": [], "key": "cloudfront/function-live-stage-isolated-from-development-edits", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:GetFunction", "cloudfront:PublishFunction", "cloudfront:UpdateFunction"], "path": "behavioral/cloudfront/check_function_live_stage_isolated_from_development_edits.py", "service": "cloudfront"} {"check_id": "cloudfront.function-update-requires-current-etag", "deployments": [], "key": "cloudfront/function-update-requires-current-etag", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:UpdateFunction"], "path": "behavioral/cloudfront/check_function_update_requires_current_etag.py", "service": "cloudfront"} {"check_id": "cloudfront.get-anycast-ip-list-invalid-argument-rejected", "deployments": [], "key": "cloudfront/get-anycast-ip-list-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:GetAnycastIpList", "cloudfront:ListAnycastIpLists"], "path": "behavioral/cloudfront/check_get_anycast_ip_list_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-anycast-ip-list-malformed-id-invalid-argument-rejected", "deployments": [], "key": "cloudfront/get-anycast-ip-list-malformed-id-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:GetAnycastIpList", "cloudfront:ListAnycastIpLists"], "path": "behavioral/cloudfront/check_get_anycast_ip_list_malformed_id_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-cache-policy-config-round-trip", "deployments": [], "key": "cloudfront/get-cache-policy-config-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:GetCachePolicyConfig"], "path": "behavioral/cloudfront/check_get_cache_policy_config_round_trip.py", "service": "cloudfront"} {"check_id": "cloudfront.get-distribution-tenant-by-domain-malformed-domain-invalid-argument-rejected", "deployments": [], "key": "cloudfront/get-distribution-tenant-by-domain-malformed-domain-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetDistributionTenantByDomain", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_get_distribution_tenant_by_domain_malformed_domain_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-distribution-tenant-by-domain-not-found-fails", "deployments": [], "key": "cloudfront/get-distribution-tenant-by-domain-not-found-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:GetDistributionTenantByDomain"], "path": "behavioral/cloudfront/check_get_distribution_tenant_by_domain_not_found_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.get-field-level-encryption-profile-type-confusion-rejected", "deployments": [], "key": "cloudfront/get-field-level-encryption-profile-type-confusion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreatePublicKey", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_get_field_level_encryption_profile_type_confusion_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-function-stage-mismatch-rejected", "deployments": [], "key": "cloudfront/get-function-stage-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:GetFunction", "cloudfront:PublishFunction"], "path": "behavioral/cloudfront/check_get_function_stage_mismatch_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-key-group-cross-resource-id-rejected", "deployments": [], "key": "cloudfront/get-key-group-cross-resource-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_get_key_group_cross_resource_id_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-managed-certificate-details-nonexistent-rejected", "deployments": [], "key": "cloudfront/get-managed-certificate-details-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetManagedCertificateDetails", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_get_managed_certificate_details_nonexistent_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-managed-certificate-details-round-trip", "deployments": [], "key": "cloudfront/get-managed-certificate-details-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetDistributionTenantByDomain", "cloudfront:GetManagedCertificateDetails", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_get_managed_certificate_details_round_trip.py", "service": "cloudfront"} {"check_id": "cloudfront.get-origin-access-control-config-nonexistent-rejected", "deployments": [], "key": "cloudfront/get-origin-access-control-config-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl", "cloudfront:GetOriginAccessControlConfig"], "path": "behavioral/cloudfront/check_get_origin_access_control_config_nonexistent_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-origin-access-control-config-round-trip", "deployments": [], "key": "cloudfront/get-origin-access-control-config-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl", "cloudfront:GetOriginAccessControlConfig"], "path": "behavioral/cloudfront/check_get_origin_access_control_config_round_trip.py", "service": "cloudfront"} {"check_id": "cloudfront.get-origin-request-policy-config-empty-vs-absent-lists-preserved", "deployments": [], "key": "cloudfront/get-origin-request-policy-config-empty-vs-absent-lists-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:GetOriginRequestPolicyConfig"], "path": "behavioral/cloudfront/check_get_origin_request_policy_config_empty_vs_absent_lists_preserved.py", "service": "cloudfront"} {"check_id": "cloudfront.get-origin-request-policy-config-nonexistent-rejected", "deployments": [], "key": "cloudfront/get-origin-request-policy-config-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:GetOriginRequestPolicyConfig"], "path": "behavioral/cloudfront/check_get_origin_request_policy_config_nonexistent_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-resource-policy-invalid-argument-rejected", "deployments": [], "key": "cloudfront/get-resource-policy-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_get_resource_policy_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.get-resource-policy-nonexistent-entity-not-found", "deployments": [], "key": "cloudfront/get-resource-policy-nonexistent-entity-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_get_resource_policy_nonexistent_entity_not_found.py", "service": "cloudfront"} {"check_id": "cloudfront.https-only-and-disallowed-method-rejected-at-edge", "deployments": [], "key": "cloudfront/https-only-and-disallowed-method-rejected-at-edge", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_https_only_and_disallowed_method_rejected_at_edge.py", "service": "cloudfront"} {"check_id": "cloudfront.invalidation-for-tenant-lifecycle", "deployments": [], "key": "cloudfront/invalidation-for-tenant-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ListCertificates", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetInvalidationForDistributionTenant", "cloudfront:ListInvalidationsForDistributionTenant", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_invalidation_for_tenant_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.invalidation-idempotent-same-batch-returns-same-id", "deployments": [], "key": "cloudfront/invalidation-idempotent-same-batch-returns-same-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListInvalidations", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_invalidation_idempotent_same_batch_returns_same_id.py", "service": "cloudfront"} {"check_id": "cloudfront.invalidation-lifecycle-completes", "deployments": [], "key": "cloudfront/invalidation-lifecycle-completes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidation", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_invalidation_lifecycle_completes.py", "service": "cloudfront"} {"check_id": "cloudfront.invalidation-list-ordering-most-recent-first", "deployments": [], "key": "cloudfront/invalidation-list-ordering-most-recent-first", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_invalidation_list_ordering_most_recent_first.py", "service": "cloudfront"} {"check_id": "cloudfront.key-group-duplicate-name-fails", "deployments": [], "key": "cloudfront/key-group-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:GetKeyGroup", "cloudfront:ListKeyGroups"], "path": "behavioral/cloudfront/check_key_group_duplicate_name_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.key-value-store-delete-in-use-by-function-fails", "deployments": [], "key": "cloudfront/key-value-store-delete-in-use-by-function-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteFunction", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeFunction", "cloudfront:DescribeKeyValueStore", "cloudfront:UpdateKeyValueStore"], "path": "behavioral/cloudfront/check_key_value_store_delete_in_use_by_function_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.key-value-store-lifecycle", "deployments": [], "key": "cloudfront/key-value-store-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "cloudfront:ListKeyValueStores", "cloudfront:UpdateKeyValueStore"], "path": "behavioral/cloudfront/check_key_value_store_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.key-value-store-update-stale-etag-rejected", "deployments": [], "key": "cloudfront/key-value-store-update-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "cloudfront:UpdateKeyValueStore"], "path": "behavioral/cloudfront/check_key_value_store_update_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-anycast-ip-lists-invalid-argument-malformed-marker-rejected", "deployments": [], "key": "cloudfront/list-anycast-ip-lists-invalid-argument-malformed-marker-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListAnycastIpLists"], "path": "behavioral/cloudfront/check_list_anycast_ip_lists_invalid_argument_malformed_marker_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-cloudfront-origin-access-identities-invalid-argument-rejected", "deployments": [], "key": "cloudfront/list-cloudfront-origin-access-identities-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListCloudFrontOriginAccessIdentities"], "path": "behavioral/cloudfront/check_list_cloudfront_origin_access_identities_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-conflicting-aliases-detects-overlap", "deployments": [], "key": "cloudfront/list-conflicting-aliases-detects-overlap", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution", "iam:DeleteServerCertificate", "iam:UploadServerCertificate"], "path": "behavioral/cloudfront/check_list_conflicting_aliases_detects_overlap.py", "service": "cloudfront"} {"check_id": "cloudfront.list-conflicting-aliases-nonexistent-distribution-rejected", "deployments": [], "key": "cloudfront/list-conflicting-aliases-nonexistent-distribution-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListConflictingAliases"], "path": "behavioral/cloudfront/check_list_conflicting_aliases_nonexistent_distribution_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-connection-functions-invalid-stage-malformed-xml-rejected", "deployments": [], "key": "cloudfront/list-connection-functions-invalid-stage-malformed-xml-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListConnectionFunctions", "cloudfront:ListDistributions"], "path": "behavioral/cloudfront/check_list_connection_functions_invalid_stage_malformed_xml_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-connection-functions-invalid-stage-rejected-valid-stage-succeeds", "deployments": [], "key": "cloudfront/list-connection-functions-invalid-stage-rejected-valid-stage-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListConnectionFunctions"], "path": "behavioral/cloudfront/check_list_connection_functions_invalid_stage_rejected_valid_stage_succeeds.py", "service": "cloudfront"} {"check_id": "cloudfront.list-connection-functions-reflects-created-function", "deployments": [], "key": "cloudfront/list-connection-functions-reflects-created-function", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionFunction", "cloudfront:DeleteConnectionFunction", "cloudfront:DescribeConnectionFunction", "cloudfront:ListConnectionFunctions"], "path": "behavioral/cloudfront/check_list_connection_functions_reflects_created_function.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distribution-tenants-by-customization-filter", "deployments": [], "key": "cloudfront/list-distribution-tenants-by-customization-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListDistributionTenantsByCustomization", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_list_distribution_tenants_by_customization_filter.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distribution-tenants-by-customization-filters-correctly", "deployments": [], "key": "cloudfront/list-distribution-tenants-by-customization-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListDistributionTenantsByCustomization", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_list_distribution_tenants_by_customization_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distribution-tenants-entity-not-found-for-invalid-connection-group", "deployments": [], "key": "cloudfront/list-distribution-tenants-entity-not-found-for-invalid-connection-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:DeleteConnectionGroup", "cloudfront:GetConnectionGroup", "cloudfront:ListDistributionTenants", "cloudfront:UpdateConnectionGroup"], "path": "behavioral/cloudfront/check_list_distribution_tenants_entity_not_found_for_invalid_connection_group.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distribution-tenants-pagination-consistent-ordering", "deployments": [], "key": "cloudfront/list-distribution-tenants-pagination-consistent-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListDistributionTenants", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_list_distribution_tenants_pagination_consistent_ordering.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distribution-tenants-pagination-stable-ordering", "deployments": [], "key": "cloudfront/list-distribution-tenants-pagination-stable-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionTenant", "cloudfront:ListDistributionTenants", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/cloudfront/check_list_distribution_tenants_pagination_stable_ordering.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distribution-tenants-reflects-created-tenants", "deployments": [], "key": "cloudfront/list-distribution-tenants-reflects-created-tenants", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListDistributionTenants", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_list_distribution_tenants_reflects_created_tenants.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-cache-policy-id-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-cache-policy-id-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:DeleteCachePolicy", "cloudfront:DeleteDistribution", "cloudfront:GetCachePolicy", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributionsByCachePolicyId", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_list_distributions_by_cache_policy_id_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-connection-function-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-connection-function-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionFunction", "cloudfront:CreateDistribution", "cloudfront:DeleteConnectionFunction", "cloudfront:DeleteDistribution", "cloudfront:GetConnectionFunction", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:PublishConnectionFunction", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_list_distributions_by_connection_function_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-connection-function-index-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-connection-function-index-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionFunction", "cloudfront:CreateDistribution", "cloudfront:DeleteConnectionFunction", "cloudfront:DeleteDistribution", "cloudfront:DescribeConnectionFunction", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributionsByConnectionFunction", "cloudfront:PublishConnectionFunction", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_list_distributions_by_connection_function_index_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-connection-mode-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-connection-mode-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_list_distributions_by_connection_mode_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-connection-mode-filters-tenant-vs-standalone", "deployments": [], "key": "cloudfront/list-distributions-by-connection-mode-filters-tenant-vs-standalone", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListDistributionsByConnectionMode"], "path": "behavioral/cloudfront/check_list_distributions_by_connection_mode_filters_tenant_vs_standalone.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-key-group-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-key-group-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteDistribution", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetDistribution", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:ListDistributionsByKeyGroup", "cloudfront:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_list_distributions_by_key_group_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-key-group-index-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-key-group-index-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteDistribution", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:ListDistributionsByKeyGroup", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_list_distributions_by_key_group_index_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-key-group-invalid-argument-rejected", "deployments": [], "key": "cloudfront/list-distributions-by-key-group-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:ListDistributionsByKeyGroup"], "path": "behavioral/cloudfront/check_list_distributions_by_key_group_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-origin-request-policy-id-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-origin-request-policy-id-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetDistribution", "cloudfront:GetOriginRequestPolicy", "cloudfront:ListDistributionsByOriginRequestPolicyId", "cloudfront:TagResource"], "path": "behavioral/cloudfront/check_list_distributions_by_origin_request_policy_id_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-origin-request-policy-id-index-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-origin-request-policy-id-index-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetDistribution", "cloudfront:GetOriginRequestPolicy", "cloudfront:ListDistributionsByOriginRequestPolicyId", "cloudfront:TagResource"], "path": "behavioral/cloudfront/check_list_distributions_by_origin_request_policy_id_index_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-owned-resource-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-owned-resource-filters-correctly", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListDistributionsByOwnedResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_list_distributions_by_owned_resource_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-owned-resource-index-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-owned-resource-index-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateVpcOrigin", "cloudfront:DeleteDistribution", "cloudfront:DeleteVpcOrigin", "cloudfront:GetDistribution", "cloudfront:GetVpcOrigin", "cloudfront:ListDistributionsByOwnedResource", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_list_distributions_by_owned_resource_index_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-owned-resource-not-found-rejected", "deployments": [], "key": "cloudfront/list-distributions-by-owned-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListDistributionsByOwnedResource", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_list_distributions_by_owned_resource_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-realtime-log-config-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-realtime-log-config-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteDistribution", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetDistribution", "cloudfront:ListDistributionsByRealtimeLogConfig", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_list_distributions_by_realtime_log_config_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-realtime-log-config-index-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-realtime-log-config-index-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteDistribution", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributionsByRealtimeLogConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:TagResource"], "path": "behavioral/cloudfront/check_list_distributions_by_realtime_log_config_index_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-realtime-log-config-invalid-argument-rejected", "deployments": [], "key": "cloudfront/list-distributions-by-realtime-log-config-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:ListDistributionsByRealtimeLogConfig", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/cloudfront/check_list_distributions_by_realtime_log_config_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-response-headers-policy-id-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-response-headers-policy-id-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetDistribution", "cloudfront:GetResponseHeadersPolicy", "cloudfront:ListDistributionsByResponseHeadersPolicyId"], "path": "behavioral/cloudfront/check_list_distributions_by_response_headers_policy_id_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-response-headers-policy-id-index-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-response-headers-policy-id-index-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetDistribution", "cloudfront:GetResponseHeadersPolicy", "cloudfront:ListDistributionsByResponseHeadersPolicyId", "cloudfront:TagResource"], "path": "behavioral/cloudfront/check_list_distributions_by_response_headers_policy_id_index_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-response-headers-policy-id-nosuch-rejected", "deployments": [], "key": "cloudfront/list-distributions-by-response-headers-policy-id-nosuch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetResponseHeadersPolicy", "cloudfront:ListDistributionsByResponseHeadersPolicyId"], "path": "behavioral/cloudfront/check_list_distributions_by_response_headers_policy_id_nosuch_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-trust-store-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-trust-store-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateTrustStore", "cloudfront:DeleteDistribution", "cloudfront:DeleteTrustStore", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetTrustStore", "cloudfront:ListDistributionsByTrustStore", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_list_distributions_by_trust_store_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-trust-store-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-trust-store-filters-correctly", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateTrustStore", "cloudfront:DeleteTrustStore", "cloudfront:GetTrustStore", "cloudfront:ListDistributionsByTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_list_distributions_by_trust_store_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-trust-store-index-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-trust-store-index-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateTrustStore", "cloudfront:DeleteTrustStore", "cloudfront:GetTrustStore", "cloudfront:ListDistributionsByTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_list_distributions_by_trust_store_index_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-vpc-origin-id-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-vpc-origin-id-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateVpcOrigin", "cloudfront:DeleteDistribution", "cloudfront:DeleteVpcOrigin", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetVpcOrigin", "cloudfront:ListDistributionsByVpcOriginId", "cloudfront:UpdateDistribution", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudfront/check_list_distributions_by_vpc_origin_id_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-vpc-origin-id-filters-correctly", "deployments": [], "key": "cloudfront/list-distributions-by-vpc-origin-id-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateVpcOrigin", "cloudfront:DeleteDistribution", "cloudfront:DeleteVpcOrigin", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetVpcOrigin", "cloudfront:UpdateDistribution", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudfront/check_list_distributions_by_vpc_origin_id_filters_correctly.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-vpc-origin-id-index-consistency", "deployments": [], "key": "cloudfront/list-distributions-by-vpc-origin-id-index-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateVpcOrigin", "cloudfront:DeleteDistribution", "cloudfront:DeleteVpcOrigin", "cloudfront:GetDistribution", "cloudfront:GetVpcOrigin", "cloudfront:ListDistributionsByVpcOriginId", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:RunInstances", "ec2:TerminateInstances", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_list_distributions_by_vpc_origin_id_index_consistency.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-web-acl-id-invalid-max-items-rejected", "deployments": [], "key": "cloudfront/list-distributions-by-web-acl-id-invalid-max-items-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListDistributionsByWebACLId", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_list_distributions_by_web_acl_id_invalid_max_items_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-web-acl-id-invalid-webacl-returns-empty", "deployments": [], "key": "cloudfront/list-distributions-by-web-acl-id-invalid-webacl-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:ListDistributionsByWebACLId"], "path": "behavioral/cloudfront/check_list_distributions_by_web_acl_id_invalid_webacl_returns_empty.py", "service": "cloudfront"} {"check_id": "cloudfront.list-distributions-by-web-acl-id-malformed-webacl-id-silently-accepted", "deployments": [], "key": "cloudfront/list-distributions-by-web-acl-id-malformed-webacl-id-silently-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:ListDistributionsByWebACLId"], "path": "behavioral/cloudfront/check_list_distributions_by_web_acl_id_malformed_webacl_id_silently_accepted.py", "service": "cloudfront"} {"check_id": "cloudfront.list-domain-conflicts-detects-collision", "deployments": [], "key": "cloudfront/list-domain-conflicts-detects-collision", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetDistributionTenantByDomain", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_list_domain_conflicts_detects_collision.py", "service": "cloudfront"} {"check_id": "cloudfront.list-domain-conflicts-invalid-argument-rejected", "deployments": [], "key": "cloudfront/list-domain-conflicts-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListDomainConflicts"], "path": "behavioral/cloudfront/check_list_domain_conflicts_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-functions-filters-by-stage", "deployments": [], "key": "cloudfront/list-functions-filters-by-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:ListFunctions", "cloudfront:PublishFunction"], "path": "behavioral/cloudfront/check_list_functions_filters_by_stage.py", "service": "cloudfront"} {"check_id": "cloudfront.list-functions-unsupported-operation-rejected", "deployments": [], "key": "cloudfront/list-functions-unsupported-operation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListFunctions"], "path": "behavioral/cloudfront/check_list_functions_unsupported_operation_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-invalidations-for-distribution-tenant-ordering-most-recent-first", "deployments": [], "key": "cloudfront/list-invalidations-for-distribution-tenant-ordering-most-recent-first", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListInvalidationsForDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_list_invalidations_for_distribution_tenant_ordering_most_recent_first.py", "service": "cloudfront"} {"check_id": "cloudfront.list-invalidations-for-tenant-most-recent-first", "deployments": [], "key": "cloudfront/list-invalidations-for-tenant-most-recent-first", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionTenant", "cloudfront:ListInvalidationsForDistributionTenant", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudfront/check_list_invalidations_for_tenant_most_recent_first.py", "service": "cloudfront"} {"check_id": "cloudfront.list-invalidations-pagination-and-completeness", "deployments": [], "key": "cloudfront/list-invalidations-pagination-and-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidation", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_list_invalidations_pagination_and_completeness.py", "service": "cloudfront"} {"check_id": "cloudfront.list-origin-access-controls-invalid-argument-rejected", "deployments": [], "key": "cloudfront/list-origin-access-controls-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListOriginAccessControls"], "path": "behavioral/cloudfront/check_list_origin_access_controls_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-origin-access-controls-pagination-contract-respects-marker", "deployments": [], "key": "cloudfront/list-origin-access-controls-pagination-contract-respects-marker", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl", "cloudfront:ListOriginAccessControls"], "path": "behavioral/cloudfront/check_list_origin_access_controls_pagination_contract_respects_marker.py", "service": "cloudfront"} {"check_id": "cloudfront.list-public-keys-invalid-marker-rejected", "deployments": [], "key": "cloudfront/list-public-keys-invalid-marker-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListPublicKeys"], "path": "behavioral/cloudfront/check_list_public_keys_invalid_marker_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-public-keys-pagination-contract-respects-marker", "deployments": [], "key": "cloudfront/list-public-keys-pagination-contract-respects-marker", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreatePublicKey", "cloudfront:DeletePublicKey", "cloudfront:GetPublicKey", "cloudfront:ListPublicKeys"], "path": "behavioral/cloudfront/check_list_public_keys_pagination_contract_respects_marker.py", "service": "cloudfront"} {"check_id": "cloudfront.list-public-keys-reflects-created-keys", "deployments": [], "key": "cloudfront/list-public-keys-reflects-created-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreatePublicKey", "cloudfront:DeletePublicKey", "cloudfront:GetPublicKey", "cloudfront:ListPublicKeys"], "path": "behavioral/cloudfront/check_list_public_keys_reflects_created_keys.py", "service": "cloudfront"} {"check_id": "cloudfront.list-streaming-distributions-invalid-argument-rejected", "deployments": [], "key": "cloudfront/list-streaming-distributions-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListStreamingDistributions"], "path": "behavioral/cloudfront/check_list_streaming_distributions_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.list-streaming-distributions-pagination-invalid-marker-rejected", "deployments": [], "key": "cloudfront/list-streaming-distributions-pagination-invalid-marker-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListStreamingDistributions"], "path": "behavioral/cloudfront/check_list_streaming_distributions_pagination_invalid_marker_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.managed-cache-policy-delete-rejected", "deployments": [], "key": "cloudfront/managed-cache-policy-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:ListCachePolicies"], "path": "behavioral/cloudfront/check_managed_cache_policy_delete_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.managed-certificate-details-not-found-rejected", "deployments": [], "key": "cloudfront/managed-certificate-details-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetManagedCertificateDetails", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_managed_certificate_details_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.managed-certificate-status-lifecycle-transitions", "deployments": [], "key": "cloudfront/managed-certificate-status-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetDistributionTenantByDomain", "cloudfront:GetManagedCertificateDetails", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_managed_certificate_status_lifecycle_transitions.py", "service": "cloudfront"} {"check_id": "cloudfront.managed-policy-catalog-lookup", "deployments": [], "key": "cloudfront/managed-policy-catalog-lookup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:GetCachePolicy", "cloudfront:GetCachePolicyConfig", "cloudfront:GetOriginRequestPolicy", "cloudfront:GetResponseHeadersPolicy"], "path": "behavioral/cloudfront/check_managed_policy_catalog_lookup.py", "service": "cloudfront"} {"check_id": "cloudfront.max-ttl-clamps-origin-cache-control-max-age", "deployments": [], "key": "cloudfront/max-ttl-clamps-origin-cache-control-max-age", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_max_ttl_clamps_origin_cache_control_max_age.py", "service": "cloudfront"} {"check_id": "cloudfront.monitoring-subscription-lifecycle", "deployments": [], "key": "cloudfront/monitoring-subscription-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateMonitoringSubscription", "cloudfront:DeleteDistribution", "cloudfront:DeleteMonitoringSubscription", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetMonitoringSubscription", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_monitoring_subscription_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.oac-create-update-delete-lifecycle", "deployments": [], "key": "cloudfront/oac-create-update-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateOriginAccessControl"], "path": "behavioral/cloudfront/check_oac_create_update_delete_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.oac-duplicate-name-fails", "deployments": [], "key": "cloudfront/oac-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl", "cloudfront:ListOriginAccessControls"], "path": "behavioral/cloudfront/check_oac_duplicate_name_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.oac-in-use-delete-rejected", "deployments": [], "key": "cloudfront/oac-in-use-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_oac_in_use_delete_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.oai-concurrent-update-conflict-rejected", "deployments": [], "key": "cloudfront/oai-concurrent-update-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:UpdateCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_oai_concurrent_update_conflict_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.oai-in-use-delete-fails", "deployments": [], "key": "cloudfront/oai-in-use-delete-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:CreateDistribution", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:DeleteDistribution", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_oai_in_use_delete_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-associate-alias", "deployments": [], "key": "cloudfront/op-contract-associate-alias", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateAlias", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig"], "path": "behavioral/cloudfront/check_op_contract_associate_alias.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-associate-distribution-tenant-web-acl", "deployments": [], "key": "cloudfront/op-contract-associate-distribution-tenant-web-acl", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionTenantWebACL", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_associate_distribution_tenant_web_acl.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-associate-distribution-web-acl", "deployments": [], "key": "cloudfront/op-contract-associate-distribution-web-acl", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_op_contract_associate_distribution_web_acl.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-copy-distribution", "deployments": [], "key": "cloudfront/op-contract-copy-distribution", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CopyDistribution", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution"], "path": "behavioral/cloudfront/check_op_contract_copy_distribution.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-cache-policy", "deployments": [], "key": "cloudfront/op-contract-create-cache-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicyConfig", "cloudfront:ListCachePolicies"], "path": "behavioral/cloudfront/check_op_contract_create_cache_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-cloudfront-origin-access-identity", "deployments": [], "key": "cloudfront/op-contract-create-cloudfront-origin-access-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:ListCloudFrontOriginAccessIdentities"], "path": "behavioral/cloudfront/check_op_contract_create_cloudfront_origin_access_identity.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-connection-function", "deployments": [], "key": "cloudfront/op-contract-create-connection-function", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionFunction", "cloudfront:DeleteConnectionFunction", "cloudfront:DescribeConnectionFunction"], "path": "behavioral/cloudfront/check_op_contract_create_connection_function.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-connection-group", "deployments": [], "key": "cloudfront/op-contract-create-connection-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:DeleteConnectionGroup", "cloudfront:GetConnectionGroup", "cloudfront:ListConnectionGroups"], "path": "behavioral/cloudfront/check_op_contract_create_connection_group.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-continuous-deployment-policy", "deployments": [], "key": "cloudfront/op-contract-create-continuous-deployment-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CopyDistribution", "cloudfront:CreateContinuousDeploymentPolicy", "cloudfront:CreateDistribution", "cloudfront:DeleteContinuousDeploymentPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetContinuousDeploymentPolicy", "cloudfront:GetContinuousDeploymentPolicyConfig", "cloudfront:GetDistribution", "cloudfront:ListContinuousDeploymentPolicies", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_create_continuous_deployment_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-distribution", "deployments": [], "key": "cloudfront/op-contract-create-distribution", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListDistributions", "cloudfront:TagResource"], "path": "behavioral/cloudfront/check_op_contract_create_distribution.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-distribution-tenant", "deployments": [], "key": "cloudfront/op-contract-create-distribution-tenant", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListDistributionTenants", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_create_distribution_tenant.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-distribution-with-tags", "deployments": [], "key": "cloudfront/op-contract-create-distribution-with-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListTagsForResource"], "path": "behavioral/cloudfront/check_op_contract_create_distribution_with_tags.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-field-level-encryption-config", "deployments": [], "key": "cloudfront/op-contract-create-field-level-encryption-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionConfig", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_create_field_level_encryption_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-create-field-level-encryption-profile", "deployments": [], "key": "cloudfront/op-contract-create-field-level-encryption-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_create_field_level_encryption_profile.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createFunction", "deployments": [], "key": "cloudfront/op-contract-createFunction", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:GetFunction", "cloudfront:TagResource"], "path": "behavioral/cloudfront/check_op_contract_create_function.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createInvalidation", "deployments": [], "key": "cloudfront/op-contract-createInvalidation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidation", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_create_invalidation.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createInvalidationForDistributionTenant", "deployments": [], "key": "cloudfront/op-contract-createInvalidationForDistributionTenant", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:CreateInvalidationForDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:GetInvalidationForDistributionTenant", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_create_invalidation_for_distribution_tenant.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createKeyGroup", "deployments": [], "key": "cloudfront/op-contract-createKeyGroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:ListKeyGroups"], "path": "behavioral/cloudfront/check_op_contract_create_key_group.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createKeyValueStore", "deployments": [], "key": "cloudfront/op-contract-createKeyValueStore", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "cloudfront:ListKeyValueStores"], "path": "behavioral/cloudfront/check_op_contract_create_key_value_store.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createMonitoringSubscription", "deployments": [], "key": "cloudfront/op-contract-createMonitoringSubscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateMonitoringSubscription", "cloudfront:DeleteDistribution", "cloudfront:DeleteMonitoringSubscription", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetMonitoringSubscription", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_create_monitoring_subscription.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createOriginAccessControl", "deployments": [], "key": "cloudfront/op-contract-createOriginAccessControl", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl"], "path": "behavioral/cloudfront/check_op_contract_create_origin_access_control.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createOriginRequestPolicy", "deployments": [], "key": "cloudfront/op-contract-createOriginRequestPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy"], "path": "behavioral/cloudfront/check_op_contract_create_origin_request_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createPublicKey", "deployments": [], "key": "cloudfront/op-contract-createPublicKey", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreatePublicKey", "cloudfront:DeletePublicKey", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_create_public_key.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createRealtimeLogConfig", "deployments": [], "key": "cloudfront/op-contract-createRealtimeLogConfig", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetRealtimeLogConfig", "cloudfront:UpdateRealtimeLogConfig", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_create_realtime_log_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createResponseHeadersPolicy", "deployments": [], "key": "cloudfront/op-contract-createResponseHeadersPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetResponseHeadersPolicy", "cloudfront:ListResponseHeadersPolicies"], "path": "behavioral/cloudfront/check_op_contract_create_response_headers_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createTrustStore", "deployments": [], "key": "cloudfront/op-contract-createTrustStore", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateTrustStore", "cloudfront:DeleteTrustStore", "cloudfront:GetTrustStore", "cloudfront:ListTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_op_contract_create_trust_store.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-createVpcOrigin", "deployments": [], "key": "cloudfront/op-contract-createVpcOrigin", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteVpcOrigin", "cloudfront:GetVpcOrigin", "cloudfront:ListVpcOrigins", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_create_vpc_origin.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteCachePolicy", "deployments": [], "key": "cloudfront/op-contract-deleteCachePolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy"], "path": "behavioral/cloudfront/check_op_contract_delete_cache_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteCloudFrontOriginAccessIdentity", "deployments": [], "key": "cloudfront/op-contract-deleteCloudFrontOriginAccessIdentity", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_op_contract_delete_cloud_front_origin_access_identity.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteConnectionFunction", "deployments": [], "key": "cloudfront/op-contract-deleteConnectionFunction", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionFunction", "cloudfront:DeleteConnectionFunction", "cloudfront:DescribeConnectionFunction"], "path": "behavioral/cloudfront/check_op_contract_delete_connection_function.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteContinuousDeploymentPolicy", "deployments": [], "key": "cloudfront/op-contract-deleteContinuousDeploymentPolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CopyDistribution", "cloudfront:CreateContinuousDeploymentPolicy", "cloudfront:CreateDistribution", "cloudfront:DeleteContinuousDeploymentPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetContinuousDeploymentPolicy", "cloudfront:GetDistribution", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_delete_continuous_deployment_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteDistribution", "deployments": [], "key": "cloudfront/op-contract-deleteDistribution", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_delete_distribution.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteDistributionTenant", "deployments": [], "key": "cloudfront/op-contract-deleteDistributionTenant", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_delete_distribution_tenant.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteFieldLevelEncryptionConfig", "deployments": [], "key": "cloudfront/op-contract-deleteFieldLevelEncryptionConfig", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryption", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_delete_field_level_encryption_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteFieldLevelEncryptionProfile", "deployments": [], "key": "cloudfront/op-contract-deleteFieldLevelEncryptionProfile", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_delete_field_level_encryption_profile.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteFunction", "deployments": [], "key": "cloudfront/op-contract-deleteFunction", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction"], "path": "behavioral/cloudfront/check_op_contract_delete_function.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteKeyGroup", "deployments": [], "key": "cloudfront/op-contract-deleteKeyGroup", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_delete_key_group.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteKeyValueStore", "deployments": [], "key": "cloudfront/op-contract-deleteKeyValueStore", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront/check_op_contract_delete_key_value_store.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteMonitoringSubscription", "deployments": [], "key": "cloudfront/op-contract-deleteMonitoringSubscription", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateMonitoringSubscription", "cloudfront:DeleteDistribution", "cloudfront:DeleteMonitoringSubscription", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetMonitoringSubscription", "cloudfront:TagResource", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_delete_monitoring_subscription.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteOriginAccessControl", "deployments": [], "key": "cloudfront/op-contract-deleteOriginAccessControl", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl"], "path": "behavioral/cloudfront/check_op_contract_delete_origin_access_control.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteOriginRequestPolicy", "deployments": [], "key": "cloudfront/op-contract-deleteOriginRequestPolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy"], "path": "behavioral/cloudfront/check_op_contract_delete_origin_request_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deletePublicKey", "deployments": [], "key": "cloudfront/op-contract-deletePublicKey", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetKeyGroupConfig", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_delete_public_key.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteRealtimeLogConfig", "deployments": [], "key": "cloudfront/op-contract-deleteRealtimeLogConfig", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetRealtimeLogConfig", "cloudfront:UpdateRealtimeLogConfig", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_delete_realtime_log_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteResourcePolicy", "deployments": [], "key": "cloudfront/op-contract-deleteResourcePolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DeleteResourcePolicy", "cloudfront:DescribeKeyValueStore", "cloudfront:GetResourcePolicy", "cloudfront:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_delete_resource_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteResponseHeadersPolicy", "deployments": [], "key": "cloudfront/op-contract-deleteResponseHeadersPolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetResponseHeadersPolicy"], "path": "behavioral/cloudfront/check_op_contract_delete_response_headers_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteTrustStore", "deployments": [], "key": "cloudfront/op-contract-deleteTrustStore", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateTrustStore", "cloudfront:DeleteTrustStore", "cloudfront:GetTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudfront/check_op_contract_delete_trust_store.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-deleteVpcOrigin", "deployments": [], "key": "cloudfront/op-contract-deleteVpcOrigin", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteVpcOrigin", "cloudfront:GetVpcOrigin", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_delete_vpc_origin.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-describeConnectionFunction", "deployments": [], "key": "cloudfront/op-contract-describeConnectionFunction", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionFunction", "cloudfront:DeleteConnectionFunction", "cloudfront:DescribeConnectionFunction"], "path": "behavioral/cloudfront/check_op_contract_describe_connection_function.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-describeFunction", "deployments": [], "key": "cloudfront/op-contract-describeFunction", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:PublishFunction"], "path": "behavioral/cloudfront/check_op_contract_describe_function.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-describeKeyValueStore", "deployments": [], "key": "cloudfront/op-contract-describeKeyValueStore", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateKeyValueStore", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore"], "path": "behavioral/cloudfront/check_op_contract_describe_key_value_store.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-disassociateDistributionTenantWebACL", "deployments": [], "key": "cloudfront/op-contract-disassociateDistributionTenantWebACL", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:DisassociateDistributionTenantWebACL", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_op_contract_disassociate_distribution_tenant_web_acl.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-disassociateDistributionWebACL", "deployments": [], "key": "cloudfront/op-contract-disassociateDistributionWebACL", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_disassociate_distribution_web_acl.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-getCachePolicy", "deployments": [], "key": "cloudfront/op-contract-getCachePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy"], "path": "behavioral/cloudfront/check_op_contract_get_cache_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-cache-policy-config", "deployments": [], "key": "cloudfront/op-contract-get-cache-policy-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:GetCachePolicyConfig"], "path": "behavioral/cloudfront/check_op_contract_get_cache_policy_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-cloudfront-origin-access-identity", "deployments": [], "key": "cloudfront/op-contract-get-cloudfront-origin-access-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_op_contract_get_cloudfront_origin_access_identity.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-cloudfront-origin-access-identity-config", "deployments": [], "key": "cloudfront/op-contract-get-cloudfront-origin-access-identity-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentityConfig"], "path": "behavioral/cloudfront/check_op_contract_get_cloudfront_origin_access_identity_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-connection-function", "deployments": [], "key": "cloudfront/op-contract-get-connection-function", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionFunction", "cloudfront:DeleteConnectionFunction", "cloudfront:GetConnectionFunction"], "path": "behavioral/cloudfront/check_op_contract_get_connection_function.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-connection-group", "deployments": [], "key": "cloudfront/op-contract-get-connection-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:DeleteConnectionGroup", "cloudfront:GetConnectionGroup", "cloudfront:UpdateConnectionGroup"], "path": "behavioral/cloudfront/check_op_contract_get_connection_group.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-connection-group-by-routing-endpoint", "deployments": [], "key": "cloudfront/op-contract-get-connection-group-by-routing-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:DeleteConnectionGroup", "cloudfront:GetConnectionGroup", "cloudfront:GetConnectionGroupByRoutingEndpoint", "cloudfront:UpdateConnectionGroup"], "path": "behavioral/cloudfront/check_op_contract_get_connection_group_by_routing_endpoint.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-continuous-deployment-policy-config", "deployments": [], "key": "cloudfront/op-contract-get-continuous-deployment-policy-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CopyDistribution", "cloudfront:CreateContinuousDeploymentPolicy", "cloudfront:CreateDistribution", "cloudfront:DeleteContinuousDeploymentPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetContinuousDeploymentPolicy", "cloudfront:GetContinuousDeploymentPolicyConfig", "cloudfront:GetDistribution", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_get_continuous_deployment_policy_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-distribution", "deployments": [], "key": "cloudfront/op-contract-get-distribution", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_get_distribution.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-distribution-config", "deployments": [], "key": "cloudfront/op-contract-get-distribution-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_get_distribution_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-distribution-tenant", "deployments": [], "key": "cloudfront/op-contract-get-distribution-tenant", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_get_distribution_tenant.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-distribution-tenant-by-domain", "deployments": [], "key": "cloudfront/op-contract-get-distribution-tenant-by-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenantByDomain", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_get_distribution_tenant_by_domain.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-field-level-encryption", "deployments": [], "key": "cloudfront/op-contract-get-field-level-encryption", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryption", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_get_field_level_encryption.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-field-level-encryption-config", "deployments": [], "key": "cloudfront/op-contract-get-field-level-encryption-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionConfig", "cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionConfig", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryption", "cloudfront:GetFieldLevelEncryptionConfig", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_get_field_level_encryption_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-field-level-encryption-profile", "deployments": [], "key": "cloudfront/op-contract-get-field-level-encryption-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_get_field_level_encryption_profile.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-field-level-encryption-profile-config", "deployments": [], "key": "cloudfront/op-contract-get-field-level-encryption-profile-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFieldLevelEncryptionProfile", "cloudfront:CreatePublicKey", "cloudfront:DeleteFieldLevelEncryptionProfile", "cloudfront:DeletePublicKey", "cloudfront:GetFieldLevelEncryptionProfile", "cloudfront:GetFieldLevelEncryptionProfileConfig", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_get_field_level_encryption_profile_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-function", "deployments": [], "key": "cloudfront/op-contract-get-function", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:GetFunction"], "path": "behavioral/cloudfront/check_op_contract_get_function.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-invalidation", "deployments": [], "key": "cloudfront/op-contract-get-invalidation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_get_invalidation.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-invalidation-for-distribution-tenant", "deployments": [], "key": "cloudfront/op-contract-get-invalidation-for-distribution-tenant", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:GetInvalidationForDistributionTenant"], "path": "behavioral/cloudfront/check_op_contract_get_invalidation_for_distribution_tenant.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-invalidation-for-distribution-tenant-not-found-rejected", "deployments": [], "key": "cloudfront/op-contract-get-invalidation-for-distribution-tenant-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:GetInvalidationForDistributionTenant", "cloudfront:ListDistributionTenants"], "path": "behavioral/cloudfront/check_op_contract_get_invalidation_for_distribution_tenant_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-key-group", "deployments": [], "key": "cloudfront/op-contract-get-key-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_get_key_group.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-key-group-config", "deployments": [], "key": "cloudfront/op-contract-get-key-group-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetKeyGroupConfig", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_get_key_group_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-managed-certificate-details", "deployments": [], "key": "cloudfront/op-contract-get-managed-certificate-details", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:GetManagedCertificateDetails"], "path": "behavioral/cloudfront/check_op_contract_get_managed_certificate_details.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-managed-certificate-details-not-found-rejected", "deployments": [], "key": "cloudfront/op-contract-get-managed-certificate-details-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:GetManagedCertificateDetails"], "path": "behavioral/cloudfront/check_op_contract_get_managed_certificate_details_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-origin-access-control", "deployments": [], "key": "cloudfront/op-contract-get-origin-access-control", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl"], "path": "behavioral/cloudfront/check_op_contract_get_origin_access_control.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-origin-access-control-config", "deployments": [], "key": "cloudfront/op-contract-get-origin-access-control-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl", "cloudfront:GetOriginAccessControlConfig"], "path": "behavioral/cloudfront/check_op_contract_get_origin_access_control_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-origin-request-policy-config", "deployments": [], "key": "cloudfront/op-contract-get-origin-request-policy-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:GetOriginRequestPolicyConfig"], "path": "behavioral/cloudfront/check_op_contract_get_origin_request_policy_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-public-key", "deployments": [], "key": "cloudfront/op-contract-get-public-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreatePublicKey", "cloudfront:DeletePublicKey", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_get_public_key.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-public-key-config", "deployments": [], "key": "cloudfront/op-contract-get-public-key-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreatePublicKey", "cloudfront:DeletePublicKey", "cloudfront:GetPublicKey", "cloudfront:GetPublicKeyConfig"], "path": "behavioral/cloudfront/check_op_contract_get_public_key_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-public-key-wrong-resource-type-id-rejected", "deployments": [], "key": "cloudfront/op-contract-get-public-key-wrong-resource-type-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_op_contract_get_public_key_wrong_resource_type_id_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-realtime-log-config", "deployments": [], "key": "cloudfront/op-contract-get-realtime-log-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetRealtimeLogConfig", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_get_realtime_log_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-get-realtime-log-config-name-and-arn-mutually-exclusive-rejected", "deployments": [], "key": "cloudfront/op-contract-get-realtime-log-config-name-and-arn-mutually-exclusive-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetRealtimeLogConfig", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_get_realtime_log_config_name_and_arn_mutually_exclusive_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-getResourcePolicy", "deployments": [], "key": "cloudfront/op-contract-getResourcePolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyValueStore", "cloudfront:CreateVpcOrigin", "cloudfront:DeleteKeyValueStore", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:DescribeKeyValueStore", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstances", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_op_contract_get_resource_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-getResponseHeadersPolicy", "deployments": [], "key": "cloudfront/op-contract-getResponseHeadersPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetResponseHeadersPolicy"], "path": "behavioral/cloudfront/check_op_contract_get_response_headers_policy.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-getResponseHeadersPolicyConfig", "deployments": [], "key": "cloudfront/op-contract-getResponseHeadersPolicyConfig", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetResponseHeadersPolicy", "cloudfront:GetResponseHeadersPolicyConfig"], "path": "behavioral/cloudfront/check_op_contract_get_response_headers_policy_config.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-getTrustStore", "deployments": [], "key": "cloudfront/op-contract-getTrustStore", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateTrustStore", "cloudfront:DeleteTrustStore", "cloudfront:GetTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/cloudfront/check_op_contract_get_trust_store.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-getVpcOrigin", "deployments": [], "key": "cloudfront/op-contract-getVpcOrigin", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteVpcOrigin", "cloudfront:GetVpcOrigin", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer"], "path": "behavioral/cloudfront/check_op_contract_get_vpc_origin.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-listAnycastIpLists", "deployments": [], "key": "cloudfront/op-contract-listAnycastIpLists", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListAnycastIpLists"], "path": "behavioral/cloudfront/check_op_contract_list_anycast_ip_lists.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-listCachePolicies", "deployments": [], "key": "cloudfront/op-contract-listCachePolicies", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListCachePolicies"], "path": "behavioral/cloudfront/check_op_contract_list_cache_policies.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-listCloudFrontOriginAccessIdentities", "deployments": [], "key": "cloudfront/op-contract-listCloudFrontOriginAccessIdentities", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:ListCloudFrontOriginAccessIdentities"], "path": "behavioral/cloudfront/check_op_contract_list_cloud_front_origin_access_identities.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-listConflictingAliases", "deployments": [], "key": "cloudfront/op-contract-listConflictingAliases", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListConflictingAliases", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_list_conflicting_aliases.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-listConnectionFunctions", "deployments": [], "key": "cloudfront/op-contract-listConnectionFunctions", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListConnectionFunctions"], "path": "behavioral/cloudfront/check_op_contract_list_connection_functions.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-listConnectionGroups", "deployments": [], "key": "cloudfront/op-contract-listConnectionGroups", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListConnectionGroups"], "path": "behavioral/cloudfront/check_op_contract_list_connection_groups.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-listContinuousDeploymentPolicies", "deployments": [], "key": "cloudfront/op-contract-listContinuousDeploymentPolicies", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:ListContinuousDeploymentPolicies"], "path": "behavioral/cloudfront/check_op_contract_list_continuous_deployment_policies.py", "service": "cloudfront"} {"check_id": "cloudfront.op-contract-listDistributionTenants", "deployments": [], "key": "cloudfront/op-contract-listDistributionTenants", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:ListDistributionTenants", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_op_contract_list_distribution_tenants.py", "service": "cloudfront"} {"check_id": "cloudfront.origin-access-identity-lifecycle", "deployments": [], "key": "cloudfront/origin-access-identity-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentityConfig", "cloudfront:ListCloudFrontOriginAccessIdentities", "cloudfront:UpdateCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_origin_access_identity_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.origin-group-fails-over-to-secondary-origin-at-the-edge", "deployments": [], "key": "cloudfront/origin-group-fails-over-to-secondary-origin-at-the-edge", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_origin_group_fails_over_to_secondary_origin_at_the_edge.py", "service": "cloudfront"} {"check_id": "cloudfront.origin-request-policy-duplicate-name-fails", "deployments": [], "key": "cloudfront/origin-request-policy-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy"], "path": "behavioral/cloudfront/check_origin_request_policy_duplicate_name_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.origin-request-policy-header-does-not-enter-the-cache-key", "deployments": [], "key": "cloudfront/origin-request-policy-header-does-not-enter-the-cache-key", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_origin_request_policy_header_does_not_enter_the_cache_key.py", "service": "cloudfront"} {"check_id": "cloudfront.origin-request-policy-lifecycle", "deployments": [], "key": "cloudfront/origin-request-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:UpdateOriginRequestPolicy"], "path": "behavioral/cloudfront/check_origin_request_policy_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.overly-permissive-function-publish-stale-etag-rejected", "deployments": [], "key": "cloudfront/overly-permissive-function-publish-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateFunction", "cloudfront:DeleteFunction", "cloudfront:DescribeFunction", "cloudfront:GetFunction", "cloudfront:ListFunctions", "cloudfront:PublishFunction", "cloudfront:UpdateFunction"], "path": "behavioral/cloudfront/check_overly_permissive_function_publish_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.overly-permissive-invalidation-inconsistent-quantities-rejected", "deployments": [], "key": "cloudfront/overly-permissive-invalidation-inconsistent-quantities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateInvalidation", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution"], "path": "behavioral/cloudfront/check_overly_permissive_invalidation_inconsistent_quantities_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.public-key-and-key-group-lifecycle", "deployments": [], "key": "cloudfront/public-key-and-key-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey"], "path": "behavioral/cloudfront/check_public_key_and_key_group_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.public-key-immutable-field-fails", "deployments": [], "key": "cloudfront/public-key-immutable-field-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreatePublicKey", "cloudfront:GetPublicKey", "cloudfront:UpdatePublicKey"], "path": "behavioral/cloudfront/check_public_key_immutable_field_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.public-key-immutable-field-mutation-rejected", "deployments": [], "key": "cloudfront/public-key-immutable-field-mutation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreatePublicKey", "cloudfront:DeletePublicKey", "cloudfront:GetPublicKey", "cloudfront:GetPublicKeyConfig", "cloudfront:UpdatePublicKey"], "path": "behavioral/cloudfront/check_public_key_immutable_field_mutation_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.put-resource-policy-concurrent-overwrite-last-writer-wins", "deployments": [], "key": "cloudfront/put-resource-policy-concurrent-overwrite-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_put_resource_policy_concurrent_overwrite_last_writer_wins.py", "service": "cloudfront"} {"check_id": "cloudfront.put-resource-policy-illegal-update-rejected", "deployments": [], "key": "cloudfront/put-resource-policy-illegal-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_put_resource_policy_illegal_update_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.put-resource-policy-malformed-document-illegal-update-rejected", "deployments": [], "key": "cloudfront/put-resource-policy-malformed-document-illegal-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeInternetGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_put_resource_policy_malformed_document_illegal_update_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.realtime-log-config-lifecycle", "deployments": [], "key": "cloudfront/realtime-log-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetRealtimeLogConfig", "cloudfront:ListRealtimeLogConfigs", "cloudfront:UpdateRealtimeLogConfig", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/cloudfront/check_realtime_log_config_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-delete-in-use-blocked", "deployments": [], "key": "cloudfront/resource-policy-delete-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteResourcePolicy", "cloudfront:GetConnectionGroup", "cloudfront:GetResourcePolicy", "cloudfront:PutResourcePolicy", "cloudfront:UpdateConnectionGroup"], "path": "behavioral/cloudfront/check_resource_policy_delete_in_use_blocked.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-delete-nonexistent-rejected", "deployments": [], "key": "cloudfront/resource-policy-delete-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_delete_nonexistent_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-document-round-trip", "deployments": [], "key": "cloudfront/resource-policy-document-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_document_round_trip.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-illegal-update-blocked", "deployments": [], "key": "cloudfront/resource-policy-illegal-update-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_illegal_update_blocked.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-invalid-document-rejected", "deployments": [], "key": "cloudfront/resource-policy-invalid-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_invalid_document_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-json-document-byte-equality", "deployments": [], "key": "cloudfront/resource-policy-json-document-byte-equality", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_json_document_byte_equality.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-json-document-round-trip", "deployments": [], "key": "cloudfront/resource-policy-json-document-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_json_document_round_trip.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-lifecycle", "deployments": [], "key": "cloudfront/resource-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:CreateSecurityGroup", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-put-get-delete-lifecycle", "deployments": [], "key": "cloudfront/resource-policy-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_put_get_delete_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-put-illegal-update-rejected", "deployments": [], "key": "cloudfront/resource-policy-put-illegal-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_put_illegal_update_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.resource-policy-server-side-round-trip-enforcement", "deployments": [], "key": "cloudfront/resource-policy-server-side-round-trip-enforcement", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteResourcePolicy", "cloudfront:DeleteVpcOrigin", "cloudfront:GetResourcePolicy", "cloudfront:GetVpcOrigin", "cloudfront:PutResourcePolicy", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_resource_policy_server_side_round_trip_enforcement.py", "service": "cloudfront"} {"check_id": "cloudfront.response-headers-policy-csp-too-long-fails", "deployments": [], "key": "cloudfront/response-headers-policy-csp-too-long-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetResponseHeadersPolicy", "cloudfront:ListResponseHeadersPolicies"], "path": "behavioral/cloudfront/check_response_headers_policy_csp_too_long_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.response-headers-policy-lifecycle", "deployments": [], "key": "cloudfront/response-headers-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetResponseHeadersPolicy"], "path": "behavioral/cloudfront/check_response_headers_policy_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.server-side-origin-access-control-signs-requests", "deployments": [], "key": "cloudfront/server-side-origin-access-control-signs-requests", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_server_side_origin_access_control_signs_requests.py", "service": "cloudfront"} {"check_id": "cloudfront.server-side-security-headers-policy-enforced-on-response", "deployments": [], "key": "cloudfront/server-side-security-headers-policy-enforced-on-response", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:GetResponseHeadersPolicy", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/cloudfront/check_server_side_security_headers_policy_enforced_on_response.py", "service": "cloudfront"} {"check_id": "cloudfront.signed-cookies-custom-policy-admits-wildcard-and-expired-policy-refused", "deployments": [], "key": "cloudfront/signed-cookies-custom-policy-admits-wildcard-and-expired-policy-refused", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateKeyGroup", "cloudfront:CreateOriginAccessControl", "cloudfront:CreatePublicKey", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_signed_cookies_custom_policy_admits_wildcard_and_expired_policy_refused.py", "service": "cloudfront"} {"check_id": "cloudfront.tag-resource-on-cache-policy-arn-via-distribution", "deployments": [], "key": "cloudfront/tag-resource-on-cache-policy-arn-via-distribution", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListTagsForResource", "cloudfront:TagResource", "cloudfront:UntagResource", "cloudfront:UpdateDistribution", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_tag_resource_on_cache_policy_arn_via_distribution.py", "service": "cloudfront"} {"check_id": "cloudfront.trust-store-lifecycle", "deployments": [], "key": "cloudfront/trust-store-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateTrustStore", "cloudfront:DeleteTrustStore", "cloudfront:GetTrustStore", "cloudfront:ListTrustStores", "cloudfront:UpdateTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront/check_trust_store_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.update-anycast-ip-list-invalid-argument-rejected", "deployments": [], "key": "cloudfront/update-anycast-ip-list-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateAnycastIpList", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteAnycastIpList", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "cloudfront:GetAnycastIpList", "cloudfront:ListAnycastIpLists", "cloudfront:UpdateAnycastIpList"], "path": "behavioral/cloudfront/check_update_anycast_ip_list_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-anycast-ip-list-malformed-ip-invalid-argument-rejected", "deployments": [], "key": "cloudfront/update-anycast-ip-list-malformed-ip-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:ListAnycastIpLists", "cloudfront:UpdateAnycastIpList"], "path": "behavioral/cloudfront/check_update_anycast_ip_list_malformed_ip_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-distribution-tenant-cname-conflict-fails", "deployments": [], "key": "cloudfront/update-distribution-tenant-cname-conflict-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateConnectionGroup", "cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteConnectionGroup", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:TagResource", "cloudfront:UpdateConnectionGroup", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_update_distribution_tenant_cname_conflict_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.update-distribution-tenant-cname-conflict-rejected", "deployments": [], "key": "cloudfront/update-distribution-tenant-cname-conflict-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_update_distribution_tenant_cname_conflict_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-distribution-tenant-duplicate-customization-fails", "deployments": [], "key": "cloudfront/update-distribution-tenant-duplicate-customization-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant"], "path": "behavioral/cloudfront/check_update_distribution_tenant_duplicate_customization_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.update-domain-association-not-found-rejected", "deployments": [], "key": "cloudfront/update-domain-association-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "cloudfront:UpdateDomainAssociation"], "path": "behavioral/cloudfront/check_update_domain_association_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-key-group-already-exists-rejected", "deployments": [], "key": "cloudfront/update-key-group-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:UpdateKeyGroup"], "path": "behavioral/cloudfront/check_update_key_group_already_exists_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-key-group-duplicate-name-fails", "deployments": [], "key": "cloudfront/update-key-group-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:UpdateKeyGroup"], "path": "behavioral/cloudfront/check_update_key_group_duplicate_name_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.update-key-group-duplicate-name-rejected", "deployments": [], "key": "cloudfront/update-key-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:UpdateKeyGroup"], "path": "behavioral/cloudfront/check_update_key_group_duplicate_name_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-key-group-stale-etag-rejected", "deployments": [], "key": "cloudfront/update-key-group-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateKeyGroup", "cloudfront:CreatePublicKey", "cloudfront:DeleteKeyGroup", "cloudfront:DeletePublicKey", "cloudfront:GetKeyGroup", "cloudfront:GetPublicKey", "cloudfront:UpdateKeyGroup"], "path": "behavioral/cloudfront/check_update_key_group_stale_etag_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-managed-cache-policy-rejected", "deployments": [], "key": "cloudfront/update-managed-cache-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:DeleteCachePolicy", "cloudfront:GetCachePolicy", "cloudfront:UpdateCachePolicy"], "path": "behavioral/cloudfront/check_update_managed_cache_policy_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-managed-origin-request-policy-fails", "deployments": [], "key": "cloudfront/update-managed-origin-request-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:UpdateOriginRequestPolicy"], "path": "behavioral/cloudfront/check_update_managed_origin_request_policy_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.update-oai-callerreference-immutable-rejected", "deployments": [], "key": "cloudfront/update-oai-callerreference-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetCloudFrontOriginAccessIdentityConfig", "cloudfront:UpdateCloudFrontOriginAccessIdentity"], "path": "behavioral/cloudfront/check_update_oai_callerreference_immutable_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-origin-request-policy-concurrent-modification-detected", "deployments": [], "key": "cloudfront/update-origin-request-policy-concurrent-modification-detected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:UpdateOriginRequestPolicy"], "path": "behavioral/cloudfront/check_update_origin_request_policy_concurrent_modification_detected.py", "service": "cloudfront"} {"check_id": "cloudfront.update-origin-request-policy-inconsistent-quantities-fails", "deployments": [], "key": "cloudfront/update-origin-request-policy-inconsistent-quantities-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:GetOriginRequestPolicyConfig", "cloudfront:UpdateOriginRequestPolicy"], "path": "behavioral/cloudfront/check_update_origin_request_policy_inconsistent_quantities_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.update-origin-request-policy-inconsistent-quantities-rejected", "deployments": [], "key": "cloudfront/update-origin-request-policy-inconsistent-quantities-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteOriginRequestPolicy", "cloudfront:GetOriginRequestPolicy", "cloudfront:GetOriginRequestPolicyConfig", "cloudfront:UpdateOriginRequestPolicy"], "path": "behavioral/cloudfront/check_update_origin_request_policy_inconsistent_quantities_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.verify-dns-configuration-entity-not-found-rejected", "deployments": [], "key": "cloudfront/verify-dns-configuration-entity-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "cloudfront:VerifyDnsConfiguration"], "path": "behavioral/cloudfront/check_verify_dns_configuration_entity_not_found_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.verify-dns-configuration-invalid-argument-rejected", "deployments": [], "key": "cloudfront/verify-dns-configuration-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:VerifyDnsConfiguration"], "path": "behavioral/cloudfront/check_verify_dns_configuration_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.verify-dns-configuration-invalid-domain-rejected", "deployments": [], "key": "cloudfront/verify-dns-configuration-invalid-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:VerifyDnsConfiguration"], "path": "behavioral/cloudfront/check_verify_dns_configuration_invalid_domain_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.verify-dns-configuration-malformed-domain-invalid-argument-rejected", "deployments": [], "key": "cloudfront/verify-dns-configuration-malformed-domain-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionTenant", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "cloudfront:VerifyDnsConfiguration"], "path": "behavioral/cloudfront/check_verify_dns_configuration_malformed_domain_invalid_argument_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.verify-dns-configuration-mismatch-detected", "deployments": [], "key": "cloudfront/verify-dns-configuration-mismatch-detected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateDistributionTenant", "cloudfront:DeleteDistribution", "cloudfront:DeleteDistributionTenant", "cloudfront:GetDistribution", "cloudfront:GetDistributionTenant", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionTenant", "cloudfront:VerifyDnsConfiguration"], "path": "behavioral/cloudfront/check_verify_dns_configuration_mismatch_detected.py", "service": "cloudfront"} {"check_id": "cloudfront.vpc-origin-create-invalid-arn-rejected", "deployments": [], "key": "cloudfront/vpc-origin-create-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:ListVpcOrigins"], "path": "behavioral/cloudfront/check_vpc_origin_create_invalid_arn_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.vpc-origin-invalid-arn-fails", "deployments": [], "key": "cloudfront/vpc-origin-invalid-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:ListVpcOrigins"], "path": "behavioral/cloudfront/check_vpc_origin_invalid_arn_fails.py", "service": "cloudfront"} {"check_id": "cloudfront.vpc-origin-invalid-endpoint-arn-rejected", "deployments": [], "key": "cloudfront/vpc-origin-invalid-endpoint-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:ListVpcOrigins"], "path": "behavioral/cloudfront/check_vpc_origin_invalid_endpoint_arn_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront.vpc-origin-lifecycle", "deployments": [], "key": "cloudfront/vpc-origin-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateVpcOrigin", "cloudfront:DeleteVpcOrigin", "cloudfront:GetVpcOrigin", "cloudfront:ListVpcOrigins", "cloudfront:UpdateVpcOrigin", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront/check_vpc_origin_lifecycle.py", "service": "cloudfront"} {"check_id": "cloudfront.web-acl-association-enforced-at-edge", "deployments": [], "key": "cloudfront/web-acl-association-enforced-at-edge", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_web_acl_association_enforced_at_edge.py", "service": "cloudfront"} {"check_id": "cloudfront.web-acl-association-invalid-webacl-rejected", "deployments": [], "key": "cloudfront/web-acl-association-invalid-webacl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:AssociateDistributionWebACL", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:DisassociateDistributionWebACL", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "sts:GetCallerIdentity", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront/check_web_acl_association_invalid_webacl_rejected.py", "service": "cloudfront"} {"check_id": "cloudfront__cloudwatch.obs-cloudfront-1-additional-metrics-match-recorded-edge-outcomes", "deployments": [], "key": "cloudfront__cloudwatch/obs-cloudfront-1-additional-metrics-match-recorded-edge-outcomes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateMonitoringSubscription", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteMonitoringSubscription", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetMonitoringSubscription", "cloudfront:UpdateDistribution", "cloudwatch:GetMetricStatistics", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront__cloudwatch/check_obs_cloudfront_1_additional_metrics_match_recorded_edge_outcomes.py", "service": "cloudfront__cloudwatch"} {"check_id": "cloudfront__cloudwatch.obs-cloudfront-1-additional-metrics-withheld-without-monitoring-subscription", "deployments": [], "key": "cloudfront__cloudwatch/obs-cloudfront-1-additional-metrics-withheld-without-monitoring-subscription", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateMonitoringSubscription", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteMonitoringSubscription", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetMonitoringSubscription", "cloudfront:UpdateDistribution", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront__cloudwatch/check_obs_cloudfront_1_additional_metrics_withheld_without_monitoring_subscription.py", "service": "cloudfront__cloudwatch"} {"check_id": "cloudfront__cloudwatch__sns__sqs.cloudfront-4xx-alarm-cross-region-sns-action-rejected", "deployments": [], "key": "cloudfront__cloudwatch__sns__sqs/cloudfront-4xx-alarm-cross-region-sns-action-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__cloudwatch__sns__sqs/check_cloudfront_4xx_alarm_cross_region_sns_action_rejected.py", "service": "cloudfront__cloudwatch__sns__sqs"} {"check_id": "cloudfront__cloudwatch__sns__sqs.obs-cloudfront-2-4xx-error-rate-alarm-notifies-sqs-untouched-control-stays-ok", "deployments": [], "key": "cloudfront__cloudwatch__sns__sqs/obs-cloudfront-2-4xx-error-rate-alarm-notifies-sqs-untouched-control-stays-ok", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__cloudwatch__sns__sqs/check_obs_cloudfront_2_4xx_error_rate_alarm_notifies_sqs_untouched_control_stays_ok.py", "service": "cloudfront__cloudwatch__sns__sqs"} {"check_id": "cloudfront__dynamodb__lambda.deep-cloudfront-3-cf-origin-brotli-enabled-cache-policy-serves-br-and-keys-on-encoding", "deployments": [], "key": "cloudfront__dynamodb__lambda/deep-cloudfront-3-cf-origin-brotli-enabled-cache-policy-serves-br-and-keys-on-encoding", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudfront__dynamodb__lambda/check_deep_cloudfront_3_cf_origin_brotli_enabled_cache_policy_serves_br_and_keys_on_encoding.py", "service": "cloudfront__dynamodb__lambda"} {"check_id": "cloudfront__dynamodb__lambda.deep-cloudfront-3-cf-origin-cache-hit-leaves-origin-invocation-count-unchanged", "deployments": [], "key": "cloudfront__dynamodb__lambda/deep-cloudfront-3-cf-origin-cache-hit-leaves-origin-invocation-count-unchanged", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudfront__dynamodb__lambda/check_deep_cloudfront_3_cf_origin_cache_hit_leaves_origin_invocation_count_unchanged.py", "service": "cloudfront__dynamodb__lambda"} {"check_id": "cloudfront__dynamodb__lambda.deep-cloudfront-3-cf-origin-edge-generates-viewer-country-and-forwarded-proto", "deployments": [], "key": "cloudfront__dynamodb__lambda/deep-cloudfront-3-cf-origin-edge-generates-viewer-country-and-forwarded-proto", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudfront__dynamodb__lambda/check_deep_cloudfront_3_cf_origin_edge_generates_viewer_country_and_forwarded_proto.py", "service": "cloudfront__dynamodb__lambda"} {"check_id": "cloudfront__dynamodb__lambda.deep-cloudfront-3-cf-origin-path-prefixes-the-path-the-origin-sees", "deployments": [], "key": "cloudfront__dynamodb__lambda/deep-cloudfront-3-cf-origin-path-prefixes-the-path-the-origin-sees", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudfront__dynamodb__lambda/check_deep_cloudfront_3_cf_origin_path_prefixes_the_path_the_origin_sees.py", "service": "cloudfront__dynamodb__lambda"} {"check_id": "cloudfront__dynamodb__lambda.deep-cloudfront-3-cf-origin-query-string-allexcept-and-all-shape-the-cache-key", "deployments": [], "key": "cloudfront__dynamodb__lambda/deep-cloudfront-3-cf-origin-query-string-allexcept-and-all-shape-the-cache-key", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudfront__dynamodb__lambda/check_deep_cloudfront_3_cf_origin_query_string_allexcept_and_all_shape_the_cache_key.py", "service": "cloudfront__dynamodb__lambda"} {"check_id": "cloudfront__dynamodb__lambda.deep-cloudfront-3-cf-origin-request-policy-forwards-what-the-cache-key-excludes", "deployments": [], "key": "cloudfront__dynamodb__lambda/deep-cloudfront-3-cf-origin-request-policy-forwards-what-the-cache-key-excludes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudfront__dynamodb__lambda/check_deep_cloudfront_3_cf_origin_request_policy_forwards_what_the_cache_key_excludes.py", "service": "cloudfront__dynamodb__lambda"} {"check_id": "cloudfront__dynamodb__lambda.deep-cloudfront-3-cf-origin-unlisted-header-cookie-query-blocked-from-origin", "deployments": [], "key": "cloudfront__dynamodb__lambda/deep-cloudfront-3-cf-origin-unlisted-header-cookie-query-blocked-from-origin", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudfront__dynamodb__lambda/check_deep_cloudfront_3_cf_origin_unlisted_header_cookie_query_blocked_from_origin.py", "service": "cloudfront__dynamodb__lambda"} {"check_id": "cloudfront__dynamodb__lambda.deep-cloudfront-3-cf-origin-viewer-spoofed-edge-headers-rejected-at-the-edge", "deployments": [], "key": "cloudfront__dynamodb__lambda/deep-cloudfront-3-cf-origin-viewer-spoofed-edge-headers-rejected-at-the-edge", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateCachePolicy", "cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudfront__dynamodb__lambda/check_deep_cloudfront_3_cf_origin_viewer_spoofed_edge_headers_rejected_at_the_edge.py", "service": "cloudfront__dynamodb__lambda"} {"check_id": "cloudfront__elbv2.xsvc-cloudfront-2-alb-origin-protocol-policy-mismatch-rejected", "deployments": [], "key": "cloudfront__elbv2/xsvc-cloudfront-2-alb-origin-protocol-policy-mismatch-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeManagedPrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DetachInternetGateway", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudfront__elbv2/check_xsvc_cloudfront_2_alb_origin_protocol_policy_mismatch_rejected.py", "service": "cloudfront__elbv2"} {"check_id": "cloudfront__elbv2.xsvc-cloudfront-2-alb-origin-secret-header-direct-request-forbidden", "deployments": [], "key": "cloudfront__elbv2/xsvc-cloudfront-2-alb-origin-secret-header-direct-request-forbidden", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeManagedPrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DetachInternetGateway", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudfront__elbv2/check_xsvc_cloudfront_2_alb_origin_secret_header_direct_request_forbidden.py", "service": "cloudfront__elbv2"} {"check_id": "cloudfront__events.cfn-deploy-eventbridge-rule-cloudfront-invalidation-lambda", "deployments": [], "key": "cloudfront__events/cfn-deploy-eventbridge-rule-cloudfront-invalidation-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution", "events:PutEvents"], "path": "behavioral/cloudfront__events/check_cfn_deploy_eventbridge_rule_cloudfront_invalidation_lambda.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cfn-deploy-eventbridge-rule-missing-lambda-permission-not-invoked", "deployments": [], "key": "cloudfront__events/cfn-deploy-eventbridge-rule-missing-lambda-permission-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "lambda:AddPermission", "lambda:RemovePermission", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_cfn_deploy_eventbridge_rule_missing_lambda_permission_not_invoked.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cfn-deploy-eventbridge-rule-missing-permission-not-invoked", "deployments": [], "key": "cloudfront__events/cfn-deploy-eventbridge-rule-missing-permission-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_cfn_deploy_eventbridge_rule_missing_permission_not_invoked.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cfn-deploy-iam-role-mistrust-blocks-rule-target", "deployments": [], "key": "cloudfront__events/cfn-deploy-iam-role-mistrust-blocks-rule-target", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetOriginAccessControl", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_cfn_deploy_iam_role_mistrust_blocks_rule_target.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-distribution-deployed-event-delivered-to-sqs", "deployments": [], "key": "cloudfront__events/cloudfront-distribution-deployed-event-delivered-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_cloudfront_distribution_deployed_event_delivered_to_sqs.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-distribution-event-to-lambda-invoked", "deployments": [], "key": "cloudfront__events/cloudfront-distribution-event-to-lambda-invoked", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/cloudfront__events/check_cloudfront_distribution_event_to_lambda_invoked.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-distribution-inprogress-event-filtered-by-pattern", "deployments": [], "key": "cloudfront__events/cloudfront-distribution-inprogress-event-filtered-by-pattern", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_cloudfront_distribution_inprogress_event_filtered_by_pattern.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-event-detail-payload-format-preserved", "deployments": [], "key": "cloudfront__events/cloudfront-event-detail-payload-format-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_cloudfront_event_detail_payload_format_preserved.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-event-sns-topic-policy-missing-blocks-delivery", "deployments": [], "key": "cloudfront__events/cloudfront-event-sns-topic-policy-missing-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_cloudfront_event_sns_topic_policy_missing_blocks_delivery.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-event-source-mismatch-not-delivered", "deployments": [], "key": "cloudfront__events/cloudfront-event-source-mismatch-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_cloudfront_event_source_mismatch_not_delivered.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-event-target-missing-lambda-permission-not-invoked", "deployments": [], "key": "cloudfront__events/cloudfront-event-target-missing-lambda-permission-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/cloudfront__events/check_cloudfront_event_target_missing_lambda_permission_not_invoked.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-event-to-sns-notifies-subscribers", "deployments": [], "key": "cloudfront__events/cloudfront-event-to-sns-notifies-subscribers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_cloudfront_event_to_sns_notifies_subscribers.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.cloudfront-invalidation-created-by-lambda-reflects-paths", "deployments": [], "key": "cloudfront__events/cloudfront-invalidation-created-by-lambda-reflects-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudfront__events/check_cloudfront_invalidation_created_by_lambda_reflects_paths.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.deploy-cfn-eventbridge-rule-cloudfront-invalidation-lambda", "deployments": [], "key": "cloudfront__events/deploy-cfn-eventbridge-rule-cloudfront-invalidation-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeRule", "events:PutEvents", "lambda:Invoke", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_deploy_cfn_eventbridge_rule_cloudfront_invalidation_lambda.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.deploy-cfn-iam-role-trust-events-service-cloudfront-target", "deployments": [], "key": "cloudfront__events/deploy-cfn-iam-role-trust-events-service-cloudfront-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeRule", "events:PutEvents", "iam:GetRole", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/cloudfront__events/check_deploy_cfn_iam_role_trust_events_service_cloudfront_target.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.deploy-cfn-missing-lambda-permission-blocks-cloudfront-invocation", "deployments": [], "key": "cloudfront__events/deploy-cfn-missing-lambda-permission-blocks-cloudfront-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeRule", "events:PutEvents", "lambda:AddPermission", "lambda:GetFunction", "lambda:RemovePermission", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_deploy_cfn_missing_lambda_permission_blocks_cloudfront_invocation.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-custom-event-denied-without-putevents-permission", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-custom-event-denied-without-putevents-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_custom_event_denied_without_putevents_permission.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-distribution-arn-resolution-in-target-input", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-distribution-arn-resolution-in-target-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_distribution_arn_resolution_in_target_input.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-event-batch-delivery-preserves-order", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-event-batch-delivery-preserves-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_event_batch_delivery_preserves_order.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-event-detail-preserves-request-parameters", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-event-detail-preserves-request-parameters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_event_detail_preserves_request_parameters.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-event-missing-detail-type-not-matched", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-event-missing-detail-type-not-matched", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_event_missing_detail_type_not_matched.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-event-source-pattern-mismatch-suppressed", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-event-source-pattern-mismatch-suppressed", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_event_source_pattern_mismatch_suppressed.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-event-wrong-account-id-not-matched", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-event-wrong-account-id-not-matched", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_event_wrong_account_id_not_matched.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-putevents-custom-detail-invokes-lambda", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-putevents-custom-detail-invokes-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetInvalidation", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:TagRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_putevents_custom_detail_invokes_lambda.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-tag-change-event-invokes-target", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-tag-change-event-invokes-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_tag_change_event_invokes_target.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudfront-tag-change-event-routes-to-sns", "deployments": [], "key": "cloudfront__events/eventbridge-cloudfront-tag-change-event-routes-to-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudfront_tag_change_event_routes_to_sns.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cloudtrail-cloudfront-deletedistribution-payload-format", "deployments": [], "key": "cloudfront__events/eventbridge-cloudtrail-cloudfront-deletedistribution-payload-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cloudtrail_cloudfront_deletedistribution_payload_format.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cron-rule-triggers-cloudfront-invalidation-daily", "deployments": [], "key": "cloudfront__events/eventbridge-cron-rule-triggers-cloudfront-invalidation-daily", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListInvalidations", "cloudfront:TagResource", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudfront__events/check_eventbridge_cron_rule_triggers_cloudfront_invalidation_daily.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cross-account-cloudfront-event-not-matched-without-resource-policy", "deployments": [], "key": "cloudfront__events/eventbridge-cross-account-cloudfront-event-not-matched-without-resource-policy", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_cross_account_cloudfront_event_not_matched_without_resource_policy.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-cross-region-cloudfront-events-not-delivered", "deployments": [], "key": "cloudfront__events/eventbridge-cross-region-cloudfront-events-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_eventbridge_cross_region_cloudfront_events_not_delivered.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-invalidation-rule-pattern-mismatch-no-invalidation-created", "deployments": [], "key": "cloudfront__events/eventbridge-invalidation-rule-pattern-mismatch-no-invalidation-created", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutObject"], "path": "behavioral/cloudfront__events/check_eventbridge_invalidation_rule_pattern_mismatch_no_invalidation_created.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-lambda-cloudfront-invalidation-blocked-without-target-permission", "deployments": [], "key": "cloudfront__events/eventbridge-lambda-cloudfront-invalidation-blocked-without-target-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudfront__events/check_eventbridge_lambda_cloudfront_invalidation_blocked_without_target_permission.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-lambda-invalidation-failure-routes-to-dlq", "deployments": [], "key": "cloudfront__events/eventbridge-lambda-invalidation-failure-routes-to-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_eventbridge_lambda_invalidation_failure_routes_to_dlq.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-lambda-target-missing-permission-blocks-delivery", "deployments": [], "key": "cloudfront__events/eventbridge-lambda-target-missing-permission-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_eventbridge_lambda_target_missing_permission_blocks_delivery.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-put-events-custom-detail-triggers-cloudfront-cache-invalidation", "deployments": [], "key": "cloudfront__events/eventbridge-put-events-custom-detail-triggers-cloudfront-cache-invalidation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:TagResource", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/cloudfront__events/check_eventbridge_put_events_custom_detail_triggers_cloudfront_cache_invalidation.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-role-without-events-trust-rejected", "deployments": [], "key": "cloudfront__events/eventbridge-role-without-events-trust-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_eventbridge_role_without_events_trust_rejected.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-disabled-state-does-not-invoke-cloudfront-lambda", "deployments": [], "key": "cloudfront__events/eventbridge-rule-disabled-state-does-not-invoke-cloudfront-lambda", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_disabled_state_does_not_invoke_cloudfront_lambda.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-input-path-extracts-distribution-id", "deployments": [], "key": "cloudfront__events/eventbridge-rule-input-path-extracts-distribution-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_input_path_extracts_distribution_id.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-invokes-lambda-to-create-cloudfront-invalidation", "deployments": [], "key": "cloudfront__events/eventbridge-rule-invokes-lambda-to-create-cloudfront-invalidation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_invokes_lambda_to_create_cloudfront_invalidation.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-matches-cloudfront-createdistribution-api-call", "deployments": [], "key": "cloudfront__events/eventbridge-rule-matches-cloudfront-createdistribution-api-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_matches_cloudfront_createdistribution_api_call.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-matches-cloudfront-deletedistribution-api-call", "deployments": [], "key": "cloudfront__events/eventbridge-rule-matches-cloudfront-deletedistribution-api-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_matches_cloudfront_deletedistribution_api_call.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-matches-cloudfront-updatedistribution-api-call", "deployments": [], "key": "cloudfront__events/eventbridge-rule-matches-cloudfront-updatedistribution-api-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_matches_cloudfront_updatedistribution_api_call.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-missing-permission-blocks-cloudfront-invalidation-lambda", "deployments": [], "key": "cloudfront__events/eventbridge-rule-missing-permission-blocks-cloudfront-invalidation-lambda", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:TagQueue"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_missing_permission_blocks_cloudfront_invalidation_lambda.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-role-arn-invokes-step-functions-for-cloudfront-workflow", "deployments": [], "key": "cloudfront__events/eventbridge-rule-role-arn-invokes-step-functions-for-cloudfront-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_role_arn_invokes_step_functions_for_cloudfront_workflow.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-role-arn-wrong-trust-execution-not-started", "deployments": [], "key": "cloudfront__events/eventbridge-rule-role-arn-wrong-trust-execution-not-started", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_role_arn_wrong_trust_execution_not_started.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-rule-scoped-to-specific-distribution-id-filters-events", "deployments": [], "key": "cloudfront__events/eventbridge-rule-scoped-to-specific-distribution-id-filters-events", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_rule_scoped_to_specific_distribution_id_filters_events.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-scheduled-rule-invokes-lambda-for-cloudfront-invalidation", "deployments": [], "key": "cloudfront__events/eventbridge-scheduled-rule-invokes-lambda-for-cloudfront-invalidation", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudfront__events/check_eventbridge_scheduled_rule_invokes_lambda_for_cloudfront_invalidation.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-scheduled-rule-triggers-cloudfront-invalidation-lambda", "deployments": [], "key": "cloudfront__events/eventbridge-scheduled-rule-triggers-cloudfront-invalidation-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudfront__events/check_eventbridge_scheduled_rule_triggers_cloudfront_invalidation_lambda.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-target-arn-resolves-to-specific-cloudfront-distribution", "deployments": [], "key": "cloudfront__events/eventbridge-target-arn-resolves-to-specific-cloudfront-distribution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_target_arn_resolves_to_specific_cloudfront_distribution.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-target-missing-cloudfront-invalidation-permission-not-invoked", "deployments": [], "key": "cloudfront__events/eventbridge-target-missing-cloudfront-invalidation-permission-not-invoked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_eventbridge_target_missing_cloudfront_invalidation_permission_not_invoked.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-target-missing-permission-blocks-cloudfront-event-delivery", "deployments": [], "key": "cloudfront__events/eventbridge-target-missing-permission-blocks-cloudfront-event-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_target_missing_permission_blocks_cloudfront_event_delivery.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.eventbridge-target-role-scoped-to-wrong-distribution-denied", "deployments": [], "key": "cloudfront__events/eventbridge-target-role-scoped-to-wrong-distribution-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_eventbridge_target_role_scoped_to_wrong_distribution_denied.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.events-role-trust-policy-allows-assume-for-cloudfront-target", "deployments": [], "key": "cloudfront__events/events-role-trust-policy-allows-assume-for-cloudfront-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_events_role_trust_policy_allows_assume_for_cloudfront_target.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.iam-role-missing-events-trust-blocks-target-invocation", "deployments": [], "key": "cloudfront__events/iam-role-missing-events-trust-blocks-target-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_iam_role_missing_events_trust_blocks_target_invocation.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.iam-role-trust-scoped-with-external-condition-enforced", "deployments": [], "key": "cloudfront__events/iam-role-trust-scoped-with-external-condition-enforced", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_iam_role_trust_scoped_with_external_condition_enforced.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.iam-role-trusts-events-service-enables-rule-target-invocation", "deployments": [], "key": "cloudfront__events/iam-role-trusts-events-service-enables-rule-target-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator"], "path": "behavioral/cloudfront__events/check_iam_role_trusts_events_service_enables_rule_target_invocation.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.iam-role-trusts-events-service-for-rule-target-invocation", "deployments": [], "key": "cloudfront__events/iam-role-trusts-events-service-for-rule-target-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_iam_role_trusts_events_service_for_rule_target_invocation.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.iam-role-without-events-trust-rejected-as-rule-target-role", "deployments": [], "key": "cloudfront__events/iam-role-without-events-trust-rejected-as-rule-target-role", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_iam_role_without_events_trust_rejected_as_rule_target_role.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.lambda-cloudfront-createinvalidation-response-propagated-to-sqs", "deployments": [], "key": "cloudfront__events/lambda-cloudfront-createinvalidation-response-propagated-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetInvalidation", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudfront__events/check_lambda_cloudfront_createinvalidation_response_propagated_to_sqs.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.lambda-role-missing-cloudfront-permission-denied", "deployments": [], "key": "cloudfront__events/lambda-role-missing-cloudfront-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "cloudfront:UpdateDistribution", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudfront__events/check_lambda_role_missing_cloudfront_permission_denied.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.lambda-role-missing-cloudfront-permission-denied-invalidation", "deployments": [], "key": "cloudfront__events/lambda-role-missing-cloudfront-permission-denied-invalidation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__events/check_lambda_role_missing_cloudfront_permission_denied_invalidation.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.xsvc-cloudfront-1-create-invalidation-cloudtrail-event-routes-to-sqs", "deployments": [], "key": "cloudfront__events/xsvc-cloudfront-1-create-invalidation-cloudtrail-event-routes-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateInvalidation", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "cloudfront:UpdateOriginAccessControl", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_xsvc_cloudfront_1_create_invalidation_cloudtrail_event_routes_to_sqs.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.xsvc-cloudfront-1-read-only-calls-not-delivered-to-enabled-rule", "deployments": [], "key": "cloudfront__events/xsvc-cloudfront-1-read-only-calls-not-delivered-to-enabled-rule", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:ListDistributions", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudfront:UpdateOriginAccessControl", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_xsvc_cloudfront_1_read_only_calls_not_delivered_to_enabled_rule.py", "service": "cloudfront__events"} {"check_id": "cloudfront__events.xsvc-cloudfront-1-s3-object-created-lambda-invalidation-refreshes-edge", "deployments": [], "key": "cloudfront__events/xsvc-cloudfront-1-s3-object-created-lambda-invalidation-refreshes-edge", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetInvalidation", "cloudfront:GetOriginAccessControl", "cloudfront:ListInvalidations", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudfront:UpdateOriginAccessControl", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketPolicy", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__events/check_xsvc_cloudfront_1_s3_object_created_lambda_invalidation_refreshes_edge.py", "service": "cloudfront__events"} {"check_id": "cloudfront__kinesis.obs-cloudfront-3-realtime-log-role-without-put-record-delivers-nothing", "deployments": [], "key": "cloudfront__kinesis/obs-cloudfront-3-realtime-log-role-without-put-record-delivers-nothing", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:GetRealtimeLogConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront__kinesis/check_obs_cloudfront_3_realtime_log_role_without_put_record_delivers_nothing.py", "service": "cloudfront__kinesis"} {"check_id": "cloudfront__kinesis.realtime-log-config-delivers-edge-request-record-to-kinesis", "deployments": [], "key": "cloudfront__kinesis/realtime-log-config-delivers-edge-request-record-to-kinesis", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteDistribution", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__kinesis/check_realtime_log_config_delivers_edge_request_record_to_kinesis.py", "service": "cloudfront__kinesis"} {"check_id": "cloudfront__kinesis.xsvc-cloudfront-3-realtime-log-role-denied-putrecord-delivers-nothing", "deployments": [], "key": "cloudfront__kinesis/xsvc-cloudfront-3-realtime-log-role-denied-putrecord-delivers-nothing", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateRealtimeLogConfig", "cloudfront:DeleteDistribution", "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetRealtimeLogConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "cloudfront:UpdateRealtimeLogConfig", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront__kinesis/check_xsvc_cloudfront_3_realtime_log_role_denied_putrecord_delivers_nothing.py", "service": "cloudfront__kinesis"} {"check_id": "cloudfront__kms__s3.xsvc-cloudfront-2-oac-kms-key-policy-without-cloudfront-principal-denied", "deployments": [], "key": "cloudfront__kms__s3/xsvc-cloudfront-2-oac-kms-key-policy-without-cloudfront-principal-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:UpdateDistribution", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketEncryption", "s3:PutBucketPolicy", "s3:PutObject", "s3:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__kms__s3/check_xsvc_cloudfront_2_oac_kms_key_policy_without_cloudfront_principal_denied.py", "service": "cloudfront__kms__s3"} {"check_id": "cloudfront__lambda.deep-cloudfront-2-cf-edge-enforce-allowed-methods-post-rejected", "deployments": [], "key": "cloudfront__lambda/deep-cloudfront-2-cf-edge-enforce-allowed-methods-post-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListCachePolicies", "cloudfront:UpdateDistribution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__lambda/check_deep_cloudfront_2_cf_edge_enforce_allowed_methods_post_rejected.py", "service": "cloudfront__lambda"} {"check_id": "cloudfront__lambda.deep-cloudfront-2-cf-edge-enforce-geo-restriction-blocklist-blocked", "deployments": [], "key": "cloudfront__lambda/deep-cloudfront-2-cf-edge-enforce-geo-restriction-blocklist-blocked", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListCachePolicies", "cloudfront:UpdateDistribution", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__lambda/check_deep_cloudfront_2_cf_edge_enforce_geo_restriction_blocklist_blocked.py", "service": "cloudfront__lambda"} {"check_id": "cloudfront__lambda.deep-cloudfront-2-cf-edge-enforce-signed-url-source-ip-denied", "deployments": [], "key": "cloudfront__lambda/deep-cloudfront-2-cf-edge-enforce-signed-url-source-ip-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:CreateKeyGroup", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateOriginRequestPolicy", "cloudfront:CreatePublicKey", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetKeyGroup", "cloudfront:ListCachePolicies", "cloudfront:UpdateDistribution", "cloudfront:UpdateKeyGroup", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__lambda/check_deep_cloudfront_2_cf_edge_enforce_signed_url_source_ip_denied.py", "service": "cloudfront__lambda"} {"check_id": "cloudfront__lambda.origin-access-control-signs-lambda-url-origin-and-direct-call-denied", "deployments": [], "key": "cloudfront__lambda/origin-access-control-signs-lambda-url-origin-and-direct-call-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:ListOriginRequestPolicies", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__lambda/check_origin_access_control_signs_lambda_url_origin_and_direct_call_denied.py", "service": "cloudfront__lambda"} {"check_id": "cloudfront__lambda.xsvc-cloudfront-2-lambda-edge-unpublished-version-rejected", "deployments": [], "key": "cloudfront__lambda/xsvc-cloudfront-2-lambda-edge-unpublished-version-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution", "iam:CreateRole", "iam:DeleteRole", "iam:UpdateAssumeRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__lambda/check_xsvc_cloudfront_2_lambda_edge_unpublished_version_rejected.py", "service": "cloudfront__lambda"} {"check_id": "cloudfront__logs.obs-cloudfront-3-delivery-source-unsupported-log-type-rejected", "deployments": [], "key": "cloudfront__logs/obs-cloudfront-3-delivery-source-unsupported-log-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "logs:DeleteDeliverySource", "logs:DescribeConfigurationTemplates", "logs:GetDeliverySource", "logs:PutDeliverySource"], "path": "behavioral/cloudfront__logs/check_obs_cloudfront_3_delivery_source_unsupported_log_type_rejected.py", "service": "cloudfront__logs"} {"check_id": "cloudfront__logs.obs-cloudfront-3-vended-access-logs-match-requests-and-stop-after-delete-delivery", "deployments": [], "key": "cloudfront__logs/obs-cloudfront-3-vended-access-logs-match-requests-and-stop-after-delete-delivery", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetDelivery", "logs:GetLogEvents", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__logs/check_obs_cloudfront_3_vended_access_logs_match_requests_and_stop_after_delete_delivery.py", "service": "cloudfront__logs"} {"check_id": "cloudfront__logs.xsvc-cloudfront-3-access-logs-delivery-source-outside-us-east-1-rejected", "deployments": [], "key": "cloudfront__logs/xsvc-cloudfront-3-access-logs-delivery-source-outside-us-east-1-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "logs:DeleteDeliverySource", "logs:GetDeliverySource", "logs:PutDeliverySource"], "path": "behavioral/cloudfront__logs/check_xsvc_cloudfront_3_access_logs_delivery_source_outside_us_east_1_rejected.py", "service": "cloudfront__logs"} {"check_id": "cloudfront__logs.xsvc-cloudfront-3-standard-logging-v2-access-log-reaches-log-group", "deployments": [], "key": "cloudfront__logs/xsvc-cloudfront-3-standard-logging-v2-access-log-reaches-log-group", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront__logs/check_xsvc_cloudfront_3_standard_logging_v2_access_log_reaches_log_group.py", "service": "cloudfront__logs"} {"check_id": "cloudfront__pricing-plan-manager__route53__wafv2.free-subscription-refuses-a-key-value-store-and-keeps-its-resources", "deployments": [], "key": "cloudfront__pricing-plan-manager__route53__wafv2/free-subscription-refuses-a-key-value-store-and-keeps-its-resources", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateKeyValueStore", "cloudfront:DeleteDistribution", "cloudfront:DeleteKeyValueStore", "cloudfront:DescribeKeyValueStore", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:AssociateResourcesToSubscription", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:GetSubscription", "route53:CreateHostedZone", "route53:DeleteHostedZone", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__route53__wafv2/check_free_subscription_refuses_a_key_value_store_and_keeps_its_resources.py", "service": "cloudfront__pricing-plan-manager__route53__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__route53__wafv2.hosted-zone-joins-and-leaves-a-free-subscription", "deployments": [], "key": "cloudfront__pricing-plan-manager__route53__wafv2/hosted-zone-joins-and-leaves-a-free-subscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:AssociateResourcesToSubscription", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:DisassociateResourcesFromSubscription", "pricing-plan-manager:GetSubscription", "pricing-plan-manager:ListSubscriptions", "route53:CreateHostedZone", "route53:DeleteHostedZone", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__route53__wafv2/check_hosted_zone_joins_and_leaves_a_free_subscription.py", "service": "cloudfront__pricing-plan-manager__route53__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__wafv2.cancel-subscription-change-without-pending-change-rejected", "deployments": [], "key": "cloudfront__pricing-plan-manager__wafv2/cancel-subscription-change-without-pending-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CancelSubscriptionChange", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:GetSubscription", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__wafv2/check_cancel_subscription_change_without_pending_change_rejected.py", "service": "cloudfront__pricing-plan-manager__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__wafv2.create-subscription-client-token-replay-returns-same-subscription", "deployments": [], "key": "cloudfront__pricing-plan-manager__wafv2/create-subscription-client-token-replay-returns-same-subscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:GetSubscription", "pricing-plan-manager:ListSubscriptions", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__wafv2/check_create_subscription_client_token_replay_returns_same_subscription.py", "service": "cloudfront__pricing-plan-manager__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__wafv2.create-subscription-without-webacl-association-rejected", "deployments": [], "key": "cloudfront__pricing-plan-manager__wafv2/create-subscription-without-webacl-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:GetSubscription", "pricing-plan-manager:ListSubscriptions", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__wafv2/check_create_subscription_without_webacl_association_rejected.py", "service": "cloudfront__pricing-plan-manager__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__wafv2.disassociate-unassociated-resource-leaves-subscription-unchanged", "deployments": [], "key": "cloudfront__pricing-plan-manager__wafv2/disassociate-unassociated-resource-leaves-subscription-unchanged", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:DisassociateResourcesFromSubscription", "pricing-plan-manager:GetSubscription", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__wafv2/check_disassociate_unassociated_resource_leaves_subscription_unchanged.py", "service": "cloudfront__pricing-plan-manager__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__wafv2.stale-etag-cancel-rejected-subscription-stays-active", "deployments": [], "key": "cloudfront__pricing-plan-manager__wafv2/stale-etag-cancel-rejected-subscription-stays-active", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:GetSubscription", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__wafv2/check_stale_etag_cancel_rejected_subscription_stays_active.py", "service": "cloudfront__pricing-plan-manager__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__wafv2.subscribed-distribution-rejected-for-second-subscription", "deployments": [], "key": "cloudfront__pricing-plan-manager__wafv2/subscribed-distribution-rejected-for-second-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:GetSubscription", "pricing-plan-manager:ListSubscriptions", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__wafv2/check_subscribed_distribution_rejected_for_second_subscription.py", "service": "cloudfront__pricing-plan-manager__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__wafv2.subscribed-distribution-web-acl-cannot-be-removed", "deployments": [], "key": "cloudfront__pricing-plan-manager__wafv2/subscribed-distribution-web-acl-cannot-be-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:GetSubscription", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__wafv2/check_subscribed_distribution_web_acl_cannot_be_removed.py", "service": "cloudfront__pricing-plan-manager__wafv2"} {"check_id": "cloudfront__pricing-plan-manager__wafv2.subscription-resource-association-reaches-active", "deployments": [], "key": "cloudfront__pricing-plan-manager__wafv2/subscription-resource-association-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CreateSubscription", "pricing-plan-manager:DisassociateResourcesFromSubscription", "pricing-plan-manager:GetSubscription", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudfront__pricing-plan-manager__wafv2/check_subscription_resource_association_reaches_active.py", "service": "cloudfront__pricing-plan-manager__wafv2"} {"check_id": "cloudfront__s3.cf-origin-access-control-blocks-direct-s3-access-rejected", "deployments": [], "key": "cloudfront__s3/cf-origin-access-control-blocks-direct-s3-access-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/cloudfront__s3/check_cf_origin_access_control_blocks_direct_s3_access_rejected.py", "service": "cloudfront__s3"} {"check_id": "cloudfront__s3.obs-cloudfront-3-standard-log-fields-hit-miss-and-disabled-control-silent", "deployments": [], "key": "cloudfront__s3/obs-cloudfront-3-standard-log-fields-hit-miss-and-disabled-control-silent", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudfront__s3/check_obs_cloudfront_3_standard_log_fields_hit_miss_and_disabled_control_silent.py", "service": "cloudfront__s3"} {"check_id": "cloudfront__s3.obs-cloudfront-3-standard-logging-to-acl-disabled-bucket-rejected", "deployments": [], "key": "cloudfront__s3/obs-cloudfront-3-standard-logging-to-acl-disabled-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketTagging"], "path": "behavioral/cloudfront__s3/check_obs_cloudfront_3_standard_logging_to_acl_disabled_bucket_rejected.py", "service": "cloudfront__s3"} {"check_id": "cloudfront__s3.origin-with-both-oac-and-oai-rejected", "deployments": [], "key": "cloudfront__s3/origin-with-both-oac-and-oai-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudfront:CreateCloudFrontOriginAccessIdentity", "cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:DeleteCloudFrontOriginAccessIdentity", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:GetCloudFrontOriginAccessIdentity", "cloudfront:GetDistribution", "cloudfront:GetOriginAccessControl", "cloudfront:ListDistributions", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/cloudfront__s3/check_origin_with_both_oac_and_oai_rejected.py", "service": "cloudfront__s3"} {"check_id": "cloudfront__s3.response-headers-policy-cors-get-granted-disallowed-method-refused", "deployments": [], "key": "cloudfront__s3/response-headers-policy-cors-get-granted-disallowed-method-refused", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudfront:CreateDistribution", "cloudfront:CreateOriginAccessControl", "cloudfront:CreateResponseHeadersPolicy", "cloudfront:DeleteDistribution", "cloudfront:DeleteOriginAccessControl", "cloudfront:DeleteResponseHeadersPolicy", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetOriginAccessControl", "cloudfront:GetResponseHeadersPolicy", "cloudfront:TagResource", "cloudfront:UpdateDistribution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/cloudfront__s3/check_response_headers_policy_cors_get_granted_disallowed_method_refused.py", "service": "cloudfront__s3"} {"check_id": "cloudfront__scheduler.xsvc-cloudfront-3-scheduler-one-time-invalidation-applies-exact-paths", "deployments": [], "key": "cloudfront__scheduler/xsvc-cloudfront-3-scheduler-one-time-invalidation-applies-exact-paths", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule"], "path": "behavioral/cloudfront__scheduler/check_xsvc_cloudfront_3_scheduler_one_time_invalidation_applies_exact_paths.py", "service": "cloudfront__scheduler"} {"check_id": "cloudfront__scheduler.xsvc-cloudfront-3-scheduler-role-denied-invalidation-routes-to-dlq", "deployments": [], "key": "cloudfront__scheduler/xsvc-cloudfront-3-scheduler-role-denied-invalidation-routes-to-dlq", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["cloudfront:CreateDistributionWithTags", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudfront__scheduler/check_xsvc_cloudfront_3_scheduler_role_denied_invalidation_routes_to_dlq.py", "service": "cloudfront__scheduler"} {"check_id": "cloudhsmv2.cluster-create-nonexistent-subnet-rejected-with-positive-control", "deployments": [], "key": "cloudhsmv2/cluster-create-nonexistent-subnet-rejected-with-positive-control", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudhsmv2:CreateCluster", "cloudhsmv2:DeleteCluster", "cloudhsmv2:DescribeClusters"], "path": "behavioral/cloudhsmv2/check_cluster_create_nonexistent_subnet_rejected_with_positive_control.py", "service": "cloudhsmv2"} {"check_id": "cloudhsmv2.cluster-duplicate-subnet-collapses-to-one-az-then-lifecycle", "deployments": [], "key": "cloudhsmv2/cluster-duplicate-subnet-collapses-to-one-az-then-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudhsmv2:CreateCluster", "cloudhsmv2:DeleteCluster", "cloudhsmv2:DescribeClusters", "cloudhsmv2:ListTags", "cloudhsmv2:ModifyCluster", "cloudhsmv2:TagResource", "cloudhsmv2:UntagResource"], "path": "behavioral/cloudhsmv2/check_cluster_duplicate_subnet_collapses_to_one_az_then_lifecycle.py", "service": "cloudhsmv2"} {"check_id": "cloudtrail-data.channel-arn-unicode-characters-rejected", "deployments": [], "key": "cloudtrail-data/channel-arn-unicode-characters-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_channel_arn_unicode_characters_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.channel-cross-account-access-denied-vs-same-account-not-found", "deployments": [], "key": "cloudtrail-data/channel-cross-account-access-denied-vs-same-account-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_channel_cross_account_access_denied_vs_same_account_not_found.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.channel-not-found-rejected", "deployments": [], "key": "cloudtrail-data/channel-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_channel_not_found_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.create-channel-nonexistent-event-data-store-rejected", "deployments": [], "key": "cloudtrail-data/create-channel-nonexistent-event-data-store-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateChannel", "cloudtrail:DeleteChannel", "cloudtrail:ListChannels", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_create_channel_nonexistent_event_data_store_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.duplicated-audit-event-id-rejected", "deployments": [], "key": "cloudtrail-data/duplicated-audit-event-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_duplicated_audit_event_id_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.e2e-audit-event-pipeline-blocked-for-new-account", "deployments": [], "key": "cloudtrail-data/e2e-audit-event-pipeline-blocked-for-new-account", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "cloudtrail:CreateChannel", "cloudtrail:CreateEventDataStore", "cloudtrail:DeleteChannel", "cloudtrail:DeleteEventDataStore", "cloudtrail:ListChannels", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_e2e_audit_event_pipeline_blocked_for_new_account.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.invalid-channel-arn-rejected", "deployments": [], "key": "cloudtrail-data/invalid-channel-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_invalid_channel_arn_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-batch-exceeds-max-size-rejected", "deployments": [], "key": "cloudtrail-data/put-audit-events-batch-exceeds-max-size-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_batch_exceeds_max_size_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-channel-arn-missing-region-segment-rejected", "deployments": [], "key": "cloudtrail-data/put-audit-events-channel-arn-missing-region-segment-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_channel_arn_missing_region_segment_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-channel-arn-wrong-service-segment-rejected", "deployments": [], "key": "cloudtrail-data/put-audit-events-channel-arn-wrong-service-segment-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_channel_arn_wrong_service_segment_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-empty-batch-rejected", "deployments": [], "key": "cloudtrail-data/put-audit-events-empty-batch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_empty_batch_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-id-max-length-boundary-rejected", "deployments": [], "key": "cloudtrail-data/put-audit-events-id-max-length-boundary-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_id_max_length_boundary_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-id-pattern-violation-rejected", "deployments": [], "key": "cloudtrail-data/put-audit-events-id-pattern-violation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_id_pattern_violation_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-invalid-channel-arn-partition-boundary-rejected", "deployments": [], "key": "cloudtrail-data/put-audit-events-invalid-channel-arn-partition-boundary-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_invalid_channel_arn_partition_boundary_rejected.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-rejects-a-bare-channel-id", "deployments": [], "key": "cloudtrail-data/put-audit-events-rejects-a-bare-channel-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_rejects_a_bare_channel_id.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-rejects-a-batch-over-one-hundred-events", "deployments": [], "key": "cloudtrail-data/put-audit-events-rejects-a-batch-over-one-hundred-events", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_rejects_a_batch_over_one_hundred_events.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-rejects-a-cross-account-channel-as-unauthorized", "deployments": [], "key": "cloudtrail-data/put-audit-events-rejects-a-cross-account-channel-as-unauthorized", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_rejects_a_cross_account_channel_as_unauthorized.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-rejects-in-arn-then-constraint-then-channel-order", "deployments": [], "key": "cloudtrail-data/put-audit-events-rejects-in-arn-then-constraint-then-channel-order", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_rejects_in_arn_then_constraint_then_channel_order.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail-data.put-audit-events-requires-the-cloudtrail-data-action-not-cloudtrail-wildcard", "deployments": [], "key": "cloudtrail-data/put-audit-events-requires-the-cloudtrail-data-action-not-cloudtrail-wildcard", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail-data:PutAuditEvents", "cloudtrail:ListChannels", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail-data/check_put_audit_events_requires_the_cloudtrail_data_action_not_cloudtrail_wildcard.py", "service": "cloudtrail-data"} {"check_id": "cloudtrail.add-list-remove-tags-trail", "deployments": [], "key": "cloudtrail/add-list-remove-tags-trail", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:RemoveTags", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_add_list_remove_tags_trail.py", "service": "cloudtrail"} {"check_id": "cloudtrail.add-tags-invalid-tag-fails", "deployments": [], "key": "cloudtrail/add-tags-invalid-tag-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_add_tags_invalid_tag_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.add-tags-malformed-arn-fails", "deployments": [], "key": "cloudtrail/add-tags-malformed-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_add_tags_malformed_arn_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.add-tags-unknown-trail-arn-fails", "deployments": [], "key": "cloudtrail/add-tags-unknown-trail-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:AddTags", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_add_tags_unknown_trail_arn_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.advanced-event-selector-unicode-field-values-round-trip", "deployments": [], "key": "cloudtrail/advanced-event-selector-unicode-field-values-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_advanced_event_selector_unicode_field_values_round_trip.py", "service": "cloudtrail"} {"check_id": "cloudtrail.advanced-event-selectors-operators-and-field-validation", "deployments": [], "key": "cloudtrail/advanced-event-selectors-operators-and-field-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_advanced_event_selectors_operators_and_field_validation.py", "service": "cloudtrail"} {"check_id": "cloudtrail.advanced-event-selectors-roundtrip", "deployments": [], "key": "cloudtrail/advanced-event-selectors-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrail", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_advanced_event_selectors_roundtrip.py", "service": "cloudtrail"} {"check_id": "cloudtrail.channel-arn-format-validation-vs-notfound", "deployments": [], "key": "cloudtrail/channel-arn-format-validation-vs-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:GetChannel", "cloudtrail:ListChannels", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_channel_arn_format_validation_vs_notfound.py", "service": "cloudtrail"} {"check_id": "cloudtrail.concurrent-put-event-selectors-leaves-one-whole-selector-set", "deployments": [], "key": "cloudtrail/concurrent-put-event-selectors-leaves-one-whole-selector-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_concurrent_put_event_selectors_leaves_one_whole_selector_set.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-describe-delete-trail-lifecycle", "deployments": [], "key": "cloudtrail/create-describe-delete-trail-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:ListTrails", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_describe_delete_trail_lifecycle.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-bucket-without-policy-fails", "deployments": [], "key": "cloudtrail/create-trail-bucket-without-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:GetTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_bucket_without_policy_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-bucket-without-policy-rejected", "deployments": [], "key": "cloudtrail/create-trail-bucket-without-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_bucket_without_policy_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-cloudwatch-logs-arn-validation", "deployments": [], "key": "cloudtrail/create-trail-cloudwatch-logs-arn-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_cloudwatch_logs_arn_validation.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-defaults-and-arn-format", "deployments": [], "key": "cloudtrail/create-trail-defaults-and-arn-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_defaults_and_arn_format.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-duplicate-name-fails", "deployments": [], "key": "cloudtrail/create-trail-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_duplicate_name_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-invalid-name-fails", "deployments": [], "key": "cloudtrail/create-trail-invalid-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:ListTrails", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_invalid_name_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-nonexistent-bucket-fails", "deployments": [], "key": "cloudtrail/create-trail-nonexistent-bucket-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:ListTrails", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_nonexistent_bucket_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-sns-topic-without-policy-fails", "deployments": [], "key": "cloudtrail/create-trail-sns-topic-without-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_sns_topic_without_policy_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.create-trail-unknown-kms-key-rejected", "deployments": [], "key": "cloudtrail/create-trail-unknown-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_create_trail_unknown_kms_key_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.default-event-selectors-on-new-trail", "deployments": [], "key": "cloudtrail/default-event-selectors-on-new-trail", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrail", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_default_event_selectors_on_new_trail.py", "service": "cloudtrail"} {"check_id": "cloudtrail.deploy-trail-cloudformation-behaves", "deployments": [], "key": "cloudtrail/deploy-trail-cloudformation-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:DeleteObjects", "s3:ListObjectVersions", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_deploy_trail_cloudformation_behaves.py", "service": "cloudtrail"} {"check_id": "cloudtrail.deploy-trail-cloudformation-logging-behaves", "deployments": [], "key": "cloudtrail/deploy-trail-cloudformation-logging-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudtrail:DescribeTrails", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrailStatus", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudtrail/check_deploy_trail_cloudformation_logging_behaves.py", "service": "cloudtrail"} {"check_id": "cloudtrail.describe-trails-unknown-name-returns-empty", "deployments": [], "key": "cloudtrail/describe-trails-unknown-name-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_describe_trails_unknown_name_returns_empty.py", "service": "cloudtrail"} {"check_id": "cloudtrail.e2e-trail-create-log-lookup-delete", "deployments": [], "key": "cloudtrail/e2e-trail-create-log-lookup-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:ListTags", "cloudtrail:LookupEvents", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_e2e_trail_create_log_lookup_delete.py", "service": "cloudtrail"} {"check_id": "cloudtrail.e2e-trail-log-event-lookup-teardown", "deployments": [], "key": "cloudtrail/e2e-trail-log-event-lookup-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_e2e_trail_log_event_lookup_teardown.py", "service": "cloudtrail"} {"check_id": "cloudtrail.e2e-trail-logging-lookup-events-consequence", "deployments": [], "key": "cloudtrail/e2e-trail-logging-lookup-events-consequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_e2e_trail_logging_lookup_events_consequence.py", "service": "cloudtrail"} {"check_id": "cloudtrail.event-history-is-independent-of-the-trail-lifecycle", "deployments": [], "key": "cloudtrail/event-history-is-independent-of-the-trail-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_event_history_is_independent_of_the_trail_lifecycle.py", "service": "cloudtrail"} {"check_id": "cloudtrail.event-selectors-empty-list-vs-absent-field-preserved", "deployments": [], "key": "cloudtrail/event-selectors-empty-list-vs-absent-field-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_event_selectors_empty_list_vs_absent_field_preserved.py", "service": "cloudtrail"} {"check_id": "cloudtrail.event-selectors-exceeds-limit-rejected", "deployments": [], "key": "cloudtrail/event-selectors-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_event_selectors_exceeds_limit_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.event-selectors-quota-exceeded-rejected", "deployments": [], "key": "cloudtrail/event-selectors-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_event_selectors_quota_exceeded_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.event-selectors-unicode-field-round-trip", "deployments": [], "key": "cloudtrail/event-selectors-unicode-field-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_event_selectors_unicode_field_round_trip.py", "service": "cloudtrail"} {"check_id": "cloudtrail.get-insight-selectors-not-enabled-fails", "deployments": [], "key": "cloudtrail/get-insight-selectors-not-enabled-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:PutInsightSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_get_insight_selectors_not_enabled_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.get-resource-policy-invalid-arn-fails", "deployments": [], "key": "cloudtrail/get-resource-policy-invalid-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:GetResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_get_resource_policy_invalid_arn_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.get-trail-status-delivery-field-absence-and-dual-representation", "deployments": [], "key": "cloudtrail/get-trail-status-delivery-field-absence-and-dual-representation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_get_trail_status_delivery_field_absence_and_dual_representation.py", "service": "cloudtrail"} {"check_id": "cloudtrail.insight-selectors-empty-vs-absent-preserved", "deployments": [], "key": "cloudtrail/insight-selectors-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:PutInsightSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_insight_selectors_empty_vs_absent_preserved.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-data-invalid-parameter-rejected", "deployments": [], "key": "cloudtrail/list-insights-data-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListInsightsData", "cloudtrail:PutInsightSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_list_insights_data_invalid_parameter_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-data-malformed-parameter-rejected", "deployments": [], "key": "cloudtrail/list-insights-data-malformed-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListInsightsData", "cloudtrail:PutInsightSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_list_insights_data_malformed_parameter_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-data-not-enabled-unsupported-operation", "deployments": [], "key": "cloudtrail/list-insights-data-not-enabled-unsupported-operation", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:ListInsightsData", "cloudtrail:PutInsightSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_list_insights_data_not_enabled_unsupported_operation.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-data-operation-not-permitted-unreachable", "deployments": [], "key": "cloudtrail/list-insights-data-operation-not-permitted-unreachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:ListInsightsData", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_list_insights_data_operation_not_permitted_unreachable.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-data-permission-denied", "deployments": [], "key": "cloudtrail/list-insights-data-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListInsightsData", "cloudtrail:PutInsightSelectors", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_list_insights_data_permission_denied.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-metric-data-invalid-event-source-rejected", "deployments": [], "key": "cloudtrail/list-insights-metric-data-invalid-event-source-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:ListInsightsMetricData"], "path": "behavioral/cloudtrail/check_list_insights_metric_data_invalid_event_source_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-metric-data-reflects-dashboard-activity", "deployments": [], "key": "cloudtrail/list-insights-metric-data-reflects-dashboard-activity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListInsightsMetricData", "cloudtrail:PutEventSelectors", "cloudtrail:PutInsightSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_list_insights_metric_data_reflects_dashboard_activity.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-metric-data-shape", "deployments": [], "key": "cloudtrail/list-insights-metric-data-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:ListInsightsMetricData"], "path": "behavioral/cloudtrail/check_list_insights_metric_data_shape.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-insights-metric-data-time-ordering", "deployments": [], "key": "cloudtrail/list-insights-metric-data-time-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListInsightsMetricData", "cloudtrail:PutEventSelectors", "cloudtrail:PutInsightSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_list_insights_metric_data_time_ordering.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-public-keys-shape-and-time-range-validation", "deployments": [], "key": "cloudtrail/list-public-keys-shape-and-time-range-validation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:ListPublicKeys"], "path": "behavioral/cloudtrail/check_list_public_keys_shape_and_time_range_validation.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-public-keys-time-range-window", "deployments": [], "key": "cloudtrail/list-public-keys-time-range-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:ListPublicKeys"], "path": "behavioral/cloudtrail/check_list_public_keys_time_range_window.py", "service": "cloudtrail"} {"check_id": "cloudtrail.list-tags-multi-arn-positional-binding", "deployments": [], "key": "cloudtrail/list-tags-multi-arn-positional-binding", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_list_tags_multi_arn_positional_binding.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-cloudtrail-event-is-json-string", "deployments": [], "key": "cloudtrail/lookup-events-cloudtrail-event-is-json-string", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_lookup_events_cloudtrail_event_is_json_string.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-invalid-event-category-fails", "deployments": [], "key": "cloudtrail/lookup-events-invalid-event-category-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents"], "path": "behavioral/cloudtrail/check_lookup_events_invalid_event_category_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-invalid-next-token-fails", "deployments": [], "key": "cloudtrail/lookup-events-invalid-next-token-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents"], "path": "behavioral/cloudtrail/check_lookup_events_invalid_next_token_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-invalid-time-range-fails", "deployments": [], "key": "cloudtrail/lookup-events-invalid-time-range-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents"], "path": "behavioral/cloudtrail/check_lookup_events_invalid_time_range_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-max-results-bound-and-token-stability", "deployments": [], "key": "cloudtrail/lookup-events-max-results-bound-and-token-stability", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents"], "path": "behavioral/cloudtrail/check_lookup_events_max_results_bound_and_token_stability.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-ordering-and-shape", "deployments": [], "key": "cloudtrail/lookup-events-ordering-and-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_lookup_events_ordering_and_shape.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-read-only-filter-partitions-my-own-read-and-write", "deployments": [], "key": "cloudtrail/lookup-events-read-only-filter-partitions-my-own-read-and-write", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_lookup_events_read_only_filter_partitions_my_own_read_and_write.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-records-a-denied-call-with-errorcode-and-correlates-the-sdk-request-id", "deployments": [], "key": "cloudtrail/lookup-events-records-a-denied-call-with-errorcode-and-correlates-the-sdk-request-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_lookup_events_records_a_denied_call_with_errorcode_and_correlates_the_sdk_request_id.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-records-the-transport-details-of-my-own-call", "deployments": [], "key": "cloudtrail/lookup-events-records-the-transport-details-of-my-own-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents"], "path": "behavioral/cloudtrail/check_lookup_events_records_the_transport_details_of_my_own_call.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-returns-the-record-for-my-own-api-call", "deployments": [], "key": "cloudtrail/lookup-events-returns-the-record-for-my-own-api-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_lookup_events_returns_the_record_for_my_own_api_call.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-secondary-attribute-indexes-agree-on-my-own-event", "deployments": [], "key": "cloudtrail/lookup-events-secondary-attribute-indexes-agree-on-my-own-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents"], "path": "behavioral/cloudtrail/check_lookup_events_secondary_attribute_indexes_agree_on_my_own_event.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-separates-an-iam-user-identity-from-an-assumed-role-identity", "deployments": [], "key": "cloudtrail/lookup-events-separates-an-iam-user-identity-from-an-assumed-role-identity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutRolePolicy", "iam:PutUserPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_lookup_events_separates_an_iam_user_identity_from_an_assumed_role_identity.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-single-lookup-attribute-enforced", "deployments": [], "key": "cloudtrail/lookup-events-single-lookup-attribute-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents"], "path": "behavioral/cloudtrail/check_lookup_events_single_lookup_attribute_enforced.py", "service": "cloudtrail"} {"check_id": "cloudtrail.lookup-events-window-boundary-is-exact-and-future-window-is-empty", "deployments": [], "key": "cloudtrail/lookup-events-window-boundary-is-exact-and-future-window-is-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents"], "path": "behavioral/cloudtrail/check_lookup_events_window_boundary_is_exact_and_future_window_is_empty.py", "service": "cloudtrail"} {"check_id": "cloudtrail.mutating-ops-unknown-trail-fail", "deployments": [], "key": "cloudtrail/mutating-ops-unknown-trail-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:ListTrails", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_mutating_ops_unknown_trail_fail.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-add-tags", "deployments": [], "key": "cloudtrail/op-contract-add-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_add_tags.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-create-trail", "deployments": [], "key": "cloudtrail/op-contract-create-trail", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_create_trail.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-delete-trail", "deployments": [], "key": "cloudtrail/op-contract-delete-trail", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:ListTrails", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_delete_trail.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-describe-trails", "deployments": [], "key": "cloudtrail/op-contract-describe-trails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_describe_trails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-get-event-selectors", "deployments": [], "key": "cloudtrail/op-contract-get-event-selectors", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_get_event_selectors.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-get-insight-selectors", "deployments": [], "key": "cloudtrail/op-contract-get-insight-selectors", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:PutEventSelectors", "cloudtrail:PutInsightSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_get_insight_selectors.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-get-trail", "deployments": [], "key": "cloudtrail/op-contract-get-trail", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_get_trail.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-get-trail-status", "deployments": [], "key": "cloudtrail/op-contract-get-trail-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_get_trail_status.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-list-tags", "deployments": [], "key": "cloudtrail/op-contract-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_list_tags.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-list-trails", "deployments": [], "key": "cloudtrail/op-contract-list-trails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTrails", "cloudtrail:StopLogging", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_list_trails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-lookup-events", "deployments": [], "key": "cloudtrail/op-contract-lookup-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_lookup_events.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-put-event-selectors", "deployments": [], "key": "cloudtrail/op-contract-put-event-selectors", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_put_event_selectors.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-remove-tags", "deployments": [], "key": "cloudtrail/op-contract-remove-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:RemoveTags", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_remove_tags.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-start-logging", "deployments": [], "key": "cloudtrail/op-contract-start-logging", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_start_logging.py", "service": "cloudtrail"} {"check_id": "cloudtrail.op-contract-stop-logging", "deployments": [], "key": "cloudtrail/op-contract-stop-logging", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_op_contract_stop_logging.py", "service": "cloudtrail"} {"check_id": "cloudtrail.put-event-selectors-invalid-fails", "deployments": [], "key": "cloudtrail/put-event-selectors-invalid-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_put_event_selectors_invalid_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.put-event-selectors-replaces-not-appends", "deployments": [], "key": "cloudtrail/put-event-selectors-replaces-not-appends", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_put_event_selectors_replaces_not_appends.py", "service": "cloudtrail"} {"check_id": "cloudtrail.put-get-event-selectors-roundtrip", "deployments": [], "key": "cloudtrail/put-get-event-selectors-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_put_get_event_selectors_roundtrip.py", "service": "cloudtrail"} {"check_id": "cloudtrail.put-get-insight-selectors-roundtrip", "deployments": [], "key": "cloudtrail/put-get-insight-selectors-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:GetTrail", "cloudtrail:PutInsightSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_put_get_insight_selectors_roundtrip.py", "service": "cloudtrail"} {"check_id": "cloudtrail.put-insight-selectors-insufficient-s3-policy-fails", "deployments": [], "key": "cloudtrail/put-insight-selectors-insufficient-s3-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:PutInsightSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_put_insight_selectors_insufficient_s3_policy_fails.py", "service": "cloudtrail"} {"check_id": "cloudtrail.put-insight-selectors-rejects-insufficient-kms-policy", "deployments": [], "key": "cloudtrail/put-insight-selectors-rejects-insufficient-kms-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:GetTrail", "cloudtrail:PutInsightSelectors", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_put_insight_selectors_rejects_insufficient_kms_policy.py", "service": "cloudtrail"} {"check_id": "cloudtrail.put-insight-selectors-unsupported-type-rejected", "deployments": [], "key": "cloudtrail/put-insight-selectors-unsupported-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetInsightSelectors", "cloudtrail:PutInsightSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_put_insight_selectors_unsupported_type_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.rejected-put-event-selectors-preserves-a-non-default-selector-set", "deployments": [], "key": "cloudtrail/rejected-put-event-selectors-preserves-a-non-default-selector-set", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrail", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_rejected_put_event_selectors_preserves_a_non_default_selector_set.py", "service": "cloudtrail"} {"check_id": "cloudtrail.start-logging-revoked-bucket-permission-denied", "deployments": [], "key": "cloudtrail/start-logging-revoked-bucket-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_start_logging_revoked_bucket_permission_denied.py", "service": "cloudtrail"} {"check_id": "cloudtrail.start-stop-logging-idempotency", "deployments": [], "key": "cloudtrail/start-stop-logging-idempotency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_start_stop_logging_idempotency.py", "service": "cloudtrail"} {"check_id": "cloudtrail.start-stop-logging-transitions", "deployments": [], "key": "cloudtrail/start-stop-logging-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_start_stop_logging_transitions.py", "service": "cloudtrail"} {"check_id": "cloudtrail.tag-value-unicode-and-empty-round-trip", "deployments": [], "key": "cloudtrail/tag-value-unicode-and-empty-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_tag_value_unicode_and_empty_round_trip.py", "service": "cloudtrail"} {"check_id": "cloudtrail.trail-concurrent-create-same-name-exactly-one-succeeds", "deployments": [], "key": "cloudtrail/trail-concurrent-create-same-name-exactly-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_trail_concurrent_create_same_name_exactly_one_succeeds.py", "service": "cloudtrail"} {"check_id": "cloudtrail.trail-concurrent-update-last-writer-wins", "deployments": [], "key": "cloudtrail/trail-concurrent-update-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_trail_concurrent_update_last_writer_wins.py", "service": "cloudtrail"} {"check_id": "cloudtrail.trail-creation-on-unpolicied-bucket-rejected-and-succeeds-once-policied", "deployments": [], "key": "cloudtrail/trail-creation-on-unpolicied-bucket-rejected-and-succeeds-once-policied", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrail", "cloudtrail:ListTrails", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/cloudtrail/check_trail_creation_on_unpolicied_bucket_rejected_and_succeeds_once_policied.py", "service": "cloudtrail"} {"check_id": "cloudtrail.trail-delivers-a-gzipped-log-file-to-the-documented-s3-key-layout", "deployments": [], "key": "cloudtrail/trail-delivers-a-gzipped-log-file-to-the-documented-s3-key-layout", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_trail_delivers_a_gzipped_log_file_to_the_documented_s3_key_layout.py", "service": "cloudtrail"} {"check_id": "cloudtrail.trail-event-selectors-reject-both-basic-and-advanced", "deployments": [], "key": "cloudtrail/trail-event-selectors-reject-both-basic-and-advanced", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:PutEventSelectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/cloudtrail/check_trail_event_selectors_reject_both_basic_and_advanced.py", "service": "cloudtrail"} {"check_id": "cloudtrail.trail-not-found-errors", "deployments": [], "key": "cloudtrail/trail-not-found-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus", "cloudtrail:ListTrails", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_trail_not_found_errors.py", "service": "cloudtrail"} {"check_id": "cloudtrail.trail-tags-unicode-and-empty-value-preserved", "deployments": [], "key": "cloudtrail/trail-tags-unicode-and-empty-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:ListTags", "cloudtrail:RemoveTags", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_trail_tags_unicode_and_empty_value_preserved.py", "service": "cloudtrail"} {"check_id": "cloudtrail.update-event-data-store-during-active-ingestion-wrong-state-rejected", "deployments": [], "key": "cloudtrail/update-event-data-store-during-active-ingestion-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_update_event_data_store_during_active_ingestion_wrong_state_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.update-trail-multi-region-flip-preserves-configuration", "deployments": [], "key": "cloudtrail/update-trail-multi-region-flip-preserves-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:AddTags", "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrail", "cloudtrail:ListTags", "cloudtrail:ListTrails", "cloudtrail:PutEventSelectors", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_update_trail_multi_region_flip_preserves_configuration.py", "service": "cloudtrail"} {"check_id": "cloudtrail.update-trail-mutations", "deployments": [], "key": "cloudtrail/update-trail-mutations", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_update_trail_mutations.py", "service": "cloudtrail"} {"check_id": "cloudtrail.update-trail-nonexistent-rejected", "deployments": [], "key": "cloudtrail/update-trail-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrail", "cloudtrail:ListTrails", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_update_trail_nonexistent_rejected.py", "service": "cloudtrail"} {"check_id": "cloudtrail.update-trail-success-contract", "deployments": [], "key": "cloudtrail/update-trail-success-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:UpdateTrail", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail/check_update_trail_success_contract.py", "service": "cloudtrail"} {"check_id": "cloudtrail__codepipeline.a-manual-approval-decision-is-audited-with-the-reviewer-role-not-the-pipeline", "deployments": [], "key": "cloudtrail__codepipeline/a-manual-approval-decision-is-audited-with-the-reviewer-role-not-the-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__codepipeline/check_a_manual_approval_decision_is_audited_with_the_reviewer_role_not_the_pipeline.py", "service": "cloudtrail__codepipeline"} {"check_id": "cloudtrail__cognito-identity.identity-pool-data-events-are-delivered-only-once-a-selector-names-them", "deployments": [], "key": "cloudtrail__cognito-identity/identity-pool-data-events-are-delivered-only-once-a-selector-names-them", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:TagResource", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-identity/check_identity_pool_data_events_are_delivered_only_once_a_selector_names_them.py", "service": "cloudtrail__cognito-identity"} {"check_id": "cloudtrail__cognito-identity.obs-cognito-identity-1-describe-missing-pool-is-rejected-and-audited-with-its-error", "deployments": [], "key": "cloudtrail__cognito-identity/obs-cognito-identity-1-describe-missing-pool-is-rejected-and-audited-with-its-error", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cloudtrail__cognito-identity/check_obs_cognito_identity_1_describe_missing_pool_is_rejected_and_audited_with_its_error.py", "service": "cloudtrail__cognito-identity"} {"check_id": "cloudtrail__cognito-identity.obs-cognito-identity-1-set-identity-pool-roles-audit-records-carry-each-calls-role-map", "deployments": [], "key": "cloudtrail__cognito-identity/obs-cognito-identity-1-set-identity-pool-roles-audit-records-carry-each-calls-role-map", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-identity/check_obs_cognito_identity_1_set_identity_pool_roles_audit_records_carry_each_calls_role_map.py", "service": "cloudtrail__cognito-identity"} {"check_id": "cloudtrail__cognito-identity.obs-cognito-identity-2-identity-pool-data-events-are-delivered-redacted-and-never-in-event-history", "deployments": [], "key": "cloudtrail__cognito-identity/obs-cognito-identity-2-identity-pool-data-events-are-delivered-redacted-and-never-in-event-history", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:UnlinkIdentity", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-identity/check_obs_cognito_identity_2_identity_pool_data_events_are_delivered_redacted_and_never_in_event_history.py", "service": "cloudtrail__cognito-identity"} {"check_id": "cloudtrail__cognito-identity__s3.xsvc-cognito-identity-1-guest-and-authenticated-sessions-audited-with-own-amr-and-role", "deployments": [], "key": "cloudtrail__cognito-identity__s3/xsvc-cognito-identity-1-guest-and-authenticated-sessions-audited-with-own-amr-and-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:ListBuckets", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-identity__s3/check_xsvc_cognito_identity_1_guest_and_authenticated_sessions_audited_with_own_amr_and_role.py", "service": "cloudtrail__cognito-identity__s3"} {"check_id": "cloudtrail__cognito-identity__s3.xsvc-cognito-identity-1-vended-session-denied-list-buckets-audited-with-its-federation", "deployments": [], "key": "cloudtrail__cognito-identity__s3/xsvc-cognito-identity-1-vended-session-denied-list-buckets-audited-with-its-federation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:ListBuckets", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-identity__s3/check_xsvc_cognito_identity_1_vended_session_denied_list_buckets_audited_with_its_federation.py", "service": "cloudtrail__cognito-identity__s3"} {"check_id": "cloudtrail__cognito-identity__s3.xsvc-cognito-identity-1-vended-session-list-buckets-audited-as-cognito-federation", "deployments": [], "key": "cloudtrail__cognito-identity__s3/xsvc-cognito-identity-1-vended-session-list-buckets-audited-as-cognito-federation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:ListBuckets", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-identity__s3/check_xsvc_cognito_identity_1_vended_session_list_buckets_audited_as_cognito_federation.py", "service": "cloudtrail__cognito-identity__s3"} {"check_id": "cloudtrail__cognito-identity__sts.obs-cognito-identity-1-role-trusting-another-pool-is-rejected-and-audits-no-failed-assume", "deployments": [], "key": "cloudtrail__cognito-identity__sts/obs-cognito-identity-1-role-trusting-another-pool-is-rejected-and-audits-no-failed-assume", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:UpdateAssumeRolePolicy"], "path": "behavioral/cloudtrail__cognito-identity__sts/check_obs_cognito_identity_1_role_trusting_another_pool_is_rejected_and_audits_no_failed_assume.py", "service": "cloudtrail__cognito-identity__sts"} {"check_id": "cloudtrail__cognito-identity__sts.obs-cognito-identity-1-vended-credentials-are-audited-as-assume-role-with-web-identity", "deployments": [], "key": "cloudtrail__cognito-identity__sts/obs-cognito-identity-1-vended-credentials-are-audited-as-assume-role-with-web-identity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-identity__sts/check_obs_cognito_identity_1_vended_credentials_are_audited_as_assume_role_with_web_identity.py", "service": "cloudtrail__cognito-identity__sts"} {"check_id": "cloudtrail__cognito-idp.cognito-secret-request-parameters-are-hidden-in-the-delivered-record", "deployments": [], "key": "cloudtrail__cognito-idp/cognito-secret-request-parameters-are-hidden-in-the-delivered-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:InitiateAuth", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-idp/check_cognito_secret_request_parameters_are_hidden_in_the_delivered_record.py", "service": "cloudtrail__cognito-idp"} {"check_id": "cloudtrail__cognito-idp.obs-cognito-idp-3-failed-and-denied-admin-get-user-calls-are-audited-with-their-error-code", "deployments": [], "key": "cloudtrail__cognito-idp/obs-cognito-idp-3-failed-and-denied-admin-get-user-calls-are-audited-with-their-error-code", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-idp/check_obs_cognito_idp_3_failed_and_denied_admin_get_user_calls_are_audited_with_their_error_code.py", "service": "cloudtrail__cognito-idp"} {"check_id": "cloudtrail__cognito-idp__events__sqs.xsvc-cognito-idp-1-admin-create-user-routes-only-to-its-own-rule-without-password-material", "deployments": [], "key": "cloudtrail__cognito-idp__events__sqs/xsvc-cognito-idp-1-admin-create-user-routes-only-to-its-own-rule-without-password-material", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__cognito-idp__events__sqs/check_xsvc_cognito_idp_1_admin_create_user_routes_only_to_its_own_rule_without_password_material.py", "service": "cloudtrail__cognito-idp__events__sqs"} {"check_id": "cloudtrail__cognito-idp__events__sqs.xsvc-cognito-idp-1-put-events-forging-an-aws-cognito-idp-call-is-rejected", "deployments": [], "key": "cloudtrail__cognito-idp__events__sqs/xsvc-cognito-idp-1-put-events-forging-an-aws-cognito-idp-call-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudtrail__cognito-idp__events__sqs/check_xsvc_cognito_idp_1_put_events_forging_an_aws_cognito_idp_call_is_rejected.py", "service": "cloudtrail__cognito-idp__events__sqs"} {"check_id": "cloudtrail__dynamodb.dynamodb-data-resource-selector-is-stored-and-its-data-events-stay-out-of-event-history", "deployments": [], "key": "cloudtrail__dynamodb/dynamodb-data-resource-selector-is-stored-and-its-data-events-stay-out-of-event-history", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__dynamodb/check_dynamodb_data_resource_selector_is_stored_and_its_data_events_stay_out_of_event_history.py", "service": "cloudtrail__dynamodb"} {"check_id": "cloudtrail__dynamodb.obs-dynamodb-1-cloudtrail-dynamodb-create-table-success-and-rejected-calls-are-audited", "deployments": [], "key": "cloudtrail__dynamodb/obs-dynamodb-1-cloudtrail-dynamodb-create-table-success-and-rejected-calls-are-audited", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__dynamodb/check_obs_dynamodb_1_cloudtrail_dynamodb_create_table_success_and_rejected_calls_are_audited.py", "service": "cloudtrail__dynamodb"} {"check_id": "cloudtrail__dynamodb__events__sqs.xsvc-dynamodb-3-create-table-reaches-only-its-rule-not-the-delete-table-near-miss", "deployments": [], "key": "cloudtrail__dynamodb__events__sqs/xsvc-dynamodb-3-create-table-reaches-only-its-rule-not-the-delete-table-near-miss", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__dynamodb__events__sqs/check_xsvc_dynamodb_3_create_table_reaches_only_its_rule_not_the_delete_table_near_miss.py", "service": "cloudtrail__dynamodb__events__sqs"} {"check_id": "cloudtrail__ec2.obs-ec2-3-rejected-ec2-calls-audit-client-error-codes-with-no-response-elements", "deployments": [], "key": "cloudtrail__ec2/obs-ec2-3-rejected-ec2-calls-audit-client-error-codes-with-no-response-elements", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/cloudtrail__ec2/check_obs_ec2_3_rejected_ec2_calls_audit_client_error_codes_with_no_response_elements.py", "service": "cloudtrail__ec2"} {"check_id": "cloudtrail__ec2.obs-ec2-3-run-and-terminate-instances-audit-records-join-the-sdk-request-id", "deployments": [], "key": "cloudtrail__ec2/obs-ec2-3-run-and-terminate-instances-audit-records-join-the-sdk-request-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/cloudtrail__ec2/check_obs_ec2_3_run_and_terminate_instances_audit_records_join_the_sdk_request_id.py", "service": "cloudtrail__ec2"} {"check_id": "cloudtrail__ecr__kms.a-kms-encrypted-repository-is-audited-as-ecr-acting-on-the-callers-behalf", "deployments": [], "key": "cloudtrail__ecr__kms/a-kms-encrypted-repository-is-audited-as-ecr-acting-on-the-callers-behalf", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "kms:CreateKey", "kms:ListGrants", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__ecr__kms/check_a_kms_encrypted_repository_is_audited_as_ecr_acting_on_the_callers_behalf.py", "service": "cloudtrail__ecr__kms"} {"check_id": "cloudtrail__elbv2.obs-elbv2-3-idempotent-create-replay-is-audited-as-a-second-success-with-the-same-arn", "deployments": [], "key": "cloudtrail__elbv2/obs-elbv2-3-idempotent-create-replay-is-audited-as-a-second-success-with-the-same-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__elbv2/check_obs_elbv2_3_idempotent_create_replay_is_audited_as_a_second_success_with_the_same_arn.py", "service": "cloudtrail__elbv2"} {"check_id": "cloudtrail__elbv2.obs-elbv2-3-refused-target-group-calls-are-audited-with-exception-suffixed-codes", "deployments": [], "key": "cloudtrail__elbv2/obs-elbv2-3-refused-target-group-calls-are-audited-with-exception-suffixed-codes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags", "elbv2:DescribeTargetGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__elbv2/check_obs_elbv2_3_refused_target_group_calls_are_audited_with_exception_suffixed_codes.py", "service": "cloudtrail__elbv2"} {"check_id": "cloudtrail__events__iam__sqs.xsvc-iam-1-iam-role-events-route-by-event-name-and-only-in-us-east-1", "deployments": [], "key": "cloudtrail__events__iam__sqs/xsvc-iam-1-iam-role-events-route-by-event-name-and-only-in-us-east-1", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrailStatus", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__events__iam__sqs/check_xsvc_iam_1_iam_role_events_route_by_event_name_and_only_in_us_east_1.py", "service": "cloudtrail__events__iam__sqs"} {"check_id": "cloudtrail__events__sqs.read-only-management-events-reach-a-rule-only-in-the-all-management-events-state", "deployments": [], "key": "cloudtrail__events__sqs/read-only-management-events-reach-a-rule-only-in-the-all-management-events-state", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__events__sqs/check_read_only_management_events_reach_a_rule_only_in_the_all_management_events_state.py", "service": "cloudtrail__events__sqs"} {"check_id": "cloudtrail__iam.iam-write-is-audited-only-in-the-partition-leader-region", "deployments": [], "key": "cloudtrail__iam/iam-write-is-audited-only-in-the-partition-leader-region", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__iam/check_iam_write_is_audited_only_in_the_partition_leader_region.py", "service": "cloudtrail__iam"} {"check_id": "cloudtrail__iam.obs-iam-1-absent-user-get-is-audited-as-no-such-entity-exception", "deployments": [], "key": "cloudtrail__iam/obs-iam-1-absent-user-get-is-audited-as-no-such-entity-exception", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "iam:CreateUser", "iam:DeleteUser", "iam:GetUser"], "path": "behavioral/cloudtrail__iam/check_obs_iam_1_absent_user_get_is_audited_as_no_such_entity_exception.py", "service": "cloudtrail__iam"} {"check_id": "cloudtrail__iam.obs-iam-1-access-key-secret-and-login-password-are-omitted-from-the-audit-record", "deployments": [], "key": "cloudtrail__iam/obs-iam-1-access-key-secret-and-login-password-are-omitted-from-the-audit-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "iam:CreateAccessKey", "iam:CreateLoginProfile", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteLoginProfile", "iam:DeleteUser", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__iam/check_obs_iam_1_access_key_secret_and_login_password_are_omitted_from_the_audit_record.py", "service": "cloudtrail__iam"} {"check_id": "cloudtrail__iam.obs-iam-1-denied-create-user-is-audited-as-access-denied-naming-the-session", "deployments": [], "key": "cloudtrail__iam/obs-iam-1-denied-create-user-is-audited-as-access-denied-naming-the-session", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:GetRole", "iam:GetUser", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__iam/check_obs_iam_1_denied_create_user_is_audited_as_access_denied_naming_the_session.py", "service": "cloudtrail__iam"} {"check_id": "cloudtrail__iam.obs-iam-1-read-only-classification-and-response-elements-follow-the-operation", "deployments": [], "key": "cloudtrail__iam/obs-iam-1-read-only-classification-and-response-elements-follow-the-operation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:GetUser", "iam:ListRoles", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__iam/check_obs_iam_1_read_only_classification_and_response_elements_follow_the_operation.py", "service": "cloudtrail__iam"} {"check_id": "cloudtrail__kms.kms-encryption-context-and-call-count-are-observable-only-at-the-trail", "deployments": [], "key": "cloudtrail__kms/kms-encryption-context-and-call-count-are-observable-only-at-the-trail", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "kms:CreateKey", "kms:Encrypt", "kms:GetKeyLastUsage", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__kms/check_kms_encryption_context_and_call_count_are_observable_only_at_the_trail.py", "service": "cloudtrail__kms"} {"check_id": "cloudtrail__kms__sqs.data-key-reuse-period-bounds-the-generate-data-key-calls-a-send-burst-makes", "deployments": [], "key": "cloudtrail__kms__sqs/data-key-reuse-period-bounds-the-generate-data-key-calls-a-send-burst-makes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudtrail:LookupEvents", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__kms__sqs/check_data_key_reuse_period_bounds_the_generate_data_key_calls_a_send_burst_makes.py", "service": "cloudtrail__kms__sqs"} {"check_id": "cloudtrail__lambda-core.two-services-sharing-one-event-source-stay-distinguishable-in-the-audit-record", "deployments": [], "key": "cloudtrail__lambda-core/two-services-sharing-one-event-source-stay-distinguishable-in-the-audit-record", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda:DeleteLayerVersion", "lambda:PublishLayerVersion", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__lambda-core/check_two_services_sharing_one_event_source_stay_distinguishable_in_the_audit_record.py", "service": "cloudtrail__lambda-core"} {"check_id": "cloudtrail__lambda.obs-lambda-3-duplicate-permission-rejected-and-audited", "deployments": [], "key": "cloudtrail__lambda/obs-lambda-3-duplicate-permission-rejected-and-audited", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__lambda/check_obs_lambda_3_duplicate_permission_rejected_and_audited.py", "service": "cloudtrail__lambda"} {"check_id": "cloudtrail__lambda.obs-lambda-3-management-events", "deployments": [], "key": "cloudtrail__lambda/obs-lambda-3-management-events", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__lambda/check_obs_lambda_3_management_events.py", "service": "cloudtrail__lambda"} {"check_id": "cloudtrail__lambda__s3.obs-lambda-3-data-events-s3", "deployments": [], "key": "cloudtrail__lambda__s3/obs-lambda-3-data-events-s3", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:LookupEvents", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__lambda__s3/check_obs_lambda_3_data_events_s3.py", "service": "cloudtrail__lambda__s3"} {"check_id": "cloudtrail__rds.obs-rds-3-cloudtrail-redacts-master-password-and-records-instance-not-found", "deployments": [], "key": "cloudtrail__rds/obs-rds-3-cloudtrail-redacts-master-password-and-records-instance-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__rds/check_obs_rds_3_cloudtrail_redacts_master_password_and_records_instance_not_found.py", "service": "cloudtrail__rds"} {"check_id": "cloudtrail__s3.obs-s3-2-arn-prefix-exclusion-withholds-object-data-events", "deployments": [], "key": "cloudtrail__s3/obs-s3-2-arn-prefix-exclusion-withholds-object-data-events", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrailStatus", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__s3/check_obs_s3_2_arn_prefix_exclusion_withholds_object_data_events.py", "service": "cloudtrail__s3"} {"check_id": "cloudtrail__s3.obs-s3-2-lookup-events-records-create-bucket-and-rejected-duplicate", "deployments": [], "key": "cloudtrail__s3/obs-s3-2-lookup-events-records-create-bucket-and-rejected-duplicate", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:GetBucketLocation", "s3:HeadBucket"], "path": "behavioral/cloudtrail__s3/check_obs_s3_2_lookup_events_records_create_bucket_and_rejected_duplicate.py", "service": "cloudtrail__s3"} {"check_id": "cloudtrail__s3.obs-s3-2-object-data-events-record-success-missing-key-and-denied-calls", "deployments": [], "key": "cloudtrail__s3/obs-s3-2-object-data-events-record-success-missing-key-and-denied-calls", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__s3/check_obs_s3_2_object_data_events_record_success_missing_key_and_denied_calls.py", "service": "cloudtrail__s3"} {"check_id": "cloudtrail__s3.write-only-read-write-type-delivers-the-put-and-withholds-the-get", "deployments": [], "key": "cloudtrail__s3/write-only-read-write-type-delivers-the-put-and-withholds-the-get", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrailStatus", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__s3/check_write_only_read_write_type_delivers_the_put_and_withholds_the_get.py", "service": "cloudtrail__s3"} {"check_id": "cloudtrail__stepfunctions.obs-sfn-2-data-selector-logs-start-sync-execution-to-the-trail-prefix-only-after-it-is-added", "deployments": [], "key": "cloudtrail__stepfunctions/obs-sfn-2-data-selector-logs-start-sync-execution-to-the-trail-prefix-only-after-it-is-added", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetEventSelectors", "cloudtrail:GetTrailStatus", "cloudtrail:PutEventSelectors", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:StartSyncExecution", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__stepfunctions/check_obs_sfn_2_data_selector_logs_start_sync_execution_to_the_trail_prefix_only_after_it_is_added.py", "service": "cloudtrail__stepfunctions"} {"check_id": "cloudtrail__stepfunctions.obs-sfn-2-lookup-events-audits-start-execution-and-a-rejected-describe-state-machine", "deployments": [], "key": "cloudtrail__stepfunctions/obs-sfn-2-lookup-events-audits-start-execution-and-a-rejected-describe-state-machine", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__stepfunctions/check_obs_sfn_2_lookup_events_audits_start_execution_and_a_rejected_describe_state_machine.py", "service": "cloudtrail__stepfunctions"} {"check_id": "cloudtrail__sts.source-identity-propagates-from-assume-role-into-the-sessions-own-audit-records", "deployments": [], "key": "cloudtrail__sts/source-identity-propagates-from-assume-role-into-the-sessions-own-audit-records", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudtrail__sts/check_source_identity_propagates_from_assume_role_into_the_sessions_own_audit_records.py", "service": "cloudtrail__sts"} {"check_id": "cloudwatch.alarm-actions-disabled-suppresses-state-triggered-action", "deployments": [], "key": "cloudwatch/alarm-actions-disabled-suppresses-state-triggered-action", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_alarm_actions_disabled_suppresses_state_triggered_action.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-actions-enable-disable", "deployments": [], "key": "cloudwatch/alarm-actions-enable-disable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_actions_enable_disable.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-actions-enable-disable-toggle", "deployments": [], "key": "cloudwatch/alarm-actions-enable-disable-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_actions_enable_disable_toggle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-actions-enabled-toggle-independent-of-state", "deployments": [], "key": "cloudwatch/alarm-actions-enabled-toggle-independent-of-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_actions_enabled_toggle_independent_of_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-actions-toggle-independent-of-state", "deployments": [], "key": "cloudwatch/alarm-actions-toggle-independent-of-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_actions_toggle_independent_of_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-appears-in-describe-alarms-for-metric-after-create", "deployments": [], "key": "cloudwatch/alarm-appears-in-describe-alarms-for-metric-after-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_appears_in_describe_alarms_for_metric_after_create.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-composite-and-actions-metric-alarm-onto-composite-name-rejected", "deployments": [], "key": "cloudwatch/alarm-composite-and-actions-metric-alarm-onto-composite-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_composite_and_actions_metric_alarm_onto_composite_name_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-composite-and-actions-ok-and-insufficient-data-functions-are-first-class", "deployments": [], "key": "cloudwatch/alarm-composite-and-actions-ok-and-insufficient-data-functions-are-first-class", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_composite_and_actions_ok_and_insufficient_data_functions_are_first_class.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-composite-and-actions-or-and-not-compose-as-written", "deployments": [], "key": "cloudwatch/alarm-composite-and-actions-or-and-not-compose-as-written", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_composite_and_actions_or_and_not_compose_as_written.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-composite-and-actions-suppressor-naming-missing-alarm-rejected", "deployments": [], "key": "cloudwatch/alarm-composite-and-actions-suppressor-naming-missing-alarm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_composite_and_actions_suppressor_naming_missing_alarm_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-configuration-update-history-on-update", "deployments": [], "key": "cloudwatch/alarm-configuration-update-history-on-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_configuration_update_history_on_update.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-contributors-ranking-order", "deployments": [], "key": "cloudwatch/alarm-contributors-ranking-order", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_contributors_ranking_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-datapoints-to-alarm-exceeds-evaluation-periods-rejected", "deployments": [], "key": "cloudwatch/alarm-datapoints-to-alarm-exceeds-evaluation-periods-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_datapoints_to_alarm_exceeds_evaluation_periods_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-delete-referenced-by-composite-rejected", "deployments": [], "key": "cloudwatch/alarm-delete-referenced-by-composite-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm"], "path": "behavioral/cloudwatch/check_alarm_delete_referenced_by_composite_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-delete-rejected-when-referenced-by-composite", "deployments": [], "key": "cloudwatch/alarm-delete-rejected-when-referenced-by-composite", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_delete_rejected_when_referenced_by_composite.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-evaluation-engine-fewer-breaches-than-evaluation-periods-withhold-alarm", "deployments": [], "key": "cloudwatch/alarm-evaluation-engine-fewer-breaches-than-evaluation-periods-withhold-alarm", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_evaluation_engine_fewer_breaches_than_evaluation_periods_withhold_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-evaluation-engine-greater-than-operators-split-at-equal-threshold", "deployments": [], "key": "cloudwatch/alarm-evaluation-engine-greater-than-operators-split-at-equal-threshold", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_evaluation_engine_greater_than_operators_split_at_equal_threshold.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-evaluation-engine-less-than-operators-split-at-equal-threshold", "deployments": [], "key": "cloudwatch/alarm-evaluation-engine-less-than-operators-split-at-equal-threshold", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_evaluation_engine_less_than_operators_split_at_equal_threshold.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-evaluation-engine-metric-math-alarm-evaluates-the-computed-series", "deployments": [], "key": "cloudwatch/alarm-evaluation-engine-metric-math-alarm-evaluates-the-computed-series", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_evaluation_engine_metric_math_alarm_evaluates_the_computed_series.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-evaluation-engine-other-dimension-breaches-withheld-from-alarm", "deployments": [], "key": "cloudwatch/alarm-evaluation-engine-other-dimension-breaches-withheld-from-alarm", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_evaluation_engine_other_dimension_breaches_withheld_from_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-evaluation-engine-state-machine-advances-only-from-published-data", "deployments": [], "key": "cloudwatch/alarm-evaluation-engine-state-machine-advances-only-from-published-data", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_evaluation_engine_state_machine_advances_only_from_published_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-evaluation-engine-statistic-maximum-alarms-where-average-does-not", "deployments": [], "key": "cloudwatch/alarm-evaluation-engine-statistic-maximum-alarms-where-average-does-not", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_evaluation_engine_statistic_maximum_alarms_where_average_does_not.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-evaluation-period-window", "deployments": [], "key": "cloudwatch/alarm-evaluation-period-window", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_evaluation_period_window.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-forced-state-is-transient-real-evaluation-reclaims-it", "deployments": [], "key": "cloudwatch/alarm-forced-state-is-transient-real-evaluation-reclaims-it", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_forced_state_is_transient_real_evaluation_reclaims_it.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-history-chronological-ordering", "deployments": [], "key": "cloudwatch/alarm-history-chronological-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_history_chronological_ordering.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-history-configuration-update-recorded", "deployments": [], "key": "cloudwatch/alarm-history-configuration-update-recorded", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_history_configuration_update_recorded.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-history-records-configuration-update", "deployments": [], "key": "cloudwatch/alarm-history-records-configuration-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_history_records_configuration_update.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-history-records-state-transitions", "deployments": [], "key": "cloudwatch/alarm-history-records-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_history_records_state_transitions.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-history-records-state-update", "deployments": [], "key": "cloudwatch/alarm-history-records-state-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_history_records_state_update.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-history-records-state-updates-in-order", "deployments": [], "key": "cloudwatch/alarm-history-records-state-updates-in-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_history_records_state_updates_in_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-history-state-update-recorded", "deployments": [], "key": "cloudwatch/alarm-history-state-update-recorded", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_history_state_update_recorded.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-m-of-n-holds-at-m-minus-one-and-fires-at-m", "deployments": [], "key": "cloudwatch/alarm-m-of-n-holds-at-m-minus-one-and-fires-at-m", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_m_of_n_holds_at_m_minus_one_and_fires_at_m.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-math-and-anomaly-band-materializes-and-honours-excluded-range", "deployments": [], "key": "cloudwatch/alarm-math-and-anomaly-band-materializes-and-honours-excluded-range", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:GetMetricData", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_math_and_anomaly_band_materializes_and_honours_excluded_range.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-math-and-anomaly-if-expression-alarm-grades-transformed-value", "deployments": [], "key": "cloudwatch/alarm-math-and-anomaly-if-expression-alarm-grades-transformed-value", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_math_and_anomaly_if_expression_alarm_grades_transformed_value.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-math-and-anomaly-raw-input-breach-does-not-fire-expression-alarm", "deployments": [], "key": "cloudwatch/alarm-math-and-anomaly-raw-input-breach-does-not-fire-expression-alarm", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_math_and_anomaly_raw_input_breach_does_not_fire_expression_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-math-and-anomaly-return-data-count-rejected", "deployments": [], "key": "cloudwatch/alarm-math-and-anomaly-return-data-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_math_and_anomaly_return_data_count_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-math-and-anomaly-search-and-undefined-id-rejected", "deployments": [], "key": "cloudwatch/alarm-math-and-anomaly-search-and-undefined-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_math_and_anomaly_search_and_undefined_id_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-missing-data-and-m-of-n-describe-views-echo-the-evaluation-config", "deployments": [], "key": "cloudwatch/alarm-missing-data-and-m-of-n-describe-views-echo-the-evaluation-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_missing_data_and_m_of_n_describe_views_echo_the_evaluation_config.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-missing-data-and-m-of-n-evaluation-horizon-beyond-day-or-week-rejected", "deployments": [], "key": "cloudwatch/alarm-missing-data-and-m-of-n-evaluation-horizon-beyond-day-or-week-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_missing_data_and_m_of_n_evaluation_horizon_beyond_day_or_week_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-missing-data-and-m-of-n-non-consecutive-pair-fires-2-of-3-not-3-of-3", "deployments": [], "key": "cloudwatch/alarm-missing-data-and-m-of-n-non-consecutive-pair-fires-2-of-3-not-3-of-3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_missing_data_and_m_of_n_non_consecutive_pair_fires_2_of_3_not_3_of_3.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-missing-data-and-m-of-n-period-window-slides-by-minute-and-never-evaluates-a-partial-period", "deployments": [], "key": "cloudwatch/alarm-missing-data-and-m-of-n-period-window-slides-by-minute-and-never-evaluates-a-partial-period", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_missing_data_and_m_of_n_period_window_slides_by_minute_and_never_evaluates_a_partial_period.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-missing-data-and-m-of-n-treat-missing-data-four-way-over-one-hole", "deployments": [], "key": "cloudwatch/alarm-missing-data-and-m-of-n-treat-missing-data-four-way-over-one-hole", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_missing_data_and_m_of_n_treat_missing_data_four_way_over_one_hole.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-active-window-boundary-inclusive", "deployments": [], "key": "cloudwatch/alarm-mute-rule-active-window-boundary-inclusive", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_active_window_boundary_inclusive.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-active-window-boundary-second-precision", "deployments": [], "key": "cloudwatch/alarm-mute-rule-active-window-boundary-second-precision", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_active_window_boundary_second_precision.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-active-window-suppresses-actions-mid-ttl", "deployments": [], "key": "cloudwatch/alarm-mute-rule-active-window-suppresses-actions-mid-ttl", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_active_window_suppresses_actions_mid_ttl.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-create-get-list-delete-lifecycle", "deployments": [], "key": "cloudwatch/alarm-mute-rule-create-get-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_create_get_list_delete_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-expiration", "deployments": [], "key": "cloudwatch/alarm-mute-rule-expiration", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_expiration.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-expires-after-ttl", "deployments": [], "key": "cloudwatch/alarm-mute-rule-expires-after-ttl", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_expires_after_ttl.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-lifecycle-create-get-list-delete", "deployments": [], "key": "cloudwatch/alarm-mute-rule-lifecycle-create-get-list-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_lifecycle_create_get_list_delete.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-lifecycle-crud", "deployments": [], "key": "cloudwatch/alarm-mute-rule-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_lifecycle_crud.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-lifecycle-put-get-list-delete", "deployments": [], "key": "cloudwatch/alarm-mute-rule-lifecycle-put-get-list-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_lifecycle_put_get_list_delete.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-put-get-list-delete-lifecycle", "deployments": [], "key": "cloudwatch/alarm-mute-rule-put-get-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_put_get_list_delete_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-schedule-timestamp-preserved", "deployments": [], "key": "cloudwatch/alarm-mute-rule-schedule-timestamp-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_schedule_timestamp_preserved.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-status-computed-from-dates", "deployments": [], "key": "cloudwatch/alarm-mute-rule-status-computed-from-dates", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_status_computed_from_dates.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-status-lifecycle", "deployments": [], "key": "cloudwatch/alarm-mute-rule-status-lifecycle", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_status_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-suppresses-actions-during-window", "deployments": [], "key": "cloudwatch/alarm-mute-rule-suppresses-actions-during-window", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_suppresses_actions_during_window.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-timestamp-microsecond-precision-preserved", "deployments": [], "key": "cloudwatch/alarm-mute-rule-timestamp-microsecond-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_timestamp_microsecond_precision_preserved.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-mute-rule-timestamp-round-trip-preserved", "deployments": [], "key": "cloudwatch/alarm-mute-rule-timestamp-round-trip-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarm_mute_rule_timestamp_round_trip_preserved.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-state-reason-data-invalid-json-rejected", "deployments": [], "key": "cloudwatch/alarm-state-reason-data-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_state_reason_data_invalid_json_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-state-transition-via-set-alarm-state", "deployments": [], "key": "cloudwatch/alarm-state-transition-via-set-alarm-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_state_transition_via_set_alarm_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-state-transitioned-vs-updated-timestamp", "deployments": [], "key": "cloudwatch/alarm-state-transitioned-vs-updated-timestamp", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_alarm_state_transitioned_vs_updated_timestamp.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-unit-and-percentile-traps-alarm-dimensions-are-an-unordered-exact-set", "deployments": [], "key": "cloudwatch/alarm-unit-and-percentile-traps-alarm-dimensions-are-an-unordered-exact-set", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_unit_and_percentile_traps_alarm_dimensions_are_an_unordered_exact_set.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-unit-and-percentile-traps-low-sample-percentile-floor-is-ten-over-one-minus-p", "deployments": [], "key": "cloudwatch/alarm-unit-and-percentile-traps-low-sample-percentile-floor-is-ten-over-one-minus-p", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_unit_and_percentile_traps_low_sample_percentile_floor_is_ten_over_one_minus_p.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-unit-and-percentile-traps-mismatched-unit-alarm-starves-while-series-is-queryable", "deployments": [], "key": "cloudwatch/alarm-unit-and-percentile-traps-mismatched-unit-alarm-starves-while-series-is-queryable", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_unit_and_percentile_traps_mismatched_unit_alarm_starves_while_series_is_queryable.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-unit-and-percentile-traps-never-published-metric-alarm-accepted-and-starves", "deployments": [], "key": "cloudwatch/alarm-unit-and-percentile-traps-never-published-metric-alarm-accepted-and-starves", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_unit_and_percentile_traps_never_published_metric_alarm_accepted_and_starves.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-unit-and-percentile-traps-omitted-unit-matches-any-unit-and-unitless-is-none", "deployments": [], "key": "cloudwatch/alarm-unit-and-percentile-traps-omitted-unit-matches-any-unit-and-unitless-is-none", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_unit_and_percentile_traps_omitted_unit_matches_any_unit_and_unitless_is_none.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-unit-and-percentile-traps-standard-resolution-accepts-sub-minute-period-but-buckets-by-minute", "deployments": [], "key": "cloudwatch/alarm-unit-and-percentile-traps-standard-resolution-accepts-sub-minute-period-but-buckets-by-minute", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_unit_and_percentile_traps_standard_resolution_accepts_sub_minute_period_but_buckets_by_minute.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-unit-and-percentile-traps-statistic-set-percentile-is-empty-not-fabricated", "deployments": [], "key": "cloudwatch/alarm-unit-and-percentile-traps-statistic-set-percentile-is-empty-not-fabricated", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_unit_and_percentile_traps_statistic_set_percentile_is_empty_not_fabricated.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarm-unit-filter-withholds-evaluation-until-the-unit-matches", "deployments": [], "key": "cloudwatch/alarm-unit-filter-withholds-evaluation-until-the-unit-matches", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_alarm_unit_filter_withholds_evaluation_until_the_unit_matches.py", "service": "cloudwatch"} {"check_id": "cloudwatch.alarms-for-metric-reflects-created-alarms", "deployments": [], "key": "cloudwatch/alarms-for-metric-reflects-created-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_alarms_for_metric_reflects_created_alarms.py", "service": "cloudwatch"} {"check_id": "cloudwatch.anomaly-band-alarm-cites-band-high-recreates-its-deleted-detector-and-fires-out-of-band", "deployments": [], "key": "cloudwatch/anomaly-band-alarm-cites-band-high-recreates-its-deleted-detector-and-fires-out-of-band", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:GetMetricData", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_anomaly_band_alarm_cites_band_high_recreates_its_deleted_detector_and_fires_out_of_band.py", "service": "cloudwatch"} {"check_id": "cloudwatch.anomaly-detection-band-alarm-threshold-metric-id", "deployments": [], "key": "cloudwatch/anomaly-detection-band-alarm-threshold-metric-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_anomaly_detection_band_alarm_threshold_metric_id.py", "service": "cloudwatch"} {"check_id": "cloudwatch.anomaly-detector-created-in-pending-training-state", "deployments": [], "key": "cloudwatch/anomaly-detector-created-in-pending-training-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_anomaly_detector_created_in_pending_training_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.anomaly-detector-lifecycle-state", "deployments": [], "key": "cloudwatch/anomaly-detector-lifecycle-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_anomaly_detector_lifecycle_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.anomaly-detector-missing-required-param-rejected", "deployments": [], "key": "cloudwatch/anomaly-detector-missing-required-param-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_anomaly_detector_missing_required_param_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.anomaly-detector-training-window", "deployments": [], "key": "cloudwatch/anomaly-detector-training-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_anomaly_detector_training_window.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-access-denied", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_access_denied.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-access-denied-rejected", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_access_denied_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-caller-missing-permission-rejected", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-caller-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_caller_missing_permission_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-concurrent-converges", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-concurrent-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:DescribeKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_concurrent_converges.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-conflict-on-reassociation", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-conflict-on-reassociation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_conflict_on_reassociation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-cross-account-key-denied", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-cross-account-key-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_cross_account_key_denied.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-disabled-key-rejected", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-disabled-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_disabled_key_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-missing-permission-denied", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:DescribeKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_missing_permission_denied.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-nonexistent-key-rejected", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-nonexistent-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:DescribeKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_nonexistent_key_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.associate-dataset-kms-key-reassociation-conflict-rejected", "deployments": [], "key": "cloudwatch/associate-dataset-kms-key-reassociation-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_associate_dataset_kms_key_reassociation_conflict_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.awsquery-get-metric-data-two-queries-returned-in-request-order", "deployments": [], "key": "cloudwatch/awsquery-get-metric-data-two-queries-returned-in-request-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_awsquery_get_metric_data_two_queries_returned_in_request_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.awsquery-invalid-time-range-returns-xml-error-matching-json-client", "deployments": [], "key": "cloudwatch/awsquery-invalid-time-range-returns-xml-error-matching-json-client", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics"], "path": "behavioral/cloudwatch/check_awsquery_invalid_time_range_returns_xml_error_matching_json_client.py", "service": "cloudwatch"} {"check_id": "cloudwatch.awsquery-list-metrics-next-token-page-matches-json-continuation", "deployments": [], "key": "cloudwatch/awsquery-list-metrics-next-token-page-matches-json-continuation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics"], "path": "behavioral/cloudwatch/check_awsquery_list_metrics_next_token_page_matches_json_continuation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.awsquery-put-metric-alarm-then-json-describe-alarms-one-store", "deployments": [], "key": "cloudwatch/awsquery-put-metric-alarm-then-json-describe-alarms-one-store", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudwatch/check_awsquery_put_metric_alarm_then_json_describe_alarms_one_store.py", "service": "cloudwatch"} {"check_id": "cloudwatch.awsquery-put-metric-data-then-json-get-metric-statistics-returns-sums", "deployments": [], "key": "cloudwatch/awsquery-put-metric-data-then-json-get-metric-statistics-returns-sums", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics"], "path": "behavioral/cloudwatch/check_awsquery_put_metric_data_then_json_get_metric_statistics_returns_sums.py", "service": "cloudwatch"} {"check_id": "cloudwatch.awsquery-set-alarm-state-invalid-state-value-rejected-state-unchanged", "deployments": [], "key": "cloudwatch/awsquery-set-alarm-state-invalid-state-value-rejected-state-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_awsquery_set_alarm_state_invalid_state_value_rejected_state_unchanged.py", "service": "cloudwatch"} {"check_id": "cloudwatch.awsquery-set-alarm-state-then-json-describe-alarm-history-one-store", "deployments": [], "key": "cloudwatch/awsquery-set-alarm-state-then-json-describe-alarm-history-one-store", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_awsquery_set_alarm_state_then_json_describe_alarm_history_one_store.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-actions-suppressed-by-alarm", "deployments": [], "key": "cloudwatch/composite-alarm-actions-suppressed-by-alarm", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_actions_suppressed_by_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-and-rule-requires-all-children", "deployments": [], "key": "cloudwatch/composite-alarm-and-rule-requires-all-children", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_and_rule_requires_all_children.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-boolean-and-logic", "deployments": [], "key": "cloudwatch/composite-alarm-boolean-and-logic", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_boolean_and_logic.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-delete-referenced-child-rejected", "deployments": [], "key": "cloudwatch/composite-alarm-delete-referenced-child-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_composite_alarm_delete_referenced_child_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-derives-state-from-or-rule", "deployments": [], "key": "cloudwatch/composite-alarm-derives-state-from-or-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_derives_state_from_or_rule.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-evaluates-child-alarm-state", "deployments": [], "key": "cloudwatch/composite-alarm-evaluates-child-alarm-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_evaluates_child_alarm_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-or-logic", "deployments": [], "key": "cloudwatch/composite-alarm-or-logic", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_or_logic.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-reflects-child-alarm-state", "deployments": [], "key": "cloudwatch/composite-alarm-reflects-child-alarm-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_reflects_child_alarm_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-reflects-child-alarm-transition", "deployments": [], "key": "cloudwatch/composite-alarm-reflects-child-alarm-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_reflects_child_alarm_transition.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-rule-cycle-and-unknown-child-rejected", "deployments": [], "key": "cloudwatch/composite-alarm-rule-cycle-and-unknown-child-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_rule_cycle_and_unknown_child_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-server-side-evaluation", "deployments": [], "key": "cloudwatch/composite-alarm-server-side-evaluation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_server_side_evaluation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-state-derivation", "deployments": [], "key": "cloudwatch/composite-alarm-state-derivation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_state_derivation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-state-derived-from-child-alarm", "deployments": [], "key": "cloudwatch/composite-alarm-state-derived-from-child-alarm", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_state_derived_from_child_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.composite-alarm-state-derived-from-children", "deployments": [], "key": "cloudwatch/composite-alarm-state-derived-from-children", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_composite_alarm_state_derived_from_children.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-alarm-mute-rule-put-conflicting-schedules", "deployments": [], "key": "cloudwatch/concurrent-alarm-mute-rule-put-conflicting-schedules", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_concurrent_alarm_mute_rule_put_conflicting_schedules.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-delete-alarms-race", "deployments": [], "key": "cloudwatch/concurrent-delete-alarms-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_concurrent_delete_alarms_race.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-otel-enrichment-start-calls-idempotent-no-duplicate-state", "deployments": [], "key": "cloudwatch/concurrent-otel-enrichment-start-calls-idempotent-no-duplicate-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_concurrent_otel_enrichment_start_calls_idempotent_no_duplicate_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-alarm-mute-rule-overwrite-last-writer-wins", "deployments": [], "key": "cloudwatch/concurrent-put-alarm-mute-rule-overwrite-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_concurrent_put_alarm_mute_rule_overwrite_last_writer_wins.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-dashboard-conflict", "deployments": [], "key": "cloudwatch/concurrent-put-dashboard-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_concurrent_put_dashboard_conflict.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-dashboard-optimistic-overwrite", "deployments": [], "key": "cloudwatch/concurrent-put-dashboard-optimistic-overwrite", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_concurrent_put_dashboard_optimistic_overwrite.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-metric-data-aggregation", "deployments": [], "key": "cloudwatch/concurrent-put-metric-data-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_concurrent_put_metric_data_aggregation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-metric-data-aggregation-no-lost-writes", "deployments": [], "key": "cloudwatch/concurrent-put-metric-data-aggregation-no-lost-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_concurrent_put_metric_data_aggregation_no_lost_writes.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-metric-data-sum-aggregation", "deployments": [], "key": "cloudwatch/concurrent-put-metric-data-sum-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_concurrent_put_metric_data_sum_aggregation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-metric-data-sum-consistency", "deployments": [], "key": "cloudwatch/concurrent-put-metric-data-sum-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_concurrent_put_metric_data_sum_consistency.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-metric-stream-modification-succeeds", "deployments": [], "key": "cloudwatch/concurrent-put-metric-stream-modification-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_concurrent_put_metric_stream_modification_succeeds.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-metric-stream-start-stop-race", "deployments": [], "key": "cloudwatch/concurrent-put-metric-stream-start-stop-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_concurrent_put_metric_stream_start_stop_race.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-put-metric-stream-update-conflict", "deployments": [], "key": "cloudwatch/concurrent-put-metric-stream-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_concurrent_put_metric_stream_update_conflict.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-start-stop-metric-streams-race-resolves-deterministically", "deployments": [], "key": "cloudwatch/concurrent-start-stop-metric-streams-race-resolves-deterministically", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_concurrent_start_stop_metric_streams_race_resolves_deterministically.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-tag-resource-modification-conflict", "deployments": [], "key": "cloudwatch/concurrent-tag-resource-modification-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource"], "path": "behavioral/cloudwatch/check_concurrent_tag_resource_modification_conflict.py", "service": "cloudwatch"} {"check_id": "cloudwatch.concurrent-tag-untag-resource-converges", "deployments": [], "key": "cloudwatch/concurrent-tag-untag-resource-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource"], "path": "behavioral/cloudwatch/check_concurrent_tag_untag_resource_converges.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-alarm-action-fires-to-sns", "deployments": [], "key": "cloudwatch/cw-alarm-action-fires-to-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_cw_alarm_action_fires_to_sns.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-concurrent-put-metric-data-same-timestamp-sum-is-exact", "deployments": [], "key": "cloudwatch/cw-concurrent-put-metric-data-same-timestamp-sum-is-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_cw_concurrent_put_metric_data_same_timestamp_sum_is_exact.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-delete-alarms-two-composites-rejected-and-nothing-deleted", "deployments": [], "key": "cloudwatch/cw-delete-alarms-two-composites-rejected-and-nothing-deleted", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_cw_delete_alarms_two_composites_rejected_and_nothing_deleted.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-get-metric-data-math-expression-is-computed-server-side", "deployments": [], "key": "cloudwatch/cw-get-metric-data-math-expression-is-computed-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_cw_get_metric_data_math_expression_is_computed_server_side.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-metric-breach-drives-alarm", "deployments": [], "key": "cloudwatch/cw-metric-breach-drives-alarm", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState", "cloudwatch:TagResource"], "path": "behavioral/cloudwatch/check_cw_metric_breach_drives_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-metric-widget-image-renders-the-published-datapoint", "deployments": [], "key": "cloudwatch/cw-metric-widget-image-renders-the-published-datapoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_cw_metric_widget_image_renders_the_published_datapoint.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-put-metric-data-oversized-batch-rejected-and-no-partial-ingestion", "deployments": [], "key": "cloudwatch/cw-put-metric-data-oversized-batch-rejected-and-no-partial-ingestion", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_cw_put_metric_data_oversized_batch_rejected_and_no_partial_ingestion.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-real-metric-breach-drives-alarm-and-history-names-the-datapoints", "deployments": [], "key": "cloudwatch/cw-real-metric-breach-drives-alarm-and-history-names-the-datapoints", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_cw_real_metric_breach_drives_alarm_and_history_names_the_datapoints.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-statistic-values-aggregate-is-arithmetic-not-passthrough", "deployments": [], "key": "cloudwatch/cw-statistic-values-aggregate-is-arithmetic-not-passthrough", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_cw_statistic_values_aggregate_is_arithmetic_not_passthrough.py", "service": "cloudwatch"} {"check_id": "cloudwatch.cw-treat-missing-data-breaching-fires-with-no-datapoints-while-notbreaching-stays-ok", "deployments": [], "key": "cloudwatch/cw-treat-missing-data-breaching-fires-with-no-datapoints-while-notbreaching-stays-ok", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_cw_treat_missing_data_breaching_fires_with_no_datapoints_while_notbreaching_stays_ok.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dashboard-crud-round-trip", "deployments": [], "key": "cloudwatch/dashboard-crud-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_dashboard_crud_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dashboard-full-lifecycle", "deployments": [], "key": "cloudwatch/dashboard-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_dashboard_full_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dashboard-invalid-body-rejected", "deployments": [], "key": "cloudwatch/dashboard-invalid-body-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_dashboard_invalid_body_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dashboard-large-body-persists-without-truncation", "deployments": [], "key": "cloudwatch/dashboard-large-body-persists-without-truncation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_dashboard_large_body_persists_without_truncation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dashboard-put-get-delete-lifecycle", "deployments": [], "key": "cloudwatch/dashboard-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_dashboard_put_get_delete_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dashboard-put-get-delete-roundtrip", "deployments": [], "key": "cloudwatch/dashboard-put-get-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_dashboard_put_get_delete_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dashboard-put-upserts-existing", "deployments": [], "key": "cloudwatch/dashboard-put-upserts-existing", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_dashboard_put_upserts_existing.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dashboard-widget-image-render-freshness-window", "deployments": [], "key": "cloudwatch/dashboard-widget-image-render-freshness-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_dashboard_widget_image_render_freshness_window.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dataset-kms-key-associate-disassociate-lifecycle", "deployments": [], "key": "cloudwatch/dataset-kms-key-associate-disassociate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_dataset_kms_key_associate_disassociate_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dataset-kms-key-associate-disassociate-round-trip", "deployments": [], "key": "cloudwatch/dataset-kms-key-associate-disassociate-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_dataset_kms_key_associate_disassociate_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dataset-kms-key-association-lifecycle", "deployments": [], "key": "cloudwatch/dataset-kms-key-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_dataset_kms_key_association_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.dataset-kms-key-disabled-key-rejected", "deployments": [], "key": "cloudwatch/dataset-kms-key-disabled-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_dataset_kms_key_disabled_key_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deep-cloudwatch-1-cw-warmup-wall-clock-window-gates-evaluation-and-rejects-period-120", "deployments": [], "key": "cloudwatch/deep-cloudwatch-1-cw-warmup-wall-clock-window-gates-evaluation-and-rejects-period-120", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deep_cloudwatch_1_cw_warmup_wall_clock_window_gates_evaluation_and_rejects_period_120.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deep-cloudwatch-3-cwentity-omitted-strict-flag-rejected", "deployments": [], "key": "cloudwatch/deep-cloudwatch-3-cwentity-omitted-strict-flag-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deep_cloudwatch_3_cwentity_omitted_strict_flag_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deep-cloudwatch-3-cwentity-shared-metric-budget-overflow-rejected", "deployments": [], "key": "cloudwatch/deep-cloudwatch-3-cwentity-shared-metric-budget-overflow-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deep_cloudwatch_3_cwentity_shared_metric_budget_overflow_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deep-cloudwatch-3-cwentity-strict-validation-rejects-malformed-entity", "deployments": [], "key": "cloudwatch/deep-cloudwatch-3-cwentity-strict-validation-rejects-malformed-entity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deep_cloudwatch_3_cwentity_strict_validation_rejects_malformed_entity.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deep-cloudwatch-3-cwentity-third-entity-object-rejected", "deployments": [], "key": "cloudwatch/deep-cloudwatch-3-cwentity-third-entity-object-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deep_cloudwatch_3_cwentity_third_entity_object_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deep-cloudwatch-3-cwinsightrank-sum-and-maximum-orderings-disagree", "deployments": [], "key": "cloudwatch/deep-cloudwatch-3-cwinsightrank-sum-and-maximum-orderings-disagree", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents"], "path": "behavioral/cloudwatch/check_deep_cloudwatch_3_cwinsightrank_sum_and_maximum_orderings_disagree.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-alarm-mute-rule-nonexistent-idempotent", "deployments": [], "key": "cloudwatch/delete-alarm-mute-rule-nonexistent-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules"], "path": "behavioral/cloudwatch/check_delete_alarm_mute_rule_nonexistent_idempotent.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-alarm-referenced-as-actions-suppressor-rejected", "deployments": [], "key": "cloudwatch/delete-alarm-referenced-as-actions-suppressor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_delete_alarm_referenced_as_actions_suppressor_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-alarm-referenced-by-composite-conflict", "deployments": [], "key": "cloudwatch/delete-alarm-referenced-by-composite-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_delete_alarm_referenced_by_composite_conflict.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-alarm-referenced-by-composite-rejected", "deployments": [], "key": "cloudwatch/delete-alarm-referenced-by-composite-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_delete_alarm_referenced_by_composite_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-alarms-composite-referenced-conflict-rejected", "deployments": [], "key": "cloudwatch/delete-alarms-composite-referenced-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_delete_alarms_composite_referenced_conflict_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-alarms-ignores-missing-names", "deployments": [], "key": "cloudwatch/delete-alarms-ignores-missing-names", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_delete_alarms_ignores_missing_names.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-alarms-nonexistent-name-no-error", "deployments": [], "key": "cloudwatch/delete-alarms-nonexistent-name-no-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudwatch/check_delete_alarms_nonexistent_name_no_error.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-alarms-referenced-by-composite-rejected", "deployments": [], "key": "cloudwatch/delete-alarms-referenced-by-composite-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_delete_alarms_referenced_by_composite_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-anomaly-detector-and-missing-identifier-rejected", "deployments": [], "key": "cloudwatch/delete-anomaly-detector-and-missing-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_delete_anomaly_detector_and_missing_identifier_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-anomaly-detector-invalid-parameter-combination-rejected", "deployments": [], "key": "cloudwatch/delete-anomaly-detector-invalid-parameter-combination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_delete_anomaly_detector_invalid_parameter_combination_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-dashboard-nonexistent-returns-invalid-param", "deployments": [], "key": "cloudwatch/delete-dashboard-nonexistent-returns-invalid-param", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_delete_dashboard_nonexistent_returns_invalid_param.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-dashboards-empty-name-list-rejected", "deployments": [], "key": "cloudwatch/delete-dashboards-empty-name-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_delete_dashboards_empty_name_list_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-dashboards-invalid-name-tolerated", "deployments": [], "key": "cloudwatch/delete-dashboards-invalid-name-tolerated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_delete_dashboards_invalid_name_tolerated.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-dashboards-oversized-batch-preserves-existing-rejected", "deployments": [], "key": "cloudwatch/delete-dashboards-oversized-batch-preserves-existing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_delete_dashboards_oversized_batch_preserves_existing_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-dashboards-partial-and-invalid-name-silently-ignored", "deployments": [], "key": "cloudwatch/delete-dashboards-partial-and-invalid-name-silently-ignored", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_delete_dashboards_partial_and_invalid_name_silently_ignored.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-insight-rule-removes-from-list", "deployments": [], "key": "cloudwatch/delete-insight-rule-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_delete_insight_rule_removes_from_list.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-insight-rules-failures-and-malformed-name-rejected", "deployments": [], "key": "cloudwatch/delete-insight-rules-failures-and-malformed-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_delete_insight_rules_failures_and_malformed_name_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-insight-rules-missing-required-parameter-rejected", "deployments": [], "key": "cloudwatch/delete-insight-rules-missing-required-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_delete_insight_rules_missing_required_parameter_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-insight-rules-partial-failure", "deployments": [], "key": "cloudwatch/delete-insight-rules-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_delete_insight_rules_partial_failure.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-insight-rules-partial-failure-reported", "deployments": [], "key": "cloudwatch/delete-insight-rules-partial-failure-reported", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_delete_insight_rules_partial_failure_reported.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-metric-stream-and-nonexistent-name-is-noop", "deployments": [], "key": "cloudwatch/delete-metric-stream-and-nonexistent-name-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_delete_metric_stream_and_nonexistent_name_is_noop.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-metric-stream-immediately-absent-from-list", "deployments": [], "key": "cloudwatch/delete-metric-stream-immediately-absent-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_delete_metric_stream_immediately_absent_from_list.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-metric-stream-missing-required-parameter-rejected", "deployments": [], "key": "cloudwatch/delete-metric-stream-missing-required-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream"], "path": "behavioral/cloudwatch/check_delete_metric_stream_missing_required_parameter_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-metric-stream-removes-config-permanently", "deployments": [], "key": "cloudwatch/delete-metric-stream-removes-config-permanently", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_delete_metric_stream_removes_config_permanently.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-metric-stream-status-immediately-absent-from-list", "deployments": [], "key": "cloudwatch/delete-metric-stream-status-immediately-absent-from-list", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_delete_metric_stream_status_immediately_absent_from_list.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-nonexistent-alarm-is-silently-idempotent", "deployments": [], "key": "cloudwatch/delete-nonexistent-alarm-is-silently-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudwatch/check_delete_nonexistent_alarm_is_silently_idempotent.py", "service": "cloudwatch"} {"check_id": "cloudwatch.delete-referenced-child-alarm-rejected", "deployments": [], "key": "cloudwatch/delete-referenced-child-alarm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_delete_referenced_child_alarm_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-alarm-behaves-on-metric-breach", "deployments": [], "key": "cloudwatch/deploy-cloudformation-alarm-behaves-on-metric-breach", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_alarm_behaves_on_metric_breach.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-alarm-update-changes-threshold-behavior", "deployments": [], "key": "cloudwatch/deploy-cloudformation-alarm-update-changes-threshold-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_alarm_update_changes_threshold_behavior.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-composite-alarm-derives-state", "deployments": [], "key": "cloudwatch/deploy-cloudformation-composite-alarm-derives-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_composite_alarm_derives_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-composite-alarm-evaluates-children", "deployments": [], "key": "cloudwatch/deploy-cloudformation-composite-alarm-evaluates-children", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_composite_alarm_evaluates_children.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-dashboard-body-matches-template", "deployments": [], "key": "cloudwatch/deploy-cloudformation-dashboard-body-matches-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetDashboard"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_dashboard_body_matches_template.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-dashboard-renders-widgets", "deployments": [], "key": "cloudwatch/deploy-cloudformation-dashboard-renders-widgets", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudwatch:GetDashboard", "cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_dashboard_renders_widgets.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-dashboard-widgets-render", "deployments": [], "key": "cloudwatch/deploy-cloudformation-dashboard-widgets-render", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetDashboard", "cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_dashboard_widgets_render.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-invalid-dashboard-body-rejected", "deployments": [], "key": "cloudwatch/deploy-cloudformation-invalid-dashboard-body-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_invalid_dashboard_body_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-metric-alarm-behaves", "deployments": [], "key": "cloudwatch/deploy-cloudformation-metric-alarm-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_metric_alarm_behaves.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudformation-metric-alarm-triggers-on-breach", "deployments": [], "key": "cloudwatch/deploy-cloudformation-metric-alarm-triggers-on-breach", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_deploy_cloudformation_metric_alarm_triggers_on_breach.py", "service": "cloudwatch"} {"check_id": "cloudwatch.deploy-cloudwatch-1-alarm-rename-replaces-and-dangling-composite-rejected", "deployments": [], "key": "cloudwatch/deploy-cloudwatch-1-alarm-rename-replaces-and-dangling-composite-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricData", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudwatch/check_deploy_cloudwatch_1_alarm_rename_replaces_and_dangling_composite_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-contributors-invalid-next-token", "deployments": [], "key": "cloudwatch/describe-alarm-contributors-invalid-next-token", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarm_contributors_invalid_next_token.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-contributors-nonexistent-alarm-not-found", "deployments": [], "key": "cloudwatch/describe-alarm-contributors-nonexistent-alarm-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarm_contributors_nonexistent_alarm_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-contributors-nonexistent-composite-not-found", "deployments": [], "key": "cloudwatch/describe-alarm-contributors-nonexistent-composite-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarm_contributors_nonexistent_composite_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-contributors-nonexistent-not-found", "deployments": [], "key": "cloudwatch/describe-alarm-contributors-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarm_contributors_nonexistent_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-contributors-nonexistent-resource", "deployments": [], "key": "cloudwatch/describe-alarm-contributors-nonexistent-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarm_contributors_nonexistent_resource.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-contributors-reflects-composite-members", "deployments": [], "key": "cloudwatch/describe-alarm-contributors-reflects-composite-members", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_describe_alarm_contributors_reflects_composite_members.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-contributors-rejected-for-non-contributor-alarms", "deployments": [], "key": "cloudwatch/describe-alarm-contributors-rejected-for-non-contributor-alarms", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarm_contributors_rejected_for_non_contributor_alarms.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-contributors-server-side-ranking", "deployments": [], "key": "cloudwatch/describe-alarm-contributors-server-side-ranking", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_describe_alarm_contributors_server_side_ranking.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-history-chronological-order", "deployments": [], "key": "cloudwatch/describe-alarm-history-chronological-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_describe_alarm_history_chronological_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-history-includes-actions-taken-telemetry", "deployments": [], "key": "cloudwatch/describe-alarm-history-includes-actions-taken-telemetry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/cloudwatch/check_describe_alarm_history_includes_actions_taken_telemetry.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-history-invalid-history-item-type-rejected", "deployments": [], "key": "cloudwatch/describe-alarm-history-invalid-history-item-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_describe_alarm_history_invalid_history_item_type_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-history-invalid-next-token-rejected", "deployments": [], "key": "cloudwatch/describe-alarm-history-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DescribeAlarmHistory"], "path": "behavioral/cloudwatch/check_describe_alarm_history_invalid_next_token_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-history-ordering-chronological", "deployments": [], "key": "cloudwatch/describe-alarm-history-ordering-chronological", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_describe_alarm_history_ordering_chronological.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-history-purged-when-alarm-deleted", "deployments": [], "key": "cloudwatch/describe-alarm-history-purged-when-alarm-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_describe_alarm_history_purged_when_alarm_deleted.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarm-history-records-composite-membership-change", "deployments": [], "key": "cloudwatch/describe-alarm-history-records-composite-membership-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarm_history_records_composite_membership_change.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-association", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_association.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-data-plane", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-data-plane", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_data_plane.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-empty-when-no-alarms", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-empty-when-no-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_empty_when_no_alarms.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-order-matches-creation-order", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-order-matches-creation-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_order_matches_creation_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-ordering-by-creation", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-ordering-by-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_ordering_by_creation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-ordering-by-creation-time", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-ordering-by-creation-time", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_ordering_by_creation_time.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-reflects-actions-enabled-toggle-immediately", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-reflects-actions-enabled-toggle-immediately", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_reflects_actions_enabled_toggle_immediately.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-reflects-attached-alarms", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-reflects-attached-alarms", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_reflects_attached_alarms.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-reflects-created-alarm", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-reflects-created-alarm", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_reflects_created_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-result-order-stable", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-result-order-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_result_order_stable.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-returns-associated-alarm", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-returns-associated-alarm", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_returns_associated_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-scoped-to-namespace-dimensions", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-scoped-to-namespace-dimensions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_scoped_to_namespace_dimensions.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-server-computed-list", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-server-computed-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_server_computed_list.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-for-metric-tracks-alarm-set-changes", "deployments": [], "key": "cloudwatch/describe-alarms-for-metric-tracks-alarm-set-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_for_metric_tracks_alarm_set_changes.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-invalid-next-token-is-ignored", "deployments": [], "key": "cloudwatch/describe-alarms-invalid-next-token-is-ignored", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_invalid_next_token_is_ignored.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-pagination-order", "deployments": [], "key": "cloudwatch/describe-alarms-pagination-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_describe_alarms_pagination_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-alarms-state-filter-and-invalid-next-token-ignored", "deployments": [], "key": "cloudwatch/describe-alarms-state-filter-and-invalid-next-token-ignored", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_describe_alarms_state_filter_and_invalid_next_token_ignored.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-anomaly-detectors-invalid-combination", "deployments": [], "key": "cloudwatch/describe-anomaly-detectors-invalid-combination", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DescribeAnomalyDetectors"], "path": "behavioral/cloudwatch/check_describe_anomaly_detectors_invalid_combination.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-anomaly-detectors-invalid-parameter-combination-rejected", "deployments": [], "key": "cloudwatch/describe-anomaly-detectors-invalid-parameter-combination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DescribeAnomalyDetectors"], "path": "behavioral/cloudwatch/check_describe_anomaly_detectors_invalid_parameter_combination_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-insight-rules-and-invalid-next-token-rejected", "deployments": [], "key": "cloudwatch/describe-insight-rules-and-invalid-next-token-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_describe_insight_rules_and_invalid_next_token_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.describe-insight-rules-pagination-order-stable", "deployments": [], "key": "cloudwatch/describe-insight-rules-pagination-order-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_describe_insight_rules_pagination_order_stable.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disable-alarm-actions-clears-flag", "deployments": [], "key": "cloudwatch/disable-alarm-actions-clears-flag", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_disable_alarm_actions_clears_flag.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disable-alarm-actions-still-records-state-history", "deployments": [], "key": "cloudwatch/disable-alarm-actions-still-records-state-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_disable_alarm_actions_still_records_state_history.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disable-alarm-actions-toggle-recorded-in-alarm-history", "deployments": [], "key": "cloudwatch/disable-alarm-actions-toggle-recorded-in-alarm-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_disable_alarm_actions_toggle_recorded_in_alarm_history.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disable-enable-alarm-actions-toggle", "deployments": [], "key": "cloudwatch/disable-enable-alarm-actions-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_disable_enable_alarm_actions_toggle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disable-insight-rules-and-malformed-name-reported-as-failure-entry", "deployments": [], "key": "cloudwatch/disable-insight-rules-and-malformed-name-reported-as-failure-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_disable_insight_rules_and_malformed_name_reported_as_failure_entry.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disabled-alarm-actions-suppress-sns-notification", "deployments": [], "key": "cloudwatch/disabled-alarm-actions-suppress-sns-notification", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_disabled_alarm_actions_suppress_sns_notification.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disassociate-dataset-kms-key-concurrent-converges", "deployments": [], "key": "cloudwatch/disassociate-dataset-kms-key-concurrent-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:DescribeKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_disassociate_dataset_kms_key_concurrent_converges.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disassociate-dataset-kms-key-nonexistent-dataset-not-found", "deployments": [], "key": "cloudwatch/disassociate-dataset-kms-key-nonexistent-dataset-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_disassociate_dataset_kms_key_nonexistent_dataset_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disassociate-dataset-kms-key-not-associated-not-found", "deployments": [], "key": "cloudwatch/disassociate-dataset-kms-key-not-associated-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_disassociate_dataset_kms_key_not_associated_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disassociate-dataset-kms-key-without-association-conflict", "deployments": [], "key": "cloudwatch/disassociate-dataset-kms-key-without-association-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_disassociate_dataset_kms_key_without_association_conflict.py", "service": "cloudwatch"} {"check_id": "cloudwatch.disassociate-kms-key-without-prior-association-rejected", "deployments": [], "key": "cloudwatch/disassociate-kms-key-without-prior-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_disassociate_kms_key_without_prior_association_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.double-delete-returns-not-found-not-success", "deployments": [], "key": "cloudwatch/double-delete-returns-not-found-not-success", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DeleteAnomalyDetector", "cloudwatch:DeleteDashboards", "cloudwatch:DeleteInsightRules", "cloudwatch:DeleteMetricStream", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:DescribeInsightRules", "cloudwatch:GetAlarmMuteRule", "cloudwatch:GetDashboard", "cloudwatch:GetMetricStream", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutDashboard", "cloudwatch:PutInsightRule", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricStream", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_double_delete_returns_not_found_not_success.py", "service": "cloudwatch"} {"check_id": "cloudwatch.duplicate-kms-association-rejected", "deployments": [], "key": "cloudwatch/duplicate-kms-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_duplicate_kms_association_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-anomaly-detector-band-drives-alarm-evaluation-teardown", "deployments": [], "key": "cloudwatch/e2e-anomaly-detector-band-drives-alarm-evaluation-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_e2e_anomaly_detector_band_drives_alarm_evaluation_teardown.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-anomaly-detector-training-to-alarm-flow", "deployments": [], "key": "cloudwatch/e2e-anomaly-detector-training-to-alarm-flow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_e2e_anomaly_detector_training_to_alarm_flow.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-composite-alarm-cascade-lifecycle", "deployments": [], "key": "cloudwatch/e2e-composite-alarm-cascade-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_e2e_composite_alarm_cascade_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-composite-alarm-child-deletion-conflict-rejected", "deployments": [], "key": "cloudwatch/e2e-composite-alarm-child-deletion-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_e2e_composite_alarm_child_deletion_conflict_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-composite-alarm-drives-downstream-action-and-cleanup", "deployments": [], "key": "cloudwatch/e2e-composite-alarm-drives-downstream-action-and-cleanup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_e2e_composite_alarm_drives_downstream_action_and_cleanup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-composite-alarm-mute-rule-suppresses-actions-flow", "deployments": [], "key": "cloudwatch/e2e-composite-alarm-mute-rule-suppresses-actions-flow", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_e2e_composite_alarm_mute_rule_suppresses_actions_flow.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-composite-alarm-mute-suppresses-action-then-cleanup", "deployments": [], "key": "cloudwatch/e2e-composite-alarm-mute-suppresses-action-then-cleanup", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_e2e_composite_alarm_mute_suppresses_action_then_cleanup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-dashboard-widget-render-cleanup", "deployments": [], "key": "cloudwatch/e2e-dashboard-widget-render-cleanup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutDashboard", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_e2e_dashboard_widget_render_cleanup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-dashboard-with-live-metric-widget-image", "deployments": [], "key": "cloudwatch/e2e-dashboard-with-live-metric-widget-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutDashboard", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_e2e_dashboard_with_live_metric_widget_image.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-metric-alarm-breach-notify-teardown", "deployments": [], "key": "cloudwatch/e2e-metric-alarm-breach-notify-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_e2e_metric_alarm_breach_notify_teardown.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-metric-breach-alarm-sns-notification-flow", "deployments": [], "key": "cloudwatch/e2e-metric-breach-alarm-sns-notification-flow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_e2e_metric_breach_alarm_sns_notification_flow.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-metric-stream-data-flow-teardown", "deployments": [], "key": "cloudwatch/e2e-metric-stream-data-flow-teardown", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_e2e_metric_stream_data_flow_teardown.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-metric-stream-firehose-data-flow-and-teardown", "deployments": [], "key": "cloudwatch/e2e-metric-stream-firehose-data-flow-and-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_e2e_metric_stream_firehose_data_flow_and_teardown.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-metric-stream-live-data-flow-teardown", "deployments": [], "key": "cloudwatch/e2e-metric-stream-live-data-flow-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_e2e_metric_stream_live_data_flow_teardown.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-metric-stream-to-firehose-delivery-flow", "deployments": [], "key": "cloudwatch/e2e-metric-stream-to-firehose-delivery-flow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_e2e_metric_stream_to_firehose_delivery_flow.py", "service": "cloudwatch"} {"check_id": "cloudwatch.e2e-otel-enrichment-start-observe-metrics-stop-teardown", "deployments": [], "key": "cloudwatch/e2e-otel-enrichment-start-observe-metrics-stop-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_e2e_otel_enrichment_start_observe_metrics_stop_teardown.py", "service": "cloudwatch"} {"check_id": "cloudwatch.enable-alarm-actions-sets-flag", "deployments": [], "key": "cloudwatch/enable-alarm-actions-sets-flag", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_enable_alarm_actions_sets_flag.py", "service": "cloudwatch"} {"check_id": "cloudwatch.enable-disable-insight-rule-invalid-name-rejected", "deployments": [], "key": "cloudwatch/enable-disable-insight-rule-invalid-name-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_enable_disable_insight_rule_invalid_name_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.enable-insight-rules-and-malformed-name-reported-as-failure-entry", "deployments": [], "key": "cloudwatch/enable-insight-rules-and-malformed-name-reported-as-failure-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_enable_insight_rules_and_malformed_name_reported_as_failure_entry.py", "service": "cloudwatch"} {"check_id": "cloudwatch.enable-insight-rules-limit-exceeded-rejected", "deployments": [], "key": "cloudwatch/enable-insight-rules-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_enable_insight_rules_limit_exceeded_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.evaluate-low-sample-count-percentile-ignore-withholds-the-transition", "deployments": [], "key": "cloudwatch/evaluate-low-sample-count-percentile-ignore-withholds-the-transition", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_evaluate_low_sample_count_percentile_ignore_withholds_the_transition.py", "service": "cloudwatch"} {"check_id": "cloudwatch.extended-statistics-percentile-metric-data", "deployments": [], "key": "cloudwatch/extended-statistics-percentile-metric-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_extended_statistics_percentile_metric_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.extended-statistics-percentile-query", "deployments": [], "key": "cloudwatch/extended-statistics-percentile-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_extended_statistics_percentile_query.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-alarm-mute-rule-after-delete-rejected", "deployments": [], "key": "cloudwatch/get-alarm-mute-rule-after-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_get_alarm_mute_rule_after_delete_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-alarm-mute-rule-nonexistent-not-found", "deployments": [], "key": "cloudwatch/get-alarm-mute-rule-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_get_alarm_mute_rule_nonexistent_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-alarm-mute-rule-not-found", "deployments": [], "key": "cloudwatch/get-alarm-mute-rule-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_get_alarm_mute_rule_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-alarm-mute-rule-reflects-latest-put-update", "deployments": [], "key": "cloudwatch/get-alarm-mute-rule-reflects-latest-put-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_get_alarm_mute_rule_reflects_latest_put_update.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-dashboard-and-notfound-rejected", "deployments": [], "key": "cloudwatch/get-dashboard-and-notfound-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_get_dashboard_and_notfound_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-dashboard-invalid-parameter-value-rejected", "deployments": [], "key": "cloudwatch/get-dashboard-invalid-parameter-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_get_dashboard_invalid_parameter_value_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-dashboard-nonexistent-rejected", "deployments": [], "key": "cloudwatch/get-dashboard-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:GetDashboard"], "path": "behavioral/cloudwatch/check_get_dashboard_nonexistent_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-dataset-nonexistent-not-found", "deployments": [], "key": "cloudwatch/get-dataset-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:GetDataset", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_get_dataset_nonexistent_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-dataset-not-found-for-unknown-dataset", "deployments": [], "key": "cloudwatch/get-dataset-not-found-for-unknown-dataset", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:GetDataset", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_get_dataset_not_found_for_unknown_dataset.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-dataset-readonly-reflects-configuration", "deployments": [], "key": "cloudwatch/get-dataset-readonly-reflects-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetDataset"], "path": "behavioral/cloudwatch/check_get_dataset_readonly_reflects_configuration.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-insight-rule-report-end-before-start-rejected", "deployments": [], "key": "cloudwatch/get-insight-rule-report-end-before-start-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_get_insight_rule_report_end_before_start_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-insight-rule-report-missing-required-param", "deployments": [], "key": "cloudwatch/get-insight-rule-report-missing-required-param", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_get_insight_rule_report_missing_required_param.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-insight-rule-report-nonexistent-rule-not-found", "deployments": [], "key": "cloudwatch/get-insight-rule-report-nonexistent-rule-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_get_insight_rule_report_nonexistent_rule_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-insight-rule-report-returns-metrics-for-active-rule", "deployments": [], "key": "cloudwatch/get-insight-rule-report-returns-metrics-for-active-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents"], "path": "behavioral/cloudwatch/check_get_insight_rule_report_returns_metrics_for_active_rule.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-insight-rule-report-time-series-ordering", "deployments": [], "key": "cloudwatch/get-insight-rule-report-time-series-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents"], "path": "behavioral/cloudwatch/check_get_insight_rule_report_time_series_ordering.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-and-invalid-next-token-rejected", "deployments": [], "key": "cloudwatch/get-metric-data-and-invalid-next-token-rejected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_and_invalid_next_token_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-duplicate-query-id-rejected", "deployments": [], "key": "cloudwatch/get-metric-data-duplicate-query-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_duplicate_query_id_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-dynamic-label-is-resolved-server-side", "deployments": [], "key": "cloudwatch/get-metric-data-dynamic-label-is-resolved-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_dynamic_label_is_resolved_server_side.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-insights-select-aggregates-per-group-and-admits-one-query", "deployments": [], "key": "cloudwatch/get-metric-data-insights-select-aggregates-per-group-and-admits-one-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_insights_select_aggregates_per_group_and_admits_one_query.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-invalid-next-token-rejected", "deployments": [], "key": "cloudwatch/get-metric-data-invalid-next-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_invalid_next_token_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-invalid-scan-by-value-rejected", "deployments": [], "key": "cloudwatch/get-metric-data-invalid-scan-by-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_invalid_scan_by_value_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-math-expression", "deployments": [], "key": "cloudwatch/get-metric-data-math-expression", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_math_expression.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-math-expression-roundtrip", "deployments": [], "key": "cloudwatch/get-metric-data-math-expression-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_math_expression_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-merges-every-publish-shape-into-one-series-bucket-and-scopes-by-account", "deployments": [], "key": "cloudwatch/get-metric-data-merges-every-publish-shape-into-one-series-bucket-and-scopes-by-account", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_merges_every_publish_shape_into_one_series_bucket_and_scopes_by_account.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-metric-math-invalid-expression-rejected", "deployments": [], "key": "cloudwatch/get-metric-data-metric-math-invalid-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_metric_math_invalid_expression_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-multi-query-response-order-matches-request-order", "deployments": [], "key": "cloudwatch/get-metric-data-multi-query-response-order-matches-request-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_multi_query_response_order_matches_request_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-multi-query-response-preserves-request-order", "deployments": [], "key": "cloudwatch/get-metric-data-multi-query-response-preserves-request-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_multi_query_response_preserves_request_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-next-token-opaque-round-trip", "deployments": [], "key": "cloudwatch/get-metric-data-next-token-opaque-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_next_token_opaque_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-no-data-returns-complete-empty", "deployments": [], "key": "cloudwatch/get-metric-data-no-data-returns-complete-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_no_data_returns_complete_empty.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-pagination-budgets-time-slots-and-binds-the-token-to-the-query", "deployments": [], "key": "cloudwatch/get-metric-data-pagination-budgets-time-slots-and-binds-the-token-to-the-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_pagination_budgets_time_slots_and_binds_the_token_to_the_query.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-places-each-datapoint-at-its-written-timestamp-and-resolution", "deployments": [], "key": "cloudwatch/get-metric-data-places-each-datapoint-at-its-written-timestamp-and-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_places_each_datapoint_at_its_written_timestamp_and_resolution.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-preserves-query-order-in-response", "deployments": [], "key": "cloudwatch/get-metric-data-preserves-query-order-in-response", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_preserves_query_order_in_response.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-query-at-retention-boundary-returns-exact-cutoff", "deployments": [], "key": "cloudwatch/get-metric-data-query-at-retention-boundary-returns-exact-cutoff", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_query_at_retention_boundary_returns_exact_cutoff.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-query-result-order-matches-request-order", "deployments": [], "key": "cloudwatch/get-metric-data-query-result-order-matches-request-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_query_result_order_matches_request_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-read-calls-do-not-appear-in-alarm-history", "deployments": [], "key": "cloudwatch/get-metric-data-read-calls-do-not-appear-in-alarm-history", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_get_metric_data_read_calls_do_not_appear_in_alarm_history.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-refuses-malformed-windows-periods-budgets-and-statistics", "deployments": [], "key": "cloudwatch/get-metric-data-refuses-malformed-windows-periods-budgets-and-statistics", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_refuses_malformed_windows_periods_budgets_and_statistics.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-results-follow-a-shuffled-request-order-per-stat", "deployments": [], "key": "cloudwatch/get-metric-data-results-follow-a-shuffled-request-order-per-stat", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_results_follow_a_shuffled_request_order_per_stat.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-returns-only-returndata-queries-keyed-by-id", "deployments": [], "key": "cloudwatch/get-metric-data-returns-only-returndata-queries-keyed-by-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_returns_only_returndata_queries_keyed_by_id.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-data-stats-and-average-expression-match-put-values", "deployments": [], "key": "cloudwatch/get-metric-data-stats-and-average-expression-match-put-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_data_stats_and_average_expression_match_put_values.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-and-toomany-datapoints-rejected", "deployments": [], "key": "cloudwatch/get-metric-statistics-and-toomany-datapoints-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_statistics_and_toomany_datapoints_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-conflicting-statistics-rejected", "deployments": [], "key": "cloudwatch/get-metric-statistics-conflicting-statistics-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_statistics_conflicting_statistics_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-extended-percentile-accuracy", "deployments": [], "key": "cloudwatch/get-metric-statistics-extended-percentile-accuracy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_statistics_extended_percentile_accuracy.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-highres-retention-boundary-empty", "deployments": [], "key": "cloudwatch/get-metric-statistics-highres-retention-boundary-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_statistics_highres_retention_boundary_empty.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-invalid-period-rejected", "deployments": [], "key": "cloudwatch/get-metric-statistics-invalid-period-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics"], "path": "behavioral/cloudwatch/check_get_metric_statistics_invalid_period_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-missing-statistic-parameter-rejected", "deployments": [], "key": "cloudwatch/get-metric-statistics-missing-statistic-parameter-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_statistics_missing_statistic_parameter_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-missing-statistic-rejected", "deployments": [], "key": "cloudwatch/get-metric-statistics-missing-statistic-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_statistics_missing_statistic_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-missing-statistic-type-rejected", "deployments": [], "key": "cloudwatch/get-metric-statistics-missing-statistic-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_statistics_missing_statistic_type_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-sum-average-aggregation", "deployments": [], "key": "cloudwatch/get-metric-statistics-sum-average-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_statistics_sum_average_aggregation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-statistics-too-many-datapoints-rejected", "deployments": [], "key": "cloudwatch/get-metric-statistics-too-many-datapoints-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics"], "path": "behavioral/cloudwatch/check_get_metric_statistics_too_many_datapoints_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-stream-and-notfound-rejected", "deployments": [], "key": "cloudwatch/get-metric-stream-and-notfound-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_get_metric_stream_and_notfound_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-stream-invalid-name-pattern-rejected", "deployments": [], "key": "cloudwatch/get-metric-stream-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:GetMetricStream"], "path": "behavioral/cloudwatch/check_get_metric_stream_invalid_name_pattern_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-stream-last-update-timestamp-changes-on-config-edit", "deployments": [], "key": "cloudwatch/get-metric-stream-last-update-timestamp-changes-on-config-edit", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_get_metric_stream_last_update_timestamp_changes_on_config_edit.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-stream-nonexistent-not-found", "deployments": [], "key": "cloudwatch/get-metric-stream-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_get_metric_stream_nonexistent_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-cross-account-metric-denied", "deployments": [], "key": "cloudwatch/get-metric-widget-image-cross-account-metric-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_cross_account_metric_denied.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-deterministic-rendering-consistency", "deployments": [], "key": "cloudwatch/get-metric-widget-image-deterministic-rendering-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_deterministic_rendering_consistency.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-extreme-time-range-degrades-gracefully", "deployments": [], "key": "cloudwatch/get-metric-widget-image-extreme-time-range-degrades-gracefully", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_extreme_time_range_degrades_gracefully.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-invalid-request-rejected", "deployments": [], "key": "cloudwatch/get-metric-widget-image-invalid-request-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_invalid_request_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-malformed-spec-rejected", "deployments": [], "key": "cloudwatch/get-metric-widget-image-malformed-spec-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_malformed_spec_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-payload-exceeds-limit-rejected", "deployments": [], "key": "cloudwatch/get-metric-widget-image-payload-exceeds-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_payload_exceeds_limit_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-png-byte-equality-round-trip", "deployments": [], "key": "cloudwatch/get-metric-widget-image-png-byte-equality-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_png_byte_equality_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-png-byte-integrity", "deployments": [], "key": "cloudwatch/get-metric-widget-image-png-byte-integrity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_png_byte_integrity.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-reflects-latest-metric-data", "deployments": [], "key": "cloudwatch/get-metric-widget-image-reflects-latest-metric-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_reflects_latest_metric_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-reflects-published-datapoints", "deployments": [], "key": "cloudwatch/get-metric-widget-image-reflects-published-datapoints", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_reflects_published_datapoints.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-renders-for-valid-metric", "deployments": [], "key": "cloudwatch/get-metric-widget-image-renders-for-valid-metric", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_renders_for_valid_metric.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-returns-valid-png", "deployments": [], "key": "cloudwatch/get-metric-widget-image-returns-valid-png", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_returns_valid_png.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-server-rendering", "deployments": [], "key": "cloudwatch/get-metric-widget-image-server-rendering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_server_rendering.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-metric-widget-image-valid-spec-renders", "deployments": [], "key": "cloudwatch/get-metric-widget-image-valid-spec-renders", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_get_metric_widget_image_valid_spec_renders.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-otel-enrichment-reflects-server-managed-state", "deployments": [], "key": "cloudwatch/get-otel-enrichment-reflects-server-managed-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:PutMetricData", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment", "observabilityadmin:GetTelemetryEnrichmentStatus", "observabilityadmin:StartTelemetryEnrichment", "observabilityadmin:StopTelemetryEnrichment"], "path": "behavioral/cloudwatch/check_get_otel_enrichment_reflects_server_managed_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.get-otel-enrichment-start-stop-toggle-reports-running-and-stopped", "deployments": [], "key": "cloudwatch/get-otel-enrichment-start-stop-toggle-reports-running-and-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_get_otel_enrichment_start_stop_toggle_reports_running_and_stopped.py", "service": "cloudwatch"} {"check_id": "cloudwatch.high-resolution-alarm-evaluates-ten-second-periods-and-rejects-invalid-period", "deployments": [], "key": "cloudwatch/high-resolution-alarm-evaluates-ten-second-periods-and-rejects-invalid-period", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_high_resolution_alarm_evaluates_ten_second_periods_and_rejects_invalid_period.py", "service": "cloudwatch"} {"check_id": "cloudwatch.high-resolution-metric-math-alarm-not-breaching-recovers-to-ok-while-a-missing-twin-goes-insufficient-data", "deployments": [], "key": "cloudwatch/high-resolution-metric-math-alarm-not-breaching-recovers-to-ok-while-a-missing-twin-goes-insufficient-data", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_high_resolution_metric_math_alarm_not_breaching_recovers_to_ok_while_a_missing_twin_goes_insufficient_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-contributors-tie-break-order-deterministic", "deployments": [], "key": "cloudwatch/insight-rule-contributors-tie-break-order-deterministic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents"], "path": "behavioral/cloudwatch/check_insight_rule_contributors_tie_break_order_deterministic.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-delete-nonexistent-reported-in-failures", "deployments": [], "key": "cloudwatch/insight-rule-delete-nonexistent-reported-in-failures", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_insight_rule_delete_nonexistent_reported_in_failures.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-enable-disable-lifecycle", "deployments": [], "key": "cloudwatch/insight-rule-enable-disable-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_insight_rule_enable_disable_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-enable-disable-state", "deployments": [], "key": "cloudwatch/insight-rule-enable-disable-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_insight_rule_enable_disable_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-enable-disable-state-toggle", "deployments": [], "key": "cloudwatch/insight-rule-enable-disable-state-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_insight_rule_enable_disable_state_toggle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-enable-disable-state-transition", "deployments": [], "key": "cloudwatch/insight-rule-enable-disable-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_insight_rule_enable_disable_state_transition.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-enable-disable-state-transitions", "deployments": [], "key": "cloudwatch/insight-rule-enable-disable-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_insight_rule_enable_disable_state_transitions.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-report-lifecycle-and-not-found", "deployments": [], "key": "cloudwatch/insight-rule-report-lifecycle-and-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_insight_rule_report_lifecycle_and_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.insight-rule-report-time-window", "deployments": [], "key": "cloudwatch/insight-rule-report-time-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:PutInsightRule", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents"], "path": "behavioral/cloudwatch/check_insight_rule_report_time_window.py", "service": "cloudwatch"} {"check_id": "cloudwatch.internal-service-fault-family", "deployments": [], "key": "cloudwatch/internal-service-fault-family", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DeleteDashboards", "cloudwatch:DeleteMetricStream", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:GetDashboard", "cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricStream", "cloudwatch:ListDashboards", "cloudwatch:ListMetricStreams", "cloudwatch:ListMetrics", "cloudwatch:ListTagsForResource", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutDashboard", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_internal_service_fault_family.py", "service": "cloudwatch"} {"check_id": "cloudwatch.invalid-next-token-family", "deployments": [], "key": "cloudwatch/invalid-next-token-family", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DeleteInsightRules", "cloudwatch:DescribeAlarmContributors", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:DescribeInsightRules", "cloudwatch:GetMetricData", "cloudwatch:ListAlarmMuteRules", "cloudwatch:ListManagedInsightRules", "cloudwatch:ListMetricStreams", "cloudwatch:PutInsightRule", "cloudwatch:PutMetricAlarm", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_invalid_next_token_family.py", "service": "cloudwatch"} {"check_id": "cloudwatch.invalid-parameter-combination-family", "deployments": [], "key": "cloudwatch/invalid-parameter-combination-family", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DeleteMetricStream", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricStream", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_invalid_parameter_combination_family.py", "service": "cloudwatch"} {"check_id": "cloudwatch.invalid-parameter-value-family", "deployments": [], "key": "cloudwatch/invalid-parameter-value-family", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:DeleteInsightRules", "cloudwatch:DeleteMetricStream", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:GetDashboard", "cloudwatch:GetInsightRuleReport", "cloudwatch:GetMetricStatistics", "cloudwatch:ListDashboards", "cloudwatch:ListManagedInsightRules", "cloudwatch:ListMetricStreams", "cloudwatch:ListMetrics", "cloudwatch:ListTagsForResource", "cloudwatch:PutDashboard", "cloudwatch:PutInsightRule", "cloudwatch:PutMetricData", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_invalid_parameter_value_family.py", "service": "cloudwatch"} {"check_id": "cloudwatch.kms-key-access-errors", "deployments": [], "key": "cloudwatch/kms-key-access-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_kms_key_access_errors.py", "service": "cloudwatch"} {"check_id": "cloudwatch.limit-exceeded-family", "deployments": [], "key": "cloudwatch/limit-exceeded-family", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DeleteInsightRules", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutInsightRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_limit_exceeded_family.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-alarm-mute-rules-filters-by-alarm-name", "deployments": [], "key": "cloudwatch/list-alarm-mute-rules-filters-by-alarm-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_list_alarm_mute_rules_filters_by_alarm_name.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-alarm-mute-rules-invalid-next-token", "deployments": [], "key": "cloudwatch/list-alarm-mute-rules-invalid-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_list_alarm_mute_rules_invalid_next_token.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-alarm-mute-rules-order-stable-across-unrelated-updates", "deployments": [], "key": "cloudwatch/list-alarm-mute-rules-order-stable-across-unrelated-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_list_alarm_mute_rules_order_stable_across_unrelated_updates.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-alarm-mute-rules-pagination-order-stable", "deployments": [], "key": "cloudwatch/list-alarm-mute-rules-pagination-order-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_list_alarm_mute_rules_pagination_order_stable.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-alarm-mute-rules-reflects-put-immediately-with-metadata", "deployments": [], "key": "cloudwatch/list-alarm-mute-rules-reflects-put-immediately-with-metadata", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_list_alarm_mute_rules_reflects_put_immediately_with_metadata.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-dashboards-invalid-parameter-value-rejected", "deployments": [], "key": "cloudwatch/list-dashboards-invalid-parameter-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_list_dashboards_invalid_parameter_value_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-dashboards-lastmodified-timestamp-updates-on-put", "deployments": [], "key": "cloudwatch/list-dashboards-lastmodified-timestamp-updates-on-put", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_list_dashboards_lastmodified_timestamp_updates_on_put.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-dashboards-pagination-round-trip", "deployments": [], "key": "cloudwatch/list-dashboards-pagination-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_list_dashboards_pagination_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-dashboards-prefix-filter", "deployments": [], "key": "cloudwatch/list-dashboards-prefix-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_list_dashboards_prefix_filter.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-managed-insight-rules-invalid-next-token", "deployments": [], "key": "cloudwatch/list-managed-insight-rules-invalid-next-token", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudwatch/check_list_managed_insight_rules_invalid_next_token.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-managed-insight-rules-invalid-param", "deployments": [], "key": "cloudwatch/list-managed-insight-rules-invalid-param", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_list_managed_insight_rules_invalid_param.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-managed-insight-rules-missing-required-param", "deployments": [], "key": "cloudwatch/list-managed-insight-rules-missing-required-param", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_list_managed_insight_rules_missing_required_param.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-managed-insight-rules-missing-required-param-rejected", "deployments": [], "key": "cloudwatch/list-managed-insight-rules-missing-required-param-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_list_managed_insight_rules_missing_required_param_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metric-streams-invalid-next-token-rejected", "deployments": [], "key": "cloudwatch/list-metric-streams-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListMetricStreams"], "path": "behavioral/cloudwatch/check_list_metric_streams_invalid_next_token_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metric-streams-list-order-stable-across-repeated-calls", "deployments": [], "key": "cloudwatch/list-metric-streams-list-order-stable-across-repeated-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_list_metric_streams_list_order_stable_across_repeated_calls.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metric-streams-max-results-out-of-bounds-rejected", "deployments": [], "key": "cloudwatch/list-metric-streams-max-results-out-of-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListMetricStreams"], "path": "behavioral/cloudwatch/check_list_metric_streams_max_results_out_of_bounds_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metric-streams-pagination-order-stable", "deployments": [], "key": "cloudwatch/list-metric-streams-pagination-order-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_list_metric_streams_pagination_order_stable.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metric-streams-pagination-order-stable-across-pages", "deployments": [], "key": "cloudwatch/list-metric-streams-pagination-order-stable-across-pages", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_list_metric_streams_pagination_order_stable_across_pages.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metric-streams-reflects-created-and-deleted-streams", "deployments": [], "key": "cloudwatch/list-metric-streams-reflects-created-and-deleted-streams", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_list_metric_streams_reflects_created_and_deleted_streams.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-after-put-metric-data", "deployments": [], "key": "cloudwatch/list-metrics-after-put-metric-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_list_metrics_after_put_metric_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-dimension-filter", "deployments": [], "key": "cloudwatch/list-metrics-dimension-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_list_metrics_dimension_filter.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-dimension-filter-roundtrip", "deployments": [], "key": "cloudwatch/list-metrics-dimension-filter-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_list_metrics_dimension_filter_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-dimension-filter-scoping", "deployments": [], "key": "cloudwatch/list-metrics-dimension-filter-scoping", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_list_metrics_dimension_filter_scoping.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-pagination-stability", "deployments": [], "key": "cloudwatch/list-metrics-pagination-stability", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_list_metrics_pagination_stability.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-pagination-stable-order", "deployments": [], "key": "cloudwatch/list-metrics-pagination-stable-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_list_metrics_pagination_stable_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-recently-active-filter", "deployments": [], "key": "cloudwatch/list-metrics-recently-active-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_list_metrics_recently_active_filter.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-reflects-put-metric-data", "deployments": [], "key": "cloudwatch/list-metrics-reflects-put-metric-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_list_metrics_reflects_put_metric_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-metrics-too-many-dimensions-rejected", "deployments": [], "key": "cloudwatch/list-metrics-too-many-dimensions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListMetrics"], "path": "behavioral/cloudwatch/check_list_metrics_too_many_dimensions_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.list-tags-for-resource-nonexistent-resource-not-found", "deployments": [], "key": "cloudwatch/list-tags-for-resource-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_list_tags_for_resource_nonexistent_resource_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.log-alarm-lifecycle", "deployments": [], "key": "cloudwatch/log-alarm-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch/check_log_alarm_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.managed-insight-rule-invalid-template-rejected", "deployments": [], "key": "cloudwatch/managed-insight-rule-invalid-template-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "cloudwatch:PutManagedInsightRules", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_managed_insight_rule_invalid_template_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.managed-insight-rule-report-reflects-applied-template", "deployments": [], "key": "cloudwatch/managed-insight-rule-report-reflects-applied-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:ListManagedInsightRules", "cloudwatch:PutManagedInsightRules", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServiceConfigurations", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_managed_insight_rule_report_reflects_applied_template.py", "service": "cloudwatch"} {"check_id": "cloudwatch.managed-insight-rules-enable-list-lifecycle", "deployments": [], "key": "cloudwatch/managed-insight-rules-enable-list-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "cloudwatch:ListMetrics", "cloudwatch:PutManagedInsightRules", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudwatch/check_managed_insight_rules_enable_list_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.managed-insight-rules-put-list-lifecycle", "deployments": [], "key": "cloudwatch/managed-insight-rules-put-list-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DescribeInsightRules", "cloudwatch:ListManagedInsightRules", "cloudwatch:PutManagedInsightRules", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudwatch/check_managed_insight_rules_put_list_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.managed-insight-rules-server-side-enforcement", "deployments": [], "key": "cloudwatch/managed-insight-rules-server-side-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DeleteInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:ListManagedInsightRules", "cloudwatch:PutInsightRule", "cloudwatch:PutManagedInsightRules", "cloudwatch:PutMetricAlarm", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateContributorInsights", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_managed_insight_rules_server_side_enforcement.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-alarm-manual-state-transition-history", "deployments": [], "key": "cloudwatch/metric-alarm-manual-state-transition-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_metric_alarm_manual_state_transition_history.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-alarm-state-transitions-recorded-in-history", "deployments": [], "key": "cloudwatch/metric-alarm-state-transitions-recorded-in-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_metric_alarm_state_transitions_recorded_in_history.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-alarm-state-transitions-via-set-alarm-state", "deployments": [], "key": "cloudwatch/metric-alarm-state-transitions-via-set-alarm-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_metric_alarm_state_transitions_via_set_alarm_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-alarm-update-switches-between-math-and-single-metric", "deployments": [], "key": "cloudwatch/metric-alarm-update-switches-between-math-and-single-metric", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_metric_alarm_update_switches_between_math_and_single_metric.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-1-minute-resolution-retention-boundary", "deployments": [], "key": "cloudwatch/metric-data-1-minute-resolution-retention-boundary", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_1_minute_resolution_retention_boundary.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-concurrent-puts-sum-statistic", "deployments": [], "key": "cloudwatch/metric-data-concurrent-puts-sum-statistic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_concurrent_puts_sum_statistic.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-dimension-filtering", "deployments": [], "key": "cloudwatch/metric-data-dimension-filtering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_dimension_filtering.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-dimensions-isolate-series", "deployments": [], "key": "cloudwatch/metric-data-dimensions-isolate-series", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_dimensions_isolate_series.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-get-metric-data-math-expression", "deployments": [], "key": "cloudwatch/metric-data-get-metric-data-math-expression", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_get_metric_data_math_expression.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-high-resolution-period", "deployments": [], "key": "cloudwatch/metric-data-high-resolution-period", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_high_resolution_period.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-high-resolution-storage-resolution", "deployments": [], "key": "cloudwatch/metric-data-high-resolution-storage-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_high_resolution_storage_resolution.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-long-term-retention-downsampling-boundary", "deployments": [], "key": "cloudwatch/metric-data-long-term-retention-downsampling-boundary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_long_term_retention_downsampling_boundary.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-math-expression-query", "deployments": [], "key": "cloudwatch/metric-data-math-expression-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_math_expression_query.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-put-get-statistics-round-trip", "deployments": [], "key": "cloudwatch/metric-data-put-get-statistics-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_put_get_statistics_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-retention-window-enforced", "deployments": [], "key": "cloudwatch/metric-data-retention-window-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_retention_window_enforced.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-statistic-values-passthrough", "deployments": [], "key": "cloudwatch/metric-data-statistic-values-passthrough", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_statistic_values_passthrough.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-statistics-roundtrip", "deployments": [], "key": "cloudwatch/metric-data-statistics-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_statistics_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-sub-minute-resolution-3-hour-expiry-boundary", "deployments": [], "key": "cloudwatch/metric-data-sub-minute-resolution-3-hour-expiry-boundary", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_sub_minute_resolution_3_hour_expiry_boundary.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-sum-statistic-round-trip", "deployments": [], "key": "cloudwatch/metric-data-sum-statistic-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_sum_statistic_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-data-timestamp-ordering", "deployments": [], "key": "cloudwatch/metric-data-timestamp-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_data_timestamp_ordering.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-math-alarm-evaluates-the-computed-expression-not-its-inputs", "deployments": [], "key": "cloudwatch/metric-math-alarm-evaluates-the-computed-expression-not-its-inputs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_metric_math_alarm_evaluates_the_computed_expression_not_its_inputs.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-math-multi-metric-fill-rate-query", "deployments": [], "key": "cloudwatch/metric-math-multi-metric-fill-rate-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_math_multi_metric_fill_rate_query.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-statistics-aggregation-order-independence", "deployments": [], "key": "cloudwatch/metric-statistics-aggregation-order-independence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_statistics_aggregation_order_independence.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-conflicting-filters-rejected", "deployments": [], "key": "cloudwatch/metric-stream-conflicting-filters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_metric_stream_conflicting_filters_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-delivers-one-metrics-minutes-in-timestamp-order", "deployments": [], "key": "cloudwatch/metric-stream-delivers-one-metrics-minutes-in-timestamp-order", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_metric_stream_delivers_one_metrics_minutes_in_timestamp_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-lastupdate-timestamp-reflects-start-stop", "deployments": [], "key": "cloudwatch/metric-stream-lastupdate-timestamp-reflects-start-stop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_metric_stream_lastupdate_timestamp_reflects_start_stop.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-lifecycle", "deployments": [], "key": "cloudwatch/metric-stream-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_metric_stream_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-lifecycle-status-and-deletion-visible-in-list", "deployments": [], "key": "cloudwatch/metric-stream-lifecycle-status-and-deletion-visible-in-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_metric_stream_lifecycle_status_and_deletion_visible_in_list.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-server-side-delivery-status-managed", "deployments": [], "key": "cloudwatch/metric-stream-server-side-delivery-status-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_metric_stream_server_side_delivery_status_managed.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-start-stop-lifecycle", "deployments": [], "key": "cloudwatch/metric-stream-start-stop-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_metric_stream_start_stop_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-start-stop-state-toggle", "deployments": [], "key": "cloudwatch/metric-stream-start-stop-state-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_metric_stream_start_stop_state_toggle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-start-stop-timing", "deployments": [], "key": "cloudwatch/metric-stream-start-stop-timing", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_metric_stream_start_stop_timing.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-stream-stopped-from-creation-withholds-minutes-and-restart-does-not-replay", "deployments": [], "key": "cloudwatch/metric-stream-stopped-from-creation-withholds-minutes-and-restart-does-not-replay", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_metric_stream_stopped_from_creation_withholds_minutes_and_restart_does_not_replay.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-streams-batch-tolerates-unknown-name", "deployments": [], "key": "cloudwatch/metric-streams-batch-tolerates-unknown-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_metric_streams_batch_tolerates_unknown_name.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metric-widget-image-time-range", "deployments": [], "key": "cloudwatch/metric-widget-image-time-range", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricWidgetImage", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metric_widget_image_time_range.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metrics-math-and-emf-get-metric-data-pagination-reassembles-every-query-in-scan-order", "deployments": [], "key": "cloudwatch/metrics-math-and-emf-get-metric-data-pagination-reassembles-every-query-in-scan-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metrics_math_and_emf_get_metric_data_pagination_reassembles_every_query_in_scan_order.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metrics-math-and-emf-metric-math-non-finite-points-dropped-with-arithmetic-error", "deployments": [], "key": "cloudwatch/metrics-math-and-emf-metric-math-non-finite-points-dropped-with-arithmetic-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metrics_math_and_emf_metric_math_non_finite_points_dropped_with_arithmetic_error.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metrics-math-and-emf-metric-math-semantically-invalid-expressions-rejected", "deployments": [], "key": "cloudwatch/metrics-math-and-emf-metric-math-semantically-invalid-expressions-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metrics_math_and_emf_metric_math_semantically_invalid_expressions_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metrics-math-and-emf-metric-math-time-series-functions-evaluate-per-datapoint", "deployments": [], "key": "cloudwatch/metrics-math-and-emf-metric-math-time-series-functions-evaluate-per-datapoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metrics_math_and_emf_metric_math_time_series_functions_evaluate_per_datapoint.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metrics-math-and-emf-percentile-family-statistics-follow-the-raw-distribution", "deployments": [], "key": "cloudwatch/metrics-math-and-emf-percentile-family-statistics-follow-the-raw-distribution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metrics_math_and_emf_percentile_family_statistics_follow_the_raw_distribution.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metrics-math-and-emf-period-buckets-anchor-at-minute-rounded-start-time", "deployments": [], "key": "cloudwatch/metrics-math-and-emf-period-buckets-anchor-at-minute-rounded-start-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metrics_math_and_emf_period_buckets_anchor_at_minute_rounded_start_time.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metrics-math-and-emf-search-partial-dimension-match-feeds-sum-and-avg", "deployments": [], "key": "cloudwatch/metrics-math-and-emf-search-partial-dimension-match-feeds-sum-and-avg", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metrics_math_and_emf_search_partial_dimension_match_feeds_sum_and_avg.py", "service": "cloudwatch"} {"check_id": "cloudwatch.metrics-math-and-emf-statistic-and-extended-statistic-fields-not-interchangeable-rejected", "deployments": [], "key": "cloudwatch/metrics-math-and-emf-statistic-and-extended-statistic-fields-not-interchangeable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_metrics_math_and_emf_statistic_and_extended_statistic_fields_not_interchangeable_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.missing-required-parameter-family", "deployments": [], "key": "cloudwatch/missing-required-parameter-family", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DeleteMetricStream", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:GetInsightRuleReport", "cloudwatch:ListManagedInsightRules", "cloudwatch:PutInsightRule", "cloudwatch:PutManagedInsightRules", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams"], "path": "behavioral/cloudwatch/check_missing_required_parameter_family.py", "service": "cloudwatch"} {"check_id": "cloudwatch.new-alarm-starts-insufficient-data", "deployments": [], "key": "cloudwatch/new-alarm-starts-insufficient-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_new_alarm_starts_insufficient_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.new-metric-alarm-starts-insufficient-data", "deployments": [], "key": "cloudwatch/new-metric-alarm-starts-insufficient-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_new_metric_alarm_starts_insufficient_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.obs-cloudwatch-1-usage-callcount-tracks-calls-against-never-called-control", "deployments": [], "key": "cloudwatch/obs-cloudwatch-1-usage-callcount-tracks-calls-against-never-called-control", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetDashboard", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_obs_cloudwatch_1_usage_callcount_tracks_calls_against_never_called_control.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-deleteAlarms-dup", "deployments": [], "key": "cloudwatch/op-contract-deleteAlarms-dup", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_op_contract_delete_alarms_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-deleteAnomalyDetector", "deployments": [], "key": "cloudwatch/op-contract-deleteAnomalyDetector", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_op_contract_delete_anomaly_detector.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-deleteAnomalyDetector-dup", "deployments": [], "key": "cloudwatch/op-contract-deleteAnomalyDetector-dup", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_op_contract_delete_anomaly_detector_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-deleteDashboards", "deployments": [], "key": "cloudwatch/op-contract-deleteDashboards", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_op_contract_delete_dashboards.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-deleteDashboards-dup", "deployments": [], "key": "cloudwatch/op-contract-deleteDashboards-dup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_op_contract_delete_dashboards_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-deleteInsightRules-dup", "deployments": [], "key": "cloudwatch/op-contract-deleteInsightRules-dup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_op_contract_delete_insight_rules_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-deleteMetricStream", "deployments": [], "key": "cloudwatch/op-contract-deleteMetricStream", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_op_contract_delete_metric_stream.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-describeAlarmHistory", "deployments": [], "key": "cloudwatch/op-contract-describeAlarmHistory", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_op_contract_describe_alarm_history.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-describeAlarms-dup", "deployments": [], "key": "cloudwatch/op-contract-describeAlarms-dup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_op_contract_describe_alarms_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-describeAnomalyDetectors", "deployments": [], "key": "cloudwatch/op-contract-describeAnomalyDetectors", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_op_contract_describe_anomaly_detectors.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-describeInsightRules-dup", "deployments": [], "key": "cloudwatch/op-contract-describeInsightRules-dup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_op_contract_describe_insight_rules_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-disableAlarmActions", "deployments": [], "key": "cloudwatch/op-contract-disableAlarmActions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_op_contract_disable_alarm_actions.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-disableInsightRules", "deployments": [], "key": "cloudwatch/op-contract-disableInsightRules", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_op_contract_disable_insight_rules.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-enableAlarmActions-dup", "deployments": [], "key": "cloudwatch/op-contract-enableAlarmActions-dup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_op_contract_enable_alarm_actions_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-enableInsightRules", "deployments": [], "key": "cloudwatch/op-contract-enableInsightRules", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_op_contract_enable_insight_rules.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-getDashboard-dup", "deployments": [], "key": "cloudwatch/op-contract-getDashboard-dup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_op_contract_get_dashboard_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-getMetricData-dup", "deployments": [], "key": "cloudwatch/op-contract-getMetricData-dup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_op_contract_get_metric_data_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-getMetricStatistics", "deployments": [], "key": "cloudwatch/op-contract-getMetricStatistics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_op_contract_get_metric_statistics.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-getMetricStatistics-dup", "deployments": [], "key": "cloudwatch/op-contract-getMetricStatistics-dup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_op_contract_get_metric_statistics_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-getMetricStream", "deployments": [], "key": "cloudwatch/op-contract-getMetricStream", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_op_contract_get_metric_stream.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-getMetricStream-dup", "deployments": [], "key": "cloudwatch/op-contract-getMetricStream-dup", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_op_contract_get_metric_stream_dup.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-listDashboards", "deployments": [], "key": "cloudwatch/op-contract-listDashboards", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_op_contract_list_dashboards.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-listDashboards-lifecycle", "deployments": [], "key": "cloudwatch/op-contract-listDashboards-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_op_contract_list_dashboards_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-listMetricStreams", "deployments": [], "key": "cloudwatch/op-contract-listMetricStreams", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_op_contract_list_metric_streams.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-listMetricStreams-state-visibility", "deployments": [], "key": "cloudwatch/op-contract-listMetricStreams-state-visibility", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_op_contract_list_metric_streams_state_visibility.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-listMetrics", "deployments": [], "key": "cloudwatch/op-contract-listMetrics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_op_contract_list_metrics.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-listMetrics-namespace-pattern", "deployments": [], "key": "cloudwatch/op-contract-listMetrics-namespace-pattern", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_op_contract_list_metrics_namespace_pattern.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-list-tags-for-resource", "deployments": [], "key": "cloudwatch/op-contract-list-tags-for-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_op_contract_list_tags_for_resource.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-listTagsForResource-dashboard", "deployments": [], "key": "cloudwatch/op-contract-listTagsForResource-dashboard", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListDashboards", "cloudwatch:ListTagsForResource", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_op_contract_list_tags_for_resource_dashboard.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-putAnomalyDetector", "deployments": [], "key": "cloudwatch/op-contract-putAnomalyDetector", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_op_contract_put_anomaly_detector.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-putAnomalyDetector-delete-lifecycle", "deployments": [], "key": "cloudwatch/op-contract-putAnomalyDetector-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_op_contract_put_anomaly_detector_delete_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-put-composite-alarm", "deployments": [], "key": "cloudwatch/op-contract-put-composite-alarm", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_op_contract_put_composite_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-putDashboard", "deployments": [], "key": "cloudwatch/op-contract-putDashboard", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_op_contract_put_dashboard.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-put-dashboard-rejected", "deployments": [], "key": "cloudwatch/op-contract-put-dashboard-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_op_contract_put_dashboard_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-putDashboard-tags-at-creation", "deployments": [], "key": "cloudwatch/op-contract-putDashboard-tags-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:ListTagsForResource", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_op_contract_put_dashboard_tags_at_creation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-set-alarm-state", "deployments": [], "key": "cloudwatch/op-contract-set-alarm-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_op_contract_set_alarm_state.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-startMetricStreams", "deployments": [], "key": "cloudwatch/op-contract-startMetricStreams", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_op_contract_start_metric_streams.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-startMetricStreams-all-bogus-batch", "deployments": [], "key": "cloudwatch/op-contract-startMetricStreams-all-bogus-batch", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_op_contract_start_metric_streams_all_bogus_batch.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-stopMetricStreams", "deployments": [], "key": "cloudwatch/op-contract-stopMetricStreams", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_op_contract_stop_metric_streams.py", "service": "cloudwatch"} {"check_id": "cloudwatch.op-contract-stopMetricStreams-all-bogus-batch", "deployments": [], "key": "cloudwatch/op-contract-stopMetricStreams-all-bogus-batch", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_op_contract_stop_metric_streams_all_bogus_batch.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-idempotent-start-stop", "deployments": [], "key": "cloudwatch/otel-enrichment-idempotent-start-stop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_idempotent_start_stop.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-lifecycle", "deployments": [], "key": "cloudwatch/otel-enrichment-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-server-side-injects-metrics-without-explicit-putmetricdata", "deployments": [], "key": "cloudwatch/otel-enrichment-server-side-injects-metrics-without-explicit-putmetricdata", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetOTelEnrichment", "cloudwatch:ListMetrics", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "observabilityadmin:StartTelemetryEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_server_side_injects_metrics_without_explicit_putmetricdata.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-start-get-stop-lifecycle", "deployments": [], "key": "cloudwatch/otel-enrichment-start-get-stop-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_start_get_stop_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-start-stop-lifecycle", "deployments": [], "key": "cloudwatch/otel-enrichment-start-stop-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment", "observabilityadmin:StartTelemetryEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_start_stop_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-start-stop-state-transition", "deployments": [], "key": "cloudwatch/otel-enrichment-start-stop-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_start_stop_state_transition.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-start-stop-status", "deployments": [], "key": "cloudwatch/otel-enrichment-start-stop-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_start_stop_status.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-start-stop-status-lifecycle", "deployments": [], "key": "cloudwatch/otel-enrichment-start-stop-status-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_start_stop_status_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.otel-enrichment-status-visible-immediately-after-start-stop", "deployments": [], "key": "cloudwatch/otel-enrichment-status-visible-immediately-after-start-stop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_otel_enrichment_status_visible_immediately_after_start_stop.py", "service": "cloudwatch"} {"check_id": "cloudwatch.partial-dimension-query-returns-no-datapoints", "deployments": [], "key": "cloudwatch/partial-dimension-query-returns-no-datapoints", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_partial_dimension_query_returns_no_datapoints.py", "service": "cloudwatch"} {"check_id": "cloudwatch.percentile-availability-depends-on-the-publication-mode", "deployments": [], "key": "cloudwatch/percentile-availability-depends-on-the-publication-mode", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_percentile_availability_depends_on_the_publication_mode.py", "service": "cloudwatch"} {"check_id": "cloudwatch.period-rollup-query-alignment", "deployments": [], "key": "cloudwatch/period-rollup-query-alignment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_period_rollup_query_alignment.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-crud-visible-immediately-in-list-alarm-mute-rules", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-crud-visible-immediately-in-list-alarm-mute-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_crud_visible_immediately_in_list_alarm_mute_rules.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-duration-exceeds-max-rejected", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-duration-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_duration_exceeds_max_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-end-before-start-rejected", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-end-before-start-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_end_before_start_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-generates-alarm-history-entry", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-generates-alarm-history-entry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_generates_alarm_history_entry.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-invalid-schedule-expression-rejected", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-invalid-schedule-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_invalid_schedule_expression_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-limit-exceeded-rejected", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:ListAlarmMuteRules", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_limit_exceeded_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-limit-exceeded-unreachable", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-limit-exceeded-unreachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_limit_exceeded_unreachable.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-target-limit-exceeded-rejected", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-target-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_target_limit_exceeded_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-alarm-mute-rule-timestamp-precision-round-trip", "deployments": [], "key": "cloudwatch/put-alarm-mute-rule-timestamp-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:GetAlarmMuteRule", "cloudwatch:PutAlarmMuteRule"], "path": "behavioral/cloudwatch/check_put_alarm_mute_rule_timestamp_precision_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-anomaly-detector-conflicting-identification-params", "deployments": [], "key": "cloudwatch/put-anomaly-detector-conflicting-identification-params", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_put_anomaly_detector_conflicting_identification_params.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-anomaly-detector-invalid-stat-rejected", "deployments": [], "key": "cloudwatch/put-anomaly-detector-invalid-stat-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_put_anomaly_detector_invalid_stat_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-anomaly-detector-lifecycle", "deployments": [], "key": "cloudwatch/put-anomaly-detector-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_put_anomaly_detector_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-anomaly-detector-missing-identification-rejected", "deployments": [], "key": "cloudwatch/put-anomaly-detector-missing-identification-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector"], "path": "behavioral/cloudwatch/check_put_anomaly_detector_missing_identification_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-composite-alarm-name-collision-with-metric-alarm-rejected", "deployments": [], "key": "cloudwatch/put-composite-alarm-name-collision-with-metric-alarm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_composite_alarm_name_collision_with_metric_alarm_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-composite-alarm-parent-limit-exceeded-rejected", "deployments": [], "key": "cloudwatch/put-composite-alarm-parent-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_composite_alarm_parent_limit_exceeded_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-composite-alarm-self-reference-rejected", "deployments": [], "key": "cloudwatch/put-composite-alarm-self-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_composite_alarm_self_reference_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-empty-widgets-array-preserved-not-absent", "deployments": [], "key": "cloudwatch/put-dashboard-empty-widgets-array-preserved-not-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_empty_widgets_array_preserved_not_absent.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-get-dashboard-roundtrip", "deployments": [], "key": "cloudwatch/put-dashboard-get-dashboard-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:ListTagsForResource", "cloudwatch:PutDashboard", "cloudwatch:TagResource"], "path": "behavioral/cloudwatch/check_put_dashboard_get_dashboard_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-invalid-body-rejected", "deployments": [], "key": "cloudwatch/put-dashboard-invalid-body-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_invalid_body_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-invalid-json-body-rejected", "deployments": [], "key": "cloudwatch/put-dashboard-invalid-json-body-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_invalid_json_body_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-invalid-json-rejected", "deployments": [], "key": "cloudwatch/put-dashboard-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_invalid_json_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-invalid-name-characters-rejected", "deployments": [], "key": "cloudwatch/put-dashboard-invalid-name-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_invalid_name_characters_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-name-exceeds-length-limit-rejected", "deployments": [], "key": "cloudwatch/put-dashboard-name-exceeds-length-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_dashboard_name_exceeds_length_limit_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-name-invalid-characters-rejected", "deployments": [], "key": "cloudwatch/put-dashboard-name-invalid-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_name_invalid_characters_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-round-trip-and-delete", "deployments": [], "key": "cloudwatch/put-dashboard-round-trip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard", "cloudwatch:TagResource"], "path": "behavioral/cloudwatch/check_put_dashboard_round_trip_and_delete.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-unicode-body-round-trip", "deployments": [], "key": "cloudwatch/put-dashboard-unicode-body-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_unicode_body_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-unicode-widget-body-round-trip", "deployments": [], "key": "cloudwatch/put-dashboard-unicode-widget-body-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_unicode_widget_body_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-dashboard-update-refreshes-lastmodified-in-list", "deployments": [], "key": "cloudwatch/put-dashboard-update-refreshes-lastmodified-in-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard"], "path": "behavioral/cloudwatch/check_put_dashboard_update_refreshes_lastmodified_in_list.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-insight-rule-enable-disable-lifecycle", "deployments": [], "key": "cloudwatch/put-insight-rule-enable-disable-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:DisableInsightRules", "cloudwatch:EnableInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_put_insight_rule_enable_disable_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-insight-rule-invalid-definition-rejected", "deployments": [], "key": "cloudwatch/put-insight-rule-invalid-definition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:PutInsightRule"], "path": "behavioral/cloudwatch/check_put_insight_rule_invalid_definition_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-creates-alarm-visible-in-describe", "deployments": [], "key": "cloudwatch/put-log-alarm-creates-alarm-visible-in-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch/check_put_log_alarm_creates_alarm_visible_in_describe.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-lifecycle-and-deletion", "deployments": [], "key": "cloudwatch/put-log-alarm-lifecycle-and-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch/check_put_log_alarm_lifecycle_and_deletion.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-lifecycle-and-describe", "deployments": [], "key": "cloudwatch/put-log-alarm-lifecycle-and-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_log_alarm_lifecycle_and_describe.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-lifecycle-describe-delete", "deployments": [], "key": "cloudwatch/put-log-alarm-lifecycle-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch/check_put_log_alarm_lifecycle_describe_delete.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-limit-exceeded-enforced", "deployments": [], "key": "cloudwatch/put-log-alarm-limit-exceeded-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_log_alarm_limit_exceeded_enforced.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-limit-exceeded-unreachable", "deployments": [], "key": "cloudwatch/put-log-alarm-limit-exceeded-unreachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch/check_put_log_alarm_limit_exceeded_unreachable.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-name-conflict-rejected", "deployments": [], "key": "cloudwatch/put-log-alarm-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch/check_put_log_alarm_name_conflict_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-name-conflict-with-existing-metric-alarm", "deployments": [], "key": "cloudwatch/put-log-alarm-name-conflict-with-existing-metric-alarm", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch/check_put_log_alarm_name_conflict_with_existing_metric_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-name-conflict-with-metric-alarm-rejected", "deployments": [], "key": "cloudwatch/put-log-alarm-name-conflict-with-metric-alarm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch/check_put_log_alarm_name_conflict_with_metric_alarm_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-resource-conflict", "deployments": [], "key": "cloudwatch/put-log-alarm-resource-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_log_alarm_resource_conflict.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-log-alarm-resource-conflict-rejected", "deployments": [], "key": "cloudwatch/put-log-alarm-resource-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_log_alarm_resource_conflict_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-managed-insight-rules-invalid-definition-rejected", "deployments": [], "key": "cloudwatch/put-managed-insight-rules-invalid-definition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "cloudwatch:PutManagedInsightRules", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudwatch/check_put_managed_insight_rules_invalid_definition_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-managed-insight-rules-invalid-resource-arn-rejected", "deployments": [], "key": "cloudwatch/put-managed-insight-rules-invalid-resource-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "cloudwatch:PutManagedInsightRules", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudwatch/check_put_managed_insight_rules_invalid_resource_arn_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-managed-insight-rules-invalid-template-name-rejected-per-item", "deployments": [], "key": "cloudwatch/put-managed-insight-rules-invalid-template-name-rejected-per-item", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:DescribeInsightRules", "cloudwatch:ListManagedInsightRules", "cloudwatch:PutManagedInsightRules", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServiceConfigurations", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/cloudwatch/check_put_managed_insight_rules_invalid_template_name_rejected_per_item.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-managed-insight-rules-invalid-template-rejected", "deployments": [], "key": "cloudwatch/put-managed-insight-rules-invalid-template-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteInsightRules", "cloudwatch:ListManagedInsightRules", "cloudwatch:PutManagedInsightRules", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServiceConfigurations", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_managed_insight_rules_invalid_template_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-managed-insight-rules-missing-param-rejected", "deployments": [], "key": "cloudwatch/put-managed-insight-rules-missing-param-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:ListManagedInsightRules", "cloudwatch:PutManagedInsightRules", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/cloudwatch/check_put_managed_insight_rules_missing_param_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-empty-vs-absent-dimensions-distinguished", "deployments": [], "key": "cloudwatch/put-metric-alarm-empty-vs-absent-dimensions-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_empty_vs_absent_dimensions_distinguished.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-idempotent-update", "deployments": [], "key": "cloudwatch/put-metric-alarm-idempotent-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_idempotent_update.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-initial-state-insufficient-data", "deployments": [], "key": "cloudwatch/put-metric-alarm-initial-state-insufficient-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_initial_state_insufficient_data.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-invalid-combo-rejected", "deployments": [], "key": "cloudwatch/put-metric-alarm-invalid-combo-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_invalid_combo_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-invalid-treat-missing-data-rejected", "deployments": [], "key": "cloudwatch/put-metric-alarm-invalid-treat-missing-data-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_invalid_treat_missing_data_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-limit-exceeded-enforced", "deployments": [], "key": "cloudwatch/put-metric-alarm-limit-exceeded-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_limit_exceeded_enforced.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-period-not-multiple-of-sixty-rejected", "deployments": [], "key": "cloudwatch/put-metric-alarm-period-not-multiple-of-sixty-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_period_not_multiple_of_sixty_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-rejects-invalid-period", "deployments": [], "key": "cloudwatch/put-metric-alarm-rejects-invalid-period", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_rejects_invalid_period.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-rejects-statistic-and-extended-statistic", "deployments": [], "key": "cloudwatch/put-metric-alarm-rejects-statistic-and-extended-statistic", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_rejects_statistic_and_extended_statistic.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-alarm-update-rejected-leaves-prior-config-untouched", "deployments": [], "key": "cloudwatch/put-metric-alarm-update-rejected-leaves-prior-config-untouched", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm"], "path": "behavioral/cloudwatch/check_put_metric_alarm_update_rejected_leaves_prior_config_untouched.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-aws-slash-namespace-rejected-case-insensitively", "deployments": [], "key": "cloudwatch/put-metric-data-aws-slash-namespace-rejected-case-insensitively", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_aws_slash_namespace_rejected_case_insensitively.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-base64-like-string-dimension-preserved", "deployments": [], "key": "cloudwatch/put-metric-data-base64-like-string-dimension-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_base64_like_string_dimension_preserved.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-concurrent-writes-sample-count", "deployments": [], "key": "cloudwatch/put-metric-data-concurrent-writes-sample-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_concurrent_writes_sample_count.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-conflicting-value-and-statistic-values-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-conflicting-value-and-statistic-values-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_conflicting_value_and_statistic_values_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-conflicting-value-fields-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-conflicting-value-fields-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_conflicting_value_fields_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-dimension-distinct-metrics", "deployments": [], "key": "cloudwatch/put-metric-data-dimension-distinct-metrics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_dimension_distinct_metrics.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-dimension-presence-distinguishes-metric-identity", "deployments": [], "key": "cloudwatch/put-metric-data-dimension-presence-distinguishes-metric-identity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_dimension_presence_distinguishes_metric_identity.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-dimension-value-control-character-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-dimension-value-control-character-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_dimension_value_control_character_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-double-precision-value-round-trip", "deployments": [], "key": "cloudwatch/put-metric-data-double-precision-value-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_double_precision_value_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-get-metric-statistics-roundtrip", "deployments": [], "key": "cloudwatch/put-metric-data-get-metric-statistics-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_get_metric_statistics_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-get-statistics-exact-aggregation", "deployments": [], "key": "cloudwatch/put-metric-data-get-statistics-exact-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_get_statistics_exact_aggregation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-get-statistics-roundtrip", "deployments": [], "key": "cloudwatch/put-metric-data-get-statistics-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_get_statistics_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-get-statistics-sum-samplecount", "deployments": [], "key": "cloudwatch/put-metric-data-get-statistics-sum-samplecount", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_get_statistics_sum_samplecount.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-high-precision-float-value-preserved", "deployments": [], "key": "cloudwatch/put-metric-data-high-precision-float-value-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_high_precision_float_value_preserved.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-high-precision-float-value-round-trip", "deployments": [], "key": "cloudwatch/put-metric-data-high-precision-float-value-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_high_precision_float_value_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-high-resolution-period-roundtrip", "deployments": [], "key": "cloudwatch/put-metric-data-high-resolution-period-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_high_resolution_period_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-invalid-unit-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-invalid-unit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_invalid_unit_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-invalid-value-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-invalid-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_invalid_value_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-namespace-isolation", "deployments": [], "key": "cloudwatch/put-metric-data-namespace-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_namespace_isolation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-nan-value-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-nan-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_nan_value_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-out-of-order-timestamps-aggregated-correctly", "deployments": [], "key": "cloudwatch/put-metric-data-out-of-order-timestamps-aggregated-correctly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_out_of_order_timestamps_aggregated_correctly.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-rejects-value-and-statisticvalues-combo", "deployments": [], "key": "cloudwatch/put-metric-data-rejects-value-and-statisticvalues-combo", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_rejects_value_and_statisticvalues_combo.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-reserved-namespace-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-reserved-namespace-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_reserved_namespace_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-separate-calls-sum-and-samplecount-per-minute-bucket", "deployments": [], "key": "cloudwatch/put-metric-data-separate-calls-sum-and-samplecount-per-minute-bucket", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_separate_calls_sum_and_samplecount_per_minute_bucket.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-server-assigned-timestamp-recorded", "deployments": [], "key": "cloudwatch/put-metric-data-server-assigned-timestamp-recorded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_server_assigned_timestamp_recorded.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-statistic-values-aggregation", "deployments": [], "key": "cloudwatch/put-metric-data-statistic-values-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_statistic_values_aggregation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-storage-resolution-invalid-value-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-storage-resolution-invalid-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_storage_resolution_invalid_value_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-storage-resolution-out-of-range-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-storage-resolution-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_storage_resolution_out_of_range_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-timestamp-too-far-future-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-timestamp-too-far-future-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_timestamp_too_far_future_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-timestamp-too-far-past-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-timestamp-too-far-past-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_timestamp_too_far_past_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-timestamp-too-old-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-timestamp-too-old-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_timestamp_too_old_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-timestamp-window-validity", "deployments": [], "key": "cloudwatch/put-metric-data-timestamp-window-validity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_timestamp_window_validity.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-unicode-dimension-value-round-trip", "deployments": [], "key": "cloudwatch/put-metric-data-unicode-dimension-value-round-trip", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_unicode_dimension_value_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-value-and-statistic-values-combination-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-value-and-statistic-values-combination-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_value_and_statistic_values_combination_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-value-and-statistic-values-combo-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-value-and-statistic-values-combo-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_value_and_statistic_values_combo_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-value-and-statistic-values-conflict-rejected", "deployments": [], "key": "cloudwatch/put-metric-data-value-and-statistic-values-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_value_and_statistic_values_conflict_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-data-visible-in-list-metrics", "deployments": [], "key": "cloudwatch/put-metric-data-visible-in-list-metrics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_put_metric_data_visible_in_list_metrics.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-accepted-despite-unreachable-firehose-role", "deployments": [], "key": "cloudwatch/put-metric-stream-accepted-despite-unreachable-firehose-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_metric_stream_accepted_despite_unreachable_firehose_role.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-concurrent-modification", "deployments": [], "key": "cloudwatch/put-metric-stream-concurrent-modification", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_metric_stream_concurrent_modification.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-concurrent-modification-converges", "deployments": [], "key": "cloudwatch/put-metric-stream-concurrent-modification-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_put_metric_stream_concurrent_modification_converges.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-concurrent-modification-detected", "deployments": [], "key": "cloudwatch/put-metric-stream-concurrent-modification-detected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_put_metric_stream_concurrent_modification_detected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-conflicting-filters-rejected", "deployments": [], "key": "cloudwatch/put-metric-stream-conflicting-filters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_metric_stream_conflicting_filters_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-conflicting-include-exclude-filters-rejected", "deployments": [], "key": "cloudwatch/put-metric-stream-conflicting-include-exclude-filters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_put_metric_stream_conflicting_include_exclude_filters_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-cross-account-firehose-arn-rejected", "deployments": [], "key": "cloudwatch/put-metric-stream-cross-account-firehose-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_metric_stream_cross_account_firehose_arn_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-empty-statistics-configuration-preserved", "deployments": [], "key": "cloudwatch/put-metric-stream-empty-statistics-configuration-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_put_metric_stream_empty_statistics_configuration_preserved.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-invalid-output-format-rejected", "deployments": [], "key": "cloudwatch/put-metric-stream-invalid-output-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_put_metric_stream_invalid_output_format_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-lifecycle-start-stop-delete", "deployments": [], "key": "cloudwatch/put-metric-stream-lifecycle-start-stop-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_metric_stream_lifecycle_start_stop_delete.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-output-format-persists-across-restart", "deployments": [], "key": "cloudwatch/put-metric-stream-output-format-persists-across-restart", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_put_metric_stream_output_format_persists_across_restart.py", "service": "cloudwatch"} {"check_id": "cloudwatch.put-metric-stream-role-without-firehose-permission-accepted", "deployments": [], "key": "cloudwatch/put-metric-stream-role-without-firehose-permission-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_put_metric_stream_role_without_firehose_permission_accepted.py", "service": "cloudwatch"} {"check_id": "cloudwatch.resource-conflict-error-precondition", "deployments": [], "key": "cloudwatch/resource-conflict-error-precondition", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:AssociateDatasetKmsKey", "cloudwatch:DeleteAlarms", "cloudwatch:DeleteDashboards", "cloudwatch:DescribeAlarms", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetDataset", "cloudwatch:ListTagsForResource", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutDashboard", "cloudwatch:PutLogAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_resource_conflict_error_precondition.py", "service": "cloudwatch"} {"check_id": "cloudwatch.resource-not-found-error-family", "deployments": [], "key": "cloudwatch/resource-not-found-error-family", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmContributors", "cloudwatch:DisassociateDatasetKmsKey", "cloudwatch:GetAlarmMuteRule", "cloudwatch:GetDashboard", "cloudwatch:GetDataset", "cloudwatch:GetInsightRuleReport", "cloudwatch:ListAlarmMuteRules", "cloudwatch:ListTagsForResource", "cloudwatch:SetAlarmState", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_resource_not_found_error_family.py", "service": "cloudwatch"} {"check_id": "cloudwatch.rpcv2-cbor-describe-alarms-encodes-timestamps-as-epoch-tag", "deployments": [], "key": "cloudwatch/rpcv2-cbor-describe-alarms-encodes-timestamps-as-epoch-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudwatch/check_rpcv2_cbor_describe_alarms_encodes_timestamps_as_epoch_tag.py", "service": "cloudwatch"} {"check_id": "cloudwatch.rpcv2-cbor-insight-rule-mute-rule-and-error-maps", "deployments": [], "key": "cloudwatch/rpcv2-cbor-insight-rule-mute-rule-and-error-maps", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarmMuteRule", "cloudwatch:DeleteAlarms", "cloudwatch:DeleteInsightRules", "cloudwatch:DescribeAlarms"], "path": "behavioral/cloudwatch/check_rpcv2_cbor_insight_rule_mute_rule_and_error_maps.py", "service": "cloudwatch"} {"check_id": "cloudwatch.rpcv2cbor-and-awsjson-are-one-metric-store", "deployments": [], "key": "cloudwatch/rpcv2cbor-and-awsjson-are-one-metric-store", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_rpcv2cbor_and_awsjson_are_one_metric_store.py", "service": "cloudwatch"} {"check_id": "cloudwatch.rpcv2cbor-protocol-discriminator-and-framing-refusals", "deployments": [], "key": "cloudwatch/rpcv2cbor-protocol-discriminator-and-framing-refusals", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics"], "path": "behavioral/cloudwatch/check_rpcv2cbor_protocol_discriminator_and_framing_refusals.py", "service": "cloudwatch"} {"check_id": "cloudwatch.search-expression-discovers-series-server-side-and-is-refused-in-an-alarm", "deployments": [], "key": "cloudwatch/search-expression-discovers-series-server-side-and-is-refused-in-an-alarm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_search_expression_discovers_series_server_side_and_is_refused_in_an_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-history-records-transition", "deployments": [], "key": "cloudwatch/set-alarm-state-history-records-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "cloudwatch:TagResource"], "path": "behavioral/cloudwatch/check_set_alarm_state_history_records_transition.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-invalid-format-rejected", "deployments": [], "key": "cloudwatch/set-alarm-state-invalid-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_invalid_format_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-invalid-json-reason-rejected", "deployments": [], "key": "cloudwatch/set-alarm-state-invalid-json-reason-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_invalid_json_reason_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-invalid-json-state-reason-rejected", "deployments": [], "key": "cloudwatch/set-alarm-state-invalid-json-state-reason-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_invalid_json_state_reason_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-invalid-reason-data-rejected", "deployments": [], "key": "cloudwatch/set-alarm-state-invalid-reason-data-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_invalid_reason_data_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-invalid-state-reason-data-json", "deployments": [], "key": "cloudwatch/set-alarm-state-invalid-state-reason-data-json", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_invalid_state_reason_data_json.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-invalid-state-reason-data-rejected", "deployments": [], "key": "cloudwatch/set-alarm-state-invalid-state-reason-data-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_invalid_state_reason_data_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-malformed-reason-data-rejected", "deployments": [], "key": "cloudwatch/set-alarm-state-malformed-reason-data-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_malformed_reason_data_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-nonexistent-alarm-not-found", "deployments": [], "key": "cloudwatch/set-alarm-state-nonexistent-alarm-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_nonexistent_alarm_not_found.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-nonexistent-alarm-rejected", "deployments": [], "key": "cloudwatch/set-alarm-state-nonexistent-alarm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_nonexistent_alarm_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-ok-alarm-insufficient-transitions", "deployments": [], "key": "cloudwatch/set-alarm-state-ok-alarm-insufficient-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_ok_alarm_insufficient_transitions.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-ok-transition-recorded-in-history", "deployments": [], "key": "cloudwatch/set-alarm-state-ok-transition-recorded-in-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_ok_transition_recorded_in_history.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-on-missing-alarm-rejected", "deployments": [], "key": "cloudwatch/set-alarm-state-on-missing-alarm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_on_missing_alarm_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-sns-notification-delivered", "deployments": [], "key": "cloudwatch/set-alarm-state-sns-notification-delivered", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch/check_set_alarm_state_sns_notification_delivered.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-transition-to-alarm", "deployments": [], "key": "cloudwatch/set-alarm-state-transition-to-alarm", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_transition_to_alarm.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-transitions", "deployments": [], "key": "cloudwatch/set-alarm-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_transitions.py", "service": "cloudwatch"} {"check_id": "cloudwatch.set-alarm-state-updates-state-and-history", "deployments": [], "key": "cloudwatch/set-alarm-state-updates-state-and-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch/check_set_alarm_state_updates_state_and_history.py", "service": "cloudwatch"} {"check_id": "cloudwatch.start-metric-streams-empty-name-list-is-accepted-as-noop", "deployments": [], "key": "cloudwatch/start-metric-streams-empty-name-list-is-accepted-as-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_start_metric_streams_empty_name_list_is_accepted_as_noop.py", "service": "cloudwatch"} {"check_id": "cloudwatch.start-metric-streams-invalid-name-rejects-entire-batch", "deployments": [], "key": "cloudwatch/start-metric-streams-invalid-name-rejects-entire-batch", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_start_metric_streams_invalid_name_rejects_entire_batch.py", "service": "cloudwatch"} {"check_id": "cloudwatch.start-metric-streams-missing-required-parameter-rejected", "deployments": [], "key": "cloudwatch/start-metric-streams-missing-required-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:StartMetricStreams"], "path": "behavioral/cloudwatch/check_start_metric_streams_missing_required_parameter_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.start-metric-streams-nonexistent-name-silently-ignored", "deployments": [], "key": "cloudwatch/start-metric-streams-nonexistent-name-silently-ignored", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch/check_start_metric_streams_nonexistent_name_silently_ignored.py", "service": "cloudwatch"} {"check_id": "cloudwatch.start-metric-streams-nonexistent-stream-name-silently-ignored", "deployments": [], "key": "cloudwatch/start-metric-streams-nonexistent-stream-name-silently-ignored", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_start_metric_streams_nonexistent_stream_name_silently_ignored.py", "service": "cloudwatch"} {"check_id": "cloudwatch.start-metric-streams-partial-invalid-name-is-silently-ignored", "deployments": [], "key": "cloudwatch/start-metric-streams-partial-invalid-name-is-silently-ignored", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "cloudwatch:StartMetricStreams", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch/check_start_metric_streams_partial_invalid_name_is_silently_ignored.py", "service": "cloudwatch"} {"check_id": "cloudwatch.start-otel-enrichment-duplicate-active-session-is-noop", "deployments": [], "key": "cloudwatch/start-otel-enrichment-duplicate-active-session-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_start_otel_enrichment_duplicate_active_session_is_noop.py", "service": "cloudwatch"} {"check_id": "cloudwatch.start-otel-enrichment-repeat-call-idempotent", "deployments": [], "key": "cloudwatch/start-otel-enrichment-repeat-call-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_start_otel_enrichment_repeat_call_idempotent.py", "service": "cloudwatch"} {"check_id": "cloudwatch.stop-metric-streams-missing-required-parameter-rejected", "deployments": [], "key": "cloudwatch/stop-metric-streams-missing-required-parameter-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudwatch:StopMetricStreams"], "path": "behavioral/cloudwatch/check_stop_metric_streams_missing_required_parameter_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.stop-otel-enrichment-noop-when-already-stopped", "deployments": [], "key": "cloudwatch/stop-otel-enrichment-noop-when-already-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_stop_otel_enrichment_noop_when_already_stopped.py", "service": "cloudwatch"} {"check_id": "cloudwatch.stop-otel-enrichment-when-not-started-is-noop", "deployments": [], "key": "cloudwatch/stop-otel-enrichment-when-not-started-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:GetOTelEnrichment", "cloudwatch:StartOTelEnrichment", "cloudwatch:StopOTelEnrichment"], "path": "behavioral/cloudwatch/check_stop_otel_enrichment_when_not_started_is_noop.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-list-untag-lifecycle", "deployments": [], "key": "cloudwatch/tag-list-untag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_tag_list_untag_lifecycle.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-nonexistent-resource-rejected", "deployments": [], "key": "cloudwatch/tag-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_tag_nonexistent_resource_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-concurrent-modification", "deployments": [], "key": "cloudwatch/tag-resource-concurrent-modification", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListTagsForResource", "cloudwatch:PutDashboard", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_tag_resource_concurrent_modification.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-concurrent-modification-conflict", "deployments": [], "key": "cloudwatch/tag-resource-concurrent-modification-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource"], "path": "behavioral/cloudwatch/check_tag_resource_concurrent_modification_conflict.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-concurrent-modification-converges", "deployments": [], "key": "cloudwatch/tag-resource-concurrent-modification-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource"], "path": "behavioral/cloudwatch/check_tag_resource_concurrent_modification_converges.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-empty-string-value-preserved", "deployments": [], "key": "cloudwatch/tag-resource-empty-string-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource"], "path": "behavioral/cloudwatch/check_tag_resource_empty_string_value_preserved.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-invalid-key-character-rejected", "deployments": [], "key": "cloudwatch/tag-resource-invalid-key-character-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource"], "path": "behavioral/cloudwatch/check_tag_resource_invalid_key_character_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-invalid-tag-key-prefix-aws-rejected", "deployments": [], "key": "cloudwatch/tag-resource-invalid-tag-key-prefix-aws-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_tag_resource_invalid_tag_key_prefix_aws_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-list-tags-roundtrip", "deployments": [], "key": "cloudwatch/tag-resource-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource"], "path": "behavioral/cloudwatch/check_tag_resource_list_tags_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-nonexistent-alarm-rejected", "deployments": [], "key": "cloudwatch/tag-resource-nonexistent-alarm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_tag_resource_nonexistent_alarm_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-round-trip", "deployments": [], "key": "cloudwatch/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource"], "path": "behavioral/cloudwatch/check_tag_resource_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-roundtrip-and-list-tags", "deployments": [], "key": "cloudwatch/tag-resource-roundtrip-and-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_tag_resource_roundtrip_and_list_tags.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-unicode-tag-value-round-trip", "deployments": [], "key": "cloudwatch/tag-resource-unicode-tag-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource"], "path": "behavioral/cloudwatch/check_tag_resource_unicode_tag_value_round_trip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-resource-untag-resource-roundtrip", "deployments": [], "key": "cloudwatch/tag-resource-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource"], "path": "behavioral/cloudwatch/check_tag_resource_untag_resource_roundtrip.py", "service": "cloudwatch"} {"check_id": "cloudwatch.tag-untag-nonexistent-resource-rejected", "deployments": [], "key": "cloudwatch/tag-untag-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_tag_untag_nonexistent_resource_rejected.py", "service": "cloudwatch"} {"check_id": "cloudwatch.unit-is-part-of-a-datapoints-read-identity", "deployments": [], "key": "cloudwatch/unit-is-part-of-a-datapoints-read-identity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_unit_is_part_of_a_datapoints_read_identity.py", "service": "cloudwatch"} {"check_id": "cloudwatch.unit-scoped-metric-query-isolation", "deployments": [], "key": "cloudwatch/unit-scoped-metric-query-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_unit_scoped_metric_query_isolation.py", "service": "cloudwatch"} {"check_id": "cloudwatch.untag-resource-concurrent-modification", "deployments": [], "key": "cloudwatch/untag-resource-concurrent-modification", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:ListTagsForResource", "cloudwatch:PutDashboard", "cloudwatch:TagResource", "cloudwatch:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch/check_untag_resource_concurrent_modification.py", "service": "cloudwatch"} {"check_id": "cloudwatch.untag-resource-removes-tag", "deployments": [], "key": "cloudwatch/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource", "cloudwatch:PutMetricAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource"], "path": "behavioral/cloudwatch/check_untag_resource_removes_tag.py", "service": "cloudwatch"} {"check_id": "cloudwatch.values-counts-histogram-query-aggregation", "deployments": [], "key": "cloudwatch/values-counts-histogram-query-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch/check_values_counts_histogram_query_aggregation.py", "service": "cloudwatch"} {"check_id": "cloudwatch__codebuild.build-outcome-splits-succeeded-and-failed-builds-in-the-codebuild-namespace", "deployments": [], "key": "cloudwatch__codebuild/build-outcome-splits-succeeded-and-failed-builds-in-the-codebuild-namespace", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__codebuild/check_build_outcome_splits_succeeded_and_failed_builds_in_the_codebuild_namespace.py", "service": "cloudwatch__codebuild"} {"check_id": "cloudwatch__codedeploy__lambda.lambda-deployment-stopped-and-rolled-back-by-alarm", "deployments": [], "key": "cloudwatch__codedeploy__lambda/lambda-deployment-stopped-and-rolled-back-by-alarm", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__codedeploy__lambda/check_lambda_deployment_stopped_and_rolled_back_by_alarm.py", "service": "cloudwatch__codedeploy__lambda"} {"check_id": "cloudwatch__cognito-idp.obs-cognito-idp-2-auth-counters-per-client-and-plus-tier-no-risk", "deployments": [], "key": "cloudwatch__cognito-idp/obs-cognito-idp-2-auth-counters-per-client-and-plus-tier-no-risk", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cloudwatch__cognito-idp/check_obs_cognito_idp_2_auth_counters_per_client_and_plus_tier_no_risk.py", "service": "cloudwatch__cognito-idp"} {"check_id": "cloudwatch__cognito-idp.obs-cognito-idp-2-sign-in-rejected-for-disabled-flow-is-a-zero-sample", "deployments": [], "key": "cloudwatch__cognito-idp/obs-cognito-idp-2-sign-in-rejected-for-disabled-flow-is-a-zero-sample", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cloudwatch__cognito-idp/check_obs_cognito_idp_2_sign_in_rejected_for_disabled_flow_is_a_zero_sample.py", "service": "cloudwatch__cognito-idp"} {"check_id": "cloudwatch__cognito-idp.sign-in-attempts-and-successes-count-per-app-client", "deployments": [], "key": "cloudwatch__cognito-idp/sign-in-attempts-and-successes-count-per-app-client", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth"], "path": "behavioral/cloudwatch__cognito-idp/check_sign_in_attempts_and_successes_count_per_app_client.py", "service": "cloudwatch__cognito-idp"} {"check_id": "cloudwatch__dynamodb.conc-ddb-optimistic-refused-conditional-write-still-billed-rejected", "deployments": [], "key": "cloudwatch__dynamodb/conc-ddb-optimistic-refused-conditional-write-still-billed-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudwatch__dynamodb/check_conc_ddb_optimistic_refused_conditional_write_still_billed_rejected.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.ddb-consumed-capacity-two-plane-numeric-agreement", "deployments": [], "key": "cloudwatch__dynamodb/ddb-consumed-capacity-two-plane-numeric-agreement", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/cloudwatch__dynamodb/check_ddb_consumed_capacity_two_plane_numeric_agreement.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.ddb-provisioned-write-capacity-follows-update-on-demand-reports-zero", "deployments": [], "key": "cloudwatch__dynamodb/ddb-provisioned-write-capacity-follows-update-on-demand-reports-zero", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/cloudwatch__dynamodb/check_ddb_provisioned_write_capacity_follows_update_on_demand_reports_zero.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.metrics-dynamodb-cancelled-transact-write-items-still-consumes-write-capacity", "deployments": [], "key": "cloudwatch__dynamodb/metrics-dynamodb-cancelled-transact-write-items-still-consumes-write-capacity", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/cloudwatch__dynamodb/check_metrics_dynamodb_cancelled_transact_write_items_still_consumes_write_capacity.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.metrics-dynamodb-conditional-check-failure-still-consumes-write-capacity-rejected", "deployments": [], "key": "cloudwatch__dynamodb/metrics-dynamodb-conditional-check-failure-still-consumes-write-capacity-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudwatch__dynamodb/check_metrics_dynamodb_conditional_check_failure_still_consumes_write_capacity_rejected.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.metrics-dynamodb-dimension-sets-are-exact-per-metric-family", "deployments": [], "key": "cloudwatch__dynamodb/metrics-dynamodb-dimension-sets-are-exact-per-metric-family", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/cloudwatch__dynamodb/check_metrics_dynamodb_dimension_sets_are_exact_per_metric_family.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.metrics-dynamodb-gsi-consumption-under-index-dimension-not-folded-into-table", "deployments": [], "key": "cloudwatch__dynamodb/metrics-dynamodb-gsi-consumption-under-index-dimension-not-folded-into-table", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/cloudwatch__dynamodb/check_metrics_dynamodb_gsi_consumption_under_index_dimension_not_folded_into_table.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.metrics-dynamodb-read-units-4kb-boundary-by-consistency-agree-with-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb/metrics-dynamodb-read-units-4kb-boundary-by-consistency-agree-with-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudwatch__dynamodb/check_metrics_dynamodb_read_units_4kb_boundary_by_consistency_agree_with_cloudwatch.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.metrics-dynamodb-refused-conditional-putitem-write-capacity-sizing", "deployments": [], "key": "cloudwatch__dynamodb/metrics-dynamodb-refused-conditional-putitem-write-capacity-sizing", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/cloudwatch__dynamodb/check_metrics_dynamodb_refused_conditional_putitem_write_capacity_sizing.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.metrics-dynamodb-transactional-write-costs-double-in-both-planes", "deployments": [], "key": "cloudwatch__dynamodb/metrics-dynamodb-transactional-write-costs-double-in-both-planes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/cloudwatch__dynamodb/check_metrics_dynamodb_transactional_write_costs_double_in_both_planes.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.metrics-dynamodb-write-units-round-up-per-kb-agree-with-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb/metrics-dynamodb-write-units-round-up-per-kb-agree-with-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/cloudwatch__dynamodb/check_metrics_dynamodb_write_units_round_up_per_kb_agree_with_cloudwatch.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.obs-dynamodb-2-ccf-alarm-notifies-sqs-via-sns", "deployments": [], "key": "cloudwatch__dynamodb/obs-dynamodb-2-ccf-alarm-notifies-sqs-via-sns", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__dynamodb/check_obs_dynamodb_2_ccf_alarm_notifies_sqs_via_sns.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.obs-dynamodb-2-contributor-insights-hot-key-closed-loop", "deployments": [], "key": "cloudwatch__dynamodb/obs-dynamodb-2-contributor-insights-hot-key-closed-loop", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DescribeInsightRules", "cloudwatch:GetInsightRuleReport", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateContributorInsights"], "path": "behavioral/cloudwatch__dynamodb/check_obs_dynamodb_2_contributor_insights_hot_key_closed_loop.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.obs-dynamodb-2-throttled-keys-mode-accessed-report-rejected", "deployments": [], "key": "cloudwatch__dynamodb/obs-dynamodb-2-throttled-keys-mode-accessed-report-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DescribeInsightRules", "cloudwatch:GetInsightRuleReport", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable", "dynamodb:UpdateContributorInsights"], "path": "behavioral/cloudwatch__dynamodb/check_obs_dynamodb_2_throttled_keys_mode_accessed_report_rejected.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.obs-dynamodb-3-provisioned-write-capacity-tracks-update-on-demand-has-none", "deployments": [], "key": "cloudwatch__dynamodb/obs-dynamodb-3-provisioned-write-capacity-tracks-update-on-demand-has-none", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/cloudwatch__dynamodb/check_obs_dynamodb_3_provisioned_write_capacity_tracks_update_on_demand_has_none.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb.obs-dynamodb-3-transaction-conflict-sum-equals-client-rejected-count", "deployments": [], "key": "cloudwatch__dynamodb/obs-dynamodb-3-transaction-conflict-sum-equals-client-rejected-count", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/cloudwatch__dynamodb/check_obs_dynamodb_3_transaction_conflict_sum_equals_client_rejected_count.py", "service": "cloudwatch__dynamodb"} {"check_id": "cloudwatch__dynamodb__ecr__events__iam__logs__s3__secretsmanager__sns__sqs__ssm.provider-refresh-discipline-23-resource-types", "deployments": [], "key": "cloudwatch__dynamodb__ecr__events__iam__logs__s3__secretsmanager__sns__sqs__ssm/provider-refresh-discipline-23-resource-types", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DeleteDashboards", "cloudwatch:DescribeAlarms", "cloudwatch:GetDashboard", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutDashboard", "cloudwatch:PutMetricAlarm", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "ecr:CreateRepository", "ecr:DeleteLifecyclePolicy", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:PutImageTagMutability", "ecr:PutLifecyclePolicy", "events:DeleteRule", "events:DescribeRule", "events:EnableRule", "events:PutRule", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:CreateRole", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteRole", "iam:GetPolicy", "iam:GetRole", "iam:UpdateRole", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketCors", "s3:DeleteBucketEncryption", "s3:DeleteBucketLifecycle", "s3:DeleteBucketOwnershipControls", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:DeleteObjects", "s3:DeletePublicAccessBlock", "s3:GetBucketCors", "s3:GetBucketEncryption", "s3:GetBucketLifecycleConfiguration", "s3:GetBucketOwnershipControls", "s3:GetBucketPolicy", "s3:GetPublicAccessBlock", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketEncryption", "s3:PutBucketLifecycleConfiguration", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:UpdateSecret", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:SetSubscriptionAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__dynamodb__ecr__events__iam__logs__s3__secretsmanager__sns__sqs__ssm/check_provider_refresh_discipline_23_resource_types.py", "service": "cloudwatch__dynamodb__ecr__events__iam__logs__s3__secretsmanager__sns__sqs__ssm"} {"check_id": "cloudwatch__dynamodb__lambda.cloudwatch-alarm-on-lambda-error-rate-transitions-alarm", "deployments": [], "key": "cloudwatch__dynamodb__lambda/cloudwatch-alarm-on-lambda-error-rate-transitions-alarm", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_cloudwatch_alarm_on_lambda_error_rate_transitions_alarm.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.ddb-stream-lambda-batch-size-limit-metric", "deployments": [], "key": "cloudwatch__dynamodb__lambda/ddb-stream-lambda-batch-size-limit-metric", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_ddb_stream_lambda_batch_size_limit_metric.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.ddb-stream-lambda-error-metric-on-handler-exception", "deployments": [], "key": "cloudwatch__dynamodb__lambda/ddb-stream-lambda-error-metric-on-handler-exception", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_ddb_stream_lambda_error_metric_on_handler_exception.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.ddb-stream-lambda-esm-missing-role-trust-negative", "deployments": [], "key": "cloudwatch__dynamodb__lambda/ddb-stream-lambda-esm-missing-role-trust-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_ddb_stream_lambda_esm_missing_role_trust_negative.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.ddb-stream-lambda-invocation-count-metric", "deployments": [], "key": "cloudwatch__dynamodb__lambda/ddb-stream-lambda-invocation-count-metric", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_ddb_stream_lambda_invocation_count_metric.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.ddb-stream-lambda-iteratorage-metric-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb__lambda/ddb-stream-lambda-iteratorage-metric-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_ddb_stream_lambda_iteratorage_metric_cloudwatch.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.ddb-stream-lambda-missing-cloudwatch-permission-negative", "deployments": [], "key": "cloudwatch__dynamodb__lambda/ddb-stream-lambda-missing-cloudwatch-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_ddb_stream_lambda_missing_cloudwatch_permission_negative.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.ddb-stream-lambda-throttled-esm-metric", "deployments": [], "key": "cloudwatch__dynamodb__lambda/ddb-stream-lambda-throttled-esm-metric", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_ddb_stream_lambda_throttled_esm_metric.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.deploy-cloudwatch-composite-alarm-missing-metric-negative", "deployments": [], "key": "cloudwatch__dynamodb__lambda/deploy-cloudwatch-composite-alarm-missing-metric-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData", "lambda:Invoke"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_deploy_cloudwatch_composite_alarm_missing_metric_negative.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.deploy-ddb-lambda-cloudwatch-alarm-stack", "deployments": [], "key": "cloudwatch__dynamodb__lambda/deploy-ddb-lambda-cloudwatch-alarm-stack", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_deploy_ddb_lambda_cloudwatch_alarm_stack.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.deploy-ddb-stream-lambda-cloudwatch-dashboard", "deployments": [], "key": "cloudwatch__dynamodb__lambda/deploy-ddb-stream-lambda-cloudwatch-dashboard", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetDashboard", "cloudwatch:GetMetricStatistics", "dynamodb:PutItem", "lambda:GetEventSourceMapping", "lambda:ListEventSourceMappings"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_deploy_ddb_stream_lambda_cloudwatch_dashboard.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.deploy-ddb-table-stream-esm-cfn-lambda-trigger", "deployments": [], "key": "cloudwatch__dynamodb__lambda/deploy-ddb-table-stream-esm-cfn-lambda-trigger", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "dynamodb:PutItem", "lambda:GetEventSourceMapping", "lambda:ListEventSourceMappings"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_deploy_ddb_table_stream_esm_cfn_lambda_trigger.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.deploy-lambda-execution-role-missing-cloudwatch-permission-negative", "deployments": [], "key": "cloudwatch__dynamodb__lambda/deploy-lambda-execution-role-missing-cloudwatch-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData", "dynamodb:GetItem", "dynamodb:PutItem", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_deploy_lambda_execution_role_missing_cloudwatch_permission_negative.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.deploy-lambda-log-group-retention-configured", "deployments": [], "key": "cloudwatch__dynamodb__lambda/deploy-lambda-log-group-retention-configured", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_deploy_lambda_log_group_retention_configured.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-ddb-accessdenied-logged-to-cloudwatch-negative", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-ddb-accessdenied-logged-to-cloudwatch-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_ddb_accessdenied_logged_to_cloudwatch_negative.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-ddb-batchwrite-unprocessed-items-metric", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-ddb-batchwrite-unprocessed-items-metric", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_ddb_batchwrite_unprocessed_items_metric.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-ddb-getitem-consumed-capacity-metric-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-ddb-getitem-consumed-capacity-metric-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_ddb_getitem_consumed_capacity_metric_cloudwatch.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-ddb-missing-permission-no-capacity-metric-negative", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-ddb-missing-permission-no-capacity-metric-negative", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_ddb_missing_permission_no_capacity_metric_negative.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-ddb-putitem-consumed-capacity-metric-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-ddb-putitem-consumed-capacity-metric-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_ddb_putitem_consumed_capacity_metric_cloudwatch.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-ddb-query-latency-metric-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-ddb-query-latency-metric-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_ddb_query_latency_metric_cloudwatch.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-ddb-table-not-exist-error-logged-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-ddb-table-not-exist-error-logged-cloudwatch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_ddb_table_not_exist_error_logged_cloudwatch.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-ddb-throttle-triggers-cloudwatch-alarm", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-ddb-throttle-triggers-cloudwatch-alarm", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_ddb_throttle_triggers_cloudwatch_alarm.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-duration-metric-recorded-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-duration-metric-recorded-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_duration_metric_recorded_cloudwatch.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-error-metric-increments-on-exception", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-error-metric-increments-on-exception", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_error_metric_increments_on_exception.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-invocation-logs-appear-in-cloudwatch-logs", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-invocation-logs-appear-in-cloudwatch-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_invocation_logs_appear_in_cloudwatch_logs.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-missing-logs-permission-negative", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-missing-logs-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_missing_logs_permission_negative.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-put-custom-metric-cloudwatch-positive", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-put-custom-metric-cloudwatch-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_put_custom_metric_cloudwatch_positive.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-put-metric-missing-permission-negative", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-put-metric-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_put_metric_missing_permission_negative.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.lambda-throttle-metric-visible-in-cloudwatch", "deployments": [], "key": "cloudwatch__dynamodb__lambda/lambda-throttle-metric-visible-in-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_lambda_throttle_metric_visible_in_cloudwatch.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.reserved-concurrency-admission-control-and-metric-agreement-rejected", "deployments": [], "key": "cloudwatch__dynamodb__lambda/reserved-concurrency-admission-control-and-metric-agreement-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAccountSettings", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_reserved_concurrency_admission_control_and_metric_agreement_rejected.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.xsvc-lambda-1-esm-event-count-metrics-are-opt-in-per-mapping", "deployments": [], "key": "cloudwatch__dynamodb__lambda/xsvc-lambda-1-esm-event-count-metrics-are-opt-in-per-mapping", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_xsvc_lambda_1_esm_event_count_metrics_are_opt_in_per_mapping.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__dynamodb__lambda.xsvc-lambda-1-esm-metrics-config-kafka-only-metric-rejected", "deployments": [], "key": "cloudwatch__dynamodb__lambda/xsvc-lambda-1-esm-metrics-config-kafka-only-metric-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__dynamodb__lambda/check_xsvc_lambda_1_esm_metrics_config_kafka_only_metric_rejected.py", "service": "cloudwatch__dynamodb__lambda"} {"check_id": "cloudwatch__ec2.alarm-composite-and-actions-ec2-stop-action-disabled-leaves-instance-running", "deployments": [], "key": "cloudwatch__ec2/alarm-composite-and-actions-ec2-stop-action-disabled-leaves-instance-running", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/cloudwatch__ec2/check_alarm_composite_and_actions_ec2_stop_action_disabled_leaves_instance_running.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.alarm-ec2-action-requires-instance-metric", "deployments": [], "key": "cloudwatch__ec2/alarm-ec2-action-requires-instance-metric", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:DescribeInstances"], "path": "behavioral/cloudwatch__ec2/check_alarm_ec2_action_requires_instance_metric.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.detailed-monitoring-shortens-the-cpu-metric-period-and-basic-does-not", "deployments": [], "key": "cloudwatch__ec2/detailed-monitoring-shortens-the-cpu-metric-period-and-basic-does-not", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:MonitorInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/cloudwatch__ec2/check_detailed_monitoring_shortens_the_cpu_metric_period_and_basic_does_not.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.metrics-ec2-ecs-monitor-instances-on-terminated-instance-rejected", "deployments": [], "key": "cloudwatch__ec2/metrics-ec2-ecs-monitor-instances-on-terminated-instance-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:MonitorInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/cloudwatch__ec2/check_metrics_ec2_ecs_monitor_instances_on_terminated_instance_rejected.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.metrics-ec2-ecs-status-check-metrics-publish-per-minute-while-cpu-stays-five-minute-under-basic-monitoring", "deployments": [], "key": "cloudwatch__ec2/metrics-ec2-ecs-status-check-metrics-publish-per-minute-while-cpu-stays-five-minute-under-basic-monitoring", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/cloudwatch__ec2/check_metrics_ec2_ecs_status_check_metrics_publish_per_minute_while_cpu_stays_five_minute_under_basic_monitoring.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.metrics-ec2-ecs-stopped-instance-stops-publishing-but-keeps-its-history-and-aggregates", "deployments": [], "key": "cloudwatch__ec2/metrics-ec2-ecs-stopped-instance-stops-publishing-but-keeps-its-history-and-aggregates", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/cloudwatch__ec2/check_metrics_ec2_ecs_stopped_instance_stops_publishing_but_keeps_its_history_and_aggregates.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.monitor-unmonitor-instances-walk-pending-enabled-disabling-disabled", "deployments": [], "key": "cloudwatch__ec2/monitor-unmonitor-instances-walk-pending-enabled-disabling-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:MonitorInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:UnmonitorInstances"], "path": "behavioral/cloudwatch__ec2/check_monitor_unmonitor_instances_walk_pending_enabled_disabling_disabled.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.unmonitor-instances-dry-run-rejected-keeps-one-minute-cpu-publication", "deployments": [], "key": "cloudwatch__ec2/unmonitor-instances-dry-run-rejected-keeps-one-minute-cpu-publication", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:MonitorInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:UnmonitorInstances"], "path": "behavioral/cloudwatch__ec2/check_unmonitor_instances_dry_run_rejected_keeps_one_minute_cpu_publication.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.unmonitor-instances-restores-five-minute-cpu-publication-after-monitor-instances", "deployments": [], "key": "cloudwatch__ec2/unmonitor-instances-restores-five-minute-cpu-publication-after-monitor-instances", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:MonitorInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:UnmonitorInstances"], "path": "behavioral/cloudwatch__ec2/check_unmonitor_instances_restores_five_minute_cpu_publication_after_monitor_instances.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.xsvc-cloudwatch-3-alarm-ec2-reboot-action-reboots-instance-and-disabled-twin-untouched", "deployments": [], "key": "cloudwatch__ec2/xsvc-cloudwatch-3-alarm-ec2-reboot-action-reboots-instance-and-disabled-twin-untouched", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/cloudwatch__ec2/check_xsvc_cloudwatch_3_alarm_ec2_reboot_action_reboots_instance_and_disabled_twin_untouched.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2.xsvc-cloudwatch-3-alarm-ec2-terminate-action-disabled-blocked-until-enabled", "deployments": [], "key": "cloudwatch__ec2/xsvc-cloudwatch-3-alarm-ec2-terminate-action-disabled-blocked-until-enabled", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/cloudwatch__ec2/check_xsvc_cloudwatch_3_alarm_ec2_terminate_action_disabled_blocked_until_enabled.py", "service": "cloudwatch__ec2"} {"check_id": "cloudwatch__ec2__ecs.managed-scaling-target-capacity-above-100-rejected-and-tracking-alarm-unchanged", "deployments": [], "key": "cloudwatch__ec2__ecs/managed-scaling-target-capacity-above-100-rejected-and-tracking-alarm-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "autoscaling:SuspendProcesses", "cloudwatch:DescribeAlarms", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders", "ecs:UpdateCapacityProvider", "iam:CreateServiceLinkedRole", "ssm:GetParameter"], "path": "behavioral/cloudwatch__ec2__ecs/check_managed_scaling_target_capacity_above_100_rejected_and_tracking_alarm_unchanged.py", "service": "cloudwatch__ec2__ecs"} {"check_id": "cloudwatch__ec2__ecs.metrics-ec2-ecs-container-insights-running-task-count-follows-each-service-desired-count", "deployments": [], "key": "cloudwatch__ec2__ecs/metrics-ec2-ecs-container-insights-running-task-count-follows-each-service-desired-count", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition"], "path": "behavioral/cloudwatch__ec2__ecs/check_metrics_ec2_ecs_container_insights_running_task_count_follows_each_service_desired_count.py", "service": "cloudwatch__ec2__ecs"} {"check_id": "cloudwatch__ec2__ecs.metrics-ec2-ecs-update-service-negative-desired-count-rejected", "deployments": [], "key": "cloudwatch__ec2__ecs/metrics-ec2-ecs-update-service-negative-desired-count-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/cloudwatch__ec2__ecs/check_metrics_ec2_ecs_update_service_negative_desired_count_rejected.py", "service": "cloudwatch__ec2__ecs"} {"check_id": "cloudwatch__ec2__ecs.obs-ecs-3-reservation-metrics-match-registered-resources-and-pressure-exceeds-100", "deployments": [], "key": "cloudwatch__ec2__ecs/obs-ecs-3-reservation-metrics-match-registered-resources-and-pressure-exceeds-100", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribePolicies", "cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/cloudwatch__ec2__ecs/check_obs_ecs_3_reservation_metrics_match_registered_resources_and_pressure_exceeds_100.py", "service": "cloudwatch__ec2__ecs"} {"check_id": "cloudwatch__ec2__elbv2.metrics-elbv2-apigw-alb-empty-target-group-503-counted-as-elb-5xx-not-target-5xx", "deployments": [], "key": "cloudwatch__ec2__elbv2/metrics-elbv2-apigw-alb-empty-target-group-503-counted-as-elb-5xx-not-target-5xx", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/cloudwatch__ec2__elbv2/check_metrics_elbv2_apigw_alb_empty_target_group_503_counted_as_elb_5xx_not_target_5xx.py", "service": "cloudwatch__ec2__elbv2"} {"check_id": "cloudwatch__ec2__elbv2.metrics-elbv2-apigw-alb-failing-health-endpoint-flips-healthy-and-unhealthy-host-count", "deployments": [], "key": "cloudwatch__ec2__elbv2/metrics-elbv2-apigw-alb-failing-health-endpoint-flips-healthy-and-unhealthy-host-count", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/cloudwatch__ec2__elbv2/check_metrics_elbv2_apigw_alb_failing_health_endpoint_flips_healthy_and_unhealthy_host_count.py", "service": "cloudwatch__ec2__elbv2"} {"check_id": "cloudwatch__ec2__elbv2.metrics-elbv2-apigw-alb-request-metrics-exact-counts-code-split-and-literal-dimensions", "deployments": [], "key": "cloudwatch__ec2__elbv2/metrics-elbv2-apigw-alb-request-metrics-exact-counts-code-split-and-literal-dimensions", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/cloudwatch__ec2__elbv2/check_metrics_elbv2_apigw_alb_request_metrics_exact_counts_code_split_and_literal_dimensions.py", "service": "cloudwatch__ec2__elbv2"} {"check_id": "cloudwatch__ec2__elbv2.obs-elbv2-1-alb-rejects-malformed-requests-elb-504-and-keepalive-connection-metrics", "deployments": [], "key": "cloudwatch__ec2__elbv2/obs-elbv2-1-alb-rejects-malformed-requests-elb-504-and-keepalive-connection-metrics", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyLoadBalancerAttributes", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/cloudwatch__ec2__elbv2/check_obs_elbv2_1_alb_rejects_malformed_requests_elb_504_and_keepalive_connection_metrics.py", "service": "cloudwatch__ec2__elbv2"} {"check_id": "cloudwatch__ec2__elbv2__opensearch.e2e-diagnose-alb-opensearch-stale-targets-with-alarm-config", "deployments": ["behavioral/cloudwatch__ec2__elbv2__opensearch/deployments/alb-opensearch-stale-targets/template.json"], "key": "cloudwatch__ec2__elbv2__opensearch/e2e-diagnose-alb-opensearch-stale-targets-with-alarm-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudwatch:DescribeAlarms", "ec2:DescribeNetworkInterfaces", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "opensearch:DescribeDomain"], "path": "behavioral/cloudwatch__ec2__elbv2__opensearch/check_e2e_diagnose_alb_opensearch_stale_targets_with_alarm_config.py", "service": "cloudwatch__ec2__elbv2__opensearch"} {"check_id": "cloudwatch__ec2__ssm.dcwagent-custom-statsd-value-and-guest-only-memory-metric-reach-cloudwatch", "deployments": [], "key": "cloudwatch__ec2__ssm/dcwagent-custom-statsd-value-and-guest-only-memory-metric-reach-cloudwatch", "labels": ["axis:happy-path", "dp:native", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_dcwagent_custom_statsd_value_and_guest_only_memory_metric_reach_cloudwatch.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ec2__ssm.dcwagent-disk-used-percent-tracks-bytes-written-in-guest-while-an-unconfigured-metric-never-appears", "deployments": [], "key": "cloudwatch__ec2__ssm/dcwagent-disk-used-percent-tracks-bytes-written-in-guest-while-an-unconfigured-metric-never-appears", "labels": ["axis:happy-path", "dp:native", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_dcwagent_disk_used_percent_tracks_bytes_written_in_guest_while_an_unconfigured_metric_never_appears.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ec2__ssm.dcwagent-statsd-value-blocked-while-the-agent-is-not-running-then-arrives-once-started", "deployments": [], "key": "cloudwatch__ec2__ssm/dcwagent-statsd-value-blocked-while-the-agent-is-not-running-then-arrives-once-started", "labels": ["axis:negative-delivery", "dp:native", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_dcwagent_statsd_value_blocked_while_the_agent_is_not_running_then_arrives_once_started.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ec2__ssm.obs-ec2-1-nat-gateway-and-instance-metrics-count-guest-bytes-unrouted-gateway-counts-none", "deployments": [], "key": "cloudwatch__ec2__ssm/obs-ec2-1-nat-gateway-and-instance-metrics-count-guest-bytes-unrouted-gateway-counts-none", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNatGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_obs_ec2_1_nat_gateway_and_instance_metrics_count_guest_bytes_unrouted_gateway_counts_none.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ec2__ssm.obs-ec2-1-nat-gateway-carries-no-transfer-while-the-sink-ingress-is-blocked-then-counts-it-once-opened", "deployments": [], "key": "cloudwatch__ec2__ssm/obs-ec2-1-nat-gateway-carries-no-transfer-while-the-sink-ingress-is-blocked-then-counts-it-once-opened", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNatGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_obs_ec2_1_nat_gateway_carries_no_transfer_while_the_sink_ingress_is_blocked_then_counts_it_once_opened.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ec2__ssm.obs-ec2-2-ebs-consumed-iops-published-for-io2-and-withheld-from-a-gp3-written-in-the-same-instant", "deployments": [], "key": "cloudwatch__ec2__ssm/obs-ec2-2-ebs-consumed-iops-published-for-io2-and-withheld-from-a-gp3-written-in-the-same-instant", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_obs_ec2_2_ebs_consumed_iops_published_for_io2_and_withheld_from_a_gp3_written_in_the_same_instant.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ec2__ssm.obs-ec2-2-ebs-reads-and-writes-land-on-separate-series-under-exactly-the-volume-id-dimension", "deployments": [], "key": "cloudwatch__ec2__ssm/obs-ec2-2-ebs-reads-and-writes-land-on-separate-series-under-exactly-the-volume-id-dimension", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_obs_ec2_2_ebs_reads_and_writes_land_on_separate_series_under_exactly_the_volume_id_dimension.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ec2__ssm.obs-ec2-2-ebs-write-series-follows-the-volume-across-a-move-to-a-second-instance", "deployments": [], "key": "cloudwatch__ec2__ssm/obs-ec2-2-ebs-write-series-follows-the-volume-across-a-move-to-a-second-instance", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_obs_ec2_2_ebs_write_series_follows_the_volume_across_a_move_to_a_second_instance.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ec2__ssm.obs-ec2-2-ebs-write-telemetry-published-only-while-attached", "deployments": [], "key": "cloudwatch__ec2__ssm/obs-ec2-2-ebs-write-telemetry-published-only-while-attached", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/cloudwatch__ec2__ssm/check_obs_ec2_2_ebs_write_telemetry_published_only_while_attached.py", "service": "cloudwatch__ec2__ssm"} {"check_id": "cloudwatch__ecr.repository-pull-count-counts-the-registry-v2-pulls", "deployments": [], "key": "cloudwatch__ecr/repository-pull-count-counts-the-registry-v2-pulls", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetAuthorizationToken", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/cloudwatch__ecr/check_repository_pull_count_counts_the_registry_v2_pulls.py", "service": "cloudwatch__ecr"} {"check_id": "cloudwatch__ecr__ecs.cli-ecs-describe-tasks-shows-cloudwatch-log-config", "deployments": [], "key": "cloudwatch__ecr__ecs/cli-ecs-describe-tasks-shows-cloudwatch-log-config", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs/check_cli_ecs_describe_tasks_shows_cloudwatch_log_config.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.cli-ecs-run-task-without-log-configuration-no-cloudwatch-logs", "deployments": [], "key": "cloudwatch__ecr__ecs/cli-ecs-run-task-without-log-configuration-no-cloudwatch-logs", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs/check_cli_ecs_run_task_without_log_configuration_no_cloudwatch_logs.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.cloudwatch-alarm-not-triggered-when-metric-namespace-mismatched", "deployments": [], "key": "cloudwatch__ecr__ecs/cloudwatch-alarm-not-triggered-when-metric-namespace-mismatched", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:DeleteCluster"], "path": "behavioral/cloudwatch__ecr__ecs/check_cloudwatch_alarm_not_triggered_when_metric_namespace_mismatched.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.cloudwatch-alarm-on-ecs-service-running-task-count", "deployments": [], "key": "cloudwatch__ecr__ecs/cloudwatch-alarm-on-ecs-service-running-task-count", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecr__ecs/check_cloudwatch_alarm_on_ecs_service_running_task_count.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.cloudwatch-metric-filter-on-ecs-log-group-triggers-alarm", "deployments": [], "key": "cloudwatch__ecr__ecs/cloudwatch-metric-filter-on-ecs-log-group-triggers-alarm", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:PutMetricFilter"], "path": "behavioral/cloudwatch__ecr__ecs/check_cloudwatch_metric_filter_on_ecs_log_group_triggers_alarm.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.deploy-cfn-alarm-on-ecs-service-created-and-active", "deployments": [], "key": "cloudwatch__ecr__ecs/deploy-cfn-alarm-on-ecs-service-created-and-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:UpdateService"], "path": "behavioral/cloudwatch__ecr__ecs/check_deploy_cfn_alarm_on_ecs_service_created_and_active.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.deploy-cfn-ecr-repository-policy-restricts-cross-account-pull-rejected", "deployments": [], "key": "cloudwatch__ecr__ecs/deploy-cfn-ecr-repository-policy-restricts-cross-account-pull-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecr:GetRepositoryPolicy", "ecr:ListTagsForResource", "ecr:SetRepositoryPolicy", "ecr:TagResource", "ecs:DeleteTaskDefinitions", "ecs:DescribeTaskDefinition", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__ecr__ecs/check_deploy_cfn_ecr_repository_policy_restricts_cross_account_pull_rejected.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.deploy-cfn-ecs-cluster-service-with-ecr-image-and-cloudwatch-logs", "deployments": [], "key": "cloudwatch__ecr__ecs/deploy-cfn-ecs-cluster-service-with-ecr-image-and-cloudwatch-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:UpdateService", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs/check_deploy_cfn_ecs_cluster_service_with_ecr_image_and_cloudwatch_logs.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.deploy-cfn-ecs-service-fails-without-iam-trust-policy-rejected", "deployments": [], "key": "cloudwatch__ecr__ecs/deploy-cfn-ecs-service-fails-without-iam-trust-policy-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:StopTask", "iam:GetRole", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs/check_deploy_cfn_ecs_service_fails_without_iam_trust_policy_rejected.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.deploy-cfn-ecs-task-role-trust-policy-correctly-attached", "deployments": [], "key": "cloudwatch__ecr__ecs/deploy-cfn-ecs-task-role-trust-policy-correctly-attached", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:StopTask", "iam:GetRole", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs/check_deploy_cfn_ecs_task_role_trust_policy_correctly_attached.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecr-ecs-fargate-task-runs", "deployments": [], "key": "cloudwatch__ecr__ecs/ecr-ecs-fargate-task-runs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicy", "ecr:PutLifecyclePolicy", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateServiceLinkedRole"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecr_ecs_fargate_task_runs.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecr-image-push-pull-roundtrip", "deployments": [], "key": "cloudwatch__ecr__ecs/ecr-image-push-pull-roundtrip", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:ListImages", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecr_image_push_pull_roundtrip.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecr-image-scan-completion-emits-eventbridge-event", "deployments": [], "key": "cloudwatch__ecr__ecs/ecr-image-scan-completion-emits-eventbridge-event", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:GetAuthorizationToken", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecr_image_scan_completion_emits_eventbridge_event.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecr-lifecycle-policy-expiry-event-not-emitted-without-policy", "deployments": [], "key": "cloudwatch__ecr__ecs/ecr-lifecycle-policy-expiry-event-not-emitted-without-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ecr:BatchDeleteImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetLifecyclePolicy", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:PutLifecyclePolicy", "ecr:UploadLayerPart", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecr_lifecycle_policy_expiry_event_not_emitted_without_policy.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecr-push-event-triggers-eventbridge-rule", "deployments": [], "key": "cloudwatch__ecr__ecs/ecr-push-event-triggers-eventbridge-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecr_push_event_triggers_eventbridge_rule.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecr-scan-finding-without-rule-target-not-delivered", "deployments": [], "key": "cloudwatch__ecr__ecs/ecr-scan-finding-without-rule-target-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecr_scan_finding_without_rule_target_not_delivered.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-cluster-container-insights-metrics-visible-in-cloudwatch", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-cluster-container-insights-metrics-visible-in-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_cluster_container_insights_metrics_visible_in_cloudwatch.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-execution-role-trusts-ecs-tasks-service", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-execution-role-trusts-ecs-tasks-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_execution_role_trusts_ecs_tasks_service.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-metrics-absent-without-container-insights-enabled", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-metrics-absent-without-container-insights-enabled", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_metrics_absent_without_container_insights_enabled.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-service-cpu-utilization-published-to-cloudwatch", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-service-cpu-utilization-published-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_service_cpu_utilization_published_to_cloudwatch.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-service-memory-utilization-published-to-cloudwatch", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-service-memory-utilization-published-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_service_memory_utilization_published_to_cloudwatch.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-service-stabilizes-and-logs-to-cloudwatch", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-service-stabilizes-and-logs-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_service_stabilizes_and_logs_to_cloudwatch.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-task-launch-fails-without-ecs-tasks-trust-policy", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-task-launch-fails-without-ecs-tasks-trust-policy", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_task_launch_fails_without_ecs_tasks_trust_policy.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-task-role-assumed-for-container-permissions", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-task-role-assumed-for-container-permissions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_task_role_assumed_for_container_permissions.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-task-state-change-emits-eventbridge-event", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-task-state-change-emits-eventbridge-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_task_state_change_emits_eventbridge_event.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-task-state-change-without-matching-rule-pattern-not-delivered", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-task-state-change-without-matching-rule-pattern-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_task_state_change_without_matching_rule_pattern_not_delivered.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs.ecs-task-stopped-reason-published-to-eventbridge", "deployments": [], "key": "cloudwatch__ecr__ecs/ecs-task-stopped-reason-published-to-eventbridge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecr__ecs/check_ecs_task_stopped_reason_published_to_eventbridge.py", "service": "cloudwatch__ecr__ecs"} {"check_id": "cloudwatch__ecr__ecs__elbv2__logs.cdk-bootstrapped-container-service-alarm-config-workflow", "deployments": ["behavioral/cloudwatch__ecr__ecs__elbv2__logs/deployments/container_service_cdk/app.py", "behavioral/cloudwatch__ecr__ecs__elbv2__logs/deployments/container_service_cdk/cdk.json", "behavioral/cloudwatch__ecr__ecs__elbv2__logs/deployments/container_service_cdk/container/Dockerfile", "behavioral/cloudwatch__ecr__ecs__elbv2__logs/deployments/container_service_cdk/container/server.py"], "key": "cloudwatch__ecr__ecs__elbv2__logs/cdk-bootstrapped-container-service-alarm-config-workflow", "labels": ["axis:happy-path", "dp:endpoint", "dp:native", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "ecr:BatchDeleteImage", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:ListImages", "ecs:DeleteTaskDefinitions", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTaskDefinitions", "ecs:RunTask", "ecs:StopTask", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "logs:DescribeLogStreams", "logs:FilterLogEvents", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__ecr__ecs__elbv2__logs/check_cdk_bootstrapped_container_service_alarm_config_workflow.py", "service": "cloudwatch__ecr__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecr__ecs__elbv2__logs.cdk-bootstrapped-container-service-workflow", "deployments": ["behavioral/cloudwatch__ecr__ecs__elbv2__logs/deployments/container_service_cdk/app.py", "behavioral/cloudwatch__ecr__ecs__elbv2__logs/deployments/container_service_cdk/cdk.json", "behavioral/cloudwatch__ecr__ecs__elbv2__logs/deployments/container_service_cdk/container/Dockerfile", "behavioral/cloudwatch__ecr__ecs__elbv2__logs/deployments/container_service_cdk/container/server.py"], "key": "cloudwatch__ecr__ecs__elbv2__logs/cdk-bootstrapped-container-service-workflow", "labels": ["axis:happy-path", "dp:endpoint", "dp:native", "plane:data", "timing:real-time"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "ecr:BatchDeleteImage", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:ListImages", "ecs:DeleteTaskDefinitions", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTaskDefinitions", "ecs:RunTask", "ecs:StopTask", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "logs:DescribeLogStreams", "logs:FilterLogEvents", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__ecr__ecs__elbv2__logs/check_cdk_bootstrapped_container_service_workflow.py", "service": "cloudwatch__ecr__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.cli-ecs-task-log-delivery-blocked-without-permission-rejected", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/cli-ecs-task-log-delivery-blocked-without-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_cli_ecs_task_log_delivery_blocked_without_permission_rejected.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.cli-log-group-retention-set-and-verified", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/cli-log-group-retention-set-and-verified", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_cli_log_group_retention_set_and_verified.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.cloudwatch-alarm-no-data-when-ecs-service-metric-missing", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/cloudwatch-alarm-no-data-when-ecs-service-metric-missing", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_cloudwatch_alarm_no_data_when_ecs_service_metric_missing.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.cloudwatch-alarm-on-ecs-service-cpu-utilization-triggers", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/cloudwatch-alarm-on-ecs-service-cpu-utilization-triggers", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ecs:CreateCluster", "ecs:DeleteCluster"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_cloudwatch_alarm_on_ecs_service_cpu_utilization_triggers.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.cloudwatch-logs-metric-filter-creates-alarm-from-ecs-logs", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/cloudwatch-logs-metric-filter-creates-alarm-from-ecs-logs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:PutMetricFilter"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_cloudwatch_logs_metric_filter_creates_alarm_from_ecs_logs.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.container-lifecycle-ecr-ecs-service-logs", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/container-lifecycle-ecr-ecs-service-logs", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetAuthorizationToken", "ecr:PutImageTagMutability", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_container_lifecycle_ecr_ecs_service_logs.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.deploy-cloudwatch-alarm-on-ecs-service-from-template", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/deploy-cloudwatch-alarm-on-ecs-service-from-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_deploy_cloudwatch_alarm_on_ecs_service_from_template.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.deploy-ecs-fargate-stack-with-ecr-and-log-group", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/deploy-ecs-fargate-stack-with-ecr-and-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecr:DescribeRepositories", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:UpdateService", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_deploy_ecs_fargate_stack_with_ecr_and_log_group.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.deploy-ecs-service-rollback-on-missing-ecr-image", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/deploy-ecs-service-rollback-on-missing-ecr-image", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CreateRepository", "ecr:DeleteRepository", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_deploy_ecs_service_rollback_on_missing_ecr_image.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.deploy-ecs-task-execution-role-trust-policy-from-template", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/deploy-ecs-task-execution-role-trust-policy-from-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:GetRole", "iam:ListAttachedRolePolicies", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_deploy_ecs_task_execution_role_trust_policy_from_template.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.deploy-stack-fails-without-log-group-resource-policy", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/deploy-stack-fails-without-log-group-resource-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_deploy_stack_fails_without_log_group_resource_policy.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.ecs-service-cpu-memory-metrics-published-to-cloudwatch", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/ecs-service-cpu-memory-metrics-published-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_ecs_service_cpu_memory_metrics_published_to_cloudwatch.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecr__ecs__logs.logs-subscription-filter-without-permission-does-not-deliver", "deployments": [], "key": "cloudwatch__ecr__ecs__logs/logs-subscription-filter-without-permission-does-not-deliver", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__ecr__ecs__logs/check_logs_subscription_filter_without_permission_does_not_deliver.py", "service": "cloudwatch__ecr__ecs__logs"} {"check_id": "cloudwatch__ecs.obs-ecs-1-stop-finished-alarm-monitored-deployment-rejected", "deployments": [], "key": "cloudwatch__ecs/obs-ecs-1-stop-finished-alarm-monitored-deployment-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopServiceDeployment", "ecs:UpdateService"], "path": "behavioral/cloudwatch__ecs/check_obs_ecs_1_stop_finished_alarm_monitored_deployment_rejected.py", "service": "cloudwatch__ecs"} {"check_id": "cloudwatch__ecs__elbv2__logs.alb-deregisters-targets-on-service-scale-down", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/alb-deregisters-targets-on-service-scale-down", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_alb_deregisters_targets_on_service_scale_down.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.alb-health-check-reflects-ecs-task-health", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/alb-health-check-reflects-ecs-task-health", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_alb_health_check_reflects_ecs_task_health.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.alb-listener-rule-forwards-to-correct-target-group", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/alb-listener-rule-forwards-to-correct-target-group", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_alb_listener_rule_forwards_to_correct_target_group.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.alb-request-count-metric-in-cloudwatch", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/alb-request-count-metric-in-cloudwatch", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_alb_request_count_metric_in_cloudwatch.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.alb-routes-traffic-only-to-healthy-ecs-targets", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/alb-routes-traffic-only-to-healthy-ecs-targets", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_alb_routes_traffic_only_to_healthy_ecs_targets.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.alb-security-group-mismatch-blocks-health-checks", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/alb-security-group-mismatch-blocks-health-checks", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_alb_security_group_mismatch_blocks_health_checks.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.alb-target-group-registers-ecs-tasks", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/alb-target-group-registers-ecs-tasks", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_alb_target_group_registers_ecs_tasks.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.alb-target-response-time-metric-in-cloudwatch", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/alb-target-response-time-metric-in-cloudwatch", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_alb_target_response_time_metric_in_cloudwatch.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.deploy-cloudwatch-alarm-created-for-alb-5xx", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/deploy-cloudwatch-alarm-created-for-alb-5xx", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_deploy_cloudwatch_alarm_created_for_alb_5xx.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.deploy-ecs-alb-service-stack-routes-traffic", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/deploy-ecs-alb-service-stack-routes-traffic", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "elbv2:DescribeTargetHealth"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_deploy_ecs_alb_service_stack_routes_traffic.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.deploy-ecs-task-logs-flow-to-cloudwatch", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/deploy-ecs-task-logs-flow-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:StopTask", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_deploy_ecs_task_logs_flow_to_cloudwatch.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.deploy-stack-missing-task-role-trust-fails-service-start", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/deploy-stack-missing-task-role-trust-fails-service-start", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_deploy_stack_missing_task_role_trust_fails_service_start.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.deploy-stack-without-log-permission-no-log-group-created", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/deploy-stack-without-log-permission-no-log-group-created", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:StopTask", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:TagLogGroup"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_deploy_stack_without_log_permission_no_log_group_created.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-container-insights-disabled-no-detailed-metrics", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-container-insights-disabled-no-detailed-metrics", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_container_insights_disabled_no_detailed_metrics.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-log-group-name-mismatch-no-delivery", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-log-group-name-mismatch-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_log_group_name_mismatch_no_delivery.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-log-retention-policy-applied-to-loggroup", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-log-retention-policy-applied-to-loggroup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_log_retention_policy_applied_to_loggroup.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-log-stream-prefix-embeds-task-id", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-log-stream-prefix-embeds-task-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_log_stream_prefix_embeds_task_id.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-multi-container-task-creates-distinct-log-streams", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-multi-container-task-creates-distinct-log-streams", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_multi_container_task_creates_distinct_log_streams.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-service-cpu-memory-metrics-in-cloudwatch", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-service-cpu-memory-metrics-in-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_service_cpu_memory_metrics_in_cloudwatch.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-service-without-load-balancer-config-no-targets-registered", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-service-without-load-balancer-config-no-targets-registered", "labels": ["axis:negative-delivery", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_service_without_load_balancer_config_no_targets_registered.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-task-execution-role-trusts-ecs-tasks-service", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-task-execution-role-trusts-ecs-tasks-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_task_execution_role_trusts_ecs_tasks_service.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__elbv2__logs.ecs-task-fails-log-delivery-without-logs-permission", "deployments": [], "key": "cloudwatch__ecs__elbv2__logs/ecs-task-fails-log-delivery-without-logs-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecs__elbv2__logs/check_ecs_task_fails_log_delivery_without_logs_permission.py", "service": "cloudwatch__ecs__elbv2__logs"} {"check_id": "cloudwatch__ecs__logs.container-insights-publishes-cluster-metrics-and-performance-logs", "deployments": [], "key": "cloudwatch__ecs__logs/container-insights-publishes-cluster-metrics-and-performance-logs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__ecs__logs/check_container_insights_publishes_cluster_metrics_and_performance_logs.py", "service": "cloudwatch__ecs__logs"} {"check_id": "cloudwatch__ecs__logs.obs-ecs-2-account-default-insights-inherited-explicit-disabled-publishes-nothing", "deployments": [], "key": "cloudwatch__ecs__logs/obs-ecs-2-account-default-insights-inherited-explicit-disabled-publishes-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteAccountSetting", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListAccountSettings", "ecs:ListTasks", "ecs:PutAccountSetting", "ecs:PutAccountSettingDefault", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateClusterSettings", "iam:CreateServiceLinkedRole", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__ecs__logs/check_obs_ecs_2_account_default_insights_inherited_explicit_disabled_publishes_nothing.py", "service": "cloudwatch__ecs__logs"} {"check_id": "cloudwatch__ecs__logs.obs-ecs-2-fargate-service-metrics-dimensioned-per-service-not-per-cluster", "deployments": [], "key": "cloudwatch__ecs__logs/obs-ecs-2-fargate-service-metrics-dimensioned-per-service-not-per-cluster", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/cloudwatch__ecs__logs/check_obs_ecs_2_fargate_service_metrics_dimensioned_per_service_not_per_cluster.py", "service": "cloudwatch__ecs__logs"} {"check_id": "cloudwatch__ecs__sns__sqs.obs-ecs-1-alarm-notification-withheld-from-queue-without-sns-policy", "deployments": [], "key": "cloudwatch__ecs__sns__sqs/obs-ecs-1-alarm-notification-withheld-from-queue-without-sns-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecs__sns__sqs/check_obs_ecs_1_alarm_notification_withheld_from_queue_without_sns_policy.py", "service": "cloudwatch__ecs__sns__sqs"} {"check_id": "cloudwatch__ecs__sns__sqs.obs-ecs-1-running-task-count-alarm-notifies-sqs-via-sns", "deployments": [], "key": "cloudwatch__ecs__sns__sqs/obs-ecs-1-running-task-count-alarm-notifies-sqs-via-sns", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecs__sns__sqs/check_obs_ecs_1_running_task_count_alarm_notifies_sqs_via_sns.py", "service": "cloudwatch__ecs__sns__sqs"} {"check_id": "cloudwatch__ecs__sns__sqs.running-task-count-alarm-config-echoes-and-its-alarm-transition-notifies-sqs-via-sns", "deployments": [], "key": "cloudwatch__ecs__sns__sqs/running-task-count-alarm-config-echoes-and-its-alarm-transition-notifies-sqs-via-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__ecs__sns__sqs/check_running_task_count_alarm_config_echoes_and_its_alarm_transition_notifies_sqs_via_sns.py", "service": "cloudwatch__ecs__sns__sqs"} {"check_id": "cloudwatch__ecs__ssm.e2e-diagnose-cloudwatch-latency-breach-from-alarm-config-lifecycle", "deployments": ["behavioral/cloudwatch__ecs__ssm/deployments/flint-latency/template.json"], "key": "cloudwatch__ecs__ssm/e2e-diagnose-cloudwatch-latency-breach-from-alarm-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData", "ecs:DeleteTaskDefinitions", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTaskDefinitions", "ecs:ListTasks", "ecs:UpdateService", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "ssm:GetParameter", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/cloudwatch__ecs__ssm/check_e2e_diagnose_cloudwatch_latency_breach_from_alarm_config_lifecycle.py", "service": "cloudwatch__ecs__ssm"} {"check_id": "cloudwatch__ecs__ssm__xray.e2e-diagnose-xray-latency-cause-from-alarm-config-lifecycle", "deployments": ["behavioral/cloudwatch__ecs__ssm__xray/deployments/flint-xray-latency/template.json"], "key": "cloudwatch__ecs__ssm__xray/e2e-diagnose-xray-latency-cause-from-alarm-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTaskDefinitions", "ecs:ListTasks", "ecs:UpdateService", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "ssm:GetParameter", "ssm:PutParameter", "xray:BatchGetTraces", "xray:GetTraceSummaries"], "path": "behavioral/cloudwatch__ecs__ssm__xray/check_e2e_diagnose_xray_latency_cause_from_alarm_config_lifecycle.py", "service": "cloudwatch__ecs__ssm__xray"} {"check_id": "cloudwatch__elbv2__s3.target-5xx-rate-alarm-config-echoes-and-its-math-separates-a-low-error-rate-from-all-errors", "deployments": [], "key": "cloudwatch__elbv2__s3/target-5xx-rate-alarm-config-echoes-and-its-math-separates-a-low-error-rate-from-all-errors", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/cloudwatch__elbv2__s3/check_target_5xx_rate_alarm_config_echoes_and_its_math_separates_a_low_error_rate_from_all_errors.py", "service": "cloudwatch__elbv2__s3"} {"check_id": "cloudwatch__events.matched-events-and-triggered-rules-count-only-the-matching-rule", "deployments": [], "key": "cloudwatch__events/matched-events-and-triggered-rules-count-only-the-matching-rule", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events/check_matched_events_and_triggered_rules_count_only_the_matching_rule.py", "service": "cloudwatch__events"} {"check_id": "cloudwatch__events__lambda__logs__s3__ses.cdk-scheduled-report-email-rule-config-workflow", "deployments": ["behavioral/cloudwatch__events__lambda__logs__s3__ses/deployments/scheduled_report_cdk/app.py", "behavioral/cloudwatch__events__lambda__logs__s3__ses/deployments/scheduled_report_cdk/cdk.json"], "key": "cloudwatch__events__lambda__logs__s3__ses/cdk-scheduled-report-email-rule-config-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:Invoke", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "route53:ListHostedZones", "route53:ListTagsForResource", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "sesv2:GetEmailIdentity", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__lambda__logs__s3__ses/check_cdk_scheduled_report_email_rule_config_workflow.py", "service": "cloudwatch__events__lambda__logs__s3__ses"} {"check_id": "cloudwatch__events__lambda__logs__s3__ses.cdk-scheduled-report-email-workflow", "deployments": ["behavioral/cloudwatch__events__lambda__logs__s3__ses/deployments/scheduled_report_cdk/app.py", "behavioral/cloudwatch__events__lambda__logs__s3__ses/deployments/scheduled_report_cdk/cdk.json"], "key": "cloudwatch__events__lambda__logs__s3__ses/cdk-scheduled-report-email-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "lambda:GetFunction", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "route53:ListHostedZones", "route53:ListTagsForResource", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "sesv2:GetEmailIdentity", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__lambda__logs__s3__ses/check_cdk_scheduled_report_email_workflow.py", "service": "cloudwatch__events__lambda__logs__s3__ses"} {"check_id": "cloudwatch__events__route53__sqs.cloudwatch-alarm-breach-fails-the-global-endpoint-over-to-secondary", "deployments": [], "key": "cloudwatch__events__route53__sqs/cloudwatch-alarm-breach-fails-the-global-endpoint-over-to-secondary", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "events:CreateEndpoint", "events:DeleteEndpoint", "events:DeleteRule", "events:DescribeEndpoint", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:GetHealthCheckStatus", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__events__route53__sqs/check_cloudwatch_alarm_breach_fails_the_global_endpoint_over_to_secondary.py", "service": "cloudwatch__events__route53__sqs"} {"check_id": "cloudwatch__events__s3__sqs.xsvc-s3-2-eventbridge-target-without-queue-policy-dead-letters-and-counts-failures-until-fixed", "deployments": [], "key": "cloudwatch__events__s3__sqs/xsvc-s3-2-eventbridge-target-without-queue-policy-dead-letters-and-counts-failures-until-fixed", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__s3__sqs/check_xsvc_s3_2_eventbridge_target_without_queue_policy_dead_letters_and_counts_failures_until_fixed.py", "service": "cloudwatch__events__s3__sqs"} {"check_id": "cloudwatch__events__sqs.failed-invocations-records-the-bus-forwarding-the-destination-policy-denied", "deployments": [], "key": "cloudwatch__events__sqs/failed-invocations-records-the-bus-forwarding-the-destination-policy-denied", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:PutEvents", "events:PutPermission", "events:PutRule", "events:PutTargets", "events:RemovePermission", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__sqs/check_failed_invocations_records_the_bus_forwarding_the_destination_policy_denied.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__events__sqs.invocations-sent-to-dlq-counts-only-the-rule-whose-target-failed", "deployments": [], "key": "cloudwatch__events__sqs/invocations-sent-to-dlq-counts-only-the-rule-whose-target-failed", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__sqs/check_invocations_sent_to_dlq_counts_only_the_rule_whose_target_failed.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__events__sqs.xsvc-cloudwatch-1-alarm-state-change-chain-delivered-to-sqs", "deployments": [], "key": "cloudwatch__events__sqs/xsvc-cloudwatch-1-alarm-state-change-chain-delivered-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState", "events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__sqs/check_xsvc_cloudwatch_1_alarm_state_change_chain_delivered_to_sqs.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__events__sqs.xsvc-cloudwatch-1-input-transformer-reshapes-alarm-state-change", "deployments": [], "key": "cloudwatch__events__sqs/xsvc-cloudwatch-1-input-transformer-reshapes-alarm-state-change", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__sqs/check_xsvc_cloudwatch_1_input_transformer_reshapes_alarm_state_change.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__events__sqs.xsvc-cloudwatch-1-state-and-resource-pattern-blocked-ok-and-other-alarm", "deployments": [], "key": "cloudwatch__events__sqs/xsvc-cloudwatch-1-state-and-resource-pattern-blocked-ok-and-other-alarm", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__events__sqs/check_xsvc_cloudwatch_1_state_and_resource_pattern_blocked_ok_and_other_alarm.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__events__sqs.xsvc-cloudwatch-2-alarm-change-event-denied-by-queue-policy-dead-letters-and-counts-failed-invocations", "deployments": [], "key": "cloudwatch__events__sqs/xsvc-cloudwatch-2-alarm-change-event-denied-by-queue-policy-dead-letters-and-counts-failed-invocations", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__events__sqs/check_xsvc_cloudwatch_2_alarm_change_event_denied_by_queue_policy_dead_letters_and_counts_failed_invocations.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__events__sqs.xsvc-cloudwatch-2-alarm-configuration-change-events-route-create-update-delete-only-to-the-matching-rule", "deployments": [], "key": "cloudwatch__events__sqs/xsvc-cloudwatch-2-alarm-configuration-change-events-route-create-update-delete-only-to-the-matching-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__sqs/check_xsvc_cloudwatch_2_alarm_configuration_change_events_route_create_update_delete_only_to_the_matching_rule.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__events__sqs.xsvc-cloudwatch-2-rejected-composite-alarm-emits-no-configuration-change-event", "deployments": [], "key": "cloudwatch__events__sqs/xsvc-cloudwatch-2-rejected-composite-alarm-emits-no-configuration-change-event", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__sqs/check_xsvc_cloudwatch_2_rejected_composite_alarm_emits_no_configuration_change_event.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__events__sqs.xsvc-cloudwatch-2-state-changes-tagging-and-noop-puts-emit-no-configuration-change-event", "deployments": [], "key": "cloudwatch__events__sqs/xsvc-cloudwatch-2-state-changes-tagging-and-noop-puts-emit-no-configuration-change-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "cloudwatch:TagResource", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__events__sqs/check_xsvc_cloudwatch_2_state_changes_tagging_and_noop_puts_emit_no_configuration_change_event.py", "service": "cloudwatch__events__sqs"} {"check_id": "cloudwatch__firehose__s3.cw-metric-stream-zero-buffer-firehose-delivers-while-untrusted-role-delivers-nothing", "deployments": [], "key": "cloudwatch__firehose__s3/cw-metric-stream-zero-buffer-firehose-delivers-while-untrusted-role-delivers-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__firehose__s3/check_cw_metric_stream_zero_buffer_firehose_delivers_while_untrusted_role_delivers_nothing.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.deep-cloudwatch-3-cwstreamfmt-otel-delivers-length-delimited-protobuf-with-p99", "deployments": [], "key": "cloudwatch__firehose__s3/deep-cloudwatch-3-cwstreamfmt-otel-delivers-length-delimited-protobuf-with-p99", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__firehose__s3/check_deep_cloudwatch_3_cwstreamfmt_otel_delivers_length_delimited_protobuf_with_p99.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.deep-cloudwatch-3-cwstreamfmt-otel-rejects-average-additional-statistic", "deployments": [], "key": "cloudwatch__firehose__s3/deep-cloudwatch-3-cwstreamfmt-otel-rejects-average-additional-statistic", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch__firehose__s3/check_deep_cloudwatch_3_cwstreamfmt_otel_rejects_average_additional_statistic.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.deploy-cloudwatch-3-metric-stream-cfn-delivers-put-metric-to-s3", "deployments": [], "key": "cloudwatch__firehose__s3/deploy-cloudwatch-3-metric-stream-cfn-delivers-put-metric-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudwatch:GetMetricStream", "cloudwatch:ListMetricStreams", "cloudwatch:PutMetricData", "firehose:DescribeDeliveryStream", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__firehose__s3/check_deploy_cloudwatch_3_metric_stream_cfn_delivers_put_metric_to_s3.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.deploy-cloudwatch-3-metric-stream-cfn-include-filter-update-echoed-in-place", "deployments": [], "key": "cloudwatch__firehose__s3/deploy-cloudwatch-3-metric-stream-cfn-include-filter-update-echoed-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:GetMetricStream", "firehose:DescribeDeliveryStream", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch__firehose__s3/check_deploy_cloudwatch_3_metric_stream_cfn_include_filter_update_echoed_in_place.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.deploy-cloudwatch-3-metric-stream-cfn-unlisted-namespace-blocked-until-update", "deployments": [], "key": "cloudwatch__firehose__s3/deploy-cloudwatch-3-metric-stream-cfn-unlisted-namespace-blocked-until-update", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/cloudwatch__firehose__s3/check_deploy_cloudwatch_3_metric_stream_cfn_unlisted_namespace_blocked_until_update.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.incoming-records-and-delivery-to-s3-join-the-put-to-the-delivered-object", "deployments": [], "key": "cloudwatch__firehose__s3/incoming-records-and-delivery-to-s3-join-the-put-to-the-delivered-object", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__firehose__s3/check_incoming_records_and_delivery_to_s3_join_the_put_to_the_delivered_object.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.metric-stream-statistics-configuration-lifts-total-metric-update-while-stopped-twin-exports-nothing", "deployments": [], "key": "cloudwatch__firehose__s3/metric-stream-statistics-configuration-lifts-total-metric-update-while-stopped-twin-exports-nothing", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "cloudwatch:StopMetricStreams", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch__firehose__s3/check_metric_stream_statistics_configuration_lifts_total_metric_update_while_stopped_twin_exports_nothing.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.metrics-states-stream-denied-role-delivery-metrics-stay-zero-control-matches-landed-bytes", "deployments": [], "key": "cloudwatch__firehose__s3/metrics-states-stream-denied-role-delivery-metrics-stay-zero-control-matches-landed-bytes", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch__firehose__s3/check_metrics_states_stream_denied_role_delivery_metrics_stay_zero_control_matches_landed_bytes.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.obs-cloudwatch-2-metric-update-counts-good-stream-while-untrusted-role-stream-reports-publish-errors", "deployments": [], "key": "cloudwatch__firehose__s3/obs-cloudwatch-2-metric-update-counts-good-stream-while-untrusted-role-stream-reports-publish-errors", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStatistics", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/cloudwatch__firehose__s3/check_obs_cloudwatch_2_metric_update_counts_good_stream_while_untrusted_role_stream_reports_publish_errors.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__firehose__s3.obs-cloudwatch-2-opentelemetry1-stream-lands-otlp-protobuf-and-exclude-filter-drops-namespace", "deployments": [], "key": "cloudwatch__firehose__s3/obs-cloudwatch-2-opentelemetry1-stream-lands-otlp-protobuf-and-exclude-filter-drops-namespace", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteMetricStream", "cloudwatch:GetMetricStream", "cloudwatch:PutMetricData", "cloudwatch:PutMetricStream", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__firehose__s3/check_obs_cloudwatch_2_opentelemetry1_stream_lands_otlp_protobuf_and_exclude_filter_drops_namespace.py", "service": "cloudwatch__firehose__s3"} {"check_id": "cloudwatch__glue__lambda__logs__s3__stepfunctions.cdk-bootstrapped-sfn-etl-workflow", "deployments": ["behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/app.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/cdk.json", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/extract/index.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/extract/vendor/__init__.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/extract/vendor/sim2real_records.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/transform/index.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/transform/vendor/__init__.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/transform/vendor/sim2real_records.py"], "key": "cloudwatch__glue__lambda__logs__s3__stepfunctions/cdk-bootstrapped-sfn-etl-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "ecr:BatchDeleteImage", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:ListImages", "glue:GetPartitions", "glue:GetTable", "lambda:GetFunctionConfiguration", "logs:DescribeLogStreams", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "ssm:GetParameter", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/check_cdk_bootstrapped_sfn_etl_workflow.py", "service": "cloudwatch__glue__lambda__logs__s3__stepfunctions"} {"check_id": "cloudwatch__glue__lambda__logs__s3__stepfunctions.cdk-bootstrapped-sfn-etl-workflow-alarm-echoes-one-minute-period", "deployments": ["behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/app.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/cdk.json", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/extract/index.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/extract/vendor/__init__.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/extract/vendor/sim2real_records.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/transform/index.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/transform/vendor/__init__.py", "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/deployments/sfn_etl_cdk/transform/vendor/sim2real_records.py"], "key": "cloudwatch__glue__lambda__logs__s3__stepfunctions/cdk-bootstrapped-sfn-etl-workflow-alarm-echoes-one-minute-period", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "ecr:BatchDeleteImage", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:ListImages", "glue:GetPartitions", "glue:GetTable", "lambda:GetFunctionConfiguration", "logs:DescribeLogStreams", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "ssm:GetParameter", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__glue__lambda__logs__s3__stepfunctions/check_cdk_bootstrapped_sfn_etl_workflow_alarm_echoes_one_minute_period.py", "service": "cloudwatch__glue__lambda__logs__s3__stepfunctions"} {"check_id": "cloudwatch__iam__lambda__logs__opensearch__s3.cfn-search-indexing-pipeline-alarm-config-workflow", "deployments": ["behavioral/cloudwatch__iam__lambda__logs__opensearch__s3/deployments/search-domain.yaml", "behavioral/cloudwatch__iam__lambda__logs__opensearch__s3/deployments/search-pipeline-readonly-role.yaml", "behavioral/cloudwatch__iam__lambda__logs__opensearch__s3/deployments/search-pipeline.yaml"], "key": "cloudwatch__iam__lambda__logs__opensearch__s3/cfn-search-indexing-pipeline-alarm-config-workflow", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutRetentionPolicy", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__iam__lambda__logs__opensearch__s3/check_cfn_search_indexing_pipeline_alarm_config_workflow.py", "service": "cloudwatch__iam__lambda__logs__opensearch__s3"} {"check_id": "cloudwatch__iam__lambda__logs__opensearch__s3.cfn-search-indexing-pipeline-workflow", "deployments": ["behavioral/cloudwatch__iam__lambda__logs__opensearch__s3/deployments/search-domain.yaml", "behavioral/cloudwatch__iam__lambda__logs__opensearch__s3/deployments/search-pipeline-readonly-role.yaml", "behavioral/cloudwatch__iam__lambda__logs__opensearch__s3/deployments/search-pipeline.yaml"], "key": "cloudwatch__iam__lambda__logs__opensearch__s3/cfn-search-indexing-pipeline-workflow", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "cloudformation:ListStackResources", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutRetentionPolicy", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__iam__lambda__logs__opensearch__s3/check_cfn_search_indexing_pipeline_workflow.py", "service": "cloudwatch__iam__lambda__logs__opensearch__s3"} {"check_id": "cloudwatch__kinesis.metrics-states-stream-iterator-age-nonzero-while-consumer-lags-and-zero-once-caught-up", "deployments": [], "key": "cloudwatch__kinesis/metrics-states-stream-iterator-age-nonzero-while-consumer-lags-and-zero-once-caught-up", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/cloudwatch__kinesis/check_metrics_states_stream_iterator_age_nonzero_while_consumer_lags_and_zero_once_caught_up.py", "service": "cloudwatch__kinesis"} {"check_id": "cloudwatch__kinesis.metrics-states-stream-write-over-one-shard-quota-rejected-and-only-accepted-records-counted", "deployments": [], "key": "cloudwatch__kinesis/metrics-states-stream-write-over-one-shard-quota-rejected-and-only-accepted-records-counted", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords"], "path": "behavioral/cloudwatch__kinesis/check_metrics_states_stream_write_over_one_shard_quota_rejected_and_only_accepted_records_counted.py", "service": "cloudwatch__kinesis"} {"check_id": "cloudwatch__kinesis__lambda.obs-lambda-2-kinesis-esm-iterator-age-reflects-disabled-backlog", "deployments": [], "key": "cloudwatch__kinesis__lambda/obs-lambda-2-kinesis-esm-iterator-age-reflects-disabled-backlog", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecords", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__kinesis__lambda/check_obs_lambda_2_kinesis_esm_iterator_age_reflects_disabled_backlog.py", "service": "cloudwatch__kinesis__lambda"} {"check_id": "cloudwatch__kinesis__lambda.obs-lambda-2-kinesis-esm-role-without-stream-read-rejected", "deployments": [], "key": "cloudwatch__kinesis__lambda/obs-lambda-2-kinesis-esm-role-without-stream-read-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__kinesis__lambda/check_obs_lambda_2_kinesis_esm_role_without_stream_read_rejected.py", "service": "cloudwatch__kinesis__lambda"} {"check_id": "cloudwatch__lambda.alias-resource-dimension-alarm-isolates-failing-alias", "deployments": [], "key": "cloudwatch__lambda/alias-resource-dimension-alarm-isolates-failing-alias", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode"], "path": "behavioral/cloudwatch__lambda/check_alias_resource_dimension_alarm_isolates_failing_alias.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.concurrentexecutions-alarm-breaches-on-parallel-invokes-sequential-twin-ok", "deployments": [], "key": "cloudwatch__lambda/concurrentexecutions-alarm-breaches-on-parallel-invokes-sequential-twin-ok", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/cloudwatch__lambda/check_concurrentexecutions_alarm_breaches_on_parallel_invokes_sequential_twin_ok.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.duration-maximum-alarm-breaches-on-slow-handler-healthy-twin-ok", "deployments": [], "key": "cloudwatch__lambda/duration-maximum-alarm-breaches-on-slow-handler-healthy-twin-ok", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/cloudwatch__lambda/check_duration_maximum_alarm_breaches_on_slow_handler_healthy_twin_ok.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.function-sdk-cloudwatch-get-otel-enrichment-answers", "deployments": [], "key": "cloudwatch__lambda/function-sdk-cloudwatch-get-otel-enrichment-answers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetOTelEnrichment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/cloudwatch__lambda/check_function_sdk_cloudwatch_get_otel_enrichment_answers.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metric-math-error-rate-alarm-breaches-on-ratio-healthy-twin-ok", "deployments": [], "key": "cloudwatch__lambda/metric-math-error-rate-alarm-breaches-on-ratio-healthy-twin-ok", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/cloudwatch__lambda/check_metric_math_error_rate_alarm_breaches_on_ratio_healthy_twin_ok.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-alias-resource-dimension-isolates-alias-and-version-traffic", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-alias-resource-dimension-isolates-alias-and-version-traffic", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_alias_resource_dimension_isolates_alias_and_version_traffic.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-async-retry-meters-every-attempt-but-each-event-once", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-async-retry-meters-every-attempt-but-each-event-once", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_async_retry_meters_every_attempt_but_each_event_once.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-dead-letter-errors-counted-only-when-dlq-delivery-fails", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-dead-letter-errors-counted-only-when-dlq-delivery-fails", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_dead_letter_errors_counted_only_when_dlq_delivery_fails.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-duration-statistics-agree-with-the-report-line-of-each-invoke", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-duration-statistics-agree-with-the-report-line-of-each-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_duration_statistics_agree_with_the_report_line_of_each_invoke.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-function-url-invoke-meters-the-same-as-the-invoke-api", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-function-url-invoke-meters-the-same-as-the-invoke-api", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_function_url_invoke_meters_the_same_as_the_invoke_api.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-oversized-payload-rejected-is-never-metered-as-an-invocation", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-oversized-payload-rejected-is-never-metered-as-an-invocation", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_oversized_payload_rejected_is_never_metered_as_an_invocation.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-post-runtime-extensions-duration-exists-only-with-an-extension", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-post-runtime-extensions-duration-exists-only-with-an-extension", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_post_runtime_extensions_duration_exists_only_with_an_extension.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-reserved-zero-throttles-without-invocations-rejected", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-reserved-zero-throttles-without-invocations-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_reserved_zero_throttles_without_invocations_rejected.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.metrics-lambda-throwing-handler-increments-both-invocations-and-errors", "deployments": [], "key": "cloudwatch__lambda/metrics-lambda-throwing-handler-increments-both-invocations-and-errors", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_metrics_lambda_throwing_handler_increments_both_invocations_and_errors.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.obs-lambda-1-deleted-on-failure-queue-meters-delivery-failure-and-event-age", "deployments": [], "key": "cloudwatch__lambda/obs-lambda-1-deleted-on-failure-queue-meters-delivery-failure-and-event-age", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricData", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunction", "lambda:GetFunctionEventInvokeConfig", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/cloudwatch__lambda/check_obs_lambda_1_deleted_on_failure_queue_meters_delivery_failure_and_event_age.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.obs-lambda-1-fifo-queue-on-failure-destination-rejected-at-configuration", "deployments": [], "key": "cloudwatch__lambda/obs-lambda-1-fifo-queue-on-failure-destination-rejected-at-configuration", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunction", "lambda:GetFunctionEventInvokeConfig", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/cloudwatch__lambda/check_obs_lambda_1_fifo_queue_on_failure_destination_rejected_at_configuration.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.obs-lambda-1-provisioned-concurrency-metrics-split-served-from-spillover", "deployments": [], "key": "cloudwatch__lambda/obs-lambda-1-provisioned-concurrency-metrics-split-served-from-spillover", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetMetricData", "cloudwatch:ListDashboards", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetFunction", "lambda:GetProvisionedConcurrencyConfig", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_obs_lambda_1_provisioned_concurrency_metrics_split_served_from_spillover.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.obs-lambda-1-reserved-burst-meters-function-concurrency-and-claimed-account-identity", "deployments": [], "key": "cloudwatch__lambda/obs-lambda-1-reserved-burst-meters-function-concurrency-and-claimed-account-identity", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteDashboards", "cloudwatch:GetMetricData", "cloudwatch:ListDashboards", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetAccountSettings", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "lambda:GetProvisionedConcurrencyConfig", "lambda:Invoke", "lambda:ListFunctions", "lambda:ListProvisionedConcurrencyConfigs", "lambda:PublishVersion", "lambda:PutFunctionConcurrency", "lambda:PutProvisionedConcurrencyConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda/check_obs_lambda_1_reserved_burst_meters_function_concurrency_and_claimed_account_identity.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.recursive-invocations-dropped-is-emitted-only-when-the-guardrail-terminates", "deployments": [], "key": "cloudwatch__lambda/recursive-invocations-dropped-is-emitted-only-when-the-guardrail-terminates", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionRecursionConfig", "lambda:Invoke", "lambda:PutFunctionRecursionConfig", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda/check_recursive_invocations_dropped_is_emitted_only_when_the_guardrail_terminates.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.throttles-alarm-breaches-on-reserved-zero-healthy-twin-ok", "deployments": [], "key": "cloudwatch__lambda/throttles-alarm-breaches-on-reserved-zero-healthy-twin-ok", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionConcurrency"], "path": "behavioral/cloudwatch__lambda/check_throttles_alarm_breaches_on_reserved_zero_healthy_twin_ok.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.xsvc-cloudwatch-3-alarm-lambda-action-delivers-alarm-payload-to-function", "deployments": [], "key": "cloudwatch__lambda/xsvc-cloudwatch-3-alarm-lambda-action-delivers-alarm-payload-to-function", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetPolicy", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda/check_xsvc_cloudwatch_3_alarm_lambda_action_delivers_alarm_payload_to_function.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda.xsvc-cloudwatch-3-alarm-lambda-action-without-invoke-permission-denied", "deployments": [], "key": "cloudwatch__lambda/xsvc-cloudwatch-3-alarm-lambda-action-without-invoke-permission-denied", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetPolicy", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda/check_xsvc_cloudwatch_3_alarm_lambda_action_without_invoke_permission_denied.py", "service": "cloudwatch__lambda"} {"check_id": "cloudwatch__lambda__logs.cfn-deploy-alarm-invalid-metric-rejected", "deployments": [], "key": "cloudwatch__lambda__logs/cfn-deploy-alarm-invalid-metric-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarms", "lambda:Invoke"], "path": "behavioral/cloudwatch__lambda__logs/check_cfn_deploy_alarm_invalid_metric_rejected.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cfn-deploy-lambda-cloudwatch-alarm-positive", "deployments": [], "key": "cloudwatch__lambda__logs/cfn-deploy-lambda-cloudwatch-alarm-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "lambda:Invoke"], "path": "behavioral/cloudwatch__lambda__logs/check_cfn_deploy_lambda_cloudwatch_alarm_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cfn-deploy-lambda-loggroup-retention-positive", "deployments": [], "key": "cloudwatch__lambda__logs/cfn-deploy-lambda-loggroup-retention-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__lambda__logs/check_cfn_deploy_lambda_loggroup_retention_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cfn-deploy-lambda-missing-logs-policy-rejected", "deployments": [], "key": "cloudwatch__lambda__logs/cfn-deploy-lambda-missing-logs-policy-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__lambda__logs/check_cfn_deploy_lambda_missing_logs_policy_rejected.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cfn-deploy-logs-subscription-filter-lambda-positive", "deployments": [], "key": "cloudwatch__lambda__logs/cfn-deploy-logs-subscription-filter-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:CreateLogStream", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudwatch__lambda__logs/check_cfn_deploy_logs_subscription_filter_lambda_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cli-create-log-subscription-filter-lambda-workflow", "deployments": [], "key": "cloudwatch__lambda__logs/cli-create-log-subscription-filter-lambda-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_cli_create_log_subscription_filter_lambda_workflow.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cli-describe-log-groups-after-lambda-invoke-workflow", "deployments": [], "key": "cloudwatch__lambda__logs/cli-describe-log-groups-after-lambda-invoke-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__lambda__logs/check_cli_describe_log_groups_after_lambda_invoke_workflow.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cli-lambda-missing-log-permission-negative", "deployments": [], "key": "cloudwatch__lambda__logs/cli-lambda-missing-log-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogStreams"], "path": "behavioral/cloudwatch__lambda__logs/check_cli_lambda_missing_log_permission_negative.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cli-lambda-tail-logs-workflow", "deployments": [], "key": "cloudwatch__lambda__logs/cli-lambda-tail-logs-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__lambda__logs/check_cli_lambda_tail_logs_workflow.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cli-put-metric-alarm-describe-lambda-workflow", "deployments": [], "key": "cloudwatch__lambda__logs/cli-put-metric-alarm-describe-lambda-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:SetAlarmState", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/cloudwatch__lambda__logs/check_cli_put_metric_alarm_describe_lambda_workflow.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cloudwatch-alarm-missing-lambda-permission-negative", "deployments": [], "key": "cloudwatch__lambda__logs/cloudwatch-alarm-missing-lambda-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__lambda__logs/check_cloudwatch_alarm_missing_lambda_permission_negative.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cloudwatch-alarm-state-change-eventbridge-invokes-lambda-positive", "deployments": [], "key": "cloudwatch__lambda__logs/cloudwatch-alarm-state-change-eventbridge-invokes-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__lambda__logs/check_cloudwatch_alarm_state_change_eventbridge_invokes_lambda_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.cloudwatch-composite-alarm-triggers-lambda-positive", "deployments": [], "key": "cloudwatch__lambda__logs/cloudwatch-composite-alarm-triggers-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/cloudwatch__lambda__logs/check_cloudwatch_composite_alarm_triggers_lambda_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-cloudwatch-getmetricstatistics-missing-permission-negative", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-cloudwatch-getmetricstatistics-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_cloudwatch_getmetricstatistics_missing_permission_negative.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-custom-boto3-logs-missing-permission-negative", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-custom-boto3-logs-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_custom_boto3_logs_missing_permission_negative.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-custom-boto3-logs-put-log-events-positive", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-custom-boto3-logs-put-log-events-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_custom_boto3_logs_put_log_events_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-custom-putmetricdata-boto3-positive", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-custom-putmetricdata-boto3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_custom_putmetricdata_boto3_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-custom-putmetricdata-missing-permission-negative", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-custom-putmetricdata-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_custom_putmetricdata_missing_permission_negative.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-duration-metric-positive", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-duration-metric-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_duration_metric_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-error-count-metric-positive", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-error-count-metric-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_error_count_metric_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-error-log-format-stacktrace-positive", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-error-log-format-stacktrace-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_error_log_format_stacktrace_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-invocation-count-metric-positive", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-invocation-count-metric-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_invocation_count_metric_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-invoke-creates-log-group-positive", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-invoke-creates-log-group-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_invoke_creates_log_group_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-invoke-writes-log-stream-events-positive", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-invoke-writes-log-stream-events-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_invoke_writes_log_stream_events_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-log-group-retention-configurable", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-log-group-retention-configurable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_log_group_retention_configurable.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.lambda-missing-logs-permission-no-log-delivery-negative", "deployments": [], "key": "cloudwatch__lambda__logs/lambda-missing-logs-permission-no-log-delivery-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cloudwatch__lambda__logs/check_lambda_missing_logs_permission_no_log_delivery_negative.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.logs-metric-filter-creates-cloudwatch-metric-positive", "deployments": [], "key": "cloudwatch__lambda__logs/logs-metric-filter-creates-cloudwatch-metric-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:PutMetricFilter"], "path": "behavioral/cloudwatch__lambda__logs/check_logs_metric_filter_creates_cloudwatch_metric_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.logs-metric-filter-non-matching-pattern-no-metric-negative", "deployments": [], "key": "cloudwatch__lambda__logs/logs-metric-filter-non-matching-pattern-no-metric-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:PutMetricFilter"], "path": "behavioral/cloudwatch__lambda__logs/check_logs_metric_filter_non_matching_pattern_no_metric_negative.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.logs-subscription-filter-invokes-lambda-positive", "deployments": [], "key": "cloudwatch__lambda__logs/logs-subscription-filter-invokes-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_logs_subscription_filter_invokes_lambda_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.logs-subscription-filter-missing-permission-negative", "deployments": [], "key": "cloudwatch__lambda__logs/logs-subscription-filter-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:DescribeSubscriptionFilters", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_logs_subscription_filter_missing_permission_negative.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.logs-subscription-filter-pattern-matching-positive", "deployments": [], "key": "cloudwatch__lambda__logs/logs-subscription-filter-pattern-matching-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_logs_subscription_filter_pattern_matching_positive.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-default-value-zero-fills-non-matching-lambda-lines", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-default-value-zero-fills-non-matching-lambda-lines", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:PutMetricFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_default_value_zero_fills_non_matching_lambda_lines.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-dimensions-with-default-value-rejected", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-dimensions-with-default-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:FilterLogEvents", "logs:PutMetricFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_dimensions_with_default_value_rejected.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-filter-created-after-lines-does-not-count-them", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-filter-created-after-lines-does-not-count-them", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:PutMetricFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_filter_created_after_lines_does_not_count_them.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-fourth-dimension-rejected", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-fourth-dimension-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:FilterLogEvents", "logs:PutMetricFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_fourth_dimension_rejected.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-insights-parse-named-capture-agrees-with-extracted-metric", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-insights-parse-named-capture-agrees-with-extracted-metric", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:GetQueryResults", "logs:PutMetricFilter", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_insights_parse_named_capture_agrees_with_extracted_metric.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-insights-stats-by-agrees-with-dimensioned-metric-filter", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-insights-stats-by-agrees-with-dimensioned-metric-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:GetQueryResults", "logs:PutMetricFilter", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_insights_stats_by_agrees_with_dimensioned_metric_filter.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-json-selector-filter-counts-only-parsed-json-error-lines", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-json-selector-filter-counts-only-parsed-json-error-lines", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:PutMetricFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_json_selector_filter_counts_only_parsed_json_error_lines.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-literal-dimension-value-rejected", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-literal-dimension-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:FilterLogEvents", "logs:PutMetricFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_literal_dimension_value_rejected.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-no-matching-line-emits-no-datapoint-and-an-empty-complete-query", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-no-matching-line-emits-no-datapoint-and-an-empty-complete-query", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:GetQueryResults", "logs:PutMetricFilter", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_no_matching_line_emits_no_datapoint_and_an_empty_complete_query.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-regex-pattern-agrees-across-metric-filter-insights-and-filter-log-events", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-regex-pattern-agrees-across-metric-filter-insights-and-filter-log-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:GetQueryResults", "logs:PutMetricFilter", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_regex_pattern_agrees_across_metric_filter_insights_and_filter_log_events.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-size-field-metric-value-is-extracted-not-counted", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-size-field-metric-value-is-extracted-not-counted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:PutMetricFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_size_field_metric_value_is_extracted_not_counted.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-from-logs-space-delimited-filter-counts-lambda-lines-under-declared-dimension", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-from-logs-space-delimited-filter-counts-lambda-lines-under-declared-dimension", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:PutMetricFilter", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_from_logs_space_delimited_filter_counts_lambda_lines_under_declared_dimension.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-math-and-emf-lambda-malformed-emf-line-yields-no-metric-and-stream-keeps-working", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-math-and-emf-lambda-malformed-emf-line-yields-no-metric-and-stream-keeps-working", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_math_and_emf_lambda_malformed_emf_line_yields_no_metric_and_stream_keeps_working.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs.metrics-math-and-emf-lambda-stdout-emf-line-materializes-metric-without-put-metric-data", "deployments": [], "key": "cloudwatch__lambda__logs/metrics-math-and-emf-lambda-stdout-emf-line-materializes-metric-without-put-metric-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__lambda__logs/check_metrics_math_and_emf_lambda_stdout_emf_line_materializes_metric_without_put_metric_data.py", "service": "cloudwatch__lambda__logs"} {"check_id": "cloudwatch__lambda__logs__sns__sqs.alarm-log-metric-chain-deleted-filter-stops-counting-but-keeps-datapoints", "deployments": [], "key": "cloudwatch__lambda__logs__sns__sqs/alarm-log-metric-chain-deleted-filter-stops-counting-but-keeps-datapoints", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:DescribeMetricFilters", "logs:FilterLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__lambda__logs__sns__sqs/check_alarm_log_metric_chain_deleted_filter_stops_counting_but_keeps_datapoints.py", "service": "cloudwatch__lambda__logs__sns__sqs"} {"check_id": "cloudwatch__lambda__logs__sns__sqs.alarm-log-metric-chain-disabled-alarm-actions-stop-chain-at-sns", "deployments": [], "key": "cloudwatch__lambda__logs__sns__sqs/alarm-log-metric-chain-disabled-alarm-actions-stop-chain-at-sns", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__lambda__logs__sns__sqs/check_alarm_log_metric_chain_disabled_alarm_actions_stop_chain_at_sns.py", "service": "cloudwatch__lambda__logs__sns__sqs"} {"check_id": "cloudwatch__lambda__logs__sns__sqs.alarm-log-metric-chain-filter-created-after-lines-does-not-count-them", "deployments": [], "key": "cloudwatch__lambda__logs__sns__sqs/alarm-log-metric-chain-filter-created-after-lines-does-not-count-them", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:DescribeMetricFilters", "logs:FilterLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "logs:TestMetricFilter"], "path": "behavioral/cloudwatch__lambda__logs__sns__sqs/check_alarm_log_metric_chain_filter_created_after_lines_does_not_count_them.py", "service": "cloudwatch__lambda__logs__sns__sqs"} {"check_id": "cloudwatch__lambda__logs__sns__sqs.alarm-log-metric-chain-lambda-error-lines-breach-alarm-and-reach-sqs", "deployments": [], "key": "cloudwatch__lambda__logs__sns__sqs/alarm-log-metric-chain-lambda-error-lines-breach-alarm-and-reach-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs__sns__sqs/check_alarm_log_metric_chain_lambda_error_lines_breach_alarm_and_reach_sqs.py", "service": "cloudwatch__lambda__logs__sns__sqs"} {"check_id": "cloudwatch__lambda__logs__sns__sqs.alarm-log-metric-chain-nonmatching-filter-pattern-stops-chain-at-metric", "deployments": [], "key": "cloudwatch__lambda__logs__sns__sqs/alarm-log-metric-chain-nonmatching-filter-pattern-stops-chain-at-metric", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:DescribeMetricFilters", "logs:FilterLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "logs:TestMetricFilter", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__lambda__logs__sns__sqs/check_alarm_log_metric_chain_nonmatching_filter_pattern_stops_chain_at_metric.py", "service": "cloudwatch__lambda__logs__sns__sqs"} {"check_id": "cloudwatch__lambda__logs__sns__sqs.alarm-log-metric-chain-removed-subscription-stops-chain-at-sqs", "deployments": [], "key": "cloudwatch__lambda__logs__sns__sqs/alarm-log-metric-chain-removed-subscription-stops-chain-at-sqs", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__lambda__logs__sns__sqs/check_alarm_log_metric_chain_removed_subscription_stops_chain_at_sqs.py", "service": "cloudwatch__lambda__logs__sns__sqs"} {"check_id": "cloudwatch__lambda__logs__stepfunctions.obs-sfn-3-express-fail-events-to-unpermitted-lambda-subscriber-rejected", "deployments": [], "key": "cloudwatch__lambda__logs__stepfunctions/obs-sfn-3-express-fail-events-to-unpermitted-lambda-subscriber-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:DescribeSubscriptionFilters", "logs:FilterLogEvents", "logs:PutSubscriptionFilter", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs__stepfunctions/check_obs_sfn_3_express_fail_events_to_unpermitted_lambda_subscriber_rejected.py", "service": "cloudwatch__lambda__logs__stepfunctions"} {"check_id": "cloudwatch__lambda__logs__stepfunctions.obs-sfn-3-express-failures-counted-by-metric-filter-subscriber-and-insights", "deployments": [], "key": "cloudwatch__lambda__logs__stepfunctions/obs-sfn-3-express-failures-counted-by-metric-filter-subscriber-and-insights", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:GetQueryResults", "logs:PutMetricFilter", "logs:PutSubscriptionFilter", "logs:StartQuery", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__lambda__logs__stepfunctions/check_obs_sfn_3_express_failures_counted_by_metric_filter_subscriber_and_insights.py", "service": "cloudwatch__lambda__logs__stepfunctions"} {"check_id": "cloudwatch__lambda__sns__sqs.lambda-errors-alarm-sns-sqs-delivery-healthy-twin-ok", "deployments": [], "key": "cloudwatch__lambda__sns__sqs/lambda-errors-alarm-sns-sqs-delivery-healthy-twin-ok", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__lambda__sns__sqs/check_lambda_errors_alarm_sns_sqs_delivery_healthy_twin_ok.py", "service": "cloudwatch__lambda__sns__sqs"} {"check_id": "cloudwatch__lambda__sns__sqs.xsvc-cloudwatch-3-composite-alarm-and-rule-over-lambda-errors-and-sqs-depth-delivers-via-sns-to-sqs", "deployments": [], "key": "cloudwatch__lambda__sns__sqs/xsvc-cloudwatch-3-composite-alarm-and-rule-over-lambda-errors-and-sqs-depth-delivers-via-sns-to-sqs", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__lambda__sns__sqs/check_xsvc_cloudwatch_3_composite_alarm_and_rule_over_lambda_errors_and_sqs_depth_delivers_via_sns_to_sqs.py", "service": "cloudwatch__lambda__sns__sqs"} {"check_id": "cloudwatch__lambda__sqs.obs-lambda-2-sqs-esm-cleared-metrics-config-freezes-event-counts", "deployments": [], "key": "cloudwatch__lambda__sqs/obs-lambda-2-sqs-esm-cleared-metrics-config-freezes-event-counts", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessageBatch"], "path": "behavioral/cloudwatch__lambda__sqs/check_obs_lambda_2_sqs_esm_cleared_metrics_config_freezes_event_counts.py", "service": "cloudwatch__lambda__sqs"} {"check_id": "cloudwatch__lambda__sqs.obs-lambda-2-sqs-esm-filter-event-counts-and-opt-out-twin", "deployments": [], "key": "cloudwatch__lambda__sqs/obs-lambda-2-sqs-esm-filter-event-counts-and-opt-out-twin", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessageBatch"], "path": "behavioral/cloudwatch__lambda__sqs/check_obs_lambda_2_sqs_esm_filter_event_counts_and_opt_out_twin.py", "service": "cloudwatch__lambda__sqs"} {"check_id": "cloudwatch__lambda__sqs.obs-lambda-2-sqs-esm-kafka-only-metrics-rejected", "deployments": [], "key": "cloudwatch__lambda__sqs/obs-lambda-2-sqs-esm-kafka-only-metrics-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/cloudwatch__lambda__sqs/check_obs_lambda_2_sqs_esm_kafka_only_metrics_rejected.py", "service": "cloudwatch__lambda__sqs"} {"check_id": "cloudwatch__lambda__stepfunctions.metrics-states-stream-lambda-invoke-denied-role-fails-execution-function-series-empty", "deployments": [], "key": "cloudwatch__lambda__stepfunctions/metrics-states-stream-lambda-invoke-denied-role-fails-execution-function-series-empty", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/cloudwatch__lambda__stepfunctions/check_metrics_states_stream_lambda_invoke_denied_role_fails_execution_function_series_empty.py", "service": "cloudwatch__lambda__stepfunctions"} {"check_id": "cloudwatch__lambda__stepfunctions.metrics-states-stream-lambda-task-metrics-attribute-to-the-function-arn-series", "deployments": [], "key": "cloudwatch__lambda__stepfunctions/metrics-states-stream-lambda-task-metrics-attribute-to-the-function-arn-series", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/cloudwatch__lambda__stepfunctions/check_metrics_states_stream_lambda_task_metrics_attribute_to_the_function_arn_series.py", "service": "cloudwatch__lambda__stepfunctions"} {"check_id": "cloudwatch__lambda__stepfunctions.obs-sfn-1-optimized-lambda-invoke-denied-and-ok-never-populate-function-arn-series", "deployments": [], "key": "cloudwatch__lambda__stepfunctions/obs-sfn-1-optimized-lambda-invoke-denied-and-ok-never-populate-function-arn-series", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/cloudwatch__lambda__stepfunctions/check_obs_sfn_1_optimized_lambda_invoke_denied_and_ok_never_populate_function_arn_series.py", "service": "cloudwatch__lambda__stepfunctions"} {"check_id": "cloudwatch__logs.deep-cwlogs-semantics-filter-log-events-and-metric-filter-agree-on-pattern-verdicts", "deployments": [], "key": "cloudwatch__logs/deep-cwlogs-semantics-filter-log-events-and-metric-filter-agree-on-pattern-verdicts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:TestMetricFilter"], "path": "behavioral/cloudwatch__logs/check_deep_cwlogs_semantics_filter_log_events_and_metric_filter_agree_on_pattern_verdicts.py", "service": "cloudwatch__logs"} {"check_id": "cloudwatch__logs.deep-cwlogs-semantics-metric-filter-dimensions-with-default-value-rejected", "deployments": [], "key": "cloudwatch__logs/deep-cwlogs-semantics-metric-filter-dimensions-with-default-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/cloudwatch__logs/check_deep_cwlogs_semantics_metric_filter_dimensions_with_default_value_rejected.py", "service": "cloudwatch__logs"} {"check_id": "cloudwatch__logs.emf-log-to-metric-extraction-exactness", "deployments": [], "key": "cloudwatch__logs/emf-log-to-metric-extraction-exactness", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__logs/check_emf_log_to_metric_extraction_exactness.py", "service": "cloudwatch__logs"} {"check_id": "cloudwatch__logs.metric-extraction-policy-invalid-status-rejected", "deployments": [], "key": "cloudwatch__logs/metric-extraction-policy-invalid-status-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy", "logs:PutLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__logs/check_metric_extraction_policy_invalid_status_rejected.py", "service": "cloudwatch__logs"} {"check_id": "cloudwatch__logs.metric-extraction-resumes-after-policy-deleted", "deployments": [], "key": "cloudwatch__logs/metric-extraction-resumes-after-policy-deleted", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy", "logs:PutLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__logs/check_metric_extraction_resumes_after_policy_deleted.py", "service": "cloudwatch__logs"} {"check_id": "cloudwatch__logs.obs-logs-2-metric-filter-apply-on-transformed-logs-matches-transformed-event", "deployments": [], "key": "cloudwatch__logs/obs-logs-2-metric-filter-apply-on-transformed-logs-matches-transformed-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutTransformer"], "path": "behavioral/cloudwatch__logs/check_obs_logs_2_metric_filter_apply_on_transformed_logs_matches_transformed_event.py", "service": "cloudwatch__logs"} {"check_id": "cloudwatch__logs.obs-logs-2-transformer-without-leading-parser-rejected", "deployments": [], "key": "cloudwatch__logs/obs-logs-2-transformer-without-leading-parser-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutTransformer"], "path": "behavioral/cloudwatch__logs/check_obs_logs_2_transformer_without_leading_parser_rejected.py", "service": "cloudwatch__logs"} {"check_id": "cloudwatch__logs.obs-logs-3-service-usage-and-emf-policy-metrics", "deployments": [], "key": "cloudwatch__logs/obs-logs-3-service-usage-and-emf-policy-metrics", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DescribeAccountPolicies", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutAccountPolicy", "logs:PutLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/cloudwatch__logs/check_obs_logs_3_service_usage_and_emf_policy_metrics.py", "service": "cloudwatch__logs"} {"check_id": "cloudwatch__logs__sns__sqs.deep-cloudwatch-2-cwlogalarm-m-of-n-breach-count-drives-alarm", "deployments": [], "key": "cloudwatch__logs__sns__sqs/deep-cloudwatch-2-cwlogalarm-m-of-n-breach-count-drives-alarm", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetScheduledQuery", "logs:GetScheduledQueryHistory", "logs:PutLogEvents", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__logs__sns__sqs/check_deep_cloudwatch_2_cwlogalarm_m_of_n_breach_count_drives_alarm.py", "service": "cloudwatch__logs__sns__sqs"} {"check_id": "cloudwatch__logs__sns__sqs.deep-cloudwatch-2-cwlogalarm-unassumable-query-role-evaluation-error", "deployments": [], "key": "cloudwatch__logs__sns__sqs/deep-cloudwatch-2-cwlogalarm-unassumable-query-role-evaluation-error", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__logs__sns__sqs/check_deep_cloudwatch_2_cwlogalarm_unassumable_query_role_evaluation_error.py", "service": "cloudwatch__logs__sns__sqs"} {"check_id": "cloudwatch__logs__sns__sqs.deep-cloudwatch-2-cwlogalarm-zero-match-count-is-missing-not-zero", "deployments": [], "key": "cloudwatch__logs__sns__sqs/deep-cloudwatch-2-cwlogalarm-zero-match-count-is-missing-not-zero", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutLogAlarm", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetScheduledQueryHistory", "logs:PutLogEvents", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__logs__sns__sqs/check_deep_cloudwatch_2_cwlogalarm_zero_match_count_is_missing_not_zero.py", "service": "cloudwatch__logs__sns__sqs"} {"check_id": "cloudwatch__logs__sns__sqs.log-alarm-notification-blocked-without-sqs-queue-policy", "deployments": [], "key": "cloudwatch__logs__sns__sqs/log-alarm-notification-blocked-without-sqs-queue-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__logs__sns__sqs/check_log_alarm_notification_blocked_without_sqs_queue_policy.py", "service": "cloudwatch__logs__sns__sqs"} {"check_id": "cloudwatch__logs__sns__sqs.metric-filter-default-value-publishes-zero-only-for-ingested-non-matching-events", "deployments": [], "key": "cloudwatch__logs__sns__sqs/metric-filter-default-value-publishes-zero-only-for-ingested-non-matching-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteLogStream", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__logs__sns__sqs/check_metric_filter_default_value_publishes_zero_only_for_ingested_non_matching_events.py", "service": "cloudwatch__logs__sns__sqs"} {"check_id": "cloudwatch__logs__sns__sqs.metric-filter-match-drives-alarm-and-notifies", "deployments": [], "key": "cloudwatch__logs__sns__sqs/metric-filter-match-drives-alarm-and-notifies", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__logs__sns__sqs/check_metric_filter_match_drives_alarm_and_notifies.py", "service": "cloudwatch__logs__sns__sqs"} {"check_id": "cloudwatch__logs__sns__sqs.metric-filter-non-matching-pattern-no-datapoint-no-alarm", "deployments": [], "key": "cloudwatch__logs__sns__sqs/metric-filter-non-matching-pattern-no-datapoint-no-alarm", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__logs__sns__sqs/check_metric_filter_non_matching_pattern_no_datapoint_no_alarm.py", "service": "cloudwatch__logs__sns__sqs"} {"check_id": "cloudwatch__opensearch.obs-opensearch-1-domain-metrics-track-cluster-health-and-documents", "deployments": [], "key": "cloudwatch__opensearch/obs-opensearch-1-domain-metrics-track-cluster-health-and-documents", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:ListMetrics", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__opensearch/check_obs_opensearch_1_domain_metrics_track_cluster_health_and_documents.py", "service": "cloudwatch__opensearch"} {"check_id": "cloudwatch__opensearch.obs-opensearch-1-forged-domain-metric-in-aws-es-namespace-rejected", "deployments": [], "key": "cloudwatch__opensearch/obs-opensearch-1-forged-domain-metric-in-aws-es-namespace-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__opensearch/check_obs_opensearch_1_forged_domain_metric_in_aws_es_namespace_rejected.py", "service": "cloudwatch__opensearch"} {"check_id": "cloudwatch__opensearch.obs-opensearch-domain-metrics-listed-under-client-id-and-domain-name-only", "deployments": [], "key": "cloudwatch__opensearch/obs-opensearch-domain-metrics-listed-under-client-id-and-domain-name-only", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__opensearch/check_obs_opensearch_domain_metrics_listed_under_client_id_and_domain_name_only.py", "service": "cloudwatch__opensearch"} {"check_id": "cloudwatch__opensearch__sns__sqs.forged-aws-es-searchable-documents-datapoint-rejected-and-alarm-withholds-notification", "deployments": [], "key": "cloudwatch__opensearch__sns__sqs/forged-aws-es-searchable-documents-datapoint-rejected-and-alarm-withholds-notification", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__opensearch__sns__sqs/check_forged_aws_es_searchable_documents_datapoint_rejected_and_alarm_withholds_notification.py", "service": "cloudwatch__opensearch__sns__sqs"} {"check_id": "cloudwatch__opensearch__sns__sqs.obs-opensearch-2-searchable-documents-metric-crosses-threshold-and-alarm-notifies-sqs", "deployments": [], "key": "cloudwatch__opensearch__sns__sqs/obs-opensearch-2-searchable-documents-metric-crosses-threshold-and-alarm-notifies-sqs", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__opensearch__sns__sqs/check_obs_opensearch_2_searchable_documents_metric_crosses_threshold_and_alarm_notifies_sqs.py", "service": "cloudwatch__opensearch__sns__sqs"} {"check_id": "cloudwatch__pipes__sqs.target-stage-failed-publishes-for-the-failing-pipe-and-zero-for-its-twin", "deployments": [], "key": "cloudwatch__pipes__sqs/target-stage-failed-publishes-for-the-failing-pipe-and-zero-for-its-twin", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudwatch__pipes__sqs/check_target_stage_failed_publishes_for_the_failing_pipe_and_zero_for_its_twin.py", "service": "cloudwatch__pipes__sqs"} {"check_id": "cloudwatch__rds.obs-rds-2-forged-aurora-role-metric-rejected", "deployments": [], "key": "cloudwatch__rds/obs-rds-2-forged-aurora-role-metric-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData", "rds:DescribeDBClusters"], "path": "behavioral/cloudwatch__rds/check_obs_rds_2_forged_aurora_role_metric_rejected.py", "service": "cloudwatch__rds"} {"check_id": "cloudwatch__rds.obs-rds-3-forged-database-connections-instance-metric-rejected", "deployments": [], "key": "cloudwatch__rds/obs-rds-3-forged-database-connections-instance-metric-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData", "rds:DescribeDBInstances"], "path": "behavioral/cloudwatch__rds/check_obs_rds_3_forged_database_connections_instance_metric_rejected.py", "service": "cloudwatch__rds"} {"check_id": "cloudwatch__rds.rds-alarm-action-blocked-by-topic-policy-denying-cloudwatch", "deployments": [], "key": "cloudwatch__rds/rds-alarm-action-blocked-by-topic-policy-denying-cloudwatch", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "rds:DescribeDBInstances", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__rds/check_rds_alarm_action_blocked_by_topic_policy_denying_cloudwatch.py", "service": "cloudwatch__rds"} {"check_id": "cloudwatch__s3.obs-s3-1-forged-metric-data-into-aws-s3-namespace-rejected", "deployments": [], "key": "cloudwatch__s3/obs-s3-1-forged-metric-data-into-aws-s3-namespace-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricData", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:PutBucketMetricsConfiguration"], "path": "behavioral/cloudwatch__s3/check_obs_s3_1_forged_metric_data_into_aws_s3_namespace_rejected.py", "service": "cloudwatch__s3"} {"check_id": "cloudwatch__s3.obs-s3-1-request-metrics-filter-counts-each-verb-exactly", "deployments": [], "key": "cloudwatch__s3/obs-s3-1-request-metrics-filter-counts-each-verb-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketMetricsConfiguration", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketMetricsConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudwatch__s3/check_obs_s3_1_request_metrics_filter_counts_each_verb_exactly.py", "service": "cloudwatch__s3"} {"check_id": "cloudwatch__s3.s3-request-metrics-filter-partitions-traffic-into-cloudwatch", "deployments": [], "key": "cloudwatch__s3/s3-request-metrics-filter-partitions-traffic-into-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:DeleteObjects", "s3:GetBucketMetricsConfiguration", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketMetricsConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cloudwatch__s3/check_s3_request_metrics_filter_partitions_traffic_into_cloudwatch.py", "service": "cloudwatch__s3"} {"check_id": "cloudwatch__s3__sns__sqs.obs-s3-1-filter-4xx-alarm-fires-to-queue-quiet-filter-never-alarms", "deployments": [], "key": "cloudwatch__s3__sns__sqs/obs-s3-1-filter-4xx-alarm-fires-to-queue-quiet-filter-never-alarms", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketMetricsConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__s3__sns__sqs/check_obs_s3_1_filter_4xx_alarm_fires_to_queue_quiet_filter_never_alarms.py", "service": "cloudwatch__s3__sns__sqs"} {"check_id": "cloudwatch__s3__sns__sqs.obs-s3-1-filter-alarm-notification-to-queue-without-sns-policy-blocked", "deployments": [], "key": "cloudwatch__s3__sns__sqs/obs-s3-1-filter-alarm-notification-to-queue-without-sns-policy-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:PutBucketMetricsConfiguration", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__s3__sns__sqs/check_obs_s3_1_filter_alarm_notification_to_queue_without_sns_policy_blocked.py", "service": "cloudwatch__s3__sns__sqs"} {"check_id": "cloudwatch__ses.cloudwatch-destination-never-resolves-a-dimension-it-did-not-declare", "deployments": [], "key": "cloudwatch__ses/cloudwatch-destination-never-resolves-a-dimension-it-did-not-declare", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail"], "path": "behavioral/cloudwatch__ses/check_cloudwatch_destination_never_resolves_a_dimension_it_did_not_declare.py", "service": "cloudwatch__ses"} {"check_id": "cloudwatch__ses.cloudwatch-destination-registers-send-metric-with-resolved-dimensions", "deployments": [], "key": "cloudwatch__ses/cloudwatch-destination-registers-send-metric-with-resolved-dimensions", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail"], "path": "behavioral/cloudwatch__ses/check_cloudwatch_destination_registers_send_metric_with_resolved_dimensions.py", "service": "cloudwatch__ses"} {"check_id": "cloudwatch__sns.alarm-actions-disabled-suppresses-notification-rejected", "deployments": [], "key": "cloudwatch__sns/alarm-actions-disabled-suppresses-notification-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_alarm_actions_disabled_suppresses_notification_rejected.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.alarm-sns-topic-arn-mismatch-is-accepted-and-live-action-delivers", "deployments": [], "key": "cloudwatch__sns/alarm-sns-topic-arn-mismatch-is-accepted-and-live-action-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_alarm_sns_topic_arn_mismatch_is_accepted_and_live_action_delivers.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.cfn-alarm-missing-sns-topic-policy-no-delivery", "deployments": [], "key": "cloudwatch__sns/cfn-alarm-missing-sns-topic-policy-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:SetAlarmState", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudwatch__sns/check_cfn_alarm_missing_sns_topic_policy_no_delivery.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.cfn-cloudwatch-alarm-wrong-region-arn-no-delivery", "deployments": [], "key": "cloudwatch__sns/cfn-cloudwatch-alarm-wrong-region-arn-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudwatch:SetAlarmState", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__sns/check_cfn_cloudwatch_alarm_wrong_region_arn_no_delivery.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.cfn-deploy-cloudwatch-alarm-sns-topic", "deployments": [], "key": "cloudwatch__sns/cfn-deploy-cloudwatch-alarm-sns-topic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:SetAlarmState", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/cloudwatch__sns/check_cfn_deploy_cloudwatch_alarm_sns_topic.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.cli-describe-alarm-history-after-sns-notify", "deployments": [], "key": "cloudwatch__sns/cli-describe-alarm-history-after-sns-notify", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_cli_describe_alarm_history_after_sns_notify.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.cloudwatch-alarm-sns-kms-key-policy-missing-no-delivery-rejected", "deployments": [], "key": "cloudwatch__sns/cloudwatch-alarm-sns-kms-key-policy-missing-no-delivery-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "kms:CreateKey", "kms:GetKeyPolicy", "kms:ScheduleKeyDeletion", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__sns/check_cloudwatch_alarm_sns_kms_key_policy_missing_no_delivery_rejected.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.cloudwatch-put-metric-alarm-cli-triggers-sns", "deployments": [], "key": "cloudwatch__sns/cloudwatch-put-metric-alarm-cli-triggers-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_cloudwatch_put_metric_alarm_cli_triggers_sns.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.composite-alarm-notifies-sns", "deployments": [], "key": "cloudwatch__sns/composite-alarm-notifies-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_composite_alarm_notifies_sns.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.filtered-out-and-failed-notification-metrics-count-exactly-the-withheld-and-refused-publishes", "deployments": [], "key": "cloudwatch__sns/filtered-out-and-failed-notification-metrics-count-exactly-the-withheld-and-refused-publishes", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_filtered_out_and_failed_notification_metrics_count_exactly_the_withheld_and_refused_publishes.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.iam-role-trusts-sns-service", "deployments": [], "key": "cloudwatch__sns/iam-role-trusts-sns-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_iam_role_trusts_sns_service.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.insufficient-data-alarm-notifies-sns", "deployments": [], "key": "cloudwatch__sns/insufficient-data-alarm-notifies-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_insufficient_data_alarm_notifies_sns.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.metric-filter-log-group-alarm-notifies-sns", "deployments": [], "key": "cloudwatch__sns/metric-filter-log-group-alarm-notifies-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutMetricFilter", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_metric_filter_log_group_alarm_notifies_sns.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.multiple-alarms-fanout-single-sns-topic", "deployments": [], "key": "cloudwatch__sns/multiple-alarms-fanout-single-sns-topic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns/check_multiple_alarms_fanout_single_sns_topic.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.ok-action-missing-sns-permission-rejected", "deployments": [], "key": "cloudwatch__sns/ok-action-missing-sns-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__sns/check_ok_action_missing_sns_permission_rejected.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns.sns-topic-policy-missing-cloudwatch-source-arn-rejected", "deployments": [], "key": "cloudwatch__sns/sns-topic-policy-missing-cloudwatch-source-arn-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__sns/check_sns_topic_policy_missing_cloudwatch_source_arn_rejected.py", "service": "cloudwatch__sns"} {"check_id": "cloudwatch__sns__sqs.actions-suppressor-phases-on-high-resolution-alarms-withhold-then-release-the-composite-notification", "deployments": [], "key": "cloudwatch__sns__sqs/actions-suppressor-phases-on-high-resolution-alarms-withhold-then-release-the-composite-notification", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_actions_suppressor_phases_on_high_resolution_alarms_withhold_then_release_the_composite_notification.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-action-invocation-history-and-payload-shape", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-action-invocation-history-and-payload-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_action_invocation_history_and_payload_shape.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-actions-disabled-suppresses-notification", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-actions-disabled-suppresses-notification", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_actions_disabled_suppresses_notification.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-composite-and-actions-and-rule-waits-for-both-real-children", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-composite-and-actions-and-rule-waits-for-both-real-children", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_composite_and_actions_and_rule_waits_for_both_real_children.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-composite-and-actions-disabled-actions-transition-but-delivery-blocked", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-composite-and-actions-disabled-actions-transition-but-delivery-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_composite_and_actions_disabled_actions_transition_but_delivery_blocked.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-composite-and-actions-each-action-list-fires-only-on-its-own-transition", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-composite-and-actions-each-action-list-fires-only-on-its-own-transition", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_composite_and_actions_each_action_list_fires_only_on_its_own_transition.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-composite-and-actions-set-alarm-state-fires-action-then-evaluation-overwrites", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-composite-and-actions-set-alarm-state-fires-action-then-evaluation-overwrites", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_composite_and_actions_set_alarm_state_fires_action_then_evaluation_overwrites.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-ok-and-alarm-transitions-both-notify", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-ok-and-alarm-transitions-both-notify", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_ok_and_alarm_transitions_both_notify.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-ok-transition-does-not-fire-alarm-action", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-ok-transition-does-not-fire-alarm-action", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_ok_transition_does_not_fire_alarm_action.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-state-change-to-alarm-notifies-sns", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-state-change-to-alarm-notifies-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_state_change_to_alarm_notifies_sns.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.alarm-treat-missing-data-breaching-vs-notbreaching", "deployments": [], "key": "cloudwatch__sns__sqs/alarm-treat-missing-data-breaching-vs-notbreaching", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_alarm_treat_missing_data_breaching_vs_notbreaching.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.anomaly-detection-band-alarm-action-notifies", "deployments": [], "key": "cloudwatch__sns__sqs/anomaly-detection-band-alarm-action-notifies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DeleteAnomalyDetector", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAnomalyDetectors", "cloudwatch:PutAnomalyDetector", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_anomaly_detection_band_alarm_action_notifies.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.composite-alarm-unsatisfied-rule-no-action", "deployments": [], "key": "cloudwatch__sns__sqs/composite-alarm-unsatisfied-rule-no-action", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_composite_alarm_unsatisfied_rule_no_action.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.cw-alarm-action-to-deleted-topic-is-recorded-as-failed-and-delivers-nothing", "deployments": [], "key": "cloudwatch__sns__sqs/cw-alarm-action-to-deleted-topic-is-recorded-as-failed-and-delivers-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_cw_alarm_action_to_deleted_topic_is_recorded_as_failed_and_delivers_nothing.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.deep-cloudwatch-1-cw-warmup-withholds-alarm-and-notification-until-expiry", "deployments": [], "key": "cloudwatch__sns__sqs/deep-cloudwatch-1-cw-warmup-withholds-alarm-and-notification-until-expiry", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_deep_cloudwatch_1_cw_warmup_withholds_alarm_and_notification_until_expiry.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.metric-datapoints-cross-threshold-and-notify", "deployments": [], "key": "cloudwatch__sns__sqs/metric-datapoints-cross-threshold-and-notify", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_metric_datapoints_cross_threshold_and_notify.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.notifications-filtered-out-and-delivered-are-two-sided-for-complementary-subscriptions", "deployments": [], "key": "cloudwatch__sns__sqs/notifications-filtered-out-and-delivered-are-two-sided-for-complementary-subscriptions", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_notifications_filtered_out_and_delivered_are_two_sided_for_complementary_subscriptions.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sns__sqs.sns-topic-policy-deny-cloudwatch-blocks-alarm-notification", "deployments": [], "key": "cloudwatch__sns__sqs/sns-topic-policy-deny-cloudwatch-blocks-alarm-notification", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/cloudwatch__sns__sqs/check_sns_topic_policy_deny_cloudwatch_blocks_alarm_notification.py", "service": "cloudwatch__sns__sqs"} {"check_id": "cloudwatch__sqs.metrics-sqs-delayed-message-counted-only-in-delayed-series", "deployments": [], "key": "cloudwatch__sqs/metrics-sqs-delayed-message-counted-only-in-delayed-series", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudwatch__sqs/check_metrics_sqs_delayed_message_counted_only_in_delayed_series.py", "service": "cloudwatch__sqs"} {"check_id": "cloudwatch__sqs.metrics-sqs-depth-gauges-track-inflight-return-and-delete", "deployments": [], "key": "cloudwatch__sqs/metrics-sqs-depth-gauges-track-inflight-return-and-delete", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudwatch__sqs/check_metrics_sqs_depth_gauges_track_inflight_return_and_delete.py", "service": "cloudwatch__sqs"} {"check_id": "cloudwatch__sqs.metrics-sqs-dlq-redrive-lands-in-dlq-own-series-not-its-sent-count", "deployments": [], "key": "cloudwatch__sqs/metrics-sqs-dlq-redrive-lands-in-dlq-own-series-not-its-sent-count", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudwatch__sqs/check_metrics_sqs_dlq_redrive_lands_in_dlq_own_series_not_its_sent_count.py", "service": "cloudwatch__sqs"} {"check_id": "cloudwatch__sqs.metrics-sqs-never-created-queue-has-no-series-while-idle-queue-reports-zero", "deployments": [], "key": "cloudwatch__sqs/metrics-sqs-never-created-queue-has-no-series-while-idle-queue-reports-zero", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "sqs:CreateQueue", "sqs:DeleteQueue"], "path": "behavioral/cloudwatch__sqs/check_metrics_sqs_never_created_queue_has_no_series_while_idle_queue_reports_zero.py", "service": "cloudwatch__sqs"} {"check_id": "cloudwatch__sqs.metrics-sqs-putmetricdata-into-aws-sqs-namespace-rejected", "deployments": [], "key": "cloudwatch__sqs/metrics-sqs-putmetricdata-into-aws-sqs-namespace-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:SendMessage"], "path": "behavioral/cloudwatch__sqs/check_metrics_sqs_putmetricdata_into_aws_sqs_namespace_rejected.py", "service": "cloudwatch__sqs"} {"check_id": "cloudwatch__sqs.sqs-service-metrics-sum-exactly-the-driven-traffic-per-queue", "deployments": [], "key": "cloudwatch__sqs/sqs-service-metrics-sum-exactly-the-driven-traffic-per-queue", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/cloudwatch__sqs/check_sqs_service_metrics_sum_exactly_the_driven_traffic_per_queue.py", "service": "cloudwatch__sqs"} {"check_id": "cloudwatch__ssm.xsvc-cloudwatch-3-alarm-ssm-opsitem-action-creates-opsitem-and-disabled-twin-blocked", "deployments": [], "key": "cloudwatch__ssm/xsvc-cloudwatch-3-alarm-ssm-opsitem-action-creates-opsitem-and-disabled-twin-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:EnableAlarmActions", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ssm:DeleteOpsItem", "ssm:DescribeOpsItems", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__ssm/check_xsvc_cloudwatch_3_alarm_ssm_opsitem_action_creates_opsitem_and_disabled_twin_blocked.py", "service": "cloudwatch__ssm"} {"check_id": "cloudwatch__stepfunctions.executions-failed-metric-fires-its-alarm-and-notifies-while-the-succeeding-twin-alarm-stays-ok", "deployments": [], "key": "cloudwatch__stepfunctions/executions-failed-metric-fires-its-alarm-and-notifies-while-the-succeeding-twin-alarm-stays-ok", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/cloudwatch__stepfunctions/check_executions_failed_metric_fires_its_alarm_and_notifies_while_the_succeeding_twin_alarm_stays_ok.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.get-metric-statistics-with-end-time-before-start-time-rejected", "deployments": [], "key": "cloudwatch__stepfunctions/get-metric-statistics-with-end-time-before-start-time-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine"], "path": "behavioral/cloudwatch__stepfunctions/check_get_metric_statistics_with_end_time_before_start_time_rejected.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.metrics-states-consumed-capacity-counts-start-execution-api-calls", "deployments": [], "key": "cloudwatch__stepfunctions/metrics-states-consumed-capacity-counts-start-execution-api-calls", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/cloudwatch__stepfunctions/check_metrics_states_consumed_capacity_counts_start_execution_api_calls.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.metrics-states-stream-activity-metrics-attribute-worker-outcomes-to-the-activity-arn-series", "deployments": [], "key": "cloudwatch__stepfunctions/metrics-states-stream-activity-metrics-attribute-worker-outcomes-to-the-activity-arn-series", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/cloudwatch__stepfunctions/check_metrics_states_stream_activity_metrics_attribute_worker_outcomes_to_the_activity_arn_series.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.metrics-states-stream-late-activity-result-rejected-after-task-timeout-and-only-timed-out-moves", "deployments": [], "key": "cloudwatch__stepfunctions/metrics-states-stream-late-activity-result-rejected-after-task-timeout-and-only-timed-out-moves", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/cloudwatch__stepfunctions/check_metrics_states_stream_late_activity_result_rejected_after_task_timeout_and_only_timed_out_moves.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.metrics-states-version-and-alias-count-increase-on-publish-and-alias-create", "deployments": [], "key": "cloudwatch__stepfunctions/metrics-states-version-and-alias-count-increase-on-publish-and-alias-create", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/cloudwatch__stepfunctions/check_metrics_states_version_and_alias_count_increase_on_publish_and_alias_create.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.metrics-states-version-count-unmoved-by-a-rejected-publish-state-machine-version", "deployments": [], "key": "cloudwatch__stepfunctions/metrics-states-version-count-unmoved-by-a-rejected-publish-state-machine-version", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/cloudwatch__stepfunctions/check_metrics_states_version_count_unmoved_by_a_rejected_publish_state_machine_version.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.obs-sfn-1-alias-split-executions-attribute-to-alias-and-routed-version", "deployments": [], "key": "cloudwatch__stepfunctions/obs-sfn-1-alias-split-executions-attribute-to-alias-and-routed-version", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/cloudwatch__stepfunctions/check_obs_sfn_1_alias_split_executions_attribute_to_alias_and_routed_version.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.obs-sfn-1-double-stop-aborts-once-per-execution-and-failed-stays-zero", "deployments": [], "key": "cloudwatch__stepfunctions/obs-sfn-1-double-stop-aborts-once-per-execution-and-failed-stays-zero", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/cloudwatch__stepfunctions/check_obs_sfn_1_double_stop_aborts_once_per_execution_and_failed_stays_zero.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.obs-sfn-1-redrive-to-succeeded-counts-once-and-second-redrive-rejected", "deployments": [], "key": "cloudwatch__stepfunctions/obs-sfn-1-redrive-to-succeeded-counts-once-and-second-redrive-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/cloudwatch__stepfunctions/check_obs_sfn_1_redrive_to_succeeded_counts_once_and_second_redrive_rejected.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.obs-sfn-2-alias-split-executions-attribute-to-alias-and-routed-version-for-express", "deployments": [], "key": "cloudwatch__stepfunctions/obs-sfn-2-alias-split-executions-attribute-to-alias-and-routed-version-for-express", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:StartSyncExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/cloudwatch__stepfunctions/check_obs_sfn_2_alias_split_executions_attribute_to_alias_and_routed_version_for_express.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.obs-sfn-3-express-billed-metrics-equal-summed-billing-details-standard-twin-has-none", "deployments": [], "key": "cloudwatch__stepfunctions/obs-sfn-3-express-billed-metrics-equal-summed-billing-details-standard-twin-has-none", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution", "sts:GetCallerIdentity"], "path": "behavioral/cloudwatch__stepfunctions/check_obs_sfn_3_express_billed_metrics_equal_summed_billing_details_standard_twin_has_none.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__stepfunctions.obs-sfn-3-forged-express-billed-duration-into-aws-states-rejected", "deployments": [], "key": "cloudwatch__stepfunctions/obs-sfn-3-forged-express-billed-duration-into-aws-states-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData", "iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/cloudwatch__stepfunctions/check_obs_sfn_3_forged_express_billed_duration_into_aws_states_rejected.py", "service": "cloudwatch__stepfunctions"} {"check_id": "cloudwatch__wafv2.blocked-and-counted-requests-carry-the-webacl-and-rule-dimensions", "deployments": [], "key": "cloudwatch__wafv2/blocked-and-counted-requests-carry-the-webacl-and-rule-dimensions", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL"], "path": "behavioral/cloudwatch__wafv2/check_blocked_and_counted_requests_carry_the_webacl_and_rule_dimensions.py", "service": "cloudwatch__wafv2"} {"check_id": "cloudwatchomni.access-profile-name-is-unique-within-a-space", "deployments": [], "key": "cloudwatchomni/access-profile-name-is-unique-within-a-space", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateAccessProfile", "cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteAccessProfile", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetAccessProfile", "cloudwatchomni:UpdateAccessProfile", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_access_profile_name_is_unique_within_a_space.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.account-holds-at-most-one-domain", "deployments": [], "key": "cloudwatchomni/account-holds-at-most-one-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:DeleteDomain", "cloudwatchomni:GetDomain", "cloudwatchomni:ListDomains"], "path": "behavioral/cloudwatchomni/check_account_holds_at_most_one_domain.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.account-region-holds-at-most-one-space", "deployments": [], "key": "cloudwatchomni/account-region-holds-at-most-one-space", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:ListSpaces", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_account_region_holds_at_most_one_space.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.alert-requires-an-explicit-assume-access-profile-trust-grant", "deployments": [], "key": "cloudwatchomni/alert-requires-an-explicit-assume-access-profile-trust-grant", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateAccessGrant", "cloudwatchomni:CreateAccessProfile", "cloudwatchomni:CreateAlert", "cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteAccessGrant", "cloudwatchomni:DeleteAccessProfile", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetAccessGrant", "cloudwatchomni:GetAccessProfile", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_alert_requires_an_explicit_assume_access_profile_trust_grant.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.completed-query-results-stay-readable-after-stop", "deployments": [], "key": "cloudwatchomni/completed-query-results-stay-readable-after-stop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuery", "cloudwatchomni:StopTelemetryQuerySession"], "path": "behavioral/cloudwatchomni/check_completed_query_results_stay_readable_after_stop.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.create-view-retry-with-same-client-token-is-refused-as-a-conflict", "deployments": [], "key": "cloudwatchomni/create-view-retry-with-same-client-token-is-refused-as-a-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:GetView"], "path": "behavioral/cloudwatchomni/check_create_view_retry_with_same_client_token_is_refused_as_a_conflict.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.dashboard-names-are-not-unique-within-a-space", "deployments": [], "key": "cloudwatchomni/dashboard-names-are-not-unique-within-a-space", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateOmniDashboard", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteOmniDashboard", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetOmniDashboard", "cloudwatchomni:ListOmniDashboards", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_dashboard_names_are_not_unique_within_a_space.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.deep-link-code-rejects-foreign-redirect-and-long-ttl", "deployments": [], "key": "cloudwatchomni/deep-link-code-rejects-foreign-redirect-and-long-ttl", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateOneTimeDeepLinkCode", "cloudwatchomni:DeleteDomain"], "path": "behavioral/cloudwatchomni/check_deep_link_code_rejects_foreign_redirect_and_long_ttl.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.deep-link-url-carries-its-one-time-code-and-domain", "deployments": [], "key": "cloudwatchomni/deep-link-url-carries-its-one-time-code-and-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateOneTimeDeepLinkCode", "cloudwatchomni:DeleteDomain"], "path": "behavioral/cloudwatchomni/check_deep_link_url_carries_its_one_time_code_and_domain.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.deleted-view-is-no-longer-a-queryable-table", "deployments": [], "key": "cloudwatchomni/deleted-view-is-no-longer-a-queryable-table", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession"], "path": "behavioral/cloudwatchomni/check_deleted_view_is_no_longer_a_queryable_table.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.deleting-a-space-removes-its-profiles-seeded-grants-and-dashboards", "deployments": [], "key": "cloudwatchomni/deleting-a-space-removes-its-profiles-seeded-grants-and-dashboards", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateAccessProfile", "cloudwatchomni:CreateDomain", "cloudwatchomni:CreateOmniDashboard", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetAccessProfile", "cloudwatchomni:GetOmniDashboard", "cloudwatchomni:GetSpace", "cloudwatchomni:ListAccessGrants", "cloudwatchomni:ListDomains", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_deleting_a_space_removes_its_profiles_seeded_grants_and_dashboards.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.deleting-an-access-profile-removes-the-grants-naming-it", "deployments": [], "key": "cloudwatchomni/deleting-an-access-profile-removes-the-grants-naming-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateAccessGrant", "cloudwatchomni:CreateAccessProfile", "cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteAccessGrant", "cloudwatchomni:DeleteAccessProfile", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetAccessGrant", "cloudwatchomni:GetAccessProfile", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_deleting_an_access_profile_removes_the_grants_naming_it.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.domain-name-pattern-and-identity-center-rules-reject-updates", "deployments": [], "key": "cloudwatchomni/domain-name-pattern-and-identity-center-rules-reject-updates", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:DeleteDomain", "cloudwatchomni:GetDomain", "cloudwatchomni:UpdateDomain"], "path": "behavioral/cloudwatchomni/check_domain_name_pattern_and_identity_center_rules_reject_updates.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.domain-rename-moves-its-custom-endpoint-url-only", "deployments": [], "key": "cloudwatchomni/domain-rename-moves-its-custom-endpoint-url-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:DeleteDomain", "cloudwatchomni:GetDomain", "cloudwatchomni:UpdateDomain"], "path": "behavioral/cloudwatchomni/check_domain_rename_moves_its_custom_endpoint_url_only.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.domain-with-a-space-cannot-be-deleted", "deployments": [], "key": "cloudwatchomni/domain-with-a-space-cannot-be-deleted", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetDomain", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_domain_with_a_space_cannot_be_deleted.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.integration-type-is-a-per-account-singleton", "deployments": [], "key": "cloudwatchomni/integration-type-is-a-per-account-singleton", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateIntegration", "cloudwatchomni:DeleteIntegration", "cloudwatchomni:GetIntegration", "cloudwatchomni:ListIntegrations"], "path": "behavioral/cloudwatchomni/check_integration_type_is_a_per_account_singleton.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.list-access-grants-returns-only-grants-matching-every-filter", "deployments": [], "key": "cloudwatchomni/list-access-grants-returns-only-grants-matching-every-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateAccessGrant", "cloudwatchomni:CreateAccessProfile", "cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteAccessGrant", "cloudwatchomni:DeleteAccessProfile", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:ListAccessGrants", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_list_access_grants_returns_only_grants_matching_every_filter.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.omni-dashboard-body-must-be-a-panels-document", "deployments": [], "key": "cloudwatchomni/omni-dashboard-body-must-be-a-panels-document", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateOmniDashboard", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteOmniDashboard", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetOmniDashboard", "cloudwatchomni:ListOmniDashboards", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_omni_dashboard_body_must_be_a_panels_document.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.query-over-the-default-dataset-needs-a-bounded-time-range", "deployments": [], "key": "cloudwatchomni/query-over-the-default-dataset-needs-a-bounded-time-range", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession"], "path": "behavioral/cloudwatchomni/check_query_over_the_default_dataset_needs_a_bounded_time_range.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.query-without-a-from-clause-is-rejected", "deployments": [], "key": "cloudwatchomni/query-without-a-from-clause-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession"], "path": "behavioral/cloudwatchomni/check_query_without_a_from_clause_is_rejected.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.redefining-a-view-changes-what-a-query-over-it-binds", "deployments": [], "key": "cloudwatchomni/redefining-a-view-changes-what-a-query-over-it-binds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession", "cloudwatchomni:UpdateView"], "path": "behavioral/cloudwatchomni/check_redefining_a_view_changes_what_a_query_over_it_binds.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.search-principals-requires-an-identity-center-domain", "deployments": [], "key": "cloudwatchomni/search-principals-requires-an-identity-center-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:DeleteDomain", "cloudwatchomni:GetDomain", "cloudwatchomni:SearchPrincipals"], "path": "behavioral/cloudwatchomni/check_search_principals_requires_an_identity_center_domain.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.service-managed-profile-and-grant-cannot-be-changed", "deployments": [], "key": "cloudwatchomni/service-managed-profile-and-grant-cannot-be-changed", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteAccessGrant", "cloudwatchomni:DeleteAccessProfile", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetAccessProfile", "cloudwatchomni:ListAccessGrants", "cloudwatchomni:ListAccessProfiles", "cloudwatchomni:UpdateAccessProfile", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_service_managed_profile_and_grant_cannot_be_changed.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.session-name-is-unique-among-open-sessions", "deployments": [], "key": "cloudwatchomni/session-name-is-unique-among-open-sessions", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:ListTelemetryQuerySessions", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession"], "path": "behavioral/cloudwatchomni/check_session_name_is_unique_among_open_sessions.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.space-creation-seeds-service-managed-profile-and-grants", "deployments": [], "key": "cloudwatchomni/space-creation-seeds-service-managed-profile-and-grants", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:ListAccessGrants", "cloudwatchomni:ListAccessProfiles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_space_creation_seeds_service_managed_profile_and_grants.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.stopped-session-leaves-the-list-and-refuses-new-queries", "deployments": [], "key": "cloudwatchomni/stopped-session-leaves-the-list-and-refuses-new-queries", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:ListTelemetryQuerySessions", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession"], "path": "behavioral/cloudwatchomni/check_stopped_session_leaves_the_list_and_refuses_new_queries.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.update-dashboard-rejects-invalid-body-and-keeps-stored-body", "deployments": [], "key": "cloudwatchomni/update-dashboard-rejects-invalid-body-and-keeps-stored-body", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateOmniDashboard", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteOmniDashboard", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetOmniDashboard", "cloudwatchomni:UpdateOmniDashboard", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_update_dashboard_rejects_invalid_body_and_keeps_stored_body.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.update-space-name-only-keeps-role-and-encryption", "deployments": [], "key": "cloudwatchomni/update-space-name-only-keeps-role-and-encryption", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateDomain", "cloudwatchomni:CreateSpace", "cloudwatchomni:DeleteDomain", "cloudwatchomni:DeleteSpace", "cloudwatchomni:GetSpace", "cloudwatchomni:ListSpaces", "cloudwatchomni:UpdateSpace", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cloudwatchomni/check_update_space_name_only_keeps_role_and_encryption.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.update-view-description-only-preserves-definition-and-identity", "deployments": [], "key": "cloudwatchomni/update-view-description-only-preserves-definition-and-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:GetView", "cloudwatchomni:UpdateView"], "path": "behavioral/cloudwatchomni/check_update_view_description_only_preserves_definition_and_identity.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.update-view-rejects-unparsable-sql-and-keeps-the-stored-definition", "deployments": [], "key": "cloudwatchomni/update-view-rejects-unparsable-sql-and-keeps-the-stored-definition", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:GetView", "cloudwatchomni:UpdateView"], "path": "behavioral/cloudwatchomni/check_update_view_rejects_unparsable_sql_and_keeps_the_stored_definition.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.view-definition-must-be-exactly-one-select-statement", "deployments": [], "key": "cloudwatchomni/view-definition-must-be-exactly-one-select-statement", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:ListViews"], "path": "behavioral/cloudwatchomni/check_view_definition_must_be_exactly_one_select_statement.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.view-definition-must-parse-as-sql", "deployments": [], "key": "cloudwatchomni/view-definition-must-parse-as-sql", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:GetView", "cloudwatchomni:ListViews"], "path": "behavioral/cloudwatchomni/check_view_definition_must_parse_as_sql.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.view-name-is-reusable-only-after-the-view-is-deleted", "deployments": [], "key": "cloudwatchomni/view-name-is-reusable-only-after-the-view-is-deleted", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:GetView"], "path": "behavioral/cloudwatchomni/check_view_name_is_reusable_only_after_the_view_is_deleted.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni.view-without-a-datastore-is-stored-but-fails-to-bind-in-a-query", "deployments": [], "key": "cloudwatchomni/view-without-a-datastore-is-stored-but-fails-to-bind-in-a-query", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatchomni:CreateView", "cloudwatchomni:DeleteView", "cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession"], "path": "behavioral/cloudwatchomni/check_view_without_a_datastore_is_stored_but_fails_to_bind_in_a_query.py", "service": "cloudwatchomni"} {"check_id": "cloudwatchomni__logs__observabilityadmin.log-events-forwarded-by-the-dataset-integration-query-back-exactly", "deployments": [], "key": "cloudwatchomni__logs__observabilityadmin/log-events-forwarded-by-the-dataset-integration-query-back-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents", "observabilityadmin:CreateDatasetIntegration", "observabilityadmin:DeleteDatasetIntegration", "observabilityadmin:GetDatasetIntegration", "observabilityadmin:ListDatasetIntegrations"], "path": "behavioral/cloudwatchomni__logs__observabilityadmin/check_log_events_forwarded_by_the_dataset_integration_query_back_exactly.py", "service": "cloudwatchomni__logs__observabilityadmin"} {"check_id": "cloudwatchomni__logs__observabilityadmin.log-group-the-integration-role-does-not-grant-is-not-forwarded", "deployments": [], "key": "cloudwatchomni__logs__observabilityadmin/log-group-the-integration-role-does-not-grant-is-not-forwarded", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatchomni:GetTelemetryQueryResults", "cloudwatchomni:StartTelemetryQuery", "cloudwatchomni:StartTelemetryQuerySession", "cloudwatchomni:StopTelemetryQuerySession", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents", "observabilityadmin:CreateDatasetIntegration", "observabilityadmin:DeleteDatasetIntegration", "observabilityadmin:ListDatasetIntegrations"], "path": "behavioral/cloudwatchomni__logs__observabilityadmin/check_log_group_the_integration_role_does_not_grant_is_not_forwarded.py", "service": "cloudwatchomni__logs__observabilityadmin"} {"check_id": "codeartifact.associate-second-external-connection-when-limit-reached-blocked", "deployments": [], "key": "codeartifact/associate-second-external-connection-when-limit-reached-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeRepository", "codeartifact:DisassociateExternalConnection"], "path": "behavioral/codeartifact/check_associate_second_external_connection_when_limit_reached_blocked.py", "service": "codeartifact"} {"check_id": "codeartifact.authorization-token-custom-duration-sets-expiration", "deployments": [], "key": "codeartifact/authorization-token-custom-duration-sets-expiration", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_authorization_token_custom_duration_sets_expiration.py", "service": "codeartifact"} {"check_id": "codeartifact.authorization-token-default-duration-12h", "deployments": [], "key": "codeartifact/authorization-token-default-duration-12h", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_authorization_token_default_duration_12h.py", "service": "codeartifact"} {"check_id": "codeartifact.authorization-token-duration-below-minimum-rejected", "deployments": [], "key": "codeartifact/authorization-token-duration-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:GetAuthorizationToken"], "path": "behavioral/codeartifact/check_authorization_token_duration_below_minimum_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.authorization-token-duration-out-of-range-rejected", "deployments": [], "key": "codeartifact/authorization-token-duration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:GetAuthorizationToken"], "path": "behavioral/codeartifact/check_authorization_token_duration_out_of_range_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.authorization-token-duration-shapes-expiry", "deployments": [], "key": "codeartifact/authorization-token-duration-shapes-expiry", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_authorization_token_duration_shapes_expiry.py", "service": "codeartifact"} {"check_id": "codeartifact.authorization-token-minimum-duration-expiration-and-use", "deployments": [], "key": "codeartifact/authorization-token-minimum-duration-expiration-and-use", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_authorization_token_minimum_duration_expiration_and_use.py", "service": "codeartifact"} {"check_id": "codeartifact.authorization-token-needs-sts-bearer-permission-that-a-domain-policy-cannot-grant", "deployments": [], "key": "codeartifact/authorization-token-needs-sts-bearer-permission-that-a-domain-policy-cannot-grant", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteDomainPermissionsPolicy", "codeartifact:DeleteRepository", "codeartifact:DescribeDomain", "codeartifact:DescribeRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:PutDomainPermissionsPolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_authorization_token_needs_sts_bearer_permission_that_a_domain_policy_cannot_grant.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-archived-version-tarball-download-rejected-while-published-sibling-serves", "deployments": [], "key": "codeartifact/codeartifact-archived-version-tarball-download-rejected-while-published-sibling-serves", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_codeartifact_archived_version_tarball_download_rejected_while_published_sibling_serves.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-concurrent-publish-of-one-version-lets-exactly-one-content-win", "deployments": [], "key": "codeartifact/codeartifact-concurrent-publish-of-one-version-lets-exactly-one-content-win", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_codeartifact_concurrent_publish_of_one_version_lets_exactly_one_content_win.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-copy-package-versions-preserves-asset-bytes-and-digest", "deployments": [], "key": "codeartifact/codeartifact-copy-package-versions-preserves-asset-bytes-and-digest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CopyPackageVersions", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetPackageVersionAsset", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_codeartifact_copy_package_versions_preserves_asset_bytes_and_digest.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-external-connection-upstream-fetch-then-disassociate-blocks", "deployments": [], "key": "codeartifact/codeartifact-external-connection-upstream-fetch-then-disassociate-blocks", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DisassociateExternalConnection", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionAsset", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions"], "path": "behavioral/codeartifact/check_codeartifact_external_connection_upstream_fetch_then_disassociate_blocks.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-npm-publish-and-install-through-repository-endpoint", "deployments": [], "key": "codeartifact/codeartifact-npm-publish-and-install-through-repository-endpoint", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions"], "path": "behavioral/codeartifact/check_codeartifact_npm_publish_and_install_through_repository_endpoint.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-package-origin-configuration-blocks-direct-publish", "deployments": [], "key": "codeartifact/codeartifact-package-origin-configuration-blocks-direct-publish", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:GetPackageVersionAsset", "codeartifact:PublishPackageVersion", "codeartifact:PutPackageOriginConfiguration"], "path": "behavioral/codeartifact/check_codeartifact_package_origin_configuration_blocks_direct_publish.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-package-origin-configuration-blocks-upstream-ingestion", "deployments": [], "key": "codeartifact/codeartifact-package-origin-configuration-blocks-upstream-ingestion", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionAsset", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions", "codeartifact:PutPackageOriginConfiguration"], "path": "behavioral/codeartifact/check_codeartifact_package_origin_configuration_blocks_upstream_ingestion.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-publish-with-mismatched-asset-sha256-rejected-and-version-absent", "deployments": [], "key": "codeartifact/codeartifact-publish-with-mismatched-asset-sha256-rejected-and-version-absent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_codeartifact_publish_with_mismatched_asset_sha256_rejected_and_version_absent.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-pypi-simple-index-serves-a-published-wheel", "deployments": [], "key": "codeartifact/codeartifact-pypi-simple-index-serves-a-published-wheel", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_codeartifact_pypi_simple_index_serves_a_published_wheel.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-repository-policy-denying-read-blocks-the-endpoint-and-a-sibling-still-serves", "deployments": [], "key": "codeartifact/codeartifact-repository-policy-denying-read-blocks-the-endpoint-and-a-sibling-still-serves", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DeleteRepositoryPermissionsPolicy", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionAsset", "codeartifact:GetRepositoryEndpoint", "codeartifact:GetRepositoryPermissionsPolicy", "codeartifact:PutRepositoryPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_codeartifact_repository_policy_denying_read_blocks_the_endpoint_and_a_sibling_still_serves.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-repository-policy-stale-revision-write-rejected-and-document-unchanged", "deployments": [], "key": "codeartifact/codeartifact-repository-policy-stale-revision-write-rejected-and-document-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DeleteRepositoryPermissionsPolicy", "codeartifact:GetRepositoryPermissionsPolicy", "codeartifact:PutRepositoryPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_codeartifact_repository_policy_stale_revision_write_rejected_and_document_unchanged.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-scoped-npm-package-round-trips-under-its-url-encoded-namespace", "deployments": [], "key": "codeartifact/codeartifact-scoped-npm-package-round-trips-under-its-url-encoded-namespace", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_codeartifact_scoped_npm_package_round_trips_under_its_url_encoded_namespace.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-unlisted-version-is-hidden-from-the-packument-but-still-downloadable", "deployments": [], "key": "codeartifact/codeartifact-unlisted-version-is-hidden-from-the-packument-but-still-downloadable", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_codeartifact_unlisted_version_is_hidden_from_the_packument_but_still_downloadable.py", "service": "codeartifact"} {"check_id": "codeartifact.codeartifact-upstream-chain-resolves-through-two-hops-and-caches-in-the-front-repository", "deployments": [], "key": "codeartifact/codeartifact-upstream-chain-resolves-through-two-hops-and-caches-in-the-front-repository", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionAsset", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions"], "path": "behavioral/codeartifact/check_codeartifact_upstream_chain_resolves_through_two_hops_and_caches_in_the_front_repository.py", "service": "codeartifact"} {"check_id": "codeartifact.concurrent-publish-of-one-version-admits-one-writer", "deployments": [], "key": "codeartifact/concurrent-publish-of-one-version-admits-one-writer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersionAssets", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_concurrent_publish_of_one_version_admits_one_writer.py", "service": "codeartifact"} {"check_id": "codeartifact.copy-from-upstream-without-include-flag-rejected", "deployments": [], "key": "codeartifact/copy-from-upstream-without-include-flag-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:CopyPackageVersions", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackages", "codeartifact:PublishPackageVersion", "codeartifact:UpdateRepository"], "path": "behavioral/codeartifact/check_copy_from_upstream_without_include_flag_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.copy-package-versions-preserves-revision-and-assets", "deployments": [], "key": "codeartifact/copy-package-versions-preserves-revision-and-assets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CopyPackageVersions", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersionAssets", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_copy_package_versions_preserves_revision_and_assets.py", "service": "codeartifact"} {"check_id": "codeartifact.create-domain-duplicate-name-rejected", "deployments": [], "key": "codeartifact/create-domain-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:DescribeDomain"], "path": "behavioral/codeartifact/check_create_domain_duplicate_name_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.create-domain-invalid-name-format-rejected", "deployments": [], "key": "codeartifact/create-domain-invalid-name-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:DescribeDomain"], "path": "behavioral/codeartifact/check_create_domain_invalid_name_format_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.create-repository-duplicate-does-not-clobber", "deployments": [], "key": "codeartifact/create-repository-duplicate-does-not-clobber", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeRepository", "codeartifact:ListRepositoriesInDomain", "codeartifact:UpdateRepository"], "path": "behavioral/codeartifact/check_create_repository_duplicate_does_not_clobber.py", "service": "codeartifact"} {"check_id": "codeartifact.create-repository-duplicate-name-rejected", "deployments": [], "key": "codeartifact/create-repository-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeRepository"], "path": "behavioral/codeartifact/check_create_repository_duplicate_name_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.cross-domain-unauthorized-access-denied", "deployments": [], "key": "codeartifact/cross-domain-unauthorized-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetRepositoryEndpoint", "codeartifact:PutDomainPermissionsPolicy", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_cross_domain_unauthorized_access_denied.py", "service": "codeartifact"} {"check_id": "codeartifact.delete-domain-permissions-policy-revision-mismatch-conflict", "deployments": [], "key": "codeartifact/delete-domain-permissions-policy-revision-mismatch-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:DeleteDomainPermissionsPolicy", "codeartifact:GetDomainPermissionsPolicy", "codeartifact:PutDomainPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_delete_domain_permissions_policy_revision_mismatch_conflict.py", "service": "codeartifact"} {"check_id": "codeartifact.delete-domain-with-repositories-rejected", "deployments": [], "key": "codeartifact/delete-domain-with-repositories-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeDomain"], "path": "behavioral/codeartifact/check_delete_domain_with_repositories_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.delete-repository-permissions-policy-revision-mismatch-conflict", "deployments": [], "key": "codeartifact/delete-repository-permissions-policy-revision-mismatch-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DeleteRepositoryPermissionsPolicy", "codeartifact:GetRepositoryPermissionsPolicy", "codeartifact:PutRepositoryPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_delete_repository_permissions_policy_revision_mismatch_conflict.py", "service": "codeartifact"} {"check_id": "codeartifact.deleted-package-version-frees-the-version-number", "deployments": [], "key": "codeartifact/deleted-package-version-frees-the-version-number", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeletePackageVersions", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_deleted_package_version_frees_the_version_number.py", "service": "codeartifact"} {"check_id": "codeartifact.deploy-domain-behaves-after-cfn-create", "deployments": [], "key": "codeartifact/deploy-domain-behaves-after-cfn-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codeartifact:CreateRepository", "codeartifact:DeleteRepository", "codeartifact:DescribeDomain", "codeartifact:DescribeRepository"], "path": "behavioral/codeartifact/check_deploy_domain_behaves_after_cfn_create.py", "service": "codeartifact"} {"check_id": "codeartifact.deploy-repository-behaves-with-external-connection", "deployments": [], "key": "codeartifact/deploy-repository-behaves-with-external-connection", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codeartifact:AssociateExternalConnection", "codeartifact:DescribeRepository", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_deploy_repository_behaves_with_external_connection.py", "service": "codeartifact"} {"check_id": "codeartifact.describe-absent-package-version-reports-the-package", "deployments": [], "key": "codeartifact/describe-absent-package-version-reports-the-package", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:DescribePackageVersion", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_describe_absent_package_version_reports_the_package.py", "service": "codeartifact"} {"check_id": "codeartifact.describe-domain-returns-404-after-delete", "deployments": [], "key": "codeartifact/describe-domain-returns-404-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DescribeDomain"], "path": "behavioral/codeartifact/check_describe_domain_returns_404_after_delete.py", "service": "codeartifact"} {"check_id": "codeartifact.describe-repository-missing-permission-denied", "deployments": [], "key": "codeartifact/describe-repository-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeRepository", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_describe_repository_missing_permission_denied.py", "service": "codeartifact"} {"check_id": "codeartifact.disassociate-unassociated-external-connection-rejected", "deployments": [], "key": "codeartifact/disassociate-unassociated-external-connection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeRepository", "codeartifact:DisassociateExternalConnection"], "path": "behavioral/codeartifact/check_disassociate_unassociated_external_connection_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.disposed-package-version-is-terminal", "deployments": [], "key": "codeartifact/disposed-package-version-is-terminal", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:DisposePackageVersions", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_disposed_package_version_is_terminal.py", "service": "codeartifact"} {"check_id": "codeartifact.domain-asset-size-bytes-counts-each-asset-once-across-repositories", "deployments": [], "key": "codeartifact/domain-asset-size-bytes-counts-each-asset-once-across-repositories", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeDomain", "codeartifact:DescribeRepository"], "path": "behavioral/codeartifact/check_domain_asset_size_bytes_counts_each_asset_once_across_repositories.py", "service": "codeartifact"} {"check_id": "codeartifact.domain-delete-with-repositories-rejected", "deployments": [], "key": "codeartifact/domain-delete-with-repositories-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeDomain", "codeartifact:DescribeRepository"], "path": "behavioral/codeartifact/check_domain_delete_with_repositories_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.domain-lifecycle-create-active-delete", "deployments": [], "key": "codeartifact/domain-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:DescribeDomain", "codeartifact:PutDomainPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_domain_lifecycle_create_active_delete.py", "service": "codeartifact"} {"check_id": "codeartifact.domain-permissions-policy-document-json-preserved", "deployments": [], "key": "codeartifact/domain-permissions-policy-document-json-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:DeleteDomainPermissionsPolicy", "codeartifact:GetDomainPermissionsPolicy", "codeartifact:PutDomainPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_domain_permissions_policy_document_json_preserved.py", "service": "codeartifact"} {"check_id": "codeartifact.domain-permissions-policy-server-enforced-on-repository-actions", "deployments": [], "key": "codeartifact/domain-permissions-policy-server-enforced-on-repository-actions", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeDomain", "codeartifact:ListRepositoriesInDomain", "codeartifact:PutDomainPermissionsPolicy", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_domain_permissions_policy_server_enforced_on_repository_actions.py", "service": "codeartifact"} {"check_id": "codeartifact.domain-policy-deny-overrides-repository-allow", "deployments": [], "key": "codeartifact/domain-policy-deny-overrides-repository-allow", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteDomainPermissionsPolicy", "codeartifact:DeleteRepository", "codeartifact:DeleteRepositoryPermissionsPolicy", "codeartifact:GetRepositoryPermissionsPolicy", "codeartifact:ListPackages", "codeartifact:PutDomainPermissionsPolicy", "codeartifact:PutRepositoryPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_domain_policy_deny_overrides_repository_allow.py", "service": "codeartifact"} {"check_id": "codeartifact.domain-tags-survive-repository-lifecycle", "deployments": [], "key": "codeartifact/domain-tags-survive-repository-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:ListTagsForResource", "codeartifact:TagResource", "codeartifact:UntagResource"], "path": "behavioral/codeartifact/check_domain_tags_survive_repository_lifecycle.py", "service": "codeartifact"} {"check_id": "codeartifact.e2e-external-connection-upstream-fetch-then-disassociate-blocks", "deployments": [], "key": "codeartifact/e2e-external-connection-upstream-fetch-then-disassociate-blocks", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DisassociateExternalConnection", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionAsset", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersionAssets", "codeartifact:ListPackageVersions"], "path": "behavioral/codeartifact/check_e2e_external_connection_upstream_fetch_then_disassociate_blocks.py", "service": "codeartifact"} {"check_id": "codeartifact.e2e-publish-fetch-delete-package-version", "deployments": [], "key": "codeartifact/e2e-publish-fetch-delete-package-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackageVersions", "codeartifact:DeleteRepository", "codeartifact:DescribeDomain", "codeartifact:DescribeRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionAsset", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:TagResource", "codeartifact:UpdateRepository"], "path": "behavioral/codeartifact/check_e2e_publish_fetch_delete_package_version.py", "service": "codeartifact"} {"check_id": "codeartifact.external-connection-caches-fetched-package", "deployments": [], "key": "codeartifact/external-connection-caches-fetched-package", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:DisassociateExternalConnection", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions"], "path": "behavioral/codeartifact/check_external_connection_caches_fetched_package.py", "service": "codeartifact"} {"check_id": "codeartifact.generic-asset-roundtrip-is-byte-exact", "deployments": [], "key": "codeartifact/generic-asset-roundtrip-is-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersionAssets", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_generic_asset_roundtrip_is_byte_exact.py", "service": "codeartifact"} {"check_id": "codeartifact.get-domain-permissions-policy-unset-not-found", "deployments": [], "key": "codeartifact/get-domain-permissions-policy-unset-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:DeleteDomainPermissionsPolicy", "codeartifact:GetDomainPermissionsPolicy", "codeartifact:PutDomainPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_get_domain_permissions_policy_unset_not_found.py", "service": "codeartifact"} {"check_id": "codeartifact.get-package-version-asset-after-disposal-blocked", "deployments": [], "key": "codeartifact/get-package-version-asset-after-disposal-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:DisposePackageVersions", "codeartifact:GetPackageVersionAsset", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_get_package_version_asset_after_disposal_blocked.py", "service": "codeartifact"} {"check_id": "codeartifact.ingested-package-defaults-to-publish-block-and-origin-type-partitions-the-versions", "deployments": [], "key": "codeartifact/ingested-package-defaults-to-publish-block-and-origin-type-partitions-the-versions", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:DescribePackageVersion", "codeartifact:DisassociateExternalConnection", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions", "codeartifact:PutPackageOriginConfiguration"], "path": "behavioral/codeartifact/check_ingested_package_defaults_to_publish_block_and_origin_type_partitions_the_versions.py", "service": "codeartifact"} {"check_id": "codeartifact.list-package-version-dependencies-preserves-declared-order", "deployments": [], "key": "codeartifact/list-package-version-dependencies-preserves-declared-order", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersionDependencies"], "path": "behavioral/codeartifact/check_list_package_version_dependencies_preserves_declared_order.py", "service": "codeartifact"} {"check_id": "codeartifact.list-package-versions-returns-newest-first", "deployments": [], "key": "codeartifact/list-package-versions-returns-newest-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_list_package_versions_returns_newest_first.py", "service": "codeartifact"} {"check_id": "codeartifact.list-packages-origin-control-prefix-and-format-filters-partition-the-repository", "deployments": [], "key": "codeartifact/list-packages-origin-control-prefix-and-format-filters-partition-the-repository", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:ListPackages", "codeartifact:PublishPackageVersion", "codeartifact:PutPackageOriginConfiguration"], "path": "behavioral/codeartifact/check_list_packages_origin_control_prefix_and_format_filters_partition_the_repository.py", "service": "codeartifact"} {"check_id": "codeartifact.npm-client-installs-a-semver-range-and-verifies-integrity-against-the-repository", "deployments": [], "key": "codeartifact/npm-client-installs-a-semver-range-and-verifies-integrity-against-the-repository", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionAsset", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersionAssets", "codeartifact:ListPackageVersions"], "path": "behavioral/codeartifact/check_npm_client_installs_a_semver_range_and_verifies_integrity_against_the_repository.py", "service": "codeartifact"} {"check_id": "codeartifact.package-delete-cascades-to-versions", "deployments": [], "key": "codeartifact/package-delete-cascades-to-versions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_package_delete_cascades_to_versions.py", "service": "codeartifact"} {"check_id": "codeartifact.package-group-allowed-repository-update-without-mode-rejected", "deployments": [], "key": "codeartifact/package-group-allowed-repository-update-without-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreatePackageGroup", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackageGroup", "codeartifact:DeleteRepository", "codeartifact:DescribePackageGroup", "codeartifact:ListAllowedRepositoriesForGroup", "codeartifact:UpdatePackageGroupOriginConfiguration"], "path": "behavioral/codeartifact/check_package_group_allowed_repository_update_without_mode_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.package-group-association-picks-most-specific-pattern", "deployments": [], "key": "codeartifact/package-group-association-picks-most-specific-pattern", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreatePackageGroup", "codeartifact:DeleteDomain", "codeartifact:DeletePackageGroup", "codeartifact:GetAssociatedPackageGroup"], "path": "behavioral/codeartifact/check_package_group_association_picks_most_specific_pattern.py", "service": "codeartifact"} {"check_id": "codeartifact.package-group-lifecycle-create-active-delete", "deployments": [], "key": "codeartifact/package-group-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreatePackageGroup", "codeartifact:DeleteDomain", "codeartifact:DeletePackageGroup", "codeartifact:DescribePackageGroup"], "path": "behavioral/codeartifact/check_package_group_lifecycle_create_active_delete.py", "service": "codeartifact"} {"check_id": "codeartifact.package-group-origin-configuration-inherited-by-subgroups", "deployments": [], "key": "codeartifact/package-group-origin-configuration-inherited-by-subgroups", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreatePackageGroup", "codeartifact:DeleteDomain", "codeartifact:DeletePackageGroup", "codeartifact:DescribePackageGroup", "codeartifact:ListSubPackageGroups", "codeartifact:UpdatePackageGroupOriginConfiguration"], "path": "behavioral/codeartifact/check_package_group_origin_configuration_inherited_by_subgroups.py", "service": "codeartifact"} {"check_id": "codeartifact.package-group-origin-restriction-inherits-from-parent", "deployments": [], "key": "codeartifact/package-group-origin-restriction-inherits-from-parent", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreatePackageGroup", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackageGroup", "codeartifact:DeleteRepository", "codeartifact:DescribePackageGroup", "codeartifact:ListAllowedRepositoriesForGroup", "codeartifact:UpdatePackageGroupOriginConfiguration"], "path": "behavioral/codeartifact/check_package_group_origin_restriction_inherits_from_parent.py", "service": "codeartifact"} {"check_id": "codeartifact.package-group-reparents-when-intermediate-added", "deployments": [], "key": "codeartifact/package-group-reparents-when-intermediate-added", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreatePackageGroup", "codeartifact:DeleteDomain", "codeartifact:DeletePackageGroup", "codeartifact:DescribePackageGroup", "codeartifact:ListPackageGroups", "codeartifact:ListSubPackageGroups"], "path": "behavioral/codeartifact/check_package_group_reparents_when_intermediate_added.py", "service": "codeartifact"} {"check_id": "codeartifact.package-origin-configuration-blocks-direct-publish", "deployments": [], "key": "codeartifact/package-origin-configuration-blocks-direct-publish", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:DescribePackageVersion", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:PutPackageOriginConfiguration"], "path": "behavioral/codeartifact/check_package_origin_configuration_blocks_direct_publish.py", "service": "codeartifact"} {"check_id": "codeartifact.package-origin-configuration-blocks-publish", "deployments": [], "key": "codeartifact/package-origin-configuration-blocks-publish", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:PutPackageOriginConfiguration"], "path": "behavioral/codeartifact/check_package_origin_configuration_blocks_publish.py", "service": "codeartifact"} {"check_id": "codeartifact.package-origin-configuration-blocks-upstream-ingestion", "deployments": [], "key": "codeartifact/package-origin-configuration-blocks-upstream-ingestion", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionAsset", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions", "codeartifact:PutPackageOriginConfiguration"], "path": "behavioral/codeartifact/check_package_origin_configuration_blocks_upstream_ingestion.py", "service": "codeartifact"} {"check_id": "codeartifact.package-version-asset-binary-blob-byte-equality", "deployments": [], "key": "codeartifact/package-version-asset-binary-blob-byte-equality", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersionAssets", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_package_version_asset_binary_blob_byte_equality.py", "service": "codeartifact"} {"check_id": "codeartifact.package-version-details-are-extracted-from-the-manifest-and-latest-decides-the-display-version", "deployments": [], "key": "codeartifact/package-version-details-are-extracted-from-the-manifest-and-latest-decides-the-display-version", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:ListPackageVersions"], "path": "behavioral/codeartifact/check_package_version_details_are_extracted_from_the_manifest_and_latest_decides_the_display_version.py", "service": "codeartifact"} {"check_id": "codeartifact.package-version-published-time-timestamp-precision-preserved", "deployments": [], "key": "codeartifact/package-version-published-time-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_package_version_published_time_timestamp_precision_preserved.py", "service": "codeartifact"} {"check_id": "codeartifact.package-version-readme-unicode-round-trip", "deployments": [], "key": "codeartifact/package-version-readme-unicode-round-trip", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetPackageVersionReadme", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_package_version_readme_unicode_round_trip.py", "service": "codeartifact"} {"check_id": "codeartifact.package-version-status-lifecycle-publish-to-disposed", "deployments": [], "key": "codeartifact/package-version-status-lifecycle-publish-to-disposed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:DisposePackageVersions", "codeartifact:ListPackageVersionAssets", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_package_version_status_lifecycle_publish_to_disposed.py", "service": "codeartifact"} {"check_id": "codeartifact.package-version-status-progresses-to-archived", "deployments": [], "key": "codeartifact/package-version-status-progresses-to-archived", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_package_version_status_progresses_to_archived.py", "service": "codeartifact"} {"check_id": "codeartifact.package-version-status-transitions-enforced-forward-only", "deployments": [], "key": "codeartifact/package-version-status-transitions-enforced-forward-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:DisposePackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_package_version_status_transitions_enforced_forward_only.py", "service": "codeartifact"} {"check_id": "codeartifact.publish-asset-sha256-mismatch-rejected", "deployments": [], "key": "codeartifact/publish-asset-sha256-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_publish_asset_sha256_mismatch_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.publish-duplicate-immutable-version-rejected", "deployments": [], "key": "codeartifact/publish-duplicate-immutable-version-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackageVersions", "codeartifact:DeleteRepository", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersionAssets", "codeartifact:PublishPackageVersion"], "path": "behavioral/codeartifact/check_publish_duplicate_immutable_version_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.publish-to-read-only-upstream-repository-blocked", "deployments": [], "key": "codeartifact/publish-to-read-only-upstream-repository-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeartifact:AssociateExternalConnection", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackage", "codeartifact:DisassociateExternalConnection", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:PutPackageOriginConfiguration"], "path": "behavioral/codeartifact/check_publish_to_read_only_upstream_repository_blocked.py", "service": "codeartifact"} {"check_id": "codeartifact.put-domain-permissions-policy-stale-revision-conflict", "deployments": [], "key": "codeartifact/put-domain-permissions-policy-stale-revision-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:GetDomainPermissionsPolicy", "codeartifact:PutDomainPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_put_domain_permissions_policy_stale_revision_conflict.py", "service": "codeartifact"} {"check_id": "codeartifact.put-repository-permissions-policy-concurrent-writers-conflict", "deployments": [], "key": "codeartifact/put-repository-permissions-policy-concurrent-writers-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetRepositoryPermissionsPolicy", "codeartifact:PutRepositoryPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_put_repository_permissions_policy_concurrent_writers_conflict.py", "service": "codeartifact"} {"check_id": "codeartifact.repository-endpoint-unauthenticated-fetch-rejected", "deployments": [], "key": "codeartifact/repository-endpoint-unauthenticated-fetch-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint"], "path": "behavioral/codeartifact/check_repository_endpoint_unauthenticated_fetch_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.repository-lifecycle-create-active-delete", "deployments": [], "key": "codeartifact/repository-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeRepository"], "path": "behavioral/codeartifact/check_repository_lifecycle_create_active_delete.py", "service": "codeartifact"} {"check_id": "codeartifact.repository-permissions-policy-document-json-preserved", "deployments": [], "key": "codeartifact/repository-permissions-policy-document-json-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DeleteRepositoryPermissionsPolicy", "codeartifact:GetRepositoryPermissionsPolicy", "codeartifact:PutRepositoryPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_repository_permissions_policy_document_json_preserved.py", "service": "codeartifact"} {"check_id": "codeartifact.repository-permissions-policy-enforced-for-cross-principal-access", "deployments": [], "key": "codeartifact/repository-permissions-policy-enforced-for-cross-principal-access", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeRepository", "codeartifact:GetRepositoryEndpoint", "codeartifact:PutRepositoryPermissionsPolicy", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_repository_permissions_policy_enforced_for_cross_principal_access.py", "service": "codeartifact"} {"check_id": "codeartifact.repository-policy-deny-scopes-to-the-named-action", "deployments": [], "key": "codeartifact/repository-policy-deny-scopes-to-the-named-action", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DeleteRepositoryPermissionsPolicy", "codeartifact:DescribePackageVersion", "codeartifact:DescribeRepository", "codeartifact:ListPackages", "codeartifact:PublishPackageVersion", "codeartifact:PutRepositoryPermissionsPolicy", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_repository_policy_deny_scopes_to_the_named_action.py", "service": "codeartifact"} {"check_id": "codeartifact.repository-policy-revision-guards-concurrent-writes", "deployments": [], "key": "codeartifact/repository-policy-revision-guards-concurrent-writes", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:DeleteDomainPermissionsPolicy", "codeartifact:GetDomainPermissionsPolicy", "codeartifact:PutDomainPermissionsPolicy"], "path": "behavioral/codeartifact/check_repository_policy_revision_guards_concurrent_writes.py", "service": "codeartifact"} {"check_id": "codeartifact.tag-resource-quota-exceeded-rejected", "deployments": [], "key": "codeartifact/tag-resource-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:ListTagsForResource", "codeartifact:TagResource", "codeartifact:UntagResource"], "path": "behavioral/codeartifact/check_tag_resource_quota_exceeded_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.tag-value-unicode-preserved-round-trip", "deployments": [], "key": "codeartifact/tag-value-unicode-preserved-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:DeleteDomain", "codeartifact:ListTagsForResource", "codeartifact:TagResource"], "path": "behavioral/codeartifact/check_tag_value_unicode_preserved_round_trip.py", "service": "codeartifact"} {"check_id": "codeartifact.unfinished-version-is-incomplete-until-the-final-asset-closes-it-and-cannot-reopen", "deployments": [], "key": "codeartifact/unfinished-version-is-incomplete-until-the-final-asset-closes-it-and-cannot-reopen", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetPackageVersionAsset", "codeartifact:ListPackageVersionAssets", "codeartifact:ListPackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_unfinished_version_is_incomplete_until_the_final_asset_closes_it_and_cannot_reopen.py", "service": "codeartifact"} {"check_id": "codeartifact.update-package-version-status-invalid-target-rejected", "deployments": [], "key": "codeartifact/update-package-version-status-invalid-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:DisposePackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_update_package_version_status_invalid_target_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.update-status-expected-status-mismatch-rejected", "deployments": [], "key": "codeartifact/update-status-expected-status-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:PublishPackageVersion", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_update_status_expected_status_mismatch_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.update-status-to-disposed-rejected", "deployments": [], "key": "codeartifact/update-status-to-disposed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:DisposePackageVersions", "codeartifact:PublishPackageVersion", "codeartifact:UpdatePackageVersionsStatus"], "path": "behavioral/codeartifact/check_update_status_to_disposed_rejected.py", "service": "codeartifact"} {"check_id": "codeartifact.upstream-order-decides-resolved-version", "deployments": [], "key": "codeartifact/upstream-order-decides-resolved-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeartifact:CopyPackageVersions", "codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetPackageVersionAsset", "codeartifact:PublishPackageVersion", "codeartifact:UpdateRepository"], "path": "behavioral/codeartifact/check_upstream_order_decides_resolved_version.py", "service": "codeartifact"} {"check_id": "codeartifact.zero-duration-token-expires-with-the-role-session-while-a-long-duration-outlives-it", "deployments": [], "key": "codeartifact/zero-duration-token-expires-with-the-role-session-while-a-long-duration-outlives-it", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeleteRepository", "codeartifact:DescribeDomain", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact/check_zero_duration_token_expires_with_the_role_session_while_a_long_duration_outlives_it.py", "service": "codeartifact"} {"check_id": "codeartifact__events__sqs.publish-and-upstream-retention-each-emit-a-package-version-state-change-event", "deployments": [], "key": "codeartifact__events__sqs/publish-and-upstream-retention-each-emit-a-package-version-state-change-event", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codeartifact:CreateDomain", "codeartifact:CreateRepository", "codeartifact:DeleteDomain", "codeartifact:DeletePackage", "codeartifact:DeleteRepository", "codeartifact:DescribePackageVersion", "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codeartifact__events__sqs/check_publish_and_upstream_retention_each_emit_a_package_version_state_change_event.py", "service": "codeartifact__events__sqs"} {"check_id": "codebuild.batch-delete-builds-empty-ids-rejected", "deployments": [], "key": "codebuild/batch-delete-builds-empty-ids-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_batch_delete_builds_empty_ids_rejected.py", "service": "codebuild"} {"check_id": "codebuild.batch-delete-builds-partial-failure-isolated", "deployments": [], "key": "codebuild/batch-delete-builds-partial-failure-isolated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_batch_delete_builds_partial_failure_isolated.py", "service": "codebuild"} {"check_id": "codebuild.batch-get-builds-id-limit-and-not-found-partition", "deployments": [], "key": "codebuild/batch-get-builds-id-limit-and-not-found-partition", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetBuilds"], "path": "behavioral/codebuild/check_batch_get_builds_id_limit_and_not_found_partition.py", "service": "codebuild"} {"check_id": "codebuild.batch-get-builds-invalid-id-format-rejected", "deployments": [], "key": "codebuild/batch-get-builds-invalid-id-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetBuilds"], "path": "behavioral/codebuild/check_batch_get_builds_invalid_id_format_rejected.py", "service": "codebuild"} {"check_id": "codebuild.batch-get-fleets-invalid-arn-rejected", "deployments": [], "key": "codebuild/batch-get-fleets-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetFleets"], "path": "behavioral/codebuild/check_batch_get_fleets_invalid_arn_rejected.py", "service": "codebuild"} {"check_id": "codebuild.batch-get-projects-absent-projects-not-found", "deployments": [], "key": "codebuild/batch-get-projects-absent-projects-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_batch_get_projects_absent_projects_not_found.py", "service": "codebuild"} {"check_id": "codebuild.batch-get-reports-invalid-arn", "deployments": [], "key": "codebuild/batch-get-reports-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetReports", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_batch_get_reports_invalid_arn.py", "service": "codebuild"} {"check_id": "codebuild.build-batch-environment-variables-preserved", "deployments": [], "key": "codebuild/build-batch-environment-variables-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:CreateProject", "codebuild:DeleteBuildBatch", "codebuild:DeleteProject", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:DeleteParameter", "ssm:PutParameter"], "path": "behavioral/codebuild/check_build_batch_environment_variables_preserved.py", "service": "codebuild"} {"check_id": "codebuild.build-batch-lifecycle-transitions", "deployments": [], "key": "codebuild/build-batch-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:CreateProject", "codebuild:DeleteBuildBatch", "codebuild:DeleteProject", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_build_batch_lifecycle_transitions.py", "service": "codebuild"} {"check_id": "codebuild.build-executes-buildspec-and-exports-computed-variable", "deployments": [], "key": "codebuild/build-executes-buildspec-and-exports-computed-variable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListProjects", "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:UpdateProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_build_executes_buildspec_and_exports_computed_variable.py", "service": "codebuild"} {"check_id": "codebuild.build-failing-command-reaches-failed-terminal", "deployments": [], "key": "codebuild/build-failing-command-reaches-failed-terminal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_build_failing_command_reaches_failed_terminal.py", "service": "codebuild"} {"check_id": "codebuild.build-lifecycle-transitions-to-terminal-state", "deployments": [], "key": "codebuild/build-lifecycle-transitions-to-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:UpdateProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_build_lifecycle_transitions_to_terminal_state.py", "service": "codebuild"} {"check_id": "codebuild.build-queue-timeout-in-minutes-enforced", "deployments": [], "key": "codebuild/build-queue-timeout-in-minutes-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetFleets", "codebuild:CreateFleet", "codebuild:CreateProject", "codebuild:DeleteFleet", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_build_queue_timeout_in_minutes_enforced.py", "service": "codebuild"} {"check_id": "codebuild.build-queued-timeout-override-reported-on-started-build", "deployments": [], "key": "codebuild/build-queued-timeout-override-reported-on-started-build", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_build_queued_timeout_override_reported_on_started_build.py", "service": "codebuild"} {"check_id": "codebuild.codebuild-concurrent-build-limit-rejects-the-second-start-and-no-second-build-appears", "deployments": [], "key": "codebuild/codebuild-concurrent-build-limit-rejects-the-second-start-and-no-second-build-appears", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_codebuild_concurrent_build_limit_rejects_the_second_start_and_no_second_build_appears.py", "service": "codebuild"} {"check_id": "codebuild.codebuild-environment-variable-precedence-resolves-inside-the-build", "deployments": [], "key": "codebuild/codebuild-environment-variable-precedence-resolves-inside-the-build", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_codebuild_environment_variable_precedence_resolves_inside_the_build.py", "service": "codebuild"} {"check_id": "codebuild.codebuild-invalid-buildspec-yaml-rejected-before-the-build-phase-runs", "deployments": [], "key": "codebuild/codebuild-invalid-buildspec-yaml-rejected-before-the-build-phase-runs", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_codebuild_invalid_buildspec_yaml_rejected_before_the_build_phase_runs.py", "service": "codebuild"} {"check_id": "codebuild.codebuild-junit-report-ingestion-reports-each-test-case-with-its-exact-status", "deployments": [], "key": "codebuild/codebuild-junit-report-ingestion-reports-each-test-case-with-its-exact-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetReports", "codebuild:CreateProject", "codebuild:CreateReportGroup", "codebuild:DeleteProject", "codebuild:DeleteReportGroup", "codebuild:DescribeTestCases", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_codebuild_junit_report_ingestion_reports_each_test_case_with_its_exact_status.py", "service": "codebuild"} {"check_id": "codebuild.codebuild-sandbox-command-execution-returns-the-commands-real-stdout", "deployments": [], "key": "codebuild/codebuild-sandbox-command-execution-returns-the-commands-real-stdout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetCommandExecutions", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListCommandExecutionsForSandbox", "codebuild:StartCommandExecution", "codebuild:StartSandbox", "codebuild:StartSandboxConnection", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:DeleteLogGroup"], "path": "behavioral/codebuild/check_codebuild_sandbox_command_execution_returns_the_commands_real_stdout.py", "service": "codebuild"} {"check_id": "codebuild.command-execution-lifecycle-in-sandbox", "deployments": [], "key": "codebuild/command-execution-lifecycle-in-sandbox", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetCommandExecutions", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartCommandExecution", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup"], "path": "behavioral/codebuild/check_command_execution_lifecycle_in_sandbox.py", "service": "codebuild"} {"check_id": "codebuild.command-execution-lifecycle-reaches-terminal-state", "deployments": [], "key": "codebuild/command-execution-lifecycle-reaches-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetCommandExecutions", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartCommandExecution", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_command_execution_lifecycle_reaches_terminal_state.py", "service": "codebuild"} {"check_id": "codebuild.create-fleet-invalid-capacity-rejected", "deployments": [], "key": "codebuild/create-fleet-invalid-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetFleets", "codebuild:CreateFleet", "codebuild:DeleteFleet", "codebuild:ListFleets"], "path": "behavioral/codebuild/check_create_fleet_invalid_capacity_rejected.py", "service": "codebuild"} {"check_id": "codebuild.create-project-duplicate-name-does-not-clobber", "deployments": [], "key": "codebuild/create-project-duplicate-name-does-not-clobber", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_create_project_duplicate_name_does_not_clobber.py", "service": "codebuild"} {"check_id": "codebuild.create-project-invalid-role-rejected", "deployments": [], "key": "codebuild/create-project-invalid-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_create_project_invalid_role_rejected.py", "service": "codebuild"} {"check_id": "codebuild.create-project-s3-source-without-location-rejected", "deployments": [], "key": "codebuild/create-project-s3-source-without-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListProjects", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_create_project_s3_source_without_location_rejected.py", "service": "codebuild"} {"check_id": "codebuild.create-project-timeout-above-maximum-rejected", "deployments": [], "key": "codebuild/create-project-timeout-above-maximum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListProjects", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_create_project_timeout_above_maximum_rejected.py", "service": "codebuild"} {"check_id": "codebuild.create-webhook-duplicate-name-conflict-rejected", "deployments": [], "key": "codebuild/create-webhook-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:CreateWebhook", "codebuild:DeleteProject", "codebuild:DeleteWebhook", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_create_webhook_duplicate_name_conflict_rejected.py", "service": "codebuild"} {"check_id": "codebuild.create-webhook-duplicate-name-rejected", "deployments": [], "key": "codebuild/create-webhook-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:CreateWebhook", "codebuild:DeleteProject", "codebuild:DeleteWebhook", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_create_webhook_duplicate_name_rejected.py", "service": "codebuild"} {"check_id": "codebuild.create-webhook-rejected-for-no-source-project", "deployments": [], "key": "codebuild/create-webhook-rejected-for-no-source-project", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:CreateWebhook", "codebuild:DeleteProject", "codebuild:DeleteWebhook", "codebuild:UpdateProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_create_webhook_rejected_for_no_source_project.py", "service": "codebuild"} {"check_id": "codebuild.delete-build-batch-in-progress-rejected", "deployments": [], "key": "codebuild/delete-build-batch-in-progress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:CreateProject", "codebuild:DeleteBuildBatch", "codebuild:DeleteProject", "codebuild:ListBuildBatches", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_delete_build_batch_in_progress_rejected.py", "service": "codebuild"} {"check_id": "codebuild.delete-fleet-invalid-arn", "deployments": [], "key": "codebuild/delete-fleet-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetFleets", "codebuild:CreateFleet", "codebuild:DeleteFleet"], "path": "behavioral/codebuild/check_delete_fleet_invalid_arn.py", "service": "codebuild"} {"check_id": "codebuild.delete-project-absent-is-idempotent", "deployments": [], "key": "codebuild/delete-project-absent-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:DeleteProject"], "path": "behavioral/codebuild/check_delete_project_absent_is_idempotent.py", "service": "codebuild"} {"check_id": "codebuild.delete-resource-policy-absent-policy-rejected", "deployments": [], "key": "codebuild/delete-resource-policy-absent-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_delete_resource_policy_absent_policy_rejected.py", "service": "codebuild"} {"check_id": "codebuild.delete-source-credentials-invalid-arn", "deployments": [], "key": "codebuild/delete-source-credentials-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:DeleteSourceCredentials", "codebuild:ImportSourceCredentials", "codebuild:ListSourceCredentials"], "path": "behavioral/codebuild/check_delete_source_credentials_invalid_arn.py", "service": "codebuild"} {"check_id": "codebuild.delete-webhook-absent-project-not-found", "deployments": [], "key": "codebuild/delete-webhook-absent-project-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:DeleteWebhook", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_delete_webhook_absent_project_not_found.py", "service": "codebuild"} {"check_id": "codebuild.deploy-codebuild-project-cfn-starts-build", "deployments": [], "key": "codebuild/deploy-codebuild-project-cfn-starts-build", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:StartBuild", "codebuild:StopBuild"], "path": "behavioral/codebuild/check_deploy_codebuild_project_cfn_starts_build.py", "service": "codebuild"} {"check_id": "codebuild.deploy-codebuild-report-group-cfn-policy-applies", "deployments": [], "key": "codebuild/deploy-codebuild-report-group-cfn-policy-applies", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codebuild:BatchGetReportGroups", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_deploy_codebuild_report_group_cfn_policy_applies.py", "service": "codebuild"} {"check_id": "codebuild.deploy-codebuild-report-group-put-resource-policy-malformed-rejected", "deployments": [], "key": "codebuild/deploy-codebuild-report-group-put-resource-policy-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_deploy_codebuild_report_group_put_resource_policy_malformed_rejected.py", "service": "codebuild"} {"check_id": "codebuild.deploy-fleet-list-reflects-fleet", "deployments": [], "key": "codebuild/deploy-fleet-list-reflects-fleet", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codebuild:BatchGetFleets", "codebuild:ListFleets"], "path": "behavioral/codebuild/check_deploy_fleet_list_reflects_fleet.py", "service": "codebuild"} {"check_id": "codebuild.deploy-project-start-build-succeeds", "deployments": [], "key": "codebuild/deploy-project-start-build-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild"], "path": "behavioral/codebuild/check_deploy_project_start_build_succeeds.py", "service": "codebuild"} {"check_id": "codebuild.describe-test-cases-absent-report-not-found", "deployments": [], "key": "codebuild/describe-test-cases-absent-report-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:CreateReportGroup", "codebuild:DeleteProject", "codebuild:DeleteReportGroup", "codebuild:DescribeTestCases", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_describe_test_cases_absent_report_not_found.py", "service": "codebuild"} {"check_id": "codebuild.e2e-build-batch-lifecycle", "deployments": [], "key": "codebuild/e2e-build-batch-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:CreateProject", "codebuild:DeleteBuildBatch", "codebuild:DeleteProject", "codebuild:ListBuildBatchesForProject", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_e2e_build_batch_lifecycle.py", "service": "codebuild"} {"check_id": "codebuild.e2e-build-batch-retry-and-cleanup-flow", "deployments": [], "key": "codebuild/e2e-build-batch-retry-and-cleanup-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:CreateProject", "codebuild:DeleteBuildBatch", "codebuild:DeleteProject", "codebuild:ListBuildBatchesForProject", "codebuild:RetryBuildBatch", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_e2e_build_batch_retry_and_cleanup_flow.py", "service": "codebuild"} {"check_id": "codebuild.e2e-project-build-batch-lifecycle", "deployments": [], "key": "codebuild/e2e-project-build-batch-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:CreateProject", "codebuild:DeleteBuildBatch", "codebuild:DeleteProject", "codebuild:ListBuildBatchesForProject", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_e2e_project_build_batch_lifecycle.py", "service": "codebuild"} {"check_id": "codebuild.e2e-retry-build-creates-linked-build", "deployments": [], "key": "codebuild/e2e-retry-build-creates-linked-build", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:RetryBuild", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_e2e_retry_build_creates_linked_build.py", "service": "codebuild"} {"check_id": "codebuild.e2e-sandbox-command-execution-after-stop-rejected", "deployments": [], "key": "codebuild/e2e-sandbox-command-execution-after-stop-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetCommandExecutions", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListCommandExecutionsForSandbox", "codebuild:StartCommandExecution", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_e2e_sandbox_command_execution_after_stop_rejected.py", "service": "codebuild"} {"check_id": "codebuild.e2e-sandbox-command-execution-flow", "deployments": [], "key": "codebuild/e2e-sandbox-command-execution-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListCommandExecutionsForSandbox", "codebuild:StartCommandExecution", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_e2e_sandbox_command_execution_flow.py", "service": "codebuild"} {"check_id": "codebuild.e2e-webhook-triggered-build-retry-flow", "deployments": [], "key": "codebuild/e2e-webhook-triggered-build-retry-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:CreateWebhook", "codebuild:DeleteProject", "codebuild:DeleteWebhook", "codebuild:RetryBuild", "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:UpdateWebhook", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/codebuild/check_e2e_webhook_triggered_build_retry_flow.py", "service": "codebuild"} {"check_id": "codebuild.failing-pre-build-phase-skips-later-phases-and-reports-the-exit-code", "deployments": [], "key": "codebuild/failing-pre-build-phase-skips-later-phases-and-reports-the-exit-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_failing_pre_build_phase_skips_later_phases_and_reports_the_exit_code.py", "service": "codebuild"} {"check_id": "codebuild.get-report-group-trend-absent-report-group-not-found", "deployments": [], "key": "codebuild/get-report-group-trend-absent-report-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:GetReportGroupTrend", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_get_report_group_trend_absent_report_group_not_found.py", "service": "codebuild"} {"check_id": "codebuild.get-resource-policy-absent-resource-not-found", "deployments": [], "key": "codebuild/get-resource-policy-absent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_get_resource_policy_absent_resource_not_found.py", "service": "codebuild"} {"check_id": "codebuild.invalidate-project-cache-absent-not-found", "deployments": [], "key": "codebuild/invalidate-project-cache-absent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:InvalidateProjectCache", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_invalidate_project_cache_absent_not_found.py", "service": "codebuild"} {"check_id": "codebuild.list-build-batches-for-project-absent-not-found", "deployments": [], "key": "codebuild/list-build-batches-for-project-absent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildBatchesForProject", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_list_build_batches_for_project_absent_not_found.py", "service": "codebuild"} {"check_id": "codebuild.list-build-batches-ordered-by-start-time", "deployments": [], "key": "codebuild/list-build-batches-ordered-by-start-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildBatchesForProject", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_list_build_batches_ordered_by_start_time.py", "service": "codebuild"} {"check_id": "codebuild.list-builds-contains-started-build-id", "deployments": [], "key": "codebuild/list-builds-contains-started-build-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuilds", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_list_builds_contains_started_build_id.py", "service": "codebuild"} {"check_id": "codebuild.list-builds-for-project-absent-project-not-found", "deployments": [], "key": "codebuild/list-builds-for-project-absent-project-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_list_builds_for_project_absent_project_not_found.py", "service": "codebuild"} {"check_id": "codebuild.list-builds-for-project-chronological-order", "deployments": [], "key": "codebuild/list-builds-for-project-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_list_builds_for_project_chronological_order.py", "service": "codebuild"} {"check_id": "codebuild.list-builds-for-project-default-sort-order", "deployments": [], "key": "codebuild/list-builds-for-project-default-sort-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_list_builds_for_project_default_sort_order.py", "service": "codebuild"} {"check_id": "codebuild.list-builds-for-project-invalid-sort-order-rejected", "deployments": [], "key": "codebuild/list-builds-for-project-invalid-sort-order-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_list_builds_for_project_invalid_sort_order_rejected.py", "service": "codebuild"} {"check_id": "codebuild.list-builds-for-project-nonexistent-project-rejected", "deployments": [], "key": "codebuild/list-builds-for-project-nonexistent-project-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_list_builds_for_project_nonexistent_project_rejected.py", "service": "codebuild"} {"check_id": "codebuild.list-builds-for-project-returns-most-recent-first", "deployments": [], "key": "codebuild/list-builds-for-project-returns-most-recent-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_list_builds_for_project_returns_most_recent_first.py", "service": "codebuild"} {"check_id": "codebuild.list-builds-malformed-next-token-rejected", "deployments": [], "key": "codebuild/list-builds-malformed-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:ListBuilds"], "path": "behavioral/codebuild/check_list_builds_malformed_next_token_rejected.py", "service": "codebuild"} {"check_id": "codebuild.list-command-executions-for-sandbox-absent-not-found", "deployments": [], "key": "codebuild/list-command-executions-for-sandbox-absent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetCommandExecutions", "codebuild:ListCommandExecutionsForSandbox"], "path": "behavioral/codebuild/check_list_command_executions_for_sandbox_absent_not_found.py", "service": "codebuild"} {"check_id": "codebuild.list-projects-sort-by-name-and-created-time-sequence", "deployments": [], "key": "codebuild/list-projects-sort-by-name-and-created-time-sequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListProjects", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_list_projects_sort_by_name_and_created_time_sequence.py", "service": "codebuild"} {"check_id": "codebuild.list-report-groups-reflects-created", "deployments": [], "key": "codebuild/list-report-groups-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:ListReportGroups"], "path": "behavioral/codebuild/check_list_report_groups_reflects_created.py", "service": "codebuild"} {"check_id": "codebuild.list-reports-for-report-group-sort-order-consistent", "deployments": [], "key": "codebuild/list-reports-for-report-group-sort-order-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:CreateReportGroup", "codebuild:DeleteProject", "codebuild:DeleteReportGroup", "codebuild:ListReportsForReportGroup", "codebuild:StartBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_list_reports_for_report_group_sort_order_consistent.py", "service": "codebuild"} {"check_id": "codebuild.list-sandboxes-for-project-absent-not-found", "deployments": [], "key": "codebuild/list-sandboxes-for-project-absent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListSandboxesForProject", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_list_sandboxes_for_project_absent_not_found.py", "service": "codebuild"} {"check_id": "codebuild.list-sandboxes-for-project-reflects-start-order", "deployments": [], "key": "codebuild/list-sandboxes-for-project-reflects-start-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListSandboxesForProject", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_list_sandboxes_for_project_reflects_start_order.py", "service": "codebuild"} {"check_id": "codebuild.on-failure-continue-runs-the-next-phase-while-the-failed-phase-stays-failed", "deployments": [], "key": "codebuild/on-failure-continue-runs-the-next-phase-while-the-failed-phase-stays-failed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_on_failure_continue_runs_the_next_phase_while_the_failed_phase_stays_failed.py", "service": "codebuild"} {"check_id": "codebuild.phase-durations-equal-their-own-windows-and-the-slow-phase-dominates", "deployments": [], "key": "codebuild/phase-durations-equal-their-own-windows-and-the-slow-phase-dominates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_phase_durations_equal_their_own_windows_and_the_slow_phase_dominates.py", "service": "codebuild"} {"check_id": "codebuild.put-resource-policy-malformed-document-rejected", "deployments": [], "key": "codebuild/put-resource-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_put_resource_policy_malformed_document_rejected.py", "service": "codebuild"} {"check_id": "codebuild.put-resource-policy-malformed-policy-rejected", "deployments": [], "key": "codebuild/put-resource-policy-malformed-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_put_resource_policy_malformed_policy_rejected.py", "service": "codebuild"} {"check_id": "codebuild.put-resource-policy-overwrite-last-writer-wins", "deployments": [], "key": "codebuild/put-resource-policy-overwrite-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_put_resource_policy_overwrite_last_writer_wins.py", "service": "codebuild"} {"check_id": "codebuild.put-resource-policy-unsupported-resource-type-rejected", "deployments": [], "key": "codebuild/put-resource-policy-unsupported-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_put_resource_policy_unsupported_resource_type_rejected.py", "service": "codebuild"} {"check_id": "codebuild.put-resource-policy-write-action-rejected", "deployments": [], "key": "codebuild/put-resource-policy-write-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_put_resource_policy_write_action_rejected.py", "service": "codebuild"} {"check_id": "codebuild.report-group-create-get-delete", "deployments": [], "key": "codebuild/report-group-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetReportGroups", "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:UpdateReportGroup"], "path": "behavioral/codebuild/check_report_group_create_get_delete.py", "service": "codebuild"} {"check_id": "codebuild.report-group-tags-roundtrip", "deployments": [], "key": "codebuild/report-group-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetReportGroups", "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup"], "path": "behavioral/codebuild/check_report_group_tags_roundtrip.py", "service": "codebuild"} {"check_id": "codebuild.report-group-trend-empty-state-read", "deployments": [], "key": "codebuild/report-group-trend-empty-state-read", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:GetReportGroupTrend"], "path": "behavioral/codebuild/check_report_group_trend_empty_state_read.py", "service": "codebuild"} {"check_id": "codebuild.report-group-trend-out-of-range-rejected", "deployments": [], "key": "codebuild/report-group-trend-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:GetReportGroupTrend"], "path": "behavioral/codebuild/check_report_group_trend_out_of_range_rejected.py", "service": "codebuild"} {"check_id": "codebuild.report-group-trend-reflects-created-reports", "deployments": [], "key": "codebuild/report-group-trend-reflects-created-reports", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetReports", "codebuild:CreateProject", "codebuild:CreateReportGroup", "codebuild:DeleteProject", "codebuild:DeleteReportGroup", "codebuild:GetReportGroupTrend", "codebuild:ListReportsForReportGroup", "codebuild:StartBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_report_group_trend_reflects_created_reports.py", "service": "codebuild"} {"check_id": "codebuild.report-group-trend-reflects-report-data", "deployments": [], "key": "codebuild/report-group-trend-reflects-report-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:CreateReportGroup", "codebuild:DeleteProject", "codebuild:DeleteReportGroup", "codebuild:GetReportGroupTrend", "codebuild:ListReportsForReportGroup", "codebuild:StartBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_report_group_trend_reflects_report_data.py", "service": "codebuild"} {"check_id": "codebuild.report-group-update-export-config", "deployments": [], "key": "codebuild/report-group-update-export-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetReportGroups", "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:UpdateReportGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/codebuild/check_report_group_update_export_config.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-crud-roundtrip", "deployments": [], "key": "codebuild/resource-policy-crud-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_resource_policy_crud_roundtrip.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-delete-then-get-not-found", "deployments": [], "key": "codebuild/resource-policy-delete-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_resource_policy_delete_then_get_not_found.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-invalid-document-rejected", "deployments": [], "key": "codebuild/resource-policy-invalid-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_resource_policy_invalid_document_rejected.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-json-unicode-round-trip", "deployments": [], "key": "codebuild/resource-policy-json-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_resource_policy_json_unicode_round_trip.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-malformed-json-rejected", "deployments": [], "key": "codebuild/resource-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_resource_policy_malformed_json_rejected.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-put-get-delete-roundtrip", "deployments": [], "key": "codebuild/resource-policy-put-get-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetReportGroups", "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy"], "path": "behavioral/codebuild/check_resource_policy_put_get_delete_roundtrip.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-put-get-round-trip", "deployments": [], "key": "codebuild/resource-policy-put-get-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_resource_policy_put_get_round_trip.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-roundtrip-report-group", "deployments": [], "key": "codebuild/resource-policy-roundtrip-report-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_resource_policy_roundtrip_report_group.py", "service": "codebuild"} {"check_id": "codebuild.resource-policy-sharing-not-listed-for-owner", "deployments": [], "key": "codebuild/resource-policy-sharing-not-listed-for-owner", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:DeleteResourcePolicy", "codebuild:GetResourcePolicy", "codebuild:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codebuild/check_resource_policy_sharing_not_listed_for_owner.py", "service": "codebuild"} {"check_id": "codebuild.retry-build-account-limit-exceeded-blocked", "deployments": [], "key": "codebuild/retry-build-account-limit-exceeded-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:RetryBuild", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_retry_build_account_limit_exceeded_blocked.py", "service": "codebuild"} {"check_id": "codebuild.sandbox-connection-invalid-after-stop", "deployments": [], "key": "codebuild/sandbox-connection-invalid-after-stop", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartSandbox", "codebuild:StartSandboxConnection", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_sandbox_connection_invalid_after_stop.py", "service": "codebuild"} {"check_id": "codebuild.sandbox-connection-token-ttl-expires", "deployments": [], "key": "codebuild/sandbox-connection-token-ttl-expires", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartSandbox", "codebuild:StartSandboxConnection", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_sandbox_connection_token_ttl_expires.py", "service": "codebuild"} {"check_id": "codebuild.sandbox-idle-timeout-auto-stop", "deployments": [], "key": "codebuild/sandbox-idle-timeout-auto-stop", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_sandbox_idle_timeout_auto_stop.py", "service": "codebuild"} {"check_id": "codebuild.sandbox-lifecycle-active-to-terminated", "deployments": [], "key": "codebuild/sandbox-lifecycle-active-to-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetCommandExecutions", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListCommandExecutionsForSandbox", "codebuild:StartCommandExecution", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_sandbox_lifecycle_active_to_terminated.py", "service": "codebuild"} {"check_id": "codebuild.sandbox-lifecycle-transitions", "deployments": [], "key": "codebuild/sandbox-lifecycle-transitions", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetCommandExecutions", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListCommandExecutionsForSandbox", "codebuild:ListSandboxes", "codebuild:StartCommandExecution", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_sandbox_lifecycle_transitions.py", "service": "codebuild"} {"check_id": "codebuild.sandbox-timeout-minutes-preserved", "deployments": [], "key": "codebuild/sandbox-timeout-minutes-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_sandbox_timeout_minutes_preserved.py", "service": "codebuild"} {"check_id": "codebuild.start-build-absent-project-rejected", "deployments": [], "key": "codebuild/start-build-absent-project-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_build_absent_project_rejected.py", "service": "codebuild"} {"check_id": "codebuild.start-build-artifacts-override-rejected-without-a-location-and-no-artifacts-uploads-nothing", "deployments": [], "key": "codebuild/start-build-artifacts-override-rejected-without-a-location-and-no-artifacts-uploads-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/codebuild/check_start_build_artifacts_override_rejected_without_a_location_and_no_artifacts_uploads_nothing.py", "service": "codebuild"} {"check_id": "codebuild.start-build-batch-auto-generates-sub-builds", "deployments": [], "key": "codebuild/start-build-batch-auto-generates-sub-builds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildBatches", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_build_batch_auto_generates_sub_builds.py", "service": "codebuild"} {"check_id": "codebuild.start-build-batch-malformed-input-rejected", "deployments": [], "key": "codebuild/start-build-batch-malformed-input-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildBatchesForProject", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_start_build_batch_malformed_input_rejected.py", "service": "codebuild"} {"check_id": "codebuild.start-build-batch-without-batch-config-rejected", "deployments": [], "key": "codebuild/start-build-batch-without-batch-config-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuildBatches", "codebuild:CreateProject", "codebuild:DeleteBuildBatch", "codebuild:DeleteProject", "codebuild:ListBuildBatchesForProject", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_build_batch_without_batch_config_rejected.py", "service": "codebuild"} {"check_id": "codebuild.start-build-image-and-compute-overrides-apply-to-that-build-only", "deployments": [], "key": "codebuild/start-build-image-and-compute-overrides-apply-to-that-build-only", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_build_image_and_compute_overrides_apply_to_that_build_only.py", "service": "codebuild"} {"check_id": "codebuild.start-build-unassumable-role-override-rejected", "deployments": [], "key": "codebuild/start-build-unassumable-role-override-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_build_unassumable_role_override_rejected.py", "service": "codebuild"} {"check_id": "codebuild.start-command-execution-invalid-sandbox-rejected", "deployments": [], "key": "codebuild/start-command-execution-invalid-sandbox-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetCommandExecutions", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListCommandExecutionsForSandbox", "codebuild:StartCommandExecution", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_command_execution_invalid_sandbox_rejected.py", "service": "codebuild"} {"check_id": "codebuild.start-sandbox-account-suspended-blocked", "deployments": [], "key": "codebuild/start-sandbox-account-suspended-blocked", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["codebuild:BatchGetProjects", "codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListSandboxesForProject", "codebuild:StartBuild", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_sandbox_account_suspended_blocked.py", "service": "codebuild"} {"check_id": "codebuild.start-sandbox-connection-absent-sandbox-not-found", "deployments": [], "key": "codebuild/start-sandbox-connection-absent-sandbox-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartSandbox", "codebuild:StartSandboxConnection", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_sandbox_connection_absent_sandbox_not_found.py", "service": "codebuild"} {"check_id": "codebuild.start-sandbox-suspended-account-blocked", "deployments": [], "key": "codebuild/start-sandbox-suspended-account-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetSandboxes", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListSandboxesForProject", "codebuild:StartSandbox", "codebuild:StopSandbox", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_start_sandbox_suspended_account_blocked.py", "service": "codebuild"} {"check_id": "codebuild.stop-build-already-stopped-is-an-idempotent-no-op", "deployments": [], "key": "codebuild/stop-build-already-stopped-is-an-idempotent-no-op", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_stop_build_already_stopped_is_an_idempotent_no_op.py", "service": "codebuild"} {"check_id": "codebuild.stop-build-already-stopped-is-idempotent-noop", "deployments": [], "key": "codebuild/stop-build-already-stopped-is-idempotent-noop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_stop_build_already_stopped_is_idempotent_noop.py", "service": "codebuild"} {"check_id": "codebuild.stop-build-during-pre-build-stops-exactly-that-phase-and-leaves-the-rest-unrun", "deployments": [], "key": "codebuild/stop-build-during-pre-build-stops-exactly-that-phase-and-leaves-the-rest-unrun", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_stop_build_during_pre_build_stops_exactly_that_phase_and_leaves_the_rest_unrun.py", "service": "codebuild"} {"check_id": "codebuild.stop-build-nonexistent-id-rejected", "deployments": [], "key": "codebuild/stop-build-nonexistent-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_stop_build_nonexistent_id_rejected.py", "service": "codebuild"} {"check_id": "codebuild.stop-build-on-completed-build-is-an-idempotent-no-op", "deployments": [], "key": "codebuild/stop-build-on-completed-build-is-an-idempotent-no-op", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_stop_build_on_completed_build_is_an_idempotent_no_op.py", "service": "codebuild"} {"check_id": "codebuild.stop-build-race-idempotent-single-transition", "deployments": [], "key": "codebuild/stop-build-race-idempotent-single-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_stop_build_race_idempotent_single_transition.py", "service": "codebuild"} {"check_id": "codebuild.stop-build-transitions-to-stopped-state", "deployments": [], "key": "codebuild/stop-build-transitions-to-stopped-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_stop_build_transitions_to_stopped_state.py", "service": "codebuild"} {"check_id": "codebuild.timeout-in-minutes-kills-the-running-build-and-marks-that-phase-timed-out", "deployments": [], "key": "codebuild/timeout-in-minutes-kills-the-running-build-and-marks-that-phase-timed-out", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_timeout_in_minutes_kills_the_running_build_and_marks_that_phase_timed_out.py", "service": "codebuild"} {"check_id": "codebuild.update-fleet-absent-not-found", "deployments": [], "key": "codebuild/update-fleet-absent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetFleets", "codebuild:CreateFleet", "codebuild:DeleteFleet", "codebuild:UpdateFleet"], "path": "behavioral/codebuild/check_update_fleet_absent_not_found.py", "service": "codebuild"} {"check_id": "codebuild.update-project-absent-not-found", "deployments": [], "key": "codebuild/update-project-absent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:UpdateProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_update_project_absent_not_found.py", "service": "codebuild"} {"check_id": "codebuild.update-project-visibility-invalid-enum-rejected", "deployments": [], "key": "codebuild/update-project-visibility-invalid-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:UpdateProjectVisibility", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_update_project_visibility_invalid_enum_rejected.py", "service": "codebuild"} {"check_id": "codebuild.update-project-visibility-invalid-value-rejected", "deployments": [], "key": "codebuild/update-project-visibility-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:UpdateProjectVisibility", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_update_project_visibility_invalid_value_rejected.py", "service": "codebuild"} {"check_id": "codebuild.update-project-visibility-not-shared-listing", "deployments": [], "key": "codebuild/update-project-visibility-not-shared-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:UpdateProjectVisibility", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_update_project_visibility_not_shared_listing.py", "service": "codebuild"} {"check_id": "codebuild.webhook-filter-groups-persist", "deployments": [], "key": "codebuild/webhook-filter-groups-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:CreateWebhook", "codebuild:DeleteProject", "codebuild:DeleteSourceCredentials", "codebuild:DeleteWebhook", "codebuild:ImportSourceCredentials", "codebuild:ListSourceCredentials", "codebuild:UpdateWebhook", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_webhook_filter_groups_persist.py", "service": "codebuild"} {"check_id": "codebuild.webhook-filter-groups-unicode-round-trip", "deployments": [], "key": "codebuild/webhook-filter-groups-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:CreateWebhook", "codebuild:DeleteProject", "codebuild:DeleteWebhook", "codebuild:ListSourceCredentials", "codebuild:UpdateWebhook", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/codebuild/check_webhook_filter_groups_unicode_round_trip.py", "service": "codebuild"} {"check_id": "codebuild.webhook-lifecycle-create-update-delete", "deployments": [], "key": "codebuild/webhook-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:CreateWebhook", "codebuild:DeleteProject", "codebuild:DeleteSourceCredentials", "codebuild:DeleteWebhook", "codebuild:ImportSourceCredentials", "codebuild:ListSourceCredentials", "codebuild:UpdateWebhook", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild/check_webhook_lifecycle_create_update_delete.py", "service": "codebuild"} {"check_id": "codebuild__codepipeline__ecr.cli-create-pipeline-with-codebuild-and-ecr-source-full-flow", "deployments": [], "key": "codebuild__codepipeline__ecr/cli-create-pipeline-with-codebuild-and-ecr-source-full-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/codebuild__codepipeline__ecr/check_cli_create_pipeline_with_codebuild_and_ecr_source_full_flow.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.cli-pipeline-execution-fails-when-codebuild-role-lacks-ecr-permissions", "deployments": [], "key": "codebuild__codepipeline__ecr/cli-pipeline-execution-fails-when-codebuild-role-lacks-ecr-permissions", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/codebuild__codepipeline__ecr/check_cli_pipeline_execution_fails_when_codebuild_role_lacks_ecr_permissions.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.cli-start-pipeline-execution-and-verify-codebuild-log-output", "deployments": [], "key": "codebuild__codepipeline__ecr/cli-start-pipeline-execution-and-verify-codebuild-log-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codebuild__codepipeline__ecr/check_cli_start_pipeline_execution_and_verify_codebuild_log_output.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.cli-verify-ecr-image-pushed-after-pipeline-execution-succeeds", "deployments": [], "key": "codebuild__codepipeline__ecr/cli-verify-ecr-image-pushed-after-pipeline-execution-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/codebuild__codepipeline__ecr/check_cli_verify_ecr_image_pushed_after_pipeline_execution_succeeds.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-authenticates-to-ecr-via-get-authorization-token", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-authenticates-to-ecr-via-get-authorization-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_authenticates_to_ecr_via_get_authorization_token.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-build-status-propagates-to-pipeline-action-result", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-build-status-propagates-to-pipeline-action-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_build_status_propagates_to_pipeline_action_result.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-environment-variables-injected-from-pipeline-action", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-environment-variables-injected-from-pipeline-action", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_environment_variables_injected_from_pipeline_action.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-missing-ecr-login-fails-docker-push", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-missing-ecr-login-fails-docker-push", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_missing_ecr_login_fails_docker_push.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-project-arn-resolves-correctly-in-pipeline-action-config", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-project-arn-resolves-correctly-in-pipeline-action-config", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_project_arn_resolves_correctly_in_pipeline_action_config.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-project-deleted-fails-pipeline-build-action-rejected", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-project-deleted-fails-pipeline-build-action-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_project_deleted_fails_pipeline_build_action_rejected.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-pulls-base-image-from-ecr-private-registry", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-pulls-base-image-from-ecr-private-registry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_pulls_base_image_from_ecr_private_registry.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-pushes-docker-image-to-ecr-repository", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-pushes-docker-image-to-ecr-repository", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_pushes_docker_image_to_ecr_repository.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-role-missing-ecr-push-permission-blocks-image-upload", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-role-missing-ecr-push-permission-blocks-image-upload", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_role_missing_ecr_push_permission_blocks_image_upload.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codebuild-role-missing-trust-policy-blocks-assume-role-during-build-rejected", "deployments": [], "key": "codebuild__codepipeline__ecr/codebuild-role-missing-trust-policy-blocks-assume-role-during-build-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_codebuild_role_missing_trust_policy_blocks_assume_role_during_build_rejected.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.codepipeline-execution-includes-ecr-image-digest-as-source-revision", "deployments": [], "key": "codebuild__codepipeline__ecr/codepipeline-execution-includes-ecr-image-digest-as-source-revision", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_codepipeline_execution_includes_ecr_image_digest_as_source_revision.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.deploy-cfn-stack-pipeline-codebuild-ecr-full-integration", "deployments": [], "key": "codebuild__codepipeline__ecr/deploy-cfn-stack-pipeline-codebuild-ecr-full-integration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codepipeline:GetPipelineExecution", "codepipeline:StartPipelineExecution", "ecr:DescribeImages", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codebuild__codepipeline__ecr/check_deploy_cfn_stack_pipeline_codebuild_ecr_full_integration.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.deploy-stack-codebuild-role-trust-policy-allows-codebuild-service", "deployments": [], "key": "codebuild__codepipeline__ecr/deploy-stack-codebuild-role-trust-policy-allows-codebuild-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codebuild__codepipeline__ecr/check_deploy_stack_codebuild_role_trust_policy_allows_codebuild_service.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.deploy-stack-missing-ecr-repository-policy-blocks-codebuild-push", "deployments": [], "key": "codebuild__codepipeline__ecr/deploy-stack-missing-ecr-repository-policy-blocks-codebuild-push", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codebuild:BatchGetBuilds", "codebuild:StartBuild", "ecr:DescribeImages", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codebuild__codepipeline__ecr/check_deploy_stack_missing_ecr_repository_policy_blocks_codebuild_push.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.deploy-stack-outputs-correct-codebuild-project-arn-in-pipeline-stage", "deployments": [], "key": "codebuild__codepipeline__ecr/deploy-stack-outputs-correct-codebuild-project-arn-in-pipeline-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codebuild:BatchGetProjects", "codepipeline:GetPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codebuild__codepipeline__ecr/check_deploy_stack_outputs_correct_codebuild_project_arn_in_pipeline_stage.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.deploy-stack-pipeline-role-trust-policy-allows-codepipeline-service", "deployments": [], "key": "codebuild__codepipeline__ecr/deploy-stack-pipeline-role-trust-policy-allows-codepipeline-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codebuild__codepipeline__ecr/check_deploy_stack_pipeline_role_trust_policy_allows_codepipeline_service.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.ecr-image-push-triggers-codepipeline-eventbridge-execution", "deployments": [], "key": "codebuild__codepipeline__ecr/ecr-image-push-triggers-codepipeline-eventbridge-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_ecr_image_push_triggers_codepipeline_eventbridge_execution.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.ecr-image-tag-filter-in-eventbridge-rule-controls-pipeline-trigger", "deployments": [], "key": "codebuild__codepipeline__ecr/ecr-image-tag-filter-in-eventbridge-rule-controls-pipeline-trigger", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_ecr_image_tag_filter_in_eventbridge_rule_controls_pipeline_trigger.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.ecr-image-tag-matches-codebuild-generated-tag", "deployments": [], "key": "codebuild__codepipeline__ecr/ecr-image-tag-matches-codebuild-generated-tag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild__codepipeline__ecr/check_ecr_image_tag_matches_codebuild_generated_tag.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.ecr-push-to-untracked-repository-does-not-trigger-pipeline", "deployments": [], "key": "codebuild__codepipeline__ecr/ecr-push-to-untracked-repository-does-not-trigger-pipeline", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_ecr_push_to_untracked_repository_does_not_trigger_pipeline.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.ecr-repository-policy-denies-codebuild-role-blocks-pull", "deployments": [], "key": "codebuild__codepipeline__ecr/ecr-repository-policy-denies-codebuild-role-blocks-pull", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteRepositoryPolicy", "ecr:DescribeImages", "ecr:SetRepositoryPolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codebuild__codepipeline__ecr/check_ecr_repository_policy_denies_codebuild_role_blocks_pull.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.missing-eventbridge-target-permission-blocks-pipeline-invocation", "deployments": [], "key": "codebuild__codepipeline__ecr/missing-eventbridge-target-permission-blocks-pipeline-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_missing_eventbridge_target_permission_blocks_pipeline_invocation.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.pipeline-invokes-codebuild-project-on-build-stage", "deployments": [], "key": "codebuild__codepipeline__ecr/pipeline-invokes-codebuild-project-on-build-stage", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_pipeline_invokes_codebuild_project_on_build_stage.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.pipeline-passes-source-artifact-location-to-codebuild", "deployments": [], "key": "codebuild__codepipeline__ecr/pipeline-passes-source-artifact-location-to-codebuild", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_pipeline_passes_source_artifact_location_to_codebuild.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__codepipeline__ecr.pipeline-role-missing-codebuild-startbuild-permission-blocks-invocation-rejected", "deployments": [], "key": "codebuild__codepipeline__ecr/pipeline-role-missing-codebuild-startbuild-permission-blocks-invocation-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__codepipeline__ecr/check_pipeline_role_missing_codebuild_startbuild_permission_blocks_invocation_rejected.py", "service": "codebuild__codepipeline__ecr"} {"check_id": "codebuild__ecr__ecs__elbv2__logs.cicdchain-alb-body-tracks-the-latest-codebuild-image", "deployments": [], "key": "codebuild__ecr__ecs__elbv2__logs/cicdchain-alb-body-tracks-the-latest-codebuild-image", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/codebuild__ecr__ecs__elbv2__logs/check_cicdchain_alb_body_tracks_the_latest_codebuild_image.py", "service": "codebuild__ecr__ecs__elbv2__logs"} {"check_id": "codebuild__ecr__ecs__elbv2__logs.cicdchain-unhealthy-build-rollout-rejected-and-old-bytes-still-served", "deployments": [], "key": "codebuild__ecr__ecs__elbv2__logs/cicdchain-unhealthy-build-rollout-rejected-and-old-bytes-still-served", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["codebuild:BatchDeleteBuilds", "codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/codebuild__ecr__ecs__elbv2__logs/check_cicdchain_unhealthy_build_rollout_rejected_and_old_bytes_still_served.py", "service": "codebuild__ecr__ecs__elbv2__logs"} {"check_id": "codebuild__events.eventbridge-project-name-filter-delivers-only-the-named-projects-build-events", "deployments": [], "key": "codebuild__events/eventbridge-project-name-filter-delivers-only-the-named-projects-build-events", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codebuild__events/check_eventbridge_project_name_filter_delivers_only_the_named_projects_build_events.py", "service": "codebuild__events"} {"check_id": "codebuild__logs.codebuild-buildspec-stdout-reaches-the-configured-cloudwatch-log-group", "deployments": [], "key": "codebuild__logs/codebuild-buildspec-stdout-reaches-the-configured-cloudwatch-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/codebuild__logs/check_codebuild_buildspec_stdout_reaches_the_configured_cloudwatch_log_group.py", "service": "codebuild__logs"} {"check_id": "codebuild__logs.codebuild-log-delivery-denied-without-putlogevents-permission", "deployments": [], "key": "codebuild__logs/codebuild-log-delivery-denied-without-putlogevents-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/codebuild__logs/check_codebuild_log_delivery_denied_without_putlogevents_permission.py", "service": "codebuild__logs"} {"check_id": "codebuild__logs.codebuild-parameter-store-env-var-resolves-and-its-exact-value-is-masked-in-the-log", "deployments": [], "key": "codebuild__logs/codebuild-parameter-store-env-var-resolves-and-its-exact-value-is-masked-in-the-log", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutRetentionPolicy", "ssm:DeleteParameter", "ssm:PutParameter"], "path": "behavioral/codebuild__logs/check_codebuild_parameter_store_env_var_resolves_and_its_exact_value_is_masked_in_the_log.py", "service": "codebuild__logs"} {"check_id": "codebuild__s3.codebuild-artifact-upload-denied-without-s3-putobject-permission", "deployments": [], "key": "codebuild__s3/codebuild-artifact-upload-denied-without-s3-putobject-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/codebuild__s3/check_codebuild_artifact_upload_denied_without_s3_putobject_permission.py", "service": "codebuild__s3"} {"check_id": "codebuild__s3.codebuild-build-uploads-its-declared-artifact-and-the-bytes-match", "deployments": [], "key": "codebuild__s3/codebuild-build-uploads-its-declared-artifact-and-the-bytes-match", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/codebuild__s3/check_codebuild_build_uploads_its_declared_artifact_and_the_bytes_match.py", "service": "codebuild__s3"} {"check_id": "codebuild__s3.codebuild-buildspec-finally-block-runs-after-a-failing-command-and-its-output-is-uploaded", "deployments": [], "key": "codebuild__s3/codebuild-buildspec-finally-block-runs-after-a-failing-command-and-its-output-is-uploaded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/codebuild__s3/check_codebuild_buildspec_finally_block_runs_after_a_failing_command_and_its_output_is_uploaded.py", "service": "codebuild__s3"} {"check_id": "codebuild__s3.codebuild-four-concurrent-builds-write-four-distinct-artifacts-with-no-cross-talk", "deployments": [], "key": "codebuild__s3/codebuild-four-concurrent-builds-write-four-distinct-artifacts-with-no-cross-talk", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/codebuild__s3/check_codebuild_four_concurrent_builds_write_four_distinct_artifacts_with_no_cross_talk.py", "service": "codebuild__s3"} {"check_id": "codebuild__s3.codebuild-missing-declared-artifact-rejects-upload-and-no-object-lands", "deployments": [], "key": "codebuild__s3/codebuild-missing-declared-artifact-rejects-upload-and-no-object-lands", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/codebuild__s3/check_codebuild_missing_declared_artifact_rejects_upload_and_no_object_lands.py", "service": "codebuild__s3"} {"check_id": "codebuild__s3.codebuild-retry-build-reuses-the-pinned-source-version-after-the-object-changes", "deployments": [], "key": "codebuild__s3/codebuild-retry-build-reuses-the-pinned-source-version-after-the-object-changes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:ListBuildsForProject", "codebuild:RetryBuild", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codebuild__s3/check_codebuild_retry_build_reuses_the_pinned_source_version_after_the_object_changes.py", "service": "codebuild__s3"} {"check_id": "codebuild__s3.codebuild-s3-cache-carries-a-file-from-one-build-into-the-next", "deployments": [], "key": "codebuild__s3/codebuild-s3-cache-carries-a-file-from-one-build-into-the-next", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:InvalidateProjectCache", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/codebuild__s3/check_codebuild_s3_cache_carries_a_file_from_one_build_into_the_next.py", "service": "codebuild__s3"} {"check_id": "codebuild__s3.codebuild-secondary-artifacts-land-at-their-own-declared-locations", "deployments": [], "key": "codebuild__s3/codebuild-secondary-artifacts-land-at-their-own-declared-locations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/codebuild__s3/check_codebuild_secondary_artifacts_land_at_their_own_declared_locations.py", "service": "codebuild__s3"} {"check_id": "codebuild__secretsmanager.codebuild-secret-reference-denied-without-getsecretvalue-permission", "deployments": [], "key": "codebuild__secretsmanager/codebuild-secret-reference-denied-without-getsecretvalue-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/codebuild__secretsmanager/check_codebuild_secret_reference_denied_without_getsecretvalue_permission.py", "service": "codebuild__secretsmanager"} {"check_id": "codebuild__secretsmanager.codebuild-secrets-manager-environment-reference-resolves-inside-the-build", "deployments": [], "key": "codebuild__secretsmanager/codebuild-secrets-manager-environment-reference-resolves-inside-the-build", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codebuild:BatchGetBuilds", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:StartBuild", "codebuild:StopBuild", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/codebuild__secretsmanager/check_codebuild_secrets_manager_environment_reference_resolves_inside_the_build.py", "service": "codebuild__secretsmanager"} {"check_id": "codecommit.approval-rule-content-required-rejected", "deployments": [], "key": "codecommit/approval-rule-content-required-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetPullRequest", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_approval_rule_content_required_rejected.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-name-conflict-rejected", "deployments": [], "key": "codecommit/approval-rule-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetPullRequest", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_approval_rule_name_conflict_rejected.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-association-lifecycle", "deployments": [], "key": "codecommit/approval-rule-template-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetApprovalRuleTemplate", "codecommit:ListRepositoriesForApprovalRuleTemplate"], "path": "behavioral/codecommit/check_approval_rule_template_association_lifecycle.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-auto-applies-to-new-pull-requests", "deployments": [], "key": "codecommit/approval-rule-template-auto-applies-to-new-pull-requests", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetPullRequest", "codecommit:PutFile"], "path": "behavioral/codecommit/check_approval_rule_template_auto_applies_to_new_pull_requests.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-auto-attaches-to-new-pull-requests", "deployments": [], "key": "codecommit/approval-rule-template-auto-attaches-to-new-pull-requests", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetPullRequest", "codecommit:ListRepositoriesForApprovalRuleTemplate", "codecommit:PutFile"], "path": "behavioral/codecommit/check_approval_rule_template_auto_attaches_to_new_pull_requests.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-content-preserved-verbatim", "deployments": [], "key": "codecommit/approval-rule-template-content-preserved-verbatim", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate", "codecommit:UpdateApprovalRuleTemplateContent", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_approval_rule_template_content_preserved_verbatim.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-content-update-preserved", "deployments": [], "key": "codecommit/approval-rule-template-content-update-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate", "codecommit:UpdateApprovalRuleTemplateContent", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_approval_rule_template_content_update_preserved.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-delete-in-use-rejected", "deployments": [], "key": "codecommit/approval-rule-template-delete-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetApprovalRuleTemplate", "codecommit:ListRepositoriesForApprovalRuleTemplate"], "path": "behavioral/codecommit/check_approval_rule_template_delete_in_use_rejected.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-empty-description-normalized-to-absent", "deployments": [], "key": "codecommit/approval-rule-template-empty-description-normalized-to-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate", "codecommit:UpdateApprovalRuleTemplateDescription"], "path": "behavioral/codecommit/check_approval_rule_template_empty_description_normalized_to_absent.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-in-use-delete-blocked-then-allowed", "deployments": [], "key": "codecommit/approval-rule-template-in-use-delete-blocked-then-allowed", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetApprovalRuleTemplate", "codecommit:ListRepositoriesForApprovalRuleTemplate"], "path": "behavioral/codecommit/check_approval_rule_template_in_use_delete_blocked_then_allowed.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-invalid-content-rejected", "deployments": [], "key": "codecommit/approval-rule-template-invalid-content-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_approval_rule_template_invalid_content_rejected.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-lifecycle", "deployments": [], "key": "codecommit/approval-rule-template-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate", "codecommit:UpdateApprovalRuleTemplateContent"], "path": "behavioral/codecommit/check_approval_rule_template_lifecycle.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-name-already-exists-rejected", "deployments": [], "key": "codecommit/approval-rule-template-name-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate"], "path": "behavioral/codecommit/check_approval_rule_template_name_already_exists_rejected.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-name-conflict-rejected", "deployments": [], "key": "codecommit/approval-rule-template-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate", "codecommit:UpdateApprovalRuleTemplateName"], "path": "behavioral/codecommit/check_approval_rule_template_name_conflict_rejected.py", "service": "codecommit"} {"check_id": "codecommit.approval-rule-template-repository-association-lifecycle", "deployments": [], "key": "codecommit/approval-rule-template-repository-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetApprovalRuleTemplate", "codecommit:ListApprovalRuleTemplates", "codecommit:ListAssociatedApprovalRuleTemplatesForRepository", "codecommit:ListRepositoriesForApprovalRuleTemplate"], "path": "behavioral/codecommit/check_approval_rule_template_repository_association_lifecycle.py", "service": "codecommit"} {"check_id": "codecommit.associate-nonexistent-approval-rule-template-blocked", "deployments": [], "key": "codecommit/associate-nonexistent-approval-rule-template-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:ListAssociatedApprovalRuleTemplatesForRepository"], "path": "behavioral/codecommit/check_associate_nonexistent_approval_rule_template_blocked.py", "service": "codecommit"} {"check_id": "codecommit.author-cannot-approve-own-pull-request-rejected", "deployments": [], "key": "codecommit/author-cannot-approve-own-pull-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetPullRequest", "codecommit:GetPullRequestApprovalStates", "codecommit:MergePullRequestByFastForward", "codecommit:PutFile", "codecommit:UpdatePullRequestApprovalState", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_author_cannot_approve_own_pull_request_rejected.py", "service": "codecommit"} {"check_id": "codecommit.batch-associate-approval-rule-template-partial-failure", "deployments": [], "key": "codecommit/batch-associate-approval-rule-template-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:BatchAssociateApprovalRuleTemplateWithRepositories", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:ListRepositoriesForApprovalRuleTemplate"], "path": "behavioral/codecommit/check_batch_associate_approval_rule_template_partial_failure.py", "service": "codecommit"} {"check_id": "codecommit.batch-describe-merge-conflicts-agrees-with-the-per-path-reads", "deployments": [], "key": "codecommit/batch-describe-merge-conflicts-agrees-with-the-per-path-reads", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:BatchDescribeMergeConflicts", "codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:DescribeMergeConflicts", "codecommit:GetMergeConflicts"], "path": "behavioral/codecommit/check_batch_describe_merge_conflicts_agrees_with_the_per_path_reads.py", "service": "codecommit"} {"check_id": "codecommit.batch-get-commits-limit-exceeded-rejected", "deployments": [], "key": "codecommit/batch-get-commits-limit-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:BatchGetCommits", "codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository"], "path": "behavioral/codecommit/check_batch_get_commits_limit_exceeded_rejected.py", "service": "codecommit"} {"check_id": "codecommit.batch-get-repositories-returns-metadata", "deployments": [], "key": "codecommit/batch-get-repositories-returns-metadata", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:DeleteRepository"], "path": "behavioral/codecommit/check_batch_get_repositories_returns_metadata.py", "service": "codecommit"} {"check_id": "codecommit.blob-id-is-content-addressed-git-sha1", "deployments": [], "key": "codecommit/blob-id-is-content-addressed-git-sha1", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlob", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_blob_id_is_content_addressed_git_sha1.py", "service": "codecommit"} {"check_id": "codecommit.branch-create-get-list", "deployments": [], "key": "codecommit/branch-create-get-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:ListBranches", "codecommit:PutFile"], "path": "behavioral/codecommit/check_branch_create_get_list.py", "service": "codecommit"} {"check_id": "codecommit.branch-delete-then-get-not-found", "deployments": [], "key": "codecommit/branch-delete-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteBranch", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:ListBranches", "codecommit:PutFile"], "path": "behavioral/codecommit/check_branch_delete_then_get_not_found.py", "service": "codecommit"} {"check_id": "codecommit.branch-name-is-tag-name-rejected", "deployments": [], "key": "codecommit/branch-name-is-tag-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:MergeBranchesByThreeWay"], "path": "behavioral/codecommit/check_branch_name_is_tag_name_rejected.py", "service": "codecommit"} {"check_id": "codecommit.branch-protection-policy-denies-a-real-git-push-to-main", "deployments": [], "key": "codecommit/branch-protection-policy-denies-a-real-git-push-to-main", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:PutFile", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_branch_protection_policy_denies_a_real_git_push_to_main.py", "service": "codecommit"} {"check_id": "codecommit.cannot-delete-approval-rule-from-template-blocked", "deployments": [], "key": "codecommit/cannot-delete-approval-rule-from-template-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeletePullRequestApprovalRule", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetPullRequest", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_cannot_delete_approval_rule_from_template_blocked.py", "service": "codecommit"} {"check_id": "codecommit.client-request-token-required-rejected", "deployments": [], "key": "codecommit/client-request-token-required-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:ListPullRequests", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_client_request_token_required_rejected.py", "service": "codecommit"} {"check_id": "codecommit.comment-content-required-rejected", "deployments": [], "key": "codecommit/comment-content-required-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommentsForComparedCommit", "codecommit:PostCommentForComparedCommit"], "path": "behavioral/codecommit/check_comment_content_required_rejected.py", "service": "codecommit"} {"check_id": "codecommit.comment-lifecycle-delete-then-get-returns-deleted-state", "deployments": [], "key": "codecommit/comment-lifecycle-delete-then-get-returns-deleted-state", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteCommentContent", "codecommit:DeleteRepository", "codecommit:GetComment", "codecommit:PostCommentForPullRequest", "codecommit:PutFile"], "path": "behavioral/codecommit/check_comment_lifecycle_delete_then_get_returns_deleted_state.py", "service": "codecommit"} {"check_id": "codecommit.comment-lifecycle-post-get-update-delete", "deployments": [], "key": "codecommit/comment-lifecycle-post-get-update-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteCommentContent", "codecommit:DeleteRepository", "codecommit:GetComment", "codecommit:PostCommentForComparedCommit", "codecommit:PutFile", "codecommit:UpdateComment"], "path": "behavioral/codecommit/check_comment_lifecycle_post_get_update_delete.py", "service": "codecommit"} {"check_id": "codecommit.comment-reaction-add-and-get-round-trip", "deployments": [], "key": "codecommit/comment-reaction-add-and-get-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommentReactions", "codecommit:PostCommentForPullRequest", "codecommit:PutCommentReaction", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_comment_reaction_add_and_get_round_trip.py", "service": "codecommit"} {"check_id": "codecommit.comment-reaction-round-trip", "deployments": [], "key": "codecommit/comment-reaction-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommentReactions", "codecommit:PostCommentForPullRequest", "codecommit:PutCommentReaction", "codecommit:PutFile", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_comment_reaction_round_trip.py", "service": "codecommit"} {"check_id": "codecommit.commit-create-advances-branch-head", "deployments": [], "key": "codecommit/commit-create-advances-branch-head", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:PutFile"], "path": "behavioral/codecommit/check_commit_create_advances_branch_head.py", "service": "codecommit"} {"check_id": "codecommit.commit-create-then-get-chain", "deployments": [], "key": "codecommit/commit-create-then-get-chain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit"], "path": "behavioral/codecommit/check_commit_create_then_get_chain.py", "service": "codecommit"} {"check_id": "codecommit.commit-id-required-rejected", "deployments": [], "key": "codecommit/commit-id-required-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommit"], "path": "behavioral/codecommit/check_commit_id_required_rejected.py", "service": "codecommit"} {"check_id": "codecommit.commit-message-unicode-preserved", "deployments": [], "key": "codecommit/commit-message-unicode-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommit", "codecommit:PutFile"], "path": "behavioral/codecommit/check_commit_message_unicode_preserved.py", "service": "codecommit"} {"check_id": "codecommit.commit-timestamp-precision-preserved", "deployments": [], "key": "codecommit/commit-timestamp-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommit"], "path": "behavioral/codecommit/check_commit_timestamp_precision_preserved.py", "service": "codecommit"} {"check_id": "codecommit.concurrent-merge-after-branch-moved-rejected", "deployments": [], "key": "codecommit/concurrent-merge-after-branch-moved-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:MergePullRequestByFastForward", "codecommit:PutFile"], "path": "behavioral/codecommit/check_concurrent_merge_after_branch_moved_rejected.py", "service": "codecommit"} {"check_id": "codecommit.concurrent-merge-to-same-branch-conflict-detected", "deployments": [], "key": "codecommit/concurrent-merge-to-same-branch-conflict-detected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:MergePullRequestByFastForward", "codecommit:PutFile"], "path": "behavioral/codecommit/check_concurrent_merge_to_same_branch_conflict_detected.py", "service": "codecommit"} {"check_id": "codecommit.concurrent-put-file-same-parent-single-winner", "deployments": [], "key": "codecommit/concurrent-put-file-same-parent-single-winner", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_concurrent_put_file_same_parent_single_winner.py", "service": "codecommit"} {"check_id": "codecommit.create-approval-rule-template-duplicate-name-rejected", "deployments": [], "key": "codecommit/create-approval-rule-template-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate"], "path": "behavioral/codecommit/check_create_approval_rule_template_duplicate_name_rejected.py", "service": "codecommit"} {"check_id": "codecommit.create-commit-branch-does-not-exist-rejected", "deployments": [], "key": "codecommit/create-commit-branch-does-not-exist-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:ListBranches", "codecommit:PutFile"], "path": "behavioral/codecommit/check_create_commit_branch_does_not_exist_rejected.py", "service": "codecommit"} {"check_id": "codecommit.create-commit-more-than-100-file-entries-rejected", "deployments": [], "key": "codecommit/create-commit-more-than-100-file-entries-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit"], "path": "behavioral/codecommit/check_create_commit_more_than_100_file_entries_rejected.py", "service": "codecommit"} {"check_id": "codecommit.create-commit-with-no-effective-change-rejected", "deployments": [], "key": "codecommit/create-commit-with-no-effective-change-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_create_commit_with_no_effective_change_rejected.py", "service": "codecommit"} {"check_id": "codecommit.create-pull-request-missing-token-rejected", "deployments": [], "key": "codecommit/create-pull-request-missing-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:ListPullRequests", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_create_pull_request_missing_token_rejected.py", "service": "codecommit"} {"check_id": "codecommit.create-repository-duplicate", "deployments": [], "key": "codecommit/create-repository-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepository"], "path": "behavioral/codecommit/check_create_repository_duplicate.py", "service": "codecommit"} {"check_id": "codecommit.delete-approval-rule-template-in-use-blocked", "deployments": [], "key": "codecommit/delete-approval-rule-template-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetApprovalRuleTemplate", "codecommit:ListRepositoriesForApprovalRuleTemplate"], "path": "behavioral/codecommit/check_delete_approval_rule_template_in_use_blocked.py", "service": "codecommit"} {"check_id": "codecommit.delete-comment-content-twice-rejected", "deployments": [], "key": "codecommit/delete-comment-content-twice-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteCommentContent", "codecommit:DeleteRepository", "codecommit:GetComment", "codecommit:PostCommentForComparedCommit", "codecommit:PutFile"], "path": "behavioral/codecommit/check_delete_comment_content_twice_rejected.py", "service": "codecommit"} {"check_id": "codecommit.delete-default-branch-rejected", "deployments": [], "key": "codecommit/delete-default-branch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteBranch", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetRepository", "codecommit:PutFile", "codecommit:UpdateDefaultBranch"], "path": "behavioral/codecommit/check_delete_default_branch_rejected.py", "service": "codecommit"} {"check_id": "codecommit.delete-file-on-tag-named-branch-blocked", "deployments": [], "key": "codecommit/delete-file-on-tag-named-branch-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteFile", "codecommit:DeleteRepository", "codecommit:GetFile"], "path": "behavioral/codecommit/check_delete_file_on_tag_named_branch_blocked.py", "service": "codecommit"} {"check_id": "codecommit.delete-file-restores-prior-tree-id", "deployments": [], "key": "codecommit/delete-file-restores-prior-tree-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteFile", "codecommit:DeleteRepository", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:GetFolder", "codecommit:PutFile"], "path": "behavioral/codecommit/check_delete_file_restores_prior_tree_id.py", "service": "codecommit"} {"check_id": "codecommit.delete-template-derived-approval-rule-rejected", "deployments": [], "key": "codecommit/delete-template-derived-approval-rule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeletePullRequestApprovalRule", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetPullRequest", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_delete_template_derived_approval_rule_rejected.py", "service": "codecommit"} {"check_id": "codecommit.delete-template-derived-pr-approval-rule-blocked", "deployments": [], "key": "codecommit/delete-template-derived-pr-approval-rule-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeletePullRequestApprovalRule", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:GetPullRequest", "codecommit:PutFile"], "path": "behavioral/codecommit/check_delete_template_derived_pr_approval_rule_blocked.py", "service": "codecommit"} {"check_id": "codecommit.deploy-codecommit-invalid-trigger-events-rejected", "deployments": [], "key": "codecommit/deploy-codecommit-invalid-trigger-events-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepositoryTriggers", "codecommit:PutRepositoryTriggers"], "path": "behavioral/codecommit/check_deploy_codecommit_invalid_trigger_events_rejected.py", "service": "codecommit"} {"check_id": "codecommit.deploy-codecommit-repository-behaves", "deployments": [], "key": "codecommit/deploy-codecommit-repository-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codecommit:CreateBranch", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:PutFile"], "path": "behavioral/codecommit/check_deploy_codecommit_repository_behaves.py", "service": "codecommit"} {"check_id": "codecommit.deploy-codecommit-repository-behaves-after-stack-create", "deployments": [], "key": "codecommit/deploy-codecommit-repository-behaves-after-stack-create", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codecommit:CreateBranch", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:GetRepository", "codecommit:PutFile"], "path": "behavioral/codecommit/check_deploy_codecommit_repository_behaves_after_stack_create.py", "service": "codecommit"} {"check_id": "codecommit.deploy-codecommit-repository-trigger-enforced", "deployments": [], "key": "codecommit/deploy-codecommit-repository-trigger-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codecommit:GetRepositoryTriggers", "codecommit:PutFile", "codecommit:TestRepositoryTriggers", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/codecommit/check_deploy_codecommit_repository_trigger_enforced.py", "service": "codecommit"} {"check_id": "codecommit.describe-merge-conflicts-detail-matches-summary", "deployments": [], "key": "codecommit/describe-merge-conflicts-detail-matches-summary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:DescribeMergeConflicts", "codecommit:GetMergeConflicts", "codecommit:PutFile"], "path": "behavioral/codecommit/check_describe_merge_conflicts_detail_matches_summary.py", "service": "codecommit"} {"check_id": "codecommit.describe-merge-conflicts-detects-real-conflict", "deployments": [], "key": "codecommit/describe-merge-conflicts-detects-real-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:DescribeMergeConflicts", "codecommit:PutFile"], "path": "behavioral/codecommit/check_describe_merge_conflicts_detects_real_conflict.py", "service": "codecommit"} {"check_id": "codecommit.e2e-approval-rule-template-governs-new-repository", "deployments": [], "key": "codecommit/e2e-approval-rule-template-governs-new-repository", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:AssociateApprovalRuleTemplateWithRepository", "codecommit:CreateApprovalRuleTemplate", "codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteApprovalRuleTemplate", "codecommit:DeletePullRequestApprovalRule", "codecommit:DeleteRepository", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetPullRequest", "codecommit:ListAssociatedApprovalRuleTemplatesForRepository", "codecommit:PutFile", "codecommit:UpdateDefaultBranch", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_e2e_approval_rule_template_governs_new_repository.py", "service": "codecommit"} {"check_id": "codecommit.e2e-merge-pull-request-approval-rules-not-satisfied-rejected", "deployments": [], "key": "codecommit/e2e-merge-pull-request-approval-rules-not-satisfied-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:MergePullRequestBySquash", "codecommit:PutFile", "codecommit:UpdateDefaultBranch", "codecommit:UpdatePullRequestApprovalState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_e2e_merge_pull_request_approval_rules_not_satisfied_rejected.py", "service": "codecommit"} {"check_id": "codecommit.e2e-pull-request-approval-and-merge-flow", "deployments": [], "key": "codecommit/e2e-pull-request-approval-and-merge-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetPullRequest", "codecommit:GetPullRequestApprovalStates", "codecommit:MergePullRequestBySquash", "codecommit:PutFile", "codecommit:UpdateDefaultBranch", "codecommit:UpdatePullRequestApprovalState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_e2e_pull_request_approval_and_merge_flow.py", "service": "codecommit"} {"check_id": "codecommit.e2e-pull-request-merge-flow", "deployments": [], "key": "codecommit/e2e-pull-request-merge-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:GetRepository", "codecommit:MergePullRequestByFastForward", "codecommit:PostCommentForPullRequest", "codecommit:PutFile"], "path": "behavioral/codecommit/check_e2e_pull_request_merge_flow.py", "service": "codecommit"} {"check_id": "codecommit.e2e-repository-branch-pr-merge-flow", "deployments": [], "key": "codecommit/e2e-repository-branch-pr-merge-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetRepository", "codecommit:MergePullRequestByThreeWay", "codecommit:PutFile"], "path": "behavioral/codecommit/check_e2e_repository_branch_pr_merge_flow.py", "service": "codecommit"} {"check_id": "codecommit.empty-branch-name-rejected", "deployments": [], "key": "codecommit/empty-branch-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteFile", "codecommit:DeleteRepository", "codecommit:GetBranch"], "path": "behavioral/codecommit/check_empty_branch_name_rejected.py", "service": "codecommit"} {"check_id": "codecommit.executable-and-symlink-file-modes-change-the-tree-id", "deployments": [], "key": "codecommit/executable-and-symlink-file-modes-change-the-tree-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlob", "codecommit:GetFile", "codecommit:GetFolder", "codecommit:PutFile"], "path": "behavioral/codecommit/check_executable_and_symlink_file_modes_change_the_tree_id.py", "service": "codecommit"} {"check_id": "codecommit.fast-forward-merge-refused-on-diverged-branches", "deployments": [], "key": "codecommit/fast-forward-merge-refused-on-diverged-branches", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:GetMergeOptions", "codecommit:MergeBranchesByFastForward", "codecommit:MergeBranchesByThreeWay", "codecommit:PutFile"], "path": "behavioral/codecommit/check_fast_forward_merge_refused_on_diverged_branches.py", "service": "codecommit"} {"check_id": "codecommit.file-commit-history-ordering", "deployments": [], "key": "codecommit/file-commit-history-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:ListFileCommitHistory", "codecommit:PutFile"], "path": "behavioral/codecommit/check_file_commit_history_ordering.py", "service": "codecommit"} {"check_id": "codecommit.get-blob-content-matches-put-file-byte-equality", "deployments": [], "key": "codecommit/get-blob-content-matches-put-file-byte-equality", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlob", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_blob_content_matches_put_file_byte_equality.py", "service": "codecommit"} {"check_id": "codecommit.get-blob-content-matches-written-file", "deployments": [], "key": "codecommit/get-blob-content-matches-written-file", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlob", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_blob_content_matches_written_file.py", "service": "codecommit"} {"check_id": "codecommit.get-blob-differences-between-commits", "deployments": [], "key": "codecommit/get-blob-differences-between-commits", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlobDifferences", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_blob_differences_between_commits.py", "service": "codecommit"} {"check_id": "codecommit.get-blob-differences-reflects-change", "deployments": [], "key": "codecommit/get-blob-differences-reflects-change", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlobDifferences", "codecommit:GetDifferences", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_blob_differences_reflects_change.py", "service": "codecommit"} {"check_id": "codecommit.get-commit-unknown-id-rejected", "deployments": [], "key": "codecommit/get-commit-unknown-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommit", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_commit_unknown_id_rejected.py", "service": "codecommit"} {"check_id": "codecommit.get-differences-between-commits", "deployments": [], "key": "codecommit/get-differences-between-commits", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetDifferences", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_differences_between_commits.py", "service": "codecommit"} {"check_id": "codecommit.get-differences-reflects-file-change", "deployments": [], "key": "codecommit/get-differences-reflects-file-change", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommit", "codecommit:GetDifferences", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_differences_reflects_file_change.py", "service": "codecommit"} {"check_id": "codecommit.get-differences-reports-exact-changed-paths-and-blob-ids", "deployments": [], "key": "codecommit/get-differences-reports-exact-changed-paths-and-blob-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetDifferences"], "path": "behavioral/codecommit/check_get_differences_reports_exact_changed_paths_and_blob_ids.py", "service": "codecommit"} {"check_id": "codecommit.get-file-content-matches-put-file", "deployments": [], "key": "codecommit/get-file-content-matches-put-file", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_file_content_matches_put_file.py", "service": "codecommit"} {"check_id": "codecommit.get-folder-lists-committed-files", "deployments": [], "key": "codecommit/get-folder-lists-committed-files", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetFolder", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_folder_lists_committed_files.py", "service": "codecommit"} {"check_id": "codecommit.get-folder-lists-put-files", "deployments": [], "key": "codecommit/get-folder-lists-put-files", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetFolder", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_folder_lists_put_files.py", "service": "codecommit"} {"check_id": "codecommit.get-folder-partitions-files-subfolders-and-symlinks", "deployments": [], "key": "codecommit/get-folder-partitions-files-subfolders-and-symlinks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetFile", "codecommit:GetFolder"], "path": "behavioral/codecommit/check_get_folder_partitions_files_subfolders_and_symlinks.py", "service": "codecommit"} {"check_id": "codecommit.get-merge-conflicts-detects-conflicting-edits", "deployments": [], "key": "codecommit/get-merge-conflicts-detects-conflicting-edits", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:DescribeMergeConflicts", "codecommit:GetMergeConflicts", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_merge_conflicts_detects_conflicting_edits.py", "service": "codecommit"} {"check_id": "codecommit.get-merge-conflicts-reports-conflicting-paths", "deployments": [], "key": "codecommit/get-merge-conflicts-reports-conflicting-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetMergeConflicts", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_merge_conflicts_reports_conflicting_paths.py", "service": "codecommit"} {"check_id": "codecommit.get-merge-options-and-conflicts-consistent", "deployments": [], "key": "codecommit/get-merge-options-and-conflicts-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetMergeConflicts", "codecommit:GetMergeOptions", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_merge_options_and_conflicts_consistent.py", "service": "codecommit"} {"check_id": "codecommit.get-merge-options-reflects-mergeability", "deployments": [], "key": "codecommit/get-merge-options-reflects-mergeability", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetMergeOptions", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_merge_options_reflects_mergeability.py", "service": "codecommit"} {"check_id": "codecommit.get-merge-options-returns-available-strategies", "deployments": [], "key": "codecommit/get-merge-options-returns-available-strategies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetMergeOptions", "codecommit:PutFile"], "path": "behavioral/codecommit/check_get_merge_options_returns_available_strategies.py", "service": "codecommit"} {"check_id": "codecommit.get-repository-not-found", "deployments": [], "key": "codecommit/get-repository-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepository"], "path": "behavioral/codecommit/check_get_repository_not_found.py", "service": "codecommit"} {"check_id": "codecommit.git-push-deny-without-the-null-reference-guard-blocks-every-branch", "deployments": [], "key": "codecommit/git-push-deny-without-the-null-reference-guard-blocks-every-branch", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:PutFile", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_git_push_deny_without_the_null_reference_guard_blocks_every_branch.py", "service": "codecommit"} {"check_id": "codecommit.git-push-non-fast-forward-refused-by-the-server", "deployments": [], "key": "codecommit/git-push-non-fast-forward-refused-by-the-server", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:PutFile", "iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/codecommit/check_git_push_non_fast_forward_refused_by_the_server.py", "service": "codecommit"} {"check_id": "codecommit.git-push-over-https-is-readable-through-the-api", "deployments": [], "key": "codecommit/git-push-over-https-is-readable-through-the-api", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlob", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:PutFile", "iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/codecommit/check_git_push_over_https_is_readable_through_the_api.py", "service": "codecommit"} {"check_id": "codecommit.identical-file-content-dedupes-to-one-blob-id", "deployments": [], "key": "codecommit/identical-file-content-dedupes-to-one-blob-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlob", "codecommit:GetFolder", "codecommit:PutFile"], "path": "behavioral/codecommit/check_identical_file_content_dedupes_to_one_blob_id.py", "service": "codecommit"} {"check_id": "codecommit.invalid-approval-rule-template-name-rejected", "deployments": [], "key": "codecommit/invalid-approval-rule-template-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate"], "path": "behavioral/codecommit/check_invalid_approval_rule_template_name_rejected.py", "service": "codecommit"} {"check_id": "codecommit.list-approval-rule-templates-invalid-continuation-token-rejected", "deployments": [], "key": "codecommit/list-approval-rule-templates-invalid-continuation-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:ListApprovalRuleTemplates"], "path": "behavioral/codecommit/check_list_approval_rule_templates_invalid_continuation_token_rejected.py", "service": "codecommit"} {"check_id": "codecommit.list-approval-rule-templates-invalid-max-results-rejected", "deployments": [], "key": "codecommit/list-approval-rule-templates-invalid-max-results-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:ListApprovalRuleTemplates"], "path": "behavioral/codecommit/check_list_approval_rule_templates_invalid_max_results_rejected.py", "service": "codecommit"} {"check_id": "codecommit.list-file-commit-history-chronological-order", "deployments": [], "key": "codecommit/list-file-commit-history-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:ListFileCommitHistory", "codecommit:PutFile"], "path": "behavioral/codecommit/check_list_file_commit_history_chronological_order.py", "service": "codecommit"} {"check_id": "codecommit.list-repositories-reflects-created", "deployments": [], "key": "codecommit/list-repositories-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepository", "codecommit:ListRepositories", "codecommit:UpdateRepositoryDescription"], "path": "behavioral/codecommit/check_list_repositories_reflects_created.py", "service": "codecommit"} {"check_id": "codecommit.malformed-approval-rule-content-rejected", "deployments": [], "key": "codecommit/malformed-approval-rule-content-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateApprovalRuleTemplate", "codecommit:DeleteApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_malformed_approval_rule_content_rejected.py", "service": "codecommit"} {"check_id": "codecommit.merge-branch-tag-name-rejected", "deployments": [], "key": "codecommit/merge-branch-tag-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetRepository", "codecommit:MergeBranchesByFastForward", "codecommit:PutFile", "iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/codecommit/check_merge_branch_tag_name_rejected.py", "service": "codecommit"} {"check_id": "codecommit.merge-of-a-closed-pull-request-rejected", "deployments": [], "key": "codecommit/merge-of-a-closed-pull-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:GetPullRequest", "codecommit:MergePullRequestByThreeWay", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_merge_of_a_closed_pull_request_rejected.py", "service": "codecommit"} {"check_id": "codecommit.merge-pull-request-concurrent-reference-update-conflict", "deployments": [], "key": "codecommit/merge-pull-request-concurrent-reference-update-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:MergePullRequestByFastForward", "codecommit:PutFile"], "path": "behavioral/codecommit/check_merge_pull_request_concurrent_reference_update_conflict.py", "service": "codecommit"} {"check_id": "codecommit.merge-pull-request-refused-when-approval-rules-not-satisfied", "deployments": [], "key": "codecommit/merge-pull-request-refused-when-approval-rules-not-satisfied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:GetPullRequest", "codecommit:GetPullRequestOverrideState", "codecommit:MergePullRequestByFastForward", "codecommit:OverridePullRequestApprovalRules", "codecommit:PutFile", "codecommit:UpdatePullRequestTitle"], "path": "behavioral/codecommit/check_merge_pull_request_refused_when_approval_rules_not_satisfied.py", "service": "codecommit"} {"check_id": "codecommit.merge-pull-request-squash-with-unresolved-conflicts-fails", "deployments": [], "key": "codecommit/merge-pull-request-squash-with-unresolved-conflicts-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:MergePullRequestBySquash", "codecommit:PutFile"], "path": "behavioral/codecommit/check_merge_pull_request_squash_with_unresolved_conflicts_fails.py", "service": "codecommit"} {"check_id": "codecommit.merge-pull-request-with-conflicts-rejected", "deployments": [], "key": "codecommit/merge-pull-request-with-conflicts-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:MergePullRequestBySquash", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_merge_pull_request_with_conflicts_rejected.py", "service": "codecommit"} {"check_id": "codecommit.merge-pull-request-with-unmet-approval-rules-blocked", "deployments": [], "key": "codecommit/merge-pull-request-with-unmet-approval-rules-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:MergePullRequestByThreeWay", "codecommit:OverridePullRequestApprovalRules", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_merge_pull_request_with_unmet_approval_rules_blocked.py", "service": "codecommit"} {"check_id": "codecommit.merge-rejected-when-approval-rules-not-satisfied", "deployments": [], "key": "codecommit/merge-rejected-when-approval-rules-not-satisfied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:MergePullRequestByFastForward", "codecommit:OverridePullRequestApprovalRules", "codecommit:PutFile"], "path": "behavioral/codecommit/check_merge_rejected_when_approval_rules_not_satisfied.py", "service": "codecommit"} {"check_id": "codecommit.post-comment-same-before-after-commit-rejected", "deployments": [], "key": "codecommit/post-comment-same-before-after-commit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommentsForComparedCommit", "codecommit:PostCommentForComparedCommit", "codecommit:PutFile"], "path": "behavioral/codecommit/check_post_comment_same_before_after_commit_rejected.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-approval-rule-lifecycle", "deployments": [], "key": "codecommit/pull-request-approval-rule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeletePullRequestApprovalRule", "codecommit:DeleteRepository", "codecommit:GetPullRequest", "codecommit:UpdatePullRequestApprovalRuleContent", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_pull_request_approval_rule_lifecycle.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-approval-state-transitions", "deployments": [], "key": "codecommit/pull-request-approval-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetPullRequestApprovalStates", "codecommit:PutFile", "codecommit:UpdatePullRequestApprovalState", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_pull_request_approval_state_transitions.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-approval-states-reflect-rule-evaluation", "deployments": [], "key": "codecommit/pull-request-approval-states-reflect-rule-evaluation", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetPullRequestApprovalStates", "codecommit:PutFile", "codecommit:UpdatePullRequestApprovalState", "codecommit:UpdatePullRequestStatus", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_pull_request_approval_states_reflect_rule_evaluation.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-comment-thread-anchors-to-the-diff-blob-ids", "deployments": [], "key": "codecommit/pull-request-comment-thread-anchors-to-the-diff-blob-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommentsForPullRequest", "codecommit:GetDifferences", "codecommit:PostCommentForPullRequest", "codecommit:PostCommentReply", "codecommit:PutFile"], "path": "behavioral/codecommit/check_pull_request_comment_thread_anchors_to_the_diff_blob_ids.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-empty-description-normalized-to-absent", "deployments": [], "key": "codecommit/pull-request-empty-description-normalized-to-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetPullRequest", "codecommit:PutFile", "codecommit:UpdatePullRequestDescription", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_pull_request_empty_description_normalized_to_absent.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-events-chronological-ordering", "deployments": [], "key": "codecommit/pull-request-events-chronological-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:DescribePullRequestEvents", "codecommit:GetPullRequest", "codecommit:MergePullRequestByThreeWay", "codecommit:PostCommentForPullRequest", "codecommit:PutFile"], "path": "behavioral/codecommit/check_pull_request_events_chronological_ordering.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-lifecycle-create-merge-close", "deployments": [], "key": "codecommit/pull-request-lifecycle-create-merge-close", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:MergePullRequestByFastForward", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_pull_request_lifecycle_create_merge_close.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-override-state-reflects-override", "deployments": [], "key": "codecommit/pull-request-override-state-reflects-override", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreatePullRequestApprovalRule", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetPullRequestOverrideState", "codecommit:OverridePullRequestApprovalRules", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_pull_request_override_state_reflects_override.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-reopen-after-close-rejected", "deployments": [], "key": "codecommit/pull-request-reopen-after-close-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetPullRequest", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_pull_request_reopen_after_close_rejected.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-reopen-rejected", "deployments": [], "key": "codecommit/pull-request-reopen-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_pull_request_reopen_rejected.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-status-lifecycle-transitions", "deployments": [], "key": "codecommit/pull-request-status-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetPullRequest", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_pull_request_status_lifecycle_transitions.py", "service": "codecommit"} {"check_id": "codecommit.pull-request-status-reopen-rejected", "deployments": [], "key": "codecommit/pull-request-status-reopen-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetPullRequest", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus"], "path": "behavioral/codecommit/check_pull_request_status_reopen_rejected.py", "service": "codecommit"} {"check_id": "codecommit.put-comment-reaction-get-reactions-reflects", "deployments": [], "key": "codecommit/put-comment-reaction-get-reactions-reflects", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommentReactions", "codecommit:PostCommentForPullRequest", "codecommit:PutCommentReaction", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_put_comment_reaction_get_reactions_reflects.py", "service": "codecommit"} {"check_id": "codecommit.put-comment-reaction-invalid-value-rejected", "deployments": [], "key": "codecommit/put-comment-reaction-invalid-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommentReactions", "codecommit:PostCommentForComparedCommit", "codecommit:PutCommentReaction", "codecommit:PutFile"], "path": "behavioral/codecommit/check_put_comment_reaction_invalid_value_rejected.py", "service": "codecommit"} {"check_id": "codecommit.put-file-concurrent-writes-optimistic-lock", "deployments": [], "key": "codecommit/put-file-concurrent-writes-optimistic-lock", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_put_file_concurrent_writes_optimistic_lock.py", "service": "codecommit"} {"check_id": "codecommit.put-file-get-file-content-matches", "deployments": [], "key": "codecommit/put-file-get-file-content-matches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_put_file_get_file_content_matches.py", "service": "codecommit"} {"check_id": "codecommit.put-file-on-nonexistent-branch-blocked", "deployments": [], "key": "codecommit/put-file-on-nonexistent-branch-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:ListBranches", "codecommit:PutFile"], "path": "behavioral/codecommit/check_put_file_on_nonexistent_branch_blocked.py", "service": "codecommit"} {"check_id": "codecommit.put-file-unicode-content-round-trip", "deployments": [], "key": "codecommit/put-file-unicode-content-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_put_file_unicode_content_round_trip.py", "service": "codecommit"} {"check_id": "codecommit.put-repository-triggers-invalid-destination-arn", "deployments": [], "key": "codecommit/put-repository-triggers-invalid-destination-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepositoryTriggers", "codecommit:PutRepositoryTriggers", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_put_repository_triggers_invalid_destination_arn.py", "service": "codecommit"} {"check_id": "codecommit.reads-blocked-when-the-repository-kms-key-is-disabled", "deployments": [], "key": "codecommit/reads-blocked-when-the-repository-kms-key-is-disabled", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlob", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:PutFile", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_reads_blocked_when_the_repository_kms_key_is_disabled.py", "service": "codecommit"} {"check_id": "codecommit.reference-condition-key-denies-api-writes-to-a-protected-branch", "deployments": [], "key": "codecommit/reference-condition-key-denies-api-writes-to-a-protected-branch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteFile", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:MergeBranchesByThreeWay", "codecommit:PutFile", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_reference_condition_key_denies_api_writes_to_a_protected_branch.py", "service": "codecommit"} {"check_id": "codecommit.repository-create-get-delete", "deployments": [], "key": "codecommit/repository-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetFile", "codecommit:GetRepository", "codecommit:ListRepositories", "codecommit:PutFile", "codecommit:UpdateRepositoryDescription"], "path": "behavioral/codecommit/check_repository_create_get_delete.py", "service": "codecommit"} {"check_id": "codecommit.repository-encryption-key-rotation-moves-the-dependency-not-just-the-field", "deployments": [], "key": "codecommit/repository-encryption-key-rotation-moves-the-dependency-not-just-the-field", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBlob", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:GetRepository", "codecommit:PutFile", "codecommit:UpdateRepositoryEncryptionKey", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/codecommit/check_repository_encryption_key_rotation_moves_the_dependency_not_just_the_field.py", "service": "codecommit"} {"check_id": "codecommit.repository-triggers-configure-and-test", "deployments": [], "key": "codecommit/repository-triggers-configure-and-test", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepositoryTriggers", "codecommit:PutRepositoryTriggers", "codecommit:TestRepositoryTriggers", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codecommit/check_repository_triggers_configure_and_test.py", "service": "codecommit"} {"check_id": "codecommit.squash-merge-collapses-history-but-keeps-the-three-way-tree", "deployments": [], "key": "codecommit/squash-merge-collapses-history-but-keeps-the-three-way-tree", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:CreateUnreferencedMergeCommit", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:GetFolder", "codecommit:MergeBranchesBySquash", "codecommit:PutFile"], "path": "behavioral/codecommit/check_squash_merge_collapses_history_but_keeps_the_three_way_tree.py", "service": "codecommit"} {"check_id": "codecommit.stale-parent-commit-id-rejected", "deployments": [], "key": "codecommit/stale-parent-commit-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteFile", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_stale_parent_commit_id_rejected.py", "service": "codecommit"} {"check_id": "codecommit.supplied-conflict-resolution-produces-the-resolved-blob", "deployments": [], "key": "codecommit/supplied-conflict-resolution-produces-the-resolved-blob", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:GetMergeConflicts", "codecommit:MergeBranchesByThreeWay", "codecommit:PutFile"], "path": "behavioral/codecommit/check_supplied_conflict_resolution_produces_the_resolved_blob.py", "service": "codecommit"} {"check_id": "codecommit.tag-resource-invalid-arn", "deployments": [], "key": "codecommit/tag-resource-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:ListTagsForResource", "codecommit:TagResource"], "path": "behavioral/codecommit/check_tag_resource_invalid_arn.py", "service": "codecommit"} {"check_id": "codecommit.tag-resource-list-untag-roundtrip", "deployments": [], "key": "codecommit/tag-resource-list-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:ListTagsForResource", "codecommit:TagResource", "codecommit:UntagResource"], "path": "behavioral/codecommit/check_tag_resource_list_untag_roundtrip.py", "service": "codecommit"} {"check_id": "codecommit.test-repository-triggers-invalid-config-blocked", "deployments": [], "key": "codecommit/test-repository-triggers-invalid-config-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:PutRepositoryTriggers", "codecommit:TestRepositoryTriggers", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/codecommit/check_test_repository_triggers_invalid_config_blocked.py", "service": "codecommit"} {"check_id": "codecommit.three-way-merge-then-conflict-resolved-succeeds", "deployments": [], "key": "codecommit/three-way-merge-then-conflict-resolved-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:MergeBranchesByThreeWay", "codecommit:PutFile"], "path": "behavioral/codecommit/check_three_way_merge_then_conflict_resolved_succeeds.py", "service": "codecommit"} {"check_id": "codecommit.unicode-commit-message-round-trip", "deployments": [], "key": "codecommit/unicode-commit-message-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateCommit", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetCommit"], "path": "behavioral/codecommit/check_unicode_commit_message_round_trip.py", "service": "codecommit"} {"check_id": "codecommit.unicode-file-content-round-trip", "deployments": [], "key": "codecommit/unicode-file-content-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetFile", "codecommit:PutFile"], "path": "behavioral/codecommit/check_unicode_file_content_round_trip.py", "service": "codecommit"} {"check_id": "codecommit.unreferenced-merge-commit-accept-source-tree", "deployments": [], "key": "codecommit/unreferenced-merge-commit-accept-source-tree", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:CreateUnreferencedMergeCommit", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetFile", "codecommit:GetMergeCommit", "codecommit:GetMergeConflicts", "codecommit:ListBranches", "codecommit:MergeBranchesByThreeWay", "codecommit:PutFile"], "path": "behavioral/codecommit/check_unreferenced_merge_commit_accept_source_tree.py", "service": "codecommit"} {"check_id": "codecommit.update-pull-request-title-after-close-rejected", "deployments": [], "key": "codecommit/update-pull-request-title-after-close-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetPullRequest", "codecommit:PutFile", "codecommit:UpdatePullRequestDescription", "codecommit:UpdatePullRequestStatus", "codecommit:UpdatePullRequestTitle"], "path": "behavioral/codecommit/check_update_pull_request_title_after_close_rejected.py", "service": "codecommit"} {"check_id": "codecommit.update-repository-description-reflected", "deployments": [], "key": "codecommit/update-repository-description-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepository", "codecommit:UpdateRepositoryDescription"], "path": "behavioral/codecommit/check_update_repository_description_reflected.py", "service": "codecommit"} {"check_id": "codecommit.update-repository-name-conflict", "deployments": [], "key": "codecommit/update-repository-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepository", "codecommit:UpdateRepositoryName"], "path": "behavioral/codecommit/check_update_repository_name_conflict.py", "service": "codecommit"} {"check_id": "codecommit.update-repository-name-reflected", "deployments": [], "key": "codecommit/update-repository-name-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepository", "codecommit:UpdateRepositoryName"], "path": "behavioral/codecommit/check_update_repository_name_reflected.py", "service": "codecommit"} {"check_id": "codecommit.update-title-on-closed-pull-request-rejected", "deployments": [], "key": "codecommit/update-title-on-closed-pull-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetPullRequest", "codecommit:UpdatePullRequestStatus", "codecommit:UpdatePullRequestTitle"], "path": "behavioral/codecommit/check_update_title_on_closed_pull_request_rejected.py", "service": "codecommit"} {"check_id": "codecommit__events__sqs.a-commit-refused-for-a-stale-parent-moves-no-reference-and-emits-no-state-change-event", "deployments": [], "key": "codecommit__events__sqs/a-commit-refused-for-a-stale-parent-moves-no-reference-and-emits-no-state-change-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetBranch", "codecommit:GetFile", "codecommit:PutFile", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codecommit__events__sqs/check_a_commit_refused_for_a_stale_parent_moves_no_reference_and_emits_no_state_change_event.py", "service": "codecommit__events__sqs"} {"check_id": "codecommit__events__sqs.pull-request-lifecycle-reaches-eventbridge-scoped-to-one-repository", "deployments": [], "key": "codecommit__events__sqs/pull-request-lifecycle-reaches-eventbridge-scoped-to-one-repository", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreatePullRequest", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:PutFile", "codecommit:UpdatePullRequestStatus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codecommit__events__sqs/check_pull_request_lifecycle_reaches_eventbridge_scoped_to_one_repository.py", "service": "codecommit__events__sqs"} {"check_id": "codecommit__lambda__logs.repository-trigger-invokes-lambda-with-a-payload-naming-the-ref-update", "deployments": [], "key": "codecommit__lambda__logs/repository-trigger-invokes-lambda-with-a-payload-naming-the-ref-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepositoryTriggers", "codecommit:PutFile", "codecommit:PutRepositoryTriggers", "codecommit:TestRepositoryTriggers", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/codecommit__lambda__logs/check_repository_trigger_invokes_lambda_with_a_payload_naming_the_ref_update.py", "service": "codecommit__lambda__logs"} {"check_id": "codecommit__sns__sqs.repository-trigger-fires-on-a-real-ref-update", "deployments": [], "key": "codecommit__sns__sqs/repository-trigger-fires-on-a-real-ref-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:GetRepositoryTriggers", "codecommit:PutFile", "codecommit:PutRepositoryTriggers", "codecommit:TestRepositoryTriggers", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/codecommit__sns__sqs/check_repository_trigger_fires_on_a_real_ref_update.py", "service": "codecommit__sns__sqs"} {"check_id": "codecommit__sns__sqs.trigger-notification-blocked-when-the-queue-policy-denies-the-topic", "deployments": [], "key": "codecommit__sns__sqs/trigger-notification-blocked-when-the-queue-policy-denies-the-topic", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["codecommit:CreateRepository", "codecommit:DeleteRepository", "codecommit:PutFile", "codecommit:PutRepositoryTriggers", "codecommit:TestRepositoryTriggers", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/codecommit__sns__sqs/check_trigger_notification_blocked_when_the_queue_policy_denies_the_topic.py", "service": "codecommit__sns__sqs"} {"check_id": "codeconnections.concurrent-create-connections-produce-unique-arns", "deployments": [], "key": "codeconnections/concurrent-create-connections-produce-unique-arns", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection"], "path": "behavioral/codeconnections/check_concurrent_create_connections_produce_unique_arns.py", "service": "codeconnections"} {"check_id": "codeconnections.concurrent-delete-connection-exactly-one-succeeds", "deployments": [], "key": "codeconnections/concurrent-delete-connection-exactly-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection"], "path": "behavioral/codeconnections/check_concurrent_delete_connection_exactly_one_succeeds.py", "service": "codeconnections"} {"check_id": "codeconnections.concurrent-tag-resource-no-lost-writes", "deployments": [], "key": "codeconnections/concurrent-tag-resource-no-lost-writes", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListTagsForResource", "codeconnections:TagResource"], "path": "behavioral/codeconnections/check_concurrent_tag_resource_no_lost_writes.py", "service": "codeconnections"} {"check_id": "codeconnections.connection-arn-never-reused-after-delete", "deployments": [], "key": "codeconnections/connection-arn-never-reused-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection", "codeconnections:TagResource"], "path": "behavioral/codeconnections/check_connection_arn_never_reused_after_delete.py", "service": "codeconnections"} {"check_id": "codeconnections.connection-created-in-pending-status", "deployments": [], "key": "codeconnections/connection-created-in-pending-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection"], "path": "behavioral/codeconnections/check_connection_created_in_pending_status.py", "service": "codeconnections"} {"check_id": "codeconnections.connection-delete-removes-and-not-found", "deployments": [], "key": "codeconnections/connection-delete-removes-and-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection", "codeconnections:ListConnections", "codeconnections:TagResource"], "path": "behavioral/codeconnections/check_connection_delete_removes_and_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.connection-invalid-provider-type-rejected", "deployments": [], "key": "codeconnections/connection-invalid-provider-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection", "codeconnections:ListConnections"], "path": "behavioral/codeconnections/check_connection_invalid_provider_type_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.connection-malformed-host-arn-rejected", "deployments": [], "key": "codeconnections/connection-malformed-host-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection", "codeconnections:ListConnections"], "path": "behavioral/codeconnections/check_connection_malformed_host_arn_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.connection-name-exceeds-max-length-rejected", "deployments": [], "key": "codeconnections/connection-name-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection", "codeconnections:ListConnections"], "path": "behavioral/codeconnections/check_connection_name_exceeds_max_length_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.connection-reflects-provider-type-without-host", "deployments": [], "key": "codeconnections/connection-reflects-provider-type-without-host", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection"], "path": "behavioral/codeconnections/check_connection_reflects_provider_type_without_host.py", "service": "codeconnections"} {"check_id": "codeconnections.create-connection-with-nonexistent-host-rejected", "deployments": [], "key": "codeconnections/create-connection-with-nonexistent-host-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection", "codeconnections:ListConnections", "sts:GetCallerIdentity"], "path": "behavioral/codeconnections/check_create_connection_with_nonexistent_host_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.create-connection-with-pending-host-succeeds", "deployments": [], "key": "codeconnections/create-connection-with-pending-host-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateHost", "codeconnections:DeleteConnection", "codeconnections:DeleteHost", "codeconnections:GetConnection", "codeconnections:GetHost", "codeconnections:ListConnections"], "path": "behavioral/codeconnections/check_create_connection_with_pending_host_succeeds.py", "service": "codeconnections"} {"check_id": "codeconnections.create-connection-with-tags-reflected", "deployments": [], "key": "codeconnections/create-connection-with-tags-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListTagsForResource"], "path": "behavioral/codeconnections/check_create_connection_with_tags_reflected.py", "service": "codeconnections"} {"check_id": "codeconnections.create-host-provider-endpoint-exceeding-max-length-rejected", "deployments": [], "key": "codeconnections/create-host-provider-endpoint-exceeding-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateHost", "codeconnections:DeleteHost", "codeconnections:GetHost", "codeconnections:ListHosts"], "path": "behavioral/codeconnections/check_create_host_provider_endpoint_exceeding_max_length_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.create-repository-link-duplicate-rejected", "deployments": [], "key": "codeconnections/create-repository-link-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:GetRepositoryLink", "codeconnections:ListRepositoryLinks"], "path": "behavioral/codeconnections/check_create_repository_link_duplicate_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.create-repository-link-inaccessible-connection-rejected", "deployments": [], "key": "codeconnections/create-repository-link-inaccessible-connection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:GetConnection", "codeconnections:GetRepositoryLink", "codeconnections:ListRepositoryLinks"], "path": "behavioral/codeconnections/check_create_repository_link_inaccessible_connection_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.create-repository-link-with-tags-reflected", "deployments": [], "key": "codeconnections/create-repository-link-with-tags-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:ListTagsForResource", "codeconnections:TagResource"], "path": "behavioral/codeconnections/check_create_repository_link_with_tags_reflected.py", "service": "codeconnections"} {"check_id": "codeconnections.delete-repository-link-blocked-by-active-sync-configuration-rejected", "deployments": [], "key": "codeconnections/delete-repository-link-blocked-by-active-sync-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:CreateSyncConfiguration", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:DeleteSyncConfiguration", "codeconnections:GetRepositoryLink", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codeconnections/check_delete_repository_link_blocked_by_active_sync_configuration_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.delete-repository-link-not-found", "deployments": [], "key": "codeconnections/delete-repository-link-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:DeleteRepositoryLink", "codeconnections:ListRepositoryLinks"], "path": "behavioral/codeconnections/check_delete_repository_link_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.delete-sync-configuration-nonexistent-is-idempotent", "deployments": [], "key": "codeconnections/delete-sync-configuration-nonexistent-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:DeleteSyncConfiguration", "codeconnections:GetSyncConfiguration"], "path": "behavioral/codeconnections/check_delete_sync_configuration_nonexistent_is_idempotent.py", "service": "codeconnections"} {"check_id": "codeconnections.get-connection-not-found", "deployments": [], "key": "codeconnections/get-connection-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:GetConnection"], "path": "behavioral/codeconnections/check_get_connection_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.get-host-not-found", "deployments": [], "key": "codeconnections/get-host-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateHost", "codeconnections:DeleteHost", "codeconnections:GetHost", "sts:GetCallerIdentity"], "path": "behavioral/codeconnections/check_get_host_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.get-repository-link-not-found", "deployments": [], "key": "codeconnections/get-repository-link-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:GetRepositoryLink", "codeconnections:ListRepositoryLinks"], "path": "behavioral/codeconnections/check_get_repository_link_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.get-repository-sync-status-not-found", "deployments": [], "key": "codeconnections/get-repository-sync-status-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:GetRepositorySyncStatus"], "path": "behavioral/codeconnections/check_get_repository_sync_status_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.get-resource-sync-status-not-found", "deployments": [], "key": "codeconnections/get-resource-sync-status-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:GetResourceSyncStatus"], "path": "behavioral/codeconnections/check_get_resource_sync_status_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.get-sync-blocker-summary-not-found", "deployments": [], "key": "codeconnections/get-sync-blocker-summary-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:GetSyncBlockerSummary"], "path": "behavioral/codeconnections/check_get_sync_blocker_summary_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.get-sync-configuration-not-found", "deployments": [], "key": "codeconnections/get-sync-configuration-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:CreateSyncConfiguration", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:DeleteSyncConfiguration", "codeconnections:GetSyncConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codeconnections/check_get_sync_configuration_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.host-created-in-pending-status", "deployments": [], "key": "codeconnections/host-created-in-pending-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateHost", "codeconnections:DeleteHost", "codeconnections:GetHost"], "path": "behavioral/codeconnections/check_host_created_in_pending_status.py", "service": "codeconnections"} {"check_id": "codeconnections.host-delete-removes-and-not-found", "deployments": [], "key": "codeconnections/host-delete-removes-and-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateHost", "codeconnections:DeleteHost", "codeconnections:GetHost", "codeconnections:ListHosts", "codeconnections:UpdateHost"], "path": "behavioral/codeconnections/check_host_delete_removes_and_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.host-reflects-fields-without-vpc", "deployments": [], "key": "codeconnections/host-reflects-fields-without-vpc", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateHost", "codeconnections:DeleteHost", "codeconnections:GetHost"], "path": "behavioral/codeconnections/check_host_reflects_fields_without_vpc.py", "service": "codeconnections"} {"check_id": "codeconnections.list-connections-bad-host-arn-filter-not-found", "deployments": [], "key": "codeconnections/list-connections-bad-host-arn-filter-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:ListConnections"], "path": "behavioral/codeconnections/check_list_connections_bad_host_arn_filter_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.list-connections-reflects-created-and-provider-filter", "deployments": [], "key": "codeconnections/list-connections-reflects-created-and-provider-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListConnections"], "path": "behavioral/codeconnections/check_list_connections_reflects_created_and_provider_filter.py", "service": "codeconnections"} {"check_id": "codeconnections.list-connections-reflects-lifecycle", "deployments": [], "key": "codeconnections/list-connections-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListConnections"], "path": "behavioral/codeconnections/check_list_connections_reflects_lifecycle.py", "service": "codeconnections"} {"check_id": "codeconnections.list-hosts-reflects-lifecycle", "deployments": [], "key": "codeconnections/list-hosts-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateHost", "codeconnections:DeleteHost", "codeconnections:ListHosts"], "path": "behavioral/codeconnections/check_list_hosts_reflects_lifecycle.py", "service": "codeconnections"} {"check_id": "codeconnections.list-repository-sync-definitions-bad-link-not-found", "deployments": [], "key": "codeconnections/list-repository-sync-definitions-bad-link-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:ListRepositorySyncDefinitions"], "path": "behavioral/codeconnections/check_list_repository_sync_definitions_bad_link_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.list-sync-configurations-bad-link-not-found", "deployments": [], "key": "codeconnections/list-sync-configurations-bad-link-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:ListSyncConfigurations"], "path": "behavioral/codeconnections/check_list_sync_configurations_bad_link_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.list-tags-for-resource-not-found", "deployments": [], "key": "codeconnections/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListTagsForResource"], "path": "behavioral/codeconnections/check_list_tags_for_resource_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.tag-resource-limit-exceeded-rejected", "deployments": [], "key": "codeconnections/tag-resource-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListTagsForResource", "codeconnections:TagResource", "codeconnections:UntagResource"], "path": "behavioral/codeconnections/check_tag_resource_limit_exceeded_rejected.py", "service": "codeconnections"} {"check_id": "codeconnections.tag-resource-overwrite-updates-value", "deployments": [], "key": "codeconnections/tag-resource-overwrite-updates-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListTagsForResource", "codeconnections:TagResource"], "path": "behavioral/codeconnections/check_tag_resource_overwrite_updates_value.py", "service": "codeconnections"} {"check_id": "codeconnections.tag-resource-round-trip", "deployments": [], "key": "codeconnections/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListTagsForResource", "codeconnections:TagResource", "codeconnections:UntagResource"], "path": "behavioral/codeconnections/check_tag_resource_round_trip.py", "service": "codeconnections"} {"check_id": "codeconnections.untag-resource-removes-tag", "deployments": [], "key": "codeconnections/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:DeleteConnection", "codeconnections:ListTagsForResource", "codeconnections:TagResource", "codeconnections:UntagResource"], "path": "behavioral/codeconnections/check_untag_resource_removes_tag.py", "service": "codeconnections"} {"check_id": "codeconnections.update-repository-link-not-found", "deployments": [], "key": "codeconnections/update-repository-link-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:ListRepositoryLinks", "codeconnections:UpdateRepositoryLink"], "path": "behavioral/codeconnections/check_update_repository_link_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.update-sync-blocker-not-found", "deployments": [], "key": "codeconnections/update-sync-blocker-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:UpdateSyncBlocker"], "path": "behavioral/codeconnections/check_update_sync_blocker_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.update-sync-configuration-not-found", "deployments": [], "key": "codeconnections/update-sync-configuration-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeconnections:UpdateSyncConfiguration"], "path": "behavioral/codeconnections/check_update_sync_configuration_not_found.py", "service": "codeconnections"} {"check_id": "codeconnections.update-sync-configuration-publish-deployment-status", "deployments": [], "key": "codeconnections/update-sync-configuration-publish-deployment-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeconnections:CreateConnection", "codeconnections:CreateRepositoryLink", "codeconnections:CreateSyncConfiguration", "codeconnections:DeleteConnection", "codeconnections:DeleteRepositoryLink", "codeconnections:DeleteSyncConfiguration", "codeconnections:GetSyncConfiguration", "codeconnections:UpdateSyncConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/codeconnections/check_update_sync_configuration_publish_deployment_status.py", "service": "codeconnections"} {"check_id": "codedeploy.add-tags-onprem-instance-not-registered-rejected", "deployments": [], "key": "codedeploy/add-tags-onprem-instance-not-registered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "iam:CreateUser", "iam:DeleteUser"], "path": "behavioral/codedeploy/check_add_tags_onprem_instance_not_registered_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.after-allow-traffic-hook-failure-triggers-deployment-failure-rollback", "deployments": [], "key": "codedeploy/after-allow-traffic-hook-failure-triggers-deployment-failure-rollback", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_after_allow_traffic_hook_failure_triggers_deployment_failure_rollback.py", "service": "codedeploy"} {"check_id": "codedeploy.after-allow-traffic-hook-failure-without-auto-rollback-leaves-alias-at-target", "deployments": [], "key": "codedeploy/after-allow-traffic-hook-failure-without-auto-rollback-leaves-alias-at-target", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_after_allow_traffic_hook_failure_without_auto_rollback_leaves_alias_at_target.py", "service": "codedeploy"} {"check_id": "codedeploy.agent-hands-the-hook-the-real-deployment-identifiers", "deployments": [], "key": "codedeploy/agent-hands-the-hook-the-real-deployment-identifiers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:StopDeployment", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_agent_hands_the_hook_the_real_deployment_identifiers.py", "service": "codedeploy"} {"check_id": "codedeploy.alarm-breach-auto-rolls-back-deployment-and-restores-alias", "deployments": [], "key": "codedeploy/alarm-breach-auto-rolls-back-deployment-and-restores-alias", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_alarm_breach_auto_rolls_back_deployment_and_restores_alias.py", "service": "codedeploy"} {"check_id": "codedeploy.alarm-rollback-returns-live-traffic-to-prior-version", "deployments": [], "key": "codedeploy/alarm-rollback-returns-live-traffic-to-prior-version", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/codedeploy/check_alarm_rollback_returns_live_traffic_to_prior_version.py", "service": "codedeploy"} {"check_id": "codedeploy.application-revision-description-round-trip", "deployments": [], "key": "codedeploy/application-revision-description-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision"], "path": "behavioral/codedeploy/check_application_revision_description_round_trip.py", "service": "codedeploy"} {"check_id": "codedeploy.application-revision-description-unicode-round-trip", "deployments": [], "key": "codedeploy/application-revision-description-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_application_revision_description_unicode_round_trip.py", "service": "codedeploy"} {"check_id": "codedeploy.application-revision-register-get-list-lifecycle", "deployments": [], "key": "codedeploy/application-revision-register-get-list-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplicationRevision", "codedeploy:ListApplicationRevisions", "codedeploy:RegisterApplicationRevision", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codedeploy/check_application_revision_register_get_list_lifecycle.py", "service": "codedeploy"} {"check_id": "codedeploy.application-revision-register-list-get-lifecycle", "deployments": [], "key": "codedeploy/application-revision-register-list-get-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplicationRevision", "codedeploy:ListApplicationRevisions", "codedeploy:RegisterApplicationRevision"], "path": "behavioral/codedeploy/check_application_revision_register_list_get_lifecycle.py", "service": "codedeploy"} {"check_id": "codedeploy.applicationstop-hook-failure-blocks-redeploy-until-ignored", "deployments": [], "key": "codedeploy/applicationstop-hook-failure-blocks-redeploy-until-ignored", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_applicationstop_hook_failure_blocks_redeploy_until_ignored.py", "service": "codedeploy"} {"check_id": "codedeploy.appspec-naming-nonexistent-alias-rejected-and-alias-not-created", "deployments": [], "key": "codedeploy/appspec-naming-nonexistent-alias-rejected-and-alias-not-created", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_appspec_naming_nonexistent_alias_rejected_and_alias_not_created.py", "service": "codedeploy"} {"check_id": "codedeploy.auto-rollback-on-deployment-failure-reinstalls-the-prior-artifact", "deployments": [], "key": "codedeploy/auto-rollback-on-deployment-failure-reinstalls-the-prior-artifact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_auto_rollback_on_deployment_failure_reinstalls_the_prior_artifact.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-application-revisions-matches-individual-gets", "deployments": [], "key": "codedeploy/batch-get-application-revisions-matches-individual-gets", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:BatchGetApplicationRevisions", "codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision"], "path": "behavioral/codedeploy/check_batch_get_application_revisions_matches_individual_gets.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-applications-reflects-created", "deployments": [], "key": "codedeploy/batch-get-applications-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:BatchGetApplications", "codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplication"], "path": "behavioral/codedeploy/check_batch_get_applications_reflects_created.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-deployment-instances-matches-individual-gets", "deployments": [], "key": "codedeploy/batch-get-deployment-instances-matches-individual-gets", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:BatchGetDeploymentInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeploymentInstance", "codedeploy:ListDeploymentInstances", "codedeploy:RegisterOnPremisesInstance", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_batch_get_deployment_instances_matches_individual_gets.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-deployment-targets-lambda-target-shape", "deployments": [], "key": "codedeploy/batch-get-deployment-targets-lambda-target-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:BatchGetDeploymentTargets", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_batch_get_deployment_targets_lambda_target_shape.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-deployment-targets-matches-individual-gets", "deployments": [], "key": "codedeploy/batch-get-deployment-targets-matches-individual-gets", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:BatchGetDeploymentTargets", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:RegisterOnPremisesInstance", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_batch_get_deployment_targets_matches_individual_gets.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-deployment-targets-reflects-instances", "deployments": [], "key": "codedeploy/batch-get-deployment-targets-reflects-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:BatchGetDeploymentTargets", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:ListDeploymentInstances", "codedeploy:ListDeploymentTargets", "codedeploy:RegisterOnPremisesInstance", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_batch_get_deployment_targets_reflects_instances.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-deployments-limit-exceeded-rejected", "deployments": [], "key": "codedeploy/batch-get-deployments-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:BatchGetDeployments", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codedeploy/check_batch_get_deployments_limit_exceeded_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-deployments-matches-individual-gets", "deployments": [], "key": "codedeploy/batch-get-deployments-matches-individual-gets", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:BatchGetDeployments", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeployment", "codedeploy:RegisterOnPremisesInstance", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_batch_get_deployments_matches_individual_gets.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-on-premises-instances-limit-exceeded-rejected", "deployments": [], "key": "codedeploy/batch-get-on-premises-instances-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:BatchGetOnPremisesInstances"], "path": "behavioral/codedeploy/check_batch_get_on_premises_instances_limit_exceeded_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.batch-get-on-premises-instances-matches-individual-gets", "deployments": [], "key": "codedeploy/batch-get-on-premises-instances-matches-individual-gets", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:BatchGetOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "iam:CreateUser", "iam:DeleteUser"], "path": "behavioral/codedeploy/check_batch_get_on_premises_instances_matches_individual_gets.py", "service": "codedeploy"} {"check_id": "codedeploy.concurrent-create-deployment-one-wins-rest-rejected", "deployments": [], "key": "codedeploy/concurrent-create-deployment-one-wins-rest-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["codedeploy:BatchGetDeployments", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_concurrent_create_deployment_one_wins_rest_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.concurrent-deployment-same-group-rejected-while-active", "deployments": [], "key": "codedeploy/concurrent-deployment-same-group-rejected-while-active", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codedeploy:BatchGetDeployments", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_concurrent_deployment_same_group_rejected_while_active.py", "service": "codedeploy"} {"check_id": "codedeploy.continue-deployment-already-completed-rejected", "deployments": [], "key": "codedeploy/continue-deployment-already-completed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:ContinueDeployment", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_continue_deployment_already_completed_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-application-duplicate", "deployments": [], "key": "codedeploy/create-application-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplication"], "path": "behavioral/codedeploy/check_create_application_duplicate.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-alarms-limit-exceeded-rejected", "deployments": [], "key": "codedeploy/create-deployment-alarms-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codedeploy/check_create_deployment_alarms_limit_exceeded_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-config-duplicate", "deployments": [], "key": "codedeploy/create-deployment-config-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateDeploymentConfig", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig"], "path": "behavioral/codedeploy/check_create_deployment_config_duplicate.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-config-invalid-min-healthy-rejected", "deployments": [], "key": "codedeploy/create-deployment-config-invalid-min-healthy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateDeploymentConfig", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig"], "path": "behavioral/codedeploy/check_create_deployment_config_invalid_min_healthy_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-config-server-with-traffic-routing-rejected", "deployments": [], "key": "codedeploy/create-deployment-config-server-with-traffic-routing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateDeploymentConfig", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig"], "path": "behavioral/codedeploy/check_create_deployment_config_server_with_traffic_routing_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-group-conflicting-tag-filters-rejected", "deployments": [], "key": "codedeploy/create-deployment-group-conflicting-tag-filters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_create_deployment_group_conflicting_tag_filters_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-group-ecs-without-load-balancer-info-rejected", "deployments": [], "key": "codedeploy/create-deployment-group-ecs-without-load-balancer-info-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codedeploy/check_create_deployment_group_ecs_without_load_balancer_info_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-missing-application-name-rejected", "deployments": [], "key": "codedeploy/create-deployment-missing-application-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_create_deployment_missing_application_name_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-nonexistent-application-rejected", "deployments": [], "key": "codedeploy/create-deployment-nonexistent-application-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_create_deployment_nonexistent_application_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-nonexistent-deployment-group-rejected", "deployments": [], "key": "codedeploy/create-deployment-nonexistent-deployment-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeploymentGroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_create_deployment_nonexistent_deployment_group_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-rejects-malformed-appspec-content", "deployments": [], "key": "codedeploy/create-deployment-rejects-malformed-appspec-content", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_create_deployment_rejects_malformed_appspec_content.py", "service": "codedeploy"} {"check_id": "codedeploy.create-deployment-revision-does-not-exist-rejected", "deployments": [], "key": "codedeploy/create-deployment-revision-does-not-exist-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplicationRevision", "codedeploy:ListApplicationRevisions", "codedeploy:RegisterApplicationRevision", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codedeploy/check_create_deployment_revision_does_not_exist_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.create-get-delete-application", "deployments": [], "key": "codedeploy/create-get-delete-application", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplication", "codedeploy:ListApplications", "codedeploy:UpdateApplication"], "path": "behavioral/codedeploy/check_create_get_delete_application.py", "service": "codedeploy"} {"check_id": "codedeploy.create-get-delete-deployment-config", "deployments": [], "key": "codedeploy/create-get-delete-deployment-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateDeploymentConfig", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig"], "path": "behavioral/codedeploy/check_create_get_delete_deployment_config.py", "service": "codedeploy"} {"check_id": "codedeploy.delete-github-account-token-nonexistent-fails", "deployments": [], "key": "codedeploy/delete-github-account-token-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeleteGitHubAccountToken", "codedeploy:ListGitHubAccountTokenNames"], "path": "behavioral/codedeploy/check_delete_github_account_token_nonexistent_fails.py", "service": "codedeploy"} {"check_id": "codedeploy.delete-github-account-token-nonexistent-is-noop", "deployments": [], "key": "codedeploy/delete-github-account-token-nonexistent-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:DeleteGitHubAccountToken", "codedeploy:ListApplications", "codedeploy:ListGitHubAccountTokenNames"], "path": "behavioral/codedeploy/check_delete_github_account_token_nonexistent_is_noop.py", "service": "codedeploy"} {"check_id": "codedeploy.delete-predefined-deployment-config-fails", "deployments": [], "key": "codedeploy/delete-predefined-deployment-config-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateDeploymentConfig", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig"], "path": "behavioral/codedeploy/check_delete_predefined_deployment_config_fails.py", "service": "codedeploy"} {"check_id": "codedeploy.deploy-application-behaves-as-deployment-target", "deployments": [], "key": "codedeploy/deploy-application-behaves-as-deployment-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_deploy_application_behaves_as_deployment_target.py", "service": "codedeploy"} {"check_id": "codedeploy.deploy-codedeploy-application-behaves", "deployments": [], "key": "codedeploy/deploy-codedeploy-application-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codedeploy:CreateDeployment", "codedeploy:GetDeployment", "codedeploy:ListDeploymentGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_deploy_codedeploy_application_behaves.py", "service": "codedeploy"} {"check_id": "codedeploy.deploy-codedeploy-application-cfn-behaves", "deployments": [], "key": "codedeploy/deploy-codedeploy-application-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:ListDeploymentGroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_deploy_codedeploy_application_cfn_behaves.py", "service": "codedeploy"} {"check_id": "codedeploy.deploy-codedeploy-deploymentgroup-cfn-autorollback-enforced", "deployments": [], "key": "codedeploy/deploy-codedeploy-deploymentgroup-cfn-autorollback-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_deploy_codedeploy_deploymentgroup_cfn_autorollback_enforced.py", "service": "codedeploy"} {"check_id": "codedeploy.deploy-deploymentgroup-accepts-deployment", "deployments": [], "key": "codedeploy/deploy-deploymentgroup-accepts-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:DeleteApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_deploy_deploymentgroup_accepts_deployment.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-config-canary-routing-reflected", "deployments": [], "key": "codedeploy/deployment-config-canary-routing-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateDeploymentConfig", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig"], "path": "behavioral/codedeploy/check_deployment_config_canary_routing_reflected.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-create-get-list-lifecycle", "deployments": [], "key": "codedeploy/deployment-create-get-list-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "codedeploy:RegisterOnPremisesInstance", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_deployment_create_get_list_lifecycle.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-create-observe-terminal-status", "deployments": [], "key": "codedeploy/deployment-create-observe-terminal-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_deployment_create_observe_terminal_status.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-create-stop-status-transition", "deployments": [], "key": "codedeploy/deployment-create-stop-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeployment", "codedeploy:RegisterOnPremisesInstance", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_deployment_create_stop_status_transition.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-creation-timestamp-precision-preserved", "deployments": [], "key": "codedeploy/deployment-creation-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:BatchGetDeployments", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_deployment_creation_timestamp_precision_preserved.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-alarm-in-alarm-state-blocks-the-deployment", "deployments": [], "key": "codedeploy/deployment-group-alarm-in-alarm-state-blocks-the-deployment", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_deployment_group_alarm_in_alarm_state_blocks_the_deployment.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-auto-rollback-empty-events-rejected", "deployments": [], "key": "codedeploy/deployment-group-auto-rollback-empty-events-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "codedeploy:UpdateDeploymentGroup", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_auto_rollback_empty_events_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-blue-green-config-without-blue-green-style-rejected", "deployments": [], "key": "codedeploy/deployment-group-blue-green-config-without-blue-green-style-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_blue_green_config_without_blue_green_style_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-duplicate-name-rejected", "deployments": [], "key": "codedeploy/deployment-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_duplicate_name_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-ec2-tag-filters-and-tag-set-conflict", "deployments": [], "key": "codedeploy/deployment-group-ec2-tag-filters-and-tag-set-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_ec2_tag_filters_and_tag_set_conflict.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-invalid-role-rejected", "deployments": [], "key": "codedeploy/deployment-group-invalid-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_deployment_group_invalid_role_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-nonexistent-deployment-config-rejected", "deployments": [], "key": "codedeploy/deployment-group-nonexistent-deployment-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentConfig", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_nonexistent_deployment_config_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-onprem-tag-filter-lifecycle", "deployments": [], "key": "codedeploy/deployment-group-onprem-tag-filter-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:UpdateDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_onprem_tag_filter_lifecycle.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-optional-fields-empty-vs-absent-preserved", "deployments": [], "key": "codedeploy/deployment-group-optional-fields-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:UpdateDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_optional_fields_empty_vs_absent_preserved.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-tag-filter-empty-vs-absent-preserved", "deployments": [], "key": "codedeploy/deployment-group-tag-filter-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_tag_filter_empty_vs_absent_preserved.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-trigger-configurations-round-trip", "deployments": [], "key": "codedeploy/deployment-group-trigger-configurations-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:GetDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codedeploy/check_deployment_group_trigger_configurations_round_trip.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-update-changes-persist", "deployments": [], "key": "codedeploy/deployment-group-update-changes-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:UpdateDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_update_changes_persist.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-group-update-reflected-lifecycle", "deployments": [], "key": "codedeploy/deployment-group-update-reflected-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:UpdateDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_deployment_group_update_reflected_lifecycle.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-instance-lifecycle-transitions", "deployments": [], "key": "codedeploy/deployment-instance-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeployment", "codedeploy:GetDeploymentInstance", "codedeploy:ListDeploymentInstances", "codedeploy:RegisterOnPremisesInstance", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_deployment_instance_lifecycle_transitions.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-rollback-restores-alias-and-records-both-deployments", "deployments": [], "key": "codedeploy/deployment-rollback-restores-alias-and-records-both-deployments", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:ListVersionsByFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_deployment_rollback_restores_alias_and_records_both_deployments.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-service-role-without-lambda-permission-denied-and-alias-unmoved", "deployments": [], "key": "codedeploy/deployment-service-role-without-lambda-permission-denied-and-alias-unmoved", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_deployment_service_role_without_lambda_permission_denied_and_alias_unmoved.py", "service": "codedeploy"} {"check_id": "codedeploy.deployment-target-lifecycle-transitions", "deployments": [], "key": "codedeploy/deployment-target-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:RegisterOnPremisesInstance", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_deployment_target_lifecycle_transitions.py", "service": "codedeploy"} {"check_id": "codedeploy.deregister-invalid-instance-name-rejected", "deployments": [], "key": "codedeploy/deregister-invalid-instance-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "iam:CreateUser", "iam:DeleteUser"], "path": "behavioral/codedeploy/check_deregister_invalid_instance_name_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.deregister-onprem-instance-invalid-name-rejected", "deployments": [], "key": "codedeploy/deregister-onprem-instance-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "iam:CreateUser", "iam:DeleteUser"], "path": "behavioral/codedeploy/check_deregister_onprem_instance_invalid_name_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.deregister-onprem-instance-missing-name-rejected", "deployments": [], "key": "codedeploy/deregister-onprem-instance-missing-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_deregister_onprem_instance_missing_name_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.e2e-application-deployment-revision-flow", "deployments": [], "key": "codedeploy/e2e-application-deployment-revision-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:ListApplicationRevisions", "codedeploy:RegisterApplicationRevision", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_e2e_application_deployment_revision_flow.py", "service": "codedeploy"} {"check_id": "codedeploy.e2e-application-deploymentgroup-deployment-stop-flow", "deployments": [], "key": "codedeploy/e2e-application-deploymentgroup-deployment-stop-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentInstances", "codedeploy:RegisterOnPremisesInstance", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_e2e_application_deploymentgroup_deployment_stop_flow.py", "service": "codedeploy"} {"check_id": "codedeploy.e2e-application-revision-tracking-flow", "deployments": [], "key": "codedeploy/e2e-application-revision-tracking-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:BatchGetApplicationRevisions", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListApplicationRevisions", "codedeploy:RegisterApplicationRevision", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_e2e_application_revision_tracking_flow.py", "service": "codedeploy"} {"check_id": "codedeploy.e2e-on-premises-instance-tag-and-deploy", "deployments": [], "key": "codedeploy/e2e-on-premises-instance-tag-and-deploy", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:ListDeploymentInstances", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_e2e_on_premises_instance_tag_and_deploy.py", "service": "codedeploy"} {"check_id": "codedeploy.e2e-onprem-deployment-full-flow", "deployments": [], "key": "codedeploy/e2e-onprem-deployment-full-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:GetOnPremisesInstance", "codedeploy:ListDeploymentInstances", "codedeploy:ListDeploymentTargets", "codedeploy:RegisterOnPremisesInstance", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_e2e_onprem_deployment_full_flow.py", "service": "codedeploy"} {"check_id": "codedeploy.e2e-onprem-instance-tag-filter-flow", "deployments": [], "key": "codedeploy/e2e-onprem-instance-tag-filter-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_e2e_onprem_instance_tag_filter_flow.py", "service": "codedeploy"} {"check_id": "codedeploy.ec2-agent-deployment-runs-appspec-hook-on-instance", "deployments": [], "key": "codedeploy/ec2-agent-deployment-runs-appspec-hook-on-instance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_ec2_agent_deployment_runs_appspec_hook_on_instance.py", "service": "codedeploy"} {"check_id": "codedeploy.file-exists-behavior-disallow-blocks-foreign-file-and-overwrite-replaces-it", "deployments": [], "key": "codedeploy/file-exists-behavior-disallow-blocks-foreign-file-and-overwrite-replaces-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_file_exists_behavior_disallow_blocks_foreign_file_and_overwrite_replaces_it.py", "service": "codedeploy"} {"check_id": "codedeploy.get-application-not-found", "deployments": [], "key": "codedeploy/get-application-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplication"], "path": "behavioral/codedeploy/check_get_application_not_found.py", "service": "codedeploy"} {"check_id": "codedeploy.get-deployment-group-not-found", "deployments": [], "key": "codedeploy/get-deployment-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/codedeploy/check_get_deployment_group_not_found.py", "service": "codedeploy"} {"check_id": "codedeploy.get-deployment-invalid-id-rejected", "deployments": [], "key": "codedeploy/get-deployment-invalid-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:GetDeployment"], "path": "behavioral/codedeploy/check_get_deployment_invalid_id_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.get-deployment-not-found", "deployments": [], "key": "codedeploy/get-deployment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_get_deployment_not_found.py", "service": "codedeploy"} {"check_id": "codedeploy.get-deployment-target-not-started-rejected", "deployments": [], "key": "codedeploy/get-deployment-target-not-started-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeploymentTarget", "codedeploy:GetOnPremisesInstance", "codedeploy:ListDeploymentTargets", "codedeploy:RegisterOnPremisesInstance", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_get_deployment_target_not_started_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.get-onprem-instance-not-registered-rejected", "deployments": [], "key": "codedeploy/get-onprem-instance-not-registered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_get_onprem_instance_not_registered_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.hook-failure-skips-later-lifecycle-events-and-fails-the-target", "deployments": [], "key": "codedeploy/hook-failure-skips-later-lifecycle-events-and-fails-the-target", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_hook_failure_skips_later_lifecycle_events_and_fails_the_target.py", "service": "codedeploy"} {"check_id": "codedeploy.ignore-poll-alarm-failure-decides-whether-an-unpollable-alarm-stops-the-deployment", "deployments": [], "key": "codedeploy/ignore-poll-alarm-failure-decides-whether-an-unpollable-alarm-stops-the-deployment", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode"], "path": "behavioral/codedeploy/check_ignore_poll_alarm_failure_decides_whether_an_unpollable_alarm_stops_the_deployment.py", "service": "codedeploy"} {"check_id": "codedeploy.lambda-canary-diverts-live-invokes", "deployments": [], "key": "codedeploy/lambda-canary-diverts-live-invokes", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/codedeploy/check_lambda_canary_diverts_live_invokes.py", "service": "codedeploy"} {"check_id": "codedeploy.lambda-deployment-all-at-once-shifts-alias", "deployments": [], "key": "codedeploy/lambda-deployment-all-at-once-shifts-alias", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_lambda_deployment_all_at_once_shifts_alias.py", "service": "codedeploy"} {"check_id": "codedeploy.lambda-deployment-canary-holds-partial-alias-weight", "deployments": [], "key": "codedeploy/lambda-deployment-canary-holds-partial-alias-weight", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_lambda_deployment_canary_holds_partial_alias_weight.py", "service": "codedeploy"} {"check_id": "codedeploy.lambda-deployment-stop-rolls-back-alias-and-refuses-restop", "deployments": [], "key": "codedeploy/lambda-deployment-stop-rolls-back-alias-and-refuses-restop", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:BatchGetDeployments", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_lambda_deployment_stop_rolls_back_alias_and_refuses_restop.py", "service": "codedeploy"} {"check_id": "codedeploy.lifecycle-event-hook-status-gates-deployment-progress", "deployments": [], "key": "codedeploy/lifecycle-event-hook-status-gates-deployment-progress", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_lifecycle_event_hook_status_gates_deployment_progress.py", "service": "codedeploy"} {"check_id": "codedeploy.lifecycle-event-order-and-applicationstop-only-on-redeploy", "deployments": [], "key": "codedeploy/lifecycle-event-order-and-applicationstop-only-on-redeploy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_lifecycle_event_order_and_applicationstop_only_on_redeploy.py", "service": "codedeploy"} {"check_id": "codedeploy.lifecycle-hook-failed-status-denied-traffic-shift", "deployments": [], "key": "codedeploy/lifecycle-hook-failed-status-denied-traffic-shift", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_lifecycle_hook_failed_status_denied_traffic_shift.py", "service": "codedeploy"} {"check_id": "codedeploy.linear-traffic-shift-walks-the-weight-ladder-over-time", "deployments": [], "key": "codedeploy/linear-traffic-shift-walks-the-weight-ladder-over-time", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_linear_traffic_shift_walks_the_weight_ladder_over_time.py", "service": "codedeploy"} {"check_id": "codedeploy.list-application-revisions-missing-bucket-filter-rejected", "deployments": [], "key": "codedeploy/list-application-revisions-missing-bucket-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:ListApplicationRevisions"], "path": "behavioral/codedeploy/check_list_application_revisions_missing_bucket_filter_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.list-applications-reflects-created", "deployments": [], "key": "codedeploy/list-applications-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:ListApplications"], "path": "behavioral/codedeploy/check_list_applications_reflects_created.py", "service": "codedeploy"} {"check_id": "codedeploy.list-deployment-configs-includes-created-and-predefined", "deployments": [], "key": "codedeploy/list-deployment-configs-includes-created-and-predefined", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateDeploymentConfig", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig", "codedeploy:ListDeploymentConfigs"], "path": "behavioral/codedeploy/check_list_deployment_configs_includes_created_and_predefined.py", "service": "codedeploy"} {"check_id": "codedeploy.list-github-account-token-names-returns-empty", "deployments": [], "key": "codedeploy/list-github-account-token-names-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:ListApplications", "codedeploy:ListGitHubAccountTokenNames"], "path": "behavioral/codedeploy/check_list_github_account_token_names_returns_empty.py", "service": "codedeploy"} {"check_id": "codedeploy.list-on-premises-instances-invalid-registration-status-rejected", "deployments": [], "key": "codedeploy/list-on-premises-instances-invalid-registration-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:ListOnPremisesInstances"], "path": "behavioral/codedeploy/check_list_on_premises_instances_invalid_registration_status_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.minimum-healthy-hosts-bounds-observed-concurrent-unavailability", "deployments": [], "key": "codedeploy/minimum-healthy-hosts-bounds-observed-concurrent-unavailability", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:BatchGetDeploymentTargets", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentConfig", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:ListDeploymentTargets", "codedeploy:StopDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/codedeploy/check_minimum_healthy_hosts_bounds_observed_concurrent_unavailability.py", "service": "codedeploy"} {"check_id": "codedeploy.on-premises-iam-user-arn-reuse-rejected", "deployments": [], "key": "codedeploy/on-premises-iam-user-arn-reuse-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_on_premises_iam_user_arn_reuse_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.on-premises-instance-deregister-reflects-in-status-filters", "deployments": [], "key": "codedeploy/on-premises-instance-deregister-reflects-in-status-filters", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_on_premises_instance_deregister_reflects_in_status_filters.py", "service": "codedeploy"} {"check_id": "codedeploy.on-premises-instance-register-deregister-lifecycle", "deployments": [], "key": "codedeploy/on-premises-instance-register-deregister-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_on_premises_instance_register_deregister_lifecycle.py", "service": "codedeploy"} {"check_id": "codedeploy.on-premises-instance-tags-round-trip", "deployments": [], "key": "codedeploy/on-premises-instance-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "codedeploy:RemoveTagsFromOnPremisesInstances", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_on_premises_instance_tags_round_trip.py", "service": "codedeploy"} {"check_id": "codedeploy.onprem-instance-duplicate-name-registration-rejected", "deployments": [], "key": "codedeploy/onprem-instance-duplicate-name-registration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "iam:CreateUser", "iam:DeleteUser"], "path": "behavioral/codedeploy/check_onprem_instance_duplicate_name_registration_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.onprem-instance-duplicate-registration-rejected", "deployments": [], "key": "codedeploy/onprem-instance-duplicate-registration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_onprem_instance_duplicate_registration_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.onprem-instance-list-reflects-registration-status", "deployments": [], "key": "codedeploy/onprem-instance-list-reflects-registration-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "iam:CreateUser", "iam:DeleteUser"], "path": "behavioral/codedeploy/check_onprem_instance_list_reflects_registration_status.py", "service": "codedeploy"} {"check_id": "codedeploy.onprem-instance-register-get-deregister-lifecycle", "deployments": [], "key": "codedeploy/onprem-instance-register-get-deregister-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_onprem_instance_register_get_deregister_lifecycle.py", "service": "codedeploy"} {"check_id": "codedeploy.onprem-instance-tags-round-trip", "deployments": [], "key": "codedeploy/onprem-instance-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "codedeploy:RemoveTagsFromOnPremisesInstances", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_onprem_instance_tags_round_trip.py", "service": "codedeploy"} {"check_id": "codedeploy.onprem-instance-tags-unicode-round-trip", "deployments": [], "key": "codedeploy/onprem-instance-tags-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_onprem_instance_tags_unicode_round_trip.py", "service": "codedeploy"} {"check_id": "codedeploy.predefined-deployment-config-delete-rejected", "deployments": [], "key": "codedeploy/predefined-deployment-config-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateDeploymentConfig", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig"], "path": "behavioral/codedeploy/check_predefined_deployment_config_delete_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.put-lifecycle-event-hook-invalid-deployment-id-rejected", "deployments": [], "key": "codedeploy/put-lifecycle-event-hook-invalid-deployment-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:GetDeployment", "codedeploy:PutLifecycleEventHookExecutionStatus"], "path": "behavioral/codedeploy/check_put_lifecycle_event_hook_invalid_deployment_id_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.put-lifecycle-event-hook-invalid-deployment-rejected", "deployments": [], "key": "codedeploy/put-lifecycle-event-hook-invalid-deployment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:PutLifecycleEventHookExecutionStatus", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codedeploy/check_put_lifecycle_event_hook_invalid_deployment_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.put-lifecycle-event-hook-status-deployment-not-exist-rejected", "deployments": [], "key": "codedeploy/put-lifecycle-event-hook-status-deployment-not-exist-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:PutLifecycleEventHookExecutionStatus", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_put_lifecycle_event_hook_status_deployment_not_exist_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.register-application-revision-description-too-long-rejected", "deployments": [], "key": "codedeploy/register-application-revision-description-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codedeploy/check_register_application_revision_description_too_long_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.register-on-premises-instance-missing-iam-arn-rejected", "deployments": [], "key": "codedeploy/register-on-premises-instance-missing-iam-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "iam:CreateUser", "iam:DeleteUser"], "path": "behavioral/codedeploy/check_register_on_premises_instance_missing_iam_arn_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.register-onprem-instance-duplicate-iam-session-arn-rejected", "deployments": [], "key": "codedeploy/register-onprem-instance-duplicate-iam-session-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_register_onprem_instance_duplicate_iam_session_arn_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.register-onprem-instance-duplicate-iam-user-arn-rejected", "deployments": [], "key": "codedeploy/register-onprem-instance-duplicate-iam-user-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_register_onprem_instance_duplicate_iam_user_arn_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.register-onprem-instance-duplicate-name-blocked", "deployments": [], "key": "codedeploy/register-onprem-instance-duplicate-name-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_register_onprem_instance_duplicate_name_blocked.py", "service": "codedeploy"} {"check_id": "codedeploy.register-onprem-instance-missing-iam-arn-rejected", "deployments": [], "key": "codedeploy/register-onprem-instance-missing-iam-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:ListOnPremisesInstances", "codedeploy:RegisterOnPremisesInstance", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_register_onprem_instance_missing_iam_arn_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.s3-revision-etag-mismatch-rejected-and-alias-unmoved", "deployments": [], "key": "codedeploy/s3-revision-etag-mismatch-rejected-and-alias-unmoved", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_s3_revision_etag_mismatch_rejected_and_alias_unmoved.py", "service": "codedeploy"} {"check_id": "codedeploy.s3-revision-object-contents-decide-alias-target", "deployments": [], "key": "codedeploy/s3-revision-object-contents-decide-alias-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codedeploy/check_s3_revision_object_contents_decide_alias_target.py", "service": "codedeploy"} {"check_id": "codedeploy.skip-wait-time-already-completed-rejected", "deployments": [], "key": "codedeploy/skip-wait-time-already-completed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:SkipWaitTimeForInstanceTermination", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codedeploy/check_skip_wait_time_already_completed_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.skip-wait-time-deployment-already-completed-rejected", "deployments": [], "key": "codedeploy/skip-wait-time-deployment-already-completed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:SkipWaitTimeForInstanceTermination", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codedeploy/check_skip_wait_time_deployment_already_completed_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.skip-wait-time-nonexistent-deployment-fails", "deployments": [], "key": "codedeploy/skip-wait-time-nonexistent-deployment-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:SkipWaitTimeForInstanceTermination", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/codedeploy/check_skip_wait_time_nonexistent_deployment_fails.py", "service": "codedeploy"} {"check_id": "codedeploy.skip-wait-time-triggers-immediate-termination", "deployments": [], "key": "codedeploy/skip-wait-time-triggers-immediate-termination", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:SkipWaitTimeForInstanceTermination", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/codedeploy/check_skip_wait_time_triggers_immediate_termination.py", "service": "codedeploy"} {"check_id": "codedeploy.stop-deployment-already-completed-blocked", "deployments": [], "key": "codedeploy/stop-deployment-already-completed-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeployment", "codedeploy:RegisterOnPremisesInstance", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_stop_deployment_already_completed_blocked.py", "service": "codedeploy"} {"check_id": "codedeploy.stop-deployment-nonexistent-fails", "deployments": [], "key": "codedeploy/stop-deployment-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetDeployment", "codedeploy:RegisterOnPremisesInstance", "codedeploy:StopDeployment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy/check_stop_deployment_nonexistent_fails.py", "service": "codedeploy"} {"check_id": "codedeploy.tag-on-premises-instance-not-registered-rejected", "deployments": [], "key": "codedeploy/tag-on-premises-instance-not-registered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:AddTagsToOnPremisesInstances", "codedeploy:DeregisterOnPremisesInstance", "codedeploy:GetOnPremisesInstance", "codedeploy:RegisterOnPremisesInstance", "iam:CreateUser", "iam:DeleteUser"], "path": "behavioral/codedeploy/check_tag_on_premises_instance_not_registered_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.tag-resource-invalid-arn-rejected", "deployments": [], "key": "codedeploy/tag-resource-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:ListTagsForResource", "codedeploy:TagResource"], "path": "behavioral/codedeploy/check_tag_resource_invalid_arn_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.tag-resource-nonexistent-application-rejected", "deployments": [], "key": "codedeploy/tag-resource-nonexistent-application-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:ListTagsForResource", "codedeploy:TagResource"], "path": "behavioral/codedeploy/check_tag_resource_nonexistent_application_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.tag-resource-round-trip", "deployments": [], "key": "codedeploy/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:ListTagsForResource", "codedeploy:TagResource", "codedeploy:UntagResource"], "path": "behavioral/codedeploy/check_tag_resource_round_trip.py", "service": "codedeploy"} {"check_id": "codedeploy.tag-resource-unsupported-arn-rejected", "deployments": [], "key": "codedeploy/tag-resource-unsupported-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentConfig", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentConfig", "codedeploy:GetDeploymentConfig", "codedeploy:ListTagsForResource", "codedeploy:TagResource"], "path": "behavioral/codedeploy/check_tag_resource_unsupported_arn_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.update-application-rename-to-existing-name-rejected", "deployments": [], "key": "codedeploy/update-application-rename-to-existing-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplication", "codedeploy:UpdateApplication"], "path": "behavioral/codedeploy/check_update_application_rename_to_existing_name_rejected.py", "service": "codedeploy"} {"check_id": "codedeploy.update-application-renames", "deployments": [], "key": "codedeploy/update-application-renames", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:GetApplication", "codedeploy:UpdateApplication"], "path": "behavioral/codedeploy/check_update_application_renames.py", "service": "codedeploy"} {"check_id": "codedeploy.update-deployment-group-alarms-limit-exceeded-blocked", "deployments": [], "key": "codedeploy/update-deployment-group-alarms-limit-exceeded-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:UpdateDeploymentGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy/check_update_deployment_group_alarms_limit_exceeded_blocked.py", "service": "codedeploy"} {"check_id": "codedeploy__ecs__elbv2.create-ecs-deployment-group-nonexistent-service-rejected", "deployments": [], "key": "codedeploy__ecs__elbv2/create-ecs-deployment-group-nonexistent-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy__ecs__elbv2/check_create_ecs_deployment_group_nonexistent_service_rejected.py", "service": "codedeploy__ecs__elbv2"} {"check_id": "codedeploy__ecs__elbv2.ecs-blue-green-deployment-moves-listener-from-blue-to-green", "deployments": [], "key": "codedeploy__ecs__elbv2/ecs-blue-green-deployment-moves-listener-from-blue-to-green", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:StopDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy__ecs__elbv2/check_ecs_blue_green_deployment_moves_listener_from_blue_to_green.py", "service": "codedeploy__ecs__elbv2"} {"check_id": "codedeploy__ecs__elbv2.ecs-canary-deployment-shifts-traffic-in-stages", "deployments": [], "key": "codedeploy__ecs__elbv2/ecs-canary-deployment-shifts-traffic-in-stages", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeTargetHealth", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/codedeploy__ecs__elbv2/check_ecs_canary_deployment_shifts_traffic_in_stages.py", "service": "codedeploy__ecs__elbv2"} {"check_id": "codedeploy__sns__sqs.deployment-trigger-delivers-to-the-subscribed-event-topic-only", "deployments": [], "key": "codedeploy__sns__sqs/deployment-trigger-delivers-to-the-subscribed-event-topic-only", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:DeleteApplication", "codedeploy:DeleteDeploymentGroup", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:StopDeployment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codedeploy__sns__sqs/check_deployment_trigger_delivers_to_the_subscribed_event_topic_only.py", "service": "codedeploy__sns__sqs"} {"check_id": "codeguruprofiler.add-notification-channels-batch-of-two-in-single-call", "deployments": [], "key": "codeguruprofiler/add-notification-channels-batch-of-two-in-single-call", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "codeguruprofiler:RemoveNotificationChannel", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_add_notification_channels_batch_of_two_in_single_call.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.add-notification-channels-channel-id-auto-assigned-uuid", "deployments": [], "key": "codeguruprofiler/add-notification-channels-channel-id-auto-assigned-uuid", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_add_notification_channels_channel_id_auto_assigned_uuid.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.add-notification-channels-duplicate-uri-and-quota-rejected", "deployments": [], "key": "codeguruprofiler/add-notification-channels-duplicate-uri-and-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "codeguruprofiler:RemoveNotificationChannel", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_add_notification_channels_duplicate_uri_and_quota_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.add-notification-channels-duplicate-uri-tolerated", "deployments": [], "key": "codeguruprofiler/add-notification-channels-duplicate-uri-tolerated", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_add_notification_channels_duplicate_uri_tolerated.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.add-notification-channels-grows-and-shrinks", "deployments": [], "key": "codeguruprofiler/add-notification-channels-grows-and-shrinks", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "codeguruprofiler:RemoveNotificationChannel", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_add_notification_channels_grows_and_shrinks.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.add-notification-channels-invalid-event-publisher-rejected", "deployments": [], "key": "codeguruprofiler/add-notification-channels-invalid-event-publisher-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_add_notification_channels_invalid_event_publisher_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.add-notification-channels-quota-exceeded-rejected", "deployments": [], "key": "codeguruprofiler/add-notification-channels-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "codeguruprofiler:RemoveNotificationChannel", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_add_notification_channels_quota_exceeded_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.add-notification-channels-round-trip", "deployments": [], "key": "codeguruprofiler/add-notification-channels-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_add_notification_channels_round_trip.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.concurrent-put-permission-optimistic-lock-contention", "deployments": [], "key": "codeguruprofiler/concurrent-put-permission-optimistic-lock-contention", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_concurrent_put_permission_optimistic_lock_contention.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.concurrent-put-permission-race-single-revision-winner", "deployments": [], "key": "codeguruprofiler/concurrent-put-permission-race-single-revision-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_concurrent_put_permission_race_single_revision_winner.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.configure-agent-fleet-instance-id-too-long-rejected", "deployments": [], "key": "codeguruprofiler/configure-agent-fleet-instance-id-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_configure_agent_fleet_instance_id_too_long_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.configure-agent-metadata-and-fleet-instance-id-accepted", "deployments": [], "key": "codeguruprofiler/configure-agent-metadata-and-fleet-instance-id-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_configure_agent_metadata_and_fleet_instance_id_accepted.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.configure-agent-nonexistent-group-not-found", "deployments": [], "key": "codeguruprofiler/configure-agent-nonexistent-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_configure_agent_nonexistent_group_not_found.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.configure-agent-reflects-profiling-enabled-toggle", "deployments": [], "key": "codeguruprofiler/configure-agent-reflects-profiling-enabled-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:UpdateProfilingGroup"], "path": "behavioral/codeguruprofiler/check_configure_agent_reflects_profiling_enabled_toggle.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.configure-agent-should-profile-mirrors-orchestration-config", "deployments": [], "key": "codeguruprofiler/configure-agent-should-profile-mirrors-orchestration-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:UpdateProfilingGroup"], "path": "behavioral/codeguruprofiler/check_configure_agent_should_profile_mirrors_orchestration_config.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.configure-agent-updates-latest-agent-orchestrated-at", "deployments": [], "key": "codeguruprofiler/configure-agent-updates-latest-agent-orchestrated-at", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_configure_agent_updates_latest_agent_orchestrated_at.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.configure-agent-updates-latest-orchestrated-timestamp", "deployments": [], "key": "codeguruprofiler/configure-agent-updates-latest-orchestrated-timestamp", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_configure_agent_updates_latest_orchestrated_timestamp.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.configure-agent-updates-orchestration-timestamp", "deployments": [], "key": "codeguruprofiler/configure-agent-updates-orchestration-timestamp", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_configure_agent_updates_orchestration_timestamp.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-describe-profiling-group-basic", "deployments": [], "key": "codeguruprofiler/create-describe-profiling-group-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_create_describe_profiling_group_basic.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-default-orchestration-config-is-self-consistent", "deployments": [], "key": "codeguruprofiler/create-profiling-group-default-orchestration-config-is-self-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_default_orchestration_config_is_self_consistent.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-duplicate-name-conflict-rejected", "deployments": [], "key": "codeguruprofiler/create-profiling-group-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_duplicate_name_conflict_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-duplicate-name-rejected", "deployments": [], "key": "codeguruprofiler/create-profiling-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_duplicate_name_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-idempotent-with-same-client-token", "deployments": [], "key": "codeguruprofiler/create-profiling-group-idempotent-with-same-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListProfilingGroups"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_idempotent_with_same_client_token.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-invalid-name-pattern-rejected", "deployments": [], "key": "codeguruprofiler/create-profiling-group-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:ListProfilingGroups"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_invalid_name_pattern_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-invalid-name-rejected", "deployments": [], "key": "codeguruprofiler/create-profiling-group-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:ListProfilingGroups"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_invalid_name_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-lambda-compute-platform", "deployments": [], "key": "codeguruprofiler/create-profiling-group-lambda-compute-platform", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_lambda_compute_platform.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-lambda-compute-platform-reflected", "deployments": [], "key": "codeguruprofiler/create-profiling-group-lambda-compute-platform-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_lambda_compute_platform_reflected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-lifecycle", "deployments": [], "key": "codeguruprofiler/create-profiling-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_lifecycle.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.create-profiling-group-reflects-config", "deployments": [], "key": "codeguruprofiler/create-profiling-group-reflects-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_create_profiling_group_reflects_config.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.delete-profiling-group-removes-visibility", "deployments": [], "key": "codeguruprofiler/delete-profiling-group-removes-visibility", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:ListProfilingGroups", "codeguruprofiler:UpdateProfilingGroup"], "path": "behavioral/codeguruprofiler/check_delete_profiling_group_removes_visibility.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.delete-profiling-group-then-resource-not-found", "deployments": [], "key": "codeguruprofiler/delete-profiling-group-then-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:UpdateProfilingGroup"], "path": "behavioral/codeguruprofiler/check_delete_profiling_group_then_resource_not_found.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.describe-nonexistent-profiling-group-not-found", "deployments": [], "key": "codeguruprofiler/describe-nonexistent-profiling-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup"], "path": "behavioral/codeguruprofiler/check_describe_nonexistent_profiling_group_not_found.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.get-notification-configuration-nonexistent-group-not-found-rejected", "deployments": [], "key": "codeguruprofiler/get-notification-configuration-nonexistent-group-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration"], "path": "behavioral/codeguruprofiler/check_get_notification_configuration_nonexistent_group_not_found_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.get-policy-absent-before-any-permission", "deployments": [], "key": "codeguruprofiler/get-policy-absent-before-any-permission", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_get_policy_absent_before_any_permission.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.get-policy-no-policy-not-found", "deployments": [], "key": "codeguruprofiler/get-policy-no-policy-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:GetPolicy"], "path": "behavioral/codeguruprofiler/check_get_policy_no_policy_not_found.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.get-profile-no-aggregated-data-yet", "deployments": [], "key": "codeguruprofiler/get-profile-no-aggregated-data-yet", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:GetProfile", "codeguruprofiler:PostAgentProfile"], "path": "behavioral/codeguruprofiler/check_get_profile_no_aggregated_data_yet.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.get-profile-no-data-rejected", "deployments": [], "key": "codeguruprofiler/get-profile-no-data-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:GetProfile"], "path": "behavioral/codeguruprofiler/check_get_profile_no_data_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.get-profile-without-data-not-found", "deployments": [], "key": "codeguruprofiler/get-profile-without-data-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:GetProfile", "codeguruprofiler:PostAgentProfile"], "path": "behavioral/codeguruprofiler/check_get_profile_without_data_not_found.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.get-recommendations-start-after-end-rejected", "deployments": [], "key": "codeguruprofiler/get-recommendations-start-after-end-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetRecommendations"], "path": "behavioral/codeguruprofiler/check_get_recommendations_start_after_end_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-findings-reports-empty-for-new-group", "deployments": [], "key": "codeguruprofiler/list-findings-reports-empty-for-new-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListFindingsReports"], "path": "behavioral/codeguruprofiler/check_list_findings_reports_empty_for_new_group.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-profile-times-empty-before-any-data", "deployments": [], "key": "codeguruprofiler/list-profile-times-empty-before-any-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListProfileTimes"], "path": "behavioral/codeguruprofiler/check_list_profile_times_empty_before_any_data.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-profile-times-invalid-period-rejected", "deployments": [], "key": "codeguruprofiler/list-profile-times-invalid-period-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListProfileTimes"], "path": "behavioral/codeguruprofiler/check_list_profile_times_invalid_period_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-profile-times-start-after-end-rejected", "deployments": [], "key": "codeguruprofiler/list-profile-times-start-after-end-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListProfileTimes"], "path": "behavioral/codeguruprofiler/check_list_profile_times_start_after_end_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-profiling-groups-include-description-toggles-response-shape", "deployments": [], "key": "codeguruprofiler/list-profiling-groups-include-description-toggles-response-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListProfilingGroups"], "path": "behavioral/codeguruprofiler/check_list_profiling_groups_include_description_toggles_response_shape.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-profiling-groups-includes-created-group", "deployments": [], "key": "codeguruprofiler/list-profiling-groups-includes-created-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListProfilingGroups"], "path": "behavioral/codeguruprofiler/check_list_profiling_groups_includes_created_group.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-profiling-groups-reflects-created-groups", "deployments": [], "key": "codeguruprofiler/list-profiling-groups-reflects-created-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListProfilingGroups"], "path": "behavioral/codeguruprofiler/check_list_profiling_groups_reflects_created_groups.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-profiling-groups-reflects-lifecycle", "deployments": [], "key": "codeguruprofiler/list-profiling-groups-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListProfilingGroups"], "path": "behavioral/codeguruprofiler/check_list_profiling_groups_reflects_lifecycle.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.list-tags-for-resource-reflects-tags-at-creation", "deployments": [], "key": "codeguruprofiler/list-tags-for-resource-reflects-tags-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:ListTagsForResource"], "path": "behavioral/codeguruprofiler/check_list_tags_for_resource_reflects_tags_at_creation.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.notification-channel-add-remove-lifecycle", "deployments": [], "key": "codeguruprofiler/notification-channel-add-remove-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "codeguruprofiler:RemoveNotificationChannel", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_notification_channel_add_remove_lifecycle.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.notification-configuration-empty-initially", "deployments": [], "key": "codeguruprofiler/notification-configuration-empty-initially", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_notification_configuration_empty_initially.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.post-agent-profile-data-aggregates-into-retrievable-profile", "deployments": [], "key": "codeguruprofiler/post-agent-profile-data-aggregates-into-retrievable-profile", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codeguruprofiler:ConfigureAgent", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:GetProfile", "codeguruprofiler:ListProfileTimes", "codeguruprofiler:PostAgentProfile"], "path": "behavioral/codeguruprofiler/check_post_agent_profile_data_aggregates_into_retrievable_profile.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.post-agent-profile-invalid-content-type-rejected", "deployments": [], "key": "codeguruprofiler/post-agent-profile-invalid-content-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:PostAgentProfile"], "path": "behavioral/codeguruprofiler/check_post_agent_profile_invalid_content_type_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.post-agent-profile-nonexistent-group-not-found-rejected", "deployments": [], "key": "codeguruprofiler/post-agent-profile-nonexistent-group-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:PostAgentProfile"], "path": "behavioral/codeguruprofiler/check_post_agent_profile_nonexistent_group_not_found_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.post-agent-profile-unsupported-content-type-rejected", "deployments": [], "key": "codeguruprofiler/post-agent-profile-unsupported-content-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:PostAgentProfile"], "path": "behavioral/codeguruprofiler/check_post_agent_profile_unsupported_content_type_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-concurrent-revision-race", "deployments": [], "key": "codeguruprofiler/put-permission-concurrent-revision-race", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_concurrent_revision_race.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-concurrent-stale-revision-race", "deployments": [], "key": "codeguruprofiler/put-permission-concurrent-stale-revision-race", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_concurrent_stale_revision_race.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-creates-policy-with-revision-id", "deployments": [], "key": "codeguruprofiler/put-permission-creates-policy-with-revision-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_creates_policy_with_revision_id.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-get-policy-roundtrip", "deployments": [], "key": "codeguruprofiler/put-permission-get-policy-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_get_policy_roundtrip.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-invalid-action-group-rejected", "deployments": [], "key": "codeguruprofiler/put-permission-invalid-action-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission"], "path": "behavioral/codeguruprofiler/check_put_permission_invalid_action_group_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-multiple-principals-policy-content", "deployments": [], "key": "codeguruprofiler/put-permission-multiple-principals-policy-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_multiple_principals_policy_content.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-replaces-principal-set-not-merges", "deployments": [], "key": "codeguruprofiler/put-permission-replaces-principal-set-not-merges", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_replaces_principal_set_not_merges.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-revision-id-changes-on-repeated-update", "deployments": [], "key": "codeguruprofiler/put-permission-revision-id-changes-on-repeated-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_revision_id_changes_on_repeated_update.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-revision-id-changes-on-update", "deployments": [], "key": "codeguruprofiler/put-permission-revision-id-changes-on-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_revision_id_changes_on_update.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-stale-revision-conflict-rejected", "deployments": [], "key": "codeguruprofiler/put-permission-stale-revision-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_stale_revision_conflict_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.put-permission-then-get-policy-matches", "deployments": [], "key": "codeguruprofiler/put-permission-then-get-policy-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_put_permission_then_get_policy_matches.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.remove-notification-channel-effect", "deployments": [], "key": "codeguruprofiler/remove-notification-channel-effect", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "codeguruprofiler:RemoveNotificationChannel", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_remove_notification_channel_effect.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.remove-notification-channel-unknown-channel-not-found-rejected", "deployments": [], "key": "codeguruprofiler/remove-notification-channel-unknown-channel-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:AddNotificationChannels", "codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetNotificationConfiguration", "codeguruprofiler:RemoveNotificationChannel", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/codeguruprofiler/check_remove_notification_channel_unknown_channel_not_found_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.remove-permission-clears-policy", "deployments": [], "key": "codeguruprofiler/remove-permission-clears-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission"], "path": "behavioral/codeguruprofiler/check_remove_permission_clears_policy.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.remove-permission-deletes-policy", "deployments": [], "key": "codeguruprofiler/remove-permission-deletes-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_remove_permission_deletes_policy.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.remove-permission-stale-revision-conflict-rejected", "deployments": [], "key": "codeguruprofiler/remove-permission-stale-revision-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission"], "path": "behavioral/codeguruprofiler/check_remove_permission_stale_revision_conflict_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.remove-permission-stale-revision-id-rejected", "deployments": [], "key": "codeguruprofiler/remove-permission-stale-revision-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:GetPolicy", "codeguruprofiler:PutPermission", "codeguruprofiler:RemovePermission"], "path": "behavioral/codeguruprofiler/check_remove_permission_stale_revision_id_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.tag-and-list-tags-roundtrip", "deployments": [], "key": "codeguruprofiler/tag-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListTagsForResource", "codeguruprofiler:TagResource", "codeguruprofiler:UntagResource"], "path": "behavioral/codeguruprofiler/check_tag_and_list_tags_roundtrip.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.tag-nonexistent-resource-not-found", "deployments": [], "key": "codeguruprofiler/tag-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListTagsForResource", "codeguruprofiler:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/codeguruprofiler/check_tag_nonexistent_resource_not_found.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "codeguruprofiler/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:ListTagsForResource", "codeguruprofiler:TagResource"], "path": "behavioral/codeguruprofiler/check_tag_resource_and_list_tags_round_trip.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.tag-resource-empty-tags-validation-rejected", "deployments": [], "key": "codeguruprofiler/tag-resource-empty-tags-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListTagsForResource", "codeguruprofiler:TagResource"], "path": "behavioral/codeguruprofiler/check_tag_resource_empty_tags_validation_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.untag-resource-nonexistent-key-is-noop", "deployments": [], "key": "codeguruprofiler/untag-resource-nonexistent-key-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListTagsForResource", "codeguruprofiler:UntagResource"], "path": "behavioral/codeguruprofiler/check_untag_resource_nonexistent_key_is_noop.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.untag-resource-removes-tag", "deployments": [], "key": "codeguruprofiler/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListTagsForResource", "codeguruprofiler:UntagResource"], "path": "behavioral/codeguruprofiler/check_untag_resource_removes_tag.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.untag-resource-removes-tags", "deployments": [], "key": "codeguruprofiler/untag-resource-removes-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:ListTagsForResource", "codeguruprofiler:UntagResource"], "path": "behavioral/codeguruprofiler/check_untag_resource_removes_tags.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.update-profiling-group-nonexistent-not-found-rejected", "deployments": [], "key": "codeguruprofiler/update-profiling-group-nonexistent-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:UpdateProfilingGroup"], "path": "behavioral/codeguruprofiler/check_update_profiling_group_nonexistent_not_found_rejected.py", "service": "codeguruprofiler"} {"check_id": "codeguruprofiler.update-profiling-group-toggles-profiling-enabled", "deployments": [], "key": "codeguruprofiler/update-profiling-group-toggles-profiling-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["codeguruprofiler:CreateProfilingGroup", "codeguruprofiler:DeleteProfilingGroup", "codeguruprofiler:DescribeProfilingGroup", "codeguruprofiler:UpdateProfilingGroup"], "path": "behavioral/codeguruprofiler/check_update_profiling_group_toggles_profiling_enabled.py", "service": "codeguruprofiler"} {"check_id": "codepipeline.acknowledge-job-not-found", "deployments": [], "key": "codepipeline/acknowledge-job-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_acknowledge_job_not_found.py", "service": "codepipeline"} {"check_id": "codepipeline.acknowledge-third-party-job-invalid-nonce-rejected", "deployments": [], "key": "codepipeline/acknowledge-third-party-job-invalid-nonce-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:AcknowledgeThirdPartyJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:PollForJobs", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_acknowledge_third_party_job_invalid_nonce_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.action-configuration-empty-string-vs-absent-preserved", "deployments": [], "key": "codepipeline/action-configuration-empty-string-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_action_configuration_empty_string_vs_absent_preserved.py", "service": "codepipeline"} {"check_id": "codepipeline.action-configuration-empty-vs-absent-preserved", "deployments": [], "key": "codepipeline/action-configuration-empty-vs-absent-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_action_configuration_empty_vs_absent_preserved.py", "service": "codepipeline"} {"check_id": "codepipeline.action-execution-sequence-matches-stage-order", "deployments": [], "key": "codepipeline/action-execution-sequence-matches-stage-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:PollForJobs", "codepipeline:PutApprovalResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_action_execution_sequence_matches_stage_order.py", "service": "codepipeline"} {"check_id": "codepipeline.approval-already-completed-optimistic-lock", "deployments": [], "key": "codepipeline/approval-already-completed-optimistic-lock", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_approval_already_completed_optimistic_lock.py", "service": "codepipeline"} {"check_id": "codepipeline.approval-gate-withholds-the-artifact-until-it-is-approved", "deployments": [], "key": "codepipeline/approval-gate-withholds-the-artifact-until-it-is-approved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_approval_gate_withholds_the_artifact_until_it_is_approved.py", "service": "codepipeline"} {"check_id": "codepipeline.approval-rejection-records-the-reviewer-and-withholds-the-downstream-stage", "deployments": [], "key": "codepipeline/approval-rejection-records-the-reviewer-and-withholds-the-downstream-stage", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline/check_approval_rejection_records_the_reviewer_and_withholds_the_downstream_stage.py", "service": "codepipeline"} {"check_id": "codepipeline.approve-already-completed-rejected", "deployments": [], "key": "codepipeline/approve-already-completed-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutApprovalResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_approve_already_completed_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.artifact-store-cmk-encrypts-the-delivered-artifact-object", "deployments": [], "key": "codepipeline/artifact-store-cmk-encrypts-the-delivered-artifact-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline/check_artifact_store_cmk_encrypts_the_delivered_artifact_object.py", "service": "codepipeline"} {"check_id": "codepipeline.artifact-store-empty-vs-absent-field-preserved", "deployments": [], "key": "codepipeline/artifact-store-empty-vs-absent-field-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_artifact_store_empty_vs_absent_field_preserved.py", "service": "codepipeline"} {"check_id": "codepipeline.concurrent-pipeline-executions-limit-exceeded", "deployments": [], "key": "codepipeline/concurrent-pipeline-executions-limit-exceeded", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_concurrent_pipeline_executions_limit_exceeded.py", "service": "codepipeline"} {"check_id": "codepipeline.condition-not-overridable-rejected", "deployments": [], "key": "codepipeline/condition-not-overridable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:GetPipelineState", "codepipeline:OverrideStageCondition", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codepipeline/check_condition_not_overridable_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.create-custom-action-type-too-many-tags-fails", "deployments": [], "key": "codepipeline/create-custom-action-type-too-many-tags-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:ListActionTypes", "codepipeline:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline/check_create_custom_action_type_too_many_tags_fails.py", "service": "codepipeline"} {"check_id": "codepipeline.create-list-delete-custom-action-type", "deployments": [], "key": "codepipeline/create-list-delete-custom-action-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:ListActionTypes"], "path": "behavioral/codepipeline/check_create_list_delete_custom_action_type.py", "service": "codepipeline"} {"check_id": "codepipeline.create-pipeline-dangling-input-artifact-rejected", "deployments": [], "key": "codepipeline/create-pipeline-dangling-input-artifact-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:ListPipelines", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning"], "path": "behavioral/codepipeline/check_create_pipeline_dangling_input_artifact_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.create-pipeline-duplicate-name-conflict-rejected", "deployments": [], "key": "codepipeline/create-pipeline-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_create_pipeline_duplicate_name_conflict_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.create-pipeline-duplicate-name-in-use-rejected", "deployments": [], "key": "codepipeline/create-pipeline-duplicate-name-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:ListPipelines", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/codepipeline/check_create_pipeline_duplicate_name_in_use_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.create-pipeline-first-stage-not-source-rejected", "deployments": [], "key": "codepipeline/create-pipeline-first-stage-not-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelines", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning"], "path": "behavioral/codepipeline/check_create_pipeline_first_stage_not_source_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.create-pipeline-unassumable-role-rejected", "deployments": [], "key": "codepipeline/create-pipeline-unassumable-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelines", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning"], "path": "behavioral/codepipeline/check_create_pipeline_unassumable_role_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.create-pipeline-unknown-action-provider-rejected", "deployments": [], "key": "codepipeline/create-pipeline-unknown-action-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/codepipeline/check_create_pipeline_unknown_action_provider_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.create-pipeline-v1-rejects-v2-only-fields", "deployments": [], "key": "codepipeline/create-pipeline-v1-rejects-v2-only-fields", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelines", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/codepipeline/check_create_pipeline_v1_rejects_v2_only_fields.py", "service": "codepipeline"} {"check_id": "codepipeline.custom-action-type-id-fields-reflected", "deployments": [], "key": "codepipeline/custom-action-type-id-fields-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:ListActionTypes"], "path": "behavioral/codepipeline/check_custom_action_type_id_fields_reflected.py", "service": "codepipeline"} {"check_id": "codepipeline.deploy-artifact-bytes-are-identical-to-the-source-object", "deployments": [], "key": "codepipeline/deploy-artifact-bytes-are-identical-to-the-source-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_deploy_artifact_bytes_are_identical_to_the_source_object.py", "service": "codepipeline"} {"check_id": "codepipeline.deploy-codepipeline-cfn-execution-behaves", "deployments": [], "key": "codepipeline/deploy-codepipeline-cfn-execution-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_deploy_codepipeline_cfn_execution_behaves.py", "service": "codepipeline"} {"check_id": "codepipeline.deploy-codepipeline-cloudformation-executes", "deployments": [], "key": "codepipeline/deploy-codepipeline-cloudformation-executes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codepipeline:AcknowledgeJob", "codepipeline:GetPipelineExecution", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/codepipeline/check_deploy_codepipeline_cloudformation_executes.py", "service": "codepipeline"} {"check_id": "codepipeline.deploy-codepipeline-pipeline-executes-via-cloudformation", "deployments": [], "key": "codepipeline/deploy-codepipeline-pipeline-executes-via-cloudformation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codepipeline:GetPipelineExecution", "codepipeline:StartPipelineExecution", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/codepipeline/check_deploy_codepipeline_pipeline_executes_via_cloudformation.py", "service": "codepipeline"} {"check_id": "codepipeline.deploy-pipeline-cloudformation-executes-on-start", "deployments": [], "key": "codepipeline/deploy-pipeline-cloudformation-executes-on-start", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_deploy_pipeline_cloudformation_executes_on_start.py", "service": "codepipeline"} {"check_id": "codepipeline.deploy-pipeline-via-cloudformation-behaves", "deployments": [], "key": "codepipeline/deploy-pipeline-via-cloudformation-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:StartPipelineExecution", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/codepipeline/check_deploy_pipeline_via_cloudformation_behaves.py", "service": "codepipeline"} {"check_id": "codepipeline.deploy-with-extract-true-unzips-every-artifact-entry", "deployments": [], "key": "codepipeline/deploy-with-extract-true-unzips-every-artifact-entry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_deploy_with_extract_true_unzips_every_artifact_entry.py", "service": "codepipeline"} {"check_id": "codepipeline.deregister-webhook-malformed-name-rejected", "deployments": [], "key": "codepipeline/deregister-webhook-malformed-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:DeregisterWebhookWithThirdParty", "codepipeline:ListWebhooks"], "path": "behavioral/codepipeline/check_deregister_webhook_malformed_name_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.deregister-webhook-validation-rejected", "deployments": [], "key": "codepipeline/deregister-webhook-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DeleteWebhook", "codepipeline:DeregisterWebhookWithThirdParty", "codepipeline:ListWebhooks", "codepipeline:PutWebhook", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_deregister_webhook_validation_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.disable-enable-stage-transition-controls-progression", "deployments": [], "key": "codepipeline/disable-enable-stage-transition-controls-progression", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_disable_enable_stage_transition_controls_progression.py", "service": "codepipeline"} {"check_id": "codepipeline.disable-enable-stage-transition-persists-state", "deployments": [], "key": "codepipeline/disable-enable-stage-transition-persists-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_disable_enable_stage_transition_persists_state.py", "service": "codepipeline"} {"check_id": "codepipeline.disable-stage-transition-holds-execution", "deployments": [], "key": "codepipeline/disable-stage-transition-holds-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_disable_stage_transition_holds_execution.py", "service": "codepipeline"} {"check_id": "codepipeline.disable-stage-transition-invalid-reason-rejected", "deployments": [], "key": "codepipeline/disable-stage-transition-invalid-reason-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:GetPipelineState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions"], "path": "behavioral/codepipeline/check_disable_stage_transition_invalid_reason_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.disable-stage-transition-nonexistent-stage-rejected", "deployments": [], "key": "codepipeline/disable-stage-transition-nonexistent-stage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:GetPipelineState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_disable_stage_transition_nonexistent_stage_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.disable-stage-transition-unknown-stage-not-permissive", "deployments": [], "key": "codepipeline/disable-stage-transition-unknown-stage-not-permissive", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:GetPipelineState", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_disable_stage_transition_unknown_stage_not_permissive.py", "service": "codepipeline"} {"check_id": "codepipeline.disable-stage-transition-without-permission-denied", "deployments": [], "key": "codepipeline/disable-stage-transition-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:GetPipelineState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline/check_disable_stage_transition_without_permission_denied.py", "service": "codepipeline"} {"check_id": "codepipeline.disabled-transition-withhold-is-bounded-by-a-concurrent-enabled-twin", "deployments": [], "key": "codepipeline/disabled-transition-withhold-is-bounded-by-a-concurrent-enabled-twin", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline/check_disabled_transition_withhold_is_bounded_by_a_concurrent_enabled_twin.py", "service": "codepipeline"} {"check_id": "codepipeline.disabling-the-artifact-store-cmk-fails-the-execution-and-reenabling-restores-it", "deployments": [], "key": "codepipeline/disabling-the-artifact-store-cmk-fails-the-execution-and-reenabling-restores-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline/check_disabling_the_artifact_store_cmk_fails_the_execution_and_reenabling_restores_it.py", "service": "codepipeline"} {"check_id": "codepipeline.duplicate-stop-request-rejected", "deployments": [], "key": "codepipeline/duplicate-stop-request-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_duplicate_stop_request_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.e2e-pipeline-create-execute-approve-observe-teardown", "deployments": [], "key": "codepipeline/e2e-pipeline-create-execute-approve-observe-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:PollForJobs", "codepipeline:PutApprovalResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_e2e_pipeline_create_execute_approve_observe_teardown.py", "service": "codepipeline"} {"check_id": "codepipeline.e2e-pipeline-create-run-approve-complete-teardown", "deployments": [], "key": "codepipeline/e2e-pipeline-create-run-approve-complete-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutApprovalResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_e2e_pipeline_create_run_approve_complete_teardown.py", "service": "codepipeline"} {"check_id": "codepipeline.e2e-pipeline-create-run-approve-teardown", "deployments": [], "key": "codepipeline/e2e-pipeline-create-run-approve-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_e2e_pipeline_create_run_approve_teardown.py", "service": "codepipeline"} {"check_id": "codepipeline.e2e-pipeline-create-start-approve-complete-teardown", "deployments": [], "key": "codepipeline/e2e-pipeline-create-start-approve-complete-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_e2e_pipeline_create_start_approve_complete_teardown.py", "service": "codepipeline"} {"check_id": "codepipeline.e2e-pipeline-manual-approval-flow", "deployments": [], "key": "codepipeline/e2e-pipeline-manual-approval-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_e2e_pipeline_manual_approval_flow.py", "service": "codepipeline"} {"check_id": "codepipeline.empty-vs-absent-stage-description-preserved", "deployments": [], "key": "codepipeline/empty-vs-absent-stage-description-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions"], "path": "behavioral/codepipeline/check_empty_vs_absent_stage_description_preserved.py", "service": "codepipeline"} {"check_id": "codepipeline.get-action-type-not-found", "deployments": [], "key": "codepipeline/get-action-type-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:GetActionType", "codepipeline:ListActionTypes"], "path": "behavioral/codepipeline/check_get_action_type_not_found.py", "service": "codepipeline"} {"check_id": "codepipeline.get-job-details-not-found", "deployments": [], "key": "codepipeline/get-job-details-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:PollForJobs", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/codepipeline/check_get_job_details_not_found.py", "service": "codepipeline"} {"check_id": "codepipeline.get-pipeline-execution-unknown-execution-id-rejected", "deployments": [], "key": "codepipeline/get-pipeline-execution-unknown-execution-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/codepipeline/check_get_pipeline_execution_unknown_execution_id_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.get-pipeline-not-found", "deployments": [], "key": "codepipeline/get-pipeline-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_get_pipeline_not_found.py", "service": "codepipeline"} {"check_id": "codepipeline.get-pipeline-state-reflects-latest-execution", "deployments": [], "key": "codepipeline/get-pipeline-state-reflects-latest-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_get_pipeline_state_reflects_latest_execution.py", "service": "codepipeline"} {"check_id": "codepipeline.job-claim-nonce-single-use-after-acknowledgement-rejected", "deployments": [], "key": "codepipeline/job-claim-nonce-single-use-after-acknowledgement-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/codepipeline/check_job_claim_nonce_single_use_after_acknowledgement_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.job-claim-withholds-job-from-poll-until-completed", "deployments": [], "key": "codepipeline/job-claim-withholds-job-from-poll-until-completed", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_job_claim_withholds_job_from_poll_until_completed.py", "service": "codepipeline"} {"check_id": "codepipeline.job-output-variables-precision-preserved", "deployments": [], "key": "codepipeline/job-output-variables-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_job_output_variables_precision_preserved.py", "service": "codepipeline"} {"check_id": "codepipeline.job-output-variables-value-round-trip", "deployments": [], "key": "codepipeline/job-output-variables-value-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_job_output_variables_value_round_trip.py", "service": "codepipeline"} {"check_id": "codepipeline.job-poll-visibility-timeout-requeue", "deployments": [], "key": "codepipeline/job-poll-visibility-timeout-requeue", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codepipeline/check_job_poll_visibility_timeout_requeue.py", "service": "codepipeline"} {"check_id": "codepipeline.job-success-output-variables-round-trip", "deployments": [], "key": "codepipeline/job-success-output-variables-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_job_success_output_variables_round_trip.py", "service": "codepipeline"} {"check_id": "codepipeline.list-action-executions-chronological-order", "deployments": [], "key": "codepipeline/list-action-executions-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/codepipeline/check_list_action_executions_chronological_order.py", "service": "codepipeline"} {"check_id": "codepipeline.list-action-executions-invalid-next-token-rejected", "deployments": [], "key": "codepipeline/list-action-executions-invalid-next-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListActionExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_list_action_executions_invalid_next_token_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.list-action-executions-order-matches-stage-sequence", "deployments": [], "key": "codepipeline/list-action-executions-order-matches-stage-sequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_list_action_executions_order_matches_stage_sequence.py", "service": "codepipeline"} {"check_id": "codepipeline.list-action-executions-reflects-stage-sequence", "deployments": [], "key": "codepipeline/list-action-executions-reflects-stage-sequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_list_action_executions_reflects_stage_sequence.py", "service": "codepipeline"} {"check_id": "codepipeline.list-pipeline-executions-chronological-order", "deployments": [], "key": "codepipeline/list-pipeline-executions-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_list_pipeline_executions_chronological_order.py", "service": "codepipeline"} {"check_id": "codepipeline.list-pipeline-executions-invalid-next-token-rejected", "deployments": [], "key": "codepipeline/list-pipeline-executions-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/codepipeline/check_list_pipeline_executions_invalid_next_token_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.list-pipeline-executions-newest-first", "deployments": [], "key": "codepipeline/list-pipeline-executions-newest-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_list_pipeline_executions_newest_first.py", "service": "codepipeline"} {"check_id": "codepipeline.list-pipeline-executions-ordering-most-recent-first", "deployments": [], "key": "codepipeline/list-pipeline-executions-ordering-most-recent-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_list_pipeline_executions_ordering_most_recent_first.py", "service": "codepipeline"} {"check_id": "codepipeline.list-pipeline-executions-reverse-chronological-order", "deployments": [], "key": "codepipeline/list-pipeline-executions-reverse-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_list_pipeline_executions_reverse_chronological_order.py", "service": "codepipeline"} {"check_id": "codepipeline.list-rule-executions-invalid-next-token-rejected", "deployments": [], "key": "codepipeline/list-rule-executions-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListRuleExecutions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_list_rule_executions_invalid_next_token_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.list-rule-executions-matches-condition-evaluation-order", "deployments": [], "key": "codepipeline/list-rule-executions-matches-condition-evaluation-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:ListRuleExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_list_rule_executions_matches_condition_evaluation_order.py", "service": "codepipeline"} {"check_id": "codepipeline.list-rule-executions-order-matches-invocation-sequence", "deployments": [], "key": "codepipeline/list-rule-executions-order-matches-invocation-sequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:ListRuleExecutions", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_list_rule_executions_order_matches_invocation_sequence.py", "service": "codepipeline"} {"check_id": "codepipeline.list-rule-executions-ordering", "deployments": [], "key": "codepipeline/list-rule-executions-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:ListRuleExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/codepipeline/check_list_rule_executions_ordering.py", "service": "codepipeline"} {"check_id": "codepipeline.list-tags-for-resource-invalid-arn-rejected", "deployments": [], "key": "codepipeline/list-tags-for-resource-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:DeleteWebhook", "codepipeline:ListTagsForResource", "codepipeline:PutWebhook"], "path": "behavioral/codepipeline/check_list_tags_for_resource_invalid_arn_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.missing-s3-source-bucket-fails-the-source-action-with-its-error-details", "deployments": [], "key": "codepipeline/missing-s3-source-bucket-fails-the-source-action-with-its-error-details", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/codepipeline/check_missing_s3_source_bucket_fails_the_source_action_with_its_error_details.py", "service": "codepipeline"} {"check_id": "codepipeline.missing-source-object-fails-the-execution-and-no-artifact-is-deployed", "deployments": [], "key": "codepipeline/missing-source-object-fails-the-execution-and-no-artifact-is-deployed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_missing_source_object_fails_the_execution_and_no_artifact_is_deployed.py", "service": "codepipeline"} {"check_id": "codepipeline.output-variables-size-exceeded-rejected", "deployments": [], "key": "codepipeline/output-variables-size-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codepipeline/check_output_variables_size_exceeded_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.override-stage-condition-conflict-detection", "deployments": [], "key": "codepipeline/override-stage-condition-conflict-detection", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:OverrideStageCondition", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codepipeline/check_override_stage_condition_conflict_detection.py", "service": "codepipeline"} {"check_id": "codepipeline.override-stage-condition-conflict-rejected", "deployments": [], "key": "codepipeline/override-stage-condition-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:OverrideStageCondition", "codepipeline:PutApprovalResult", "codepipeline:RetryStageExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_override_stage_condition_conflict_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.override-stage-condition-not-overridable-rejected", "deployments": [], "key": "codepipeline/override-stage-condition-not-overridable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:OverrideStageCondition", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_override_stage_condition_not_overridable_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.parallel-actions-in-one-stage-both-deliver-their-own-artifact", "deployments": [], "key": "codepipeline/parallel-actions-in-one-stage-both-deliver-their-own-artifact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_parallel_actions_in_one_stage_both_deliver_their_own_artifact.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-artifact-store-encryption-key-preserved", "deployments": [], "key": "codepipeline/pipeline-artifact-store-encryption-key-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_artifact_store_encryption_key_preserved.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-create-active-update-delete", "deployments": [], "key": "codepipeline/pipeline-create-active-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:EnableStageTransition", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_create_active_update_delete.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-declaration-unicode-name-round-trip", "deployments": [], "key": "codepipeline/pipeline-declaration-unicode-name-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/codepipeline/check_pipeline_declaration_unicode_name_round_trip.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-declaration-unicode-values-round-trip", "deployments": [], "key": "codepipeline/pipeline-declaration-unicode-values-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:ListTagsForResource", "codepipeline:TagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions"], "path": "behavioral/codepipeline/check_pipeline_declaration_unicode_values_round_trip.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-execution-lifecycle-in-progress-to-succeeded", "deployments": [], "key": "codepipeline/pipeline-execution-lifecycle-in-progress-to-succeeded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_execution_lifecycle_in_progress_to_succeeded.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-execution-lifecycle-transitions", "deployments": [], "key": "codepipeline/pipeline-execution-lifecycle-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_execution_lifecycle_transitions.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-execution-start-to-terminal-state", "deployments": [], "key": "codepipeline/pipeline-execution-start-to-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_execution_start_to_terminal_state.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-execution-timestamp-precision-preserved", "deployments": [], "key": "codepipeline/pipeline-execution-timestamp-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_pipeline_execution_timestamp_precision_preserved.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-lifecycle-create-active-delete", "deployments": [], "key": "codepipeline/pipeline-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:ListPipelines", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_lifecycle_create_active_delete.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-lifecycle-create-active-delete-404", "deployments": [], "key": "codepipeline/pipeline-lifecycle-create-active-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:ListPipelines", "codepipeline:StartPipelineExecution", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_pipeline_lifecycle_create_active_delete_404.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-lifecycle-delete-then-404", "deployments": [], "key": "codepipeline/pipeline-lifecycle-delete-then-404", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_lifecycle_delete_then_404.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-metadata-unicode-name-round-trip", "deployments": [], "key": "codepipeline/pipeline-metadata-unicode-name-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_pipeline_metadata_unicode_name_round_trip.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-name-unicode-round-trip", "deployments": [], "key": "codepipeline/pipeline-name-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:ListTagsForResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_name_unicode_round_trip.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-stage-actions-execute-in-declared-order", "deployments": [], "key": "codepipeline/pipeline-stage-actions-execute-in-declared-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_pipeline_stage_actions_execute_in_declared_order.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-structure-unicode-names-round-trip", "deployments": [], "key": "codepipeline/pipeline-structure-unicode-names-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_pipeline_structure_unicode_names_round_trip.py", "service": "codepipeline"} {"check_id": "codepipeline.pipeline-version-integer-persists-across-update", "deployments": [], "key": "codepipeline/pipeline-version-integer-persists-across-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_pipeline_version_integer_persists_across_update.py", "service": "codepipeline"} {"check_id": "codepipeline.poll-for-jobs-lease-expires-and-job-becomes-available-again", "deployments": [], "key": "codepipeline/poll-for-jobs-lease-expires-and-job-becomes-available-again", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_poll_for_jobs_lease_expires_and_job_becomes_available_again.py", "service": "codepipeline"} {"check_id": "codepipeline.poll-for-jobs-unknown-action-type-rejected", "deployments": [], "key": "codepipeline/poll-for-jobs-unknown-action-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:PollForJobs"], "path": "behavioral/codepipeline/check_poll_for_jobs_unknown_action_type_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.poll-for-third-party-jobs-access-denied", "deployments": [], "key": "codepipeline/poll-for-third-party-jobs-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:ListPipelines", "codepipeline:PollForThirdPartyJobs"], "path": "behavioral/codepipeline/check_poll_for_third_party_jobs_access_denied.py", "service": "codepipeline"} {"check_id": "codepipeline.put-action-revision-concurrency-limit-exceeded", "deployments": [], "key": "codepipeline/put-action-revision-concurrency-limit-exceeded", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:PutActionRevision", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_put_action_revision_concurrency_limit_exceeded.py", "service": "codepipeline"} {"check_id": "codepipeline.put-action-revision-concurrency-limit-rejected", "deployments": [], "key": "codepipeline/put-action-revision-concurrency-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:PutActionRevision", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_action_revision_concurrency_limit_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-already-completed-rejected", "deployments": [], "key": "codepipeline/put-approval-result-already-completed-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_approval_result_already_completed_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-invalid-token-rejected", "deployments": [], "key": "codepipeline/put-approval-result-invalid-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutApprovalResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_put_approval_result_invalid_token_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-nonexistent-action-rejected", "deployments": [], "key": "codepipeline/put-approval-result-nonexistent-action-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_approval_result_nonexistent_action_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-replay-rejected", "deployments": [], "key": "codepipeline/put-approval-result-replay-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutApprovalResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_put_approval_result_replay_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-second-attempt-rejected", "deployments": [], "key": "codepipeline/put-approval-result-second-attempt-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_approval_result_second_attempt_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-second-submission-rejected", "deployments": [], "key": "codepipeline/put-approval-result-second-submission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_approval_result_second_submission_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-stale-token-rejected", "deployments": [], "key": "codepipeline/put-approval-result-stale-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_approval_result_stale_token_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-token-invalidated-after-completion", "deployments": [], "key": "codepipeline/put-approval-result-token-invalidated-after-completion", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_approval_result_token_invalidated_after_completion.py", "service": "codepipeline"} {"check_id": "codepipeline.put-approval-result-token-semantics", "deployments": [], "key": "codepipeline/put-approval-result-token-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_approval_result_token_semantics.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-failure-invalid-job-state-rejected", "deployments": [], "key": "codepipeline/put-job-failure-invalid-job-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_failure_invalid_job_state_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-failure-invalid-state-rejected", "deployments": [], "key": "codepipeline/put-job-failure-invalid-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetJobDetails", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_failure_invalid_state_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-failure-on-completed-job-rejected", "deployments": [], "key": "codepipeline/put-job-failure-on-completed-job-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_failure_on_completed_job_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-failure-result-wrong-job-state-rejected", "deployments": [], "key": "codepipeline/put-job-failure-result-wrong-job-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_failure_result_wrong_job_state_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-success-invalid-job-state-rejected", "deployments": [], "key": "codepipeline/put-job-success-invalid-job-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListActionExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_success_invalid_job_state_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-success-on-already-completed-job-not-permissive", "deployments": [], "key": "codepipeline/put-job-success-on-already-completed-job-not-permissive", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_success_on_already_completed_job_not_permissive.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-success-output-variables-size-exceeded-rejected", "deployments": [], "key": "codepipeline/put-job-success-output-variables-size-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_success_output_variables_size_exceeded_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-success-result-completed-job-rejected", "deployments": [], "key": "codepipeline/put-job-success-result-completed-job-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_success_result_completed_job_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-success-result-wrong-job-state-rejected", "deployments": [], "key": "codepipeline/put-job-success-result-wrong-job-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_put_job_success_result_wrong_job_state_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-job-success-result-wrong-state-rejected", "deployments": [], "key": "codepipeline/put-job-success-result-wrong-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_put_job_success_result_wrong_state_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-third-party-job-result-invalid-client-token-rejected", "deployments": [], "key": "codepipeline/put-third-party-job-result-invalid-client-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:PutThirdPartyJobFailureResult", "codepipeline:PutThirdPartyJobSuccessResult"], "path": "behavioral/codepipeline/check_put_third_party_job_result_invalid_client_token_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.put-webhook-invalid-filter-pattern-rejected", "deployments": [], "key": "codepipeline/put-webhook-invalid-filter-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:DeleteWebhook", "codepipeline:ListWebhooks", "codepipeline:PutWebhook"], "path": "behavioral/codepipeline/check_put_webhook_invalid_filter_pattern_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.register-webhook-with-third-party-not-found", "deployments": [], "key": "codepipeline/register-webhook-with-third-party-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:RegisterWebhookWithThirdParty"], "path": "behavioral/codepipeline/check_register_webhook_with_third_party_not_found.py", "service": "codepipeline"} {"check_id": "codepipeline.retry-stage-execution-creates-new-execution", "deployments": [], "key": "codepipeline/retry-stage-execution-creates-new-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_retry_stage_execution_creates_new_execution.py", "service": "codepipeline"} {"check_id": "codepipeline.retry-stage-execution-not-failed-rejected", "deployments": [], "key": "codepipeline/retry-stage-execution-not-failed-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/codepipeline/check_retry_stage_execution_not_failed_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.retry-stage-execution-resumes-failed-stage", "deployments": [], "key": "codepipeline/retry-stage-execution-resumes-failed-stage", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_retry_stage_execution_resumes_failed_stage.py", "service": "codepipeline"} {"check_id": "codepipeline.retry-stage-execution-stale-token-rejected", "deployments": [], "key": "codepipeline/retry-stage-execution-stale-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/codepipeline/check_retry_stage_execution_stale_token_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.retry-stage-not-latest-execution-rejected", "deployments": [], "key": "codepipeline/retry-stage-not-latest-execution-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListActionExecutions", "codepipeline:RetryStageExecution", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_retry_stage_not_latest_execution_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.rollback-stage-restores-previous-execution", "deployments": [], "key": "codepipeline/rollback-stage-restores-previous-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:RetryStageExecution", "codepipeline:RollbackStage", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_rollback_stage_restores_previous_execution.py", "service": "codepipeline"} {"check_id": "codepipeline.rollback-stage-restores-previous-state", "deployments": [], "key": "codepipeline/rollback-stage-restores-previous-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:RollbackStage", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_rollback_stage_restores_previous_state.py", "service": "codepipeline"} {"check_id": "codepipeline.rollback-stage-restores-the-previous-artifact-bytes", "deployments": [], "key": "codepipeline/rollback-stage-restores-the-previous-artifact-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:RollbackStage", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_rollback_stage_restores_the_previous_artifact_bytes.py", "service": "codepipeline"} {"check_id": "codepipeline.run-order-two-starts-only-after-run-order-one-finishes", "deployments": [], "key": "codepipeline/run-order-two-starts-only-after-run-order-one-finishes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline/check_run_order_two_starts_only_after_run_order_one_finishes.py", "service": "codepipeline"} {"check_id": "codepipeline.server-computes-pipeline-execution-status-rollup", "deployments": [], "key": "codepipeline/server-computes-pipeline-execution-status-rollup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_server_computes_pipeline_execution_status_rollup.py", "service": "codepipeline"} {"check_id": "codepipeline.server-enforces-disabled-stage-transition-blocks-progress", "deployments": [], "key": "codepipeline/server-enforces-disabled-stage-transition-blocks-progress", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineState", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_server_enforces_disabled_stage_transition_blocks_progress.py", "service": "codepipeline"} {"check_id": "codepipeline.server-side-approval-gate-blocks-progress", "deployments": [], "key": "codepipeline/server-side-approval-gate-blocks-progress", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_server_side_approval_gate_blocks_progress.py", "service": "codepipeline"} {"check_id": "codepipeline.server-side-manual-approval-blocks-until-approved", "deployments": [], "key": "codepipeline/server-side-manual-approval-blocks-until-approved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:PutApprovalResult", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_server_side_manual_approval_blocks_until_approved.py", "service": "codepipeline"} {"check_id": "codepipeline.source-output-variable-resolves-into-the-downstream-object-key", "deployments": [], "key": "codepipeline/source-output-variable-resolves-into-the-downstream-object-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_source_output_variable_resolves_into_the_downstream_object_key.py", "service": "codepipeline"} {"check_id": "codepipeline.source-revision-override-delivers-the-pinned-object-version", "deployments": [], "key": "codepipeline/source-revision-override-delivers-the-pinned-object-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_source_revision_override_delivers_the_pinned_object_version.py", "service": "codepipeline"} {"check_id": "codepipeline.stage-transition-disable-blocks-execution", "deployments": [], "key": "codepipeline/stage-transition-disable-blocks-execution", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_stage_transition_disable_blocks_execution.py", "service": "codepipeline"} {"check_id": "codepipeline.stage-transition-disable-enable-reflected-in-state", "deployments": [], "key": "codepipeline/stage-transition-disable-enable-reflected-in-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_stage_transition_disable_enable_reflected_in_state.py", "service": "codepipeline"} {"check_id": "codepipeline.stage-transition-disable-enable-toggles-state", "deployments": [], "key": "codepipeline/stage-transition-disable-enable-toggles-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_stage_transition_disable_enable_toggles_state.py", "service": "codepipeline"} {"check_id": "codepipeline.start-pipeline-execution-concurrency-limit-exceeded", "deployments": [], "key": "codepipeline/start-pipeline-execution-concurrency-limit-exceeded", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_start_pipeline_execution_concurrency_limit_exceeded.py", "service": "codepipeline"} {"check_id": "codepipeline.start-pipeline-execution-concurrency-limit-rejected", "deployments": [], "key": "codepipeline/start-pipeline-execution-concurrency-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_start_pipeline_execution_concurrency_limit_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.start-pipeline-execution-concurrent-limit-exceeded", "deployments": [], "key": "codepipeline/start-pipeline-execution-concurrent-limit-exceeded", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_start_pipeline_execution_concurrent_limit_exceeded.py", "service": "codepipeline"} {"check_id": "codepipeline.start-pipeline-execution-idempotent-client-request-token", "deployments": [], "key": "codepipeline/start-pipeline-execution-idempotent-client-request-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_start_pipeline_execution_idempotent_client_request_token.py", "service": "codepipeline"} {"check_id": "codepipeline.stop-completed-execution-rejected", "deployments": [], "key": "codepipeline/stop-completed-execution-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:ListActionExecutions", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_stop_completed_execution_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.stop-pipeline-execution-duplicate-request-rejected", "deployments": [], "key": "codepipeline/stop-pipeline-execution-duplicate-request-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:PollForJobs", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/codepipeline/check_stop_pipeline_execution_duplicate_request_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.stop-pipeline-execution-not-stoppable-rejected", "deployments": [], "key": "codepipeline/stop-pipeline-execution-not-stoppable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_stop_pipeline_execution_not_stoppable_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.stop-pipeline-execution-terminal-not-stoppable", "deployments": [], "key": "codepipeline/stop-pipeline-execution-terminal-not-stoppable", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_stop_pipeline_execution_terminal_not_stoppable.py", "service": "codepipeline"} {"check_id": "codepipeline.stop-pipeline-execution-transitions-to-stopped", "deployments": [], "key": "codepipeline/stop-pipeline-execution-transitions-to-stopped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:AcknowledgeJob", "codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:PollForJobs", "codepipeline:PutJobSuccessResult", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_stop_pipeline_execution_transitions_to_stopped.py", "service": "codepipeline"} {"check_id": "codepipeline.stopping-an-execution-leaves-no-deploy-artifact-and-a-restop-is-rejected", "deployments": [], "key": "codepipeline/stopping-an-execution-leaves-no-deploy-artifact-and-a-restop-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StartPipelineExecution", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_stopping_an_execution_leaves_no_deploy_artifact_and_a_restop_is_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.superseded-execution-mode-drops-the-middle-queued-execution", "deployments": [], "key": "codepipeline/superseded-execution-mode-drops-the-middle-queued-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:DisableStageTransition", "codepipeline:EnableStageTransition", "codepipeline:GetPipelineExecution", "codepipeline:GetPipelineState", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_superseded_execution_mode_drops_the_middle_queued_execution.py", "service": "codepipeline"} {"check_id": "codepipeline.tag-resource-nonexistent-pipeline-rejected", "deployments": [], "key": "codepipeline/tag-resource-nonexistent-pipeline-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:TagResource"], "path": "behavioral/codepipeline/check_tag_resource_nonexistent_pipeline_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.third-party-job-details-reflect-polled-job", "deployments": [], "key": "codepipeline/third-party-job-details-reflect-polled-job", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:GetThirdPartyJobDetails", "codepipeline:PollForJobs", "codepipeline:PollForThirdPartyJobs"], "path": "behavioral/codepipeline/check_third_party_job_details_reflect_polled_job.py", "service": "codepipeline"} {"check_id": "codepipeline.third-party-job-nonce-single-use-visibility", "deployments": [], "key": "codepipeline/third-party-job-nonce-single-use-visibility", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:AcknowledgeThirdPartyJob", "codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:GetThirdPartyJobDetails", "codepipeline:PollForJobs", "codepipeline:PollForThirdPartyJobs"], "path": "behavioral/codepipeline/check_third_party_job_nonce_single_use_visibility.py", "service": "codepipeline"} {"check_id": "codepipeline.third-party-job-success-after-failure-not-permissive", "deployments": [], "key": "codepipeline/third-party-job-success-after-failure-not-permissive", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:AcknowledgeThirdPartyJob", "codepipeline:GetThirdPartyJobDetails", "codepipeline:ListActionTypes", "codepipeline:PollForThirdPartyJobs", "codepipeline:PutThirdPartyJobFailureResult", "codepipeline:PutThirdPartyJobSuccessResult"], "path": "behavioral/codepipeline/check_third_party_job_success_after_failure_not_permissive.py", "service": "codepipeline"} {"check_id": "codepipeline.untag-resource-nonexistent-pipeline-rejected", "deployments": [], "key": "codepipeline/untag-resource-nonexistent-pipeline-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:ListTagsForResource", "codepipeline:TagResource", "codepipeline:UntagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_untag_resource_nonexistent_pipeline_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.update-action-type-not-found", "deployments": [], "key": "codepipeline/update-action-type-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:DeleteCustomActionType", "codepipeline:ListActionTypes", "codepipeline:UpdateActionType"], "path": "behavioral/codepipeline/check_update_action_type_not_found.py", "service": "codepipeline"} {"check_id": "codepipeline.update-pipeline-invalid-action-declaration-rejected", "deployments": [], "key": "codepipeline/update-pipeline-invalid-action-declaration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_update_pipeline_invalid_action_declaration_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.update-pipeline-invalid-blocker-declaration-rejected", "deployments": [], "key": "codepipeline/update-pipeline-invalid-blocker-declaration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_update_pipeline_invalid_blocker_declaration_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.update-pipeline-invalid-stage-declaration-rejected", "deployments": [], "key": "codepipeline/update-pipeline-invalid-stage-declaration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/codepipeline/check_update_pipeline_invalid_stage_declaration_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.update-pipeline-malformed-declarations-rejected", "deployments": [], "key": "codepipeline/update-pipeline-malformed-declarations-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/codepipeline/check_update_pipeline_malformed_declarations_rejected.py", "service": "codepipeline"} {"check_id": "codepipeline.update-pipeline-version-history-stale-read", "deployments": [], "key": "codepipeline/update-pipeline-version-history-stale-read", "labels": ["axis:happy-path", "plane:control"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipeline", "codepipeline:UpdatePipeline", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/codepipeline/check_update_pipeline_version_history_stale_read.py", "service": "codepipeline"} {"check_id": "codepipeline.webhook-url-rejects-a-wrong-hmac-signature-and-starts-no-execution", "deployments": [], "key": "codepipeline/webhook-url-rejects-a-wrong-hmac-signature-and-starts-no-execution", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["codepipeline:CreateCustomActionType", "codepipeline:CreatePipeline", "codepipeline:DeleteCustomActionType", "codepipeline:DeletePipeline", "codepipeline:DeleteWebhook", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListWebhooks", "codepipeline:PutWebhook", "codepipeline:StopPipelineExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline/check_webhook_url_rejects_a_wrong_hmac_signature_and_starts_no_execution.py", "service": "codepipeline"} {"check_id": "codepipeline__events__sqs.pipeline-execution-state-change-events-reach-the-queue-for-each-stage", "deployments": [], "key": "codepipeline__events__sqs/pipeline-execution-state-change-events-reach-the-queue-for-each-stage", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["codepipeline:CreatePipeline", "codepipeline:DeletePipeline", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:StopPipelineExecution", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codepipeline__events__sqs/check_pipeline_execution_state_change_events_reach_the_queue_for_each_stage.py", "service": "codepipeline__events__sqs"} {"check_id": "codestar-connections.concurrent-tag-resource-no-lost-updates", "deployments": [], "key": "codestar-connections/concurrent-tag-resource-no-lost-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:ListTagsForResource", "codestar-connections:TagResource"], "path": "behavioral/codestar-connections/check_concurrent_tag_resource_no_lost_updates.py", "service": "codestar-connections"} {"check_id": "codestar-connections.connection-created-in-pending-status", "deployments": [], "key": "codestar-connections/connection-created-in-pending-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:GetConnection"], "path": "behavioral/codestar-connections/check_connection_created_in_pending_status.py", "service": "codestar-connections"} {"check_id": "codestar-connections.connection-duplicate-names-allowed-distinct-arns", "deployments": [], "key": "codestar-connections/connection-duplicate-names-allowed-distinct-arns", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:GetConnection"], "path": "behavioral/codestar-connections/check_connection_duplicate_names_allowed_distinct_arns.py", "service": "codestar-connections"} {"check_id": "codestar-connections.connection-tags-at-creation-round-trip", "deployments": [], "key": "codestar-connections/connection-tags-at-creation-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:ListTagsForResource"], "path": "behavioral/codestar-connections/check_connection_tags_at_creation_round_trip.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-connection-nonexistent-host-arn-rejected", "deployments": [], "key": "codestar-connections/create-connection-nonexistent-host-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:GetConnection", "codestar-connections:ListConnections"], "path": "behavioral/codestar-connections/check_create_connection_nonexistent_host_arn_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-connection-on-deleted-host-rejected", "deployments": [], "key": "codestar-connections/create-connection-on-deleted-host-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateHost", "codestar-connections:DeleteConnection", "codestar-connections:DeleteHost", "codestar-connections:GetConnection", "codestar-connections:GetHost", "codestar-connections:ListConnections"], "path": "behavioral/codestar-connections/check_create_connection_on_deleted_host_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-connection-without-provider-type-or-host", "deployments": [], "key": "codestar-connections/create-connection-without-provider-type-or-host", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:GetConnection"], "path": "behavioral/codestar-connections/check_create_connection_without_provider_type_or_host.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-host-duplicate-names-allowed-distinct-arns", "deployments": [], "key": "codestar-connections/create-host-duplicate-names-allowed-distinct-arns", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateHost", "codestar-connections:DeleteHost", "codestar-connections:GetHost"], "path": "behavioral/codestar-connections/check_create_host_duplicate_names_allowed_distinct_arns.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-host-with-tags-and-list-hosts-round-trip", "deployments": [], "key": "codestar-connections/create-host-with-tags-and-list-hosts-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateHost", "codestar-connections:DeleteHost", "codestar-connections:ListHosts", "codestar-connections:ListTagsForResource"], "path": "behavioral/codestar-connections/check_create_host_with_tags_and_list_hosts_round_trip.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-host-with-tags-persisted", "deployments": [], "key": "codestar-connections/create-host-with-tags-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateHost", "codestar-connections:DeleteHost", "codestar-connections:ListTagsForResource"], "path": "behavioral/codestar-connections/check_create_host_with_tags_persisted.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-repository-link-duplicate-rejected", "deployments": [], "key": "codestar-connections/create-repository-link-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:ListRepositoryLinks"], "path": "behavioral/codestar-connections/check_create_repository_link_duplicate_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-repository-link-success-fields", "deployments": [], "key": "codestar-connections/create-repository-link-success-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:GetRepositoryLink"], "path": "behavioral/codestar-connections/check_create_repository_link_success_fields.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-repository-link-with-kms-encryption-key-round-trip", "deployments": [], "key": "codestar-connections/create-repository-link-with-kms-encryption-key-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:GetRepositoryLink", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/codestar-connections/check_create_repository_link_with_kms_encryption_key_round_trip.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-sync-configuration-duplicate-resource-rejected", "deployments": [], "key": "codestar-connections/create-sync-configuration-duplicate-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:GetSyncConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_create_sync_configuration_duplicate_resource_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-sync-configuration-success-fields", "deployments": [], "key": "codestar-connections/create-sync-configuration-success-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:GetSyncConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_create_sync_configuration_success_fields.py", "service": "codestar-connections"} {"check_id": "codestar-connections.create-sync-configuration-with-publish-deployment-status-persisted", "deployments": [], "key": "codestar-connections/create-sync-configuration-with-publish-deployment-status-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:GetSyncConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_create_sync_configuration_with_publish_deployment_status_persisted.py", "service": "codestar-connections"} {"check_id": "codestar-connections.delete-connection-removes-from-list", "deployments": [], "key": "codestar-connections/delete-connection-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:GetConnection", "codestar-connections:ListConnections"], "path": "behavioral/codestar-connections/check_delete_connection_removes_from_list.py", "service": "codestar-connections"} {"check_id": "codestar-connections.delete-connection-removes-resource-and-rejects-repeat", "deployments": [], "key": "codestar-connections/delete-connection-removes-resource-and-rejects-repeat", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:GetConnection"], "path": "behavioral/codestar-connections/check_delete_connection_removes_resource_and_rejects_repeat.py", "service": "codestar-connections"} {"check_id": "codestar-connections.delete-host-removes-from-list", "deployments": [], "key": "codestar-connections/delete-host-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateHost", "codestar-connections:DeleteHost", "codestar-connections:GetHost", "codestar-connections:ListHosts", "codestar-connections:UpdateHost"], "path": "behavioral/codestar-connections/check_delete_host_removes_from_list.py", "service": "codestar-connections"} {"check_id": "codestar-connections.delete-host-with-active-connection-rejected", "deployments": [], "key": "codestar-connections/delete-host-with-active-connection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateHost", "codestar-connections:DeleteConnection", "codestar-connections:DeleteHost", "codestar-connections:GetHost"], "path": "behavioral/codestar-connections/check_delete_host_with_active_connection_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.delete-repository-link-blocked-by-sync-configuration-rejected", "deployments": [], "key": "codestar-connections/delete-repository-link-blocked-by-sync-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:GetRepositoryLink", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_delete_repository_link_blocked_by_sync_configuration_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.delete-repository-link-removes-it", "deployments": [], "key": "codestar-connections/delete-repository-link-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:GetRepositoryLink", "codestar-connections:UpdateRepositoryLink"], "path": "behavioral/codestar-connections/check_delete_repository_link_removes_it.py", "service": "codestar-connections"} {"check_id": "codestar-connections.delete-sync-configuration-removes-it", "deployments": [], "key": "codestar-connections/delete-sync-configuration-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:GetRepositoryLink", "codestar-connections:GetSyncConfiguration", "codestar-connections:UpdateSyncConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_delete_sync_configuration_removes_it.py", "service": "codestar-connections"} {"check_id": "codestar-connections.get-connection-after-delete-not-found", "deployments": [], "key": "codestar-connections/get-connection-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:GetConnection"], "path": "behavioral/codestar-connections/check_get_connection_after_delete_not_found.py", "service": "codestar-connections"} {"check_id": "codestar-connections.get-connection-reflects-host-association", "deployments": [], "key": "codestar-connections/get-connection-reflects-host-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateHost", "codestar-connections:DeleteConnection", "codestar-connections:DeleteHost", "codestar-connections:GetConnection"], "path": "behavioral/codestar-connections/check_get_connection_reflects_host_association.py", "service": "codestar-connections"} {"check_id": "codestar-connections.get-repository-sync-status-without-history-rejected", "deployments": [], "key": "codestar-connections/get-repository-sync-status-without-history-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:GetRepositoryLink", "codestar-connections:GetRepositorySyncStatus"], "path": "behavioral/codestar-connections/check_get_repository_sync_status_without_history_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.get-resource-sync-status-succeeds-without-sync-activity", "deployments": [], "key": "codestar-connections/get-resource-sync-status-succeeds-without-sync-activity", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:GetResourceSyncStatus", "codestar-connections:GetSyncConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_get_resource_sync_status_succeeds_without_sync_activity.py", "service": "codestar-connections"} {"check_id": "codestar-connections.host-appears-in-list-hosts", "deployments": [], "key": "codestar-connections/host-appears-in-list-hosts", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateHost", "codestar-connections:DeleteHost", "codestar-connections:ListHosts"], "path": "behavioral/codestar-connections/check_host_appears_in_list_hosts.py", "service": "codestar-connections"} {"check_id": "codestar-connections.host-created-in-pending-status", "deployments": [], "key": "codestar-connections/host-created-in-pending-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateHost", "codestar-connections:DeleteHost", "codestar-connections:GetHost"], "path": "behavioral/codestar-connections/check_host_created_in_pending_status.py", "service": "codestar-connections"} {"check_id": "codestar-connections.host-status-message-present-when-pending", "deployments": [], "key": "codestar-connections/host-status-message-present-when-pending", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateHost", "codestar-connections:DeleteHost", "codestar-connections:ListHosts"], "path": "behavioral/codestar-connections/check_host_status_message_present_when_pending.py", "service": "codestar-connections"} {"check_id": "codestar-connections.list-connections-host-arn-filter-matches", "deployments": [], "key": "codestar-connections/list-connections-host-arn-filter-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateHost", "codestar-connections:DeleteConnection", "codestar-connections:DeleteHost", "codestar-connections:ListConnections"], "path": "behavioral/codestar-connections/check_list_connections_host_arn_filter_matches.py", "service": "codestar-connections"} {"check_id": "codestar-connections.list-connections-pagination-collects-all", "deployments": [], "key": "codestar-connections/list-connections-pagination-collects-all", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:ListConnections"], "path": "behavioral/codestar-connections/check_list_connections_pagination_collects_all.py", "service": "codestar-connections"} {"check_id": "codestar-connections.list-connections-provider-type-filter-matches", "deployments": [], "key": "codestar-connections/list-connections-provider-type-filter-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:ListConnections"], "path": "behavioral/codestar-connections/check_list_connections_provider_type_filter_matches.py", "service": "codestar-connections"} {"check_id": "codestar-connections.list-repository-links-reflects-multiple-connections", "deployments": [], "key": "codestar-connections/list-repository-links-reflects-multiple-connections", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:ListRepositoryLinks"], "path": "behavioral/codestar-connections/check_list_repository_links_reflects_multiple_connections.py", "service": "codestar-connections"} {"check_id": "codestar-connections.list-repository-sync-definitions-empty-without-stack", "deployments": [], "key": "codestar-connections/list-repository-sync-definitions-empty-without-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:ListRepositorySyncDefinitions"], "path": "behavioral/codestar-connections/check_list_repository_sync_definitions_empty_without_stack.py", "service": "codestar-connections"} {"check_id": "codestar-connections.list-sync-configurations-reflects-created-config", "deployments": [], "key": "codestar-connections/list-sync-configurations-reflects-created-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:ListSyncConfigurations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_list_sync_configurations_reflects_created_config.py", "service": "codestar-connections"} {"check_id": "codestar-connections.repository-link-uniqueness-under-concurrent-create", "deployments": [], "key": "codestar-connections/repository-link-uniqueness-under-concurrent-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:ListRepositoryLinks"], "path": "behavioral/codestar-connections/check_repository_link_uniqueness_under_concurrent_create.py", "service": "codestar-connections"} {"check_id": "codestar-connections.tag-resource-nonexistent-arn-rejected", "deployments": [], "key": "codestar-connections/tag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:ListTagsForResource", "codestar-connections:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/codestar-connections/check_tag_resource_nonexistent_arn_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.tag-resource-persists-on-connection", "deployments": [], "key": "codestar-connections/tag-resource-persists-on-connection", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:ListTagsForResource", "codestar-connections:TagResource"], "path": "behavioral/codestar-connections/check_tag_resource_persists_on_connection.py", "service": "codestar-connections"} {"check_id": "codestar-connections.untag-resource-nonexistent-key-is-noop", "deployments": [], "key": "codestar-connections/untag-resource-nonexistent-key-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:ListTagsForResource", "codestar-connections:UntagResource"], "path": "behavioral/codestar-connections/check_untag_resource_nonexistent_key_is_noop.py", "service": "codestar-connections"} {"check_id": "codestar-connections.untag-resource-removes-tags", "deployments": [], "key": "codestar-connections/untag-resource-removes-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:ListTagsForResource", "codestar-connections:UntagResource"], "path": "behavioral/codestar-connections/check_untag_resource_removes_tags.py", "service": "codestar-connections"} {"check_id": "codestar-connections.update-host-provider-endpoint-persisted", "deployments": [], "key": "codestar-connections/update-host-provider-endpoint-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateHost", "codestar-connections:DeleteHost", "codestar-connections:GetHost", "codestar-connections:UpdateHost"], "path": "behavioral/codestar-connections/check_update_host_provider_endpoint_persisted.py", "service": "codestar-connections"} {"check_id": "codestar-connections.update-repository-link-connection-arn-persisted", "deployments": [], "key": "codestar-connections/update-repository-link-connection-arn-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:GetRepositoryLink", "codestar-connections:UpdateRepositoryLink"], "path": "behavioral/codestar-connections/check_update_repository_link_connection_arn_persisted.py", "service": "codestar-connections"} {"check_id": "codestar-connections.update-sync-blocker-nonexistent-id-rejected", "deployments": [], "key": "codestar-connections/update-sync-blocker-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:GetSyncConfiguration", "codestar-connections:UpdateSyncBlocker", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_update_sync_blocker_nonexistent_id_rejected.py", "service": "codestar-connections"} {"check_id": "codestar-connections.update-sync-configuration-branch-persisted", "deployments": [], "key": "codestar-connections/update-sync-configuration-branch-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-connections:CreateConnection", "codestar-connections:CreateRepositoryLink", "codestar-connections:CreateSyncConfiguration", "codestar-connections:DeleteConnection", "codestar-connections:DeleteRepositoryLink", "codestar-connections:DeleteSyncConfiguration", "codestar-connections:GetSyncConfiguration", "codestar-connections:UpdateSyncConfiguration", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/codestar-connections/check_update_sync_configuration_branch_persisted.py", "service": "codestar-connections"} {"check_id": "codestar-notifications.concurrent-subscribe-all-targets-persisted", "deployments": [], "key": "codestar-notifications/concurrent-subscribe-all-targets-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:Subscribe", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_concurrent_subscribe_all_targets_persisted.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.create-rule-default-status-enabled", "deployments": [], "key": "codestar-notifications/create-rule-default-status-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_create_rule_default_status_enabled.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.create-rule-duplicate-name-rejected", "deployments": [], "key": "codestar-notifications/create-rule-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:ListNotificationRules", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_create_rule_duplicate_name_rejected.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.create-rule-explicit-disabled-status", "deployments": [], "key": "codestar-notifications/create-rule-explicit-disabled-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_create_rule_explicit_disabled_status.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.create-rule-nonexistent-event-type-rejected", "deployments": [], "key": "codestar-notifications/create-rule-nonexistent-event-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codedeploy:TagResource", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:ListNotificationRules", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_create_rule_nonexistent_event_type_rejected.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.create-rule-unsupported-resource-type-rejected", "deployments": [], "key": "codestar-notifications/create-rule-unsupported-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:ListNotificationRules", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_create_rule_unsupported_resource_type_rejected.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.delete-notification-rule-idempotent", "deployments": [], "key": "codestar-notifications/delete-notification-rule-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_delete_notification_rule_idempotent.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.delete-target-force-unsubscribe-all-removes-across-rules", "deployments": [], "key": "codestar-notifications/delete-target-force-unsubscribe-all-removes-across-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DeleteTarget", "codestar-notifications:DescribeNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_delete_target_force_unsubscribe_all_removes_across_rules.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.describe-nonexistent-rule-not-found", "deployments": [], "key": "codestar-notifications/describe-nonexistent-rule-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_describe_nonexistent_rule_not_found.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.describe-rule-malformed-arn-rejected", "deployments": [], "key": "codestar-notifications/describe-rule-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_describe_rule_malformed_arn_rejected.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.list-event-types-filter-by-service-name", "deployments": [], "key": "codestar-notifications/list-event-types-filter-by-service-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["codestar-notifications:ListEventTypes"], "path": "behavioral/codestar-notifications/check_list_event_types_filter_by_service_name.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.list-notification-rules-filter-by-resource", "deployments": [], "key": "codestar-notifications/list-notification-rules-filter-by-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:ListNotificationRules", "codestar-notifications:TagResource", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_list_notification_rules_filter_by_resource.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.list-targets-filter-by-target-address", "deployments": [], "key": "codestar-notifications/list-targets-filter-by-target-address", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:ListTargets", "codestar-notifications:Subscribe", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_list_targets_filter_by_target_address.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.subscribe-adds-target", "deployments": [], "key": "codestar-notifications/subscribe-adds-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:Subscribe", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_subscribe_adds_target.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.tag-resource-reserved-prefix-key-rejected", "deployments": [], "key": "codestar-notifications/tag-resource-reserved-prefix-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:ListTagsForResource", "codestar-notifications:TagResource", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_tag_resource_reserved_prefix_key_rejected.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.tag-resource-roundtrip", "deployments": [], "key": "codestar-notifications/tag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:ListTagsForResource", "codestar-notifications:TagResource", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_tag_resource_roundtrip.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.target-status-reaches-active-with-valid-policy", "deployments": [], "key": "codestar-notifications/target-status-reaches-active-with-valid-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_target_status_reaches_active_with_valid_policy.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.unsubscribe-removes-target-association", "deployments": [], "key": "codestar-notifications/unsubscribe-removes-target-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:Unsubscribe", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_unsubscribe_removes_target_association.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.untag-resource-removes-tag", "deployments": [], "key": "codestar-notifications/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:ListTagsForResource", "codestar-notifications:UntagResource", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_untag_resource_removes_tag.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.update-rule-empty-targets-clears-all", "deployments": [], "key": "codestar-notifications/update-rule-empty-targets-clears-all", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_update_rule_empty_targets_clears_all.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.update-rule-replace-event-types", "deployments": [], "key": "codestar-notifications/update-rule-replace-event-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_update_rule_replace_event_types.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.update-rule-replace-targets", "deployments": [], "key": "codestar-notifications/update-rule-replace-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_update_rule_replace_targets.py", "service": "codestar-notifications"} {"check_id": "codestar-notifications.update-rule-status-toggle", "deployments": [], "key": "codestar-notifications/update-rule-status-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["codedeploy:CreateApplication", "codedeploy:DeleteApplication", "codestar-notifications:CreateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/codestar-notifications/check_update_rule_status_toggle.py", "service": "codestar-notifications"} {"check_id": "cognito-identity.a-token-minted-by-another-pool-is-refused-and-vends-nothing", "deployments": [], "key": "cognito-identity/a-token-minted-by-another-pool-is-refused-and-vends-nothing", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_a_token_minted_by_another_pool_is_refused_and_vends_nothing.py", "service": "cognito-identity"} {"check_id": "cognito-identity.allow-classic-flow-disabled-refuses-get-open-id-token", "deployments": [], "key": "cognito-identity/allow-classic-flow-disabled-refuses-get-open-id-token", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:UpdateIdentityPool", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_allow_classic_flow_disabled_refuses_get_open_id_token.py", "service": "cognito-identity"} {"check_id": "cognito-identity.amr-provider-condition-admits-the-developer-provider-and-refuses-the-user-pool-login", "deployments": [], "key": "cognito-identity/amr-provider-condition-admits-the-developer-provider-and-refuses-the-user-pool-login", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_amr_provider_condition_admits_the_developer_provider_and_refuses_the_user_pool_login.py", "service": "cognito-identity"} {"check_id": "cognito-identity.basic-flow-get-open-id-token-refused-while-role-mappings-are-configured", "deployments": [], "key": "cognito-identity/basic-flow-get-open-id-token-refused-while-role-mappings-are-configured", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:GetOpenIdToken", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_basic_flow_get_open_id_token_refused_while_role_mappings_are_configured.py", "service": "cognito-identity"} {"check_id": "cognito-identity.classic-flow-open-id-token-assume-role-with-web-identity", "deployments": [], "key": "cognito-identity/classic-flow-open-id-token-assume-role-with-web-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_classic_flow_open_id_token_assume_role_with_web_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.cloudtrail-logs-pool-management-but-not-identity-data-events", "deployments": [], "key": "cognito-identity/cloudtrail-logs-pool-management-but-not-identity-data-events", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["cloudtrail:LookupEvents", "cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:UpdateIdentityPool", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_cloudtrail_logs_pool_management_but_not_identity_data_events.py", "service": "cognito-identity"} {"check_id": "cognito-identity.cognito-vended-creds-call-service", "deployments": [], "key": "cognito-identity/cognito-vended-creds-call-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_cognito_vended_creds_call_service.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-delete-identities-overlapping-batches-consistent-final-state", "deployments": [], "key": "cognito-identity/concurrent-delete-identities-overlapping-batches-consistent-final-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_concurrent_delete_identities_overlapping_batches_consistent_final_state.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-delete-identities-overlapping-batches-consistent-result", "deployments": [], "key": "cognito-identity/concurrent-delete-identities-overlapping-batches-consistent-result", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_concurrent_delete_identities_overlapping_batches_consistent_result.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-developer-identity-resolution-dedups", "deployments": [], "key": "cognito-identity/concurrent-developer-identity-resolution-dedups", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_concurrent_developer_identity_resolution_dedups.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-developer-login-leaves-the-pool-with-exactly-one-identity", "deployments": [], "key": "cognito-identity/concurrent-developer-login-leaves-the-pool-with-exactly-one-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_concurrent_developer_login_leaves_the_pool_with_exactly_one_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-get-id-allocates-unique-identities", "deployments": [], "key": "cognito-identity/concurrent-get-id-allocates-unique-identities", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_concurrent_get_id_allocates_unique_identities.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-get-id-creates-distinct-identities", "deployments": [], "key": "cognito-identity/concurrent-get-id-creates-distinct-identities", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_concurrent_get_id_creates_distinct_identities.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-merge-developer-identities-race-resolves-deterministically", "deployments": [], "key": "cognito-identity/concurrent-merge-developer-identities-race-resolves-deterministically", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_concurrent_merge_developer_identities_race_resolves_deterministically.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-merge-developer-identities-same-source-serializes", "deployments": [], "key": "cognito-identity/concurrent-merge-developer-identities-same-source-serializes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_concurrent_merge_developer_identities_same_source_serializes.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-set-identity-pool-roles-last-writer-consistent", "deployments": [], "key": "cognito-identity/concurrent-set-identity-pool-roles-last-writer-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_concurrent_set_identity_pool_roles_last_writer_consistent.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-set-principal-tag-attribute-map-consistent", "deployments": [], "key": "cognito-identity/concurrent-set-principal-tag-attribute-map-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_concurrent_set_principal_tag_attribute_map_consistent.py", "service": "cognito-identity"} {"check_id": "cognito-identity.concurrent-tag-resource-last-writer-wins", "deployments": [], "key": "cognito-identity/concurrent-tag-resource-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_concurrent_tag_resource_last_writer_wins.py", "service": "cognito-identity"} {"check_id": "cognito-identity.create-describe-delete-pool-lifecycle", "deployments": [], "key": "cognito-identity/create-describe-delete-pool-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentityPools", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_create_describe_delete_pool_lifecycle.py", "service": "cognito-identity"} {"check_id": "cognito-identity.create-describe-identity-pool-roundtrip", "deployments": [], "key": "cognito-identity/create-describe-identity-pool-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_create_describe_identity_pool_roundtrip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.create-identity-pool-duplicate-name-distinct-ids", "deployments": [], "key": "cognito-identity/create-identity-pool-duplicate-name-distinct-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_create_identity_pool_duplicate_name_distinct_ids.py", "service": "cognito-identity"} {"check_id": "cognito-identity.create-identity-pool-duplicate-provider-name-accepted-without-dedup", "deployments": [], "key": "cognito-identity/create-identity-pool-duplicate-provider-name-accepted-without-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:ListIdentityPools", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_create_identity_pool_duplicate_provider_name_accepted_without_dedup.py", "service": "cognito-identity"} {"check_id": "cognito-identity.create-identity-pool-invalid-name-rejected", "deployments": [], "key": "cognito-identity/create-identity-pool-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListIdentityPools"], "path": "behavioral/cognito-identity/check_create_identity_pool_invalid_name_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.create-identity-pool-limit-exceeded", "deployments": [], "key": "cognito-identity/create-identity-pool-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_create_identity_pool_limit_exceeded.py", "service": "cognito-identity"} {"check_id": "cognito-identity.create-identity-pool-rejects-invalid-name", "deployments": [], "key": "cognito-identity/create-identity-pool-rejects-invalid-name", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListIdentityPools"], "path": "behavioral/cognito-identity/check_create_identity_pool_rejects_invalid_name.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deep-cognito-identity-1-unsigned-public-api-control-plane-rejected-while-credentials-vend", "deployments": [], "key": "cognito-identity/deep-cognito-identity-1-unsigned-public-api-control-plane-rejected-while-credentials-vend", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentityPools", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deep_cognito_identity_1_unsigned_public_api_control_plane_rejected_while_credentials_vend.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deep-cognito-identity-1-unsigned-public-api-delete-identities-rejected", "deployments": [], "key": "cognito-identity/deep-cognito-identity-1-unsigned-public-api-delete-identities-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken"], "path": "behavioral/cognito-identity/check_deep_cognito_identity_1_unsigned_public_api_delete_identities_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deep-cognito-identity-1-unsigned-public-api-linked-identity-credentials-without-logins-rejected", "deployments": [], "key": "cognito-identity/deep-cognito-identity-1-unsigned-public-api-linked-identity-credentials-without-logins-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deep_cognito_identity_1_unsigned_public_api_linked_identity_credentials_without_logins_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deep-cognito-identity-1-unsigned-public-api-unlink-identity-with-another-users-login-rejected", "deployments": [], "key": "cognito-identity/deep-cognito-identity-1-unsigned-public-api-unlink-identity-with-another-users-login-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:UnlinkIdentity", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_deep_cognito_identity_1_unsigned_public_api_unlink_identity_with_another_users_login_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deep-cognito-identity-1-unsigned-public-api-unlink-identity-with-owned-logins-succeeds", "deployments": [], "key": "cognito-identity/deep-cognito-identity-1-unsigned-public-api-unlink-identity-with-owned-logins-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:UnlinkIdentity", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_deep_cognito_identity_1_unsigned_public_api_unlink_identity_with_owned_logins_succeeds.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deep-cognito-identity-2-disabled-identity-merge-destination-lookup-rejected-old-token-still-vends", "deployments": [], "key": "cognito-identity/deep-cognito-identity-2-disabled-identity-merge-destination-lookup-rejected-old-token-still-vends", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdToken", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deep_cognito_identity_2_disabled_identity_merge_destination_lookup_rejected_old_token_still_vends.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deep-cognito-identity-2-disabled-identity-unlink-orphan-login-calls-rejected", "deployments": [], "key": "cognito-identity/deep-cognito-identity-2-disabled-identity-unlink-orphan-login-calls-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:ListIdentities", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:UnlinkIdentity", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deep_cognito_identity_2_disabled_identity_unlink_orphan_login_calls_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deep-cognito-identity-2-oidc-token-integrity-sts-detects-one-byte-tamper", "deployments": [], "key": "cognito-identity/deep-cognito-identity-2-oidc-token-integrity-sts-detects-one-byte-tamper", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deep_cognito_identity_2_oidc_token_integrity_sts_detects_one_byte_tamper.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identities-ignores-unknown-ids", "deployments": [], "key": "cognito-identity/delete-identities-ignores-unknown-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_delete_identities_ignores_unknown_ids.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identities-oversized-batch-rejected", "deployments": [], "key": "cognito-identity/delete-identities-oversized-batch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:DeleteIdentities"], "path": "behavioral/cognito-identity/check_delete_identities_oversized_batch_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identities-partial-failure-rejects-whole-batch", "deployments": [], "key": "cognito-identity/delete-identities-partial-failure-rejects-whole-batch", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_delete_identities_partial_failure_rejects_whole_batch.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identities-partial-unprocessed", "deployments": [], "key": "cognito-identity/delete-identities-partial-unprocessed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_delete_identities_partial_unprocessed.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identities-then-not-found", "deployments": [], "key": "cognito-identity/delete-identities-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:ListIdentities", "cognito-identity:ListIdentityPools", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_delete_identities_then_not_found.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identities-too-many-requests-limit", "deployments": [], "key": "cognito-identity/delete-identities-too-many-requests-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:DeleteIdentities"], "path": "behavioral/cognito-identity/check_delete_identities_too_many_requests_limit.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identities-unprocessed-order-matches-input", "deployments": [], "key": "cognito-identity/delete-identities-unprocessed-order-matches-input", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_delete_identities_unprocessed_order_matches_input.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identity-pool-blocks-further-operations", "deployments": [], "key": "cognito-identity/delete-identity-pool-blocks-further-operations", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles"], "path": "behavioral/cognito-identity/check_delete_identity_pool_blocks_further_operations.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identity-pool-cascades-to-identities", "deployments": [], "key": "cognito-identity/delete-identity-pool-cascades-to-identities", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_delete_identity_pool_cascades_to_identities.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identity-pool-is-not-idempotent", "deployments": [], "key": "cognito-identity/delete-identity-pool-is-not-idempotent", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_delete_identity_pool_is_not_idempotent.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identity-pool-not-authorized-cross-account", "deployments": [], "key": "cognito-identity/delete-identity-pool-not-authorized-cross-account", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_delete_identity_pool_not_authorized_cross_account.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-identity-pool-second-delete-not-found-rejected", "deployments": [], "key": "cognito-identity/delete-identity-pool-second-delete-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_delete_identity_pool_second_delete_not_found_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.delete-pool-invalidates-identities", "deployments": [], "key": "cognito-identity/delete-pool-invalidates-identities", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_delete_pool_invalidates_identities.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-cfn-identity-pool-get-id-behaves", "deployments": [], "key": "cognito-identity/deploy-cfn-identity-pool-get-id-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_deploy_cfn_identity_pool_get_id_behaves.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-cfn-role-attachment-enforced-on-credentials", "deployments": [], "key": "cognito-identity/deploy-cfn-role-attachment-enforced-on-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deploy_cfn_role_attachment_enforced_on_credentials.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-cfn-role-attachment-missing-unauthenticated-role-rejected", "deployments": [], "key": "cognito-identity/deploy-cfn-role-attachment-missing-unauthenticated-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_deploy_cfn_role_attachment_missing_unauthenticated_role_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-cfn-stack-update-changes-provider-config-live", "deployments": [], "key": "cognito-identity/deploy-cfn-stack-update-changes-provider-config-live", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_deploy_cfn_stack_update_changes_provider_config_live.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-cognito-identity-2-cfn-rollback-identity-pool-rejected", "deployments": [], "key": "cognito-identity/deploy-cognito-identity-2-cfn-rollback-identity-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentityPools", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_deploy_cognito_identity_2_cfn_rollback_identity_pool_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-cognito-identity-3-cfn-principal-tag-governs-tenant-access", "deployments": [], "key": "cognito-identity/deploy-cognito-identity-3-cfn-principal-tag-governs-tenant-access", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:UpdateStack", "cognito-identity:DeleteIdentities", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "s3:DeleteObject", "s3:GetObject", "s3:PutObject"], "path": "behavioral/cognito-identity/check_deploy_cognito_identity_3_cfn_principal_tag_governs_tenant_access.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-cognito-identity-3-cfn-principal-tag-without-tag-session-rejected", "deployments": [], "key": "cognito-identity/deploy-cognito-identity-3-cfn-principal-tag-without-tag-session-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-identity:DeleteIdentities", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deploy_cognito_identity_3_cfn_principal_tag_without_tag_session_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-identity-pool-cfn-deletion-removes-pool", "deployments": [], "key": "cognito-identity/deploy-identity-pool-cfn-deletion-removes-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_deploy_identity_pool_cfn_deletion_removes_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-identity-pool-cfn-get-id-succeeds", "deployments": [], "key": "cognito-identity/deploy-identity-pool-cfn-get-id-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_deploy_identity_pool_cfn_get_id_succeeds.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-identity-pool-cfn-role-mappings-enforced", "deployments": [], "key": "cognito-identity/deploy-identity-pool-cfn-role-mappings-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deploy_identity_pool_cfn_role_mappings_enforced.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-identity-pool-cfn-stack-behaves", "deployments": [], "key": "cognito-identity/deploy-identity-pool-cfn-stack-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deploy_identity_pool_cfn_stack_behaves.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-identity-pool-cfn-stack-update-changes-runtime-behavior", "deployments": [], "key": "cognito-identity/deploy-identity-pool-cfn-stack-update-changes-runtime-behavior", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_deploy_identity_pool_cfn_stack_update_changes_runtime_behavior.py", "service": "cognito-identity"} {"check_id": "cognito-identity.deploy-identity-pool-cfn-update-role-mapping-takes-effect", "deployments": [], "key": "cognito-identity/deploy-identity-pool-cfn-update-role-mapping-takes-effect", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_deploy_identity_pool_cfn_update_role_mapping_takes_effect.py", "service": "cognito-identity"} {"check_id": "cognito-identity.describe-identity-last-modified-is-frozen-by-reads-and-advances-on-a-new-login", "deployments": [], "key": "cognito-identity/describe-identity-last-modified-is-frozen-by-reads-and-advances-on-a-new-login", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_describe_identity_last_modified_is_frozen_by_reads_and_advances_on_a_new_login.py", "service": "cognito-identity"} {"check_id": "cognito-identity.describe-identity-metadata-shape", "deployments": [], "key": "cognito-identity/describe-identity-metadata-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_describe_identity_metadata_shape.py", "service": "cognito-identity"} {"check_id": "cognito-identity.describe-identity-not-found", "deployments": [], "key": "cognito-identity/describe-identity-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_describe_identity_not_found.py", "service": "cognito-identity"} {"check_id": "cognito-identity.describe-identity-pool-malformed-id-format-rejected", "deployments": [], "key": "cognito-identity/describe-identity-pool-malformed-id-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_describe_identity_pool_malformed_id_format_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.describe-identity-pool-nonexistent-rejected", "deployments": [], "key": "cognito-identity/describe-identity-pool-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_describe_identity_pool_nonexistent_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.describe-identity-reflects-developer-login", "deployments": [], "key": "cognito-identity/describe-identity-reflects-developer-login", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_describe_identity_reflects_developer_login.py", "service": "cognito-identity"} {"check_id": "cognito-identity.describe-identity-reflects-linked-logins", "deployments": [], "key": "cognito-identity/describe-identity-reflects-linked-logins", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_describe_identity_reflects_linked_logins.py", "service": "cognito-identity"} {"check_id": "cognito-identity.developer-authenticated-credentials-write-and-read-dynamodb", "deployments": [], "key": "cognito-identity/developer-authenticated-credentials-write-and-read-dynamodb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_developer_authenticated_credentials_write_and_read_dynamodb.py", "service": "cognito-identity"} {"check_id": "cognito-identity.developer-identity-repeated-login-resolves-same-identity", "deployments": [], "key": "cognito-identity/developer-identity-repeated-login-resolves-same-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_developer_identity_repeated_login_resolves_same_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.developer-identity-vends-authenticated-role-credentials", "deployments": [], "key": "cognito-identity/developer-identity-vends-authenticated-role-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_developer_identity_vends_authenticated_role_credentials.py", "service": "cognito-identity"} {"check_id": "cognito-identity.developer-provider-must-be-configured-on-pool", "deployments": [], "key": "cognito-identity/developer-provider-must-be-configured-on-pool", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_developer_provider_must_be_configured_on_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.developer-user-already-registered-rejected", "deployments": [], "key": "cognito-identity/developer-user-already-registered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_developer_user_already_registered_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.developer-user-identifier-unicode-preserved", "deployments": [], "key": "cognito-identity/developer-user-identifier-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_developer_user_identifier_unicode_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.developer-user-unknown-explicit-identity-rejected", "deployments": [], "key": "cognito-identity/developer-user-unknown-explicit-identity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_developer_user_unknown_explicit_identity_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-anonymous-identity-credentials-consequence-flow", "deployments": [], "key": "cognito-identity/e2e-anonymous-identity-credentials-consequence-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_e2e_anonymous_identity_credentials_consequence_flow.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-anonymous-identity-credentials-to-caller-identity", "deployments": [], "key": "cognito-identity/e2e-anonymous-identity-credentials-to-caller-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_e2e_anonymous_identity_credentials_to_caller_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-credentials-for-identity-without-roles-rejected", "deployments": [], "key": "cognito-identity/e2e-credentials-for-identity-without-roles-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_e2e_credentials_for_identity_without_roles_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-credentials-rejected-without-role-mapping", "deployments": [], "key": "cognito-identity/e2e-credentials-rejected-without-role-mapping", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_e2e_credentials_rejected_without_role_mapping.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-developer-identity-full-lifecycle-flow", "deployments": [], "key": "cognito-identity/e2e-developer-identity-full-lifecycle-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_e2e_developer_identity_full_lifecycle_flow.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-developer-identity-merge-unlink-teardown", "deployments": [], "key": "cognito-identity/e2e-developer-identity-merge-unlink-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_e2e_developer_identity_merge_unlink_teardown.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-identity-pool-mismatch-rejected", "deployments": [], "key": "cognito-identity/e2e-identity-pool-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_e2e_identity_pool_mismatch_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-identity-population-delete-merge-unlink-final-state", "deployments": [], "key": "cognito-identity/e2e-identity-population-delete-merge-unlink-final-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_e2e_identity_population_delete_merge_unlink_final_state.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-principal-tags-federation-to-sts-session-tags", "deployments": [], "key": "cognito-identity/e2e-principal-tags-federation-to-sts-session-tags", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:SetPrincipalTagAttributeMap", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_e2e_principal_tags_federation_to_sts_session_tags.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-principal-tags-flow-into-sts-session-tags", "deployments": [], "key": "cognito-identity/e2e-principal-tags-flow-into-sts-session-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:SetPrincipalTagAttributeMap", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRoleTags", "iam:PutRolePolicy", "sts:AssumeRoleWithWebIdentity"], "path": "behavioral/cognito-identity/check_e2e_principal_tags_flow_into_sts_session_tags.py", "service": "cognito-identity"} {"check_id": "cognito-identity.e2e-unauthenticated-identity-access-disabled-rejected", "deployments": [], "key": "cognito-identity/e2e-unauthenticated-identity-access-disabled-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_e2e_unauthenticated_identity_access_disabled_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.external-service-exception-on-bad-provider-config", "deployments": [], "key": "cognito-identity/external-service-exception-on-bad-provider-config", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_external_service_exception_on_bad_provider_config.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-ambiguous-role-resolution-denied", "deployments": [], "key": "cognito-identity/get-credentials-ambiguous-role-resolution-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_credentials_ambiguous_role_resolution_denied.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-for-identity-expiration-is-one-hour", "deployments": [], "key": "cognito-identity/get-credentials-for-identity-expiration-is-one-hour", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_credentials_for_identity_expiration_is_one_hour.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-for-identity-full-flow", "deployments": [], "key": "cognito-identity/get-credentials-for-identity-full-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:TagRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_credentials_for_identity_full_flow.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-for-identity-invalid-token-rejected", "deployments": [], "key": "cognito-identity/get-credentials-for-identity-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_get_credentials_for_identity_invalid_token_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-for-identity-no-roles-configured-rejected", "deployments": [], "key": "cognito-identity/get-credentials-for-identity-no-roles-configured-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_get_credentials_for_identity_no_roles_configured_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-for-identity-returns-sts-creds", "deployments": [], "key": "cognito-identity/get-credentials-for-identity-returns-sts-creds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_credentials_for_identity_returns_sts_creds.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-for-identity-role-trust-policy-enforced", "deployments": [], "key": "cognito-identity/get-credentials-for-identity-role-trust-policy-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_credentials_for_identity_role_trust_policy_enforced.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-for-identity-session-duration-bounded", "deployments": [], "key": "cognito-identity/get-credentials-for-identity-session-duration-bounded", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_credentials_for_identity_session_duration_bounded.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-for-identity-ttl", "deployments": [], "key": "cognito-identity/get-credentials-for-identity-ttl", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_get_credentials_for_identity_ttl.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-without-roles-configured-fails", "deployments": [], "key": "cognito-identity/get-credentials-without-roles-configured-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_get_credentials_without_roles_configured_fails.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-credentials-without-roles-configured-rejected", "deployments": [], "key": "cognito-identity/get-credentials-without-roles-configured-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_get_credentials_without_roles_configured_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-anonymous-creates-new-identity-each-call", "deployments": [], "key": "cognito-identity/get-id-anonymous-creates-new-identity-each-call", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_get_id_anonymous_creates_new_identity_each_call.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-consistent-across-multiple-logins-same-identity", "deployments": [], "key": "cognito-identity/get-id-consistent-across-multiple-logins-same-identity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_get_id_consistent_across_multiple_logins_same_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-creates-new-identity", "deployments": [], "key": "cognito-identity/get-id-creates-new-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_get_id_creates_new_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-invalid-parameter-rejected", "deployments": [], "key": "cognito-identity/get-id-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_get_id_invalid_parameter_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-logins-provider-token-mismatch-rejected", "deployments": [], "key": "cognito-identity/get-id-logins-provider-token-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_get_id_logins_provider_token_mismatch_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-malformed-login-token-format-rejected", "deployments": [], "key": "cognito-identity/get-id-malformed-login-token-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_get_id_malformed_login_token_format_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-malformed-login-token-value-rejected", "deployments": [], "key": "cognito-identity/get-id-malformed-login-token-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_get_id_malformed_login_token_value_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-rejects-unauthenticated-when-disallowed", "deployments": [], "key": "cognito-identity/get-id-rejects-unauthenticated-when-disallowed", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_get_id_rejects_unauthenticated_when_disallowed.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-rejects-unconfigured-login-provider", "deployments": [], "key": "cognito-identity/get-id-rejects-unconfigured-login-provider", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_get_id_rejects_unconfigured_login_provider.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-unauthenticated-creates-identity", "deployments": [], "key": "cognito-identity/get-id-unauthenticated-creates-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_get_id_unauthenticated_creates_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-unauthenticated-disabled-rejected", "deployments": [], "key": "cognito-identity/get-id-unauthenticated-disabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_get_id_unauthenticated_disabled_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-id-unauthenticated-disallowed-rejected", "deployments": [], "key": "cognito-identity/get-id-unauthenticated-disallowed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_get_id_unauthenticated_disallowed_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-identity-pool-roles-default-empty", "deployments": [], "key": "cognito-identity/get-identity-pool-roles-default-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_identity_pool_roles_default_empty.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-identity-pool-roles-persists-across-update", "deployments": [], "key": "cognito-identity/get-identity-pool-roles-persists-across-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:UpdateIdentityPool", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_get_identity_pool_roles_persists_across_update.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-identity-pool-roles-role-mappings-roundtrip", "deployments": [], "key": "cognito-identity/get-identity-pool-roles-role-mappings-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/cognito-identity/check_get_identity_pool_roles_role_mappings_roundtrip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-identity-pool-roles-rules-based-mapping-selects-role-by-claim", "deployments": [], "key": "cognito-identity/get-identity-pool-roles-rules-based-mapping-selects-role-by-claim", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_identity_pool_roles_rules_based_mapping_selects_role_by_claim.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-identity-pool-roles-rules-configuration-structure-preserved", "deployments": [], "key": "cognito-identity/get-identity-pool-roles-rules-configuration-structure-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_identity_pool_roles_rules_configuration_structure_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-identity-pool-roles-rules-evaluated-in-declared-order", "deployments": [], "key": "cognito-identity/get-identity-pool-roles-rules-evaluated-in-declared-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_identity_pool_roles_rules_evaluated_in_declared_order.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-identity-pool-roles-unauthorized-for-foreign-pool", "deployments": [], "key": "cognito-identity/get-identity-pool-roles-unauthorized-for-foreign-pool", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_identity_pool_roles_unauthorized_for_foreign_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-basic", "deployments": [], "key": "cognito-identity/get-open-id-token-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken"], "path": "behavioral/cognito-identity/check_get_open_id_token_basic.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-credentials-expiration-ttl-bounded", "deployments": [], "key": "cognito-identity/get-open-id-token-credentials-expiration-ttl-bounded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_get_open_id_token_credentials_expiration_ttl_bounded.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-conflicting-identity-rejected", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-conflicting-identity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_conflicting_identity_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-creates-identity", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-creates-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_creates_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-cross-pool-identity-id-rejected", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-cross-pool-identity-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_cross_pool_identity_id_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-custom-duration-honored", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-custom-duration-honored", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_custom_duration_honored.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-duplicate-registration-conflict", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-duplicate-registration-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_duplicate_registration_conflict.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-duplicate-registration-succeeds", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-duplicate-registration-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_duplicate_registration_succeeds.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-idempotent", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_idempotent.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-idempotent-same-user", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-idempotent-same-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_idempotent_same_user.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-max-duration-boundary-accepted", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-max-duration-boundary-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_max_duration_boundary_accepted.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-max-duration-token-remains-valid-until-expiry", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-max-duration-token-remains-valid-until-expiry", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_max_duration_token_remains_valid_until_expiry.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-mismatched-identity-id-ignored", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-mismatched-identity-id-ignored", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_mismatched_identity_id_ignored.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-missing-identity-and-provider-rejected", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-missing-identity-and-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_missing_identity_and_provider_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-missing-required-login-rejected", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-missing-required-login-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_missing_required_login_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-rejects-bad-token-duration", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-rejects-bad-token-duration", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_rejects_bad_token_duration.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-token-duration-out-of-range-rejected", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-token-duration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_token_duration_out_of_range_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-for-developer-identity-token-ttl-matches-requested-duration", "deployments": [], "key": "cognito-identity/get-open-id-token-for-developer-identity-token-ttl-matches-requested-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_for_developer_identity_token_ttl_matches_requested_duration.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-invalid-identity-id-rejected", "deployments": [], "key": "cognito-identity/get-open-id-token-invalid-identity-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken"], "path": "behavioral/cognito-identity/check_get_open_id_token_invalid_identity_id_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-jwt-claims-match-identity", "deployments": [], "key": "cognito-identity/get-open-id-token-jwt-claims-match-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken"], "path": "behavioral/cognito-identity/check_get_open_id_token_jwt_claims_match_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-jwt-structure", "deployments": [], "key": "cognito-identity/get-open-id-token-jwt-structure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_open_id_token_jwt_structure.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-malformed-identity-id-rejected", "deployments": [], "key": "cognito-identity/get-open-id-token-malformed-identity-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken"], "path": "behavioral/cognito-identity/check_get_open_id_token_malformed_identity_id_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-open-id-token-rejects-deleted-identity", "deployments": [], "key": "cognito-identity/get-open-id-token-rejects-deleted-identity", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken"], "path": "behavioral/cognito-identity/check_get_open_id_token_rejects_deleted_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-openid-token-expiration-ttl", "deployments": [], "key": "cognito-identity/get-openid-token-expiration-ttl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken"], "path": "behavioral/cognito-identity/check_get_openid_token_expiration_ttl.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-principal-tag-attribute-map-allowlist-mode-filters-claims", "deployments": [], "key": "cognito-identity/get-principal-tag-attribute-map-allowlist-mode-filters-claims", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_get_principal_tag_attribute_map_allowlist_mode_filters_claims.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-principal-tag-attribute-map-default-empty", "deployments": [], "key": "cognito-identity/get-principal-tag-attribute-map-default-empty", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_get_principal_tag_attribute_map_default_empty.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-principal-tag-attribute-map-nonexistent-pool-rejected", "deployments": [], "key": "cognito-identity/get-principal-tag-attribute-map-nonexistent-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_get_principal_tag_attribute_map_nonexistent_pool_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-principal-tag-attribute-map-unknown-provider-not-found", "deployments": [], "key": "cognito-identity/get-principal-tag-attribute-map-unknown-provider-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_get_principal_tag_attribute_map_unknown_provider_not_found.py", "service": "cognito-identity"} {"check_id": "cognito-identity.get-principal-tag-attribute-map-use-defaults-flag-round-trip", "deployments": [], "key": "cognito-identity/get-principal-tag-attribute-map-use-defaults-flag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_get_principal_tag_attribute_map_use_defaults_flag_round_trip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.identity-creation-date-timestamp-precision-preserved", "deployments": [], "key": "cognito-identity/identity-creation-date-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_identity_creation_date_timestamp_precision_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.identity-id-format-stable-across-calls", "deployments": [], "key": "cognito-identity/identity-id-format-stable-across-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/cognito-identity/check_identity_id_format_stable_across_calls.py", "service": "cognito-identity"} {"check_id": "cognito-identity.identity-pool-create-time-tags-persist", "deployments": [], "key": "cognito-identity/identity-pool-create-time-tags-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_identity_pool_create_time_tags_persist.py", "service": "cognito-identity"} {"check_id": "cognito-identity.identity-pool-empty-vs-absent-supported-login-providers-distinguished", "deployments": [], "key": "cognito-identity/identity-pool-empty-vs-absent-supported-login-providers-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_identity_pool_empty_vs_absent_supported_login_providers_distinguished.py", "service": "cognito-identity"} {"check_id": "cognito-identity.identity-pool-id-malformed-pattern-rejected", "deployments": [], "key": "cognito-identity/identity-pool-id-malformed-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_identity_pool_id_malformed_pattern_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.identity-pool-name-invalid-symbol-rejected", "deployments": [], "key": "cognito-identity/identity-pool-name-invalid-symbol-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:ListIdentityPools"], "path": "behavioral/cognito-identity/check_identity_pool_name_invalid_symbol_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.identity-pool-name-unicode-preserved", "deployments": [], "key": "cognito-identity/identity-pool-name-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_identity_pool_name_unicode_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.identity-pool-name-unicode-round-trip", "deployments": [], "key": "cognito-identity/identity-pool-name-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:ListIdentityPools"], "path": "behavioral/cognito-identity/check_identity_pool_name_unicode_round_trip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-creation-date-timestamp-precision-preserved", "deployments": [], "key": "cognito-identity/list-identities-creation-date-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_list_identities_creation_date_timestamp_precision_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-dedup-across-pagination-with-deleted-identities", "deployments": [], "key": "cognito-identity/list-identities-dedup-across-pagination-with-deleted-identities", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_list_identities_dedup_across_pagination_with_deleted_identities.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-deterministic-ordering", "deployments": [], "key": "cognito-identity/list-identities-deterministic-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_list_identities_deterministic_ordering.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-hide-disabled-after-merge", "deployments": [], "key": "cognito-identity/list-identities-hide-disabled-after-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_list_identities_hide_disabled_after_merge.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-max-results-out-of-range-rejected", "deployments": [], "key": "cognito-identity/list-identities-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_list_identities_max_results_out_of_range_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-ordering-consistent-across-repeated-calls", "deployments": [], "key": "cognito-identity/list-identities-ordering-consistent-across-repeated-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_list_identities_ordering_consistent_across_repeated_calls.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-pagination", "deployments": [], "key": "cognito-identity/list-identities-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_list_identities_pagination.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-pagination-complete-and-disjoint", "deployments": [], "key": "cognito-identity/list-identities-pagination-complete-and-disjoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_list_identities_pagination_complete_and_disjoint.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identities-reflects-created-identities", "deployments": [], "key": "cognito-identity/list-identities-reflects-created-identities", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities"], "path": "behavioral/cognito-identity/check_list_identities_reflects_created_identities.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identity-pools-max-results-invalid-rejected", "deployments": [], "key": "cognito-identity/list-identity-pools-max-results-invalid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:ListIdentityPools"], "path": "behavioral/cognito-identity/check_list_identity_pools_max_results_invalid_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identity-pools-pagination-stable-ordering", "deployments": [], "key": "cognito-identity/list-identity-pools-pagination-stable-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListIdentityPools"], "path": "behavioral/cognito-identity/check_list_identity_pools_pagination_stable_ordering.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identity-pools-pagination-token-invalidated-after-pool-deletion", "deployments": [], "key": "cognito-identity/list-identity-pools-pagination-token-invalidated-after-pool-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListIdentityPools"], "path": "behavioral/cognito-identity/check_list_identity_pools_pagination_token_invalidated_after_pool_deletion.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identity-pools-reflects-created", "deployments": [], "key": "cognito-identity/list-identity-pools-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListIdentityPools"], "path": "behavioral/cognito-identity/check_list_identity_pools_reflects_created.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-identity-pools-reflects-created-pool", "deployments": [], "key": "cognito-identity/list-identity-pools-reflects-created-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:ListIdentityPools", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_list_identity_pools_reflects_created_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-tags-for-nonexistent-pool-rejected", "deployments": [], "key": "cognito-identity/list-tags-for-nonexistent-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_list_tags_for_nonexistent_pool_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-tags-for-resource-empty-by-default", "deployments": [], "key": "cognito-identity/list-tags-for-resource-empty-by-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_list_tags_for_resource_empty_by_default.py", "service": "cognito-identity"} {"check_id": "cognito-identity.list-tags-for-resource-unauthorized-rejected", "deployments": [], "key": "cognito-identity/list-tags-for-resource-unauthorized-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_list_tags_for_resource_unauthorized_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.lookup-developer-identity-by-user-identifier", "deployments": [], "key": "cognito-identity/lookup-developer-identity-by-user-identifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_lookup_developer_identity_by_user_identifier.py", "service": "cognito-identity"} {"check_id": "cognito-identity.lookup-developer-identity-cross-pool-isolation", "deployments": [], "key": "cognito-identity/lookup-developer-identity-cross-pool-isolation", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_lookup_developer_identity_cross_pool_isolation.py", "service": "cognito-identity"} {"check_id": "cognito-identity.lookup-developer-identity-empty-result-no-error", "deployments": [], "key": "cognito-identity/lookup-developer-identity-empty-result-no-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_lookup_developer_identity_empty_result_no_error.py", "service": "cognito-identity"} {"check_id": "cognito-identity.lookup-developer-identity-mismatch-rejected", "deployments": [], "key": "cognito-identity/lookup-developer-identity-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_lookup_developer_identity_mismatch_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.lookup-developer-identity-missing-identifier-rejected", "deployments": [], "key": "cognito-identity/lookup-developer-identity-missing-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_lookup_developer_identity_missing_identifier_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.lookup-developer-identity-resolves-mapping", "deployments": [], "key": "cognito-identity/lookup-developer-identity-resolves-mapping", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_lookup_developer_identity_resolves_mapping.py", "service": "cognito-identity"} {"check_id": "cognito-identity.merge-developer-identities-combines-into-destination", "deployments": [], "key": "cognito-identity/merge-developer-identities-combines-into-destination", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_merge_developer_identities_combines_into_destination.py", "service": "cognito-identity"} {"check_id": "cognito-identity.merge-developer-identities-combines-logins", "deployments": [], "key": "cognito-identity/merge-developer-identities-combines-logins", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_merge_developer_identities_combines_logins.py", "service": "cognito-identity"} {"check_id": "cognito-identity.merge-developer-identities-concurrent-requests-serialized-consistently", "deployments": [], "key": "cognito-identity/merge-developer-identities-concurrent-requests-serialized-consistently", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_merge_developer_identities_concurrent_requests_serialized_consistently.py", "service": "cognito-identity"} {"check_id": "cognito-identity.merge-developer-identities-idempotent-on-repeat", "deployments": [], "key": "cognito-identity/merge-developer-identities-idempotent-on-repeat", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_merge_developer_identities_idempotent_on_repeat.py", "service": "cognito-identity"} {"check_id": "cognito-identity.merge-developer-identities-preserves-login-insertion-order", "deployments": [], "key": "cognito-identity/merge-developer-identities-preserves-login-insertion-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_merge_developer_identities_preserves_login_insertion_order.py", "service": "cognito-identity"} {"check_id": "cognito-identity.merge-developer-identities-same-provider-is-a-no-op", "deployments": [], "key": "cognito-identity/merge-developer-identities-same-provider-is-a-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_merge_developer_identities_same_provider_is_a_no_op.py", "service": "cognito-identity"} {"check_id": "cognito-identity.merge-developer-identities-self-merge-rejected", "deployments": [], "key": "cognito-identity/merge-developer-identities-self-merge-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities"], "path": "behavioral/cognito-identity/check_merge_developer_identities_self_merge_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.not-authorized-describe-and-roles-on-foreign-pool", "deployments": [], "key": "cognito-identity/not-authorized-describe-and-roles-on-foreign-pool", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetIdentityPoolRoles"], "path": "behavioral/cognito-identity/check_not_authorized_describe_and_roles_on_foreign_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.not-authorized-identity-operations-on-foreign-pool", "deployments": [], "key": "cognito-identity/not-authorized-identity-operations-on-foreign-pool", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:MergeDeveloperIdentities", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_not_authorized_identity_operations_on_foreign_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.not-authorized-principal-tag-map-on-foreign-pool", "deployments": [], "key": "cognito-identity/not-authorized-principal-tag-map-on-foreign-pool", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_not_authorized_principal_tag_map_on_foreign_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.not-authorized-tagging-on-foreign-pool", "deployments": [], "key": "cognito-identity/not-authorized-tagging-on-foreign-pool", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_not_authorized_tagging_on_foreign_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.op-contract-describeIdentity", "deployments": [], "key": "cognito-identity/op-contract-describeIdentity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId"], "path": "behavioral/cognito-identity/check_op_contract_describe_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.op-contract-describeIdentityPool", "deployments": [], "key": "cognito-identity/op-contract-describeIdentityPool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_op_contract_describe_identity_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.op-contract-getIdentityPoolRoles", "deployments": [], "key": "cognito-identity/op-contract-getIdentityPoolRoles", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_op_contract_get_identity_pool_roles.py", "service": "cognito-identity"} {"check_id": "cognito-identity.op-contract-lookupDeveloperIdentity", "deployments": [], "key": "cognito-identity/op-contract-lookupDeveloperIdentity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_op_contract_lookup_developer_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.op-contract-unlinkDeveloperIdentity", "deployments": [], "key": "cognito-identity/op-contract-unlinkDeveloperIdentity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_op_contract_unlink_developer_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.op-contract-updateIdentityPool", "deployments": [], "key": "cognito-identity/op-contract-updateIdentityPool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_op_contract_update_identity_pool.py", "service": "cognito-identity"} {"check_id": "cognito-identity.open-id-token-default-expiration-fixed-window", "deployments": [], "key": "cognito-identity/open-id-token-default-expiration-fixed-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken"], "path": "behavioral/cognito-identity/check_open_id_token_default_expiration_fixed_window.py", "service": "cognito-identity"} {"check_id": "cognito-identity.open-id-token-developer-identity-duration-exceeded-rejected", "deployments": [], "key": "cognito-identity/open-id-token-developer-identity-duration-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity"], "path": "behavioral/cognito-identity/check_open_id_token_developer_identity_duration_exceeded_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-attribute-map-invalid-key-rejected", "deployments": [], "key": "cognito-identity/principal-tag-attribute-map-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_principal_tag_attribute_map_invalid_key_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-attribute-map-lifecycle", "deployments": [], "key": "cognito-identity/principal-tag-attribute-map-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_principal_tag_attribute_map_lifecycle.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-attribute-map-overwrite-semantics", "deployments": [], "key": "cognito-identity/principal-tag-attribute-map-overwrite-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_principal_tag_attribute_map_overwrite_semantics.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-attribute-map-roundtrip", "deployments": [], "key": "cognito-identity/principal-tag-attribute-map-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_principal_tag_attribute_map_roundtrip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-attribute-map-set-get-lifecycle", "deployments": [], "key": "cognito-identity/principal-tag-attribute-map-set-get-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_principal_tag_attribute_map_set_get_lifecycle.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-attribute-map-special-char-values-preserved", "deployments": [], "key": "cognito-identity/principal-tag-attribute-map-special-char-values-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_principal_tag_attribute_map_special_char_values_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-attribute-map-unicode-value-preserved", "deployments": [], "key": "cognito-identity/principal-tag-attribute-map-unicode-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_principal_tag_attribute_map_unicode_value_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-attribute-map-unicode-values-round-trip", "deployments": [], "key": "cognito-identity/principal-tag-attribute-map-unicode-values-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_principal_tag_attribute_map_unicode_values_round_trip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.principal-tag-condition-denies-the-other-tenants-object", "deployments": [], "key": "cognito-identity/principal-tag-condition-denies-the-other-tenants-object", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cognito-identity/check_principal_tag_condition_denies_the_other_tenants_object.py", "service": "cognito-identity"} {"check_id": "cognito-identity.role-mapping-ambiguous-resolution-deny-blocks-credentials", "deployments": [], "key": "cognito-identity/role-mapping-ambiguous-resolution-deny-blocks-credentials", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_role_mapping_ambiguous_resolution_deny_blocks_credentials.py", "service": "cognito-identity"} {"check_id": "cognito-identity.role-mapping-invalid-key-rejected", "deployments": [], "key": "cognito-identity/role-mapping-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_role_mapping_invalid_key_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.role-mapping-rules-claim-match-selects-role", "deployments": [], "key": "cognito-identity/role-mapping-rules-claim-match-selects-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_role_mapping_rules_claim_match_selects_role.py", "service": "cognito-identity"} {"check_id": "cognito-identity.role-mapping-rules-first-match-wins-in-order", "deployments": [], "key": "cognito-identity/role-mapping-rules-first-match-wins-in-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_role_mapping_rules_first_match_wins_in_order.py", "service": "cognito-identity"} {"check_id": "cognito-identity.role-mapping-rules-match-types-evaluated", "deployments": [], "key": "cognito-identity/role-mapping-rules-match-types-evaluated", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_role_mapping_rules_match_types_evaluated.py", "service": "cognito-identity"} {"check_id": "cognito-identity.role-mapping-token-type-uses-preferred-role", "deployments": [], "key": "cognito-identity/role-mapping-token-type-uses-preferred-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_role_mapping_token_type_uses_preferred_role.py", "service": "cognito-identity"} {"check_id": "cognito-identity.server-side-principal-tag-attribute-map-enforced", "deployments": [], "key": "cognito-identity/server-side-principal-tag-attribute-map-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_server_side_principal_tag_attribute_map_enforced.py", "service": "cognito-identity"} {"check_id": "cognito-identity.server-side-role-resolution-authenticated-vs-unauthenticated", "deployments": [], "key": "cognito-identity/server-side-role-resolution-authenticated-vs-unauthenticated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_server_side_role_resolution_authenticated_vs_unauthenticated.py", "service": "cognito-identity"} {"check_id": "cognito-identity.server-side-role-selection-ignores-client-supplied-hints-rejected", "deployments": [], "key": "cognito-identity/server-side-role-selection-ignores-client-supplied-hints-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_server_side_role_selection_ignores_client_supplied_hints_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.server-side-sts-role-session-tags-enforced-in-trust-policy", "deployments": [], "key": "cognito-identity/server-side-sts-role-session-tags-enforced-in-trust-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_server_side_sts_role_session_tags_enforced_in_trust_policy.py", "service": "cognito-identity"} {"check_id": "cognito-identity.server-side-token-check-refuses-a-globally-signed-out-user", "deployments": [], "key": "cognito-identity/server-side-token-check-refuses-a-globally-signed-out-user", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUserGlobalSignOut", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_server_side_token_check_refuses_a_globally_signed_out_user.py", "service": "cognito-identity"} {"check_id": "cognito-identity.server-side-unauthenticated-role-blocked-without-unauth-access-enabled", "deployments": [], "key": "cognito-identity/server-side-unauthenticated-role-blocked-without-unauth-access-enabled", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_server_side_unauthenticated_role_blocked_without_unauth_access_enabled.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-and-get-principal-tag-attribute-map-roundtrip", "deployments": [], "key": "cognito-identity/set-and-get-principal-tag-attribute-map-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_set_and_get_principal_tag_attribute_map_roundtrip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-ambiguous-rule-resolution-rejected", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-ambiguous-rule-resolution-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_ambiguous_rule_resolution_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-concurrent-modification-error-path", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-concurrent-modification-error-path", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_concurrent_modification_error_path.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-invalid-keys-rejected", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-invalid-keys-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_invalid_keys_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-invalid-role-arn-rejected", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-invalid-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_invalid_role_arn_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-missing-rules-configuration-rejected", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-missing-rules-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_missing_rules_configuration_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-overwrite-semantics", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-overwrite-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_overwrite_semantics.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-rejects-cross-account-role", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-rejects-cross-account-role", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_rejects_cross_account_role.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-rejects-nonexistent-role", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-rejects-nonexistent-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_rejects_nonexistent_role.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-role-mappings-round-trip", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-role-mappings-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_role_mappings_round_trip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-rules-type-missing-config-rejected", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-rules-type-missing-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_rules_type_missing_config_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-identity-pool-roles-then-get-matches", "deployments": [], "key": "cognito-identity/set-identity-pool-roles-then-get-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/cognito-identity/check_set_identity_pool_roles_then_get_matches.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-principal-tag-attribute-map-basic", "deployments": [], "key": "cognito-identity/set-principal-tag-attribute-map-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_set_principal_tag_attribute_map_basic.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-principal-tag-attribute-map-conflicting-accepted", "deployments": [], "key": "cognito-identity/set-principal-tag-attribute-map-conflicting-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_set_principal_tag_attribute_map_conflicting_accepted.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-principal-tag-attribute-map-exceeds-max-mappings-rejected", "deployments": [], "key": "cognito-identity/set-principal-tag-attribute-map-exceeds-max-mappings-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_set_principal_tag_attribute_map_exceeds_max_mappings_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-principal-tag-attribute-map-invalid-key-rejected", "deployments": [], "key": "cognito-identity/set-principal-tag-attribute-map-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_set_principal_tag_attribute_map_invalid_key_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-principal-tag-attribute-map-invalid-keys-rejected", "deployments": [], "key": "cognito-identity/set-principal-tag-attribute-map-invalid-keys-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetPrincipalTagAttributeMap", "cognito-identity:SetPrincipalTagAttributeMap"], "path": "behavioral/cognito-identity/check_set_principal_tag_attribute_map_invalid_keys_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.set-roles-and-get-credentials-for-identity-success", "deployments": [], "key": "cognito-identity/set-roles-and-get-credentials-for-identity-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_set_roles_and_get_credentials_for_identity_success.py", "service": "cognito-identity"} {"check_id": "cognito-identity.sts-credentials-ttl-bound-by-role-max-session-duration", "deployments": [], "key": "cognito-identity/sts-credentials-ttl-bound-by-role-max-session-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_sts_credentials_ttl_bound_by_role_max_session_duration.py", "service": "cognito-identity"} {"check_id": "cognito-identity.supported-login-providers-empty-vs-absent-preserved", "deployments": [], "key": "cognito-identity/supported-login-providers-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool"], "path": "behavioral/cognito-identity/check_supported_login_providers_empty_vs_absent_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.swapping-the-authenticated-role-moves-the-next-session-and-spares-the-live-one", "deployments": [], "key": "cognito-identity/swapping-the-authenticated-role-moves-the-next-session-and-spares-the-live-one", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_swapping_the_authenticated_role_moves_the_next_session_and_spares_the_live_one.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "cognito-identity/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_and_list_tags_roundtrip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-empty-string-value-preserved", "deployments": [], "key": "cognito-identity/tag-resource-empty-string-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_empty_string_value_preserved.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-exceeds-max-tag-count-rejected", "deployments": [], "key": "cognito-identity/tag-resource-exceeds-max-tag-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_exceeds_max_tag_count_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-exceeds-tag-count-limit-rejected", "deployments": [], "key": "cognito-identity/tag-resource-exceeds-tag-count-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_exceeds_tag_count_limit_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-invalid-arn-rejected", "deployments": [], "key": "cognito-identity/tag-resource-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_invalid_arn_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-key-exceeding-length-rejected", "deployments": [], "key": "cognito-identity/tag-resource-key-exceeding-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_key_exceeding_length_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-lifecycle-add-list-remove", "deployments": [], "key": "cognito-identity/tag-resource-lifecycle-add-list-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_lifecycle_add_list_remove.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-list-and-untag-roundtrip", "deployments": [], "key": "cognito-identity/tag-resource-list-and-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_list_and_untag_roundtrip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-nonexistent-pool-rejected", "deployments": [], "key": "cognito-identity/tag-resource-nonexistent-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_nonexistent_pool_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-rejects-oversized-tag-value", "deployments": [], "key": "cognito-identity/tag-resource-rejects-oversized-tag-value", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_rejects_oversized_tag_value.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-rejects-reserved-aws-key", "deployments": [], "key": "cognito-identity/tag-resource-rejects-reserved-aws-key", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_rejects_reserved_aws_key.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-reserved-prefix-rejected", "deployments": [], "key": "cognito-identity/tag-resource-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_reserved_prefix_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-union-semantics", "deployments": [], "key": "cognito-identity/tag-resource-union-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_union_semantics.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-resource-value-with-special-characters-round-trip", "deployments": [], "key": "cognito-identity/tag-resource-value-with-special-characters-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_resource_value_with_special_characters_round_trip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.tag-value-unicode-and-whitespace-round-trip", "deployments": [], "key": "cognito-identity/tag-value-unicode-and-whitespace-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_tag_value_unicode_and_whitespace_round_trip.py", "service": "cognito-identity"} {"check_id": "cognito-identity.trust-policy-sub-condition-admits-only-the-named-identity", "deployments": [], "key": "cognito-identity/trust-policy-sub-condition-admits-only-the-named-identity", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:UpdateAssumeRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_trust_policy_sub_condition_admits_only_the_named_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unauthenticated-disabled-pool-refuses-get-id-and-creates-no-identity", "deployments": [], "key": "cognito-identity/unauthenticated-disabled-pool-refuses-get-id-and-creates-no-identity", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:ListIdentities", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_unauthenticated_disabled_pool_refuses_get_id_and_creates_no_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unauthenticated-upgrade-keeps-the-identity-but-the-guest-role-is-denied-the-privileged-prefix", "deployments": [], "key": "cognito-identity/unauthenticated-upgrade-keeps-the-identity-but-the-guest-role-is-denied-the-privileged-prefix", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_unauthenticated_upgrade_keeps_the_identity_but_the_guest_role_is_denied_the_privileged_prefix.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-developer-identity-not-linked-is-an-idempotent-no-op", "deployments": [], "key": "cognito-identity/unlink-developer-identity-not-linked-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_unlink_developer_identity_not_linked_is_an_idempotent_no_op.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-developer-identity-removes-login", "deployments": [], "key": "cognito-identity/unlink-developer-identity-removes-login", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_unlink_developer_identity_removes_login.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-developer-identity-removes-mapping", "deployments": [], "key": "cognito-identity/unlink-developer-identity-removes-mapping", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_unlink_developer_identity_removes_mapping.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-developer-identity-removes-mapping-then-lookup-fails", "deployments": [], "key": "cognito-identity/unlink-developer-identity-removes-mapping-then-lookup-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_unlink_developer_identity_removes_mapping_then_lookup_fails.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-identity-breaks-login-dedup", "deployments": [], "key": "cognito-identity/unlink-identity-breaks-login-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetId", "cognito-identity:UnlinkIdentity", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_unlink_identity_breaks_login_dedup.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-identity-mismatched-login-entry-rejected", "deployments": [], "key": "cognito-identity/unlink-identity-mismatched-login-entry-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:UnlinkDeveloperIdentity", "cognito-identity:UnlinkIdentity", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_unlink_identity_mismatched_login_entry_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-identity-nonexistent-login-rejected", "deployments": [], "key": "cognito-identity/unlink-identity-nonexistent-login-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:UnlinkIdentity", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-identity/check_unlink_identity_nonexistent_login_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-identity-rejects-developer-provider-login", "deployments": [], "key": "cognito-identity/unlink-identity-rejects-developer-provider-login", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:UnlinkDeveloperIdentity", "cognito-identity:UnlinkIdentity"], "path": "behavioral/cognito-identity/check_unlink_identity_rejects_developer_provider_login.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-identity-removes-login-and-orphans-identity", "deployments": [], "key": "cognito-identity/unlink-identity-removes-login-and-orphans-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-identity:UnlinkIdentity", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-identity/check_unlink_identity_removes_login_and_orphans_identity.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-identity-unknown-identity-rejected", "deployments": [], "key": "cognito-identity/unlink-identity-unknown-identity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:UnlinkIdentity"], "path": "behavioral/cognito-identity/check_unlink_identity_unknown_identity_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-identity-unknown-login-provider-accepted", "deployments": [], "key": "cognito-identity/unlink-identity-unknown-login-provider-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:UnlinkIdentity", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-identity/check_unlink_identity_unknown_login_provider_accepted.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-identity-unknown-login-rejected", "deployments": [], "key": "cognito-identity/unlink-identity-unknown-login-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetId", "cognito-identity:UnlinkIdentity", "cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-identity/check_unlink_identity_unknown_login_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.unlink-with-an-unknown-developer-provider-is-rejected-and-the-login-survives", "deployments": [], "key": "cognito-identity/unlink-with-an-unknown-developer-provider-is-rejected-and-the-login-survives", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:LookupDeveloperIdentity", "cognito-identity:UnlinkDeveloperIdentity"], "path": "behavioral/cognito-identity/check_unlink_with_an_unknown_developer_provider_is_rejected_and_the_login_survives.py", "service": "cognito-identity"} {"check_id": "cognito-identity.untag-nonexistent-tag-is-noop", "deployments": [], "key": "cognito-identity/untag-nonexistent-tag-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_untag_nonexistent_tag_is_noop.py", "service": "cognito-identity"} {"check_id": "cognito-identity.untag-resource-on-deleted-pool-rejected", "deployments": [], "key": "cognito-identity/untag-resource-on-deleted-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_untag_resource_on_deleted_pool_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.untag-resource-removes-named-tags", "deployments": [], "key": "cognito-identity/untag-resource-removes-named-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_untag_resource_removes_named_tags.py", "service": "cognito-identity"} {"check_id": "cognito-identity.untag-resource-removes-only-specified-keys", "deployments": [], "key": "cognito-identity/untag-resource-removes-only-specified-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_untag_resource_removes_only_specified_keys.py", "service": "cognito-identity"} {"check_id": "cognito-identity.untag-resource-unknown-tag-key-idempotent", "deployments": [], "key": "cognito-identity/untag-resource-unknown-tag-key-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:ListTagsForResource", "cognito-identity:TagResource", "cognito-identity:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_untag_resource_unknown_tag_key_idempotent.py", "service": "cognito-identity"} {"check_id": "cognito-identity.untrusted-role-accepted-then-credentials-denied", "deployments": [], "key": "cognito-identity/untrusted-role-accepted-then-credentials-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:UpdateAssumeRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_untrusted_role_accepted_then_credentials_denied.py", "service": "cognito-identity"} {"check_id": "cognito-identity.update-identity-pool-developer-provider-name-immutable-rejected", "deployments": [], "key": "cognito-identity/update-identity-pool-developer-provider-name-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_update_identity_pool_developer_provider_name_immutable_rejected.py", "service": "cognito-identity"} {"check_id": "cognito-identity.update-identity-pool-full-replacement-clears-fields", "deployments": [], "key": "cognito-identity/update-identity-pool-full-replacement-clears-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_update_identity_pool_full_replacement_clears_fields.py", "service": "cognito-identity"} {"check_id": "cognito-identity.update-identity-pool-wholesale-replace-clears-fields", "deployments": [], "key": "cognito-identity/update-identity-pool-wholesale-replace-clears-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_update_identity_pool_wholesale_replace_clears_fields.py", "service": "cognito-identity"} {"check_id": "cognito-identity.update-pool-disallow-unauth-blocks-get-id", "deployments": [], "key": "cognito-identity/update-pool-disallow-unauth-blocks-get-id", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_update_pool_disallow_unauth_blocks_get_id.py", "service": "cognito-identity"} {"check_id": "cognito-identity.update-pool-put-overwrite-semantics", "deployments": [], "key": "cognito-identity/update-pool-put-overwrite-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_update_pool_put_overwrite_semantics.py", "service": "cognito-identity"} {"check_id": "cognito-identity.update-pool-rename-is-visible", "deployments": [], "key": "cognito-identity/update-pool-rename-is-visible", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:UpdateIdentityPool"], "path": "behavioral/cognito-identity/check_update_pool_rename_is_visible.py", "service": "cognito-identity"} {"check_id": "cognito-identity.vended-credentials-bounded-by-role-policy", "deployments": [], "key": "cognito-identity/vended-credentials-bounded-by-role-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentityPools", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:ListBuckets", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity/check_vended_credentials_bounded_by_role_policy.py", "service": "cognito-identity"} {"check_id": "cognito-identity.vended-session-outlives-pool-deletion-until-the-role-policy-is-revoked", "deployments": [], "key": "cognito-identity/vended-session-outlives-pool-deletion-until-the-role-policy-is-revoked", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cognito-identity/check_vended_session_outlives_pool_deletion_until_the_role_policy_is_revoked.py", "service": "cognito-identity"} {"check_id": "cognito-identity__cognito-idp.deep-cognito-identity-3-token-mapping-ambiguous-multi-role-claim-fallback-deny-and-custom-role", "deployments": [], "key": "cognito-identity__cognito-idp/deep-cognito-identity-3-token-mapping-ambiguous-multi-role-claim-fallback-deny-and-custom-role", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetGroup", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp/check_deep_cognito_identity_3_token_mapping_ambiguous_multi_role_claim_fallback_deny_and_custom_role.py", "service": "cognito-identity__cognito-idp"} {"check_id": "cognito-identity__cognito-idp.group-precedence-selects-the-vended-role-and-flips-with-precedence", "deployments": [], "key": "cognito-identity__cognito-idp/group-precedence-selects-the-vended-role-and-flips-with-precedence", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetIdentityPoolRoles", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:UpdateGroup", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp/check_group_precedence_selects_the_vended_role_and_flips_with_precedence.py", "service": "cognito-identity__cognito-idp"} {"check_id": "cognito-identity__cognito-idp.xsvc-cognito-identity-2-sstc-disabled-then-deleted-user-token-rejected-twin-pool-still-vends", "deployments": [], "key": "cognito-identity__cognito-idp/xsvc-cognito-identity-2-sstc-disabled-then-deleted-user-token-rejected-twin-pool-still-vends", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp/check_xsvc_cognito_identity_2_sstc_disabled_then_deleted_user_token_rejected_twin_pool_still_vends.py", "service": "cognito-identity__cognito-idp"} {"check_id": "cognito-identity__cognito-idp.xsvc-cognito-identity-2-sstc-disabled-user-token-rejected-and-stays-revoked-after-enable", "deployments": [], "key": "cognito-identity__cognito-idp/xsvc-cognito-identity-2-sstc-disabled-user-token-rejected-and-stays-revoked-after-enable", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp/check_xsvc_cognito_identity_2_sstc_disabled_user_token_rejected_and_stays_revoked_after_enable.py", "service": "cognito-identity__cognito-idp"} {"check_id": "cognito-identity__cognito-idp__iam.xsvc-cognito-identity-2-iam-oidc-provider-deleted-under-a-live-pool-rejected", "deployments": [], "key": "cognito-identity__cognito-idp__iam/xsvc-cognito-identity-2-iam-oidc-provider-deleted-under-a-live-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:GetOpenIDConnectProvider", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp__iam/check_xsvc_cognito_identity_2_iam_oidc_provider_deleted_under_a_live_pool_rejected.py", "service": "cognito-identity__cognito-idp__iam"} {"check_id": "cognito-identity__cognito-idp__iam.xsvc-cognito-identity-2-iam-oidc-registered-user-pool-issuer-vends-sts-credentials", "deployments": [], "key": "cognito-identity__cognito-idp__iam/xsvc-cognito-identity-2-iam-oidc-registered-user-pool-issuer-vends-sts-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:GetOpenIDConnectProvider", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp__iam/check_xsvc_cognito_identity_2_iam_oidc_registered_user_pool_issuer_vends_sts_credentials.py", "service": "cognito-identity__cognito-idp__iam"} {"check_id": "cognito-identity__cognito-idp__iam.xsvc-cognito-identity-2-oidc-client-id-missing-from-iam-provider-rejected", "deployments": [], "key": "cognito-identity__cognito-idp__iam/xsvc-cognito-identity-2-oidc-client-id-missing-from-iam-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:AddClientIDToOpenIDConnectProvider", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:GetOpenIDConnectProvider", "iam:RemoveClientIDFromOpenIDConnectProvider", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp__iam/check_xsvc_cognito_identity_2_oidc_client_id_missing_from_iam_provider_rejected.py", "service": "cognito-identity__cognito-idp__iam"} {"check_id": "cognito-identity__cognito-idp__iam.xsvc-cognito-identity-2-oidc-login-under-another-providers-key-rejected", "deployments": [], "key": "cognito-identity__cognito-idp__iam/xsvc-cognito-identity-2-oidc-login-under-another-providers-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:ListIdentities", "cognito-identity:SetIdentityPoolRoles", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp__iam/check_xsvc_cognito_identity_2_oidc_login_under_another_providers_key_rejected.py", "service": "cognito-identity__cognito-idp__iam"} {"check_id": "cognito-identity__cognito-idp__iam.xsvc-cognito-identity-2-oidc-provider-removed-by-update-identity-pool-rejected", "deployments": [], "key": "cognito-identity__cognito-idp__iam/xsvc-cognito-identity-2-oidc-provider-removed-by-update-identity-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:DescribeIdentity", "cognito-identity:DescribeIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "cognito-identity:UpdateIdentityPool", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__cognito-idp__iam/check_xsvc_cognito_identity_2_oidc_provider_removed_by_update_identity_pool_rejected.py", "service": "cognito-identity__cognito-idp__iam"} {"check_id": "cognito-identity__dynamodb.leading-keys-condition-scopes-query-to-the-callers-identity-id", "deployments": [], "key": "cognito-identity__dynamodb/leading-keys-condition-scopes-query-to-the-callers-identity-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__dynamodb/check_leading_keys_condition_scopes_query_to_the_callers_identity_id.py", "service": "cognito-identity__dynamodb"} {"check_id": "cognito-identity__kms__s3.xsvc-cognito-identity-1-encryption-context-scoped-key-grant-denied-vended-session-outside-its-prefix", "deployments": [], "key": "cognito-identity__kms__s3/xsvc-cognito-identity-1-encryption-context-scoped-key-grant-denied-vended-session-outside-its-prefix", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cognito-identity__kms__s3/check_xsvc_cognito_identity_1_encryption_context_scoped_key_grant_denied_vended_session_outside_its_prefix.py", "service": "cognito-identity__kms__s3"} {"check_id": "cognito-identity__kms__s3.xsvc-cognito-identity-1-guest-session-denied-sse-kms-read-key-policy-grants-authenticated-only", "deployments": [], "key": "cognito-identity__kms__s3/xsvc-cognito-identity-1-guest-session-denied-sse-kms-read-key-policy-grants-authenticated-only", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cognito-identity__kms__s3/check_xsvc_cognito_identity_1_guest_session_denied_sse_kms_read_key_policy_grants_authenticated_only.py", "service": "cognito-identity__kms__s3"} {"check_id": "cognito-identity__kms__s3.xsvc-cognito-identity-1-sse-kms-get-object-denied-to-vended-session-until-key-policy-grants-role", "deployments": [], "key": "cognito-identity__kms__s3/xsvc-cognito-identity-1-sse-kms-get-object-denied-to-vended-session-until-key-policy-grants-role", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdTokenForDeveloperIdentity", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/cognito-identity__kms__s3/check_xsvc_cognito_identity_1_sse_kms_get_object_denied_to_vended_session_until_key_policy_grants_role.py", "service": "cognito-identity__kms__s3"} {"check_id": "cognito-identity__lambda.xsvc-cognito-identity-3-lambda-context-carries-the-vended-identity-and-none-for-an-iam-caller", "deployments": [], "key": "cognito-identity__lambda/xsvc-cognito-identity-3-lambda-context-carries-the-vended-identity-and-none-for-an-iam-caller", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/cognito-identity__lambda/check_xsvc_cognito_identity_3_lambda_context_carries_the_vended_identity_and_none_for_an_iam_caller.py", "service": "cognito-identity__lambda"} {"check_id": "cognito-identity__lambda.xsvc-cognito-identity-3-lambda-context-identity-per-session-both-flows-absent-for-assumed-role", "deployments": [], "key": "cognito-identity__lambda/xsvc-cognito-identity-3-lambda-context-identity-per-session-both-flows-absent-for-assumed-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:GetOpenIdToken", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:AssumeRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__lambda/check_xsvc_cognito_identity_3_lambda_context_identity_per_session_both_flows_absent_for_assumed_role.py", "service": "cognito-identity__lambda"} {"check_id": "cognito-identity__s3.xsvc-cognito-identity-3-bucket-policy-grants-the-federated-role-and-its-deny-prefix-wins", "deployments": [], "key": "cognito-identity__s3/xsvc-cognito-identity-3-bucket-policy-grants-the-federated-role-and-its-deny-prefix-wins", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-identity:CreateIdentityPool", "cognito-identity:DeleteIdentities", "cognito-identity:DeleteIdentityPool", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetId", "cognito-identity:SetIdentityPoolRoles", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/cognito-identity__s3/check_xsvc_cognito_identity_3_bucket_policy_grants_the_federated_role_and_its_deny_prefix_wins.py", "service": "cognito-identity__s3"} {"check_id": "cognito-idp.access-token-ttl-matches-pool-config", "deployments": [], "key": "cognito-idp/access-token-ttl-matches-pool-config", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_access_token_ttl_matches_pool_config.py", "service": "cognito-idp"} {"check_id": "cognito-idp.access-token-verifies-rs256-under-an-issuer-jwks-key-distinct-from-the-id-tokens", "deployments": [], "key": "cognito-idp/access-token-verifies-rs256-under-an-issuer-jwks-key-distinct-from-the-id-tokens", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_access_token_verifies_rs256_under_an_issuer_jwks_key_distinct_from_the_id_tokens.py", "service": "cognito-idp"} {"check_id": "cognito-idp.add-custom-attributes-duplicate-name-rejected", "deployments": [], "key": "cognito-idp/add-custom-attributes-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_add_custom_attributes_duplicate_name_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.add-custom-attributes-extends-schema", "deployments": [], "key": "cognito-idp/add-custom-attributes-extends-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_add_custom_attributes_extends_schema.py", "service": "cognito-idp"} {"check_id": "cognito-idp.add-user-pool-client-secret", "deployments": [], "key": "cognito-idp/add-user-pool-client-secret", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolClientSecret", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListUserPoolClientSecrets"], "path": "behavioral/cognito-idp/check_add_user_pool_client_secret.py", "service": "cognito-idp"} {"check_id": "cognito-idp.add-user-pool-client-secret-limit-exceeded-rejected", "deployments": [], "key": "cognito-idp/add-user-pool-client-secret-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClientSecret", "cognito-idp:ListUserPoolClientSecrets"], "path": "behavioral/cognito-idp/check_add_user_pool_client_secret_limit_exceeded_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.add-user-to-group-is-idempotent", "deployments": [], "key": "cognito-idp/add-user-to-group-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsersInGroup"], "path": "behavioral/cognito-idp/check_add_user_to_group_is_idempotent.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-add-list-remove-user-from-group", "deployments": [], "key": "cognito-idp/admin-add-list-remove-user-from-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_add_list_remove_user_from_group.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-add-nonexistent-user-to-group-fails", "deployments": [], "key": "cognito-idp/admin-add-nonexistent-user-to-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:ListUsersInGroup"], "path": "behavioral/cognito-idp/check_admin_add_nonexistent_user_to_group_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-add-user-to-nonexistent-group-fails", "deployments": [], "key": "cognito-idp/admin-add-user-to-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_add_user_to_nonexistent_group_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-confirm-signup-twice-fails", "deployments": [], "key": "cognito-idp/admin-confirm-signup-twice-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_admin_confirm_signup_twice_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-confirm-signup-wrong-status-fails", "deployments": [], "key": "cognito-idp/admin-confirm-signup-wrong-status-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_admin_confirm_signup_wrong_status_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-create-duplicate-user-fails", "deployments": [], "key": "cognito-idp/admin-create-duplicate-user-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_admin_create_duplicate_user_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-create-get-user", "deployments": [], "key": "cognito-idp/admin-create-get-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_create_get_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-delete-user-and-list-users-race-no-partial-state", "deployments": [], "key": "cognito-idp/admin-delete-user-and-list-users-race-no-partial-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_admin_delete_user_and_list_users_race_no_partial_state.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-delete-user-attributes-removes-value", "deployments": [], "key": "cognito-idp/admin-delete-user-attributes-removes-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDeleteUserAttributes", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_delete_user_attributes_removes_value.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-delete-user-attributes-unknown-attribute-rejected", "deployments": [], "key": "cognito-idp/admin-delete-user-attributes-unknown-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDeleteUserAttributes", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_delete_user_attributes_unknown_attribute_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-admin-delete-user", "deployments": [], "key": "cognito-idp/op-contract-admin-delete-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_admin_delete_user_contract.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-delete-user-then-get-fails", "deployments": [], "key": "cognito-idp/admin-delete-user-then-get-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_delete_user_then_get_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-delete-user-twice-fails", "deployments": [], "key": "cognito-idp/admin-delete-user-twice-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_admin_delete_user_twice_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-device-lifecycle", "deployments": [], "key": "cognito-idp/admin-device-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminForgetDevice", "cognito-idp:AdminGetDevice", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListDevices", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateDeviceStatus", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_admin_device_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-disable-enable-user-toggles-state", "deployments": [], "key": "cognito-idp/admin-disable-enable-user-toggles-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_disable_enable_user_toggles_state.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-disable-provider-for-user-without-link-fails", "deployments": [], "key": "cognito-idp/admin-disable-provider-for-user-without-link-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableProviderForUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_disable_provider_for_user_without_link_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-disable-user-blocks-login", "deployments": [], "key": "cognito-idp/admin-disable-user-blocks-login", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_admin_disable_user_blocks_login.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-admin-enable-user", "deployments": [], "key": "cognito-idp/op-contract-admin-enable-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_enable_user_contract.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-get-nonexistent-device-fails", "deployments": [], "key": "cognito-idp/admin-get-nonexistent-device-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetDevice", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListDevices", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_admin_get_nonexistent_device_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-get-user-from-other-pool-fails", "deployments": [], "key": "cognito-idp/admin-get-user-from-other-pool-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_get_user_from_other_pool_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-initiate-and-respond-to-auth-challenge-with-event-history", "deployments": [], "key": "cognito-idp/admin-initiate-and-respond-to-auth-challenge-with-event-history", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_admin_initiate_and_respond_to_auth_challenge_with_event_history.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-initiate-auth-returns-tokens", "deployments": [], "key": "cognito-idp/admin-initiate-auth-returns-tokens", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_admin_initiate_auth_returns_tokens.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-initiate-auth-wrong-password-fails", "deployments": [], "key": "cognito-idp/admin-initiate-auth-wrong-password-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_admin_initiate_auth_wrong_password_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-list-devices-requires-device-tracking", "deployments": [], "key": "cognito-idp/admin-list-devices-requires-device-tracking", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminListDevices", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_admin_list_devices_requires_device_tracking.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-mfa-preference-and-auth-factors", "deployments": [], "key": "cognito-idp/admin-mfa-preference-and-auth-factors", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUserAuthFactors", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_admin_mfa_preference_and_auth_factors.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-password-sign-in-is-refused-for-a-disabled-user-until-re-enabled", "deployments": [], "key": "cognito-idp/admin-password-sign-in-is-refused-for-a-disabled-user-until-re-enabled", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_admin_password_sign_in_is_refused_for_a_disabled_user_until_re_enabled.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-provider-linking-and-software-token-removal", "deployments": [], "key": "cognito-idp/admin-provider-linking-and-software-token-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableProviderForUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUserAuthFactors", "cognito-idp:InitiateAuth", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_admin_provider_linking_and_software_token_removal.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-reset-password-code-ttl", "deployments": [], "key": "cognito-idp/admin-reset-password-code-ttl", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminResetUserPassword", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_admin_reset_password_code_ttl.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-reset-password-forces-reset-required", "deployments": [], "key": "cognito-idp/admin-reset-password-forces-reset-required", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminResetUserPassword", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_admin_reset_password_forces_reset_required.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-reset-password-forces-reset-state", "deployments": [], "key": "cognito-idp/admin-reset-password-forces-reset-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminResetUserPassword", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_admin_reset_password_forces_reset_state.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-reset-user-password-unconfirmed-user-fails", "deployments": [], "key": "cognito-idp/admin-reset-user-password-unconfirmed-user-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminResetUserPassword", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_reset_user_password_unconfirmed_user_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-admin-respond-to-auth-challenge", "deployments": [], "key": "cognito-idp/op-contract-admin-respond-to-auth-challenge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_respond_to_auth_challenge_contract.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-respond-to-auth-challenge-refuses-a-replayed-totp-without-spending-the-session", "deployments": [], "key": "cognito-idp/admin-respond-to-auth-challenge-refuses-a-replayed-totp-without-spending-the-session", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_admin_respond_to_auth_challenge_refuses_a_replayed_totp_without_spending_the_session.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-respond-to-auth-challenge-rejects-bad-responses-without-spending-the-session", "deployments": [], "key": "cognito-idp/admin-respond-to-auth-challenge-rejects-bad-responses-without-spending-the-session", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_admin_respond_to_auth_challenge_rejects_bad_responses_without_spending_the_session.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-respond-to-auth-challenge-requires-secret-hash-on-a-secret-client", "deployments": [], "key": "cognito-idp/admin-respond-to-auth-challenge-requires-secret-hash-on-a-secret-client", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_admin_respond_to_auth_challenge_requires_secret_hash_on_a_secret_client.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-concurrent-conflicting-writes-last-write-wins", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-concurrent-conflicting-writes-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_concurrent_conflicting_writes_last_write_wins.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-conflicting-preferred-methods-rejected", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-conflicting-preferred-methods-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_conflicting_preferred_methods_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-conflicting-settings-rejected", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-conflicting-settings-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_conflicting_settings_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-cross-pool-notauthorized", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-cross-pool-notauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_cross_pool_notauthorized.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-cross-pool-user-not-found", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-cross-pool-user-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_cross_pool_user_not_found.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-cross-pool-user-not-found-rejected", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-cross-pool-user-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_cross_pool_user_not_found_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-invalid-parameter-rejected", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_invalid_parameter_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-method-not-enrolled-rejected", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-method-not-enrolled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_method_not_enrolled_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-mfa-preference-persists-across-relogin", "deployments": [], "key": "cognito-idp/admin-set-user-mfa-preference-persists-across-relogin", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUserGlobalSignOut", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_admin_set_user_mfa_preference_persists_across_relogin.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-password-updates-status", "deployments": [], "key": "cognito-idp/admin-set-user-password-updates-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_set_user_password_updates_status.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-password-weak-password-rejected", "deployments": [], "key": "cognito-idp/admin-set-user-password-weak-password-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_set_user_password_weak_password_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-user-settings-reflected", "deployments": [], "key": "cognito-idp/admin-set-user-settings-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminSetUserSettings", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:SetUserSettings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/cognito-idp/check_admin_set_user_settings_reflected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-set-weak-password-fails", "deployments": [], "key": "cognito-idp/admin-set-weak-password-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_set_weak_password_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-update-unknown-attribute-fails", "deployments": [], "key": "cognito-idp/admin-update-unknown-attribute-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_update_unknown_attribute_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-update-user-attributes-reflected", "deployments": [], "key": "cognito-idp/admin-update-user-attributes-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_admin_update_user_attributes_reflected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.admin-user-global-sign-out-is-idempotent-and-refuses-a-later-self-sign-out-of-the-revoked-token", "deployments": [], "key": "cognito-idp/admin-user-global-sign-out-is-idempotent-and-refuses-a-later-self-sign-out-of-the-revoked-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUserGlobalSignOut", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:GlobalSignOut"], "path": "behavioral/cognito-idp/check_admin_user_global_sign_out_is_idempotent_and_refuses_a_later_self_sign_out_of_the_revoked_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.alias-exists-on-attribute-update", "deployments": [], "key": "cognito-idp/alias-exists-on-attribute-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:UpdateUserAttributes"], "path": "behavioral/cognito-idp/check_alias_exists_on_attribute_update.py", "service": "cognito-idp"} {"check_id": "cognito-idp.alias-exists-on-challenge-response", "deployments": [], "key": "cognito-idp/alias-exists-on-challenge-response", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge"], "path": "behavioral/cognito-idp/check_alias_exists_on_challenge_response.py", "service": "cognito-idp"} {"check_id": "cognito-idp.alias-exists-on-confirm-signup", "deployments": [], "key": "cognito-idp/alias-exists-on-confirm-signup", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/cognito-idp/check_alias_exists_on_confirm_signup.py", "service": "cognito-idp"} {"check_id": "cognito-idp.alias-exists-on-provider-link", "deployments": [], "key": "cognito-idp/alias-exists-on-provider-link", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableProviderForUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_alias_exists_on_provider_link.py", "service": "cognito-idp"} {"check_id": "cognito-idp.alias-exists-on-verify-attribute", "deployments": [], "key": "cognito-idp/alias-exists-on-verify-attribute", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:UpdateUserAttributes", "cognito-idp:VerifyUserAttribute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/cognito-idp/check_alias_exists_on_verify_attribute.py", "service": "cognito-idp"} {"check_id": "cognito-idp.associate-software-token-no-credentials-rejected", "deployments": [], "key": "cognito-idp/associate-software-token-no-credentials-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_associate_software_token_no_credentials_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.associate-verify-software-token-enables-mfa", "deployments": [], "key": "cognito-idp/associate-verify-software-token-enables-mfa", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteSoftwareToken", "cognito-idp:AdminGetUserAuthFactors", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_associate_verify_software_token_enables_mfa.py", "service": "cognito-idp"} {"check_id": "cognito-idp.attribute-verification-code-ttl", "deployments": [], "key": "cognito-idp/attribute-verification-code-ttl", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:VerifyUserAttribute"], "path": "behavioral/cognito-idp/check_attribute_verification_code_ttl.py", "service": "cognito-idp"} {"check_id": "cognito-idp.auth-challenge-session-sequencing", "deployments": [], "key": "cognito-idp/auth-challenge-session-sequencing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge"], "path": "behavioral/cognito-idp/check_auth_challenge_session_sequencing.py", "service": "cognito-idp"} {"check_id": "cognito-idp.auth-event-feedback-lifecycle", "deployments": [], "key": "cognito-idp/auth-event-feedback-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateAuthEventFeedback", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:UpdateAuthEventFeedback"], "path": "behavioral/cognito-idp/check_auth_event_feedback_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.auth-event-history-chronological-order", "deployments": [], "key": "cognito-idp/auth-event-history-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateAuthEventFeedback", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:UpdateAuthEventFeedback"], "path": "behavioral/cognito-idp/check_auth_event_history_chronological_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.auth-event-history-feedback", "deployments": [], "key": "cognito-idp/auth-event-history-feedback", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateAuthEventFeedback", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_auth_event_history_feedback.py", "service": "cognito-idp"} {"check_id": "cognito-idp.auth-factors-reflect-mfa-state", "deployments": [], "key": "cognito-idp/auth-factors-reflect-mfa-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUserAuthFactors", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_auth_factors_reflect_mfa_state.py", "service": "cognito-idp"} {"check_id": "cognito-idp.auth-flow-not-enabled-fails", "deployments": [], "key": "cognito-idp/auth-flow-not-enabled-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_auth_flow_not_enabled_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.auth-session-validity-expires-the-challenge-session-while-a-longer-lived-twin-survives", "deployments": [], "key": "cognito-idp/auth-session-validity-expires-the-challenge-session-while-a-longer-lived-twin-survives", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:GetUser", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_auth_session_validity_expires_the_challenge_session_while_a_longer_lived_twin_survives.py", "service": "cognito-idp"} {"check_id": "cognito-idp.change-password-flow", "deployments": [], "key": "cognito-idp/change-password-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ChangePassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_change_password_flow.py", "service": "cognito-idp"} {"check_id": "cognito-idp.change-password-validates-previous-before-policy-and-leaves-every-other-session-signed-in", "deployments": [], "key": "cognito-idp/change-password-validates-previous-before-policy-and-leaves-every-other-session-signed-in", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ChangePassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_change_password_validates_previous_before_policy_and_leaves_every_other_session_signed_in.py", "service": "cognito-idp"} {"check_id": "cognito-idp.change-password-wrong-old-password-fails", "deployments": [], "key": "cognito-idp/change-password-wrong-old-password-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ChangePassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_change_password_wrong_old_password_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.change-password-wrong-previous-password-rejected", "deployments": [], "key": "cognito-idp/change-password-wrong-previous-password-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ChangePassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_change_password_wrong_previous_password_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.client-token-exp-claim-matches-access-token-validity-and-verifies", "deployments": [], "key": "cognito-idp/client-token-exp-claim-matches-access-token-validity-and-verifies", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_client_token_exp_claim_matches_access_token_validity_and_verifies.py", "service": "cognito-idp"} {"check_id": "cognito-idp.client-token-opaque-value-unchanged-within-ttl", "deployments": [], "key": "cognito-idp/client-token-opaque-value-unchanged-within-ttl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_client_token_opaque_value_unchanged_within_ttl.py", "service": "cognito-idp"} {"check_id": "cognito-idp.client-token-ttl-expiry-requires-reissue", "deployments": [], "key": "cognito-idp/client-token-ttl-expiry-requires-reissue", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_client_token_ttl_expiry_requires_reissue.py", "service": "cognito-idp"} {"check_id": "cognito-idp.code-delivery-failure-error", "deployments": [], "key": "cognito-idp/code-delivery-failure-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeRiskConfiguration", "cognito-idp:ForgotPassword", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:InitiateAuth", "cognito-idp:ResendConfirmationCode", "cognito-idp:SetRiskConfiguration", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_code_delivery_failure_error.py", "service": "cognito-idp"} {"check_id": "cognito-idp.code-mismatch-vs-expired-precision", "deployments": [], "key": "cognito-idp/code-mismatch-vs-expired-precision", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:ConfirmForgotPassword", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:GetUser", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:SignUp", "cognito-idp:VerifySoftwareToken", "cognito-idp:VerifyUserAttribute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/cognito-idp/check_code_mismatch_vs_expired_precision.py", "service": "cognito-idp"} {"check_id": "cognito-idp.cognito-groups-claim-ordered-by-precedence", "deployments": [], "key": "cognito-idp/cognito-groups-claim-ordered-by-precedence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_cognito_groups_claim_ordered_by_precedence.py", "service": "cognito-idp"} {"check_id": "cognito-idp.cognito-jwt-claims-verifiable", "deployments": [], "key": "cognito-idp/cognito-jwt-claims-verifiable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_cognito_jwt_claims_verifiable.py", "service": "cognito-idp"} {"check_id": "cognito-idp.complete-webauthn-registration-challenge-replay-rejected", "deployments": [], "key": "cognito-idp/complete-webauthn-registration-challenge-replay-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_complete_webauthn_registration_challenge_replay_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.complete-webauthn-registration-malformed-attestation-rejected", "deployments": [], "key": "cognito-idp/complete-webauthn-registration-malformed-attestation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_complete_webauthn_registration_malformed_attestation_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.complete-webauthn-registration-malformed-credential-rejected", "deployments": [], "key": "cognito-idp/complete-webauthn-registration-malformed-credential-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_complete_webauthn_registration_malformed_credential_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.complete-webauthn-registration-not-enabled-rejected", "deployments": [], "key": "cognito-idp/complete-webauthn-registration-not-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_complete_webauthn_registration_not_enabled_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-admin-create-user-same-username-exactly-one-wins", "deployments": [], "key": "cognito-idp/concurrent-admin-create-user-same-username-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_concurrent_admin_create_user_same_username_exactly_one_wins.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-admin-set-user-password-leaves-exactly-one-usable-password", "deployments": [], "key": "cognito-idp/concurrent-admin-set-user-password-leaves-exactly-one-usable-password", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_concurrent_admin_set_user_password_leaves_exactly_one_usable_password.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-create-group-same-name-exactly-one-wins", "deployments": [], "key": "cognito-idp/concurrent-create-group-same-name-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_concurrent_create_group_same_name_exactly_one_wins.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-delete-identity-provider-conflict", "deployments": [], "key": "cognito-idp/concurrent-delete-identity-provider-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:UpdateIdentityProvider"], "path": "behavioral/cognito-idp/check_concurrent_delete_identity_provider_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-delete-managed-login-branding-conflict", "deployments": [], "key": "cognito-idp/concurrent-delete-managed-login-branding-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateManagedLoginBranding", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteManagedLoginBranding", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeManagedLoginBranding", "cognito-idp:UpdateManagedLoginBranding"], "path": "behavioral/cognito-idp/check_concurrent_delete_managed_login_branding_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-delete-terms-conflict", "deployments": [], "key": "cognito-idp/concurrent-delete-terms-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTerms", "cognito-idp:UpdateTerms"], "path": "behavioral/cognito-idp/check_concurrent_delete_terms_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-delete-user-pool-client-conflict", "deployments": [], "key": "cognito-idp/concurrent-delete-user-pool-client-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_concurrent_delete_user_pool_client_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-set-log-delivery-configuration-conflict", "deployments": [], "key": "cognito-idp/concurrent-set-log-delivery-configuration-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_concurrent_set_log_delivery_configuration_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-set-user-mfa-preference-conflicting-updates", "deployments": [], "key": "cognito-idp/concurrent-set-user-mfa-preference-conflicting-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:GetUserAuthFactors", "cognito-idp:InitiateAuth", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_concurrent_set_user_mfa_preference_conflicting_updates.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-set-user-pool-mfa-config-last-writer-wins", "deployments": [], "key": "cognito-idp/concurrent-set-user-pool-mfa-config-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_concurrent_set_user_pool_mfa_config_last_writer_wins.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-update-identity-provider-conflict", "deployments": [], "key": "cognito-idp/concurrent-update-identity-provider-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:UpdateIdentityProvider"], "path": "behavioral/cognito-idp/check_concurrent_update_identity_provider_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-update-managed-login-branding-conflict", "deployments": [], "key": "cognito-idp/concurrent-update-managed-login-branding-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateManagedLoginBranding", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeManagedLoginBranding", "cognito-idp:UpdateManagedLoginBranding"], "path": "behavioral/cognito-idp/check_concurrent_update_managed_login_branding_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-update-terms-conflict", "deployments": [], "key": "cognito-idp/concurrent-update-terms-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTerms", "cognito-idp:UpdateTerms"], "path": "behavioral/cognito-idp/check_concurrent_update_terms_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.concurrent-update-user-pool-client-conflict", "deployments": [], "key": "cognito-idp/concurrent-update-user-pool-client-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_concurrent_update_user_pool_client_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.configured-password-policy-governs-accepted-passwords", "deployments": [], "key": "cognito-idp/configured-password-policy-governs-accepted-passwords", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_configured_password_policy_governs_accepted_passwords.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-device-duplicate-key-rejected", "deployments": [], "key": "cognito-idp/confirm-device-duplicate-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetDevice", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_confirm_device_duplicate_key_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-device-key-conflict-rejected", "deployments": [], "key": "cognito-idp/confirm-device-key-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_confirm_device_key_conflict_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-forgot-password-code-mismatch-fails", "deployments": [], "key": "cognito-idp/confirm-forgot-password-code-mismatch-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmForgotPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgotPassword"], "path": "behavioral/cognito-idp/check_confirm_forgot_password_code_mismatch_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-forgot-password-invalid-code", "deployments": [], "key": "cognito-idp/confirm-forgot-password-invalid-code", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmForgotPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword"], "path": "behavioral/cognito-idp/check_confirm_forgot_password_invalid_code.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-forgot-password-refuses-before-any-code-exists-in-validation-order", "deployments": [], "key": "cognito-idp/confirm-forgot-password-refuses-before-any-code-exists-in-validation-order", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmForgotPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_confirm_forgot_password_refuses_before_any_code_exists_in_validation_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-sign-up-wrong-code-rejected", "deployments": [], "key": "cognito-idp/confirm-sign-up-wrong-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_confirm_sign_up_wrong_code_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-signup-code-mismatch-fails", "deployments": [], "key": "cognito-idp/confirm-signup-code-mismatch-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_confirm_signup_code_mismatch_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-signup-expired-code-fails", "deployments": [], "key": "cognito-idp/confirm-signup-expired-code-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_confirm_signup_expired_code_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirm-signup-wrong-code-rejected", "deployments": [], "key": "cognito-idp/confirm-signup-wrong-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_confirm_signup_wrong_code_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.confirmation-code-expiry-and-resend", "deployments": [], "key": "cognito-idp/confirmation-code-expiry-and-resend", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ResendConfirmationCode", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_confirmation_code_expiry_and_resend.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-client-for-nonexistent-pool-fails", "deployments": [], "key": "cognito-idp/create-client-for-nonexistent-pool-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cognito-idp/check_create_client_for_nonexistent_pool_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-describe-delete-domain", "deployments": [], "key": "cognito-idp/create-describe-delete-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain"], "path": "behavioral/cognito-idp/check_create_describe_delete_domain.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-describe-user-pool", "deployments": [], "key": "cognito-idp/create-describe-user-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_create_describe_user_pool.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-describe-user-pool-client", "deployments": [], "key": "cognito-idp/create-describe-user-pool-client", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cognito-idp/check_create_describe_user_pool_client.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-duplicate-domain-fails", "deployments": [], "key": "cognito-idp/create-duplicate-domain-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_create_duplicate_domain_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-duplicate-group-fails", "deployments": [], "key": "cognito-idp/create-duplicate-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_create_duplicate_group_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-duplicate-identity-provider-rejected", "deployments": [], "key": "cognito-idp/create-duplicate-identity-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_create_duplicate_identity_provider_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-get-group", "deployments": [], "key": "cognito-idp/create-get-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_create_get_group.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-group-duplicate-name-rejected", "deployments": [], "key": "cognito-idp/create-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_create_group_duplicate_name_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-group-in-nonexistent-pool-fails", "deployments": [], "key": "cognito-idp/create-group-in-nonexistent-pool-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_create_group_in_nonexistent_pool_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-identity-provider-duplicate-identifier-rejected", "deployments": [], "key": "cognito-idp/create-identity-provider-duplicate-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_create_identity_provider_duplicate_identifier_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-create-resource-server", "deployments": [], "key": "cognito-idp/op-contract-create-resource-server", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeResourceServer"], "path": "behavioral/cognito-idp/check_create_resource_server_contract.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-terms-duplicate-name-rejected", "deployments": [], "key": "cognito-idp/create-terms-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_create_terms_duplicate_name_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-terms-foreign-client-rejected", "deployments": [], "key": "cognito-idp/create-terms-foreign-client-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListTerms"], "path": "behavioral/cognito-idp/check_create_terms_foreign_client_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-user-import-job-missing-trust-policy-rejected", "deployments": [], "key": "cognito-idp/create-user-import-job-missing-trust-policy-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserImportJob", "cognito-idp:GetCSVHeader", "cognito-idp:StartUserImportJob", "cognito-idp:StopUserImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:TagRole", "iam:UpdateAssumeRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_create_user_import_job_missing_trust_policy_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-user-import-job-untrusted-role-accepted", "deployments": [], "key": "cognito-idp/create-user-import-job-untrusted-role-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserImportJobs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_create_user_import_job_untrusted_role_accepted.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-user-pool-client-client-credentials-requires-secret", "deployments": [], "key": "cognito-idp/create-user-pool-client-client-credentials-requires-secret", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPoolClients"], "path": "behavioral/cognito-idp/check_create_user_pool_client_client_credentials_requires_secret.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-user-pool-client-conflicting-oauth-flows-rejected", "deployments": [], "key": "cognito-idp/create-user-pool-client-conflicting-oauth-flows-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPoolClients"], "path": "behavioral/cognito-idp/check_create_user_pool_client_conflicting_oauth_flows_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-user-pool-client-invalid-scope-rejected", "deployments": [], "key": "cognito-idp/create-user-pool-client-invalid-scope-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListUserPoolClients"], "path": "behavioral/cognito-idp/check_create_user_pool_client_invalid_scope_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-user-pool-domain-concurrent-creation-conflict", "deployments": [], "key": "cognito-idp/create-user-pool-domain-concurrent-creation-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain"], "path": "behavioral/cognito-idp/check_create_user_pool_domain_concurrent_creation_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.create-user-pool-schema-constraints-read-back", "deployments": [], "key": "cognito-idp/create-user-pool-schema-constraints-read-back", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_create_user_pool_schema_constraints_read_back.py", "service": "cognito-idp"} {"check_id": "cognito-idp.csv-header-column-order-preserved", "deployments": [], "key": "cognito-idp/csv-header-column-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_csv_header_column_order_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.csv-header-reflects-custom-attributes-added-after-pool-creation", "deployments": [], "key": "cognito-idp/csv-header-reflects-custom-attributes-added-after-pool-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_csv_header_reflects_custom_attributes_added_after_pool_creation.py", "service": "cognito-idp"} {"check_id": "cognito-idp.csv-header-reflects-schema-lifecycle-after-attribute-addition", "deployments": [], "key": "cognito-idp/csv-header-reflects-schema-lifecycle-after-attribute-addition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_csv_header_reflects_schema_lifecycle_after_attribute_addition.py", "service": "cognito-idp"} {"check_id": "cognito-idp.csv-header-schema-matches-pool-custom-attributes", "deployments": [], "key": "cognito-idp/csv-header-schema-matches-pool-custom-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_csv_header_schema_matches_pool_custom_attributes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.custom-attribute-schema-is-append-only", "deployments": [], "key": "cognito-idp/custom-attribute-schema-is-append-only", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDeleteUserAttributes", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_custom_attribute_schema_is_append_only.py", "service": "cognito-idp"} {"check_id": "cognito-idp.custom-attribute-schema-lifecycle", "deployments": [], "key": "cognito-idp/custom-attribute-schema-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDeleteUserAttributes", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserAttributes", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_custom_attribute_schema_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.custom-attribute-unicode-value-round-trip", "deployments": [], "key": "cognito-idp/custom-attribute-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_custom_attribute_unicode_value_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.custom-attribute-usable-after-add", "deployments": [], "key": "cognito-idp/custom-attribute-usable-after-add", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_custom_attribute_usable_after_add.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-2-token-rotation-device-key-omitted-rejected", "deployments": [], "key": "cognito-idp/deep-cognito-idp-2-token-rotation-device-key-omitted-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminForgetDevice", "cognito-idp:AdminListDevices", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_2_token_rotation_device_key_omitted_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-2-token-rotation-grace-period", "deployments": [], "key": "cognito-idp/deep-cognito-idp-2-token-rotation-grace-period", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_2_token_rotation_grace_period.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-2-token-rotation-grace-replay-supersedes-rotated-token", "deployments": [], "key": "cognito-idp/deep-cognito-idp-2-token-rotation-grace-replay-supersedes-rotated-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_2_token_rotation_grace_replay_supersedes_rotated_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-2-token-rotation-invalid-config-rejected", "deployments": [], "key": "cognito-idp/deep-cognito-idp-2-token-rotation-invalid-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListUserPoolClients", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_2_token_rotation_invalid_config_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-2-token-rotation-legacy-refresh-flow-rejected", "deployments": [], "key": "cognito-idp/deep-cognito-idp-2-token-rotation-legacy-refresh-flow-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_2_token_rotation_legacy_refresh_flow_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-2-token-rotation-reuse-exception", "deployments": [], "key": "cognito-idp/deep-cognito-idp-2-token-rotation-reuse-exception", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_2_token_rotation_reuse_exception.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-3-enforce-app-client-default-attr-perms", "deployments": [], "key": "cognito-idp/deep-cognito-idp-3-enforce-app-client-default-attr-perms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserAttributes", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_3_enforce_app_client_default_attr_perms.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-3-enforce-app-client-read-attrs-withheld", "deployments": [], "key": "cognito-idp/deep-cognito-idp-3-enforce-app-client-read-attrs-withheld", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_3_enforce_app_client_read_attrs_withheld.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-3-enforce-app-client-write-attrs-rejected", "deployments": [], "key": "cognito-idp/deep-cognito-idp-3-enforce-app-client-write-attrs-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserAttributes"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_3_enforce_app_client_write_attrs_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-3-enforce-password-history-reuse-rejected", "deployments": [], "key": "cognito-idp/deep-cognito-idp-3-enforce-password-history-reuse-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ChangePassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_3_enforce_password_history_reuse_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-3-enforce-risk-ip-range-blocked", "deployments": [], "key": "cognito-idp/deep-cognito-idp-3-enforce-risk-ip-range-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SetRiskConfiguration"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_3_enforce_risk_ip_range_blocked.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-3-enforce-risk-user-context-ip-blocked", "deployments": [], "key": "cognito-idp/deep-cognito-idp-3-enforce-risk-user-context-ip-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:SetRiskConfiguration"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_3_enforce_risk_user_context_ip_blocked.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-3-enforce-user-auth-omitted-first-factor-rejected", "deployments": [], "key": "cognito-idp/deep-cognito-idp-3-enforce-user-auth-omitted-first-factor-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_3_enforce_user_auth_omitted_first_factor_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deep-cognito-idp-3-enforce-user-auth-select-challenge-grows-with-passkey", "deployments": [], "key": "cognito-idp/deep-cognito-idp-3-enforce-user-auth-select-challenge-grows-with-passkey", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:GetUserAuthFactors", "cognito-idp:InitiateAuth", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_deep_cognito_idp_3_enforce_user_auth_select_challenge_grows_with_passkey.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-builtin-identity-provider-rejected", "deployments": [], "key": "cognito-idp/delete-builtin-identity-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider"], "path": "behavioral/cognito-idp/check_delete_builtin_identity_provider_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-delete-group", "deployments": [], "key": "cognito-idp/op-contract-delete-group", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:ListGroups"], "path": "behavioral/cognito-idp/check_delete_group_contract.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-group-removes-it", "deployments": [], "key": "cognito-idp/delete-group-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:UpdateGroup"], "path": "behavioral/cognito-idp/check_delete_group_removes_it.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-group-then-membership-query-not-found", "deployments": [], "key": "cognito-idp/delete-group-then-membership-query-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_delete_group_then_membership_query_not_found.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-group-with-active-members-unassigns-membership", "deployments": [], "key": "cognito-idp/delete-group-with-active-members-unassigns-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_delete_group_with_active_members_unassigns_membership.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-last-user-pool-client-secret-rejected", "deployments": [], "key": "cognito-idp/delete-last-user-pool-client-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClientSecret", "cognito-idp:ListUserPoolClientSecrets"], "path": "behavioral/cognito-idp/check_delete_last_user_pool_client_secret_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-nonexistent-terms-fails", "deployments": [], "key": "cognito-idp/delete-nonexistent-terms-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeTerms"], "path": "behavioral/cognito-idp/check_delete_nonexistent_terms_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-nonexistent-webauthn-credential-fails", "deployments": [], "key": "cognito-idp/delete-nonexistent-webauthn-credential-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_delete_nonexistent_webauthn_credential_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-user-pool-client-removes-it", "deployments": [], "key": "cognito-idp/delete-user-pool-client-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_delete_user_pool_client_removes_it.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-user-pool-client-secret-nonexistent-id-rejected", "deployments": [], "key": "cognito-idp/delete-user-pool-client-secret-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolClientSecret", "cognito-idp:ListUserPoolClientSecrets"], "path": "behavioral/cognito-idp/check_delete_user_pool_client_secret_nonexistent_id_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-user-pool-client-secret-when-absent-fails", "deployments": [], "key": "cognito-idp/delete-user-pool-client-secret-when-absent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolClientSecret", "cognito-idp:ListUserPoolClientSecrets"], "path": "behavioral/cognito-idp/check_delete_user_pool_client_secret_when_absent_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-user-pool-removes-it", "deployments": [], "key": "cognito-idp/delete-user-pool-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_delete_user_pool_removes_it.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-user-pool-twice-fails", "deployments": [], "key": "cognito-idp/delete-user-pool-twice-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_delete_user_pool_twice_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-user-self-service-then-get-user-rejected", "deployments": [], "key": "cognito-idp/delete-user-self-service-then-get-user-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUser", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_delete_user_self_service_then_get_user_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-user-then-get-rejected", "deployments": [], "key": "cognito-idp/delete-user-then-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUser", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_delete_user_then_get_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-webauthn-credential-nonexistent-rejected", "deployments": [], "key": "cognito-idp/delete-webauthn-credential-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_delete_webauthn_credential_nonexistent_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-webauthn-credential-transitions-list-to-empty", "deployments": [], "key": "cognito-idp/delete-webauthn-credential-transitions-list-to-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_delete_webauthn_credential_transitions_list_to_empty.py", "service": "cognito-idp"} {"check_id": "cognito-idp.delete-webauthn-credential-wrong-owner-rejected", "deployments": [], "key": "cognito-idp/delete-webauthn-credential-wrong-owner-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:GetUser", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_delete_webauthn_credential_wrong_owner_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deletion-protection-blocks-delete", "deployments": [], "key": "cognito-idp/deletion-protection-blocks-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:ListUserPools", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_deletion_protection_blocks_delete.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deletion-protection-inactive-allows-delete", "deployments": [], "key": "cognito-idp/deletion-protection-inactive-allows-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_deletion_protection_inactive_allows_delete.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-cognito-idp-2-auth-flow-removal-update-rejects-password-auth", "deployments": [], "key": "cognito-idp/deploy-cognito-idp-2-auth-flow-removal-update-rejects-password-auth", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:DescribeUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deploy_cognito_idp_2_auth_flow_removal_update_rejects_password_auth.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-cognito-idp-2-password-policy-schema-update-and-client-replacement", "deployments": [], "key": "cognito-idp/deploy-cognito-idp-2-password-policy-schema-update-and-client-replacement", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_deploy_cognito_idp_2_password_policy_schema_update_and_client_replacement.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-cognito-idp-2-token-validity-update-changes-issued-token-lifetime", "deployments": [], "key": "cognito-idp/deploy-cognito-idp-2-token-validity-update-changes-issued-token-lifetime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:DescribeUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deploy_cognito_idp_2_token_validity_update_changes_issued_token_lifetime.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-cognito-idp-3-deletion-protection-and-rollback", "deployments": [], "key": "cognito-idp/deploy-cognito-idp-3-deletion-protection-and-rollback", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:GetUser", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_deploy_cognito_idp_3_deletion_protection_and_rollback.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-identity-provider-cfn-federation-resolves", "deployments": [], "key": "cognito-idp/deploy-identity-provider-cfn-federation-resolves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_deploy_identity_provider_cfn_federation_resolves.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-identity-provider-cfn-resolves-by-identifier", "deployments": [], "key": "cognito-idp/deploy-identity-provider-cfn-resolves-by-identifier", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:DescribeIdentityProvider", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_deploy_identity_provider_cfn_resolves_by_identifier.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-user-pool-cfn-enforces-configured-password-policy", "deployments": [], "key": "cognito-idp/deploy-user-pool-cfn-enforces-configured-password-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_deploy_user_pool_cfn_enforces_configured_password_policy.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-user-pool-cfn-signup-behaves", "deployments": [], "key": "cognito-idp/deploy-user-pool-cfn-signup-behaves", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminGetUser", "cognito-idp:ListUsers", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_deploy_user_pool_cfn_signup_behaves.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-user-pool-client-cfn-m2m-token-issuance-behaves", "deployments": [], "key": "cognito-idp/deploy-user-pool-client-cfn-m2m-token-issuance-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:DescribeUserPoolClient", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_deploy_user_pool_client_cfn_m2m_token_issuance_behaves.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-user-pool-client-cfn-oauth-token-exchange-works", "deployments": [], "key": "cognito-idp/deploy-user-pool-client-cfn-oauth-token-exchange-works", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:DescribeUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_deploy_user_pool_client_cfn_oauth_token_exchange_works.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-user-pool-client-explicit-auth-flows-enforced", "deployments": [], "key": "cognito-idp/deploy-user-pool-client-explicit-auth-flows-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:DescribeUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_deploy_user_pool_client_explicit_auth_flows_enforced.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-user-pool-cloudformation-authenticates-user", "deployments": [], "key": "cognito-idp/deploy-user-pool-cloudformation-authenticates-user", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_deploy_user_pool_cloudformation_authenticates_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.deploy-user-pool-password-policy-enforced", "deployments": [], "key": "cognito-idp/deploy-user-pool-password-policy-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:AdminGetUser", "cognito-idp:DescribeUserPool", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_deploy_user_pool_password_policy_enforced.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-client-from-other-pool-fails", "deployments": [], "key": "cognito-idp/describe-client-from-other-pool-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cognito-idp/check_describe_client_from_other_pool_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-deleted-client-fails", "deployments": [], "key": "cognito-idp/describe-deleted-client-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cognito-idp/check_describe_deleted_client_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-domain-after-delete-fails", "deployments": [], "key": "cognito-idp/describe-domain-after-delete-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain"], "path": "behavioral/cognito-idp/check_describe_domain_after_delete_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-nonexistent-identity-provider-fails", "deployments": [], "key": "cognito-idp/describe-nonexistent-identity-provider-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider"], "path": "behavioral/cognito-idp/check_describe_nonexistent_identity_provider_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-nonexistent-user-pool-fails", "deployments": [], "key": "cognito-idp/describe-nonexistent-user-pool-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_describe_nonexistent_user_pool_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-cross-pool-client-not-found-rejected", "deployments": [], "key": "cognito-idp/describe-terms-by-client-cross-pool-client-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListTerms"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_cross_pool_client_not_found_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-mismatched-client-id-rejected", "deployments": [], "key": "cognito-idp/describe-terms-by-client-mismatched-client-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient", "cognito-idp:ListTerms"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_mismatched_client_id_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-nonexistent-client-rejected", "deployments": [], "key": "cognito-idp/describe-terms-by-client-nonexistent-client-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_nonexistent_client_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-nonexistent-terms-precise-error", "deployments": [], "key": "cognito-idp/describe-terms-by-client-nonexistent-terms-precise-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_nonexistent_terms_precise_error.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-reflects-server-computed-effective-terms", "deployments": [], "key": "cognito-idp/describe-terms-by-client-reflects-server-computed-effective-terms", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTerms", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_reflects_server_computed_effective_terms.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-returns-client-scoped-document", "deployments": [], "key": "cognito-idp/describe-terms-by-client-returns-client-scoped-document", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_returns_client_scoped_document.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-returns-linked-terms", "deployments": [], "key": "cognito-idp/describe-terms-by-client-returns-linked-terms", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_returns_linked_terms.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-server-side-consistency-with-create", "deployments": [], "key": "cognito-idp/describe-terms-by-client-server-side-consistency-with-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_server_side_consistency_with_create.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-terms-by-client-unknown-client-rejected", "deployments": [], "key": "cognito-idp/describe-terms-by-client-unknown-client-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_describe_terms_by_client_unknown_client_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.describe-unknown-resource-server-fails", "deployments": [], "key": "cognito-idp/describe-unknown-resource-server-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeResourceServer"], "path": "behavioral/cognito-idp/check_describe_unknown_resource_server_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.device-key-and-secret-base64-round-trip", "deployments": [], "key": "cognito-idp/device-key-and-secret-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetDevice"], "path": "behavioral/cognito-idp/check_device_key_and_secret_base64_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.device-key-round-trip-through-list-and-get", "deployments": [], "key": "cognito-idp/device-key-round-trip-through-list-and-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgetDevice", "cognito-idp:GetDevice", "cognito-idp:ListDevices", "cognito-idp:UpdateDeviceStatus"], "path": "behavioral/cognito-idp/check_device_key_round_trip_through_list_and_get.py", "service": "cognito-idp"} {"check_id": "cognito-idp.device-lifecycle-admin", "deployments": [], "key": "cognito-idp/device-lifecycle-admin", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminForgetDevice", "cognito-idp:AdminGetDevice", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListDevices", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateDeviceStatus", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_device_lifecycle_admin.py", "service": "cognito-idp"} {"check_id": "cognito-idp.device-lifecycle-self", "deployments": [], "key": "cognito-idp/device-lifecycle-self", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgetDevice", "cognito-idp:GetDevice", "cognito-idp:ListDevices", "cognito-idp:UpdateDeviceStatus"], "path": "behavioral/cognito-idp/check_device_lifecycle_self.py", "service": "cognito-idp"} {"check_id": "cognito-idp.device-remember-status-ttl-persists", "deployments": [], "key": "cognito-idp/device-remember-status-ttl-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgetDevice", "cognito-idp:GetDevice", "cognito-idp:InitiateAuth", "cognito-idp:ListDevices", "cognito-idp:UpdateDeviceStatus"], "path": "behavioral/cognito-idp/check_device_remember_status_ttl_persists.py", "service": "cognito-idp"} {"check_id": "cognito-idp.device-srp-auth-completes-with-a-locally-computed-device-verifier", "deployments": [], "key": "cognito-idp/device-srp-auth-completes-with-a-locally-computed-device-verifier", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgetDevice", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:UpdateDeviceStatus", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_device_srp_auth_completes_with_a_locally_computed_device_verifier.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-admin-initiate-auth-disabled-user-rejected", "deployments": [], "key": "cognito-idp/e2e-admin-initiate-auth-disabled-user-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_e2e_admin_initiate_auth_disabled_user_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-delete-user-pool-deletion-protection-rejected", "deployments": [], "key": "cognito-idp/e2e-delete-user-pool-deletion-protection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_e2e_delete_user_pool_deletion_protection_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-device-remember-skips-mfa-then-forget-reinstates", "deployments": [], "key": "cognito-idp/e2e-device-remember-skips-mfa-then-forget-reinstates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminForgetDevice", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetDevice", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_e2e_device_remember_skips_mfa_then_forget_reinstates.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-device-remembered-skips-mfa-challenge", "deployments": [], "key": "cognito-idp/e2e-device-remembered-skips-mfa-challenge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:UpdateDeviceStatus", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_e2e_device_remembered_skips_mfa_challenge.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-forgot-password-recovery-flow", "deployments": [], "key": "cognito-idp/e2e-forgot-password-recovery-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:ConfirmForgotPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgotPassword", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_e2e_forgot_password_recovery_flow.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-group-membership-add-remove-affects-token-claims", "deployments": [], "key": "cognito-idp/e2e-group-membership-add-remove-affects-token-claims", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_e2e_group_membership_add_remove_affects_token_claims.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-group-membership-add-remove-reflected-in-token-claims", "deployments": [], "key": "cognito-idp/e2e-group-membership-add-remove-reflected-in-token-claims", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_e2e_group_membership_add_remove_reflected_in_token_claims.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-mfa-challenge-wrong-totp-rejected", "deployments": [], "key": "cognito-idp/e2e-mfa-challenge-wrong-totp-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:SignUp", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_e2e_mfa_challenge_wrong_totp_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-mfa-enrollment-then-enforced-login-requires-code", "deployments": [], "key": "cognito-idp/e2e-mfa-enrollment-then-enforced-login-requires-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_e2e_mfa_enrollment_then_enforced_login_requires_code.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-remembered-device-skips-mfa-on-next-login", "deployments": [], "key": "cognito-idp/e2e-remembered-device-skips-mfa-on-next-login", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgetDevice", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:UpdateDeviceStatus", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_e2e_remembered_device_skips_mfa_on_next_login.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-signup-confirm-group-login-teardown", "deployments": [], "key": "cognito-idp/e2e-signup-confirm-group-login-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_e2e_signup_confirm_group_login_teardown.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-signup-confirm-login-use-token-then-teardown", "deployments": [], "key": "cognito-idp/e2e-signup-confirm-login-use-token-then-teardown", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_e2e_signup_confirm_login_use_token_then_teardown.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-signup-confirm-mfa-login-teardown", "deployments": [], "key": "cognito-idp/e2e-signup-confirm-mfa-login-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:SignUp", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_e2e_signup_confirm_mfa_login_teardown.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-signup-mfa-enforced-then-delete-blocks-login", "deployments": [], "key": "cognito-idp/e2e-signup-mfa-enforced-then-delete-blocks-login", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:SignUp", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_e2e_signup_mfa_enforced_then_delete_blocks_login.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-terms-configuration-does-not-block-signin", "deployments": [], "key": "cognito-idp/e2e-terms-configuration-does-not-block-signin", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge"], "path": "behavioral/cognito-idp/check_e2e_terms_configuration_does_not_block_signin.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-user-import-job-csv-header-to-active-users", "deployments": [], "key": "cognito-idp/e2e-user-import-job-csv-header-to-active-users", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserImportJob", "cognito-idp:GetCSVHeader", "cognito-idp:StartUserImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_e2e_user_import_job_csv_header_to_active_users.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-user-import-job-csv-to-listusers", "deployments": [], "key": "cognito-idp/e2e-user-import-job-csv-to-listusers", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminGetUser", "cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserImportJob", "cognito-idp:GetCSVHeader", "cognito-idp:ListUsers", "cognito-idp:StartUserImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_e2e_user_import_job_csv_to_listusers.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-user-pool-replica-propagates-user-changes", "deployments": [], "key": "cognito-idp/e2e-user-pool-replica-propagates-user-changes", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas"], "path": "behavioral/cognito-idp/check_e2e_user_pool_replica_propagates_user_changes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-user-pool-replica-provision-update-sync-teardown", "deployments": [], "key": "cognito-idp/e2e-user-pool-replica-provision-update-sync-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_e2e_user_pool_replica_provision_update_sync_teardown.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-user-signup-confirm-login-teardown", "deployments": [], "key": "cognito-idp/e2e-user-signup-confirm-login-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUser", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:ListUsers", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_e2e_user_signup_confirm_login_teardown.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-webauthn-register-authenticate-revoke", "deployments": [], "key": "cognito-idp/e2e-webauthn-register-authenticate-revoke", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:InitiateAuth", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_e2e_webauthn_register_authenticate_revoke.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-webauthn-register-list-then-delete-credential", "deployments": [], "key": "cognito-idp/e2e-webauthn-register-list-then-delete-credential", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:InitiateAuth", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_e2e_webauthn_register_list_then_delete_credential.py", "service": "cognito-idp"} {"check_id": "cognito-idp.e2e-webauthn-registration-to-authentication", "deployments": [], "key": "cognito-idp/e2e-webauthn-registration-to-authentication", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:InitiateAuth", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_e2e_webauthn_registration_to_authentication.py", "service": "cognito-idp"} {"check_id": "cognito-idp.email-username-sign-in-issues-tokens-with-the-client-validity-that-resolve-the-sub", "deployments": [], "key": "cognito-idp/email-username-sign-in-issues-tokens-with-the-client-validity-that-resolve-the-sub", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_email_username_sign_in_issues_tokens_with_the_client_validity_that_resolve_the_sub.py", "service": "cognito-idp"} {"check_id": "cognito-idp.empty-vs-absent-custom-attribute-distinction", "deployments": [], "key": "cognito-idp/empty-vs-absent-custom-attribute-distinction", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_empty_vs_absent_custom_attribute_distinction.py", "service": "cognito-idp"} {"check_id": "cognito-idp.enable-software-token-mfa-precondition-error", "deployments": [], "key": "cognito-idp/enable-software-token-mfa-precondition-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_enable_software_token_mfa_precondition_error.py", "service": "cognito-idp"} {"check_id": "cognito-idp.feature-unavailable-in-tier-domain-mfa-logging", "deployments": [], "key": "cognito-idp/feature-unavailable-in-tier-domain-mfa-logging", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolDomain", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_feature_unavailable_in_tier_domain_mfa_logging.py", "service": "cognito-idp"} {"check_id": "cognito-idp.feature-unavailable-in-tier-pool-and-client", "deployments": [], "key": "cognito-idp/feature-unavailable-in-tier-pool-and-client", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_feature_unavailable_in_tier_pool_and_client.py", "service": "cognito-idp"} {"check_id": "cognito-idp.force-change-password-challenge", "deployments": [], "key": "cognito-idp/force-change-password-challenge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_force_change_password_challenge.py", "service": "cognito-idp"} {"check_id": "cognito-idp.forged-access-tokens-are-refused-and-verifiably-unsigned", "deployments": [], "key": "cognito-idp/forged-access-tokens-are-refused-and-verifiably-unsigned", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserAttributes"], "path": "behavioral/cognito-idp/check_forged_access_tokens_are_refused_and_verifiably_unsigned.py", "service": "cognito-idp"} {"check_id": "cognito-idp.forgot-password-code-expires-after-ttl", "deployments": [], "key": "cognito-idp/forgot-password-code-expires-after-ttl", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmForgotPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_forgot_password_code_expires_after_ttl.py", "service": "cognito-idp"} {"check_id": "cognito-idp.forgot-password-code-ttl", "deployments": [], "key": "cognito-idp/forgot-password-code-ttl", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmForgotPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword"], "path": "behavioral/cognito-idp/check_forgot_password_code_ttl.py", "service": "cognito-idp"} {"check_id": "cognito-idp.forgot-password-nonexistent-user-no-error-leak", "deployments": [], "key": "cognito-idp/forgot-password-nonexistent-user-no-error-leak", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgotPassword"], "path": "behavioral/cognito-idp/check_forgot_password_nonexistent_user_no_error_leak.py", "service": "cognito-idp"} {"check_id": "cognito-idp.forgot-password-wrong-code-rejected", "deployments": [], "key": "cognito-idp/forgot-password-wrong-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmForgotPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword"], "path": "behavioral/cognito-idp/check_forgot_password_wrong_code_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-client-token-disallowed-scope-rejected", "deployments": [], "key": "cognito-idp/get-client-token-disallowed-scope-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_get_client_token_disallowed_scope_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-client-token-invalid-secret-rejected", "deployments": [], "key": "cognito-idp/get-client-token-invalid-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_get_client_token_invalid_secret_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-client-token-rejects-wrong-secret-and-undeclared-scope", "deployments": [], "key": "cognito-idp/get-client-token-rejects-wrong-secret-and-undeclared-scope", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cognito-idp:DescribeUserPoolClient", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_get_client_token_rejects_wrong_secret_and_undeclared_scope.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-client-token-returns-valid-token", "deployments": [], "key": "cognito-idp/get-client-token-returns-valid-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_get_client_token_returns_valid_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-client-token-scoped-to-requested-resource-server", "deployments": [], "key": "cognito-idp/get-client-token-scoped-to-requested-resource-server", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_get_client_token_scoped_to_requested_resource_server.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-client-token-wrong-secret-rejected", "deployments": [], "key": "cognito-idp/get-client-token-wrong-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_get_client_token_wrong_secret_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-column-order-matches-schema-addition-order", "deployments": [], "key": "cognito-idp/get-csv-header-column-order-matches-schema-addition-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_column_order_matches_schema_addition_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-column-order-matches-schema-order", "deployments": [], "key": "cognito-idp/get-csv-header-column-order-matches-schema-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_column_order_matches_schema_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-deleted-pool-not-found-rejected", "deployments": [], "key": "cognito-idp/get-csv-header-deleted-pool-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_deleted_pool_not_found_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-deterministic-across-repeated-calls", "deployments": [], "key": "cognito-idp/get-csv-header-deterministic-across-repeated-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_deterministic_across_repeated_calls.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-empty-custom-schema-returns-empty-list", "deployments": [], "key": "cognito-idp/get-csv-header-empty-custom-schema-returns-empty-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_empty_custom_schema_returns_empty_list.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-invalid-pool-id-rejected", "deployments": [], "key": "cognito-idp/get-csv-header-invalid-pool-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_invalid_pool_id_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-malformed-pool-id-rejected", "deployments": [], "key": "cognito-idp/get-csv-header-malformed-pool-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_malformed_pool_id_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-matches-custom-schema-attribute-order", "deployments": [], "key": "cognito-idp/get-csv-header-matches-custom-schema-attribute-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_matches_custom_schema_attribute_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-matches-user-pool-schema", "deployments": [], "key": "cognito-idp/get-csv-header-matches-user-pool-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_matches_user_pool_schema.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-nonexistent-pool-rejected", "deployments": [], "key": "cognito-idp/get-csv-header-nonexistent-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader"], "path": "behavioral/cognito-idp/check_get_csv_header_nonexistent_pool_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-csv-header-without-permission-denied", "deployments": [], "key": "cognito-idp/get-csv-header-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetCSVHeader", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/cognito-idp/check_get_csv_header_without_permission_denied.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-device-bogus-key-rejected", "deployments": [], "key": "cognito-idp/get-device-bogus-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgetDevice", "cognito-idp:GetDevice", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_get_device_bogus_key_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-device-detail-matches-listed-device", "deployments": [], "key": "cognito-idp/get-device-detail-matches-listed-device", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetDevice", "cognito-idp:InitiateAuth", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_get_device_detail_matches_listed_device.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-device-reflects-confirmed-device-attributes", "deployments": [], "key": "cognito-idp/get-device-reflects-confirmed-device-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetDevice"], "path": "behavioral/cognito-idp/check_get_device_reflects_confirmed_device_attributes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-device-timestamp-precision-preserved", "deployments": [], "key": "cognito-idp/get-device-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetDevice"], "path": "behavioral/cognito-idp/check_get_device_timestamp_precision_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-group-returns-current-state-immediately-after-update", "deployments": [], "key": "cognito-idp/get-group-returns-current-state-immediately-after-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:UpdateGroup"], "path": "behavioral/cognito-idp/check_get_group_returns_current_state_immediately_after_update.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-identity-provider-by-identifier-cross-pool-rejected", "deployments": [], "key": "cognito-idp/get-identity-provider-by-identifier-cross-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:GetIdentityProviderByIdentifier", "cognito-idp:ListIdentityProviders"], "path": "behavioral/cognito-idp/check_get_identity_provider_by_identifier_cross_pool_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-identity-provider-by-identifier-matches-created-config", "deployments": [], "key": "cognito-idp/get-identity-provider-by-identifier-matches-created-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_get_identity_provider_by_identifier_matches_created_config.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-identity-provider-by-identifier-resolves-correct-provider", "deployments": [], "key": "cognito-idp/get-identity-provider-by-identifier-resolves-correct-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_get_identity_provider_by_identifier_resolves_correct_provider.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-identity-provider-by-identifier-resolves-matching-provider", "deployments": [], "key": "cognito-idp/get-identity-provider-by-identifier-resolves-matching-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_get_identity_provider_by_identifier_resolves_matching_provider.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-identity-provider-by-identifier-unknown-identifier-rejected", "deployments": [], "key": "cognito-idp/get-identity-provider-by-identifier-unknown-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_get_identity_provider_by_identifier_unknown_identifier_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-identity-provider-by-identifier-unregistered-rejected", "deployments": [], "key": "cognito-idp/get-identity-provider-by-identifier-unregistered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:GetIdentityProviderByIdentifier"], "path": "behavioral/cognito-idp/check_get_identity_provider_by_identifier_unregistered_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-log-delivery-configuration-reflects-server-managed-default", "deployments": [], "key": "cognito-idp/get-log-delivery-configuration-reflects-server-managed-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration"], "path": "behavioral/cognito-idp/check_get_log_delivery_configuration_reflects_server_managed_default.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-log-delivery-configuration-returns-empty-before-set", "deployments": [], "key": "cognito-idp/get-log-delivery-configuration-returns-empty-before-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration"], "path": "behavioral/cognito-idp/check_get_log_delivery_configuration_returns_empty_before_set.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-nonexistent-device-fails", "deployments": [], "key": "cognito-idp/get-nonexistent-device-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgetDevice", "cognito-idp:GetDevice", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_get_nonexistent_device_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-nonexistent-group-fails", "deployments": [], "key": "cognito-idp/get-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_get_nonexistent_group_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-signing-certificate-matches-jwks-key", "deployments": [], "key": "cognito-idp/get-signing-certificate-matches-jwks-key", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetSigningCertificate"], "path": "behavioral/cognito-idp/check_get_signing_certificate_matches_jwks_key.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-signing-certificate-returns-valid-cert", "deployments": [], "key": "cognito-idp/get-signing-certificate-returns-valid-cert", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetSigningCertificate"], "path": "behavioral/cognito-idp/check_get_signing_certificate_returns_valid_cert.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-signing-certificate-stable-across-repeated-calls", "deployments": [], "key": "cognito-idp/get-signing-certificate-stable-across-repeated-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetSigningCertificate"], "path": "behavioral/cognito-idp/check_get_signing_certificate_stable_across_repeated_calls.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-tokens-from-refresh-token-preserves-original-scopes", "deployments": [], "key": "cognito-idp/get-tokens-from-refresh-token-preserves-original-scopes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_get_tokens_from_refresh_token_preserves_original_scopes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-tokens-from-refresh-token-wrong-client-rejected", "deployments": [], "key": "cognito-idp/get-tokens-from-refresh-token-wrong-client-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken"], "path": "behavioral/cognito-idp/check_get_tokens_from_refresh_token_wrong_client_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-ui-customization-cross-pool-access-denied", "deployments": [], "key": "cognito-idp/get-ui-customization-cross-pool-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_get_ui_customization_cross_pool_access_denied.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-ui-customization-cross-pool-access-denied-rejected", "deployments": [], "key": "cognito-idp/get-ui-customization-cross-pool-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_get_ui_customization_cross_pool_access_denied_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-ui-customization-nonexistent-client-denied", "deployments": [], "key": "cognito-idp/get-ui-customization-nonexistent-client-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:GetUICustomization"], "path": "behavioral/cognito-idp/check_get_ui_customization_nonexistent_client_denied.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-ui-customization-nonexistent-client-rejected", "deployments": [], "key": "cognito-idp/get-ui-customization-nonexistent-client-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:GetUICustomization"], "path": "behavioral/cognito-idp/check_get_ui_customization_nonexistent_client_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-attribute-verification-code-and-mismatch", "deployments": [], "key": "cognito-idp/get-user-attribute-verification-code-and-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:VerifyUserAttribute"], "path": "behavioral/cognito-idp/check_get_user_attribute_verification_code_and_mismatch.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-attribute-verification-code-delivery-medium-matches-attribute", "deployments": [], "key": "cognito-idp/get-user-attribute-verification-code-delivery-medium-matches-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_get_user_attribute_verification_code_delivery_medium_matches_attribute.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-attribute-verification-code-honors-delivery-medium-param", "deployments": [], "key": "cognito-idp/get-user-attribute-verification-code-honors-delivery-medium-param", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_get_user_attribute_verification_code_honors_delivery_medium_param.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-attribute-verification-code-rejects-unverifiable-attribute", "deployments": [], "key": "cognito-idp/get-user-attribute-verification-code-rejects-unverifiable-attribute", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAttributeVerificationCode"], "path": "behavioral/cognito-idp/check_get_user_attribute_verification_code_rejects_unverifiable_attribute.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-attribute-verification-code-requires-authorization", "deployments": [], "key": "cognito-idp/get-user-attribute-verification-code-requires-authorization", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAttributeVerificationCode"], "path": "behavioral/cognito-idp/check_get_user_attribute_verification_code_requires_authorization.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-attribute-verification-code-respects-delivery-medium", "deployments": [], "key": "cognito-idp/get-user-attribute-verification-code-respects-delivery-medium", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAttributeVerificationCode"], "path": "behavioral/cognito-idp/check_get_user_attribute_verification_code_respects_delivery_medium.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-auth-factors-baseline-empty-before-mfa-setup", "deployments": [], "key": "cognito-idp/get-user-auth-factors-baseline-empty-before-mfa-setup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors"], "path": "behavioral/cognito-idp/check_get_user_auth_factors_baseline_empty_before_mfa_setup.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-auth-factors-deleted-user-not-found-rejected", "deployments": [], "key": "cognito-idp/get-user-auth-factors-deleted-user-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors"], "path": "behavioral/cognito-idp/check_get_user_auth_factors_deleted_user_not_found_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-auth-factors-reflects-current-mfa-preference", "deployments": [], "key": "cognito-idp/get-user-auth-factors-reflects-current-mfa-preference", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:InitiateAuth", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_get_user_auth_factors_reflects_current_mfa_preference.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-pool-mfa-config-default-off-before-any-configuration", "deployments": [], "key": "cognito-idp/get-user-pool-mfa-config-default-off-before-any-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_get_user_pool_mfa_config_default_off_before_any_configuration.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-pool-mfa-config-reflects-latest-set-config", "deployments": [], "key": "cognito-idp/get-user-pool-mfa-config-reflects-latest-set-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_get_user_pool_mfa_config_reflects_latest_set_config.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-reflects-latest-self-service-attribute-update", "deployments": [], "key": "cognito-idp/get-user-reflects-latest-self-service-attribute-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:GetUser", "cognito-idp:UpdateUserAttributes"], "path": "behavioral/cognito-idp/check_get_user_reflects_latest_self_service_attribute_update.py", "service": "cognito-idp"} {"check_id": "cognito-idp.get-user-with-bogus-token-fails", "deployments": [], "key": "cognito-idp/get-user-with-bogus-token-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_get_user_with_bogus_token_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.global-sign-out-invalidates-access-token", "deployments": [], "key": "cognito-idp/global-sign-out-invalidates-access-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUserGlobalSignOut", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:GlobalSignOut", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_global_sign_out_invalidates_access_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.global-sign-out-invalidates-tokens", "deployments": [], "key": "cognito-idp/global-sign-out-invalidates-tokens", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:GlobalSignOut"], "path": "behavioral/cognito-idp/check_global_sign_out_invalidates_tokens.py", "service": "cognito-idp"} {"check_id": "cognito-idp.global-sign-out-revokes-every-session-and-refresh-token-but-a-later-sign-in-works", "deployments": [], "key": "cognito-idp/global-sign-out-revokes-every-session-and-refresh-token-but-a-later-sign-in-works", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ChangePassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:GlobalSignOut", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_global_sign_out_revokes_every_session_and_refresh_token_but_a_later_sign_in_works.py", "service": "cognito-idp"} {"check_id": "cognito-idp.global-signout-revokes-refresh-token", "deployments": [], "key": "cognito-idp/global-signout-revokes-refresh-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUserGlobalSignOut", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_global_signout_revokes_refresh_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.group-description-empty-string-vs-absent-distinguished", "deployments": [], "key": "cognito-idp/group-description-empty-string-vs-absent-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_group_description_empty_string_vs_absent_distinguished.py", "service": "cognito-idp"} {"check_id": "cognito-idp.group-description-exceeds-max-length-rejected", "deployments": [], "key": "cognito-idp/group-description-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_group_description_exceeds_max_length_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.group-precedence-ties-suppress-the-preferred-role-claim", "deployments": [], "key": "cognito-idp/group-precedence-ties-suppress-the-preferred-role-claim", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:UpdateGroup", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies"], "path": "behavioral/cognito-idp/check_group_precedence_ties_suppress_the_preferred_role_claim.py", "service": "cognito-idp"} {"check_id": "cognito-idp.id-token-and-m2m-token-are-refused-where-a-user-access-token-is-required", "deployments": [], "key": "cognito-idp/id-token-and-m2m-token-are-refused-where-a-user-access-token-is-required", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetClientToken", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserAttributes"], "path": "behavioral/cognito-idp/check_id_token_and_m2m_token_are_refused_where_a_user_access_token_is_required.py", "service": "cognito-idp"} {"check_id": "cognito-idp.id-token-claims-derive-from-the-user-attribute-set", "deployments": [], "key": "cognito-idp/id-token-claims-derive-from-the-user-attribute-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserAttributes"], "path": "behavioral/cognito-idp/check_id_token_claims_derive_from_the_user_attribute_set.py", "service": "cognito-idp"} {"check_id": "cognito-idp.id-token-from-another-pool-rejected-by-this-pools-jwks", "deployments": [], "key": "cognito-idp/id-token-from-another-pool-rejected-by-this-pools-jwks", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_id_token_from_another_pool_rejected_by_this_pools_jwks.py", "service": "cognito-idp"} {"check_id": "cognito-idp.id-token-verifies-rs256-against-the-issuer-jwks", "deployments": [], "key": "cognito-idp/id-token-verifies-rs256-against-the-issuer-jwks", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_id_token_verifies_rs256_against_the_issuer_jwks.py", "service": "cognito-idp"} {"check_id": "cognito-idp.identity-federation-linking-lifecycle", "deployments": [], "key": "cognito-idp/identity-federation-linking-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableProviderForUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_identity_federation_linking_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.identity-provider-delete-blocked-while-referenced-rejected", "deployments": [], "key": "cognito-idp/identity-provider-delete-blocked-while-referenced-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_identity_provider_delete_blocked_while_referenced_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.identity-provider-delete-while-referenced-scrubs-reference", "deployments": [], "key": "cognito-idp/identity-provider-delete-while-referenced-scrubs-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeIdentityProvider", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_identity_provider_delete_while_referenced_scrubs_reference.py", "service": "cognito-idp"} {"check_id": "cognito-idp.identity-provider-lifecycle", "deployments": [], "key": "cognito-idp/identity-provider-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:GetIdentityProviderByIdentifier", "cognito-idp:ListIdentityProviders", "cognito-idp:UpdateIdentityProvider"], "path": "behavioral/cognito-idp/check_identity_provider_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.identity-provider-linking-lifecycle", "deployments": [], "key": "cognito-idp/identity-provider-linking-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableProviderForUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_identity_provider_linking_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.immutable-custom-attribute-update-rejected", "deployments": [], "key": "cognito-idp/immutable-custom-attribute-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_immutable_custom_attribute_update_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.initiate-auth-unknown-client-fails", "deployments": [], "key": "cognito-idp/initiate-auth-unknown-client-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_initiate_auth_unknown_client_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.invalid-domain-name-fails", "deployments": [], "key": "cognito-idp/invalid-domain-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain"], "path": "behavioral/cognito-idp/check_invalid_domain_name_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.invalid-lambda-response-error", "deployments": [], "key": "cognito-idp/invalid-lambda-response-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminResetUserPassword", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "cognito-idp:UpdateUserPool", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp/check_invalid_lambda_response_error.py", "service": "cognito-idp"} {"check_id": "cognito-idp.invalid-oauth-flow-error", "deployments": [], "key": "cognito-idp/invalid-oauth-flow-error", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPoolClients"], "path": "behavioral/cognito-idp/check_invalid_oauth_flow_error.py", "service": "cognito-idp"} {"check_id": "cognito-idp.invalid-pool-name-fails", "deployments": [], "key": "cognito-idp/invalid-pool-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPools"], "path": "behavioral/cognito-idp/check_invalid_pool_name_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.invalid-user-pool-configuration-device-ops", "deployments": [], "key": "cognito-idp/invalid-user-pool-configuration-device-ops", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminForgetDevice", "cognito-idp:AdminGetDevice", "cognito-idp:AdminListDevices", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateDeviceStatus", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_invalid_user_pool_configuration_device_ops.py", "service": "cognito-idp"} {"check_id": "cognito-idp.limit-exceeded-client-secret-delete", "deployments": [], "key": "cognito-idp/limit-exceeded-client-secret-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolClientSecret", "cognito-idp:ListUserPoolClientSecrets"], "path": "behavioral/cognito-idp/check_limit_exceeded_client_secret_delete.py", "service": "cognito-idp"} {"check_id": "cognito-idp.limit-exceeded-resource-server", "deployments": [], "key": "cognito-idp/limit-exceeded-resource-server", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:DeleteResourceServer", "cognito-idp:DeleteUserPool", "cognito-idp:ListResourceServers", "service-quotas:GetAWSDefaultServiceQuota", "service-quotas:GetServiceQuota"], "path": "behavioral/cognito-idp/check_limit_exceeded_resource_server.py", "service": "cognito-idp"} {"check_id": "cognito-idp.limit-exceeded-user-import-job", "deployments": [], "key": "cognito-idp/limit-exceeded-user-import-job", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserImportJobs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_limit_exceeded_user_import_job.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-devices-empty-when-no-devices-confirmed", "deployments": [], "key": "cognito-idp/list-devices-empty-when-no-devices-confirmed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgetDevice", "cognito-idp:InitiateAuth", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_list_devices_empty_when_no_devices_confirmed.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-devices-pagination-stable-order", "deployments": [], "key": "cognito-idp/list-devices-pagination-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_list_devices_pagination_stable_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-devices-reflects-all-confirmed-devices-for-user", "deployments": [], "key": "cognito-idp/list-devices-reflects-all-confirmed-devices-for-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_list_devices_reflects_all_confirmed_devices_for_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-devices-reflects-only-remembered-devices-for-user", "deployments": [], "key": "cognito-idp/list-devices-reflects-only-remembered-devices-for-user", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_list_devices_reflects_only_remembered_devices_for_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-groups-invalid-next-token-rejected", "deployments": [], "key": "cognito-idp/list-groups-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListGroups"], "path": "behavioral/cognito-idp/check_list_groups_invalid_next_token_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-groups-invalid-pagination-token-rejected", "deployments": [], "key": "cognito-idp/list-groups-invalid-pagination-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListGroups"], "path": "behavioral/cognito-idp/check_list_groups_invalid_pagination_token_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-groups-pagination-stable-order-across-pages", "deployments": [], "key": "cognito-idp/list-groups-pagination-stable-order-across-pages", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListGroups"], "path": "behavioral/cognito-idp/check_list_groups_pagination_stable_order_across_pages.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-groups-reflects-precedence-after-updates", "deployments": [], "key": "cognito-idp/list-groups-reflects-precedence-after-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListGroups", "cognito-idp:UpdateGroup"], "path": "behavioral/cognito-idp/check_list_groups_reflects_precedence_after_updates.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-user-pool-client-secrets-order-consistent", "deployments": [], "key": "cognito-idp/list-user-pool-client-secrets-order-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPoolClientSecrets"], "path": "behavioral/cognito-idp/check_list_user_pool_client_secrets_order_consistent.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-user-pools-returns-created", "deployments": [], "key": "cognito-idp/list-user-pools-returns-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPools"], "path": "behavioral/cognito-idp/check_list_user_pools_returns_created.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-user-pools-returns-created-pool", "deployments": [], "key": "cognito-idp/list-user-pools-returns-created-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPools"], "path": "behavioral/cognito-idp/check_list_user_pools_returns_created_pool.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-users-in-group-pagination-stable-order", "deployments": [], "key": "cognito-idp/list-users-in-group-pagination-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsersInGroup"], "path": "behavioral/cognito-idp/check_list_users_in_group_pagination_stable_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-users-invalid-filter-rejected", "deployments": [], "key": "cognito-idp/list-users-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_list_users_invalid_filter_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-users-invalid-limit-fails", "deployments": [], "key": "cognito-idp/list-users-invalid-limit-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_list_users_invalid_limit_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-users-pagination", "deployments": [], "key": "cognito-idp/list-users-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_list_users_pagination.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-webauthn-credentials-ordered-by-creation", "deployments": [], "key": "cognito-idp/list-webauthn-credentials-ordered-by-creation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_list_webauthn_credentials_ordered_by_creation.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-webauthn-credentials-password-reset-required-rejected", "deployments": [], "key": "cognito-idp/list-webauthn-credentials-password-reset-required-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminResetUserPassword", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListWebAuthnCredentials"], "path": "behavioral/cognito-idp/check_list_webauthn_credentials_password_reset_required_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-webauthn-credentials-reflects-registered-credentials", "deployments": [], "key": "cognito-idp/list-webauthn-credentials-reflects-registered-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_list_webauthn_credentials_reflects_registered_credentials.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-webauthn-credentials-returns-in-registration-order", "deployments": [], "key": "cognito-idp/list-webauthn-credentials-returns-in-registration-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_list_webauthn_credentials_returns_in_registration_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-webauthn-credentials-revoked-token-not-authorized", "deployments": [], "key": "cognito-idp/list-webauthn-credentials-revoked-token-not-authorized", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GlobalSignOut", "cognito-idp:ListWebAuthnCredentials"], "path": "behavioral/cognito-idp/check_list_webauthn_credentials_revoked_token_not_authorized.py", "service": "cognito-idp"} {"check_id": "cognito-idp.list-webauthn-credentials-without-access-token-denied", "deployments": [], "key": "cognito-idp/list-webauthn-credentials-without-access-token-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListWebAuthnCredentials"], "path": "behavioral/cognito-idp/check_list_webauthn_credentials_without_access_token_denied.py", "service": "cognito-idp"} {"check_id": "cognito-idp.log-delivery-configuration-empty-array-vs-absent-preserved", "deployments": [], "key": "cognito-idp/log-delivery-configuration-empty-array-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_log_delivery_configuration_empty_array_vs_absent_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.log-delivery-configuration-empty-vs-absent-fields-preserved", "deployments": [], "key": "cognito-idp/log-delivery-configuration-empty-vs-absent-fields-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_log_delivery_configuration_empty_vs_absent_fields_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.log-delivery-configuration-lifecycle", "deployments": [], "key": "cognito-idp/log-delivery-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_log_delivery_configuration_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.log-delivery-configuration-roundtrip", "deployments": [], "key": "cognito-idp/log-delivery-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_log_delivery_configuration_roundtrip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.managed-login-branding-and-ui-customization-lifecycle", "deployments": [], "key": "cognito-idp/managed-login-branding-and-ui-customization-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateManagedLoginBranding", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteManagedLoginBranding", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeManagedLoginBranding", "cognito-idp:DescribeManagedLoginBrandingByClient", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization", "cognito-idp:UpdateManagedLoginBranding"], "path": "behavioral/cognito-idp/check_managed_login_branding_and_ui_customization_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.managed-login-branding-duplicate-create-rejected", "deployments": [], "key": "cognito-idp/managed-login-branding-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateManagedLoginBranding", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeManagedLoginBrandingByClient"], "path": "behavioral/cognito-idp/check_managed_login_branding_duplicate_create_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.managed-login-branding-lifecycle", "deployments": [], "key": "cognito-idp/managed-login-branding-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateManagedLoginBranding", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteManagedLoginBranding", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeManagedLoginBranding", "cognito-idp:DescribeManagedLoginBrandingByClient", "cognito-idp:UpdateManagedLoginBranding"], "path": "behavioral/cognito-idp/check_managed_login_branding_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.mfa-on-without-method-fails", "deployments": [], "key": "cognito-idp/mfa-on-without-method-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_mfa_on_without_method_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.mfa-preference-reflected-in-auth-factors", "deployments": [], "key": "cognito-idp/mfa-preference-reflected-in-auth-factors", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUserAuthFactors", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_mfa_preference_reflected_in_auth_factors.py", "service": "cognito-idp"} {"check_id": "cognito-idp.mfa-setup-challenge-flow-software-token", "deployments": [], "key": "cognito-idp/mfa-setup-challenge-flow-software-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_mfa_setup_challenge_flow_software_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-admin-get-device-nonexistent-rejected", "deployments": [], "key": "cognito-idp/op-admin-get-device-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetDevice", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_admin_get_device_nonexistent_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminAddUserToGroup", "deployments": [], "key": "cognito-idp/op-contract-adminAddUserToGroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_add_user_to_group.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminConfirmSignUp", "deployments": [], "key": "cognito-idp/op-contract-adminConfirmSignUp", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_op_contract_admin_confirm_sign_up.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-admin-confirm-sign-up-reconfirm-rejected", "deployments": [], "key": "cognito-idp/op-contract-admin-confirm-sign-up-reconfirm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_op_contract_admin_confirm_sign_up_reconfirm_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminCreateUser", "deployments": [], "key": "cognito-idp/op-contract-adminCreateUser", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_create_user_rejects_duplicate.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminCreateUser-username-exists-rejected", "deployments": [], "key": "cognito-idp/op-contract-adminCreateUser-username-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_op_contract_admin_create_user_username_exists_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminCreateUser-weak-temp-password-rejected", "deployments": [], "key": "cognito-idp/op-contract-adminCreateUser-weak-temp-password-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_op_contract_admin_create_user_weak_temp_password_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminDisableProviderForUser", "deployments": [], "key": "cognito-idp/op-contract-adminDisableProviderForUser", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableProviderForUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_disable_provider_for_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminDisableUser", "deployments": [], "key": "cognito-idp/op-contract-adminDisableUser", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_disable_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminGetUser", "deployments": [], "key": "cognito-idp/op-contract-adminGetUser", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_get_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminInitiateAuth", "deployments": [], "key": "cognito-idp/op-contract-adminInitiateAuth", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_op_contract_admin_initiate_auth.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminLinkProviderForUser", "deployments": [], "key": "cognito-idp/op-contract-adminLinkProviderForUser", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableProviderForUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_link_provider_for_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminListGroupsForUser", "deployments": [], "key": "cognito-idp/op-contract-adminListGroupsForUser", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_list_groups_for_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminListUserAuthEvents", "deployments": [], "key": "cognito-idp/op-contract-adminListUserAuthEvents", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_list_user_auth_events.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminRemoveUserFromGroup", "deployments": [], "key": "cognito-idp/op-contract-adminRemoveUserFromGroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_remove_user_from_group.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminResetUserPassword", "deployments": [], "key": "cognito-idp/op-contract-adminResetUserPassword", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminResetUserPassword", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_reset_user_password.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminSetUserPassword", "deployments": [], "key": "cognito-idp/op-contract-adminSetUserPassword", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_op_contract_admin_set_user_password.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminSetUserSettings", "deployments": [], "key": "cognito-idp/op-contract-adminSetUserSettings", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminSetUserSettings", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/cognito-idp/check_op_contract_admin_set_user_settings.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminUpdateAuthEventFeedback", "deployments": [], "key": "cognito-idp/op-contract-adminUpdateAuthEventFeedback", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateAuthEventFeedback", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_op_contract_admin_update_auth_event_feedback.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminUpdateUserAttributes", "deployments": [], "key": "cognito-idp/op-contract-adminUpdateUserAttributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_op_contract_admin_update_user_attributes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-adminUserGlobalSignOut", "deployments": [], "key": "cognito-idp/op-contract-adminUserGlobalSignOut", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUserGlobalSignOut", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_admin_user_global_sign_out.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-changePassword", "deployments": [], "key": "cognito-idp/op-contract-changePassword", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ChangePassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_op_contract_change_password.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-confirmForgotPassword", "deployments": [], "key": "cognito-idp/op-contract-confirmForgotPassword", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmForgotPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgotPassword"], "path": "behavioral/cognito-idp/check_op_contract_confirm_forgot_password.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-confirmSignUp", "deployments": [], "key": "cognito-idp/op-contract-confirmSignUp", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_op_contract_confirm_sign_up.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-create-group-duplicate-rejected", "deployments": [], "key": "cognito-idp/op-contract-create-group-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_op_contract_create_group_duplicate_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-createUserPool", "deployments": [], "key": "cognito-idp/op-contract-createUserPool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:ListUserPools"], "path": "behavioral/cognito-idp/check_op_contract_create_user_pool.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-createUserPoolClient", "deployments": [], "key": "cognito-idp/op-contract-createUserPoolClient", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteResourceServer", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListUserPoolClients"], "path": "behavioral/cognito-idp/check_op_contract_create_user_pool_client.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-createUserPoolDomain", "deployments": [], "key": "cognito-idp/op-contract-createUserPoolDomain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain"], "path": "behavioral/cognito-idp/check_op_contract_create_user_pool_domain.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-deleteResourceServer", "deployments": [], "key": "cognito-idp/op-contract-deleteResourceServer", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:DeleteResourceServer", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeResourceServer", "cognito-idp:ListResourceServers"], "path": "behavioral/cognito-idp/check_op_contract_delete_resource_server.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-delete-user-pool", "deployments": [], "key": "cognito-idp/op-contract-delete-user-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_op_contract_delete_user_pool.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-delete-user-pool-client", "deployments": [], "key": "cognito-idp/op-contract-delete-user-pool-client", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cognito-idp/check_op_contract_delete_user_pool_client.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-delete-user-pool-domain", "deployments": [], "key": "cognito-idp/op-contract-delete-user-pool-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain"], "path": "behavioral/cognito-idp/check_op_contract_delete_user_pool_domain.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-describe-resource-server", "deployments": [], "key": "cognito-idp/op-contract-describe-resource-server", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeResourceServer"], "path": "behavioral/cognito-idp/check_op_contract_describe_resource_server.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-describe-risk-configuration", "deployments": [], "key": "cognito-idp/op-contract-describe-risk-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeRiskConfiguration", "cognito-idp:SetRiskConfiguration"], "path": "behavioral/cognito-idp/check_op_contract_describe_risk_configuration.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-describe-user-pool", "deployments": [], "key": "cognito-idp/op-contract-describe-user-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_op_contract_describe_user_pool.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-describe-user-pool-client", "deployments": [], "key": "cognito-idp/op-contract-describe-user-pool-client", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cognito-idp/check_op_contract_describe_user_pool_client.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-describe-user-pool-domain", "deployments": [], "key": "cognito-idp/op-contract-describe-user-pool-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain"], "path": "behavioral/cognito-idp/check_op_contract_describe_user_pool_domain.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-forgot-password", "deployments": [], "key": "cognito-idp/op-contract-forgot-password", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgotPassword"], "path": "behavioral/cognito-idp/check_op_contract_forgot_password.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-get-client-token", "deployments": [], "key": "cognito-idp/op-contract-get-client-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetClientToken"], "path": "behavioral/cognito-idp/check_op_contract_get_client_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-get-group", "deployments": [], "key": "cognito-idp/op-contract-get-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup"], "path": "behavioral/cognito-idp/check_op_contract_get_group.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-get-log-delivery-configuration", "deployments": [], "key": "cognito-idp/op-contract-get-log-delivery-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_op_contract_get_log_delivery_configuration.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-get-provisioned-limit", "deployments": [], "key": "cognito-idp/op-contract-get-provisioned-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit"], "path": "behavioral/cognito-idp/check_op_contract_get_provisioned_limit.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-get-signing-certificate", "deployments": [], "key": "cognito-idp/op-contract-get-signing-certificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetSigningCertificate"], "path": "behavioral/cognito-idp/check_op_contract_get_signing_certificate.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-get-tokens-from-refresh-token", "deployments": [], "key": "cognito-idp/op-contract-get-tokens-from-refresh-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_op_contract_get_tokens_from_refresh_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-get-user", "deployments": [], "key": "cognito-idp/op-contract-get-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_op_contract_get_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-get-user-pool-mfa-config", "deployments": [], "key": "cognito-idp/op-contract-get-user-pool-mfa-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_op_contract_get_user_pool_mfa_config.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-global-sign-out", "deployments": [], "key": "cognito-idp/op-contract-global-sign-out", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:GlobalSignOut", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_op_contract_global_sign_out.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-initiate-auth", "deployments": [], "key": "cognito-idp/op-contract-initiate-auth", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_op_contract_initiate_auth.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-list-groups", "deployments": [], "key": "cognito-idp/op-contract-list-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListGroups"], "path": "behavioral/cognito-idp/check_op_contract_list_groups.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-list-resource-servers", "deployments": [], "key": "cognito-idp/op-contract-list-resource-servers", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListResourceServers"], "path": "behavioral/cognito-idp/check_op_contract_list_resource_servers.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-list-tags-for-resource", "deployments": [], "key": "cognito-idp/op-contract-list-tags-for-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListTagsForResource", "cognito-idp:TagResource"], "path": "behavioral/cognito-idp/check_op_contract_list_tags_for_resource.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-list-user-pool-clients", "deployments": [], "key": "cognito-idp/op-contract-list-user-pool-clients", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPoolClients"], "path": "behavioral/cognito-idp/check_op_contract_list_user_pool_clients.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-list-user-pools", "deployments": [], "key": "cognito-idp/op-contract-list-user-pools", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUserPools"], "path": "behavioral/cognito-idp/check_op_contract_list_user_pools.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-list-users", "deployments": [], "key": "cognito-idp/op-contract-list-users", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_op_contract_list_users.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-list-users-in-group", "deployments": [], "key": "cognito-idp/op-contract-list-users-in-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsersInGroup"], "path": "behavioral/cognito-idp/check_op_contract_list_users_in_group.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-list-users-malformed-filter-rejected", "deployments": [], "key": "cognito-idp/op-contract-list-users-malformed-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_op_contract_list_users_malformed_filter_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-resend-confirmation-code", "deployments": [], "key": "cognito-idp/op-contract-resend-confirmation-code", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ResendConfirmationCode", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_op_contract_resend_confirmation_code.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-respond-to-auth-challenge", "deployments": [], "key": "cognito-idp/op-contract-respond-to-auth-challenge", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge"], "path": "behavioral/cognito-idp/check_op_contract_respond_to_auth_challenge.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-respond-to-auth-challenge-session-reuse-rejected", "deployments": [], "key": "cognito-idp/op-contract-respond-to-auth-challenge-session-reuse-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge"], "path": "behavioral/cognito-idp/check_op_contract_respond_to_auth_challenge_session_reuse_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-revoke-token", "deployments": [], "key": "cognito-idp/op-contract-revoke-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:RevokeToken"], "path": "behavioral/cognito-idp/check_op_contract_revoke_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-set-log-delivery-configuration", "deployments": [], "key": "cognito-idp/op-contract-set-log-delivery-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_op_contract_set_log_delivery_configuration.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-set-risk-configuration", "deployments": [], "key": "cognito-idp/op-contract-set-risk-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeRiskConfiguration", "cognito-idp:SetRiskConfiguration"], "path": "behavioral/cognito-idp/check_op_contract_set_risk_configuration.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-set-user-pool-mfa-config", "deployments": [], "key": "cognito-idp/op-contract-set-user-pool-mfa-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_op_contract_set_user_pool_mfa_config.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-set-user-settings", "deployments": [], "key": "cognito-idp/op-contract-set-user-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:SetUserSettings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/cognito-idp/check_op_contract_set_user_settings.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-sign-up", "deployments": [], "key": "cognito-idp/op-contract-sign-up", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_op_contract_sign_up.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-tag-resource", "deployments": [], "key": "cognito-idp/op-contract-tag-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListTagsForResource", "cognito-idp:TagResource"], "path": "behavioral/cognito-idp/check_op_contract_tag_resource.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-tag-resource-bogus-arn-rejected", "deployments": [], "key": "cognito-idp/op-contract-tag-resource-bogus-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListTagsForResource", "cognito-idp:TagResource"], "path": "behavioral/cognito-idp/check_op_contract_tag_resource_bogus_arn_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-untag-resource", "deployments": [], "key": "cognito-idp/op-contract-untag-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:ListTagsForResource", "cognito-idp:TagResource", "cognito-idp:UntagResource"], "path": "behavioral/cognito-idp/check_op_contract_untag_resource.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-update-auth-event-feedback", "deployments": [], "key": "cognito-idp/op-contract-update-auth-event-feedback", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:UpdateAuthEventFeedback"], "path": "behavioral/cognito-idp/check_op_contract_update_auth_event_feedback.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-update-group", "deployments": [], "key": "cognito-idp/op-contract-update-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:GetGroup", "cognito-idp:UpdateGroup"], "path": "behavioral/cognito-idp/check_op_contract_update_group.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-update-group-bogus-name-rejected", "deployments": [], "key": "cognito-idp/op-contract-update-group-bogus-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:UpdateGroup"], "path": "behavioral/cognito-idp/check_op_contract_update_group_bogus_name_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-update-provisioned-limit", "deployments": [], "key": "cognito-idp/op-contract-update-provisioned-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_op_contract_update_provisioned_limit.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-update-resource-server", "deployments": [], "key": "cognito-idp/op-contract-update-resource-server", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeResourceServer", "cognito-idp:UpdateResourceServer"], "path": "behavioral/cognito-idp/check_op_contract_update_resource_server.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-update-user-pool", "deployments": [], "key": "cognito-idp/op-contract-update-user-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_op_contract_update_user_pool.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-update-user-pool-client", "deployments": [], "key": "cognito-idp/op-contract-update-user-pool-client", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_op_contract_update_user_pool_client.py", "service": "cognito-idp"} {"check_id": "cognito-idp.op-contract-update-user-pool-domain", "deployments": [], "key": "cognito-idp/op-contract-update-user-pool-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:UpdateUserPoolDomain"], "path": "behavioral/cognito-idp/check_op_contract_update_user_pool_domain.py", "service": "cognito-idp"} {"check_id": "cognito-idp.openid-configuration-for-an-unknown-pool-under-the-issuer-rejected", "deployments": [], "key": "cognito-idp/openid-configuration-for-an-unknown-pool-under-the-issuer-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_openid_configuration_for_an_unknown_pool_under_the_issuer_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.openid-configuration-of-a-pool-without-a-domain-names-the-token-issuer-and-endpoints-under-it", "deployments": [], "key": "cognito-idp/openid-configuration-of-a-pool-without-a-domain-names-the-token-issuer-and-endpoints-under-it", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool"], "path": "behavioral/cognito-idp/check_openid_configuration_of_a_pool_without_a_domain_names_the_token_issuer_and_endpoints_under_it.py", "service": "cognito-idp"} {"check_id": "cognito-idp.openid-discovery-jwks-uri-serves-unique-unpadded-rs256-signing-keys", "deployments": [], "key": "cognito-idp/openid-discovery-jwks-uri-serves-unique-unpadded-rs256-signing-keys", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_openid_discovery_jwks_uri_serves_unique_unpadded_rs256_signing_keys.py", "service": "cognito-idp"} {"check_id": "cognito-idp.operation-not-enabled-signing-cert", "deployments": [], "key": "cognito-idp/operation-not-enabled-signing-cert", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:GetSigningCertificate", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:PutKeyPolicy", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/cognito-idp/check_operation_not_enabled_signing_cert.py", "service": "cognito-idp"} {"check_id": "cognito-idp.prevent-user-existence-errors-masks-unknown-user", "deployments": [], "key": "cognito-idp/prevent-user-existence-errors-masks-unknown-user", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_prevent_user_existence_errors_masks_unknown_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.provider-linking-alias", "deployments": [], "key": "cognito-idp/provider-linking-alias", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDisableProviderForUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminLinkProviderForUser", "cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool"], "path": "behavioral/cognito-idp/check_provider_linking_alias.py", "service": "cognito-idp"} {"check_id": "cognito-idp.provisioned-limit-exceeds-quota-rejected", "deployments": [], "key": "cognito-idp/provisioned-limit-exceeds-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_provisioned_limit_exceeds_quota_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.provisioned-limit-invalid-category-rejected", "deployments": [], "key": "cognito-idp/provisioned-limit-invalid-category-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit"], "path": "behavioral/cognito-idp/check_provisioned_limit_invalid_category_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.provisioned-limit-large-numeric-value-precision-preserved", "deployments": [], "key": "cognito-idp/provisioned-limit-large-numeric-value-precision-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_provisioned_limit_large_numeric_value_precision_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.provisioned-limit-numeric-precision-preserved", "deployments": [], "key": "cognito-idp/provisioned-limit-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_provisioned_limit_numeric_precision_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.provisioned-limit-numeric-value-precision-round-trip", "deployments": [], "key": "cognito-idp/provisioned-limit-numeric-value-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_provisioned_limit_numeric_value_precision_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.provisioned-limit-update-concurrent-modification-conflict", "deployments": [], "key": "cognito-idp/provisioned-limit-update-concurrent-modification-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_provisioned_limit_update_concurrent_modification_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.provisioned-limit-update-reflected", "deployments": [], "key": "cognito-idp/provisioned-limit-update-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_provisioned_limit_update_reflected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.refresh-token-auth-does-not-reissue-refresh-token", "deployments": [], "key": "cognito-idp/refresh-token-auth-does-not-reissue-refresh-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_refresh_token_auth_does_not_reissue_refresh_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.refresh-token-auth-for-a-disabled-user-rejected", "deployments": [], "key": "cognito-idp/refresh-token-auth-for-a-disabled-user-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_refresh_token_auth_for_a_disabled_user_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.refresh-token-auth-under-another-client-rejected", "deployments": [], "key": "cognito-idp/refresh-token-auth-under-another-client-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_refresh_token_auth_under_another_client_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.refresh-token-expires-after-validity-period", "deployments": [], "key": "cognito-idp/refresh-token-expires-after-validity-period", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_refresh_token_expires_after_validity_period.py", "service": "cognito-idp"} {"check_id": "cognito-idp.refresh-token-flow-and-revoke", "deployments": [], "key": "cognito-idp/refresh-token-flow-and-revoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:GetUser", "cognito-idp:RevokeToken"], "path": "behavioral/cognito-idp/check_refresh_token_flow_and_revoke.py", "service": "cognito-idp"} {"check_id": "cognito-idp.refresh-token-ttl-and-revocation-window", "deployments": [], "key": "cognito-idp/refresh-token-ttl-and-revocation-window", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:InitiateAuth", "cognito-idp:RevokeToken"], "path": "behavioral/cognito-idp/check_refresh_token_ttl_and_revocation_window.py", "service": "cognito-idp"} {"check_id": "cognito-idp.refreshed-id-token-verifies-under-the-same-jwks-and-keeps-the-session-claims", "deployments": [], "key": "cognito-idp/refreshed-id-token-verifies-under-the-same-jwks-and-keeps-the-session-claims", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_refreshed_id_token_verifies_under_the_same_jwks_and_keeps_the_session_claims.py", "service": "cognito-idp"} {"check_id": "cognito-idp.remembered-device-ttl-affects-mfa", "deployments": [], "key": "cognito-idp/remembered-device-ttl-affects-mfa", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetDevice", "cognito-idp:ListDevices", "cognito-idp:UpdateDeviceStatus"], "path": "behavioral/cognito-idp/check_remembered_device_ttl_affects_mfa.py", "service": "cognito-idp"} {"check_id": "cognito-idp.resend-confirmation-code-after-confirmation-fails", "deployments": [], "key": "cognito-idp/resend-confirmation-code-after-confirmation-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ResendConfirmationCode", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_resend_confirmation_code_after_confirmation_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.resend-confirmation-code-and-code-mismatch", "deployments": [], "key": "cognito-idp/resend-confirmation-code-and-code-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ResendConfirmationCode", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_resend_confirmation_code_and_code_mismatch.py", "service": "cognito-idp"} {"check_id": "cognito-idp.resend-confirmation-code-confirmed-user-rejected", "deployments": [], "key": "cognito-idp/resend-confirmation-code-confirmed-user-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ResendConfirmationCode", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_resend_confirmation_code_confirmed_user_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.resource-server-lifecycle", "deployments": [], "key": "cognito-idp/resource-server-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:DeleteResourceServer", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeResourceServer"], "path": "behavioral/cognito-idp/check_resource_server_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.resource-server-scope-update-does-not-cascade-to-client", "deployments": [], "key": "cognito-idp/resource-server-scope-update-does-not-cascade-to-client", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateResourceServer", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteResourceServer", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeResourceServer", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateResourceServer"], "path": "behavioral/cognito-idp/check_resource_server_scope_update_does_not_cascade_to_client.py", "service": "cognito-idp"} {"check_id": "cognito-idp.revoke-token-access-token-type-rejected", "deployments": [], "key": "cognito-idp/revoke-token-access-token-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:RevokeToken"], "path": "behavioral/cognito-idp/check_revoke_token_access_token_type_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.revoke-token-invalid-token-fails", "deployments": [], "key": "cognito-idp/revoke-token-invalid-token-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:RevokeToken"], "path": "behavioral/cognito-idp/check_revoke_token_invalid_token_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.revoke-token-kills-only-the-origin-jti-family-of-that-refresh-token", "deployments": [], "key": "cognito-idp/revoke-token-kills-only-the-origin-jti-family-of-that-refresh-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:RevokeToken"], "path": "behavioral/cognito-idp/check_revoke_token_kills_only_the_origin_jti_family_of_that_refresh_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.revoked-refresh-token-cannot-refresh", "deployments": [], "key": "cognito-idp/revoked-refresh-token-cannot-refresh", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetTokensFromRefreshToken", "cognito-idp:InitiateAuth", "cognito-idp:RevokeToken"], "path": "behavioral/cognito-idp/check_revoked_refresh_token_cannot_refresh.py", "service": "cognito-idp"} {"check_id": "cognito-idp.risk-configuration-server-enforced", "deployments": [], "key": "cognito-idp/risk-configuration-server-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeRiskConfiguration", "cognito-idp:SetRiskConfiguration"], "path": "behavioral/cognito-idp/check_risk_configuration_server_enforced.py", "service": "cognito-idp"} {"check_id": "cognito-idp.risk-configuration-set-and-describe-without-addon", "deployments": [], "key": "cognito-idp/risk-configuration-set-and-describe-without-addon", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeRiskConfiguration", "cognito-idp:SetRiskConfiguration"], "path": "behavioral/cognito-idp/check_risk_configuration_set_and_describe_without_addon.py", "service": "cognito-idp"} {"check_id": "cognito-idp.secret-hash-required-for-confidential-client-auth", "deployments": [], "key": "cognito-idp/secret-hash-required-for-confidential-client-auth", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_secret_hash_required_for_confidential_client_auth.py", "service": "cognito-idp"} {"check_id": "cognito-idp.secret-hash-required-for-refresh-token-auth", "deployments": [], "key": "cognito-idp/secret-hash-required-for-refresh-token-auth", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_secret_hash_required_for_refresh_token_auth.py", "service": "cognito-idp"} {"check_id": "cognito-idp.self-device-lifecycle", "deployments": [], "key": "cognito-idp/self-device-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ForgetDevice", "cognito-idp:GetDevice", "cognito-idp:InitiateAuth", "cognito-idp:ListDevices", "cognito-idp:UpdateDeviceStatus"], "path": "behavioral/cognito-idp/check_self_device_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.self-service-delete-user-removes-attributes", "deployments": [], "key": "cognito-idp/self-service-delete-user-removes-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUser", "cognito-idp:DeleteUserAttributes", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_self_service_delete_user_removes_attributes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.self-service-device-lifecycle", "deployments": [], "key": "cognito-idp/self-service-device-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgetDevice", "cognito-idp:GetDevice", "cognito-idp:ListDevices", "cognito-idp:UpdateDeviceStatus"], "path": "behavioral/cognito-idp/check_self_service_device_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.self-service-list-devices-reflects-confirmed-device", "deployments": [], "key": "cognito-idp/self-service-list-devices-reflects-confirmed-device", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:ConfirmDevice", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:ListDevices"], "path": "behavioral/cognito-idp/check_self_service_list_devices_reflects_confirmed_device.py", "service": "cognito-idp"} {"check_id": "cognito-idp.self-service-mfa-preference-enable-and-disable", "deployments": [], "key": "cognito-idp/self-service-mfa-preference-enable-and-disable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_self_service_mfa_preference_enable_and_disable.py", "service": "cognito-idp"} {"check_id": "cognito-idp.self-service-then-admin-mfa-preference-consistency", "deployments": [], "key": "cognito-idp/self-service-then-admin-mfa-preference-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_self_service_then_admin_mfa_preference_consistency.py", "service": "cognito-idp"} {"check_id": "cognito-idp.self-service-user-deletion", "deployments": [], "key": "cognito-idp/self-service-user-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUser", "cognito-idp:DeleteUserAttributes", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth"], "path": "behavioral/cognito-idp/check_self_service_user_deletion.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-get-log-delivery-configuration", "deployments": [], "key": "cognito-idp/set-get-log-delivery-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_set_get_log_delivery_configuration.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-get-mfa-config", "deployments": [], "key": "cognito-idp/set-get-mfa-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_set_get_mfa_config.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-get-risk-configuration", "deployments": [], "key": "cognito-idp/set-get-risk-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeRiskConfiguration", "cognito-idp:SetRiskConfiguration"], "path": "behavioral/cognito-idp/check_set_get_risk_configuration.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-get-ui-customization", "deployments": [], "key": "cognito-idp/set-get-ui-customization", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_set_get_ui_customization.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-log-delivery-configuration-rejected-requests-leave-configuration-unchanged", "deployments": [], "key": "cognito-idp/set-log-delivery-configuration-rejected-requests-leave-configuration-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_set_log_delivery_configuration_rejected_requests_leave_configuration_unchanged.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-software-token-mfa-preference-unregistered-rejected", "deployments": [], "key": "cognito-idp/set-software-token-mfa-preference-unregistered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_set_software_token_mfa_preference_unregistered_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-ui-customization-concurrent-modification-conflict", "deployments": [], "key": "cognito-idp/set-ui-customization-concurrent-modification-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_set_ui_customization_concurrent_modification_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-ui-customization-oversized-css-rejected", "deployments": [], "key": "cognito-idp/set-ui-customization-oversized-css-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_set_ui_customization_oversized_css_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-user-mfa-preference-conflicting-preferred-method-rejected", "deployments": [], "key": "cognito-idp/set-user-mfa-preference-conflicting-preferred-method-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_set_user_mfa_preference_conflicting_preferred_method_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-user-mfa-preference-disable-clears-preferred-flag", "deployments": [], "key": "cognito-idp/set-user-mfa-preference-disable-clears-preferred-flag", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_set_user_mfa_preference_disable_clears_preferred_flag.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-user-mfa-preference-forbidden-without-access-token", "deployments": [], "key": "cognito-idp/set-user-mfa-preference-forbidden-without-access-token", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:SetUserMFAPreference"], "path": "behavioral/cognito-idp/check_set_user_mfa_preference_forbidden_without_access_token.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-user-mfa-preference-idempotent-reapply", "deployments": [], "key": "cognito-idp/set-user-mfa-preference-idempotent-reapply", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_set_user_mfa_preference_idempotent_reapply.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-user-mfa-preference-sms-without-verified-phone-rejected", "deployments": [], "key": "cognito-idp/set-user-mfa-preference-sms-without-verified-phone-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:SetUserMFAPreference"], "path": "behavioral/cognito-idp/check_set_user_mfa_preference_sms_without_verified_phone_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-user-mfa-preference-unverified-sms-rejected", "deployments": [], "key": "cognito-idp/set-user-mfa-preference-unverified-sms-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:SetUserMFAPreference"], "path": "behavioral/cognito-idp/check_set_user_mfa_preference_unverified_sms_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.set-user-pool-mfa-config-concurrent-modification-conflict", "deployments": [], "key": "cognito-idp/set-user-pool-mfa-config-concurrent-modification-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_set_user_pool_mfa_config_concurrent_modification_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.signing-certificate-served", "deployments": [], "key": "cognito-idp/signing-certificate-served", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetSigningCertificate"], "path": "behavioral/cognito-idp/check_signing_certificate_served.py", "service": "cognito-idp"} {"check_id": "cognito-idp.signup-confirmation-code-expires-after-ttl", "deployments": [], "key": "cognito-idp/signup-confirmation-code-expires-after-ttl", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_signup_confirmation_code_expires_after_ttl.py", "service": "cognito-idp"} {"check_id": "cognito-idp.signup-unconfirmed-then-confirm", "deployments": [], "key": "cognito-idp/signup-unconfirmed-then-confirm", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_signup_unconfirmed_then_confirm.py", "service": "cognito-idp"} {"check_id": "cognito-idp.signup-usersub-consistent-with-admin-get-user", "deployments": [], "key": "cognito-idp/signup-usersub-consistent-with-admin-get-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_signup_usersub_consistent_with_admin_get_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.signup-weak-password-fails", "deployments": [], "key": "cognito-idp/signup-weak-password-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_signup_weak_password_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.software-token-code-window", "deployments": [], "key": "cognito-idp/software-token-code-window", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_software_token_code_window.py", "service": "cognito-idp"} {"check_id": "cognito-idp.software-token-mfa-enrollment-lifecycle", "deployments": [], "key": "cognito-idp/software-token-mfa-enrollment-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteSoftwareToken", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_software_token_mfa_enrollment_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.software-token-mfa-lifecycle", "deployments": [], "key": "cognito-idp/software-token-mfa-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteSoftwareToken", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:UpdateUserPool", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_software_token_mfa_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.software-token-mfa-sign-in-withholds-tokens-until-the-real-totp-is-supplied", "deployments": [], "key": "cognito-idp/software-token-mfa-sign-in-withholds-tokens-until-the-real-totp-is-supplied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserMFAPreference", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_software_token_mfa_sign_in_withholds_tokens_until_the_real_totp_is_supplied.py", "service": "cognito-idp"} {"check_id": "cognito-idp.start-webauthn-registration-invalid-access-token-not-authorized", "deployments": [], "key": "cognito-idp/start-webauthn-registration-invalid-access-token-not-authorized", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_start_webauthn_registration_invalid_access_token_not_authorized.py", "service": "cognito-idp"} {"check_id": "cognito-idp.start-webauthn-registration-invalid-token-rejected", "deployments": [], "key": "cognito-idp/start-webauthn-registration-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_start_webauthn_registration_invalid_token_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.start-webauthn-registration-unconfirmed-user-rejected", "deployments": [], "key": "cognito-idp/start-webauthn-registration-unconfirmed-user-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_start_webauthn_registration_unconfirmed_user_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.start-webauthn-registration-without-access-token-denied", "deployments": [], "key": "cognito-idp/start-webauthn-registration-without-access-token-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_start_webauthn_registration_without_access_token_denied.py", "service": "cognito-idp"} {"check_id": "cognito-idp.temporary-password-forced-change-window", "deployments": [], "key": "cognito-idp/temporary-password-forced-change-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient"], "path": "behavioral/cognito-idp/check_temporary_password_forced_change_window.py", "service": "cognito-idp"} {"check_id": "cognito-idp.terms-by-client-lifecycle-create-update-describe", "deployments": [], "key": "cognito-idp/terms-by-client-lifecycle-create-update-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient", "cognito-idp:UpdateTerms"], "path": "behavioral/cognito-idp/check_terms_by_client_lifecycle_create_update_describe.py", "service": "cognito-idp"} {"check_id": "cognito-idp.terms-document-content-base64-round-trip", "deployments": [], "key": "cognito-idp/terms-document-content-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_terms_document_content_base64_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.terms-document-content-round-trip", "deployments": [], "key": "cognito-idp/terms-document-content-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_terms_document_content_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.terms-document-url-unicode-name-preserved", "deployments": [], "key": "cognito-idp/terms-document-url-unicode-name-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeTermsByClient"], "path": "behavioral/cognito-idp/check_terms_document_url_unicode_name_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.terms-duplicate-name-rejected", "deployments": [], "key": "cognito-idp/terms-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeTerms"], "path": "behavioral/cognito-idp/check_terms_duplicate_name_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.terms-lifecycle", "deployments": [], "key": "cognito-idp/terms-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeTerms", "cognito-idp:DescribeTermsByClient", "cognito-idp:ListTerms", "cognito-idp:UpdateTerms"], "path": "behavioral/cognito-idp/check_terms_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.token-validity-out-of-range-fails", "deployments": [], "key": "cognito-idp/token-validity-out-of-range-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_token_validity_out_of_range_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.token-validity-units-affect-token-expiry", "deployments": [], "key": "cognito-idp/token-validity-units-affect-token-expiry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient"], "path": "behavioral/cognito-idp/check_token_validity_units_affect_token_expiry.py", "service": "cognito-idp"} {"check_id": "cognito-idp.ui-customization-css-unicode-round-trip", "deployments": [], "key": "cognito-idp/ui-customization-css-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_ui_customization_css_unicode_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.ui-customization-image-blob-byte-identical-round-trip", "deployments": [], "key": "cognito-idp/ui-customization-image-blob-byte-identical-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_ui_customization_image_blob_byte_identical_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.ui-customization-image-blob-preserved", "deployments": [], "key": "cognito-idp/ui-customization-image-blob-preserved", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_ui_customization_image_blob_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.ui-customization-lifecycle", "deployments": [], "key": "cognito-idp/ui-customization-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_ui_customization_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.ui-customization-roundtrip", "deployments": [], "key": "cognito-idp/ui-customization-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_ui_customization_roundtrip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.ui-customization-unicode-css-round-trip", "deployments": [], "key": "cognito-idp/ui-customization-unicode-css-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUICustomization", "cognito-idp:SetUICustomization"], "path": "behavioral/cognito-idp/check_ui_customization_unicode_css_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.unconfirmed-user-auth-error-class-precision", "deployments": [], "key": "cognito-idp/unconfirmed-user-auth-error-class-precision", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_unconfirmed_user_auth_error_class_precision.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-auth-event-feedback-self", "deployments": [], "key": "cognito-idp/update-auth-event-feedback-self", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListUserAuthEvents", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateAuthEventFeedback", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:UpdateAuthEventFeedback"], "path": "behavioral/cognito-idp/check_update_auth_event_feedback_self.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-get-provisioned-limit", "deployments": [], "key": "cognito-idp/update-get-provisioned-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_update_get_provisioned_limit.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-group-concurrent-precedence-change-conflict", "deployments": [], "key": "cognito-idp/update-group-concurrent-precedence-change-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:UpdateGroup"], "path": "behavioral/cognito-idp/check_update_group_concurrent_precedence_change_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-group-reflects-changes", "deployments": [], "key": "cognito-idp/update-group-reflects-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:GetGroup", "cognito-idp:UpdateGroup"], "path": "behavioral/cognito-idp/check_update_group_reflects_changes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-identity-provider-concurrent-modification-conflict", "deployments": [], "key": "cognito-idp/update-identity-provider-concurrent-modification-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:UpdateIdentityProvider"], "path": "behavioral/cognito-idp/check_update_identity_provider_concurrent_modification_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-identity-provider-missing-required-oidc-detail-rejected", "deployments": [], "key": "cognito-idp/update-identity-provider-missing-required-oidc-detail-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:UpdateIdentityProvider"], "path": "behavioral/cognito-idp/check_update_identity_provider_missing_required_oidc_detail_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-identity-provider-preserves-omitted-fields", "deployments": [], "key": "cognito-idp/update-identity-provider-preserves-omitted-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateIdentityProvider", "cognito-idp:CreateUserPool", "cognito-idp:DeleteIdentityProvider", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeIdentityProvider", "cognito-idp:GetIdentityProviderByIdentifier", "cognito-idp:UpdateIdentityProvider"], "path": "behavioral/cognito-idp/check_update_identity_provider_preserves_omitted_fields.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-managed-login-branding-concurrent-modification-conflict", "deployments": [], "key": "cognito-idp/update-managed-login-branding-concurrent-modification-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateManagedLoginBranding", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteManagedLoginBranding", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeManagedLoginBranding", "cognito-idp:UpdateManagedLoginBranding"], "path": "behavioral/cognito-idp/check_update_managed_login_branding_concurrent_modification_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-provisioned-limit-concurrent-writes-conflict", "deployments": [], "key": "cognito-idp/update-provisioned-limit-concurrent-writes-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_update_provisioned_limit_concurrent_writes_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-provisioned-limit-exceeds-quota-rejected", "deployments": [], "key": "cognito-idp/update-provisioned-limit-exceeds-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_update_provisioned_limit_exceeds_quota_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-provisioned-limit-excessive-value-rejected", "deployments": [], "key": "cognito-idp/update-provisioned-limit-excessive-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_update_provisioned_limit_excessive_value_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-provisioned-limit-out-of-range-value-rejected", "deployments": [], "key": "cognito-idp/update-provisioned-limit-out-of-range-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_update_provisioned_limit_out_of_range_value_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-provisioned-limit-over-quota-rejected", "deployments": [], "key": "cognito-idp/update-provisioned-limit-over-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:GetProvisionedLimit", "cognito-idp:UpdateProvisionedLimit"], "path": "behavioral/cognito-idp/check_update_provisioned_limit_over_quota_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-terms-concurrent-modification-conflict", "deployments": [], "key": "cognito-idp/update-terms-concurrent-modification-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeTerms", "cognito-idp:UpdateTerms"], "path": "behavioral/cognito-idp/check_update_terms_concurrent_modification_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-terms-rename-conflict-rejected", "deployments": [], "key": "cognito-idp/update-terms-rename-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateTerms", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteTerms", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeTerms", "cognito-idp:DescribeTermsByClient", "cognito-idp:UpdateTerms"], "path": "behavioral/cognito-idp/check_update_terms_rename_conflict_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-attributes-email-triggers-verification", "deployments": [], "key": "cognito-idp/update-user-attributes-email-triggers-verification", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:UpdateUserAttributes"], "path": "behavioral/cognito-idp/check_update_user_attributes_email_triggers_verification.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-attributes-phone-number-applies-immediately-unverified", "deployments": [], "key": "cognito-idp/update-user-attributes-phone-number-applies-immediately-unverified", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserAttributes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/cognito-idp/check_update_user_attributes_phone_number_applies_immediately_unverified.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-attributes-verification-code-mismatch-fails", "deployments": [], "key": "cognito-idp/update-user-attributes-verification-code-mismatch-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:UpdateUserAttributes", "cognito-idp:VerifyUserAttribute"], "path": "behavioral/cognito-idp/check_update_user_attributes_verification_code_mismatch_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-client-callback-urls-replaced", "deployments": [], "key": "cognito-idp/update-user-pool-client-callback-urls-replaced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_update_user_pool_client_callback_urls_replaced.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-client-concurrent-modification-conflict", "deployments": [], "key": "cognito-idp/update-user-pool-client-concurrent-modification-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_update_user_pool_client_concurrent_modification_conflict.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-client-reflects-changes", "deployments": [], "key": "cognito-idp/update-user-pool-client-reflects-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPoolClient", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_update_user_pool_client_reflects_changes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-policy-persists", "deployments": [], "key": "cognito-idp/update-user-pool-policy-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_update_user_pool_policy_persists.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-reflects-changes", "deployments": [], "key": "cognito-idp/update-user-pool-reflects-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:UpdateUserPool"], "path": "behavioral/cognito-idp/check_update_user_pool_reflects_changes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-replica-concurrent-modification-race", "deployments": [], "key": "cognito-idp/update-user-pool-replica-concurrent-modification-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_update_user_pool_replica_concurrent_modification_race.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-replica-concurrent-updates-serialized", "deployments": [], "key": "cognito-idp/update-user-pool-replica-concurrent-updates-serialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_update_user_pool_replica_concurrent_updates_serialized.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-replica-immutable-field-change-rejected", "deployments": [], "key": "cognito-idp/update-user-pool-replica-immutable-field-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_update_user_pool_replica_immutable_field_change_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-replica-invalid-region-rejected", "deployments": [], "key": "cognito-idp/update-user-pool-replica-invalid-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_update_user_pool_replica_invalid_region_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-replica-reflects-changes", "deployments": [], "key": "cognito-idp/update-user-pool-replica-reflects-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_update_user_pool_replica_reflects_changes.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-replica-reflects-region-config-change", "deployments": [], "key": "cognito-idp/update-user-pool-replica-reflects-region-config-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_update_user_pool_replica_reflects_region_config_change.py", "service": "cognito-idp"} {"check_id": "cognito-idp.update-user-pool-replica-region-list-server-enforced", "deployments": [], "key": "cognito-idp/update-user-pool-replica-region-list-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_update_user_pool_replica_region_list_server_enforced.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-attribute-empty-string-vs-absent-distinguished-on-get-user", "deployments": [], "key": "cognito-idp/user-attribute-empty-string-vs-absent-distinguished-on-get-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_user_attribute_empty_string_vs_absent_distinguished_on_get_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-attribute-schema-and-value-lifecycle", "deployments": [], "key": "cognito-idp/user-attribute-schema-and-value-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddCustomAttributes", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDeleteUserAttributes", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminUpdateUserAttributes", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserAttributes", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser"], "path": "behavioral/cognito-idp/check_user_attribute_schema_and_value_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-attribute-verification-flow", "deployments": [], "key": "cognito-idp/user-attribute-verification-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:UpdateUserAttributes", "cognito-idp:VerifyUserAttribute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_user_attribute_verification_flow.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-import-job-lifecycle", "deployments": [], "key": "cognito-idp/user-import-job-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserImportJob", "cognito-idp:GetCSVHeader", "cognito-idp:ListUserImportJobs", "cognito-idp:StartUserImportJob", "cognito-idp:StopUserImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_user_import_job_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-import-job-sequential-state-progression", "deployments": [], "key": "cognito-idp/user-import-job-sequential-state-progression", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserImportJob", "cognito-idp:GetCSVHeader", "cognito-idp:StartUserImportJob", "cognito-idp:StopUserImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_user_import_job_sequential_state_progression.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-import-job-start-without-csv-rejected", "deployments": [], "key": "cognito-idp/user-import-job-start-without-csv-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserImportJob", "cognito-idp:GetCSVHeader", "cognito-idp:StartUserImportJob", "cognito-idp:StopUserImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_user_import_job_start_without_csv_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-import-job-start-wrong-state-rejected", "deployments": [], "key": "cognito-idp/user-import-job-start-wrong-state-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserImportJob", "cognito-idp:GetCSVHeader", "cognito-idp:StartUserImportJob", "cognito-idp:StopUserImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_user_import_job_start_wrong_state_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-import-job-state-transitions", "deployments": [], "key": "cognito-idp/user-import-job-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserImportJob", "cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserImportJob", "cognito-idp:GetCSVHeader", "cognito-idp:ListUserImportJobs", "cognito-idp:StartUserImportJob", "cognito-idp:StopUserImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp/check_user_import_job_state_transitions.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-password-sign-in-issues-tokens-that-resolve-the-user", "deployments": [], "key": "cognito-idp/user-password-sign-in-issues-tokens-that-resolve-the-user", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:ListUserPools"], "path": "behavioral/cognito-idp/check_user_password_sign_in_issues_tokens_that_resolve_the_user.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-pool-client-lifecycle-and-secret", "deployments": [], "key": "cognito-idp/user-pool-client-lifecycle-and-secret", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolClientSecret", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListUserPoolClientSecrets", "cognito-idp:ListUserPoolClients", "cognito-idp:UpdateUserPoolClient"], "path": "behavioral/cognito-idp/check_user_pool_client_lifecycle_and_secret.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-pool-client-secret-lifecycle", "deployments": [], "key": "cognito-idp/user-pool-client-secret-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AddUserPoolClientSecret", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolClientSecret", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListUserPoolClientSecrets"], "path": "behavioral/cognito-idp/check_user_pool_client_secret_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-pool-domain-lifecycle", "deployments": [], "key": "cognito-idp/user-pool-domain-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:UpdateUserPoolDomain"], "path": "behavioral/cognito-idp/check_user_pool_domain_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-pool-mfa-config-off-optional-on-transitions", "deployments": [], "key": "cognito-idp/user-pool-mfa-config-off-optional-on-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_user_pool_mfa_config_off_optional_on_transitions.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-pool-replica-lifecycle", "deployments": [], "key": "cognito-idp/user-pool-replica-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_user_pool_replica_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-pool-replica-update-lifecycle", "deployments": [], "key": "cognito-idp/user-pool-replica-update-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_user_pool_replica_update_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-pool-replica-update-propagates-to-describe", "deployments": [], "key": "cognito-idp/user-pool-replica-update-propagates-to-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolReplica", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolReplica", "cognito-idp:ListUserPoolReplicas", "cognito-idp:UpdateUserPoolReplica", "kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp/check_user_pool_replica_update_propagates_to_describe.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-settings-roundtrip", "deployments": [], "key": "cognito-idp/user-settings-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AdminSetUserSettings", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:SetUserSettings"], "path": "behavioral/cognito-idp/check_user_settings_roundtrip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.user-srp-auth-wrong-password-and-unconfirmed-user-rejected", "deployments": [], "key": "cognito-idp/user-srp-auth-wrong-password-and-unconfirmed-user-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_user_srp_auth_wrong_password_and_unconfirmed_user_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.username-attributes-email-signin-canonical-username", "deployments": [], "key": "cognito-idp/username-attributes-email-signin-canonical-username", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:InitiateAuth", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_username_attributes_email_signin_canonical_username.py", "service": "cognito-idp"} {"check_id": "cognito-idp.username-case-sensitivity-configuration-governs-lookup", "deployments": [], "key": "cognito-idp/username-case-sensitivity-configuration-governs-lookup", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:InitiateAuth", "cognito-idp:ListUsers"], "path": "behavioral/cognito-idp/check_username_case_sensitivity_configuration_governs_lookup.py", "service": "cognito-idp"} {"check_id": "cognito-idp.verify-software-token-without-associate-fails", "deployments": [], "key": "cognito-idp/verify-software-token-without-associate-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_verify_software_token_without_associate_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.verify-software-token-wrong-code", "deployments": [], "key": "cognito-idp/verify-software-token-wrong-code", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:AssociateSoftwareToken", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:SetUserMFAPreference", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:VerifySoftwareToken"], "path": "behavioral/cognito-idp/check_verify_software_token_wrong_code.py", "service": "cognito-idp"} {"check_id": "cognito-idp.verify-user-attribute-code-mismatch", "deployments": [], "key": "cognito-idp/verify-user-attribute-code-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:UpdateUserAttributes", "cognito-idp:VerifyUserAttribute"], "path": "behavioral/cognito-idp/check_verify_user_attribute_code_mismatch.py", "service": "cognito-idp"} {"check_id": "cognito-idp.verify-user-attribute-code-mismatch-fails", "deployments": [], "key": "cognito-idp/verify-user-attribute-code-mismatch-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUser", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:VerifyUserAttribute"], "path": "behavioral/cognito-idp/check_verify_user_attribute_code_mismatch_fails.py", "service": "cognito-idp"} {"check_id": "cognito-idp.verify-user-attribute-wrong-code-rejected", "deployments": [], "key": "cognito-idp/verify-user-attribute-wrong-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserAttributeVerificationCode", "cognito-idp:VerifyUserAttribute"], "path": "behavioral/cognito-idp/check_verify_user_attribute_wrong_code_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.weak-password-signup-rejected", "deployments": [], "key": "cognito-idp/weak-password-signup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp"], "path": "behavioral/cognito-idp/check_weak_password_signup_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-config-accepted-without-essentials-tier", "deployments": [], "key": "cognito-idp/webauthn-config-accepted-without-essentials-tier", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:SetUserPoolMfaConfig"], "path": "behavioral/cognito-idp/check_webauthn_config_accepted_without_essentials_tier.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-credential-friendly-name-round-trip", "deployments": [], "key": "cognito-idp/webauthn-credential-friendly-name-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_credential_friendly_name_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-credential-friendly-name-unicode-preserved", "deployments": [], "key": "cognito-idp/webauthn-credential-friendly-name-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_credential_friendly_name_unicode_preserved.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-credential-id-round-trip", "deployments": [], "key": "cognito-idp/webauthn-credential-id-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_credential_id_round_trip.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-credential-lifecycle", "deployments": [], "key": "cognito-idp/webauthn-credential-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:GetUserPoolMfaConfig", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_credential_lifecycle.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-credential-list-order-matches-creation-order", "deployments": [], "key": "cognito-idp/webauthn-credential-list-order-matches-creation-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:InitiateAuth", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_credential_list_order_matches_creation_order.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-registration-exceeds-credential-limit-rejected", "deployments": [], "key": "cognito-idp/webauthn-registration-exceeds-credential-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DeleteWebAuthnCredential", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_registration_exceeds_credential_limit_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-registration-incomplete-challenge-leaves-no-credential", "deployments": [], "key": "cognito-idp/webauthn-registration-incomplete-challenge-leaves-no-credential", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_registration_incomplete_challenge_leaves_no_credential.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-registration-stale-challenge-rejected", "deployments": [], "key": "cognito-idp/webauthn-registration-stale-challenge-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:ListWebAuthnCredentials", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_registration_stale_challenge_rejected.py", "service": "cognito-idp"} {"check_id": "cognito-idp.webauthn-registration-then-auth-factor-available", "deployments": [], "key": "cognito-idp/webauthn-registration-then-auth-factor-available", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CompleteWebAuthnRegistration", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:GetUserAuthFactors", "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:StartWebAuthnRegistration"], "path": "behavioral/cognito-idp/check_webauthn_registration_then_auth_factor_available.py", "service": "cognito-idp"} {"check_id": "cognito-idp__elbv2.alb-authenticate-cognito-redirects-an-unauthenticated-request-to-the-hosted-ui", "deployments": [], "key": "cognito-idp__elbv2/alb-authenticate-cognito-redirects-an-unauthenticated-request-to-the-hosted-ui", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DeleteUserPoolDomain", "cognito-idp:DescribeUserPoolDomain", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/cognito-idp__elbv2/check_alb_authenticate_cognito_redirects_an_unauthenticated_request_to_the_hosted_ui.py", "service": "cognito-idp__elbv2"} {"check_id": "cognito-idp__iam__kms__lambda__sqs__sts.deep-cognito-idp-1-real-code-forgot-password-policy-refusal-keeps-code-and-sessions", "deployments": [], "key": "cognito-idp__iam__kms__lambda__sqs__sts/deep-cognito-idp-1-real-code-forgot-password-policy-refusal-keeps-code-and-sessions", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:ConfirmForgotPassword", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__iam__kms__lambda__sqs__sts/check_deep_cognito_idp_1_real_code_forgot_password_policy_refusal_keeps_code_and_sessions.py", "service": "cognito-idp__iam__kms__lambda__sqs__sts"} {"check_id": "cognito-idp__identitystore__sso-admin__sso-oidc.create-token-with-iam-jwt-bearer-issues-identity-bound-token", "deployments": [], "key": "cognito-idp__identitystore__sso-admin__sso-oidc/create-token-with-iam-jwt-bearer-issues-identity-bound-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "identitystore:CreateUser", "identitystore:DeleteUser", "sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:CreateTrustedTokenIssuer", "sso-admin:DeleteApplication", "sso-admin:DeleteInstance", "sso-admin:DeleteTrustedTokenIssuer", "sso-admin:DescribeInstance", "sso-admin:ListInstances", "sso-admin:PutApplicationAssignmentConfiguration", "sso-admin:PutApplicationAuthenticationMethod", "sso-admin:PutApplicationGrant", "sso-oidc:CreateTokenWithIAM"], "path": "behavioral/cognito-idp__identitystore__sso-admin__sso-oidc/check_create_token_with_iam_jwt_bearer_issues_identity_bound_token.py", "service": "cognito-idp__identitystore__sso-admin__sso-oidc"} {"check_id": "cognito-idp__identitystore__sso-admin__sso-oidc.create-token-with-iam-jwt-bearer-unresolved-identity-rejected", "deployments": [], "key": "cognito-idp__identitystore__sso-admin__sso-oidc/create-token-with-iam-jwt-bearer-unresolved-identity-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "identitystore:CreateUser", "identitystore:DeleteUser", "sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:CreateTrustedTokenIssuer", "sso-admin:DeleteApplication", "sso-admin:DeleteInstance", "sso-admin:DeleteTrustedTokenIssuer", "sso-admin:DescribeInstance", "sso-admin:ListInstances", "sso-admin:PutApplicationAssignmentConfiguration", "sso-admin:PutApplicationAuthenticationMethod", "sso-admin:PutApplicationGrant", "sso-oidc:CreateTokenWithIAM"], "path": "behavioral/cognito-idp__identitystore__sso-admin__sso-oidc/check_create_token_with_iam_jwt_bearer_unresolved_identity_rejected.py", "service": "cognito-idp__identitystore__sso-admin__sso-oidc"} {"check_id": "cognito-idp__kms.custom-sms-sender-without-kms-key-rejected", "deployments": [], "key": "cognito-idp__kms/custom-sms-sender-without-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:ListUserPools", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/cognito-idp__kms/check_custom_sms_sender_without_kms_key_rejected.py", "service": "cognito-idp__kms"} {"check_id": "cognito-idp__kms__lambda__sqs.custom-sms-sender-delivers-temp-password-without-sns-configuration", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/custom-sms-sender-delivers-temp-password-without-sns-configuration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_custom_sms_sender_delivers_temp_password_without_sns_configuration.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.custom-sms-sender-wrong-temp-password-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/custom-sms-sender-wrong-temp-password-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_custom_sms_sender_wrong_temp_password_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-email-otp-session-expiry-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-email-otp-session-expiry-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SignUp", "cognito-idp:UpdateUserPoolClient", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_email_otp_session_expiry_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-email-otp-wrong-code-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-email-otp-wrong-code-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:SignUp", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_email_otp_wrong_code_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-forgot-password-code-reuse-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-forgot-password-code-reuse-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:ConfirmForgotPassword", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_forgot_password_code_reuse_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-forgot-password-confirm", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-forgot-password-confirm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmForgotPassword", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_forgot_password_confirm.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-forgot-password-wrong-code-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-forgot-password-wrong-code-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:ConfirmForgotPassword", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_forgot_password_wrong_code_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-reissued-reset-code-invalidates-first-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-reissued-reset-code-invalidates-first-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:ConfirmForgotPassword", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_reissued_reset_code_invalidates_first_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-resent-signup-code-invalidates-first-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-resent-signup-code-invalidates-first-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:ResendConfirmationCode", "cognito-idp:SignUp", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_resent_signup_code_invalidates_first_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-signup-confirm", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-signup-confirm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_signup_confirm.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-signup-wrong-code-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-signup-wrong-code-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_signup_wrong_code_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-verify-email-wrong-code-rejected", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-verify-email-wrong-code-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "cognito-idp:UpdateUserAttributes", "cognito-idp:VerifyUserAttribute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_verify_email_wrong_code_rejected.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__kms__lambda__sqs.deep-cognito-idp-1-real-code-verify-updated-email", "deployments": [], "key": "cognito-idp__kms__lambda__sqs/deep-cognito-idp-1-real-code-verify-updated-email", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:ConfirmSignUp", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:SignUp", "cognito-idp:UpdateUserAttributes", "cognito-idp:VerifyUserAttribute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/cognito-idp__kms__lambda__sqs/check_deep_cognito_idp_1_real_code_verify_updated_email.py", "service": "cognito-idp__kms__lambda__sqs"} {"check_id": "cognito-idp__lambda.custom-auth-challenge-triad-issues-tokens-only-after-the-secret-answer", "deployments": [], "key": "cognito-idp__lambda/custom-auth-challenge-triad-issues-tokens-only-after-the-secret-answer", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_custom_auth_challenge_triad_issues_tokens_only_after_the_secret_answer.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.custom-auth-wrong-answer-rejected-and-no-token-is-issued", "deployments": [], "key": "cognito-idp__lambda/custom-auth-wrong-answer-rejected-and-no-token-is-issued", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_custom_auth_wrong_answer_rejected_and_no_token_is_issued.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.pre-authentication-trigger-denial-rejected-and-the-allowed-user-still-signs-in", "deployments": [], "key": "cognito-idp__lambda/pre-authentication-trigger-denial-rejected-and-the-allowed-user-still-signs-in", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_pre_authentication_trigger_denial_rejected_and_the_allowed_user_still_signs_in.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.pre-sign-up-auto-confirm-applies-to-sign-up-and-is-ignored-for-admin-create-user", "deployments": [], "key": "cognito-idp__lambda/pre-sign-up-auto-confirm-applies-to-sign-up-and-is-ignored-for-admin-create-user", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:ListUsers", "cognito-idp:SignUp", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_pre_sign_up_auto_confirm_applies_to_sign_up_and_is_ignored_for_admin_create_user.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.pre-token-generation-v2-trigger-adds-suppresses-and-scopes-access-token-claims", "deployments": [], "key": "cognito-idp__lambda/pre-token-generation-v2-trigger-adds-suppresses-and-scopes-access-token-claims", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_pre_token_generation_v2_trigger_adds_suppresses_and_scopes_access_token_claims.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.user-migration-trigger-creates-the-user-and-returns-tokens-on-first-sign-in", "deployments": [], "key": "cognito-idp__lambda/user-migration-trigger-creates-the-user-and-returns-tokens-on-first-sign-in", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:ListUsers", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_user_migration_trigger_creates_the_user_and_returns_tokens_on_first_sign_in.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.user-migration-trigger-source-distinguishes-forgot-password-from-authentication", "deployments": [], "key": "cognito-idp__lambda/user-migration-trigger-source-distinguishes-forgot-password-from-authentication", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:ForgotPassword", "cognito-idp:GetUser", "cognito-idp:InitiateAuth", "cognito-idp:ListUsers", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_user_migration_trigger_source_distinguishes_forgot_password_from_authentication.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.xsvc-cognito-idp-3-postconfirmation-lambda-raises-confirmsignup-fails-but-user-stays-confirmed", "deployments": [], "key": "cognito-idp__lambda/xsvc-cognito-idp-3-postconfirmation-lambda-raises-confirmsignup-fails-but-user-stays-confirmed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminConfirmSignUp", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:SignUp", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_xsvc_cognito_idp_3_postconfirmation_lambda_raises_confirmsignup_fails_but_user_stays_confirmed.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.xsvc-cognito-idp-3-pretokengeneration-lambda-sleeps-past-five-seconds-signin-fails", "deployments": [], "key": "cognito-idp__lambda/xsvc-cognito-idp-3-pretokengeneration-lambda-sleeps-past-five-seconds-signin-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_xsvc_cognito_idp_3_pretokengeneration_lambda_sleeps_past_five_seconds_signin_fails.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__lambda.xsvc-cognito-idp-3-pretokengeneration-v2-triggersource-distinguishes-refresh-from-authentication", "deployments": [], "key": "cognito-idp__lambda/xsvc-cognito-idp-3-pretokengeneration-v2-triggersource-distinguishes-refresh-from-authentication", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:DescribeUserPool", "cognito-idp:InitiateAuth", "cognito-idp:UpdateUserPool", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/cognito-idp__lambda/check_xsvc_cognito_idp_3_pretokengeneration_v2_triggersource_distinguishes_refresh_from_authentication.py", "service": "cognito-idp__lambda"} {"check_id": "cognito-idp__logs.obs-cognito-idp-1-log-delivery-config", "deployments": [], "key": "cognito-idp__logs/obs-cognito-idp-1-log-delivery-config", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/cognito-idp__logs/check_obs_cognito_idp_1_log_delivery_config.py", "service": "cognito-idp__logs"} {"check_id": "cognito-idp__logs.obs-cognito-idp-1-security-audit-telemetry", "deployments": [], "key": "cognito-idp__logs/obs-cognito-idp-1-security-audit-telemetry", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DescribeUserPool", "cognito-idp:GetLogDeliveryConfiguration", "cognito-idp:InitiateAuth", "cognito-idp:SetLogDeliveryConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/cognito-idp__logs/check_obs_cognito_idp_1_security_audit_telemetry.py", "service": "cognito-idp__logs"} {"check_id": "cognito-idp__verifiedpermissions.xsvc-cognito-idp-2-avp-forged-group-claim-rejected", "deployments": [], "key": "cognito-idp__verifiedpermissions/xsvc-cognito-idp-2-avp-forged-group-claim-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "verifiedpermissions:CreateIdentitySource", "verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeleteIdentitySource", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorizedWithToken"], "path": "behavioral/cognito-idp__verifiedpermissions/check_xsvc_cognito_idp_2_avp_forged_group_claim_rejected.py", "service": "cognito-idp__verifiedpermissions"} {"check_id": "cognito-idp__verifiedpermissions.xsvc-cognito-idp-2-avp-group-permit-allows-member-denies-non-member", "deployments": [], "key": "cognito-idp__verifiedpermissions/xsvc-cognito-idp-2-avp-group-permit-allows-member-denies-non-member", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "verifiedpermissions:CreateIdentitySource", "verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeleteIdentitySource", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorizedWithToken"], "path": "behavioral/cognito-idp__verifiedpermissions/check_xsvc_cognito_idp_2_avp_group_permit_allows_member_denies_non_member.py", "service": "cognito-idp__verifiedpermissions"} {"check_id": "cognito-idp__verifiedpermissions.xsvc-cognito-idp-2-avp-group-removal-applies-only-to-reissued-token", "deployments": [], "key": "cognito-idp__verifiedpermissions/xsvc-cognito-idp-2-avp-group-removal-applies-only-to-reissued-token", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminListGroupsForUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "verifiedpermissions:CreateIdentitySource", "verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeleteIdentitySource", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorizedWithToken"], "path": "behavioral/cognito-idp__verifiedpermissions/check_xsvc_cognito_idp_2_avp_group_removal_applies_only_to_reissued_token.py", "service": "cognito-idp__verifiedpermissions"} {"check_id": "cognito-idp__verifiedpermissions.xsvc-cognito-idp-2-avp-tampered-token-signature-rejected", "deployments": [], "key": "cognito-idp__verifiedpermissions/xsvc-cognito-idp-2-avp-tampered-token-signature-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "verifiedpermissions:CreateIdentitySource", "verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeleteIdentitySource", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorizedWithToken"], "path": "behavioral/cognito-idp__verifiedpermissions/check_xsvc_cognito_idp_2_avp_tampered_token_signature_rejected.py", "service": "cognito-idp__verifiedpermissions"} {"check_id": "cognito-idp__verifiedpermissions.xsvc-cognito-idp-2-avp-token-from-foreign-pool-rejected", "deployments": [], "key": "cognito-idp__verifiedpermissions/xsvc-cognito-idp-2-avp-token-from-foreign-pool-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:GetUser", "verifiedpermissions:CreateIdentitySource", "verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeleteIdentitySource", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorizedWithToken"], "path": "behavioral/cognito-idp__verifiedpermissions/check_xsvc_cognito_idp_2_avp_token_from_foreign_pool_rejected.py", "service": "cognito-idp__verifiedpermissions"} {"check_id": "cognito-idp__verifiedpermissions.xsvc-cognito-idp-2-avp-token-from-unlisted-client-rejected", "deployments": [], "key": "cognito-idp__verifiedpermissions/xsvc-cognito-idp-2-avp-token-from-unlisted-client-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminGetUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteGroup", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "verifiedpermissions:CreateIdentitySource", "verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeleteIdentitySource", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:GetIdentitySource", "verifiedpermissions:IsAuthorizedWithToken", "verifiedpermissions:UpdateIdentitySource"], "path": "behavioral/cognito-idp__verifiedpermissions/check_xsvc_cognito_idp_2_avp_token_from_unlisted_client_rejected.py", "service": "cognito-idp__verifiedpermissions"} {"check_id": "cognito-idp__wafv2.xsvc-cognito-idp-3-wafv2-block-rule-matching-header-blocked-unmatched-call-allowed", "deployments": [], "key": "cognito-idp__wafv2/xsvc-cognito-idp-3-wafv2-block-rule-matching-header-blocked-unmatched-call-allowed", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "cognito-idp:DeleteUserPoolClient", "cognito-idp:InitiateAuth", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/cognito-idp__wafv2/check_xsvc_cognito_idp_3_wafv2_block_rule_matching_header_blocked_unmatched_call_allowed.py", "service": "cognito-idp__wafv2"} {"check_id": "comprehend.batch-detect-dominant-language-multi-language", "deployments": [], "key": "comprehend/batch-detect-dominant-language-multi-language", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectDominantLanguage"], "path": "behavioral/comprehend/check_batch_detect_dominant_language_multi_language.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-dominant-language-partial-failure-isolates-bad-document", "deployments": [], "key": "comprehend/batch-detect-dominant-language-partial-failure-isolates-bad-document", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectDominantLanguage"], "path": "behavioral/comprehend/check_batch_detect_dominant_language_partial_failure_isolates_bad_document.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-dominant-language-preserves-index-mapping", "deployments": [], "key": "comprehend/batch-detect-dominant-language-preserves-index-mapping", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectDominantLanguage"], "path": "behavioral/comprehend/check_batch_detect_dominant_language_preserves_index_mapping.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-entities-batch-size-limit-exceeded-rejected", "deployments": [], "key": "comprehend/batch-detect-entities-batch-size-limit-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectEntities"], "path": "behavioral/comprehend/check_batch_detect_entities_batch_size_limit_exceeded_rejected.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-entities-batch-size-limit-rejected", "deployments": [], "key": "comprehend/batch-detect-entities-batch-size-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectEntities"], "path": "behavioral/comprehend/check_batch_detect_entities_batch_size_limit_rejected.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-key-phrases-consistent-for-duplicate-inputs", "deployments": [], "key": "comprehend/batch-detect-key-phrases-consistent-for-duplicate-inputs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectKeyPhrases"], "path": "behavioral/comprehend/check_batch_detect_key_phrases_consistent_for_duplicate_inputs.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-partial-failure-oversized-item", "deployments": [], "key": "comprehend/batch-detect-partial-failure-oversized-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectSentiment"], "path": "behavioral/comprehend/check_batch_detect_partial_failure_oversized_item.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-sentiment-index-alignment", "deployments": [], "key": "comprehend/batch-detect-sentiment-index-alignment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectSentiment"], "path": "behavioral/comprehend/check_batch_detect_sentiment_index_alignment.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-sentiment-partial-failure-per-index", "deployments": [], "key": "comprehend/batch-detect-sentiment-partial-failure-per-index", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectSentiment"], "path": "behavioral/comprehend/check_batch_detect_sentiment_partial_failure_per_index.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-sentiment-preserves-index-order", "deployments": [], "key": "comprehend/batch-detect-sentiment-preserves-index-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectSentiment"], "path": "behavioral/comprehend/check_batch_detect_sentiment_preserves_index_order.py", "service": "comprehend"} {"check_id": "comprehend.batch-detect-syntax-tags-tokens-with-consistent-offsets", "deployments": [], "key": "comprehend/batch-detect-syntax-tags-tokens-with-consistent-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectSyntax"], "path": "behavioral/comprehend/check_batch_detect_syntax_tags_tokens_with_consistent_offsets.py", "service": "comprehend"} {"check_id": "comprehend.batch-size-limit-exceeded-rejected", "deployments": [], "key": "comprehend/batch-size-limit-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:BatchDetectDominantLanguage"], "path": "behavioral/comprehend/check_batch_size_limit_exceeded_rejected.py", "service": "comprehend"} {"check_id": "comprehend.concurrent-start-job-same-token-idempotent-dedup", "deployments": [], "key": "comprehend/concurrent-start-job-same-token-idempotent-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["comprehend:DescribeKeyPhrasesDetectionJob", "comprehend:ListKeyPhrasesDetectionJobs", "comprehend:StartKeyPhrasesDetectionJob", "comprehend:StopKeyPhrasesDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_concurrent_start_job_same_token_idempotent_dedup.py", "service": "comprehend"} {"check_id": "comprehend.contains-pii-entities-agrees-with-detect-pii-entities", "deployments": [], "key": "comprehend/contains-pii-entities-agrees-with-detect-pii-entities", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:ContainsPiiEntities", "comprehend:DetectPiiEntities"], "path": "behavioral/comprehend/check_contains_pii_entities_agrees_with_detect_pii_entities.py", "service": "comprehend"} {"check_id": "comprehend.contains-pii-entities-distinguishes-pii-from-clean-text", "deployments": [], "key": "comprehend/contains-pii-entities-distinguishes-pii-from-clean-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:ContainsPiiEntities"], "path": "behavioral/comprehend/check_contains_pii_entities_distinguishes_pii_from_clean_text.py", "service": "comprehend"} {"check_id": "comprehend.contains-pii-entities-flags-multiple-categories", "deployments": [], "key": "comprehend/contains-pii-entities-flags-multiple-categories", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:ContainsPiiEntities"], "path": "behavioral/comprehend/check_contains_pii_entities_flags_multiple_categories.py", "service": "comprehend"} {"check_id": "comprehend.contains-pii-entities-matches-detect", "deployments": [], "key": "comprehend/contains-pii-entities-matches-detect", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:ContainsPiiEntities", "comprehend:DetectPiiEntities"], "path": "behavioral/comprehend/check_contains_pii_entities_matches_detect.py", "service": "comprehend"} {"check_id": "comprehend.create-endpoint-desired-inference-units-below-minimum-rejected", "deployments": [], "key": "comprehend/create-endpoint-desired-inference-units-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:CreateEndpoint", "comprehend:ListEndpoints"], "path": "behavioral/comprehend/check_create_endpoint_desired_inference_units_below_minimum_rejected.py", "service": "comprehend"} {"check_id": "comprehend.delete-resource-policy-without-policy-not-found", "deployments": [], "key": "comprehend/delete-resource-policy-without-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:CreateDocumentClassifier", "comprehend:DeleteDocumentClassifier", "comprehend:DeleteResourcePolicy", "comprehend:DescribeDocumentClassifier", "comprehend:DescribeResourcePolicy", "comprehend:ListDocumentClassifiers", "comprehend:PutResourcePolicy", "comprehend:StopTrainingDocumentClassifier", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/comprehend/check_delete_resource_policy_without_policy_not_found.py", "service": "comprehend"} {"check_id": "comprehend.describe-document-classifier-not-found", "deployments": [], "key": "comprehend/describe-document-classifier-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:DescribeDocumentClassifier", "sts:GetCallerIdentity"], "path": "behavioral/comprehend/check_describe_document_classifier_not_found.py", "service": "comprehend"} {"check_id": "comprehend.describe-job-not-found-rejected", "deployments": [], "key": "comprehend/describe-job-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:DescribeKeyPhrasesDetectionJob", "comprehend:StartKeyPhrasesDetectionJob", "comprehend:StopKeyPhrasesDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_describe_job_not_found_rejected.py", "service": "comprehend"} {"check_id": "comprehend.describe-sentiment-detection-job-not-found", "deployments": [], "key": "comprehend/describe-sentiment-detection-job-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:DescribeSentimentDetectionJob", "comprehend:StartSentimentDetectionJob", "comprehend:StopSentimentDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/comprehend/check_describe_sentiment_detection_job_not_found.py", "service": "comprehend"} {"check_id": "comprehend.detect-dominant-language-below-documented-minimum-still-succeeds", "deployments": [], "key": "comprehend/detect-dominant-language-below-documented-minimum-still-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectDominantLanguage"], "path": "behavioral/comprehend/check_detect_dominant_language_below_documented_minimum_still_succeeds.py", "service": "comprehend"} {"check_id": "comprehend.detect-dominant-language-english", "deployments": [], "key": "comprehend/detect-dominant-language-english", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectDominantLanguage"], "path": "behavioral/comprehend/check_detect_dominant_language_english.py", "service": "comprehend"} {"check_id": "comprehend.detect-dominant-language-identifies-french-text", "deployments": [], "key": "comprehend/detect-dominant-language-identifies-french-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectDominantLanguage"], "path": "behavioral/comprehend/check_detect_dominant_language_identifies_french_text.py", "service": "comprehend"} {"check_id": "comprehend.detect-dominant-language-ranks-english-highest", "deployments": [], "key": "comprehend/detect-dominant-language-ranks-english-highest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectDominantLanguage"], "path": "behavioral/comprehend/check_detect_dominant_language_ranks_english_highest.py", "service": "comprehend"} {"check_id": "comprehend.detect-entities-builtin-types", "deployments": [], "key": "comprehend/detect-entities-builtin-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectEntities"], "path": "behavioral/comprehend/check_detect_entities_builtin_types.py", "service": "comprehend"} {"check_id": "comprehend.detect-entities-finds-organization-with-correct-offsets", "deployments": [], "key": "comprehend/detect-entities-finds-organization-with-correct-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectEntities"], "path": "behavioral/comprehend/check_detect_entities_finds_organization_with_correct_offsets.py", "service": "comprehend"} {"check_id": "comprehend.detect-entities-identifies-person-and-location-with-consistent-offsets", "deployments": [], "key": "comprehend/detect-entities-identifies-person-and-location-with-consistent-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectEntities"], "path": "behavioral/comprehend/check_detect_entities_identifies_person_and_location_with_consistent_offsets.py", "service": "comprehend"} {"check_id": "comprehend.detect-key-phrases-content", "deployments": [], "key": "comprehend/detect-key-phrases-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectKeyPhrases"], "path": "behavioral/comprehend/check_detect_key_phrases_content.py", "service": "comprehend"} {"check_id": "comprehend.detect-key-phrases-extracts-known-phrases-with-consistent-offsets", "deployments": [], "key": "comprehend/detect-key-phrases-extracts-known-phrases-with-consistent-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectKeyPhrases"], "path": "behavioral/comprehend/check_detect_key_phrases_extracts_known_phrases_with_consistent_offsets.py", "service": "comprehend"} {"check_id": "comprehend.detect-key-phrases-extracts-multiword-phrase", "deployments": [], "key": "comprehend/detect-key-phrases-extracts-multiword-phrase", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectKeyPhrases"], "path": "behavioral/comprehend/check_detect_key_phrases_extracts_multiword_phrase.py", "service": "comprehend"} {"check_id": "comprehend.detect-pii-entities-finds-email-with-correct-offset", "deployments": [], "key": "comprehend/detect-pii-entities-finds-email-with-correct-offset", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectPiiEntities"], "path": "behavioral/comprehend/check_detect_pii_entities_finds_email_with_correct_offset.py", "service": "comprehend"} {"check_id": "comprehend.detect-pii-entities-locates-ssn-with-correct-offsets", "deployments": [], "key": "comprehend/detect-pii-entities-locates-ssn-with-correct-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectPiiEntities"], "path": "behavioral/comprehend/check_detect_pii_entities_locates_ssn_with_correct_offsets.py", "service": "comprehend"} {"check_id": "comprehend.detect-pii-entities-ssn-offsets", "deployments": [], "key": "comprehend/detect-pii-entities-ssn-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectPiiEntities"], "path": "behavioral/comprehend/check_detect_pii_entities_ssn_offsets.py", "service": "comprehend"} {"check_id": "comprehend.detect-pii-entities-unsupported-language-still-succeeds", "deployments": [], "key": "comprehend/detect-pii-entities-unsupported-language-still-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectPiiEntities"], "path": "behavioral/comprehend/check_detect_pii_entities_unsupported_language_still_succeeds.py", "service": "comprehend"} {"check_id": "comprehend.detect-sentiment-negative-text", "deployments": [], "key": "comprehend/detect-sentiment-negative-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectSentiment"], "path": "behavioral/comprehend/check_detect_sentiment_negative_text.py", "service": "comprehend"} {"check_id": "comprehend.detect-sentiment-polarity-matches-content", "deployments": [], "key": "comprehend/detect-sentiment-polarity-matches-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectSentiment"], "path": "behavioral/comprehend/check_detect_sentiment_polarity_matches_content.py", "service": "comprehend"} {"check_id": "comprehend.detect-sentiment-positive-text", "deployments": [], "key": "comprehend/detect-sentiment-positive-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectSentiment"], "path": "behavioral/comprehend/check_detect_sentiment_positive_text.py", "service": "comprehend"} {"check_id": "comprehend.detect-sentiment-positive-text-scores-consistent", "deployments": [], "key": "comprehend/detect-sentiment-positive-text-scores-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectSentiment"], "path": "behavioral/comprehend/check_detect_sentiment_positive_text_scores_consistent.py", "service": "comprehend"} {"check_id": "comprehend.detect-sentiment-text-size-limit-exceeded-rejected", "deployments": [], "key": "comprehend/detect-sentiment-text-size-limit-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:DetectSentiment"], "path": "behavioral/comprehend/check_detect_sentiment_text_size_limit_exceeded_rejected.py", "service": "comprehend"} {"check_id": "comprehend.detect-sentiment-text-size-limit-rejected", "deployments": [], "key": "comprehend/detect-sentiment-text-size-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:DetectSentiment"], "path": "behavioral/comprehend/check_detect_sentiment_text_size_limit_rejected.py", "service": "comprehend"} {"check_id": "comprehend.detect-syntax-part-of-speech", "deployments": [], "key": "comprehend/detect-syntax-part-of-speech", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectSyntax"], "path": "behavioral/comprehend/check_detect_syntax_part_of_speech.py", "service": "comprehend"} {"check_id": "comprehend.detect-syntax-tags-noun-and-verb", "deployments": [], "key": "comprehend/detect-syntax-tags-noun-and-verb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectSyntax"], "path": "behavioral/comprehend/check_detect_syntax_tags_noun_and_verb.py", "service": "comprehend"} {"check_id": "comprehend.detect-targeted-sentiment-mention-offsets", "deployments": [], "key": "comprehend/detect-targeted-sentiment-mention-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectTargetedSentiment"], "path": "behavioral/comprehend/check_detect_targeted_sentiment_mention_offsets.py", "service": "comprehend"} {"check_id": "comprehend.detect-targeted-sentiment-mention-offsets-match-source", "deployments": [], "key": "comprehend/detect-targeted-sentiment-mention-offsets-match-source", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectTargetedSentiment"], "path": "behavioral/comprehend/check_detect_targeted_sentiment_mention_offsets_match_source.py", "service": "comprehend"} {"check_id": "comprehend.detect-targeted-sentiment-returns-consistent-mention-offsets", "deployments": [], "key": "comprehend/detect-targeted-sentiment-returns-consistent-mention-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectTargetedSentiment"], "path": "behavioral/comprehend/check_detect_targeted_sentiment_returns_consistent_mention_offsets.py", "service": "comprehend"} {"check_id": "comprehend.detect-targeted-sentiment-unsupported-language-rejected", "deployments": [], "key": "comprehend/detect-targeted-sentiment-unsupported-language-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:DetectTargetedSentiment"], "path": "behavioral/comprehend/check_detect_targeted_sentiment_unsupported_language_rejected.py", "service": "comprehend"} {"check_id": "comprehend.detect-toxic-content-high-score", "deployments": [], "key": "comprehend/detect-toxic-content-high-score", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectToxicContent"], "path": "behavioral/comprehend/check_detect_toxic_content_high_score.py", "service": "comprehend"} {"check_id": "comprehend.detect-toxic-content-ranks-toxic-above-benign", "deployments": [], "key": "comprehend/detect-toxic-content-ranks-toxic-above-benign", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectToxicContent"], "path": "behavioral/comprehend/check_detect_toxic_content_ranks_toxic_above_benign.py", "service": "comprehend"} {"check_id": "comprehend.detect-toxic-content-scores-higher-for-toxic-segment", "deployments": [], "key": "comprehend/detect-toxic-content-scores-higher-for-toxic-segment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DetectToxicContent"], "path": "behavioral/comprehend/check_detect_toxic_content_scores_higher_for_toxic_segment.py", "service": "comprehend"} {"check_id": "comprehend.document-classifier-lifecycle-training-to-stopped", "deployments": [], "key": "comprehend/document-classifier-lifecycle-training-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["comprehend:CreateDocumentClassifier", "comprehend:DeleteDocumentClassifier", "comprehend:DescribeDocumentClassifier", "comprehend:ListTagsForResource", "comprehend:StopTrainingDocumentClassifier", "comprehend:TagResource", "comprehend:UntagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/comprehend/check_document_classifier_lifecycle_training_to_stopped.py", "service": "comprehend"} {"check_id": "comprehend.dominant-language-detection-job-completes-and-writes-output", "deployments": [], "key": "comprehend/dominant-language-detection-job-completes-and-writes-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DescribeDominantLanguageDetectionJob", "comprehend:StartDominantLanguageDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_dominant_language_detection_job_completes_and_writes_output.py", "service": "comprehend"} {"check_id": "comprehend.dominant-language-job-completes-writes-output", "deployments": [], "key": "comprehend/dominant-language-job-completes-writes-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DescribeDominantLanguageDetectionJob", "comprehend:StartDominantLanguageDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_dominant_language_job_completes_writes_output.py", "service": "comprehend"} {"check_id": "comprehend.put-resource-policy-nonexistent-resource-rejected", "deployments": [], "key": "comprehend/put-resource-policy-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:DescribeResourcePolicy", "comprehend:ListDocumentClassifiers", "comprehend:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/comprehend/check_put_resource_policy_nonexistent_resource_rejected.py", "service": "comprehend"} {"check_id": "comprehend.start-dominant-language-job-duplicate-client-token-conflict", "deployments": [], "key": "comprehend/start-dominant-language-job-duplicate-client-token-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["comprehend:DescribeDominantLanguageDetectionJob", "comprehend:StartDominantLanguageDetectionJob", "comprehend:StopDominantLanguageDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/comprehend/check_start_dominant_language_job_duplicate_client_token_conflict.py", "service": "comprehend"} {"check_id": "comprehend.start-dominant-language-job-duplicate-token-conflict-accepted", "deployments": [], "key": "comprehend/start-dominant-language-job-duplicate-token-conflict-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["comprehend:DescribeDominantLanguageDetectionJob", "comprehend:StartDominantLanguageDetectionJob", "comprehend:StopDominantLanguageDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/comprehend/check_start_dominant_language_job_duplicate_token_conflict_accepted.py", "service": "comprehend"} {"check_id": "comprehend.start-job-duplicate-token-mismatched-params-creates-second-job", "deployments": [], "key": "comprehend/start-job-duplicate-token-mismatched-params-creates-second-job", "labels": ["axis:happy-path", "plane:control"], "operations": ["comprehend:DescribeKeyPhrasesDetectionJob", "comprehend:StartKeyPhrasesDetectionJob", "comprehend:StopKeyPhrasesDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_start_job_duplicate_token_mismatched_params_creates_second_job.py", "service": "comprehend"} {"check_id": "comprehend.start-job-then-stop-workflow-reaches-stopped", "deployments": [], "key": "comprehend/start-job-then-stop-workflow-reaches-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["comprehend:DescribeSentimentDetectionJob", "comprehend:StartSentimentDetectionJob", "comprehend:StopSentimentDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_start_job_then_stop_workflow_reaches_stopped.py", "service": "comprehend"} {"check_id": "comprehend.start-key-phrases-detection-job-reaches-completed", "deployments": [], "key": "comprehend/start-key-phrases-detection-job-reaches-completed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehend:DescribeKeyPhrasesDetectionJob", "comprehend:StartKeyPhrasesDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/comprehend/check_start_key_phrases_detection_job_reaches_completed.py", "service": "comprehend"} {"check_id": "comprehend.start-pii-entities-detection-job-missing-redaction-config-rejected", "deployments": [], "key": "comprehend/start-pii-entities-detection-job-missing-redaction-config-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:DescribePiiEntitiesDetectionJob", "comprehend:StartPiiEntitiesDetectionJob", "comprehend:StopPiiEntitiesDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_start_pii_entities_detection_job_missing_redaction_config_rejected.py", "service": "comprehend"} {"check_id": "comprehend.stop-after-terminal-sentiment-job-state-conflict-rejected", "deployments": [], "key": "comprehend/stop-after-terminal-sentiment-job-state-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:DescribeSentimentDetectionJob", "comprehend:StartSentimentDetectionJob", "comprehend:StopSentimentDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_stop_after_terminal_sentiment_job_state_conflict_rejected.py", "service": "comprehend"} {"check_id": "comprehend.stop-dominant-language-detection-job-not-found-rejected", "deployments": [], "key": "comprehend/stop-dominant-language-detection-job-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:DescribeDominantLanguageDetectionJob", "comprehend:ListDominantLanguageDetectionJobs", "comprehend:StartDominantLanguageDetectionJob", "comprehend:StopDominantLanguageDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/comprehend/check_stop_dominant_language_detection_job_not_found_rejected.py", "service": "comprehend"} {"check_id": "comprehend.tag-job-resource-roundtrip", "deployments": [], "key": "comprehend/tag-job-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["comprehend:DescribeKeyPhrasesDetectionJob", "comprehend:ListTagsForResource", "comprehend:StartKeyPhrasesDetectionJob", "comprehend:StopKeyPhrasesDetectionJob", "comprehend:TagResource", "comprehend:UntagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehend/check_tag_job_resource_roundtrip.py", "service": "comprehend"} {"check_id": "comprehend.text-size-limit-exceeded-rejected", "deployments": [], "key": "comprehend/text-size-limit-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehend:DetectDominantLanguage"], "path": "behavioral/comprehend/check_text_size_limit_exceeded_rejected.py", "service": "comprehend"} {"check_id": "comprehend.untag-resource-nonexistent-resource-rejected", "deployments": [], "key": "comprehend/untag-resource-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehend:DescribeKeyPhrasesDetectionJob", "comprehend:ListTagsForResource", "comprehend:StartKeyPhrasesDetectionJob", "comprehend:StopKeyPhrasesDetectionJob", "comprehend:TagResource", "comprehend:UntagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/comprehend/check_untag_resource_nonexistent_resource_rejected.py", "service": "comprehend"} {"check_id": "comprehendmedical.async-job-stop-transition-and-duplicate-stop-rejected", "deployments": [], "key": "comprehendmedical/async-job-stop-transition-and-duplicate-stop-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehendmedical:DescribeEntitiesDetectionV2Job", "comprehendmedical:StartEntitiesDetectionV2Job", "comprehendmedical:StopEntitiesDetectionV2Job", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehendmedical/check_async_job_stop_transition_and_duplicate_stop_rejected.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.async-phi-job-completes-and-writes-output-to-s3", "deployments": [], "key": "comprehendmedical/async-phi-job-completes-and-writes-output-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:StartPHIDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehendmedical/check_async_phi_job_completes_and_writes_output_to_s3.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.describe-job-malformed-jobid-rejected", "deployments": [], "key": "comprehendmedical/describe-job-malformed-jobid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehendmedical:DescribePHIDetectionJob"], "path": "behavioral/comprehendmedical/check_describe_job_malformed_jobid_rejected.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-entities-concurrent-calls-return-isolated-results", "deployments": [], "key": "comprehendmedical/detect-entities-concurrent-calls-return-isolated-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectPHI"], "path": "behavioral/comprehendmedical/check_detect_entities_concurrent_calls_return_isolated_results.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-entities-empty-text-rejected", "deployments": [], "key": "comprehendmedical/detect-entities-empty-text-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectEntitiesV2"], "path": "behavioral/comprehendmedical/check_detect_entities_empty_text_rejected.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-entities-medication-dosage-frequency-linked", "deployments": [], "key": "comprehendmedical/detect-entities-medication-dosage-frequency-linked", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectEntities"], "path": "behavioral/comprehendmedical/check_detect_entities_medication_dosage_frequency_linked.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-entities-negation-trait-detected", "deployments": [], "key": "comprehendmedical/detect-entities-negation-trait-detected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectEntitiesV2"], "path": "behavioral/comprehendmedical/check_detect_entities_negation_trait_detected.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-entities-offsets-index-into-source-text", "deployments": [], "key": "comprehendmedical/detect-entities-offsets-index-into-source-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectEntitiesV2"], "path": "behavioral/comprehendmedical/check_detect_entities_offsets_index_into_source_text.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-entities-scores-within-valid-range", "deployments": [], "key": "comprehendmedical/detect-entities-scores-within-valid-range", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectEntitiesV2"], "path": "behavioral/comprehendmedical/check_detect_entities_scores_within_valid_range.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-entities-text-exceeds-size-limit-rejected", "deployments": [], "key": "comprehendmedical/detect-entities-text-exceeds-size-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectEntitiesV2"], "path": "behavioral/comprehendmedical/check_detect_entities_text_exceeds_size_limit_rejected.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-entities-v2-attribute-relationship-type", "deployments": [], "key": "comprehendmedical/detect-entities-v2-attribute-relationship-type", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectEntitiesV2"], "path": "behavioral/comprehendmedical/check_detect_entities_v2_attribute_relationship_type.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-phi-benign-text-returns-no-entities", "deployments": [], "key": "comprehendmedical/detect-phi-benign-text-returns-no-entities", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectPHI"], "path": "behavioral/comprehendmedical/check_detect_phi_benign_text_returns_no_entities.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.detect-phi-detects-name-age-and-date", "deployments": [], "key": "comprehendmedical/detect-phi-detects-name-age-and-date", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:DetectPHI"], "path": "behavioral/comprehendmedical/check_detect_phi_detects_name_age_and_date.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.infer-icd10cm-returns-diabetes-code", "deployments": [], "key": "comprehendmedical/infer-icd10cm-returns-diabetes-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:InferICD10CM"], "path": "behavioral/comprehendmedical/check_infer_icd10cm_returns_diabetes_code.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.infer-rxnorm-returns-metformin-concept", "deployments": [], "key": "comprehendmedical/infer-rxnorm-returns-metformin-concept", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:InferRxNorm"], "path": "behavioral/comprehendmedical/check_infer_rxnorm_returns_metformin_concept.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.infer-rxnorm-text-exceeds-ontology-size-limit-rejected", "deployments": [], "key": "comprehendmedical/infer-rxnorm-text-exceeds-ontology-size-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehendmedical:InferRxNorm"], "path": "behavioral/comprehendmedical/check_infer_rxnorm_text_exceeds_ontology_size_limit_rejected.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.infer-snomedct-returns-concepts-and-character-count", "deployments": [], "key": "comprehendmedical/infer-snomedct-returns-concepts-and-character-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["comprehendmedical:InferSNOMEDCT"], "path": "behavioral/comprehendmedical/check_infer_snomedct_returns_concepts_and_character_count.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.list-jobs-filter-jobname-pattern-rejected", "deployments": [], "key": "comprehendmedical/list-jobs-filter-jobname-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehendmedical:ListPHIDetectionJobs"], "path": "behavioral/comprehendmedical/check_list_jobs_filter_jobname_pattern_rejected.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.list-jobs-max-results-range-validation-rejected", "deployments": [], "key": "comprehendmedical/list-jobs-max-results-range-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["comprehendmedical:ListEntitiesDetectionV2Jobs"], "path": "behavioral/comprehendmedical/check_list_jobs_max_results_range_validation_rejected.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.start-job-idempotency-token-reuse", "deployments": [], "key": "comprehendmedical/start-job-idempotency-token-reuse", "labels": ["axis:happy-path", "plane:control"], "operations": ["comprehendmedical:DescribePHIDetectionJob", "comprehendmedical:ListPHIDetectionJobs", "comprehendmedical:StartPHIDetectionJob", "comprehendmedical:StopPHIDetectionJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/comprehendmedical/check_start_job_idempotency_token_reuse.py", "service": "comprehendmedical"} {"check_id": "comprehendmedical.start-job-invalid-role-arn-pattern-rejected", "deployments": [], "key": "comprehendmedical/start-job-invalid-role-arn-pattern-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["comprehendmedical:StartPHIDetectionJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/comprehendmedical/check_start_job_invalid_role_arn_pattern_rejected.py", "service": "comprehendmedical"} {"check_id": "compute-optimizer-automation.concurrent-updates-optimistic-lock-race", "deployments": [], "key": "compute-optimizer-automation/concurrent-updates-optimistic-lock-race", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateAutomationRule", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_concurrent_updates_optimistic_lock_race.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.create-automation-rule-idempotency-token-replay", "deployments": [], "key": "compute-optimizer-automation/create-automation-rule-idempotency-token-replay", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListAutomationRules", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_create_automation_rule_idempotency_token_replay.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.create-automation-rule-idempotent-parameter-mismatch-rejected", "deployments": [], "key": "compute-optimizer-automation/create-automation-rule-idempotent-parameter-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListAutomationRules", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_create_automation_rule_idempotent_parameter_mismatch_rejected.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.create-automation-rule-invalid-name-rejected", "deployments": [], "key": "compute-optimizer-automation/create-automation-rule-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListAutomationRules", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_create_automation_rule_invalid_name_rejected.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.create-get-delete-automation-rule-lifecycle", "deployments": [], "key": "compute-optimizer-automation/create-get-delete-automation-rule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_create_get_delete_automation_rule_lifecycle.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.delete-automation-rule-stale-revision-rejected", "deployments": [], "key": "compute-optimizer-automation/delete-automation-rule-stale-revision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateAutomationRule", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_delete_automation_rule_stale_revision_rejected.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.enrollment-configuration-get-reflects-valid-status", "deployments": [], "key": "compute-optimizer-automation/enrollment-configuration-get-reflects-valid-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_enrollment_configuration_get_reflects_valid_status.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.get-automation-rule-malformed-arn-rejected", "deployments": [], "key": "compute-optimizer-automation/get-automation-rule-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer-automation/check_get_automation_rule_malformed_arn_rejected.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.get-automation-rule-nonexistent-not-found", "deployments": [], "key": "compute-optimizer-automation/get-automation-rule-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer-automation/check_get_automation_rule_nonexistent_not_found.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.list-automation-events-invalid-time-range-rejected", "deployments": [], "key": "compute-optimizer-automation/list-automation-events-invalid-time-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListAutomationEvents", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_list_automation_events_invalid_time_range_rejected.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.list-automation-rule-preview-structure", "deployments": [], "key": "compute-optimizer-automation/list-automation-rule-preview-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListAutomationRulePreview", "compute-optimizer-automation:ListAutomationRulePreviewSummaries", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_list_automation_rule_preview_structure.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.list-automation-rules-reflects-created-rule", "deployments": [], "key": "compute-optimizer-automation/list-automation-rules-reflects-created-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListAutomationRules", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_list_automation_rules_reflects_created_rule.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.list-recommended-actions-and-summaries-structure", "deployments": [], "key": "compute-optimizer-automation/list-recommended-actions-and-summaries-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListRecommendedActionSummaries", "compute-optimizer-automation:ListRecommendedActions", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_list_recommended_actions_and_summaries_structure.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.start-automation-event-nonexistent-action-not-found", "deployments": [], "key": "compute-optimizer-automation/start-automation-event-nonexistent-action-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:StartAutomationEvent", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_start_automation_event_nonexistent_action_not_found.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.tag-untag-automation-rule-round-trip", "deployments": [], "key": "compute-optimizer-automation/tag-untag-automation-rule-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListTagsForResource", "compute-optimizer-automation:TagResource", "compute-optimizer-automation:UntagResource", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_tag_untag_automation_rule_round_trip.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.untag-resource-invalid-key-rejected", "deployments": [], "key": "compute-optimizer-automation/untag-resource-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:ListTagsForResource", "compute-optimizer-automation:UntagResource", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_untag_resource_invalid_key_rejected.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.update-automation-rule-increments-revision", "deployments": [], "key": "compute-optimizer-automation/update-automation-rule-increments-revision", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateAutomationRule", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_update_automation_rule_increments_revision.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.update-automation-rule-stale-revision-rejected", "deployments": [], "key": "compute-optimizer-automation/update-automation-rule-stale-revision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateAutomationRule", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_update_automation_rule_stale_revision_rejected.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.update-automation-rule-status-toggle", "deployments": [], "key": "compute-optimizer-automation/update-automation-rule-status-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer-automation:CreateAutomationRule", "compute-optimizer-automation:DeleteAutomationRule", "compute-optimizer-automation:GetAutomationRule", "compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateAutomationRule", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_update_automation_rule_status_toggle.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer-automation.update-enrollment-configuration-invalid-status-rejected", "deployments": [], "key": "compute-optimizer-automation/update-enrollment-configuration-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer-automation:GetEnrollmentConfiguration", "compute-optimizer-automation:UpdateEnrollmentConfiguration", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer-automation/check_update_enrollment_configuration_invalid_status_rejected.py", "service": "compute-optimizer-automation"} {"check_id": "compute-optimizer.describe-recommendation-export-jobs-lists-created-job", "deployments": [], "key": "compute-optimizer/describe-recommendation-export-jobs-lists-created-job", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:DescribeRecommendationExportJobs", "compute-optimizer:ExportLambdaFunctionRecommendations", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_describe_recommendation_export_jobs_lists_created_job.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.effective-recommendation-preferences-for-real-ec2-instance", "deployments": [], "key": "compute-optimizer/effective-recommendation-preferences-for-real-ec2-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetEffectiveRecommendationPreferences", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRecommendationPreferences", "compute-optimizer:UpdateEnrollmentStatus", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_effective_recommendation_preferences_for_real_ec2_instance.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.enrollment-status-active-transition", "deployments": [], "key": "compute-optimizer/enrollment-status-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer/check_enrollment_status_active_transition.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.export-concurrent-jobs-limit-exceeded", "deployments": [], "key": "compute-optimizer/export-concurrent-jobs-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer:DescribeRecommendationExportJobs", "compute-optimizer:ExportEC2InstanceRecommendations", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_export_concurrent_jobs_limit_exceeded.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.export-job-lifecycle-reaches-complete", "deployments": [], "key": "compute-optimizer/export-job-lifecycle-reaches-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:DescribeRecommendationExportJobs", "compute-optimizer:ExportAutoScalingGroupRecommendations", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_export_job_lifecycle_reaches_complete.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.export-to-nonexistent-bucket-rejected", "deployments": [], "key": "compute-optimizer/export-to-nonexistent-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer:DescribeRecommendationExportJobs", "compute-optimizer:ExportEBSVolumeRecommendations", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_export_to_nonexistent_bucket_rejected.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-auto-scaling-group-recommendations-schema", "deployments": [], "key": "compute-optimizer/get-auto-scaling-group-recommendations-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetAutoScalingGroupRecommendations", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_auto_scaling_group_recommendations_schema.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-ebs-volume-recommendations-schema", "deployments": [], "key": "compute-optimizer/get-ebs-volume-recommendations-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetEBSVolumeRecommendations", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_ebs_volume_recommendations_schema.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-ec2-instance-recommendations-schema-and-account-scoping", "deployments": [], "key": "compute-optimizer/get-ec2-instance-recommendations-schema-and-account-scoping", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetEC2InstanceRecommendations", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_ec2_instance_recommendations_schema_and_account_scoping.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-ecs-service-recommendations-schema", "deployments": [], "key": "compute-optimizer/get-ecs-service-recommendations-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetECSServiceRecommendations", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_ecs_service_recommendations_schema.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-effective-recommendation-preferences-malformed-arn-rejected", "deployments": [], "key": "compute-optimizer/get-effective-recommendation-preferences-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer:DeleteRecommendationPreferences", "compute-optimizer:GetEffectiveRecommendationPreferences", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:PutRecommendationPreferences", "compute-optimizer:UpdateEnrollmentStatus", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_effective_recommendation_preferences_malformed_arn_rejected.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-enrollment-statuses-for-organization-non-management-rejected", "deployments": [], "key": "compute-optimizer/get-enrollment-statuses-for-organization-non-management-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetEnrollmentStatusesForOrganization"], "path": "behavioral/compute-optimizer/check_get_enrollment_statuses_for_organization_non_management_rejected.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-idle-recommendations-max-results-over-limit-rejected", "deployments": [], "key": "compute-optimizer/get-idle-recommendations-max-results-over-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetIdleRecommendations", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer/check_get_idle_recommendations_max_results_over_limit_rejected.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-idle-recommendations-schema", "deployments": [], "key": "compute-optimizer/get-idle-recommendations-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetIdleRecommendations", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_idle_recommendations_schema.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-lambda-function-recommendations-schema", "deployments": [], "key": "compute-optimizer/get-lambda-function-recommendations-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetLambdaFunctionRecommendations", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_lambda_function_recommendations_schema.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-rds-database-recommendations-schema", "deployments": [], "key": "compute-optimizer/get-rds-database-recommendations-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRDSDatabaseRecommendations", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_rds_database_recommendations_schema.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.get-recommendation-summaries-matches-caller-account", "deployments": [], "key": "compute-optimizer/get-recommendation-summaries-matches-caller-account", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRecommendationSummaries", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_get_recommendation_summaries_matches_caller_account.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.put-recommendation-preferences-asg-account-scope-rejected", "deployments": [], "key": "compute-optimizer/put-recommendation-preferences-asg-account-scope-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer:DeleteRecommendationPreferences", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRecommendationPreferences", "compute-optimizer:PutRecommendationPreferences", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_put_recommendation_preferences_asg_account_scope_rejected.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.put-recommendation-preferences-concurrent-writes-consistent", "deployments": [], "key": "compute-optimizer/put-recommendation-preferences-concurrent-writes-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:DeleteRecommendationPreferences", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRecommendationPreferences", "compute-optimizer:PutRecommendationPreferences", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_put_recommendation_preferences_concurrent_writes_consistent.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.recommendation-preferences-lookback-period-lifecycle", "deployments": [], "key": "compute-optimizer/recommendation-preferences-lookback-period-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:DeleteRecommendationPreferences", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRecommendationPreferences", "compute-optimizer:PutRecommendationPreferences", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_recommendation_preferences_lookback_period_lifecycle.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.recommendation-preferences-preferred-resources-lifecycle", "deployments": [], "key": "compute-optimizer/recommendation-preferences-preferred-resources-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:DeleteRecommendationPreferences", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRecommendationPreferences", "compute-optimizer:PutRecommendationPreferences", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_recommendation_preferences_preferred_resources_lifecycle.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.recommendation-preferences-resource-level-overrides-account-level", "deployments": [], "key": "compute-optimizer/recommendation-preferences-resource-level-overrides-account-level", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:DeleteRecommendationPreferences", "compute-optimizer:GetEffectiveRecommendationPreferences", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRecommendationPreferences", "compute-optimizer:PutRecommendationPreferences", "compute-optimizer:UpdateEnrollmentStatus", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_recommendation_preferences_resource_level_overrides_account_level.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.recommendation-preferences-utilization-preferences-lifecycle", "deployments": [], "key": "compute-optimizer/recommendation-preferences-utilization-preferences-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["compute-optimizer:DeleteRecommendationPreferences", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetRecommendationPreferences", "compute-optimizer:PutRecommendationPreferences", "compute-optimizer:UpdateEnrollmentStatus", "sts:GetCallerIdentity"], "path": "behavioral/compute-optimizer/check_recommendation_preferences_utilization_preferences_lifecycle.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.update-enrollment-status-include-member-accounts-non-management-rejected", "deployments": [], "key": "compute-optimizer/update-enrollment-status-include-member-accounts-non-management-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer/check_update_enrollment_status_include_member_accounts_non_management_rejected.py", "service": "compute-optimizer"} {"check_id": "compute-optimizer.update-enrollment-status-pending-value-rejected", "deployments": [], "key": "compute-optimizer/update-enrollment-status-pending-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["compute-optimizer:GetEnrollmentStatus", "compute-optimizer:UpdateEnrollmentStatus"], "path": "behavioral/compute-optimizer/check_update_enrollment_status_pending_value_rejected.py", "service": "compute-optimizer"} {"check_id": "config.aggregate-compliance-details-consistency", "deployments": [], "key": "config/aggregate-compliance-details-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetComplianceDetailsByConfigRule", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregate_compliance_details_consistency.py", "service": "config"} {"check_id": "config.aggregate-compliance-details-reflect-source-rule-evaluation", "deployments": [], "key": "config/aggregate-compliance-details-reflect-source-rule-evaluation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "config:DeleteAggregationAuthorization", "config:DeleteConfigRule", "config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetComplianceDetailsByConfigRule", "config:PutAggregationAuthorization", "config:PutConfigRule", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregate_compliance_details_reflect_source_rule_evaluation.py", "service": "config"} {"check_id": "config.aggregate-compliance-summary-reflects-source-evaluations", "deployments": [], "key": "config/aggregate-compliance-summary-reflects-source-evaluations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetAggregateConfigRuleComplianceSummary", "config:GetComplianceDetailsByConfigRule", "config:PutConfigRule", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregate_compliance_summary_reflects_source_evaluations.py", "service": "config"} {"check_id": "config.aggregate-config-rule-compliance-summary-matches-detail", "deployments": [], "key": "config/aggregate-config-rule-compliance-summary-matches-detail", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationAggregatorSourcesStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetAggregateConfigRuleComplianceSummary", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregate_config_rule_compliance_summary_matches_detail.py", "service": "config"} {"check_id": "config.aggregate-config-rule-compliance-summary-matches-details", "deployments": [], "key": "config/aggregate-config-rule-compliance-summary-matches-details", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteAggregationAuthorization", "config:DeleteConfigRule", "config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetAggregateConfigRuleComplianceSummary", "config:GetComplianceDetailsByConfigRule", "config:PutAggregationAuthorization", "config:PutConfigRule", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregate_config_rule_compliance_summary_matches_details.py", "service": "config"} {"check_id": "config.aggregate-conformance-pack-compliance-summary-consistency", "deployments": [], "key": "config/aggregate-conformance-pack-compliance-summary-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteAggregationAuthorization", "config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackCompliance", "config:DescribeConformancePackStatus", "config:DescribeDeliveryChannels", "config:GetAggregateConformancePackComplianceSummary", "config:PutAggregationAuthorization", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregate_conformance_pack_compliance_summary_consistency.py", "service": "config"} {"check_id": "config.aggregate-conformance-pack-compliance-summary-reflects-pack-status", "deployments": [], "key": "config/aggregate-conformance-pack-compliance-summary-reflects-pack-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteAggregationAuthorization", "config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:DescribeDeliveryChannels", "config:GetAggregateConformancePackComplianceSummary", "config:GetConformancePackComplianceSummary", "config:PutAggregationAuthorization", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregate_conformance_pack_compliance_summary_reflects_pack_status.py", "service": "config"} {"check_id": "config.aggregate-query-surface", "deployments": [], "key": "config/aggregate-query-surface", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["config:BatchGetAggregateResourceConfig", "config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeAggregateComplianceByConfigRules", "config:DescribeAggregateComplianceByConformancePacks", "config:DescribeConfigurationAggregatorSourcesStatus", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:DescribePendingAggregationRequests", "config:GetAggregateComplianceDetailsByConfigRule", "config:GetAggregateConfigRuleComplianceSummary", "config:GetAggregateConformancePackComplianceSummary", "config:GetAggregateDiscoveredResourceCounts", "config:GetAggregateResourceConfig", "config:ListAggregateDiscoveredResources", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:SelectAggregateResourceConfig", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregate_query_surface.py", "service": "config"} {"check_id": "config.aggregation-authorization-idempotent-put", "deployments": [], "key": "config/aggregation-authorization-idempotent-put", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteAggregationAuthorization", "config:DescribeAggregationAuthorizations", "config:PutAggregationAuthorization"], "path": "behavioral/config/check_aggregation_authorization_idempotent_put.py", "service": "config"} {"check_id": "config.aggregation-authorization-lifecycle", "deployments": [], "key": "config/aggregation-authorization-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteAggregationAuthorization", "config:DescribeAggregationAuthorizations", "config:PutAggregationAuthorization"], "path": "behavioral/config/check_aggregation_authorization_lifecycle.py", "service": "config"} {"check_id": "config.aggregation-authorization-tags-round-trip-and-deleted-not-found", "deployments": [], "key": "config/aggregation-authorization-tags-round-trip-and-deleted-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteAggregationAuthorization", "config:DescribeAggregationAuthorizations", "config:ListTagsForResource", "config:PutAggregationAuthorization", "config:TagResource", "config:UntagResource"], "path": "behavioral/config/check_aggregation_authorization_tags_round_trip_and_deleted_not_found.py", "service": "config"} {"check_id": "config.aggregator-source-exclusivity-rejected", "deployments": [], "key": "config/aggregator-source-exclusivity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:DescribeConfigurationAggregators", "config:PutConfigurationAggregator"], "path": "behavioral/config/check_aggregator_source_exclusivity_rejected.py", "service": "config"} {"check_id": "config.aggregator-sources-status", "deployments": [], "key": "config/aggregator-sources-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:DescribeConfigurationAggregatorSourcesStatus", "config:PutConfigurationAggregator", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregator_sources_status.py", "service": "config"} {"check_id": "config.aggregator-update-and-tagging", "deployments": [], "key": "config/aggregator-update-and-tagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:DescribeConfigurationAggregators", "config:ListTagsForResource", "config:PutConfigurationAggregator", "config:TagResource", "config:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregator_update_and_tagging.py", "service": "config"} {"check_id": "config.aggregator-visibility-flow", "deployments": [], "key": "config/aggregator-visibility-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetAggregateResourceConfig", "config:ListAggregateDiscoveredResources", "config:ListDiscoveredResources", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_aggregator_visibility_flow.py", "service": "config"} {"check_id": "config.associate-disassociate-resource-types", "deployments": [], "key": "config/associate-disassociate-resource-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:AssociateResourceTypes", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorders", "config:DisassociateResourceTypes", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/config/check_associate_disassociate_resource_types.py", "service": "config"} {"check_id": "config.batch-get-aggregate-resource-config-malformed-batch-rejected", "deployments": [], "key": "config/batch-get-aggregate-resource-config-malformed-batch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:BatchGetAggregateResourceConfig", "config:DeleteConfigurationAggregator", "config:PutConfigurationAggregator", "sts:GetCallerIdentity"], "path": "behavioral/config/check_batch_get_aggregate_resource_config_malformed_batch_rejected.py", "service": "config"} {"check_id": "config.batch-get-aggregate-resource-config-matches-individual-gets", "deployments": [], "key": "config/batch-get-aggregate-resource-config-matches-individual-gets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:BatchGetAggregateResourceConfig", "config:DeleteConfigurationAggregator", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:GetAggregateResourceConfig", "config:PutConfigurationAggregator", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_batch_get_aggregate_resource_config_matches_individual_gets.py", "service": "config"} {"check_id": "config.batch-get-aggregate-resource-config-nonexistent-aggregator-rejected", "deployments": [], "key": "config/batch-get-aggregate-resource-config-nonexistent-aggregator-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:BatchGetAggregateResourceConfig", "config:DeleteConfigurationAggregator", "config:PutConfigurationAggregator", "sts:GetCallerIdentity"], "path": "behavioral/config/check_batch_get_aggregate_resource_config_nonexistent_aggregator_rejected.py", "service": "config"} {"check_id": "config.compliance-surfaces-for-config-rule", "deployments": [], "key": "config/compliance-surfaces-for-config-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteEvaluationResults", "config:DescribeComplianceByConfigRule", "config:DescribeComplianceByResource", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:GetComplianceDetailsByConfigRule", "config:GetComplianceDetailsByResource", "config:GetComplianceSummaryByConfigRule", "config:GetComplianceSummaryByResourceType", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/config/check_compliance_surfaces_for_config_rule.py", "service": "config"} {"check_id": "config.concurrent-delete-config-rule-race", "deployments": [], "key": "config/concurrent-delete-config-rule-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles"], "path": "behavioral/config/check_concurrent_delete_config_rule_race.py", "service": "config"} {"check_id": "config.concurrent-put-service-linked-recorder-conflict", "deployments": [], "key": "config/concurrent-put-service-linked-recorder-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteServiceLinkedConfigurationRecorder", "config:ListConfigurationRecorders", "config:PutServiceLinkedConfigurationRecorder"], "path": "behavioral/config/check_concurrent_put_service_linked_recorder_conflict.py", "service": "config"} {"check_id": "config.concurrent-start-remediation-execution-dedup", "deployments": [], "key": "config/concurrent-start-remediation-execution-dedup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigurationRecorders", "config:DescribeRemediationExecutionStatus", "config:GetComplianceDetailsByConfigRule", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StartRemediationExecution", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sns:CreateTopic", "sns:DeleteTopic", "ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DeleteParameter", "ssm:DescribeAutomationExecutions", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/config/check_concurrent_start_remediation_execution_dedup.py", "service": "config"} {"check_id": "config.config-rule-custom-policy-details-validated", "deployments": [], "key": "config/config-rule-custom-policy-details-validated", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:GetCustomRulePolicy", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/config/check_config_rule_custom_policy_details_validated.py", "service": "config"} {"check_id": "config.config-rule-deploy-triggers-evaluation", "deployments": [], "key": "config/config-rule-deploy-triggers-evaluation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeComplianceByConfigRule", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:ListDiscoveredResources", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "sts:GetCallerIdentity"], "path": "behavioral/config/check_config_rule_deploy_triggers_evaluation.py", "service": "config"} {"check_id": "config.config-rule-input-parameters-unicode-preserved-round-trip", "deployments": [], "key": "config/config-rule-input-parameters-unicode-preserved-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_config_rule_input_parameters_unicode_preserved_round_trip.py", "service": "config"} {"check_id": "config.config-rule-lifecycle", "deployments": [], "key": "config/config-rule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_config_rule_lifecycle.py", "service": "config"} {"check_id": "config.config-rule-requires-recorder", "deployments": [], "key": "config/config-rule-requires-recorder", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder"], "path": "behavioral/config/check_config_rule_requires_recorder.py", "service": "config"} {"check_id": "config.config-rule-scope-and-frequency-rejected", "deployments": [], "key": "config/config-rule-scope-and-frequency-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/config/check_config_rule_scope_and_frequency_rejected.py", "service": "config"} {"check_id": "config.config-rule-scope-tags-unicode-preserved-round-trip", "deployments": [], "key": "config/config-rule-scope-tags-unicode-preserved-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_config_rule_scope_tags_unicode_preserved_round_trip.py", "service": "config"} {"check_id": "config.config-rule-scoped-by-tag-evaluates-only-the-tagged-resource", "deployments": [], "key": "config/config-rule-scoped-by-tag-evaluates-only-the-tagged-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetComplianceDetailsByConfigRule", "config:GetResourceConfigHistory", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_config_rule_scoped_by_tag_evaluates_only_the_tagged_resource.py", "service": "config"} {"check_id": "config.config-rule-start-evaluation-transitions", "deployments": [], "key": "config/config-rule-start-evaluation-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRuleEvaluationStatus", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_config_rule_start_evaluation_transitions.py", "service": "config"} {"check_id": "config.configuration-aggregator-lifecycle", "deployments": [], "key": "config/configuration-aggregator-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:DescribeConfigurationAggregators", "config:PutConfigurationAggregator", "sts:GetCallerIdentity"], "path": "behavioral/config/check_configuration_aggregator_lifecycle.py", "service": "config"} {"check_id": "config.configuration-recorder-lifecycle", "deployments": [], "key": "config/configuration-recorder-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "config:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_configuration_recorder_lifecycle.py", "service": "config"} {"check_id": "config.configuration-recorder-max-number-exceeded", "deployments": [], "key": "config/configuration-recorder-max-number-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorders", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles"], "path": "behavioral/config/check_configuration_recorder_max_number_exceeded.py", "service": "config"} {"check_id": "config.configuration-recorder-update-role-arn", "deployments": [], "key": "config/configuration-recorder-update-role-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorders", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "sts:GetCallerIdentity"], "path": "behavioral/config/check_configuration_recorder_update_role_arn.py", "service": "config"} {"check_id": "config.conformance-pack-compliance-details-and-summary-consistent", "deployments": [], "key": "config/conformance-pack-compliance-details-and-summary-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:DescribeDeliveryChannels", "config:GetConformancePackComplianceDetails", "config:GetConformancePackComplianceSummary", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_conformance_pack_compliance_details_and_summary_consistent.py", "service": "config"} {"check_id": "config.conformance-pack-compliance-details-roll-up-to-summary", "deployments": [], "key": "config/conformance-pack-compliance-details-roll-up-to-summary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:DescribeDeliveryChannels", "config:GetConformancePackComplianceDetails", "config:GetConformancePackComplianceSummary", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_conformance_pack_compliance_details_roll_up_to_summary.py", "service": "config"} {"check_id": "config.conformance-pack-deploy-compliance-summary", "deployments": [], "key": "config/conformance-pack-deploy-compliance-summary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:DescribeDeliveryChannels", "config:GetConformancePackComplianceSummary", "config:ListDiscoveredResources", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_conformance_pack_deploy_compliance_summary.py", "service": "config"} {"check_id": "config.conformance-pack-lifecycle", "deployments": [], "key": "config/conformance-pack-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:DescribeConformancePacks", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/config/check_conformance_pack_lifecycle.py", "service": "config"} {"check_id": "config.custom-rule-policy-retrieval-matches-put", "deployments": [], "key": "config/custom-rule-policy-retrieval-matches-put", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorders", "config:GetCustomRulePolicy", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_custom_rule_policy_retrieval_matches_put.py", "service": "config"} {"check_id": "config.custom-rule-policy-round-trip", "deployments": [], "key": "config/custom-rule-policy-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorders", "config:GetCustomRulePolicy", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_custom_rule_policy_round_trip.py", "service": "config"} {"check_id": "config.custom-rule-policy-text-preserved-exact", "deployments": [], "key": "config/custom-rule-policy-text-preserved-exact", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorders", "config:GetCustomRulePolicy", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_custom_rule_policy_text_preserved_exact.py", "service": "config"} {"check_id": "config.delete-aggregation-authorization-malformed-account-rejected", "deployments": [], "key": "config/delete-aggregation-authorization-malformed-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteAggregationAuthorization", "config:DescribeAggregationAuthorizations", "config:PutAggregationAuthorization"], "path": "behavioral/config/check_delete_aggregation_authorization_malformed_account_rejected.py", "service": "config"} {"check_id": "config.delete-config-rule-with-attached-remediation-rejected", "deployments": [], "key": "config/delete-config-rule-with-attached-remediation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:ListTagsForResource", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "config:TagResource", "config:UntagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_delete_config_rule_with_attached_remediation_rejected.py", "service": "config"} {"check_id": "config.delete-connector-nonexistent-rejected", "deployments": [], "key": "config/delete-connector-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConnector", "config:GetConnector", "config:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/config/check_delete_connector_nonexistent_rejected.py", "service": "config"} {"check_id": "config.delete-pending-aggregation-request-malformed-identifiers-rejected", "deployments": [], "key": "config/delete-pending-aggregation-request-malformed-identifiers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeletePendingAggregationRequest", "config:DescribePendingAggregationRequests"], "path": "behavioral/config/check_delete_pending_aggregation_request_malformed_identifiers_rejected.py", "service": "config"} {"check_id": "config.delete-remediation-exceptions-nonexistent-rejected", "deployments": [], "key": "config/delete-remediation-exceptions-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteRemediationExceptions", "config:DescribeRemediationExceptions"], "path": "behavioral/config/check_delete_remediation_exceptions_nonexistent_rejected.py", "service": "config"} {"check_id": "config.delete-service-linked-recorder-conflict-while-active-blocked", "deployments": [], "key": "config/delete-service-linked-recorder-conflict-while-active-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteServiceLinkedConfigurationRecorder", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:ListConfigurationRecorders", "config:PutServiceLinkedConfigurationRecorder", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder"], "path": "behavioral/config/check_delete_service_linked_recorder_conflict_while_active_blocked.py", "service": "config"} {"check_id": "config.delete-service-linked-recorder-while-recording-conflict-blocked", "deployments": [], "key": "config/delete-service-linked-recorder-while-recording-conflict-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteServiceLinkedConfigurationRecorder", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:ListConfigurationRecorders", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutServiceLinkedConfigurationRecorder", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder"], "path": "behavioral/config/check_delete_service_linked_recorder_while_recording_conflict_blocked.py", "service": "config"} {"check_id": "config.deliver-config-snapshot", "deployments": [], "key": "config/deliver-config-snapshot", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeliverConfigSnapshot", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannelStatus", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_deliver_config_snapshot.py", "service": "config"} {"check_id": "config.delivery-channel-bucket-policy-statement-required", "deployments": [], "key": "config/delivery-channel-bucket-policy-statement-required", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:CreateServiceLinkedRole", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_delivery_channel_bucket_policy_statement_required.py", "service": "config"} {"check_id": "config.delivery-channel-delete-blocked-while-recording", "deployments": [], "key": "config/delivery-channel-delete-blocked-while-recording", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_delivery_channel_delete_blocked_while_recording.py", "service": "config"} {"check_id": "config.delivery-channel-invalid-arn-fields-rejected", "deployments": [], "key": "config/delivery-channel-invalid-arn-fields-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_delivery_channel_invalid_arn_fields_rejected.py", "service": "config"} {"check_id": "config.delivery-channel-lifecycle", "deployments": [], "key": "config/delivery-channel-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_delivery_channel_lifecycle.py", "service": "config"} {"check_id": "config.delivery-channel-requires-recorder", "deployments": [], "key": "config/delivery-channel-requires-recorder", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/config/check_delivery_channel_requires_recorder.py", "service": "config"} {"check_id": "config.delivery-channel-snapshot-frequency-bounds-the-next-delivery-time", "deployments": [], "key": "config/delivery-channel-snapshot-frequency-bounds-the-next-delivery-time", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeliverConfigSnapshot", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannelStatus", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_delivery_channel_snapshot_frequency_bounds_the_next_delivery_time.py", "service": "config"} {"check_id": "config.deploy-config-rule-cloudformation-evaluates-resource", "deployments": [], "key": "config/deploy-config-rule-cloudformation-evaluates-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:GetComplianceDetailsByConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_deploy_config_rule_cloudformation_evaluates_resource.py", "service": "config"} {"check_id": "config.deploy-configuration-recorder-cloudformation-actually-records", "deployments": [], "key": "config/deploy-configuration-recorder-cloudformation-actually-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "s3:GetBucketTagging", "s3:PutBucketTagging"], "path": "behavioral/config/check_deploy_configuration_recorder_cloudformation_actually_records.py", "service": "config"} {"check_id": "config.deploy-conformance-pack-duplicate-create-rejected", "deployments": [], "key": "config/deploy-conformance-pack-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_deploy_conformance_pack_duplicate_create_rejected.py", "service": "config"} {"check_id": "config.deploy-conformance-pack-enforces-rules-via-cloudformation", "deployments": [], "key": "config/deploy-conformance-pack-enforces-rules-via-cloudformation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackCompliance", "config:DescribeConformancePackStatus", "config:DescribeDeliveryChannels", "config:GetConformancePackComplianceSummary", "config:ListDiscoveredResources", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_deploy_conformance_pack_enforces_rules_via_cloudformation.py", "service": "config"} {"check_id": "config.describe-config-rules-paginates-at-fixed-page-size", "deployments": [], "key": "config/describe-config-rules-paginates-at-fixed-page-size", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DescribeConfigRules", "config:PutConfigRule", "config:PutConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_describe_config_rules_paginates_at_fixed_page_size.py", "service": "config"} {"check_id": "config.describe-remediation-execution-status-monotonic-transitions", "deployments": [], "key": "config/describe-remediation-execution-status-monotonic-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeRemediationExecutionStatus", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StartRemediationExecution", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_describe_remediation_execution_status_monotonic_transitions.py", "service": "config"} {"check_id": "config.discovered-resource-counts-and-config-history", "deployments": [], "key": "config/discovered-resource-counts-and-config-history", "labels": ["axis:rejection", "plane:control"], "operations": ["config:GetDiscoveredResourceCounts", "config:GetResourceConfigHistory"], "path": "behavioral/config/check_discovered_resource_counts_and_config_history.py", "service": "config"} {"check_id": "config.duplicate-service-linked-recorder-rejected", "deployments": [], "key": "config/duplicate-service-linked-recorder-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteServiceLinkedConfigurationRecorder", "config:ListConfigurationRecorders", "config:PutServiceLinkedConfigurationRecorder"], "path": "behavioral/config/check_duplicate_service_linked_recorder_rejected.py", "service": "config"} {"check_id": "config.e2e-connector-malformed-arn-rejected", "deployments": [], "key": "config/e2e-connector-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConnector", "config:GetConnector", "config:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/config/check_e2e_connector_malformed_arn_rejected.py", "service": "config"} {"check_id": "config.e2e-external-evaluation-persists-when-delete-evaluation-results-denied", "deployments": [], "key": "config/e2e-external-evaluation-persists-when-delete-evaluation-results-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DeleteEvaluationResults", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:GetComplianceDetailsByConfigRule", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_e2e_external_evaluation_persists_when_delete_evaluation_results_denied.py", "service": "config"} {"check_id": "config.e2e-remediation-auto-execution-consequence", "deployments": [], "key": "config/e2e-remediation-auto-execution-consequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:DescribeRemediationConfigurations", "config:DescribeRemediationExecutionStatus", "config:GetComplianceDetailsByResource", "config:ListDiscoveredResources", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigurationRecorder", "config:StartRemediationExecution", "config:StopConfigurationRecorder", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_e2e_remediation_auto_execution_consequence.py", "service": "config"} {"check_id": "config.e2e-remediation-execution-resolves-noncompliant-resource", "deployments": [], "key": "config/e2e-remediation-execution-resolves-noncompliant-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigurationRecorders", "config:DescribeRemediationExecutionStatus", "config:GetComplianceDetailsByConfigRule", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StartRemediationExecution", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DeleteParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/config/check_e2e_remediation_execution_resolves_noncompliant_resource.py", "service": "config"} {"check_id": "config.e2e-resource-evaluation-summary-flow", "deployments": [], "key": "config/e2e-resource-evaluation-summary-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:GetResourceEvaluationSummary", "config:ListResourceEvaluations", "config:StartResourceEvaluation"], "path": "behavioral/config/check_e2e_resource_evaluation_summary_flow.py", "service": "config"} {"check_id": "config.external-evaluation-requires-process-check-rule", "deployments": [], "key": "config/external-evaluation-requires-process-check-rule", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeComplianceByConfigRule", "config:DescribeConfigRules", "config:GetComplianceDetailsByConfigRule", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "config:TagResource", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/config/check_external_evaluation_requires_process_check_rule.py", "service": "config"} {"check_id": "config.get-aggregate-resource-config-not-discovered-rejected", "deployments": [], "key": "config/get-aggregate-resource-config-not-discovered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:DescribeConfigurationAggregators", "config:GetAggregateResourceConfig", "config:PutConfigurationAggregator", "sts:GetCallerIdentity"], "path": "behavioral/config/check_get_aggregate_resource_config_not_discovered_rejected.py", "service": "config"} {"check_id": "config.get-aggregate-resource-config-oversized-item-rejected", "deployments": [], "key": "config/get-aggregate-resource-config-oversized-item-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:DescribeConfigurationAggregators", "config:GetAggregateResourceConfig", "config:PutConfigurationAggregator", "sts:GetCallerIdentity"], "path": "behavioral/config/check_get_aggregate_resource_config_oversized_item_rejected.py", "service": "config"} {"check_id": "config.get-conformance-pack-compliance-details-unknown-rule-filter-rejected", "deployments": [], "key": "config/get-conformance-pack-compliance-details-unknown-rule-filter-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:GetConformancePackComplianceDetails", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_get_conformance_pack_compliance_details_unknown_rule_filter_rejected.py", "service": "config"} {"check_id": "config.get-custom-rule-policy-non-policy-rule-rejected", "deployments": [], "key": "config/get-custom-rule-policy-non-policy-rule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:GetCustomRulePolicy", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_get_custom_rule_policy_non_policy_rule_rejected.py", "service": "config"} {"check_id": "config.get-custom-rule-policy-on-managed-rule-rejected", "deployments": [], "key": "config/get-custom-rule-policy-on-managed-rule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:GetCustomRulePolicy", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_get_custom_rule_policy_on_managed_rule_rejected.py", "service": "config"} {"check_id": "config.get-resource-config-history-window-and-forward-order-select-real-items", "deployments": [], "key": "config/get-resource-config-history-window-and-forward-order-select-real-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:BatchGetResourceConfig", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/config/check_get_resource_config_history_window_and_forward_order_select_real_items.py", "service": "config"} {"check_id": "config.get-resource-evaluation-summary-unknown-token-rejected", "deployments": [], "key": "config/get-resource-evaluation-summary-unknown-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:GetResourceEvaluationSummary", "config:StartResourceEvaluation"], "path": "behavioral/config/check_get_resource_evaluation_summary_unknown_token_rejected.py", "service": "config"} {"check_id": "config.list-discovered-resources-omits-a-deleted-resource-until-include-deleted-requested", "deployments": [], "key": "config/list-discovered-resources-omits-a-deleted-resource-until-include-deleted-requested", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:ListDiscoveredResources", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_list_discovered_resources_omits_a_deleted_resource_until_include_deleted_requested.py", "service": "config"} {"check_id": "config.list-resource-evaluations-time-range-ordering", "deployments": [], "key": "config/list-resource-evaluations-time-range-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:ListResourceEvaluations", "config:StartResourceEvaluation"], "path": "behavioral/config/check_list_resource_evaluations_time_range_ordering.py", "service": "config"} {"check_id": "config.list-stored-queries-pagination-completeness", "deployments": [], "key": "config/list-stored-queries-pagination-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:ListStoredQueries", "config:PutStoredQuery"], "path": "behavioral/config/check_list_stored_queries_pagination_completeness.py", "service": "config"} {"check_id": "config.op-delete-aggregator-nonexistent-and-bad-name", "deployments": [], "key": "config/op-delete-aggregator-nonexistent-and-bad-name", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:DescribeConfigurationAggregators", "config:PutConfigurationAggregator", "sts:GetCallerIdentity"], "path": "behavioral/config/check_op_delete_aggregator_nonexistent_and_bad_name.py", "service": "config"} {"check_id": "config.op-delete-config-rule-nonexistent", "deployments": [], "key": "config/op-delete-config-rule-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_op_delete_config_rule_nonexistent.py", "service": "config"} {"check_id": "config.op-delete-delivery-channel-nonexistent", "deployments": [], "key": "config/op-delete-delivery-channel-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/config/check_op_delete_delivery_channel_nonexistent.py", "service": "config"} {"check_id": "config.op-delete-retention-configuration-nonexistent", "deployments": [], "key": "config/op-delete-retention-configuration-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteRetentionConfiguration", "config:DescribeRetentionConfigurations", "config:PutRetentionConfiguration"], "path": "behavioral/config/check_op_delete_retention_configuration_nonexistent.py", "service": "config"} {"check_id": "config.op-delete-stored-query-nonexistent", "deployments": [], "key": "config/op-delete-stored-query-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:GetStoredQuery", "config:PutStoredQuery"], "path": "behavioral/config/check_op_delete_stored_query_nonexistent.py", "service": "config"} {"check_id": "config.op-delivery-channel-unvalidated-bucket", "deployments": [], "key": "config/op-delivery-channel-unvalidated-bucket", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_op_delivery_channel_unvalidated_bucket.py", "service": "config"} {"check_id": "config.op-put-config-rule-unknown-managed-source", "deployments": [], "key": "config/op-put-config-rule-unknown-managed-source", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles"], "path": "behavioral/config/check_op_put_config_rule_unknown_managed_source.py", "service": "config"} {"check_id": "config.op-start-nonexistent-recorder", "deployments": [], "key": "config/op-start-nonexistent-recorder", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DescribeConfigurationRecorders", "config:StartConfigurationRecorder"], "path": "behavioral/config/check_op_start_nonexistent_recorder.py", "service": "config"} {"check_id": "config.overly-permissive-aggregator-invalid-account-id", "deployments": [], "key": "config/overly-permissive-aggregator-invalid-account-id", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:DescribeConfigurationAggregators", "config:PutConfigurationAggregator", "sts:GetCallerIdentity"], "path": "behavioral/config/check_overly_permissive_aggregator_invalid_account_id.py", "service": "config"} {"check_id": "config.overly-permissive-put-evaluations-invalid-result-token", "deployments": [], "key": "config/overly-permissive-put-evaluations-invalid-result-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:GetComplianceDetailsByConfigRule", "config:GetComplianceDetailsByResource", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutEvaluations", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/config/check_overly_permissive_put_evaluations_invalid_result_token.py", "service": "config"} {"check_id": "config.overly-permissive-tag-resource-unknown-arn", "deployments": [], "key": "config/overly-permissive-tag-resource-unknown-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:ListTagsForResource", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "config:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/config/check_overly_permissive_tag_resource_unknown_arn.py", "service": "config"} {"check_id": "config.pending-aggregation-request-lifecycle", "deployments": [], "key": "config/pending-aggregation-request-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeletePendingAggregationRequest", "config:DescribePendingAggregationRequests"], "path": "behavioral/config/check_pending_aggregation_request_lifecycle.py", "service": "config"} {"check_id": "config.proactive-resource-evaluation-reaches-terminal-state", "deployments": [], "key": "config/proactive-resource-evaluation-reaches-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:GetResourceEvaluationSummary", "config:ListResourceEvaluations", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StartResourceEvaluation", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/config/check_proactive_resource_evaluation_reaches_terminal_state.py", "service": "config"} {"check_id": "config.put-aggregation-authorization-malformed-account-rejected", "deployments": [], "key": "config/put-aggregation-authorization-malformed-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteAggregationAuthorization", "config:DescribeAggregationAuthorizations", "config:PutAggregationAuthorization"], "path": "behavioral/config/check_put_aggregation_authorization_malformed_account_rejected.py", "service": "config"} {"check_id": "config.put-config-rule-custom-lambda-full-field-round-trip", "deployments": [], "key": "config/put-config-rule-custom-lambda-full-field-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DescribeConfigRules", "config:PutConfigRule", "config:PutConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/config/check_put_config_rule_custom_lambda_full_field_round_trip.py", "service": "config"} {"check_id": "config.put-conformance-pack-invalid-template-rejected", "deployments": [], "key": "config/put-conformance-pack-invalid-template-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConformancePack", "config:DescribeConformancePackStatus", "config:DescribeConformancePacks", "config:PutConformancePack"], "path": "behavioral/config/check_put_conformance_pack_invalid_template_rejected.py", "service": "config"} {"check_id": "config.put-external-evaluation-non-process-check-rule-rejected", "deployments": [], "key": "config/put-external-evaluation-non-process-check-rule-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:GetComplianceDetailsByResource", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_put_external_evaluation_non_process_check_rule_rejected.py", "service": "config"} {"check_id": "config.put-external-evaluation-timestamp-preserved", "deployments": [], "key": "config/put-external-evaluation-timestamp-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:GetComplianceDetailsByConfigRule", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_put_external_evaluation_timestamp_preserved.py", "service": "config"} {"check_id": "config.put-resource-config-and-list-discovered", "deployments": [], "key": "config/put-resource-config-and-list-discovered", "labels": ["axis:rejection", "plane:control"], "operations": ["config:BatchGetResourceConfig", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteResourceConfig", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:ListDiscoveredResources", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutResourceConfig", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_put_resource_config_and_list_discovered.py", "service": "config"} {"check_id": "config.put-resource-config-rejects-unregistered-type", "deployments": [], "key": "config/put-resource-config-rejects-unregistered-type", "labels": ["axis:rejection", "plane:control"], "operations": ["config:BatchGetResourceConfig", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:ListDiscoveredResources", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutResourceConfig", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_put_resource_config_rejects_unregistered_type.py", "service": "config"} {"check_id": "config.put-service-linked-recorder-limit-exceeded-blocked", "deployments": [], "key": "config/put-service-linked-recorder-limit-exceeded-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteServiceLinkedConfigurationRecorder", "config:ListConfigurationRecorders", "config:PutServiceLinkedConfigurationRecorder", "sts:GetCallerIdentity"], "path": "behavioral/config/check_put_service_linked_recorder_limit_exceeded_blocked.py", "service": "config"} {"check_id": "config.put-third-party-service-linked-recorder-invalid-principal-rejected", "deployments": [], "key": "config/put-third-party-service-linked-recorder-invalid-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:ListConfigurationRecorders", "config:PutThirdPartyServiceLinkedConfigurationRecorder", "sts:GetCallerIdentity"], "path": "behavioral/config/check_put_third_party_service_linked_recorder_invalid_principal_rejected.py", "service": "config"} {"check_id": "config.recorder-status-timestamps-bracket-a-real-start-stop-restart", "deployments": [], "key": "config/recorder-status-timestamps-bracket-a-real-start-stop-restart", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:ListConfigurationRecorders", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_recorder_status_timestamps_bracket_a_real_start_stop_restart.py", "service": "config"} {"check_id": "config.remediation-auto-remediation-flow", "deployments": [], "key": "config/remediation-auto-remediation-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:DescribeRemediationExecutionStatus", "config:GetComplianceDetailsByResource", "config:ListDiscoveredResources", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StartRemediationExecution", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_remediation_auto_remediation_flow.py", "service": "config"} {"check_id": "config.remediation-configuration-and-exception-lifecycle", "deployments": [], "key": "config/remediation-configuration-and-exception-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DeleteRemediationExceptions", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:DescribeRemediationConfigurations", "config:DescribeRemediationExceptions", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:PutRemediationExceptions", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_remediation_configuration_and_exception_lifecycle.py", "service": "config"} {"check_id": "config.remediation-configuration-echoes-automatic-retry-settings-and-refuses-out-of-range", "deployments": [], "key": "config/remediation-configuration-echoes-automatic-retry-settings-and-refuses-out-of-range", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeRemediationConfigurations", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_remediation_configuration_echoes_automatic_retry_settings_and_refuses_out_of_range.py", "service": "config"} {"check_id": "config.remediation-configuration-lifecycle", "deployments": [], "key": "config/remediation-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:DescribeRemediationConfigurations", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "sts:GetCallerIdentity"], "path": "behavioral/config/check_remediation_configuration_lifecycle.py", "service": "config"} {"check_id": "config.remediation-exceptions-empty-vs-absent-message-preserved", "deployments": [], "key": "config/remediation-exceptions-empty-vs-absent-message-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DeleteRemediationExceptions", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:DescribeRemediationExceptions", "config:GetComplianceDetailsByConfigRule", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:PutRemediationExceptions", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_remediation_exceptions_empty_vs_absent_message_preserved.py", "service": "config"} {"check_id": "config.remediation-exceptions-lifecycle", "deployments": [], "key": "config/remediation-exceptions-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DeleteRemediationExceptions", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:DescribeRemediationExceptions", "config:GetComplianceDetailsByConfigRule", "config:ListDiscoveredResources", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:PutRemediationExceptions", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_remediation_exceptions_lifecycle.py", "service": "config"} {"check_id": "config.remediation-execution-retry-backoff-and-timeout", "deployments": [], "key": "config/remediation-execution-retry-backoff-and-timeout", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeRemediationConfigurations", "config:DescribeRemediationExecutionStatus", "config:GetComplianceDetailsByConfigRule", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StartRemediationExecution", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/config/check_remediation_execution_retry_backoff_and_timeout.py", "service": "config"} {"check_id": "config.resource-config-history-chronological-ordering", "deployments": [], "key": "config/resource-config-history-chronological-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:ListDiscoveredResources", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutResourceConfig", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_resource_config_history_chronological_ordering.py", "service": "config"} {"check_id": "config.resource-config-unicode-and-binary-blob-round-trip", "deployments": [], "key": "config/resource-config-unicode-and-binary-blob-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["config:BatchGetResourceConfig", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:ListDiscoveredResources", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutResourceConfig", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_resource_config_unicode_and_binary_blob_round_trip.py", "service": "config"} {"check_id": "config.resource-evaluation-summary-reflects-external-evaluation-result", "deployments": [], "key": "config/resource-evaluation-summary-reflects-external-evaluation-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteConformancePack", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeConformancePackStatus", "config:DescribeDeliveryChannels", "config:GetComplianceDetailsByResource", "config:PutConfigurationRecorder", "config:PutConformancePack", "config:PutDeliveryChannel", "config:PutExternalEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/config/check_resource_evaluation_summary_reflects_external_evaluation_result.py", "service": "config"} {"check_id": "config.resource-evaluation-summary-reflects-in-progress-then-complete", "deployments": [], "key": "config/resource-evaluation-summary-reflects-in-progress-then-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DescribeConfigRules", "config:GetResourceEvaluationSummary", "config:StartResourceEvaluation"], "path": "behavioral/config/check_resource_evaluation_summary_reflects_in_progress_then_complete.py", "service": "config"} {"check_id": "config.resource-evaluation-summary-reflects-proactive-evaluation", "deployments": [], "key": "config/resource-evaluation-summary-reflects-proactive-evaluation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:GetResourceEvaluationSummary", "config:StartResourceEvaluation"], "path": "behavioral/config/check_resource_evaluation_summary_reflects_proactive_evaluation.py", "service": "config"} {"check_id": "config.resource-evaluation-summary-ttl-expiry", "deployments": [], "key": "config/resource-evaluation-summary-ttl-expiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:GetResourceEvaluationSummary", "config:StartResourceEvaluation"], "path": "behavioral/config/check_resource_evaluation_summary_ttl_expiry.py", "service": "config"} {"check_id": "config.retention-configuration-boundary-values", "deployments": [], "key": "config/retention-configuration-boundary-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteRetentionConfiguration", "config:DescribeRetentionConfigurations", "config:PutRetentionConfiguration"], "path": "behavioral/config/check_retention_configuration_boundary_values.py", "service": "config"} {"check_id": "config.retention-configuration-lifecycle", "deployments": [], "key": "config/retention-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteRetentionConfiguration", "config:DescribeRetentionConfigurations", "config:PutRetentionConfiguration"], "path": "behavioral/config/check_retention_configuration_lifecycle.py", "service": "config"} {"check_id": "config.select-aggregate-resource-config-errors", "deployments": [], "key": "config/select-aggregate-resource-config-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:PutConfigurationAggregator", "config:SelectAggregateResourceConfig", "sts:GetCallerIdentity"], "path": "behavioral/config/check_select_aggregate_resource_config_errors.py", "service": "config"} {"check_id": "config.select-and-batch-get-resource-config", "deployments": [], "key": "config/select-and-batch-get-resource-config", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:BatchGetResourceConfig", "config:SelectResourceConfig"], "path": "behavioral/config/check_select_and_batch_get_resource_config.py", "service": "config"} {"check_id": "config.select-resource-config-count-and-group-by-agree-with-the-recorded-inventory", "deployments": [], "key": "config/select-resource-config-count-and-group-by-agree-with-the-recorded-inventory", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:ListDiscoveredResources", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:SelectResourceConfig", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config/check_select_resource_config_count_and_group_by_agree_with_the_recorded_inventory.py", "service": "config"} {"check_id": "config.select-resource-config-limit-and-next-token-rejected", "deployments": [], "key": "config/select-resource-config-limit-and-next-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:SelectResourceConfig"], "path": "behavioral/config/check_select_resource_config_limit_and_next_token_rejected.py", "service": "config"} {"check_id": "config.select-resource-config-unknown-property-rejected", "deployments": [], "key": "config/select-resource-config-unknown-property-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:SelectResourceConfig"], "path": "behavioral/config/check_select_resource_config_unknown_property_rejected.py", "service": "config"} {"check_id": "config.server-side-service-linked-recorder-policy-enforced", "deployments": [], "key": "config/server-side-service-linked-recorder-policy-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteServiceLinkedConfigurationRecorder", "config:DescribeConfigurationRecorders", "config:PutConfigurationRecorder", "config:PutServiceLinkedConfigurationRecorder"], "path": "behavioral/config/check_server_side_service_linked_recorder_policy_enforced.py", "service": "config"} {"check_id": "config.server-side-third-party-recorder-registers-managed-resource-types", "deployments": [], "key": "config/server-side-third-party-recorder-registers-managed-resource-types", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DescribeConfigurationRecorders", "config:ListConfigurationRecorders", "config:PutServiceLinkedConfigurationRecorder"], "path": "behavioral/config/check_server_side_third_party_recorder_registers_managed_resource_types.py", "service": "config"} {"check_id": "config.service-linked-configuration-recorder-duplicate-conflict-rejected", "deployments": [], "key": "config/service-linked-configuration-recorder-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteServiceLinkedConfigurationRecorder", "config:ListConfigurationRecorders", "config:PutServiceLinkedConfigurationRecorder", "sts:GetCallerIdentity"], "path": "behavioral/config/check_service_linked_configuration_recorder_duplicate_conflict_rejected.py", "service": "config"} {"check_id": "config.service-linked-configuration-recorder-lifecycle", "deployments": [], "key": "config/service-linked-configuration-recorder-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteServiceLinkedConfigurationRecorder", "config:DescribeConfigurationRecorders", "config:PutServiceLinkedConfigurationRecorder"], "path": "behavioral/config/check_service_linked_configuration_recorder_lifecycle.py", "service": "config"} {"check_id": "config.service-linked-recorder-lifecycle", "deployments": [], "key": "config/service-linked-recorder-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteServiceLinkedConfigurationRecorder", "config:DescribeConfigurationRecorders", "config:ListConfigurationRecorders", "config:PutServiceLinkedConfigurationRecorder"], "path": "behavioral/config/check_service_linked_recorder_lifecycle.py", "service": "config"} {"check_id": "config.start-config-rules-evaluation-transition", "deployments": [], "key": "config/start-config-rules-evaluation-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRuleEvaluationStatus", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutEvaluations", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:CreateServiceLinkedRole", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/config/check_start_config_rules_evaluation_transition.py", "service": "config"} {"check_id": "config.start-recorder-without-delivery-channel", "deployments": [], "key": "config/start-recorder-without-delivery-channel", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/config/check_start_recorder_without_delivery_channel.py", "service": "config"} {"check_id": "config.start-remediation-execution-missing-configuration-rejected", "deployments": [], "key": "config/start-remediation-execution-missing-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:DescribeRemediationExecutionStatus", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigurationRecorder", "config:StartRemediationExecution", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "ssm:CreateDocument", "ssm:DeleteDocument", "sts:GetCallerIdentity"], "path": "behavioral/config/check_start_remediation_execution_missing_configuration_rejected.py", "service": "config"} {"check_id": "config.start-resource-evaluation-detective-mode-rejected", "deployments": [], "key": "config/start-resource-evaluation-detective-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:GetResourceEvaluationSummary", "config:ListResourceEvaluations", "config:StartResourceEvaluation"], "path": "behavioral/config/check_start_resource_evaluation_detective_mode_rejected.py", "service": "config"} {"check_id": "config.start-resource-evaluation-idempotency-mismatch-rejected", "deployments": [], "key": "config/start-resource-evaluation-idempotency-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:GetResourceEvaluationSummary", "config:StartResourceEvaluation"], "path": "behavioral/config/check_start_resource_evaluation_idempotency_mismatch_rejected.py", "service": "config"} {"check_id": "config.start-resource-evaluation-idempotent-parameter-mismatch-rejected", "deployments": [], "key": "config/start-resource-evaluation-idempotent-parameter-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:GetResourceEvaluationSummary", "config:StartResourceEvaluation"], "path": "behavioral/config/check_start_resource_evaluation_idempotent_parameter_mismatch_rejected.py", "service": "config"} {"check_id": "config.stored-query-expression-unicode-round-trip", "deployments": [], "key": "config/stored-query-expression-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:GetStoredQuery", "config:PutStoredQuery"], "path": "behavioral/config/check_stored_query_expression_unicode_round_trip.py", "service": "config"} {"check_id": "config.stored-query-invalid-name-rejected", "deployments": [], "key": "config/stored-query-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:GetStoredQuery", "config:ListStoredQueries", "config:PutStoredQuery"], "path": "behavioral/config/check_stored_query_invalid_name_rejected.py", "service": "config"} {"check_id": "config.stored-query-lifecycle", "deployments": [], "key": "config/stored-query-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:GetStoredQuery", "config:ListStoredQueries", "config:PutStoredQuery"], "path": "behavioral/config/check_stored_query_lifecycle.py", "service": "config"} {"check_id": "config.stored-query-unicode-and-emoji-round-trip", "deployments": [], "key": "config/stored-query-unicode-and-emoji-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:GetStoredQuery", "config:PutStoredQuery"], "path": "behavioral/config/check_stored_query_unicode_and_emoji_round_trip.py", "service": "config"} {"check_id": "config.stored-query-unicode-expression-round-trip", "deployments": [], "key": "config/stored-query-unicode-expression-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:GetStoredQuery", "config:PutStoredQuery"], "path": "behavioral/config/check_stored_query_unicode_expression_round_trip.py", "service": "config"} {"check_id": "config.stored-query-update-in-place", "deployments": [], "key": "config/stored-query-update-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:GetStoredQuery", "config:ListStoredQueries", "config:PutStoredQuery"], "path": "behavioral/config/check_stored_query_update_in_place.py", "service": "config"} {"check_id": "config.tag-key-and-value-contract-limits-rejected", "deployments": [], "key": "config/tag-key-and-value-contract-limits-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteConfigurationAggregator", "config:ListTagsForResource", "config:PutConfigurationAggregator", "config:TagResource", "config:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/config/check_tag_key_and_value_contract_limits_rejected.py", "service": "config"} {"check_id": "config.tag-resource-lifecycle", "deployments": [], "key": "config/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorders", "config:ListTagsForResource", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "config:TagResource", "config:UntagResource", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/config/check_tag_resource_lifecycle.py", "service": "config"} {"check_id": "config.tag-resource-nonexistent-arn-rejected", "deployments": [], "key": "config/tag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:ListTagsForResource", "config:PutStoredQuery", "config:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/config/check_tag_resource_nonexistent_arn_rejected.py", "service": "config"} {"check_id": "config.tag-value-unicode-round-trip", "deployments": [], "key": "config/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:ListTagsForResource", "config:PutStoredQuery", "config:TagResource", "config:UntagResource"], "path": "behavioral/config/check_tag_value_unicode_round_trip.py", "service": "config"} {"check_id": "config.third-party-service-linked-recorder-creation-validation", "deployments": [], "key": "config/third-party-service-linked-recorder-creation-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["config:ListConfigurationRecorders", "config:PutThirdPartyServiceLinkedConfigurationRecorder", "sts:GetCallerIdentity"], "path": "behavioral/config/check_third_party_service_linked_recorder_creation_validation.py", "service": "config"} {"check_id": "config.third-party-service-linked-recorder-direct-customer-call-rejected", "deployments": [], "key": "config/third-party-service-linked-recorder-direct-customer-call-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["config:DeleteStoredQuery", "config:GetStoredQuery", "config:ListConfigurationRecorders", "config:PutStoredQuery", "config:PutThirdPartyServiceLinkedConfigurationRecorder", "sts:GetCallerIdentity"], "path": "behavioral/config/check_third_party_service_linked_recorder_direct_customer_call_rejected.py", "service": "config"} {"check_id": "config__events__sqs.config-compliance-change-event-reaches-eventbridge-with-old-and-new-verdicts", "deployments": [], "key": "config__events__sqs/config-compliance-change-event-reaches-eventbridge-with-old-and-new-verdicts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetComplianceDetailsByConfigRule", "config:GetResourceConfigHistory", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigRulesEvaluation", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/config__events__sqs/check_config_compliance_change_event_reaches_eventbridge_with_old_and_new_verdicts.py", "service": "config__events__sqs"} {"check_id": "config__iam.config-managed-policy-item-relates-to-the-roles-it-is-attached-to", "deployments": [], "key": "config__iam/config-managed-policy-item-relates-to-the-roles-it-is-attached-to", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:BatchGetResourceConfig", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListEntitiesForPolicy", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/config__iam/check_config_managed_policy_item_relates_to_the_roles_it_is_attached_to.py", "service": "config__iam"} {"check_id": "config__lambda__sqs.change-triggered-custom-rule-is-push-invoked-with-a-real-configuration-item", "deployments": [], "key": "config__lambda__sqs/change-triggered-custom-rule-is-push-invoked-with-a-real-configuration-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRuleEvaluationStatus", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetComplianceDetailsByConfigRule", "config:GetComplianceDetailsByResource", "config:GetResourceConfigHistory", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/config__lambda__sqs/check_change_triggered_custom_rule_is_push_invoked_with_a_real_configuration_item.py", "service": "config__lambda__sqs"} {"check_id": "config__lambda__sqs.change-triggered-rule-creation-is-denied-when-config-cannot-invoke-the-evaluator", "deployments": [], "key": "config__lambda__sqs/change-triggered-rule-creation-is-denied-when-config-cannot-invoke-the-evaluator", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetComplianceDetailsByConfigRule", "config:GetComplianceDetailsByResource", "config:GetResourceConfigHistory", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sts:GetCallerIdentity"], "path": "behavioral/config__lambda__sqs/check_change_triggered_rule_creation_is_denied_when_config_cannot_invoke_the_evaluator.py", "service": "config__lambda__sqs"} {"check_id": "config__s3__ssm.config-remediation-execution-without-configuration-rejected-and-resource-untouched", "deployments": [], "key": "config__s3__ssm/config-remediation-execution-without-configuration-rejected-and-resource-untouched", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DeleteRemediationConfiguration", "config:DescribeConfigRules", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:DescribeRemediationConfigurations", "config:DescribeRemediationExecutionStatus", "config:GetComplianceDetailsByConfigRule", "config:GetResourceConfigHistory", "config:PutConfigRule", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:PutRemediationConfigurations", "config:StartConfigurationRecorder", "config:StartRemediationExecution", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:ListRoles", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "ssm:DescribeDocument"], "path": "behavioral/config__s3__ssm/check_config_remediation_execution_without_configuration_rejected_and_resource_untouched.py", "service": "config__s3__ssm"} {"check_id": "config__sns__sqs.config-item-change-notification-diff-names-the-changed-field", "deployments": [], "key": "config__sns__sqs/config-item-change-notification-diff-names-the-changed-field", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/config__sns__sqs/check_config_item_change_notification_diff_names_the_changed_field.py", "service": "config__sns__sqs"} {"check_id": "config__sqs.config-batch-get-resource-config-returns-only-the-recorded-key-of-a-mixed-batch", "deployments": [], "key": "config__sqs/config-batch-get-resource-config-returns-only-the-recorded-key-of-a-mixed-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:BatchGetResourceConfig", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/config__sqs/check_config_batch_get_resource_config_returns_only_the_recorded_key_of_a_mixed_batch.py", "service": "config__sqs"} {"check_id": "config__sqs.config-history-rejects-unrecorded-queue-while-batch-get-omits-it", "deployments": [], "key": "config__sqs/config-history-rejects-unrecorded-queue-while-batch-get-omits-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["config:BatchGetResourceConfig", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:SelectResourceConfig", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/config__sqs/check_config_history_rejects_unrecorded_queue_while_batch_get_omits_it.py", "service": "config__sqs"} {"check_id": "config__sqs.config-queue-deletion-recorded-as-resource-deleted-configuration-item", "deployments": [], "key": "config__sqs/config-queue-deletion-recorded-as-resource-deleted-configuration-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/config__sqs/check_config_queue_deletion_recorded_as_resource_deleted_configuration_item.py", "service": "config__sqs"} {"check_id": "config__sqs.config-recorded-queue-configuration-item-echoes-live-attributes", "deployments": [], "key": "config__sqs/config-recorded-queue-configuration-item-echoes-live-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:BatchGetResourceConfig", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/config__sqs/check_config_recorded_queue_configuration_item_echoes_live_attributes.py", "service": "config__sqs"} {"check_id": "config__sqs.config-select-resource-config-returns-the-recorded-queue-row", "deployments": [], "key": "config__sqs/config-select-resource-config-returns-the-recorded-queue-row", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:SelectResourceConfig", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam:ListRoles", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue"], "path": "behavioral/config__sqs/check_config_select_resource_config_returns_the_recorded_queue_row.py", "service": "config__sqs"} {"check_id": "config__sqs.config-stopped-recorder-records-no-configuration-item-until-restarted", "deployments": [], "key": "config__sqs/config-stopped-recorder-records-no-configuration-item-until-restarted", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:DescribeConfigurationRecorderStatus", "config:DescribeConfigurationRecorders", "config:DescribeDeliveryChannels", "config:GetResourceConfigHistory", "config:PutConfigurationRecorder", "config:PutDeliveryChannel", "config:StartConfigurationRecorder", "config:StopConfigurationRecorder", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:SetQueueAttributes"], "path": "behavioral/config__sqs/check_config_stopped_recorder_records_no_configuration_item_until_restarted.py", "service": "config__sqs"} {"check_id": "connect-contact-lens.both-fields-whitespace-still-single-invalid-request", "deployments": [], "key": "connect-contact-lens/both-fields-whitespace-still-single-invalid-request", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_both_fields_whitespace_still_single_invalid_request.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.deleted-instance-lookup-rejected", "deployments": [], "key": "connect-contact-lens/deleted-instance-lookup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_deleted_instance_lookup_rejected.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.error-http-status-codes-match-documented-values", "deployments": [], "key": "connect-contact-lens/error-http-status-codes-match-documented-values", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_error_http_status_codes_match_documented_values.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.instance-active-state-then-contact-not-found", "deployments": [], "key": "connect-contact-lens/instance-active-state-then-contact-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_instance_active_state_then_contact_not_found.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.instanceid-max-valid-length-256-chars-accepted", "deployments": [], "key": "connect-contact-lens/instanceid-max-valid-length-256-chars-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_instanceid_max_valid_length_256_chars_accepted.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.list-realtime-analysis-segments-unknown-contact-stays-not-found", "deployments": [], "key": "connect-contact-lens/list-realtime-analysis-segments-unknown-contact-stays-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_list_realtime_analysis_segments_unknown_contact_stays_not_found.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.maxresults-boundary-values-accepted-not-invalid-request", "deployments": [], "key": "connect-contact-lens/maxresults-boundary-values-accepted-not-invalid-request", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_maxresults_boundary_values_accepted_not_invalid_request.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.missing-iam-permission-rejected", "deployments": [], "key": "connect-contact-lens/missing-iam-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/connect-contact-lens/check_missing_iam_permission_rejected.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.non-ascii-contact-id-accepted-as-valid-format", "deployments": [], "key": "connect-contact-lens/non-ascii-contact-id-accepted-as-valid-format", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_non_ascii_contact_id_accepted_as_valid_format.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.not-found-for-nonexistent-instance-and-contact", "deployments": [], "key": "connect-contact-lens/not-found-for-nonexistent-instance-and-contact", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_not_found_for_nonexistent_instance_and_contact.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.throttling-and-internal-errors-not-deterministically-triggerable-skip", "deployments": [], "key": "connect-contact-lens/throttling-and-internal-errors-not-deterministically-triggerable-skip", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_throttling_and_internal_errors_not_deterministically_triggerable_skip.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.valid-maxresults-with-malformed-contact-still-invalid-request", "deployments": [], "key": "connect-contact-lens/valid-maxresults-with-malformed-contact-still-invalid-request", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_valid_maxresults_with_malformed_contact_still_invalid_request.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.whitespace-only-contact-id-rejected", "deployments": [], "key": "connect-contact-lens/whitespace-only-contact-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_whitespace_only_contact_id_rejected.py", "service": "connect-contact-lens"} {"check_id": "connect-contact-lens.whitespace-only-instance-id-rejected", "deployments": [], "key": "connect-contact-lens/whitespace-only-instance-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect-contact-lens:ListRealtimeContactAnalysisSegments", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance"], "path": "behavioral/connect-contact-lens/check_whitespace_only_instance_id_rejected.py", "service": "connect-contact-lens"} {"check_id": "connect.instance-create-active-attributes-tags-delete", "deployments": [], "key": "connect/instance-create-active-attributes-tags-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:DescribeInstanceAttribute", "connect:ListInstanceAttributes", "connect:ListInstances", "connect:ListTagsForResource", "connect:TagResource", "connect:UntagResource", "connect:UpdateInstanceAttribute", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/connect/check_instance_create_active_attributes_tags_delete.py", "service": "connect"} {"check_id": "connect.instance-deleted-id-refuses-read-and-mutation", "deployments": [], "key": "connect/instance-deleted-id-refuses-read-and-mutation", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:DescribeInstanceAttribute", "connect:UpdateInstanceAttribute", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/connect/check_instance_deleted_id_refuses_read_and_mutation.py", "service": "connect"} {"check_id": "connectcampaigns.campaign-e2e-lifecycle-full-transition-and-batch-state-read", "deployments": [], "key": "connectcampaigns/campaign-e2e-lifecycle-full-transition-and-batch-state-read", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetCampaignStateBatch", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:ResumeCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_campaign_e2e_lifecycle_full_transition_and_batch_state_read.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.concurrent-pause-campaign-single-winner", "deployments": [], "key": "connectcampaigns/concurrent-pause-campaign-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListHoursOfOperations", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_concurrent_pause_campaign_single_winner.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.concurrent-start-campaign-single-winner", "deployments": [], "key": "connectcampaigns/concurrent-start-campaign-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:CreateContactFlow", "connect:CreateHoursOfOperation", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DescribeInstance", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_concurrent_start_campaign_single_winner.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.concurrent-stop-campaign-single-winner", "deployments": [], "key": "connectcampaigns/concurrent-stop-campaign-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_concurrent_stop_campaign_single_winner.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.create-campaign-dialer-bandwidth-range-not-enforced", "deployments": [], "key": "connectcampaigns/create-campaign-dialer-bandwidth-range-not-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DeleteQueue", "connect:DescribeInstance", "connect:ListHoursOfOperations", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_create_campaign_dialer_bandwidth_range_not_enforced.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.create-campaign-initial-state-initialized", "deployments": [], "key": "connectcampaigns/create-campaign-initial-state-initialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DeleteQueue", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListHoursOfOperations", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_create_campaign_initial_state_initialized.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.create-campaign-invalid-connect-instance-id-rejected", "deployments": [], "key": "connectcampaigns/create-campaign-invalid-connect-instance-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_create_campaign_invalid_connect_instance_id_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.create-campaign-missing-connect-instance-rejected", "deployments": [], "key": "connectcampaigns/create-campaign-missing-connect-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_create_campaign_missing_connect_instance_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.create-campaign-name-too-long-rejected", "deployments": [], "key": "connectcampaigns/create-campaign-name-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaigns:CreateCampaign", "connectcampaigns:ListCampaigns"], "path": "behavioral/connectcampaigns/check_create_campaign_name_too_long_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.create-campaign-reserved-tag-key-rejected", "deployments": [], "key": "connectcampaigns/create-campaign-reserved-tag-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:ListTagsForResource", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_create_campaign_reserved_tag_key_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.delete-campaign-removes-resource", "deployments": [], "key": "connectcampaigns/delete-campaign-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_delete_campaign_removes_resource.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.delete-campaign-removes-resource-from-list-and-describe", "deployments": [], "key": "connectcampaigns/delete-campaign-removes-resource-from-list-and-describe", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_delete_campaign_removes_resource_from_list_and_describe.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.delete-connect-instance-config-active-campaign-conflict-rejected", "deployments": [], "key": "connectcampaigns/delete-connect-instance-config-active-campaign-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_delete_connect_instance_config_active_campaign_conflict_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.delete-connect-instance-config-active-campaign-rejected", "deployments": [], "key": "connectcampaigns/delete-connect-instance-config-active-campaign-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_delete_connect_instance_config_active_campaign_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.delete-instance-onboarding-job-no-job-not-found", "deployments": [], "key": "connectcampaigns/delete-instance-onboarding-job-no-job-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_delete_instance_onboarding_job_no_job_not_found.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.describe-campaign-not-found", "deployments": [], "key": "connectcampaigns/describe-campaign-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_describe_campaign_not_found.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.describe-nonexistent-campaign-not-found", "deployments": [], "key": "connectcampaigns/describe-nonexistent-campaign-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaigns:DescribeCampaign"], "path": "behavioral/connectcampaigns/check_describe_nonexistent_campaign_not_found.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.get-campaign-state-batch-after-delete", "deployments": [], "key": "connectcampaigns/get-campaign-state-batch-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetCampaignStateBatch", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_get_campaign_state_batch_after_delete.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.get-campaign-state-batch-empty-list-rejected", "deployments": [], "key": "connectcampaigns/get-campaign-state-batch-empty-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaigns:GetCampaignStateBatch"], "path": "behavioral/connectcampaigns/check_get_campaign_state_batch_empty_list_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.get-campaign-state-batch-partial-not-found", "deployments": [], "key": "connectcampaigns/get-campaign-state-batch-partial-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetCampaignStateBatch", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_get_campaign_state_batch_partial_not_found.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.get-campaign-state-batch-too-many-ids-rejected", "deployments": [], "key": "connectcampaigns/get-campaign-state-batch-too-many-ids-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaigns:GetCampaignStateBatch"], "path": "behavioral/connectcampaigns/check_get_campaign_state_batch_too_many_ids_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.get-connect-instance-config-not-onboarded", "deployments": [], "key": "connectcampaigns/get-connect-instance-config-not-onboarded", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_get_connect_instance_config_not_onboarded.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.instance-onboarding-job-lifecycle", "deployments": [], "key": "connectcampaigns/instance-onboarding-job-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_instance_onboarding_job_lifecycle.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.list-campaigns-max-results-exceeds-limit-is-accepted", "deployments": [], "key": "connectcampaigns/list-campaigns-max-results-exceeds-limit-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcampaigns:ListCampaigns"], "path": "behavioral/connectcampaigns/check_list_campaigns_max_results_exceeds_limit_is_accepted.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.list-campaigns-max-results-out-of-range-rejected", "deployments": [], "key": "connectcampaigns/list-campaigns-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaigns:ListCampaigns"], "path": "behavioral/connectcampaigns/check_list_campaigns_max_results_out_of_range_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.list-tags-for-resource-nonexistent-arn-not-found", "deployments": [], "key": "connectcampaigns/list-tags-for-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaigns:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/connectcampaigns/check_list_tags_for_resource_nonexistent_arn_not_found.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.pause-campaign-not-running-rejected", "deployments": [], "key": "connectcampaigns/pause-campaign-not-running-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_pause_campaign_not_running_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.pause-campaign-running-to-paused", "deployments": [], "key": "connectcampaigns/pause-campaign-running-to-paused", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_pause_campaign_running_to_paused.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.pause-campaign-wrong-state-rejected", "deployments": [], "key": "connectcampaigns/pause-campaign-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_pause_campaign_wrong_state_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-before-start-rejected", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-before-start-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DeleteQueue", "connect:DescribeInstance", "connect:ListHoursOfOperations", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_before_start_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-concurrent-same-client-token-deduplicated", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-concurrent-same-client-token-deduplicated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DeleteQueue", "connect:DescribeInstance", "connect:ListHoursOfOperations", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_concurrent_same_client_token_deduplicated.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-deleted-campaign-not-found", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-deleted-campaign-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_deleted_campaign_not_found.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-duplicate-client-token-dedup", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-duplicate-client-token-dedup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_duplicate_client_token_dedup.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-empty-list-rejected", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-empty-list-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_empty_list_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-idempotent-retry", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-idempotent-retry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_idempotent_retry.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-invalid-phone-number-rejected", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-invalid-phone-number-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_invalid_phone_number_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-nonexistent-campaign-not-found", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-nonexistent-campaign-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:TagResource", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_nonexistent_campaign_not_found.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.put-dial-request-batch-stopped-campaign-rejected", "deployments": [], "key": "connectcampaigns/put-dial-request-batch-stopped-campaign-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:DescribePhoneNumber", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PutDialRequestBatch", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_put_dial_request_batch_stopped_campaign_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.resume-campaign-already-running-is-idempotent", "deployments": [], "key": "connectcampaigns/resume-campaign-already-running-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DeleteQueue", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListHoursOfOperations", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:ResumeCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_resume_campaign_already_running_is_idempotent.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.resume-campaign-not-paused-rejected", "deployments": [], "key": "connectcampaigns/resume-campaign-not-paused-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:ResumeCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_resume_campaign_not_paused_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.resume-campaign-paused-to-running", "deployments": [], "key": "connectcampaigns/resume-campaign-paused-to-running", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DeleteQueue", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListHoursOfOperations", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:ResumeCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_resume_campaign_paused_to_running.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.resume-initialized-campaign-rejected", "deployments": [], "key": "connectcampaigns/resume-initialized-campaign-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:ResumeCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_resume_initialized_campaign_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.resume-stopped-campaign-rejected", "deployments": [], "key": "connectcampaigns/resume-stopped-campaign-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:ResumeCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_resume_stopped_campaign_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.start-campaign-after-stop-rejected", "deployments": [], "key": "connectcampaigns/start-campaign-after-stop-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_start_campaign_after_stop_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.start-campaign-already-running-is-an-idempotent-no-op", "deployments": [], "key": "connectcampaigns/start-campaign-already-running-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_start_campaign_already_running_is_an_idempotent_no_op.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.start-campaign-from-stopped-state-succeeds", "deployments": [], "key": "connectcampaigns/start-campaign-from-stopped-state-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_start_campaign_from_stopped_state_succeeds.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.start-campaign-transitions-to-running", "deployments": [], "key": "connectcampaigns/start-campaign-transitions-to-running", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_start_campaign_transitions_to_running.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.start-instance-onboarding-job-bad-instance-not-found", "deployments": [], "key": "connectcampaigns/start-instance-onboarding-job-bad-instance-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_start_instance_onboarding_job_bad_instance_not_found.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.start-instance-onboarding-job-conflict-when-already-onboarded-rejected", "deployments": [], "key": "connectcampaigns/start-instance-onboarding-job-conflict-when-already-onboarded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_start_instance_onboarding_job_conflict_when_already_onboarded_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.stop-campaign-from-paused-state", "deployments": [], "key": "connectcampaigns/stop-campaign-from-paused-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:CreateContactFlow", "connect:CreateHoursOfOperation", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_stop_campaign_from_paused_state.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.stop-campaign-terminal-state", "deployments": [], "key": "connectcampaigns/stop-campaign-terminal-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:PauseCampaign", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_stop_campaign_terminal_state.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.stop-stopped-campaign-twice-is-idempotent", "deployments": [], "key": "connectcampaigns/stop-stopped-campaign-twice-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:CreateContactFlow", "connect:CreateHoursOfOperation", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign"], "path": "behavioral/connectcampaigns/check_stop_stopped_campaign_twice_is_idempotent.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "connectcampaigns/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:ListTagsForResource", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:TagResource", "connectcampaigns:UntagResource"], "path": "behavioral/connectcampaigns/check_tag_resource_and_list_tags_round_trip.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.tag-resource-reflected-in-describe-campaign", "deployments": [], "key": "connectcampaigns/tag-resource-reflected-in-describe-campaign", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:ListTagsForResource", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:TagResource"], "path": "behavioral/connectcampaigns/check_tag_resource_reflected_in_describe_campaign.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.tag-untag-resource-lifecycle", "deployments": [], "key": "connectcampaigns/tag-untag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:ListTagsForResource", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:TagResource", "connectcampaigns:UntagResource"], "path": "behavioral/connectcampaigns/check_tag_untag_resource_lifecycle.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.untag-resource-nonexistent-key-is-noop", "deployments": [], "key": "connectcampaigns/untag-resource-nonexistent-key-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:ListTagsForResource", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:TagResource", "connectcampaigns:UntagResource"], "path": "behavioral/connectcampaigns/check_untag_resource_nonexistent_key_is_noop.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.update-campaign-dialer-config-conflict-while-running-accepted", "deployments": [], "key": "connectcampaigns/update-campaign-dialer-config-conflict-while-running-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartCampaign", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:UpdateCampaignDialerConfig"], "path": "behavioral/connectcampaigns/check_update_campaign_dialer_config_conflict_while_running_accepted.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.update-campaign-dialer-config-from-agentless-rejected", "deployments": [], "key": "connectcampaigns/update-campaign-dialer-config-from-agentless-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:UpdateCampaignDialerConfig"], "path": "behavioral/connectcampaigns/check_update_campaign_dialer_config_from_agentless_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.update-campaign-dialer-config-to-agentless-rejected", "deployments": [], "key": "connectcampaigns/update-campaign-dialer-config-to-agentless-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:UpdateCampaignDialerConfig"], "path": "behavioral/connectcampaigns/check_update_campaign_dialer_config_to_agentless_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.update-campaign-name-persists", "deployments": [], "key": "connectcampaigns/update-campaign-name-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:CreateQueue", "connect:DeleteInstance", "connect:DeleteQueue", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListHoursOfOperations", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:UpdateCampaignName"], "path": "behavioral/connectcampaigns/check_update_campaign_name_persists.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.update-campaign-name-validation-rejected", "deployments": [], "key": "connectcampaigns/update-campaign-name-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:UpdateCampaignName"], "path": "behavioral/connectcampaigns/check_update_campaign_name_validation_rejected.py", "service": "connectcampaigns"} {"check_id": "connectcampaigns.update-campaign-outbound-call-config-persists", "deployments": [], "key": "connectcampaigns/update-campaign-outbound-call-config-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaigns:CreateCampaign", "connectcampaigns:DeleteCampaign", "connectcampaigns:DeleteConnectInstanceConfig", "connectcampaigns:DeleteInstanceOnboardingJob", "connectcampaigns:DescribeCampaign", "connectcampaigns:GetCampaignState", "connectcampaigns:GetConnectInstanceConfig", "connectcampaigns:GetInstanceOnboardingJobStatus", "connectcampaigns:ListCampaigns", "connectcampaigns:StartInstanceOnboardingJob", "connectcampaigns:StopCampaign", "connectcampaigns:UpdateCampaignOutboundCallConfig"], "path": "behavioral/connectcampaigns/check_update_campaign_outbound_call_config_persists.py", "service": "connectcampaigns"} {"check_id": "connectcampaignsv2.campaign-lifecycle-start-pause-resume-stop-transitions", "deployments": [], "key": "connectcampaignsv2/campaign-lifecycle-start-pause-resume-stop-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:DescribePhoneNumber", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:PauseCampaign", "connectcampaignsv2:PutOutboundRequestBatch", "connectcampaignsv2:ResumeCampaign", "connectcampaignsv2:StartCampaign", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_campaign_lifecycle_start_pause_resume_stop_transitions.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.concurrent-create-campaign-same-name-one-winner", "deployments": [], "key": "connectcampaignsv2/concurrent-create-campaign-same-name-one-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_concurrent_create_campaign_same_name_one_winner.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.create-campaign-invalid-instance-id-pattern-rejected", "deployments": [], "key": "connectcampaignsv2/create-campaign-invalid-instance-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaignsv2:CreateCampaign"], "path": "behavioral/connectcampaignsv2/check_create_campaign_invalid_instance_id_pattern_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.create-campaign-nonexistent-instance-not-found", "deployments": [], "key": "connectcampaignsv2/create-campaign-nonexistent-instance-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_create_campaign_nonexistent_instance_not_found.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.create-campaign-persists-full-config", "deployments": [], "key": "connectcampaignsv2/create-campaign-persists-full-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_create_campaign_persists_full_config.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.delete-campaign-removes-resource", "deployments": [], "key": "connectcampaignsv2/delete-campaign-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_delete_campaign_removes_resource.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.delete-connect-instance-config-blocked-by-active-campaign-rejected", "deployments": [], "key": "connectcampaignsv2/delete-connect-instance-config-blocked-by-active-campaign-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_delete_connect_instance_config_blocked_by_active_campaign_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.delete-instance-onboarding-job-rejected-while-succeeded", "deployments": [], "key": "connectcampaignsv2/delete-instance-onboarding-job-rejected-while-succeeded", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DeleteInstanceOnboardingJob", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_delete_instance_onboarding_job_rejected_while_succeeded.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.describe-campaign-nonexistent-id-not-found", "deployments": [], "key": "connectcampaignsv2/describe-campaign-nonexistent-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetCampaignStateBatch", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_describe_campaign_nonexistent_id_not_found.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.get-campaign-state-batch-invalid-id-pattern-rejected", "deployments": [], "key": "connectcampaignsv2/get-campaign-state-batch-invalid-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaignsv2:GetCampaignStateBatch"], "path": "behavioral/connectcampaignsv2/check_get_campaign_state_batch_invalid_id_pattern_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.instance-onboarding-job-transitions-to-succeeded", "deployments": [], "key": "connectcampaignsv2/instance-onboarding-job-transitions-to-succeeded", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_instance_onboarding_job_transitions_to_succeeded.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.list-tags-for-resource-invalid-arn-format-rejected", "deployments": [], "key": "connectcampaignsv2/list-tags-for-resource-invalid-arn-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaignsv2:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/connectcampaignsv2/check_list_tags_for_resource_invalid_arn_format_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.pause-initialized-campaign-rejected", "deployments": [], "key": "connectcampaignsv2/pause-initialized-campaign-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:PauseCampaign", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:UpdateCampaignName"], "path": "behavioral/connectcampaignsv2/check_pause_initialized_campaign_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.put-outbound-request-batch-invalid-client-token-pattern-rejected", "deployments": [], "key": "connectcampaignsv2/put-outbound-request-batch-invalid-client-token-pattern-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connectcampaignsv2:PutOutboundRequestBatch"], "path": "behavioral/connectcampaignsv2/check_put_outbound_request_batch_invalid_client_token_pattern_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.put-outbound-request-batch-on-initialized-campaign-rejected", "deployments": [], "key": "connectcampaignsv2/put-outbound-request-batch-on-initialized-campaign-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetCampaignStateBatch", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:PutOutboundRequestBatch", "connectcampaignsv2:StartCampaign", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign"], "path": "behavioral/connectcampaignsv2/check_put_outbound_request_batch_on_initialized_campaign_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.resume-initialized-campaign-rejected", "deployments": [], "key": "connectcampaignsv2/resume-initialized-campaign-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:PauseCampaign", "connectcampaignsv2:ResumeCampaign", "connectcampaignsv2:StartCampaign", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:UpdateCampaignName"], "path": "behavioral/connectcampaignsv2/check_resume_initialized_campaign_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.stop-initialized-campaign-rejected", "deployments": [], "key": "connectcampaignsv2/stop-initialized-campaign-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:ListTagsForResource", "connectcampaignsv2:StartCampaign", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:TagResource"], "path": "behavioral/connectcampaignsv2/check_stop_initialized_campaign_rejected.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "connectcampaignsv2/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:ListTagsForResource", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:TagResource", "connectcampaignsv2:UntagResource"], "path": "behavioral/connectcampaignsv2/check_tag_resource_and_list_tags_round_trip.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.tag-resource-nonexistent-arn-not-found", "deployments": [], "key": "connectcampaignsv2/tag-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcampaignsv2:ListTagsForResource", "connectcampaignsv2:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/connectcampaignsv2/check_tag_resource_nonexistent_arn_not_found.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.update-campaign-channel-subtype-config-round-trip", "deployments": [], "key": "connectcampaignsv2/update-campaign-channel-subtype-config-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteCampaignChannelSubtypeConfig", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:UpdateCampaignChannelSubtypeConfig"], "path": "behavioral/connectcampaignsv2/check_update_campaign_channel_subtype_config_round_trip.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.update-campaign-communication-limits-override-round-trip", "deployments": [], "key": "connectcampaignsv2/update-campaign-communication-limits-override-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteCampaignCommunicationLimits", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:UpdateCampaignCommunicationLimits", "customer-profiles:CreateDomain", "customer-profiles:CreateSegmentDefinition", "customer-profiles:DeleteDomain", "customer-profiles:DeleteSegmentDefinition"], "path": "behavioral/connectcampaignsv2/check_update_campaign_communication_limits_override_round_trip.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.update-campaign-entry-limits-persists", "deployments": [], "key": "connectcampaignsv2/update-campaign-entry-limits-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteCampaignEntryLimits", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:UpdateCampaignEntryLimits"], "path": "behavioral/connectcampaignsv2/check_update_campaign_entry_limits_persists.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.update-campaign-name-persists", "deployments": [], "key": "connectcampaignsv2/update-campaign-name-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListContactFlows", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:UpdateCampaignName"], "path": "behavioral/connectcampaignsv2/check_update_campaign_name_persists.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.update-campaign-schedule-persists", "deployments": [], "key": "connectcampaignsv2/update-campaign-schedule-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:UpdateCampaignSchedule"], "path": "behavioral/connectcampaignsv2/check_update_campaign_schedule_persists.py", "service": "connectcampaignsv2"} {"check_id": "connectcampaignsv2.update-campaign-source-succeeds-while-initialized", "deployments": [], "key": "connectcampaignsv2/update-campaign-source-succeeds-while-initialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:ClaimPhoneNumber", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:ListQueues", "connect:ReleasePhoneNumber", "connect:SearchAvailablePhoneNumbers", "connectcampaignsv2:CreateCampaign", "connectcampaignsv2:DeleteCampaign", "connectcampaignsv2:DeleteConnectInstanceConfig", "connectcampaignsv2:DescribeCampaign", "connectcampaignsv2:GetCampaignState", "connectcampaignsv2:GetConnectInstanceConfig", "connectcampaignsv2:GetInstanceOnboardingJobStatus", "connectcampaignsv2:ListCampaigns", "connectcampaignsv2:StartInstanceOnboardingJob", "connectcampaignsv2:StopCampaign", "connectcampaignsv2:UpdateCampaignSource"], "path": "behavioral/connectcampaignsv2/check_update_campaign_source_succeeds_while_initialized.py", "service": "connectcampaignsv2"} {"check_id": "connectcases.batch-get-field-partial-errors", "deployments": [], "key": "connectcases/batch-get-field-partial-errors", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcases:BatchGetField", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:GetDomain"], "path": "behavioral/connectcases/check_batch_get_field_partial_errors.py", "service": "connectcases"} {"check_id": "connectcases.case-audit-events-track-create-and-update", "deployments": [], "key": "connectcases/case-audit-events-track-create-and-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetCaseAuditEvents", "connectcases:GetDomain", "connectcases:UpdateCase"], "path": "behavioral/connectcases/check_case_audit_events_track_create_and_update.py", "service": "connectcases"} {"check_id": "connectcases.case-create-and-get-field-values-round-trip", "deployments": [], "key": "connectcases/case-create-and-get-field-values-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetCase", "connectcases:GetDomain"], "path": "behavioral/connectcases/check_case_create_and_get_field_values_round_trip.py", "service": "connectcases"} {"check_id": "connectcases.case-event-configuration-round-trip", "deployments": [], "key": "connectcases/case-event-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcases:CreateDomain", "connectcases:CreateField", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:GetCaseEventConfiguration", "connectcases:GetDomain", "connectcases:PutCaseEventConfiguration"], "path": "behavioral/connectcases/check_case_event_configuration_round_trip.py", "service": "connectcases"} {"check_id": "connectcases.case-rule-creation-and-template-reference", "deployments": [], "key": "connectcases/case-rule-creation-and-template-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcases:BatchGetCaseRule", "connectcases:CreateCaseRule", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCaseRule", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetDomain", "connectcases:GetTemplate", "connectcases:ListCaseRules", "connectcases:TagResource"], "path": "behavioral/connectcases/check_case_rule_creation_and_template_reference.py", "service": "connectcases"} {"check_id": "connectcases.concurrent-create-field-same-name-single-winner", "deployments": [], "key": "connectcases/concurrent-create-field-same-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcases:CreateDomain", "connectcases:CreateField", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:GetDomain", "connectcases:ListFields", "connectcases:UpdateField"], "path": "behavioral/connectcases/check_concurrent_create_field_same_name_single_winner.py", "service": "connectcases"} {"check_id": "connectcases.delete-case-removes-case", "deployments": [], "key": "connectcases/delete-case-removes-case", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetCase", "connectcases:GetDomain", "connectcases:SearchCases", "connectcases:UpdateCase"], "path": "behavioral/connectcases/check_delete_case_removes_case.py", "service": "connectcases"} {"check_id": "connectcases.domain-creation-reaches-active-state", "deployments": [], "key": "connectcases/domain-creation-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcases:CreateDomain", "connectcases:CreateField", "connectcases:DeleteDomain", "connectcases:GetDomain", "connectcases:ListDomains"], "path": "behavioral/connectcases/check_domain_creation_reaches_active_state.py", "service": "connectcases"} {"check_id": "connectcases.domain-name-conflict-rejected", "deployments": [], "key": "connectcases/domain-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connectcases:CreateDomain", "connectcases:DeleteDomain", "connectcases:GetDomain", "connectcases:ListDomains", "connectcases:TagResource"], "path": "behavioral/connectcases/check_domain_name_conflict_rejected.py", "service": "connectcases"} {"check_id": "connectcases.field-option-batch-put-and-list-round-trip", "deployments": [], "key": "connectcases/field-option-batch-put-and-list-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcases:BatchPutFieldOptions", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:GetDomain", "connectcases:ListFieldOptions"], "path": "behavioral/connectcases/check_field_option_batch_put_and_list_round_trip.py", "service": "connectcases"} {"check_id": "connectcases.field-value-type-mismatch-rejected", "deployments": [], "key": "connectcases/field-value-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetCase", "connectcases:GetDomain", "connectcases:ListFields", "connectcases:SearchCases", "connectcases:TagResource"], "path": "behavioral/connectcases/check_field_value_type_mismatch_rejected.py", "service": "connectcases"} {"check_id": "connectcases.get-case-field-not-on-case-not-found", "deployments": [], "key": "connectcases/get-case-field-not-on-case-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetCase", "connectcases:GetDomain"], "path": "behavioral/connectcases/check_get_case_field_not_on_case_not_found.py", "service": "connectcases"} {"check_id": "connectcases.layout-create-update-content-round-trip", "deployments": [], "key": "connectcases/layout-create-update-content-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateLayout", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteLayout", "connectcases:GetDomain", "connectcases:GetLayout", "connectcases:ListLayouts", "connectcases:UpdateLayout"], "path": "behavioral/connectcases/check_layout_create_update_content_round_trip.py", "service": "connectcases"} {"check_id": "connectcases.related-item-comment-round-trip", "deployments": [], "key": "connectcases/related-item-comment-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateRelatedItem", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteRelatedItem", "connectcases:DeleteTemplate", "connectcases:GetDomain", "connectcases:ListFields", "connectcases:SearchRelatedItems"], "path": "behavioral/connectcases/check_related_item_comment_round_trip.py", "service": "connectcases"} {"check_id": "connectcases.related-item-connect-case-link", "deployments": [], "key": "connectcases/related-item-connect-case-link", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateRelatedItem", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteRelatedItem", "connectcases:DeleteTemplate", "connectcases:GetDomain", "connectcases:SearchRelatedItems"], "path": "behavioral/connectcases/check_related_item_connect_case_link.py", "service": "connectcases"} {"check_id": "connectcases.related-item-type-content-mismatch-rejected", "deployments": [], "key": "connectcases/related-item-type-content-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateRelatedItem", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteRelatedItem", "connectcases:DeleteTemplate", "connectcases:GetDomain", "connectcases:ListFields", "connectcases:SearchRelatedItems"], "path": "behavioral/connectcases/check_related_item_type_content_mismatch_rejected.py", "service": "connectcases"} {"check_id": "connectcases.required-field-missing-on-case-create-rejected", "deployments": [], "key": "connectcases/required-field-missing-on-case-create-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetDomain", "connectcases:ListFields", "connectcases:SearchCases"], "path": "behavioral/connectcases/check_required_field_missing_on_case_create_rejected.py", "service": "connectcases"} {"check_id": "connectcases.search-all-related-items-across-cases", "deployments": [], "key": "connectcases/search-all-related-items-across-cases", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateRelatedItem", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteRelatedItem", "connectcases:DeleteTemplate", "connectcases:GetDomain", "connectcases:ListFields", "connectcases:SearchAllRelatedItems"], "path": "behavioral/connectcases/check_search_all_related_items_across_cases.py", "service": "connectcases"} {"check_id": "connectcases.search-cases-filter-by-field-value", "deployments": [], "key": "connectcases/search-cases-filter-by-field-value", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetDomain", "connectcases:ListFields", "connectcases:SearchCases"], "path": "behavioral/connectcases/check_search_cases_filter_by_field_value.py", "service": "connectcases"} {"check_id": "connectcases.tag-resource-round-trip-and-untag", "deployments": [], "key": "connectcases/tag-resource-round-trip-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcases:CreateDomain", "connectcases:DeleteDomain", "connectcases:GetDomain", "connectcases:ListTagsForResource", "connectcases:TagResource", "connectcases:UntagResource"], "path": "behavioral/connectcases/check_tag_resource_round_trip_and_untag.py", "service": "connectcases"} {"check_id": "connectcases.template-status-toggle-active-inactive", "deployments": [], "key": "connectcases/template-status-toggle-active-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["connectcases:CreateDomain", "connectcases:CreateTemplate", "connectcases:DeleteDomain", "connectcases:DeleteTemplate", "connectcases:GetDomain", "connectcases:GetTemplate", "connectcases:ListTemplates", "connectcases:UpdateTemplate"], "path": "behavioral/connectcases/check_template_status_toggle_active_inactive.py", "service": "connectcases"} {"check_id": "connectcases.update-case-field-value-persists", "deployments": [], "key": "connectcases/update-case-field-value-persists", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connectcases:CreateCase", "connectcases:CreateDomain", "connectcases:CreateField", "connectcases:CreateTemplate", "connectcases:DeleteCase", "connectcases:DeleteDomain", "connectcases:DeleteField", "connectcases:DeleteTemplate", "connectcases:GetCase", "connectcases:GetDomain", "connectcases:UpdateCase", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "sts:GetCallerIdentity"], "path": "behavioral/connectcases/check_update_case_field_value_persists.py", "service": "connectcases"} {"check_id": "connecthealth.activate-subscription-idempotent-when-already-active", "deployments": [], "key": "connecthealth/activate-subscription-idempotent-when-already-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["connecthealth:ActivateSubscription", "connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_activate_subscription_idempotent_when_already_active.py", "service": "connecthealth"} {"check_id": "connecthealth.activate-subscription-nonexistent-not-found", "deployments": [], "key": "connecthealth/activate-subscription-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:ActivateSubscription", "connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_activate_subscription_nonexistent_not_found.py", "service": "connecthealth"} {"check_id": "connecthealth.create-domain-quota-exceeded", "deployments": [], "key": "connecthealth/create-domain-quota-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetDomain"], "path": "behavioral/connecthealth/check_create_domain_quota_exceeded.py", "service": "connecthealth"} {"check_id": "connecthealth.create-domain-returns-active-status", "deployments": [], "key": "connecthealth/create-domain-returns-active-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetDomain"], "path": "behavioral/connecthealth/check_create_domain_returns_active_status.py", "service": "connecthealth"} {"check_id": "connecthealth.create-subscription-initial-status-active", "deployments": [], "key": "connecthealth/create-subscription-initial-status-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_create_subscription_initial_status_active.py", "service": "connecthealth"} {"check_id": "connecthealth.create-subscription-malformed-domain-id-rejected", "deployments": [], "key": "connecthealth/create-subscription-malformed-domain-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:ListSubscriptions"], "path": "behavioral/connecthealth/check_create_subscription_malformed_domain_id_rejected.py", "service": "connecthealth"} {"check_id": "connecthealth.deactivate-subscription-idempotent-when-already-inactive", "deployments": [], "key": "connecthealth/deactivate-subscription-idempotent-when-already-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_deactivate_subscription_idempotent_when_already_inactive.py", "service": "connecthealth"} {"check_id": "connecthealth.deactivate-then-activate-subscription-lifecycle", "deployments": [], "key": "connecthealth/deactivate-then-activate-subscription-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["connecthealth:ActivateSubscription", "connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_deactivate_then_activate_subscription_lifecycle.py", "service": "connecthealth"} {"check_id": "connecthealth.delete-domain-not-found", "deployments": [], "key": "connecthealth/delete-domain-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetDomain"], "path": "behavioral/connecthealth/check_delete_domain_not_found.py", "service": "connecthealth"} {"check_id": "connecthealth.delete-domain-then-get-returns-not-found", "deployments": [], "key": "connecthealth/delete-domain-then-get-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetDomain"], "path": "behavioral/connecthealth/check_delete_domain_then_get_returns_not_found.py", "service": "connecthealth"} {"check_id": "connecthealth.domain-tags-visible-via-resourcegroupstaggingapi", "deployments": [], "key": "connecthealth/domain-tags-visible-via-resourcegroupstaggingapi", "labels": ["axis:happy-path", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:ListTagsForResource", "connecthealth:TagResource", "connecthealth:UntagResource", "resourcegroupstaggingapi:GetResources"], "path": "behavioral/connecthealth/check_domain_tags_visible_via_resourcegroupstaggingapi.py", "service": "connecthealth"} {"check_id": "connecthealth.get-domain-not-found", "deployments": [], "key": "connecthealth/get-domain-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetDomain"], "path": "behavioral/connecthealth/check_get_domain_not_found.py", "service": "connecthealth"} {"check_id": "connecthealth.get-medical-scribe-listening-session-cross-subscription-rejected", "deployments": [], "key": "connecthealth/get-medical-scribe-listening-session-cross-subscription-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetMedicalScribeListeningSession", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_get_medical_scribe_listening_session_cross_subscription_rejected.py", "service": "connecthealth"} {"check_id": "connecthealth.get-medical-scribe-listening-session-not-found", "deployments": [], "key": "connecthealth/get-medical-scribe-listening-session-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetMedicalScribeListeningSession", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_get_medical_scribe_listening_session_not_found.py", "service": "connecthealth"} {"check_id": "connecthealth.get-patient-insights-job-not-found", "deployments": [], "key": "connecthealth/get-patient-insights-job-not-found", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetPatientInsightsJob", "connecthealth:StartPatientInsightsJob", "healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/connecthealth/check_get_patient_insights_job_not_found.py", "service": "connecthealth"} {"check_id": "connecthealth.get-subscription-not-found", "deployments": [], "key": "connecthealth/get-subscription-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_get_subscription_not_found.py", "service": "connecthealth"} {"check_id": "connecthealth.list-subscriptions-reflects-created-subscriptions", "deployments": [], "key": "connecthealth/list-subscriptions-reflects-created-subscriptions", "labels": ["axis:happy-path", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:ListSubscriptions"], "path": "behavioral/connecthealth/check_list_subscriptions_reflects_created_subscriptions.py", "service": "connecthealth"} {"check_id": "connecthealth.start-patient-insights-job-conflicting-client-token-rejected", "deployments": [], "key": "connecthealth/start-patient-insights-job-conflicting-client-token-rejected", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetDomain", "connecthealth:GetPatientInsightsJob", "connecthealth:StartPatientInsightsJob", "healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/connecthealth/check_start_patient_insights_job_conflicting_client_token_rejected.py", "service": "connecthealth"} {"check_id": "connecthealth.start-patient-insights-job-malformed-s3-uri-rejected", "deployments": [], "key": "connecthealth/start-patient-insights-job-malformed-s3-uri-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetPatientInsightsJob", "connecthealth:StartPatientInsightsJob", "healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/connecthealth/check_start_patient_insights_job_malformed_s3_uri_rejected.py", "service": "connecthealth"} {"check_id": "connecthealth.start-patient-insights-job-nonexistent-domain-not-found", "deployments": [], "key": "connecthealth/start-patient-insights-job-nonexistent-domain-not-found", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetPatientInsightsJob", "connecthealth:StartPatientInsightsJob", "healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/connecthealth/check_start_patient_insights_job_nonexistent_domain_not_found.py", "service": "connecthealth"} {"check_id": "connecthealth.start-patient-insights-job-succeeds-and-produces-summary", "deployments": [], "key": "connecthealth/start-patient-insights-job-succeeds-and-produces-summary", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetPatientInsightsJob", "connecthealth:StartPatientInsightsJob", "healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/connecthealth/check_start_patient_insights_job_succeeds_and_produces_summary.py", "service": "connecthealth"} {"check_id": "connecthealth.start-patient-insights-job-unseeded-patient-rejected", "deployments": [], "key": "connecthealth/start-patient-insights-job-unseeded-patient-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:GetPatientInsightsJob", "connecthealth:StartPatientInsightsJob", "healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/connecthealth/check_start_patient_insights_job_unseeded_patient_rejected.py", "service": "connecthealth"} {"check_id": "connecthealth.subscription-isolated-across-domains-rejected", "deployments": [], "key": "connecthealth/subscription-isolated-across-domains-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:CreateSubscription", "connecthealth:DeactivateSubscription", "connecthealth:DeleteDomain", "connecthealth:GetSubscription"], "path": "behavioral/connecthealth/check_subscription_isolated_across_domains_rejected.py", "service": "connecthealth"} {"check_id": "connecthealth.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "connecthealth/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["connecthealth:CreateDomain", "connecthealth:DeleteDomain", "connecthealth:ListTagsForResource", "connecthealth:TagResource", "connecthealth:UntagResource"], "path": "behavioral/connecthealth/check_tag_resource_and_list_tags_roundtrip.py", "service": "connecthealth"} {"check_id": "connectparticipant.attachment-upload-lifecycle-and-download", "deployments": [], "key": "connectparticipant/attachment-upload-lifecycle-and-download", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["connect:AssociateInstanceStorageConfig", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact", "connect:UpdateAttachedFilesConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy"], "path": "behavioral/connectparticipant/check_attachment_upload_lifecycle_and_download.py", "service": "connectparticipant"} {"check_id": "connectparticipant.authentication-operations-invalid-session-id-rejected", "deployments": [], "key": "connectparticipant/authentication-operations-invalid-session-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_authentication_operations_invalid_session_id_rejected.py", "service": "connectparticipant"} {"check_id": "connectparticipant.complete-attachment-upload-twice-conflict-rejected", "deployments": [], "key": "connectparticipant/complete-attachment-upload-twice-conflict-rejected", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["connect:AssociateInstanceStorageConfig", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact", "connect:UpdateAttachedFilesConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy"], "path": "behavioral/connectparticipant/check_complete_attachment_upload_twice_conflict_rejected.py", "service": "connectparticipant"} {"check_id": "connectparticipant.concurrent-send-message-no-loss-no-duplication", "deployments": [], "key": "connectparticipant/concurrent-send-message-no-loss-no-duplication", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_concurrent_send_message_no_loss_no_duplication.py", "service": "connectparticipant"} {"check_id": "connectparticipant.create-participant-connection-multi-type-channels", "deployments": [], "key": "connectparticipant/create-participant-connection-multi-type-channels", "labels": ["axis:happy-path", "plane:control"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_create_participant_connection_multi_type_channels.py", "service": "connectparticipant"} {"check_id": "connectparticipant.create-participant-connection-rejected-inputs", "deployments": [], "key": "connectparticipant/create-participant-connection-rejected-inputs", "labels": ["axis:rejection", "plane:control"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact", "connectparticipant:CreateParticipantConnection"], "path": "behavioral/connectparticipant/check_create_participant_connection_rejected_inputs.py", "service": "connectparticipant"} {"check_id": "connectparticipant.describe-view-unknown-token-rejected", "deployments": [], "key": "connectparticipant/describe-view-unknown-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_describe_view_unknown_token_rejected.py", "service": "connectparticipant"} {"check_id": "connectparticipant.disconnect-participant-invalidates-connection-token", "deployments": [], "key": "connectparticipant/disconnect-participant-invalidates-connection-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_disconnect_participant_invalidates_connection_token.py", "service": "connectparticipant"} {"check_id": "connectparticipant.get-attachment-before-completion-rejected", "deployments": [], "key": "connectparticipant/get-attachment-before-completion-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["connect:AssociateInstanceStorageConfig", "connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact", "connect:UpdateAttachedFilesConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy"], "path": "behavioral/connectparticipant/check_get_attachment_before_completion_rejected.py", "service": "connectparticipant"} {"check_id": "connectparticipant.get-transcript-pagination-completeness", "deployments": [], "key": "connectparticipant/get-transcript-pagination-completeness", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_get_transcript_pagination_completeness.py", "service": "connectparticipant"} {"check_id": "connectparticipant.get-transcript-sort-order-matches-send-order", "deployments": [], "key": "connectparticipant/get-transcript-sort-order-matches-send-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_get_transcript_sort_order_matches_send_order.py", "service": "connectparticipant"} {"check_id": "connectparticipant.participant-display-name-reflected-in-transcript", "deployments": [], "key": "connectparticipant/participant-display-name-reflected-in-transcript", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_participant_display_name_reflected_in_transcript.py", "service": "connectparticipant"} {"check_id": "connectparticipant.send-event-client-token-caches-on-content-not-contenttype", "deployments": [], "key": "connectparticipant/send-event-client-token-caches-on-content-not-contenttype", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_send_event_client_token_caches_on_content_not_contenttype.py", "service": "connectparticipant"} {"check_id": "connectparticipant.send-event-typing-appears-as-typing-item", "deployments": [], "key": "connectparticipant/send-event-typing-appears-as-typing-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_send_event_typing_appears_as_typing_item.py", "service": "connectparticipant"} {"check_id": "connectparticipant.send-message-client-token-idempotency", "deployments": [], "key": "connectparticipant/send-message-client-token-idempotency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_send_message_client_token_idempotency.py", "service": "connectparticipant"} {"check_id": "connectparticipant.send-message-transcript-roundtrip", "deployments": [], "key": "connectparticipant/send-message-transcript-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_send_message_transcript_roundtrip.py", "service": "connectparticipant"} {"check_id": "connectparticipant.send-multiple-events-produce-distinct-transcript-ids", "deployments": [], "key": "connectparticipant/send-multiple-events-produce-distinct-transcript-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["connect:CreateContactFlow", "connect:CreateInstance", "connect:DeleteInstance", "connect:DescribeInstance", "connect:StartChatContact"], "path": "behavioral/connectparticipant/check_send_multiple_events_produce_distinct_transcript_ids.py", "service": "connectparticipant"} {"check_id": "controlcatalog.common-control-catalog-workflow-domain-objective-consistency", "deployments": [], "key": "controlcatalog/common-control-catalog-workflow-domain-objective-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListCommonControls", "controlcatalog:ListDomains", "controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_common_control_catalog_workflow_domain_objective_consistency.py", "service": "controlcatalog"} {"check_id": "controlcatalog.common-control-filter-by-objective-returns-relevant-controls", "deployments": [], "key": "controlcatalog/common-control-filter-by-objective-returns-relevant-controls", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListCommonControls"], "path": "behavioral/controlcatalog/check_common_control_filter_by_objective_returns_relevant_controls.py", "service": "controlcatalog"} {"check_id": "controlcatalog.common-control-filter-multiple-objectives-rejected", "deployments": [], "key": "controlcatalog/common-control-filter-multiple-objectives-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListCommonControls", "controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_common_control_filter_multiple_objectives_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.common-control-objective-reference-resolves", "deployments": [], "key": "controlcatalog/common-control-objective-reference-resolves", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListCommonControls", "controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_common_control_objective_reference_resolves.py", "service": "controlcatalog"} {"check_id": "controlcatalog.concurrent-reads-return-identical-catalog-snapshot", "deployments": [], "key": "controlcatalog/concurrent-reads-return-identical-catalog-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_concurrent_reads_return_identical_catalog_snapshot.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-aliases-consistent-between-get-and-list", "deployments": [], "key": "controlcatalog/control-aliases-consistent-between-get-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_control_aliases_consistent_between_get_and_list.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-behavior-severity-enum-values-valid", "deployments": [], "key": "controlcatalog/control-behavior-severity-enum-values-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_control_behavior_severity_enum_values_valid.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-mapping-common-control-reference-valid", "deployments": [], "key": "controlcatalog/control-mapping-common-control-reference-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListCommonControls", "controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_control_mapping_common_control_reference_valid.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-mapping-common-control-round-trip", "deployments": [], "key": "controlcatalog/control-mapping-common-control-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_control_mapping_common_control_round_trip.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-mapping-control-arn-resolves-via-get-control", "deployments": [], "key": "controlcatalog/control-mapping-control-arn-resolves-via-get-control", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_control_mapping_control_arn_resolves_via_get_control.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-mapping-filter-by-control-arn-scopes-results", "deployments": [], "key": "controlcatalog/control-mapping-filter-by-control-arn-scopes-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_control_mapping_filter_by_control_arn_scopes_results.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-mapping-filter-by-mapping-type-scopes-results", "deployments": [], "key": "controlcatalog/control-mapping-filter-by-mapping-type-scopes-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_control_mapping_filter_by_mapping_type_scopes_results.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-parameter-requirement-summary-consistent-with-parameters", "deployments": [], "key": "controlcatalog/control-parameter-requirement-summary-consistent-with-parameters", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_control_parameter_requirement_summary_consistent_with_parameters.py", "service": "controlcatalog"} {"check_id": "controlcatalog.control-severity-and-behavior-enum-values-valid", "deployments": [], "key": "controlcatalog/control-severity-and-behavior-enum-values-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_control_severity_and_behavior_enum_values_valid.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-access-denied-without-permission", "deployments": [], "key": "controlcatalog/get-control-access-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/controlcatalog/check_get_control_access_denied_without_permission.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-concurrent-reads-consistent", "deployments": [], "key": "controlcatalog/get-control-concurrent-reads-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_concurrent_reads_consistent.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-malformed-arn-pattern-rejected", "deployments": [], "key": "controlcatalog/get-control-malformed-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_malformed_arn_pattern_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-malformed-arn-rejected", "deployments": [], "key": "controlcatalog/get-control-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_malformed_arn_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-malformed-pattern-arn-rejected", "deployments": [], "key": "controlcatalog/get-control-malformed-pattern-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_malformed_pattern_arn_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-matches-list-controls-entry", "deployments": [], "key": "controlcatalog/get-control-matches-list-controls-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_matches_list_controls_entry.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-matches-list-controls-summary", "deployments": [], "key": "controlcatalog/get-control-matches-list-controls-summary", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_matches_list_controls_summary.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-missing-permission-denied", "deployments": [], "key": "controlcatalog/get-control-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser"], "path": "behavioral/controlcatalog/check_get_control_missing_permission_denied.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-nonexistent-arn-not-found", "deployments": [], "key": "controlcatalog/get-control-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_nonexistent_arn_not_found.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-nonexistent-arn-rejected-not-found", "deployments": [], "key": "controlcatalog/get-control-nonexistent-arn-rejected-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_nonexistent_arn_rejected_not_found.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-nonexistent-wellformed-arn-not-found", "deployments": [], "key": "controlcatalog/get-control-nonexistent-wellformed-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_nonexistent_wellformed_arn_not_found.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-parameter-requirement-invariant", "deployments": [], "key": "controlcatalog/get-control-parameter-requirement-invariant", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_parameter_requirement_invariant.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-region-configuration-regional-scope", "deployments": [], "key": "controlcatalog/get-control-region-configuration-regional-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_region_configuration_regional_scope.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-region-configuration-scope-consistent", "deployments": [], "key": "controlcatalog/get-control-region-configuration-scope-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_region_configuration_scope_consistent.py", "service": "controlcatalog"} {"check_id": "controlcatalog.get-control-snapshot-is-deterministic", "deployments": [], "key": "controlcatalog/get-control-snapshot-is-deterministic", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:GetControl", "controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_get_control_snapshot_is_deterministic.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-common-controls-filter-by-objective-matches", "deployments": [], "key": "controlcatalog/list-common-controls-filter-by-objective-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListCommonControls", "controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_list_common_controls_filter_by_objective_matches.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-common-controls-max-results-upper-bound-rejected", "deployments": [], "key": "controlcatalog/list-common-controls-max-results-upper-bound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListCommonControls"], "path": "behavioral/controlcatalog/check_list_common_controls_max_results_upper_bound_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-common-controls-multiple-objectives-filter-rejected", "deployments": [], "key": "controlcatalog/list-common-controls-multiple-objectives-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListCommonControls", "controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_list_common_controls_multiple_objectives_filter_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-common-controls-objective-filter-scopes-results", "deployments": [], "key": "controlcatalog/list-common-controls-objective-filter-scopes-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListCommonControls"], "path": "behavioral/controlcatalog/check_list_common_controls_objective_filter_scopes_results.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-common-controls-pagination-no-duplicate-arns", "deployments": [], "key": "controlcatalog/list-common-controls-pagination-no-duplicate-arns", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListCommonControls"], "path": "behavioral/controlcatalog/check_list_common_controls_pagination_no_duplicate_arns.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-common-controls-pagination-stitches-consistently", "deployments": [], "key": "controlcatalog/list-common-controls-pagination-stitches-consistently", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListCommonControls"], "path": "behavioral/controlcatalog/check_list_common_controls_pagination_stitches_consistently.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-control-mappings-control-arn-filter-scopes-results", "deployments": [], "key": "controlcatalog/list-control-mappings-control-arn-filter-scopes-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_list_control_mappings_control_arn_filter_scopes_results.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-control-mappings-filter-by-common-control-arn-matches", "deployments": [], "key": "controlcatalog/list-control-mappings-filter-by-common-control-arn-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_list_control_mappings_filter_by_common_control_arn_matches.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-control-mappings-filter-by-control-arn-matches", "deployments": [], "key": "controlcatalog/list-control-mappings-filter-by-control-arn-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_list_control_mappings_filter_by_control_arn_matches.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-control-mappings-filter-by-mapping-type-matches", "deployments": [], "key": "controlcatalog/list-control-mappings-filter-by-mapping-type-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_list_control_mappings_filter_by_mapping_type_matches.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-control-mappings-invalid-mapping-type-filter-rejected", "deployments": [], "key": "controlcatalog/list-control-mappings-invalid-mapping-type-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_list_control_mappings_invalid_mapping_type_filter_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-control-mappings-mapping-type-filter-scopes-results", "deployments": [], "key": "controlcatalog/list-control-mappings-mapping-type-filter-scopes-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_list_control_mappings_mapping_type_filter_scopes_results.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-control-mappings-pagination-stitches-consistently", "deployments": [], "key": "controlcatalog/list-control-mappings-pagination-stitches-consistently", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControlMappings"], "path": "behavioral/controlcatalog/check_list_control_mappings_pagination_stitches_consistently.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-filter-by-governed-provider-matches", "deployments": [], "key": "controlcatalog/list-controls-filter-by-governed-provider-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_filter_by_governed_provider_matches.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-filter-by-governed-provider-scopes-results", "deployments": [], "key": "controlcatalog/list-controls-filter-by-governed-provider-scopes-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_filter_by_governed_provider_scopes_results.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-governed-provider-filter-scopes-results", "deployments": [], "key": "controlcatalog/list-controls-governed-provider-filter-scopes-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_governed_provider_filter_scopes_results.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-governed-provider-invalid-pattern-rejected", "deployments": [], "key": "controlcatalog/list-controls-governed-provider-invalid-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_governed_provider_invalid_pattern_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-implementation-types-filter-overflow-rejected", "deployments": [], "key": "controlcatalog/list-controls-implementation-types-filter-overflow-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_implementation_types_filter_overflow_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-invalid-next-token-rejected", "deployments": [], "key": "controlcatalog/list-controls-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_invalid_next_token_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-max-results-out-of-range-rejected", "deployments": [], "key": "controlcatalog/list-controls-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_max_results_out_of_range_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-max-results-respected", "deployments": [], "key": "controlcatalog/list-controls-max-results-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_max_results_respected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-next-token-malformed-rejected", "deployments": [], "key": "controlcatalog/list-controls-next-token-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_next_token_malformed_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-pagination-no-duplicate-arns", "deployments": [], "key": "controlcatalog/list-controls-pagination-no-duplicate-arns", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_pagination_no_duplicate_arns.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-pagination-no-duplicates", "deployments": [], "key": "controlcatalog/list-controls-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_pagination_no_duplicates.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-controls-pagination-stitches-consistently", "deployments": [], "key": "controlcatalog/list-controls-pagination-stitches-consistently", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListControls"], "path": "behavioral/controlcatalog/check_list_controls_pagination_stitches_consistently.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-domains-max-results-below-minimum-rejected", "deployments": [], "key": "controlcatalog/list-domains-max-results-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controlcatalog:ListDomains"], "path": "behavioral/controlcatalog/check_list_domains_max_results_below_minimum_rejected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-domains-pagination-matches-single-page", "deployments": [], "key": "controlcatalog/list-domains-pagination-matches-single-page", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListDomains"], "path": "behavioral/controlcatalog/check_list_domains_pagination_matches_single_page.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-domains-pagination-no-duplicate-arns", "deployments": [], "key": "controlcatalog/list-domains-pagination-no-duplicate-arns", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListDomains"], "path": "behavioral/controlcatalog/check_list_domains_pagination_no_duplicate_arns.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-domains-pagination-stitches-consistently", "deployments": [], "key": "controlcatalog/list-domains-pagination-stitches-consistently", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListDomains"], "path": "behavioral/controlcatalog/check_list_domains_pagination_stitches_consistently.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-objectives-domain-filter-scopes-results", "deployments": [], "key": "controlcatalog/list-objectives-domain-filter-scopes-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_list_objectives_domain_filter_scopes_results.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-objectives-filter-by-domain-matches", "deployments": [], "key": "controlcatalog/list-objectives-filter-by-domain-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListDomains", "controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_list_objectives_filter_by_domain_matches.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-objectives-max-results-respected", "deployments": [], "key": "controlcatalog/list-objectives-max-results-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_list_objectives_max_results_respected.py", "service": "controlcatalog"} {"check_id": "controlcatalog.list-objectives-pagination-stitches-consistently", "deployments": [], "key": "controlcatalog/list-objectives-pagination-stitches-consistently", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_list_objectives_pagination_stitches_consistently.py", "service": "controlcatalog"} {"check_id": "controlcatalog.objective-domain-reference-resolves", "deployments": [], "key": "controlcatalog/objective-domain-reference-resolves", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListDomains", "controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_objective_domain_reference_resolves.py", "service": "controlcatalog"} {"check_id": "controlcatalog.objective-domain-reference-valid", "deployments": [], "key": "controlcatalog/objective-domain-reference-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListDomains", "controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_objective_domain_reference_valid.py", "service": "controlcatalog"} {"check_id": "controlcatalog.objective-filter-by-domain-returns-matching-domain", "deployments": [], "key": "controlcatalog/objective-filter-by-domain-returns-matching-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["controlcatalog:ListObjectives"], "path": "behavioral/controlcatalog/check_objective_filter_by_domain_returns_matching_domain.py", "service": "controlcatalog"} {"check_id": "controltower.access-denied-without-permission-rejected", "deployments": [], "key": "controltower/access-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:ListLandingZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/controltower/check_access_denied_without_permission_rejected.py", "service": "controltower"} {"check_id": "controltower.disable-control-missing-identifiers-rejected", "deployments": [], "key": "controltower/disable-control-missing-identifiers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:DisableControl", "sts:GetCallerIdentity"], "path": "behavioral/controltower/check_disable_control_missing_identifiers_rejected.py", "service": "controltower"} {"check_id": "controltower.enable-baseline-malformed-target-arn-rejected", "deployments": [], "key": "controltower/enable-baseline-malformed-target-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:EnableBaseline", "controltower:ListBaselines", "controltower:ListLandingZones", "sts:GetCallerIdentity"], "path": "behavioral/controltower/check_enable_baseline_malformed_target_arn_rejected.py", "service": "controltower"} {"check_id": "controltower.enabled-baselines-list-get-consistency", "deployments": [], "key": "controltower/enabled-baselines-list-get-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["controltower:GetEnabledBaseline", "controltower:ListEnabledBaselines", "controltower:ListLandingZones"], "path": "behavioral/controltower/check_enabled_baselines_list_get_consistency.py", "service": "controltower"} {"check_id": "controltower.enabled-controls-list-get-consistency", "deployments": [], "key": "controltower/enabled-controls-list-get-consistency", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:GetEnabledControl", "controltower:ListEnabledControls", "controltower:ListLandingZones"], "path": "behavioral/controltower/check_enabled_controls_list_get_consistency.py", "service": "controltower"} {"check_id": "controltower.get-baseline-consistent-with-list", "deployments": [], "key": "controltower/get-baseline-consistent-with-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["controltower:GetBaseline", "controltower:ListBaselines"], "path": "behavioral/controltower/check_get_baseline_consistent_with_list.py", "service": "controltower"} {"check_id": "controltower.get-control-operation-malformed-id-validation", "deployments": [], "key": "controltower/get-control-operation-malformed-id-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:GetControlOperation"], "path": "behavioral/controltower/check_get_control_operation_malformed_id_validation.py", "service": "controltower"} {"check_id": "controltower.get-landing-zone-nonexistent-not-found", "deployments": [], "key": "controltower/get-landing-zone-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:GetLandingZone", "controltower:ListLandingZones", "sts:GetCallerIdentity"], "path": "behavioral/controltower/check_get_landing_zone_nonexistent_not_found.py", "service": "controltower"} {"check_id": "controltower.landing-zone-list-get-consistency", "deployments": [], "key": "controltower/landing-zone-list-get-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["controltower:GetLandingZone", "controltower:ListLandingZones"], "path": "behavioral/controltower/check_landing_zone_list_get_consistency.py", "service": "controltower"} {"check_id": "controltower.list-baselines-maxresults-out-of-range-rejected", "deployments": [], "key": "controltower/list-baselines-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:ListBaselines"], "path": "behavioral/controltower/check_list_baselines_maxresults_out_of_range_rejected.py", "service": "controltower"} {"check_id": "controltower.list-baselines-pagination-consistency", "deployments": [], "key": "controltower/list-baselines-pagination-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["controltower:ListBaselines"], "path": "behavioral/controltower/check_list_baselines_pagination_consistency.py", "service": "controltower"} {"check_id": "controltower.list-baselines-returns-managed-catalog", "deployments": [], "key": "controltower/list-baselines-returns-managed-catalog", "labels": ["axis:happy-path", "plane:control"], "operations": ["controltower:ListBaselines", "sts:GetCallerIdentity"], "path": "behavioral/controltower/check_list_baselines_returns_managed_catalog.py", "service": "controltower"} {"check_id": "controltower.list-enabled-controls-target-filter-validation", "deployments": [], "key": "controltower/list-enabled-controls-target-filter-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:ListEnabledControls", "sts:GetCallerIdentity"], "path": "behavioral/controltower/check_list_enabled_controls_target_filter_validation.py", "service": "controltower"} {"check_id": "controltower.list-landing-zones-maxresults-invalid-rejected", "deployments": [], "key": "controltower/list-landing-zones-maxresults-invalid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:ListLandingZones"], "path": "behavioral/controltower/check_list_landing_zones_maxresults_invalid_rejected.py", "service": "controltower"} {"check_id": "controltower.list-tags-for-resource-malformed-arn-validation", "deployments": [], "key": "controltower/list-tags-for-resource-malformed-arn-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["controltower:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/controltower/check_list_tags_for_resource_malformed_arn_validation.py", "service": "controltower"} {"check_id": "cost-optimization-hub.concurrent-enrollment-status-updates-converge-consistently", "deployments": [], "key": "cost-optimization-hub/concurrent-enrollment-status-updates-converge-consistently", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_concurrent_enrollment_status_updates_converge_consistently.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.enrollment-status-active-transition", "deployments": [], "key": "cost-optimization-hub/enrollment-status-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_enrollment_status_active_transition.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.enrollment-status-idempotent-reactivation", "deployments": [], "key": "cost-optimization-hub/enrollment-status-idempotent-reactivation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_enrollment_status_idempotent_reactivation.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.enrollment-status-inactive-transition", "deployments": [], "key": "cost-optimization-hub/enrollment-status-inactive-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_enrollment_status_inactive_transition.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.enrollment-status-timestamp-advances-on-transition", "deployments": [], "key": "cost-optimization-hub/enrollment-status-timestamp-advances-on-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_enrollment_status_timestamp_advances_on_transition.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.get-recommendation-nonexistent-id-not-found", "deployments": [], "key": "cost-optimization-hub/get-recommendation-nonexistent-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["cost-optimization-hub:GetRecommendation", "cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:ListRecommendations", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_get_recommendation_nonexistent_id_not_found.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.list-enrollment-statuses-account-id-pattern-rejected", "deployments": [], "key": "cost-optimization-hub/list-enrollment-statuses-account-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "sts:GetCallerIdentity"], "path": "behavioral/cost-optimization-hub/check_list_enrollment_statuses_account_id_pattern_rejected.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.list-recommendation-summaries-group-by-resource-type-structure", "deployments": [], "key": "cost-optimization-hub/list-recommendation-summaries-group-by-resource-type-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:ListRecommendationSummaries", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_list_recommendation_summaries_group_by_resource_type_structure.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.list-recommendation-summaries-savings-percentage-metric-requested", "deployments": [], "key": "cost-optimization-hub/list-recommendation-summaries-savings-percentage-metric-requested", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cost-optimization-hub:GetPreferences", "cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:ListRecommendationSummaries", "cost-optimization-hub:UpdateEnrollmentStatus", "cost-optimization-hub:UpdatePreferences", "sts:GetCallerIdentity"], "path": "behavioral/cost-optimization-hub/check_list_recommendation_summaries_savings_percentage_metric_requested.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.list-recommendations-filter-nonexistent-account-returns-empty", "deployments": [], "key": "cost-optimization-hub/list-recommendations-filter-nonexistent-account-returns-empty", "labels": ["axis:rejection", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:ListRecommendations", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_list_recommendations_filter_nonexistent_account_returns_empty.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.list-recommendations-max-results-out-of-range-rejected", "deployments": [], "key": "cost-optimization-hub/list-recommendations-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:ListRecommendations", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_list_recommendations_max_results_out_of_range_rejected.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.preferences-member-account-discount-visibility-roundtrip", "deployments": [], "key": "cost-optimization-hub/preferences-member-account-discount-visibility-roundtrip", "labels": ["axis:rejection", "plane:control"], "operations": ["cost-optimization-hub:GetPreferences", "cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus", "cost-optimization-hub:UpdatePreferences"], "path": "behavioral/cost-optimization-hub/check_preferences_member_account_discount_visibility_roundtrip.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.preferences-partial-update-preserves-unspecified-fields", "deployments": [], "key": "cost-optimization-hub/preferences-partial-update-preserves-unspecified-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:GetPreferences", "cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus", "cost-optimization-hub:UpdatePreferences"], "path": "behavioral/cost-optimization-hub/check_preferences_partial_update_preserves_unspecified_fields.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.preferences-preferred-commitment-roundtrip", "deployments": [], "key": "cost-optimization-hub/preferences-preferred-commitment-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:GetPreferences", "cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus", "cost-optimization-hub:UpdatePreferences"], "path": "behavioral/cost-optimization-hub/check_preferences_preferred_commitment_roundtrip.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.preferences-savings-estimation-mode-roundtrip", "deployments": [], "key": "cost-optimization-hub/preferences-savings-estimation-mode-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["cost-optimization-hub:GetPreferences", "cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus", "cost-optimization-hub:UpdatePreferences"], "path": "behavioral/cost-optimization-hub/check_preferences_savings_estimation_mode_roundtrip.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.update-enrollment-status-invalid-value-rejected", "deployments": [], "key": "cost-optimization-hub/update-enrollment-status-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus"], "path": "behavioral/cost-optimization-hub/check_update_enrollment_status_invalid_value_rejected.py", "service": "cost-optimization-hub"} {"check_id": "cost-optimization-hub.update-preferences-invalid-discount-visibility-rejected", "deployments": [], "key": "cost-optimization-hub/update-preferences-invalid-discount-visibility-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cost-optimization-hub:GetPreferences", "cost-optimization-hub:ListEnrollmentStatuses", "cost-optimization-hub:UpdateEnrollmentStatus", "cost-optimization-hub:UpdatePreferences"], "path": "behavioral/cost-optimization-hub/check_update_preferences_invalid_discount_visibility_rejected.py", "service": "cost-optimization-hub"} {"check_id": "cur.delete-report-definition-clears-tags-for-recreated-same-name", "deployments": [], "key": "cur/delete-report-definition-clears-tags-for-recreated-same-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["cur:DeleteReportDefinition", "cur:ListTagsForResource", "cur:PutReportDefinition", "cur:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/cur/check_delete_report_definition_clears_tags_for_recreated_same_name.py", "service": "cur"} {"check_id": "cur.duplicate-name-put-rejected-leaves-definition-and-tags-unchanged", "deployments": [], "key": "cur/duplicate-name-put-rejected-leaves-definition-and-tags-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["cur:DeleteReportDefinition", "cur:DescribeReportDefinitions", "cur:ListTagsForResource", "cur:PutReportDefinition", "cur:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/cur/check_duplicate_name_put_rejected_leaves_definition_and_tags_unchanged.py", "service": "cur"} {"check_id": "cur.modify-report-definition-preserves-existing-tags", "deployments": [], "key": "cur/modify-report-definition-preserves-existing-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["cur:DeleteReportDefinition", "cur:DescribeReportDefinitions", "cur:ListTagsForResource", "cur:ModifyReportDefinition", "cur:PutReportDefinition", "cur:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/cur/check_modify_report_definition_preserves_existing_tags.py", "service": "cur"} {"check_id": "cur.tag-operations-on-deleted-report-are-rejected-not-silently-accepted", "deployments": [], "key": "cur/tag-operations-on-deleted-report-are-rejected-not-silently-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["cur:DeleteReportDefinition", "cur:ListTagsForResource", "cur:PutReportDefinition", "cur:TagResource", "cur:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/cur/check_tag_operations_on_deleted_report_are_rejected_not_silently_accepted.py", "service": "cur"} {"check_id": "cur.tag-resource-upserts-value-for-existing-key", "deployments": [], "key": "cur/tag-resource-upserts-value-for-existing-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["cur:DeleteReportDefinition", "cur:ListTagsForResource", "cur:PutReportDefinition", "cur:TagResource", "cur:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/cur/check_tag_resource_upserts_value_for_existing_key.py", "service": "cur"} {"check_id": "cur.two-independent-report-definitions-have-isolated-tag-and-delete-lifecycles", "deployments": [], "key": "cur/two-independent-report-definitions-have-isolated-tag-and-delete-lifecycles", "labels": ["axis:happy-path", "plane:control"], "operations": ["cur:DeleteReportDefinition", "cur:DescribeReportDefinitions", "cur:ListTagsForResource", "cur:PutReportDefinition", "cur:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/cur/check_two_independent_report_definitions_have_isolated_tag_and_delete_lifecycles.py", "service": "cur"} {"check_id": "customer-profiles.batch-get-profile-mixed-valid-invalid", "deployments": [], "key": "customer-profiles/batch-get-profile-mixed-valid-invalid", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:BatchGetProfile", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain"], "path": "behavioral/customer-profiles/check_batch_get_profile_mixed_valid_invalid.py", "service": "customer-profiles"} {"check_id": "customer-profiles.batch-put-profile-object-partial-failure", "deployments": [], "key": "customer-profiles/batch-put-profile-object-partial-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:BatchPutProfileObject", "customer-profiles:CreateDomain", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileObjectType", "customer-profiles:ListProfileObjects", "customer-profiles:PutProfileObjectType", "customer-profiles:SearchProfiles"], "path": "behavioral/customer-profiles/check_batch_put_profile_object_partial_failure.py", "service": "customer-profiles"} {"check_id": "customer-profiles.calculated-attribute-definition-status-transition", "deployments": [], "key": "customer-profiles/calculated-attribute-definition-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["customer-profiles:CreateCalculatedAttributeDefinition", "customer-profiles:CreateDomain", "customer-profiles:DeleteCalculatedAttributeDefinition", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileObjectType", "customer-profiles:GetCalculatedAttributeDefinition", "customer-profiles:PutProfileObjectType"], "path": "behavioral/customer-profiles/check_calculated_attribute_definition_status_transition.py", "service": "customer-profiles"} {"check_id": "customer-profiles.concurrent-calculated-attribute-creation-exactly-one-wins", "deployments": [], "key": "customer-profiles/concurrent-calculated-attribute-creation-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["customer-profiles:CreateCalculatedAttributeDefinition", "customer-profiles:CreateDomain", "customer-profiles:DeleteCalculatedAttributeDefinition", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileObjectType", "customer-profiles:GetCalculatedAttributeDefinition", "customer-profiles:ListCalculatedAttributeDefinitions", "customer-profiles:PutProfileObjectType"], "path": "behavioral/customer-profiles/check_concurrent_calculated_attribute_creation_exactly_one_wins.py", "service": "customer-profiles"} {"check_id": "customer-profiles.concurrent-profile-key-addition-no-lost-update", "deployments": [], "key": "customer-profiles/concurrent-profile-key-addition-no-lost-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:AddProfileKey", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "customer-profiles:SearchProfiles"], "path": "behavioral/customer-profiles/check_concurrent_profile_key_addition_no_lost_update.py", "service": "customer-profiles"} {"check_id": "customer-profiles.cross-domain-profile-lookup-not-found", "deployments": [], "key": "customer-profiles/cross-domain-profile-lookup-not-found", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:BatchGetProfile", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain"], "path": "behavioral/customer-profiles/check_cross_domain_profile_lookup_not_found.py", "service": "customer-profiles"} {"check_id": "customer-profiles.delete-profile-key-mismatched-value-rejected", "deployments": [], "key": "customer-profiles/delete-profile-key-mismatched-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["customer-profiles:AddProfileKey", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileKey", "customer-profiles:SearchProfiles"], "path": "behavioral/customer-profiles/check_delete_profile_key_mismatched_value_rejected.py", "service": "customer-profiles"} {"check_id": "customer-profiles.domain-create-update-delete-lifecycle", "deployments": [], "key": "customer-profiles/domain-create-update-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:DeleteDomain", "customer-profiles:GetDomain", "customer-profiles:UpdateDomain"], "path": "behavioral/customer-profiles/check_domain_create_update_delete_lifecycle.py", "service": "customer-profiles"} {"check_id": "customer-profiles.duplicate-calculated-attribute-name-rejected", "deployments": [], "key": "customer-profiles/duplicate-calculated-attribute-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["customer-profiles:CreateCalculatedAttributeDefinition", "customer-profiles:CreateDomain", "customer-profiles:DeleteCalculatedAttributeDefinition", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileObjectType", "customer-profiles:GetCalculatedAttributeDefinition", "customer-profiles:ListCalculatedAttributeDefinitions", "customer-profiles:PutProfileObjectType"], "path": "behavioral/customer-profiles/check_duplicate_calculated_attribute_name_rejected.py", "service": "customer-profiles"} {"check_id": "customer-profiles.event-stream-kinesis-lifecycle", "deployments": [], "key": "customer-profiles/event-stream-kinesis-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:CreateEventStream", "customer-profiles:DeleteDomain", "customer-profiles:DeleteEventStream", "customer-profiles:GetEventStream", "customer-profiles:ListEventStreams", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/customer-profiles/check_event_stream_kinesis_lifecycle.py", "service": "customer-profiles"} {"check_id": "customer-profiles.merge-profiles-deep-history-and-deletion", "deployments": [], "key": "customer-profiles/merge-profiles-deep-history-and-deletion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:BatchGetProfile", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "customer-profiles:ListProfileHistoryRecords", "customer-profiles:MergeProfiles", "customer-profiles:UpdateProfile"], "path": "behavioral/customer-profiles/check_merge_profiles_deep_history_and_deletion.py", "service": "customer-profiles"} {"check_id": "customer-profiles.merge-profiles-self-reference-rejected", "deployments": [], "key": "customer-profiles/merge-profiles-self-reference-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["customer-profiles:BatchGetProfile", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "customer-profiles:MergeProfiles"], "path": "behavioral/customer-profiles/check_merge_profiles_self_reference_rejected.py", "service": "customer-profiles"} {"check_id": "customer-profiles.profile-creation-generates-history-record", "deployments": [], "key": "customer-profiles/profile-creation-generates-history-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "customer-profiles:ListProfileHistoryRecords"], "path": "behavioral/customer-profiles/check_profile_creation_generates_history_record.py", "service": "customer-profiles"} {"check_id": "customer-profiles.profile-key-history-records-add-and-delete", "deployments": [], "key": "customer-profiles/profile-key-history-records-add-and-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:AddProfileKey", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileKey", "customer-profiles:ListProfileHistoryRecords", "customer-profiles:SearchProfiles"], "path": "behavioral/customer-profiles/check_profile_key_history_records_add_and_delete.py", "service": "customer-profiles"} {"check_id": "customer-profiles.profile-object-type-put-get-delete-lifecycle", "deployments": [], "key": "customer-profiles/profile-object-type-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileObjectType", "customer-profiles:GetProfileObjectType", "customer-profiles:PutProfileObjectType"], "path": "behavioral/customer-profiles/check_profile_object_type_put_get_delete_lifecycle.py", "service": "customer-profiles"} {"check_id": "customer-profiles.put-profile-object-list-and-delete", "deployments": [], "key": "customer-profiles/put-profile-object-list-and-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileObject", "customer-profiles:DeleteProfileObjectType", "customer-profiles:ListProfileObjects", "customer-profiles:PutProfileObject", "customer-profiles:PutProfileObjectType", "customer-profiles:SearchProfiles"], "path": "behavioral/customer-profiles/check_put_profile_object_list_and_delete.py", "service": "customer-profiles"} {"check_id": "customer-profiles.put-profile-object-type-template-and-fields-conflict-rejected", "deployments": [], "key": "customer-profiles/put-profile-object-type-template-and-fields-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:DeleteDomain", "customer-profiles:DeleteProfileObjectType", "customer-profiles:GetProfileObjectType", "customer-profiles:PutProfileObjectType"], "path": "behavioral/customer-profiles/check_put_profile_object_type_template_and_fields_conflict_rejected.py", "service": "customer-profiles"} {"check_id": "customer-profiles.recommender-schema-lifecycle", "deployments": [], "key": "customer-profiles/recommender-schema-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:CreateRecommenderSchema", "customer-profiles:DeleteDomain", "customer-profiles:GetRecommenderSchema", "customer-profiles:ListRecommenderSchemas", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/customer-profiles/check_recommender_schema_lifecycle.py", "service": "customer-profiles"} {"check_id": "customer-profiles.search-profiles-logical-operator-and-or", "deployments": [], "key": "customer-profiles/search-profiles-logical-operator-and-or", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "customer-profiles:SearchProfiles"], "path": "behavioral/customer-profiles/check_search_profiles_logical_operator_and_or.py", "service": "customer-profiles"} {"check_id": "customer-profiles.start-upload-job-wrong-state-rejected", "deployments": [], "key": "customer-profiles/start-upload-job-wrong-state-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:CreateUploadJob", "customer-profiles:DeleteDomain", "customer-profiles:GetUploadJob", "customer-profiles:GetUploadJobPath", "customer-profiles:StartUploadJob"], "path": "behavioral/customer-profiles/check_start_upload_job_wrong_state_rejected.py", "service": "customer-profiles"} {"check_id": "customer-profiles.update-profile-persists-changes", "deployments": [], "key": "customer-profiles/update-profile-persists-changes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["customer-profiles:BatchGetProfile", "customer-profiles:CreateDomain", "customer-profiles:CreateProfile", "customer-profiles:DeleteDomain", "customer-profiles:UpdateProfile"], "path": "behavioral/customer-profiles/check_update_profile_persists_changes.py", "service": "customer-profiles"} {"check_id": "customer-profiles.upload-job-state-transitions", "deployments": [], "key": "customer-profiles/upload-job-state-transitions", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["customer-profiles:CreateDomain", "customer-profiles:CreateUploadJob", "customer-profiles:DeleteDomain", "customer-profiles:GetUploadJob", "customer-profiles:GetUploadJobPath", "customer-profiles:StartUploadJob", "customer-profiles:StopUploadJob"], "path": "behavioral/customer-profiles/check_upload_job_state_transitions.py", "service": "customer-profiles"} {"check_id": "databrew.delete-dataset-referenced-by-project-rejected", "deployments": [], "key": "databrew/delete-dataset-referenced-by-project-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["databrew:BatchDeleteRecipeVersion", "databrew:CreateDataset", "databrew:CreateProject", "databrew:CreateRecipe", "databrew:DeleteDataset", "databrew:DeleteProject", "databrew:DescribeDataset", "databrew:DescribeProject", "databrew:ListRecipeVersions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/databrew/check_delete_dataset_referenced_by_project_rejected.py", "service": "databrew"} {"check_id": "databrew.recipe-job-creation-rejects-untrusted-role-and-missing-outputs", "deployments": [], "key": "databrew/recipe-job-creation-rejects-untrusted-role-and-missing-outputs", "labels": ["axis:rejection", "plane:control"], "operations": ["databrew:BatchDeleteRecipeVersion", "databrew:CreateDataset", "databrew:CreateRecipe", "databrew:CreateRecipeJob", "databrew:DeleteDataset", "databrew:DeleteJob", "databrew:DescribeJob", "databrew:DescribeRecipe", "databrew:ListRecipeVersions", "databrew:PublishRecipe", "databrew:StartJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/databrew/check_recipe_job_creation_rejects_untrusted_role_and_missing_outputs.py", "service": "databrew"} {"check_id": "databrew.recipe-job-filter-drops-rows-from-s3-output", "deployments": [], "key": "databrew/recipe-job-filter-drops-rows-from-s3-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["databrew:BatchDeleteRecipeVersion", "databrew:CreateDataset", "databrew:CreateRecipe", "databrew:CreateRecipeJob", "databrew:DeleteDataset", "databrew:DeleteJob", "databrew:DescribeJobRun", "databrew:DescribeRecipe", "databrew:ListRecipeVersions", "databrew:PublishRecipe", "databrew:StartJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/databrew/check_recipe_job_filter_drops_rows_from_s3_output.py", "service": "databrew"} {"check_id": "databrew.recipe-job-on-mismatched-dataset-schema-fails-and-writes-nothing", "deployments": [], "key": "databrew/recipe-job-on-mismatched-dataset-schema-fails-and-writes-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["databrew:BatchDeleteRecipeVersion", "databrew:CreateDataset", "databrew:CreateProject", "databrew:CreateRecipe", "databrew:CreateRecipeJob", "databrew:DeleteDataset", "databrew:DeleteJob", "databrew:DeleteProject", "databrew:DescribeJobRun", "databrew:DescribeProject", "databrew:DescribeRecipe", "databrew:ListJobRuns", "databrew:ListRecipeVersions", "databrew:PublishRecipe", "databrew:StartJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/databrew/check_recipe_job_on_mismatched_dataset_schema_fails_and_writes_nothing.py", "service": "databrew"} {"check_id": "databrew.recipe-job-rename-and-type-coercion-land-in-output", "deployments": [], "key": "databrew/recipe-job-rename-and-type-coercion-land-in-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["databrew:BatchDeleteRecipeVersion", "databrew:CreateDataset", "databrew:CreateRecipe", "databrew:CreateRecipeJob", "databrew:DeleteDataset", "databrew:DeleteJob", "databrew:DescribeJobRun", "databrew:DescribeRecipe", "databrew:ListRecipeVersions", "databrew:PublishRecipe", "databrew:StartJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/databrew/check_recipe_job_rename_and_type_coercion_land_in_output.py", "service": "databrew"} {"check_id": "databrew.recipe-version-publish-and-latest-working-split", "deployments": [], "key": "databrew/recipe-version-publish-and-latest-working-split", "labels": ["axis:happy-path", "plane:control"], "operations": ["databrew:BatchDeleteRecipeVersion", "databrew:CreateRecipe", "databrew:DeleteRecipeVersion", "databrew:DescribeRecipe", "databrew:ListRecipeVersions", "databrew:PublishRecipe", "databrew:UpdateRecipe"], "path": "behavioral/databrew/check_recipe_version_publish_and_latest_working_split.py", "service": "databrew"} {"check_id": "databrew.schedule-rejects-non-cron-expression-and-unknown-job", "deployments": [], "key": "databrew/schedule-rejects-non-cron-expression-and-unknown-job", "labels": ["axis:rejection", "plane:control"], "operations": ["databrew:CreateSchedule", "databrew:DeleteSchedule", "databrew:DescribeSchedule", "databrew:UpdateSchedule"], "path": "behavioral/databrew/check_schedule_rejects_non_cron_expression_and_unknown_job.py", "service": "databrew"} {"check_id": "dataexchange.accept-data-grant-wrong-caller-rejected", "deployments": [], "key": "dataexchange/accept-data-grant-wrong-caller-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dataexchange:AcceptDataGrant", "dataexchange:CreateDataGrant", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataGrant", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetDataGrant", "dataexchange:GetJob", "dataexchange:StartJob", "dataexchange:UpdateRevision", "sts:GetCallerIdentity"], "path": "behavioral/dataexchange/check_accept_data_grant_wrong_caller_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.cancel-job-from-waiting-state", "deployments": [], "key": "dataexchange/cancel-job-from-waiting-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["dataexchange:CancelJob", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob"], "path": "behavioral/dataexchange/check_cancel_job_from_waiting_state.py", "service": "dataexchange"} {"check_id": "dataexchange.cancel-terminal-job-rejected", "deployments": [], "key": "dataexchange/cancel-terminal-job-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dataexchange:CancelJob", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob"], "path": "behavioral/dataexchange/check_cancel_terminal_job_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.concurrent-start-job-race-single-winner", "deployments": [], "key": "dataexchange/concurrent-start-job-race-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob", "dataexchange:StartJob"], "path": "behavioral/dataexchange/check_concurrent_start_job_race_single_winner.py", "service": "dataexchange"} {"check_id": "dataexchange.create-data-grant-ends-at-past-rejected", "deployments": [], "key": "dataexchange/create-data-grant-ends-at-past-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataGrant", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataGrant", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetDataGrant", "dataexchange:GetJob", "dataexchange:ListDataGrants", "dataexchange:StartJob", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_create_data_grant_ends_at_past_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.create-data-grant-invalid-receiver-principal-rejected", "deployments": [], "key": "dataexchange/create-data-grant-invalid-receiver-principal-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataGrant", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataGrant", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetDataGrant", "dataexchange:GetJob", "dataexchange:ListDataGrants", "dataexchange:StartJob", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_create_data_grant_invalid_receiver_principal_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.data-grant-create-reflects-pending-state", "deployments": [], "key": "dataexchange/data-grant-create-reflects-pending-state", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataGrant", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataGrant", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetDataGrant", "dataexchange:GetJob", "dataexchange:GetRevision", "dataexchange:StartJob", "dataexchange:UpdateRevision", "sts:GetCallerIdentity"], "path": "behavioral/dataexchange/check_data_grant_create_reflects_pending_state.py", "service": "dataexchange"} {"check_id": "dataexchange.data-grant-delete-removes-grant", "deployments": [], "key": "dataexchange/data-grant-delete-removes-grant", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataGrant", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataGrant", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetDataGrant", "dataexchange:GetJob", "dataexchange:ListDataGrants", "dataexchange:StartJob", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_data_grant_delete_removes_grant.py", "service": "dataexchange"} {"check_id": "dataexchange.dataset-lifecycle-create-get-delete", "deployments": [], "key": "dataexchange/dataset-lifecycle-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["dataexchange:CreateDataSet", "dataexchange:DeleteDataSet", "dataexchange:GetDataSet", "dataexchange:ListDataSets", "dataexchange:UpdateDataSet"], "path": "behavioral/dataexchange/check_dataset_lifecycle_create_get_delete.py", "service": "dataexchange"} {"check_id": "dataexchange.delete-asset-after-finalize-rejected", "deployments": [], "key": "dataexchange/delete-asset-after-finalize-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteAsset", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetAsset", "dataexchange:GetJob", "dataexchange:ListRevisionAssets", "dataexchange:StartJob", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_delete_asset_after_finalize_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.event-action-notfound-error-semantics", "deployments": [], "key": "dataexchange/event-action-notfound-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["dataexchange:DeleteEventAction", "dataexchange:GetEventAction", "dataexchange:ListEventActions", "dataexchange:UpdateEventAction"], "path": "behavioral/dataexchange/check_event_action_notfound_error_semantics.py", "service": "dataexchange"} {"check_id": "dataexchange.event-action-requires-entitled-dataset-rejected", "deployments": [], "key": "dataexchange/event-action-requires-entitled-dataset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateEventAction", "dataexchange:DeleteDataSet", "dataexchange:DeleteEventAction", "dataexchange:GetDataSet", "dataexchange:ListEventActions", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/dataexchange/check_event_action_requires_entitled_dataset_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.finalize-revision-without-assets-rejected", "deployments": [], "key": "dataexchange/finalize-revision-without-assets-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob", "dataexchange:GetRevision", "dataexchange:ListRevisionAssets", "dataexchange:StartJob", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_finalize_revision_without_assets_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.get-job-unknown-id-not-found", "deployments": [], "key": "dataexchange/get-job-unknown-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob"], "path": "behavioral/dataexchange/check_get_job_unknown_id_not_found.py", "service": "dataexchange"} {"check_id": "dataexchange.import-asset-signed-url-job-roundtrip", "deployments": [], "key": "dataexchange/import-asset-signed-url-job-roundtrip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetAsset", "dataexchange:GetJob", "dataexchange:ListRevisionAssets", "dataexchange:StartJob"], "path": "behavioral/dataexchange/check_import_asset_signed_url_job_roundtrip.py", "service": "dataexchange"} {"check_id": "dataexchange.list-data-set-revisions-invalid-next-token-rejected", "deployments": [], "key": "dataexchange/list-data-set-revisions-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dataexchange:CreateDataSet", "dataexchange:DeleteDataSet", "dataexchange:ListDataSetRevisions"], "path": "behavioral/dataexchange/check_list_data_set_revisions_invalid_next_token_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.list-data-sets-invalid-origin-filter-rejected", "deployments": [], "key": "dataexchange/list-data-sets-invalid-origin-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dataexchange:ListDataSets"], "path": "behavioral/dataexchange/check_list_data_sets_invalid_origin_filter_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.revision-asset-finalize-state-transition", "deployments": [], "key": "dataexchange/revision-asset-finalize-state-transition", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob", "dataexchange:GetRevision", "dataexchange:ListDataSetRevisions", "dataexchange:StartJob", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_revision_asset_finalize_state_transition.py", "service": "dataexchange"} {"check_id": "dataexchange.revision-list-and-delete-lifecycle", "deployments": [], "key": "dataexchange/revision-list-and-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetDataSet", "dataexchange:GetRevision", "dataexchange:ListDataSetRevisions", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_revision_list_and_delete_lifecycle.py", "service": "dataexchange"} {"check_id": "dataexchange.revoke-revision-not-in-grant-rejected", "deployments": [], "key": "dataexchange/revoke-revision-not-in-grant-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataGrant", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataGrant", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob", "dataexchange:GetRevision", "dataexchange:RevokeRevision", "dataexchange:StartJob", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_revoke_revision_not_in_grant_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.send-data-set-notification-error-semantics", "deployments": [], "key": "dataexchange/send-data-set-notification-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["dataexchange:CreateDataSet", "dataexchange:DeleteDataSet", "dataexchange:SendDataSetNotification"], "path": "behavioral/dataexchange/check_send_data_set_notification_error_semantics.py", "service": "dataexchange"} {"check_id": "dataexchange.start-job-already-started-rejected", "deployments": [], "key": "dataexchange/start-job-already-started-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob", "dataexchange:StartJob"], "path": "behavioral/dataexchange/check_start_job_already_started_rejected.py", "service": "dataexchange"} {"check_id": "dataexchange.tag-resource-roundtrip-and-export-deploy", "deployments": [], "key": "dataexchange/tag-resource-roundtrip-and-export-deploy", "labels": ["axis:happy-path", "plane:control"], "operations": ["dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetDataSet", "dataexchange:GetJob", "dataexchange:ListTagsForResource", "dataexchange:StartJob", "dataexchange:TagResource", "dataexchange:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/dataexchange/check_tag_resource_roundtrip_and_export_deploy.py", "service": "dataexchange"} {"check_id": "dataexchange.update-asset-name-persists-and-full-lifecycle-e2e", "deployments": [], "key": "dataexchange/update-asset-name-persists-and-full-lifecycle-e2e", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataGrant", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataGrant", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetAsset", "dataexchange:GetDataGrant", "dataexchange:GetDataSet", "dataexchange:GetJob", "dataexchange:GetRevision", "dataexchange:ListDataGrants", "dataexchange:ListRevisionAssets", "dataexchange:RevokeRevision", "dataexchange:StartJob", "dataexchange:UpdateAsset", "dataexchange:UpdateDataSet", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_update_asset_name_persists_and_full_lifecycle_e2e.py", "service": "dataexchange"} {"check_id": "dataexchange.update-revoked-revision-rejected", "deployments": [], "key": "dataexchange/update-revoked-revision-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dataexchange:CreateDataGrant", "dataexchange:CreateDataSet", "dataexchange:CreateJob", "dataexchange:CreateRevision", "dataexchange:DeleteDataGrant", "dataexchange:DeleteDataSet", "dataexchange:DeleteRevision", "dataexchange:GetJob", "dataexchange:GetRevision", "dataexchange:RevokeRevision", "dataexchange:StartJob", "dataexchange:UpdateRevision"], "path": "behavioral/dataexchange/check_update_revoked_revision_rejected.py", "service": "dataexchange"} {"check_id": "datasync.agent-not-found-error-is-consistent-across-location-types", "deployments": [], "key": "datasync/agent-not-found-error-is-consistent-across-location-types", "labels": ["axis:rejection", "plane:control"], "operations": ["datasync:CreateLocationHdfs", "datasync:CreateLocationNfs", "datasync:CreateLocationObjectStorage", "datasync:CreateLocationSmb", "datasync:DeleteLocation", "datasync:DescribeAgent", "datasync:DescribeLocationObjectStorage"], "path": "behavioral/datasync/check_agent_not_found_error_is_consistent_across_location_types.py", "service": "datasync"} {"check_id": "datasync.agentless-object-storage-location-rejects-later-agent-update", "deployments": [], "key": "datasync/agentless-object-storage-location-rejects-later-agent-update", "labels": ["axis:rejection", "plane:control"], "operations": ["datasync:CreateLocationObjectStorage", "datasync:DeleteLocation", "datasync:DescribeLocationObjectStorage", "datasync:UpdateLocationObjectStorage"], "path": "behavioral/datasync/check_agentless_object_storage_location_rejects_later_agent_update.py", "service": "datasync"} {"check_id": "datasync.already-synced-destination-transfers-no-bytes-but-verifies", "deployments": [], "key": "datasync/already-synced-destination-transfers-no-bytes-but-verifies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["datasync:CreateLocationS3", "datasync:CreateTask", "datasync:DeleteLocation", "datasync:DeleteTask", "datasync:DescribeTask", "datasync:DescribeTaskExecution", "datasync:StartTaskExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/datasync/check_already_synced_destination_transfers_no_bytes_but_verifies.py", "service": "datasync"} {"check_id": "datasync.create-location-efs-tag-mutations-are-visible-via-list-tags", "deployments": [], "key": "datasync/create-location-efs-tag-mutations-are-visible-via-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["datasync:CreateLocationEfs", "datasync:DeleteLocation", "datasync:ListTagsForResource", "datasync:TagResource", "datasync:UntagResource", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeFileSystems", "efs:DescribeMountTargets"], "path": "behavioral/datasync/check_create_location_efs_tag_mutations_are_visible_via_list_tags.py", "service": "datasync"} {"check_id": "datasync.create-location-s3-unreadable-bucket-rejected", "deployments": [], "key": "datasync/create-location-s3-unreadable-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["datasync:CreateLocationS3", "datasync:DeleteLocation", "datasync:DescribeLocationS3", "datasync:ListLocations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/datasync/check_create_location_s3_unreadable_bucket_rejected.py", "service": "datasync"} {"check_id": "datasync.create-task-rejects-same-source-and-destination-location", "deployments": [], "key": "datasync/create-task-rejects-same-source-and-destination-location", "labels": ["axis:rejection", "plane:control"], "operations": ["datasync:CreateLocationS3", "datasync:CreateTask", "datasync:DeleteLocation", "datasync:DeleteTask", "datasync:DescribeTask", "datasync:ListTasks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/datasync/check_create_task_rejects_same_source_and_destination_location.py", "service": "datasync"} {"check_id": "datasync.create-task-rejects-transfer-all-with-overwrite-never", "deployments": [], "key": "datasync/create-task-rejects-transfer-all-with-overwrite-never", "labels": ["axis:rejection", "plane:control"], "operations": ["datasync:CreateLocationS3", "datasync:CreateTask", "datasync:DeleteLocation", "datasync:DeleteTask", "datasync:DescribeTask", "datasync:ListTasks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/datasync/check_create_task_rejects_transfer_all_with_overwrite_never.py", "service": "datasync"} {"check_id": "datasync.duplicate-azure-blob-location-configs-are-independent-resources", "deployments": [], "key": "datasync/duplicate-azure-blob-location-configs-are-independent-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["datasync:CreateLocationAzureBlob", "datasync:DeleteLocation", "datasync:DescribeLocationAzureBlob", "datasync:ListLocations"], "path": "behavioral/datasync/check_duplicate_azure_blob_location_configs_are_independent_resources.py", "service": "datasync"} {"check_id": "datasync.execution-denied-when-role-loses-source-bucket-access", "deployments": [], "key": "datasync/execution-denied-when-role-loses-source-bucket-access", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["datasync:CreateLocationS3", "datasync:CreateTask", "datasync:DeleteLocation", "datasync:DeleteTask", "datasync:DescribeTask", "datasync:DescribeTaskExecution", "datasync:StartTaskExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/datasync/check_execution_denied_when_role_loses_source_bucket_access.py", "service": "datasync"} {"check_id": "datasync.overwrite-mode-never-preserves-existing-destination-objects", "deployments": [], "key": "datasync/overwrite-mode-never-preserves-existing-destination-objects", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["datasync:CreateLocationS3", "datasync:CreateTask", "datasync:DeleteLocation", "datasync:DeleteTask", "datasync:DescribeTask", "datasync:DescribeTaskExecution", "datasync:StartTaskExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/datasync/check_overwrite_mode_never_preserves_existing_destination_objects.py", "service": "datasync"} {"check_id": "datasync.s3-to-s3-agentless-transfer-copies-objects-and-counters", "deployments": [], "key": "datasync/s3-to-s3-agentless-transfer-copies-objects-and-counters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["datasync:CreateLocationS3", "datasync:CreateTask", "datasync:DeleteLocation", "datasync:DeleteTask", "datasync:DescribeTask", "datasync:DescribeTaskExecution", "datasync:ListTaskExecutions", "datasync:StartTaskExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/datasync/check_s3_to_s3_agentless_transfer_copies_objects_and_counters.py", "service": "datasync"} {"check_id": "datasync.simple-pattern-filters-partition-the-transferred-set", "deployments": [], "key": "datasync/simple-pattern-filters-partition-the-transferred-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["datasync:CreateLocationS3", "datasync:CreateTask", "datasync:DeleteLocation", "datasync:DeleteTask", "datasync:DescribeTask", "datasync:DescribeTaskExecution", "datasync:StartTaskExecution", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/datasync/check_simple_pattern_filters_partition_the_transferred_set.py", "service": "datasync"} {"check_id": "datazone.asset-filter-column-configuration-becomes-valid", "deployments": [], "key": "datazone/asset-filter-column-configuration-becomes-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateAsset", "datazone:CreateAssetFilter", "datazone:CreateDomain", "datazone:CreateProject", "datazone:DeleteAsset", "datazone:DeleteAssetFilter", "datazone:DeleteDomain", "datazone:DeleteProject", "datazone:GetAssetFilter", "datazone:GetDomain", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/datazone/check_asset_filter_column_configuration_becomes_valid.py", "service": "datazone"} {"check_id": "datazone.asset-glossary-terms-attachment-round-trip", "deployments": [], "key": "datazone/asset-glossary-terms-attachment-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateAsset", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateGlossary", "datazone:CreateGlossaryTerm", "datazone:CreateProject", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteProject", "datazone:GetAsset", "datazone:GetDomain", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_asset_glossary_terms_attachment_round_trip.py", "service": "datazone"} {"check_id": "datazone.asset-revision-increment", "deployments": [], "key": "datazone/asset-revision-increment", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateAsset", "datazone:CreateAssetRevision", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateProject", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteProject", "datazone:GetDomain", "datazone:ListAssetRevisions", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_asset_revision_increment.py", "service": "datazone"} {"check_id": "datazone.domain-create-and-delete-lifecycle", "deployments": [], "key": "datazone/domain-create-and-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:DeleteDomain", "datazone:GetDomain", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_domain_create_and_delete_lifecycle.py", "service": "datazone"} {"check_id": "datazone.domain-duplicate-name-conflict-rejected", "deployments": [], "key": "datazone/domain-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:DeleteDomain", "datazone:GetDomain", "datazone:ListDomains", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_domain_duplicate_name_conflict_rejected.py", "service": "datazone"} {"check_id": "datazone.domain-unit-concurrent-create-same-name-one-wins", "deployments": [], "key": "datazone/domain-unit-concurrent-create-same-name-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateDomainUnit", "datazone:DeleteDomain", "datazone:DeleteDomainUnit", "datazone:GetDomain", "datazone:ListDomainUnitsForParent", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_domain_unit_concurrent_create_same_name_one_wins.py", "service": "datazone"} {"check_id": "datazone.domain-unit-delete-non-empty-parent-rejected", "deployments": [], "key": "datazone/domain-unit-delete-non-empty-parent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateDomainUnit", "datazone:DeleteDomain", "datazone:DeleteDomainUnit", "datazone:GetDomain", "datazone:GetDomainUnit", "datazone:ListDomainUnitsForParent", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_domain_unit_delete_non_empty_parent_rejected.py", "service": "datazone"} {"check_id": "datazone.domain-unit-hierarchy-ancestors", "deployments": [], "key": "datazone/domain-unit-hierarchy-ancestors", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateDomainUnit", "datazone:DeleteDomain", "datazone:DeleteDomainUnit", "datazone:GetDomain", "datazone:GetDomainUnit", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_domain_unit_hierarchy_ancestors.py", "service": "datazone"} {"check_id": "datazone.entity-owner-add-list-remove", "deployments": [], "key": "datazone/entity-owner-add-list-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:AddEntityOwner", "datazone:CreateDomain", "datazone:CreateDomainUnit", "datazone:DeleteDomain", "datazone:DeleteDomainUnit", "datazone:GetDomain", "datazone:ListEntityOwners", "datazone:RemoveEntityOwner", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_entity_owner_add_list_remove.py", "service": "datazone"} {"check_id": "datazone.form-type-asset-type-forms-round-trip", "deployments": [], "key": "datazone/form-type-asset-type-forms-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateAsset", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateFormType", "datazone:CreateProject", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteFormType", "datazone:DeleteProject", "datazone:GetAsset", "datazone:GetDomain", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_form_type_asset_type_forms_round_trip.py", "service": "datazone"} {"check_id": "datazone.form-type-delete-in-use-conflict-rejected", "deployments": [], "key": "datazone/form-type-delete-in-use-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:CreateAsset", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateFormType", "datazone:CreateProject", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteFormType", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetFormType", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_form_type_delete_in_use_conflict_rejected.py", "service": "datazone"} {"check_id": "datazone.glossary-delete-with-terms-rejected", "deployments": [], "key": "datazone/glossary-delete-with-terms-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateGlossary", "datazone:CreateGlossaryTerm", "datazone:CreateProject", "datazone:DeleteDomain", "datazone:DeleteGlossary", "datazone:DeleteGlossaryTerm", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetGlossary", "datazone:UpdateGlossary", "datazone:UpdateGlossaryTerm", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_glossary_delete_with_terms_rejected.py", "service": "datazone"} {"check_id": "datazone.glossary-status-toggle", "deployments": [], "key": "datazone/glossary-status-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateGlossary", "datazone:CreateProject", "datazone:DeleteDomain", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetGlossary", "datazone:UpdateGlossary", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_glossary_status_toggle.py", "service": "datazone"} {"check_id": "datazone.glossary-term-status-toggle", "deployments": [], "key": "datazone/glossary-term-status-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateGlossary", "datazone:CreateGlossaryTerm", "datazone:CreateProject", "datazone:DeleteDomain", "datazone:DeleteGlossaryTerm", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetGlossaryTerm", "datazone:UpdateGlossaryTerm", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_glossary_term_status_toggle.py", "service": "datazone"} {"check_id": "datazone.listing-publish-unpublish-transition", "deployments": [], "key": "datazone/listing-publish-unpublish-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateAsset", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateListingChangeSet", "datazone:CreateProject", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteListing", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetListing", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_listing_publish_unpublish_transition.py", "service": "datazone"} {"check_id": "datazone.policy-grant-add-list-remove", "deployments": [], "key": "datazone/policy-grant-add-list-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:AddPolicyGrant", "datazone:CreateDomain", "datazone:CreateProject", "datazone:DeleteDomain", "datazone:DeleteProject", "datazone:GetDomain", "datazone:ListPolicyGrants", "datazone:RemovePolicyGrant", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_policy_grant_add_list_remove.py", "service": "datazone"} {"check_id": "datazone.project-cross-domain-isolation-not-found", "deployments": [], "key": "datazone/project-cross-domain-isolation-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateProject", "datazone:DeleteDomain", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetProject", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_project_cross_domain_isolation_not_found.py", "service": "datazone"} {"check_id": "datazone.project-lifecycle-transitions", "deployments": [], "key": "datazone/project-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateProject", "datazone:DeleteDomain", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetProject", "datazone:UpdateProject", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_project_lifecycle_transitions.py", "service": "datazone"} {"check_id": "datazone.project-membership-group-add-remove", "deployments": [], "key": "datazone/project-membership-group-add-remove", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:CreateProject", "datazone:CreateProjectMembership", "datazone:DeleteDomain", "datazone:DeleteProject", "datazone:GetDomain", "datazone:ListProjectMemberships", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_project_membership_group_add_remove.py", "service": "datazone"} {"check_id": "datazone.revoke-subscription-transitions-to-revoked", "deployments": [], "key": "datazone/revoke-subscription-transitions-to-revoked", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:AcceptSubscriptionRequest", "datazone:CreateAsset", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateListingChangeSet", "datazone:CreateProject", "datazone:CreateProjectMembership", "datazone:CreateSubscriptionRequest", "datazone:CreateUserProfile", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteListing", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetListing", "datazone:GetSubscription", "datazone:ListSubscriptions", "datazone:RevokeSubscription", "iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:PutUserPolicy"], "path": "behavioral/datazone/check_revoke_subscription_transitions_to_revoked.py", "service": "datazone"} {"check_id": "datazone.subscription-request-accept-creates-approved-subscription", "deployments": [], "key": "datazone/subscription-request-accept-creates-approved-subscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:AcceptSubscriptionRequest", "datazone:CreateAsset", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateListingChangeSet", "datazone:CreateProject", "datazone:CreateProjectMembership", "datazone:CreateSubscriptionRequest", "datazone:CreateUserProfile", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteListing", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetListing", "datazone:GetSubscription", "datazone:ListSubscriptions", "datazone:RevokeSubscription", "iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:PutUserPolicy"], "path": "behavioral/datazone/check_subscription_request_accept_creates_approved_subscription.py", "service": "datazone"} {"check_id": "datazone.subscription-request-double-accept-conflict-rejected", "deployments": [], "key": "datazone/subscription-request-double-accept-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:AcceptSubscriptionRequest", "datazone:CreateAsset", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateListingChangeSet", "datazone:CreateProject", "datazone:CreateSubscriptionRequest", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteListing", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetListing", "datazone:GetSubscription", "datazone:GetSubscriptionRequestDetails", "datazone:RevokeSubscription", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_subscription_request_double_accept_conflict_rejected.py", "service": "datazone"} {"check_id": "datazone.subscription-request-reject-transitions-status", "deployments": [], "key": "datazone/subscription-request-reject-transitions-status", "labels": ["axis:rejection", "plane:control"], "operations": ["datazone:CreateAsset", "datazone:CreateAssetType", "datazone:CreateDomain", "datazone:CreateListingChangeSet", "datazone:CreateProject", "datazone:CreateSubscriptionRequest", "datazone:DeleteAsset", "datazone:DeleteAssetType", "datazone:DeleteDomain", "datazone:DeleteListing", "datazone:DeleteProject", "datazone:GetDomain", "datazone:GetListing", "datazone:GetSubscription", "datazone:GetSubscriptionRequestDetails", "datazone:RejectSubscriptionRequest", "datazone:RevokeSubscription", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_subscription_request_reject_transitions_status.py", "service": "datazone"} {"check_id": "datazone.tag-resource-round-trip", "deployments": [], "key": "datazone/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["datazone:CreateDomain", "datazone:DeleteDomain", "datazone:GetDomain", "datazone:ListTagsForResource", "datazone:TagResource", "datazone:UntagResource", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/datazone/check_tag_resource_round_trip.py", "service": "datazone"} {"check_id": "dax.cluster-already-exists-rejected", "deployments": [], "key": "dax/cluster-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_cluster_already_exists_rejected.py", "service": "dax"} {"check_id": "dax.cluster-create-available-delete-lifecycle", "deployments": [], "key": "dax/cluster-create-available-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_cluster_create_available_delete_lifecycle.py", "service": "dax"} {"check_id": "dax.concurrent-create-cluster-same-name-single-winner", "deployments": [], "key": "dax/concurrent-create-cluster-same-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_concurrent_create_cluster_same_name_single_winner.py", "service": "dax"} {"check_id": "dax.decrease-replication-factor-invalid-node-rejected", "deployments": [], "key": "dax/decrease-replication-factor-invalid-node-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DecreaseReplicationFactor", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "dax:TagResource", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_decrease_replication_factor_invalid_node_rejected.py", "service": "dax"} {"check_id": "dax.delete-cluster-while-creating-rejected", "deployments": [], "key": "dax/delete-cluster-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_delete_cluster_while_creating_rejected.py", "service": "dax"} {"check_id": "dax.delete-default-parameter-group-rejected", "deployments": [], "key": "dax/delete-default-parameter-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateParameterGroup", "dax:DeleteParameterGroup", "dax:DescribeParameterGroups"], "path": "behavioral/dax/check_delete_default_parameter_group_rejected.py", "service": "dax"} {"check_id": "dax.delete-nonexistent-cluster-rejected", "deployments": [], "key": "dax/delete-nonexistent-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateParameterGroup", "dax:DeleteCluster", "dax:DeleteParameterGroup", "dax:DescribeParameterGroups"], "path": "behavioral/dax/check_delete_nonexistent_cluster_rejected.py", "service": "dax"} {"check_id": "dax.describe-events-invalid-duration-rejected", "deployments": [], "key": "dax/describe-events-invalid-duration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:DescribeEvents"], "path": "behavioral/dax/check_describe_events_invalid_duration_rejected.py", "service": "dax"} {"check_id": "dax.describe-parameters-default-group-matches-source", "deployments": [], "key": "dax/describe-parameters-default-group-matches-source", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateParameterGroup", "dax:DeleteParameterGroup", "dax:DescribeDefaultParameters", "dax:DescribeParameters"], "path": "behavioral/dax/check_describe_parameters_default_group_matches_source.py", "service": "dax"} {"check_id": "dax.invalid-subnet-rejected", "deployments": [], "key": "dax/invalid-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateSubnetGroup", "dax:DeleteSubnetGroup", "dax:DescribeSubnetGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/dax/check_invalid_subnet_rejected.py", "service": "dax"} {"check_id": "dax.max-results-out-of-range-rejected", "deployments": [], "key": "dax/max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:DescribeClusters"], "path": "behavioral/dax/check_max_results_out_of_range_rejected.py", "service": "dax"} {"check_id": "dax.parameter-group-already-exists-rejected", "deployments": [], "key": "dax/parameter-group-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateParameterGroup", "dax:DeleteParameterGroup", "dax:DescribeParameterGroups"], "path": "behavioral/dax/check_parameter_group_already_exists_rejected.py", "service": "dax"} {"check_id": "dax.parameter-group-lifecycle-crud", "deployments": [], "key": "dax/parameter-group-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateParameterGroup", "dax:DeleteParameterGroup", "dax:DescribeParameterGroups", "dax:DescribeParameters", "dax:UpdateParameterGroup"], "path": "behavioral/dax/check_parameter_group_lifecycle_crud.py", "service": "dax"} {"check_id": "dax.parameter-group-update-reflects-on-cluster", "deployments": [], "key": "dax/parameter-group-update-reflects-on-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateParameterGroup", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteParameterGroup", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "dax:DescribeDefaultParameters", "dax:DescribeParameters", "dax:UpdateParameterGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_parameter_group_update_reflects_on_cluster.py", "service": "dax"} {"check_id": "dax.reboot-node-state-transition", "deployments": [], "key": "dax/reboot-node-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "dax:RebootNode", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_reboot_node_state_transition.py", "service": "dax"} {"check_id": "dax.replication-factor-scaling-round-trip", "deployments": [], "key": "dax/replication-factor-scaling-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DecreaseReplicationFactor", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "dax:IncreaseReplicationFactor", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_replication_factor_scaling_round_trip.py", "service": "dax"} {"check_id": "dax.subnet-group-in-use-rejected", "deployments": [], "key": "dax/subnet-group-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "dax:DescribeSubnetGroups", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_subnet_group_in_use_rejected.py", "service": "dax"} {"check_id": "dax.subnet-group-lifecycle-crud", "deployments": [], "key": "dax/subnet-group-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateSubnetGroup", "dax:DeleteSubnetGroup", "dax:DescribeSubnetGroups", "dax:UpdateSubnetGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/dax/check_subnet_group_lifecycle_crud.py", "service": "dax"} {"check_id": "dax.tag-resource-list-tags-round-trip", "deployments": [], "key": "dax/tag-resource-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:ListTags", "dax:TagResource", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_tag_resource_list_tags_round_trip.py", "service": "dax"} {"check_id": "dax.untag-missing-tag-key-error", "deployments": [], "key": "dax/untag-missing-tag-key-error", "labels": ["axis:rejection", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "dax:ListTags", "dax:TagResource", "dax:UntagResource", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_untag_missing_tag_key_error.py", "service": "dax"} {"check_id": "dax.update-cluster-description-transition", "deployments": [], "key": "dax/update-cluster-description-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["dax:CreateCluster", "dax:CreateSubnetGroup", "dax:DeleteCluster", "dax:DeleteSubnetGroup", "dax:DescribeClusters", "dax:UpdateCluster", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dax/check_update_cluster_description_transition.py", "service": "dax"} {"check_id": "deadline.batch-get-job-partial-failure", "deployments": [], "key": "deadline/batch-get-job-partial-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:BatchGetJob", "deadline:CreateFarm", "deadline:CreateJob", "deadline:CreateQueue", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:GetJob", "deadline:UpdateJob"], "path": "behavioral/deadline/check_batch_get_job_partial_failure.py", "service": "deadline"} {"check_id": "deadline.budget-actions-exceed-limit-rejected", "deployments": [], "key": "deadline/budget-actions-exceed-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateBudget", "deadline:CreateFarm", "deadline:CreateQueue", "deadline:DeleteBudget", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:ListBudgets"], "path": "behavioral/deadline/check_budget_actions_exceed_limit_rejected.py", "service": "deadline"} {"check_id": "deadline.budget-dollar-limit-below-minimum-rejected", "deployments": [], "key": "deadline/budget-dollar-limit-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateBudget", "deadline:CreateFarm", "deadline:CreateQueue", "deadline:DeleteBudget", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:ListBudgets"], "path": "behavioral/deadline/check_budget_dollar_limit_below_minimum_rejected.py", "service": "deadline"} {"check_id": "deadline.budget-status-toggle-active-inactive", "deployments": [], "key": "deadline/budget-status-toggle-active-inactive", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateBudget", "deadline:CreateFarm", "deadline:CreateQueue", "deadline:DeleteBudget", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:GetBudget", "deadline:UpdateBudget"], "path": "behavioral/deadline/check_budget_status_toggle_active_inactive.py", "service": "deadline"} {"check_id": "deadline.create-fleet-idempotent-client-token-concurrent", "deployments": [], "key": "deadline/create-fleet-idempotent-client-token-concurrent", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateFleet", "deadline:DeleteFarm", "deadline:DeleteFleet", "deadline:GetFleet", "deadline:ListFleets", "deadline:UpdateFleet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/deadline/check_create_fleet_idempotent_client_token_concurrent.py", "service": "deadline"} {"check_id": "deadline.create-job-lifecycle-create-complete", "deployments": [], "key": "deadline/create-job-lifecycle-create-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateJob", "deadline:CreateQueue", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:GetJob", "deadline:UpdateJob"], "path": "behavioral/deadline/check_create_job_lifecycle_create_complete.py", "service": "deadline"} {"check_id": "deadline.create-job-target-task-run-status-suspended", "deployments": [], "key": "deadline/create-job-target-task-run-status-suspended", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateJob", "deadline:CreateQueue", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:GetJob", "deadline:UpdateJob"], "path": "behavioral/deadline/check_create_job_target_task_run_status_suspended.py", "service": "deadline"} {"check_id": "deadline.delete-worker-before-stopped-rejected", "deployments": [], "key": "deadline/delete-worker-before-stopped-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateFleet", "deadline:CreateWorker", "deadline:DeleteFarm", "deadline:DeleteFleet", "deadline:DeleteWorker", "deadline:GetFleet", "deadline:GetWorker", "deadline:UpdateWorker", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/deadline/check_delete_worker_before_stopped_rejected.py", "service": "deadline"} {"check_id": "deadline.fleet-create-in-progress-to-active", "deployments": [], "key": "deadline/fleet-create-in-progress-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateFleet", "deadline:DeleteFarm", "deadline:DeleteFleet", "deadline:GetFleet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/deadline/check_fleet_create_in_progress_to_active.py", "service": "deadline"} {"check_id": "deadline.fleet-min-worker-count-exceeds-max-rejected", "deployments": [], "key": "deadline/fleet-min-worker-count-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateFleet", "deadline:DeleteFarm", "deadline:DeleteFleet", "deadline:GetFleet", "deadline:ListFleets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/deadline/check_fleet_min_worker_count_exceeds_max_rejected.py", "service": "deadline"} {"check_id": "deadline.get-farm-not-found-rejected", "deployments": [], "key": "deadline/get-farm-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:DeleteFarm", "deadline:GetFarm"], "path": "behavioral/deadline/check_get_farm_not_found_rejected.py", "service": "deadline"} {"check_id": "deadline.limit-current-count-initial-zero", "deployments": [], "key": "deadline/limit-current-count-initial-zero", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateLimit", "deadline:DeleteFarm", "deadline:DeleteLimit", "deadline:GetLimit", "deadline:ListLimits"], "path": "behavioral/deadline/check_limit_current_count_initial_zero.py", "service": "deadline"} {"check_id": "deadline.limit-delete-blocked-by-association-rejected", "deployments": [], "key": "deadline/limit-delete-blocked-by-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateLimit", "deadline:CreateQueue", "deadline:CreateQueueLimitAssociation", "deadline:DeleteFarm", "deadline:DeleteLimit", "deadline:DeleteQueue", "deadline:DeleteQueueLimitAssociation", "deadline:GetLimit", "deadline:GetQueueLimitAssociation", "deadline:UpdateQueueLimitAssociation"], "path": "behavioral/deadline/check_limit_delete_blocked_by_association_rejected.py", "service": "deadline"} {"check_id": "deadline.queue-environment-create-get-semantics", "deployments": [], "key": "deadline/queue-environment-create-get-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateQueue", "deadline:CreateQueueEnvironment", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:DeleteQueueEnvironment", "deadline:GetQueueEnvironment"], "path": "behavioral/deadline/check_queue_environment_create_get_semantics.py", "service": "deadline"} {"check_id": "deadline.queue-fleet-association-delete-before-stopped-rejected", "deployments": [], "key": "deadline/queue-fleet-association-delete-before-stopped-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateFleet", "deadline:CreateQueue", "deadline:CreateQueueFleetAssociation", "deadline:DeleteFarm", "deadline:DeleteFleet", "deadline:DeleteQueue", "deadline:DeleteQueueFleetAssociation", "deadline:GetFleet", "deadline:GetQueueFleetAssociation", "deadline:UpdateQueueFleetAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/deadline/check_queue_fleet_association_delete_before_stopped_rejected.py", "service": "deadline"} {"check_id": "deadline.queue-fleet-association-full-lifecycle-to-stopped", "deployments": [], "key": "deadline/queue-fleet-association-full-lifecycle-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateFleet", "deadline:CreateQueue", "deadline:CreateQueueFleetAssociation", "deadline:DeleteFarm", "deadline:DeleteFleet", "deadline:DeleteQueue", "deadline:DeleteQueueFleetAssociation", "deadline:GetFleet", "deadline:GetQueueFleetAssociation", "deadline:UpdateQueueFleetAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/deadline/check_queue_fleet_association_full_lifecycle_to_stopped.py", "service": "deadline"} {"check_id": "deadline.queue-limit-association-full-lifecycle-to-stopped", "deployments": [], "key": "deadline/queue-limit-association-full-lifecycle-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateLimit", "deadline:CreateQueue", "deadline:CreateQueueLimitAssociation", "deadline:DeleteFarm", "deadline:DeleteLimit", "deadline:DeleteQueue", "deadline:DeleteQueueLimitAssociation", "deadline:GetQueueLimitAssociation", "deadline:UpdateQueueLimitAssociation"], "path": "behavioral/deadline/check_queue_limit_association_full_lifecycle_to_stopped.py", "service": "deadline"} {"check_id": "deadline.storage-profile-delete-blocked-by-queue-reference-rejected", "deployments": [], "key": "deadline/storage-profile-delete-blocked-by-queue-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateQueue", "deadline:CreateStorageProfile", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:DeleteStorageProfile", "deadline:GetStorageProfile", "deadline:UpdateQueue"], "path": "behavioral/deadline/check_storage_profile_delete_blocked_by_queue_reference_rejected.py", "service": "deadline"} {"check_id": "deadline.tag-resource-roundtrip", "deployments": [], "key": "deadline/tag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:DeleteFarm", "deadline:ListTagsForResource", "deadline:TagResource", "deadline:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/deadline/check_tag_resource_roundtrip.py", "service": "deadline"} {"check_id": "deadline.update-job-archived-lifecycle", "deployments": [], "key": "deadline/update-job-archived-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateJob", "deadline:CreateQueue", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:GetJob", "deadline:UpdateJob"], "path": "behavioral/deadline/check_update_job_archived_lifecycle.py", "service": "deadline"} {"check_id": "deadline.update-job-priority-persists", "deployments": [], "key": "deadline/update-job-priority-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateJob", "deadline:CreateQueue", "deadline:DeleteFarm", "deadline:DeleteQueue", "deadline:GetJob", "deadline:UpdateJob"], "path": "behavioral/deadline/check_update_job_priority_persists.py", "service": "deadline"} {"check_id": "deadline.worker-status-lifecycle-to-stopped", "deployments": [], "key": "deadline/worker-status-lifecycle-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["deadline:CreateFarm", "deadline:CreateFleet", "deadline:CreateWorker", "deadline:DeleteFarm", "deadline:DeleteFleet", "deadline:DeleteWorker", "deadline:GetFleet", "deadline:GetWorker", "deadline:UpdateWorker", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/deadline/check_worker_status_lifecycle_to_stopped.py", "service": "deadline"} {"check_id": "detective.batch-get-graph-member-datasources-unprocessed-for-non-member", "deployments": [], "key": "detective/batch-get-graph-member-datasources-unprocessed-for-non-member", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:BatchGetGraphMemberDatasources", "detective:CreateGraph", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_batch_get_graph_member_datasources_unprocessed_for_non_member.py", "service": "detective"} {"check_id": "detective.concurrent-tag-resource-no-lost-updates", "deployments": [], "key": "detective/concurrent-tag-resource-no-lost-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListTagsForResource", "detective:TagResource", "detective:UntagResource"], "path": "behavioral/detective/check_concurrent_tag_resource_no_lost_updates.py", "service": "detective"} {"check_id": "detective.create-graph-concurrent-idempotent-same-arn", "deployments": [], "key": "detective/create-graph-concurrent-idempotent-same-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListGraphs"], "path": "behavioral/detective/check_create_graph_concurrent_idempotent_same_arn.py", "service": "detective"} {"check_id": "detective.create-graph-idempotent-returns-same-arn", "deployments": [], "key": "detective/create-graph-idempotent-returns-same-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListGraphs"], "path": "behavioral/detective/check_create_graph_idempotent_returns_same_arn.py", "service": "detective"} {"check_id": "detective.create-members-batch-processes-all-accounts-independently", "deployments": [], "key": "detective/create-members-batch-processes-all-accounts-independently", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_create_members_batch_processes_all_accounts_independently.py", "service": "detective"} {"check_id": "detective.create-members-concurrent-duplicate-invite-dedup", "deployments": [], "key": "detective/create-members-concurrent-duplicate-invite-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteGraph", "detective:DeleteMembers", "detective:GetMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_create_members_concurrent_duplicate_invite_dedup.py", "service": "detective"} {"check_id": "detective.create-members-invalid-account-id-pattern-rejected", "deployments": [], "key": "detective/create-members-invalid-account-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:ListMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_create_members_invalid_account_id_pattern_rejected.py", "service": "detective"} {"check_id": "detective.create-members-malformed-account-id-validation-rejected", "deployments": [], "key": "detective/create-members-malformed-account-id-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:ListMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_create_members_malformed_account_id_validation_rejected.py", "service": "detective"} {"check_id": "detective.create-members-verification-fails-for-nonexistent-account", "deployments": [], "key": "detective/create-members-verification-fails-for-nonexistent-account", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_create_members_verification_fails_for_nonexistent_account.py", "service": "detective"} {"check_id": "detective.delete-graph-concurrent-race-at-least-one-succeeds", "deployments": [], "key": "detective/delete-graph-concurrent-race-at-least-one-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:DeleteGraph", "detective:ListGraphs"], "path": "behavioral/detective/check_delete_graph_concurrent_race_at_least_one_succeeds.py", "service": "detective"} {"check_id": "detective.delete-graph-removes-from-list-graphs", "deployments": [], "key": "detective/delete-graph-removes-from-list-graphs", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:DeleteGraph", "detective:ListGraphs", "detective:ListMembers", "detective:UpdateDatasourcePackages"], "path": "behavioral/detective/check_delete_graph_removes_from_list_graphs.py", "service": "detective"} {"check_id": "detective.delete-members-partial-batch-unprocessed-for-non-member", "deployments": [], "key": "detective/delete-members-partial-batch-unprocessed-for-non-member", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_delete_members_partial_batch_unprocessed_for_non_member.py", "service": "detective"} {"check_id": "detective.delete-members-removes-member-record", "deployments": [], "key": "detective/delete-members-removes-member-record", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_delete_members_removes_member_record.py", "service": "detective"} {"check_id": "detective.get-investigation-malformed-id-pattern-rejected", "deployments": [], "key": "detective/get-investigation-malformed-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:GetInvestigation"], "path": "behavioral/detective/check_get_investigation_malformed_id_pattern_rejected.py", "service": "detective"} {"check_id": "detective.get-investigation-nonexistent-id-not-found", "deployments": [], "key": "detective/get-investigation-nonexistent-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:GetInvestigation", "detective:ListInvestigations"], "path": "behavioral/detective/check_get_investigation_nonexistent_id_not_found.py", "service": "detective"} {"check_id": "detective.get-members-administrator-id-and-graph-arn-fields-correct", "deployments": [], "key": "detective/get-members-administrator-id-and-graph-arn-fields-correct", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_get_members_administrator_id_and_graph_arn_fields_correct.py", "service": "detective"} {"check_id": "detective.get-members-partitions-processed-and-unprocessed", "deployments": [], "key": "detective/get-members-partitions-processed-and-unprocessed", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_get_members_partitions_processed_and_unprocessed.py", "service": "detective"} {"check_id": "detective.get-members-unprocessed-for-never-invited-account", "deployments": [], "key": "detective/get-members-unprocessed-for-never-invited-account", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_get_members_unprocessed_for_never_invited_account.py", "service": "detective"} {"check_id": "detective.investigation-lifecycle-state-transitions", "deployments": [], "key": "detective/investigation-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:GetInvestigation", "detective:ListInvestigations", "detective:StartInvestigation", "detective:UpdateInvestigationState", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_investigation_lifecycle_state_transitions.py", "service": "detective"} {"check_id": "detective.list-datasource-packages-default-core-started", "deployments": [], "key": "detective/list-datasource-packages-default-core-started", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListDatasourcePackages"], "path": "behavioral/detective/check_list_datasource_packages_default_core_started.py", "service": "detective"} {"check_id": "detective.list-datasource-packages-last-ingest-state-change-timestamp-recorded", "deployments": [], "key": "detective/list-datasource-packages-last-ingest-state-change-timestamp-recorded", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListDatasourcePackages", "detective:UpdateDatasourcePackages"], "path": "behavioral/detective/check_list_datasource_packages_last_ingest_state_change_timestamp_recorded.py", "service": "detective"} {"check_id": "detective.list-datasource-packages-max-results-rejected", "deployments": [], "key": "detective/list-datasource-packages-max-results-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListDatasourcePackages", "detective:UpdateDatasourcePackages"], "path": "behavioral/detective/check_list_datasource_packages_max_results_rejected.py", "service": "detective"} {"check_id": "detective.list-members-excludes-never-added-account-2", "deployments": [], "key": "detective/list-members-excludes-never-added-account-2", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:ListMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_list_members_excludes_never_added_account_2.py", "service": "detective"} {"check_id": "detective.list-members-reflects-created-member", "deployments": [], "key": "detective/list-members-reflects-created-member", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:ListMembers", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_list_members_reflects_created_member.py", "service": "detective"} {"check_id": "detective.reject-invitation-nonexistent-graph-not-found-rejected", "deployments": [], "key": "detective/reject-invitation-nonexistent-graph-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:RejectInvitation", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_reject_invitation_nonexistent_graph_not_found_rejected.py", "service": "detective"} {"check_id": "detective.start-investigation-invalid-time-range-rejected", "deployments": [], "key": "detective/start-investigation-invalid-time-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListInvestigations", "detective:ListTagsForResource", "detective:StartInvestigation", "detective:TagResource", "detective:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_start_investigation_invalid_time_range_rejected.py", "service": "detective"} {"check_id": "detective.start-investigation-malformed-entity-arn-validation-rejected", "deployments": [], "key": "detective/start-investigation-malformed-entity-arn-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListInvestigations", "detective:ListTagsForResource", "detective:StartInvestigation", "detective:TagResource", "detective:UntagResource"], "path": "behavioral/detective/check_start_investigation_malformed_entity_arn_validation_rejected.py", "service": "detective"} {"check_id": "detective.start-investigation-nonexistent-graph-not-found-rejected", "deployments": [], "key": "detective/start-investigation-nonexistent-graph-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "detective:StartInvestigation", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_start_investigation_nonexistent_graph_not_found_rejected.py", "service": "detective"} {"check_id": "detective.start-investigation-unknown-entity-not-found", "deployments": [], "key": "detective/start-investigation-unknown-entity-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListDatasourcePackages", "detective:ListInvestigations", "detective:StartInvestigation", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_start_investigation_unknown_entity_not_found.py", "service": "detective"} {"check_id": "detective.start-monitoring-member-non-member-not-found-rejected", "deployments": [], "key": "detective/start-monitoring-member-non-member-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:CreateMembers", "detective:DeleteMembers", "detective:GetMembers", "detective:ListMembers", "detective:StartMonitoringMember", "sts:GetCallerIdentity"], "path": "behavioral/detective/check_start_monitoring_member_non_member_not_found_rejected.py", "service": "detective"} {"check_id": "detective.tag-resource-reserved-aws-prefix-rejected", "deployments": [], "key": "detective/tag-resource-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:DeleteGraph", "detective:ListTagsForResource", "detective:TagResource", "detective:UntagResource"], "path": "behavioral/detective/check_tag_resource_reserved_aws_prefix_rejected.py", "service": "detective"} {"check_id": "detective.tag-resource-round-trip", "deployments": [], "key": "detective/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListTagsForResource", "detective:TagResource", "detective:UntagResource"], "path": "behavioral/detective/check_tag_resource_round_trip.py", "service": "detective"} {"check_id": "detective.untag-resource-nonexistent-key-is-noop", "deployments": [], "key": "detective/untag-resource-nonexistent-key-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListTagsForResource", "detective:TagResource", "detective:UntagResource"], "path": "behavioral/detective/check_untag_resource_nonexistent_key_is_noop.py", "service": "detective"} {"check_id": "detective.untag-resource-partial-key-removal-preserves-others", "deployments": [], "key": "detective/untag-resource-partial-key-removal-preserves-others", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListTagsForResource", "detective:TagResource", "detective:UntagResource"], "path": "behavioral/detective/check_untag_resource_partial_key_removal_preserves_others.py", "service": "detective"} {"check_id": "detective.update-datasource-packages-idempotent-start-already-started", "deployments": [], "key": "detective/update-datasource-packages-idempotent-start-already-started", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListDatasourcePackages", "detective:UpdateDatasourcePackages"], "path": "behavioral/detective/check_update_datasource_packages_idempotent_start_already_started.py", "service": "detective"} {"check_id": "detective.update-datasource-packages-invalid-enum-rejected", "deployments": [], "key": "detective/update-datasource-packages-invalid-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListDatasourcePackages", "detective:UpdateDatasourcePackages"], "path": "behavioral/detective/check_update_datasource_packages_invalid_enum_rejected.py", "service": "detective"} {"check_id": "detective.update-datasource-packages-missing-mandatory-core-rejected", "deployments": [], "key": "detective/update-datasource-packages-missing-mandatory-core-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListDatasourcePackages", "detective:UpdateDatasourcePackages"], "path": "behavioral/detective/check_update_datasource_packages_missing_mandatory_core_rejected.py", "service": "detective"} {"check_id": "detective.update-datasource-packages-starts-ingestion", "deployments": [], "key": "detective/update-datasource-packages-starts-ingestion", "labels": ["axis:happy-path", "plane:control"], "operations": ["detective:CreateGraph", "detective:ListDatasourcePackages", "detective:UpdateDatasourcePackages"], "path": "behavioral/detective/check_update_datasource_packages_starts_ingestion.py", "service": "detective"} {"check_id": "devicefarm.device-pool-survives-parent-project-deletion", "deployments": [], "key": "devicefarm/device-pool-survives-parent-project-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["devicefarm:CreateDevicePool", "devicefarm:CreateProject", "devicefarm:DeleteDevicePool", "devicefarm:DeleteProject", "devicefarm:GetDevicePool", "devicefarm:GetProject"], "path": "behavioral/devicefarm/check_device_pool_survives_parent_project_deletion.py", "service": "devicefarm"} {"check_id": "devicefarm.network-profile-type-normalizes-to-private", "deployments": [], "key": "devicefarm/network-profile-type-normalizes-to-private", "labels": ["axis:happy-path", "plane:control"], "operations": ["devicefarm:CreateNetworkProfile", "devicefarm:CreateProject", "devicefarm:DeleteNetworkProfile", "devicefarm:DeleteProject", "devicefarm:GetNetworkProfile"], "path": "behavioral/devicefarm/check_network_profile_type_normalizes_to_private.py", "service": "devicefarm"} {"check_id": "devicefarm.project-vpc-config-validates-against-real-ec2-subnets", "deployments": [], "key": "devicefarm/project-vpc-config-validates-against-real-ec2-subnets", "labels": ["axis:rejection", "plane:control"], "operations": ["devicefarm:CreateProject", "devicefarm:DeleteProject", "devicefarm:GetProject", "devicefarm:UpdateProject", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/devicefarm/check_project_vpc_config_validates_against_real_ec2_subnets.py", "service": "devicefarm"} {"check_id": "devicefarm.upload-processing-accepts-arbitrary-data-but-rejects-invalid-app-package", "deployments": [], "key": "devicefarm/upload-processing-accepts-arbitrary-data-but-rejects-invalid-app-package", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["devicefarm:CreateProject", "devicefarm:CreateUpload", "devicefarm:DeleteProject", "devicefarm:DeleteUpload", "devicefarm:GetUpload"], "path": "behavioral/devicefarm/check_upload_processing_accepts_arbitrary_data_but_rejects_invalid_app_package.py", "service": "devicefarm"} {"check_id": "devops-agent.artifact-sole-file-delete-cascades-to-asset-deletion", "deployments": [], "key": "devops-agent/artifact-sole-file-delete-cascades-to-asset-deletion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:CreateAsset", "devops-agent:DeleteAgentSpace", "devops-agent:DeleteAsset", "devops-agent:DeleteAssetFile", "devops-agent:GetAsset", "devops-agent:GetAssetFile"], "path": "behavioral/devops-agent/check_artifact_sole_file_delete_cascades_to_asset_deletion.py", "service": "devops-agent"} {"check_id": "devops-agent.asset-file-content-round-trips-through-zip-export", "deployments": [], "key": "devops-agent/asset-file-content-round-trips-through-zip-export", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:CreateAsset", "devops-agent:DeleteAgentSpace", "devops-agent:DeleteAsset", "devops-agent:GetAssetContent", "devops-agent:GetAssetFile"], "path": "behavioral/devops-agent/check_asset_file_content_round_trips_through_zip_export.py", "service": "devops-agent"} {"check_id": "devops-agent.create-asset-file-rejected-when-artifact-already-has-its-one-file", "deployments": [], "key": "devops-agent/create-asset-file-rejected-when-artifact-already-has-its-one-file", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:CreateAsset", "devops-agent:CreateAssetFile", "devops-agent:DeleteAgentSpace", "devops-agent:DeleteAsset", "devops-agent:GetAssetFile", "devops-agent:ListAssetFiles"], "path": "behavioral/devops-agent/check_create_asset_file_rejected_when_artifact_already_has_its_one_file.py", "service": "devops-agent"} {"check_id": "devops-agent.create-asset-required-metadata-fields-are-type-specific", "deployments": [], "key": "devops-agent/create-asset-required-metadata-fields-are-type-specific", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:CreateAsset", "devops-agent:DeleteAgentSpace", "devops-agent:DeleteAsset"], "path": "behavioral/devops-agent/check_create_asset_required_metadata_fields_are_type_specific.py", "service": "devops-agent"} {"check_id": "devops-agent.delete-agent-space-orphans-contained-assets-behind-access-denied", "deployments": [], "key": "devops-agent/delete-agent-space-orphans-contained-assets-behind-access-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:CreateAsset", "devops-agent:DeleteAgentSpace", "devops-agent:GetAgentSpace", "devops-agent:GetAsset"], "path": "behavioral/devops-agent/check_delete_agent_space_orphans_contained_assets_behind_access_denied.py", "service": "devops-agent"} {"check_id": "devops-agent.get-asset-access-denied-for-missing-space-not-found-for-missing-asset", "deployments": [], "key": "devops-agent/get-asset-access-denied-for-missing-space-not-found-for-missing-asset", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:CreateAsset", "devops-agent:DeleteAgentSpace", "devops-agent:DeleteAsset", "devops-agent:GetAsset"], "path": "behavioral/devops-agent/check_get_asset_access_denied_for_missing_space_not_found_for_missing_asset.py", "service": "devops-agent"} {"check_id": "devops-agent.get-backlog-task-rejection-distinguishes-missing-space-from-missing-task", "deployments": [], "key": "devops-agent/get-backlog-task-rejection-distinguishes-missing-space-from-missing-task", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:DeleteAgentSpace", "devops-agent:GetAgentSpace", "devops-agent:GetBacklogTask"], "path": "behavioral/devops-agent/check_get_backlog_task_rejection_distinguishes_missing_space_from_missing_task.py", "service": "devops-agent"} {"check_id": "devops-agent.get-operator-app-returns-empty-state-without-enablement", "deployments": [], "key": "devops-agent/get-operator-app-returns-empty-state-without-enablement", "labels": ["axis:happy-path", "plane:control"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:DeleteAgentSpace", "devops-agent:GetOperatorApp"], "path": "behavioral/devops-agent/check_get_operator_app_returns_empty_state_without_enablement.py", "service": "devops-agent"} {"check_id": "devops-agent.get-recommendation-requires-rec-shaped-identifier", "deployments": [], "key": "devops-agent/get-recommendation-requires-rec-shaped-identifier", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:DeleteAgentSpace", "devops-agent:GetAgentSpace", "devops-agent:GetRecommendation"], "path": "behavioral/devops-agent/check_get_recommendation_requires_rec_shaped_identifier.py", "service": "devops-agent"} {"check_id": "devops-agent.get-trigger-requires-goal-shaped-identifier", "deployments": [], "key": "devops-agent/get-trigger-requires-goal-shaped-identifier", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:DeleteAgentSpace", "devops-agent:GetAgentSpace", "devops-agent:GetTrigger"], "path": "behavioral/devops-agent/check_get_trigger_requires_goal_shaped_identifier.py", "service": "devops-agent"} {"check_id": "devops-agent.update-asset-file-preserves-prior-version-content", "deployments": [], "key": "devops-agent/update-asset-file-preserves-prior-version-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["devops-agent:CreateAgentSpace", "devops-agent:CreateAsset", "devops-agent:DeleteAgentSpace", "devops-agent:DeleteAsset", "devops-agent:GetAsset", "devops-agent:GetAssetFile", "devops-agent:ListAssetVersions", "devops-agent:UpdateAssetFile"], "path": "behavioral/devops-agent/check_update_asset_file_preserves_prior_version_content.py", "service": "devops-agent"} {"check_id": "directconnect__ec2.gateway-association-reflects-attached-vpc-cidr", "deployments": [], "key": "directconnect__ec2/gateway-association-reflects-attached-vpc-cidr", "labels": ["axis:happy-path", "plane:control"], "operations": ["directconnect:CreateDirectConnectGateway", "directconnect:CreateDirectConnectGatewayAssociation", "directconnect:DeleteDirectConnectGateway", "directconnect:DeleteDirectConnectGatewayAssociation", "directconnect:DescribeDirectConnectGatewayAssociations", "directconnect:DescribeDirectConnectGateways", "ec2:AttachVpnGateway", "ec2:CreateVpc", "ec2:CreateVpnGateway", "ec2:DeleteVpc", "ec2:DeleteVpnGateway", "ec2:DescribeVpnGateways", "ec2:DetachVpnGateway"], "path": "behavioral/directconnect__ec2/check_gateway_association_reflects_attached_vpc_cidr.py", "service": "directconnect__ec2"} {"check_id": "directconnect__ec2.second-gateway-association-to-same-vgw-rejected-until-first-clears", "deployments": [], "key": "directconnect__ec2/second-gateway-association-to-same-vgw-rejected-until-first-clears", "labels": ["axis:rejection", "plane:control"], "operations": ["directconnect:CreateDirectConnectGateway", "directconnect:CreateDirectConnectGatewayAssociation", "directconnect:DeleteDirectConnectGateway", "directconnect:DeleteDirectConnectGatewayAssociation", "directconnect:DescribeDirectConnectGatewayAssociations", "ec2:AttachVpnGateway", "ec2:CreateVpc", "ec2:CreateVpnGateway", "ec2:DeleteVpc", "ec2:DeleteVpnGateway", "ec2:DescribeVpnGateways", "ec2:DetachVpnGateway"], "path": "behavioral/directconnect__ec2/check_second_gateway_association_to_same_vgw_rejected_until_first_clears.py", "service": "directconnect__ec2"} {"check_id": "dlm.concurrent-policy-creation-unique-ids", "deployments": [], "key": "dlm/concurrent-policy-creation-unique-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_concurrent_policy_creation_unique_ids.py", "service": "dlm"} {"check_id": "dlm.create-custom-snapshot-policy-disabled", "deployments": [], "key": "dlm/create-custom-snapshot-policy-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_create_custom_snapshot_policy_disabled.py", "service": "dlm"} {"check_id": "dlm.create-custom-snapshot-policy-enabled", "deployments": [], "key": "dlm/create-custom-snapshot-policy-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/dlm/check_create_custom_snapshot_policy_enabled.py", "service": "dlm"} {"check_id": "dlm.create-policy-cross-region-copy-rule-config-round-trip", "deployments": [], "key": "dlm/create-policy-cross-region-copy-rule-config-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_create_policy_cross_region_copy_rule_config_round_trip.py", "service": "dlm"} {"check_id": "dlm.create-policy-invalid-description-characters-rejected", "deployments": [], "key": "dlm/create-policy-invalid-description-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicies", "dlm:GetLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_create_policy_invalid_description_characters_rejected.py", "service": "dlm"} {"check_id": "dlm.create-policy-invalid-execution-role-arn-rejected", "deployments": [], "key": "dlm/create-policy-invalid-execution-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicies", "dlm:GetLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_create_policy_invalid_execution_role_arn_rejected.py", "service": "dlm"} {"check_id": "dlm.create-policy-missing-required-schedule-rejected", "deployments": [], "key": "dlm/create-policy-missing-required-schedule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicies", "dlm:GetLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_create_policy_missing_required_schedule_rejected.py", "service": "dlm"} {"check_id": "dlm.create-policy-with-initial-tags", "deployments": [], "key": "dlm/create-policy-with-initial-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicies", "dlm:GetLifecyclePolicy", "dlm:ListTagsForResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_create_policy_with_initial_tags.py", "service": "dlm"} {"check_id": "dlm.create-policy-with-multiple-schedules-round-trip", "deployments": [], "key": "dlm/create-policy-with-multiple-schedules-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_create_policy_with_multiple_schedules_round_trip.py", "service": "dlm"} {"check_id": "dlm.delete-lifecycle-policy-removes-policy", "deployments": [], "key": "dlm/delete-lifecycle-policy-removes-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:UpdateLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_delete_lifecycle_policy_removes_policy.py", "service": "dlm"} {"check_id": "dlm.get-lifecycle-policies-filter-by-policy-ids", "deployments": [], "key": "dlm/get-lifecycle-policies-filter-by-policy-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_get_lifecycle_policies_filter_by_policy_ids.py", "service": "dlm"} {"check_id": "dlm.get-lifecycle-policies-filter-by-state", "deployments": [], "key": "dlm/get-lifecycle-policies-filter-by-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_get_lifecycle_policies_filter_by_state.py", "service": "dlm"} {"check_id": "dlm.get-lifecycle-policies-filter-by-target-tags", "deployments": [], "key": "dlm/get-lifecycle-policies-filter-by-target-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_get_lifecycle_policies_filter_by_target_tags.py", "service": "dlm"} {"check_id": "dlm.get-lifecycle-policy-not-found", "deployments": [], "key": "dlm/get-lifecycle-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:UpdateLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_get_lifecycle_policy_not_found.py", "service": "dlm"} {"check_id": "dlm.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "dlm/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:ListTagsForResource", "dlm:TagResource", "dlm:UntagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_tag_resource_and_list_tags_round_trip.py", "service": "dlm"} {"check_id": "dlm.tag-resource-on-nonexistent-policy-not-found", "deployments": [], "key": "dlm/tag-resource-on-nonexistent-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:ListTagsForResource", "dlm:TagResource", "dlm:UntagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_tag_resource_on_nonexistent_policy_not_found.py", "service": "dlm"} {"check_id": "dlm.tag-resource-reserved-aws-prefix-key-rejected", "deployments": [], "key": "dlm/tag-resource-reserved-aws-prefix-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:ListTagsForResource", "dlm:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_tag_resource_reserved_aws_prefix_key_rejected.py", "service": "dlm"} {"check_id": "dlm.update-policy-preserves-untouched-fields", "deployments": [], "key": "dlm/update-policy-preserves-untouched-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:UpdateLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_update_policy_preserves_untouched_fields.py", "service": "dlm"} {"check_id": "dlm.update-policy-state-disabled-to-enabled", "deployments": [], "key": "dlm/update-policy-state-disabled-to-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:UpdateLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_update_policy_state_disabled_to_enabled.py", "service": "dlm"} {"check_id": "dlm.update-policy-state-enabled-to-disabled", "deployments": [], "key": "dlm/update-policy-state-enabled-to-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:UpdateLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_update_policy_state_enabled_to_disabled.py", "service": "dlm"} {"check_id": "dlm.update-policy-type-immutable-mutation-rejected", "deployments": [], "key": "dlm/update-policy-type-immutable-mutation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dlm:CreateLifecyclePolicy", "dlm:DeleteLifecyclePolicy", "dlm:GetLifecyclePolicy", "dlm:UpdateLifecyclePolicy", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/dlm/check_update_policy_type_immutable_mutation_rejected.py", "service": "dlm"} {"check_id": "dms.endpoint-rejects-unusable-role", "deployments": [], "key": "dms/endpoint-rejects-unusable-role", "labels": ["axis:rejection", "plane:control"], "operations": ["dms:CreateEndpoint", "dms:DeleteEndpoint", "dms:DescribeEndpoints", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/dms/check_endpoint_rejects_unusable_role.py", "service": "dms"} {"check_id": "dms.s3-full-load-migration", "deployments": [], "key": "dms/s3-full-load-migration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dms:CreateEndpoint", "dms:CreateReplicationInstance", "dms:CreateReplicationSubnetGroup", "dms:CreateReplicationTask", "dms:DeleteEndpoint", "dms:DeleteReplicationInstance", "dms:DeleteReplicationSubnetGroup", "dms:DeleteReplicationTask", "dms:DescribeReplicationInstances", "dms:DescribeReplicationTasks", "dms:DescribeTableStatistics", "dms:StartReplicationTask", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/dms/check_s3_full_load_migration.py", "service": "dms"} {"check_id": "dms.subnet-group-requires-two-azs", "deployments": [], "key": "dms/subnet-group-requires-two-azs", "labels": ["axis:rejection", "plane:control"], "operations": ["dms:CreateReplicationSubnetGroup", "dms:DeleteReplicationSubnetGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/dms/check_subnet_group_requires_two_azs.py", "service": "dms"} {"check_id": "docdb-elastic.apply-maintenance-action-missing-resource-not-found", "deployments": [], "key": "docdb-elastic/apply-maintenance-action-missing-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:ApplyPendingMaintenanceAction", "docdb-elastic:ListPendingMaintenanceActions", "sts:GetCallerIdentity"], "path": "behavioral/docdb-elastic/check_apply_maintenance_action_missing_resource_not_found.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.apply-pending-maintenance-action-missing-apply-on-rejected", "deployments": [], "key": "docdb-elastic/apply-pending-maintenance-action-missing-apply-on-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:ApplyPendingMaintenanceAction", "docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:GetPendingMaintenanceAction", "docdb-elastic:ListPendingMaintenanceActions", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_apply_pending_maintenance_action_missing_apply_on_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.apply-pending-maintenance-action-not-pending-rejected", "deployments": [], "key": "docdb-elastic/apply-pending-maintenance-action-not-pending-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:ApplyPendingMaintenanceAction", "docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:GetPendingMaintenanceAction", "docdb-elastic:ListPendingMaintenanceActions", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_apply_pending_maintenance_action_not_pending_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.cluster-create-lifecycle-reaches-active", "deployments": [], "key": "docdb-elastic/cluster-create-lifecycle-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListTagsForResource", "docdb-elastic:TagResource", "docdb-elastic:UntagResource"], "path": "behavioral/docdb-elastic/check_cluster_create_lifecycle_reaches_active.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.cluster-delete-lifecycle-removes-resource", "deployments": [], "key": "docdb-elastic/cluster-delete-lifecycle-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListClusters", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_cluster_delete_lifecycle_removes_resource.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.cluster-snapshot-survives-source-cluster-deletion", "deployments": [], "key": "docdb-elastic/cluster-snapshot-survives-source-cluster-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:GetClusterSnapshot", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_cluster_snapshot_survives_source_cluster_deletion.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.cluster-stop-start-lifecycle", "deployments": [], "key": "docdb-elastic/cluster-stop-start-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListClusters", "docdb-elastic:StartCluster", "docdb-elastic:StopCluster"], "path": "behavioral/docdb-elastic/check_cluster_stop_start_lifecycle.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.concurrent-create-cluster-duplicate-name-conflict", "deployments": [], "key": "docdb-elastic/concurrent-create-cluster-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_concurrent_create_cluster_duplicate_name_conflict.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.concurrent-update-cluster-shard-capacity-conflict", "deployments": [], "key": "docdb-elastic/concurrent-update-cluster-shard-capacity-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster", "docdb-elastic:UpdateCluster"], "path": "behavioral/docdb-elastic/check_concurrent_update_cluster_shard_capacity_conflict.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.copy-cluster-snapshot-creates-independent-manual-snapshot", "deployments": [], "key": "docdb-elastic/copy-cluster-snapshot-creates-independent-manual-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CopyClusterSnapshot", "docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:GetClusterSnapshot", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_copy_cluster_snapshot_creates_independent_manual_snapshot.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.copy-cluster-snapshot-success", "deployments": [], "key": "docdb-elastic/copy-cluster-snapshot-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CopyClusterSnapshot", "docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot"], "path": "behavioral/docdb-elastic/check_copy_cluster_snapshot_success.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.create-cluster-invalid-name-pattern-rejected", "deployments": [], "key": "docdb-elastic/create-cluster-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListClusters"], "path": "behavioral/docdb-elastic/check_create_cluster_invalid_name_pattern_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.create-cluster-invalid-shard-capacity-rejected", "deployments": [], "key": "docdb-elastic/create-cluster-invalid-shard-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListClusters", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_create_cluster_invalid_shard_capacity_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.create-cluster-shard-count-exceeds-max-rejected", "deployments": [], "key": "docdb-elastic/create-cluster-shard-count-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListClusters", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_create_cluster_shard_count_exceeds_max_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.create-cluster-snapshot-duplicate-name-conflict-rejected", "deployments": [], "key": "docdb-elastic/create-cluster-snapshot-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:ListClusterSnapshots", "docdb-elastic:StartCluster", "docdb-elastic:TagResource"], "path": "behavioral/docdb-elastic/check_create_cluster_snapshot_duplicate_name_conflict_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.create-cluster-snapshot-missing-cluster-not-found", "deployments": [], "key": "docdb-elastic/create-cluster-snapshot-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateClusterSnapshot", "docdb-elastic:ListClusterSnapshots", "sts:GetCallerIdentity"], "path": "behavioral/docdb-elastic/check_create_cluster_snapshot_missing_cluster_not_found.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.create-cluster-tags-param-persists", "deployments": [], "key": "docdb-elastic/create-cluster-tags-param-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListTagsForResource", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_create_cluster_tags_param_persists.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.create-cluster-with-optional-config-persists", "deployments": [], "key": "docdb-elastic/create-cluster-with-optional-config-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_create_cluster_with_optional_config_persists.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.delete-cluster-while-stopped-rejected", "deployments": [], "key": "docdb-elastic/delete-cluster-while-stopped-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster", "docdb-elastic:StopCluster"], "path": "behavioral/docdb-elastic/check_delete_cluster_while_stopped_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.get-cluster-nonexistent-not-found", "deployments": [], "key": "docdb-elastic/get-cluster-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:GetCluster", "docdb-elastic:ListClusters", "sts:GetCallerIdentity"], "path": "behavioral/docdb-elastic/check_get_cluster_nonexistent_not_found.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.list-cluster-snapshots-filters-by-cluster-arn", "deployments": [], "key": "docdb-elastic/list-cluster-snapshots-filters-by-cluster-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:GetClusterSnapshot", "docdb-elastic:ListClusterSnapshots", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_list_cluster_snapshots_filters_by_cluster_arn.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.list-clusters-includes-created-cluster", "deployments": [], "key": "docdb-elastic/list-clusters-includes-created-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListClusters"], "path": "behavioral/docdb-elastic/check_list_clusters_includes_created_cluster.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.list-clusters-max-results-out-of-range-validation", "deployments": [], "key": "docdb-elastic/list-clusters-max-results-out-of-range-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:ListClusters"], "path": "behavioral/docdb-elastic/check_list_clusters_max_results_out_of_range_validation.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.pending-maintenance-action-absent-for-new-cluster", "deployments": [], "key": "docdb-elastic/pending-maintenance-action-absent-for-new-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:GetPendingMaintenanceAction", "docdb-elastic:ListPendingMaintenanceActions"], "path": "behavioral/docdb-elastic/check_pending_maintenance_action_absent_for_new_cluster.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.restore-cluster-from-snapshot-duplicate-cluster-name-rejected", "deployments": [], "key": "docdb-elastic/restore-cluster-from-snapshot-duplicate-cluster-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:GetClusterSnapshot", "docdb-elastic:RestoreClusterFromSnapshot", "docdb-elastic:StartCluster"], "path": "behavioral/docdb-elastic/check_restore_cluster_from_snapshot_duplicate_cluster_name_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.restore-cluster-from-snapshot-success", "deployments": [], "key": "docdb-elastic/restore-cluster-from-snapshot-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:GetClusterSnapshot", "docdb-elastic:RestoreClusterFromSnapshot"], "path": "behavioral/docdb-elastic/check_restore_cluster_from_snapshot_success.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.restore-cluster-missing-snapshot-not-found", "deployments": [], "key": "docdb-elastic/restore-cluster-missing-snapshot-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:ListClusters", "docdb-elastic:RestoreClusterFromSnapshot", "sts:GetCallerIdentity"], "path": "behavioral/docdb-elastic/check_restore_cluster_missing_snapshot_not_found.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.snapshot-create-lifecycle-reaches-active", "deployments": [], "key": "docdb-elastic/snapshot-create-lifecycle-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:GetClusterSnapshot"], "path": "behavioral/docdb-elastic/check_snapshot_create_lifecycle_reaches_active.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.snapshot-delete-lifecycle-removes-resource", "deployments": [], "key": "docdb-elastic/snapshot-delete-lifecycle-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:GetClusterSnapshot", "docdb-elastic:ListClusterSnapshots"], "path": "behavioral/docdb-elastic/check_snapshot_delete_lifecycle_removes_resource.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.start-cluster-when-active-rejected", "deployments": [], "key": "docdb-elastic/start-cluster-when-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster", "docdb-elastic:StopCluster"], "path": "behavioral/docdb-elastic/check_start_cluster_when_active_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.tag-resource-on-snapshot-persists-and-untag-removes", "deployments": [], "key": "docdb-elastic/tag-resource-on-snapshot-persists-and-untag-removes", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:CreateClusterSnapshot", "docdb-elastic:DeleteCluster", "docdb-elastic:DeleteClusterSnapshot", "docdb-elastic:GetCluster", "docdb-elastic:GetClusterSnapshot", "docdb-elastic:ListTagsForResource", "docdb-elastic:StartCluster", "docdb-elastic:TagResource", "docdb-elastic:UntagResource"], "path": "behavioral/docdb-elastic/check_tag_resource_on_snapshot_persists_and_untag_removes.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.tag-resource-persists-and-untag-removes", "deployments": [], "key": "docdb-elastic/tag-resource-persists-and-untag-removes", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:ListTagsForResource", "docdb-elastic:StartCluster", "docdb-elastic:TagResource", "docdb-elastic:UntagResource"], "path": "behavioral/docdb-elastic/check_tag_resource_persists_and_untag_removes.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.update-cluster-backup-retention-period-persists", "deployments": [], "key": "docdb-elastic/update-cluster-backup-retention-period-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster", "docdb-elastic:TagResource", "docdb-elastic:UpdateCluster"], "path": "behavioral/docdb-elastic/check_update_cluster_backup_retention_period_persists.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.update-cluster-shard-capacity-persists", "deployments": [], "key": "docdb-elastic/update-cluster-shard-capacity-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster", "docdb-elastic:UpdateCluster"], "path": "behavioral/docdb-elastic/check_update_cluster_shard_capacity_persists.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.update-cluster-shard-count-changes-shard-topology", "deployments": [], "key": "docdb-elastic/update-cluster-shard-count-changes-shard-topology", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster", "docdb-elastic:UpdateCluster"], "path": "behavioral/docdb-elastic/check_update_cluster_shard_count_changes_shard_topology.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.update-cluster-shard-count-decrease-merges-shard-topology", "deployments": [], "key": "docdb-elastic/update-cluster-shard-count-decrease-merges-shard-topology", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster", "docdb-elastic:UpdateCluster"], "path": "behavioral/docdb-elastic/check_update_cluster_shard_count_decrease_merges_shard_topology.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.update-cluster-shard-instance-count-persists", "deployments": [], "key": "docdb-elastic/update-cluster-shard-instance-count-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:UpdateCluster"], "path": "behavioral/docdb-elastic/check_update_cluster_shard_instance_count_persists.py", "service": "docdb-elastic"} {"check_id": "docdb-elastic.update-cluster-while-stopped-rejected", "deployments": [], "key": "docdb-elastic/update-cluster-while-stopped-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb-elastic:CreateCluster", "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "docdb-elastic:StartCluster", "docdb-elastic:StopCluster", "docdb-elastic:UpdateCluster"], "path": "behavioral/docdb-elastic/check_update_cluster_while_stopped_rejected.py", "service": "docdb-elastic"} {"check_id": "docdb.cluster-create-rejects-unknown-parameter-group", "deployments": [], "key": "docdb/cluster-create-rejects-unknown-parameter-group", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb:CreateDBCluster", "docdb:CreateDBSubnetGroup", "docdb:DeleteDBCluster", "docdb:DeleteDBSubnetGroup", "docdb:DescribeDBClusters"], "path": "behavioral/docdb/check_cluster_create_rejects_unknown_parameter_group.py", "service": "docdb"} {"check_id": "docdb.cluster-mongo-insert-find-round-trip", "deployments": [], "key": "docdb/cluster-mongo-insert-find-round-trip", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["docdb:CreateDBCluster", "docdb:CreateDBInstance", "docdb:CreateDBSubnetGroup", "docdb:DeleteDBCluster", "docdb:DeleteDBInstance", "docdb:DeleteDBSubnetGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/docdb/check_cluster_mongo_insert_find_round_trip.py", "service": "docdb"} {"check_id": "docdb.event-subscription-rejects-unknown-source-id", "deployments": [], "key": "docdb/event-subscription-rejects-unknown-source-id", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb:CreateEventSubscription", "docdb:DeleteEventSubscription", "docdb:DescribeEventSubscriptions", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/docdb/check_event_subscription_rejects_unknown_source_id.py", "service": "docdb"} {"check_id": "docdb.subnet-group-rejects-insufficient-az-coverage", "deployments": [], "key": "docdb/subnet-group-rejects-insufficient-az-coverage", "labels": ["axis:rejection", "plane:control"], "operations": ["docdb:CreateDBSubnetGroup", "docdb:DeleteDBSubnetGroup", "docdb:DescribeDBSubnetGroups", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/docdb/check_subnet_group_rejects_insufficient_az_coverage.py", "service": "docdb"} {"check_id": "drs.concurrent-idempotent-delete-launch-configuration-template", "deployments": [], "key": "drs/concurrent-idempotent-delete-launch-configuration-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["drs:CreateLaunchConfigurationTemplate", "drs:DeleteLaunchConfigurationTemplate", "drs:DescribeLaunchConfigurationTemplates"], "path": "behavioral/drs/check_concurrent_idempotent_delete_launch_configuration_template.py", "service": "drs"} {"check_id": "drs.concurrent-tag-resource-disjoint-keys-merge", "deployments": [], "key": "drs/concurrent-tag-resource-disjoint-keys-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["drs:CreateReplicationConfigurationTemplate", "drs:DeleteReplicationConfigurationTemplate", "drs:ListTagsForResource", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/drs/check_concurrent_tag_resource_disjoint_keys_merge.py", "service": "drs"} {"check_id": "drs.concurrent-update-launch-configuration-template-disjoint-fields-merge", "deployments": [], "key": "drs/concurrent-update-launch-configuration-template-disjoint-fields-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["drs:CreateLaunchConfigurationTemplate", "drs:DeleteLaunchConfigurationTemplate", "drs:DescribeLaunchConfigurationTemplates"], "path": "behavioral/drs/check_concurrent_update_launch_configuration_template_disjoint_fields_merge.py", "service": "drs"} {"check_id": "drs.create-launch-configuration-template-invalid-enum-rejected", "deployments": [], "key": "drs/create-launch-configuration-template-invalid-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["drs:CreateLaunchConfigurationTemplate", "drs:DeleteLaunchConfigurationTemplate"], "path": "behavioral/drs/check_create_launch_configuration_template_invalid_enum_rejected.py", "service": "drs"} {"check_id": "drs.create-replication-configuration-template-nonexistent-subnet-rejected", "deployments": [], "key": "drs/create-replication-configuration-template-nonexistent-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["drs:CreateReplicationConfigurationTemplate", "drs:DeleteReplicationConfigurationTemplate", "ec2:DescribeSubnets"], "path": "behavioral/drs/check_create_replication_configuration_template_nonexistent_subnet_rejected.py", "service": "drs"} {"check_id": "drs.delete-launch-configuration-template-twice-returns-not-found", "deployments": [], "key": "drs/delete-launch-configuration-template-twice-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["drs:CreateLaunchConfigurationTemplate", "drs:DeleteLaunchConfigurationTemplate", "drs:DescribeLaunchConfigurationTemplates"], "path": "behavioral/drs/check_delete_launch_configuration_template_twice_returns_not_found.py", "service": "drs"} {"check_id": "drs.launch-action-lifecycle-on-launch-configuration-template", "deployments": [], "key": "drs/launch-action-lifecycle-on-launch-configuration-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["drs:CreateLaunchConfigurationTemplate", "drs:DeleteLaunchAction", "drs:DeleteLaunchConfigurationTemplate", "drs:ListLaunchActions", "drs:PutLaunchAction"], "path": "behavioral/drs/check_launch_action_lifecycle_on_launch_configuration_template.py", "service": "drs"} {"check_id": "drs.launch-configuration-template-lifecycle", "deployments": [], "key": "drs/launch-configuration-template-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["drs:CreateLaunchConfigurationTemplate", "drs:DeleteLaunchConfigurationTemplate", "drs:DescribeLaunchConfigurationTemplates", "drs:UpdateLaunchConfigurationTemplate"], "path": "behavioral/drs/check_launch_configuration_template_lifecycle.py", "service": "drs"} {"check_id": "drs.list-recovery-plans-pagination-returns-all-created-once", "deployments": [], "key": "drs/list-recovery-plans-pagination-returns-all-created-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["drs:CreateRecoveryPlan", "drs:DeleteRecoveryPlan", "drs:ListRecoveryPlans"], "path": "behavioral/drs/check_list_recovery_plans_pagination_returns_all_created_once.py", "service": "drs"} {"check_id": "drs.recovery-plan-tag-and-lifecycle", "deployments": [], "key": "drs/recovery-plan-tag-and-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["drs:CreateRecoveryPlan", "drs:DeleteRecoveryPlan", "drs:GetRecoveryPlan", "drs:ListTagsForResource", "drs:TagResource", "drs:UntagResource", "drs:UpdateRecoveryPlan"], "path": "behavioral/drs/check_recovery_plan_tag_and_lifecycle.py", "service": "drs"} {"check_id": "drs.replication-configuration-template-lifecycle", "deployments": [], "key": "drs/replication-configuration-template-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["drs:CreateReplicationConfigurationTemplate", "drs:DeleteReplicationConfigurationTemplate", "drs:DescribeReplicationConfigurationTemplates", "drs:UpdateReplicationConfigurationTemplate", "ec2:DescribeSubnets"], "path": "behavioral/drs/check_replication_configuration_template_lifecycle.py", "service": "drs"} {"check_id": "drs.tag-operations-not-found-on-nonexistent-recovery-plan", "deployments": [], "key": "drs/tag-operations-not-found-on-nonexistent-recovery-plan", "labels": ["axis:rejection", "plane:control"], "operations": ["drs:CreateRecoveryPlan", "drs:DeleteRecoveryPlan", "drs:ListTagsForResource", "drs:TagResource", "drs:UntagResource"], "path": "behavioral/drs/check_tag_operations_not_found_on_nonexistent_recovery_plan.py", "service": "drs"} {"check_id": "drs.tag-resource-rejected-for-launch-configuration-template-arn", "deployments": [], "key": "drs/tag-resource-rejected-for-launch-configuration-template-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["drs:CreateLaunchConfigurationTemplate", "drs:DeleteLaunchConfigurationTemplate", "drs:DescribeLaunchConfigurationTemplates", "drs:ListTagsForResource", "drs:TagResource", "drs:UntagResource"], "path": "behavioral/drs/check_tag_resource_rejected_for_launch_configuration_template_arn.py", "service": "drs"} {"check_id": "drs.tag-resource-rejects-launch-configuration-template-arn", "deployments": [], "key": "drs/tag-resource-rejects-launch-configuration-template-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["drs:CreateLaunchConfigurationTemplate", "drs:DeleteLaunchConfigurationTemplate", "drs:DescribeLaunchConfigurationTemplates", "drs:ListTagsForResource", "drs:TagResource"], "path": "behavioral/drs/check_tag_resource_rejects_launch_configuration_template_arn.py", "service": "drs"} {"check_id": "drs.wait-step-cannot-be-first-in-recovery-plan-rejected", "deployments": [], "key": "drs/wait-step-cannot-be-first-in-recovery-plan-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["drs:CreateRecoveryPlan", "drs:CreateRecoveryPlanStep", "drs:DeleteRecoveryPlan", "drs:GetRecoveryPlan", "drs:ListRecoveryPlanSteps"], "path": "behavioral/drs/check_wait_step_cannot_be_first_in_recovery_plan_rejected.py", "service": "drs"} {"check_id": "ds-data.absent-directory-is-denied-rather-than-reported-missing", "deployments": [], "key": "ds-data/absent-directory-is-denied-rather-than-reported-missing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:GetDirectoryLimits", "sts:GetCallerIdentity"], "path": "behavioral/ds-data/check_absent_directory_is_denied_rather_than_reported_missing.py", "service": "ds-data"} {"check_id": "ds-data.attribute-value-union-rejects-every-member-but-string", "deployments": [], "key": "ds-data/attribute-value-union-rejects-every-member-but-string", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds-data:CreateUser", "ds:DescribeDirectories", "sts:GetCallerIdentity"], "path": "behavioral/ds-data/check_attribute_value_union_rejects_every_member_but_string.py", "service": "ds-data"} {"check_id": "ds-data.client-token-is-validated-on-every-mutating-operation-rejected", "deployments": [], "key": "ds-data/client-token-is-validated-on-every-mutating-operation-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ds:DescribeDirectories", "ds:GetDirectoryLimits"], "path": "behavioral/ds-data/check_client_token_is_validated_on_every_mutating_operation_rejected.py", "service": "ds-data"} {"check_id": "ds-data.pagination-token-is-not-parsed-before-authorization-rejects", "deployments": [], "key": "ds-data/pagination-token-is-not-parsed-before-authorization-rejects", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds-data:ListUsers", "ds:DescribeDirectories"], "path": "behavioral/ds-data/check_pagination_token_is_not_parsed_before_authorization_rejects.py", "service": "ds-data"} {"check_id": "ds-data.realm-members-are-validated-independently-and-never-resolved", "deployments": [], "key": "ds-data/realm-members-are-validated-independently-and-never-resolved", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds-data:ListGroupMembers", "ds-data:ListUsers", "ds:DescribeDirectories"], "path": "behavioral/ds-data/check_realm_members_are_validated_independently_and_never_resolved.py", "service": "ds-data"} {"check_id": "ds-data.sam-account-name-shape-differs-by-operation-family", "deployments": [], "key": "ds-data/sam-account-name-shape-differs-by-operation-family", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds-data:AddGroupMember", "ds:DescribeDirectories", "ds:GetDirectoryLimits"], "path": "behavioral/ds-data/check_sam_account_name_shape_differs_by_operation_family.py", "service": "ds-data"} {"check_id": "ds-data.sensitive-member-values-are-withheld-when-rejected", "deployments": [], "key": "ds-data/sensitive-member-values-are-withheld-when-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds-data:CreateUser", "ds-data:DescribeUser", "ds:DescribeDirectories"], "path": "behavioral/ds-data/check_sensitive_member_values_are_withheld_when_rejected.py", "service": "ds-data"} {"check_id": "ds.accept-shared-directory-already-shared-rejected", "deployments": [], "key": "ds/accept-shared-directory-already-shared-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ShareDirectory", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_accept_shared_directory_already_shared_rejected.py", "service": "ds"} {"check_id": "ds.accept-shared-directory-nonexistent-rejected", "deployments": [], "key": "ds/accept-shared-directory-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AcceptSharedDirectory", "ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListTagsForResource", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_accept_shared_directory_nonexistent_rejected.py", "service": "ds"} {"check_id": "ds.add-ip-routes-duplicate-cidr-rejected", "deployments": [], "key": "ds/add-ip-routes-duplicate-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListIpRoutes", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_add_ip_routes_duplicate_cidr_rejected.py", "service": "ds"} {"check_id": "ds.add-ip-routes-duplicate-rejected", "deployments": [], "key": "ds/add-ip-routes-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_add_ip_routes_duplicate_rejected.py", "service": "ds"} {"check_id": "ds.add-ip-routes-malformed-cidr-rejected", "deployments": [], "key": "ds/add-ip-routes-malformed-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_add_ip_routes_malformed_cidr_rejected.py", "service": "ds"} {"check_id": "ds.add-ip-routes-overlapping-cidr-rejected", "deployments": [], "key": "ds/add-ip-routes-overlapping-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListIpRoutes", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_add_ip_routes_overlapping_cidr_rejected.py", "service": "ds"} {"check_id": "ds.add-ip-routes-overlapping-conflict", "deployments": [], "key": "ds/add-ip-routes-overlapping-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_add_ip_routes_overlapping_conflict.py", "service": "ds"} {"check_id": "ds.add-region-access-denied", "deployments": [], "key": "ds/add-region-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddRegion", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeRegions", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_add_region_access_denied.py", "service": "ds"} {"check_id": "ds.add-region-duplicate-rejected", "deployments": [], "key": "ds/add-region-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddRegion", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeRegions", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_add_region_duplicate_rejected.py", "service": "ds"} {"check_id": "ds.add-tags-invalid-tag-key-rejected", "deployments": [], "key": "ds/add-tags-invalid-tag-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListTagsForResource", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_add_tags_invalid_tag_key_rejected.py", "service": "ds"} {"check_id": "ds.alias-reassignment-rejected", "deployments": [], "key": "ds/alias-reassignment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateAlias", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_alias_reassignment_rejected.py", "service": "ds"} {"check_id": "ds.alias-reserved-prefix-rejected", "deployments": [], "key": "ds/alias-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateAlias", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_alias_reserved_prefix_rejected.py", "service": "ds"} {"check_id": "ds.ca-enrollment-disable-not-enabled-rejected", "deployments": [], "key": "ds/ca-enrollment-disable-not-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeCAEnrollmentPolicy", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DisableCAEnrollmentPolicy", "ds:ListTagsForResource", "ds:RemoveTagsFromResource", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ca_enrollment_disable_not_enabled_rejected.py", "service": "ds"} {"check_id": "ds.ca-enrollment-policy-server-enforced-toggle", "deployments": [], "key": "ds/ca-enrollment-policy-server-enforced-toggle", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeCAEnrollmentPolicy", "ds:DescribeDirectories", "ds:DisableCAEnrollmentPolicy", "ds:EnableCAEnrollmentPolicy", "ds:ListTagsForResource", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_ca_enrollment_policy_server_enforced_toggle.py", "service": "ds"} {"check_id": "ds.ca-enrollment-policy-toggle-server-managed", "deployments": [], "key": "ds/ca-enrollment-policy-toggle-server-managed", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeCAEnrollmentPolicy", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DisableCAEnrollmentPolicy", "ds:EnableCAEnrollmentPolicy", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_ca_enrollment_policy_toggle_server_managed.py", "service": "ds"} {"check_id": "ds.certificate-lifecycle-register-describe-deregister", "deployments": [], "key": "ds/certificate-lifecycle-register-describe-deregister", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeregisterCertificate", "ds:DescribeCertificate", "ds:DescribeDirectories", "ds:RegisterCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_certificate_lifecycle_register_describe_deregister.py", "service": "ds"} {"check_id": "ds.certificate-register-deregister-lifecycle", "deployments": [], "key": "ds/certificate-register-deregister-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListCertificates", "ds:RegisterCertificate", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_certificate_register_deregister_lifecycle.py", "service": "ds"} {"check_id": "ds.certificate-registration-commonname-round-trip", "deployments": [], "key": "ds/certificate-registration-commonname-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeregisterCertificate", "ds:DescribeCertificate", "ds:DescribeDirectories", "ds:RegisterCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_certificate_registration_commonname_round_trip.py", "service": "ds"} {"check_id": "ds.concurrent-add-ip-route-idempotency", "deployments": [], "key": "ds/concurrent-add-ip-route-idempotency", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_concurrent_add_ip_route_idempotency.py", "service": "ds"} {"check_id": "ds.concurrent-add-ip-routes-conflict-detected", "deployments": [], "key": "ds/concurrent-add-ip-routes-conflict-detected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ec2:DescribeAvailabilityZones"], "path": "behavioral/ds/check_concurrent_add_ip_routes_conflict_detected.py", "service": "ds"} {"check_id": "ds.concurrent-add-ip-routes-duplicate-conflict", "deployments": [], "key": "ds/concurrent-add-ip-routes-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_concurrent_add_ip_routes_duplicate_conflict.py", "service": "ds"} {"check_id": "ds.concurrent-share-directory-race-conflict", "deployments": [], "key": "ds/concurrent-share-directory-race-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ShareDirectory", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_concurrent_share_directory_race_conflict.py", "service": "ds"} {"check_id": "ds.concurrent-share-directory-single-winner", "deployments": [], "key": "ds/concurrent-share-directory-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ShareDirectory", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_concurrent_share_directory_single_winner.py", "service": "ds"} {"check_id": "ds.concurrent-tag-updates-converge", "deployments": [], "key": "ds/concurrent-tag-updates-converge", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListTagsForResource", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_concurrent_tag_updates_converge.py", "service": "ds"} {"check_id": "ds.concurrent-update-domain-controllers-limit-exceeded", "deployments": [], "key": "ds/concurrent-update-domain-controllers-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDomainControllers", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ds:UpdateNumberOfDomainControllers", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_concurrent_update_domain_controllers_limit_exceeded.py", "service": "ds"} {"check_id": "ds.conditional-forwarder-dns-ip-order-preserved", "deployments": [], "key": "ds/conditional-forwarder-dns-ip-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteConditionalForwarder", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_conditional_forwarder_dns_ip_order_preserved.py", "service": "ds"} {"check_id": "ds.conditional-forwarder-dns-ip-round-trip", "deployments": [], "key": "ds/conditional-forwarder-dns-ip-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteConditionalForwarder", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_conditional_forwarder_dns_ip_round_trip.py", "service": "ds"} {"check_id": "ds.conditional-forwarder-dns-ips-preserved", "deployments": [], "key": "ds/conditional-forwarder-dns-ips-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteConditionalForwarder", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_conditional_forwarder_dns_ips_preserved.py", "service": "ds"} {"check_id": "ds.conditional-forwarder-duplicate-domain-rejected", "deployments": [], "key": "ds/conditional-forwarder-duplicate-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteConditionalForwarder", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_conditional_forwarder_duplicate_domain_rejected.py", "service": "ds"} {"check_id": "ds.conditional-forwarder-duplicate-rejected", "deployments": [], "key": "ds/conditional-forwarder-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_conditional_forwarder_duplicate_rejected.py", "service": "ds"} {"check_id": "ds.conditional-forwarder-ip-list-round-trip", "deployments": [], "key": "ds/conditional-forwarder-ip-list-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteConditionalForwarder", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ds:UpdateConditionalForwarder", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_conditional_forwarder_ip_list_round_trip.py", "service": "ds"} {"check_id": "ds.connect-directory-invalid-vpc-settings-rejected", "deployments": [], "key": "ds/connect-directory-invalid-vpc-settings-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:ConnectDirectory", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets"], "path": "behavioral/ds/check_connect_directory_invalid_vpc_settings_rejected.py", "service": "ds"} {"check_id": "ds.create-alias-before-active-rejected", "deployments": [], "key": "ds/create-alias-before-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateAlias", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_create_alias_before_active_rejected.py", "service": "ds"} {"check_id": "ds.create-alias-invalid-alias-rejected", "deployments": [], "key": "ds/create-alias-invalid-alias-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateAlias"], "path": "behavioral/ds/check_create_alias_invalid_alias_rejected.py", "service": "ds"} {"check_id": "ds.create-computer-authentication-failed-rejected", "deployments": [], "key": "ds/create-computer-authentication-failed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateComputer", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_create_computer_authentication_failed_rejected.py", "service": "ds"} {"check_id": "ds.create-conditional-forwarder-duplicate-name-rejected", "deployments": [], "key": "ds/create-conditional-forwarder-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteConditionalForwarder", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_create_conditional_forwarder_duplicate_name_rejected.py", "service": "ds"} {"check_id": "ds.create-conditional-forwarder-duplicate-rejected", "deployments": [], "key": "ds/create-conditional-forwarder-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteConditionalForwarder", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_create_conditional_forwarder_duplicate_rejected.py", "service": "ds"} {"check_id": "ds.create-conditional-forwarder-invalid-dns-ip-rejected", "deployments": [], "key": "ds/create-conditional-forwarder-invalid-dns-ip-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteConditionalForwarder", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_create_conditional_forwarder_invalid_dns_ip_rejected.py", "service": "ds"} {"check_id": "ds.create-directory-rejects-noncompliant-password", "deployments": [], "key": "ds/create-directory-rejects-noncompliant-password", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DeleteDirectory", "ds:DescribeDirectories"], "path": "behavioral/ds/check_create_directory_rejects_noncompliant_password.py", "service": "ds"} {"check_id": "ds.create-directory-rejects-single-az-vpc-settings", "deployments": [], "key": "ds/create-directory-rejects-single-az-vpc-settings", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets"], "path": "behavioral/ds/check_create_directory_rejects_single_az_vpc_settings.py", "service": "ds"} {"check_id": "ds.create-trust-duplicate-name-conflict", "deployments": [], "key": "ds/create-trust-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DescribeTrusts", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_create_trust_duplicate_name_conflict.py", "service": "ds"} {"check_id": "ds.create-trust-duplicate-name-rejected", "deployments": [], "key": "ds/create-trust-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/ds/check_create_trust_duplicate_name_rejected.py", "service": "ds"} {"check_id": "ds.create-trust-duplicate-rejected", "deployments": [], "key": "ds/create-trust-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_create_trust_duplicate_rejected.py", "service": "ds"} {"check_id": "ds.create-trust-duplicate-remote-domain-rejected", "deployments": [], "key": "ds/create-trust-duplicate-remote-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_create_trust_duplicate_remote_domain_rejected.py", "service": "ds"} {"check_id": "ds.delete-directory-twice-not-found", "deployments": [], "key": "ds/delete-directory-twice-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:GetSnapshotLimits", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_delete_directory_twice_not_found.py", "service": "ds"} {"check_id": "ds.delete-nonexistent-directory-rejected", "deployments": [], "key": "ds/delete-nonexistent-directory-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DeleteDirectory", "ds:DescribeDirectories"], "path": "behavioral/ds/check_delete_nonexistent_directory_rejected.py", "service": "ds"} {"check_id": "ds.deploy-microsoft-ad-cfn-behaves-active", "deployments": [], "key": "ds/deploy-microsoft-ad-cfn-behaves-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ds:DescribeDirectories", "ds:GetDirectoryLimits", "ds:GetSnapshotLimits", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_deploy_microsoft_ad_cfn_behaves_active.py", "service": "ds"} {"check_id": "ds.deploy-microsoft-ad-cfn-directory-behaves", "deployments": [], "key": "ds/deploy-microsoft-ad-cfn-directory-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ds:DescribeDirectories", "ds:ResetUserPassword", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_deploy_microsoft_ad_cfn_directory_behaves.py", "service": "ds"} {"check_id": "ds.deploy-microsoft-ad-cloudformation-active", "deployments": [], "key": "ds/deploy-microsoft-ad-cloudformation-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "ds:DescribeDirectories", "ds:GetDirectoryLimits", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_deploy_microsoft_ad_cloudformation_active.py", "service": "ds"} {"check_id": "ds.deploy-microsoft-ad-directory-behaves", "deployments": [], "key": "ds/deploy-microsoft-ad-directory-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ds:AddIpRoutes", "ds:AddTagsToResource", "ds:DescribeDirectories", "ds:ListIpRoutes", "ds:ResetUserPassword", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_deploy_microsoft_ad_directory_behaves.py", "service": "ds"} {"check_id": "ds.deploy-microsoftad-cfn-ldaps-behaves", "deployments": [], "key": "ds/deploy-microsoftad-cfn-ldaps-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ds:DeregisterCertificate", "ds:DescribeCertificate", "ds:DescribeDirectories", "ds:DescribeLDAPSSettings", "ds:DisableLDAPS", "ds:EnableLDAPS", "ds:RegisterCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_deploy_microsoftad_cfn_ldaps_behaves.py", "service": "ds"} {"check_id": "ds.describe-client-authentication-settings-nonexistent-directory", "deployments": [], "key": "ds/describe-client-authentication-settings-nonexistent-directory", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DescribeClientAuthenticationSettings", "ds:DescribeDirectories"], "path": "behavioral/ds/check_describe_client_authentication_settings_nonexistent_directory.py", "service": "ds"} {"check_id": "ds.describe-directories-absent-id-rejected", "deployments": [], "key": "ds/describe-directories-absent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DescribeDirectories"], "path": "behavioral/ds/check_describe_directories_absent_id_rejected.py", "service": "ds"} {"check_id": "ds.describe-directories-invalid-next-token", "deployments": [], "key": "ds/describe-directories-invalid-next-token", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DescribeDirectories"], "path": "behavioral/ds/check_describe_directories_invalid_next_token.py", "service": "ds"} {"check_id": "ds.describe-directories-returns-inventory", "deployments": [], "key": "ds/describe-directories-returns-inventory", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_describe_directories_returns_inventory.py", "service": "ds"} {"check_id": "ds.describe-domain-controllers-invalid-next-token-rejected", "deployments": [], "key": "ds/describe-domain-controllers-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDomainControllers", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_describe_domain_controllers_invalid_next_token_rejected.py", "service": "ds"} {"check_id": "ds.describe-event-topics-returns-inventory", "deployments": [], "key": "ds/describe-event-topics-returns-inventory", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeregisterEventTopic", "ds:DescribeDirectories", "ds:DescribeEventTopics", "ds:DescribeSharedDirectories", "ds:RegisterEventTopic", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/ds/check_describe_event_topics_returns_inventory.py", "service": "ds"} {"check_id": "ds.describe-snapshots-returns-inventory", "deployments": [], "key": "ds/describe-snapshots-returns-inventory", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateSnapshot", "ds:DeleteDirectory", "ds:DeleteSnapshot", "ds:DescribeDirectories", "ds:DescribeSnapshots", "ec2:DescribeSubnets"], "path": "behavioral/ds/check_describe_snapshots_returns_inventory.py", "service": "ds"} {"check_id": "ds.describe-trusts-returns-inventory", "deployments": [], "key": "ds/describe-trusts-returns-inventory", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_describe_trusts_returns_inventory.py", "service": "ds"} {"check_id": "ds.directory-create-active-delete-404", "deployments": [], "key": "ds/directory-create-active-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:GetSnapshotLimits", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_directory_create_active_delete_404.py", "service": "ds"} {"check_id": "ds.directory-data-access-server-enforced-toggle", "deployments": [], "key": "ds/directory-data-access-server-enforced-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_directory_data_access_server_enforced_toggle.py", "service": "ds"} {"check_id": "ds.directory-data-access-toggle-enforced", "deployments": [], "key": "ds/directory-data-access-toggle-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_directory_data_access_toggle_enforced.py", "service": "ds"} {"check_id": "ds.directory-data-access-toggle-server-managed", "deployments": [], "key": "ds/directory-data-access-toggle-server-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_directory_data_access_toggle_server_managed.py", "service": "ds"} {"check_id": "ds.directory-settings-reject-unknown-names-and-values-outside-allowed-values", "deployments": [], "key": "ds/directory-settings-reject-unknown-names-and-values-outside-allowed-values", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSettings", "ds:DescribeSharedDirectories", "ds:ListTagsForResource", "ds:UnshareDirectory", "ds:UpdateSettings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_directory_settings_reject_unknown_names_and_values_outside_allowed_values.py", "service": "ds"} {"check_id": "ds.disable-directory-data-access-recloses-the-door-without-losing-contents", "deployments": [], "key": "ds/disable-directory-data-access-recloses-the-door-without-losing-contents", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ds-data:AddGroupMember", "ds-data:CreateGroup", "ds-data:CreateUser", "ds-data:DeleteGroup", "ds-data:DeleteUser", "ds-data:DescribeGroup", "ds-data:DescribeUser", "ds-data:ListUsers", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_disable_directory_data_access_recloses_the_door_without_losing_contents.py", "service": "ds"} {"check_id": "ds.disable-sso-authentication-failed-rejected", "deployments": [], "key": "ds/disable-sso-authentication-failed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateAlias", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DisableSso", "ds:EnableSso", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_disable_sso_authentication_failed_rejected.py", "service": "ds"} {"check_id": "ds.disable-sso-without-enable-is-an-idempotent-no-op", "deployments": [], "key": "ds/disable-sso-without-enable-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateAlias", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DisableSso", "ds:EnableSso", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_disable_sso_without_enable_is_an_idempotent_no_op.py", "service": "ds"} {"check_id": "ds.domain-controllers-below-minimum-rejected", "deployments": [], "key": "ds/domain-controllers-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDomainControllers", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ds:UpdateNumberOfDomainControllers", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_domain_controllers_below_minimum_rejected.py", "service": "ds"} {"check_id": "ds.domain-controllers-scale-up-reflected", "deployments": [], "key": "ds/domain-controllers-scale-up-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDomainControllers", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ds:UpdateNumberOfDomainControllers", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_domain_controllers_scale_up_reflected.py", "service": "ds"} {"check_id": "ds.domain-controllers-scaling-enforced", "deployments": [], "key": "ds/domain-controllers-scaling-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDomainControllers", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ds:UpdateNumberOfDomainControllers", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_domain_controllers_scaling_enforced.py", "service": "ds"} {"check_id": "ds.ds-data-access-must-be-enabled-before-the-data-plane-answers", "deployments": [], "key": "ds/ds-data-access-must-be-enabled-before-the-data-plane-answers", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds-data:CreateUser", "ds-data:DeleteUser", "ds-data:DescribeUser", "ds-data:ListUsers", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ds_data_access_must_be_enabled_before_the_data_plane_answers.py", "service": "ds"} {"check_id": "ds.ds-data-concurrent-group-member-adds-all-land-exactly-once", "deployments": [], "key": "ds/ds-data-concurrent-group-member-adds-all-land-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ds-data:AddGroupMember", "ds-data:CreateGroup", "ds-data:CreateUser", "ds-data:DeleteGroup", "ds-data:DeleteUser", "ds-data:RemoveGroupMember", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ds_data_concurrent_group_member_adds_all_land_exactly_once.py", "service": "ds"} {"check_id": "ds.ds-data-duplicate-sam-account-name-rejected-and-original-untouched", "deployments": [], "key": "ds/ds-data-duplicate-sam-account-name-rejected-and-original-untouched", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds-data:CreateUser", "ds-data:DeleteUser", "ds-data:DescribeUser", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ds_data_duplicate_sam_account_name_rejected_and_original_untouched.py", "service": "ds"} {"check_id": "ds.ds-data-group-inventory-and-search-answer-for-the-builtin-groups", "deployments": [], "key": "ds/ds-data-group-inventory-and-search-answer-for-the-builtin-groups", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ds-data:CreateGroup", "ds-data:DeleteGroup", "ds-data:SearchGroups", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:ListTagsForResource", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_ds_data_group_inventory_and_search_answer_for_the_builtin_groups.py", "service": "ds"} {"check_id": "ds.ds-data-group-membership-is-transitive-and-visible-from-both-sides", "deployments": [], "key": "ds/ds-data-group-membership-is-transitive-and-visible-from-both-sides", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ds-data:AddGroupMember", "ds-data:CreateGroup", "ds-data:CreateUser", "ds-data:DeleteGroup", "ds-data:DeleteUser", "ds-data:RemoveGroupMember", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ds_data_group_membership_is_transitive_and_visible_from_both_sides.py", "service": "ds"} {"check_id": "ds.ds-data-is-a-distinct-validated-surface", "deployments": [], "key": "ds/ds-data-is-a-distinct-validated-surface", "labels": ["axis:rejection", "plane:control"], "operations": ["ds-data:DescribeUser", "ds-data:ListGroups", "ds-data:ListUsers", "ds-data:SearchUsers", "ds:DescribeDirectories", "ds:DescribeSettings", "ds:GetSnapshotLimits", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_ds_data_is_a_distinct_validated_surface.py", "service": "ds"} {"check_id": "ds.ds-data-list-users-pagination-is-exact-and-reaches-the-token-layer", "deployments": [], "key": "ds/ds-data-list-users-pagination-is-exact-and-reaches-the-token-layer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ds-data:CreateUser", "ds-data:DeleteUser", "ds-data:ListUsers", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:ListTagsForResource", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_ds_data_list_users_pagination_is_exact_and_reaches_the_token_layer.py", "service": "ds"} {"check_id": "ds.ds-data-search-users-matches-only-the-named-ldap-attribute", "deployments": [], "key": "ds/ds-data-search-users-matches-only-the-named-ldap-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ds-data:CreateUser", "ds-data:DeleteUser", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ds_data_search_users_matches_only_the_named_ldap_attribute.py", "service": "ds"} {"check_id": "ds.ds-data-user-create-describe-search-roundtrip", "deployments": [], "key": "ds/ds-data-user-create-describe-search-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ds-data:CreateUser", "ds-data:DeleteUser", "ds-data:DescribeUser", "ds-data:UpdateUser", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ds_data_user_create_describe_search_roundtrip.py", "service": "ds"} {"check_id": "ds.ds-trust-to-an-unresolvable-remote-domain-fails-and-leaves-no-trust", "deployments": [], "key": "ds/ds-trust-to-an-unresolvable-remote-domain-fails-and-leaves-no-trust", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeTrusts", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ds_trust_to_an_unresolvable_remote_domain_fails_and_leaves_no_trust.py", "service": "ds"} {"check_id": "ds.e2e-schema-extension-teardown-flow", "deployments": [], "key": "ds/e2e-schema-extension-teardown-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListSchemaExtensions", "ds:StartSchemaExtension", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_e2e_schema_extension_teardown_flow.py", "service": "ds"} {"check_id": "ds.e2e-share-unshare-flow", "deployments": [], "key": "ds/e2e-share-unshare-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ShareDirectory", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_e2e_share_unshare_flow.py", "service": "ds"} {"check_id": "ds.e2e-trust-create-verify-delete-flow", "deployments": [], "key": "ds/e2e-trust-create-verify-delete-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ds:VerifyTrust", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress"], "path": "behavioral/ds/check_e2e_trust_create_verify_delete_flow.py", "service": "ds"} {"check_id": "ds.e2e-trust-schema-extension-flow", "deployments": [], "key": "ds/e2e-trust-schema-extension-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CancelSchemaExtension", "ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DescribeTrusts", "ds:ListSchemaExtensions", "ds:StartSchemaExtension", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_e2e_trust_schema_extension_flow.py", "service": "ds"} {"check_id": "ds.enable-ldaps-without-certificate-blocked", "deployments": [], "key": "ds/enable-ldaps-without-certificate-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeCertificate", "ds:DescribeDirectories", "ds:DescribeLDAPSSettings", "ds:EnableLDAPS", "ds:ListCertificates", "ds:RegisterCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_enable_ldaps_without_certificate_blocked.py", "service": "ds"} {"check_id": "ds.enable-radius-duplicate-rejected", "deployments": [], "key": "ds/enable-radius-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DisableRadius", "ds:EnableRadius", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_enable_radius_duplicate_rejected.py", "service": "ds"} {"check_id": "ds.enable-radius-twice-rejected", "deployments": [], "key": "ds/enable-radius-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DisableRadius", "ds:EnableRadius", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_enable_radius_twice_rejected.py", "service": "ds"} {"check_id": "ds.enable-sso-missing-permission-denied", "deployments": [], "key": "ds/enable-sso-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateAlias", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:EnableSso", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_enable_sso_missing_permission_denied.py", "service": "ds"} {"check_id": "ds.enable-sso-without-prerequisites-denied", "deployments": [], "key": "ds/enable-sso-without-prerequisites-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateAlias", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DisableSso", "ds:EnableSso", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_enable_sso_without_prerequisites_denied.py", "service": "ds"} {"check_id": "ds.get-directory-limits-shape", "deployments": [], "key": "ds/get-directory-limits-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:GetDirectoryLimits"], "path": "behavioral/ds/check_get_directory_limits_shape.py", "service": "ds"} {"check_id": "ds.get-snapshot-limits-nonexistent-directory", "deployments": [], "key": "ds/get-snapshot-limits-nonexistent-directory", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DescribeDirectories", "ds:GetSnapshotLimits"], "path": "behavioral/ds/check_get_snapshot_limits_nonexistent_directory.py", "service": "ds"} {"check_id": "ds.get-snapshot-limits-reflects-snapshot-count", "deployments": [], "key": "ds/get-snapshot-limits-reflects-snapshot-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateSnapshot", "ds:DeleteDirectory", "ds:DeleteSnapshot", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DescribeSnapshots", "ds:GetSnapshotLimits", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_get_snapshot_limits_reflects_snapshot_count.py", "service": "ds"} {"check_id": "ds.ip-route-add-remove-lifecycle", "deployments": [], "key": "ds/ip-route-add-remove-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ip_route_add_remove_lifecycle.py", "service": "ds"} {"check_id": "ds.ip-route-cidr-preserved-exact", "deployments": [], "key": "ds/ip-route-cidr-preserved-exact", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListIpRoutes", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ip_route_cidr_preserved_exact.py", "service": "ds"} {"check_id": "ds.ip-route-cidr-round-trip", "deployments": [], "key": "ds/ip-route-cidr-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_ip_route_cidr_round_trip.py", "service": "ds"} {"check_id": "ds.ip-route-duplicate-cidr-rejected", "deployments": [], "key": "ds/ip-route-duplicate-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ip_route_duplicate_cidr_rejected.py", "service": "ds"} {"check_id": "ds.ip-route-nonexistent-directory-rejected", "deployments": [], "key": "ds/ip-route-nonexistent-directory-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:DescribeDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes"], "path": "behavioral/ds/check_ip_route_nonexistent_directory_rejected.py", "service": "ds"} {"check_id": "ds.ip-routes-cidr-preserved", "deployments": [], "key": "ds/ip-routes-cidr-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListIpRoutes", "ds:RemoveIpRoutes", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ip_routes_cidr_preserved.py", "service": "ds"} {"check_id": "ds.ldaps-enable-disable-server-enforced", "deployments": [], "key": "ds/ldaps-enable-disable-server-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeregisterCertificate", "ds:DescribeCertificate", "ds:DescribeDirectories", "ds:DescribeLDAPSSettings", "ds:DisableLDAPS", "ds:EnableLDAPS", "ds:RegisterCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_ldaps_enable_disable_server_enforced.py", "service": "ds"} {"check_id": "ds.ldaps-toggle-server-managed-state", "deployments": [], "key": "ds/ldaps-toggle-server-managed-state", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeLDAPSSettings", "ds:DescribeSharedDirectories", "ds:DisableLDAPS", "ds:EnableLDAPS", "ds:ListTagsForResource", "ds:RemoveTagsFromResource", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_ldaps_toggle_server_managed_state.py", "service": "ds"} {"check_id": "ds.list-ad-assessments-returns-inventory", "deployments": [], "key": "ds/list-ad-assessments-returns-inventory", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:DeleteADAssessment", "ds:DescribeADAssessment", "ds:ListADAssessments", "ds:StartADAssessment", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets"], "path": "behavioral/ds/check_list_ad_assessments_returns_inventory.py", "service": "ds"} {"check_id": "ds.list-log-subscriptions-returns-inventory", "deployments": [], "key": "ds/list-log-subscriptions-returns-inventory", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateLogSubscription", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeleteLogSubscription", "ds:DescribeDirectories", "ds:ListLogSubscriptions", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_list_log_subscriptions_returns_inventory.py", "service": "ds"} {"check_id": "ds.list-tags-for-nonexistent-directory", "deployments": [], "key": "ds/list-tags-for-nonexistent-directory", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DescribeDirectories", "ds:ListTagsForResource"], "path": "behavioral/ds/check_list_tags_for_nonexistent_directory.py", "service": "ds"} {"check_id": "ds.log-subscription-create-delete-visibility", "deployments": [], "key": "ds/log-subscription-create-delete-visibility", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateLogSubscription", "ds:CreateMicrosoftAD", "ds:DeleteLogSubscription", "ds:DescribeDirectories", "ds:DescribeEventTopics", "ds:ListLogSubscriptions", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_log_subscription_create_delete_visibility.py", "service": "ds"} {"check_id": "ds.log-subscription-lifecycle-create-delete", "deployments": [], "key": "ds/log-subscription-lifecycle-create-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateLogSubscription", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeleteLogSubscription", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListLogSubscriptions", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_log_subscription_lifecycle_create_delete.py", "service": "ds"} {"check_id": "ds.microsoft-ad-create-delete-lifecycle", "deployments": [], "key": "ds/microsoft-ad-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_microsoft_ad_create_delete_lifecycle.py", "service": "ds"} {"check_id": "ds.not-found-error-families-are-distinct", "deployments": [], "key": "ds/not-found-error-families-are-distinct", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSettings", "ds:DescribeSnapshots", "ds:GetSnapshotLimits", "ds:ListCertificates", "ds:ListLogSubscriptions"], "path": "behavioral/ds/check_not_found_error_families_are_distinct.py", "service": "ds"} {"check_id": "ds.register-duplicate-certificate-rejected", "deployments": [], "key": "ds/register-duplicate-certificate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListCertificates", "ds:RegisterCertificate", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_register_duplicate_certificate_rejected.py", "service": "ds"} {"check_id": "ds.register-event-topic-absent-directory-rejected", "deployments": [], "key": "ds/register-event-topic-absent-directory-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:DeregisterEventTopic", "ds:DescribeEventTopics", "ds:RegisterEventTopic", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes"], "path": "behavioral/ds/check_register_event_topic_absent_directory_rejected.py", "service": "ds"} {"check_id": "ds.remove-primary-region-denied", "deployments": [], "key": "ds/remove-primary-region-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:RemoveRegion", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_remove_primary_region_denied.py", "service": "ds"} {"check_id": "ds.remove-region-access-denied", "deployments": [], "key": "ds/remove-region-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:RemoveRegion", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_remove_region_access_denied.py", "service": "ds"} {"check_id": "ds.remove-region-primary-denied", "deployments": [], "key": "ds/remove-region-primary-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListTagsForResource", "ds:RemoveRegion", "ds:RemoveTagsFromResource", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_remove_region_primary_denied.py", "service": "ds"} {"check_id": "ds.representation-conditional-forwarder-ip-list-preserved", "deployments": [], "key": "ds/representation-conditional-forwarder-ip-list-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_representation_conditional_forwarder_ip_list_preserved.py", "service": "ds"} {"check_id": "ds.representation-ip-route-cidr-preserved", "deployments": [], "key": "ds/representation-ip-route-cidr-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddIpRoutes", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListIpRoutes", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_representation_ip_route_cidr_preserved.py", "service": "ds"} {"check_id": "ds.representation-schema-extension-description-preserved", "deployments": [], "key": "ds/representation-schema-extension-description-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CancelSchemaExtension", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListSchemaExtensions", "ds:StartSchemaExtension", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_representation_schema_extension_description_preserved.py", "service": "ds"} {"check_id": "ds.representation-tag-unicode-value-round-trip", "deployments": [], "key": "ds/representation-tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListTagsForResource", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_representation_tag_unicode_value_round_trip.py", "service": "ds"} {"check_id": "ds.reset-user-password-enables-the-ds-data-user-it-names", "deployments": [], "key": "ds/reset-user-password-enables-the-ds-data-user-it-names", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ds-data:CreateUser", "ds-data:DeleteUser", "ds-data:DescribeUser", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DescribeSharedDirectories", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:ListTagsForResource", "ds:ResetUserPassword", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_reset_user_password_enables_the_ds_data_user_it_names.py", "service": "ds"} {"check_id": "ds.reset-user-password-nonexistent-user-rejected", "deployments": [], "key": "ds/reset-user-password-nonexistent-user-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DescribeDirectories", "ds:ResetUserPassword", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones"], "path": "behavioral/ds/check_reset_user_password_nonexistent_user_rejected.py", "service": "ds"} {"check_id": "ds.reset-user-password-unknown-user-rejected", "deployments": [], "key": "ds/reset-user-password-unknown-user-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ds:CreateMicrosoftAD", "ds:DescribeDirectories", "ds:ResetUserPassword", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_reset_user_password_unknown_user_rejected.py", "service": "ds"} {"check_id": "ds.schema-extension-cancel-completed-rejected", "deployments": [], "key": "ds/schema-extension-cancel-completed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CancelSchemaExtension", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListSchemaExtensions", "ds:StartSchemaExtension", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_schema_extension_cancel_completed_rejected.py", "service": "ds"} {"check_id": "ds.schema-extension-lifecycle-start-cancel", "deployments": [], "key": "ds/schema-extension-lifecycle-start-cancel", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CancelSchemaExtension", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListSchemaExtensions", "ds:StartSchemaExtension", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_schema_extension_lifecycle_start_cancel.py", "service": "ds"} {"check_id": "ds.schema-extension-start-cancel-lifecycle", "deployments": [], "key": "ds/schema-extension-start-cancel-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CancelSchemaExtension", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListSchemaExtensions", "ds:StartSchemaExtension", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_schema_extension_start_cancel_lifecycle.py", "service": "ds"} {"check_id": "ds.server-side-ca-enrollment-policy-toggle-enforced", "deployments": [], "key": "ds/server-side-ca-enrollment-policy-toggle-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeCAEnrollmentPolicy", "ds:DescribeDirectories", "ds:DisableCAEnrollmentPolicy", "ds:EnableCAEnrollmentPolicy", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_server_side_ca_enrollment_policy_toggle_enforced.py", "service": "ds"} {"check_id": "ds.server-side-log-subscription-duplicate-enforced", "deployments": [], "key": "ds/server-side-log-subscription-duplicate-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateLogSubscription", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeleteLogSubscription", "ds:DescribeDirectories", "ds:ListLogSubscriptions", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_server_side_log_subscription_duplicate_enforced.py", "service": "ds"} {"check_id": "ds.share-directory-already-shared-rejected", "deployments": [], "key": "ds/share-directory-already-shared-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ShareDirectory", "ds:UnshareDirectory", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_share_directory_already_shared_rejected.py", "service": "ds"} {"check_id": "ds.share-directory-with-owner-account-rejected", "deployments": [], "key": "ds/share-directory-with-owner-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListTagsForResource", "ds:ShareDirectory", "ds:UnshareDirectory", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_share_directory_with_owner_account_rejected.py", "service": "ds"} {"check_id": "ds.shared-directory-lifecycle-transitions", "deployments": [], "key": "ds/shared-directory-lifecycle-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ShareDirectory", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ds/check_shared_directory_lifecycle_transitions.py", "service": "ds"} {"check_id": "ds.simple-ad-small-lifecycle-to-active-then-deleted", "deployments": [], "key": "ds/simple-ad-small-lifecycle-to-active-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:GetSnapshotLimits", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups"], "path": "behavioral/ds/check_simple_ad_small_lifecycle_to_active_then_deleted.py", "service": "ds"} {"check_id": "ds.snapshot-create-delete-lifecycle", "deployments": [], "key": "ds/snapshot-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateSnapshot", "ds:DeleteSnapshot", "ds:DescribeDirectories", "ds:DescribeSnapshots", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_snapshot_create_delete_lifecycle.py", "service": "ds"} {"check_id": "ds.state-machine-directory-create-active-delete-404", "deployments": [], "key": "ds/state-machine-directory-create-active-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_state_machine_directory_create_active_delete_404.py", "service": "ds"} {"check_id": "ds.state-machine-directory-lifecycle-create-active-delete", "deployments": [], "key": "ds/state-machine-directory-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_state_machine_directory_lifecycle_create_active_delete.py", "service": "ds"} {"check_id": "ds.state-machine-schema-extension-start-cancel-status", "deployments": [], "key": "ds/state-machine-schema-extension-start-cancel-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CancelSchemaExtension", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListSchemaExtensions", "ds:StartSchemaExtension", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_state_machine_schema_extension_start_cancel_status.py", "service": "ds"} {"check_id": "ds.state-machine-trust-create-verify-delete-404", "deployments": [], "key": "ds/state-machine-trust-create-verify-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteConditionalForwarder", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ds:VerifyTrust", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_state_machine_trust_create_verify_delete_404.py", "service": "ds"} {"check_id": "ds.state-machine-trust-lifecycle", "deployments": [], "key": "ds/state-machine-trust-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_state_machine_trust_lifecycle.py", "service": "ds"} {"check_id": "ds.tag-limit-exceeded-rejected", "deployments": [], "key": "ds/tag-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListTagsForResource", "ds:RemoveTagsFromResource", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute"], "path": "behavioral/ds/check_tag_limit_exceeded_rejected.py", "service": "ds"} {"check_id": "ds.tag-ops-on-absent-directory-rejected", "deployments": [], "key": "ds/tag-ops-on-absent-directory-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:DescribeDirectories", "ds:ListTagsForResource", "ds:RemoveTagsFromResource"], "path": "behavioral/ds/check_tag_ops_on_absent_directory_rejected.py", "service": "ds"} {"check_id": "ds.tag-unicode-value-round-trip", "deployments": [], "key": "ds/tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListTagsForResource", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_tag_unicode_value_round_trip.py", "service": "ds"} {"check_id": "ds.tag-value-unicode-round-trip", "deployments": [], "key": "ds/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ListTagsForResource", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_tag_value_unicode_round_trip.py", "service": "ds"} {"check_id": "ds.tags-unicode-value-round-trip", "deployments": [], "key": "ds/tags-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:AddTagsToResource", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:ListTagsForResource", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_tags_unicode_value_round_trip.py", "service": "ds"} {"check_id": "ds.trust-create-delete-lifecycle", "deployments": [], "key": "ds/trust-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ds:VerifyTrust", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_trust_create_delete_lifecycle.py", "service": "ds"} {"check_id": "ds.trust-create-verify-delete-lifecycle", "deployments": [], "key": "ds/trust-create-verify-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeTrusts", "ds:VerifyTrust", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_trust_create_verify_delete_lifecycle.py", "service": "ds"} {"check_id": "ds.trust-lifecycle-create-verify-delete", "deployments": [], "key": "ds/trust-lifecycle-create-verify-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:CreateTrust", "ds:DeleteDirectory", "ds:DeleteTrust", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:DescribeTrusts", "ds:UnshareDirectory", "ds:VerifyTrust", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_trust_lifecycle_create_verify_delete.py", "service": "ds"} {"check_id": "ds.unshare-directory-not-shared-rejected", "deployments": [], "key": "ds/unshare-directory-not-shared-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeSharedDirectories", "ds:ShareDirectory", "ds:UnshareDirectory", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_unshare_directory_not_shared_rejected.py", "service": "ds"} {"check_id": "ds.update-domain-controllers-below-minimum-rejected", "deployments": [], "key": "ds/update-domain-controllers-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDomainControllers", "ds:UpdateNumberOfDomainControllers", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_update_domain_controllers_below_minimum_rejected.py", "service": "ds"} {"check_id": "ds.update-domain-controllers-limit-enforced", "deployments": [], "key": "ds/update-domain-controllers-limit-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDomainControllers", "ds:UpdateNumberOfDomainControllers", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "service-quotas:ListAWSDefaultServiceQuotas", "service-quotas:ListServiceQuotas"], "path": "behavioral/ds/check_update_domain_controllers_limit_enforced.py", "service": "ds"} {"check_id": "ds.update-number-of-domain-controllers-limit-exceeded-blocked", "deployments": [], "key": "ds/update-number-of-domain-controllers-limit-exceeded-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ds:DescribeDomainControllers", "ds:DescribeSharedDirectories", "ds:UnshareDirectory", "ds:UpdateNumberOfDomainControllers", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ds/check_update_number_of_domain_controllers_limit_exceeded_blocked.py", "service": "ds"} {"check_id": "ds.visibility-directory-unavailable-during-creation-blocked", "deployments": [], "key": "ds/visibility-directory-unavailable-during-creation-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateConditionalForwarder", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeConditionalForwarders", "ds:DescribeDirectories", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ds/check_visibility_directory_unavailable_during_creation_blocked.py", "service": "ds"} {"check_id": "ds__logs.log-subscription-delivers-domain-controller-security-events-and-stops-when-deleted", "deployments": [], "key": "ds__logs/log-subscription-delivers-domain-controller-security-events-and-stops-when-deleted", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["ds-data:CreateUser", "ds-data:DeleteUser", "ds-data:DescribeUser", "ds:CreateLogSubscription", "ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeleteLogSubscription", "ds:DescribeDirectories", "ds:DescribeDirectoryDataAccess", "ds:DisableDirectoryDataAccess", "ds:EnableDirectoryDataAccess", "ds:ListLogSubscriptions", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ds__logs/check_log_subscription_delivers_domain_controller_security_events_and_stops_when_deleted.py", "service": "ds__logs"} {"check_id": "ds__sns.register-event-topic-binds-an-existing-topic-and-never-records-a-missing-one", "deployments": [], "key": "ds__sns/register-event-topic-binds-an-existing-topic-and-never-records-a-missing-one", "labels": ["axis:rejection", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DeregisterEventTopic", "ds:DescribeDirectories", "ds:DescribeEventTopics", "ds:ListTagsForResource", "ds:RegisterEventTopic", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListTopics", "sts:GetCallerIdentity"], "path": "behavioral/ds__sns/check_register_event_topic_binds_an_existing_topic_and_never_records_a_missing_one.py", "service": "ds__sns"} {"check_id": "dsql.cluster-default-encryption-owned-key", "deployments": [], "key": "dsql/cluster-default-encryption-owned-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_cluster_default_encryption_owned_key.py", "service": "dsql"} {"check_id": "dsql.cluster-policy-lifecycle", "deployments": [], "key": "dsql/cluster-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:DeleteClusterPolicy", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_cluster_policy_lifecycle.py", "service": "dsql"} {"check_id": "dsql.concurrent-put-cluster-policy-optimistic-concurrency-race", "deployments": [], "key": "dsql/concurrent-put-cluster-policy-optimistic-concurrency-race", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy", "dsql:UpdateCluster", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_concurrent_put_cluster_policy_optimistic_concurrency_race.py", "service": "dsql"} {"check_id": "dsql.connection-without-tls-or-admin-token-rejected", "deployments": [], "key": "dsql/connection-without-tls-or-admin-token-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_connection_without_tls_or_admin_token_rejected.py", "service": "dsql"} {"check_id": "dsql.create-cluster-client-token-idempotency-and-conflict-rejected", "deployments": [], "key": "dsql/create-cluster-client-token-idempotency-and-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:ListClusters", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_create_cluster_client_token_idempotency_and_conflict_rejected.py", "service": "dsql"} {"check_id": "dsql.create-cluster-creating-to-active-transition", "deployments": [], "key": "dsql/create-cluster-creating-to-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_create_cluster_creating_to_active_transition.py", "service": "dsql"} {"check_id": "dsql.create-cluster-default-deletion-protection-active", "deployments": [], "key": "dsql/create-cluster-default-deletion-protection-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_create_cluster_default_deletion_protection_active.py", "service": "dsql"} {"check_id": "dsql.create-cluster-default-deletion-protection-enabled", "deployments": [], "key": "dsql/create-cluster-default-deletion-protection-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_create_cluster_default_deletion_protection_enabled.py", "service": "dsql"} {"check_id": "dsql.create-cluster-inline-policy-attached", "deployments": [], "key": "dsql/create-cluster-inline-policy-attached", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:DeleteClusterPolicy", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy"], "path": "behavioral/dsql/check_create_cluster_inline_policy_attached.py", "service": "dsql"} {"check_id": "dsql.create-cluster-tags-reflected-in-get-cluster", "deployments": [], "key": "dsql/create-cluster-tags-reflected-in-get-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:ListTagsForResource", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_create_cluster_tags_reflected_in_get_cluster.py", "service": "dsql"} {"check_id": "dsql.create-cluster-token-reuse-conflict-rejected", "deployments": [], "key": "dsql/create-cluster-token-reuse-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:ListClusters", "dsql:ListTagsForResource"], "path": "behavioral/dsql/check_create_cluster_token_reuse_conflict_rejected.py", "service": "dsql"} {"check_id": "dsql.create-cluster-with-initial-tags", "deployments": [], "key": "dsql/create-cluster-with-initial-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:ListTagsForResource"], "path": "behavioral/dsql/check_create_cluster_with_initial_tags.py", "service": "dsql"} {"check_id": "dsql.create-stream-invalid-target-arn-rejected", "deployments": [], "key": "dsql/create-stream-invalid-target-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:CreateStream", "dsql:DeleteCluster", "dsql:DeleteStream", "dsql:GetCluster", "dsql:GetStream", "dsql:ListStreams", "dsql:UpdateCluster", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_create_stream_invalid_target_arn_rejected.py", "service": "dsql"} {"check_id": "dsql.create-stream-lifecycle-to-kinesis", "deployments": [], "key": "dsql/create-stream-lifecycle-to-kinesis", "labels": ["axis:happy-path", "dp:native", "plane:control", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:CreateStream", "dsql:DeleteCluster", "dsql:DeleteClusterPolicy", "dsql:DeleteStream", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:GetStream", "dsql:ListClusters", "dsql:ListStreams", "dsql:ListTagsForResource", "dsql:PutClusterPolicy", "dsql:UpdateCluster", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_create_stream_lifecycle_to_kinesis.py", "service": "dsql"} {"check_id": "dsql.delete-cluster-deleting-to-deleted-transition", "deployments": [], "key": "dsql/delete-cluster-deleting-to-deleted-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_delete_cluster_deleting_to_deleted_transition.py", "service": "dsql"} {"check_id": "dsql.delete-cluster-deletion-protection-conflict-rejected", "deployments": [], "key": "dsql/delete-cluster-deletion-protection-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_delete_cluster_deletion_protection_conflict_rejected.py", "service": "dsql"} {"check_id": "dsql.delete-cluster-lifecycle-to-gone", "deployments": [], "key": "dsql/delete-cluster-lifecycle-to-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_delete_cluster_lifecycle_to_gone.py", "service": "dsql"} {"check_id": "dsql.delete-cluster-policy-removes-policy", "deployments": [], "key": "dsql/delete-cluster-policy-removes-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:DeleteClusterPolicy", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy", "dsql:UpdateCluster", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_delete_cluster_policy_removes_policy.py", "service": "dsql"} {"check_id": "dsql.delete-protected-cluster-rejected", "deployments": [], "key": "dsql/delete-protected-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_delete_protected_cluster_rejected.py", "service": "dsql"} {"check_id": "dsql.dsql-occ-write-conflict-rejects-the-losing-commit", "deployments": [], "key": "dsql/dsql-occ-write-conflict-rejects-the-losing-commit", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_dsql_occ_write_conflict_rejects_the_losing_commit.py", "service": "dsql"} {"check_id": "dsql.expired-auth-token-rejected-open-session-survives", "deployments": [], "key": "dsql/expired-auth-token-rejected-open-session-survives", "labels": ["axis:rejection", "dp:native", "plane:data", "timing:real-time"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_expired_auth_token_rejected_open_session_survives.py", "service": "dsql"} {"check_id": "dsql.get-cluster-invalid-identifier-pattern-rejected", "deployments": [], "key": "dsql/get-cluster-invalid-identifier-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_get_cluster_invalid_identifier_pattern_rejected.py", "service": "dsql"} {"check_id": "dsql.get-cluster-malformed-and-missing-identifier-rejected", "deployments": [], "key": "dsql/get-cluster-malformed-and-missing-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_get_cluster_malformed_and_missing_identifier_rejected.py", "service": "dsql"} {"check_id": "dsql.get-cluster-not-found", "deployments": [], "key": "dsql/get-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_get_cluster_not_found.py", "service": "dsql"} {"check_id": "dsql.get-cluster-reflects-encryption-details-default", "deployments": [], "key": "dsql/get-cluster-reflects-encryption-details-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_get_cluster_reflects_encryption_details_default.py", "service": "dsql"} {"check_id": "dsql.get-vpc-endpoint-service-name-format", "deployments": [], "key": "dsql/get-vpc-endpoint-service-name-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:GetVpcEndpointServiceName"], "path": "behavioral/dsql/check_get_vpc_endpoint_service_name_format.py", "service": "dsql"} {"check_id": "dsql.get-vpc-endpoint-service-name-valid", "deployments": [], "key": "dsql/get-vpc-endpoint-service-name-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetVpcEndpointServiceName"], "path": "behavioral/dsql/check_get_vpc_endpoint_service_name_valid.py", "service": "dsql"} {"check_id": "dsql.iam-mapped-database-role-privileges-denied", "deployments": [], "key": "dsql/iam-mapped-database-role-privileges-denied", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole"], "path": "behavioral/dsql/check_iam_mapped_database_role_privileges_denied.py", "service": "dsql"} {"check_id": "dsql.list-clusters-contains-created-cluster", "deployments": [], "key": "dsql/list-clusters-contains-created-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:ListClusters", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_list_clusters_contains_created_cluster.py", "service": "dsql"} {"check_id": "dsql.list-clusters-max-results-range-rejected", "deployments": [], "key": "dsql/list-clusters-max-results-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:ListClusters"], "path": "behavioral/dsql/check_list_clusters_max_results_range_rejected.py", "service": "dsql"} {"check_id": "dsql.list-clusters-pagination", "deployments": [], "key": "dsql/list-clusters-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:ListClusters"], "path": "behavioral/dsql/check_list_clusters_pagination.py", "service": "dsql"} {"check_id": "dsql.locking-read-conflicts-rejected-at-commit", "deployments": [], "key": "dsql/locking-read-conflicts-rejected-at-commit", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_locking_read_conflicts_rejected_at_commit.py", "service": "dsql"} {"check_id": "dsql.native-sql-round-trip-create-insert-select", "deployments": [], "key": "dsql/native-sql-round-trip-create-insert-select", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_native_sql_round_trip_create_insert_select.py", "service": "dsql"} {"check_id": "dsql.put-cluster-policy-concurrent-version-race", "deployments": [], "key": "dsql/put-cluster-policy-concurrent-version-race", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_put_cluster_policy_concurrent_version_race.py", "service": "dsql"} {"check_id": "dsql.put-cluster-policy-get-round-trip", "deployments": [], "key": "dsql/put-cluster-policy-get-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy", "dsql:UpdateCluster", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_put_cluster_policy_get_round_trip.py", "service": "dsql"} {"check_id": "dsql.put-cluster-policy-lockout-safety-rejected", "deployments": [], "key": "dsql/put-cluster-policy-lockout-safety-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_put_cluster_policy_lockout_safety_rejected.py", "service": "dsql"} {"check_id": "dsql.put-cluster-policy-rejects-stale-version-and-lockout-policy", "deployments": [], "key": "dsql/put-cluster-policy-rejects-stale-version-and-lockout-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy", "dsql:UpdateCluster", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_put_cluster_policy_rejects_stale_version_and_lockout_policy.py", "service": "dsql"} {"check_id": "dsql.put-cluster-policy-version-conflict-rejected", "deployments": [], "key": "dsql/put-cluster-policy-version-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:GetClusterPolicy", "dsql:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/dsql/check_put_cluster_policy_version_conflict_rejected.py", "service": "dsql"} {"check_id": "dsql.sequence-and-identity-cache-rule-rejected", "deployments": [], "key": "dsql/sequence-and-identity-cache-rule-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_sequence_and_identity_cache_rule_rejected.py", "service": "dsql"} {"check_id": "dsql.stream-lifecycle-transitions", "deployments": [], "key": "dsql/stream-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:CreateStream", "dsql:DeleteCluster", "dsql:DeleteStream", "dsql:GetCluster", "dsql:GetStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/dsql/check_stream_lifecycle_transitions.py", "service": "dsql"} {"check_id": "dsql.tag-and-untag-resource-round-trip", "deployments": [], "key": "dsql/tag-and-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:ListTagsForResource", "dsql:TagResource", "dsql:UntagResource", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_tag_and_untag_resource_round_trip.py", "service": "dsql"} {"check_id": "dsql.tag-lifecycle-roundtrip", "deployments": [], "key": "dsql/tag-lifecycle-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:ListTagsForResource", "dsql:TagResource", "dsql:UntagResource"], "path": "behavioral/dsql/check_tag_lifecycle_roundtrip.py", "service": "dsql"} {"check_id": "dsql.tag-resource-quota-exceeded-rejected", "deployments": [], "key": "dsql/tag-resource-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:ListTagsForResource", "dsql:TagResource"], "path": "behavioral/dsql/check_tag_resource_quota_exceeded_rejected.py", "service": "dsql"} {"check_id": "dsql.transaction-constraints-rejected", "deployments": [], "key": "dsql/transaction-constraints-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_transaction_constraints_rejected.py", "service": "dsql"} {"check_id": "dsql.unsupported-postgres-statements-rejected", "deployments": [], "key": "dsql/unsupported-postgres-statements-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster"], "path": "behavioral/dsql/check_unsupported_postgres_statements_rejected.py", "service": "dsql"} {"check_id": "dsql.untag-resource-missing-key-is-idempotent", "deployments": [], "key": "dsql/untag-resource-missing-key-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:ListTagsForResource", "dsql:UntagResource", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_untag_resource_missing_key_is_idempotent.py", "service": "dsql"} {"check_id": "dsql.update-cluster-client-token-reuse-rejected", "deployments": [], "key": "dsql/update-cluster-client-token-reuse-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_update_cluster_client_token_reuse_rejected.py", "service": "dsql"} {"check_id": "dsql.update-cluster-disables-deletion-protection-and-returns-active", "deployments": [], "key": "dsql/update-cluster-disables-deletion-protection-and-returns-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_update_cluster_disables_deletion_protection_and_returns_active.py", "service": "dsql"} {"check_id": "dsql.update-cluster-toggles-deletion-protection", "deployments": [], "key": "dsql/update-cluster-toggles-deletion-protection", "labels": ["axis:happy-path", "plane:control"], "operations": ["dsql:CreateCluster", "dsql:DeleteCluster", "dsql:GetCluster", "dsql:UpdateCluster"], "path": "behavioral/dsql/check_update_cluster_toggles_deletion_protection.py", "service": "dsql"} {"check_id": "dynamodb.32-way-conditional-counter-no-lost-update-with-audit-trail", "deployments": [], "key": "dynamodb/32-way-conditional-counter-no-lost-update-with-audit-trail", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_32_way_conditional_counter_no_lost_update_with_audit_trail.py", "service": "dynamodb"} {"check_id": "dynamodb.50-table-fanout-item-isolation-and-scan-exactness", "deployments": [], "key": "dynamodb/50-table-fanout-item-isolation-and-scan-exactness", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_50_table_fanout_item_isolation_and_scan_exactness.py", "service": "dynamodb"} {"check_id": "dynamodb.absence-condition-holds-with-no-previous-item", "deployments": [], "key": "dynamodb/absence-condition-holds-with-no-previous-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_absence_condition_holds_with_no_previous_item.py", "service": "dynamodb"} {"check_id": "dynamodb.all-projected-attributes-select-serves-include-index-projection", "deployments": [], "key": "dynamodb/all-projected-attributes-select-serves-include-index-projection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_all_projected_attributes_select_serves_include_index_projection.py", "service": "dynamodb"} {"check_id": "dynamodb.atomic-counter-and-set-add-survive-concurrent-updates", "deployments": [], "key": "dynamodb/atomic-counter-and-set-add-survive-concurrent-updates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_atomic_counter_and_set_add_survive_concurrent_updates.py", "service": "dynamodb"} {"check_id": "dynamodb.atomic-counter-on-missing-attribute", "deployments": [], "key": "dynamodb/atomic-counter-on-missing-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_atomic_counter_on_missing_attribute.py", "service": "dynamodb"} {"check_id": "dynamodb.atomic-decrement", "deployments": [], "key": "dynamodb/atomic-decrement", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_atomic_decrement.py", "service": "dynamodb"} {"check_id": "dynamodb.atomic-increment", "deployments": [], "key": "dynamodb/atomic-increment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_atomic_increment.py", "service": "dynamodb"} {"check_id": "dynamodb.attribute-name-length-limit", "deployments": [], "key": "dynamodb/attribute-name-length-limit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_attribute_name_length_limit.py", "service": "dynamodb"} {"check_id": "dynamodb.attribute-names-are-case-sensitive", "deployments": [], "key": "dynamodb/attribute-names-are-case-sensitive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_attribute_names_are_case_sensitive.py", "service": "dynamodb"} {"check_id": "dynamodb.attribute-updates-add-delete-on-absent-item", "deployments": [], "key": "dynamodb/attribute-updates-add-delete-on-absent-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_attribute_updates_add_delete_on_absent_item.py", "service": "dynamodb"} {"check_id": "dynamodb.attribute-updates-add-delete-put-return-values-on-existing-item", "deployments": [], "key": "dynamodb/attribute-updates-add-delete-put-return-values-on-existing-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_attribute_updates_add_delete_put_return_values_on_existing_item.py", "service": "dynamodb"} {"check_id": "dynamodb.attribute-updates-update-item-item-size-409600-byte-boundary", "deployments": [], "key": "dynamodb/attribute-updates-update-item-item-size-409600-byte-boundary", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_attribute_updates_update_item_item_size_409600_byte_boundary.py", "service": "dynamodb"} {"check_id": "dynamodb.attribute-value-union-requires-exactly-one-member", "deployments": [], "key": "dynamodb/attribute-value-union-requires-exactly-one-member", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_attribute_value_union_requires_exactly_one_member.py", "service": "dynamodb"} {"check_id": "dynamodb.attribute-value-union-requires-exactly-one-member-rejected", "deployments": [], "key": "dynamodb/attribute-value-union-requires-exactly-one-member-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_attribute_value_union_requires_exactly_one_member_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.autoscaling-and-kinesis-destination-defaults", "deployments": [], "key": "dynamodb/autoscaling-and-kinesis-destination-defaults", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DescribeTableReplicaAutoScaling"], "path": "behavioral/dynamodb/check_autoscaling_and_kinesis_destination_defaults.py", "service": "dynamodb"} {"check_id": "dynamodb.awsjson-epoch-timestamp-survives-two-deserializers", "deployments": [], "key": "dynamodb/awsjson-epoch-timestamp-survives-two-deserializers", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_awsjson_epoch_timestamp_survives_two_deserializers.py", "service": "dynamodb"} {"check_id": "dynamodb.awsjson-error-code-carrier-is-body-only-rejected", "deployments": [], "key": "dynamodb/awsjson-error-code-carrier-is-body-only-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_awsjson_error_code_carrier_is_body_only_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.backup-create-describe-delete-lifecycle", "deployments": [], "key": "dynamodb/backup-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:ListBackups"], "path": "behavioral/dynamodb/check_backup_create_describe_delete_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.backup-create-describe-list-delete-404", "deployments": [], "key": "dynamodb/backup-create-describe-list-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable", "dynamodb:ListBackups"], "path": "behavioral/dynamodb/check_backup_create_describe_list_delete_404.py", "service": "dynamodb"} {"check_id": "dynamodb.backup-lifecycle-create-describe-delete-404", "deployments": [], "key": "dynamodb/backup-lifecycle-create-describe-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable", "dynamodb:ListBackups"], "path": "behavioral/dynamodb/check_backup_lifecycle_create_describe_delete_404.py", "service": "dynamodb"} {"check_id": "dynamodb.backup-not-found", "deployments": [], "key": "dynamodb/backup-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_backup_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-absent-table-per-slot-resource-not-found", "deployments": [], "key": "dynamodb/batch-execute-statement-absent-table-per-slot-resource-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_absent_table_per_slot_resource_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-condition-and-duplicate-failures-echo-table-name", "deployments": [], "key": "dynamodb/batch-execute-statement-condition-and-duplicate-failures-echo-table-name", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_condition_and_duplicate_failures_echo_table_name.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-condition-failure-returns-item-in-error", "deployments": [], "key": "dynamodb/batch-execute-statement-condition-failure-returns-item-in-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_condition_failure_returns_item_in_error.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-consistent-read-is-billed-per-member", "deployments": [], "key": "dynamodb/batch-execute-statement-consistent-read-is-billed-per-member", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_batch_execute_statement_consistent_read_is_billed_per_member.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-index-qualified-select-rejected-per-slot", "deployments": [], "key": "dynamodb/batch-execute-statement-index-qualified-select-rejected-per-slot", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_index_qualified_select_rejected_per_slot.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-malformed-slot-siblings-execute", "deployments": [], "key": "dynamodb/batch-execute-statement-malformed-slot-siblings-execute", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_malformed_slot_siblings_execute.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-multi-attribute-gsi-select-rejected-per-slot", "deployments": [], "key": "dynamodb/batch-execute-statement-multi-attribute-gsi-select-rejected-per-slot", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_multi_attribute_gsi_select_rejected_per_slot.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-non-key-and-index-key-select-rejected-no-table-name", "deployments": [], "key": "dynamodb/batch-execute-statement-non-key-and-index-key-select-rejected-no-table-name", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_non_key_and_index_key_select_rejected_no_table_name.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-or-sort-key-overlap-rejected-per-slot", "deployments": [], "key": "dynamodb/batch-execute-statement-or-sort-key-overlap-rejected-per-slot", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_or_sort_key_overlap_rejected_per_slot.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-return-consumed-capacity-enum-rejected", "deployments": [], "key": "dynamodb/batch-execute-statement-return-consumed-capacity-enum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_return_consumed_capacity_enum_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-returning-delete-old-and-update-remove-modified-new", "deployments": [], "key": "dynamodb/batch-execute-statement-returning-delete-old-and-update-remove-modified-new", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_returning_delete_old_and_update_remove_modified_new.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-returning-update-vs-delete-rejected", "deployments": [], "key": "dynamodb/batch-execute-statement-returning-update-vs-delete-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_returning_update_vs_delete_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-set-add-no-error-slot", "deployments": [], "key": "dynamodb/batch-execute-statement-set-add-no-error-slot", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_execute_statement_set_add_no_error_slot.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-execute-statement-throttling-enforced", "deployments": [], "key": "dynamodb/batch-execute-statement-throttling-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_batch_execute_statement_throttling_enforced.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-always-reports-unprocessed-keys", "deployments": [], "key": "dynamodb/batch-get-item-always-reports-unprocessed-keys", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_item_always_reports_unprocessed_keys.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-duplicate-keys-rejected", "deployments": [], "key": "dynamodb/batch-get-item-duplicate-keys-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_item_duplicate_keys_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-expression-and-legacy-parameter-rules", "deployments": [], "key": "dynamodb/batch-get-item-expression-and-legacy-parameter-rules", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_item_expression_and_legacy_parameter_rules.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-multi-table-absent-keys-return-empty-list", "deployments": [], "key": "dynamodb/batch-get-item-multi-table-absent-keys-return-empty-list", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_item_multi_table_absent_keys_return_empty_list.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-over-the-hundred-key-cap-rejected", "deployments": [], "key": "dynamodb/batch-get-item-over-the-hundred-key-cap-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_batch_get_item_over_the_hundred_key_cap_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-oversized-echoes-consistent-read-in-unprocessed-keys", "deployments": [], "key": "dynamodb/batch-get-item-oversized-echoes-consistent-read-in-unprocessed-keys", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_item_oversized_echoes_consistent_read_in_unprocessed_keys.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-returns-complete-set", "deployments": [], "key": "dynamodb/batch-get-item-returns-complete-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_item_returns_complete_set.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-rounds-each-item-to-4kb-before-summing", "deployments": [], "key": "dynamodb/batch-get-item-rounds-each-item-to-4kb-before-summing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_batch_get_item_rounds_each_item_to_4kb_before_summing.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-unknown-table-rejected", "deployments": [], "key": "dynamodb/batch-get-item-unknown-table-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_item_unknown_table_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-item-unprocessed-keys-are-in-storage-and-drain-to-the-exact-set", "deployments": [], "key": "dynamodb/batch-get-item-unprocessed-keys-are-in-storage-and-drain-to-the-exact-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_item_unprocessed_keys_are_in_storage_and_drain_to_the_exact_set.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-items", "deployments": [], "key": "dynamodb/batch-get-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_items.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-multi-table", "deployments": [], "key": "dynamodb/batch-get-multi-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_multi_table.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-get-unprocessed-keys", "deployments": [], "key": "dynamodb/batch-get-unprocessed-keys", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_get_unprocessed_keys.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-request-items-key-not-a-table-name-rejected", "deployments": [], "key": "dynamodb/batch-request-items-key-not-a-table-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_batch_request_items_key_not_a_table_name_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-request-shape-defects-rejected", "deployments": [], "key": "dynamodb/batch-request-shape-defects-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_request_shape_defects_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-return-options-invalid-enum-rejected", "deployments": [], "key": "dynamodb/batch-return-options-invalid-enum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_return_options_invalid_enum_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-duplicate-key-rejected", "deployments": [], "key": "dynamodb/batch-write-duplicate-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_write_duplicate_key_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-and-delete-item-index-capacity-arms-follow-item-estate", "deployments": [], "key": "dynamodb/batch-write-item-and-delete-item-index-capacity-arms-follow-item-estate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_write_item_and_delete_item_index_capacity_arms_follow_item_estate.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-delete-of-a-missing-item-still-consumes-a-write-unit", "deployments": [], "key": "dynamodb/batch-write-item-delete-of-a-missing-item-still-consumes-a-write-unit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_batch_write_item_delete_of_a_missing_item_still_consumes_a_write_unit.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-full-batch-accepted", "deployments": [], "key": "dynamodb/batch-write-item-full-batch-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_batch_write_item_full_batch_accepted.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-gsi-key-type-mismatch-rejected", "deployments": [], "key": "dynamodb/batch-write-item-gsi-key-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_batch_write_item_gsi_key_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-key-defects-message-diverges-from-put-item", "deployments": [], "key": "dynamodb/batch-write-item-key-defects-message-diverges-from-put-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_batch_write_item_key_defects_message_diverges_from_put_item.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-mixed-put-delete", "deployments": [], "key": "dynamodb/batch-write-item-mixed-put-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_write_item_mixed_put_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-multi-table-put-and-delete", "deployments": [], "key": "dynamodb/batch-write-item-multi-table-put-and-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_write_item_multi_table_put_and_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-multi-table-unknown-table-rejected", "deployments": [], "key": "dynamodb/batch-write-item-multi-table-unknown-table-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_write_item_multi_table_unknown_table_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-oversized-item-among-valid-batch-rejected-whole", "deployments": [], "key": "dynamodb/batch-write-item-oversized-item-among-valid-batch-rejected-whole", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_write_item_oversized_item_among_valid_batch_rejected_whole.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-put-and-delete-for-the-same-key-rejected", "deployments": [], "key": "dynamodb/batch-write-item-put-and-delete-for-the-same-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_write_item_put_and_delete_for_the_same_key_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-put-request-accepts-32-levels-rejects-33", "deployments": [], "key": "dynamodb/batch-write-item-put-request-accepts-32-levels-rejects-33", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_write_item_put_request_accepts_32_levels_rejects_33.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-rejects-whole-call-for-one-oversized-nested-put", "deployments": [], "key": "dynamodb/batch-write-item-rejects-whole-call-for-one-oversized-nested-put", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_write_item_rejects_whole_call_for_one_oversized_nested_put.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-rounds-each-item-to-1kb-then-sums", "deployments": [], "key": "dynamodb/batch-write-item-rounds-each-item-to-1kb-then-sums", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_batch_write_item_rounds_each_item_to_1kb_then_sums.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-item-throttle-accounting-loses-no-key", "deployments": [], "key": "dynamodb/batch-write-item-throttle-accounting-loses-no-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_batch_write_item_throttle_accounting_loses_no_key.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-over-25-rejected", "deployments": [], "key": "dynamodb/batch-write-over-25-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_batch_write_over_25_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.batch-write-put-25", "deployments": [], "key": "dynamodb/batch-write-put-25", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_batch_write_put_25.py", "service": "dynamodb"} {"check_id": "dynamodb.batchwriteitem-request-over-16mib-rejected-413-before-auth", "deployments": [], "key": "dynamodb/batchwriteitem-request-over-16mib-rejected-413-before-auth", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_batchwriteitem_request_over_16mib_rejected_413_before_auth.py", "service": "dynamodb"} {"check_id": "dynamodb.binary-range-key-item-set-and-nested-path-updates-then-table-refuses-reads", "deployments": [], "key": "dynamodb/binary-range-key-item-set-and-nested-path-updates-then-table-refuses-reads", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_binary_range_key_item_set_and_nested_path_updates_then_table_refuses_reads.py", "service": "dynamodb"} {"check_id": "dynamodb.binary-sort-key-orders-by-unsigned-bytes", "deployments": [], "key": "dynamodb/binary-sort-key-orders-by-unsigned-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_binary_sort_key_orders_by_unsigned_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.bool-and-null-attribute-byte-cost-at-item-size-gate", "deployments": [], "key": "dynamodb/bool-and-null-attribute-byte-cost-at-item-size-gate", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_bool_and_null_attribute_byte_cost_at_item_size_gate.py", "service": "dynamodb"} {"check_id": "dynamodb.capacity-mode-switches-both-ways", "deployments": [], "key": "dynamodb/capacity-mode-switches-both-ways", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_capacity_mode_switches_both_ways.py", "service": "dynamodb"} {"check_id": "dynamodb.cli-create-sdk-read-dynamodb", "deployments": [], "key": "dynamodb/cli-create-sdk-read-dynamodb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_cli_create_sdk_read_dynamodb.py", "service": "dynamodb"} {"check_id": "dynamodb.cli-dynamodb-get-nonexistent-table-error", "deployments": [], "key": "dynamodb/cli-dynamodb-get-nonexistent-table-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_cli_dynamodb_get_nonexistent_table_error.py", "service": "dynamodb"} {"check_id": "dynamodb.cli-dynamodb-put-get-item", "deployments": [], "key": "dynamodb/cli-dynamodb-put-get-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_cli_dynamodb_put_get_item.py", "service": "dynamodb"} {"check_id": "dynamodb.cli-query-nested-extraction", "deployments": [], "key": "dynamodb/cli-query-nested-extraction", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_cli_query_nested_extraction.py", "service": "dynamodb"} {"check_id": "dynamodb.composite-gsi-omits-item-missing-only-the-sort-key", "deployments": [], "key": "dynamodb/composite-gsi-omits-item-missing-only-the-sort-key", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_composite_gsi_omits_item_missing_only_the_sort_key.py", "service": "dynamodb"} {"check_id": "dynamodb.conc-ddb-optimistic-cancelled-token-is-not-burned", "deployments": [], "key": "dynamodb/conc-ddb-optimistic-cancelled-token-is-not-burned", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_conc_ddb_optimistic_cancelled_token_is_not_burned.py", "service": "dynamodb"} {"check_id": "dynamodb.conc-ddb-optimistic-delete-race-losers-see-no-item", "deployments": [], "key": "dynamodb/conc-ddb-optimistic-delete-race-losers-see-no-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_conc_ddb_optimistic_delete_race_losers_see_no_item.py", "service": "dynamodb"} {"check_id": "dynamodb.conc-ddb-optimistic-loser-all-old-is-winner-post-image-rejected", "deployments": [], "key": "dynamodb/conc-ddb-optimistic-loser-all-old-is-winner-post-image-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_conc_ddb_optimistic_loser_all_old_is_winner_post_image_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.conc-ddb-optimistic-put-race-winner-payload-intact", "deployments": [], "key": "dynamodb/conc-ddb-optimistic-put-race-winner-payload-intact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_conc_ddb_optimistic_put_race_winner_payload_intact.py", "service": "dynamodb"} {"check_id": "dynamodb.conc-ddb-optimistic-token-fingerprint-covers-return-options-rejected", "deployments": [], "key": "dynamodb/conc-ddb-optimistic-token-fingerprint-covers-return-options-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_conc_ddb_optimistic_token_fingerprint_covers_return_options_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.conc-ddb-optimistic-transact-check-and-update-same-key-rejected", "deployments": [], "key": "dynamodb/conc-ddb-optimistic-transact-check-and-update-same-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_conc_ddb_optimistic_transact_check_and_update_same_key_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.conc-ddb-optimistic-transact-race-cancelled-leaves-no-partial-write", "deployments": [], "key": "dynamodb/conc-ddb-optimistic-transact-race-cancelled-leaves-no-partial-write", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_conc_ddb_optimistic_transact_race_cancelled_leaves_no_partial_write.py", "service": "dynamodb"} {"check_id": "dynamodb.conc-ddb-optimistic-version-race-one-winner-per-round", "deployments": [], "key": "dynamodb/conc-ddb-optimistic-version-race-one-winner-per-round", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_conc_ddb_optimistic_version_race_one_winner_per_round.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-create-backup-duplicate-name-accepted", "deployments": [], "key": "dynamodb/concurrent-create-backup-duplicate-name-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_concurrent_create_backup_duplicate_name_accepted.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-create-table-single-winner", "deployments": [], "key": "dynamodb/concurrent-create-table-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_concurrent_create_table_single_winner.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-delete-backup-single-winner", "deployments": [], "key": "dynamodb/concurrent-delete-backup-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_concurrent_delete_backup_single_winner.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-disjoint-nested-map-sets-all-land", "deployments": [], "key": "dynamodb/concurrent-disjoint-nested-map-sets-all-land", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_concurrent_disjoint_nested_map_sets_all_land.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-global-table-replica-update-consistency", "deployments": [], "key": "dynamodb/concurrent-global-table-replica-update-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_concurrent_global_table_replica_update_consistency.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-put-item-last-writer-wins-without-condition", "deployments": [], "key": "dynamodb/concurrent-put-item-last-writer-wins-without-condition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_concurrent_put_item_last_writer_wins_without_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-table-replica-auto-scaling-race-no-corruption", "deployments": [], "key": "dynamodb/concurrent-table-replica-auto-scaling-race-no-corruption", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:UpdateTable", "dynamodb:UpdateTableReplicaAutoScaling", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/dynamodb/check_concurrent_table_replica_auto_scaling_race_no_corruption.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-tag-resource-no-lost-tags", "deployments": [], "key": "dynamodb/concurrent-tag-resource-no-lost-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTagsOfResource", "dynamodb:TagResource"], "path": "behavioral/dynamodb/check_concurrent_tag_resource_no_lost_tags.py", "service": "dynamodb"} {"check_id": "dynamodb.concurrent-unconditional-list-append-loses-no-element", "deployments": [], "key": "dynamodb/concurrent-unconditional-list-append-loses-no-element", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_concurrent_unconditional_list_append_loses_no_element.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-and-or-not", "deployments": [], "key": "dynamodb/condition-and-or-not", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_condition_and_or_not.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-attribute-exists", "deployments": [], "key": "dynamodb/condition-attribute-exists", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_condition_attribute_exists.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-attribute-not-exists", "deployments": [], "key": "dynamodb/condition-attribute-not-exists", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_condition_attribute_not_exists.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-attribute-type-gates-the-write", "deployments": [], "key": "dynamodb/condition-attribute-type-gates-the-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_condition_attribute_type_gates_the_write.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-comparison-operators", "deployments": [], "key": "dynamodb/condition-comparison-operators", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_condition_comparison_operators.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-contains-set-element-gates-update-and-delete", "deployments": [], "key": "dynamodb/condition-contains-set-element-gates-update-and-delete", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_condition_contains_set_element_gates_update_and_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-expression-contains-same-path-and-between-reversed-rejected", "deployments": [], "key": "dynamodb/condition-expression-contains-same-path-and-between-reversed-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_condition_expression_contains_same_path_and_between_reversed_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-nested-document-paths-that-hold-apply-the-write", "deployments": [], "key": "dynamodb/condition-nested-document-paths-that-hold-apply-the-write", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_condition_nested_document_paths_that_hold_apply_the_write.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-nested-path-type-mismatch-fails-the-condition", "deployments": [], "key": "dynamodb/condition-nested-path-type-mismatch-fails-the-condition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_condition_nested_path_type_mismatch_fails_the_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-non-orderable-path-and-size-of-unsupported-type-evaluate-false", "deployments": [], "key": "dynamodb/condition-non-orderable-path-and-size-of-unsupported-type-evaluate-false", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_condition_non_orderable_path_and_size_of_unsupported_type_evaluate_false.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-on-missing-item", "deployments": [], "key": "dynamodb/condition-on-missing-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_condition_on_missing_item.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-ordering-comparison-non-orderable-literal-rejected", "deployments": [], "key": "dynamodb/condition-ordering-comparison-non-orderable-literal-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_condition_ordering_comparison_non_orderable_literal_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.condition-size-counts-string-length-not-bytes", "deployments": [], "key": "dynamodb/condition-size-counts-string-length-not-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_condition_size_counts_string_length_not_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.conditional-check-failed-requests-metric-counts-only-the-failures", "deployments": [], "key": "dynamodb/conditional-check-failed-requests-metric-counts-only-the-failures", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_conditional_check_failed_requests_metric_counts_only_the_failures.py", "service": "dynamodb"} {"check_id": "dynamodb.conditionaloperator-enum-error-precedes-nesting-depth-in-legacy-expected", "deployments": [], "key": "dynamodb/conditionaloperator-enum-error-precedes-nesting-depth-in-legacy-expected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_conditionaloperator_enum_error_precedes_nesting_depth_in_legacy_expected.py", "service": "dynamodb"} {"check_id": "dynamodb.consumed-capacity-binary-attribute-counts-raw-bytes-not-base64", "deployments": [], "key": "dynamodb/consumed-capacity-binary-attribute-counts-raw-bytes-not-base64", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_consumed_capacity_binary_attribute_counts_raw_bytes_not_base64.py", "service": "dynamodb"} {"check_id": "dynamodb.consumed-capacity-byte-exact-4096-boundary-with-mixed-type-item", "deployments": [], "key": "dynamodb/consumed-capacity-byte-exact-4096-boundary-with-mixed-type-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_consumed_capacity_byte_exact_4096_boundary_with_mixed_type_item.py", "service": "dynamodb"} {"check_id": "dynamodb.consumed-capacity-halves-for-eventually-consistent-read", "deployments": [], "key": "dynamodb/consumed-capacity-halves-for-eventually-consistent-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_consumed_capacity_halves_for_eventually_consistent_read.py", "service": "dynamodb"} {"check_id": "dynamodb.consumed-capacity-indexes-breakdown", "deployments": [], "key": "dynamodb/consumed-capacity-indexes-breakdown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_consumed_capacity_indexes_breakdown.py", "service": "dynamodb"} {"check_id": "dynamodb.consumed-capacity-indexes-breakdown-sums-base-plus-lsi-writes", "deployments": [], "key": "dynamodb/consumed-capacity-indexes-breakdown-sums-base-plus-lsi-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_consumed_capacity_indexes_breakdown_sums_base_plus_lsi_writes.py", "service": "dynamodb"} {"check_id": "dynamodb.consumed-capacity-indexes-breakdown-sums-to-total-over-lsi-fanout", "deployments": [], "key": "dynamodb/consumed-capacity-indexes-breakdown-sums-to-total-over-lsi-fanout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_consumed_capacity_indexes_breakdown_sums_to_total_over_lsi_fanout.py", "service": "dynamodb"} {"check_id": "dynamodb.consumed-capacity-rounds-reads-to-4kb-boundaries", "deployments": [], "key": "dynamodb/consumed-capacity-rounds-reads-to-4kb-boundaries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_consumed_capacity_rounds_reads_to_4kb_boundaries.py", "service": "dynamodb"} {"check_id": "dynamodb.contributor-insights-disable-while-enabling-rejected", "deployments": [], "key": "dynamodb/contributor-insights-disable-while-enabling-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable", "dynamodb:UpdateContributorInsights"], "path": "behavioral/dynamodb/check_contributor_insights_disable_while_enabling_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.contributor-insights-enable-describe-list", "deployments": [], "key": "dynamodb/contributor-insights-enable-describe-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable", "dynamodb:ListContributorInsights", "dynamodb:UpdateContributorInsights"], "path": "behavioral/dynamodb/check_contributor_insights_enable_describe_list.py", "service": "dynamodb"} {"check_id": "dynamodb.contributor-insights-lifecycle", "deployments": [], "key": "dynamodb/contributor-insights-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable", "dynamodb:ListContributorInsights", "dynamodb:UpdateContributorInsights"], "path": "behavioral/dynamodb/check_contributor_insights_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.contributor-insights-not-found", "deployments": [], "key": "dynamodb/contributor-insights-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable", "dynamodb:ListContributorInsights", "dynamodb:UpdateContributorInsights"], "path": "behavioral/dynamodb/check_contributor_insights_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.create-backup-nonexistent-table", "deployments": [], "key": "dynamodb/create-backup-nonexistent-table", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:ListBackups"], "path": "behavioral/dynamodb/check_create_backup_nonexistent_table.py", "service": "dynamodb"} {"check_id": "dynamodb.create-describe-delete", "deployments": [], "key": "dynamodb/create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_create_describe_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.create-global-table-already-exists-rejected", "deployments": [], "key": "dynamodb/create-global-table-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateGlobalTable", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_create_global_table_already_exists_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-exceeds-limit-rejected", "deployments": [], "key": "dynamodb/create-table-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_create_table_exceeds_limit_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-gsi-key-not-in-attribute-definitions-rejected", "deployments": [], "key": "dynamodb/create-table-gsi-key-not-in-attribute-definitions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_gsi_key_not_in_attribute_definitions_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-gsi-key-schema-hash-after-range-rejected", "deployments": [], "key": "dynamodb/create-table-gsi-key-schema-hash-after-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_gsi_key_schema_hash_after_range_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-invalid-key-schema-fails", "deployments": [], "key": "dynamodb/create-table-invalid-key-schema-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables"], "path": "behavioral/dynamodb/check_create_table_invalid_key_schema_fails.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-keys-only-gsi-with-non-key-attributes-rejected", "deployments": [], "key": "dynamodb/create-table-keys-only-gsi-with-non-key-attributes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_keys_only_gsi_with_non_key_attributes_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-lsi-hash-key-differs-from-table-hash-key-rejected", "deployments": [], "key": "dynamodb/create-table-lsi-hash-key-differs-from-table-hash-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_lsi_hash_key_differs_from_table_hash_key_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-lsi-sort-key-not-in-attribute-definitions-rejected", "deployments": [], "key": "dynamodb/create-table-lsi-sort-key-not-in-attribute-definitions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_lsi_sort_key_not_in_attribute_definitions_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-lsi-without-range-key", "deployments": [], "key": "dynamodb/create-table-lsi-without-range-key", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_lsi_without_range_key.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-on-demand-throughput-below-minimum-rejected", "deployments": [], "key": "dynamodb/create-table-on-demand-throughput-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_on_demand_throughput_below_minimum_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-provisioned-without-throughput", "deployments": [], "key": "dynamodb/create-table-provisioned-without-throughput", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_provisioned_without_throughput.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-rejects-invalid-table-class-value", "deployments": [], "key": "dynamodb/create-table-rejects-invalid-table-class-value", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_rejects_invalid_table_class_value.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-rejects-malformed-requests", "deployments": [], "key": "dynamodb/create-table-rejects-malformed-requests", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_rejects_malformed_requests.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-sse-enabled-without-kms-key-uses-aws-managed-key", "deployments": [], "key": "dynamodb/create-table-sse-enabled-without-kms-key-uses-aws-managed-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "kms:DescribeKey", "kms:ListAliases"], "path": "behavioral/dynamodb/check_create_table_sse_enabled_without_kms_key_uses_aws_managed_key.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-table-class-reported-at-create-and-describe", "deployments": [], "key": "dynamodb/create-table-table-class-reported-at-create-and-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_table_class_reported_at_create_and_describe.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-unused-attribute-definitions", "deployments": [], "key": "dynamodb/create-table-unused-attribute-definitions", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_unused_attribute_definitions.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-vector-index-include-projection-requires-non-key-attributes-rejected", "deployments": [], "key": "dynamodb/create-table-vector-index-include-projection-requires-non-key-attributes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_vector_index_include_projection_requires_non_key_attributes_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-vector-index-two-hash-search-schema-elements-rejected", "deployments": [], "key": "dynamodb/create-table-vector-index-two-hash-search-schema-elements-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_vector_index_two_hash_search_schema_elements_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-vector-index-validation-rejected", "deployments": [], "key": "dynamodb/create-table-vector-index-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_vector_index_validation_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-with-gsi", "deployments": [], "key": "dynamodb/create-table-with-gsi", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_with_gsi.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-with-lsi", "deployments": [], "key": "dynamodb/create-table-with-lsi", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_with_lsi.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-with-six-local-secondary-indexes-rejected", "deployments": [], "key": "dynamodb/create-table-with-six-local-secondary-indexes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_create_table_with_six_local_secondary_indexes_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.create-table-with-vector-index-is-described-back", "deployments": [], "key": "dynamodb/create-table-with-vector-index-is-described-back", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_create_table_with_vector_index_is_described_back.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-eventual-and-strong-read-are-two-different-reads", "deployments": [], "key": "dynamodb/ddb-eventual-and-strong-read-are-two-different-reads", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_ddb_eventual_and_strong_read_are_two_different_reads.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-execute-statement-and-transaction-against-absent-table", "deployments": [], "key": "dynamodb/ddb-execute-statement-and-transaction-against-absent-table", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:ExecuteTransaction", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_ddb_execute_statement_and_transaction_against_absent_table.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-frc-cross-type-string-operand-eq-empty-ne-everything", "deployments": [], "key": "dynamodb/ddb-frc-cross-type-string-operand-eq-empty-ne-everything", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_ddb_frc_cross_type_string_operand_eq_empty_ne_everything.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-ltr-fresh-table-omits-increase-and-decrease-timestamps", "deployments": [], "key": "dynamodb/ddb-ltr-fresh-table-omits-increase-and-decrease-timestamps", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_ddb_ltr_fresh_table_omits_increase_and_decrease_timestamps.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-numeric-sort-key-magnitude-ceiling-rejected", "deployments": [], "key": "dynamodb/ddb-numeric-sort-key-magnitude-ceiling-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_ddb_numeric_sort_key_magnitude_ceiling_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-numeric-sort-key-query-orders-at-magnitude-extremes", "deployments": [], "key": "dynamodb/ddb-numeric-sort-key-query-orders-at-magnitude-extremes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_ddb_numeric_sort_key_query_orders_at_magnitude_extremes.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-partiql-is-type-name-filters-bool-and-string-attributes", "deployments": [], "key": "dynamodb/ddb-partiql-is-type-name-filters-bool-and-string-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_ddb_partiql_is_type_name_filters_bool_and_string_attributes.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-partiql-is-type-name-rejects-update-leaves-item-unchanged", "deployments": [], "key": "dynamodb/ddb-partiql-is-type-name-rejects-update-leaves-item-unchanged", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_ddb_partiql_is_type_name_rejects_update_leaves_item_unchanged.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-query-filter-size-counts-bytes-elements-or-keys-by-attribute-type", "deployments": [], "key": "dynamodb/ddb-query-filter-size-counts-bytes-elements-or-keys-by-attribute-type", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_ddb_query_filter_size_counts_bytes_elements_or_keys_by_attribute_type.py", "service": "dynamodb"} {"check_id": "dynamodb.ddb-query-size-function-rejected-in-key-condition", "deployments": [], "key": "dynamodb/ddb-query-size-function-rejected-in-key-condition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_ddb_query_size_function_rejected_in_key_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbctl-table-refuses-changes-while-creating-and-deleting", "deployments": [], "key": "dynamodb/ddbctl-table-refuses-changes-while-creating-and-deleting", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateContinuousBackups", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_ddbctl_table_refuses_changes_while_creating_and_deleting.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbglobal-legacy-2017-global-table-apis-rejected", "deployments": [], "key": "dynamodb/ddbglobal-legacy-2017-global-table-apis-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateGlobalTable", "dynamodb:DescribeGlobalTable", "dynamodb:GetItem", "dynamodb:ListGlobalTables", "dynamodb:UpdateGlobalTable"], "path": "behavioral/dynamodb/check_ddbglobal_legacy_2017_global_table_apis_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbglobal-replica-delete-for-absent-replica-rejected", "deployments": [], "key": "dynamodb/ddbglobal-replica-delete-for-absent-replica-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_ddbglobal_replica_delete_for_absent_replica_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbglobal-replica-updates-local-region-rejected", "deployments": [], "key": "dynamodb/ddbglobal-replica-updates-local-region-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_ddbglobal_replica_updates_local_region_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbgsi-base-item-delete-removes-the-index-entry-while-a-sibling-survives", "deployments": [], "key": "dynamodb/ddbgsi-base-item-delete-removes-the-index-entry-while-a-sibling-survives", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_ddbgsi_base_item_delete_removes_the_index_entry_while_a_sibling_survives.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbgsi-index-entries-do-not-cross-into-a-derived-second-region", "deployments": [], "key": "dynamodb/ddbgsi-index-entries-do-not-cross-into-a-derived-second-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_ddbgsi_index_entries_do_not_cross_into_a_derived_second_region.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbgsi-index-gains-no-entry-when-a-conditional-write-is-rejected", "deployments": [], "key": "dynamodb/ddbgsi-index-gains-no-entry-when-a-conditional-write-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_ddbgsi_index_gains_no_entry_when_a_conditional_write_is_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbgsi-projected-value-converges-in-the-index-after-an-update", "deployments": [], "key": "dynamodb/ddbgsi-projected-value-converges-in-the-index-after-an-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_ddbgsi_projected_value_converges_in_the_index_after_an_update.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbgsi-query-filter-on-a-non-projected-attribute-rejected-while-scan-matches-nothing", "deployments": [], "key": "dynamodb/ddbgsi-query-filter-on-a-non-projected-attribute-rejected-while-scan-matches-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_ddbgsi_query_filter_on_a_non_projected_attribute_rejected_while_scan_matches_nothing.py", "service": "dynamodb"} {"check_id": "dynamodb.ddbgsi-scan-consistent-read-on-an-index-rejected-while-base-scan-succeeds", "deployments": [], "key": "dynamodb/ddbgsi-scan-consistent-read-on-an-index-rejected-while-base-scan-succeeds", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_ddbgsi_scan_consistent_read_on_an_index_rejected_while_base_scan_succeeds.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-condition-on-non-schema-attribute-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-condition-on-non-schema-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_condition_on_non_schema_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-consumed-capacity-reports-vector-bytes", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-consumed-capacity-reports-vector-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_consumed_capacity_reports_vector_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-delete-unknown-vector-index-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-delete-unknown-vector-index-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_delete_unknown_vector_index_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-distance-functions-invert-topk-selection", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-distance-functions-invert-topk-selection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_distance_functions_invert_topk_selection.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-hash-schema-search-without-condition-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-hash-schema-search-without-condition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_hash_schema_search_without_condition_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-include-projection-hides-unprojected-attributes", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-include-projection-hides-unprojected-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_include_projection_hides_unprojected_attributes.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-index-tracks-update-and-delete-item", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-index-tracks-update-and-delete-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:SearchVectors", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_index_tracks_update_and_delete_item.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-inline-filter-range-comparator-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-inline-filter-range-comparator-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_inline_filter_range_comparator_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-search-condition-filters-below-topk-with-projection", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-search-condition-filters-below-topk-with-projection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_search_condition_filters_below_topk_with_projection.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-search-vector-dimension-mismatch-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-search-vector-dimension-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_search_vector_dimension_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-topk-above-100-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-topk-above-100-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_topk_above_100_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-two-index-updates-in-one-call-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-two-index-updates-in-one-call-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_two_index_updates_in_one_call_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-unknown-index-name-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-unknown-index-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_unknown_index_name_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-1-ddbvec-update-table-backfills-preexisting-items", "deployments": [], "key": "dynamodb/deep-dynamodb-1-ddbvec-update-table-backfills-preexisting-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:SearchVectors", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_deep_dynamodb_1_ddbvec_update_table_backfills_preexisting_items.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-describe-item-count-lags-scan", "deployments": [], "key": "dynamodb/deep-dynamodb-2-describe-item-count-lags-scan", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_describe_item_count_lags_scan.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-list-append-operand-order", "deployments": [], "key": "dynamodb/deep-dynamodb-2-list-append-operand-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_list_append_operand_order.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-list-index-clauses-read-one-pre-image", "deployments": [], "key": "dynamodb/deep-dynamodb-2-list-index-clauses-read-one-pre-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_list_index_clauses_read_one_pre_image.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-list-index-on-non-list-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-2-list-index-on-non-list-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_list_index_on_non_list_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-overlapping-document-paths-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-2-overlapping-document-paths-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_overlapping_document_paths_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-remove-list-index-out-of-bounds-is-noop", "deployments": [], "key": "dynamodb/deep-dynamodb-2-remove-list-index-out-of-bounds-is-noop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_remove_list_index_out_of_bounds_is_noop.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-remove-list-indices-resolve-against-original", "deployments": [], "key": "dynamodb/deep-dynamodb-2-remove-list-indices-resolve-against-original", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_remove_list_indices_resolve_against_original.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-same-list-index-in-two-clauses-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-2-same-list-index-in-two-clauses-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_same_list_index_in_two_clauses_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-set-list-index-out-of-bounds-appends", "deployments": [], "key": "dynamodb/deep-dynamodb-2-set-list-index-out-of-bounds-appends", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_set_list_index_out_of_bounds_appends.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-set-list-index-replaces-in-place", "deployments": [], "key": "dynamodb/deep-dynamodb-2-set-list-index-replaces-in-place", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_set_list_index_replaces_in_place.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-set-nested-path-on-missing-parent-rejected", "deployments": [], "key": "dynamodb/deep-dynamodb-2-set-nested-path-on-missing-parent-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_set_nested_path_on_missing_parent_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-shrinking-update-charges-larger-image", "deployments": [], "key": "dynamodb/deep-dynamodb-2-shrinking-update-charges-larger-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_shrinking_update_charges_larger_image.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-dynamodb-2-update-clauses-read-one-pre-image", "deployments": [], "key": "dynamodb/deep-dynamodb-2-update-clauses-read-one-pre-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_dynamodb_2_update_clauses_read_one_pre_image.py", "service": "dynamodb"} {"check_id": "dynamodb.deep-expression-attribute-value-in-condition-and-set-rejected-before-conditional-check", "deployments": [], "key": "dynamodb/deep-expression-attribute-value-in-condition-and-set-rejected-before-conditional-check", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_deep_expression_attribute_value_in_condition_and_set_rejected_before_conditional_check.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-backup-in-use-during-restore-rejected", "deployments": [], "key": "dynamodb/delete-backup-in-use-during-restore-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:RestoreTableFromBackup", "dynamodb:TagResource"], "path": "behavioral/dynamodb/check_delete_backup_in_use_during_restore_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-backup-not-found-rejected", "deployments": [], "key": "dynamodb/delete-backup-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_delete_backup_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item", "deployments": [], "key": "dynamodb/delete-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_delete_item.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-condition-between-bounds-validated", "deployments": [], "key": "dynamodb/delete-item-condition-between-bounds-validated", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_delete_item_condition_between_bounds_validated.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-condition-expression-attribute-not-exists", "deployments": [], "key": "dynamodb/delete-item-condition-expression-attribute-not-exists", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_delete_item_condition_expression_attribute_not_exists.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-condition-expression-invalid-attribute-name-rejected", "deployments": [], "key": "dynamodb/delete-item-condition-expression-invalid-attribute-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_delete_item_condition_expression_invalid_attribute_name_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-expected-and-conditionexpression-mutually-exclusive-rejected", "deployments": [], "key": "dynamodb/delete-item-expected-and-conditionexpression-mutually-exclusive-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_delete_item_expected_and_conditionexpression_mutually_exclusive_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-idempotent-missing-key", "deployments": [], "key": "dynamodb/delete-item-idempotent-missing-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_delete_item_idempotent_missing_key.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-key-duplicate-set-member-byte-order-rejected", "deployments": [], "key": "dynamodb/delete-item-key-duplicate-set-member-byte-order-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_delete_item_key_duplicate_set_member_byte_order_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-nonexistent-key-is-noop", "deployments": [], "key": "dynamodb/delete-item-nonexistent-key-is-noop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_delete_item_nonexistent_key_is_noop.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-on-a-missing-item-still-consumes-a-write-unit", "deployments": [], "key": "dynamodb/delete-item-on-a-missing-item-still-consumes-a-write-unit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_delete_item_on_a_missing_item_still_consumes_a_write_unit.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-item-write-capacity-billed-on-deleted-item-size", "deployments": [], "key": "dynamodb/delete-item-write-capacity-billed-on-deleted-item-size", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_delete_item_write_capacity_billed_on_deleted_item_size.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-resource-policy-idempotent", "deployments": [], "key": "dynamodb/delete-resource-policy-idempotent", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy"], "path": "behavioral/dynamodb/check_delete_resource_policy_idempotent.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-resource-policy-nonexistent-idempotent-or-rejected", "deployments": [], "key": "dynamodb/delete-resource-policy-nonexistent-idempotent-or-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_delete_resource_policy_nonexistent_idempotent_or_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-set-operand-type-mismatch-rejected", "deployments": [], "key": "dynamodb/delete-set-operand-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_delete_set_operand_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-table-source-region-within-24h-of-replica-add-rejected", "deployments": [], "key": "dynamodb/delete-table-source-region-within-24h-of-replica-add-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_delete_table_source_region_within_24h_of_replica_add_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-table-twice-rejected-not-silently-succeeds", "deployments": [], "key": "dynamodb/delete-table-twice-rejected-not-silently-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_delete_table_twice_rejected_not_silently_succeeds.py", "service": "dynamodb"} {"check_id": "dynamodb.delete-table-with-active-gsi-reports-deleting", "deployments": [], "key": "dynamodb/delete-table-with-active-gsi-reports-deleting", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_delete_table_with_active_gsi_reports_deleting.py", "service": "dynamodb"} {"check_id": "dynamodb.deletion-protection-blocks-delete", "deployments": [], "key": "dynamodb/deletion-protection-blocks-delete", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_deletion_protection_blocks_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.deletion-protection-permits-item-deletes-and-survives-a-stream-update", "deployments": [], "key": "dynamodb/deletion-protection-permits-item-deletes-and-survives-a-stream-update", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_deletion_protection_permits_item_deletes_and_survives_a_stream_update.py", "service": "dynamodb"} {"check_id": "dynamodb.deletion-protection-turned-on-by-update-table-refuses-delete", "deployments": [], "key": "dynamodb/deletion-protection-turned-on-by-update-table-refuses-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_deletion_protection_turned_on_by_update_table_refuses_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.deploy-cfn-gsi-queryable-after-deploy", "deployments": [], "key": "dynamodb/deploy-cfn-gsi-queryable-after-deploy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_deploy_cfn_gsi_queryable_after_deploy.py", "service": "dynamodb"} {"check_id": "dynamodb.deploy-cfn-stream-arn-captures-writes", "deployments": [], "key": "dynamodb/deploy-cfn-stream-arn-captures-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodb/check_deploy_cfn_stream_arn_captures_writes.py", "service": "dynamodb"} {"check_id": "dynamodb.deploy-cfn-table-duplicate-name-create-rejected", "deployments": [], "key": "dynamodb/deploy-cfn-table-duplicate-name-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_deploy_cfn_table_duplicate_name_create_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.deploy-cfn-table-put-get-roundtrip", "deployments": [], "key": "dynamodb/deploy-cfn-table-put-get-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_deploy_cfn_table_put_get_roundtrip.py", "service": "dynamodb"} {"check_id": "dynamodb.deploy-cfn-ttl-attribute-expires-item", "deployments": [], "key": "dynamodb/deploy-cfn-ttl-attribute-expires-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTimeToLive", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_deploy_cfn_ttl_attribute_expires_item.py", "service": "dynamodb"} {"check_id": "dynamodb.deploy-dynamodb-1-cfn-global-table-bidirectional-then-replica-removal-rejected", "deployments": [], "key": "dynamodb/deploy-dynamodb-1-cfn-global-table-bidirectional-then-replica-removal-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_deploy_dynamodb_1_cfn_global_table_bidirectional_then_replica_removal_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-backup-not-found-rejected", "deployments": [], "key": "dynamodb/describe-backup-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:DescribeBackup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_describe_backup_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-contributor-insights-not-found-rejected", "deployments": [], "key": "dynamodb/describe-contributor-insights-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_describe_contributor_insights_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-contributor-insights-resource-not-found-rejected", "deployments": [], "key": "dynamodb/describe-contributor-insights-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_describe_contributor_insights_resource_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-endpoints", "deployments": [], "key": "dynamodb/describe-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeEndpoints", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_describe_endpoints.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-endpoints-returns-server-endpoints", "deployments": [], "key": "dynamodb/describe-endpoints-returns-server-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:DescribeEndpoints"], "path": "behavioral/dynamodb/check_describe_endpoints_returns_server_endpoints.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-global-table-not-found-rejected", "deployments": [], "key": "dynamodb/describe-global-table-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeGlobalTable", "dynamodb:DescribeTable", "dynamodb:ListGlobalTables", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_describe_global_table_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-import-not-found-rejected", "deployments": [], "key": "dynamodb/describe-import-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeImport", "dynamodb:ImportTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/dynamodb/check_describe_import_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-kinesis-streaming-destination-resource-not-found-rejected", "deployments": [], "key": "dynamodb/describe-kinesis-streaming-destination-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_describe_kinesis_streaming_destination_resource_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-limits", "deployments": [], "key": "dynamodb/describe-limits", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeLimits", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_describe_limits.py", "service": "dynamodb"} {"check_id": "dynamodb.describe-limits-returns-account-capacity", "deployments": [], "key": "dynamodb/describe-limits-returns-account-capacity", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:DescribeLimits"], "path": "behavioral/dynamodb/check_describe_limits_returns_account_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.describetable-authorization-header-and-x-amz-algorithm-query-conflict-rejected", "deployments": [], "key": "dynamodb/describetable-authorization-header-and-x-amz-algorithm-query-conflict-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables"], "path": "behavioral/dynamodb/check_describetable_authorization_header_and_x_amz_algorithm_query_conflict_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.disable-kinesis-never-enabled", "deployments": [], "key": "dynamodb/disable-kinesis-never-enabled", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/dynamodb/check_disable_kinesis_never_enabled.py", "service": "dynamodb"} {"check_id": "dynamodb.disable-kinesis-streaming-destination-not-enabled-rejected", "deployments": [], "key": "dynamodb/disable-kinesis-streaming-destination-not-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/dynamodb/check_disable_kinesis_streaming_destination_not_enabled_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.disable-kinesis-streaming-destination-omits-configuration", "deployments": [], "key": "dynamodb/disable-kinesis-streaming-destination-omits-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/dynamodb/check_disable_kinesis_streaming_destination_omits_configuration.py", "service": "dynamodb"} {"check_id": "dynamodb.disabling-a-stream-that-does-not-exist-rejected", "deployments": [], "key": "dynamodb/disabling-a-stream-that-does-not-exist-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_disabling_a_stream_that_does_not_exist_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.document-nesting-depth-32-levels-accepted-33-rejected", "deployments": [], "key": "dynamodb/document-nesting-depth-32-levels-accepted-33-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_document_nesting_depth_32_levels_accepted_33_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.duplicate-set-members-in-condition-key-and-transact-rejected", "deployments": [], "key": "dynamodb/duplicate-set-members-in-condition-key-and-transact-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:TransactGetItems", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_duplicate_set_members_in_condition_key_and_transact_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.e2e-event-sourcing", "deployments": [], "key": "dynamodb/e2e-event-sourcing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_e2e_event_sourcing.py", "service": "dynamodb"} {"check_id": "dynamodb.e2e-optimistic-locking", "deployments": [], "key": "dynamodb/e2e-optimistic-locking", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_e2e_optimistic_locking.py", "service": "dynamodb"} {"check_id": "dynamodb.e2e-order-fulfillment-concurrent-stock-contention", "deployments": [], "key": "dynamodb/e2e-order-fulfillment-concurrent-stock-contention", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_e2e_order_fulfillment_concurrent_stock_contention.py", "service": "dynamodb"} {"check_id": "dynamodb.e2e-order-fulfillment-conditional-workflow", "deployments": [], "key": "dynamodb/e2e-order-fulfillment-conditional-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_e2e_order_fulfillment_conditional_workflow.py", "service": "dynamodb"} {"check_id": "dynamodb.e2e-paginated-export", "deployments": [], "key": "dynamodb/e2e-paginated-export", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_e2e_paginated_export.py", "service": "dynamodb"} {"check_id": "dynamodb.e2e-resource-policy-grant-revoke-access-flow", "deployments": [], "key": "dynamodb/e2e-resource-policy-grant-revoke-access-flow", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_e2e_resource_policy_grant_revoke_access_flow.py", "service": "dynamodb"} {"check_id": "dynamodb.e2e-shopping-cart-workflow", "deployments": [], "key": "dynamodb/e2e-shopping-cart-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_e2e_shopping_cart_workflow.py", "service": "dynamodb"} {"check_id": "dynamodb.empty-and-duplicate-set-members-rejected-for-ss-ns-and-bs", "deployments": [], "key": "dynamodb/empty-and-duplicate-set-members-rejected-for-ss-ns-and-bs", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_empty_and_duplicate_set_members_rejected_for_ss_ns_and_bs.py", "service": "dynamodb"} {"check_id": "dynamodb.empty-string-and-binary-base-table-keys-rejected", "deployments": [], "key": "dynamodb/empty-string-and-binary-base-table-keys-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_empty_string_and_binary_base_table_keys_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.empty-string-expression-rejected-across-operations", "deployments": [], "key": "dynamodb/empty-string-expression-rejected-across-operations", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_empty_string_expression_rejected_across_operations.py", "service": "dynamodb"} {"check_id": "dynamodb.empty-value-filter-expression-and-legacy-scan-filter-selection", "deployments": [], "key": "dynamodb/empty-value-filter-expression-and-legacy-scan-filter-selection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_empty_value_filter_expression_and_legacy_scan_filter_selection.py", "service": "dynamodb"} {"check_id": "dynamodb.enable-kinesis-invalid-arn", "deployments": [], "key": "dynamodb/enable-kinesis-invalid-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:EnableKinesisStreamingDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/dynamodb/check_enable_kinesis_invalid_arn.py", "service": "dynamodb"} {"check_id": "dynamodb.enable-kinesis-streaming-destination-already-active-rejected", "deployments": [], "key": "dynamodb/enable-kinesis-streaming-destination-already-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/dynamodb/check_enable_kinesis_streaming_destination_already_active_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.enabling-a-stream-that-already-exists-rejected", "deployments": [], "key": "dynamodb/enabling-a-stream-that-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_enabling_a_stream_that_already_exists_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.error-conditional-check-failed-shape", "deployments": [], "key": "dynamodb/error-conditional-check-failed-shape", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_error_conditional_check_failed_shape.py", "service": "dynamodb"} {"check_id": "dynamodb.error-query-without-key-condition", "deployments": [], "key": "dynamodb/error-query-without-key-condition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_error_query_without_key_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.error-resource-not-found", "deployments": [], "key": "dynamodb/error-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_error_resource_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.error-table-already-exists", "deployments": [], "key": "dynamodb/error-table-already-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_error_table_already_exists.py", "service": "dynamodb"} {"check_id": "dynamodb.error-validation-empty-key", "deployments": [], "key": "dynamodb/error-validation-empty-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_error_validation_empty_key.py", "service": "dynamodb"} {"check_id": "dynamodb.eventually-consistent-get-consumes-half-of-a-strong-get", "deployments": [], "key": "dynamodb/eventually-consistent-get-consumes-half-of-a-strong-get", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_eventually_consistent_get_consumes_half_of_a_strong_get.py", "service": "dynamodb"} {"check_id": "dynamodb.exclusive-start-key-outside-range-and-missing-attribute-rejected", "deployments": [], "key": "dynamodb/exclusive-start-key-outside-range-and-missing-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_exclusive_start_key_outside_range_and_missing_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-conditional-update-failure", "deployments": [], "key": "dynamodb/execute-statement-conditional-update-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_conditional_update_failure.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-extra-token-after-complete-statement-rejected", "deployments": [], "key": "dynamodb/execute-statement-extra-token-after-complete-statement-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_execute_statement_extra_token_after_complete_statement_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-function-requires-document-path-or-operand-count-rejected", "deployments": [], "key": "dynamodb/execute-statement-function-requires-document-path-or-operand-count-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_function_requires_document_path_or_operand_count_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-gsi-consistent-read-rejected-while-lsi-consistent-read-succeeds", "deployments": [], "key": "dynamodb/execute-statement-gsi-consistent-read-rejected-while-lsi-consistent-read-succeeds", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_gsi_consistent_read_rejected_while_lsi_consistent_read_succeeds.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-index-select-paginated-token-rejected-on-other-index", "deployments": [], "key": "dynamodb/execute-statement-index-select-paginated-token-rejected-on-other-index", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_index_select_paginated_token_rejected_on_other_index.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-invalid-partiql-rejected", "deployments": [], "key": "dynamodb/execute-statement-invalid-partiql-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_execute_statement_invalid_partiql_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-limit-clause-rejected", "deployments": [], "key": "dynamodb/execute-statement-limit-clause-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_limit_clause_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-literal-leading-dot-with-no-mantissa-digit-rejected", "deployments": [], "key": "dynamodb/execute-statement-literal-leading-dot-with-no-mantissa-digit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_execute_statement_literal_leading_dot_with_no_mantissa_digit_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-malformed-literal-rejected", "deployments": [], "key": "dynamodb/execute-statement-malformed-literal-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_execute_statement_malformed_literal_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-missing-clause-rejected", "deployments": [], "key": "dynamodb/execute-statement-missing-clause-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_execute_statement_missing_clause_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-missing-literal-comparison-operators-rejected", "deployments": [], "key": "dynamodb/execute-statement-missing-literal-comparison-operators-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_execute_statement_missing_literal_comparison_operators_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-number-literal-exponent-and-leading-dot-forms", "deployments": [], "key": "dynamodb/execute-statement-number-literal-exponent-and-leading-dot-forms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_execute_statement_number_literal_exponent_and_leading_dot_forms.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-number-precision-in-update-set-and-key-equality", "deployments": [], "key": "dynamodb/execute-statement-number-precision-in-update-set-and-key-equality", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_execute_statement_number_precision_in_update_set_and_key_equality.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-ordering-comparison-rejects-parameterized-boolean-operand", "deployments": [], "key": "dynamodb/execute-statement-ordering-comparison-rejects-parameterized-boolean-operand", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_execute_statement_ordering_comparison_rejects_parameterized_boolean_operand.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-parameter-count-and-key-type-mismatch-rejected", "deployments": [], "key": "dynamodb/execute-statement-parameter-count-and-key-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_execute_statement_parameter_count_and_key_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-quoting-rules", "deployments": [], "key": "dynamodb/execute-statement-quoting-rules", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_quoting_rules.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-rejects-foreign-next-token", "deployments": [], "key": "dynamodb/execute-statement-rejects-foreign-next-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_rejects_foreign_next_token.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-rejects-non-numeric-n-parameter", "deployments": [], "key": "dynamodb/execute-statement-rejects-non-numeric-n-parameter", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_rejects_non_numeric_n_parameter.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-rejects-out-of-range-n-parameter", "deployments": [], "key": "dynamodb/execute-statement-rejects-out-of-range-n-parameter", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_rejects_out_of_range_n_parameter.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-select-multi-attribute-gsi-key-rejected", "deployments": [], "key": "dynamodb/execute-statement-select-multi-attribute-gsi-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_select_multi_attribute_gsi_key_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-select-through-gsi-without-equality-scans-and-filters", "deployments": [], "key": "dynamodb/execute-statement-select-through-gsi-without-equality-scans-and-filters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_select_through_gsi_without_equality_scans_and_filters.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-undefined-function-and-projection-function-rejected", "deployments": [], "key": "dynamodb/execute-statement-undefined-function-and-projection-function-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_undefined_function_and_projection_function_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-update-condition-failure-returns-old-item-rejected", "deployments": [], "key": "dynamodb/execute-statement-update-condition-failure-returns-old-item-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_update_condition_failure_returns_old_item_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-update-missing-sort-key-rejected", "deployments": [], "key": "dynamodb/execute-statement-update-missing-sort-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_execute_statement_update_missing_sort_key_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-statement-vector-index-qualified-select-rejected", "deployments": [], "key": "dynamodb/execute-statement-vector-index-qualified-select-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_statement_vector_index_qualified_select_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-client-token-idempotent-mismatch-rejected", "deployments": [], "key": "dynamodb/execute-transaction-client-token-idempotent-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_execute_transaction_client_token_idempotent_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-condition-failure-cancels-and-bills-nothing", "deployments": [], "key": "dynamodb/execute-transaction-condition-failure-cancels-and-bills-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_transaction_condition_failure_cancels_and_bills_nothing.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-duplicate-insert-rolls-back-sibling-insert", "deployments": [], "key": "dynamodb/execute-transaction-duplicate-insert-rolls-back-sibling-insert", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:ExecuteTransaction", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_execute_transaction_duplicate_insert_rolls_back_sibling_insert.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-exceeds-100-statements-rejected", "deployments": [], "key": "dynamodb/execute-transaction-exceeds-100-statements-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_execute_transaction_exceeds_100_statements_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-exists-condition-statement-commits-or-cancels", "deployments": [], "key": "dynamodb/execute-transaction-exists-condition-statement-commits-or-cancels", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_transaction_exists_condition_statement_commits_or_cancels.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-idempotency", "deployments": [], "key": "dynamodb/execute-transaction-idempotency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_execute_transaction_idempotency.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-index-select-top-level-validation-not-cancellation", "deployments": [], "key": "dynamodb/execute-transaction-index-select-top-level-validation-not-cancellation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_transaction_index_select_top_level_validation_not_cancellation.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-malformed-statement-rejects-whole-call", "deployments": [], "key": "dynamodb/execute-transaction-malformed-statement-rejects-whole-call", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_execute_transaction_malformed_statement_rejects_whole_call.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-mixed-read-and-write-statements-rejected", "deployments": [], "key": "dynamodb/execute-transaction-mixed-read-and-write-statements-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_transaction_mixed_read_and_write_statements_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-multi-table-partiql-atomicity", "deployments": [], "key": "dynamodb/execute-transaction-multi-table-partiql-atomicity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_transaction_multi_table_partiql_atomicity.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-read-response-shapes-and-write-consumed-capacity", "deployments": [], "key": "dynamodb/execute-transaction-read-response-shapes-and-write-consumed-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_transaction_read_response_shapes_and_write_consumed_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-read-responses-three-way-shape-and-write-consumed-capacity", "deployments": [], "key": "dynamodb/execute-transaction-read-responses-three-way-shape-and-write-consumed-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_transaction_read_responses_three_way_shape_and_write_consumed_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-replay-bills-exactly-wcu-then-rcu", "deployments": [], "key": "dynamodb/execute-transaction-replay-bills-exactly-wcu-then-rcu", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_execute_transaction_replay_bills_exactly_wcu_then_rcu.py", "service": "dynamodb"} {"check_id": "dynamodb.execute-transaction-set-add-commits", "deployments": [], "key": "dynamodb/execute-transaction-set-add-commits", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_execute_transaction_set_add_commits.py", "service": "dynamodb"} {"check_id": "dynamodb.export-client-token-conflict", "deployments": [], "key": "dynamodb/export-client-token-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/dynamodb/check_export_client_token_conflict.py", "service": "dynamodb"} {"check_id": "dynamodb.export-conflict-duplicate-rejected", "deployments": [], "key": "dynamodb/export-conflict-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/dynamodb/check_export_conflict_duplicate_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.export-invalid-export-time-rejected", "deployments": [], "key": "dynamodb/export-invalid-export-time-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/dynamodb/check_export_invalid_export_time_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.export-invalid-time", "deployments": [], "key": "dynamodb/export-invalid-time", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/dynamodb/check_export_invalid_time.py", "service": "dynamodb"} {"check_id": "dynamodb.export-lifecycle", "deployments": [], "key": "dynamodb/export-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/dynamodb/check_export_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.export-table-lifecycle-to-completed", "deployments": [], "key": "dynamodb/export-table-lifecycle-to-completed", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/dynamodb/check_export_table_lifecycle_to_completed.py", "service": "dynamodb"} {"check_id": "dynamodb.export-to-point-in-time-invalid-time-rejected", "deployments": [], "key": "dynamodb/export-to-point-in-time-invalid-time-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/dynamodb/check_export_to_point_in_time_invalid_time_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.expression-attribute-keys-without-prefix-rejected-on-item-ops", "deployments": [], "key": "dynamodb/expression-attribute-keys-without-prefix-rejected-on-item-ops", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_expression_attribute_keys_without_prefix_rejected_on_item_ops.py", "service": "dynamodb"} {"check_id": "dynamodb.expression-attribute-map-key-syntax-and-length-rejected", "deployments": [], "key": "dynamodb/expression-attribute-map-key-syntax-and-length-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_expression_attribute_map_key_syntax_and_length_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.expression-attribute-names", "deployments": [], "key": "dynamodb/expression-attribute-names", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_expression_attribute_names.py", "service": "dynamodb"} {"check_id": "dynamodb.expression-attribute-placeholders-without-an-expression-rejected", "deployments": [], "key": "dynamodb/expression-attribute-placeholders-without-an-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_expression_attribute_placeholders_without_an_expression_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.filter-and-key-condition-expression-size-limit-rejected", "deployments": [], "key": "dynamodb/filter-and-key-condition-expression-size-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_filter_and_key_condition_expression_size_limit_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.filter-expression-operator-limit-in-counts-as-one", "deployments": [], "key": "dynamodb/filter-expression-operator-limit-in-counts-as-one", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_filter_expression_operator_limit_in_counts_as_one.py", "service": "dynamodb"} {"check_id": "dynamodb.get-item-and-query-return-consumed-capacity-invalid-enum-rejected", "deployments": [], "key": "dynamodb/get-item-and-query-return-consumed-capacity-invalid-enum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_get_item_and_query_return_consumed_capacity_invalid_enum_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.get-item-attributes-to-get-omits-a-missing-attribute", "deployments": [], "key": "dynamodb/get-item-attributes-to-get-omits-a-missing-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_get_item_attributes_to_get_omits_a_missing_attribute.py", "service": "dynamodb"} {"check_id": "dynamodb.get-item-key-with-attribute-outside-schema-rejected", "deployments": [], "key": "dynamodb/get-item-key-with-attribute-outside-schema-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_get_item_key_with_attribute_outside_schema_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.get-item-missing-range-key-rejected", "deployments": [], "key": "dynamodb/get-item-missing-range-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_get_item_missing_range_key_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.get-item-projection-expression-alias-substitution-exceeds-4kb-accepted", "deployments": [], "key": "dynamodb/get-item-projection-expression-alias-substitution-exceeds-4kb-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_get_item_projection_expression_alias_substitution_exceeds_4kb_accepted.py", "service": "dynamodb"} {"check_id": "dynamodb.get-item-query-unaliased-dotted-name-is-a-nested-path", "deployments": [], "key": "dynamodb/get-item-query-unaliased-dotted-name-is-a-nested-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_get_item_query_unaliased_dotted_name_is_a_nested_path.py", "service": "dynamodb"} {"check_id": "dynamodb.get-item-unaliased-reserved-word-in-a-projection-path-segment-rejected", "deployments": [], "key": "dynamodb/get-item-unaliased-reserved-word-in-a-projection-path-segment-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_get_item_unaliased_reserved_word_in_a_projection_path_segment_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.get-nonexistent-item-returns-empty", "deployments": [], "key": "dynamodb/get-nonexistent-item-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_get_nonexistent_item_returns_empty.py", "service": "dynamodb"} {"check_id": "dynamodb.get-resource-policy-malformed-arn-rejected", "deployments": [], "key": "dynamodb/get-resource-policy-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_get_resource_policy_malformed_arn_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.get-resource-policy-not-found-rejected", "deployments": [], "key": "dynamodb/get-resource-policy-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_get_resource_policy_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-already-exists", "deployments": [], "key": "dynamodb/global-table-already-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateGlobalTable", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeGlobalTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_global_table_already_exists.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-create-describe-update-list", "deployments": [], "key": "dynamodb/global-table-create-describe-update-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_create_describe_update_list.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-lifecycle", "deployments": [], "key": "dynamodb/global-table-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateGlobalTable", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeGlobalTable", "dynamodb:DescribeTable", "dynamodb:ListGlobalTables", "dynamodb:UpdateGlobalTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-lifecycle-create-describe-update", "deployments": [], "key": "dynamodb/global-table-lifecycle-create-describe-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_lifecycle_create_describe_update.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-mrsc-strong-consistency-and-conditional-write-conflict", "deployments": [], "key": "dynamodb/global-table-mrsc-strong-consistency-and-conditional-write-conflict", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_global_table_mrsc_strong_consistency_and_conditional_write_conflict.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-mrsc-unsupported-configuration-rejected", "deployments": [], "key": "dynamodb/global-table-mrsc-unsupported-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_mrsc_unsupported_configuration_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-not-found", "deployments": [], "key": "dynamodb/global-table-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateGlobalTable", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeGlobalTable", "dynamodb:DescribeGlobalTableSettings", "dynamodb:DescribeTable", "dynamodb:UpdateGlobalTable", "dynamodb:UpdateGlobalTableSettings"], "path": "behavioral/dynamodb/check_global_table_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-replica-already-exists-rejected", "deployments": [], "key": "dynamodb/global-table-replica-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_replica_already_exists_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-replica-item-replication-round-trip", "deployments": [], "key": "dynamodb/global-table-replica-item-replication-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_replica_item_replication_round_trip.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-settings-describe-update", "deployments": [], "key": "dynamodb/global-table-settings-describe-update", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeGlobalTableSettings", "dynamodb:DescribeTable", "dynamodb:UpdateGlobalTableSettings", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_settings_describe_update.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-settings-describe-update-roundtrip", "deployments": [], "key": "dynamodb/global-table-settings-describe-update-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_settings_describe_update_roundtrip.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-settings-index-not-found", "deployments": [], "key": "dynamodb/global-table-settings-index-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateGlobalTable", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListGlobalTables", "dynamodb:UpdateGlobalTableSettings"], "path": "behavioral/dynamodb/check_global_table_settings_index_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.global-table-settings-update", "deployments": [], "key": "dynamodb/global-table-settings-update", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeGlobalTableSettings", "dynamodb:DescribeTable", "dynamodb:UpdateGlobalTableSettings", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_global_table_settings_update.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-add-and-remove-online", "deployments": [], "key": "dynamodb/gsi-add-and-remove-online", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_gsi_add_and_remove_online.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-added-online-indexes-items-written-while-it-builds", "deployments": [], "key": "dynamodb/gsi-added-online-indexes-items-written-while-it-builds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_gsi_added_online_indexes_items_written_while_it_builds.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-added-to-a-populated-table-backfills-every-preexisting-item", "deployments": [], "key": "dynamodb/gsi-added-to-a-populated-table-backfills-every-preexisting-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_gsi_added_to_a_populated_table_backfills_every_preexisting_item.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-added-to-a-populated-table-excludes-a-type-mismatched-item", "deployments": [], "key": "dynamodb/gsi-added-to-a-populated-table-excludes-a-type-mismatched-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_gsi_added_to_a_populated_table_excludes_a_type_mismatched_item.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-consistent-read-rejected-while-lsi-consistent-read-succeeds", "deployments": [], "key": "dynamodb/gsi-consistent-read-rejected-while-lsi-consistent-read-succeeds", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_consistent_read_rejected_while_lsi_consistent_read_succeeds.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-creating-blocks-delete-table", "deployments": [], "key": "dynamodb/gsi-creating-blocks-delete-table", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_gsi_creating_blocks_delete_table.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-creating-blocks-other-index-but-accepts-self-delete", "deployments": [], "key": "dynamodb/gsi-creating-blocks-other-index-but-accepts-self-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_gsi_creating_blocks_other_index_but_accepts_self_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-delete-prunes-unshared-attribute-definitions-while-lsi-survives", "deployments": [], "key": "dynamodb/gsi-delete-prunes-unshared-attribute-definitions-while-lsi-survives", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_gsi_delete_prunes_unshared_attribute_definitions_while_lsi_survives.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-duplicate-composite-keys-do-not-collapse", "deployments": [], "key": "dynamodb/gsi-duplicate-composite-keys-do-not-collapse", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_gsi_duplicate_composite_keys_do_not_collapse.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-four-hash-attribute-key-query-order-free-and-tracks-moves-and-deletes", "deployments": [], "key": "dynamodb/gsi-four-hash-attribute-key-query-order-free-and-tracks-moves-and-deletes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_four_hash_attribute_key_query_order_free_and_tracks_moves_and_deletes.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-independent-throughput-scaling", "deployments": [], "key": "dynamodb/gsi-independent-throughput-scaling", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_gsi_independent_throughput_scaling.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-key-attribute-must-be-scalar", "deployments": [], "key": "dynamodb/gsi-key-attribute-must-be-scalar", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:ListTables"], "path": "behavioral/dynamodb/check_gsi_key_attribute_must_be_scalar.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-key-attribute-update-moves-the-index-entry", "deployments": [], "key": "dynamodb/gsi-key-attribute-update-moves-the-index-entry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_gsi_key_attribute_update_moves_the_index_entry.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-multi-attribute-hash-key-query-without-every-attribute-rejected", "deployments": [], "key": "dynamodb/gsi-multi-attribute-hash-key-query-without-every-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_gsi_multi_attribute_hash_key_query_without_every_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-projection-include", "deployments": [], "key": "dynamodb/gsi-projection-include", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_projection_include.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-projection-keys-only", "deployments": [], "key": "dynamodb/gsi-projection-keys-only", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_projection_keys_only.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query", "deployments": [], "key": "dynamodb/gsi-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_query.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query-attributes-to-get-validation", "deployments": [], "key": "dynamodb/gsi-query-attributes-to-get-validation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_gsi_query_attributes_to_get_validation.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query-consistent-read-rejected", "deployments": [], "key": "dynamodb/gsi-query-consistent-read-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_query_consistent_read_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query-consumes-half-a-read-unit", "deployments": [], "key": "dynamodb/gsi-query-consumes-half-a-read-unit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_query_consumes_half_a_read_unit.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query-exclusive-start-key-missing-an-index-key-attribute-rejected", "deployments": [], "key": "dynamodb/gsi-query-exclusive-start-key-missing-an-index-key-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_gsi_query_exclusive_start_key_missing_an_index_key_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query-last-evaluated-key-carries-every-table-and-index-key-attribute", "deployments": [], "key": "dynamodb/gsi-query-last-evaluated-key-carries-every-table-and-index-key-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_query_last_evaluated_key_carries_every_table_and_index_key_attribute.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query-omits-attributes-the-projection-excludes", "deployments": [], "key": "dynamodb/gsi-query-omits-attributes-the-projection-excludes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_query_omits_attributes_the_projection_excludes.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query-paginates-with-last-evaluated-key", "deployments": [], "key": "dynamodb/gsi-query-paginates-with-last-evaluated-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_query_paginates_with_last_evaluated_key.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-query-paging-over-tied-index-keys-matches-unpaged-read", "deployments": [], "key": "dynamodb/gsi-query-paging-over-tied-index-keys-matches-unpaged-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_query_paging_over_tied_index_keys_matches_unpaged_read.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-read-capacity-is-sized-by-the-projection-not-the-base-item", "deployments": [], "key": "dynamodb/gsi-read-capacity-is-sized-by-the-projection-not-the-base-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_gsi_read_capacity_is_sized_by_the_projection_not_the_base_item.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-scan-all-projection-and-filtered-limit-paging", "deployments": [], "key": "dynamodb/gsi-scan-all-projection-and-filtered-limit-paging", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_gsi_scan_all_projection_and_filtered_limit_paging.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-scan-filter-expression-parenthesized-or-under-and", "deployments": [], "key": "dynamodb/gsi-scan-filter-expression-parenthesized-or-under-and", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_gsi_scan_filter_expression_parenthesized_or_under_and.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-scan-pagination-over-tied-index-sort-key", "deployments": [], "key": "dynamodb/gsi-scan-pagination-over-tied-index-sort-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_gsi_scan_pagination_over_tied_index_sort_key.py", "service": "dynamodb"} {"check_id": "dynamodb.gsi-scan-unused-filter-expression-value-rejected", "deployments": [], "key": "dynamodb/gsi-scan-unused-filter-expression-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_gsi_scan_unused_filter_expression_value_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.hot-partition-key-throttled-while-distributed-keys-at-same-rate-rejected", "deployments": [], "key": "dynamodb/hot-partition-key-throttled-while-distributed-keys-at-same-rate-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_hot_partition_key_throttled_while_distributed_keys_at_same_rate_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.import-not-found", "deployments": [], "key": "dynamodb/import-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeImport", "dynamodb:ImportTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb/check_import_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.import-table-conflict-rejected", "deployments": [], "key": "dynamodb/import-table-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeImport", "dynamodb:DescribeTable", "dynamodb:ImportTable", "dynamodb:ListImports", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/dynamodb/check_import_table_conflict_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.import-table-describe-list-workflow", "deployments": [], "key": "dynamodb/import-table-describe-list-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeImport", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ImportTable", "dynamodb:ListImports", "dynamodb:PutItem", "dynamodb:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb/check_import_table_describe_list_workflow.py", "service": "dynamodb"} {"check_id": "dynamodb.import-table-lifecycle", "deployments": [], "key": "dynamodb/import-table-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeImport", "dynamodb:GetItem", "dynamodb:ImportTable", "dynamodb:ListImports", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/dynamodb/check_import_table_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.import-table-lifecycle-to-completed", "deployments": [], "key": "dynamodb/import-table-lifecycle-to-completed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeImport", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ImportTable", "dynamodb:ListImports", "dynamodb:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb/check_import_table_lifecycle_to_completed.py", "service": "dynamodb"} {"check_id": "dynamodb.import-table-malformed-item-reports-exact-failure", "deployments": [], "key": "dynamodb/import-table-malformed-item-reports-exact-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeImport", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ImportTable", "dynamodb:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb/check_import_table_malformed_item_reports_exact_failure.py", "service": "dynamodb"} {"check_id": "dynamodb.import-target-in-use", "deployments": [], "key": "dynamodb/import-target-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeImport", "dynamodb:DescribeTable", "dynamodb:ImportTable", "dynamodb:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb/check_import_target_in_use.py", "service": "dynamodb"} {"check_id": "dynamodb.include-projection-governs-index-reads-on-lsi-and-gsi", "deployments": [], "key": "dynamodb/include-projection-governs-index-reads-on-lsi-and-gsi", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_include_projection_governs_index_reads_on_lsi_and_gsi.py", "service": "dynamodb"} {"check_id": "dynamodb.incomplete-sigv4-signature-lists-missing-components", "deployments": [], "key": "dynamodb/incomplete-sigv4-signature-lists-missing-components", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables"], "path": "behavioral/dynamodb/check_incomplete_sigv4_signature_lists_missing_components.py", "service": "dynamodb"} {"check_id": "dynamodb.index-projection-attribute-budget-counts-a-name-once-per-index", "deployments": [], "key": "dynamodb/index-projection-attribute-budget-counts-a-name-once-per-index", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:ListTables"], "path": "behavioral/dynamodb/check_index_projection_attribute_budget_counts_a_name_once_per_index.py", "service": "dynamodb"} {"check_id": "dynamodb.item-collection-metrics-reported-only-for-lsi-tables", "deployments": [], "key": "dynamodb/item-collection-metrics-reported-only-for-lsi-tables", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_item_collection_metrics_reported_only_for_lsi_tables.py", "service": "dynamodb"} {"check_id": "dynamodb.item-collection-metrics-scoped-to-lsi-tables-and-requests", "deployments": [], "key": "dynamodb/item-collection-metrics-scoped-to-lsi-tables-and-requests", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_item_collection_metrics_scoped_to_lsi_tables_and_requests.py", "service": "dynamodb"} {"check_id": "dynamodb.item-size-400kb-limit", "deployments": [], "key": "dynamodb/item-size-400kb-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_item_size_400kb_limit.py", "service": "dynamodb"} {"check_id": "dynamodb.item-size-boundary-across-multiple-long-attribute-names", "deployments": [], "key": "dynamodb/item-size-boundary-across-multiple-long-attribute-names", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_item_size_boundary_across_multiple_long_attribute_names.py", "service": "dynamodb"} {"check_id": "dynamodb.item-size-limit-counts-list-element-overhead", "deployments": [], "key": "dynamodb/item-size-limit-counts-list-element-overhead", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_item_size_limit_counts_list_element_overhead.py", "service": "dynamodb"} {"check_id": "dynamodb.item-size-limit-enforced-at-400kb", "deployments": [], "key": "dynamodb/item-size-limit-enforced-at-400kb", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_item_size_limit_enforced_at_400kb.py", "service": "dynamodb"} {"check_id": "dynamodb.item-size-limit-is-aggregate-not-per-attribute-rejected", "deployments": [], "key": "dynamodb/item-size-limit-is-aggregate-not-per-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_item_size_limit_is_aggregate_not_per_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.key-condition-illegal-sort-key-operator-rejected", "deployments": [], "key": "dynamodb/key-condition-illegal-sort-key-operator-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_key_condition_illegal_sort_key_operator_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.key-size-limits-on-batch-get-delete-update-and-binary-keys", "deployments": [], "key": "dynamodb/key-size-limits-on-batch-get-delete-update-and-binary-keys", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_key_size_limits_on_batch_get_delete_update_and_binary_keys.py", "service": "dynamodb"} {"check_id": "dynamodb.keys-only-and-all-projections-are-exempt-from-the-attribute-budget", "deployments": [], "key": "dynamodb/keys-only-and-all-projections-are-exempt-from-the-attribute-budget", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_keys_only_and_all_projections_are_exempt_from_the_attribute_budget.py", "service": "dynamodb"} {"check_id": "dynamodb.keys-only-gsi-query-and-scan-page-by-projected-entry-size-not-base-item-size", "deployments": [], "key": "dynamodb/keys-only-gsi-query-and-scan-page-by-projected-entry-size-not-base-item-size", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_keys_only_gsi_query_and_scan_page_by_projected_entry_size_not_base_item_size.py", "service": "dynamodb"} {"check_id": "dynamodb.keys-only-gsi-string-sort-key-pages-in-byte-order", "deployments": [], "key": "dynamodb/keys-only-gsi-string-sort-key-pages-in-byte-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_keys_only_gsi_string_sort_key_pages_in_byte_order.py", "service": "dynamodb"} {"check_id": "dynamodb.kinesis-destination-not-found", "deployments": [], "key": "dynamodb/kinesis-destination-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_kinesis_destination_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.kinesis-streaming-destination-enable-disable-lifecycle", "deployments": [], "key": "dynamodb/kinesis-streaming-destination-enable-disable-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:UpdateKinesisStreamingDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/dynamodb/check_kinesis_streaming_destination_enable_disable_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.kinesis-streaming-destination-lifecycle", "deployments": [], "key": "dynamodb/kinesis-streaming-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:UpdateKinesisStreamingDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/dynamodb/check_kinesis_streaming_destination_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.kinesis-streaming-lifecycle", "deployments": [], "key": "dynamodb/kinesis-streaming-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:UpdateKinesisStreamingDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/dynamodb/check_kinesis_streaming_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-attribute-updates-dotted-name-is-literal", "deployments": [], "key": "dynamodb/legacy-attribute-updates-dotted-name-is-literal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_legacy_attribute_updates_dotted_name_is_literal.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-attributes-to-get-duplicate-name-rejected", "deployments": [], "key": "dynamodb/legacy-attributes-to-get-duplicate-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_legacy_attributes_to_get_duplicate_name_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-attributes-to-get-empty-item-and-whole-nested-values", "deployments": [], "key": "dynamodb/legacy-attributes-to-get-empty-item-and-whole-nested-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_legacy_attributes_to_get_empty_item_and_whole_nested_values.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-and-default-or-explicit-put-item-ge-exists-false", "deployments": [], "key": "dynamodb/legacy-expected-and-default-or-explicit-put-item-ge-exists-false", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_legacy_expected_and_default_or_explicit_put_item_ge_exists_false.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-and-default-or-explicit-update-delete-ge-exists-false", "deployments": [], "key": "dynamodb/legacy-expected-and-default-or-explicit-update-delete-ge-exists-false", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_legacy_expected_and_default_or_explicit_update_delete_ge_exists_false.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-comparator-type-mismatch-on-put", "deployments": [], "key": "dynamodb/legacy-expected-comparator-type-mismatch-on-put", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_legacy_expected_comparator_type_mismatch_on_put.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-contains-in-null-comparator-matrix", "deployments": [], "key": "dynamodb/legacy-expected-contains-in-null-comparator-matrix", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_legacy_expected_contains_in_null_comparator_matrix.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-exists-value-comparator-matrix", "deployments": [], "key": "dynamodb/legacy-expected-exists-value-comparator-matrix", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_legacy_expected_exists_value_comparator_matrix.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-list-map-value-equality", "deployments": [], "key": "dynamodb/legacy-expected-list-map-value-equality", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_legacy_expected_list_map_value_equality.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-scalar-comparator-matrix-delete-item", "deployments": [], "key": "dynamodb/legacy-expected-scalar-comparator-matrix-delete-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_legacy_expected_scalar_comparator_matrix_delete_item.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-scalar-comparator-matrix-put-item", "deployments": [], "key": "dynamodb/legacy-expected-scalar-comparator-matrix-put-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_legacy_expected_scalar_comparator_matrix_put_item.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-expected-scalar-comparator-matrix-update-item", "deployments": [], "key": "dynamodb/legacy-expected-scalar-comparator-matrix-update-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_legacy_expected_scalar_comparator_matrix_update_item.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-keyconditions-disallowed-sort-key-operator-rejected", "deployments": [], "key": "dynamodb/legacy-keyconditions-disallowed-sort-key-operator-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_legacy_keyconditions_disallowed_sort_key_operator_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-keyconditions-sort-key-operators-select-and-order-items", "deployments": [], "key": "dynamodb/legacy-keyconditions-sort-key-operators-select-and-order-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_legacy_keyconditions_sort_key_operators_select_and_order_items.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-queryfilter-list-map-value-equality", "deployments": [], "key": "dynamodb/legacy-queryfilter-list-map-value-equality", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_legacy_queryfilter_list_map_value_equality.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-queryfilter-scanfilter-keyconditions-argument-rules", "deployments": [], "key": "dynamodb/legacy-queryfilter-scanfilter-keyconditions-argument-rules", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_legacy_queryfilter_scanfilter_keyconditions_argument_rules.py", "service": "dynamodb"} {"check_id": "dynamodb.legacy-scan-query-filter-comparator-type-mismatch", "deployments": [], "key": "dynamodb/legacy-scan-query-filter-comparator-type-mismatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_legacy_scan_query_filter_comparator_type_mismatch.py", "service": "dynamodb"} {"check_id": "dynamodb.list-append-operand-order-prepends-or-appends", "deployments": [], "key": "dynamodb/list-append-operand-order-prepends-or-appends", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_list_append_operand_order_prepends_or_appends.py", "service": "dynamodb"} {"check_id": "dynamodb.list-append-wrong-case-function-name-rejected", "deployments": [], "key": "dynamodb/list-append-wrong-case-function-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_list_append_wrong_case_function_name_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.list-backups-reflects-lifecycle", "deployments": [], "key": "dynamodb/list-backups-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable", "dynamodb:ListBackups"], "path": "behavioral/dynamodb/check_list_backups_reflects_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.list-exports-pagination-consistent-order", "deployments": [], "key": "dynamodb/list-exports-pagination-consistent-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/dynamodb/check_list_exports_pagination_consistent_order.py", "service": "dynamodb"} {"check_id": "dynamodb.list-global-tables-reflects-created-tables", "deployments": [], "key": "dynamodb/list-global-tables-reflects-created-tables", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListGlobalTables", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_list_global_tables_reflects_created_tables.py", "service": "dynamodb"} {"check_id": "dynamodb.list-imports-and-exports-empty-for-new-table", "deployments": [], "key": "dynamodb/list-imports-and-exports-empty-for-new-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListExports", "dynamodb:ListImports"], "path": "behavioral/dynamodb/check_list_imports_and_exports_empty_for_new_table.py", "service": "dynamodb"} {"check_id": "dynamodb.list-imports-pagination-consistent-order", "deployments": [], "key": "dynamodb/list-imports-pagination-consistent-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ImportTable", "dynamodb:ListImports", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb/check_list_imports_pagination_consistent_order.py", "service": "dynamodb"} {"check_id": "dynamodb.list-index-past-end-set-appends-and-remove-shifts", "deployments": [], "key": "dynamodb/list-index-past-end-set-appends-and-remove-shifts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_list_index_past_end_set_appends_and_remove_shifts.py", "service": "dynamodb"} {"check_id": "dynamodb.list-tables-pages-names-in-byte-order-across-punctuation", "deployments": [], "key": "dynamodb/list-tables-pages-names-in-byte-order-across-punctuation", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables"], "path": "behavioral/dynamodb/check_list_tables_pages_names_in_byte_order_across_punctuation.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-consistent-query-pages-with-filter-counts-per-page", "deployments": [], "key": "dynamodb/lsi-consistent-query-pages-with-filter-counts-per-page", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_consistent_query_pages_with_filter_counts_per_page.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-consistent-read", "deployments": [], "key": "dynamodb/lsi-consistent-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_consistent_read.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-keys-only-projection-omits-attributes", "deployments": [], "key": "dynamodb/lsi-keys-only-projection-omits-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_keys_only_projection_omits_attributes.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-non-projected-query-charges-base-item-on-top-of-the-keys-only-index-read", "deployments": [], "key": "dynamodb/lsi-non-projected-query-charges-base-item-on-top-of-the-keys-only-index-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_non_projected_query_charges_base_item_on_top_of_the_keys_only_index_read.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-projection-include-echoes-non-key-attributes", "deployments": [], "key": "dynamodb/lsi-projection-include-echoes-non-key-attributes", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_projection_include_echoes_non_key_attributes.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-query", "deployments": [], "key": "dynamodb/lsi-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_query.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-query-pagination-exclusive-start-key", "deployments": [], "key": "dynamodb/lsi-query-pagination-exclusive-start-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_query_pagination_exclusive_start_key.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-query-pagination-over-tied-index-sort-key", "deployments": [], "key": "dynamodb/lsi-query-pagination-over-tied-index-sort-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_query_pagination_over_tied_index_sort_key.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-query-sort-key-comparison-and-prefix-operators", "deployments": [], "key": "dynamodb/lsi-query-sort-key-comparison-and-prefix-operators", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_query_sort_key_comparison_and_prefix_operators.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-query-sort-key-operand-type-mismatch-rejected", "deployments": [], "key": "dynamodb/lsi-query-sort-key-operand-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_query_sort_key_operand_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-query-sort-key-value-type-mismatch-rejected", "deployments": [], "key": "dynamodb/lsi-query-sort-key-value-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_query_sort_key_value_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-query-supports-consistent-read", "deployments": [], "key": "dynamodb/lsi-query-supports-consistent-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_lsi_query_supports_consistent_read.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-scan-all-and-include-projections-with-consistent-read", "deployments": [], "key": "dynamodb/lsi-scan-all-and-include-projections-with-consistent-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_lsi_scan_all_and_include_projections_with_consistent_read.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-scan-pagination-exclusive-start-key", "deployments": [], "key": "dynamodb/lsi-scan-pagination-exclusive-start-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_lsi_scan_pagination_exclusive_start_key.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-scan-pagination-over-tied-index-sort-key", "deployments": [], "key": "dynamodb/lsi-scan-pagination-over-tied-index-sort-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_lsi_scan_pagination_over_tied_index_sort_key.py", "service": "dynamodb"} {"check_id": "dynamodb.lsi-sparse-item-omitted-from-index-query-and-scan", "deployments": [], "key": "dynamodb/lsi-sparse-item-omitted-from-index-query-and-scan", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_lsi_sparse_item_omitted_from_index_query_and_scan.py", "service": "dynamodb"} {"check_id": "dynamodb.malformed-n-in-expression-value-rejected-before-evaluation", "deployments": [], "key": "dynamodb/malformed-n-in-expression-value-rejected-before-evaluation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_malformed_n_in_expression_value_rejected_before_evaluation.py", "service": "dynamodb"} {"check_id": "dynamodb.malformed-n-in-key-is-top-level-validation-not-cancellation", "deployments": [], "key": "dynamodb/malformed-n-in-key-is-top-level-validation-not-cancellation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:TransactGetItems", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_malformed_n_in_key_is_top_level_validation_not_cancellation.py", "service": "dynamodb"} {"check_id": "dynamodb.mid-flight-socket-kill-recovery-probe-proves-exactly-once", "deployments": [], "key": "dynamodb/mid-flight-socket-kill-recovery-probe-proves-exactly-once", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_mid_flight_socket_kill_recovery_probe_proves_exactly_once.py", "service": "dynamodb"} {"check_id": "dynamodb.multiple-simultaneous-constraint-violations-rejected", "deployments": [], "key": "dynamodb/multiple-simultaneous-constraint-violations-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_multiple_simultaneous_constraint_violations_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.nesting-depth-error-precedence-across-malformed-requests", "deployments": [], "key": "dynamodb/nesting-depth-error-precedence-across-malformed-requests", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_nesting_depth_error_precedence_across_malformed_requests.py", "service": "dynamodb"} {"check_id": "dynamodb.nesting-depth-limit-applies-to-attribute-updates-and-condition-only-values", "deployments": [], "key": "dynamodb/nesting-depth-limit-applies-to-attribute-updates-and-condition-only-values", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_nesting_depth_limit_applies_to_attribute_updates_and_condition_only_values.py", "service": "dynamodb"} {"check_id": "dynamodb.nesting-depth-limit-covers-transact-condition-check-and-legacy-expected-values", "deployments": [], "key": "dynamodb/nesting-depth-limit-covers-transact-condition-check-and-legacy-expected-values", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_nesting_depth_limit_covers_transact_condition_check_and_legacy_expected_values.py", "service": "dynamodb"} {"check_id": "dynamodb.nesting-depth-limit-enforced-at-32-levels", "deployments": [], "key": "dynamodb/nesting-depth-limit-enforced-at-32-levels", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_nesting_depth_limit_enforced_at_32_levels.py", "service": "dynamodb"} {"check_id": "dynamodb.new-index-on-a-provisioned-table-requires-its-own-throughput", "deployments": [], "key": "dynamodb/new-index-on-a-provisioned-table-requires-its-own-throughput", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_new_index_on_a_provisioned_table_requires_its_own_throughput.py", "service": "dynamodb"} {"check_id": "dynamodb.null-false-batchget-mixed-projection-and-query-keyconditions-with-expressions", "deployments": [], "key": "dynamodb/null-false-batchget-mixed-projection-and-query-keyconditions-with-expressions", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_null_false_batchget_mixed_projection_and_query_keyconditions_with_expressions.py", "service": "dynamodb"} {"check_id": "dynamodb.number-byte-cost-exact-at-400kb-boundary-put-item-and-batch-write-item", "deployments": [], "key": "dynamodb/number-byte-cost-exact-at-400kb-boundary-put-item-and-batch-write-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_number_byte_cost_exact_at_400kb_boundary_put_item_and_batch_write_item.py", "service": "dynamodb"} {"check_id": "dynamodb.number-byte-cost-matches-documented-approximation", "deployments": [], "key": "dynamodb/number-byte-cost-matches-documented-approximation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_number_byte_cost_matches_documented_approximation.py", "service": "dynamodb"} {"check_id": "dynamodb.number-canonicalization-boundaries", "deployments": [], "key": "dynamodb/number-canonicalization-boundaries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_number_canonicalization_boundaries.py", "service": "dynamodb"} {"check_id": "dynamodb.number-magnitude-floor-put-update-batchwrite", "deployments": [], "key": "dynamodb/number-magnitude-floor-put-update-batchwrite", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_number_magnitude_floor_put_update_batchwrite.py", "service": "dynamodb"} {"check_id": "dynamodb.number-precision-limited-to-38-digits", "deployments": [], "key": "dynamodb/number-precision-limited-to-38-digits", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_number_precision_limited_to_38_digits.py", "service": "dynamodb"} {"check_id": "dynamodb.number-precision-overflow-in-exponent-form-rejected", "deployments": [], "key": "dynamodb/number-precision-overflow-in-exponent-form-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_number_precision_overflow_in_exponent_form_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.number-set-add-type-mismatch-rejected", "deployments": [], "key": "dynamodb/number-set-add-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_number_set_add_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.numeric-key-is-canonicalized-on-every-path", "deployments": [], "key": "dynamodb/numeric-key-is-canonicalized-on-every-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_numeric_key_is_canonicalized_on_every_path.py", "service": "dynamodb"} {"check_id": "dynamodb.numeric-sort-key-orders-numerically", "deployments": [], "key": "dynamodb/numeric-sort-key-orders-numerically", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_numeric_sort_key_orders_numerically.py", "service": "dynamodb"} {"check_id": "dynamodb.on-demand-table-accepts-a-new-index-with-no-throughput", "deployments": [], "key": "dynamodb/on-demand-table-accepts-a-new-index-with-no-throughput", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_on_demand_table_accepts_a_new_index_with_no_throughput.py", "service": "dynamodb"} {"check_id": "dynamodb.on-demand-throughput-round-trips-at-create-then-update-changes-both-ceilings", "deployments": [], "key": "dynamodb/on-demand-throughput-round-trips-at-create-then-update-changes-both-ceilings", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_on_demand_throughput_round_trips_at_create_then_update_changes_both_ceilings.py", "service": "dynamodb"} {"check_id": "dynamodb.oversized-item-to-a-missing-table-not-found-on-put-rejected-on-batch-write", "deployments": [], "key": "dynamodb/oversized-item-to-a-missing-table-not-found-on-put-rejected-on-batch-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_oversized_item_to_a_missing_table_not_found_on_put_rejected_on_batch_write.py", "service": "dynamodb"} {"check_id": "dynamodb.parallel-scan-segment-co-locates-every-sort-key-under-one-partition-key", "deployments": [], "key": "dynamodb/parallel-scan-segment-co-locates-every-sort-key-under-one-partition-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_parallel_scan_segment_co_locates_every_sort_key_under_one_partition_key.py", "service": "dynamodb"} {"check_id": "dynamodb.parallel-scan-segments-partition-the-table-exactly-once", "deployments": [], "key": "dynamodb/parallel-scan-segments-partition-the-table-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_parallel_scan_segments_partition_the_table_exactly_once.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-and-classic-api-address-one-item-store", "deployments": [], "key": "dynamodb/partiql-and-classic-api-address-one-item-store", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_partiql_and_classic_api_address_one_item_store.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-attribute-exists-splits-null-typed-from-missing", "deployments": [], "key": "dynamodb/partiql-attribute-exists-splits-null-typed-from-missing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_attribute_exists_splits_null_typed_from_missing.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-contains-and-begins-with-select-exact-matching-set", "deployments": [], "key": "dynamodb/partiql-contains-and-begins-with-select-exact-matching-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_contains_and_begins_with_select_exact_matching_set.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-delete-noop-on-absent-key-and-update-from-rejected", "deployments": [], "key": "dynamodb/partiql-delete-noop-on-absent-key-and-update-from-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_delete_noop_on_absent_key_and_update_from_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-delete-returning-all-new-rejected", "deployments": [], "key": "dynamodb/partiql-delete-returning-all-new-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_delete_returning_all_new_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-equal-and-not-equal-over-list-map-set-and-mixed-type-in", "deployments": [], "key": "dynamodb/partiql-equal-and-not-equal-over-list-map-set-and-mixed-type-in", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_equal_and_not_equal_over_list_map_set_and_mixed_type_in.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-equal-matches-binary-set-and-map-operands-by-value", "deployments": [], "key": "dynamodb/partiql-equal-matches-binary-set-and-map-operands-by-value", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_partiql_equal_matches_binary_set_and_map_operands_by_value.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-from-clause-path-arity-rejected", "deployments": [], "key": "dynamodb/partiql-from-clause-path-arity-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_from_clause_path_arity_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-hash-and-unterminated-block-comment-rejected", "deployments": [], "key": "dynamodb/partiql-hash-and-unterminated-block-comment-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_hash_and_unterminated_block_comment_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-insert-and-update-item-size-boundary-at-409600-bytes", "deployments": [], "key": "dynamodb/partiql-insert-and-update-item-size-boundary-at-409600-bytes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_insert_and_update_item_size_boundary_at_409600_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-line-and-block-comments-ignored-order-by-asc", "deployments": [], "key": "dynamodb/partiql-line-and-block-comments-ignored-order-by-asc", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_line_and_block_comments_ignored_order_by_asc.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-or-negated-sort-key-branch-runs-and-unions", "deployments": [], "key": "dynamodb/partiql-or-negated-sort-key-branch-runs-and-unions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_or_negated_sort_key_branch_runs_and_unions.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-ordering-binary-byte-order-and-string-number-cross-type-match", "deployments": [], "key": "dynamodb/partiql-ordering-binary-byte-order-and-string-number-cross-type-match", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_partiql_ordering_binary_byte_order_and_string_number_cross_type_match.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-partition-key-predicate-is-planned-as-a-query-not-a-scan", "deployments": [], "key": "dynamodb/partiql-partition-key-predicate-is-planned-as-a-query-not-a-scan", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_partiql_partition_key_predicate_is_planned_as_a_query_not_a_scan.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-relational-operators-reject-complex-type-operands", "deployments": [], "key": "dynamodb/partiql-relational-operators-reject-complex-type-operands", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_relational_operators_reject_complex_type_operands.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-and-query-agree-on-one-partition", "deployments": [], "key": "dynamodb/partiql-select-and-query-agree-on-one-partition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_partiql_select_and_query_agree_on_one_partition.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-between-in-or-order-by-desc-and-not-equal", "deployments": [], "key": "dynamodb/partiql-select-between-in-or-order-by-desc-and-not-equal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_between_in_or_order_by_desc_and_not_equal.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-condition-function-forms", "deployments": [], "key": "dynamodb/partiql-select-condition-function-forms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_condition_function_forms.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-gsi-include-projection-nonprojected-filter-rejected", "deployments": [], "key": "dynamodb/partiql-select-gsi-include-projection-nonprojected-filter-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_gsi_include_projection_nonprojected_filter_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-index-qualified-capacity-table-and-index-arms", "deployments": [], "key": "dynamodb/partiql-select-index-qualified-capacity-table-and-index-arms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_index_qualified_capacity_table_and_index_arms.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-index-qualifier-projection-follows-index-type", "deployments": [], "key": "dynamodb/partiql-select-index-qualifier-projection-follows-index-type", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_index_qualifier_projection_follows_index_type.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-index-unprojected-filter-refusal-scoped-to-key-condition", "deployments": [], "key": "dynamodb/partiql-select-index-unprojected-filter-refusal-scoped-to-key-condition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_index_unprojected_filter_refusal_scoped_to_key_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-lsi-keys-only-nonprojected-filter-and-in-between-key-forms", "deployments": [], "key": "dynamodb/partiql-select-lsi-keys-only-nonprojected-filter-and-in-between-key-forms", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_lsi_keys_only_nonprojected_filter_and_in_between_key_forms.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-projects-nested-map-and-list-paths", "deployments": [], "key": "dynamodb/partiql-select-projects-nested-map-and-list-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_projects_nested_map_and_list_paths.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-through-gsi-qualifier", "deployments": [], "key": "dynamodb/partiql-select-through-gsi-qualifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_through_gsi_qualifier.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-select-through-lsi-qualifier", "deployments": [], "key": "dynamodb/partiql-select-through-lsi-qualifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_select_through_lsi_qualifier.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-set-add-literal-ss-and-ns", "deployments": [], "key": "dynamodb/partiql-set-add-literal-ss-and-ns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_partiql_set_add_literal_ss_and_ns.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-set-add-on-absent-item-rejected", "deployments": [], "key": "dynamodb/partiql-set-add-on-absent-item-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_set_add_on_absent_item_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-set-add-set-delete-accepted-forms", "deployments": [], "key": "dynamodb/partiql-set-add-set-delete-accepted-forms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_set_add_set_delete_accepted_forms.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-set-delete-and-parameter-sets", "deployments": [], "key": "dynamodb/partiql-set-delete-and-parameter-sets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_set_delete_and_parameter_sets.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-single-quote-literal-escaping", "deployments": [], "key": "dynamodb/partiql-single-quote-literal-escaping", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_partiql_single_quote_literal_escaping.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-size-and-attribute-type-select-exact-sets-and-reject-incompatible-size", "deployments": [], "key": "dynamodb/partiql-size-and-attribute-type-select-exact-sets-and-reject-incompatible-size", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_size_and_attribute_type_select_exact_sets_and_reject_incompatible_size.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-true-false-null-literals-are-case-insensitive", "deployments": [], "key": "dynamodb/partiql-true-false-null-literals-are-case-insensitive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_partiql_true_false_null_literals_are_case_insensitive.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-typed-item-insert-update-select-then-deleted-table-refuses-statements", "deployments": [], "key": "dynamodb/partiql-typed-item-insert-update-select-then-deleted-table-refuses-statements", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_partiql_typed_item_insert_update_select_then_deleted_table_refuses_statements.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-unicode-string-round-trip", "deployments": [], "key": "dynamodb/partiql-unicode-string-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_partiql_unicode_string_round_trip.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-unknown-index-qualifier-rejected", "deployments": [], "key": "dynamodb/partiql-unknown-index-qualifier-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement"], "path": "behavioral/dynamodb/check_partiql_unknown_index_qualifier_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-unquoted-non-literal-token-as-value-rejected", "deployments": [], "key": "dynamodb/partiql-unquoted-non-literal-token-as-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_partiql_unquoted_non_literal_token_as_value_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-and-delete-returning-images", "deployments": [], "key": "dynamodb/partiql-update-and-delete-returning-images", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_and_delete_returning_images.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-delete-attribute-exists-condition", "deployments": [], "key": "dynamodb/partiql-update-delete-attribute-exists-condition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_delete_attribute_exists_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-from-first-clause-order-runs-as-write", "deployments": [], "key": "dynamodb/partiql-update-from-first-clause-order-runs-as-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchExecuteStatement", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_from_first_clause_order_runs_as_write.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-growth-past-400kb-matches-update-item", "deployments": [], "key": "dynamodb/partiql-update-growth-past-400kb-matches-update-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_partiql_update_growth_past_400kb_matches_update_item.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-modified-images-empty-for-absent-half", "deployments": [], "key": "dynamodb/partiql-update-modified-images-empty-for-absent-half", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_modified_images_empty_for_absent_half.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-negative-list-index-rejected", "deployments": [], "key": "dynamodb/partiql-update-negative-list-index-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_negative_list_index_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-returning-modified-images-on-nested-paths", "deployments": [], "key": "dynamodb/partiql-update-returning-modified-images-on-nested-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_returning_modified_images_on_nested_paths.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-returning-modified-images-over-list-indices", "deployments": [], "key": "dynamodb/partiql-update-returning-modified-images-over-list-indices", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_returning_modified_images_over_list_indices.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-set-list-append-non-list-literal-operand-rejected", "deployments": [], "key": "dynamodb/partiql-update-set-list-append-non-list-literal-operand-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_set_list_append_non_list_literal_operand_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-set-literal-and-set-add-reject-mixed-type-set-members", "deployments": [], "key": "dynamodb/partiql-update-set-literal-and-set-add-reject-mixed-type-set-members", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_partiql_update_set_literal_and_set_add_reject_mixed_type_set_members.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-set-remove-nested-map-and-list-paths", "deployments": [], "key": "dynamodb/partiql-update-set-remove-nested-map-and-list-paths", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_update_set_remove_nested_map_and_list_paths.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-set-subtraction-applies-and-multiply-divide-rejected", "deployments": [], "key": "dynamodb/partiql-update-set-subtraction-applies-and-multiply-divide-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_partiql_update_set_subtraction_applies_and_multiply_divide_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-update-where-and-updateitem-condition-expression-agree-on-set-and-map-equality", "deployments": [], "key": "dynamodb/partiql-update-where-and-updateitem-condition-expression-agree-on-set-and-map-equality", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_partiql_update_where_and_updateitem_condition_expression_agree_on_set_and_map_equality.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-write-and-transaction-condition-function-ccf", "deployments": [], "key": "dynamodb/partiql-write-and-transaction-condition-function-ccf", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_write_and_transaction_condition_function_ccf.py", "service": "dynamodb"} {"check_id": "dynamodb.partiql-write-through-index-qualifier-rejected", "deployments": [], "key": "dynamodb/partiql-write-through-index-qualifier-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_partiql_write_through_index_qualifier_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.plain-write-racing-a-transaction-rejected", "deployments": [], "key": "dynamodb/plain-write-racing-a-transaction-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_plain_write_racing_a_transaction_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.point-in-time-export-restore-workflow", "deployments": [], "key": "dynamodb/point-in-time-export-restore-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:GetItem", "dynamodb:ListExports", "dynamodb:PutItem", "dynamodb:RestoreTableToPointInTime", "dynamodb:TagResource", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/dynamodb/check_point_in_time_export_restore_workflow.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-expression", "deployments": [], "key": "dynamodb/projection-expression", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_projection_expression.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-expression-does-not-reduce-get-item-and-query-consumed-capacity", "deployments": [], "key": "dynamodb/projection-expression-does-not-reduce-get-item-and-query-consumed-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_projection_expression_does_not_reduce_get_item_and_query_consumed_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-list-index-out-of-range-null-element-and-nested-list", "deployments": [], "key": "dynamodb/projection-list-index-out-of-range-null-element-and-nested-list", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_projection_list_index_out_of_range_null_element_and_nested_list.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-list-indices-compact-in-index-order", "deployments": [], "key": "dynamodb/projection-list-indices-compact-in-index-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_projection_list_indices_compact_in_index_order.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-negative-list-index-rejected-across-read-operations", "deployments": [], "key": "dynamodb/projection-negative-list-index-rejected-across-read-operations", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_projection_negative_list_index_rejected_across_read_operations.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-nested-map-path-returns-leaf-under-parent", "deployments": [], "key": "dynamodb/projection-nested-map-path-returns-leaf-under-parent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_projection_nested_map_path_returns_leaf_under_parent.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-overlap-path-order-and-list-index-rendering-rejected", "deployments": [], "key": "dynamodb/projection-overlap-path-order-and-list-index-rendering-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_projection_overlap_path_order_and_list_index_rendering_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-overlap-rejected-on-query-batch-and-transact-get", "deployments": [], "key": "dynamodb/projection-overlap-rejected-on-query-batch-and-transact-get", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_projection_overlap_rejected_on_query_batch_and_transact_get.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-overlapping-document-paths-rejected", "deployments": [], "key": "dynamodb/projection-overlapping-document-paths-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_projection_overlapping_document_paths_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-shared-list-index-and-nested-map-merge-across-read-operations", "deployments": [], "key": "dynamodb/projection-shared-list-index-and-nested-map-merge-across-read-operations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_projection_shared_list_index_and_nested_map_merge_across_read_operations.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-shared-list-index-merges-into-one-element", "deployments": [], "key": "dynamodb/projection-shared-list-index-merges-into-one-element", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_projection_shared_list_index_merges_into_one_element.py", "service": "dynamodb"} {"check_id": "dynamodb.projection-update-and-query-filter-expressions-accepted-at-4096-bytes", "deployments": [], "key": "dynamodb/projection-update-and-query-filter-expressions-accepted-at-4096-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_projection_update_and_query_filter_expressions_accepted_at_4096_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.provisioned-table-rejects-a-switch-with-no-throughput", "deployments": [], "key": "dynamodb/provisioned-table-rejects-a-switch-with-no-throughput", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_provisioned_table_rejects_a_switch_with_no_throughput.py", "service": "dynamodb"} {"check_id": "dynamodb.provisioned-table-rejects-an-on-demand-throughput-ceiling", "deployments": [], "key": "dynamodb/provisioned-table-rejects-an-on-demand-throughput-ceiling", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_provisioned_table_rejects_an_on_demand_throughput_ceiling.py", "service": "dynamodb"} {"check_id": "dynamodb.provisioned-throughput-exceeded-enforced-across-reads", "deployments": [], "key": "dynamodb/provisioned-throughput-exceeded-enforced-across-reads", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_provisioned_throughput_exceeded_enforced_across_reads.py", "service": "dynamodb"} {"check_id": "dynamodb.provisioned-throughput-on-pay-per-request", "deployments": [], "key": "dynamodb/provisioned-throughput-on-pay-per-request", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_provisioned_throughput_on_pay_per_request.py", "service": "dynamodb"} {"check_id": "dynamodb.provisioned-write-throttle-reason-and-metric-agreement-rejected", "deployments": [], "key": "dynamodb/provisioned-write-throttle-reason-and-metric-agreement-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_provisioned_write_throttle_reason_and_metric_agreement_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-and-delete-item-reject-return-values-all-new", "deployments": [], "key": "dynamodb/put-and-delete-item-reject-return-values-all-new", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_put_and_delete_item_reject_return_values_all_new.py", "service": "dynamodb"} {"check_id": "dynamodb.put-batch-write-update-index-key-empty-value-rejected", "deployments": [], "key": "dynamodb/put-batch-write-update-index-key-empty-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_put_batch_write_update_index_key_empty_value_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-get-all-scalar-types", "deployments": [], "key": "dynamodb/put-get-all-scalar-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_get_all_scalar_types.py", "service": "dynamodb"} {"check_id": "dynamodb.put-get-binary-blob-round-trip", "deployments": [], "key": "dynamodb/put-get-binary-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_get_binary_blob_round_trip.py", "service": "dynamodb"} {"check_id": "dynamodb.put-get-collection-types", "deployments": [], "key": "dynamodb/put-get-collection-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_get_collection_types.py", "service": "dynamodb"} {"check_id": "dynamodb.put-get-empty-vs-absent-attribute-preserved", "deployments": [], "key": "dynamodb/put-get-empty-vs-absent-attribute-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_get_empty_vs_absent_attribute_preserved.py", "service": "dynamodb"} {"check_id": "dynamodb.put-get-numeric-high-precision-round-trip", "deployments": [], "key": "dynamodb/put-get-numeric-high-precision-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_get_numeric_high_precision_round_trip.py", "service": "dynamodb"} {"check_id": "dynamodb.put-get-roundtrip-string", "deployments": [], "key": "dynamodb/put-get-roundtrip-string", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_get_roundtrip_string.py", "service": "dynamodb"} {"check_id": "dynamodb.put-get-unicode-string-round-trip", "deployments": [], "key": "dynamodb/put-get-unicode-string-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_get_unicode_string_round_trip.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-and-batch-write-item-binary-item-size-boundary-raw-bytes", "deployments": [], "key": "dynamodb/put-item-and-batch-write-item-binary-item-size-boundary-raw-bytes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_and_batch_write_item_binary_item_size_boundary_raw_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-and-batch-write-item-item-size-boundary", "deployments": [], "key": "dynamodb/put-item-and-batch-write-item-item-size-boundary", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_and_batch_write_item_item_size_boundary.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-and-batch-write-item-multibyte-string-size-utf8-bytes", "deployments": [], "key": "dynamodb/put-item-and-batch-write-item-multibyte-string-size-utf8-bytes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_and_batch_write_item_multibyte_string_size_utf8_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-and-batch-write-item-size-limit-includes-all-projected-lsi-entry", "deployments": [], "key": "dynamodb/put-item-and-batch-write-item-size-limit-includes-all-projected-lsi-entry", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_and_batch_write_item_size_limit_includes_all_projected_lsi_entry.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-and-search-vectors-return-consumed-capacity-invalid-enum-rejected", "deployments": [], "key": "dynamodb/put-item-and-search-vectors-return-consumed-capacity-invalid-enum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_put_item_and_search_vectors_return_consumed_capacity_invalid_enum_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-binary-set-zero-length-member-round-trips", "deployments": [], "key": "dynamodb/put-item-binary-set-zero-length-member-round-trips", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_put_item_binary_set_zero_length_member_round_trips.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-condition-nested-document-paths-and-functions-rejected", "deployments": [], "key": "dynamodb/put-item-condition-nested-document-paths-and-functions-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_condition_nested_document_paths_and_functions_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-condition-nested-document-paths-and-functions-that-hold", "deployments": [], "key": "dynamodb/put-item-condition-nested-document-paths-and-functions-that-hold", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_condition_nested_document_paths_and_functions_that_hold.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-consumed-capacity-sums-table-and-index-arms", "deployments": [], "key": "dynamodb/put-item-consumed-capacity-sums-table-and-index-arms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_consumed_capacity_sums_table_and_index_arms.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-default-response-omits-attributes", "deployments": [], "key": "dynamodb/put-item-default-response-omits-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_default_response_omits_attributes.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-fractional-and-negative-hash-key-omits-consumed-capacity", "deployments": [], "key": "dynamodb/put-item-fractional-and-negative-hash-key-omits-consumed-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_fractional_and_negative_hash_key_omits_consumed_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-gsi-key-type-mismatch-rejected", "deployments": [], "key": "dynamodb/put-item-gsi-key-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_put_item_gsi_key_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-key-type-mismatch-rejected", "deployments": [], "key": "dynamodb/put-item-key-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_put_item_key_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-nested-map-set-and-number-list-contents-count-toward-item-size-limit", "deployments": [], "key": "dynamodb/put-item-nested-map-set-and-number-list-contents-count-toward-item-size-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_nested_map_set_and_number_list_contents_count_toward_item_size_limit.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-nested-set-in-list-or-map-empty-rejected-empty-string-member-round-trips", "deployments": [], "key": "dynamodb/put-item-nested-set-in-list-or-map-empty-rejected-empty-string-member-round-trips", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_nested_set_in_list_or_map_empty_rejected_empty_string_member_round_trips.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-number-precision-exceeds-limit-rejected", "deployments": [], "key": "dynamodb/put-item-number-precision-exceeds-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_number_precision_exceeds_limit_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-omitting-a-gsi-key-is-a-sparse-write", "deployments": [], "key": "dynamodb/put-item-omitting-a-gsi-key-is-a-sparse-write", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_put_item_omitting_a_gsi_key_is_a_sparse_write.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-on-deleting-table-rejected", "deployments": [], "key": "dynamodb/put-item-on-deleting-table-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_on_deleting_table_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-oversized-overwrite-rejected-ignoring-existing-image", "deployments": [], "key": "dynamodb/put-item-oversized-overwrite-rejected-ignoring-existing-image", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_oversized_overwrite_rejected_ignoring_existing_image.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-overwrite-consumed-capacity-follows-larger-item-image", "deployments": [], "key": "dynamodb/put-item-overwrite-consumed-capacity-follows-larger-item-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_overwrite_consumed_capacity_follows_larger_item_image.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-overwrite-replaces-item", "deployments": [], "key": "dynamodb/put-item-overwrite-replaces-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_overwrite_replaces_item.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-sparse-write-charges-no-index-capacity", "deployments": [], "key": "dynamodb/put-item-sparse-write-charges-no-index-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_sparse_write_charges_no_index_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-two-empty-members-in-ss-and-bs-rejected-as-duplicate-collections", "deployments": [], "key": "dynamodb/put-item-two-empty-members-in-ss-and-bs-rejected-as-duplicate-collections", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_two_empty_members_in_ss_and_bs_rejected_as_duplicate_collections.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-vector-hash-search-schema-missing-vs-empty-string", "deployments": [], "key": "dynamodb/put-item-vector-hash-search-schema-missing-vs-empty-string", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_put_item_vector_hash_search_schema_missing_vs_empty_string.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-vector-index-charged-only-when-projection-changes", "deployments": [], "key": "dynamodb/put-item-vector-index-charged-only-when-projection-changes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_vector_index_charged_only_when_projection_changes.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-vector-of-wrong-dimension-rejected", "deployments": [], "key": "dynamodb/put-item-vector-of-wrong-dimension-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_item_vector_of_wrong_dimension_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-item-vector-write-validation-and-search-projection", "deployments": [], "key": "dynamodb/put-item-vector-write-validation-and-search-projection", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_put_item_vector_write_validation_and_search_projection.py", "service": "dynamodb"} {"check_id": "dynamodb.put-resource-policy-oversized", "deployments": [], "key": "dynamodb/put-resource-policy-oversized", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy"], "path": "behavioral/dynamodb/check_put_resource_policy_oversized.py", "service": "dynamodb"} {"check_id": "dynamodb.put-resource-policy-revision-id-conflict-rejected", "deployments": [], "key": "dynamodb/put-resource-policy-revision-id-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_put_resource_policy_revision_id_conflict_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.put-return-values-all-old", "deployments": [], "key": "dynamodb/put-return-values-all-old", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_put_return_values_all_old.py", "service": "dynamodb"} {"check_id": "dynamodb.put-update-delete-item-return-consumed-capacity-invalid-enum-rejected", "deployments": [], "key": "dynamodb/put-update-delete-item-return-consumed-capacity-invalid-enum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_put_update_delete_item_return_consumed_capacity_invalid_enum_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.putitem-condition-comparison-on-missing-attribute", "deployments": [], "key": "dynamodb/putitem-condition-comparison-on-missing-attribute", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_putitem_condition_comparison_on_missing_attribute.py", "service": "dynamodb"} {"check_id": "dynamodb.putitem-condition-expression-and-or-not-precedence", "deployments": [], "key": "dynamodb/putitem-condition-expression-and-or-not-precedence", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_putitem_condition_expression_and_or_not_precedence.py", "service": "dynamodb"} {"check_id": "dynamodb.putitem-not-contains-condition-gates-the-write", "deployments": [], "key": "dynamodb/putitem-not-contains-condition-gates-the-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_putitem_not_contains_condition_gates_the_write.py", "service": "dynamodb"} {"check_id": "dynamodb.query-and-put-item-placeholder-and-reserved-word-validation", "deployments": [], "key": "dynamodb/query-and-put-item-placeholder-and-reserved-word-validation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_and_put_item_placeholder_and_reserved_word_validation.py", "service": "dynamodb"} {"check_id": "dynamodb.query-and-update-item-placeholders-without-an-expression-rejected", "deployments": [], "key": "dynamodb/query-and-update-item-placeholders-without-an-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_query_and_update_item_placeholders_without_an_expression_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-base-table-primary-key-in-filter-expression-rejected", "deployments": [], "key": "dynamodb/query-base-table-primary-key-in-filter-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_base_table_primary_key_in_filter_expression_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-begins-with", "deployments": [], "key": "dynamodb/query-begins-with", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_begins_with.py", "service": "dynamodb"} {"check_id": "dynamodb.query-capacity-gsi-rejects-consistent-read-lsi-accepts-it", "deployments": [], "key": "dynamodb/query-capacity-gsi-rejects-consistent-read-lsi-accepts-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_capacity_gsi_rejects_consistent_read_lsi_accepts_it.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-expression", "deployments": [], "key": "dynamodb/query-filter-expression", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_expression.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-expression-between-reversed-bounds-rejected", "deployments": [], "key": "dynamodb/query-filter-expression-between-reversed-bounds-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_expression_between_reversed_bounds_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-expression-in-operator-with-101-operands-rejected", "deployments": [], "key": "dynamodb/query-filter-expression-in-operator-with-101-operands-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_expression_in_operator_with_101_operands_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-expression-never-and-partly-matching-costs-nothing", "deployments": [], "key": "dynamodb/query-filter-expression-never-and-partly-matching-costs-nothing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_expression_never_and_partly_matching_costs_nothing.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-expression-operators-match-scan-twin-in-partition", "deployments": [], "key": "dynamodb/query-filter-expression-operators-match-scan-twin-in-partition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_filter_expression_operators_match_scan_twin_in_partition.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-expression-parentheses-and-document-paths", "deployments": [], "key": "dynamodb/query-filter-expression-parentheses-and-document-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_expression_parentheses_and_document_paths.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-expression-redundant-parentheses-rejected", "deployments": [], "key": "dynamodb/query-filter-expression-redundant-parentheses-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_expression_redundant_parentheses_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-expression-undefined-value-rejected-over-a-1mb-partition", "deployments": [], "key": "dynamodb/query-filter-expression-undefined-value-rejected-over-a-1mb-partition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_expression_undefined_value_rejected_over_a_1mb_partition.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-legacy-ands-by-default-ors-under-conditional-operator", "deployments": [], "key": "dynamodb/query-filter-legacy-ands-by-default-ors-under-conditional-operator", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_legacy_ands_by_default_ors_under_conditional_operator.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-legacy-comparison-operators-beyond-eq", "deployments": [], "key": "dynamodb/query-filter-legacy-comparison-operators-beyond-eq", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_legacy_comparison_operators_beyond_eq.py", "service": "dynamodb"} {"check_id": "dynamodb.query-filter-legacy-not-null-with-value-list-rejected", "deployments": [], "key": "dynamodb/query-filter-legacy-not-null-with-value-list-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_filter_legacy_not_null_with_value_list_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-gsi-four-range-key-schema-orders-narrows-and-reverses", "deployments": [], "key": "dynamodb/query-gsi-four-range-key-schema-orders-narrows-and-reverses", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_gsi_four_range_key_schema_orders_narrows_and_reverses.py", "service": "dynamodb"} {"check_id": "dynamodb.query-gsi-four-range-key-schema-skipping-two-attributes-rejected", "deployments": [], "key": "dynamodb/query-gsi-four-range-key-schema-skipping-two-attributes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_gsi_four_range_key_schema_skipping_two_attributes_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-gsi-multi-range-key-schema-requires-equality-prefix", "deployments": [], "key": "dynamodb/query-gsi-multi-range-key-schema-requires-equality-prefix", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_gsi_multi_range_key_schema_requires_equality_prefix.py", "service": "dynamodb"} {"check_id": "dynamodb.query-indexes-capacity-sums-bytes-once-across-table-gsi-and-lsi", "deployments": [], "key": "dynamodb/query-indexes-capacity-sums-bytes-once-across-table-gsi-and-lsi", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_indexes_capacity_sums_bytes_once_across_table_gsi_and_lsi.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition", "deployments": [], "key": "dynamodb/query-key-condition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_key_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition-document-path-forms-and-reserved-head-rejected", "deployments": [], "key": "dynamodb/query-key-condition-document-path-forms-and-reserved-head-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_key_condition_document_path_forms_and_reserved_head_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition-duplicate-sort-key-clause-and-nested-path-rejected", "deployments": [], "key": "dynamodb/query-key-condition-duplicate-sort-key-clause-and-nested-path-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_key_condition_duplicate_sort_key_clause_and_nested_path_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition-expression-third-predicate-rejected", "deployments": [], "key": "dynamodb/query-key-condition-expression-third-predicate-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_key_condition_expression_third_predicate_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition-ge-negative-n-sort-key-numeric-order", "deployments": [], "key": "dynamodb/query-key-condition-ge-negative-n-sort-key-numeric-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_key_condition_ge_negative_n_sort_key_numeric_order.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition-non-key-missing-partition-begins-with-partition-rejected", "deployments": [], "key": "dynamodb/query-key-condition-non-key-missing-partition-begins-with-partition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_key_condition_non_key_missing_partition_begins_with_partition_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition-operand-type-vs-schema-type-rejected", "deployments": [], "key": "dynamodb/query-key-condition-operand-type-vs-schema-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_key_condition_operand_type_vs_schema_type_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition-syntax-error-and-attribute-type-function-rejected", "deployments": [], "key": "dynamodb/query-key-condition-syntax-error-and-attribute-type-function-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_key_condition_syntax_error_and_attribute_type_function_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-key-condition-undefined-value-vs-bad-operand-precedence", "deployments": [], "key": "dynamodb/query-key-condition-undefined-value-vs-bad-operand-precedence", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_key_condition_undefined_value_vs_bad_operand_precedence.py", "service": "dynamodb"} {"check_id": "dynamodb.query-limit", "deployments": [], "key": "dynamodb/query-limit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_limit.py", "service": "dynamodb"} {"check_id": "dynamodb.query-limit-applied-before-filter-expression", "deployments": [], "key": "dynamodb/query-limit-applied-before-filter-expression", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_limit_applied_before_filter_expression.py", "service": "dynamodb"} {"check_id": "dynamodb.query-limit-at-partition-count-keeps-lastevaluatedkey-scan-limit-above-count-drops-it", "deployments": [], "key": "dynamodb/query-limit-at-partition-count-keeps-lastevaluatedkey-scan-limit-above-count-drops-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_limit_at_partition_count_keeps_lastevaluatedkey_scan_limit_above_count_drops_it.py", "service": "dynamodb"} {"check_id": "dynamodb.query-limit-zero-rejected", "deployments": [], "key": "dynamodb/query-limit-zero-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_limit_zero_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-matching-nothing-still-consumes-read-capacity", "deployments": [], "key": "dynamodb/query-matching-nothing-still-consumes-read-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_matching_nothing_still_consumes_read_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.query-mixing-key-conditions-and-expression-rejected", "deployments": [], "key": "dynamodb/query-mixing-key-conditions-and-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_mixing_key_conditions_and_expression_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-natural-1mb-page-truncation", "deployments": [], "key": "dynamodb/query-natural-1mb-page-truncation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_natural_1mb_page_truncation.py", "service": "dynamodb"} {"check_id": "dynamodb.query-nested-non-redundant-parenthesized-key-condition", "deployments": [], "key": "dynamodb/query-nested-non-redundant-parenthesized-key-condition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_nested_non_redundant_parenthesized_key_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.query-never-returns-an-empty-page-with-a-last-evaluated-key", "deployments": [], "key": "dynamodb/query-never-returns-an-empty-page-with-a-last-evaluated-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_never_returns_an_empty_page_with_a_last_evaluated_key.py", "service": "dynamodb"} {"check_id": "dynamodb.query-on-index-consumed-capacity-attributes-the-index", "deployments": [], "key": "dynamodb/query-on-index-consumed-capacity-attributes-the-index", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_on_index_consumed_capacity_attributes_the_index.py", "service": "dynamodb"} {"check_id": "dynamodb.query-pages-at-1mb-before-a-never-matching-filter", "deployments": [], "key": "dynamodb/query-pages-at-1mb-before-a-never-matching-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_pages_at_1mb_before_a_never_matching_filter.py", "service": "dynamodb"} {"check_id": "dynamodb.query-pagination-covers-every-item-exactly-once-in-key-order", "deployments": [], "key": "dynamodb/query-pagination-covers-every-item-exactly-once-in-key-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_pagination_covers_every_item_exactly_once_in_key_order.py", "service": "dynamodb"} {"check_id": "dynamodb.query-pagination-exclusive-start-key", "deployments": [], "key": "dynamodb/query-pagination-exclusive-start-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_pagination_exclusive_start_key.py", "service": "dynamodb"} {"check_id": "dynamodb.query-pagination-no-duplicates", "deployments": [], "key": "dynamodb/query-pagination-no-duplicates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_pagination_no_duplicates.py", "service": "dynamodb"} {"check_id": "dynamodb.query-reverse-pages-at-1mb-in-descending-key-order", "deployments": [], "key": "dynamodb/query-reverse-pages-at-1mb-in-descending-key-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_reverse_pages_at_1mb_in_descending_key_order.py", "service": "dynamodb"} {"check_id": "dynamodb.query-scan-exclusive-start-key-empty-value-rejected", "deployments": [], "key": "dynamodb/query-scan-exclusive-start-key-empty-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_query_scan_exclusive_start_key_empty_value_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-scan-index-forward-false", "deployments": [], "key": "dynamodb/query-scan-index-forward-false", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_scan_index_forward_false.py", "service": "dynamodb"} {"check_id": "dynamodb.query-unbalanced-nested-key-condition-rejected", "deployments": [], "key": "dynamodb/query-unbalanced-nested-key-condition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_unbalanced_nested_key_condition_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.query-undefined-expression-value-precedes-resource-not-found", "deployments": [], "key": "dynamodb/query-undefined-expression-value-precedes-resource-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_undefined_expression_value_precedes_resource_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.query-value-first-key-condition-operand-message-states-operator-as-written", "deployments": [], "key": "dynamodb/query-value-first-key-condition-operand-message-states-operator-as-written", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_value_first_key_condition_operand_message_states_operator_as_written.py", "service": "dynamodb"} {"check_id": "dynamodb.query-value-first-sort-key-comparison-and-size-of-absent-attribute", "deployments": [], "key": "dynamodb/query-value-first-sort-key-comparison-and-size-of-absent-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_query_value_first_sort_key_comparison_and_size_of_absent_attribute.py", "service": "dynamodb"} {"check_id": "dynamodb.re-enabling-a-stream-mints-a-new-descriptor", "deployments": [], "key": "dynamodb/re-enabling-a-stream-mints-a-new-descriptor", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_re_enabling_a_stream_mints_a_new_descriptor.py", "service": "dynamodb"} {"check_id": "dynamodb.replica-auto-scaling-describe-update", "deployments": [], "key": "dynamodb/replica-auto-scaling-describe-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:UpdateTable", "dynamodb:UpdateTableReplicaAutoScaling"], "path": "behavioral/dynamodb/check_replica_auto_scaling_describe_update.py", "service": "dynamodb"} {"check_id": "dynamodb.replica-autoscaling-not-found", "deployments": [], "key": "dynamodb/replica-autoscaling-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:UpdateTableReplicaAutoScaling"], "path": "behavioral/dynamodb/check_replica_autoscaling_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.replica-autoscaling-policy-applied", "deployments": [], "key": "dynamodb/replica-autoscaling-policy-applied", "labels": ["axis:happy-path", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:UpdateTable", "dynamodb:UpdateTableReplicaAutoScaling", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/dynamodb/check_replica_autoscaling_policy_applied.py", "service": "dynamodb"} {"check_id": "dynamodb.request-validation-precedes-missing-table-lookup-rejected", "deployments": [], "key": "dynamodb/request-validation-precedes-missing-table-lookup-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:DeleteItem", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_request_validation_precedes_missing_table_lookup_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.reserved-word-bare-rejected-across-update-filter-and-projection", "deployments": [], "key": "dynamodb/reserved-word-bare-rejected-across-update-filter-and-projection", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_reserved_word_bare_rejected_across_update_filter_and_projection.py", "service": "dynamodb"} {"check_id": "dynamodb.reserved-word-needs-expression-attribute-name", "deployments": [], "key": "dynamodb/reserved-word-needs-expression-attribute-name", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_reserved_word_needs_expression_attribute_name.py", "service": "dynamodb"} {"check_id": "dynamodb.resource-policy-delete-nonexistent-is-noop", "deployments": [], "key": "dynamodb/resource-policy-delete-nonexistent-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy"], "path": "behavioral/dynamodb/check_resource_policy_delete_nonexistent_is_noop.py", "service": "dynamodb"} {"check_id": "dynamodb.resource-policy-explicit-deny-blocks-access-rejected", "deployments": [], "key": "dynamodb/resource-policy-explicit-deny-blocks-access-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_resource_policy_explicit_deny_blocks_access_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.resource-policy-explicit-deny-on-getitem-rejected-put-still-allowed", "deployments": [], "key": "dynamodb/resource-policy-explicit-deny-on-getitem-rejected-put-still-allowed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:PutResourcePolicy", "dynamodb:Scan", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_resource_policy_explicit_deny_on_getitem_rejected_put_still_allowed.py", "service": "dynamodb"} {"check_id": "dynamodb.resource-policy-lifecycle", "deployments": [], "key": "dynamodb/resource-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy"], "path": "behavioral/dynamodb/check_resource_policy_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.resource-policy-not-found", "deployments": [], "key": "dynamodb/resource-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy"], "path": "behavioral/dynamodb/check_resource_policy_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.resource-policy-put-get-delete-lifecycle", "deployments": [], "key": "dynamodb/resource-policy-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_resource_policy_put_get_delete_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.resource-policy-revision-mismatch", "deployments": [], "key": "dynamodb/resource-policy-revision-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy"], "path": "behavioral/dynamodb/check_resource_policy_revision_mismatch.py", "service": "dynamodb"} {"check_id": "dynamodb.response-requestid-format-and-content-length-match-body-on-error", "deployments": [], "key": "dynamodb/response-requestid-format-and-content-length-match-body-on-error", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_response_requestid_format_and_content_length_match_body_on_error.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-backup-name-conflict", "deployments": [], "key": "dynamodb/restore-backup-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:RestoreTableFromBackup", "dynamodb:TagResource"], "path": "behavioral/dynamodb/check_restore_backup_name_conflict.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-from-backup-drops-tags-stream-ttl-deletion-protection", "deployments": [], "key": "dynamodb/restore-from-backup-drops-tags-stream-ttl-deletion-protection", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:ListTagsOfResource", "dynamodb:RestoreTableFromBackup", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_restore_from_backup_drops_tags_stream_ttl_deletion_protection.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-from-backup-lifecycle", "deployments": [], "key": "dynamodb/restore-from-backup-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:RestoreTableFromBackup"], "path": "behavioral/dynamodb/check_restore_from_backup_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-from-backup-not-found-rejected", "deployments": [], "key": "dynamodb/restore-from-backup-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable", "dynamodb:RestoreTableFromBackup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb/check_restore_from_backup_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-invalid-time", "deployments": [], "key": "dynamodb/restore-invalid-time", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:RestoreTableToPointInTime", "dynamodb:UpdateContinuousBackups"], "path": "behavioral/dynamodb/check_restore_invalid_time.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-table-from-backup-creates-active-table", "deployments": [], "key": "dynamodb/restore-table-from-backup-creates-active-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:RestoreTableFromBackup"], "path": "behavioral/dynamodb/check_restore_table_from_backup_creates_active_table.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-table-from-backup-sse-override-uses-customer-key", "deployments": [], "key": "dynamodb/restore-table-from-backup-sse-override-uses-customer-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable", "dynamodb:RestoreTableFromBackup", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/dynamodb/check_restore_table_from_backup_sse_override_uses_customer_key.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-table-target-name-already-exists-rejected", "deployments": [], "key": "dynamodb/restore-table-target-name-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:RestoreTableFromBackup"], "path": "behavioral/dynamodb/check_restore_table_target_name_already_exists_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-table-target-name-conflict-rejected", "deployments": [], "key": "dynamodb/restore-table-target-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:DeleteBackup", "dynamodb:DeleteTable", "dynamodb:DescribeBackup", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:RestoreTableFromBackup"], "path": "behavioral/dynamodb/check_restore_table_target_name_conflict_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-table-to-point-in-time-creates-active-table", "deployments": [], "key": "dynamodb/restore-table-to-point-in-time-creates-active-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:RestoreTableToPointInTime", "dynamodb:UpdateContinuousBackups"], "path": "behavioral/dynamodb/check_restore_table_to_point_in_time_creates_active_table.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-to-earliest-restorable-time-excludes-later-writes", "deployments": [], "key": "dynamodb/restore-to-earliest-restorable-time-excludes-later-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:RestoreTableToPointInTime", "dynamodb:UpdateContinuousBackups"], "path": "behavioral/dynamodb/check_restore_to_earliest_restorable_time_excludes_later_writes.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-to-point-in-time-invalid-restore-time-rejected", "deployments": [], "key": "dynamodb/restore-to-point-in-time-invalid-restore-time-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:RestoreTableToPointInTime", "dynamodb:UpdateContinuousBackups"], "path": "behavioral/dynamodb/check_restore_to_point_in_time_invalid_restore_time_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-to-point-in-time-invalid-time-rejected", "deployments": [], "key": "dynamodb/restore-to-point-in-time-invalid-time-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:ListTables", "dynamodb:RestoreTableToPointInTime", "dynamodb:UpdateContinuousBackups"], "path": "behavioral/dynamodb/check_restore_to_point_in_time_invalid_time_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.restore-to-point-in-time-lifecycle", "deployments": [], "key": "dynamodb/restore-to-point-in-time-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:RestoreTableToPointInTime", "dynamodb:UpdateContinuousBackups"], "path": "behavioral/dynamodb/check_restore_to_point_in_time_lifecycle.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-all-projected-attributes-rejects-attributes-to-get", "deployments": [], "key": "dynamodb/scan-all-projected-attributes-rejects-attributes-to-get", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_all_projected_attributes_rejects_attributes_to_get.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-and-query-filter-ordering-comparison-on-a-set-attribute-rejected", "deployments": [], "key": "dynamodb/scan-and-query-filter-ordering-comparison-on-a-set-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_and_query_filter_ordering_comparison_on_a_set_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-and-query-filter-set-equality-compares-members-not-order-or-subset", "deployments": [], "key": "dynamodb/scan-and-query-filter-set-equality-compares-members-not-order-or-subset", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_and_query_filter_set_equality_compares_members_not_order_or_subset.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-combined-filter-and-projection-does-not-reduce-consumed-capacity", "deployments": [], "key": "dynamodb/scan-combined-filter-and-projection-does-not-reduce-consumed-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_combined_filter_and_projection_does_not_reduce_consumed_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-conditional-operator-or-unions-legacy-filters", "deployments": [], "key": "dynamodb/scan-conditional-operator-or-unions-legacy-filters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_conditional_operator_or_unions_legacy_filters.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-exclusive-start-key-naming-a-deleted-item-resumes-without-error", "deployments": [], "key": "dynamodb/scan-exclusive-start-key-naming-a-deleted-item-resumes-without-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_scan_exclusive_start_key_naming_a_deleted_item_resumes_without_error.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-exclusive-start-key-naming-an-attribute-outside-the-key-schema-rejected", "deployments": [], "key": "dynamodb/scan-exclusive-start-key-naming-an-attribute-outside-the-key-schema-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_exclusive_start_key_naming_an_attribute_outside_the_key_schema_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-begins-with-non-string-operand-rejected", "deployments": [], "key": "dynamodb/scan-filter-begins-with-non-string-operand-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_begins_with_non_string_operand_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-between-binary-attribute-reversed-bounds-rejected", "deployments": [], "key": "dynamodb/scan-filter-between-binary-attribute-reversed-bounds-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_between_binary_attribute_reversed_bounds_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-between-binary-attribute-unsigned-byte-order-inclusive", "deployments": [], "key": "dynamodb/scan-filter-between-binary-attribute-unsigned-byte-order-inclusive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_between_binary_attribute_unsigned_byte_order_inclusive.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-binary-attribute-unsigned-byte-order", "deployments": [], "key": "dynamodb/scan-filter-binary-attribute-unsigned-byte-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_binary_attribute_unsigned_byte_order.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-conditional-operator-document-value-equality", "deployments": [], "key": "dynamodb/scan-filter-conditional-operator-document-value-equality", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_conditional_operator_document_value_equality.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-eq-and-contains-type-strict-across-s-n-b", "deployments": [], "key": "dynamodb/scan-filter-eq-and-contains-type-strict-across-s-n-b", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_eq_and_contains_type_strict_across_s_n_b.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-expression-le-ge-and-binary-begins-with", "deployments": [], "key": "dynamodb/scan-filter-expression-le-ge-and-binary-begins-with", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_expression_le_ge_and_binary_begins_with.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-expression-not-and-per-comparison-parens", "deployments": [], "key": "dynamodb/scan-filter-expression-not-and-per-comparison-parens", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_expression_not_and_per_comparison_parens.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-expression-ordering-comparison-non-orderable-operand-rejected", "deployments": [], "key": "dynamodb/scan-filter-expression-ordering-comparison-non-orderable-operand-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_expression_ordering_comparison_non_orderable_operand_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-expression-redundant-nested-parens-rejected", "deployments": [], "key": "dynamodb/scan-filter-expression-redundant-nested-parens-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_expression_redundant_nested_parens_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-legacy-contains-wrong-operand-count-rejected", "deployments": [], "key": "dynamodb/scan-filter-legacy-contains-wrong-operand-count-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_legacy_contains_wrong_operand_count_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-legacy-in-string-and-numeric", "deployments": [], "key": "dynamodb/scan-filter-legacy-in-string-and-numeric", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_legacy_in_string_and_numeric.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-legacy-in-with-a-large-operand-list", "deployments": [], "key": "dynamodb/scan-filter-legacy-in-with-a-large-operand-list", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_legacy_in_with_a_large_operand_list.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-legacy-numeric-decimal-negative", "deployments": [], "key": "dynamodb/scan-filter-legacy-numeric-decimal-negative", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_legacy_numeric_decimal_negative.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-legacy-string-byte-order", "deployments": [], "key": "dynamodb/scan-filter-legacy-string-byte-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_legacy_string_byte_order.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-ne-and-not-contains-on-missing-attribute", "deployments": [], "key": "dynamodb/scan-filter-ne-and-not-contains-on-missing-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_ne_and_not_contains_on_missing_attribute.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-filter-size-covers-s-b-ss-l-m-not-n", "deployments": [], "key": "dynamodb/scan-filter-size-covers-s-b-ss-l-m-not-n", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_filter_size_covers_s_b_ss_l_m_not_n.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-pages-at-1mb-with-and-without-never-matching-filter", "deployments": [], "key": "dynamodb/scan-pages-at-1mb-with-and-without-never-matching-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_pages_at_1mb_with_and_without_never_matching_filter.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-pagination-exclusive-start-key", "deployments": [], "key": "dynamodb/scan-pagination-exclusive-start-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_pagination_exclusive_start_key.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-parallel-segments", "deployments": [], "key": "dynamodb/scan-parallel-segments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_parallel_segments.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-query-conditional-operator-needs-two-filter-conditions-rejected", "deployments": [], "key": "dynamodb/scan-query-conditional-operator-needs-two-filter-conditions-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_query_conditional_operator_needs_two_filter_conditions_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-query-legacy-and-expression-mixing-names-every-parameter-rejected", "deployments": [], "key": "dynamodb/scan-query-legacy-and-expression-mixing-names-every-parameter-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_query_legacy_and_expression_mixing_names_every_parameter_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-returns-all-items", "deployments": [], "key": "dynamodb/scan-returns-all-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_returns_all_items.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-select-all-attributes-on-partial-projection-index-rejected", "deployments": [], "key": "dynamodb/scan-select-all-attributes-on-partial-projection-index-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_select_all_attributes_on_partial_projection_index_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.scan-with-filter", "deployments": [], "key": "dynamodb/scan-with-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_scan_with_filter.py", "service": "dynamodb"} {"check_id": "dynamodb.sdk-retry-replays-the-wire-and-only-the-token-stops-the-duplicate", "deployments": [], "key": "dynamodb/sdk-retry-replays-the-wire-and-only-the-token-stops-the-duplicate", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_sdk_retry_replays_the_wire_and_only_the_token_stops_the_duplicate.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-consumed-capacity-is-vector-bytes-only-floored-and-scales", "deployments": [], "key": "dynamodb/search-vectors-consumed-capacity-is-vector-bytes-only-floored-and-scales", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_consumed_capacity_is_vector_bytes_only_floored_and_scales.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-dimension-mismatch-rejected", "deployments": [], "key": "dynamodb/search-vectors-dimension-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_dimension_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-dot-product-order-and-score-precision", "deployments": [], "key": "dynamodb/search-vectors-dot-product-order-and-score-precision", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_dot_product_order_and_score_precision.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-expression-attribute-value-mismatch-rejected", "deployments": [], "key": "dynamodb/search-vectors-expression-attribute-value-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_expression_attribute_value_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-non-numeric-search-vector-element-rejected", "deployments": [], "key": "dynamodb/search-vectors-non-numeric-search-vector-element-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_non_numeric_search_vector_element_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-not-found", "deployments": [], "key": "dynamodb/search-vectors-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-orders-by-cosine-distance", "deployments": [], "key": "dynamodb/search-vectors-orders-by-cosine-distance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_orders_by_cosine_distance.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-query-workflow", "deployments": [], "key": "dynamodb/search-vectors-query-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_query_workflow.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-resource-not-found-rejected", "deployments": [], "key": "dynamodb/search-vectors-resource-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_resource_not_found_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.search-vectors-unknown-index-rejected", "deployments": [], "key": "dynamodb/search-vectors-unknown-index-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_search_vectors_unknown_index_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.select-all-projected-attributes-requires-an-index-rejected", "deployments": [], "key": "dynamodb/select-all-projected-attributes-requires-an-index-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_select_all_projected_attributes_requires_an_index_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.select-non-specific-values-reject-projection-expression", "deployments": [], "key": "dynamodb/select-non-specific-values-reject-projection-expression", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_select_non_specific_values_reject_projection_expression.py", "service": "dynamodb"} {"check_id": "dynamodb.server-side-point-in-time-recovery-enforced-after-enable", "deployments": [], "key": "dynamodb/server-side-point-in-time-recovery-enforced-after-enable", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:UpdateContinuousBackups"], "path": "behavioral/dynamodb/check_server_side_point_in_time_recovery_enforced_after_enable.py", "service": "dynamodb"} {"check_id": "dynamodb.set-arithmetic-grouping-size-utf16-and-add-empty-string-to-set", "deployments": [], "key": "dynamodb/set-arithmetic-grouping-size-utf16-and-add-empty-string-to-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_set_arithmetic_grouping_size_utf16_and_add_empty_string_to_set.py", "service": "dynamodb"} {"check_id": "dynamodb.set-arithmetic-on-missing-attribute-rejected", "deployments": [], "key": "dynamodb/set-arithmetic-on-missing-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_set_arithmetic_on_missing_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.sets-reject-empty-and-duplicate-members", "deployments": [], "key": "dynamodb/sets-reject-empty-and-duplicate-members", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_sets_reject_empty_and_duplicate_members.py", "service": "dynamodb"} {"check_id": "dynamodb.sigv4-auth-missing-forms-give-missing-authentication-token", "deployments": [], "key": "dynamodb/sigv4-auth-missing-forms-give-missing-authentication-token", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_sigv4_auth_missing_forms_give_missing_authentication_token.py", "service": "dynamodb"} {"check_id": "dynamodb.sigv4-query-string-presigned-list-tables-accepted", "deployments": [], "key": "dynamodb/sigv4-query-string-presigned-list-tables-accepted", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_sigv4_query_string_presigned_list_tables_accepted.py", "service": "dynamodb"} {"check_id": "dynamodb.sigv4-query-string-presigned-list-tables-tampered-signature-rejected", "deployments": [], "key": "dynamodb/sigv4-query-string-presigned-list-tables-tampered-signature-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_sigv4_query_string_presigned_list_tables_tampered_signature_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.sse-with-a-kms-alias-reports-the-resolved-key-arn", "deployments": [], "key": "dynamodb/sse-with-a-kms-alias-reports-the-resolved-key-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion"], "path": "behavioral/dynamodb/check_sse_with_a_kms_alias_reports_the_resolved_key_arn.py", "service": "dynamodb"} {"check_id": "dynamodb.stale-condition-update-rejected-leaves-counter-and-audit-trail-intact", "deployments": [], "key": "dynamodb/stale-condition-update-rejected-leaves-counter-and-audit-trail-intact", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_stale_condition_update_rejected_leaves_counter_and_audit_trail_intact.py", "service": "dynamodb"} {"check_id": "dynamodb.stream-arn-tag-list-untag-independent-of-table", "deployments": [], "key": "dynamodb/stream-arn-tag-list-untag-independent-of-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTagsOfResource", "dynamodb:TagResource", "dynamodb:UntagResource"], "path": "behavioral/dynamodb/check_stream_arn_tag_list_untag_independent_of_table.py", "service": "dynamodb"} {"check_id": "dynamodb.stream-iterator-at-and-after-sequence-number-resume-exactly", "deployments": [], "key": "dynamodb/stream-iterator-at-and-after-sequence-number-resume-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodb/check_stream_iterator_at_and_after_sequence_number_resume_exactly.py", "service": "dynamodb"} {"check_id": "dynamodb.stream-records-iterator-and-images", "deployments": [], "key": "dynamodb/stream-records-iterator-and-images", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator", "dynamodbstreams:ListStreams"], "path": "behavioral/dynamodb/check_stream_records_iterator_and_images.py", "service": "dynamodb"} {"check_id": "dynamodb.stream-small-limit-walk-sees-every-record-once-and-unknown-shard-not-found", "deployments": [], "key": "dynamodb/stream-small-limit-walk-sees-every-record-once-and-unknown-shard-not-found", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodb/check_stream_small_limit_walk_sees_every_record_once_and_unknown_shard_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.stream-view-type-cannot-be-changed-in-place", "deployments": [], "key": "dynamodb/stream-view-type-cannot-be-changed-in-place", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_stream_view_type_cannot_be_changed_in_place.py", "service": "dynamodb"} {"check_id": "dynamodb.string-revision-token-conditional-writes-refuse-stale-and-unissued-tokens", "deployments": [], "key": "dynamodb/string-revision-token-conditional-writes-refuse-stale-and-unissued-tokens", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_string_revision_token_conditional_writes_refuse_stale_and_unissued_tokens.py", "service": "dynamodb"} {"check_id": "dynamodb.string-sort-key-ascii-byte-order-in-ranges-prefixes-and-paging", "deployments": [], "key": "dynamodb/string-sort-key-ascii-byte-order-in-ranges-prefixes-and-paging", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_string_sort_key_ascii_byte_order_in_ranges_prefixes_and_paging.py", "service": "dynamodb"} {"check_id": "dynamodb.string-sort-key-orders-by-utf8-bytes", "deployments": [], "key": "dynamodb/string-sort-key-orders-by-utf8-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_string_sort_key_orders_by_utf8_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.table-arn-accepted-wherever-table-name-is", "deployments": [], "key": "dynamodb/table-arn-accepted-wherever-table-name-is", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_table_arn_accepted_wherever_table_name_is.py", "service": "dynamodb"} {"check_id": "dynamodb.table-arn-addresses-a-table-wherever-a-name-does", "deployments": [], "key": "dynamodb/table-arn-addresses-a-table-wherever-a-name-does", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_table_arn_addresses_a_table_wherever_a_name_does.py", "service": "dynamodb"} {"check_id": "dynamodb.table-class-round-trips-and-applies-to-indexes", "deployments": [], "key": "dynamodb/table-class-round-trips-and-applies-to-indexes", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_table_class_round_trips_and_applies_to_indexes.py", "service": "dynamodb"} {"check_id": "dynamodb.table-class-update-limit-exceeded-rejected", "deployments": [], "key": "dynamodb/table-class-update-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_table_class_update_limit_exceeded_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.table-name-charset-and-length-validated-before-existence-rejected", "deployments": [], "key": "dynamodb/table-name-charset-and-length-validated-before-existence-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_table_name_charset_and_length_validated_before_existence_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.table-name-is-scoped-to-its-region", "deployments": [], "key": "dynamodb/table-name-is-scoped-to-its-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_table_name_is_scoped_to_its_region.py", "service": "dynamodb"} {"check_id": "dynamodb.table-name-validation-precedes-existence-on-data-plane", "deployments": [], "key": "dynamodb/table-name-validation-precedes-existence-on-data-plane", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query"], "path": "behavioral/dynamodb/check_table_name_validation_precedes_existence_on_data_plane.py", "service": "dynamodb"} {"check_id": "dynamodb.table-replica-auto-scaling-update-reflected", "deployments": [], "key": "dynamodb/table-replica-auto-scaling-update-reflected", "labels": ["axis:rejection", "plane:control"], "operations": ["application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:UpdateTable", "dynamodb:UpdateTableReplicaAutoScaling", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/dynamodb/check_table_replica_auto_scaling_update_reflected.py", "service": "dynamodb"} {"check_id": "dynamodb.table-with-sort-key", "deployments": [], "key": "dynamodb/table-with-sort-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_table_with_sort_key.py", "service": "dynamodb"} {"check_id": "dynamodb.tag-overwrite-absent-untag-and-recreated-table-starts-untagged", "deployments": [], "key": "dynamodb/tag-overwrite-absent-untag-and-recreated-table-starts-untagged", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTagsOfResource", "dynamodb:TagResource", "dynamodb:UntagResource"], "path": "behavioral/dynamodb/check_tag_overwrite_absent_untag_and_recreated_table_starts_untagged.py", "service": "dynamodb"} {"check_id": "dynamodb.tag-resource-exceeds-tag-limit-rejected", "deployments": [], "key": "dynamodb/tag-resource-exceeds-tag-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTagsOfResource", "dynamodb:TagResource"], "path": "behavioral/dynamodb/check_tag_resource_exceeds_tag_limit_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.tag-resource-nonexistent-stream-arn-rejected", "deployments": [], "key": "dynamodb/tag-resource-nonexistent-stream-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTagsOfResource", "dynamodb:TagResource"], "path": "behavioral/dynamodb/check_tag_resource_nonexistent_stream_arn_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-condition-check-on-absent-item-passes-without-creating-it", "deployments": [], "key": "dynamodb/transact-condition-check-on-absent-item-passes-without-creating-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_condition_check_on_absent_item_passes_without_creating_it.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-and-write-items-table-arn-naming-another-region-rejected", "deployments": [], "key": "dynamodb/transact-get-and-write-items-table-arn-naming-another-region-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_get_and_write_items_table_arn_naming_another_region_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items", "deployments": [], "key": "dynamodb/transact-get-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-aggregate-size-over-4mb-rejected", "deployments": [], "key": "dynamodb/transact-get-items-aggregate-size-over-4mb-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_aggregate_size_over_4mb_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-at-the-100-item-cap-across-two-tables", "deployments": [], "key": "dynamodb/transact-get-items-at-the-100-item-cap-across-two-tables", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_at_the_100_item_cap_across_two_tables.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-bills-missing-items-and-reports-indexes-capacity", "deployments": [], "key": "dynamodb/transact-get-items-bills-missing-items-and-reports-indexes-capacity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_bills_missing_items_and_reports_indexes_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-consumes-twice-a-strongly-consistent-read", "deployments": [], "key": "dynamodb/transact-get-items-consumes-twice-a-strongly-consistent-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_consumes_twice_a_strongly_consistent_read.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-multi-table", "deployments": [], "key": "dynamodb/transact-get-items-multi-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_multi_table.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-never-observes-a-torn-transfer", "deployments": [], "key": "dynamodb/transact-get-items-never-observes-a-torn-transfer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_get_items_never_observes_a_torn_transfer.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-over-the-item-cap-rejected", "deployments": [], "key": "dynamodb/transact-get-items-over-the-item-cap-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_over_the_item_cap_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-preserves-request-order", "deployments": [], "key": "dynamodb/transact-get-items-preserves-request-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_preserves_request_order.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-reports-capacity-per-table-as-a-list", "deployments": [], "key": "dynamodb/transact-get-items-reports-capacity-per-table-as-a-list", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_reports_capacity_per_table_as_a_list.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-get-items-top-level-vs-cancellation-error-class", "deployments": [], "key": "dynamodb/transact-get-items-top-level-vs-cancellation-error-class", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transact_get_items_top_level_vs_cancellation_error_class.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-items-accept-placeholders-without-an-expression", "deployments": [], "key": "dynamodb/transact-items-accept-placeholders-without-an-expression", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_items_accept_placeholders_without_an_expression.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-oversized-hash-key-cancels-with-validation-error", "deployments": [], "key": "dynamodb/transact-oversized-hash-key-cancels-with-validation-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_oversized_hash_key_cancels_with_validation_error.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-token-replay-consumed-capacity-is-a-read-not-a-write", "deployments": [], "key": "dynamodb/transact-token-replay-consumed-capacity-is-a-read-not-a-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem"], "path": "behavioral/dynamodb/check_transact_token_replay_consumed_capacity_is_a_read_not_a_write.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-unused-expression-attribute-name-on-condition-check-and-get-rejected", "deployments": [], "key": "dynamodb/transact-unused-expression-attribute-name-on-condition-check-and-get-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_unused_expression_attribute_name_on_condition_check_and_get_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-update-condition-needs-item-cancels-the-passing-sibling", "deployments": [], "key": "dynamodb/transact-update-condition-needs-item-cancels-the-passing-sibling", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_transact_update_condition_needs_item_cancels_the_passing_sibling.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-aggregate-size-over-4mb-rejected", "deployments": [], "key": "dynamodb/transact-write-aggregate-size-over-4mb-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_aggregate_size_over_4mb_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-all-or-nothing", "deployments": [], "key": "dynamodb/transact-write-all-or-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_all_or_nothing.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-condition-check-and-conditional-put-billing", "deployments": [], "key": "dynamodb/transact-write-condition-check-and-conditional-put-billing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_condition_check_and_conditional_put_billing.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-condition-check-failure-returns-item-rejected", "deployments": [], "key": "dynamodb/transact-write-condition-check-failure-returns-item-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_condition_check_failure_returns_item_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-condition-non-orderable-literal-rejected", "deployments": [], "key": "dynamodb/transact-write-condition-non-orderable-literal-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_condition_non_orderable_literal_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-conflict-reason-is-transaction-conflict", "deployments": [], "key": "dynamodb/transact-write-conflict-reason-is-transaction-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_conflict_reason_is_transaction_conflict.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-delete-condition-failure-cancels-transaction", "deployments": [], "key": "dynamodb/transact-write-delete-condition-failure-cancels-transaction", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_delete_condition_failure_cancels_transaction.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-exceeds-100-items", "deployments": [], "key": "dynamodb/transact-write-exceeds-100-items", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_exceeds_100_items.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-expression-parse-errors-rejected-top-level", "deployments": [], "key": "dynamodb/transact-write-expression-parse-errors-rejected-top-level", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_expression_parse_errors_rejected_top_level.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-idempotency-mismatch", "deployments": [], "key": "dynamodb/transact-write-idempotency-mismatch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_idempotency_mismatch.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-idempotency-token", "deployments": [], "key": "dynamodb/transact-write-idempotency-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_idempotency_token.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-cancelled-by-condition-failure-reports-no-consumed-capacity", "deployments": [], "key": "dynamodb/transact-write-items-cancelled-by-condition-failure-reports-no-consumed-capacity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_cancelled_by_condition_failure_reports_no_consumed_capacity.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-client-token-idempotent-mismatch-rejected", "deployments": [], "key": "dynamodb/transact-write-items-client-token-idempotent-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_client_token_idempotent_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-condition-expression-defects-match-putitem-message", "deployments": [], "key": "dynamodb/transact-write-items-condition-expression-defects-match-putitem-message", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_condition_expression_defects_match_putitem_message.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-consumes-twice-a-plain-write", "deployments": [], "key": "dynamodb/transact-write-items-consumes-twice-a-plain-write", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_consumes_twice_a_plain_write.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-delete-with-failed-condition-cancels-other-deletes-too", "deployments": [], "key": "dynamodb/transact-write-items-delete-with-failed-condition-cancels-other-deletes-too", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_delete_with_failed_condition_cancels_other_deletes_too.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-duplicate-key-rejected", "deployments": [], "key": "dynamodb/transact-write-items-duplicate-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_duplicate_key_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-empty-index-key-validates-not-cancels", "deployments": [], "key": "dynamodb/transact-write-items-empty-index-key-validates-not-cancels", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_empty_index_key_validates_not_cancels.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-expression-size-limit-applies-per-action", "deployments": [], "key": "dynamodb/transact-write-items-expression-size-limit-applies-per-action", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_expression_size_limit_applies_per_action.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-first-fatal-defect-reported-depends-on-defect-class", "deployments": [], "key": "dynamodb/transact-write-items-first-fatal-defect-reported-depends-on-defect-class", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_first_fatal_defect_reported_depends_on_defect_class.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-index-key-type-mismatch-cancels-not-validates", "deployments": [], "key": "dynamodb/transact-write-items-index-key-type-mismatch-cancels-not-validates", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_index_key_type_mismatch_cancels_not_validates.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-invalid-table-name-names-member-path", "deployments": [], "key": "dynamodb/transact-write-items-invalid-table-name-names-member-path", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_invalid_table_name_names_member_path.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-missing-table-is-resource-not-found", "deployments": [], "key": "dynamodb/transact-write-items-missing-table-is-resource-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_missing_table_is_resource_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-near-4mb-aggregate-commits", "deployments": [], "key": "dynamodb/transact-write-items-near-4mb-aggregate-commits", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_near_4mb_aggregate_commits.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-nesting-violation-is-top-level-validation-not-cancellation", "deployments": [], "key": "dynamodb/transact-write-items-nesting-violation-is-top-level-validation-not-cancellation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_nesting_violation_is_top_level_validation_not_cancellation.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-over-the-item-cap-rejected", "deployments": [], "key": "dynamodb/transact-write-items-over-the-item-cap-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_over_the_item_cap_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-overlength-token-masks-other-violations-rejected", "deployments": [], "key": "dynamodb/transact-write-items-overlength-token-masks-other-violations-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_overlength_token_masks_other_violations_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-parenthesized-conditions-apply-and-cancel", "deployments": [], "key": "dynamodb/transact-write-items-parenthesized-conditions-apply-and-cancel", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_parenthesized_conditions_apply_and_cancel.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-put-and-update-accept-flat-409600-byte-item", "deployments": [], "key": "dynamodb/transact-write-items-put-and-update-accept-flat-409600-byte-item", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_put_and_update_accept_flat_409600_byte_item.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-put-condition-value-nesting-depth-rejected", "deployments": [], "key": "dynamodb/transact-write-items-put-condition-value-nesting-depth-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_put_condition_value_nesting_depth_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-put-over-item-size-limit", "deployments": [], "key": "dynamodb/transact-write-items-put-over-item-size-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_put_over_item_size_limit.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-put-string-set-with-zero-members-rejected", "deployments": [], "key": "dynamodb/transact-write-items-put-string-set-with-zero-members-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_put_string_set_with_zero_members_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-several-deletes-of-distinct-items-all-apply", "deployments": [], "key": "dynamodb/transact-write-items-several-deletes-of-distinct-items-all-apply", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_several_deletes_of_distinct_items_all_apply.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-token-replay-bills-exact-capacity-for-item-size", "deployments": [], "key": "dynamodb/transact-write-items-token-replay-bills-exact-capacity-for-item-size", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_token_replay_bills_exact_capacity_for_item_size.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-unused-expression-attribute-value-on-second-action-rejected", "deployments": [], "key": "dynamodb/transact-write-items-unused-expression-attribute-value-on-second-action-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_unused_expression_attribute_value_on_second_action_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-update-attribute-not-exists-upserts", "deployments": [], "key": "dynamodb/transact-write-items-update-attribute-not-exists-upserts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_update_attribute_not_exists_upserts.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-update-grows-item-over-size-limit", "deployments": [], "key": "dynamodb/transact-write-items-update-grows-item-over-size-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_update_grows_item_over_size_limit.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-update-key-and-empty-index-key-rejections", "deployments": [], "key": "dynamodb/transact-write-items-update-key-and-empty-index-key-rejections", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_update_key_and_empty_index_key_rejections.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-items-update-over-size-limit-new-and-existing-item-both-regions", "deployments": [], "key": "dynamodb/transact-write-items-update-over-size-limit-new-and-existing-item-both-regions", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_items_update_over_size_limit_new_and_existing_item_both_regions.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-multi-table-atomicity", "deployments": [], "key": "dynamodb/transact-write-multi-table-atomicity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_multi_table_atomicity.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-skew-on-absent-keys-never-commits-both", "deployments": [], "key": "dynamodb/transact-write-skew-on-absent-keys-never-commits-both", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_skew_on_absent_keys_never_commits_both.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-stale-version-update-cancels-its-companion-put", "deployments": [], "key": "dynamodb/transact-write-stale-version-update-cancels-its-companion-put", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_stale_version_update_cancels_its_companion_put.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-token-dedupes-under-concurrent-submission", "deployments": [], "key": "dynamodb/transact-write-token-dedupes-under-concurrent-submission", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_token_dedupes_under_concurrent_submission.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-write-token-replay-does-not-reapply", "deployments": [], "key": "dynamodb/transact-write-token-replay-does-not-reapply", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_write_token_replay_does_not_reapply.py", "service": "dynamodb"} {"check_id": "dynamodb.transact-wrong-typed-key-cancels-and-empty-put-key-validates", "deployments": [], "key": "dynamodb/transact-wrong-typed-key-cancels-and-empty-put-key-validates", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:TransactGetItems", "dynamodb:TransactWriteItems"], "path": "behavioral/dynamodb/check_transact_wrong_typed_key_cancels_and_empty_put_key_validates.py", "service": "dynamodb"} {"check_id": "dynamodb.transactional-read-costs-double-a-strongly-consistent-read", "deployments": [], "key": "dynamodb/transactional-read-costs-double-a-strongly-consistent-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactGetItems"], "path": "behavioral/dynamodb/check_transactional_read_costs_double_a_strongly_consistent_read.py", "service": "dynamodb"} {"check_id": "dynamodb.ttl-configuration", "deployments": [], "key": "dynamodb/ttl-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_ttl_configuration.py", "service": "dynamodb"} {"check_id": "dynamodb.ttl-disable-within-modification-interval-rejected", "deployments": [], "key": "dynamodb/ttl-disable-within-modification-interval-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_ttl_disable_within_modification_interval_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.ttl-enable-disable", "deployments": [], "key": "dynamodb/ttl-enable-disable", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_ttl_enable_disable.py", "service": "dynamodb"} {"check_id": "dynamodb.ttl-expired-item-auto-deletion", "deployments": [], "key": "dynamodb/ttl-expired-item-auto-deletion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_ttl_expired_item_auto_deletion.py", "service": "dynamodb"} {"check_id": "dynamodb.ttl-rename-while-enabled-rejected", "deployments": [], "key": "dynamodb/ttl-rename-while-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_ttl_rename_while_enabled_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.unbalanced-parenthesized-condition-expression-rejected", "deployments": [], "key": "dynamodb/unbalanced-parenthesized-condition-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_unbalanced_parenthesized_condition_expression_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.unused-expression-attribute-value-and-name-rejected", "deployments": [], "key": "dynamodb/unused-expression-attribute-value-and-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_unused_expression_attribute_value_and_name_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-continuous-backups-nonexistent", "deployments": [], "key": "dynamodb/update-continuous-backups-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:UpdateContinuousBackups"], "path": "behavioral/dynamodb/check_update_continuous_backups_nonexistent.py", "service": "dynamodb"} {"check_id": "dynamodb.update-delete-last-set-element-removes-attribute", "deployments": [], "key": "dynamodb/update-delete-last-set-element-removes-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_delete_last_set_element_removes_attribute.py", "service": "dynamodb"} {"check_id": "dynamodb.update-expression-add-number", "deployments": [], "key": "dynamodb/update-expression-add-number", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_expression_add_number.py", "service": "dynamodb"} {"check_id": "dynamodb.update-expression-add-to-set", "deployments": [], "key": "dynamodb/update-expression-add-to-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_expression_add_to_set.py", "service": "dynamodb"} {"check_id": "dynamodb.update-expression-delete-from-set", "deployments": [], "key": "dynamodb/update-expression-delete-from-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_expression_delete_from_set.py", "service": "dynamodb"} {"check_id": "dynamodb.update-expression-malformed-syntax-rejected", "deployments": [], "key": "dynamodb/update-expression-malformed-syntax-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_expression_malformed_syntax_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-expression-remove", "deployments": [], "key": "dynamodb/update-expression-remove", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_expression_remove.py", "service": "dynamodb"} {"check_id": "dynamodb.update-expression-set", "deployments": [], "key": "dynamodb/update-expression-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_expression_set.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-add-delete-empty-set-operand-rejected", "deployments": [], "key": "dynamodb/update-item-add-delete-empty-set-operand-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_add_delete_empty_set_operand_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-add-delete-empty-string-set-member-and-zero-length-binary-set-member", "deployments": [], "key": "dynamodb/update-item-add-delete-empty-string-set-member-and-zero-length-binary-set-member", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_add_delete_empty_string_set_member_and_zero_length_binary_set_member.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-add-type-mismatch", "deployments": [], "key": "dynamodb/update-item-add-type-mismatch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_add_type_mismatch.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-and-transact-update-empty-gsi-and-lsi-keys-rejected", "deployments": [], "key": "dynamodb/update-item-and-transact-update-empty-gsi-and-lsi-keys-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_and_transact_update_empty_gsi_and_lsi_keys_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-chained-arithmetic-operators-on-list-index-rejected", "deployments": [], "key": "dynamodb/update-item-chained-arithmetic-operators-on-list-index-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_chained_arithmetic_operators_on_list_index_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-condition-expression-over-4096-bytes-rejected", "deployments": [], "key": "dynamodb/update-item-condition-expression-over-4096-bytes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_condition_expression_over_4096_bytes_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-expression-substitution-total-size-over-2mb-rejected", "deployments": [], "key": "dynamodb/update-item-expression-substitution-total-size-over-2mb-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_expression_substitution_total_size_over_2mb_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-growth-over-size-limit-with-all-projected-lsi-entry", "deployments": [], "key": "dynamodb/update-item-growth-over-size-limit-with-all-projected-lsi-entry", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_growth_over_size_limit_with_all_projected_lsi_entry.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-if-not-exists-document-path-fallback-and-existing-subtract", "deployments": [], "key": "dynamodb/update-item-if-not-exists-document-path-fallback-and-existing-subtract", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_if_not_exists_document_path_fallback_and_existing_subtract.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-if-not-exists-second-operand-missing-attribute-rejected", "deployments": [], "key": "dynamodb/update-item-if-not-exists-second-operand-missing-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_if_not_exists_second_operand_missing_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-if-not-exists-size-checked-before-condition", "deployments": [], "key": "dynamodb/update-item-if-not-exists-size-checked-before-condition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_if_not_exists_size_checked_before_condition.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-index-capacity-ladder-follows-key-vs-projected-change", "deployments": [], "key": "dynamodb/update-item-index-capacity-ladder-follows-key-vs-projected-change", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_index_capacity_ladder_follows_key_vs_projected_change.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-key-attribute-immutable", "deployments": [], "key": "dynamodb/update-item-key-attribute-immutable", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_key_attribute_immutable.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-key-schema-mismatch", "deployments": [], "key": "dynamodb/update-item-key-schema-mismatch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_key_schema_mismatch.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-lsi-key-type-mismatch-rejected", "deployments": [], "key": "dynamodb/update-item-lsi-key-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_lsi_key_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-lsi-sort-key-move-and-combined-gsi-lsi-move", "deployments": [], "key": "dynamodb/update-item-lsi-sort-key-move-and-combined-gsi-lsi-move", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_lsi_sort_key_move_and_combined_gsi_lsi_move.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-malformed-or-overflowing-number-rejected", "deployments": [], "key": "dynamodb/update-item-malformed-or-overflowing-number-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_malformed_or_overflowing_number_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-mixing-attribute-updates-and-expression-rejected", "deployments": [], "key": "dynamodb/update-item-mixing-attribute-updates-and-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_mixing_attribute_updates_and_expression_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-nested-arithmetic-mixed-clauses-and-if-not-exists-parent", "deployments": [], "key": "dynamodb/update-item-nested-arithmetic-mixed-clauses-and-if-not-exists-parent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_nested_arithmetic_mixed_clauses_and_if_not_exists_parent.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-number-set-condition-exact-at-full-precision", "deployments": [], "key": "dynamodb/update-item-number-set-condition-exact-at-full-precision", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_number_set_condition_exact_at_full_precision.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-numeric-set-precision-preserved", "deployments": [], "key": "dynamodb/update-item-numeric-set-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_numeric_set_precision_preserved.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-remove-missing-map-key-noop-and-set-empty-list-index", "deployments": [], "key": "dynamodb/update-item-remove-missing-map-key-noop-and-set-empty-list-index", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_remove_missing_map_key_noop_and_set_empty_list_index.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-request-shape-byte-charges-by-clause-kind", "deployments": [], "key": "dynamodb/update-item-request-shape-byte-charges-by-clause-kind", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_request_shape_byte_charges_by_clause_kind.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-return-values-distinguishes-all-five-arms", "deployments": [], "key": "dynamodb/update-item-return-values-distinguishes-all-five-arms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_return_values_distinguishes_all_five_arms.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-return-values-omit-attributes-when-no-value-qualifies", "deployments": [], "key": "dynamodb/update-item-return-values-omit-attributes-when-no-value-qualifies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_return_values_omit_attributes_when_no_value_qualifies.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-set-empty-string-set-rejected-top-and-nested", "deployments": [], "key": "dynamodb/update-item-set-empty-string-set-rejected-top-and-nested", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_set_empty_string_set_rejected_top_and_nested.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-set-list-append-add-exceeding-400kb-rejected", "deployments": [], "key": "dynamodb/update-item-set-list-append-add-exceeding-400kb-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_set_list_append_add_exceeding_400kb_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-set-list-index-on-missing-item-rejected", "deployments": [], "key": "dynamodb/update-item-set-list-index-on-missing-item-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_set_list_index_on_missing_item_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-set-list-preserves-element-order", "deployments": [], "key": "dynamodb/update-item-set-list-preserves-element-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_set_list_preserves_element_order.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-set-remove-fixed-action-cost-ceiling", "deployments": [], "key": "dynamodb/update-item-set-remove-fixed-action-cost-ceiling", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_set_remove_fixed_action_cost_ceiling.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-set-size-ceiling-bisected-and-stable", "deployments": [], "key": "dynamodb/update-item-set-size-ceiling-bisected-and-stable", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_set_size_ceiling_bisected_and_stable.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-set-ss-sole-empty-string-member-top-and-nested", "deployments": [], "key": "dynamodb/update-item-set-ss-sole-empty-string-member-top-and-nested", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_set_ss_sole_empty_string_member_top_and_nested.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-set-to-current-value-still-enforces-condition-expression-rejected", "deployments": [], "key": "dynamodb/update-item-set-to-current-value-still-enforces-condition-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_set_to_current_value_still_enforces_condition_expression_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-size-ceiling-counts-key-and-untouched-attribute-bytes", "deployments": [], "key": "dynamodb/update-item-size-ceiling-counts-key-and-untouched-attribute-bytes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_size_ceiling_counts_key_and_untouched_attribute_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-updated-new-includes-unchanged-set-value-and-upsert", "deployments": [], "key": "dynamodb/update-item-updated-new-includes-unchanged-set-value-and-upsert", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_updated_new_includes_unchanged_set_value_and_upsert.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-updated-new-old-rebuild-nested-leaves-only", "deployments": [], "key": "dynamodb/update-item-updated-new-old-rebuild-nested-leaves-only", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_updated_new_old_rebuild_nested_leaves_only.py", "service": "dynamodb"} {"check_id": "dynamodb.update-item-without-actions-upserts-key-only-item", "deployments": [], "key": "dynamodb/update-item-without-actions-upserts-key-only-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_item_without_actions_upserts_key_only_item.py", "service": "dynamodb"} {"check_id": "dynamodb.update-list-append-on-ghost-attribute-rejected", "deployments": [], "key": "dynamodb/update-list-append-on-ghost-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_list_append_on_ghost_attribute_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-remove-add-delete-through-invalid-path-rejected", "deployments": [], "key": "dynamodb/update-remove-add-delete-through-invalid-path-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_remove_add_delete_through_invalid_path_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-return-values", "deployments": [], "key": "dynamodb/update-return-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_return_values.py", "service": "dynamodb"} {"check_id": "dynamodb.update-return-values-updated-old-and-new-scope", "deployments": [], "key": "dynamodb/update-return-values-updated-old-and-new-scope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_return_values_updated_old_and_new_scope.py", "service": "dynamodb"} {"check_id": "dynamodb.update-set-arithmetic-and-list-append-type-mismatch-rejected", "deployments": [], "key": "dynamodb/update-set-arithmetic-and-list-append-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_set_arithmetic_and_list_append_type_mismatch_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-set-replaces-the-existing-value-without-merging", "deployments": [], "key": "dynamodb/update-set-replaces-the-existing-value-without-merging", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_set_replaces_the_existing_value_without_merging.py", "service": "dynamodb"} {"check_id": "dynamodb.update-set-through-missing-intermediate-map-rejected", "deployments": [], "key": "dynamodb/update-set-through-missing-intermediate-map-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_set_through_missing_intermediate_map_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-set-through-missing-map-path-rejected", "deployments": [], "key": "dynamodb/update-set-through-missing-map-path-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_update_set_through_missing_map_path_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-billing-mode-pay-per-request-no-op-accepted", "deployments": [], "key": "dynamodb/update-table-billing-mode-pay-per-request-no-op-accepted", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_billing_mode_pay_per_request_no_op_accepted.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-billing-mode-provisioned-same-value-rejected", "deployments": [], "key": "dynamodb/update-table-billing-mode-provisioned-same-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_billing_mode_provisioned_same_value_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-billing-mode-transitions-updating-to-active", "deployments": [], "key": "dynamodb/update-table-billing-mode-transitions-updating-to-active", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_billing_mode_transitions_updating_to_active.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-creates-at-most-one-index-per-call", "deployments": [], "key": "dynamodb/update-table-creates-at-most-one-index-per-call", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_creates_at_most_one_index_per_call.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-decrease-after-increase-records-number-of-decreases-today", "deployments": [], "key": "dynamodb/update-table-decrease-after-increase-records-number-of-decreases-today", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_decrease_after_increase_records_number_of_decreases_today.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-delete-of-an-absent-gsi-rejected", "deployments": [], "key": "dynamodb/update-table-delete-of-an-absent-gsi-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_delete_of_an_absent_gsi_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-duplicate-and-bulk-gsi-delete-rejected", "deployments": [], "key": "dynamodb/update-table-duplicate-and-bulk-gsi-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_duplicate_and_bulk_gsi_delete_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-exceeds-limit-rejected", "deployments": [], "key": "dynamodb/update-table-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_exceeds_limit_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-gsi-attribute-definitions-track-live-keys", "deployments": [], "key": "dynamodb/update-table-gsi-attribute-definitions-track-live-keys", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_gsi_attribute_definitions_track_live_keys.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-gsi-delete-targeting-lsi-name-rejected", "deployments": [], "key": "dynamodb/update-table-gsi-delete-targeting-lsi-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_gsi_delete_targeting_lsi_name_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-on-a-missing-table-is-resource-not-found", "deployments": [], "key": "dynamodb/update-table-on-a-missing-table-is-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_on_a_missing_table_is_resource_not_found.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-rejected-while-a-prior-throughput-change-is-still-applying", "deployments": [], "key": "dynamodb/update-table-rejected-while-a-prior-throughput-change-is-still-applying", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_rejected_while_a_prior_throughput_change_is_still_applying.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-rejects-a-duplicate-index-name", "deployments": [], "key": "dynamodb/update-table-rejects-a-duplicate-index-name", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_rejects_a_duplicate_index_name.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-sets-and-clears-the-on-demand-read-ceiling", "deployments": [], "key": "dynamodb/update-table-sets-and-clears-the-on-demand-read-ceiling", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_sets_and_clears_the_on_demand_read_ceiling.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-sse-nonexistent-cmk-rejected", "deployments": [], "key": "dynamodb/update-table-sse-nonexistent-cmk-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/dynamodb/check_update_table_sse_nonexistent_cmk_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-sse-switches-owned-managed-customer-key", "deployments": [], "key": "dynamodb/update-table-sse-switches-owned-managed-customer-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "kms:CreateKey", "kms:DescribeKey", "kms:ListAliases", "kms:ScheduleKeyDeletion"], "path": "behavioral/dynamodb/check_update_table_sse_switches_owned_managed_customer_key.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-throughput-on-on-demand-table-and-zero-capacity-rejected", "deployments": [], "key": "dynamodb/update-table-throughput-on-on-demand-table-and-zero-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_throughput_on_on_demand_table_and_zero_capacity_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-table-vector-index-requires-pay-per-request", "deployments": [], "key": "dynamodb/update-table-vector-index-requires-pay-per-request", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_update_table_vector_index_requires_pay_per_request.py", "service": "dynamodb"} {"check_id": "dynamodb.update-ttl-attribute-name-exceeding-max-length-rejected", "deployments": [], "key": "dynamodb/update-ttl-attribute-name-exceeding-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_update_ttl_attribute_name_exceeding_max_length_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.update-ttl-invalid-attribute", "deployments": [], "key": "dynamodb/update-ttl-invalid-attribute", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:DescribeTimeToLive", "dynamodb:UpdateTimeToLive"], "path": "behavioral/dynamodb/check_update_ttl_invalid_attribute.py", "service": "dynamodb"} {"check_id": "dynamodb.validation-messages-are-customer-intelligible", "deployments": [], "key": "dynamodb/validation-messages-are-customer-intelligible", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_validation_messages_are_customer_intelligible.py", "service": "dynamodb"} {"check_id": "dynamodb.validation-messages-name-the-concept-without-implementation-leakage", "deployments": [], "key": "dynamodb/validation-messages-name-the-concept-without-implementation-leakage", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan"], "path": "behavioral/dynamodb/check_validation_messages_name_the_concept_without_implementation_leakage.py", "service": "dynamodb"} {"check_id": "dynamodb.vector-capacity-sized-by-dimension-count-not-number-width", "deployments": [], "key": "dynamodb/vector-capacity-sized-by-dimension-count-not-number-width", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_vector_capacity_sized_by_dimension_count_not_number_width.py", "service": "dynamodb"} {"check_id": "dynamodb.vector-index-4096-dimensions-and-hash-inline-filter-search-schema-described-back", "deployments": [], "key": "dynamodb/vector-index-4096-dimensions-and-hash-inline-filter-search-schema-described-back", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable"], "path": "behavioral/dynamodb/check_vector_index_4096_dimensions_and_hash_inline_filter_search_schema_described_back.py", "service": "dynamodb"} {"check_id": "dynamodb.vector-index-creating-blocks-other-index-but-accepts-self-delete", "deployments": [], "key": "dynamodb/vector-index-creating-blocks-other-index-but-accepts-self-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:SearchVectors", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_vector_index_creating_blocks_other_index_but_accepts_self_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.vector-index-creating-blocks-table-and-index-delete", "deployments": [], "key": "dynamodb/vector-index-creating-blocks-table-and-index-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateTable"], "path": "behavioral/dynamodb/check_vector_index_creating_blocks_table_and_index_delete.py", "service": "dynamodb"} {"check_id": "dynamodb.vector-index-query-and-scan-rejected", "deployments": [], "key": "dynamodb/vector-index-query-and-scan-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:SearchVectors"], "path": "behavioral/dynamodb/check_vector_index_query_and_scan_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.vector-item-size-gate-counts-stored-number-bytes", "deployments": [], "key": "dynamodb/vector-item-size-gate-counts-stored-number-bytes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_vector_item_size_gate_counts_stored_number_bytes.py", "service": "dynamodb"} {"check_id": "dynamodb.vector-write-request-bytes-floor-and-per-dimension-cost", "deployments": [], "key": "dynamodb/vector-write-request-bytes-floor-and-per-dimension-cost", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_vector_write_request_bytes_floor_and_per_dimension_cost.py", "service": "dynamodb"} {"check_id": "dynamodb.vector-write-request-bytes-name-and-projection-terms", "deployments": [], "key": "dynamodb/vector-write-request-bytes-name-and-projection-terms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_vector_write_request_bytes_name_and_projection_terms.py", "service": "dynamodb"} {"check_id": "dynamodb.write-capacity-counts-list-and-map-element-overhead", "deployments": [], "key": "dynamodb/write-capacity-counts-list-and-map-element-overhead", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_write_capacity_counts_list_and_map_element_overhead.py", "service": "dynamodb"} {"check_id": "dynamodb.write-capacity-per-gsi-counts-index-inserts-removals-and-projected-size", "deployments": [], "key": "dynamodb/write-capacity-per-gsi-counts-index-inserts-removals-and-projected-size", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_write_capacity_per_gsi_counts_index_inserts_removals_and_projected_size.py", "service": "dynamodb"} {"check_id": "dynamodb.write-condition-parenthesized-forms-evaluate-like-unparenthesized", "deployments": [], "key": "dynamodb/write-condition-parenthesized-forms-evaluate-like-unparenthesized", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_write_condition_parenthesized_forms_evaluate_like_unparenthesized.py", "service": "dynamodb"} {"check_id": "dynamodb.write-conditional-operator-needs-two-expected-conditions-rejected", "deployments": [], "key": "dynamodb/write-conditional-operator-needs-two-expected-conditions-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem"], "path": "behavioral/dynamodb/check_write_conditional_operator_needs_two_expected_conditions_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb.x-amz-crc32-matches-body-on-success-and-error", "deployments": [], "key": "dynamodb/x-amz-crc32-matches-body-on-success-and-error", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:ListTables", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_x_amz_crc32_matches_body_on_success_and_error.py", "service": "dynamodb"} {"check_id": "dynamodb.zero-at-exponent-boundary-rejected-one-step-past-range", "deployments": [], "key": "dynamodb/zero-at-exponent-boundary-rejected-one-step-past-range", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_zero_at_exponent_boundary_rejected_one_step_past_range.py", "service": "dynamodb"} {"check_id": "dynamodb.zero-with-out-of-range-exponent-rejected", "deployments": [], "key": "dynamodb/zero-with-out-of-range-exponent-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem"], "path": "behavioral/dynamodb/check_zero_with_out_of_range_exponent_rejected.py", "service": "dynamodb"} {"check_id": "dynamodb__ec2__iam__lambda__s3__sns__sqs__sts.one-denied-principal-error-shape-per-protocol-family", "deployments": [], "key": "dynamodb__ec2__iam__lambda__s3__sns__sqs__sts/one-denied-principal-error-shape-per-protocol-family", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__ec2__iam__lambda__s3__sns__sqs__sts/check_one_denied_principal_error_shape_per_protocol_family.py", "service": "dynamodb__ec2__iam__lambda__s3__sns__sqs__sts"} {"check_id": "dynamodb__events__firehose__pipes__s3.pipes-create-pipe-eventbridge-and-firehose-target-batch-size-caps-rejected", "deployments": [], "key": "dynamodb__events__firehose__pipes__s3/pipes-create-pipe-eventbridge-and-firehose-target-batch-size-caps-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutPublicAccessBlock"], "path": "behavioral/dynamodb__events__firehose__pipes__s3/check_pipes_create_pipe_eventbridge_and_firehose_target_batch_size_caps_rejected.py", "service": "dynamodb__events__firehose__pipes__s3"} {"check_id": "dynamodb__events__lambda.cfn-ddb-stream-esm-lambda-deployment", "deployments": [], "key": "dynamodb__events__lambda/cfn-ddb-stream-esm-lambda-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "dynamodb:PutItem", "lambda:GetEventSourceMapping", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/dynamodb__events__lambda/check_cfn_ddb_stream_esm_lambda_deployment.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cfn-eventbridge-custom-bus-rule-deployment", "deployments": [], "key": "dynamodb__events__lambda/cfn-eventbridge-custom-bus-rule-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "dynamodb:Scan", "events:PutEvents"], "path": "behavioral/dynamodb__events__lambda/check_cfn_eventbridge_custom_bus_rule_deployment.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cfn-eventbridge-rule-lambda-target-deployment", "deployments": [], "key": "dynamodb__events__lambda/cfn-eventbridge-rule-lambda-target-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "events:PutEvents"], "path": "behavioral/dynamodb__events__lambda/check_cfn_eventbridge_rule_lambda_target_deployment.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cfn-eventbridge-rule-wrong-target-arn-negative", "deployments": [], "key": "dynamodb__events__lambda/cfn-eventbridge-rule-wrong-target-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetMetricStatistics", "dynamodb:GetItem", "events:PutEvents", "lambda:GetFunction"], "path": "behavioral/dynamodb__events__lambda/check_cfn_eventbridge_rule_wrong_target_arn_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cfn-eventbridge-scheduled-lambda-deployment", "deployments": [], "key": "dynamodb__events__lambda/cfn-eventbridge-scheduled-lambda-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:Scan"], "path": "behavioral/dynamodb__events__lambda/check_cfn_eventbridge_scheduled_lambda_deployment.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cfn-lambda-dynamodb-table-permissions-deployment", "deployments": [], "key": "dynamodb__events__lambda/cfn-lambda-dynamodb-table-permissions-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_cfn_lambda_dynamodb_table_permissions_deployment.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cfn-lambda-role-missing-eventbridge-permission-negative", "deployments": [], "key": "dynamodb__events__lambda/cfn-lambda-role-missing-eventbridge-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "events:PutEvents", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_cfn_lambda_role_missing_eventbridge_permission_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cli-create-eventbridge-rule-lambda-target-workflow", "deployments": [], "key": "dynamodb__events__lambda/cli-create-eventbridge-rule-lambda-target-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda/check_cli_create_eventbridge_rule_lambda_target_workflow.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cli-eventbridge-put-events-dynamodb-pipeline-workflow", "deployments": [], "key": "dynamodb__events__lambda/cli-eventbridge-put-events-dynamodb-pipeline-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda/check_cli_eventbridge_put_events_dynamodb_pipeline_workflow.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cli-eventbridge-rule-missing-permission-negative-workflow", "deployments": [], "key": "dynamodb__events__lambda/cli-eventbridge-rule-missing-permission-negative-workflow", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda/check_cli_eventbridge_rule_missing_permission_negative_workflow.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cli-eventbridge-scheduled-rule-workflow", "deployments": [], "key": "dynamodb__events__lambda/cli-eventbridge-scheduled-rule-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda/check_cli_eventbridge_scheduled_rule_workflow.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cli-lambda-esm-dynamodb-stream-workflow", "deployments": [], "key": "dynamodb__events__lambda/cli-lambda-esm-dynamodb-stream-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:FilterLogEvents"], "path": "behavioral/dynamodb__events__lambda/check_cli_lambda_esm_dynamodb_stream_workflow.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.cli-lambda-role-policy-missing-dynamodb-negative-workflow", "deployments": [], "key": "dynamodb__events__lambda/cli-lambda-role-policy-missing-dynamodb-negative-workflow", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/dynamodb__events__lambda/check_cli_lambda_role_policy_missing_dynamodb_negative_workflow.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.ddb-stream-esm-batch-size-config-positive", "deployments": [], "key": "dynamodb__events__lambda/ddb-stream-esm-batch-size-config-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_ddb_stream_esm_batch_size_config_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.ddb-stream-esm-destination-missing-permission-rejected", "deployments": [], "key": "dynamodb__events__lambda/ddb-stream-esm-destination-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__events__lambda/check_ddb_stream_esm_destination_missing_permission_rejected.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.ddb-stream-esm-filter-criteria-json-positive", "deployments": [], "key": "dynamodb__events__lambda/ddb-stream-esm-filter-criteria-json-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_ddb_stream_esm_filter_criteria_json_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.ddb-stream-esm-maximum-retry-attempts-config-positive", "deployments": [], "key": "dynamodb__events__lambda/ddb-stream-esm-maximum-retry-attempts-config-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_ddb_stream_esm_maximum_retry_attempts_config_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.ddb-stream-esm-starting-position-trim-horizon-positive", "deployments": [], "key": "dynamodb__events__lambda/ddb-stream-esm-starting-position-trim-horizon-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_ddb_stream_esm_starting_position_trim_horizon_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-custom-bus-rule-lambda-target", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-custom-bus-rule-lambda-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_custom_bus_rule_lambda_target.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-custom-bus-rule-node-commonjs-handler-preserves-detail-json-types", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-custom-bus-rule-node-commonjs-handler-preserves-detail-json-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_custom_bus_rule_node_commonjs_handler_preserves_detail_json_types.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-rule-disabled-no-invocation-negative", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-rule-disabled-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:DescribeRule", "events:EnableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_rule_disabled_no_invocation_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-rule-event-pattern-filter-lambda-invocation", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-rule-event-pattern-filter-lambda-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_rule_event_pattern_filter_lambda_invocation.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-rule-input-transformer-lambda-payload", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-rule-input-transformer-lambda-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_rule_input_transformer_lambda_payload.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-rule-lambda-missing-invoke-permission-negative", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-rule-lambda-missing-invoke-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_rule_lambda_missing_invoke_permission_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-rule-lambda-target-invocation-positive", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-rule-lambda-target-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_rule_lambda_target_invocation_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-rule-target-arn-mismatch-negative", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-rule-target-arn-mismatch-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_rule_target_arn_mismatch_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-rule-triggers-lambda-dynamodb-transactwrite-positive", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-rule-triggers-lambda-dynamodb-transactwrite-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_rule_triggers_lambda_dynamodb_transactwrite_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-rule-triggers-lambda-writes-dynamodb-positive", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-rule-triggers-lambda-writes-dynamodb-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_rule_triggers_lambda_writes_dynamodb_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-scheduled-rule-invokes-lambda", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-scheduled-rule-invokes-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_scheduled_rule_invokes_lambda.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.eventbridge-triggered-lambda-reads-dynamodb-item-positive", "deployments": [], "key": "dynamodb__events__lambda/eventbridge-triggered-lambda-reads-dynamodb-item-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission"], "path": "behavioral/dynamodb__events__lambda/check_eventbridge_triggered_lambda_reads_dynamodb_item_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.events-invocation-role-trusts-events-service-positive", "deployments": [], "key": "dynamodb__events__lambda/events-invocation-role-trusts-events-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/dynamodb__events__lambda/check_events_invocation_role_trusts_events_service_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.events-role-wrong-trust-principal-negative", "deployments": [], "key": "dynamodb__events__lambda/events-role-wrong-trust-principal-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/dynamodb__events__lambda/check_events_role_wrong_trust_principal_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.events-rule-role-assume-role-positive", "deployments": [], "key": "dynamodb__events__lambda/events-rule-role-assume-role-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetPolicy"], "path": "behavioral/dynamodb__events__lambda/check_events_rule_role_assume_role_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-async-invoke-destination-eventbridge-onfailure-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-async-invoke-destination-eventbridge-onfailure-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda/check_lambda_async_invoke_destination_eventbridge_onfailure_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-async-invoke-destination-eventbridge-onsuccess-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-async-invoke-destination-eventbridge-onsuccess-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda/check_lambda_async_invoke_destination_eventbridge_onsuccess_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-describe-rule-missing-permission-negative", "deployments": [], "key": "dynamodb__events__lambda/lambda-describe-rule-missing-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__events__lambda/check_lambda_describe_rule_missing_permission_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-destination-eventbridge-missing-permission-rejected", "deployments": [], "key": "dynamodb__events__lambda/lambda-destination-eventbridge-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda/check_lambda_destination_eventbridge_missing_permission_rejected.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-dynamodb-batchwriteitem-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-dynamodb-batchwriteitem-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchGetItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_lambda_dynamodb_batchwriteitem_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-dynamodb-deleteitem-missing-permission-negative", "deployments": [], "key": "dynamodb__events__lambda/lambda-dynamodb-deleteitem-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_lambda_dynamodb_deleteitem_missing_permission_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-dynamodb-query-missing-permission-negative", "deployments": [], "key": "dynamodb__events__lambda/lambda-dynamodb-query-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_lambda_dynamodb_query_missing_permission_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-dynamodb-scan-with-filter-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-dynamodb-scan-with-filter-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_lambda_dynamodb_scan_with_filter_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-dynamodb-updateitem-conditional-check-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-dynamodb-updateitem-conditional-check-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_lambda_dynamodb_updateitem_conditional_check_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-execution-role-trusts-lambda-service-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-execution-role-trusts-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_lambda_execution_role_trusts_lambda_service_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-putevents-custom-bus-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-putevents-custom-bus-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/dynamodb__events__lambda/check_lambda_putevents_custom_bus_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-putevents-default-bus-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-putevents-default-bus-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeEventBus", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/dynamodb__events__lambda/check_lambda_putevents_default_bus_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-putevents-missing-permission-negative", "deployments": [], "key": "dynamodb__events__lambda/lambda-putevents-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/dynamodb__events__lambda/check_lambda_putevents_missing_permission_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-putevents-triggers-downstream-rule-positive", "deployments": [], "key": "dynamodb__events__lambda/lambda-putevents-triggers-downstream-rule-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__events__lambda/check_lambda_putevents_triggers_downstream_rule_positive.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-putevents-wrong-event-bus-arn-negative", "deployments": [], "key": "dynamodb__events__lambda/lambda-putevents-wrong-event-bus-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/dynamodb__events__lambda/check_lambda_putevents_wrong_event_bus_arn_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-role-missing-trust-statement-negative", "deployments": [], "key": "dynamodb__events__lambda/lambda-role-missing-trust-statement-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_lambda_role_missing_trust_statement_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda.lambda-role-wrong-trust-principal-negative", "deployments": [], "key": "dynamodb__events__lambda/lambda-role-wrong-trust-principal-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:UpdateAssumeRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/dynamodb__events__lambda/check_lambda_role_wrong_trust_principal_negative.py", "service": "dynamodb__events__lambda"} {"check_id": "dynamodb__events__lambda__s3__stepfunctions.s3-eventbridge-sfn-lambda-ddb-payload-fidelity", "deployments": [], "key": "dynamodb__events__lambda__s3__stepfunctions/s3-eventbridge-sfn-lambda-ddb-payload-fidelity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__events__lambda__s3__stepfunctions/check_s3_eventbridge_sfn_lambda_ddb_payload_fidelity.py", "service": "dynamodb__events__lambda__s3__stepfunctions"} {"check_id": "dynamodb__events__lambda__sqs__stepfunctions.eventbridge-fanout-lambda-sqs-sfn", "deployments": [], "key": "dynamodb__events__lambda__sqs__stepfunctions/eventbridge-fanout-lambda-sqs-sfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StopExecution"], "path": "behavioral/dynamodb__events__lambda__sqs__stepfunctions/check_eventbridge_fanout_lambda_sqs_sfn.py", "service": "dynamodb__events__lambda__sqs__stepfunctions"} {"check_id": "dynamodb__events__stepfunctions.eventbridge-to-sfn-to-ddb-chain", "deployments": [], "key": "dynamodb__events__stepfunctions/eventbridge-to-sfn-to-ddb-chain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StopExecution"], "path": "behavioral/dynamodb__events__stepfunctions/check_eventbridge_to_sfn_to_ddb_chain.py", "service": "dynamodb__events__stepfunctions"} {"check_id": "dynamodb__iam__lambda__logs__sts.durable-execution-step-exhausts-retries-fails-execution", "deployments": [], "key": "dynamodb__iam__lambda__logs__sts/durable-execution-step-exhausts-retries-fails-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__lambda__logs__sts/check_durable_execution_step_exhausts_retries_fails_execution.py", "service": "dynamodb__iam__lambda__logs__sts"} {"check_id": "dynamodb__iam__lambda__logs__sts.durable-execution-step-retry-recovers-and-replay-skips-completed-steps", "deployments": [], "key": "dynamodb__iam__lambda__logs__sts/durable-execution-step-retry-recovers-and-replay-skips-completed-steps", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__lambda__logs__sts/check_durable_execution_step_retry_recovers_and_replay_skips_completed_steps.py", "service": "dynamodb__iam__lambda__logs__sts"} {"check_id": "dynamodb__iam__stepfunctions.sfn-no-permission-to-write-ddb", "deployments": [], "key": "dynamodb__iam__stepfunctions/sfn-no-permission-to-write-ddb", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/dynamodb__iam__stepfunctions/check_sfn_no_permission_to_write_ddb.py", "service": "dynamodb__iam__stepfunctions"} {"check_id": "dynamodb__iam__sts.execute-statement-partiql-select-index-qualified-scoped-to-index-arn-denied", "deployments": [], "key": "dynamodb__iam__sts/execute-statement-partiql-select-index-qualified-scoped-to-index-arn-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_execute_statement_partiql_select_index_qualified_scoped_to_index_arn_denied.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.execute-statement-partiql-verb-actions-scoped-to-table-arn-denied", "deployments": [], "key": "dynamodb__iam__sts/execute-statement-partiql-verb-actions-scoped-to-table-arn-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_execute_statement_partiql_verb_actions_scoped_to_table_arn_denied.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.execute-statement-select-full-table-scan-denied-keyed-select-allowed", "deployments": [], "key": "dynamodb__iam__sts/execute-statement-select-full-table-scan-denied-keyed-select-allowed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_execute_statement_select_full_table_scan_denied_keyed_select_allowed.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.malformed-access-key-rejected-consistently", "deployments": [], "key": "dynamodb__iam__sts/malformed-access-key-rejected-consistently", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:ListTables", "iam:ListAccountAliases", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_malformed_access_key_rejected_consistently.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.search-vectors-table-read-role-denied-index-arn-grant-allowed", "deployments": [], "key": "dynamodb__iam__sts/search-vectors-table-read-role-denied-index-arn-grant-allowed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_search_vectors_table_read_role_denied_index_arn_grant_allowed.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.xsvc-dynamodb-2-attributes-select-specific-full-item-read-denied", "deployments": [], "key": "dynamodb__iam__sts/xsvc-dynamodb-2-attributes-select-specific-full-item-read-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_xsvc_dynamodb_2_attributes_select_specific_full_item_read_denied.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.xsvc-dynamodb-2-explicit-deny-beats-identity-and-resource-policy-allow", "deployments": [], "key": "dynamodb__iam__sts/xsvc-dynamodb-2-explicit-deny-beats-identity-and-resource-policy-allow", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteResourcePolicy", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_xsvc_dynamodb_2_explicit_deny_beats_identity_and_resource_policy_allow.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.xsvc-dynamodb-2-leading-keys-principal-tag-variable-cross-tenant-denied", "deployments": [], "key": "dynamodb__iam__sts/xsvc-dynamodb-2-leading-keys-principal-tag-variable-cross-tenant-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_xsvc_dynamodb_2_leading_keys_principal_tag_variable_cross_tenant_denied.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.xsvc-dynamodb-2-leading-keys-scan-unguarded-leaks-guarded-denied", "deployments": [], "key": "dynamodb__iam__sts/xsvc-dynamodb-2-leading-keys-scan-unguarded-leaks-guarded-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_xsvc_dynamodb_2_leading_keys_scan_unguarded_leaks_guarded_denied.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.xsvc-dynamodb-2-leading-keys-session-policy-other-partition-denied", "deployments": [], "key": "dynamodb__iam__sts/xsvc-dynamodb-2-leading-keys-session-policy-other-partition-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_xsvc_dynamodb_2_leading_keys_session_policy_other_partition_denied.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iam__sts.xsvc-dynamodb-partiql-insert-scoped-to-execute-transaction-denied", "deployments": [], "key": "dynamodb__iam__sts/xsvc-dynamodb-partiql-insert-scoped-to-execute-transaction-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:ExecuteTransaction", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iam__sts/check_xsvc_dynamodb_partiql_insert_scoped_to_execute_transaction_denied.py", "service": "dynamodb__iam__sts"} {"check_id": "dynamodb__iot.topic-rule-dynamodbv2-action-missing-put-item-permission-rejected", "deployments": [], "key": "dynamodb__iot/topic-rule-dynamodbv2-action-missing-put-item-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iot/check_topic_rule_dynamodbv2_action_missing_put_item_permission_rejected.py", "service": "dynamodb__iot"} {"check_id": "dynamodb__iot.topic-rule-dynamodbv2-action-writes-item-from-published-message", "deployments": [], "key": "dynamodb__iot/topic-rule-dynamodbv2-action-writes-item-from-published-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__iot/check_topic_rule_dynamodbv2_action_writes_item_from_published_message.py", "service": "dynamodb__iot"} {"check_id": "dynamodb__kinesis.kinesis-streaming-destination-delivers-item-change-records", "deployments": [], "key": "dynamodb__kinesis/kinesis-streaming-destination-delivers-item-change-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeTable", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:PutItem", "dynamodb:UpdateItem", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator"], "path": "behavioral/dynamodb__kinesis/check_kinesis_streaming_destination_delivers_item_change_records.py", "service": "dynamodb__kinesis"} {"check_id": "dynamodb__kinesis__lambda.check-cfn-ddb-stream-lambda-deployment", "deployments": ["behavioral/dynamodb__kinesis__lambda/deployments/cfn-ddb-stream-lambda.yaml"], "key": "dynamodb__kinesis__lambda/check-cfn-ddb-stream-lambda-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:DescribeTable", "lambda:GetEventSourceMapping"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_cfn_ddb_stream_lambda_deployment.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-ddb-esm-fails-without-stream-permissions", "deployments": [], "key": "dynamodb__kinesis__lambda/check-ddb-esm-fails-without-stream-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_ddb_esm_fails_without_stream_permissions.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-ddb-stream-event-name-field", "deployments": [], "key": "dynamodb__kinesis__lambda/check-ddb-stream-event-name-field", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_ddb_stream_event_name_field.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-ddb-stream-new-and-old-images", "deployments": [], "key": "dynamodb__kinesis__lambda/check-ddb-stream-new-and-old-images", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_ddb_stream_new_and_old_images.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-ddb-stream-shard-ordering", "deployments": [], "key": "dynamodb__kinesis__lambda/check-ddb-stream-shard-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_ddb_stream_shard_ordering.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-ddb-stream-triggers-lambda", "deployments": [], "key": "dynamodb__kinesis__lambda/check-ddb-stream-triggers-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_ddb_stream_triggers_lambda.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-esm-wrong-stream-arn-rejected", "deployments": [], "key": "dynamodb__kinesis__lambda/check-esm-wrong-stream-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_esm_wrong_stream_arn_rejected.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-kinesis-batch-window-aggregation", "deployments": [], "key": "dynamodb__kinesis__lambda/check-kinesis-batch-window-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_kinesis_batch_window_aggregation.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-kinesis-esm-fails-without-permissions", "deployments": [], "key": "dynamodb__kinesis__lambda/check-kinesis-esm-fails-without-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_kinesis_esm_fails_without_permissions.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-kinesis-record-base64-data", "deployments": [], "key": "dynamodb__kinesis__lambda/check-kinesis-record-base64-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_kinesis_record_base64_data.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-kinesis-stream-triggers-lambda", "deployments": [], "key": "dynamodb__kinesis__lambda/check-kinesis-stream-triggers-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_kinesis_stream_triggers_lambda.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-kinesis-to-dynamodb-pipeline", "deployments": [], "key": "dynamodb__kinesis__lambda/check-kinesis-to-dynamodb-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_kinesis_to_dynamodb_pipeline.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-lambda-dynamodb-getitem-without-permission", "deployments": [], "key": "dynamodb__kinesis__lambda/check-lambda-dynamodb-getitem-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_lambda_dynamodb_getitem_without_permission.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-lambda-dynamodb-putitem-without-permission", "deployments": [], "key": "dynamodb__kinesis__lambda/check-lambda-dynamodb-putitem-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_lambda_dynamodb_putitem_without_permission.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-lambda-kinesis-putrecord-without-permission", "deployments": [], "key": "dynamodb__kinesis__lambda/check-lambda-kinesis-putrecord-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_lambda_kinesis_putrecord_without_permission.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-lambda-puts-kinesis-record", "deployments": [], "key": "dynamodb__kinesis__lambda/check-lambda-puts-kinesis-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_lambda_puts_kinesis_record.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-lambda-reads-dynamodb", "deployments": [], "key": "dynamodb__kinesis__lambda/check-lambda-reads-dynamodb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_lambda_reads_dynamodb.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-lambda-role-trust-policy-required", "deployments": [], "key": "dynamodb__kinesis__lambda/check-lambda-role-trust-policy-required", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:UpdateAssumeRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_lambda_role_trust_policy_required.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.check-lambda-writes-dynamodb", "deployments": [], "key": "dynamodb__kinesis__lambda/check-lambda-writes-dynamodb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_check_lambda_writes_dynamodb.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.kinesis-esm-batch-item-failure-redelivers-suffix", "deployments": [], "key": "dynamodb__kinesis__lambda/kinesis-esm-batch-item-failure-redelivers-suffix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_kinesis_esm_batch_item_failure_redelivers_suffix.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.kinesis-esm-same-partition-key-order-preserved", "deployments": [], "key": "dynamodb__kinesis__lambda/kinesis-esm-same-partition-key-order-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_kinesis_esm_same_partition_key_order_preserved.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.kinesis-esm-through-enhanced-fan-out-consumer-delivers-each-record", "deployments": [], "key": "dynamodb__kinesis__lambda/kinesis-esm-through-enhanced-fan-out-consumer-delivers-each-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStream", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__kinesis__lambda/check_kinesis_esm_through_enhanced_fan_out_consumer_delivers_each_record.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.kinesis-esm-trim-horizon-delivers-binary-backlog-written-before-the-mapping", "deployments": [], "key": "dynamodb__kinesis__lambda/kinesis-esm-trim-horizon-delivers-binary-backlog-written-before-the-mapping", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "kinesis:PutRecords", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__kinesis__lambda/check_kinesis_esm_trim_horizon_delivers_binary_backlog_written_before_the_mapping.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.xsvc-lambda-2-ddb-stream-esm-on-failure-sqs-receives-batch-info-pointer", "deployments": [], "key": "dynamodb__kinesis__lambda/xsvc-lambda-2-ddb-stream-esm-on-failure-sqs-receives-batch-info-pointer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__kinesis__lambda/check_xsvc_lambda_2_ddb_stream_esm_on_failure_sqs_receives_batch_info_pointer.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.xsvc-lambda-2-kinesis-esm-bisect-isolates-poison-and-processes-others-once", "deployments": [], "key": "dynamodb__kinesis__lambda/xsvc-lambda-2-kinesis-esm-bisect-isolates-poison-and-processes-others-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_xsvc_lambda_2_kinesis_esm_bisect_isolates_poison_and_processes_others_once.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.xsvc-lambda-2-kinesis-esm-healthy-record-sends-no-on-failure-message", "deployments": [], "key": "dynamodb__kinesis__lambda/xsvc-lambda-2-kinesis-esm-healthy-record-sends-no-on-failure-message", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__kinesis__lambda/check_xsvc_lambda_2_kinesis_esm_healthy_record_sends_no_on_failure_message.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.xsvc-lambda-2-kinesis-esm-on-failure-sqs-receives-batch-info-pointer", "deployments": [], "key": "dynamodb__kinesis__lambda/xsvc-lambda-2-kinesis-esm-on-failure-sqs-receives-batch-info-pointer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__kinesis__lambda/check_xsvc_lambda_2_kinesis_esm_on_failure_sqs_receives_batch_info_pointer.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kinesis__lambda.xsvc-lambda-2-kinesis-esm-retry-exhaustion-drops-poison-batch-after-two-attempts", "deployments": [], "key": "dynamodb__kinesis__lambda/xsvc-lambda-2-kinesis-esm-retry-exhaustion-drops-poison-batch-after-two-attempts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__kinesis__lambda/check_xsvc_lambda_2_kinesis_esm_retry_exhaustion_drops_poison_batch_after_two_attempts.py", "service": "dynamodb__kinesis__lambda"} {"check_id": "dynamodb__kms.xsvc-dynamodb-1-cmk-encrypted-tables-share-one-key-round-trip", "deployments": [], "key": "dynamodb__kms/xsvc-dynamodb-1-cmk-encrypted-tables-share-one-key-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/dynamodb__kms/check_xsvc_dynamodb_1_cmk_encrypted_tables_share_one_key_round_trip.py", "service": "dynamodb__kms"} {"check_id": "dynamodb__kms.xsvc-dynamodb-1-create-table-with-nonexistent-cmk-rejected", "deployments": [], "key": "dynamodb__kms/xsvc-dynamodb-1-create-table-with-nonexistent-cmk-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__kms/check_xsvc_dynamodb_1_create_table_with_nonexistent_cmk_rejected.py", "service": "dynamodb__kms"} {"check_id": "dynamodb__kms.xsvc-dynamodb-1-disabled-cmk-reads-and-writes-rejected", "deployments": [], "key": "dynamodb__kms/xsvc-dynamodb-1-disabled-cmk-reads-and-writes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/dynamodb__kms/check_xsvc_dynamodb_1_disabled_cmk_reads_and_writes_rejected.py", "service": "dynamodb__kms"} {"check_id": "dynamodb__kms.xsvc-dynamodb-1-pending-deletion-cmk-reads-and-writes-rejected", "deployments": [], "key": "dynamodb__kms/xsvc-dynamodb-1-pending-deletion-cmk-reads-and-writes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "kms:CancelKeyDeletion", "kms:CreateKey", "kms:DescribeKey", "kms:EnableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/dynamodb__kms/check_xsvc_dynamodb_1_pending_deletion_cmk_reads_and_writes_rejected.py", "service": "dynamodb__kms"} {"check_id": "dynamodb__lambda.conc-limits-and-fanout-reserved-concurrency-admission-transitions-rejected", "deployments": [], "key": "dynamodb__lambda/conc-limits-and-fanout-reserved-concurrency-admission-transitions-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetAccountSettings", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/dynamodb__lambda/check_conc_limits_and_fanout_reserved_concurrency_admission_transitions_rejected.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.concurrent-lambda-ddb-writes-no-lost-updates", "deployments": [], "key": "dynamodb__lambda/concurrent-lambda-ddb-writes-no-lost-updates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda/check_concurrent_lambda_ddb_writes_no_lost_updates.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-leading-keys-condition-scopes-lambda-partition-access", "deployments": [], "key": "dynamodb__lambda/ddb-leading-keys-condition-scopes-lambda-partition-access", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda/check_ddb_leading_keys_condition_scopes_lambda_partition_access.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-resource-policy-alone-grants-lambda-role-get-item", "deployments": [], "key": "dynamodb__lambda/ddb-resource-policy-alone-grants-lambda-role-get-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetResourcePolicy", "dynamodb:PutItem", "dynamodb:PutResourcePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda/check_ddb_resource_policy_alone_grants_lambda_role_get_item.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-esm-bisect-on-function-error-isolates-the-poison-record", "deployments": [], "key": "dynamodb__lambda/ddb-stream-esm-bisect-on-function-error-isolates-the-poison-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_esm_bisect_on_function_error_isolates_the_poison_record.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-esm-maximum-record-age-60-discards-aged-records-delivers-fresh", "deployments": [], "key": "dynamodb__lambda/ddb-stream-esm-maximum-record-age-60-discards-aged-records-delivers-fresh", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_esm_maximum_record_age_60_discards_aged_records_delivers_fresh.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-esm-partial-batch-response-redelivers-only-the-suffix", "deployments": [], "key": "dynamodb__lambda/ddb-stream-esm-partial-batch-response-redelivers-only-the-suffix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_esm_partial_batch_response_redelivers_only_the_suffix.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-esm-record-envelope-and-images-follow-item-lifecycle", "deployments": [], "key": "dynamodb__lambda/ddb-stream-esm-record-envelope-and-images-follow-item-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_esm_record_envelope_and_images_follow_item_lifecycle.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-esm-tumbling-window-above-maximum-rejected", "deployments": [], "key": "dynamodb__lambda/ddb-stream-esm-tumbling-window-above-maximum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_esm_tumbling_window_above_maximum_rejected.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-esm-tumbling-window-state-carries-into-a-final-invoke-per-window", "deployments": [], "key": "dynamodb__lambda/ddb-stream-esm-tumbling-window-state-carries-into-a-final-invoke-per-window", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_esm_tumbling_window_state_carries_into_a_final_invoke_per_window.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-latest-mapping-never-sees-records-written-before-it", "deployments": [], "key": "dynamodb__lambda/ddb-stream-latest-mapping-never-sees-records-written-before-it", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_latest_mapping_never_sees_records_written_before_it.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-new-image-view-carries-only-after-images", "deployments": [], "key": "dynamodb__lambda/ddb-stream-new-image-view-carries-only-after-images", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_new_image_view_carries_only_after_images.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-old-image-view-carries-only-before-images", "deployments": [], "key": "dynamodb__lambda/ddb-stream-old-image-view-carries-only-before-images", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_old_image_view_carries_only_before_images.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.ddb-stream-writes-that-change-nothing-emit-no-record", "deployments": [], "key": "dynamodb__lambda/ddb-stream-writes-that-change-nothing-emit-no-record", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/dynamodb__lambda/check_ddb_stream_writes_that_change_nothing_emit_no_record.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.function-sdk-put-to-unpermitted-table-denied-as-function-error", "deployments": [], "key": "dynamodb__lambda/function-sdk-put-to-unpermitted-table-denied-as-function-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda/check_function_sdk_put_to_unpermitted_table_denied_as_function_error.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.go-handler-ddb-stream-new-and-old-image-delivered-to-the-handler", "deployments": [], "key": "dynamodb__lambda/go-handler-ddb-stream-new-and-old-image-delivered-to-the-handler", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/dynamodb__lambda/check_go_handler_ddb_stream_new_and_old_image_delivered_to_the_handler.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda.in-handler-transact-write-cancellation-reasons-carry-per-item-codes", "deployments": [], "key": "dynamodb__lambda/in-handler-transact-write-cancellation-reasons-carry-per-item-codes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/dynamodb__lambda/check_in_handler_transact_write_cancellation_reasons_carry_per_item_codes.py", "service": "dynamodb__lambda"} {"check_id": "dynamodb__lambda__logs.logs-subscription-filter-invokes-lambda-across-boundary", "deployments": [], "key": "dynamodb__lambda__logs/logs-subscription-filter-invokes-lambda-across-boundary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:DescribeSubscriptionFilters", "logs:PutLogEvents", "logs:PutSubscriptionFilter"], "path": "behavioral/dynamodb__lambda__logs/check_logs_subscription_filter_invokes_lambda_across_boundary.py", "service": "dynamodb__lambda__logs"} {"check_id": "dynamodb__lambda__pipes__sqs.events-pipes-enrichment-dynamodb-stream-filter-drops-modify-and-remove-before-enrichment", "deployments": [], "key": "dynamodb__lambda__pipes__sqs/events-pipes-enrichment-dynamodb-stream-filter-drops-modify-and-remove-before-enrichment", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__lambda__pipes__sqs/check_events_pipes_enrichment_dynamodb_stream_filter_drops_modify_and_remove_before_enrichment.py", "service": "dynamodb__lambda__pipes__sqs"} {"check_id": "dynamodb__lambda__pipes__sqs.events-pipes-enrichment-dynamodb-stream-newimage-computed-at-target", "deployments": [], "key": "dynamodb__lambda__pipes__sqs/events-pipes-enrichment-dynamodb-stream-newimage-computed-at-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__lambda__pipes__sqs/check_events_pipes_enrichment_dynamodb_stream_newimage_computed_at_target.py", "service": "dynamodb__lambda__pipes__sqs"} {"check_id": "dynamodb__lambda__s3.arn-resolution-ddb-stream-esm-matches-table-stream-arn", "deployments": [], "key": "dynamodb__lambda__s3/arn-resolution-ddb-stream-esm-matches-table-stream-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda__s3/check_arn_resolution_ddb_stream_esm_matches_table_stream_arn.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.ddb-stream-esm-creation-fails-without-permissions", "deployments": [], "key": "dynamodb__lambda__s3/ddb-stream-esm-creation-fails-without-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda__s3/check_ddb_stream_esm_creation_fails_without_permissions.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.ddb-stream-insert-records-come-from-update-partiql-and-transact-creates", "deployments": [], "key": "dynamodb__lambda__s3/ddb-stream-insert-records-come-from-update-partiql-and-transact-creates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ExecuteStatement", "dynamodb:PutItem", "dynamodb:TransactWriteItems", "dynamodb:UpdateItem", "dynamodbstreams:DescribeStream", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3/check_ddb_stream_insert_records_come_from_update_partiql_and_transact_creates.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.ddb-stream-insert-triggers-lambda", "deployments": [], "key": "dynamodb__lambda__s3/ddb-stream-insert-triggers-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda__s3/check_ddb_stream_insert_triggers_lambda.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.ddb-stream-modify-event-captures-images", "deployments": [], "key": "dynamodb__lambda__s3/ddb-stream-modify-event-captures-images", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda__s3/check_ddb_stream_modify_event_captures_images.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.ddb-stream-new-image-view-delivers-each-batched-composite-key-insert", "deployments": [], "key": "dynamodb__lambda__s3/ddb-stream-new-image-view-delivers-each-batched-composite-key-insert", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:BatchWriteItem", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3/check_ddb_stream_new_image_view_delivers_each_batched_composite_key_insert.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.ddb-stream-remove-event-triggers-lambda", "deployments": [], "key": "dynamodb__lambda__s3/ddb-stream-remove-event-triggers-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda__s3/check_ddb_stream_remove_event_triggers_lambda.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.deployment-cfn-s3-notification-lambda-dynamodb-stack", "deployments": ["behavioral/dynamodb__lambda__s3/deployments/cfn-s3-lambda-ddb.yaml"], "key": "dynamodb__lambda__s3/deployment-cfn-s3-notification-lambda-dynamodb-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_deployment_cfn_s3_notification_lambda_dynamodb_stack.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.error-propagation-lambda-s3-get-nonexistent-key", "deployments": [], "key": "dynamodb__lambda__s3/error-propagation-lambda-s3-get-nonexistent-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_error_propagation_lambda_s3_get_nonexistent_key.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.lambda-sdk-get-and-update-dynamodb-item", "deployments": [], "key": "dynamodb__lambda__s3/lambda-sdk-get-and-update-dynamodb-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda__s3/check_lambda_sdk_get_and_update_dynamodb_item.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.lambda-sdk-put-object-to-s3", "deployments": [], "key": "dynamodb__lambda__s3/lambda-sdk-put-object-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/dynamodb__lambda__s3/check_lambda_sdk_put_object_to_s3.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.lambda-without-dynamodb-permission-denied", "deployments": [], "key": "dynamodb__lambda__s3/lambda-without-dynamodb-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/dynamodb__lambda__s3/check_lambda_without_dynamodb_permission_denied.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.lambda-without-s3-permission-denied", "deployments": [], "key": "dynamodb__lambda__s3/lambda-without-s3-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/dynamodb__lambda__s3/check_lambda_without_s3_permission_denied.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.pipeline-s3-lambda-dynamodb-lambda-s3", "deployments": [], "key": "dynamodb__lambda__s3/pipeline-s3-lambda-dynamodb-lambda-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_pipeline_s3_lambda_dynamodb_lambda_s3.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.s3-event-record-key-decoding-format", "deployments": [], "key": "dynamodb__lambda__s3/s3-event-record-key-decoding-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_s3_event_record_key_decoding_format.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.s3-notification-node-commonjs-handler-decodes-the-url-encoded-key", "deployments": [], "key": "dynamodb__lambda__s3/s3-notification-node-commonjs-handler-decodes-the-url-encoded-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_s3_notification_node_commonjs_handler_decodes_the_url_encoded_key.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.s3-notification-prefix-suffix-filter-scoping", "deployments": [], "key": "dynamodb__lambda__s3/s3-notification-prefix-suffix-filter-scoping", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_s3_notification_prefix_suffix_filter_scoping.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.s3-notification-to-lambda-without-permission-rejected", "deployments": [], "key": "dynamodb__lambda__s3/s3-notification-to-lambda-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_s3_notification_to_lambda_without_permission_rejected.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.s3-notification-without-invoke-permission-blocks-delivery", "deployments": [], "key": "dynamodb__lambda__s3/s3-notification-without-invoke-permission-blocks-delivery", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_s3_notification_without_invoke_permission_blocks_delivery.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.s3-put-triggers-lambda-via-notification", "deployments": [], "key": "dynamodb__lambda__s3/s3-put-triggers-lambda-via-notification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_s3_put_triggers_lambda_via_notification.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.s3-versioned-deletes-invoke-lambda-with-delete-marker-and-version-delete-events", "deployments": [], "key": "dynamodb__lambda__s3/s3-versioned-deletes-invoke-lambda-with-delete-marker-and-version-delete-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_s3_versioned_deletes_invoke_lambda_with_delete_marker_and_version_delete_events.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.s3-versioned-puts-invoke-lambda-per-version-with-its-size-and-etag", "deployments": [], "key": "dynamodb__lambda__s3/s3-versioned-puts-invoke-lambda-per-version-with-its-size-and-etag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_s3_versioned_puts_invoke_lambda_per_version_with_its_size_and_etag.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.saga-s3-upload-processing-with-compensation", "deployments": [], "key": "dynamodb__lambda__s3/saga-s3-upload-processing-with-compensation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_saga_s3_upload_processing_with_compensation.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3.shared-state-concurrent-s3-uploads-write-dynamodb", "deployments": [], "key": "dynamodb__lambda__s3/shared-state-concurrent-s3-uploads-write-dynamodb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3/check_shared_state_concurrent_s3_uploads_write_dynamodb.py", "service": "dynamodb__lambda__s3"} {"check_id": "dynamodb__lambda__s3__secretsmanager.cli-create-secret-and-invoke-lambda-fetch", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/cli-create-secret-and-invoke-lambda-fetch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_cli_create_secret_and_invoke_lambda_fetch.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.cli-delete-secret-lambda-error-handling", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/cli-delete-secret-lambda-error-handling", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:DescribeSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_cli_delete_secret_lambda_error_handling.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.cli-dynamodb-item-encryption-key-missing-kms-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/cli-dynamodb-item-encryption-key-missing-kms-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_cli_dynamodb_item_encryption_key_missing_kms_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.cli-put-secret-value-pending-stage-lambda-reads-during-rotation", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/cli-put-secret-value-pending-stage-lambda-reads-during-rotation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_cli_put_secret_value_pending_stage_lambda_reads_during_rotation.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.cli-rotate-secret-and-verify-version-stages", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/cli-rotate-secret-and-verify-version-stages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_cli_rotate_secret_and_verify_version_stages.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.cli-s3-upload-lambda-reads-config-secret-writes-dynamodb", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/cli-s3-upload-lambda-reads-config-secret-writes-dynamodb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketNotificationConfiguration", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_cli_s3_upload_lambda_reads_config_secret_writes_dynamodb.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.cli-secretsmanager-missing-describe-permission-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/cli-secretsmanager-missing-describe-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_cli_secretsmanager_missing_describe_permission_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.cli-update-secret-triggers-lambda-cache-refresh", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/cli-update-secret-triggers-lambda-cache-refresh", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_cli_update_secret_triggers_lambda_cache_refresh.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.deploy-cfn-lambda-role-trusts-lambda-service", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/deploy-cfn-lambda-role-trusts-lambda-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:Invoke"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_deploy_cfn_lambda_role_trusts_lambda_service.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.deploy-cfn-missing-secretsmanager-policy-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/deploy-cfn-missing-secretsmanager-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_deploy_cfn_missing_secretsmanager_policy_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.deploy-cfn-role-trusts-s3-service-for-batch-operations", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/deploy-cfn-role-trusts-s3-service-for-batch-operations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_deploy_cfn_role_trusts_s3_service_for_batch_operations.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.deploy-cfn-secret-rotation-lambda-stack", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/deploy-cfn-secret-rotation-lambda-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_deploy_cfn_secret_rotation_lambda_stack.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.deploy-sam-lambda-secret-s3-dynamodb-full-stack", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/deploy-sam-lambda-secret-s3-dynamodb-full-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "dynamodb:GetItem", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_deploy_sam_lambda_secret_s3_dynamodb_full_stack.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-dynamodb-rotation-flag-skips-secretsmanager-call", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-dynamodb-rotation-flag-skips-secretsmanager-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_dynamodb_rotation_flag_skips_secretsmanager_call.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-fetches-secret-then-puts-s3-object-positive", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-fetches-secret-then-puts-s3-object-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_fetches_secret_then_puts_s3_object_positive.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-sdk-get-secret-value-positive", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-sdk-get-secret-value-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_sdk_get_secret_value_positive.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-binary-secret-format", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-binary-secret-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_binary_secret_format.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-cross-account-resource-policy-allow", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-cross-account-resource-policy-allow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutResourcePolicy"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_cross_account_resource_policy_allow.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-describe-secret-without-getvalue-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-describe-secret-without-getvalue-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_describe_secret_without_getvalue_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-fetched-config-drives-dynamodb-write", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-fetched-config-drives-dynamodb-write", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_fetched_config_drives_dynamodb_write.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-json-secret-parsing-format", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-json-secret-parsing-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_json_secret_parsing_format.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-kms-decrypt-permission-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-kms-decrypt-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_kms_decrypt_permission_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-missing-permission-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_missing_permission_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-resource-policy-deny-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-resource-policy-deny-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutResourcePolicy"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_resource_policy_deny_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-tag-condition-access-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-tag-condition-access-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_tag_condition_access_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-versionstage-awscurrent-positive", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-versionstage-awscurrent-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_versionstage_awscurrent_positive.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.lambda-secretsmanager-wrong-secret-arn-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/lambda-secretsmanager-wrong-secret-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_lambda_secretsmanager_wrong_secret_arn_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.s3-notification-lambda-decrypts-object-with-secret-writes-dynamodb", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/s3-notification-lambda-decrypts-object-with-secret-writes-dynamodb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_s3_notification_lambda_decrypts_object_with_secret_writes_dynamodb.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.s3-notification-lambda-missing-secretsmanager-permission-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/s3-notification-lambda-missing-secretsmanager-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PutFunctionEventInvokeConfig", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_s3_notification_lambda_missing_secretsmanager_permission_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.secretsmanager-rotation-lambda-invocation-positive", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/secretsmanager-rotation-lambda-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_secretsmanager_rotation_lambda_invocation_positive.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.secretsmanager-rotation-lambda-s3-backup-positive", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/secretsmanager-rotation-lambda-s3-backup-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_secretsmanager_rotation_lambda_s3_backup_positive.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.secretsmanager-rotation-lambda-writes-dynamodb-audit", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/secretsmanager-rotation-lambda-writes-dynamodb-audit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Query", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_secretsmanager_rotation_lambda_writes_dynamodb_audit.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.secretsmanager-rotation-missing-invoke-permission-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/secretsmanager-rotation-missing-invoke-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_secretsmanager_rotation_missing_invoke_permission_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__s3__secretsmanager.secretsmanager-rotation-wrong-function-arn-negative", "deployments": [], "key": "dynamodb__lambda__s3__secretsmanager/secretsmanager-rotation-wrong-function-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__s3__secretsmanager/check_secretsmanager_rotation_wrong_function_arn_negative.py", "service": "dynamodb__lambda__s3__secretsmanager"} {"check_id": "dynamodb__lambda__scheduler.scheduler-lambda-target-input-payload-fidelity", "deployments": [], "key": "dynamodb__lambda__scheduler/scheduler-lambda-target-input-payload-fidelity", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule"], "path": "behavioral/dynamodb__lambda__scheduler/check_scheduler_lambda_target_input_payload_fidelity.py", "service": "dynamodb__lambda__scheduler"} {"check_id": "dynamodb__lambda__sns.ddb-stream-esm-create-rejects-an-onfailure-destination-of-an-unsupported-service", "deployments": [], "key": "dynamodb__lambda__sns/ddb-stream-esm-create-rejects-an-onfailure-destination-of-an-unsupported-service", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/dynamodb__lambda__sns/check_ddb_stream_esm_create_rejects_an_onfailure_destination_of_an_unsupported_service.py", "service": "dynamodb__lambda__sns"} {"check_id": "dynamodb__lambda__sns__sqs.ddb-stream-esm-sns-on-failure-fans-out-batch-info-to-an-sqs-subscriber", "deployments": [], "key": "dynamodb__lambda__sns__sqs/ddb-stream-esm-sns-on-failure-fans-out-batch-info-to-an-sqs-subscriber", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/dynamodb__lambda__sns__sqs/check_ddb_stream_esm_sns_on_failure_fans_out_batch_info_to_an_sqs_subscriber.py", "service": "dynamodb__lambda__sns__sqs"} {"check_id": "dynamodb__lambda__sqs.conc-limits-and-fanout-sqs-esm-handler-error-redelivers-whole-batch", "deployments": [], "key": "dynamodb__lambda__sqs/conc-limits-and-fanout-sqs-esm-handler-error-redelivers-whole-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/dynamodb__lambda__sqs/check_conc_limits_and_fanout_sqs_esm_handler_error_redelivers_whole_batch.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.conc-limits-and-fanout-sqs-esm-invalid-item-identifier-rejected-whole-batch-redelivered", "deployments": [], "key": "dynamodb__lambda__sqs/conc-limits-and-fanout-sqs-esm-invalid-item-identifier-rejected-whole-batch-redelivered", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/dynamodb__lambda__sqs/check_conc_limits_and_fanout_sqs_esm_invalid_item_identifier_rejected_whole_batch_redelivered.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.conc-limits-and-fanout-sqs-esm-partial-batch-redelivers-exactly-reported-items", "deployments": [], "key": "dynamodb__lambda__sqs/conc-limits-and-fanout-sqs-esm-partial-batch-redelivers-exactly-reported-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/dynamodb__lambda__sqs/check_conc_limits_and_fanout_sqs_esm_partial_batch_redelivers_exactly_reported_items.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.ddb-stream-esm-filter-criteria-insert-only-not-invoked", "deployments": [], "key": "dynamodb__lambda__sqs/ddb-stream-esm-filter-criteria-insert-only-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__lambda__sqs/check_ddb_stream_esm_filter_criteria_insert_only_not_invoked.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.ddb-stream-keys-only-view-excludes-new-image", "deployments": [], "key": "dynamodb__lambda__sqs/ddb-stream-keys-only-view-excludes-new-image", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__lambda__sqs/check_ddb_stream_keys_only_view_excludes_new_image.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.dotnet-dynamodb-stream-new-and-old-image-fidelity-via-onfailure-destination", "deployments": [], "key": "dynamodb__lambda__sqs/dotnet-dynamodb-stream-new-and-old-image-fidelity-via-onfailure-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__lambda__sqs/check_dotnet_dynamodb_stream_new_and_old_image_fidelity_via_onfailure_destination.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.java-ddb-stream-new-and-old-image-reach-the-handler", "deployments": [], "key": "dynamodb__lambda__sqs/java-ddb-stream-new-and-old-image-reach-the-handler", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__lambda__sqs/check_java_ddb_stream_new_and_old_image_reach_the_handler.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.lambda-putitem-outside-leading-keys-denied-with-exact-authz-message-and-redriven-to-dlq", "deployments": [], "key": "dynamodb__lambda__sqs/lambda-putitem-outside-leading-keys-denied-with-exact-authz-message-and-redriven-to-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__sqs/check_lambda_putitem_outside_leading_keys_denied_with_exact_authz_message_and_redriven_to_dlq.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.queue-policy-deny-suppresses-esm-delivery", "deployments": [], "key": "dynamodb__lambda__sqs/queue-policy-deny-suppresses-esm-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__lambda__sqs/check_queue_policy_deny_suppresses_esm_delivery.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.ruby-ddb-stream-new-and-old-image-reach-the-handler", "deployments": [], "key": "dynamodb__lambda__sqs/ruby-ddb-stream-new-and-old-image-reach-the-handler", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/dynamodb__lambda__sqs/check_ruby_ddb_stream_new_and_old_image_reach_the_handler.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.sqs-dlq-redrive-reprocesses-after-function-fix", "deployments": [], "key": "dynamodb__lambda__sqs/sqs-dlq-redrive-reprocesses-after-function-fix", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:SendMessage", "sqs:SetQueueAttributes", "sqs:StartMessageMoveTask"], "path": "behavioral/dynamodb__lambda__sqs/check_sqs_dlq_redrive_reprocesses_after_function_fix.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.sqs-fifo-esm-message-group-order-preserved", "deployments": [], "key": "dynamodb__lambda__sqs/sqs-fifo-esm-message-group-order-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/dynamodb__lambda__sqs/check_sqs_fifo_esm_message_group_order_preserved.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__sqs.sqs-fifo-esm-partial-batch-response-deletes-a-later-same-group-success-despite-an-earlier-failure", "deployments": [], "key": "dynamodb__lambda__sqs/sqs-fifo-esm-partial-batch-response-deletes-a-later-same-group-success-despite-an-earlier-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/dynamodb__lambda__sqs/check_sqs_fifo_esm_partial_batch_response_deletes_a_later_same_group_success_despite_an_earlier_failure.py", "service": "dynamodb__lambda__sqs"} {"check_id": "dynamodb__lambda__stepfunctions.sfn-saga-compensate-on-failure", "deployments": [], "key": "dynamodb__lambda__stepfunctions/sfn-saga-compensate-on-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/dynamodb__lambda__stepfunctions/check_sfn_saga_compensate_on_failure.py", "service": "dynamodb__lambda__stepfunctions"} {"check_id": "dynamodb__logs__stepfunctions.xsvc-sfn-express-all-level-logs-show-resource-type-and-sdk-metadata", "deployments": [], "key": "dynamodb__logs__stepfunctions/xsvc-sfn-express-all-level-logs-show-resource-type-and-sdk-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/dynamodb__logs__stepfunctions/check_xsvc_sfn_express_all_level_logs_show_resource_type_and_sdk_metadata.py", "service": "dynamodb__logs__stepfunctions"} {"check_id": "dynamodb__logs__stepfunctions.xsvc-sfn-optimized-ddb-put-item-conditional-check-rejected", "deployments": [], "key": "dynamodb__logs__stepfunctions/xsvc-sfn-optimized-ddb-put-item-conditional-check-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/dynamodb__logs__stepfunctions/check_xsvc_sfn_optimized_ddb_put_item_conditional_check_rejected.py", "service": "dynamodb__logs__stepfunctions"} {"check_id": "dynamodb__pipes__sqs.pipes-create-pipe-dynamodb-stream-source-without-stream-parameters-rejected", "deployments": [], "key": "dynamodb__pipes__sqs/pipes-create-pipe-dynamodb-stream-source-without-stream-parameters-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/dynamodb__pipes__sqs/check_pipes_create_pipe_dynamodb_stream_source_without_stream_parameters_rejected.py", "service": "dynamodb__pipes__sqs"} {"check_id": "dynamodb__pipes__sqs.pipes-dynamodb-stream-source-preserves-per-key-change-order", "deployments": [], "key": "dynamodb__pipes__sqs/pipes-dynamodb-stream-source-preserves-per-key-change-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/dynamodb__pipes__sqs/check_pipes_dynamodb_stream_source_preserves_per_key_change_order.py", "service": "dynamodb__pipes__sqs"} {"check_id": "dynamodb__resourcegroupstaggingapi.table-native-tags-visible-through-get-resources", "deployments": [], "key": "dynamodb__resourcegroupstaggingapi/table-native-tags-visible-through-get-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:TagResource", "dynamodb:UntagResource", "resourcegroupstaggingapi:GetResources"], "path": "behavioral/dynamodb__resourcegroupstaggingapi/check_table_native_tags_visible_through_get_resources.py", "service": "dynamodb__resourcegroupstaggingapi"} {"check_id": "dynamodb__s3.export-to-s3-rejected-when-point-in-time-recovery-disabled", "deployments": [], "key": "dynamodb__s3/export-to-s3-rejected-when-point-in-time-recovery-disabled", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:ListExports", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/dynamodb__s3/check_export_to_s3_rejected_when_point_in_time_recovery_disabled.py", "service": "dynamodb__s3"} {"check_id": "dynamodb__s3.export-to-s3-writes-the-exact-items-and-the-manifest-agrees", "deployments": [], "key": "dynamodb__s3/export-to-s3-writes-the-exact-items-and-the-manifest-agrees", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeExport", "dynamodb:DescribeTable", "dynamodb:ExportTableToPointInTime", "dynamodb:PutItem", "dynamodb:UpdateContinuousBackups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/dynamodb__s3/check_export_to_s3_writes_the_exact_items_and_the_manifest_agrees.py", "service": "dynamodb__s3"} {"check_id": "dynamodb__stepfunctions.delete-item-task-removes-the-item-and-a-failed-condition-leaves-it-untouched", "deployments": [], "key": "dynamodb__stepfunctions/delete-item-task-removes-the-item-and-a-failed-condition-leaves-it-untouched", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/dynamodb__stepfunctions/check_delete_item_task_removes_the_item_and_a_failed_condition_leaves_it_untouched.py", "service": "dynamodb__stepfunctions"} {"check_id": "dynamodbstreams.closed-shard-get-records-ends-with-a-null-next-shard-iterator", "deployments": [], "key": "dynamodbstreams/closed-shard-get-records-ends-with-a-null-next-shard-iterator", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:PutItem", "dynamodb:UpdateTable", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_closed_shard_get_records_ends_with_a_null_next_shard_iterator.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.concurrent-writes-each-appear-exactly-once", "deployments": [], "key": "dynamodbstreams/concurrent-writes-each-appear-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_concurrent_writes_each_appear_exactly_once.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.describe-stream-shard-pagination-covers-all-shards", "deployments": [], "key": "dynamodbstreams/describe-stream-shard-pagination-covers-all-shards", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetShardIterator", "dynamodbstreams:ListStreams"], "path": "behavioral/dynamodbstreams/check_describe_stream_shard_pagination_covers_all_shards.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.disable-closes-shards-and-reenable-mints-new-stream", "deployments": [], "key": "dynamodbstreams/disable-closes-shards-and-reenable-mints-new-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:ListTables", "dynamodb:PutItem", "dynamodb:UpdateTable", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator", "dynamodbstreams:ListStreams"], "path": "behavioral/dynamodbstreams/check_disable_closes_shards_and_reenable_mints_new_stream.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.foreign-sequence-number-rejected", "deployments": [], "key": "dynamodbstreams/foreign-sequence-number-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_foreign_sequence_number_rejected.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.get-records-limit-pages-one-shard-without-gaps-or-repeats", "deployments": [], "key": "dynamodbstreams/get-records-limit-pages-one-shard-without-gaps-or-repeats", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_get_records_limit_pages_one_shard_without_gaps_or_repeats.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.iterator-types-select-expected-records", "deployments": [], "key": "dynamodbstreams/iterator-types-select-expected-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_iterator_types_select_expected_records.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.keys-only-view-omits-both-images", "deployments": [], "key": "dynamodbstreams/keys-only-view-omits-both-images", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_keys_only_view_omits_both_images.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.list-streams-limit-over-100-rejected", "deployments": [], "key": "dynamodbstreams/list-streams-limit-over-100-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodbstreams:ListStreams"], "path": "behavioral/dynamodbstreams/check_list_streams_limit_over_100_rejected.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.list-streams-unfiltered-includes-new-table-stream", "deployments": [], "key": "dynamodbstreams/list-streams-unfiltered-includes-new-table-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodbstreams:ListStreams"], "path": "behavioral/dynamodbstreams/check_list_streams_unfiltered_includes_new_table_stream.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.malformed-shard-iterator-rejected", "deployments": [], "key": "dynamodbstreams/malformed-shard-iterator-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_malformed_shard_iterator_rejected.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.new-image-view-omits-old-image", "deployments": [], "key": "dynamodbstreams/new-image-view-omits-old-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_new_image_view_omits_old_image.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.nonexistent-stream-arn-rejected", "deployments": [], "key": "dynamodbstreams/nonexistent-stream-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator", "dynamodbstreams:ListStreams"], "path": "behavioral/dynamodbstreams/check_nonexistent_stream_arn_rejected.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.old-image-view-omits-new-image", "deployments": [], "key": "dynamodbstreams/old-image-view-omits-new-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_old_image_view_omits_new_image.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.shard-record-order-matches-write-order", "deployments": [], "key": "dynamodbstreams/shard-record-order-matches-write-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_shard_record_order_matches_write_order.py", "service": "dynamodbstreams"} {"check_id": "dynamodbstreams.stream-record-creation-time-tracks-the-live-clock", "deployments": [], "key": "dynamodbstreams/stream-record-creation-time-tracks-the-live-clock", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:PutItem", "dynamodbstreams:DescribeStream", "dynamodbstreams:GetRecords", "dynamodbstreams:GetShardIterator"], "path": "behavioral/dynamodbstreams/check_stream_record_creation_time_tracks_the_live_clock.py", "service": "dynamodbstreams"} {"check_id": "ebs.complete-snapshot-transitions-to-completed-state", "deployments": [], "key": "ebs/complete-snapshot-transitions-to-completed-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_complete_snapshot_transitions_to_completed_state.py", "service": "ebs"} {"check_id": "ebs.complete-snapshot-twice-is-idempotent", "deployments": [], "key": "ebs/complete-snapshot-twice-is-idempotent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_complete_snapshot_twice_is_idempotent.py", "service": "ebs"} {"check_id": "ebs.complete-snapshot-wrong-changed-blocks-count-is-accepted", "deployments": [], "key": "ebs/complete-snapshot-wrong-changed-blocks-count-is-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_complete_snapshot_wrong_changed_blocks_count_is_accepted.py", "service": "ebs"} {"check_id": "ebs.concurrent-put-snapshot-block-distinct-indices", "deployments": [], "key": "ebs/concurrent-put-snapshot-block-distinct-indices", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_concurrent_put_snapshot_block_distinct_indices.py", "service": "ebs"} {"check_id": "ebs.full-snapshot-round-trip-write-read-complete", "deployments": [], "key": "ebs/full-snapshot-round-trip-write-read-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_full_snapshot_round_trip_write_read_complete.py", "service": "ebs"} {"check_id": "ebs.get-snapshot-block-foreign-token-rejected", "deployments": [], "key": "ebs/get-snapshot-block-foreign-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot"], "path": "behavioral/ebs/check_get_snapshot_block_foreign_token_rejected.py", "service": "ebs"} {"check_id": "ebs.get-snapshot-block-invalid-token-rejected", "deployments": [], "key": "ebs/get-snapshot-block-invalid-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_get_snapshot_block_invalid_token_rejected.py", "service": "ebs"} {"check_id": "ebs.incremental-child-lists-and-serves-inherited-parent-blocks", "deployments": [], "key": "ebs/incremental-child-lists-and-serves-inherited-parent-blocks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_incremental_child_lists_and_serves_inherited_parent_blocks.py", "service": "ebs"} {"check_id": "ebs.incremental-snapshot-list-changed-blocks", "deployments": [], "key": "ebs/incremental-snapshot-list-changed-blocks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListChangedBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_incremental_snapshot_list_changed_blocks.py", "service": "ebs"} {"check_id": "ebs.list-changed-blocks-token-presence-distinguishes-new-from-rewritten-block", "deployments": [], "key": "ebs/list-changed-blocks-token-presence-distinguishes-new-from-rewritten-block", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListChangedBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_list_changed_blocks_token_presence_distinguishes_new_from_rewritten_block.py", "service": "ebs"} {"check_id": "ebs.list-changed-blocks-unrelated-snapshots-rejected", "deployments": [], "key": "ebs/list-changed-blocks-unrelated-snapshots-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListChangedBlocks", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_list_changed_blocks_unrelated_snapshots_rejected.py", "service": "ebs"} {"check_id": "ebs.list-snapshot-blocks-expiry-time-in-future", "deployments": [], "key": "ebs/list-snapshot-blocks-expiry-time-in-future", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_list_snapshot_blocks_expiry_time_in_future.py", "service": "ebs"} {"check_id": "ebs.list-snapshot-blocks-maxresults-out-of-range-rejected", "deployments": [], "key": "ebs/list-snapshot-blocks-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_list_snapshot_blocks_maxresults_out_of_range_rejected.py", "service": "ebs"} {"check_id": "ebs.list-snapshot-blocks-reflects-written-blocks", "deployments": [], "key": "ebs/list-snapshot-blocks-reflects-written-blocks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_list_snapshot_blocks_reflects_written_blocks.py", "service": "ebs"} {"check_id": "ebs.list-snapshot-blocks-starting-block-index-windows-the-listing", "deployments": [], "key": "ebs/list-snapshot-blocks-starting-block-index-windows-the-listing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_list_snapshot_blocks_starting_block_index_windows_the_listing.py", "service": "ebs"} {"check_id": "ebs.missing-permission-put-snapshot-block-rejected", "deployments": [], "key": "ebs/missing-permission-put-snapshot-block-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ebs/check_missing_permission_put_snapshot_block_rejected.py", "service": "ebs"} {"check_id": "ebs.put-snapshot-block-after-completion-rejected", "deployments": [], "key": "ebs/put-snapshot-block-after-completion-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_put_snapshot_block_after_completion_rejected.py", "service": "ebs"} {"check_id": "ebs.put-snapshot-block-checksum-mismatch-rejected", "deployments": [], "key": "ebs/put-snapshot-block-checksum-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_put_snapshot_block_checksum_mismatch_rejected.py", "service": "ebs"} {"check_id": "ebs.put-snapshot-block-datalength-mismatch-rejected", "deployments": [], "key": "ebs/put-snapshot-block-datalength-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_put_snapshot_block_datalength_mismatch_rejected.py", "service": "ebs"} {"check_id": "ebs.put-snapshot-block-index-exceeds-volume-rejected", "deployments": [], "key": "ebs/put-snapshot-block-index-exceeds-volume-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_put_snapshot_block_index_exceeds_volume_rejected.py", "service": "ebs"} {"check_id": "ebs.put-snapshot-block-response-returns-checksum-and-algorithm", "deployments": [], "key": "ebs/put-snapshot-block-response-returns-checksum-and-algorithm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_put_snapshot_block_response_returns_checksum_and_algorithm.py", "service": "ebs"} {"check_id": "ebs.read-from-incomplete-snapshot-rejected", "deployments": [], "key": "ebs/read-from-incomplete-snapshot-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot"], "path": "behavioral/ebs/check_read_from_incomplete_snapshot_rejected.py", "service": "ebs"} {"check_id": "ebs.start-snapshot-client-token-conflict-rejected", "deployments": [], "key": "ebs/start-snapshot-client-token-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ebs:CompleteSnapshot", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_start_snapshot_client_token_conflict_rejected.py", "service": "ebs"} {"check_id": "ebs.start-snapshot-client-token-idempotent-same-payload", "deployments": [], "key": "ebs/start-snapshot-client-token-idempotent-same-payload", "labels": ["axis:happy-path", "plane:control"], "operations": ["ebs:CompleteSnapshot", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_start_snapshot_client_token_idempotent_same_payload.py", "service": "ebs"} {"check_id": "ebs.start-snapshot-description-and-tags-persist", "deployments": [], "key": "ebs/start-snapshot-description-and-tags-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["ebs:CompleteSnapshot", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_start_snapshot_description_and_tags_persist.py", "service": "ebs"} {"check_id": "ebs.start-snapshot-encrypted-with-parent-rejected", "deployments": [], "key": "ebs/start-snapshot-encrypted-with-parent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ebs:CompleteSnapshot", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_start_snapshot_encrypted_with_parent_rejected.py", "service": "ebs"} {"check_id": "ebs.start-snapshot-invalid-volume-size-rejected", "deployments": [], "key": "ebs/start-snapshot-invalid-volume-size-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ebs:CompleteSnapshot", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_start_snapshot_invalid_volume_size_rejected.py", "service": "ebs"} {"check_id": "ebs.start-snapshot-nonexistent-parent-rejected", "deployments": [], "key": "ebs/start-snapshot-nonexistent-parent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ebs:CompleteSnapshot", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_start_snapshot_nonexistent_parent_rejected.py", "service": "ebs"} {"check_id": "ebs.start-snapshot-returns-pending-status", "deployments": [], "key": "ebs/start-snapshot-returns-pending-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ebs:CompleteSnapshot", "ebs:StartSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots"], "path": "behavioral/ebs/check_start_snapshot_returns_pending_status.py", "service": "ebs"} {"check_id": "ec2-instance-connect.send-serial-console-ssh-public-key-access-disabled-rejected", "deployments": [], "key": "ec2-instance-connect/send-serial-console-ssh-public-key-access-disabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2-instance-connect:SendSerialConsoleSSHPublicKey", "ec2:DisableSerialConsoleAccess", "ec2:EnableSerialConsoleAccess", "ec2:GetSerialConsoleAccessStatus"], "path": "behavioral/ec2-instance-connect/check_send_serial_console_ssh_public_key_access_disabled_rejected.py", "service": "ec2-instance-connect"} {"check_id": "ec2-instance-connect.send-ssh-public-key-iam-deny-auth-exception-rejected", "deployments": [], "key": "ec2-instance-connect/send-ssh-public-key-iam-deny-auth-exception-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2-instance-connect:SendSSHPublicKey", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/ec2-instance-connect/check_send_ssh_public_key_iam_deny_auth_exception_rejected.py", "service": "ec2-instance-connect"} {"check_id": "ec2-instance-connect.send-ssh-public-key-nonexistent-instance-not-found-rejected", "deployments": [], "key": "ec2-instance-connect/send-ssh-public-key-nonexistent-instance-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2-instance-connect:SendSSHPublicKey", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2-instance-connect/check_send_ssh_public_key_nonexistent_instance_not_found_rejected.py", "service": "ec2-instance-connect"} {"check_id": "ec2-instance-connect.send-ssh-public-key-resource-tag-condition-mismatch-auth-exception-rejected", "deployments": [], "key": "ec2-instance-connect/send-ssh-public-key-resource-tag-condition-mismatch-auth-exception-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2-instance-connect:SendSSHPublicKey", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/ec2-instance-connect/check_send_ssh_public_key_resource_tag_condition_mismatch_auth_exception_rejected.py", "service": "ec2-instance-connect"} {"check_id": "ec2.accept-reserved-instances-exchange-quote-stale-quote-rejected", "deployments": [], "key": "ec2/accept-reserved-instances-exchange-quote-stale-quote-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptReservedInstancesExchangeQuote", "ec2:GetReservedInstancesExchangeQuote"], "path": "behavioral/ec2/check_accept_reserved_instances_exchange_quote_stale_quote_rejected.py", "service": "ec2"} {"check_id": "ec2.allowed-images-settings-reflects-enablement", "deployments": [], "key": "ec2/allowed-images-settings-reflects-enablement", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableAllowedImagesSettings", "ec2:EnableAllowedImagesSettings", "ec2:GetAllowedImagesSettings", "ec2:ReplaceImageCriteriaInAllowedImagesSettings"], "path": "behavioral/ec2/check_allowed_images_settings_reflects_enablement.py", "service": "ec2"} {"check_id": "ec2.arm64-ami-on-x86-64-instance-type-rejected", "deployments": [], "key": "ec2/arm64-ami-on-x86-64-instance-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_arm64_ami_on_x86_64_instance_type_rejected.py", "service": "ec2"} {"check_id": "ec2.arm64-instance-type-with-x86-64-ami-rejected", "deployments": [], "key": "ec2/arm64-instance-type-with-x86-64-ami-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_arm64_instance_type_with_x86_64_ami_rejected.py", "service": "ec2"} {"check_id": "ec2.arm64-t4g-micro-guest-reports-aarch64", "deployments": [], "key": "ec2/arm64-t4g-micro-guest-reports-aarch64", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_arm64_t4g_micro_guest_reports_aarch64.py", "service": "ec2"} {"check_id": "ec2.arm64-x86-64-binary-execution-in-the-guest-rejected", "deployments": [], "key": "ec2/arm64-x86-64-binary-execution-in-the-guest-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_arm64_x86_64_binary_execution_in_the_guest_rejected.py", "service": "ec2"} {"check_id": "ec2.arm64-x86-64-payload-runs-on-t3-micro-and-is-rejected-on-t4g-micro", "deployments": [], "key": "ec2/arm64-x86-64-payload-runs-on-t3-micro-and-is-rejected-on-t4g-micro", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_arm64_x86_64_payload_runs_on_t3_micro_and_is_rejected_on_t4g_micro.py", "service": "ec2"} {"check_id": "ec2.associate-route-server-already-associated-rejected", "deployments": [], "key": "ec2/associate-route-server-already-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateVpc", "ec2:DeleteRouteServer", "ec2:DeleteVpc", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_associate_route_server_already_associated_rejected.py", "service": "ec2"} {"check_id": "ec2.associate-route-table-cross-vpc-rejected", "deployments": [], "key": "ec2/associate-route-table-cross-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_associate_route_table_cross_vpc_rejected.py", "service": "ec2"} {"check_id": "ec2.associate-second-iam-instance-profile-rejected", "deployments": [], "key": "ec2/associate-second-iam-instance-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateIamInstanceProfile", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DisassociateIamInstanceProfile", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ec2/check_associate_second_iam_instance_profile_rejected.py", "service": "ec2"} {"check_id": "ec2.associate-trunk-interface-non-trunk-eni-rejected", "deployments": [], "key": "ec2/associate-trunk-interface-non-trunk-eni-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateTrunkInterface", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeTrunkInterfaceAssociations"], "path": "behavioral/ec2/check_associate_trunk_interface_non_trunk_eni_rejected.py", "service": "ec2"} {"check_id": "ec2.associated-enclave-certificate-iam-roles-reflects-association", "deployments": [], "key": "ec2/associated-enclave-certificate-iam-roles-reflects-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateEnclaveCertificateIamRole", "ec2:DisassociateEnclaveCertificateIamRole", "ec2:GetAssociatedEnclaveCertificateIamRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/ec2/check_associated_enclave_certificate_iam_roles_reflects_association.py", "service": "ec2"} {"check_id": "ec2.associated-ipv6-pool-cidrs-reflects-pool-contents", "deployments": [], "key": "ec2/associated-ipv6-pool-cidrs-reflects-pool-contents", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetAssociatedIpv6PoolCidrs"], "path": "behavioral/ec2/check_associated_ipv6_pool_cidrs_reflects_pool_contents.py", "service": "ec2"} {"check_id": "ec2.aws-network-performance-data-matches-subscription", "deployments": [], "key": "ec2/aws-network-performance-data-matches-subscription", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAwsNetworkPerformanceMetricSubscriptions", "ec2:DescribeRegions", "ec2:DisableAwsNetworkPerformanceMetricSubscription", "ec2:EnableAwsNetworkPerformanceMetricSubscription", "ec2:GetAwsNetworkPerformanceData"], "path": "behavioral/ec2/check_aws_network_performance_data_matches_subscription.py", "service": "ec2"} {"check_id": "ec2.capacity-manager-data-export-lifecycle", "deployments": [], "key": "ec2/capacity-manager-data-export-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCapacityManagerDataExport", "ec2:DeleteCapacityManagerDataExport", "ec2:DescribeCapacityManagerDataExports", "ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "ec2:GetCapacityManagerMetricData", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_capacity_manager_data_export_lifecycle.py", "service": "ec2"} {"check_id": "ec2.capacity-manager-metric-dimensions-track-monitored-tag-keys", "deployments": [], "key": "ec2/capacity-manager-metric-dimensions-track-monitored-tag-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "ec2:GetCapacityManagerMetricDimensions", "ec2:GetCapacityManagerMonitoredTagKeys", "ec2:UpdateCapacityManagerMonitoredTagKeys", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_capacity_manager_metric_dimensions_track_monitored_tag_keys.py", "service": "ec2"} {"check_id": "ec2.capacity-manager-organizations-access-toggle-scopes-metric-data", "deployments": [], "key": "ec2/capacity-manager-organizations-access-toggle-scopes-metric-data", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "ec2:GetCapacityManagerMetricData", "ec2:UpdateCapacityManagerOrganizationsAccess", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_capacity_manager_organizations_access_toggle_scopes_metric_data.py", "service": "ec2"} {"check_id": "ec2.capacity-reservation-cancellation-quote-then-cancel-consistency", "deployments": [], "key": "ec2/capacity-reservation-cancellation-quote-then-cancel-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateCapacityReservationCancellationQuote", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations"], "path": "behavioral/ec2/check_capacity_reservation_cancellation_quote_then_cancel_consistency.py", "service": "ec2"} {"check_id": "ec2.capacity-reservation-family-error-semantics", "deployments": [], "key": "ec2/capacity-reservation-family-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones"], "path": "behavioral/ec2/check_capacity_reservation_family_error_semantics.py", "service": "ec2"} {"check_id": "ec2.capacity-reservation-split-produces-child-reservations", "deployments": [], "key": "ec2/capacity-reservation-split-produces-child-reservations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateCapacityReservationBySplitting", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations"], "path": "behavioral/ec2/check_capacity_reservation_split_produces_child_reservations.py", "service": "ec2"} {"check_id": "ec2.capacity-reservation-usage-reflects-active-reservations", "deployments": [], "key": "ec2/capacity-reservation-usage-reflects-active-reservations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:GetCapacityReservationUsage"], "path": "behavioral/ec2/check_capacity_reservation_usage_reflects_active_reservations.py", "service": "ec2"} {"check_id": "ec2.capres-cancel-with-a-running-instance-releases-it-without-stopping-the-guest", "deployments": [], "key": "ec2/capres-cancel-with-a-running-instance-releases-it-without-stopping-the-guest", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:GetCapacityReservationUsage", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_capres_cancel_with_a_running_instance_releases_it_without_stopping_the_guest.py", "service": "ec2"} {"check_id": "ec2.capres-launch-of-a-mismatched-instance-type-into-a-targeted-reservation-rejected", "deployments": [], "key": "ec2/capres-launch-of-a-mismatched-instance-type-into-a-targeted-reservation-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:GetCapacityReservationUsage", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_capres_launch_of_a_mismatched_instance_type_into_a_targeted_reservation_rejected.py", "service": "ec2"} {"check_id": "ec2.capres-open-reservation-consumed-implicitly-while-a-targeted-one-is-untouched", "deployments": [], "key": "ec2/capres-open-reservation-consumed-implicitly-while-a-targeted-one-is-untouched", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:GetCapacityReservationUsage", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_capres_open_reservation_consumed_implicitly_while_a_targeted_one_is_untouched.py", "service": "ec2"} {"check_id": "ec2.capres-targeted-reservation-consumed-by-a-guest-that-really-boots", "deployments": [], "key": "ec2/capres-targeted-reservation-consumed-by-a-guest-that-really-boots", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:GetCapacityReservationUsage", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_capres_targeted_reservation_consumed_by_a_guest_that_really_boots.py", "service": "ec2"} {"check_id": "ec2.check-create-vpc-block-public-access-exclusion-missing-target-rejected", "deployments": [], "key": "ec2/check-create-vpc-block-public-access-exclusion-missing-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcBlockPublicAccessExclusion", "ec2:DeleteVpc", "ec2:DeleteVpcBlockPublicAccessExclusion", "ec2:DescribeVpcBlockPublicAccessExclusions"], "path": "behavioral/ec2/check_check_create_vpc_block_public_access_exclusion_missing_target_rejected.py", "service": "ec2"} {"check_id": "ec2.check-modify-volume-size-decrease-rejected", "deployments": [], "key": "ec2/check-modify-volume-size-decrease-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:ModifyVolume"], "path": "behavioral/ec2/check_check_modify_volume_size_decrease_rejected.py", "service": "ec2"} {"check_id": "ec2.client-vpn-and-coip-error-semantics", "deployments": [], "key": "ec2/client-vpn-and-coip-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateClientVpnRoute", "ec2:CreateCoipCidr", "ec2:CreateCoipPool", "ec2:DeleteClientVpnEndpoint", "ec2:DeleteClientVpnRoute", "ec2:DeleteCoipCidr", "ec2:DeleteCoipPool"], "path": "behavioral/ec2/check_client_vpn_and_coip_error_semantics.py", "service": "ec2"} {"check_id": "ec2.concurrent-associate-route-server-same-vpc-race", "deployments": [], "key": "ec2/concurrent-associate-route-server-same-vpc-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateVpc", "ec2:DeleteRouteServer", "ec2:DeleteVpc", "ec2:DescribeRouteServers", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_concurrent_associate_route_server_same_vpc_race.py", "service": "ec2"} {"check_id": "ec2.concurrent-capacity-reservation-split-oversubscription-rejected", "deployments": [], "key": "ec2/concurrent-capacity-reservation-split-oversubscription-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateCapacityReservationBySplitting", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations"], "path": "behavioral/ec2/check_concurrent_capacity_reservation_split_oversubscription_rejected.py", "service": "ec2"} {"check_id": "ec2.concurrent-create-delete-transit-gateway-policy-table-entry-race", "deployments": [], "key": "ec2/concurrent-create-delete-transit-gateway-policy-table-entry-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayPolicyTableEntry", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DeleteTransitGatewayPolicyTableEntry", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPolicyTableEntries"], "path": "behavioral/ec2/check_concurrent_create_delete_transit_gateway_policy_table_entry_race.py", "service": "ec2"} {"check_id": "ec2.concurrent-modify-instance-capacity-reservation-attributes-race", "deployments": [], "key": "ec2/concurrent-modify-instance-capacity-reservation-attributes-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:DescribeInstances", "ec2:ModifyInstanceCapacityReservationAttributes", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_concurrent_modify_instance_capacity_reservation_attributes_race.py", "service": "ec2"} {"check_id": "ec2.concurrent-modify-ipam-resource-cidr-conflicting-updates", "deployments": [], "key": "ec2/concurrent-modify-ipam-resource-cidr-conflicting-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DeleteVpc", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:GetIpamPoolCidrs", "ec2:GetIpamResourceCidrs", "ec2:ModifyIpamResourceCidr", "ec2:ProvisionIpamPoolCidr"], "path": "behavioral/ec2/check_concurrent_modify_ipam_resource_cidr_conflicting_updates.py", "service": "ec2"} {"check_id": "ec2.concurrent-modify-route-server-optimistic-lock-conflict", "deployments": [], "key": "ec2/concurrent-modify-route-server-optimistic-lock-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateRouteServer", "ec2:DeleteRouteServer", "ec2:DescribeRouteServers", "ec2:ModifyRouteServer"], "path": "behavioral/ec2/check_concurrent_modify_route_server_optimistic_lock_conflict.py", "service": "ec2"} {"check_id": "ec2.confirm-product-instance-mismatched-code-returns-negative", "deployments": [], "key": "ec2/confirm-product-instance-mismatched-code-returns-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:ConfirmProductInstance", "ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_confirm_product_instance_mismatched_code_returns_negative.py", "service": "ec2"} {"check_id": "ec2.confirm-product-instance-wrong-code-rejected", "deployments": [], "key": "ec2/confirm-product-instance-wrong-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:ConfirmProductInstance", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_confirm_product_instance_wrong_code_rejected.py", "service": "ec2"} {"check_id": "ec2.copy-fpga-image-invalid-source-region-rejected", "deployments": [], "key": "ec2/copy-fpga-image-invalid-source-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CopyFpgaImage", "ec2:DeleteFpgaImage", "ec2:DescribeFpgaImages"], "path": "behavioral/ec2/check_copy_fpga_image_invalid_source_region_rejected.py", "service": "ec2"} {"check_id": "ec2.copy-snapshot-cross-account-without-permission-blocked", "deployments": [], "key": "ec2/copy-snapshot-cross-account-without-permission-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CopySnapshot", "ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_copy_snapshot_cross_account_without_permission_blocked.py", "service": "ec2"} {"check_id": "ec2.copy-snapshot-malformed-presigned-url-rejected", "deployments": [], "key": "ec2/copy-snapshot-malformed-presigned-url-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CopySnapshot", "ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_copy_snapshot_malformed_presigned_url_rejected.py", "service": "ec2"} {"check_id": "ec2.copy-volumes-undersized-target-rejected", "deployments": [], "key": "ec2/copy-volumes-undersized-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CopyVolumes", "ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_copy_volumes_undersized_target_rejected.py", "service": "ec2"} {"check_id": "ec2.cpucredit-modify-instance-credit-specification-invalid-mode-rejected", "deployments": [], "key": "ec2/cpucredit-modify-instance-credit-specification-invalid-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceCreditSpecifications", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:ModifyInstanceCreditSpecification", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_cpucredit_modify_instance_credit_specification_invalid_mode_rejected.py", "service": "ec2"} {"check_id": "ec2.cpucredit-unlimited-sustains-guest-throughput-on-surplus-credits", "deployments": [], "key": "ec2/cpucredit-unlimited-sustains-guest-throughput-on-surplus-credits", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceCreditSpecifications", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_cpucredit_unlimited_sustains_guest_throughput_on_surplus_credits.py", "service": "ec2"} {"check_id": "ec2.cpuopts-core-count-outside-valid-cores-rejected", "deployments": [], "key": "ec2/cpuopts-core-count-outside-valid-cores-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_cpuopts_core_count_outside_valid_cores_rejected.py", "service": "ec2"} {"check_id": "ec2.cpuopts-guest-topology-differs-from-the-type-default", "deployments": [], "key": "ec2/cpuopts-guest-topology-differs-from-the-type-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_cpuopts_guest_topology_differs_from_the_type_default.py", "service": "ec2"} {"check_id": "ec2.cpuopts-partial-cpu-options-rejected", "deployments": [], "key": "ec2/cpuopts-partial-cpu-options-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_cpuopts_partial_cpu_options_rejected.py", "service": "ec2"} {"check_id": "ec2.cpuopts-threads-per-core-one-observed-in-guest", "deployments": [], "key": "ec2/cpuopts-threads-per-core-one-observed-in-guest", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_cpuopts_threads_per_core_one_observed_in_guest.py", "service": "ec2"} {"check_id": "ec2.cpuopts-topology-survives-a-stop-start-cycle", "deployments": [], "key": "ec2/cpuopts-topology-survives-a-stop-start-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_cpuopts_topology_survives_a_stop_start_cycle.py", "service": "ec2"} {"check_id": "ec2.create-capacity-reservation-by-splitting-insufficient-capacity-rejected", "deployments": [], "key": "ec2/create-capacity-reservation-by-splitting-insufficient-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateCapacityReservationBySplitting", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations"], "path": "behavioral/ec2/check_create_capacity_reservation_by_splitting_insufficient_capacity_rejected.py", "service": "ec2"} {"check_id": "ec2.create-capacity-reservation-cancellation-quote-unknown-reservation-rejected", "deployments": [], "key": "ec2/create-capacity-reservation-cancellation-quote-unknown-reservation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateCapacityReservationCancellationQuote", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations"], "path": "behavioral/ec2/check_create_capacity_reservation_cancellation_quote_unknown_reservation_rejected.py", "service": "ec2"} {"check_id": "ec2.create-client-vpn-route-conflicting-destination-rejected", "deployments": [], "key": "ec2/create-client-vpn-route-conflicting-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:ApplySecurityGroupsToClientVpnTargetNetwork", "ec2:AssociateClientVpnTargetNetwork", "ec2:CreateClientVpnEndpoint", "ec2:CreateClientVpnRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteClientVpnEndpoint", "ec2:DeleteClientVpnRoute", "ec2:DescribeAvailabilityZones", "ec2:DescribeClientVpnRoutes", "ec2:DescribeClientVpnTargetNetworks", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateClientVpnTargetNetwork"], "path": "behavioral/ec2/check_create_client_vpn_route_conflicting_destination_rejected.py", "service": "ec2"} {"check_id": "ec2.create-coip-pool-invalid-route-table-rejected", "deployments": [], "key": "ec2/create-coip-pool-invalid-route-table-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateCoipPool", "ec2:DescribeCoipPools", "ec2:DescribeLocalGatewayRouteTables"], "path": "behavioral/ec2/check_create_coip_pool_invalid_route_table_rejected.py", "service": "ec2"} {"check_id": "ec2.create-customer-gateway-contract", "deployments": [], "key": "ec2/create-customer-gateway-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:DeleteCustomerGateway", "ec2:DescribeCustomerGateways"], "path": "behavioral/ec2/check_create_customer_gateway_contract.py", "service": "ec2"} {"check_id": "ec2.create-default-subnet-contract", "deployments": [], "key": "ec2/create-default-subnet-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateDefaultSubnet", "ec2:DeleteSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets"], "path": "behavioral/ec2/check_create_default_subnet_contract.py", "service": "ec2"} {"check_id": "ec2.create-default-vpc-contract", "deployments": [], "key": "ec2/create-default-vpc-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateDefaultVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_create_default_vpc_contract.py", "service": "ec2"} {"check_id": "ec2.create-delegate-mac-volume-ownership-task-invalid-instance-rejected", "deployments": [], "key": "ec2/create-delegate-mac-volume-ownership-task-invalid-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateDelegateMacVolumeOwnershipTask", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_create_delegate_mac_volume_ownership_task_invalid_instance_rejected.py", "service": "ec2"} {"check_id": "ec2.create-dhcp-options-contract", "deployments": [], "key": "ec2/create-dhcp-options-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateDhcpOptions", "ec2:DeleteDhcpOptions", "ec2:DescribeDhcpOptions"], "path": "behavioral/ec2/check_create_dhcp_options_contract.py", "service": "ec2"} {"check_id": "ec2.create-egress-only-internet-gateway-contract", "deployments": [], "key": "ec2/create-egress-only-internet-gateway-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateEgressOnlyInternetGateway", "ec2:CreateVpc", "ec2:DeleteEgressOnlyInternetGateway", "ec2:DeleteVpc", "ec2:DescribeEgressOnlyInternetGateways"], "path": "behavioral/ec2/check_create_egress_only_internet_gateway_contract.py", "service": "ec2"} {"check_id": "ec2.create-fleet-contract", "deployments": [], "key": "ec2/create-fleet-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:DeleteFleets", "ec2:DeleteLaunchTemplate", "ec2:DescribeFleets", "ec2:DescribeImages"], "path": "behavioral/ec2/check_create_fleet_contract.py", "service": "ec2"} {"check_id": "ec2.create-fleet-overrides-instance-type-and-requirements-conflict-rejected", "deployments": [], "key": "ec2/create-fleet-overrides-instance-type-and-requirements-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:DeleteFleets", "ec2:DeleteLaunchTemplate", "ec2:DescribeFleets", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_create_fleet_overrides_instance_type_and_requirements_conflict_rejected.py", "service": "ec2"} {"check_id": "ec2.create-flow-logs-partial-failure", "deployments": [], "key": "ec2/create-flow-logs-partial-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateFlowLogs", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteVpc", "ec2:DescribeFlowLogs", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ec2/check_create_flow_logs_partial_failure.py", "service": "ec2"} {"check_id": "ec2.create-fpga-image-invalid-bucket-rejected", "deployments": [], "key": "ec2/create-fpga-image-invalid-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateFpgaImage", "ec2:DeleteFpgaImage", "ec2:DescribeFpgaImages", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/ec2/check_create_fpga_image_invalid_bucket_rejected.py", "service": "ec2"} {"check_id": "ec2.create-image-and-snapshots-from-instance", "deployments": [], "key": "ec2/create-image-and-snapshots-from-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateImage", "ec2:CreateSnapshots", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSnapshots", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_create_image_and_snapshots_from_instance.py", "service": "ec2"} {"check_id": "ec2.create-image-contract", "deployments": [], "key": "ec2/create-image-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateImage", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_create_image_contract.py", "service": "ec2"} {"check_id": "ec2.create-image-usage-report-contract", "deployments": [], "key": "ec2/create-image-usage-report-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateImage", "ec2:CreateImageUsageReport", "ec2:DeleteImageUsageReport", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImageUsageReports", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_create_image_usage_report_contract.py", "service": "ec2"} {"check_id": "ec2.create-instance-connect-endpoint-contract", "deployments": [], "key": "ec2/create-instance-connect-endpoint-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceConnectEndpoint", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInstanceConnectEndpoint", "ec2:DescribeInstanceConnectEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_create_instance_connect_endpoint_contract.py", "service": "ec2"} {"check_id": "ec2.create-instance-event-window-contract", "deployments": [], "key": "ec2/create-instance-event-window-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceEventWindow", "ec2:DeleteInstanceEventWindow", "ec2:DescribeInstanceEventWindows"], "path": "behavioral/ec2/check_create_instance_event_window_contract.py", "service": "ec2"} {"check_id": "ec2.create-interruptible-capacity-reservation-allocation-invalid-target-rejected", "deployments": [], "key": "ec2/create-interruptible-capacity-reservation-allocation-invalid-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateInterruptibleCapacityReservationAllocation", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:UpdateInterruptibleCapacityReservationAllocation"], "path": "behavioral/ec2/check_create_interruptible_capacity_reservation_allocation_invalid_target_rejected.py", "service": "ec2"} {"check_id": "ec2.create-local-gateway-route-rejected-unknown-route-table", "deployments": [], "key": "ec2/create-local-gateway-route-rejected-unknown-route-table", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLocalGatewayRoute"], "path": "behavioral/ec2/check_create_local_gateway_route_rejected_unknown_route_table.py", "service": "ec2"} {"check_id": "ec2.create-local-gateway-route-table-rejected-unknown-gateway", "deployments": [], "key": "ec2/create-local-gateway-route-table-rejected-unknown-gateway", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLocalGatewayRouteTable"], "path": "behavioral/ec2/check_create_local_gateway_route_table_rejected_unknown_gateway.py", "service": "ec2"} {"check_id": "ec2.create-local-gateway-route-table-vif-group-association-rejected", "deployments": [], "key": "ec2/create-local-gateway-route-table-vif-group-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation"], "path": "behavioral/ec2/check_create_local_gateway_route_table_vif_group_association_rejected.py", "service": "ec2"} {"check_id": "ec2.create-local-gateway-route-table-vpc-association-rejected", "deployments": [], "key": "ec2/create-local-gateway-route-table-vpc-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLocalGatewayRouteTableVpcAssociation", "ec2:CreateVpc", "ec2:DeleteVpc"], "path": "behavioral/ec2/check_create_local_gateway_route_table_vpc_association_rejected.py", "service": "ec2"} {"check_id": "ec2.create-local-gateway-virtual-interface-group-rejected", "deployments": [], "key": "ec2/create-local-gateway-virtual-interface-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLocalGatewayVirtualInterfaceGroup", "ec2:DescribeLocalGateways"], "path": "behavioral/ec2/check_create_local_gateway_virtual_interface_group_rejected.py", "service": "ec2"} {"check_id": "ec2.create-local-gateway-virtual-interface-rejected", "deployments": [], "key": "ec2/create-local-gateway-virtual-interface-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLocalGatewayVirtualInterface", "ec2:DescribeLocalGatewayVirtualInterfaces", "ec2:DescribeLocalGateways"], "path": "behavioral/ec2/check_create_local_gateway_virtual_interface_rejected.py", "service": "ec2"} {"check_id": "ec2.create-mac-sip-modification-task-rejected-unknown-instance", "deployments": [], "key": "ec2/create-mac-sip-modification-task-rejected-unknown-instance", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateMacSystemIntegrityProtectionModificationTask", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_create_mac_sip_modification_task_rejected_unknown_instance.py", "service": "ec2"} {"check_id": "ec2.create-managed-prefix-list", "deployments": [], "key": "ec2/create-managed-prefix-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:DeleteManagedPrefixList", "ec2:DescribeManagedPrefixLists", "ec2:GetManagedPrefixListEntries"], "path": "behavioral/ec2/check_create_managed_prefix_list.py", "service": "ec2"} {"check_id": "ec2.create-nat-gateway", "deployments": [], "key": "ec2/create-nat-gateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_create_nat_gateway.py", "service": "ec2"} {"check_id": "ec2.create-network-acl", "deployments": [], "key": "ec2/create-network-acl", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkAcl", "ec2:CreateVpc", "ec2:DeleteNetworkAcl", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls"], "path": "behavioral/ec2/check_create_network_acl.py", "service": "ec2"} {"check_id": "ec2.create-network-acl-entry", "deployments": [], "key": "ec2/create-network-acl-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkAcl", "ec2:CreateNetworkAclEntry", "ec2:CreateVpc", "ec2:DeleteNetworkAcl", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls"], "path": "behavioral/ec2/check_create_network_acl_entry.py", "service": "ec2"} {"check_id": "ec2.create-network-insights-access-scope", "deployments": [], "key": "ec2/create-network-insights-access-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScope", "ec2:DescribeNetworkInsightsAccessScopes"], "path": "behavioral/ec2/check_create_network_insights_access_scope.py", "service": "ec2"} {"check_id": "ec2.create-network-insights-path", "deployments": [], "key": "ec2/create-network-insights-path", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInsightsPath", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInsightsPath", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInsightsPaths"], "path": "behavioral/ec2/check_create_network_insights_path.py", "service": "ec2"} {"check_id": "ec2.create-network-interface", "deployments": [], "key": "ec2/create-network-interface", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_create_network_interface.py", "service": "ec2"} {"check_id": "ec2.create-network-interface-permission", "deployments": [], "key": "ec2/create-network-interface-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfacePermissions", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_create_network_interface_permission.py", "service": "ec2"} {"check_id": "ec2.create-route-server-endpoint-subnet-outside-vpc-rejected", "deployments": [], "key": "ec2/create-route-server-endpoint-subnet-outside-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteServer", "ec2:DeleteRouteServerEndpoint", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_create_route_server_endpoint_subnet_outside_vpc_rejected.py", "service": "ec2"} {"check_id": "ec2.create-route-server-peer-invalid-bgp-asn-rejected", "deployments": [], "key": "ec2/create-route-server-peer-invalid-bgp-asn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteServer", "ec2:DeleteRouteServerEndpoint", "ec2:DeleteRouteServerPeer", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_create_route_server_peer_invalid_bgp_asn_rejected.py", "service": "ec2"} {"check_id": "ec2.create-route-server-peer-malformed-asn-rejected", "deployments": [], "key": "ec2/create-route-server-peer-malformed-asn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteServer", "ec2:DeleteRouteServerEndpoint", "ec2:DeleteRouteServerPeer", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_create_route_server_peer_malformed_asn_rejected.py", "service": "ec2"} {"check_id": "ec2.create-store-image-task-unsupported-bucket-region-rejected", "deployments": [], "key": "ec2/create-store-image-task-unsupported-bucket-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:CreateStoreImageTask", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeRegions", "ec2:DescribeSnapshots", "ec2:DescribeStoreImageTasks", "ec2:RegisterImage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2"], "path": "behavioral/ec2/check_create_store_image_task_unsupported_bucket_region_rejected.py", "service": "ec2"} {"check_id": "ec2.create-tags-and-filter-describe-instances", "deployments": [], "key": "ec2/create-tags-and-filter-describe-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_create_tags_and_filter_describe_instances.py", "service": "ec2"} {"check_id": "ec2.create-vpn-gateway-empty-availability-zone-creates-gateway", "deployments": [], "key": "ec2/create-vpn-gateway-empty-availability-zone-creates-gateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpnGateway", "ec2:DeleteVpnGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_create_vpn_gateway_empty_availability_zone_creates_gateway.py", "service": "ec2"} {"check_id": "ec2.customer-gateway-and-vpn-gateway-lifecycle", "deployments": [], "key": "ec2/customer-gateway-and-vpn-gateway-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnGateway", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_customer_gateway_and_vpn_gateway_lifecycle.py", "service": "ec2"} {"check_id": "ec2.dasgrefresh-instance-refresh-replaces-every-guest-with-the-new-launch-template-version", "deployments": [], "key": "ec2/dasgrefresh-instance-refresh-replaces-every-guest-with-the-new-launch-template-version", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeInstanceRefreshes", "autoscaling:SetDesiredCapacity", "autoscaling:StartInstanceRefresh", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteLaunchTemplate", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dasgrefresh_instance_refresh_replaces_every_guest_with_the_new_launch_template_version.py", "service": "ec2"} {"check_id": "ec2.dasgrefresh-run-command-to-a-stopped-warm-pool-instance-rejected-then-that-same-guest-serves", "deployments": [], "key": "ec2/dasgrefresh-run-command-to-a-stopped-warm-pool-instance-rejected-then-that-same-guest-serves", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteWarmPool", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeWarmPool", "autoscaling:PutWarmPool", "autoscaling:SetDesiredCapacity", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteLaunchTemplate", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dasgrefresh_run_command_to_a_stopped_warm_pool_instance_rejected_then_that_same_guest_serves.py", "service": "ec2"} {"check_id": "ec2.default-credit-specification-reflects-account-setting", "deployments": [], "key": "ec2/default-credit-specification-reflects-account-setting", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetDefaultCreditSpecification", "ec2:ModifyDefaultCreditSpecification"], "path": "behavioral/ec2/check_default_credit_specification_reflects_account_setting.py", "service": "ec2"} {"check_id": "ec2.default-ipam-resource-discovery-deletion-rejected", "deployments": [], "key": "ec2/default-ipam-resource-discovery-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamResourceDiscovery", "ec2:DeleteIpam", "ec2:DeleteIpamResourceDiscovery", "ec2:DescribeIpamResourceDiscoveries", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_default_ipam_resource_discovery_deletion_rejected.py", "service": "ec2"} {"check_id": "ec2.default-security-group-delete-fails", "deployments": [], "key": "ec2/default-security-group-delete-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNatGateway", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_default_security_group_delete_fails.py", "service": "ec2"} {"check_id": "ec2.delete-on-termination-decides-which-attached-volume-survives-the-terminate", "deployments": [], "key": "ec2/delete-on-termination-decides-which-attached-volume-survives-the-terminate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVolume", "ec2:CreateSecurityGroup", "ec2:CreateSnapshot", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSnapshot", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_delete_on_termination_decides_which_attached_volume_survives_the_terminate.py", "service": "ec2"} {"check_id": "ec2.delete-route-server-with-active-peer-blocked", "deployments": [], "key": "ec2/delete-route-server-with-active-peer-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateSubnet", "ec2:DeleteRouteServer", "ec2:DeleteRouteServerEndpoint", "ec2:DeleteRouteServerPeer", "ec2:DeleteSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers", "ec2:DescribeRouteServers", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_delete_route_server_with_active_peer_blocked.py", "service": "ec2"} {"check_id": "ec2.delete-tags-removes-tag", "deployments": [], "key": "ec2/delete-tags-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:DeleteTags", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_delete_tags_removes_tag.py", "service": "ec2"} {"check_id": "ec2.delete-transit-gateway-dry-run-does-not-delete-rejected", "deployments": [], "key": "ec2/delete-transit-gateway-dry-run-does-not-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:DeleteTransitGateway", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_delete_transit_gateway_dry_run_does_not_delete_rejected.py", "service": "ec2"} {"check_id": "ec2.delete-transit-gateway-route-table-active-association-rejected", "deployments": [], "key": "ec2/delete-transit-gateway-route-table-active-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateTransitGatewayRouteTable", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisassociateTransitGatewayRouteTable", "ec2:GetTransitGatewayRouteTableAssociations"], "path": "behavioral/ec2/check_delete_transit_gateway_route_table_active_association_rejected.py", "service": "ec2"} {"check_id": "ec2.delete-vpc-with-attached-igw-dependency-violation-rejected", "deployments": [], "key": "ec2/delete-vpc-with-attached-igw-dependency-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ec2:DetachInternetGateway"], "path": "behavioral/ec2/check_delete_vpc_with_attached_igw_dependency_violation_rejected.py", "service": "ec2"} {"check_id": "ec2.delete-vpc-with-subnet-fails-dependency-violation", "deployments": [], "key": "ec2/delete-vpc-with-subnet-fails-dependency-violation", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_delete_vpc_with_subnet_fails_dependency_violation.py", "service": "ec2"} {"check_id": "ec2.deploy-cdk-vpc-public-and-isolated-subnets-route-differently", "deployments": ["behavioral/ec2/deployments/cdk_vpc_subnets/app.py", "behavioral/ec2/deployments/cdk_vpc_subnets/cdk.json"], "key": "ec2/deploy-cdk-vpc-public-and-isolated-subnets-route-differently", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateTags", "ec2:DescribeInternetGateways", "ec2:DescribeNetworkAcls", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_deploy_cdk_vpc_public_and_isolated_subnets_route_differently.py", "service": "ec2"} {"check_id": "ec2.describe-fpga-image-attribute-reflects-load-permissions", "deployments": [], "key": "ec2/describe-fpga-image-attribute-reflects-load-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeFpgaImageAttribute", "ec2:DescribeFpgaImages"], "path": "behavioral/ec2/check_describe_fpga_image_attribute_reflects_load_permissions.py", "service": "ec2"} {"check_id": "ec2.describe-local-gateways-contract", "deployments": [], "key": "ec2/describe-local-gateways-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGateways"], "path": "behavioral/ec2/check_describe_local_gateways_contract.py", "service": "ec2"} {"check_id": "ec2.describe-locked-snapshots-contract", "deployments": [], "key": "ec2/describe-locked-snapshots-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLockedSnapshots"], "path": "behavioral/ec2/check_describe_locked_snapshots_contract.py", "service": "ec2"} {"check_id": "ec2.describe-mac-hosts-contract", "deployments": [], "key": "ec2/describe-mac-hosts-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeMacHosts"], "path": "behavioral/ec2/check_describe_mac_hosts_contract.py", "service": "ec2"} {"check_id": "ec2.describe-mac-modification-tasks-contract", "deployments": [], "key": "ec2/describe-mac-modification-tasks-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeMacModificationTasks"], "path": "behavioral/ec2/check_describe_mac_modification_tasks_contract.py", "service": "ec2"} {"check_id": "ec2.describe-managed-prefix-lists-contract", "deployments": [], "key": "ec2/describe-managed-prefix-lists-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeManagedPrefixLists"], "path": "behavioral/ec2/check_describe_managed_prefix_lists_contract.py", "service": "ec2"} {"check_id": "ec2.describe-nat-gateways-contract", "deployments": [], "key": "ec2/describe-nat-gateways-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeNatGateways"], "path": "behavioral/ec2/check_describe_nat_gateways_contract.py", "service": "ec2"} {"check_id": "ec2.describe-network-acls-contract", "deployments": [], "key": "ec2/describe-network-acls-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeNetworkAcls"], "path": "behavioral/ec2/check_describe_network_acls_contract.py", "service": "ec2"} {"check_id": "ec2.describe-network-insights-access-scope-analyses-contract", "deployments": [], "key": "ec2/describe-network-insights-access-scope-analyses-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeNetworkInsightsAccessScopeAnalyses"], "path": "behavioral/ec2/check_describe_network_insights_access_scope_analyses_contract.py", "service": "ec2"} {"check_id": "ec2.describe-network-insights-analyses-contract", "deployments": [], "key": "ec2/describe-network-insights-analyses-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeNetworkInsightsAnalyses"], "path": "behavioral/ec2/check_describe_network_insights_analyses_contract.py", "service": "ec2"} {"check_id": "ec2.describe-network-insights-paths-contract", "deployments": [], "key": "ec2/describe-network-insights-paths-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeNetworkInsightsPaths"], "path": "behavioral/ec2/check_describe_network_insights_paths_contract.py", "service": "ec2"} {"check_id": "ec2.describe-network-interface-attribute-contract", "deployments": [], "key": "ec2/describe-network-interface-attribute-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_describe_network_interface_attribute_contract.py", "service": "ec2"} {"check_id": "ec2.describe-network-interface-permissions-contract", "deployments": [], "key": "ec2/describe-network-interface-permissions-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeNetworkInterfacePermissions"], "path": "behavioral/ec2/check_describe_network_interface_permissions_contract.py", "service": "ec2"} {"check_id": "ec2.describe-network-interfaces-contract", "deployments": [], "key": "ec2/describe-network-interfaces-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_describe_network_interfaces_contract.py", "service": "ec2"} {"check_id": "ec2.describe-transit-gateway-id-not-found-rejected", "deployments": [], "key": "ec2/describe-transit-gateway-id-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:DeleteTransitGateway", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_describe_transit_gateway_id_not_found_rejected.py", "service": "ec2"} {"check_id": "ec2.describe-transit-gateway-route-tables-max-results-out-of-range-rejected", "deployments": [], "key": "ec2/describe-transit-gateway-route-tables-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeTransitGatewayRouteTables"], "path": "behavioral/ec2/check_describe_transit_gateway_route_tables_max_results_out_of_range_rejected.py", "service": "ec2"} {"check_id": "ec2.describe-volumes-tag-filters-and-unknown-filter-rejected", "deployments": [], "key": "ec2/describe-volumes-tag-filters-and-unknown-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_describe_volumes_tag_filters_and_unknown_filter_rejected.py", "service": "ec2"} {"check_id": "ec2.detach-internet-gateway-wrong-vpc-rejected", "deployments": [], "key": "ec2/detach-internet-gateway-wrong-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteVpc", "ec2:DescribeInternetGateways", "ec2:DetachInternetGateway"], "path": "behavioral/ec2/check_detach_internet_gateway_wrong_vpc_rejected.py", "service": "ec2"} {"check_id": "ec2.detach-volume-not-attached-state-conflict-rejected", "deployments": [], "key": "ec2/detach-volume-not-attached-state-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachVolume", "ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_detach_volume_not_attached_state_conflict_rejected.py", "service": "ec2"} {"check_id": "ec2.dhcp-options-associate-delete-dependency", "deployments": [], "key": "ec2/dhcp-options-associate-delete-dependency", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateDhcpOptions", "ec2:CreateDhcpOptions", "ec2:CreateVpc", "ec2:DeleteDhcpOptions", "ec2:DeleteVpc", "ec2:DescribeDhcpOptions", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_dhcp_options_associate_delete_dependency.py", "service": "ec2"} {"check_id": "ec2.diops-gp3-iops-to-size-ratio-above-the-limit-rejected-and-no-iops-reach-the-guest", "deployments": [], "key": "ec2/diops-gp3-iops-to-size-ratio-above-the-limit-rejected-and-no-iops-reach-the-guest", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVolume", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_diops_gp3_iops_to_size_ratio_above_the_limit_rejected_and_no_iops_reach_the_guest.py", "service": "ec2"} {"check_id": "ec2.diops-io2-provisioned-iops-outrun-gp3-baseline-measured-by-fio-in-one-guest", "deployments": [], "key": "ec2/diops-io2-provisioned-iops-outrun-gp3-baseline-measured-by-fio-in-one-guest", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_diops_io2_provisioned_iops_outrun_gp3_baseline_measured_by_fio_in_one_guest.py", "service": "ec2"} {"check_id": "ec2.dipv6-guest-ipv6-egress-flows-through-the-egress-only-gateway-and-stops-when-its-route-is-removed", "deployments": [], "key": "ec2/dipv6-guest-ipv6-egress-flows-through-the-egress-only-gateway-and-stops-when-its-route-is-removed", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AssociateVpcCidrBlock", "ec2:AttachInternetGateway", "ec2:CreateEgressOnlyInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteEgressOnlyInternetGateway", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeEgressOnlyInternetGateways", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:DisassociateVpcCidrBlock", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dipv6_guest_ipv6_egress_flows_through_the_egress_only_gateway_and_stops_when_its_route_is_removed.py", "service": "ec2"} {"check_id": "ec2.dipv6-inbound-ipv6-from-another-vpc-is-blocked-by-the-egress-only-gateway-while-outbound-succeeds", "deployments": [], "key": "ec2/dipv6-inbound-ipv6-from-another-vpc-is-blocked-by-the-egress-only-gateway-while-outbound-succeeds", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AssociateVpcCidrBlock", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateEgressOnlyInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteEgressOnlyInternetGateway", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:DisassociateVpcCidrBlock", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dipv6_inbound_ipv6_from_another_vpc_is_blocked_by_the_egress_only_gateway_while_outbound_succeeds.py", "service": "ec2"} {"check_id": "ec2.dipv6-revoking-the-ipv6-security-group-rule-leaves-ipv6-blocked-while-ipv4-still-flows", "deployments": [], "key": "ec2/dipv6-revoking-the-ipv6-security-group-rule-leaves-ipv6-blocked-while-ipv4-still-flows", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AssociateVpcCidrBlock", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:DisassociateVpcCidrBlock", "ec2:ModifySubnetAttribute", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dipv6_revoking_the_ipv6_security_group_rule_leaves_ipv6_blocked_while_ipv4_still_flows.py", "service": "ec2"} {"check_id": "ec2.disassociate-route-server-endpoint-still-in-use-blocked", "deployments": [], "key": "ec2/disassociate-route-server-endpoint-still-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateSubnet", "ec2:DeleteRouteServer", "ec2:DeleteRouteServerEndpoint", "ec2:DeleteRouteServerPeer", "ec2:DeleteSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers", "ec2:DescribeRouteServers", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_disassociate_route_server_endpoint_still_in_use_blocked.py", "service": "ec2"} {"check_id": "ec2.disassociate-route-server-unassociated-vpc-rejected", "deployments": [], "key": "ec2/disassociate-route-server-unassociated-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_disassociate_route_server_unassociated_vpc_rejected.py", "service": "ec2"} {"check_id": "ec2.disassociate-route-table-contract", "deployments": [], "key": "ec2/disassociate-route-table-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_disassociate_route_table_contract.py", "service": "ec2"} {"check_id": "ec2.disassociate-security-group-vpc-dependency-rejected", "deployments": [], "key": "ec2/disassociate-security-group-vpc-dependency-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateSecurityGroupVpc", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroupVpcAssociations", "ec2:DisassociateSecurityGroupVpc"], "path": "behavioral/ec2/check_disassociate_security_group_vpc_dependency_rejected.py", "service": "ec2"} {"check_id": "ec2.disassociate-subnet-cidr-block-contract", "deployments": [], "key": "ec2/disassociate-subnet-cidr-block-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateSubnetCidrBlock", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateSubnetCidrBlock"], "path": "behavioral/ec2/check_disassociate_subnet_cidr_block_contract.py", "service": "ec2"} {"check_id": "ec2.disassociate-transit-gateway-multicast-domain-contract", "deployments": [], "key": "ec2/disassociate-transit-gateway-multicast-domain-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayMulticastDomain", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DisassociateTransitGatewayMulticastDomain", "ec2:GetTransitGatewayMulticastDomainAssociations"], "path": "behavioral/ec2/check_disassociate_transit_gateway_multicast_domain_contract.py", "service": "ec2"} {"check_id": "ec2.disassociate-transit-gateway-policy-table-contract", "deployments": [], "key": "ec2/disassociate-transit-gateway-policy-table-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayPolicyTable", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DisassociateTransitGatewayPolicyTable", "ec2:GetTransitGatewayPolicyTableAssociations"], "path": "behavioral/ec2/check_disassociate_transit_gateway_policy_table_contract.py", "service": "ec2"} {"check_id": "ec2.disassociate-transit-gateway-route-table-contract", "deployments": [], "key": "ec2/disassociate-transit-gateway-route-table-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayRouteTable", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DisassociateTransitGatewayRouteTable", "ec2:GetTransitGatewayRouteTableAssociations"], "path": "behavioral/ec2/check_disassociate_transit_gateway_route_table_contract.py", "service": "ec2"} {"check_id": "ec2.disassociate-vpc-cidr-block-primary-rejected", "deployments": [], "key": "ec2/disassociate-vpc-cidr-block-primary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateVpcCidrBlock", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ec2:DisassociateVpcCidrBlock"], "path": "behavioral/ec2/check_disassociate_vpc_cidr_block_primary_rejected.py", "service": "ec2"} {"check_id": "ec2.dpeer-bidirectional-traffic-needs-the-peer-route-on-both-sides", "deployments": [], "key": "ec2/dpeer-bidirectional-traffic-needs-the-peer-route-on-both-sides", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dpeer_bidirectional_traffic_needs_the_peer_route_on_both_sides.py", "service": "ec2"} {"check_id": "ec2.dpeer-overlapping-cidr-peering-fails-and-never-carries-traffic", "deployments": [], "key": "ec2/dpeer-overlapping-cidr-peering-fails-and-never-carries-traffic", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ec2:RejectVpcPeeringConnection", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dpeer_overlapping_cidr_peering_fails_and_never_carries_traffic.py", "service": "ec2"} {"check_id": "ec2.dpeer-route-is-blackhole-until-the-peering-is-accepted", "deployments": [], "key": "ec2/dpeer-route-is-blackhole-until-the-peering-is-accepted", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dpeer_route_is_blackhole_until_the_peering_is_accepted.py", "service": "ec2"} {"check_id": "ec2.droute-deleted-peering-target-blackholes-the-route-and-drops-traffic", "deployments": [], "key": "ec2/droute-deleted-peering-target-blackholes-the-route-and-drops-traffic", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReplaceRoute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_droute_deleted_peering_target_blackholes_the_route_and_drops_traffic.py", "service": "ec2"} {"check_id": "ec2.droute-longest-prefix-match-decides-between-overlapping-route-targets", "deployments": [], "key": "ec2/droute-longest-prefix-match-decides-between-overlapping-route-targets", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReplaceRoute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_droute_longest_prefix_match_decides_between_overlapping_route_targets.py", "service": "ec2"} {"check_id": "ec2.dsnapinc-changed-blocks-across-unrelated-lineages-rejected-same-lineage-lists-guest-block", "deployments": [], "key": "ec2/dsnapinc-changed-blocks-across-unrelated-lineages-rejected-same-lineage-lists-guest-block", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ebs:GetSnapshotBlock", "ebs:ListChangedBlocks", "ebs:ListSnapshotBlocks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSnapshot", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSnapshot", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dsnapinc_changed_blocks_across_unrelated_lineages_rejected_same_lineage_lists_guest_block.py", "service": "ec2"} {"check_id": "ec2.dsnapinc-one-changed-block-in-guest-makes-the-second-snapshot-incremental-and-the-restore-carries-it", "deployments": [], "key": "ec2/dsnapinc-one-changed-block-in-guest-makes-the-second-snapshot-incremental-and-the-restore-carries-it", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ebs:GetSnapshotBlock", "ebs:ListChangedBlocks", "ebs:ListSnapshotBlocks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSnapshot", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSnapshot", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dsnapinc_one_changed_block_in_guest_makes_the_second_snapshot_incremental_and_the_restore_carries_it.py", "service": "ec2"} {"check_id": "ec2.dvolgrow-capacity-added-by-modify-volume-is-unusable-until-resize2fs", "deployments": [], "key": "ec2/dvolgrow-capacity-added-by-modify-volume-is-unusable-until-resize2fs", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVolume", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dvolgrow_capacity_added_by_modify_volume_is_unusable_until_resize2fs.py", "service": "ec2"} {"check_id": "ec2.dvolgrow-root-volume-grows-online-and-only-growpart-reaches-the-live-root-filesystem", "deployments": [], "key": "ec2/dvolgrow-root-volume-grows-online-and-only-growpart-reaches-the-live-root-filesystem", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVolume", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dvolgrow_root_volume_grows_online_and_only_growpart_reaches_the_live_root_filesystem.py", "service": "ec2"} {"check_id": "ec2.dvolgrow-shrink-rejected-leaves-the-guest-block-device-and-its-bytes-untouched", "deployments": [], "key": "ec2/dvolgrow-shrink-rejected-leaves-the-guest-block-device-and-its-bytes-untouched", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVolume", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_dvolgrow_shrink_rejected_leaves_the_guest_block_device_and_its_bytes_untouched.py", "service": "ec2"} {"check_id": "ec2.e2e-capacity-manager-metrics-flow", "deployments": [], "key": "ec2/e2e-capacity-manager-metrics-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCapacityManagerDataExport", "ec2:DeleteCapacityManagerDataExport", "ec2:DescribeCapacityManagerDataExports", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "ec2:GetCapacityManagerMetricData", "ec2:GetCapacityManagerMetricDimensions", "ec2:GetCapacityManagerMonitoredTagKeys", "ec2:UpdateCapacityManagerMonitoredTagKeys", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_e2e_capacity_manager_metrics_flow.py", "service": "ec2"} {"check_id": "ec2.e2e-client-vpn-route-flow", "deployments": [], "key": "ec2/e2e-client-vpn-route-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateClientVpnTargetNetwork", "ec2:CreateClientVpnEndpoint", "ec2:CreateClientVpnRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteClientVpnEndpoint", "ec2:DeleteClientVpnRoute", "ec2:DescribeAvailabilityZones", "ec2:DescribeClientVpnEndpoints", "ec2:DescribeClientVpnRoutes", "ec2:DescribeClientVpnTargetNetworks", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateClientVpnTargetNetwork"], "path": "behavioral/ec2/check_e2e_client_vpn_route_flow.py", "service": "ec2"} {"check_id": "ec2.e2e-route-server-peer-invalid-asn-rejected", "deployments": [], "key": "ec2/e2e-route-server-peer-invalid-asn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateRouteServer", "ec2:CreateRouteServerPeer", "ec2:DeleteRouteServer", "ec2:DeleteRouteServerPeer", "ec2:DescribeRouteServers"], "path": "behavioral/ec2/check_e2e_route_server_peer_invalid_asn_rejected.py", "service": "ec2"} {"check_id": "ec2.e2e-vpn-tunnel-cert-rotation-flow", "deployments": [], "key": "ec2/e2e-vpn-tunnel-cert-rotation-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:GetVpnConnectionDeviceSampleConfiguration", "ec2:GetVpnConnectionDeviceTypes", "ec2:ModifyVpnConnection", "ec2:ModifyVpnTunnelCertificate", "ec2:ModifyVpnTunnelOptions"], "path": "behavioral/ec2/check_e2e_vpn_tunnel_cert_rotation_flow.py", "service": "ec2"} {"check_id": "ec2.e2e-vpn-tunnel-option-out-of-range-rejected", "deployments": [], "key": "ec2/e2e-vpn-tunnel-option-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:ModifyVpnTunnelOptions"], "path": "behavioral/ec2/check_e2e_vpn_tunnel_option_out_of_range_rejected.py", "service": "ec2"} {"check_id": "ec2.ebs-encryption-defaults-reflect-account-setting", "deployments": [], "key": "ec2/ebs-encryption-defaults-reflect-account-setting", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:DisableEbsEncryptionByDefault", "ec2:EnableEbsEncryptionByDefault", "ec2:GetEbsDefaultKmsKeyId", "ec2:GetEbsEncryptionByDefault", "ec2:ModifyEbsDefaultKmsKeyId", "ec2:ResetEbsDefaultKmsKeyId", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/ec2/check_ebs_encryption_defaults_reflect_account_setting.py", "service": "ec2"} {"check_id": "ec2.ebsio-multi-attach-shares-one-volume-with-two-instances-while-a-plain-volume-is-refused", "deployments": [], "key": "ec2/ebsio-multi-attach-shares-one-volume-with-two-instances-while-a-plain-volume-is-refused", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "ec2:DetachVolume", "ec2:GetConsoleOutput", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ebsio_multi_attach_shares_one_volume_with_two_instances_while_a_plain_volume_is_refused.py", "service": "ec2"} {"check_id": "ec2.ebsio-online-volume-grow-preserves-the-bytes-and-the-guest-sees-the-new-capacity", "deployments": [], "key": "ec2/ebsio-online-volume-grow-preserves-the-bytes-and-the-guest-sees-the-new-capacity", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:DescribeVpcs", "ec2:DetachVolume", "ec2:GetConsoleOutput", "ec2:ModifySubnetAttribute", "ec2:ModifyVolume", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ebsio_online_volume_grow_preserves_the_bytes_and_the_guest_sees_the_new_capacity.py", "service": "ec2"} {"check_id": "ec2.ebsio-snapshot-restored-into-another-availability-zone-carries-the-payload", "deployments": [], "key": "ec2/ebsio-snapshot-restored-into-another-availability-zone-carries-the-payload", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSnapshot", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "ec2:DetachVolume", "ec2:GetConsoleOutput", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ebsio_snapshot_restored_into_another_availability_zone_carries_the_payload.py", "service": "ec2"} {"check_id": "ec2.ec2-attach-volume-across-availability-zones-rejected", "deployments": [], "key": "ec2/ec2-attach-volume-across-availability-zones-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachVolume", "ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_attach_volume_across_availability_zones_rejected.py", "service": "ec2"} {"check_id": "ec2.ec2-attach-volume-to-a-device-name-already-in-use-rejected", "deployments": [], "key": "ec2/ec2-attach-volume-to-a-device-name-already-in-use-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_ec2_attach_volume_to_a_device_name_already_in_use_rejected.py", "service": "ec2"} {"check_id": "ec2.ec2-concurrent-attach-of-one-volume-to-two-instances-yields-a-single-winner", "deployments": [], "key": "ec2/ec2-concurrent-attach-of-one-volume-to-two-instances-yields-a-single-winner", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachVolume", "ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_concurrent_attach_of_one_volume_to_two_instances_yields_a_single_winner.py", "service": "ec2"} {"check_id": "ec2.ec2-delete-vpc-removes-own-and-default-resource-tags", "deployments": [], "key": "ec2/ec2-delete-vpc-removes-own-and-default-resource-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeTags", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_ec2_delete_vpc_removes_own_and_default_resource_tags.py", "service": "ec2"} {"check_id": "ec2.ec2-ebs-volume-bytes-survive-detach-and-reattach-to-a-different-instance", "deployments": [], "key": "ec2/ec2-ebs-volume-bytes-survive-detach-and-reattach-to-a-different-instance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachVolume", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_ebs_volume_bytes_survive_detach_and_reattach_to_a_different_instance.py", "service": "ec2"} {"check_id": "ec2.ec2-elastic-ip-association-moves-which-address-serves-the-instance", "deployments": [], "key": "ec2/ec2-elastic-ip-association-moves-which-address-serves-the-instance", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DisassociateAddress", "ec2:GetConsoleOutput", "ec2:ReleaseAddress", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_elastic_ip_association_moves_which_address_serves_the_instance.py", "service": "ec2"} {"check_id": "ec2.ec2-instance-store-bytes-vanish-across-stop-start-while-ebs-bytes-persist", "deployments": [], "key": "ec2/ec2-instance-store-bytes-vanish-across-stop-start-while-ebs-bytes-persist", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RebootInstances", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_ec2_instance_store_bytes_vanish_across_stop_start_while_ebs_bytes_persist.py", "service": "ec2"} {"check_id": "ec2.ec2-instance-type-change-is-visible-to-the-guest-and-matches-the-catalog", "deployments": [], "key": "ec2/ec2-instance-type-change-is-visible-to-the-guest-and-matches-the-catalog", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:GetConsoleOutput", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_instance_type_change_is_visible_to_the_guest_and_matches_the_catalog.py", "service": "ec2"} {"check_id": "ec2.ec2-instance-user-data-executes-and-the-guest-reports-the-nonce", "deployments": [], "key": "ec2/ec2-instance-user-data-executes-and-the-guest-reports-the-nonce", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_instance_user_data_executes_and_the_guest_reports_the_nonce.py", "service": "ec2"} {"check_id": "ec2.ec2-launch-with-a-private-ip-already-in-use-rejected", "deployments": [], "key": "ec2/ec2-launch-with-a-private-ip-already-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_launch_with_a_private_ip_already_in_use_rejected.py", "service": "ec2"} {"check_id": "ec2.ec2-run-from-launch-template", "deployments": [], "key": "ec2/ec2-run-from-launch-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_ec2_run_from_launch_template.py", "service": "ec2"} {"check_id": "ec2.ec2-security-group-ingress-decides-whether-the-instance-answers", "deployments": [], "key": "ec2/ec2-security-group-ingress-decides-whether-the-instance-answers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:GetConsoleOutput", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_security_group_ingress_decides_whether_the_instance_answers.py", "service": "ec2"} {"check_id": "ec2.ec2-snapshot-restores-the-exact-bytes-written-to-the-source-volume", "deployments": [], "key": "ec2/ec2-snapshot-restores-the-exact-bytes-written-to-the-source-volume", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachVolume", "ec2:CreateSnapshot", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSnapshot", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_snapshot_restores_the_exact_bytes_written_to_the_source_volume.py", "service": "ec2"} {"check_id": "ec2.ec2-stop-start-preserves-root-volume-bytes-and-reassigns-the-public-ip", "deployments": [], "key": "ec2/ec2-stop-start-preserves-root-volume-bytes-and-reassigns-the-public-ip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ec2_stop_start_preserves_root_volume_bytes_and_reassigns_the_public_ip.py", "service": "ec2"} {"check_id": "ec2.ec2-userdata-run-instances-and-launch-template-no-double-encoding", "deployments": [], "key": "ec2/ec2-userdata-run-instances-and-launch-template-no-double-encoding", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeLaunchTemplateVersions", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_ec2_userdata_run_instances_and_launch_template_no_double_encoding.py", "service": "ec2"} {"check_id": "ec2.egress-only-internet-gateway-lifecycle", "deployments": [], "key": "ec2/egress-only-internet-gateway-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateEgressOnlyInternetGateway", "ec2:CreateVpc", "ec2:DeleteEgressOnlyInternetGateway", "ec2:DeleteVpc", "ec2:DescribeEgressOnlyInternetGateways", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_egress_only_internet_gateway_lifecycle.py", "service": "ec2"} {"check_id": "ec2.eip-allocate-associate-disassociate-release-lifecycle", "deployments": [], "key": "ec2/eip-allocate-associate-disassociate-release-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:DescribeAddresses", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DisassociateAddress", "ec2:ReleaseAddress", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_eip_allocate_associate_disassociate_release_lifecycle.py", "service": "ec2"} {"check_id": "ec2.eip-reassociation-blocked-without-allow-reassociation", "deployments": [], "key": "ec2/eip-reassociation-blocked-without-allow-reassociation", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:DescribeAddresses", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DisassociateAddress", "ec2:ReleaseAddress", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_eip_reassociation_blocked_without_allow_reassociation.py", "service": "ec2"} {"check_id": "ec2.eip-reassociation-without-allow-reassociation-rejected", "deployments": [], "key": "ec2/eip-reassociation-without-allow-reassociation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAddresses", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateAddress", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_eip_reassociation_without_allow_reassociation_rejected.py", "service": "ec2"} {"check_id": "ec2.enable-address-transfer-contract", "deployments": [], "key": "ec2/enable-address-transfer-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddressTransfers", "ec2:DisableAddressTransfer", "ec2:EnableAddressTransfer", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_enable_address_transfer_contract.py", "service": "ec2"} {"check_id": "ec2.enable-allowed-images-settings-contract", "deployments": [], "key": "ec2/enable-allowed-images-settings-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableAllowedImagesSettings", "ec2:EnableAllowedImagesSettings", "ec2:GetAllowedImagesSettings"], "path": "behavioral/ec2/check_enable_allowed_images_settings_contract.py", "service": "ec2"} {"check_id": "ec2.enable-application-status-check-suppression-contract", "deployments": [], "key": "ec2/enable-application-status-check-suppression-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisableApplicationStatusCheckSuppression", "ec2:EnableApplicationStatusCheckSuppression", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_enable_application_status_check_suppression_contract.py", "service": "ec2"} {"check_id": "ec2.enable-aws-network-performance-metric-subscription-contract", "deployments": [], "key": "ec2/enable-aws-network-performance-metric-subscription-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAwsNetworkPerformanceMetricSubscriptions", "ec2:DisableAwsNetworkPerformanceMetricSubscription", "ec2:EnableAwsNetworkPerformanceMetricSubscription"], "path": "behavioral/ec2/check_enable_aws_network_performance_metric_subscription_contract.py", "service": "ec2"} {"check_id": "ec2.enable-capacity-manager-contract", "deployments": [], "key": "ec2/enable-capacity-manager-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes"], "path": "behavioral/ec2/check_enable_capacity_manager_contract.py", "service": "ec2"} {"check_id": "ec2.enable-ebs-encryption-by-default-contract", "deployments": [], "key": "ec2/enable-ebs-encryption-by-default-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableEbsEncryptionByDefault", "ec2:EnableEbsEncryptionByDefault", "ec2:GetEbsEncryptionByDefault"], "path": "behavioral/ec2/check_enable_ebs_encryption_by_default_contract.py", "service": "ec2"} {"check_id": "ec2.enable-route-server-propagation-without-association-blocked", "deployments": [], "key": "ec2/enable-route-server-propagation-without-association-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteTable", "ec2:CreateVpc", "ec2:DeleteRouteTable", "ec2:DeleteVpc", "ec2:DescribeRouteServers", "ec2:DescribeVpcs", "ec2:EnableRouteServerPropagation", "ec2:GetRouteServerAssociations", "ec2:GetRouteServerPropagations"], "path": "behavioral/ec2/check_enable_route_server_propagation_without_association_blocked.py", "service": "ec2"} {"check_id": "ec2.enable-volume-io-recovers-error-state", "deployments": [], "key": "ec2/enable-volume-io-recovers-error-state", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumeStatus", "ec2:DescribeVolumes", "ec2:EnableVolumeIO"], "path": "behavioral/ec2/check_enable_volume_io_recovers_error_state.py", "service": "ec2"} {"check_id": "ec2.enabled-ipam-policy-reflects-allocation-rule-changes", "deployments": [], "key": "ec2/enabled-ipam-policy-reflects-allocation-rule-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:DeleteIpamPool", "ec2:DescribeIpamPolicies", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:DisableIpamPolicy", "ec2:EnableIpamPolicy", "ec2:GetEnabledIpamPolicy", "ec2:GetIpamPolicyAllocationRules", "ec2:ModifyIpamPolicyAllocationRules"], "path": "behavioral/ec2/check_enabled_ipam_policy_reflects_allocation_rule_changes.py", "service": "ec2"} {"check_id": "ec2.flow-log-custom-format-vs-default", "deployments": [], "key": "ec2/flow-log-custom-format-vs-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateFlowLogs", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteVpc", "ec2:DescribeFlowLogs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ec2/check_flow_log_custom_format_vs_default.py", "service": "ec2"} {"check_id": "ec2.flow-log-fleet-and-gateway-error-semantics", "deployments": [], "key": "ec2/flow-log-fleet-and-gateway-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteFleets"], "path": "behavioral/ec2/check_flow_log_fleet_and_gateway_error_semantics.py", "service": "ec2"} {"check_id": "ec2.flow-logs-integration-template-parameterized-by-config", "deployments": [], "key": "ec2/flow-logs-integration-template-parameterized-by-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateFlowLogs", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteVpc", "ec2:DescribeFlowLogs", "ec2:GetFlowLogsIntegrationTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/ec2/check_flow_logs_integration_template_parameterized_by_config.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-capacity-reservation-usage", "deployments": [], "key": "ec2/op-contract-get-capacity-reservation-usage", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:GetCapacityReservationUsage"], "path": "behavioral/ec2/check_get_capacity_reservation_usage_contract.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-coip-pool-usage", "deployments": [], "key": "ec2/op-contract-get-coip-pool-usage", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetCoipPoolUsage"], "path": "behavioral/ec2/check_get_coip_pool_usage_contract.py", "service": "ec2"} {"check_id": "ec2.get-console-output-invalid-instance-rejected", "deployments": [], "key": "ec2/get-console-output-invalid-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_get_console_output_invalid_instance_rejected.py", "service": "ec2"} {"check_id": "ec2.get-console-output-invalid-instance-rejected-dup", "deployments": [], "key": "ec2/get-console-output-invalid-instance-rejected-dup", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetConsoleOutput"], "path": "behavioral/ec2/check_get_console_output_invalid_instance_rejected_dup.py", "service": "ec2"} {"check_id": "ec2.get-console-screenshot-invalid-instance-rejected", "deployments": [], "key": "ec2/get-console-screenshot-invalid-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetConsoleScreenshot", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_get_console_screenshot_invalid_instance_rejected.py", "service": "ec2"} {"check_id": "ec2.get-console-screenshot-invalid-instance-rejected-dup", "deployments": [], "key": "ec2/get-console-screenshot-invalid-instance-rejected-dup", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetConsoleScreenshot"], "path": "behavioral/ec2/check_get_console_screenshot_invalid_instance_rejected_dup.py", "service": "ec2"} {"check_id": "ec2.get-console-screenshot-returns-valid-image-blob", "deployments": [], "key": "ec2/get-console-screenshot-returns-valid-image-blob", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetConsoleScreenshot", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_get_console_screenshot_returns_valid_image_blob.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-declarative-policies-report-summary", "deployments": [], "key": "ec2/op-contract-get-declarative-policies-report-summary", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetDeclarativePoliciesReportSummary"], "path": "behavioral/ec2/check_get_declarative_policies_report_summary_contract.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-default-credit-specification", "deployments": [], "key": "ec2/op-contract-get-default-credit-specification", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetDefaultCreditSpecification"], "path": "behavioral/ec2/check_get_default_credit_specification_contract.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ebs-encryption-by-default", "deployments": [], "key": "ec2/op-contract-get-ebs-encryption-by-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableEbsEncryptionByDefault", "ec2:EnableEbsEncryptionByDefault", "ec2:GetEbsEncryptionByDefault"], "path": "behavioral/ec2/check_get_ebs_encryption_by_default_contract.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-enabled-ipam-policy", "deployments": [], "key": "ec2/op-contract-get-enabled-ipam-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetEnabledIpamPolicy"], "path": "behavioral/ec2/check_get_enabled_ipam_policy_contract.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-flow-logs-integration-template", "deployments": [], "key": "ec2/op-contract-get-flow-logs-integration-template", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateFlowLogs", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteVpc", "ec2:DescribeFlowLogs", "ec2:GetFlowLogsIntegrationTemplate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/ec2/check_get_flow_logs_integration_template_contract.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-groups-for-capacity-reservation", "deployments": [], "key": "ec2/op-contract-get-groups-for-capacity-reservation", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:GetGroupsForCapacityReservation"], "path": "behavioral/ec2/check_get_groups_for_capacity_reservation_contract.py", "service": "ec2"} {"check_id": "ec2.get-host-reservation-purchase-preview-invalid-host-rejected", "deployments": [], "key": "ec2/get-host-reservation-purchase-preview-invalid-host-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetHostReservationPurchasePreview"], "path": "behavioral/ec2/check_get_host_reservation_purchase_preview_invalid_host_rejected.py", "service": "ec2"} {"check_id": "ec2.get-instance-tpm-ek-pub-format-contract", "deployments": [], "key": "ec2/get-instance-tpm-ek-pub-format-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetInstanceTpmEkPub", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_get_instance_tpm_ek_pub_format_contract.py", "service": "ec2"} {"check_id": "ec2.get-instance-tpm-ek-pub-returns-stable-blob", "deployments": [], "key": "ec2/get-instance-tpm-ek-pub-returns-stable-blob", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetInstanceTpmEkPub"], "path": "behavioral/ec2/check_get_instance_tpm_ek_pub_returns_stable_blob.py", "service": "ec2"} {"check_id": "ec2.get-instance-uefi-data-round-trip", "deployments": [], "key": "ec2/get-instance-uefi-data-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetInstanceUefiData", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_get_instance_uefi_data_round_trip.py", "service": "ec2"} {"check_id": "ec2.get-vpn-connection-device-sample-config-matches-vendor", "deployments": [], "key": "ec2/get-vpn-connection-device-sample-config-matches-vendor", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:GetVpnConnectionDeviceSampleConfiguration", "ec2:GetVpnConnectionDeviceTypes"], "path": "behavioral/ec2/check_get_vpn_connection_device_sample_config_matches_vendor.py", "service": "ec2"} {"check_id": "ec2.groups-for-capacity-reservation-reflects-fleet-association", "deployments": [], "key": "ec2/groups-for-capacity-reservation-reflects-fleet-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:GetGroupsForCapacityReservation", "resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GroupResources", "resource-groups:UngroupResources", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_groups_for_capacity_reservation_reflects_fleet_association.py", "service": "ec2"} {"check_id": "ec2.hibernate-guest-process-and-its-in-memory-value-survive-the-resume", "deployments": [], "key": "ec2/hibernate-guest-process-and-its-in-memory-value-survive-the-resume", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_hibernate_guest_process_and_its_in_memory_value_survive_the_resume.py", "service": "ec2"} {"check_id": "ec2.hibernate-launch-on-a-type-without-hibernation-support-rejected", "deployments": [], "key": "ec2/hibernate-launch-on-a-type-without-hibernation-support-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_hibernate_launch_on_a_type_without_hibernation_support_rejected.py", "service": "ec2"} {"check_id": "ec2.hibernate-launch-with-root-volume-too-small-for-ram-rejected", "deployments": [], "key": "ec2/hibernate-launch-with-root-volume-too-small-for-ram-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_hibernate_launch_with_root_volume_too_small_for_ram_rejected.py", "service": "ec2"} {"check_id": "ec2.hibernate-restores-the-running-process-and-a-plain-stop-does-not", "deployments": [], "key": "ec2/hibernate-restores-the-running-process-and-a-plain-stop-does-not", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_hibernate_restores_the_running_process_and_a_plain_stop_does_not.py", "service": "ec2"} {"check_id": "ec2.hibernate-stop-with-hibernate-on-an-instance-not-configured-for-it-rejected", "deployments": [], "key": "ec2/hibernate-stop-with-hibernate-on-an-instance-not-configured-for-it-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_hibernate_stop_with_hibernate_on_an_instance_not_configured_for_it_rejected.py", "service": "ec2"} {"check_id": "ec2.host-reservation-purchase-preview-cost-accuracy", "deployments": [], "key": "ec2/host-reservation-purchase-preview-cost-accuracy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateHosts", "ec2:DescribeAvailabilityZones", "ec2:DescribeHostReservationOfferings", "ec2:DescribeHosts", "ec2:GetHostReservationPurchasePreview", "ec2:ReleaseHosts"], "path": "behavioral/ec2/check_host_reservation_purchase_preview_cost_accuracy.py", "service": "ec2"} {"check_id": "ec2.iam-instance-profile-associate-replace-disassociate", "deployments": [], "key": "ec2/iam-instance-profile-associate-replace-disassociate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateIamInstanceProfile", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DisassociateIamInstanceProfile", "ec2:ReplaceIamInstanceProfileAssociation", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ec2/check_iam_instance_profile_associate_replace_disassociate.py", "service": "ec2"} {"check_id": "ec2.idvdoc-document-reminted-and-resigned-after-a-stop-start", "deployments": [], "key": "ec2/idvdoc-document-reminted-and-resigned-after-a-stop-start", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_idvdoc_document_reminted_and_resigned_after_a_stop_start.py", "service": "ec2"} {"check_id": "ec2.idvdoc-foreign-signature-rejected-as-proof-of-this-document", "deployments": [], "key": "ec2/idvdoc-foreign-signature-rejected-as-proof-of-this-document", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_idvdoc_foreign_signature_rejected_as_proof_of_this_document.py", "service": "ec2"} {"check_id": "ec2.idvdoc-signature-verifies-against-the-aws-public-certificate", "deployments": [], "key": "ec2/idvdoc-signature-verifies-against-the-aws-public-certificate", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_idvdoc_signature_verifies_against_the_aws_public_certificate.py", "service": "ec2"} {"check_id": "ec2.image-ancestry-malformed-id-rejected", "deployments": [], "key": "ec2/image-ancestry-malformed-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:GetImageAncestry"], "path": "behavioral/ec2/check_image_ancestry_malformed_id_rejected.py", "service": "ec2"} {"check_id": "ec2.image-ancestry-reflects-copy-lineage", "deployments": [], "key": "ec2/image-ancestry-reflects-copy-lineage", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CopyImage", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImages", "ec2:GetImageAncestry"], "path": "behavioral/ec2/check_image_ancestry_reflects_copy_lineage.py", "service": "ec2"} {"check_id": "ec2.image-block-public-access-state-reflects-setting", "deployments": [], "key": "ec2/image-block-public-access-state-reflects-setting", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableImageBlockPublicAccess", "ec2:EnableImageBlockPublicAccess", "ec2:GetImageBlockPublicAccessState"], "path": "behavioral/ec2/check_image_block_public_access_state_reflects_setting.py", "service": "ec2"} {"check_id": "ec2.image-register-describe-deregister-lifecycle", "deployments": [], "key": "ec2/image-register-describe-deregister-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RegisterImage"], "path": "behavioral/ec2/check_image_register_describe_deregister_lifecycle.py", "service": "ec2"} {"check_id": "ec2.image-task-and-fpga-error-semantics", "deployments": [], "key": "ec2/image-task-and-fpga-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateStoreImageTask", "ec2:DeleteFpgaImage", "ec2:DeregisterImage"], "path": "behavioral/ec2/check_image_task_and_fpga_error_semantics.py", "service": "ec2"} {"check_id": "ec2.imdshop-container-on-the-default-bridge-blocked-at-hop-limit-1-and-served-at-2", "deployments": [], "key": "ec2/imdshop-container-on-the-default-bridge-blocked-at-hop-limit-1-and-served-at-2", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyInstanceMetadataOptions", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_imdshop_container_on_the_default_bridge_blocked_at_hop_limit_1_and_served_at_2.py", "service": "ec2"} {"check_id": "ec2.import-image-task-state-transitions", "deployments": [], "key": "ec2/import-image-task-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelImportTask", "ec2:DescribeImportImageTasks", "ec2:ImportImage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/ec2/check_import_image_task_state_transitions.py", "service": "ec2"} {"check_id": "ec2.import-key-pair-accepts-an-rsa-3072-key-and-reports-its-fingerprint", "deployments": [], "key": "ec2/import-key-pair-accepts-an-rsa-3072-key-and-reports-its-fingerprint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DeleteKeyPair", "ec2:DescribeKeyPairs", "ec2:ImportKeyPair"], "path": "behavioral/ec2/check_import_key_pair_accepts_an_rsa_3072_key_and_reports_its_fingerprint.py", "service": "ec2"} {"check_id": "ec2.instance-event-window-lifecycle", "deployments": [], "key": "ec2/instance-event-window-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceEventWindow", "ec2:DeleteInstanceEventWindow", "ec2:DescribeInstanceEventWindows"], "path": "behavioral/ec2/check_instance_event_window_lifecycle.py", "service": "ec2"} {"check_id": "ec2.instance-malformed-id-error", "deployments": [], "key": "ec2/instance-malformed-id-error", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_instance_malformed_id_error.py", "service": "ec2"} {"check_id": "ec2.instance-metadata-defaults-invalid-hop-limit-rejected", "deployments": [], "key": "ec2/instance-metadata-defaults-invalid-hop-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetInstanceMetadataDefaults", "ec2:ModifyInstanceMetadataDefaults"], "path": "behavioral/ec2/check_instance_metadata_defaults_invalid_hop_limit_rejected.py", "service": "ec2"} {"check_id": "ec2.instance-metadata-defaults-optional-overrides-ami-imds-support-precedence", "deployments": [], "key": "ec2/instance-metadata-defaults-optional-overrides-ami-imds-support-precedence", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetInstanceMetadataDefaults", "ec2:ModifyInstanceMetadataDefaults", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_instance_metadata_defaults_optional_overrides_ami_imds_support_precedence.py", "service": "ec2"} {"check_id": "ec2.instance-metadata-defaults-reflects-account-override", "deployments": [], "key": "ec2/instance-metadata-defaults-reflects-account-override", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetInstanceMetadataDefaults", "ec2:ModifyInstanceMetadataDefaults"], "path": "behavioral/ec2/check_instance_metadata_defaults_reflects_account_override.py", "service": "ec2"} {"check_id": "ec2.instance-metadata-options-http-tokens-roundtrip", "deployments": [], "key": "ec2/instance-metadata-options-http-tokens-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:ModifyInstanceMetadataOptions", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_instance_metadata_options_http_tokens_roundtrip.py", "service": "ec2"} {"check_id": "ec2.instance-run-stop-start-terminate-lifecycle", "deployments": [], "key": "ec2/instance-run-stop-start-terminate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_instance_run_stop_start_terminate_lifecycle.py", "service": "ec2"} {"check_id": "ec2.instance-task-error-semantics", "deployments": [], "key": "ec2/instance-task-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/ec2/check_instance_task_error_semantics.py", "service": "ec2"} {"check_id": "ec2.instance-terminate-idempotent", "deployments": [], "key": "ec2/instance-terminate-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_instance_terminate_idempotent.py", "service": "ec2"} {"check_id": "ec2.instance-types-from-requirements-matches-constraints", "deployments": [], "key": "ec2/instance-types-from-requirements-matches-constraints", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstanceTypes", "ec2:GetInstanceTypesFromInstanceRequirements"], "path": "behavioral/ec2/check_instance_types_from_requirements_matches_constraints.py", "service": "ec2"} {"check_id": "ec2.instance-types-requirements-invalid-range-rejected", "deployments": [], "key": "ec2/instance-types-requirements-invalid-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetInstanceTypesFromInstanceRequirements"], "path": "behavioral/ec2/check_instance_types_requirements_invalid_range_rejected.py", "service": "ec2"} {"check_id": "ec2.instance-user-data-and-source-dest-check-attribute-reset", "deployments": [], "key": "ec2/instance-user-data-and-source-dest-check-attribute-reset", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:ModifyInstanceAttribute", "ec2:ResetInstanceAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_instance_user_data_and_source_dest_check_attribute_reset.py", "service": "ec2"} {"check_id": "ec2.interruptible-capacity-reservation-allocation-lifecycle", "deployments": [], "key": "ec2/interruptible-capacity-reservation-allocation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateInterruptibleCapacityReservationAllocation", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:UpdateInterruptibleCapacityReservationAllocation"], "path": "behavioral/ec2/check_interruptible_capacity_reservation_allocation_lifecycle.py", "service": "ec2"} {"check_id": "ec2.ipam-default-scope-deletion-rejected", "deployments": [], "key": "ec2/ipam-default-scope-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamScope", "ec2:DeleteIpam", "ec2:DeleteIpamScope", "ec2:DescribeIpamScopes", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_ipam_default_scope_deletion_rejected.py", "service": "ec2"} {"check_id": "ec2.ipam-discovered-accounts-max-results-below-minimum-rejected", "deployments": [], "key": "ec2/ipam-discovered-accounts-max-results-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:GetIpamDiscoveredAccounts"], "path": "behavioral/ec2/check_ipam_discovered_accounts_max_results_below_minimum_rejected.py", "service": "ec2"} {"check_id": "ec2.ipam-discovered-public-addresses-reflects-scan-results", "deployments": [], "key": "ec2/ipam-discovered-public-addresses-reflects-scan-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpams", "ec2:GetIpamDiscoveredPublicAddresses", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_ipam_discovered_public_addresses_reflects_scan_results.py", "service": "ec2"} {"check_id": "ec2.ipam-discovered-resource-cidrs-reflects-scan-results", "deployments": [], "key": "ec2/ipam-discovered-resource-cidrs-reflects-scan-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteVpc", "ec2:DescribeIpams", "ec2:GetIpamDiscoveredResourceCidrs"], "path": "behavioral/ec2/check_ipam_discovered_resource_cidrs_reflects_scan_results.py", "service": "ec2"} {"check_id": "ec2.ipam-family-error-semantics", "deployments": [], "key": "ec2/ipam-family-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": [], "path": "behavioral/ec2/check_ipam_family_error_semantics.py", "service": "ec2"} {"check_id": "ec2.ipam-internet-registry-association-asns-listing", "deployments": [], "key": "ec2/ipam-internet-registry-association-asns-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamInternetRegistryAssociation", "ec2:DeleteIpam", "ec2:DeleteIpamInternetRegistryAssociation", "ec2:DescribeIpamInternetRegistryAssociations", "ec2:DescribeIpams", "ec2:GetIpamInternetRegistryAssociationAsns"], "path": "behavioral/ec2/check_ipam_internet_registry_association_asns_listing.py", "service": "ec2"} {"check_id": "ec2.ipam-internet-registry-association-asns-matches-association", "deployments": [], "key": "ec2/ipam-internet-registry-association-asns-matches-association", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamInternetRegistryAssociation", "ec2:DeleteIpam", "ec2:DeleteIpamInternetRegistryAssociation", "ec2:GetIpamInternetRegistryAssociationAsns"], "path": "behavioral/ec2/check_ipam_internet_registry_association_asns_matches_association.py", "service": "ec2"} {"check_id": "ec2.ipam-policy-allocation-rule-private-pool-rejected", "deployments": [], "key": "ec2/ipam-policy-allocation-rule-private-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:DeleteIpamPool", "ec2:DescribeIpamPolicies", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:DisableIpamPolicy", "ec2:EnableIpamPolicy", "ec2:GetIpamPolicyAllocationRules", "ec2:ModifyIpamPolicyAllocationRules"], "path": "behavioral/ec2/check_ipam_policy_allocation_rule_private_pool_rejected.py", "service": "ec2"} {"check_id": "ec2.ipam-pool-with-provisioned-cidr-deletion-rejected", "deployments": [], "key": "ec2/ipam-pool-with-provisioned-cidr-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateIpamPoolCidr", "ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DeprovisionIpamPoolCidr", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:GetIpamPoolAllocations", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr", "ec2:ReleaseIpamPoolAllocation"], "path": "behavioral/ec2/check_ipam_pool_with_provisioned_cidr_deletion_rejected.py", "service": "ec2"} {"check_id": "ec2.ipam-resource-cidr-wrong-current-scope-rejected", "deployments": [], "key": "ec2/ipam-resource-cidr-wrong-current-scope-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteVpc", "ec2:DescribeIpams", "ec2:GetIpamResourceCidrs", "ec2:ModifyIpamResourceCidr"], "path": "behavioral/ec2/check_ipam_resource_cidr_wrong_current_scope_rejected.py", "service": "ec2"} {"check_id": "ec2.ipam-resource-cidrs-reflects-manual-modification", "deployments": [], "key": "ec2/ipam-resource-cidrs-reflects-manual-modification", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteVpc", "ec2:DescribeIpams", "ec2:GetIpamResourceCidrs", "ec2:ModifyIpamResourceCidr"], "path": "behavioral/ec2/check_ipam_resource_cidrs_reflects_manual_modification.py", "service": "ec2"} {"check_id": "ec2.ipam-routing-policy-registration-round-trip", "deployments": [], "key": "ec2/ipam-routing-policy-registration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamInternetRegistryAssociation", "ec2:CreateIpamRoutingPolicyRegistration", "ec2:DeleteIpam", "ec2:DeleteIpamInternetRegistryAssociation", "ec2:DescribeIpamInternetRegistryAssociations", "ec2:DescribeIpams", "ec2:GetIpamInternetRegistryAssociationAsns"], "path": "behavioral/ec2/check_ipam_routing_policy_registration_round_trip.py", "service": "ec2"} {"check_id": "ec2.istat-status-record-absent-while-pending-climbs-through-initializing-to-ok", "deployments": [], "key": "ec2/istat-status-record-absent-while-pending-climbs-through-initializing-to-ok", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceStatus", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_istat_status_record_absent_while_pending_climbs_through_initializing_to_ok.py", "service": "ec2"} {"check_id": "ec2.key-pair-is-invisible-from-another-region", "deployments": [], "key": "ec2/key-pair-is-invisible-from-another-region", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateKeyPair", "ec2:DeleteKeyPair", "ec2:DescribeKeyPairs"], "path": "behavioral/ec2/check_key_pair_is_invisible_from_another_region.py", "service": "ec2"} {"check_id": "ec2.keypair-create-describe-delete-lifecycle", "deployments": [], "key": "ec2/keypair-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateKeyPair", "ec2:DeleteKeyPair", "ec2:DescribeKeyPairs"], "path": "behavioral/ec2/check_keypair_create_describe_delete_lifecycle.py", "service": "ec2"} {"check_id": "ec2.keypair-duplicate-create-fails", "deployments": [], "key": "ec2/keypair-duplicate-create-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateKeyPair", "ec2:DeleteKeyPair", "ec2:DescribeKeyPairs"], "path": "behavioral/ec2/check_keypair_duplicate_create_fails.py", "service": "ec2"} {"check_id": "ec2.launch-template-default-version-deletion-rejected", "deployments": [], "key": "ec2/launch-template-default-version-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DeleteLaunchTemplateVersions", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeLaunchTemplates", "ec2:ModifyLaunchTemplate"], "path": "behavioral/ec2/check_launch_template_default_version_deletion_rejected.py", "service": "ec2"} {"check_id": "ec2.launch-template-version-deletion-default-protected", "deployments": [], "key": "ec2/launch-template-version-deletion-default-protected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DeleteLaunchTemplateVersions", "ec2:DescribeImages", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeLaunchTemplates"], "path": "behavioral/ec2/check_launch_template_version_deletion_default_protected.py", "service": "ec2"} {"check_id": "ec2.launch-template-version-management", "deployments": [], "key": "ec2/launch-template-version-management", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeLaunchTemplates", "ec2:ModifyLaunchTemplate"], "path": "behavioral/ec2/check_launch_template_version_management.py", "service": "ec2"} {"check_id": "ec2.local-gateway-family-error-semantics", "deployments": [], "key": "ec2/local-gateway-family-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": [], "path": "behavioral/ec2/check_local_gateway_family_error_semantics.py", "service": "ec2"} {"check_id": "ec2.ltver-launch-naming-a-nonexistent-template-version-rejected", "deployments": [], "key": "ec2/ltver-launch-naming-a-nonexistent-template-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_ltver_launch_naming_a_nonexistent_template_version_rejected.py", "service": "ec2"} {"check_id": "ec2.ltver-launch-template-aliases-resolve-to-the-version-each-guest-executes", "deployments": [], "key": "ec2/ltver-launch-template-aliases-resolve-to-the-version-each-guest-executes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteLaunchTemplate", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyLaunchTemplate", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_ltver_launch_template_aliases_resolve_to_the_version_each_guest_executes.py", "service": "ec2"} {"check_id": "ec2.managed-prefix-list-lifecycle", "deployments": [], "key": "ec2/managed-prefix-list-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:DeleteManagedPrefixList", "ec2:DescribeManagedPrefixLists", "ec2:GetManagedPrefixListEntries", "ec2:ModifyManagedPrefixList"], "path": "behavioral/ec2/check_managed_prefix_list_lifecycle.py", "service": "ec2"} {"check_id": "ec2.modify-default-credit-specification-invalid-cpu-credits-rejected", "deployments": [], "key": "ec2/modify-default-credit-specification-invalid-cpu-credits-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetDefaultCreditSpecification", "ec2:ModifyDefaultCreditSpecification"], "path": "behavioral/ec2/check_modify_default_credit_specification_invalid_cpu_credits_rejected.py", "service": "ec2"} {"check_id": "ec2.modify-hosts-auto-placement-state-transition", "deployments": [], "key": "ec2/modify-hosts-auto-placement-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateHosts", "ec2:DescribeAvailabilityZones", "ec2:DescribeHosts", "ec2:ModifyHosts", "ec2:ReleaseHosts"], "path": "behavioral/ec2/check_modify_hosts_auto_placement_state_transition.py", "service": "ec2"} {"check_id": "ec2.modify-instance-attribute-immutable-field-rejected", "deployments": [], "key": "ec2/modify-instance-attribute-immutable-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_modify_instance_attribute_immutable_field_rejected.py", "service": "ec2"} {"check_id": "ec2.modify-instance-attribute-user-data-while-running-rejected", "deployments": [], "key": "ec2/modify-instance-attribute-user-data-while-running-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_modify_instance_attribute_user_data_while_running_rejected.py", "service": "ec2"} {"check_id": "ec2.modify-instance-attribute-wrong-state-fails", "deployments": [], "key": "ec2/modify-instance-attribute-wrong-state-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_modify_instance_attribute_wrong_state_fails.py", "service": "ec2"} {"check_id": "ec2.modify-instance-metadata-defaults-hop-limit-out-of-range-rejected", "deployments": [], "key": "ec2/modify-instance-metadata-defaults-hop-limit-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetInstanceMetadataDefaults", "ec2:ModifyInstanceMetadataDefaults"], "path": "behavioral/ec2/check_modify_instance_metadata_defaults_hop_limit_out_of_range_rejected.py", "service": "ec2"} {"check_id": "ec2.modify-ipam-resource-cidr-updates-monitoring-state", "deployments": [], "key": "ec2/modify-ipam-resource-cidr-updates-monitoring-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteVpc", "ec2:DescribeIpams", "ec2:GetIpamResourceCidrs", "ec2:ModifyIpamResourceCidr"], "path": "behavioral/ec2/check_modify_ipam_resource_cidr_updates_monitoring_state.py", "service": "ec2"} {"check_id": "ec2.modify-volume-iops-below-minimum-accepted", "deployments": [], "key": "ec2/modify-volume-iops-below-minimum-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:ModifyVolume"], "path": "behavioral/ec2/check_modify_volume_iops_below_minimum_accepted.py", "service": "ec2"} {"check_id": "ec2.modify-vpc-attribute-conflicting-attrs-rejected", "deployments": [], "key": "ec2/modify-vpc-attribute-conflicting-attrs-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute"], "path": "behavioral/ec2/check_modify_vpc_attribute_conflicting_attrs_rejected.py", "service": "ec2"} {"check_id": "ec2.modify-vpc-encryption-control-invalid-mode-rejected", "deployments": [], "key": "ec2/modify-vpc-encryption-control-invalid-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcEncryptionControl", "ec2:DeleteVpc", "ec2:DeleteVpcEncryptionControl", "ec2:DescribeVpcEncryptionControls", "ec2:ModifyVpcEncryptionControl"], "path": "behavioral/ec2/check_modify_vpc_encryption_control_invalid_mode_rejected.py", "service": "ec2"} {"check_id": "ec2.modify-vpc-endpoint-payer-responsibility-invalid-value-rejected", "deployments": [], "key": "ec2/modify-vpc-endpoint-payer-responsibility-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:ModifyVpcEndpointPayerResponsibility", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_modify_vpc_endpoint_payer_responsibility_invalid_value_rejected.py", "service": "ec2"} {"check_id": "ec2.modify-vpc-tenancy-affects-new-instance-launch-default", "deployments": [], "key": "ec2/modify-vpc-tenancy-affects-new-instance-launch-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:ModifyVpcTenancy", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_modify_vpc_tenancy_affects_new_instance_launch_default.py", "service": "ec2"} {"check_id": "ec2.modify-vpn-connection-options-on-deleted-connection-blocked", "deployments": [], "key": "ec2/modify-vpn-connection-options-on-deleted-connection-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachVpnGateway", "ec2:CreateCustomerGateway", "ec2:CreateVpc", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpc", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:DetachVpnGateway", "ec2:ModifyVpnConnectionOptions"], "path": "behavioral/ec2/check_modify_vpn_connection_options_on_deleted_connection_blocked.py", "service": "ec2"} {"check_id": "ec2.multiattach-detaching-one-guest-leaves-the-other-attachment-live-and-its-bytes-intact", "deployments": [], "key": "ec2/multiattach-detaching-one-guest-leaves-the-other-attachment-live-and-its-bytes-intact", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "ec2:DetachVolume", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_multiattach_detaching_one_guest_leaves_the_other_attachment_live_and_its_bytes_intact.py", "service": "ec2"} {"check_id": "ec2.multiattach-flag-on-a-gp3-volume-is-refused-while-io2-accepts-the-same-request", "deployments": [], "key": "ec2/multiattach-flag-on-a-gp3-volume-is-refused-while-io2-accepts-the-same-request", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_multiattach_flag_on_a_gp3_volume_is_refused_while_io2_accepts_the_same_request.py", "service": "ec2"} {"check_id": "ec2.multiattach-modify-of-an-io2-volume-to-gp3-is-refused-until-the-flag-is-cleared", "deployments": [], "key": "ec2/multiattach-modify-of-an-io2-volume-to-gp3-is-refused-until-the-flag-is-cleared", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:ModifyVolume"], "path": "behavioral/ec2/check_multiattach_modify_of_an_io2_volume_to_gp3_is_refused_until_the_flag_is_cleared.py", "service": "ec2"} {"check_id": "ec2.nat-gateway-create-available-delete-lifecycle", "deployments": [], "key": "ec2/nat-gateway-create-available-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAddresses", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DisassociateAddress", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_nat_gateway_create_available_delete_lifecycle.py", "service": "ec2"} {"check_id": "ec2.nat-gateway-subnet-delete-dependency-violation-rejected", "deployments": [], "key": "ec2/nat-gateway-subnet-delete-dependency-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DeleteSubnet", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_nat_gateway_subnet_delete_dependency_violation_rejected.py", "service": "ec2"} {"check_id": "ec2.network-acl-entry-create-duplicate-delete", "deployments": [], "key": "ec2/network-acl-entry-create-duplicate-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkAcl", "ec2:CreateNetworkAclEntry", "ec2:CreateVpc", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_network_acl_entry_create_duplicate_delete.py", "service": "ec2"} {"check_id": "ec2.network-acl-entry-rule-number-out-of-range-rejected", "deployments": [], "key": "ec2/network-acl-entry-rule-number-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkAcl", "ec2:CreateNetworkAclEntry", "ec2:CreateVpc", "ec2:DeleteNetworkAcl", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls"], "path": "behavioral/ec2/check_network_acl_entry_rule_number_out_of_range_rejected.py", "service": "ec2"} {"check_id": "ec2.network-interface-attach-detach-lifecycle", "deployments": [], "key": "ec2/network-interface-attach-detach-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_network_interface_attach_detach_lifecycle.py", "service": "ec2"} {"check_id": "ec2.network-performance-metric-subscription-enable-disable-reflected", "deployments": [], "key": "ec2/network-performance-metric-subscription-enable-disable-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAwsNetworkPerformanceMetricSubscriptions", "ec2:DescribeRegions", "ec2:DisableAwsNetworkPerformanceMetricSubscription", "ec2:EnableAwsNetworkPerformanceMetricSubscription"], "path": "behavioral/ec2/check_network_performance_metric_subscription_enable_disable_reflected.py", "service": "ec2"} {"check_id": "ec2.network-performance-subscription-invalid-region-rejected", "deployments": [], "key": "ec2/network-performance-subscription-invalid-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAwsNetworkPerformanceMetricSubscriptions", "ec2:DescribeRegions", "ec2:DisableAwsNetworkPerformanceMetricSubscription", "ec2:EnableAwsNetworkPerformanceMetricSubscription"], "path": "behavioral/ec2/check_network_performance_subscription_invalid_region_rejected.py", "service": "ec2"} {"check_id": "ec2.nvme-instance-store-guest-device-path-rejected-as-an-ebs-attachment-point", "deployments": [], "key": "ec2/nvme-instance-store-guest-device-path-rejected-as-an-ebs-attachment-point", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_nvme_instance_store_guest_device_path_rejected_as_an_ebs_attachment_point.py", "service": "ec2"} {"check_id": "ec2.nvme-instance-store-namespace-is-nvme-while-the-xen-ebs-root-stays-xvd", "deployments": [], "key": "ec2/nvme-instance-store-namespace-is-nvme-while-the-xen-ebs-root-stays-xvd", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_nvme_instance_store_namespace_is_nvme_while_the_xen_ebs_root_stays_xvd.py", "service": "ec2"} {"check_id": "ec2.nvme-instance-store-serial-to-device-mapping-and-data-survive-a-reboot", "deployments": [], "key": "ec2/nvme-instance-store-serial-to-device-mapping-and-data-survive-a-reboot", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RebootInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_nvme_instance_store_serial_to_device_mapping_and_data_survive_a_reboot.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptAddressTransfer", "deployments": [], "key": "ec2/op-contract-acceptAddressTransfer", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptAddressTransfer", "ec2:AllocateAddress", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_accept_address_transfer.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptAddressTransfer-b", "deployments": [], "key": "ec2/op-contract-acceptAddressTransfer-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptAddressTransfer", "ec2:AllocateAddress", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_accept_address_transfer_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptCapacityReservationBillingOwnership", "deployments": [], "key": "ec2/op-contract-acceptCapacityReservationBillingOwnership", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptCapacityReservationBillingOwnership", "ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones"], "path": "behavioral/ec2/check_op_contract_accept_capacity_reservation_billing_ownership.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptCapacityReservationBillingOwnership-b", "deployments": [], "key": "ec2/op-contract-acceptCapacityReservationBillingOwnership-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptCapacityReservationBillingOwnership", "ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones"], "path": "behavioral/ec2/check_op_contract_accept_capacity_reservation_billing_ownership_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptReservedInstancesExchangeQuote-b", "deployments": [], "key": "ec2/op-contract-acceptReservedInstancesExchangeQuote-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptReservedInstancesExchangeQuote"], "path": "behavioral/ec2/check_op_contract_accept_reserved_instances_exchange_quote_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptTransitGatewayClientVpnAttachment", "deployments": [], "key": "ec2/op-contract-acceptTransitGatewayClientVpnAttachment", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayClientVpnAttachment"], "path": "behavioral/ec2/check_op_contract_accept_transit_gateway_client_vpn_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptTransitGatewayMulticastDomainAssociations", "deployments": [], "key": "ec2/op-contract-acceptTransitGatewayMulticastDomainAssociations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayMulticastDomainAssociations"], "path": "behavioral/ec2/check_op_contract_accept_transit_gateway_multicast_domain_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptTransitGatewayMulticastDomainAssociations-b", "deployments": [], "key": "ec2/op-contract-acceptTransitGatewayMulticastDomainAssociations-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayMulticastDomainAssociations"], "path": "behavioral/ec2/check_op_contract_accept_transit_gateway_multicast_domain_associations_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptTransitGatewayPeeringAttachment", "deployments": [], "key": "ec2/op-contract-acceptTransitGatewayPeeringAttachment", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayPeeringAttachment"], "path": "behavioral/ec2/check_op_contract_accept_transit_gateway_peering_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptTransitGatewayPeeringAttachment-b", "deployments": [], "key": "ec2/op-contract-acceptTransitGatewayPeeringAttachment-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayPeeringAttachment"], "path": "behavioral/ec2/check_op_contract_accept_transit_gateway_peering_attachment_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptTransitGatewayVpcAttachment", "deployments": [], "key": "ec2/op-contract-acceptTransitGatewayVpcAttachment", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayVpcAttachment", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_accept_transit_gateway_vpc_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptTransitGatewayVpcAttachment-b", "deployments": [], "key": "ec2/op-contract-acceptTransitGatewayVpcAttachment-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayVpcAttachment"], "path": "behavioral/ec2/check_op_contract_accept_transit_gateway_vpc_attachment_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptVpcEndpointConnections", "deployments": [], "key": "ec2/op-contract-acceptVpcEndpointConnections", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptVpcEndpointConnections", "ec2:CreateVpcEndpoint", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_accept_vpc_endpoint_connections.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptVpcEndpointConnections-b", "deployments": [], "key": "ec2/op-contract-acceptVpcEndpointConnections-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptVpcEndpointConnections"], "path": "behavioral/ec2/check_op_contract_accept_vpc_endpoint_connections_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-acceptVpcPeeringConnection", "deployments": [], "key": "ec2/op-contract-acceptVpcPeeringConnection", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_accept_vpc_peering_connection.py", "service": "ec2"} {"check_id": "ec2.op-contract-advertiseByoipCidr", "deployments": [], "key": "ec2/op-contract-advertiseByoipCidr", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AdvertiseByoipCidr"], "path": "behavioral/ec2/check_op_contract_advertise_byoip_cidr.py", "service": "ec2"} {"check_id": "ec2.op-contract-advertiseByoipCidr-b", "deployments": [], "key": "ec2/op-contract-advertiseByoipCidr-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AdvertiseByoipCidr"], "path": "behavioral/ec2/check_op_contract_advertise_byoip_cidr_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-allocateAddress", "deployments": [], "key": "ec2/op-contract-allocateAddress", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddresses", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_allocate_address.py", "service": "ec2"} {"check_id": "ec2.op-contract-allocateAddress-b", "deployments": [], "key": "ec2/op-contract-allocateAddress-b", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddresses", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_allocate_address_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-allocateHosts", "deployments": [], "key": "ec2/op-contract-allocateHosts", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateHosts", "ec2:DescribeAvailabilityZones", "ec2:DescribeHosts", "ec2:ReleaseHosts"], "path": "behavioral/ec2/check_op_contract_allocate_hosts.py", "service": "ec2"} {"check_id": "ec2.op-contract-allocateIpamPoolCidr", "deployments": [], "key": "ec2/op-contract-allocateIpamPoolCidr", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateIpamPoolCidr", "ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DescribeIpamPoolAllocations", "ec2:DescribeIpamPools", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr", "ec2:ReleaseIpamPoolAllocation"], "path": "behavioral/ec2/check_op_contract_allocate_ipam_pool_cidr.py", "service": "ec2"} {"check_id": "ec2.op-contract-allocateIpamPoolCidr-b", "deployments": [], "key": "ec2/op-contract-allocateIpamPoolCidr-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateIpamPoolCidr", "ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DeprovisionIpamPoolCidr", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:GetIpamPoolAllocations", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr", "ec2:ReleaseIpamPoolAllocation"], "path": "behavioral/ec2/check_op_contract_allocate_ipam_pool_cidr_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-applySecurityGroupsToClientVpnTargetNetwork", "deployments": [], "key": "ec2/op-contract-applySecurityGroupsToClientVpnTargetNetwork", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:ApplySecurityGroupsToClientVpnTargetNetwork", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_apply_security_groups_to_client_vpn_target_network.py", "service": "ec2"} {"check_id": "ec2.op-contract-applySecurityGroupsToClientVpnTargetNetwork-b", "deployments": [], "key": "ec2/op-contract-applySecurityGroupsToClientVpnTargetNetwork-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:ApplySecurityGroupsToClientVpnTargetNetwork", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_apply_security_groups_to_client_vpn_target_network_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-assignIpv6Addresses", "deployments": [], "key": "ec2/op-contract-assignIpv6Addresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssignIpv6Addresses", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_assign_ipv6_addresses.py", "service": "ec2"} {"check_id": "ec2.op-contract-assignIpv6Addresses-b", "deployments": [], "key": "ec2/op-contract-assignIpv6Addresses-b", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssignIpv6Addresses"], "path": "behavioral/ec2/check_op_contract_assign_ipv6_addresses_b.py", "service": "ec2"} {"check_id": "ec2.op-contract-assign-private-ip-addresses", "deployments": [], "key": "ec2/op-contract-assign-private-ip-addresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssignPrivateIpAddresses", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_assign_private_ip_addresses.py", "service": "ec2"} {"check_id": "ec2.op-contract-assign-private-nat-gateway-address", "deployments": [], "key": "ec2/op-contract-assign-private-nat-gateway-address", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssignPrivateNatGatewayAddress", "ec2:CreateNatGateway", "ec2:DeleteNatGateway", "ec2:DescribeNatGateways", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_assign_private_nat_gateway_address.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-address-already-associated-rejected", "deployments": [], "key": "ec2/op-contract-associate-address-already-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeAddresses", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateAddress", "ec2:ReleaseAddress", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_associate_address_already_associated_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-application-status-check", "deployments": [], "key": "ec2/op-contract-associate-application-status-check", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateApplicationStatusCheck", "ec2:CreateApplicationStatusCheck", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteApplicationStatusCheck", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeApplicationStatusCheckAssociations", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DisassociateApplicationStatusCheck", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_associate_application_status_check.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-capacity-reservation-billing-owner", "deployments": [], "key": "ec2/op-contract-associate-capacity-reservation-billing-owner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateCapacityReservationBillingOwner", "ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones"], "path": "behavioral/ec2/check_op_contract_associate_capacity_reservation_billing_owner.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-client-vpn-target-network", "deployments": [], "key": "ec2/op-contract-associate-client-vpn-target-network", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateClientVpnTargetNetwork", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnEndpoints", "ec2:DescribeClientVpnTargetNetworks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateClientVpnTargetNetwork"], "path": "behavioral/ec2/check_op_contract_associate_client_vpn_target_network.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-dhcp-options", "deployments": [], "key": "ec2/op-contract-associate-dhcp-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateDhcpOptions", "ec2:CreateDhcpOptions", "ec2:CreateVpc", "ec2:DeleteDhcpOptions", "ec2:DeleteVpc", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_associate_dhcp_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-enclave-certificate-iam-role", "deployments": [], "key": "ec2/op-contract-associate-enclave-certificate-iam-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateEnclaveCertificateIamRole", "ec2:DisassociateEnclaveCertificateIamRole", "ec2:GetAssociatedEnclaveCertificateIamRoles", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/ec2/check_op_contract_associate_enclave_certificate_iam_role.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-iam-instance-profile-duplicate-rejected", "deployments": [], "key": "ec2/op-contract-associate-iam-instance-profile-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateIamInstanceProfile", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateIamInstanceProfile", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ec2/check_op_contract_associate_iam_instance_profile_duplicate_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-instance-event-window", "deployments": [], "key": "ec2/op-contract-associate-instance-event-window", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateInstanceEventWindow", "ec2:CreateInstanceEventWindow", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInstanceEventWindow", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeImages", "ec2:DescribeInstanceEventWindows", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_associate_instance_event_window.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-ipam-byoasn", "deployments": [], "key": "ec2/op-contract-associate-ipam-byoasn", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateIpamByoasn"], "path": "behavioral/ec2/check_op_contract_associate_ipam_byoasn.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-ipam-resource-discovery", "deployments": [], "key": "ec2/op-contract-associate-ipam-resource-discovery", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateIpamResourceDiscovery", "ec2:CreateIpam", "ec2:CreateIpamResourceDiscovery", "ec2:DeleteIpam", "ec2:DeleteIpamResourceDiscovery", "ec2:DescribeIpamResourceDiscoveries", "ec2:DescribeIpamResourceDiscoveryAssociations", "ec2:DescribeIpams", "ec2:DisassociateIpamResourceDiscovery"], "path": "behavioral/ec2/check_op_contract_associate_ipam_resource_discovery.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-nat-gateway-address", "deployments": [], "key": "ec2/op-contract-associate-nat-gateway-address", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateNatGatewayAddress", "ec2:CreateNatGateway", "ec2:DeleteNatGateway", "ec2:DescribeNatGateways", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_associate_nat_gateway_address.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-route-server", "deployments": [], "key": "ec2/op-contract-associate-route-server", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:DescribeRouteServers", "ec2:DescribeVpcs", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_op_contract_associate_route_server.py", "service": "ec2"} {"check_id": "ec2.op-contract-associate-route-table", "deployments": [], "key": "ec2/op-contract-associate-route-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_op_contract_associate_route_table.py", "service": "ec2"} {"check_id": "ec2.op-contract-associateSecurityGroupVpc", "deployments": [], "key": "ec2/op-contract-associateSecurityGroupVpc", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateSecurityGroupVpc", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupVpcAssociations", "ec2:DescribeVpcs", "ec2:DisassociateSecurityGroupVpc"], "path": "behavioral/ec2/check_op_contract_associate_security_group_vpc.py", "service": "ec2"} {"check_id": "ec2.op-contract-associateSubnetCidrBlock", "deployments": [], "key": "ec2/op-contract-associateSubnetCidrBlock", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateSubnetCidrBlock", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateSubnetCidrBlock"], "path": "behavioral/ec2/check_op_contract_associate_subnet_cidr_block.py", "service": "ec2"} {"check_id": "ec2.op-contract-associateTransitGatewayMulticastDomain", "deployments": [], "key": "ec2/op-contract-associateTransitGatewayMulticastDomain", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayMulticastDomain", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DisassociateTransitGatewayMulticastDomain", "ec2:GetTransitGatewayMulticastDomainAssociations"], "path": "behavioral/ec2/check_op_contract_associate_transit_gateway_multicast_domain.py", "service": "ec2"} {"check_id": "ec2.op-contract-associateTransitGatewayPolicyTable", "deployments": [], "key": "ec2/op-contract-associateTransitGatewayPolicyTable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayPolicyTable", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DisassociateTransitGatewayPolicyTable", "ec2:GetTransitGatewayPolicyTableAssociations"], "path": "behavioral/ec2/check_op_contract_associate_transit_gateway_policy_table.py", "service": "ec2"} {"check_id": "ec2.op-contract-associateTransitGatewayRouteTable", "deployments": [], "key": "ec2/op-contract-associateTransitGatewayRouteTable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayRouteTable", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DisassociateTransitGatewayRouteTable", "ec2:GetTransitGatewayRouteTableAssociations"], "path": "behavioral/ec2/check_op_contract_associate_transit_gateway_route_table.py", "service": "ec2"} {"check_id": "ec2.op-contract-associateTrunkInterface", "deployments": [], "key": "ec2/op-contract-associateTrunkInterface", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateTrunkInterface", "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTrunkInterfaceAssociations", "ec2:DetachNetworkInterface", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_op_contract_associate_trunk_interface.py", "service": "ec2"} {"check_id": "ec2.op-contract-associateVpcCidrBlock", "deployments": [], "key": "ec2/op-contract-associateVpcCidrBlock", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateVpcCidrBlock", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ec2:DisassociateVpcCidrBlock"], "path": "behavioral/ec2/check_op_contract_associate_vpc_cidr_block.py", "service": "ec2"} {"check_id": "ec2.op-contract-attachImageWatermark", "deployments": [], "key": "ec2/op-contract-attachImageWatermark", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachImageWatermark", "ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DetachImageWatermark", "ec2:RegisterImage", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_attach_image_watermark.py", "service": "ec2"} {"check_id": "ec2.op-contract-attachInternetGateway", "deployments": [], "key": "ec2/op-contract-attachInternetGateway", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteVpc", "ec2:DescribeInternetGateways", "ec2:DetachInternetGateway"], "path": "behavioral/ec2/check_op_contract_attach_internet_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-attachNetworkInterface", "deployments": [], "key": "ec2/op-contract-attachNetworkInterface", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DetachNetworkInterface", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_op_contract_attach_network_interface.py", "service": "ec2"} {"check_id": "ec2.op-contract-attachVerifiedAccessTrustProvider", "deployments": [], "key": "ec2/op-contract-attachVerifiedAccessTrustProvider", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeVerifiedAccessInstances", "ec2:DetachVerifiedAccessTrustProvider"], "path": "behavioral/ec2/check_op_contract_attach_verified_access_trust_provider.py", "service": "ec2"} {"check_id": "ec2.op-contract-attachVolume", "deployments": [], "key": "ec2/op-contract-attachVolume", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVolume", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_op_contract_attach_volume.py", "service": "ec2"} {"check_id": "ec2.op-contract-attachVpnGateway", "deployments": [], "key": "ec2/op-contract-attachVpnGateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVpnGateway", "ec2:CreateVpc", "ec2:CreateVpnGateway", "ec2:DeleteVpc", "ec2:DeleteVpnGateway", "ec2:DescribeVpnGateways", "ec2:DetachVpnGateway"], "path": "behavioral/ec2/check_op_contract_attach_vpn_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-authorizeClientVpnIngress", "deployments": [], "key": "ec2/op-contract-authorizeClientVpnIngress", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AuthorizeClientVpnIngress", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnAuthorizationRules", "ec2:DescribeClientVpnEndpoints"], "path": "behavioral/ec2/check_op_contract_authorize_client_vpn_ingress.py", "service": "ec2"} {"check_id": "ec2.op-contract-authorize-security-group-egress", "deployments": [], "key": "ec2/op-contract-authorize-security-group-egress", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress"], "path": "behavioral/ec2/check_op_contract_authorize_security_group_egress.py", "service": "ec2"} {"check_id": "ec2.op-contract-authorize-security-group-ingress", "deployments": [], "key": "ec2/op-contract-authorize-security-group-ingress", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress"], "path": "behavioral/ec2/check_op_contract_authorize_security_group_ingress.py", "service": "ec2"} {"check_id": "ec2.op-contract-batch-modify-ipam-routing-policy-registrations", "deployments": [], "key": "ec2/op-contract-batch-modify-ipam-routing-policy-registrations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:BatchModifyIpamRoutingPolicyRegistrations"], "path": "behavioral/ec2/check_op_contract_batch_modify_ipam_routing_policy_registrations.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-capacity-reservation", "deployments": [], "key": "ec2/op-contract-cancel-capacity-reservation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations"], "path": "behavioral/ec2/check_op_contract_cancel_capacity_reservation.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-capacity-reservation-fleets", "deployments": [], "key": "ec2/op-contract-cancel-capacity-reservation-fleets", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelCapacityReservationFleets", "ec2:CreateCapacityReservationFleet", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservationFleets"], "path": "behavioral/ec2/check_op_contract_cancel_capacity_reservation_fleets.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-declarative-policies-report", "deployments": [], "key": "ec2/op-contract-cancel-declarative-policies-report", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelDeclarativePoliciesReport"], "path": "behavioral/ec2/check_op_contract_cancel_declarative_policies_report.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-export-task", "deployments": [], "key": "ec2/op-contract-cancel-export-task", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelExportTask"], "path": "behavioral/ec2/check_op_contract_cancel_export_task.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-image-launch-permission", "deployments": [], "key": "ec2/op-contract-cancel-image-launch-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelImageLaunchPermission", "ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImageAttribute", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ModifyImageAttribute", "ec2:RegisterImage", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_cancel_image_launch_permission.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-import-task", "deployments": [], "key": "ec2/op-contract-cancel-import-task", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelImportTask", "ec2:DescribeImportSnapshotTasks", "ec2:ImportSnapshot", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/ec2/check_op_contract_cancel_import_task.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-reserved-instances-listing", "deployments": [], "key": "ec2/op-contract-cancel-reserved-instances-listing", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelReservedInstancesListing", "ec2:DescribeRegions"], "path": "behavioral/ec2/check_op_contract_cancel_reserved_instances_listing.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-spot-fleet-requests", "deployments": [], "key": "ec2/op-contract-cancel-spot-fleet-requests", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelSpotFleetRequests", "ec2:DescribeSpotFleetRequests", "ec2:RequestSpotFleet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm:GetParameter"], "path": "behavioral/ec2/check_op_contract_cancel_spot_fleet_requests.py", "service": "ec2"} {"check_id": "ec2.op-contract-cancel-spot-instance-requests", "deployments": [], "key": "ec2/op-contract-cancel-spot-instance-requests", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelSpotInstanceRequests", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSpotInstanceRequests", "ec2:RequestSpotInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_op_contract_cancel_spot_instance_requests.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-placement-group", "deployments": [], "key": "ec2/op-contract-create-placement-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreatePlacementGroup", "ec2:DeletePlacementGroup", "ec2:DescribePlacementGroups"], "path": "behavioral/ec2/check_op_contract_create_placement_group.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-public-ipv4-pool", "deployments": [], "key": "ec2/op-contract-create-public-ipv4-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreatePublicIpv4Pool", "ec2:DeletePublicIpv4Pool", "ec2:DescribePublicIpv4Pools"], "path": "behavioral/ec2/check_op_contract_create_public_ipv4_pool.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-replace-root-volume-task", "deployments": [], "key": "ec2/op-contract-create-replace-root-volume-task", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateReplaceRootVolumeTask", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeReplaceRootVolumeTasks", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_create_replace_root_volume_task.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-restore-image-task-rejected", "deployments": [], "key": "ec2/op-contract-create-restore-image-task-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateRestoreImageTask"], "path": "behavioral/ec2/check_op_contract_create_restore_image_task_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-route-duplicate-rejected", "deployments": [], "key": "ec2/op-contract-create-route-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DeleteRoute", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_create_route_duplicate_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-route-server", "deployments": [], "key": "ec2/op-contract-create-route-server", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateRouteServer", "ec2:DescribeRouteServers"], "path": "behavioral/ec2/check_op_contract_create_route_server.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-route-server-endpoint", "deployments": [], "key": "ec2/op-contract-create-route-server-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServers", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_op_contract_create_route_server_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-route-server-peer", "deployments": [], "key": "ec2/op-contract-create-route-server-peer", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers", "ec2:DescribeRouteServers", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_op_contract_create_route_server_peer.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-route-table", "deployments": [], "key": "ec2/op-contract-create-route-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateRouteTable", "ec2:CreateVpc", "ec2:DeleteRouteTable", "ec2:DeleteVpc", "ec2:DescribeRouteTables"], "path": "behavioral/ec2/check_op_contract_create_route_table.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-secondary-network", "deployments": [], "key": "ec2/op-contract-create-secondary-network", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecondaryNetwork", "ec2:DeleteSecondaryNetwork", "ec2:DescribeSecondaryNetworks"], "path": "behavioral/ec2/check_op_contract_create_secondary_network.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-secondary-subnet", "deployments": [], "key": "ec2/op-contract-create-secondary-subnet", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecondaryNetwork", "ec2:CreateSecondarySubnet", "ec2:DeleteSecondaryNetwork", "ec2:DeleteSecondarySubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecondaryNetworks", "ec2:DescribeSecondarySubnets"], "path": "behavioral/ec2/check_op_contract_create_secondary_subnet.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-security-group", "deployments": [], "key": "ec2/op-contract-create-security-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress"], "path": "behavioral/ec2/check_op_contract_create_security_group.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-snapshot", "deployments": [], "key": "ec2/op-contract-create-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_op_contract_create_snapshot.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-snapshots", "deployments": [], "key": "ec2/op-contract-create-snapshots", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshots", "ec2:DeleteSnapshot", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_create_snapshots.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-transit-gateway-peering-attachment", "deployments": [], "key": "ec2/op-contract-create-transit-gateway-peering-attachment", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayPeeringAttachment", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPeeringAttachment", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGateways", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_create_transit_gateway_peering_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-transit-gateway-policy-table", "deployments": [], "key": "ec2/op-contract-create-transit-gateway-policy-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_op_contract_create_transit_gateway_policy_table.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-transit-gateway-policy-table-entry", "deployments": [], "key": "ec2/op-contract-create-transit-gateway-policy-table-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayPolicyTableEntry", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DeleteTransitGatewayPolicyTableEntry", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPolicyTableEntries"], "path": "behavioral/ec2/check_op_contract_create_transit_gateway_policy_table_entry.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-transit-gateway-prefix-list-reference", "deployments": [], "key": "ec2/op-contract-create-transit-gateway-prefix-list-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPrefixListReference", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteManagedPrefixList", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPrefixListReference", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeManagedPrefixLists", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPrefixListReferences"], "path": "behavioral/ec2/check_op_contract_create_transit_gateway_prefix_list_reference.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-transit-gateway-route", "deployments": [], "key": "ec2/op-contract-create-transit-gateway-route", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRoute", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRoute", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:SearchTransitGatewayRoutes"], "path": "behavioral/ec2/check_op_contract_create_transit_gateway_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-transit-gateway-route-table", "deployments": [], "key": "ec2/op-contract-create-transit-gateway-route-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_op_contract_create_transit_gateway_route_table.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-transit-gateway-route-table-announcement", "deployments": [], "key": "ec2/op-contract-create-transit-gateway-route-table-announcement", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayPeeringAttachment", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayRouteTableAnnouncement", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPeeringAttachment", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGatewayRouteTableAnnouncements", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_create_transit_gateway_route_table_announcement.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-transit-gateway-vpc-attachment", "deployments": [], "key": "ec2/op-contract-create-transit-gateway-vpc-attachment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_create_transit_gateway_vpc_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-verified-access-endpoint", "deployments": [], "key": "ec2/op-contract-create-verified-access-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVerifiedAccessEndpoint", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVerifiedAccessEndpoints", "ec2:DescribeVpcs", "ec2:DetachVerifiedAccessTrustProvider"], "path": "behavioral/ec2/check_op_contract_create_verified_access_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-verified-access-group", "deployments": [], "key": "ec2/op-contract-create-verified-access-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeVerifiedAccessGroups", "ec2:DetachVerifiedAccessTrustProvider", "ec2:GetVerifiedAccessGroupPolicy"], "path": "behavioral/ec2/check_op_contract_create_verified_access_group.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-verified-access-instance", "deployments": [], "key": "ec2/op-contract-create-verified-access-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVerifiedAccessInstance", "ec2:DeleteVerifiedAccessInstance", "ec2:DescribeVerifiedAccessInstances"], "path": "behavioral/ec2/check_op_contract_create_verified_access_instance.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-verified-access-trust-provider", "deployments": [], "key": "ec2/op-contract-create-verified-access-trust-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeVerifiedAccessTrustProviders"], "path": "behavioral/ec2/check_op_contract_create_verified_access_trust_provider.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-volume", "deployments": [], "key": "ec2/op-contract-create-volume", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_op_contract_create_volume.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-vpc", "deployments": [], "key": "ec2/op-contract-create-vpc", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_create_vpc.py", "service": "ec2"} {"check_id": "ec2.op-contract-create-vpc-block-public-access-exclusion", "deployments": [], "key": "ec2/op-contract-create-vpc-block-public-access-exclusion", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcBlockPublicAccessExclusion", "ec2:DeleteSubnet", "ec2:DeleteVpcBlockPublicAccessExclusion", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcBlockPublicAccessExclusions", "ec2:DescribeVpcs", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_create_vpc_block_public_access_exclusion.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpcEncryptionControl", "deployments": [], "key": "ec2/op-contract-createVpcEncryptionControl", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcEncryptionControl", "ec2:DeleteVpc", "ec2:DeleteVpcEncryptionControl", "ec2:DescribeVpcEncryptionControls"], "path": "behavioral/ec2/check_op_contract_create_vpc_encryption_control.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpcEndpoint", "deployments": [], "key": "ec2/op-contract-createVpcEndpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateRouteTable", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteRouteTable", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeVpcEndpoints"], "path": "behavioral/ec2/check_op_contract_create_vpc_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpcEndpointConnectionNotification", "deployments": [], "key": "ec2/op-contract-createVpcEndpointConnectionNotification", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:CreateVpcEndpointConnectionNotification", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointConnectionNotifications", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointConnectionNotifications", "ec2:ModifyVpcAttribute", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/ec2/check_op_contract_create_vpc_endpoint_connection_notification.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpcEndpointServiceConfiguration", "deployments": [], "key": "ec2/op-contract-createVpcEndpointServiceConfiguration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServiceConfigurations", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_create_vpc_endpoint_service_configuration.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpcPeeringConnection", "deployments": [], "key": "ec2/op-contract-createVpcPeeringConnection", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_create_vpc_peering_connection.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpnConcentrator", "deployments": [], "key": "ec2/op-contract-createVpnConcentrator", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateVpnConcentrator", "ec2:DeleteTransitGateway", "ec2:DeleteVpnConcentrator", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpnConcentrators"], "path": "behavioral/ec2/check_op_contract_create_vpn_concentrator.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpnConnection", "deployments": [], "key": "ec2/op-contract-createVpnConnection", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_op_contract_create_vpn_connection.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpnConnectionRoute", "deployments": [], "key": "ec2/op-contract-createVpnConnectionRoute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVpnGateway", "ec2:CreateCustomerGateway", "ec2:CreateVpc", "ec2:CreateVpnConnection", "ec2:CreateVpnConnectionRoute", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpc", "ec2:DeleteVpnConnection", "ec2:DeleteVpnConnectionRoute", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:DetachVpnGateway"], "path": "behavioral/ec2/check_op_contract_create_vpn_connection_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-createVpnGateway", "deployments": [], "key": "ec2/op-contract-createVpnGateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpnGateway", "ec2:DeleteVpnGateway", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_op_contract_create_vpn_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteApplicationStatusCheck", "deployments": [], "key": "ec2/op-contract-deleteApplicationStatusCheck", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateApplicationStatusCheck", "ec2:DeleteApplicationStatusCheck", "ec2:DescribeApplicationStatusChecks"], "path": "behavioral/ec2/check_op_contract_delete_application_status_check.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteCapacityManagerDataExport", "deployments": [], "key": "ec2/op-contract-deleteCapacityManagerDataExport", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateCapacityManagerDataExport", "ec2:DeleteCapacityManagerDataExport", "ec2:DescribeCapacityManagerDataExports", "ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_delete_capacity_manager_data_export.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteCarrierGateway", "deployments": [], "key": "ec2/op-contract-deleteCarrierGateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCarrierGateway", "ec2:CreateVpc", "ec2:DeleteCarrierGateway", "ec2:DeleteVpc", "ec2:DescribeCarrierGateways"], "path": "behavioral/ec2/check_op_contract_delete_carrier_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteClientVpnEndpoint", "deployments": [], "key": "ec2/op-contract-deleteClientVpnEndpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnEndpoints"], "path": "behavioral/ec2/check_op_contract_delete_client_vpn_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteClientVpnRoute", "deployments": [], "key": "ec2/op-contract-deleteClientVpnRoute", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:ApplySecurityGroupsToClientVpnTargetNetwork", "ec2:AssociateClientVpnTargetNetwork", "ec2:CreateClientVpnEndpoint", "ec2:CreateClientVpnRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteClientVpnEndpoint", "ec2:DeleteClientVpnRoute", "ec2:DescribeAvailabilityZones", "ec2:DescribeClientVpnRoutes", "ec2:DescribeClientVpnTargetNetworks", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateClientVpnTargetNetwork"], "path": "behavioral/ec2/check_op_contract_delete_client_vpn_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteCoipCidr", "deployments": [], "key": "ec2/op-contract-deleteCoipCidr", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateCoipCidr", "ec2:CreateCoipPool", "ec2:DeleteCoipCidr", "ec2:DeleteCoipPool", "ec2:DescribeCoipPools", "ec2:DescribeLocalGatewayRouteTables"], "path": "behavioral/ec2/check_op_contract_delete_coip_cidr.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-coip-pool", "deployments": [], "key": "ec2/op-contract-delete-coip-pool", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateCoipPool", "ec2:DeleteCoipPool", "ec2:DescribeCoipPools", "ec2:DescribeLocalGatewayRouteTables"], "path": "behavioral/ec2/check_op_contract_delete_coip_pool.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-customer-gateway", "deployments": [], "key": "ec2/op-contract-delete-customer-gateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:DeleteCustomerGateway", "ec2:DescribeCustomerGateways"], "path": "behavioral/ec2/check_op_contract_delete_customer_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-dhcp-options", "deployments": [], "key": "ec2/op-contract-delete-dhcp-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateDhcpOptions", "ec2:DeleteDhcpOptions", "ec2:DescribeDhcpOptions"], "path": "behavioral/ec2/check_op_contract_delete_dhcp_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-egress-only-internet-gateway", "deployments": [], "key": "ec2/op-contract-delete-egress-only-internet-gateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateEgressOnlyInternetGateway", "ec2:CreateVpc", "ec2:DeleteEgressOnlyInternetGateway", "ec2:DeleteVpc", "ec2:DescribeEgressOnlyInternetGateways"], "path": "behavioral/ec2/check_op_contract_delete_egress_only_internet_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-fleets-batch-rejection", "deployments": [], "key": "ec2/op-contract-delete-fleets-batch-rejection", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:DeleteFleets", "ec2:DeleteLaunchTemplate", "ec2:DescribeFleets", "ec2:DescribeImages"], "path": "behavioral/ec2/check_op_contract_delete_fleets_batch_rejection.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-flow-logs-batch-rejection", "deployments": [], "key": "ec2/op-contract-delete-flow-logs-batch-rejection", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateFlowLogs", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteVpc", "ec2:DescribeFlowLogs", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ec2/check_op_contract_delete_flow_logs_batch_rejection.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-fpga-image-rejected", "deployments": [], "key": "ec2/op-contract-delete-fpga-image-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteFpgaImage"], "path": "behavioral/ec2/check_op_contract_delete_fpga_image_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-image-usage-report", "deployments": [], "key": "ec2/op-contract-delete-image-usage-report", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateImage", "ec2:CreateImageUsageReport", "ec2:DeleteImageUsageReport", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImageUsageReports", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_delete_image_usage_report.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-instance-connect-endpoint", "deployments": [], "key": "ec2/op-contract-delete-instance-connect-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceConnectEndpoint", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInstanceConnectEndpoint", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceConnectEndpoints", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ec2/check_op_contract_delete_instance_connect_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-instance-event-window", "deployments": [], "key": "ec2/op-contract-delete-instance-event-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceEventWindow", "ec2:DeleteInstanceEventWindow", "ec2:DescribeInstanceEventWindows"], "path": "behavioral/ec2/check_op_contract_delete_instance_event_window.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-internet-gateway-dependency-rejected", "deployments": [], "key": "ec2/op-contract-delete-internet-gateway-dependency-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteVpc", "ec2:DescribeInternetGateways", "ec2:DetachInternetGateway"], "path": "behavioral/ec2/check_op_contract_delete_internet_gateway_dependency_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam", "deployments": [], "key": "ec2/op-contract-delete-ipam", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_op_contract_delete_ipam.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-external-resource-verification-token", "deployments": [], "key": "ec2/op-contract-delete-ipam-external-resource-verification-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamExternalResourceVerificationToken", "ec2:DeleteIpam", "ec2:DeleteIpamExternalResourceVerificationToken", "ec2:DescribeIpamExternalResourceVerificationTokens"], "path": "behavioral/ec2/check_op_contract_delete_ipam_external_resource_verification_token.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-internet-registry-association", "deployments": [], "key": "ec2/op-contract-delete-ipam-internet-registry-association", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteIpamInternetRegistryAssociation", "ec2:DescribeIpamInternetRegistryAssociations"], "path": "behavioral/ec2/check_op_contract_delete_ipam_internet_registry_association.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-policy", "deployments": [], "key": "ec2/op-contract-delete-ipam-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:DescribeIpamPolicies"], "path": "behavioral/ec2/check_op_contract_delete_ipam_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-pool", "deployments": [], "key": "ec2/op-contract-delete-ipam-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DescribeIpamPools", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_op_contract_delete_ipam_pool.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-prefix-list-resolver", "deployments": [], "key": "ec2/op-contract-delete-ipam-prefix-list-resolver", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPrefixListResolver", "ec2:DeleteIpam", "ec2:DeleteIpamPrefixListResolver", "ec2:DescribeIpamPrefixListResolvers", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_op_contract_delete_ipam_prefix_list_resolver.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-prefix-list-resolver-target", "deployments": [], "key": "ec2/op-contract-delete-ipam-prefix-list-resolver-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPrefixListResolver", "ec2:CreateIpamPrefixListResolverTarget", "ec2:CreateManagedPrefixList", "ec2:DeleteIpam", "ec2:DeleteIpamPrefixListResolver", "ec2:DeleteIpamPrefixListResolverTarget", "ec2:DeleteManagedPrefixList", "ec2:DescribeIpamPrefixListResolverTargets", "ec2:DescribeIpamPrefixListResolvers", "ec2:DescribeIpams", "ec2:DescribeManagedPrefixLists"], "path": "behavioral/ec2/check_op_contract_delete_ipam_prefix_list_resolver_target.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-resource-discovery", "deployments": [], "key": "ec2/op-contract-delete-ipam-resource-discovery", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpamResourceDiscovery", "ec2:DeleteIpamResourceDiscovery", "ec2:DescribeIpamResourceDiscoveries"], "path": "behavioral/ec2/check_op_contract_delete_ipam_resource_discovery.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-routing-policy-registration", "deployments": [], "key": "ec2/op-contract-delete-ipam-routing-policy-registration", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteIpamRoutingPolicyRegistration"], "path": "behavioral/ec2/check_op_contract_delete_ipam_routing_policy_registration.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-ipam-scope", "deployments": [], "key": "ec2/op-contract-delete-ipam-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamScope", "ec2:DeleteIpam", "ec2:DeleteIpamScope", "ec2:DescribeIpamScopes", "ec2:DescribeIpams", "ec2:ModifyIpamScope"], "path": "behavioral/ec2/check_op_contract_delete_ipam_scope.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-key-pair", "deployments": [], "key": "ec2/op-contract-delete-key-pair", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateKeyPair", "ec2:DeleteKeyPair", "ec2:DescribeKeyPairs"], "path": "behavioral/ec2/check_op_contract_delete_key_pair.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-launch-template", "deployments": [], "key": "ec2/op-contract-delete-launch-template", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeLaunchTemplates"], "path": "behavioral/ec2/check_op_contract_delete_launch_template.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-launch-template-versions", "deployments": [], "key": "ec2/op-contract-delete-launch-template-versions", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DeleteLaunchTemplateVersions", "ec2:DescribeLaunchTemplateVersions"], "path": "behavioral/ec2/check_op_contract_delete_launch_template_versions.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-local-gateway-virtual-interface", "deployments": [], "key": "ec2/op-contract-delete-local-gateway-virtual-interface", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteLocalGatewayVirtualInterface", "ec2:DescribeLocalGatewayVirtualInterfaces"], "path": "behavioral/ec2/check_op_contract_delete_local_gateway_virtual_interface.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-local-gateway-virtual-interface-group", "deployments": [], "key": "ec2/op-contract-delete-local-gateway-virtual-interface-group", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteLocalGatewayVirtualInterfaceGroup", "ec2:DescribeLocalGatewayVirtualInterfaceGroups"], "path": "behavioral/ec2/check_op_contract_delete_local_gateway_virtual_interface_group.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-managed-prefix-list", "deployments": [], "key": "ec2/op-contract-delete-managed-prefix-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:DeleteManagedPrefixList", "ec2:DescribeManagedPrefixLists"], "path": "behavioral/ec2/check_op_contract_delete_managed_prefix_list.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-nat-gateway", "deployments": [], "key": "ec2/op-contract-delete-nat-gateway", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_delete_nat_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-network-acl", "deployments": [], "key": "ec2/op-contract-delete-network-acl", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkAcl", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkAcl", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls", "ec2:ReplaceNetworkAclAssociation"], "path": "behavioral/ec2/check_op_contract_delete_network_acl.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-network-acl-entry", "deployments": [], "key": "ec2/op-contract-delete-network-acl-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkAcl", "ec2:CreateNetworkAclEntry", "ec2:CreateVpc", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls"], "path": "behavioral/ec2/check_op_contract_delete_network_acl_entry.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-network-insights-access-scope", "deployments": [], "key": "ec2/op-contract-delete-network-insights-access-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScope", "ec2:DescribeNetworkInsightsAccessScopes"], "path": "behavioral/ec2/check_op_contract_delete_network_insights_access_scope.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-network-insights-access-scope-analysis", "deployments": [], "key": "ec2/op-contract-delete-network-insights-access-scope-analysis", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScopeAnalysis", "ec2:DescribeNetworkInsightsAccessScopeAnalyses", "ec2:StartNetworkInsightsAccessScopeAnalysis"], "path": "behavioral/ec2/check_op_contract_delete_network_insights_access_scope_analysis.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-network-insights-analysis", "deployments": [], "key": "ec2/op-contract-delete-network-insights-analysis", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInternetGateway", "ec2:CreateNetworkInsightsPath", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInsightsAnalysis", "ec2:DeleteNetworkInsightsPath", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInsightsAnalyses", "ec2:StartNetworkInsightsAnalysis"], "path": "behavioral/ec2/check_op_contract_delete_network_insights_analysis.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-network-insights-path", "deployments": [], "key": "ec2/op-contract-delete-network-insights-path", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInternetGateway", "ec2:CreateNetworkInsightsPath", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInsightsPath", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInsightsPaths"], "path": "behavioral/ec2/check_op_contract_delete_network_insights_path.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-network-interface", "deployments": [], "key": "ec2/op-contract-delete-network-interface", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces"], "path": "behavioral/ec2/check_op_contract_delete_network_interface.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-network-interface-permission", "deployments": [], "key": "ec2/op-contract-delete-network-interface-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfacePermissions"], "path": "behavioral/ec2/check_op_contract_delete_network_interface_permission.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-placement-group", "deployments": [], "key": "ec2/op-contract-delete-placement-group", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreatePlacementGroup", "ec2:DeletePlacementGroup", "ec2:DescribePlacementGroups"], "path": "behavioral/ec2/check_op_contract_delete_placement_group.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-public-ipv4-pool", "deployments": [], "key": "ec2/op-contract-delete-public-ipv4-pool", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreatePublicIpv4Pool", "ec2:DeletePublicIpv4Pool", "ec2:DescribePublicIpv4Pools"], "path": "behavioral/ec2/check_op_contract_delete_public_ipv4_pool.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-public-ipv4-pool-standalone-rejection", "deployments": [], "key": "ec2/op-contract-delete-public-ipv4-pool-standalone-rejection", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeletePublicIpv4Pool", "ec2:DescribePublicIpv4Pools"], "path": "behavioral/ec2/check_op_contract_delete_public_ipv4_pool_standalone_rejection.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-queued-reserved-instances", "deployments": [], "key": "ec2/op-contract-delete-queued-reserved-instances", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteQueuedReservedInstances"], "path": "behavioral/ec2/check_op_contract_delete_queued_reserved_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-queued-reserved-instances-standalone-rejection", "deployments": [], "key": "ec2/op-contract-delete-queued-reserved-instances-standalone-rejection", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteQueuedReservedInstances"], "path": "behavioral/ec2/check_op_contract_delete_queued_reserved_instances_standalone_rejection.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-route", "deployments": [], "key": "ec2/op-contract-delete-route", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway"], "path": "behavioral/ec2/check_op_contract_delete_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-route-server", "deployments": [], "key": "ec2/op-contract-delete-route-server", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateRouteServer", "ec2:DeleteRouteServer", "ec2:DescribeRouteServers"], "path": "behavioral/ec2/check_op_contract_delete_route_server.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-route-server-endpoint", "deployments": [], "key": "ec2/op-contract-delete-route-server-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteRouteServerEndpoint", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServers", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_op_contract_delete_route_server_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-route-server-peer", "deployments": [], "key": "ec2/op-contract-delete-route-server-peer", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteRouteServerPeer", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers", "ec2:DescribeRouteServers", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_op_contract_delete_route_server_peer.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-route-table-dependency-rejected", "deployments": [], "key": "ec2/op-contract-delete-route-table-dependency-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_op_contract_delete_route_table_dependency_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-secondary-network", "deployments": [], "key": "ec2/op-contract-delete-secondary-network", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecondaryNetwork", "ec2:DeleteSecondaryNetwork", "ec2:DescribeSecondaryNetworks"], "path": "behavioral/ec2/check_op_contract_delete_secondary_network.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-secondary-subnet", "deployments": [], "key": "ec2/op-contract-delete-secondary-subnet", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecondaryNetwork", "ec2:CreateSecondarySubnet", "ec2:DeleteSecondaryNetwork", "ec2:DeleteSecondarySubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecondaryNetworks", "ec2:DescribeSecondarySubnets"], "path": "behavioral/ec2/check_op_contract_delete_secondary_subnet.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-security-group-dependency-rejected", "deployments": [], "key": "ec2/op-contract-delete-security-group-dependency-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups"], "path": "behavioral/ec2/check_op_contract_delete_security_group_dependency_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-snapshot-in-use-rejected", "deployments": [], "key": "ec2/op-contract-delete-snapshot-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_delete_snapshot_in_use_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-spot-datafeed-subscription", "deployments": [], "key": "ec2/op-contract-delete-spot-datafeed-subscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSpotDatafeedSubscription", "ec2:DeleteSpotDatafeedSubscription", "ec2:DescribeSpotDatafeedSubscription", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketAcl", "s3:PutBucketOwnershipControls", "s3:PutBucketTagging"], "path": "behavioral/ec2/check_op_contract_delete_spot_datafeed_subscription.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-subnet", "deployments": [], "key": "ec2/op-contract-delete-subnet", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets"], "path": "behavioral/ec2/check_op_contract_delete_subnet.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-subnet-cidr-reservation", "deployments": [], "key": "ec2/op-contract-delete-subnet-cidr-reservation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateSubnetCidrReservation", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteSubnetCidrReservation", "ec2:DeleteVpc", "ec2:GetSubnetCidrReservations"], "path": "behavioral/ec2/check_op_contract_delete_subnet_cidr_reservation.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-tags", "deployments": [], "key": "ec2/op-contract-delete-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteTags", "ec2:DeleteVpc", "ec2:DescribeTags"], "path": "behavioral/ec2/check_op_contract_delete_tags.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-traffic-mirror-filter", "deployments": [], "key": "ec2/op-contract-delete-traffic-mirror-filter", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTrafficMirrorFilter", "ec2:CreateTrafficMirrorSession", "ec2:CreateTrafficMirrorTarget", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteTrafficMirrorFilter", "ec2:DeleteTrafficMirrorSession", "ec2:DeleteTrafficMirrorTarget", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTrafficMirrorFilters", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_delete_traffic_mirror_filter.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-traffic-mirror-filter-rule", "deployments": [], "key": "ec2/op-contract-delete-traffic-mirror-filter-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTrafficMirrorFilter", "ec2:CreateTrafficMirrorFilterRule", "ec2:DeleteTrafficMirrorFilter", "ec2:DeleteTrafficMirrorFilterRule", "ec2:DescribeTrafficMirrorFilterRules"], "path": "behavioral/ec2/check_op_contract_delete_traffic_mirror_filter_rule.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-traffic-mirror-session", "deployments": [], "key": "ec2/op-contract-delete-traffic-mirror-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTrafficMirrorFilter", "ec2:CreateTrafficMirrorSession", "ec2:CreateTrafficMirrorTarget", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteTrafficMirrorFilter", "ec2:DeleteTrafficMirrorSession", "ec2:DeleteTrafficMirrorTarget", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTrafficMirrorSessions", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_delete_traffic_mirror_session.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-traffic-mirror-target", "deployments": [], "key": "ec2/op-contract-delete-traffic-mirror-target", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTrafficMirrorFilter", "ec2:CreateTrafficMirrorSession", "ec2:CreateTrafficMirrorTarget", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteTrafficMirrorFilter", "ec2:DeleteTrafficMirrorSession", "ec2:DeleteTrafficMirrorTarget", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTrafficMirrorTargets", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_delete_traffic_mirror_target.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGateway", "deployments": [], "key": "ec2/op-contract-deleteTransitGateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:DeleteTransitGateway", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayConnect", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayConnect", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayConnect", "ec2:CreateTransitGatewayConnectPeer", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayConnect", "ec2:DeleteTransitGatewayConnectPeer", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayConnectPeers", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_connect.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayConnectPeer", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayConnectPeer", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayConnect", "ec2:CreateTransitGatewayConnectPeer", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayConnect", "ec2:DeleteTransitGatewayConnectPeer", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayConnectPeers", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_connect_peer.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayMeteringPolicy", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayMeteringPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMeteringPolicy", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMeteringPolicy", "ec2:DescribeTransitGatewayMeteringPolicies", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_metering_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayMeteringPolicyEntry", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayMeteringPolicyEntry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMeteringPolicy", "ec2:CreateTransitGatewayMeteringPolicyEntry", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMeteringPolicy", "ec2:DeleteTransitGatewayMeteringPolicyEntry", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayMeteringPolicies", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayMeteringPolicyEntries"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_metering_policy_entry.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayMulticastDomain", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayMulticastDomain", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_multicast_domain.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayPeeringAttachment", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayPeeringAttachment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPeeringAttachment", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGateways", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_peering_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayPolicyTable", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayPolicyTable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_policy_table.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayPolicyTableEntry", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayPolicyTableEntry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayPolicyTableEntry", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DeleteTransitGatewayPolicyTableEntry", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPolicyTableEntries"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_policy_table_entry.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayPrefixListReference", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayPrefixListReference", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPrefixListReference", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteManagedPrefixList", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPrefixListReference", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeManagedPrefixLists", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPrefixListReferences"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_prefix_list_reference.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayRoute", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayRoute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRoute", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRoute", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:SearchTransitGatewayRoutes"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayRouteTable", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayRouteTable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_route_table.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayRouteTableAnnouncement", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayRouteTableAnnouncement", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteTransitGatewayRouteTableAnnouncement", "ec2:DescribeTransitGatewayRouteTableAnnouncements"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_route_table_announcement.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteTransitGatewayVpcAttachment", "deployments": [], "key": "ec2/op-contract-deleteTransitGatewayVpcAttachment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_delete_transit_gateway_vpc_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVerifiedAccessEndpoint", "deployments": [], "key": "ec2/op-contract-deleteVerifiedAccessEndpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVerifiedAccessEndpoint", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DeleteVpc", "ec2:DescribeVerifiedAccessEndpoints", "ec2:DetachVerifiedAccessTrustProvider"], "path": "behavioral/ec2/check_op_contract_delete_verified_access_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVerifiedAccessGroup", "deployments": [], "key": "ec2/op-contract-deleteVerifiedAccessGroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeVerifiedAccessGroups", "ec2:DetachVerifiedAccessTrustProvider"], "path": "behavioral/ec2/check_op_contract_delete_verified_access_group.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVerifiedAccessInstance", "deployments": [], "key": "ec2/op-contract-deleteVerifiedAccessInstance", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVerifiedAccessInstance", "ec2:DeleteVerifiedAccessInstance", "ec2:DescribeVerifiedAccessInstances"], "path": "behavioral/ec2/check_op_contract_delete_verified_access_instance.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVerifiedAccessTrustProvider", "deployments": [], "key": "ec2/op-contract-deleteVerifiedAccessTrustProvider", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeVerifiedAccessTrustProviders"], "path": "behavioral/ec2/check_op_contract_delete_verified_access_trust_provider.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVolume", "deployments": [], "key": "ec2/op-contract-deleteVolume", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_op_contract_delete_volume.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpc", "deployments": [], "key": "ec2/op-contract-deleteVpc", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_delete_vpc.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpcBlockPublicAccessExclusion", "deployments": [], "key": "ec2/op-contract-deleteVpcBlockPublicAccessExclusion", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcBlockPublicAccessExclusion", "ec2:DeleteVpc", "ec2:DeleteVpcBlockPublicAccessExclusion", "ec2:DescribeVpcBlockPublicAccessExclusions"], "path": "behavioral/ec2/check_op_contract_delete_vpc_block_public_access_exclusion.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpcEncryptionControl", "deployments": [], "key": "ec2/op-contract-deleteVpcEncryptionControl", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcEncryptionControl", "ec2:DeleteVpc", "ec2:DeleteVpcEncryptionControl", "ec2:DescribeVpcEncryptionControls"], "path": "behavioral/ec2/check_op_contract_delete_vpc_encryption_control.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpcEndpointConnectionNotifications", "deployments": [], "key": "ec2/op-contract-deleteVpcEndpointConnectionNotifications", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:CreateVpcEndpointConnectionNotification", "ec2:DeleteVpcEndpointConnectionNotifications", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointConnectionNotifications", "ec2:DescribeVpcEndpoints", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes"], "path": "behavioral/ec2/check_op_contract_delete_vpc_endpoint_connection_notifications.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpcEndpointServiceConfigurations", "deployments": [], "key": "ec2/op-contract-deleteVpcEndpointServiceConfigurations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:ModifyVpcEndpointServiceConfiguration", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_delete_vpc_endpoint_service_configurations.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpcEndpoints", "deployments": [], "key": "ec2/op-contract-deleteVpcEndpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeVpcEndpoints"], "path": "behavioral/ec2/check_op_contract_delete_vpc_endpoints.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpcPeeringConnection", "deployments": [], "key": "ec2/op-contract-deleteVpcPeeringConnection", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_delete_vpc_peering_connection.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpnConcentrator", "deployments": [], "key": "ec2/op-contract-deleteVpnConcentrator", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateVpnConcentrator", "ec2:DeleteTransitGateway", "ec2:DeleteVpnConcentrator", "ec2:DescribeTransitGateways", "ec2:DescribeVpnConcentrators"], "path": "behavioral/ec2/check_op_contract_delete_vpn_concentrator.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpnConnection", "deployments": [], "key": "ec2/op-contract-deleteVpnConnection", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_op_contract_delete_vpn_connection.py", "service": "ec2"} {"check_id": "ec2.op-contract-deleteVpnConnectionRoute", "deployments": [], "key": "ec2/op-contract-deleteVpnConnectionRoute", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnConnectionRoute", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnConnectionRoute", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_op_contract_delete_vpn_connection_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-delete-vpn-gateway", "deployments": [], "key": "ec2/op-contract-delete-vpn-gateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpnGateway", "ec2:DeleteVpnGateway", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_op_contract_delete_vpn_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-deprovision-byoip-cidr-unprovisioned-rejected", "deployments": [], "key": "ec2/op-contract-deprovision-byoip-cidr-unprovisioned-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeprovisionByoipCidr"], "path": "behavioral/ec2/check_op_contract_deprovision_byoip_cidr_unprovisioned_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-deprovision-ipam-byoasn-invalid-ipam-rejected", "deployments": [], "key": "ec2/op-contract-deprovision-ipam-byoasn-invalid-ipam-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DeprovisionIpamByoasn", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_op_contract_deprovision_ipam_byoasn_invalid_ipam_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-deprovision-ipam-pool-cidr", "deployments": [], "key": "ec2/op-contract-deprovision-ipam-pool-cidr", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DeprovisionIpamPoolCidr", "ec2:DescribeIpamPools", "ec2:DescribeIpamScopes", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr"], "path": "behavioral/ec2/check_op_contract_deprovision_ipam_pool_cidr.py", "service": "ec2"} {"check_id": "ec2.op-contract-deprovision-public-ipv4-pool-cidr-unprovisioned-rejected", "deployments": [], "key": "ec2/op-contract-deprovision-public-ipv4-pool-cidr-unprovisioned-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreatePublicIpv4Pool", "ec2:DeletePublicIpv4Pool", "ec2:DeprovisionPublicIpv4PoolCidr", "ec2:DescribePublicIpv4Pools"], "path": "behavioral/ec2/check_op_contract_deprovision_public_ipv4_pool_cidr_unprovisioned_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-deregister-image", "deployments": [], "key": "ec2/op-contract-deregister-image", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_deregister_image.py", "service": "ec2"} {"check_id": "ec2.op-contract-deregister-instance-event-notification-attributes", "deployments": [], "key": "ec2/op-contract-deregister-instance-event-notification-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DeregisterInstanceEventNotificationAttributes", "ec2:DescribeInstanceEventNotificationAttributes", "ec2:RegisterInstanceEventNotificationAttributes"], "path": "behavioral/ec2/check_op_contract_deregister_instance_event_notification_attributes.py", "service": "ec2"} {"check_id": "ec2.op-contract-deregister-transit-gateway-multicast-group-members", "deployments": [], "key": "ec2/op-contract-deregister-transit-gateway-multicast-group-members", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayMulticastDomain", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeregisterTransitGatewayMulticastGroupMembers", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisassociateTransitGatewayMulticastDomain", "ec2:GetTransitGatewayMulticastDomainAssociations", "ec2:RegisterTransitGatewayMulticastGroupMembers", "ec2:SearchTransitGatewayMulticastGroups"], "path": "behavioral/ec2/check_op_contract_deregister_transit_gateway_multicast_group_members.py", "service": "ec2"} {"check_id": "ec2.op-contract-deregister-transit-gateway-multicast-group-sources", "deployments": [], "key": "ec2/op-contract-deregister-transit-gateway-multicast-group-sources", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayMulticastDomain", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeregisterTransitGatewayMulticastGroupSources", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisassociateTransitGatewayMulticastDomain", "ec2:GetTransitGatewayMulticastDomainAssociations", "ec2:RegisterTransitGatewayMulticastGroupSources", "ec2:SearchTransitGatewayMulticastGroups"], "path": "behavioral/ec2/check_op_contract_deregister_transit_gateway_multicast_group_sources.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-account-attributes", "deployments": [], "key": "ec2/op-contract-describe-account-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAccountAttributes"], "path": "behavioral/ec2/check_op_contract_describe_account_attributes.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-account-vpc-encryption-control", "deployments": [], "key": "ec2/op-contract-describe-account-vpc-encryption-control", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAccountVpcEncryptionControl"], "path": "behavioral/ec2/check_op_contract_describe_account_vpc_encryption_control.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-address-transfers", "deployments": [], "key": "ec2/op-contract-describe-address-transfers", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddressTransfers", "ec2:DisableAddressTransfer", "ec2:EnableAddressTransfer", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_describe_address_transfers.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-addresses", "deployments": [], "key": "ec2/op-contract-describe-addresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddresses", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_describe_addresses.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-addresses-attribute", "deployments": [], "key": "ec2/op-contract-describe-addresses-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddressesAttribute", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_describe_addresses_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-aggregate-id-format", "deployments": [], "key": "ec2/op-contract-describe-aggregate-id-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAggregateIdFormat"], "path": "behavioral/ec2/check_op_contract_describe_aggregate_id_format.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeApplicationStatus", "deployments": [], "key": "ec2/op-contract-describeApplicationStatus", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeApplicationStatus"], "path": "behavioral/ec2/check_op_contract_describe_application_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeApplicationStatusCheckAssociations", "deployments": [], "key": "ec2/op-contract-describeApplicationStatusCheckAssociations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeApplicationStatusCheckAssociations"], "path": "behavioral/ec2/check_op_contract_describe_application_status_check_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeApplicationStatusChecks", "deployments": [], "key": "ec2/op-contract-describeApplicationStatusChecks", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateApplicationStatusCheck", "ec2:DeleteApplicationStatusCheck", "ec2:DescribeApplicationStatusChecks"], "path": "behavioral/ec2/check_op_contract_describe_application_status_checks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-application-status-checks-duplicate", "deployments": [], "key": "ec2/op-contract-describe-application-status-checks-duplicate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateApplicationStatusCheck", "ec2:DeleteApplicationStatusCheck", "ec2:DescribeApplicationStatusChecks"], "path": "behavioral/ec2/check_op_contract_describe_application_status_checks_duplicate.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeAvailabilityZones", "deployments": [], "key": "ec2/op-contract-describeAvailabilityZones", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones"], "path": "behavioral/ec2/check_op_contract_describe_availability_zones.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeAwsNetworkPerformanceMetricSubscriptions", "deployments": [], "key": "ec2/op-contract-describeAwsNetworkPerformanceMetricSubscriptions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAwsNetworkPerformanceMetricSubscriptions", "ec2:DescribeRegions", "ec2:DisableAwsNetworkPerformanceMetricSubscription", "ec2:EnableAwsNetworkPerformanceMetricSubscription"], "path": "behavioral/ec2/check_op_contract_describe_aws_network_performance_metric_subscriptions.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeBundleTasks", "deployments": [], "key": "ec2/op-contract-describeBundleTasks", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeBundleTasks"], "path": "behavioral/ec2/check_op_contract_describe_bundle_tasks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeByoipCidrs", "deployments": [], "key": "ec2/op-contract-describeByoipCidrs", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeByoipCidrs"], "path": "behavioral/ec2/check_op_contract_describe_byoip_cidrs.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-byoip-cidrs-duplicate", "deployments": [], "key": "ec2/op-contract-describe-byoip-cidrs-duplicate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeByoipCidrs"], "path": "behavioral/ec2/check_op_contract_describe_byoip_cidrs_duplicate.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeCapacityBlockExtensionHistory", "deployments": [], "key": "ec2/op-contract-describeCapacityBlockExtensionHistory", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeCapacityBlockExtensionHistory"], "path": "behavioral/ec2/check_op_contract_describe_capacity_block_extension_history.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeCapacityBlockExtensionOfferings", "deployments": [], "key": "ec2/op-contract-describeCapacityBlockExtensionOfferings", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeCapacityBlockExtensionOfferings"], "path": "behavioral/ec2/check_op_contract_describe_capacity_block_extension_offerings.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeCapacityBlockOfferings", "deployments": [], "key": "ec2/op-contract-describeCapacityBlockOfferings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeCapacityBlockOfferings"], "path": "behavioral/ec2/check_op_contract_describe_capacity_block_offerings.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeCapacityBlockStatus", "deployments": [], "key": "ec2/op-contract-describeCapacityBlockStatus", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeCapacityBlockStatus"], "path": "behavioral/ec2/check_op_contract_describe_capacity_block_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeCapacityBlocks", "deployments": [], "key": "ec2/op-contract-describeCapacityBlocks", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeCapacityBlocks"], "path": "behavioral/ec2/check_op_contract_describe_capacity_blocks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeCapacityManagerDataExports", "deployments": [], "key": "ec2/op-contract-describeCapacityManagerDataExports", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeCapacityManagerDataExports"], "path": "behavioral/ec2/check_op_contract_describe_capacity_manager_data_exports.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeCapacityReservationBillingRequests", "deployments": [], "key": "ec2/op-contract-describeCapacityReservationBillingRequests", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeCapacityReservationBillingRequests"], "path": "behavioral/ec2/check_op_contract_describe_capacity_reservation_billing_requests.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-capacity-reservation-cancellation-quotes-duplicate", "deployments": [], "key": "ec2/op-contract-describe-capacity-reservation-cancellation-quotes-duplicate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeCapacityReservationCancellationQuotes"], "path": "behavioral/ec2/check_op_contract_describe_capacity_reservation_cancellation_quotes_duplicate.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-capacity-reservation-fleets", "deployments": [], "key": "ec2/op-contract-describe-capacity-reservation-fleets", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeCapacityReservationFleets"], "path": "behavioral/ec2/check_op_contract_describe_capacity_reservation_fleets.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-capacity-reservation-topology", "deployments": [], "key": "ec2/op-contract-describe-capacity-reservation-topology", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeCapacityReservationTopology"], "path": "behavioral/ec2/check_op_contract_describe_capacity_reservation_topology.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-capacity-reservations", "deployments": [], "key": "ec2/op-contract-describe-capacity-reservations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeCapacityReservations"], "path": "behavioral/ec2/check_op_contract_describe_capacity_reservations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-carrier-gateways", "deployments": [], "key": "ec2/op-contract-describe-carrier-gateways", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeCarrierGateways"], "path": "behavioral/ec2/check_op_contract_describe_carrier_gateways.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-client-vpn-authorization-rules", "deployments": [], "key": "ec2/op-contract-describe-client-vpn-authorization-rules", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnAuthorizationRules", "ec2:DescribeClientVpnEndpoints"], "path": "behavioral/ec2/check_op_contract_describe_client_vpn_authorization_rules.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-client-vpn-connections", "deployments": [], "key": "ec2/op-contract-describe-client-vpn-connections", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnConnections", "ec2:DescribeClientVpnEndpoints"], "path": "behavioral/ec2/check_op_contract_describe_client_vpn_connections.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-client-vpn-endpoints", "deployments": [], "key": "ec2/op-contract-describe-client-vpn-endpoints", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeClientVpnEndpoints"], "path": "behavioral/ec2/check_op_contract_describe_client_vpn_endpoints.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-client-vpn-routes", "deployments": [], "key": "ec2/op-contract-describe-client-vpn-routes", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeClientVpnRoutes"], "path": "behavioral/ec2/check_op_contract_describe_client_vpn_routes.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-client-vpn-target-networks", "deployments": [], "key": "ec2/op-contract-describe-client-vpn-target-networks", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeClientVpnTargetNetworks"], "path": "behavioral/ec2/check_op_contract_describe_client_vpn_target_networks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-coip-pools", "deployments": [], "key": "ec2/op-contract-describe-coip-pools", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeCoipPools"], "path": "behavioral/ec2/check_op_contract_describe_coip_pools.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-customer-gateways", "deployments": [], "key": "ec2/op-contract-describe-customer-gateways", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:DeleteCustomerGateway", "ec2:DescribeCustomerGateways"], "path": "behavioral/ec2/check_op_contract_describe_customer_gateways.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-declarative-policies-reports", "deployments": [], "key": "ec2/op-contract-describe-declarative-policies-reports", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeDeclarativePoliciesReports"], "path": "behavioral/ec2/check_op_contract_describe_declarative_policies_reports.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-dhcp-options", "deployments": [], "key": "ec2/op-contract-describe-dhcp-options", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateDhcpOptions", "ec2:DeleteDhcpOptions", "ec2:DescribeDhcpOptions"], "path": "behavioral/ec2/check_op_contract_describe_dhcp_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeEgressOnlyInternetGateways", "deployments": [], "key": "ec2/op-contract-describeEgressOnlyInternetGateways", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateEgressOnlyInternetGateway", "ec2:CreateVpc", "ec2:DeleteEgressOnlyInternetGateway", "ec2:DeleteVpc", "ec2:DescribeEgressOnlyInternetGateways", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_describe_egress_only_internet_gateways.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeExportImageTasks", "deployments": [], "key": "ec2/op-contract-describeExportImageTasks", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeExportImageTasks"], "path": "behavioral/ec2/check_op_contract_describe_export_image_tasks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeExportTasks", "deployments": [], "key": "ec2/op-contract-describeExportTasks", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeExportTasks"], "path": "behavioral/ec2/check_op_contract_describe_export_tasks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeFastLaunchImages", "deployments": [], "key": "ec2/op-contract-describeFastLaunchImages", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeFastLaunchImages", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_describe_fast_launch_images.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeFastSnapshotRestores", "deployments": [], "key": "ec2/op-contract-describeFastSnapshotRestores", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeFastSnapshotRestores", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableFastSnapshotRestores", "ec2:EnableFastSnapshotRestores"], "path": "behavioral/ec2/check_op_contract_describe_fast_snapshot_restores.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeFleetHistory", "deployments": [], "key": "ec2/op-contract-describeFleetHistory", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:DeleteFleets", "ec2:DeleteLaunchTemplate", "ec2:DescribeFleetHistory", "ec2:DescribeImages"], "path": "behavioral/ec2/check_op_contract_describe_fleet_history.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeFleetInstances", "deployments": [], "key": "ec2/op-contract-describeFleetInstances", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:DeleteFleets", "ec2:DeleteLaunchTemplate", "ec2:DescribeFleetInstances", "ec2:DescribeImages"], "path": "behavioral/ec2/check_op_contract_describe_fleet_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeFleets", "deployments": [], "key": "ec2/op-contract-describeFleets", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:DeleteFleets", "ec2:DeleteLaunchTemplate", "ec2:DescribeFleets", "ec2:DescribeImages"], "path": "behavioral/ec2/check_op_contract_describe_fleets.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeFlowLogs", "deployments": [], "key": "ec2/op-contract-describeFlowLogs", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateFlowLogs", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteVpc", "ec2:DescribeFlowLogs", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ec2/check_op_contract_describe_flow_logs.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeFpgaImages", "deployments": [], "key": "ec2/op-contract-describeFpgaImages", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeFpgaImages"], "path": "behavioral/ec2/check_op_contract_describe_fpga_images.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeHostReservationOfferings", "deployments": [], "key": "ec2/op-contract-describeHostReservationOfferings", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeHostReservationOfferings"], "path": "behavioral/ec2/check_op_contract_describe_host_reservation_offerings.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeHostReservations", "deployments": [], "key": "ec2/op-contract-describeHostReservations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeHostReservations"], "path": "behavioral/ec2/check_op_contract_describe_host_reservations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeHosts", "deployments": [], "key": "ec2/op-contract-describeHosts", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeHosts"], "path": "behavioral/ec2/check_op_contract_describe_hosts.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-iam-instance-profile-associations", "deployments": [], "key": "ec2/op-contract-describe-iam-instance-profile-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ec2/check_op_contract_describe_iam_instance_profile_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-id-format", "deployments": [], "key": "ec2/op-contract-describe-id-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIdFormat"], "path": "behavioral/ec2/check_op_contract_describe_id_format.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-identity-id-format", "deployments": [], "key": "ec2/op-contract-describe-identity-id-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIdentityIdFormat", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_describe_identity_id_format.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-image-attribute", "deployments": [], "key": "ec2/op-contract-describe-image-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateImage", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImageAttribute", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_image_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-image-references", "deployments": [], "key": "ec2/op-contract-describe-image-references", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImageReferences", "ec2:DescribeImages"], "path": "behavioral/ec2/check_op_contract_describe_image_references.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-image-usage-report-entries", "deployments": [], "key": "ec2/op-contract-describe-image-usage-report-entries", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateImage", "ec2:CreateImageUsageReport", "ec2:DeleteImageUsageReport", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImageUsageReportEntries", "ec2:DescribeImageUsageReports", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_image_usage_report_entries.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-image-usage-reports", "deployments": [], "key": "ec2/op-contract-describe-image-usage-reports", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateImage", "ec2:CreateImageUsageReport", "ec2:DeleteImageUsageReport", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImageUsageReports", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_image_usage_reports.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-images", "deployments": [], "key": "ec2/op-contract-describe-images", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages"], "path": "behavioral/ec2/check_op_contract_describe_images.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-import-image-tasks", "deployments": [], "key": "ec2/op-contract-describe-import-image-tasks", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImportImageTasks"], "path": "behavioral/ec2/check_op_contract_describe_import_image_tasks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-import-snapshot-tasks", "deployments": [], "key": "ec2/op-contract-describe-import-snapshot-tasks", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImportSnapshotTasks"], "path": "behavioral/ec2/check_op_contract_describe_import_snapshot_tasks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-instance-attribute", "deployments": [], "key": "ec2/op-contract-describe-instance-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_instance_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-instance-connect-endpoints", "deployments": [], "key": "ec2/op-contract-describe-instance-connect-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceConnectEndpoint", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInstanceConnectEndpoint", "ec2:DescribeInstanceConnectEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_describe_instance_connect_endpoints.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-instance-credit-specifications", "deployments": [], "key": "ec2/op-contract-describe-instance-credit-specifications", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceCreditSpecifications", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_instance_credit_specifications.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-instance-event-notification-attributes", "deployments": [], "key": "ec2/op-contract-describe-instance-event-notification-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DeregisterInstanceEventNotificationAttributes", "ec2:DescribeInstanceEventNotificationAttributes", "ec2:RegisterInstanceEventNotificationAttributes"], "path": "behavioral/ec2/check_op_contract_describe_instance_event_notification_attributes.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-instance-event-windows", "deployments": [], "key": "ec2/op-contract-describe-instance-event-windows", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceEventWindow", "ec2:DeleteInstanceEventWindow", "ec2:DescribeInstanceEventWindows"], "path": "behavioral/ec2/check_op_contract_describe_instance_event_windows.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInstanceImageMetadata", "deployments": [], "key": "ec2/op-contract-describeInstanceImageMetadata", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceImageMetadata", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_instance_image_metadata.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInstanceSqlHaHistoryStates", "deployments": [], "key": "ec2/op-contract-describeInstanceSqlHaHistoryStates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstanceSqlHaHistoryStates"], "path": "behavioral/ec2/check_op_contract_describe_instance_sql_ha_history_states.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInstanceSqlHaStates", "deployments": [], "key": "ec2/op-contract-describeInstanceSqlHaStates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstanceSqlHaStates"], "path": "behavioral/ec2/check_op_contract_describe_instance_sql_ha_states.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInstanceStatus", "deployments": [], "key": "ec2/op-contract-describeInstanceStatus", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_instance_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInstanceTopology", "deployments": [], "key": "ec2/op-contract-describeInstanceTopology", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceTopology", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_instance_topology.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInstanceTypeOfferings", "deployments": [], "key": "ec2/op-contract-describeInstanceTypeOfferings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstanceTypeOfferings"], "path": "behavioral/ec2/check_op_contract_describe_instance_type_offerings.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInstanceTypes", "deployments": [], "key": "ec2/op-contract-describeInstanceTypes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstanceTypes"], "path": "behavioral/ec2/check_op_contract_describe_instance_types.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInstances", "deployments": [], "key": "ec2/op-contract-describeInstances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeInternetGateways", "deployments": [], "key": "ec2/op-contract-describeInternetGateways", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInternetGateway", "ec2:DeleteInternetGateway", "ec2:DescribeInternetGateways"], "path": "behavioral/ec2/check_op_contract_describe_internet_gateways.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeIpamByoasn", "deployments": [], "key": "ec2/op-contract-describeIpamByoasn", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIpamByoasn"], "path": "behavioral/ec2/check_op_contract_describe_ipam_byoasn.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeIpamExternalResourceVerificationTokens", "deployments": [], "key": "ec2/op-contract-describeIpamExternalResourceVerificationTokens", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamExternalResourceVerificationToken", "ec2:DeleteIpam", "ec2:DeleteIpamExternalResourceVerificationToken", "ec2:DescribeIpamExternalResourceVerificationTokens"], "path": "behavioral/ec2/check_op_contract_describe_ipam_external_resource_verification_tokens.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeIpamInternetRegistryAssociations", "deployments": [], "key": "ec2/op-contract-describeIpamInternetRegistryAssociations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpamInternetRegistryAssociations"], "path": "behavioral/ec2/check_op_contract_describe_ipam_internet_registry_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeIpamPolicies", "deployments": [], "key": "ec2/op-contract-describeIpamPolicies", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:DescribeIpamPolicies"], "path": "behavioral/ec2/check_op_contract_describe_ipam_policies.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeIpamPoolAllocations", "deployments": [], "key": "ec2/op-contract-describeIpamPoolAllocations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateIpamPoolCidr", "ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:CreateIpamScope", "ec2:DeleteIpam", "ec2:DescribeIpamPoolAllocations", "ec2:DescribeIpamPools", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr", "ec2:ReleaseIpamPoolAllocation"], "path": "behavioral/ec2/check_op_contract_describe_ipam_pool_allocations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeIpamPools", "deployments": [], "key": "ec2/op-contract-describeIpamPools", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:CreateIpamScope", "ec2:DeleteIpam", "ec2:DescribeIpamPools"], "path": "behavioral/ec2/check_op_contract_describe_ipam_pools.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-prefix-list-resolver-targets", "deployments": [], "key": "ec2/op-contract-describe-ipam-prefix-list-resolver-targets", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPrefixListResolver", "ec2:CreateIpamPrefixListResolverTarget", "ec2:CreateManagedPrefixList", "ec2:DeleteIpam", "ec2:DeleteIpamPrefixListResolver", "ec2:DeleteIpamPrefixListResolverTarget", "ec2:DeleteManagedPrefixList", "ec2:DescribeIpamPrefixListResolverTargets", "ec2:DescribeIpamPrefixListResolvers", "ec2:DescribeIpams", "ec2:DescribeManagedPrefixLists"], "path": "behavioral/ec2/check_op_contract_describe_ipam_prefix_list_resolver_targets.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-prefix-list-resolver-targets-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-ipam-prefix-list-resolver-targets-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIpamPrefixListResolverTargets"], "path": "behavioral/ec2/check_op_contract_describe_ipam_prefix_list_resolver_targets_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-prefix-list-resolvers", "deployments": [], "key": "ec2/op-contract-describe-ipam-prefix-list-resolvers", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeIpamPrefixListResolvers"], "path": "behavioral/ec2/check_op_contract_describe_ipam_prefix_list_resolvers.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-prefix-list-resolvers-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-ipam-prefix-list-resolvers-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIpamPrefixListResolvers"], "path": "behavioral/ec2/check_op_contract_describe_ipam_prefix_list_resolvers_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-resource-discoveries", "deployments": [], "key": "ec2/op-contract-describe-ipam-resource-discoveries", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpamResourceDiscovery", "ec2:DeleteIpamResourceDiscovery", "ec2:DescribeIpamResourceDiscoveries"], "path": "behavioral/ec2/check_op_contract_describe_ipam_resource_discoveries.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-resource-discoveries-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-ipam-resource-discoveries-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpamResourceDiscoveries"], "path": "behavioral/ec2/check_op_contract_describe_ipam_resource_discoveries_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-resource-discovery-associations", "deployments": [], "key": "ec2/op-contract-describe-ipam-resource-discovery-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpamResourceDiscoveryAssociations", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_op_contract_describe_ipam_resource_discovery_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-resource-discovery-associations-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-ipam-resource-discovery-associations-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpamResourceDiscoveries", "ec2:DescribeIpamResourceDiscoveryAssociations"], "path": "behavioral/ec2/check_op_contract_describe_ipam_resource_discovery_associations_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-scopes", "deployments": [], "key": "ec2/op-contract-describe-ipam-scopes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpamScopes"], "path": "behavioral/ec2/check_op_contract_describe_ipam_scopes.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipam-scopes-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-ipam-scopes-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpamScopes"], "path": "behavioral/ec2/check_op_contract_describe_ipam_scopes_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipams", "deployments": [], "key": "ec2/op-contract-describe-ipams", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_op_contract_describe_ipams.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipams-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-ipams-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpams"], "path": "behavioral/ec2/check_op_contract_describe_ipams_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipv6-pools", "deployments": [], "key": "ec2/op-contract-describe-ipv6-pools", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeIpv6Pools"], "path": "behavioral/ec2/check_op_contract_describe_ipv6_pools.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-ipv6-pools-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-ipv6-pools-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIpv6Pools"], "path": "behavioral/ec2/check_op_contract_describe_ipv6_pools_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-key-pairs", "deployments": [], "key": "ec2/op-contract-describe-key-pairs", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateKeyPair", "ec2:DeleteKeyPair", "ec2:DescribeKeyPairs"], "path": "behavioral/ec2/check_op_contract_describe_key_pairs.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-key-pairs-not-found-rejected-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-key-pairs-not-found-rejected-superseded-stub", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateKeyPair", "ec2:DeleteKeyPair", "ec2:DescribeKeyPairs"], "path": "behavioral/ec2/check_op_contract_describe_key_pairs_not_found_rejected_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-launch-template-versions", "deployments": [], "key": "ec2/op-contract-describe-launch-template-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplateVersions"], "path": "behavioral/ec2/check_op_contract_describe_launch_template_versions.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-launch-template-versions-not-found-rejected-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-launch-template-versions-not-found-rejected-superseded-stub", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplateVersions"], "path": "behavioral/ec2/check_op_contract_describe_launch_template_versions_not_found_rejected_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-launch-templates", "deployments": [], "key": "ec2/op-contract-describe-launch-templates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplates"], "path": "behavioral/ec2/check_op_contract_describe_launch_templates.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-launch-templates-not-found-rejected-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-launch-templates-not-found-rejected-superseded-stub", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplates"], "path": "behavioral/ec2/check_op_contract_describe_launch_templates_not_found_rejected_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-route-table-virtual-interface-group-associations", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-route-table-virtual-interface-group-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_route_table_virtual_interface_group_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-route-table-virtual-interface-group-associations-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-route-table-virtual-interface-group-associations-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_route_table_virtual_interface_group_associations_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-route-table-vpc-associations", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-route-table-vpc-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayRouteTableVpcAssociations"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_route_table_vpc_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-route-table-vpc-associations-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-route-table-vpc-associations-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayRouteTableVpcAssociations"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_route_table_vpc_associations_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-route-tables", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-route-tables", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayRouteTables"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_route_tables.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-route-tables-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-route-tables-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayRouteTables"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_route_tables_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-virtual-interface-groups", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-virtual-interface-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayVirtualInterfaceGroups"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_virtual_interface_groups.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-virtual-interface-groups-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-virtual-interface-groups-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayVirtualInterfaceGroups"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_virtual_interface_groups_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-virtual-interfaces", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-virtual-interfaces", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayVirtualInterfaces"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_virtual_interfaces.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-local-gateway-virtual-interfaces-superseded-stub", "deployments": [], "key": "ec2/op-contract-describe-local-gateway-virtual-interfaces-superseded-stub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeLocalGatewayVirtualInterfaces"], "path": "behavioral/ec2/check_op_contract_describe_local_gateway_virtual_interfaces_superseded_stub.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-outpost-lags", "deployments": [], "key": "ec2/op-contract-describe-outpost-lags", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeOutpostLags"], "path": "behavioral/ec2/check_op_contract_describe_outpost_lags.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-placement-groups", "deployments": [], "key": "ec2/op-contract-describe-placement-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreatePlacementGroup", "ec2:DeletePlacementGroup", "ec2:DescribePlacementGroups"], "path": "behavioral/ec2/check_op_contract_describe_placement_groups.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-prefix-lists", "deployments": [], "key": "ec2/op-contract-describe-prefix-lists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribePrefixLists"], "path": "behavioral/ec2/check_op_contract_describe_prefix_lists.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-principal-id-format", "deployments": [], "key": "ec2/op-contract-describe-principal-id-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribePrincipalIdFormat"], "path": "behavioral/ec2/check_op_contract_describe_principal_id_format.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-public-ipv4-pools", "deployments": [], "key": "ec2/op-contract-describe-public-ipv4-pools", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreatePublicIpv4Pool", "ec2:DeletePublicIpv4Pool", "ec2:DescribePublicIpv4Pools"], "path": "behavioral/ec2/check_op_contract_describe_public_ipv4_pools.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-regions", "deployments": [], "key": "ec2/op-contract-describe-regions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeRegions"], "path": "behavioral/ec2/check_op_contract_describe_regions.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-replace-root-volume-tasks", "deployments": [], "key": "ec2/op-contract-describe-replace-root-volume-tasks", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeReplaceRootVolumeTasks"], "path": "behavioral/ec2/check_op_contract_describe_replace_root_volume_tasks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-reserved-instances", "deployments": [], "key": "ec2/op-contract-describe-reserved-instances", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeReservedInstances"], "path": "behavioral/ec2/check_op_contract_describe_reserved_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-reserved-instances-modifications", "deployments": [], "key": "ec2/op-contract-describe-reserved-instances-modifications", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeReservedInstancesModifications"], "path": "behavioral/ec2/check_op_contract_describe_reserved_instances_modifications.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-route-server-endpoints", "deployments": [], "key": "ec2/op-contract-describe-route-server-endpoints", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeRouteServerEndpoints"], "path": "behavioral/ec2/check_op_contract_describe_route_server_endpoints.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-route-server-peers", "deployments": [], "key": "ec2/op-contract-describe-route-server-peers", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeRouteServerPeers"], "path": "behavioral/ec2/check_op_contract_describe_route_server_peers.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-route-servers", "deployments": [], "key": "ec2/op-contract-describe-route-servers", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeRouteServers"], "path": "behavioral/ec2/check_op_contract_describe_route_servers.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-route-tables", "deployments": [], "key": "ec2/op-contract-describe-route-tables", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeRouteTables"], "path": "behavioral/ec2/check_op_contract_describe_route_tables.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeScheduledInstances", "deployments": [], "key": "ec2/op-contract-describeScheduledInstances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeScheduledInstances"], "path": "behavioral/ec2/check_op_contract_describe_scheduled_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSecondaryInterfaces", "deployments": [], "key": "ec2/op-contract-describeSecondaryInterfaces", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecondaryInterfaces"], "path": "behavioral/ec2/check_op_contract_describe_secondary_interfaces.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSecondaryNetworks", "deployments": [], "key": "ec2/op-contract-describeSecondaryNetworks", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecondaryNetworks"], "path": "behavioral/ec2/check_op_contract_describe_secondary_networks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSecondarySubnets", "deployments": [], "key": "ec2/op-contract-describeSecondarySubnets", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecondarySubnets"], "path": "behavioral/ec2/check_op_contract_describe_secondary_subnets.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSecurityGroupReferences", "deployments": [], "key": "ec2/op-contract-describeSecurityGroupReferences", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupReferences", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_describe_security_group_references.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSecurityGroupRules", "deployments": [], "key": "ec2/op-contract-describeSecurityGroupRules", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_describe_security_group_rules.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSecurityGroupVpcAssociations", "deployments": [], "key": "ec2/op-contract-describeSecurityGroupVpcAssociations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateSecurityGroupVpc", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupVpcAssociations", "ec2:DescribeVpcs", "ec2:DisassociateSecurityGroupVpc"], "path": "behavioral/ec2/check_op_contract_describe_security_group_vpc_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSecurityGroups", "deployments": [], "key": "ec2/op-contract-describeSecurityGroups", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_describe_security_groups.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeServiceLinkVirtualInterfaces", "deployments": [], "key": "ec2/op-contract-describeServiceLinkVirtualInterfaces", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeServiceLinkVirtualInterfaces"], "path": "behavioral/ec2/check_op_contract_describe_service_link_virtual_interfaces.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSnapshotAttribute", "deployments": [], "key": "ec2/op-contract-describeSnapshotAttribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshotAttribute", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_op_contract_describe_snapshot_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSnapshotTierStatus", "deployments": [], "key": "ec2/op-contract-describeSnapshotTierStatus", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshotTierStatus", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ModifySnapshotTier"], "path": "behavioral/ec2/check_op_contract_describe_snapshot_tier_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSnapshots", "deployments": [], "key": "ec2/op-contract-describeSnapshots", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_op_contract_describe_snapshots.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSpotDatafeedSubscription", "deployments": [], "key": "ec2/op-contract-describeSpotDatafeedSubscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSpotDatafeedSubscription", "ec2:DeleteSpotDatafeedSubscription", "ec2:DescribeSpotDatafeedSubscription", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketAcl", "s3:PutBucketOwnershipControls", "s3:PutBucketTagging"], "path": "behavioral/ec2/check_op_contract_describe_spot_datafeed_subscription.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeSpotFleetInstances", "deployments": [], "key": "ec2/op-contract-describeSpotFleetInstances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelSpotFleetRequests", "ec2:DescribeImages", "ec2:DescribeSpotFleetInstances", "ec2:DescribeSubnets", "ec2:RequestSpotFleet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ec2/check_op_contract_describe_spot_fleet_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-spot-fleet-request-history", "deployments": [], "key": "ec2/op-contract-describe-spot-fleet-request-history", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelSpotFleetRequests", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeImages", "ec2:DescribeSpotFleetRequestHistory", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RequestSpotFleet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ec2/check_op_contract_describe_spot_fleet_request_history.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-spot-fleet-requests", "deployments": [], "key": "ec2/op-contract-describe-spot-fleet-requests", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelSpotFleetRequests", "ec2:DescribeImages", "ec2:DescribeSpotFleetRequests", "ec2:DescribeSubnets", "ec2:RequestSpotFleet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ec2/check_op_contract_describe_spot_fleet_requests.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-spot-instance-requests", "deployments": [], "key": "ec2/op-contract-describe-spot-instance-requests", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelSpotInstanceRequests", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstances", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RequestSpotInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_op_contract_describe_spot_instance_requests.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-spot-price-history", "deployments": [], "key": "ec2/op-contract-describe-spot-price-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSpotPriceHistory"], "path": "behavioral/ec2/check_op_contract_describe_spot_price_history.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-stale-security-groups-notfound-rejected", "deployments": [], "key": "ec2/op-contract-describe-stale-security-groups-notfound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeStaleSecurityGroups"], "path": "behavioral/ec2/check_op_contract_describe_stale_security_groups_notfound_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-store-image-tasks", "deployments": [], "key": "ec2/op-contract-describe-store-image-tasks", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeStoreImageTasks"], "path": "behavioral/ec2/check_op_contract_describe_store_image_tasks.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-subnets-notfound-rejected", "deployments": [], "key": "ec2/op-contract-describe-subnets-notfound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets"], "path": "behavioral/ec2/check_op_contract_describe_subnets_notfound_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-tags", "deployments": [], "key": "ec2/op-contract-describe-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeTags"], "path": "behavioral/ec2/check_op_contract_describe_tags.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-traffic-mirror-filter-rules", "deployments": [], "key": "ec2/op-contract-describe-traffic-mirror-filter-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTrafficMirrorFilter", "ec2:CreateTrafficMirrorFilterRule", "ec2:DeleteTrafficMirrorFilter", "ec2:DeleteTrafficMirrorFilterRule", "ec2:DescribeTrafficMirrorFilterRules"], "path": "behavioral/ec2/check_op_contract_describe_traffic_mirror_filter_rules.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-traffic-mirror-filters-notfound-rejected", "deployments": [], "key": "ec2/op-contract-describe-traffic-mirror-filters-notfound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTrafficMirrorFilter", "ec2:DeleteTrafficMirrorFilter", "ec2:DescribeTrafficMirrorFilters"], "path": "behavioral/ec2/check_op_contract_describe_traffic_mirror_filters_notfound_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-traffic-mirror-sessions", "deployments": [], "key": "ec2/op-contract-describe-traffic-mirror-sessions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeTrafficMirrorSessions"], "path": "behavioral/ec2/check_op_contract_describe_traffic_mirror_sessions.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-traffic-mirror-targets", "deployments": [], "key": "ec2/op-contract-describe-traffic-mirror-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTrafficMirrorTarget", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteTrafficMirrorTarget", "ec2:DeleteVpc", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeTrafficMirrorTargets", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_describe_traffic_mirror_targets.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-transit-gateway-attachments", "deployments": [], "key": "ec2/op-contract-describe-transit-gateway-attachments", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeTransitGatewayAttachments"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_attachments.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-transit-gateway-connect-peers", "deployments": [], "key": "ec2/op-contract-describe-transit-gateway-connect-peers", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeTransitGatewayConnectPeers"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_connect_peers.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-transit-gateway-connects", "deployments": [], "key": "ec2/op-contract-describe-transit-gateway-connects", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeTransitGatewayConnects"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_connects.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTransitGatewayMeteringPolicies", "deployments": [], "key": "ec2/op-contract-describeTransitGatewayMeteringPolicies", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeTransitGatewayMeteringPolicies"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_metering_policies.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTransitGatewayMulticastDomains", "deployments": [], "key": "ec2/op-contract-describeTransitGatewayMulticastDomains", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGateways", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_multicast_domains.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTransitGatewayPeeringAttachments", "deployments": [], "key": "ec2/op-contract-describeTransitGatewayPeeringAttachments", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeTransitGatewayPeeringAttachments"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_peering_attachments.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTransitGatewayPolicyTables", "deployments": [], "key": "ec2/op-contract-describeTransitGatewayPolicyTables", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeTransitGatewayPolicyTables"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_policy_tables.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTransitGatewayRouteTableAnnouncements", "deployments": [], "key": "ec2/op-contract-describeTransitGatewayRouteTableAnnouncements", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeTransitGatewayRouteTableAnnouncements"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_route_table_announcements.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTransitGatewayRouteTables", "deployments": [], "key": "ec2/op-contract-describeTransitGatewayRouteTables", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeTransitGatewayRouteTables"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_route_tables.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTransitGatewayVpcAttachments", "deployments": [], "key": "ec2/op-contract-describeTransitGatewayVpcAttachments", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeTransitGatewayVpcAttachments"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateway_vpc_attachments.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTransitGateways", "deployments": [], "key": "ec2/op-contract-describeTransitGateways", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeTransitGateways"], "path": "behavioral/ec2/check_op_contract_describe_transit_gateways.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeTrunkInterfaceAssociations", "deployments": [], "key": "ec2/op-contract-describeTrunkInterfaceAssociations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeTrunkInterfaceAssociations", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_describe_trunk_interface_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeVerifiedAccessEndpoints", "deployments": [], "key": "ec2/op-contract-describeVerifiedAccessEndpoints", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVerifiedAccessEndpoints"], "path": "behavioral/ec2/check_op_contract_describe_verified_access_endpoints.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeVerifiedAccessGroups", "deployments": [], "key": "ec2/op-contract-describeVerifiedAccessGroups", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVerifiedAccessGroups"], "path": "behavioral/ec2/check_op_contract_describe_verified_access_groups.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeVerifiedAccessInstanceLoggingConfigurations", "deployments": [], "key": "ec2/op-contract-describeVerifiedAccessInstanceLoggingConfigurations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVerifiedAccessInstanceLoggingConfigurations"], "path": "behavioral/ec2/check_op_contract_describe_verified_access_instance_logging_configurations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeVerifiedAccessInstances", "deployments": [], "key": "ec2/op-contract-describeVerifiedAccessInstances", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVerifiedAccessInstances"], "path": "behavioral/ec2/check_op_contract_describe_verified_access_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeVerifiedAccessTrustProviders", "deployments": [], "key": "ec2/op-contract-describeVerifiedAccessTrustProviders", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVerifiedAccessTrustProviders"], "path": "behavioral/ec2/check_op_contract_describe_verified_access_trust_providers.py", "service": "ec2"} {"check_id": "ec2.op-contract-describeVolumeAttribute", "deployments": [], "key": "ec2/op-contract-describeVolumeAttribute", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumeAttribute", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_op_contract_describe_volume_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-volume-status", "deployments": [], "key": "ec2/op-contract-describe-volume-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumeStatus", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_op_contract_describe_volume_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-volumes", "deployments": [], "key": "ec2/op-contract-describe-volumes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes"], "path": "behavioral/ec2/check_op_contract_describe_volumes.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-volumes-modifications", "deployments": [], "key": "ec2/op-contract-describe-volumes-modifications", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:ModifyVolume"], "path": "behavioral/ec2/check_op_contract_describe_volumes_modifications.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-attribute", "deployments": [], "key": "ec2/op-contract-describe-vpc-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcAttribute"], "path": "behavioral/ec2/check_op_contract_describe_vpc_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-block-public-access-exclusions", "deployments": [], "key": "ec2/op-contract-describe-vpc-block-public-access-exclusions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcBlockPublicAccessExclusion", "ec2:DeleteVpc", "ec2:DeleteVpcBlockPublicAccessExclusion", "ec2:DescribeVpcBlockPublicAccessExclusions"], "path": "behavioral/ec2/check_op_contract_describe_vpc_block_public_access_exclusions.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-block-public-access-options", "deployments": [], "key": "ec2/op-contract-describe-vpc-block-public-access-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcBlockPublicAccessOptions", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_describe_vpc_block_public_access_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-encryption-controls", "deployments": [], "key": "ec2/op-contract-describe-vpc-encryption-controls", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcEncryptionControl", "ec2:DeleteVpc", "ec2:DeleteVpcEncryptionControl", "ec2:DescribeVpcEncryptionControls"], "path": "behavioral/ec2/check_op_contract_describe_vpc_encryption_controls.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-endpoint-associations", "deployments": [], "key": "ec2/op-contract-describe-vpc-endpoint-associations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVpcEndpointAssociations"], "path": "behavioral/ec2/check_op_contract_describe_vpc_endpoint_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-endpoint-connection-notifications", "deployments": [], "key": "ec2/op-contract-describe-vpc-endpoint-connection-notifications", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVpcEndpointConnectionNotifications"], "path": "behavioral/ec2/check_op_contract_describe_vpc_endpoint_connection_notifications.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-endpoint-connections", "deployments": [], "key": "ec2/op-contract-describe-vpc-endpoint-connections", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcEndpointConnections"], "path": "behavioral/ec2/check_op_contract_describe_vpc_endpoint_connections.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-endpoint-service-configurations", "deployments": [], "key": "ec2/op-contract-describe-vpc-endpoint-service-configurations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServiceConfigurations", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_describe_vpc_endpoint_service_configurations.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-endpoint-service-permissions", "deployments": [], "key": "ec2/op-contract-describe-vpc-endpoint-service-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServicePermissions", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_describe_vpc_endpoint_service_permissions.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-endpoint-services", "deployments": [], "key": "ec2/op-contract-describe-vpc-endpoint-services", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcEndpointServices"], "path": "behavioral/ec2/check_op_contract_describe_vpc_endpoint_services.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-endpoints", "deployments": [], "key": "ec2/op-contract-describe-vpc-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeVpcEndpoints"], "path": "behavioral/ec2/check_op_contract_describe_vpc_endpoints.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpc-peering-connections", "deployments": [], "key": "ec2/op-contract-describe-vpc-peering-connections", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_describe_vpc_peering_connections.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpcs", "deployments": [], "key": "ec2/op-contract-describe-vpcs", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_contract_describe_vpcs.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpn-concentrators", "deployments": [], "key": "ec2/op-contract-describe-vpn-concentrators", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateVpnConcentrator", "ec2:DeleteTransitGateway", "ec2:DeleteVpnConcentrator", "ec2:DescribeTransitGateways", "ec2:DescribeVpnConcentrators"], "path": "behavioral/ec2/check_op_contract_describe_vpn_concentrators.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpn-connections", "deployments": [], "key": "ec2/op-contract-describe-vpn-connections", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_op_contract_describe_vpn_connections.py", "service": "ec2"} {"check_id": "ec2.op-contract-describe-vpn-gateways", "deployments": [], "key": "ec2/op-contract-describe-vpn-gateways", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpnGateway", "ec2:DeleteVpnGateway", "ec2:DescribeVpnGateways"], "path": "behavioral/ec2/check_op_contract_describe_vpn_gateways.py", "service": "ec2"} {"check_id": "ec2.op-contract-detach-image-watermark", "deployments": [], "key": "ec2/op-contract-detach-image-watermark", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DetachImageWatermark", "ec2:RegisterImage", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_detach_image_watermark.py", "service": "ec2"} {"check_id": "ec2.op-contract-detach-internet-gateway", "deployments": [], "key": "ec2/op-contract-detach-internet-gateway", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteVpc", "ec2:DescribeInternetGateways", "ec2:DetachInternetGateway"], "path": "behavioral/ec2/check_op_contract_detach_internet_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-detach-network-interface", "deployments": [], "key": "ec2/op-contract-detach-network-interface", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DetachNetworkInterface", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_detach_network_interface.py", "service": "ec2"} {"check_id": "ec2.op-contract-detach-verified-access-trust-provider", "deployments": [], "key": "ec2/op-contract-detach-verified-access-trust-provider", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeVerifiedAccessInstances", "ec2:DetachVerifiedAccessTrustProvider"], "path": "behavioral/ec2/check_op_contract_detach_verified_access_trust_provider.py", "service": "ec2"} {"check_id": "ec2.op-contract-detach-volume", "deployments": [], "key": "ec2/op-contract-detach-volume", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVolume", "ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_detach_volume.py", "service": "ec2"} {"check_id": "ec2.op-contract-detach-vpn-gateway", "deployments": [], "key": "ec2/op-contract-detach-vpn-gateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVpnGateway", "ec2:CreateVpc", "ec2:CreateVpnGateway", "ec2:DeleteVpc", "ec2:DeleteVpnGateway", "ec2:DescribeVpnGateways", "ec2:DetachVpnGateway"], "path": "behavioral/ec2/check_op_contract_detach_vpn_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-address-transfer", "deployments": [], "key": "ec2/op-contract-disable-address-transfer", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddressTransfers", "ec2:DisableAddressTransfer", "ec2:EnableAddressTransfer", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_disable_address_transfer.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-allowed-images-settings", "deployments": [], "key": "ec2/op-contract-disable-allowed-images-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableAllowedImagesSettings", "ec2:EnableAllowedImagesSettings", "ec2:GetAllowedImagesSettings"], "path": "behavioral/ec2/check_op_contract_disable_allowed_images_settings.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-application-status-check-suppression", "deployments": [], "key": "ec2/op-contract-disable-application-status-check-suppression", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DisableApplicationStatusCheckSuppression"], "path": "behavioral/ec2/check_op_contract_disable_application_status_check_suppression.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-aws-network-performance-metric-subscription", "deployments": [], "key": "ec2/op-contract-disable-aws-network-performance-metric-subscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAwsNetworkPerformanceMetricSubscriptions", "ec2:DisableAwsNetworkPerformanceMetricSubscription", "ec2:EnableAwsNetworkPerformanceMetricSubscription"], "path": "behavioral/ec2/check_op_contract_disable_aws_network_performance_metric_subscription.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-capacity-manager", "deployments": [], "key": "ec2/op-contract-disable-capacity-manager", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DisableCapacityManager", "ec2:GetCapacityManagerAttributes"], "path": "behavioral/ec2/check_op_contract_disable_capacity_manager.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-ebs-encryption-by-default", "deployments": [], "key": "ec2/op-contract-disable-ebs-encryption-by-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableEbsEncryptionByDefault", "ec2:EnableEbsEncryptionByDefault", "ec2:GetEbsEncryptionByDefault"], "path": "behavioral/ec2/check_op_contract_disable_ebs_encryption_by_default.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-fast-launch", "deployments": [], "key": "ec2/op-contract-disable-fast-launch", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeFastLaunchImages", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableFastLaunch", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_disable_fast_launch.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-fast-snapshot-restores", "deployments": [], "key": "ec2/op-contract-disable-fast-snapshot-restores", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeFastSnapshotRestores", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableFastSnapshotRestores", "ec2:EnableFastSnapshotRestores"], "path": "behavioral/ec2/check_op_contract_disable_fast_snapshot_restores.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-image", "deployments": [], "key": "ec2/op-contract-disable-image", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableImage", "ec2:RegisterImage", "ec2:RunInstances"], "path": "behavioral/ec2/check_op_contract_disable_image.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-image-block-public-access", "deployments": [], "key": "ec2/op-contract-disable-image-block-public-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableImageBlockPublicAccess", "ec2:EnableImageBlockPublicAccess", "ec2:GetImageBlockPublicAccessState"], "path": "behavioral/ec2/check_op_contract_disable_image_block_public_access.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-image-deprecation", "deployments": [], "key": "ec2/op-contract-disable-image-deprecation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableImageDeprecation", "ec2:EnableImageDeprecation", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_disable_image_deprecation.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-image-deregistration-protection", "deployments": [], "key": "ec2/op-contract-disable-image-deregistration-protection", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableImageDeregistrationProtection", "ec2:EnableImageDeregistrationProtection", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_disable_image_deregistration_protection.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-instance-sql-ha-standby-detections", "deployments": [], "key": "ec2/op-contract-disable-instance-sql-ha-standby-detections", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DisableInstanceSqlHaStandbyDetections"], "path": "behavioral/ec2/check_op_contract_disable_instance_sql_ha_standby_detections.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-ipam-policy", "deployments": [], "key": "ec2/op-contract-disable-ipam-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:DisableIpamPolicy", "ec2:EnableIpamPolicy", "ec2:GetEnabledIpamPolicy"], "path": "behavioral/ec2/check_op_contract_disable_ipam_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-route-server-propagation", "deployments": [], "key": "ec2/op-contract-disable-route-server-propagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteTable", "ec2:DeleteRouteTable", "ec2:DisableRouteServerPropagation", "ec2:EnableRouteServerPropagation", "ec2:GetRouteServerAssociations", "ec2:GetRouteServerPropagations"], "path": "behavioral/ec2/check_op_contract_disable_route_server_propagation.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-serial-console-access", "deployments": [], "key": "ec2/op-contract-disable-serial-console-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableSerialConsoleAccess", "ec2:EnableSerialConsoleAccess", "ec2:GetSerialConsoleAccessStatus"], "path": "behavioral/ec2/check_op_contract_disable_serial_console_access.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-snapshot-block-public-access", "deployments": [], "key": "ec2/op-contract-disable-snapshot-block-public-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableSnapshotBlockPublicAccess", "ec2:EnableSnapshotBlockPublicAccess", "ec2:GetSnapshotBlockPublicAccessState"], "path": "behavioral/ec2/check_op_contract_disable_snapshot_block_public_access.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-transit-gateway-route-table-propagation", "deployments": [], "key": "ec2/op-contract-disable-transit-gateway-route-table-propagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisableTransitGatewayRouteTablePropagation", "ec2:EnableTransitGatewayRouteTablePropagation", "ec2:GetTransitGatewayRouteTablePropagations"], "path": "behavioral/ec2/check_op_contract_disable_transit_gateway_route_table_propagation.py", "service": "ec2"} {"check_id": "ec2.op-contract-disable-vgw-route-propagation", "deployments": [], "key": "ec2/op-contract-disable-vgw-route-propagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVpnGateway", "ec2:CreateRouteTable", "ec2:CreateVpc", "ec2:CreateVpnGateway", "ec2:DeleteRouteTable", "ec2:DeleteVpc", "ec2:DeleteVpnGateway", "ec2:DescribeRouteTables", "ec2:DescribeVpnGateways", "ec2:DetachVpnGateway", "ec2:DisableVgwRoutePropagation", "ec2:EnableVgwRoutePropagation"], "path": "behavioral/ec2/check_op_contract_disable_vgw_route_propagation.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-address", "deployments": [], "key": "ec2/op-contract-disassociate-address", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateAddress", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_disassociate_address.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-application-status-check", "deployments": [], "key": "ec2/op-contract-disassociate-application-status-check", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateApplicationStatusCheck", "ec2:CreateApplicationStatusCheck", "ec2:DeleteApplicationStatusCheck", "ec2:DescribeApplicationStatusCheckAssociations", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateApplicationStatusCheck", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_disassociate_application_status_check.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-capacity-reservation-billing-owner", "deployments": [], "key": "ec2/op-contract-disassociate-capacity-reservation-billing-owner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:DisassociateCapacityReservationBillingOwner"], "path": "behavioral/ec2/check_op_contract_disassociate_capacity_reservation_billing_owner.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-client-vpn-target-network", "deployments": [], "key": "ec2/op-contract-disassociate-client-vpn-target-network", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateClientVpnTargetNetwork", "ec2:CreateClientVpnEndpoint", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeAvailabilityZones", "ec2:DescribeClientVpnEndpoints", "ec2:DescribeClientVpnTargetNetworks", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateClientVpnTargetNetwork"], "path": "behavioral/ec2/check_op_contract_disassociate_client_vpn_target_network.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-enclave-certificate-iam-role", "deployments": [], "key": "ec2/op-contract-disassociate-enclave-certificate-iam-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateEnclaveCertificateIamRole", "ec2:DisassociateEnclaveCertificateIamRole", "ec2:GetAssociatedEnclaveCertificateIamRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/ec2/check_op_contract_disassociate_enclave_certificate_iam_role.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-iam-instance-profile", "deployments": [], "key": "ec2/op-contract-disassociate-iam-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateIamInstanceProfile", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DisassociateIamInstanceProfile", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ec2/check_op_contract_disassociate_iam_instance_profile.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-instance-event-window", "deployments": [], "key": "ec2/op-contract-disassociate-instance-event-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateInstanceEventWindow", "ec2:CreateInstanceEventWindow", "ec2:DeleteInstanceEventWindow", "ec2:DescribeInstanceEventWindows", "ec2:DisassociateInstanceEventWindow"], "path": "behavioral/ec2/check_op_contract_disassociate_instance_event_window.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-ipam-byoasn", "deployments": [], "key": "ec2/op-contract-disassociate-ipam-byoasn", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DisassociateIpamByoasn"], "path": "behavioral/ec2/check_op_contract_disassociate_ipam_byoasn.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-ipam-resource-discovery", "deployments": [], "key": "ec2/op-contract-disassociate-ipam-resource-discovery", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateIpamResourceDiscovery", "ec2:CreateIpam", "ec2:CreateIpamResourceDiscovery", "ec2:DeleteIpam", "ec2:DeleteIpamResourceDiscovery", "ec2:DescribeIpamResourceDiscoveries", "ec2:DescribeIpamResourceDiscoveryAssociations", "ec2:DescribeIpams", "ec2:DisassociateIpamResourceDiscovery"], "path": "behavioral/ec2/check_op_contract_disassociate_ipam_resource_discovery.py", "service": "ec2"} {"check_id": "ec2.op-contract-disassociate-nat-gateway-address", "deployments": [], "key": "ec2/op-contract-disassociate-nat-gateway-address", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateNatGatewayAddress", "ec2:CreateNatGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateNatGatewayAddress", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_disassociate_nat_gateway_address.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableFastLaunch", "deployments": [], "key": "ec2/op-contract-enableFastLaunch", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeFastLaunchImages", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:EnableFastLaunch", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_enable_fast_launch.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableFastSnapshotRestores", "deployments": [], "key": "ec2/op-contract-enableFastSnapshotRestores", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeFastSnapshotRestores", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableFastSnapshotRestores", "ec2:EnableFastSnapshotRestores"], "path": "behavioral/ec2/check_op_contract_enable_fast_snapshot_restores.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableImage", "deployments": [], "key": "ec2/op-contract-enableImage", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableImage", "ec2:EnableImage", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_enable_image.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableImageBlockPublicAccess", "deployments": [], "key": "ec2/op-contract-enableImageBlockPublicAccess", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableImageBlockPublicAccess", "ec2:EnableImageBlockPublicAccess", "ec2:GetImageBlockPublicAccessState"], "path": "behavioral/ec2/check_op_contract_enable_image_block_public_access.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableImageDeprecation", "deployments": [], "key": "ec2/op-contract-enableImageDeprecation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableImageDeprecation", "ec2:EnableImageDeprecation", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_enable_image_deprecation.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableImageDeregistrationProtection", "deployments": [], "key": "ec2/op-contract-enableImageDeregistrationProtection", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DisableImageDeregistrationProtection", "ec2:EnableImageDeregistrationProtection", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_enable_image_deregistration_protection.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableInstanceSqlHaStandbyDetections", "deployments": [], "key": "ec2/op-contract-enableInstanceSqlHaStandbyDetections", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:EnableInstanceSqlHaStandbyDetections"], "path": "behavioral/ec2/check_op_contract_enable_instance_sql_ha_standby_detections.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableIpamInternetRegistryAssociation", "deployments": [], "key": "ec2/op-contract-enableIpamInternetRegistryAssociation", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:EnableIpamInternetRegistryAssociation"], "path": "behavioral/ec2/check_op_contract_enable_ipam_internet_registry_association.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableIpamPolicy", "deployments": [], "key": "ec2/op-contract-enableIpamPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:DisableIpamPolicy", "ec2:EnableIpamPolicy"], "path": "behavioral/ec2/check_op_contract_enable_ipam_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableReachabilityAnalyzerOrganizationSharing", "deployments": [], "key": "ec2/op-contract-enableReachabilityAnalyzerOrganizationSharing", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:EnableReachabilityAnalyzerOrganizationSharing"], "path": "behavioral/ec2/check_op_contract_enable_reachability_analyzer_organization_sharing.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableRouteServerPropagation", "deployments": [], "key": "ec2/op-contract-enableRouteServerPropagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteTable", "ec2:CreateVpc", "ec2:DeleteRouteTable", "ec2:DeleteVpc", "ec2:DescribeRouteServers", "ec2:DisableRouteServerPropagation", "ec2:EnableRouteServerPropagation", "ec2:GetRouteServerPropagations"], "path": "behavioral/ec2/check_op_contract_enable_route_server_propagation.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableSerialConsoleAccess", "deployments": [], "key": "ec2/op-contract-enableSerialConsoleAccess", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableSerialConsoleAccess", "ec2:EnableSerialConsoleAccess", "ec2:GetSerialConsoleAccessStatus"], "path": "behavioral/ec2/check_op_contract_enable_serial_console_access.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableSnapshotBlockPublicAccess", "deployments": [], "key": "ec2/op-contract-enableSnapshotBlockPublicAccess", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableSnapshotBlockPublicAccess", "ec2:EnableSnapshotBlockPublicAccess", "ec2:GetSnapshotBlockPublicAccessState"], "path": "behavioral/ec2/check_op_contract_enable_snapshot_block_public_access.py", "service": "ec2"} {"check_id": "ec2.op-contract-enableTransitGatewayRouteTablePropagation", "deployments": [], "key": "ec2/op-contract-enableTransitGatewayRouteTablePropagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DisableTransitGatewayRouteTablePropagation", "ec2:EnableTransitGatewayRouteTablePropagation", "ec2:GetTransitGatewayRouteTablePropagations"], "path": "behavioral/ec2/check_op_contract_enable_transit_gateway_route_table_propagation.py", "service": "ec2"} {"check_id": "ec2.op-contract-enable-vgw-route-propagation", "deployments": [], "key": "ec2/op-contract-enable-vgw-route-propagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVpnGateway", "ec2:CreateRouteTable", "ec2:CreateVpc", "ec2:CreateVpnGateway", "ec2:DeleteRouteTable", "ec2:DeleteVpc", "ec2:DeleteVpnGateway", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DescribeVpnGateways", "ec2:DetachVpnGateway", "ec2:DisableVgwRoutePropagation", "ec2:EnableVgwRoutePropagation"], "path": "behavioral/ec2/check_op_contract_enable_vgw_route_propagation.py", "service": "ec2"} {"check_id": "ec2.op-contract-enable-volume-io", "deployments": [], "key": "ec2/op-contract-enable-volume-io", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:EnableVolumeIO"], "path": "behavioral/ec2/check_op_contract_enable_volume_io.py", "service": "ec2"} {"check_id": "ec2.op-contract-export-client-vpn-client-certificate-revocation-list", "deployments": [], "key": "ec2/op-contract-export-client-vpn-client-certificate-revocation-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnEndpoints", "ec2:ExportClientVpnClientCertificateRevocationList", "ec2:ImportClientVpnClientCertificateRevocationList"], "path": "behavioral/ec2/check_op_contract_export_client_vpn_client_certificate_revocation_list.py", "service": "ec2"} {"check_id": "ec2.op-contract-export-client-vpn-client-configuration", "deployments": [], "key": "ec2/op-contract-export-client-vpn-client-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnEndpoints", "ec2:ExportClientVpnClientConfiguration"], "path": "behavioral/ec2/check_op_contract_export_client_vpn_client_configuration.py", "service": "ec2"} {"check_id": "ec2.op-contract-export-image", "deployments": [], "key": "ec2/op-contract-export-image", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelExportTask", "ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeExportImageTasks", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ExportImage", "ec2:RegisterImage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/ec2/check_op_contract_export_image.py", "service": "ec2"} {"check_id": "ec2.op-contract-export-transit-gateway-routes", "deployments": [], "key": "ec2/op-contract-export-transit-gateway-routes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:DeleteTransitGateway", "ec2:DescribeTransitGateways", "ec2:ExportTransitGatewayRoutes", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/ec2/check_op_contract_export_transit_gateway_routes.py", "service": "ec2"} {"check_id": "ec2.op-contract-export-verified-access-instance-client-configuration", "deployments": [], "key": "ec2/op-contract-export-verified-access-instance-client-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateSecurityGroup", "ec2:CreateVerifiedAccessEndpoint", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteSecurityGroup", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVerifiedAccessEndpoints", "ec2:DescribeVerifiedAccessInstances", "ec2:DescribeVpcs", "ec2:DetachVerifiedAccessTrustProvider", "ec2:ExportVerifiedAccessInstanceClientConfiguration", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_export_verified_access_instance_client_configuration.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-active-vpn-tunnel-status", "deployments": [], "key": "ec2/op-contract-get-active-vpn-tunnel-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:GetActiveVpnTunnelStatus"], "path": "behavioral/ec2/check_op_contract_get_active_vpn_tunnel_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-allowed-images-settings", "deployments": [], "key": "ec2/op-contract-get-allowed-images-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetAllowedImagesSettings"], "path": "behavioral/ec2/check_op_contract_get_allowed_images_settings.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-associated-enclave-certificate-iam-roles", "deployments": [], "key": "ec2/op-contract-get-associated-enclave-certificate-iam-roles", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateEnclaveCertificateIamRole", "ec2:DisassociateEnclaveCertificateIamRole", "ec2:GetAssociatedEnclaveCertificateIamRoles", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/ec2/check_op_contract_get_associated_enclave_certificate_iam_roles.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-associated-ipv6-pool-cidrs", "deployments": [], "key": "ec2/op-contract-get-associated-ipv6-pool-cidrs", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeIpv6Pools", "ec2:GetAssociatedIpv6PoolCidrs"], "path": "behavioral/ec2/check_op_contract_get_associated_ipv6_pool_cidrs.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-aws-network-performance-data", "deployments": [], "key": "ec2/op-contract-get-aws-network-performance-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetAwsNetworkPerformanceData"], "path": "behavioral/ec2/check_op_contract_get_aws_network_performance_data.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-capacity-manager-attributes", "deployments": [], "key": "ec2/op-contract-get-capacity-manager-attributes", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes"], "path": "behavioral/ec2/check_op_contract_get_capacity_manager_attributes.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-capacity-manager-metric-data-dup", "deployments": [], "key": "ec2/op-contract-get-capacity-manager-metric-data-dup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "ec2:GetCapacityManagerMetricData"], "path": "behavioral/ec2/check_op_contract_get_capacity_manager_metric_data_dup.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-capacity-manager-metric-dimensions-dup", "deployments": [], "key": "ec2/op-contract-get-capacity-manager-metric-dimensions-dup", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetCapacityManagerMetricDimensions"], "path": "behavioral/ec2/check_op_contract_get_capacity_manager_metric_dimensions_dup.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-capacity-manager-monitored-tag-keys-dup", "deployments": [], "key": "ec2/op-contract-get-capacity-manager-monitored-tag-keys-dup", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "ec2:GetCapacityManagerMonitoredTagKeys"], "path": "behavioral/ec2/check_op_contract_get_capacity_manager_monitored_tag_keys_dup.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-capacity-reservation-usage-dup", "deployments": [], "key": "ec2/op-contract-get-capacity-reservation-usage-dup", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetCapacityReservationUsage"], "path": "behavioral/ec2/check_op_contract_get_capacity_reservation_usage_dup.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ebs-default-kms-key-id-dup", "deployments": [], "key": "ec2/op-contract-get-ebs-default-kms-key-id-dup", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetEbsDefaultKmsKeyId", "ec2:ModifyEbsDefaultKmsKeyId", "ec2:ResetEbsDefaultKmsKeyId", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/ec2/check_op_contract_get_ebs_default_kms_key_id_dup.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-groups-for-capacity-reservation-dup", "deployments": [], "key": "ec2/op-contract-get-groups-for-capacity-reservation-dup", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetGroupsForCapacityReservation"], "path": "behavioral/ec2/check_op_contract_get_groups_for_capacity_reservation_dup.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-image-ancestry", "deployments": [], "key": "ec2/op-contract-get-image-ancestry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:GetImageAncestry"], "path": "behavioral/ec2/check_op_contract_get_image_ancestry.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-image-block-public-access-state", "deployments": [], "key": "ec2/op-contract-get-image-block-public-access-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetImageBlockPublicAccessState"], "path": "behavioral/ec2/check_op_contract_get_image_block_public_access_state.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-instance-metadata-defaults", "deployments": [], "key": "ec2/op-contract-get-instance-metadata-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetInstanceMetadataDefaults", "ec2:ModifyInstanceMetadataDefaults"], "path": "behavioral/ec2/check_op_contract_get_instance_metadata_defaults.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-instance-tpm-ek-pub", "deployments": [], "key": "ec2/op-contract-get-instance-tpm-ek-pub", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetInstanceTpmEkPub", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_get_instance_tpm_ek_pub.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-instance-types-from-instance-requirements", "deployments": [], "key": "ec2/op-contract-get-instance-types-from-instance-requirements", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstanceTypes", "ec2:GetInstanceTypesFromInstanceRequirements"], "path": "behavioral/ec2/check_op_contract_get_instance_types_from_instance_requirements.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-instance-uefi-data", "deployments": [], "key": "ec2/op-contract-get-instance-uefi-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetInstanceUefiData", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_get_instance_uefi_data.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-discovered-accounts", "deployments": [], "key": "ec2/op-contract-get-ipam-discovered-accounts", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteVpc", "ec2:DescribeIpams", "ec2:DescribeVpcs", "ec2:GetIpamDiscoveredAccounts", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_get_ipam_discovered_accounts.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-discovered-public-addresses", "deployments": [], "key": "ec2/op-contract-get-ipam-discovered-public-addresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpams", "ec2:GetIpamDiscoveredPublicAddresses", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_get_ipam_discovered_public_addresses.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-discovered-resource-cidrs", "deployments": [], "key": "ec2/op-contract-get-ipam-discovered-resource-cidrs", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteVpc", "ec2:DescribeIpams", "ec2:GetIpamDiscoveredResourceCidrs"], "path": "behavioral/ec2/check_op_contract_get_ipam_discovered_resource_cidrs.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-discovered-routes", "deployments": [], "key": "ec2/op-contract-get-ipam-discovered-routes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpams", "ec2:GetIpamDiscoveredRoutes"], "path": "behavioral/ec2/check_op_contract_get_ipam_discovered_routes.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-internet-registry-association-asns", "deployments": [], "key": "ec2/op-contract-get-ipam-internet-registry-association-asns", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamInternetRegistryAssociation", "ec2:DeleteIpam", "ec2:DeleteIpamInternetRegistryAssociation", "ec2:DescribeIpams", "ec2:GetIpamInternetRegistryAssociationAsns"], "path": "behavioral/ec2/check_op_contract_get_ipam_internet_registry_association_asns.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-internet-registry-association-cidrs", "deployments": [], "key": "ec2/op-contract-get-ipam-internet-registry-association-cidrs", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamInternetRegistryAssociation", "ec2:DeleteIpam", "ec2:DeleteIpamInternetRegistryAssociation", "ec2:DescribeIpams", "ec2:GetIpamInternetRegistryAssociationCidrs"], "path": "behavioral/ec2/check_op_contract_get_ipam_internet_registry_association_cidrs.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-policy-allocation-rules", "deployments": [], "key": "ec2/op-contract-get-ipam-policy-allocation-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:GetIpamPolicyAllocationRules"], "path": "behavioral/ec2/check_op_contract_get_ipam_policy_allocation_rules.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-policy-organization-targets", "deployments": [], "key": "ec2/op-contract-get-ipam-policy-organization-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:GetIpamPolicyOrganizationTargets"], "path": "behavioral/ec2/check_op_contract_get_ipam_policy_organization_targets.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-pool-allocations", "deployments": [], "key": "ec2/op-contract-get-ipam-pool-allocations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateIpamPoolCidr", "ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DescribeIpamPools", "ec2:GetIpamPoolAllocations", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr"], "path": "behavioral/ec2/check_op_contract_get_ipam_pool_allocations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-pool-cidrs", "deployments": [], "key": "ec2/op-contract-get-ipam-pool-cidrs", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DescribeIpamPools", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr"], "path": "behavioral/ec2/check_op_contract_get_ipam_pool_cidrs.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-prefix-list-resolver-rules", "deployments": [], "key": "ec2/op-contract-get-ipam-prefix-list-resolver-rules", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetIpamPrefixListResolverRules"], "path": "behavioral/ec2/check_op_contract_get_ipam_prefix_list_resolver_rules.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-prefix-list-resolver-version-entries", "deployments": [], "key": "ec2/op-contract-get-ipam-prefix-list-resolver-version-entries", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetIpamPrefixListResolverVersionEntries"], "path": "behavioral/ec2/check_op_contract_get_ipam_prefix_list_resolver_version_entries.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-prefix-list-resolver-versions", "deployments": [], "key": "ec2/op-contract-get-ipam-prefix-list-resolver-versions", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetIpamPrefixListResolverVersions"], "path": "behavioral/ec2/check_op_contract_get_ipam_prefix_list_resolver_versions.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-resource-cidrs", "deployments": [], "key": "ec2/op-contract-get-ipam-resource-cidrs", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteVpc", "ec2:GetIpamResourceCidrs"], "path": "behavioral/ec2/check_op_contract_get_ipam_resource_cidrs.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-route-origin-authorizations", "deployments": [], "key": "ec2/op-contract-get-ipam-route-origin-authorizations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetIpamRouteOriginAuthorizations"], "path": "behavioral/ec2/check_op_contract_get_ipam_route_origin_authorizations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-route-protection-findings-invalid-ipam-rejected", "deployments": [], "key": "ec2/op-contract-get-ipam-route-protection-findings-invalid-ipam-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:GetIpamRouteProtectionFindings"], "path": "behavioral/ec2/check_op_contract_get_ipam_route_protection_findings_invalid_ipam_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-routing-policy-registration-deltas", "deployments": [], "key": "ec2/op-contract-get-ipam-routing-policy-registration-deltas", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetIpamRoutingPolicyRegistrationDeltas"], "path": "behavioral/ec2/check_op_contract_get_ipam_routing_policy_registration_deltas.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-ipam-routing-policy-registrations", "deployments": [], "key": "ec2/op-contract-get-ipam-routing-policy-registrations", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetIpamRoutingPolicyRegistrations"], "path": "behavioral/ec2/check_op_contract_get_ipam_routing_policy_registrations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-launch-template-data-invalid-instance-rejected", "deployments": [], "key": "ec2/op-contract-get-launch-template-data-invalid-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetLaunchTemplateData", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_get_launch_template_data_invalid_instance_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-managed-prefix-list-associations", "deployments": [], "key": "ec2/op-contract-get-managed-prefix-list-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateManagedPrefixList", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteManagedPrefixList", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeManagedPrefixLists", "ec2:GetManagedPrefixListAssociations", "ec2:RevokeSecurityGroupIngress"], "path": "behavioral/ec2/check_op_contract_get_managed_prefix_list_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-managed-prefix-list-entries-invalid-id-rejected", "deployments": [], "key": "ec2/op-contract-get-managed-prefix-list-entries-invalid-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:DeleteManagedPrefixList", "ec2:DescribeManagedPrefixLists", "ec2:GetManagedPrefixListEntries"], "path": "behavioral/ec2/check_op_contract_get_managed_prefix_list_entries_invalid_id_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-managed-resource-visibility", "deployments": [], "key": "ec2/op-contract-get-managed-resource-visibility", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetManagedResourceVisibility"], "path": "behavioral/ec2/check_op_contract_get_managed_resource_visibility.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-network-insights-access-scope-analysis-findings", "deployments": [], "key": "ec2/op-contract-get-network-insights-access-scope-analysis-findings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScopeAnalysis", "ec2:DescribeNetworkInsightsAccessScopeAnalyses", "ec2:GetNetworkInsightsAccessScopeAnalysisFindings", "ec2:StartNetworkInsightsAccessScopeAnalysis"], "path": "behavioral/ec2/check_op_contract_get_network_insights_access_scope_analysis_findings.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-network-insights-access-scope-content", "deployments": [], "key": "ec2/op-contract-get-network-insights-access-scope-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScope", "ec2:GetNetworkInsightsAccessScopeContent"], "path": "behavioral/ec2/check_op_contract_get_network_insights_access_scope_content.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-password-data", "deployments": [], "key": "ec2/op-contract-get-password-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetPasswordData", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_get_password_data.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-reserved-instances-exchange-quote", "deployments": [], "key": "ec2/op-contract-get-reserved-instances-exchange-quote", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeReservedInstances", "ec2:GetReservedInstancesExchangeQuote"], "path": "behavioral/ec2/check_op_contract_get_reserved_instances_exchange_quote.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-route-server-associations", "deployments": [], "key": "ec2/op-contract-get-route-server-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:DescribeVpcs", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_op_contract_get_route_server_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-route-server-propagations", "deployments": [], "key": "ec2/op-contract-get-route-server-propagations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteTable", "ec2:DeleteRouteTable", "ec2:DescribeVpcs", "ec2:EnableRouteServerPropagation", "ec2:GetRouteServerAssociations", "ec2:GetRouteServerPropagations"], "path": "behavioral/ec2/check_op_contract_get_route_server_propagations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-route-server-routing-database", "deployments": [], "key": "ec2/op-contract-get-route-server-routing-database", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateRouteServer", "ec2:GetRouteServerRoutingDatabase"], "path": "behavioral/ec2/check_op_contract_get_route_server_routing_database.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-security-groups-for-vpc", "deployments": [], "key": "ec2/op-contract-get-security-groups-for-vpc", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:GetSecurityGroupsForVpc"], "path": "behavioral/ec2/check_op_contract_get_security_groups_for_vpc.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-serial-console-access-status", "deployments": [], "key": "ec2/op-contract-get-serial-console-access-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetSerialConsoleAccessStatus"], "path": "behavioral/ec2/check_op_contract_get_serial_console_access_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-snapshot-block-public-access-state", "deployments": [], "key": "ec2/op-contract-get-snapshot-block-public-access-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableSnapshotBlockPublicAccess", "ec2:EnableSnapshotBlockPublicAccess", "ec2:GetSnapshotBlockPublicAccessState"], "path": "behavioral/ec2/check_op_contract_get_snapshot_block_public_access_state.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-spot-placement-scores", "deployments": [], "key": "ec2/op-contract-get-spot-placement-scores", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetSpotPlacementScores"], "path": "behavioral/ec2/check_op_contract_get_spot_placement_scores.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-subnet-cidr-reservations", "deployments": [], "key": "ec2/op-contract-get-subnet-cidr-reservations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateSubnetCidrReservation", "ec2:DeleteSubnet", "ec2:DeleteSubnetCidrReservation", "ec2:DescribeVpcs", "ec2:GetSubnetCidrReservations"], "path": "behavioral/ec2/check_op_contract_get_subnet_cidr_reservations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-transit-gateway-attachment-propagations", "deployments": [], "key": "ec2/op-contract-get-transit-gateway-attachment-propagations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayVpcAttachment", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:GetTransitGatewayAttachmentPropagations"], "path": "behavioral/ec2/check_op_contract_get_transit_gateway_attachment_propagations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-transit-gateway-metering-policy-entries", "deployments": [], "key": "ec2/op-contract-get-transit-gateway-metering-policy-entries", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMeteringPolicy", "ec2:CreateTransitGatewayMeteringPolicyEntry", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMeteringPolicy", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayMeteringPolicyEntries"], "path": "behavioral/ec2/check_op_contract_get_transit_gateway_metering_policy_entries.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-transit-gateway-multicast-domain-associations", "deployments": [], "key": "ec2/op-contract-get-transit-gateway-multicast-domain-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayMulticastDomain", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayVpcAttachment", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisassociateTransitGatewayMulticastDomain", "ec2:GetTransitGatewayMulticastDomainAssociations"], "path": "behavioral/ec2/check_op_contract_get_transit_gateway_multicast_domain_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-transit-gateway-policy-table-associations", "deployments": [], "key": "ec2/op-contract-get-transit-gateway-policy-table-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayPolicyTable", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:GetTransitGatewayPolicyTableAssociations"], "path": "behavioral/ec2/check_op_contract_get_transit_gateway_policy_table_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-transit-gateway-policy-table-entries", "deployments": [], "key": "ec2/op-contract-get-transit-gateway-policy-table-entries", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPolicyTableEntries"], "path": "behavioral/ec2/check_op_contract_get_transit_gateway_policy_table_entries.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-transit-gateway-prefix-list-references", "deployments": [], "key": "ec2/op-contract-get-transit-gateway-prefix-list-references", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:DeleteTransitGateway", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPrefixListReferences"], "path": "behavioral/ec2/check_op_contract_get_transit_gateway_prefix_list_references.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-transit-gateway-route-table-associations", "deployments": [], "key": "ec2/op-contract-get-transit-gateway-route-table-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:DeleteTransitGateway", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayRouteTableAssociations"], "path": "behavioral/ec2/check_op_contract_get_transit_gateway_route_table_associations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-transit-gateway-route-table-propagations", "deployments": [], "key": "ec2/op-contract-get-transit-gateway-route-table-propagations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayRouteTablePropagations"], "path": "behavioral/ec2/check_op_contract_get_transit_gateway_route_table_propagations.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-verified-access-endpoint-policy", "deployments": [], "key": "ec2/op-contract-get-verified-access-endpoint-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVerifiedAccessEndpoint", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVerifiedAccessInstances", "ec2:DescribeVerifiedAccessTrustProviders", "ec2:DescribeVpcs", "ec2:DetachVerifiedAccessTrustProvider", "ec2:GetVerifiedAccessEndpointPolicy"], "path": "behavioral/ec2/check_op_contract_get_verified_access_endpoint_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-verified-access-endpoint-targets", "deployments": [], "key": "ec2/op-contract-get-verified-access-endpoint-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVerifiedAccessEndpoint", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVerifiedAccessInstances", "ec2:DescribeVerifiedAccessTrustProviders", "ec2:DescribeVpcs", "ec2:DetachVerifiedAccessTrustProvider", "ec2:GetVerifiedAccessEndpointTargets"], "path": "behavioral/ec2/check_op_contract_get_verified_access_endpoint_targets.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-verified-access-group-policy", "deployments": [], "key": "ec2/op-contract-get-verified-access-group-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:GetVerifiedAccessGroupPolicy"], "path": "behavioral/ec2/check_op_contract_get_verified_access_group_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-vpc-resources-blocking-encryption-enforcement", "deployments": [], "key": "ec2/op-contract-get-vpc-resources-blocking-encryption-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:GetVpcResourcesBlockingEncryptionEnforcement"], "path": "behavioral/ec2/check_op_contract_get_vpc_resources_blocking_encryption_enforcement.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-vpn-connection-device-sample-configuration", "deployments": [], "key": "ec2/op-contract-get-vpn-connection-device-sample-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:GetVpnConnectionDeviceSampleConfiguration", "ec2:GetVpnConnectionDeviceTypes"], "path": "behavioral/ec2/check_op_contract_get_vpn_connection_device_sample_configuration.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-vpn-connection-device-types", "deployments": [], "key": "ec2/op-contract-get-vpn-connection-device-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetVpnConnectionDeviceTypes"], "path": "behavioral/ec2/check_op_contract_get_vpn_connection_device_types.py", "service": "ec2"} {"check_id": "ec2.op-contract-get-vpn-tunnel-replacement-status", "deployments": [], "key": "ec2/op-contract-get-vpn-tunnel-replacement-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:GetVpnTunnelReplacementStatus"], "path": "behavioral/ec2/check_op_contract_get_vpn_tunnel_replacement_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-import-client-vpn-client-certificate-revocation-list", "deployments": [], "key": "ec2/op-contract-import-client-vpn-client-certificate-revocation-list", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:DescribeCertificate", "acm:ImportCertificate", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:ExportClientVpnClientCertificateRevocationList", "ec2:ImportClientVpnClientCertificateRevocationList"], "path": "behavioral/ec2/check_op_contract_import_client_vpn_client_certificate_revocation_list.py", "service": "ec2"} {"check_id": "ec2.op-contract-import-image", "deployments": [], "key": "ec2/op-contract-import-image", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelImportTask", "ec2:DescribeImportImageTasks", "ec2:ImportImage", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/ec2/check_op_contract_import_image.py", "service": "ec2"} {"check_id": "ec2.op-contract-import-key-pair", "deployments": [], "key": "ec2/op-contract-import-key-pair", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DeleteKeyPair", "ec2:DescribeKeyPairs", "ec2:ImportKeyPair"], "path": "behavioral/ec2/check_op_contract_import_key_pair.py", "service": "ec2"} {"check_id": "ec2.op-contract-import-snapshot", "deployments": [], "key": "ec2/op-contract-import-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelImportTask", "ec2:DescribeImportSnapshotTasks", "ec2:ImportSnapshot", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/ec2/check_op_contract_import_snapshot.py", "service": "ec2"} {"check_id": "ec2.op-contract-list-images-in-recycle-bin", "deployments": [], "key": "ec2/op-contract-list-images-in-recycle-bin", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateTags", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ListImagesInRecycleBin", "ec2:RegisterImage", "ec2:RestoreImageFromRecycleBin", "rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/ec2/check_op_contract_list_images_in_recycle_bin.py", "service": "ec2"} {"check_id": "ec2.op-contract-list-snapshots-in-recycle-bin", "deployments": [], "key": "ec2/op-contract-list-snapshots-in-recycle-bin", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ListSnapshotsInRecycleBin", "ec2:RestoreSnapshotFromRecycleBin", "rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/ec2/check_op_contract_list_snapshots_in_recycle_bin.py", "service": "ec2"} {"check_id": "ec2.op-contract-list-volumes-in-recycle-bin", "deployments": [], "key": "ec2/op-contract-list-volumes-in-recycle-bin", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:ListVolumesInRecycleBin", "ec2:RestoreVolumeFromRecycleBin", "rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/ec2/check_op_contract_list_volumes_in_recycle_bin.py", "service": "ec2"} {"check_id": "ec2.op-contract-lock-snapshot-blocks-deletion", "deployments": [], "key": "ec2/op-contract-lock-snapshot-blocks-deletion", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:LockSnapshot", "ec2:UnlockSnapshot"], "path": "behavioral/ec2/check_op_contract_lock_snapshot_blocks_deletion.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-account-vpc-encryption-control", "deployments": [], "key": "ec2/op-contract-modify-account-vpc-encryption-control", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAccountVpcEncryptionControl", "ec2:ModifyAccountVpcEncryptionControl"], "path": "behavioral/ec2/check_op_contract_modify_account_vpc_encryption_control.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-address-attribute", "deployments": [], "key": "ec2/op-contract-modify-address-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddressesAttribute", "ec2:ModifyAddressAttribute", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_modify_address_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-application-status-check", "deployments": [], "key": "ec2/op-contract-modify-application-status-check", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateApplicationStatusCheck", "ec2:DeleteApplicationStatusCheck", "ec2:DescribeApplicationStatusChecks", "ec2:ModifyApplicationStatusCheck"], "path": "behavioral/ec2/check_op_contract_modify_application_status_check.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-availability-zone-group", "deployments": [], "key": "ec2/op-contract-modify-availability-zone-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:ModifyAvailabilityZoneGroup"], "path": "behavioral/ec2/check_op_contract_modify_availability_zone_group.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-capacity-reservation-fleet-state-conflict", "deployments": [], "key": "ec2/op-contract-modify-capacity-reservation-fleet-state-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservationFleets", "ec2:CreateCapacityReservationFleet", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservationFleets", "ec2:ModifyCapacityReservationFleet"], "path": "behavioral/ec2/check_op_contract_modify_capacity_reservation_fleet_state_conflict.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-capacity-reservation-state-conflict", "deployments": [], "key": "ec2/op-contract-modify-capacity-reservation-state-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:ModifyCapacityReservation"], "path": "behavioral/ec2/check_op_contract_modify_capacity_reservation_state_conflict.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-client-vpn-endpoint", "deployments": [], "key": "ec2/op-contract-modify-client-vpn-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnEndpoints", "ec2:ModifyClientVpnEndpoint"], "path": "behavioral/ec2/check_op_contract_modify_client_vpn_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-default-credit-specification", "deployments": [], "key": "ec2/op-contract-modify-default-credit-specification", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetDefaultCreditSpecification", "ec2:ModifyDefaultCreditSpecification"], "path": "behavioral/ec2/check_op_contract_modify_default_credit_specification.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ebs-default-kms-key-id", "deployments": [], "key": "ec2/op-contract-modify-ebs-default-kms-key-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetEbsDefaultKmsKeyId", "ec2:ModifyEbsDefaultKmsKeyId", "ec2:ResetEbsDefaultKmsKeyId", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/ec2/check_op_contract_modify_ebs_default_kms_key_id.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-fleet", "deployments": [], "key": "ec2/op-contract-modify-fleet", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:DeleteFleets", "ec2:DeleteLaunchTemplate", "ec2:DescribeFleets", "ec2:DescribeImages", "ec2:ModifyFleet"], "path": "behavioral/ec2/check_op_contract_modify_fleet.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-fpga-image-attribute", "deployments": [], "key": "ec2/op-contract-modify-fpga-image-attribute", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeFpgaImages", "ec2:ModifyFpgaImageAttribute"], "path": "behavioral/ec2/check_op_contract_modify_fpga_image_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-image-attribute", "deployments": [], "key": "ec2/op-contract-modify-image-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateImage", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImageAttribute", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:ModifyImageAttribute", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_image_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-attribute", "deployments": [], "key": "ec2/op-contract-modify-instance-attribute", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-capacity-reservation-attributes", "deployments": [], "key": "ec2/op-contract-modify-instance-capacity-reservation-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:ModifyInstanceCapacityReservationAttributes", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_capacity_reservation_attributes.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-connect-endpoint", "deployments": [], "key": "ec2/op-contract-modify-instance-connect-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceConnectEndpoint", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInstanceConnectEndpoint", "ec2:DescribeInstanceConnectEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:ModifyInstanceConnectEndpoint"], "path": "behavioral/ec2/check_op_contract_modify_instance_connect_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-cpu-options", "deployments": [], "key": "ec2/op-contract-modify-instance-cpu-options", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:ModifyInstanceCpuOptions", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_cpu_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-credit-specification", "deployments": [], "key": "ec2/op-contract-modify-instance-credit-specification", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceCreditSpecifications", "ec2:DescribeInstances", "ec2:ModifyInstanceCreditSpecification", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_credit_specification.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-event-start-time", "deployments": [], "key": "ec2/op-contract-modify-instance-event-start-time", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:ModifyInstanceEventStartTime", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_event_start_time.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-event-window", "deployments": [], "key": "ec2/op-contract-modify-instance-event-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateInstanceEventWindow", "ec2:DeleteInstanceEventWindow", "ec2:DescribeInstanceEventWindows", "ec2:ModifyInstanceEventWindow"], "path": "behavioral/ec2/check_op_contract_modify_instance_event_window.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-maintenance-options", "deployments": [], "key": "ec2/op-contract-modify-instance-maintenance-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:ModifyInstanceMaintenanceOptions", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_maintenance_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-metadata-defaults", "deployments": [], "key": "ec2/op-contract-modify-instance-metadata-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:GetInstanceMetadataDefaults", "ec2:ModifyInstanceMetadataDefaults", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_metadata_defaults.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-metadata-options", "deployments": [], "key": "ec2/op-contract-modify-instance-metadata-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:ModifyInstanceMetadataOptions", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_metadata_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-network-performance-options", "deployments": [], "key": "ec2/op-contract-modify-instance-network-performance-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:ModifyInstanceNetworkPerformanceOptions", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_network_performance_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-instance-placement", "deployments": [], "key": "ec2/op-contract-modify-instance-placement", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreatePlacementGroup", "ec2:DeletePlacementGroup", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:ModifyInstancePlacement", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_instance_placement.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam", "deployments": [], "key": "ec2/op-contract-modify-ipam", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpams", "ec2:ModifyIpam"], "path": "behavioral/ec2/check_op_contract_modify_ipam.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-policy-allocation-rules", "deployments": [], "key": "ec2/op-contract-modify-ipam-policy-allocation-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPolicy", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPolicy", "ec2:DeleteIpamPool", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:GetIpamPolicyAllocationRules", "ec2:ModifyIpam", "ec2:ModifyIpamPolicyAllocationRules"], "path": "behavioral/ec2/check_op_contract_modify_ipam_policy_allocation_rules.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-pool", "deployments": [], "key": "ec2/op-contract-modify-ipam-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:ModifyIpamPool"], "path": "behavioral/ec2/check_op_contract_modify_ipam_pool.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-pool-allocation", "deployments": [], "key": "ec2/op-contract-modify-ipam-pool-allocation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateIpamPoolCidr", "ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:GetIpamPoolAllocations", "ec2:GetIpamPoolCidrs", "ec2:ModifyIpamPoolAllocation", "ec2:ProvisionIpamPoolCidr"], "path": "behavioral/ec2/check_op_contract_modify_ipam_pool_allocation.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-prefix-list-resolver", "deployments": [], "key": "ec2/op-contract-modify-ipam-prefix-list-resolver", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPrefixListResolver", "ec2:DeleteIpam", "ec2:DeleteIpamPrefixListResolver", "ec2:DescribeIpamPrefixListResolvers", "ec2:DescribeIpams", "ec2:ModifyIpam", "ec2:ModifyIpamPrefixListResolver"], "path": "behavioral/ec2/check_op_contract_modify_ipam_prefix_list_resolver.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-prefix-list-resolver-target", "deployments": [], "key": "ec2/op-contract-modify-ipam-prefix-list-resolver-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPrefixListResolver", "ec2:CreateIpamPrefixListResolverTarget", "ec2:CreateManagedPrefixList", "ec2:DeleteIpam", "ec2:DeleteIpamPrefixListResolver", "ec2:DeleteIpamPrefixListResolverTarget", "ec2:DeleteManagedPrefixList", "ec2:DescribeIpamPrefixListResolverTargets", "ec2:DescribeIpamPrefixListResolvers", "ec2:DescribeIpams", "ec2:DescribeManagedPrefixLists", "ec2:ModifyIpam", "ec2:ModifyIpamPrefixListResolverTarget"], "path": "behavioral/ec2/check_op_contract_modify_ipam_prefix_list_resolver_target.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-resource-cidr", "deployments": [], "key": "ec2/op-contract-modify-ipam-resource-cidr", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteIpam", "ec2:DeleteVpc", "ec2:DescribeIpams", "ec2:GetIpamResourceCidrs", "ec2:ModifyIpamResourceCidr"], "path": "behavioral/ec2/check_op_contract_modify_ipam_resource_cidr.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-resource-discovery", "deployments": [], "key": "ec2/op-contract-modify-ipam-resource-discovery", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpamResourceDiscovery", "ec2:DeleteIpamResourceDiscovery", "ec2:DescribeIpamResourceDiscoveries", "ec2:ModifyIpamResourceDiscovery"], "path": "behavioral/ec2/check_op_contract_modify_ipam_resource_discovery.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-routing-policy-registration", "deployments": [], "key": "ec2/op-contract-modify-ipam-routing-policy-registration", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeIpamInternetRegistryAssociations", "ec2:ModifyIpamRoutingPolicyRegistration"], "path": "behavioral/ec2/check_op_contract_modify_ipam_routing_policy_registration.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-ipam-scope", "deployments": [], "key": "ec2/op-contract-modify-ipam-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpamScopes", "ec2:DescribeIpams", "ec2:ModifyIpamScope"], "path": "behavioral/ec2/check_op_contract_modify_ipam_scope.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-launch-template", "deployments": [], "key": "ec2/op-contract-modify-launch-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:ModifyLaunchTemplate"], "path": "behavioral/ec2/check_op_contract_modify_launch_template.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-local-gateway-route", "deployments": [], "key": "ec2/op-contract-modify-local-gateway-route", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DescribeLocalGatewayRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyLocalGatewayRoute"], "path": "behavioral/ec2/check_op_contract_modify_local_gateway_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-managed-prefix-list", "deployments": [], "key": "ec2/op-contract-modify-managed-prefix-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:DeleteManagedPrefixList", "ec2:DescribeManagedPrefixLists", "ec2:GetManagedPrefixListEntries", "ec2:ModifyManagedPrefixList"], "path": "behavioral/ec2/check_op_contract_modify_managed_prefix_list.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-managed-resource-visibility", "deployments": [], "key": "ec2/op-contract-modify-managed-resource-visibility", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetManagedResourceVisibility", "ec2:ModifyManagedResourceVisibility"], "path": "behavioral/ec2/check_op_contract_modify_managed_resource_visibility.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-network-interface-attribute", "deployments": [], "key": "ec2/op-contract-modify-network-interface-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute"], "path": "behavioral/ec2/check_op_contract_modify_network_interface_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-private-dns-name-options", "deployments": [], "key": "ec2/op-contract-modify-private-dns-name-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyPrivateDnsNameOptions", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_private_dns_name_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-public-ip-dns-name-options", "deployments": [], "key": "ec2/op-contract-modify-public-ip-dns-name-options", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateAddress", "ec2:ModifyPublicIpDnsNameOptions", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_modify_public_ip_dns_name_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-reserved-instances-rejected", "deployments": [], "key": "ec2/op-contract-modify-reserved-instances-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeReservedInstances", "ec2:ModifyReservedInstances"], "path": "behavioral/ec2/check_op_contract_modify_reserved_instances_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-reserved-instances-required-params-rejected", "deployments": [], "key": "ec2/op-contract-modify-reserved-instances-required-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:ModifyReservedInstances"], "path": "behavioral/ec2/check_op_contract_modify_reserved_instances_required_params_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-route-server", "deployments": [], "key": "ec2/op-contract-modify-route-server", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateRouteServer", "ec2:DescribeRouteServers", "ec2:ModifyRouteServer"], "path": "behavioral/ec2/check_op_contract_modify_route_server.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-security-group-rules", "deployments": [], "key": "ec2/op-contract-modify-security-group-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:ModifySecurityGroupRules"], "path": "behavioral/ec2/check_op_contract_modify_security_group_rules.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-snapshot-attribute", "deployments": [], "key": "ec2/op-contract-modify-snapshot-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshotAttribute", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ModifySnapshotAttribute", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_modify_snapshot_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-snapshot-tier", "deployments": [], "key": "ec2/op-contract-modify-snapshot-tier", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshotTierStatus", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ModifySnapshotTier"], "path": "behavioral/ec2/check_op_contract_modify_snapshot_tier.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-spot-fleet-request", "deployments": [], "key": "ec2/op-contract-modify-spot-fleet-request", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelSpotFleetRequests", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeImages", "ec2:DescribeSpotFleetRequests", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySpotFleetRequest", "ec2:RequestSpotFleet", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ec2/check_op_contract_modify_spot_fleet_request.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-subnet-attribute", "deployments": [], "key": "ec2/op-contract-modify-subnet-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:ModifySubnetAttribute"], "path": "behavioral/ec2/check_op_contract_modify_subnet_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-traffic-mirror-filter-network-services", "deployments": [], "key": "ec2/op-contract-modify-traffic-mirror-filter-network-services", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTrafficMirrorFilter", "ec2:DeleteTrafficMirrorFilter", "ec2:DescribeTrafficMirrorFilters", "ec2:ModifyTrafficMirrorFilterNetworkServices"], "path": "behavioral/ec2/check_op_contract_modify_traffic_mirror_filter_network_services.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-traffic-mirror-filter-rule", "deployments": [], "key": "ec2/op-contract-modify-traffic-mirror-filter-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTrafficMirrorFilter", "ec2:CreateTrafficMirrorFilterRule", "ec2:DeleteTrafficMirrorFilter", "ec2:DeleteTrafficMirrorFilterRule", "ec2:DescribeTrafficMirrorFilters", "ec2:ModifyTrafficMirrorFilterRule"], "path": "behavioral/ec2/check_op_contract_modify_traffic_mirror_filter_rule.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-traffic-mirror-session", "deployments": [], "key": "ec2/op-contract-modify-traffic-mirror-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTrafficMirrorFilter", "ec2:CreateTrafficMirrorSession", "ec2:CreateTrafficMirrorTarget", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteTrafficMirrorFilter", "ec2:DeleteTrafficMirrorSession", "ec2:DeleteTrafficMirrorTarget", "ec2:DeleteVpc", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeTrafficMirrorSessions", "ec2:DescribeVpcs", "ec2:DetachNetworkInterface", "ec2:ModifyTrafficMirrorSession", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_modify_traffic_mirror_session.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-transit-gateway", "deployments": [], "key": "ec2/op-contract-modify-transit-gateway", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:DeleteTransitGateway", "ec2:DescribeTransitGateways", "ec2:ModifyTransitGateway"], "path": "behavioral/ec2/check_op_contract_modify_transit_gateway.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-transit-gateway-metering-policy", "deployments": [], "key": "ec2/op-contract-modify-transit-gateway-metering-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMeteringPolicy", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMeteringPolicy", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeTransitGatewayMeteringPolicies", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:ModifyTransitGatewayMeteringPolicy"], "path": "behavioral/ec2/check_op_contract_modify_transit_gateway_metering_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-transit-gateway-policy-table-entry", "deployments": [], "key": "ec2/op-contract-modify-transit-gateway-policy-table-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayPolicyTableEntry", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DeleteTransitGatewayPolicyTableEntry", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPolicyTableEntries", "ec2:ModifyTransitGatewayPolicyTableEntry"], "path": "behavioral/ec2/check_op_contract_modify_transit_gateway_policy_table_entry.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-transit-gateway-prefix-list-reference", "deployments": [], "key": "ec2/op-contract-modify-transit-gateway-prefix-list-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPrefixListReference", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteManagedPrefixList", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPrefixListReference", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeManagedPrefixLists", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:GetTransitGatewayPrefixListReferences", "ec2:ModifyTransitGatewayPrefixListReference"], "path": "behavioral/ec2/check_op_contract_modify_transit_gateway_prefix_list_reference.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-transit-gateway-vpc-attachment", "deployments": [], "key": "ec2/op-contract-modify-transit-gateway-vpc-attachment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:ModifyTransitGatewayVpcAttachment"], "path": "behavioral/ec2/check_op_contract_modify_transit_gateway_vpc_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-verified-access-endpoint", "deployments": [], "key": "ec2/op-contract-modify-verified-access-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVerifiedAccessEndpoint", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVerifiedAccessEndpoints", "ec2:DetachVerifiedAccessTrustProvider", "ec2:ModifyVerifiedAccessEndpoint"], "path": "behavioral/ec2/check_op_contract_modify_verified_access_endpoint.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-verified-access-endpoint-policy", "deployments": [], "key": "ec2/op-contract-modify-verified-access-endpoint-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVerifiedAccessEndpoint", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachVerifiedAccessTrustProvider", "ec2:GetVerifiedAccessEndpointPolicy", "ec2:ModifyVerifiedAccessEndpointPolicy"], "path": "behavioral/ec2/check_op_contract_modify_verified_access_endpoint_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-verified-access-group", "deployments": [], "key": "ec2/op-contract-modify-verified-access-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeVerifiedAccessGroups", "ec2:DetachVerifiedAccessTrustProvider", "ec2:ModifyVerifiedAccessGroup"], "path": "behavioral/ec2/check_op_contract_modify_verified_access_group.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-verified-access-group-policy", "deployments": [], "key": "ec2/op-contract-modify-verified-access-group-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVerifiedAccessTrustProvider", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessInstance", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessGroup", "ec2:DeleteVerifiedAccessInstance", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DetachVerifiedAccessTrustProvider", "ec2:GetVerifiedAccessGroupPolicy", "ec2:ModifyVerifiedAccessGroupPolicy"], "path": "behavioral/ec2/check_op_contract_modify_verified_access_group_policy.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-verified-access-instance", "deployments": [], "key": "ec2/op-contract-modify-verified-access-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVerifiedAccessInstance", "ec2:DeleteVerifiedAccessInstance", "ec2:DescribeVerifiedAccessInstances", "ec2:ModifyVerifiedAccessInstance"], "path": "behavioral/ec2/check_op_contract_modify_verified_access_instance.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-verified-access-instance-logging-configuration", "deployments": [], "key": "ec2/op-contract-modify-verified-access-instance-logging-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVerifiedAccessInstance", "ec2:DeleteVerifiedAccessInstance", "ec2:DescribeVerifiedAccessInstanceLoggingConfigurations", "ec2:ModifyVerifiedAccessInstanceLoggingConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ec2/check_op_contract_modify_verified_access_instance_logging_configuration.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-verified-access-trust-provider", "deployments": [], "key": "ec2/op-contract-modify-verified-access-trust-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteVerifiedAccessTrustProvider", "ec2:DescribeVerifiedAccessTrustProviders", "ec2:ModifyVerifiedAccessTrustProvider"], "path": "behavioral/ec2/check_op_contract_modify_verified_access_trust_provider.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-volume", "deployments": [], "key": "ec2/op-contract-modify-volume", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:ModifyVolume"], "path": "behavioral/ec2/check_op_contract_modify_volume.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-volume-attribute", "deployments": [], "key": "ec2/op-contract-modify-volume-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumeAttribute", "ec2:DescribeVolumes", "ec2:ModifyVolumeAttribute"], "path": "behavioral/ec2/check_op_contract_modify_volume_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-attribute", "deployments": [], "key": "ec2/op-contract-modify-vpc-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcAttribute", "ec2:ModifyVpcAttribute"], "path": "behavioral/ec2/check_op_contract_modify_vpc_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-block-public-access-exclusion", "deployments": [], "key": "ec2/op-contract-modify-vpc-block-public-access-exclusion", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcBlockPublicAccessExclusion", "ec2:DeleteVpcBlockPublicAccessExclusion", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcBlockPublicAccessExclusions", "ec2:ModifyVpcBlockPublicAccessExclusion"], "path": "behavioral/ec2/check_op_contract_modify_vpc_block_public_access_exclusion.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-block-public-access-options", "deployments": [], "key": "ec2/op-contract-modify-vpc-block-public-access-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcBlockPublicAccessOptions", "ec2:ModifyVpcBlockPublicAccessOptions"], "path": "behavioral/ec2/check_op_contract_modify_vpc_block_public_access_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-encryption-control", "deployments": [], "key": "ec2/op-contract-modify-vpc-encryption-control", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcEncryptionControl", "ec2:DeleteVpc", "ec2:DeleteVpcEncryptionControl", "ec2:DescribeVpcEncryptionControls", "ec2:ModifyVpcEncryptionControl"], "path": "behavioral/ec2/check_op_contract_modify_vpc_encryption_control.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-endpoint-connection-notification", "deployments": [], "key": "ec2/op-contract-modify-vpc-endpoint-connection-notification", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:CreateVpcEndpointConnectionNotification", "ec2:DeleteVpcEndpointConnectionNotifications", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnectionNotifications", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:ModifyVpcEndpointConnectionNotification", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes"], "path": "behavioral/ec2/check_op_contract_modify_vpc_endpoint_connection_notification.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-endpoint-notfound-rejected", "deployments": [], "key": "ec2/op-contract-modify-vpc-endpoint-notfound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateRouteTable", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteRouteTable", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeVpcEndpoints", "ec2:ModifyVpcEndpoint"], "path": "behavioral/ec2/check_op_contract_modify_vpc_endpoint_notfound_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-endpoint-payer-responsibility", "deployments": [], "key": "ec2/op-contract-modify-vpc-endpoint-payer-responsibility", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "ec2:ModifyVpcEndpointPayerResponsibility", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_modify_vpc_endpoint_payer_responsibility.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-endpoint-service-configuration", "deployments": [], "key": "ec2/op-contract-modify-vpc-endpoint-service-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:ModifyVpcEndpointServiceConfiguration", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_modify_vpc_endpoint_service_configuration.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-endpoint-service-permissions", "deployments": [], "key": "ec2/op-contract-modify-vpc-endpoint-service-permissions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServicePermissions", "ec2:ModifyVpcEndpointServicePermissions", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_modify_vpc_endpoint_service_permissions.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-peering-connection-options-notfound-rejected", "deployments": [], "key": "ec2/op-contract-modify-vpc-peering-connection-options-notfound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:ModifyVpcPeeringConnectionOptions"], "path": "behavioral/ec2/check_op_contract_modify_vpc_peering_connection_options_notfound_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpc-tenancy-notfound-rejected", "deployments": [], "key": "ec2/op-contract-modify-vpc-tenancy-notfound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ec2:ModifyVpcTenancy"], "path": "behavioral/ec2/check_op_contract_modify_vpc_tenancy_notfound_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpn-connection-notfound-rejected", "deployments": [], "key": "ec2/op-contract-modify-vpn-connection-notfound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:ModifyVpnConnection"], "path": "behavioral/ec2/check_op_contract_modify_vpn_connection_notfound_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpn-connection-options", "deployments": [], "key": "ec2/op-contract-modify-vpn-connection-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:ModifyVpnConnectionOptions"], "path": "behavioral/ec2/check_op_contract_modify_vpn_connection_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-modify-vpn-tunnel-options", "deployments": [], "key": "ec2/op-contract-modify-vpn-tunnel-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:ModifyVpnTunnelOptions"], "path": "behavioral/ec2/check_op_contract_modify_vpn_tunnel_options.py", "service": "ec2"} {"check_id": "ec2.op-contract-monitor-instances", "deployments": [], "key": "ec2/op-contract-monitor-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:MonitorInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:UnmonitorInstances"], "path": "behavioral/ec2/check_op_contract_monitor_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-move-byoip-cidr-to-ipam-rejected", "deployments": [], "key": "ec2/op-contract-move-byoip-cidr-to-ipam-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DescribeIpamPools", "ec2:DescribeIpamScopes", "ec2:DescribeIpams", "ec2:MoveByoipCidrToIpam", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_move_byoip_cidr_to_ipam_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-move-capacity-reservation-instances-rejected", "deployments": [], "key": "ec2/op-contract-move-capacity-reservation-instances-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:MoveCapacityReservationInstances"], "path": "behavioral/ec2/check_op_contract_move_capacity_reservation_instances_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-provision-byoip-cidr-rejected", "deployments": [], "key": "ec2/op-contract-provision-byoip-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeByoipCidrs", "ec2:ProvisionByoipCidr"], "path": "behavioral/ec2/check_op_contract_provision_byoip_cidr_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-provision-ipam-byoasn-rejected", "deployments": [], "key": "ec2/op-contract-provision-ipam-byoasn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:DeleteIpam", "ec2:DescribeIpams", "ec2:ProvisionIpamByoasn"], "path": "behavioral/ec2/check_op_contract_provision_ipam_byoasn_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-provision-ipam-pool-cidr", "deployments": [], "key": "ec2/op-contract-provision-ipam-pool-cidr", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DescribeIpamPools", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr"], "path": "behavioral/ec2/check_op_contract_provision_ipam_pool_cidr.py", "service": "ec2"} {"check_id": "ec2.op-contract-provision-public-ipv4-pool-cidr-rejected", "deployments": [], "key": "ec2/op-contract-provision-public-ipv4-pool-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:GetIpamPoolCidrs", "ec2:ProvisionPublicIpv4PoolCidr"], "path": "behavioral/ec2/check_op_contract_provision_public_ipv4_pool_cidr_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-purchase-capacity-block-extension-rejected", "deployments": [], "key": "ec2/op-contract-purchase-capacity-block-extension-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeCapacityBlockOfferings", "ec2:PurchaseCapacityBlockExtension"], "path": "behavioral/ec2/check_op_contract_purchase_capacity_block_extension_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-purchase-capacity-block-rejected", "deployments": [], "key": "ec2/op-contract-purchase-capacity-block-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeCapacityBlockOfferings", "ec2:PurchaseCapacityBlock"], "path": "behavioral/ec2/check_op_contract_purchase_capacity_block_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-purchase-host-reservation-rejected", "deployments": [], "key": "ec2/op-contract-purchase-host-reservation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeHostReservationOfferings", "ec2:PurchaseHostReservation"], "path": "behavioral/ec2/check_op_contract_purchase_host_reservation_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-purchase-reserved-instances-offering-rejected", "deployments": [], "key": "ec2/op-contract-purchase-reserved-instances-offering-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeReservedInstances", "ec2:PurchaseReservedInstancesOffering"], "path": "behavioral/ec2/check_op_contract_purchase_reserved_instances_offering_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-purchase-scheduled-instances-rejected", "deployments": [], "key": "ec2/op-contract-purchase-scheduled-instances-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeScheduledInstances", "ec2:PurchaseScheduledInstances"], "path": "behavioral/ec2/check_op_contract_purchase_scheduled_instances_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-register-image", "deployments": [], "key": "ec2/op-contract-register-image", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:RegisterImage"], "path": "behavioral/ec2/check_op_contract_register_image.py", "service": "ec2"} {"check_id": "ec2.op-contract-register-instance-event-notification-attributes", "deployments": [], "key": "ec2/op-contract-register-instance-event-notification-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DeregisterInstanceEventNotificationAttributes", "ec2:DescribeInstanceEventNotificationAttributes", "ec2:RegisterInstanceEventNotificationAttributes"], "path": "behavioral/ec2/check_op_contract_register_instance_event_notification_attributes.py", "service": "ec2"} {"check_id": "ec2.op-contract-register-transit-gateway-multicast-group-members", "deployments": [], "key": "ec2/op-contract-register-transit-gateway-multicast-group-members", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayMulticastDomain", "ec2:CreateNetworkInterface", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayVpcAttachment", "ec2:DeleteNetworkInterface", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeregisterTransitGatewayMulticastGroupMembers", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisassociateTransitGatewayMulticastDomain", "ec2:GetTransitGatewayMulticastDomainAssociations", "ec2:RegisterTransitGatewayMulticastGroupMembers", "ec2:SearchTransitGatewayMulticastGroups"], "path": "behavioral/ec2/check_op_contract_register_transit_gateway_multicast_group_members.py", "service": "ec2"} {"check_id": "ec2.op-contract-register-transit-gateway-multicast-group-sources", "deployments": [], "key": "ec2/op-contract-register-transit-gateway-multicast-group-sources", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayMulticastDomain", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeregisterTransitGatewayMulticastGroupSources", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisassociateTransitGatewayMulticastDomain", "ec2:GetTransitGatewayMulticastDomainAssociations", "ec2:RegisterTransitGatewayMulticastGroupSources", "ec2:SearchTransitGatewayMulticastGroups"], "path": "behavioral/ec2/check_op_contract_register_transit_gateway_multicast_group_sources.py", "service": "ec2"} {"check_id": "ec2.op-contract-reject-capacity-reservation-billing-ownership-rejected", "deployments": [], "key": "ec2/op-contract-reject-capacity-reservation-billing-ownership-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:RejectCapacityReservationBillingOwnership"], "path": "behavioral/ec2/check_op_contract_reject_capacity_reservation_billing_ownership_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-reject-transit-gateway-client-vpn-attachment-rejected", "deployments": [], "key": "ec2/op-contract-reject-transit-gateway-client-vpn-attachment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:RejectTransitGatewayClientVpnAttachment"], "path": "behavioral/ec2/check_op_contract_reject_transit_gateway_client_vpn_attachment_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-reject-transit-gateway-multicast-domain-associations-rejected", "deployments": [], "key": "ec2/op-contract-reject-transit-gateway-multicast-domain-associations-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:RejectTransitGatewayMulticastDomainAssociations"], "path": "behavioral/ec2/check_op_contract_reject_transit_gateway_multicast_domain_associations_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-reject-transit-gateway-peering-attachment", "deployments": [], "key": "ec2/op-contract-reject-transit-gateway-peering-attachment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPeeringAttachment", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:RejectTransitGatewayPeeringAttachment", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_reject_transit_gateway_peering_attachment.py", "service": "ec2"} {"check_id": "ec2.op-contract-reject-transit-gateway-vpc-attachment-rejected", "deployments": [], "key": "ec2/op-contract-reject-transit-gateway-vpc-attachment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:RejectTransitGatewayVpcAttachment"], "path": "behavioral/ec2/check_op_contract_reject_transit_gateway_vpc_attachment_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-reject-vpc-endpoint-connections", "deployments": [], "key": "ec2/op-contract-reject-vpc-endpoint-connections", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AcceptVpcEndpointConnections", "ec2:CreateVpcEndpoint", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcs", "ec2:RejectVpcEndpointConnections", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_reject_vpc_endpoint_connections.py", "service": "ec2"} {"check_id": "ec2.op-contract-reject-vpc-peering-connection", "deployments": [], "key": "ec2/op-contract-reject-vpc-peering-connection", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:RejectVpcPeeringConnection"], "path": "behavioral/ec2/check_op_contract_reject_vpc_peering_connection.py", "service": "ec2"} {"check_id": "ec2.op-contract-release-address", "deployments": [], "key": "ec2/op-contract-release-address", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeAddresses", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_contract_release_address.py", "service": "ec2"} {"check_id": "ec2.op-contract-release-hosts", "deployments": [], "key": "ec2/op-contract-release-hosts", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateHosts", "ec2:DescribeHosts", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:ReleaseHosts", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_release_hosts.py", "service": "ec2"} {"check_id": "ec2.op-contract-release-ipam-pool-allocation", "deployments": [], "key": "ec2/op-contract-release-ipam-pool-allocation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateIpamPoolCidr", "ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DeprovisionIpamPoolCidr", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:GetIpamPoolAllocations", "ec2:GetIpamPoolCidrs", "ec2:ProvisionIpamPoolCidr", "ec2:ReleaseIpamPoolAllocation"], "path": "behavioral/ec2/check_op_contract_release_ipam_pool_allocation.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-iam-instance-profile-association", "deployments": [], "key": "ec2/op-contract-replace-iam-instance-profile-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:ReplaceIamInstanceProfileAssociation", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ec2/check_op_contract_replace_iam_instance_profile_association.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-image-criteria-in-allowed-images-settings", "deployments": [], "key": "ec2/op-contract-replace-image-criteria-in-allowed-images-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableAllowedImagesSettings", "ec2:EnableAllowedImagesSettings", "ec2:GetAllowedImagesSettings", "ec2:ReplaceImageCriteriaInAllowedImagesSettings"], "path": "behavioral/ec2/check_op_contract_replace_image_criteria_in_allowed_images_settings.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-image-instance-type-specification", "deployments": [], "key": "ec2/op-contract-replace-image-instance-type-specification", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:RegisterImage", "ec2:ReplaceImageInstanceTypeSpecification"], "path": "behavioral/ec2/check_op_contract_replace_image_instance_type_specification.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-network-acl-association", "deployments": [], "key": "ec2/op-contract-replace-network-acl-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkAcl", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkAcl", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls", "ec2:DescribeVpcs", "ec2:ReplaceNetworkAclAssociation"], "path": "behavioral/ec2/check_op_contract_replace_network_acl_association.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-network-acl-entry", "deployments": [], "key": "ec2/op-contract-replace-network-acl-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkAcl", "ec2:CreateNetworkAclEntry", "ec2:CreateVpc", "ec2:DeleteNetworkAcl", "ec2:DeleteVpc", "ec2:DescribeNetworkAcls", "ec2:DescribeVpcs", "ec2:ReplaceNetworkAclEntry"], "path": "behavioral/ec2/check_op_contract_replace_network_acl_entry.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-route", "deployments": [], "key": "ec2/op-contract-replace-route", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ReplaceRoute"], "path": "behavioral/ec2/check_op_contract_replace_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-route-table-association", "deployments": [], "key": "ec2/op-contract-replace-route-table-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DisassociateRouteTable", "ec2:ReplaceRouteTableAssociation"], "path": "behavioral/ec2/check_op_contract_replace_route_table_association.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-transit-gateway-route", "deployments": [], "key": "ec2/op-contract-replace-transit-gateway-route", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRoute", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:ReplaceTransitGatewayRoute", "ec2:SearchTransitGatewayRoutes"], "path": "behavioral/ec2/check_op_contract_replace_transit_gateway_route.py", "service": "ec2"} {"check_id": "ec2.op-contract-replace-vpn-tunnel", "deployments": [], "key": "ec2/op-contract-replace-vpn-tunnel", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateCustomerGateway", "ec2:CreateVpnConnection", "ec2:CreateVpnGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteVpnConnection", "ec2:DeleteVpnGateway", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:ReplaceVpnTunnel"], "path": "behavioral/ec2/check_op_contract_replace_vpn_tunnel.py", "service": "ec2"} {"check_id": "ec2.op-contract-report-instance-status", "deployments": [], "key": "ec2/op-contract-report-instance-status", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:ReportInstanceStatus", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_report_instance_status.py", "service": "ec2"} {"check_id": "ec2.op-contract-request-spot-fleet", "deployments": [], "key": "ec2/op-contract-request-spot-fleet", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelSpotFleetRequests", "ec2:DescribeImages", "ec2:DescribeSpotFleetInstances", "ec2:DescribeSpotFleetRequests", "ec2:RequestSpotFleet", "ec2:TerminateInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ec2/check_op_contract_request_spot_fleet.py", "service": "ec2"} {"check_id": "ec2.op-contract-request-spot-instances", "deployments": [], "key": "ec2/op-contract-request-spot-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CancelSpotInstanceRequests", "ec2:DescribeImages", "ec2:DescribeSpotInstanceRequests", "ec2:RequestSpotInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_request_spot_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-reset-address-attribute", "deployments": [], "key": "ec2/op-contract-reset-address-attribute", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:ModifyAddressAttribute", "ec2:ReleaseAddress", "ec2:ResetAddressAttribute"], "path": "behavioral/ec2/check_op_contract_reset_address_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-reset-ebs-default-kms-key-id", "deployments": [], "key": "ec2/op-contract-reset-ebs-default-kms-key-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:GetEbsDefaultKmsKeyId", "ec2:ModifyEbsDefaultKmsKeyId", "ec2:ResetEbsDefaultKmsKeyId", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/ec2/check_op_contract_reset_ebs_default_kms_key_id.py", "service": "ec2"} {"check_id": "ec2.op-contract-reset-fpga-image-attribute", "deployments": [], "key": "ec2/op-contract-reset-fpga-image-attribute", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:ResetFpgaImageAttribute"], "path": "behavioral/ec2/check_op_contract_reset_fpga_image_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-reset-image-attribute", "deployments": [], "key": "ec2/op-contract-reset-image-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImageAttribute", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ModifyImageAttribute", "ec2:RegisterImage", "ec2:ResetImageAttribute"], "path": "behavioral/ec2/check_op_contract_reset_image_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-reset-instance-attribute", "deployments": [], "key": "ec2/op-contract-reset-instance-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:ResetInstanceAttribute", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_reset_instance_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-reset-network-interface-attribute", "deployments": [], "key": "ec2/op-contract-reset-network-interface-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute", "ec2:ResetNetworkInterfaceAttribute"], "path": "behavioral/ec2/check_op_contract_reset_network_interface_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-reset-snapshot-attribute", "deployments": [], "key": "ec2/op-contract-reset-snapshot-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshotAttribute", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ModifySnapshotAttribute", "ec2:ResetSnapshotAttribute", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_op_contract_reset_snapshot_attribute.py", "service": "ec2"} {"check_id": "ec2.op-contract-restore-image-from-recycle-bin", "deployments": [], "key": "ec2/op-contract-restore-image-from-recycle-bin", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:RegisterImage", "ec2:RestoreImageFromRecycleBin", "rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/ec2/check_op_contract_restore_image_from_recycle_bin.py", "service": "ec2"} {"check_id": "ec2.op-contract-restore-managed-prefix-list-version", "deployments": [], "key": "ec2/op-contract-restore-managed-prefix-list-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:DeleteManagedPrefixList", "ec2:DescribeManagedPrefixLists", "ec2:GetManagedPrefixListEntries", "ec2:ModifyManagedPrefixList", "ec2:RestoreManagedPrefixListVersion"], "path": "behavioral/ec2/check_op_contract_restore_managed_prefix_list_version.py", "service": "ec2"} {"check_id": "ec2.op-contract-restore-snapshot-from-recycle-bin", "deployments": [], "key": "ec2/op-contract-restore-snapshot-from-recycle-bin", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:RestoreSnapshotFromRecycleBin", "rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/ec2/check_op_contract_restore_snapshot_from_recycle_bin.py", "service": "ec2"} {"check_id": "ec2.op-contract-restore-snapshot-tier-not-archived-rejected", "deployments": [], "key": "ec2/op-contract-restore-snapshot-tier-not-archived-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:RestoreSnapshotTier"], "path": "behavioral/ec2/check_op_contract_restore_snapshot_tier_not_archived_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-restore-volume-from-recycle-bin", "deployments": [], "key": "ec2/op-contract-restore-volume-from-recycle-bin", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:RestoreVolumeFromRecycleBin", "rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/ec2/check_op_contract_restore_volume_from_recycle_bin.py", "service": "ec2"} {"check_id": "ec2.op-contract-revoke-client-vpn-ingress", "deployments": [], "key": "ec2/op-contract-revoke-client-vpn-ingress", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateClientVpnTargetNetwork", "ec2:AuthorizeClientVpnIngress", "ec2:CreateClientVpnEndpoint", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeClientVpnAuthorizationRules", "ec2:DescribeClientVpnEndpoints", "ec2:DescribeClientVpnTargetNetworks", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateClientVpnTargetNetwork", "ec2:RevokeClientVpnIngress"], "path": "behavioral/ec2/check_op_contract_revoke_client_vpn_ingress.py", "service": "ec2"} {"check_id": "ec2.op-contract-revoke-security-group-egress", "deployments": [], "key": "ec2/op-contract-revoke-security-group-egress", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress"], "path": "behavioral/ec2/check_op_contract_revoke_security_group_egress.py", "service": "ec2"} {"check_id": "ec2.op-contract-revoke-security-group-ingress", "deployments": [], "key": "ec2/op-contract-revoke-security-group-ingress", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress"], "path": "behavioral/ec2/check_op_contract_revoke_security_group_ingress.py", "service": "ec2"} {"check_id": "ec2.op-contract-revoke-security-group-ingress-wrong-group-rejected", "deployments": [], "key": "ec2/op-contract-revoke-security-group-ingress-wrong-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress"], "path": "behavioral/ec2/check_op_contract_revoke_security_group_ingress_wrong_group_rejected.py", "service": "ec2"} {"check_id": "ec2.op-contract-run-instances", "deployments": [], "key": "ec2/op-contract-run-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_run_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-search-local-gateway-routes", "deployments": [], "key": "ec2/op-contract-search-local-gateway-routes", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeLocalGatewayRouteTables", "ec2:SearchLocalGatewayRoutes"], "path": "behavioral/ec2/check_op_contract_search_local_gateway_routes.py", "service": "ec2"} {"check_id": "ec2.op-contract-search-transit-gateway-multicast-groups", "deployments": [], "key": "ec2/op-contract-search-transit-gateway-multicast-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayMulticastDomain", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMulticastDomain", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeregisterTransitGatewayMulticastGroupMembers", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayMulticastDomains", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisassociateTransitGatewayMulticastDomain", "ec2:GetTransitGatewayMulticastDomainAssociations", "ec2:RegisterTransitGatewayMulticastGroupMembers", "ec2:SearchTransitGatewayMulticastGroups"], "path": "behavioral/ec2/check_op_contract_search_transit_gateway_multicast_groups.py", "service": "ec2"} {"check_id": "ec2.op-contract-search-transit-gateway-routes", "deployments": [], "key": "ec2/op-contract-search-transit-gateway-routes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRoute", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:SearchTransitGatewayRoutes"], "path": "behavioral/ec2/check_op_contract_search_transit_gateway_routes.py", "service": "ec2"} {"check_id": "ec2.op-contract-send-diagnostic-interrupt", "deployments": [], "key": "ec2/op-contract-send-diagnostic-interrupt", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:SendDiagnosticInterrupt", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_send_diagnostic_interrupt.py", "service": "ec2"} {"check_id": "ec2.op-contract-start-instances", "deployments": [], "key": "ec2/op-contract-start-instances", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_start_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-start-network-insights-access-scope-analysis", "deployments": [], "key": "ec2/op-contract-start-network-insights-access-scope-analysis", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScope", "ec2:DeleteNetworkInsightsAccessScopeAnalysis", "ec2:DescribeNetworkInsightsAccessScopeAnalyses", "ec2:StartNetworkInsightsAccessScopeAnalysis"], "path": "behavioral/ec2/check_op_contract_start_network_insights_access_scope_analysis.py", "service": "ec2"} {"check_id": "ec2.op-contract-start-network-insights-analysis", "deployments": [], "key": "ec2/op-contract-start-network-insights-analysis", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInsightsPath", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInsightsAnalysis", "ec2:DeleteNetworkInsightsPath", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInsightsAnalyses", "ec2:DescribeVpcs", "ec2:StartNetworkInsightsAnalysis"], "path": "behavioral/ec2/check_op_contract_start_network_insights_analysis.py", "service": "ec2"} {"check_id": "ec2.op-contract-start-vpc-endpoint-service-private-dns-verification", "deployments": [], "key": "ec2/op-contract-start-vpc-endpoint-service-private-dns-verification", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpcEndpointServiceConfiguration", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcs", "ec2:StartVpcEndpointServicePrivateDnsVerification", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/ec2/check_op_contract_start_vpc_endpoint_service_private_dns_verification.py", "service": "ec2"} {"check_id": "ec2.op-contract-stop-instances", "deployments": [], "key": "ec2/op-contract-stop-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_stop_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-terminate-client-vpn-connections", "deployments": [], "key": "ec2/op-contract-terminate-client-vpn-connections", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateClientVpnEndpoint", "ec2:DeleteClientVpnEndpoint", "ec2:TerminateClientVpnConnections"], "path": "behavioral/ec2/check_op_contract_terminate_client_vpn_connections.py", "service": "ec2"} {"check_id": "ec2.op-contract-terminate-instances", "deployments": [], "key": "ec2/op-contract-terminate-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_contract_terminate_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-unassign-ipv6-addresses", "deployments": [], "key": "ec2/op-contract-unassign-ipv6-addresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssignIpv6Addresses", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:UnassignIpv6Addresses"], "path": "behavioral/ec2/check_op_contract_unassign_ipv6_addresses.py", "service": "ec2"} {"check_id": "ec2.op-contract-unassign-private-ip-addresses", "deployments": [], "key": "ec2/op-contract-unassign-private-ip-addresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssignPrivateIpAddresses", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:UnassignPrivateIpAddresses"], "path": "behavioral/ec2/check_op_contract_unassign_private_ip_addresses.py", "service": "ec2"} {"check_id": "ec2.op-contract-unassign-private-nat-gateway-address", "deployments": [], "key": "ec2/op-contract-unassign-private-nat-gateway-address", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssignPrivateNatGatewayAddress", "ec2:CreateNatGateway", "ec2:DeleteNatGateway", "ec2:DescribeNatGateways", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:UnassignPrivateNatGatewayAddress"], "path": "behavioral/ec2/check_op_contract_unassign_private_nat_gateway_address.py", "service": "ec2"} {"check_id": "ec2.op-contract-unlock-snapshot", "deployments": [], "key": "ec2/op-contract-unlock-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeLockedSnapshots", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:LockSnapshot", "ec2:UnlockSnapshot"], "path": "behavioral/ec2/check_op_contract_unlock_snapshot.py", "service": "ec2"} {"check_id": "ec2.op-contract-unmonitor-instances", "deployments": [], "key": "ec2/op-contract-unmonitor-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:UnmonitorInstances"], "path": "behavioral/ec2/check_op_contract_unmonitor_instances.py", "service": "ec2"} {"check_id": "ec2.op-contract-update-capacity-manager-monitored-tag-keys", "deployments": [], "key": "ec2/op-contract-update-capacity-manager-monitored-tag-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "ec2:GetCapacityManagerMonitoredTagKeys", "ec2:UpdateCapacityManagerMonitoredTagKeys"], "path": "behavioral/ec2/check_op_contract_update_capacity_manager_monitored_tag_keys.py", "service": "ec2"} {"check_id": "ec2.op-contract-update-capacity-manager-organizations-access", "deployments": [], "key": "ec2/op-contract-update-capacity-manager-organizations-access", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DisableCapacityManager", "ec2:EnableCapacityManager", "ec2:GetCapacityManagerAttributes", "ec2:UpdateCapacityManagerOrganizationsAccess"], "path": "behavioral/ec2/check_op_contract_update_capacity_manager_organizations_access.py", "service": "ec2"} {"check_id": "ec2.op-contract-update-interruptible-capacity-reservation-allocation", "deployments": [], "key": "ec2/op-contract-update-interruptible-capacity-reservation-allocation", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelCapacityReservation", "ec2:CreateCapacityReservation", "ec2:CreateInterruptibleCapacityReservationAllocation", "ec2:DescribeAvailabilityZones", "ec2:DescribeCapacityReservations", "ec2:UpdateInterruptibleCapacityReservationAllocation"], "path": "behavioral/ec2/check_op_contract_update_interruptible_capacity_reservation_allocation.py", "service": "ec2"} {"check_id": "ec2.op-contract-update-security-group-rule-descriptions-egress", "deployments": [], "key": "ec2/op-contract-update-security-group-rule-descriptions-egress", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroupRules", "ec2:UpdateSecurityGroupRuleDescriptionsEgress"], "path": "behavioral/ec2/check_op_contract_update_security_group_rule_descriptions_egress.py", "service": "ec2"} {"check_id": "ec2.op-contract-update-security-group-rule-descriptions-ingress", "deployments": [], "key": "ec2/op-contract-update-security-group-rule-descriptions-ingress", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroupRules", "ec2:UpdateSecurityGroupRuleDescriptionsIngress"], "path": "behavioral/ec2/check_op_contract_update_security_group_rule_descriptions_ingress.py", "service": "ec2"} {"check_id": "ec2.op-contract-withdraw-byoip-cidr", "deployments": [], "key": "ec2/op-contract-withdraw-byoip-cidr", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:WithdrawByoipCidr"], "path": "behavioral/ec2/check_op_contract_withdraw_byoip_cidr.py", "service": "ec2"} {"check_id": "ec2.op-malformed-security-group-cidr-rejected", "deployments": [], "key": "ec2/op-malformed-security-group-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNatGateway", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_op_malformed_security_group_cidr_rejected.py", "service": "ec2"} {"check_id": "ec2.op-release-associated-eip-fails", "deployments": [], "key": "ec2/op-release-associated-eip-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNatGateway", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateAddress", "ec2:DisassociateRouteTable", "ec2:ReleaseAddress"], "path": "behavioral/ec2/check_op_release_associated_eip_fails.py", "service": "ec2"} {"check_id": "ec2.op-volume-attach-zone-mismatch-fails", "deployments": [], "key": "ec2/op-volume-attach-zone-mismatch-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachVolume", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNatGateway", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_op_volume_attach_zone_mismatch_fails.py", "service": "ec2"} {"check_id": "ec2.op-vpc-cidr-out-of-range-rejected", "deployments": [], "key": "ec2/op-vpc-cidr-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_op_vpc_cidr_out_of_range_rejected.py", "service": "ec2"} {"check_id": "ec2.overly-permissive-accept-vpc-peering-connection-already-active-is-an-idempotent-no-op", "deployments": [], "key": "ec2/overly-permissive-accept-vpc-peering-connection-already-active-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_overly_permissive_accept_vpc_peering_connection_already_active_is_an_idempotent_no_op.py", "service": "ec2"} {"check_id": "ec2.overly-permissive-allocate-hosts-instance-family-and-type-combo-rejected", "deployments": [], "key": "ec2/overly-permissive-allocate-hosts-instance-family-and-type-combo-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateHosts", "ec2:DescribeAvailabilityZones", "ec2:DescribeHosts", "ec2:ReleaseHosts"], "path": "behavioral/ec2/check_overly_permissive_allocate_hosts_instance_family_and_type_combo_rejected.py", "service": "ec2"} {"check_id": "ec2.persist-hibernation-on-unencrypted-root-rejected", "deployments": [], "key": "ec2/persist-hibernation-on-unencrypted-root-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_persist_hibernation_on_unencrypted_root_rejected.py", "service": "ec2"} {"check_id": "ec2.placement-cluster-group-members-read-one-shared-zone-and-their-group-in-guest", "deployments": [], "key": "ec2/placement-cluster-group-members-read-one-shared-zone-and-their-group-in-guest", "labels": ["axis:happy-path", "dp:endpoint", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreatePlacementGroup", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeletePlacementGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribePlacementGroups", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_placement_cluster_group_members_read_one_shared_zone_and_their_group_in_guest.py", "service": "ec2"} {"check_id": "ec2.placement-group-and-public-ipv4-pool", "deployments": [], "key": "ec2/placement-group-and-public-ipv4-pool", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreatePlacementGroup", "ec2:CreatePublicIpv4Pool", "ec2:DeletePlacementGroup", "ec2:DeletePublicIpv4Pool", "ec2:DescribePlacementGroups", "ec2:DescribePublicIpv4Pools"], "path": "behavioral/ec2/check_placement_group_and_public_ipv4_pool.py", "service": "ec2"} {"check_id": "ec2.placement-partition-group-serves-distinct-partition-numbers-to-the-guests", "deployments": [], "key": "ec2/placement-partition-group-serves-distinct-partition-numbers-to-the-guests", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreatePlacementGroup", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeletePlacementGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribePlacementGroups", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_placement_partition_group_serves_distinct_partition_numbers_to_the_guests.py", "service": "ec2"} {"check_id": "ec2.placement-partition-number-above-the-group-count-rejected", "deployments": [], "key": "ec2/placement-partition-number-above-the-group-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreatePlacementGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeletePlacementGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribePlacementGroups", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_placement_partition_number_above_the_group_count_rejected.py", "service": "ec2"} {"check_id": "ec2.placement-spread-group-rejects-more-instances-than-one-zone-can-place", "deployments": [], "key": "ec2/placement-spread-group-rejects-more-instances-than-one-zone-can-place", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreatePlacementGroup", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeletePlacementGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribePlacementGroups", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_placement_spread_group_rejects_more_instances_than_one_zone_can_place.py", "service": "ec2"} {"check_id": "ec2.reject-transit-gateway-peering-attachment-after-accept-blocked", "deployments": [], "key": "ec2/reject-transit-gateway-peering-attachment-after-accept-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayPeeringAttachment", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPeeringAttachment", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGateways", "ec2:RejectTransitGatewayPeeringAttachment", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_reject_transit_gateway_peering_attachment_after_accept_blocked.py", "service": "ec2"} {"check_id": "ec2.reject-transit-gateway-peering-attachment-wrong-state-rejected", "deployments": [], "key": "ec2/reject-transit-gateway-peering-attachment-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayPeeringAttachment", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPeeringAttachment", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGateways", "ec2:RejectTransitGatewayPeeringAttachment", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_reject_transit_gateway_peering_attachment_wrong_state_rejected.py", "service": "ec2"} {"check_id": "ec2.replace-transit-gateway-route-restores-target-and-upserts-new-destination", "deployments": [], "key": "ec2/replace-transit-gateway-route-restores-target-and-upserts-new-destination", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRoute", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:ReplaceTransitGatewayRoute", "ec2:SearchTransitGatewayRoutes"], "path": "behavioral/ec2/check_replace_transit_gateway_route_restores_target_and_upserts_new_destination.py", "service": "ec2"} {"check_id": "ec2.reset-network-interface-attribute-invalid-attribute-rejected", "deployments": [], "key": "ec2/reset-network-interface-attribute-invalid-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute"], "path": "behavioral/ec2/check_reset_network_interface_attribute_invalid_attribute_rejected.py", "service": "ec2"} {"check_id": "ec2.route-creation-duplicate-destination-rejected", "deployments": [], "key": "ec2/route-creation-duplicate-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNetworkInterface", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway"], "path": "behavioral/ec2/check_route_creation_duplicate_destination_rejected.py", "service": "ec2"} {"check_id": "ec2.route-server-delete-blocked-by-association-rejected", "deployments": [], "key": "ec2/route-server-delete-blocked-by-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateVpc", "ec2:DeleteRouteServer", "ec2:DeleteVpc", "ec2:DescribeRouteServers", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_route_server_delete_blocked_by_association_rejected.py", "service": "ec2"} {"check_id": "ec2.route-server-endpoint-lifecycle-transitions", "deployments": [], "key": "ec2/route-server-endpoint-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteServer", "ec2:DeleteRouteServerEndpoint", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServers", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_route_server_endpoint_lifecycle_transitions.py", "service": "ec2"} {"check_id": "ec2.route-server-error-semantics", "deployments": [], "key": "ec2/route-server-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer"], "path": "behavioral/ec2/check_route_server_error_semantics.py", "service": "ec2"} {"check_id": "ec2.route-server-lifecycle-full", "deployments": [], "key": "ec2/route-server-lifecycle-full", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:DeleteRouteServer", "ec2:DeleteRouteServerEndpoint", "ec2:DeleteRouteServerPeer", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers", "ec2:DescribeRouteServers", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisableRouteServerPropagation", "ec2:DisassociateRouteServer", "ec2:EnableRouteServerPropagation", "ec2:GetRouteServerAssociations", "ec2:GetRouteServerPropagations"], "path": "behavioral/ec2/check_route_server_lifecycle_full.py", "service": "ec2"} {"check_id": "ec2.route-server-lifecycle-transitions", "deployments": [], "key": "ec2/route-server-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateVpc", "ec2:DeleteRouteServer", "ec2:DeleteVpc", "ec2:DescribeRouteServers", "ec2:DisassociateRouteServer", "ec2:GetRouteServerAssociations"], "path": "behavioral/ec2/check_route_server_lifecycle_transitions.py", "service": "ec2"} {"check_id": "ec2.route-server-peer-lifecycle-transitions", "deployments": [], "key": "ec2/route-server-peer-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteRouteServerPeer", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteServerEndpoints", "ec2:DescribeRouteServerPeers", "ec2:DescribeRouteServers", "ec2:GetRouteServerAssociations", "ec2:GetRouteServerRoutingDatabase"], "path": "behavioral/ec2/check_route_server_peer_lifecycle_transitions.py", "service": "ec2"} {"check_id": "ec2.route-server-routing-database-reflects-learned-routes", "deployments": [], "key": "ec2/route-server-routing-database-reflects-learned-routes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteServer", "ec2:CreateRouteServer", "ec2:CreateRouteServerEndpoint", "ec2:CreateRouteServerPeer", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:EnableRouteServerPropagation", "ec2:GetRouteServerAssociations", "ec2:GetRouteServerPropagations", "ec2:GetRouteServerRoutingDatabase"], "path": "behavioral/ec2/check_route_server_routing_database_reflects_learned_routes.py", "service": "ec2"} {"check_id": "ec2.route-table-local-route-and-main-association-immutable", "deployments": [], "key": "ec2/route-table-local-route-and-main-association-immutable", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_route_table_local_route_and_main_association_immutable.py", "service": "ec2"} {"check_id": "ec2.route-table-routes-read-back-with-origin-and-state-beside-the-local-routes", "deployments": [], "key": "ec2/route-table-routes-read-back-with-origin-and-state-beside-the-local-routes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateEgressOnlyInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteEgressOnlyInternetGateway", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_route_table_routes_read_back_with_origin_and_state_beside_the_local_routes.py", "service": "ec2"} {"check_id": "ec2.run-instances-client-token-idempotent", "deployments": [], "key": "ec2/run-instances-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_run_instances_client_token_idempotent.py", "service": "ec2"} {"check_id": "ec2.run-instances-client-token-with-changed-parameters-rejected", "deployments": [], "key": "ec2/run-instances-client-token-with-changed-parameters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_run_instances_client_token_with_changed_parameters_rejected.py", "service": "ec2"} {"check_id": "ec2.run-instances-refuses-a-nonexistent-image-and-launches-nothing", "deployments": [], "key": "ec2/run-instances-refuses-a-nonexistent-image-and-launches-nothing", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_run_instances_refuses_a_nonexistent_image_and_launches_nothing.py", "service": "ec2"} {"check_id": "ec2.run-instances-refuses-an-eight-hex-image-id-as-not-found", "deployments": [], "key": "ec2/run-instances-refuses-an-eight-hex-image-id-as-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_run_instances_refuses_an_eight_hex_image_id_as_not_found.py", "service": "ec2"} {"check_id": "ec2.secip-assigning-more-private-ips-than-the-instance-type-permits-rejected", "deployments": [], "key": "ec2/secip-assigning-more-private-ips-than-the-instance-type-permits-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssignPrivateIpAddresses", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:UnassignPrivateIpAddresses", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_secip_assigning_more_private_ips_than_the_instance_type_permits_rejected.py", "service": "ec2"} {"check_id": "ec2.secip-hot-attached-second-eni-appears-in-the-guest-as-a-new-interface-with-its-own-address", "deployments": [], "key": "ec2/secip-hot-attached-second-eni-appears-in-the-guest-as-a-new-interface-with-its-own-address", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachNetworkInterface", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNetworkInterface", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "ec2:DetachNetworkInterface", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_secip_hot_attached_second_eni_appears_in_the_guest_as_a_new_interface_with_its_own_address.py", "service": "ec2"} {"check_id": "ec2.secip-secondary-private-ip-is-reachable-from-a-peer-only-when-the-eni-holds-it", "deployments": [], "key": "ec2/secip-secondary-private-ip-is-reachable-from-a-peer-only-when-the-eni-holds-it", "labels": ["axis:happy-path", "dp:endpoint", "dp:native", "plane:data"], "operations": ["ec2:AssignPrivateIpAddresses", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:UnassignPrivateIpAddresses", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_secip_secondary_private_ip_is_reachable_from_a_peer_only_when_the_eni_holds_it.py", "service": "ec2"} {"check_id": "ec2.security-group-all-protocols-egress-in-another-port-form-rejected-as-duplicate", "deployments": [], "key": "ec2/security-group-all-protocols-egress-in-another-port-form-rejected-as-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress"], "path": "behavioral/ec2/check_security_group_all_protocols_egress_in_another_port_form_rejected_as_duplicate.py", "service": "ec2"} {"check_id": "ec2.security-group-all-protocols-egress-revoke-ignores-the-port-range", "deployments": [], "key": "ec2/security-group-all-protocols-egress-revoke-ignores-the-port-range", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress"], "path": "behavioral/ec2/check_security_group_all_protocols_egress_revoke_ignores_the_port_range.py", "service": "ec2"} {"check_id": "ec2.security-group-all-protocols-ingress-revokes-across-port-forms", "deployments": [], "key": "ec2/security-group-all-protocols-ingress-revokes-across-port-forms", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress"], "path": "behavioral/ec2/check_security_group_all_protocols_ingress_revokes_across_port_forms.py", "service": "ec2"} {"check_id": "ec2.security-group-authorize-revoke-ingress", "deployments": [], "key": "ec2/security-group-authorize-revoke-ingress", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress"], "path": "behavioral/ec2/check_security_group_authorize_revoke_ingress.py", "service": "ec2"} {"check_id": "ec2.security-group-default-egress-and-rule-ids", "deployments": [], "key": "ec2/security-group-default-egress-and-rule-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress"], "path": "behavioral/ec2/check_security_group_default_egress_and_rule_ids.py", "service": "ec2"} {"check_id": "ec2.security-group-delete-while-in-use-fails", "deployments": [], "key": "ec2/security-group-delete-while-in-use-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_security_group_delete_while_in_use_fails.py", "service": "ec2"} {"check_id": "ec2.security-group-duplicate-ingress-rule-fails", "deployments": [], "key": "ec2/security-group-duplicate-ingress-rule-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_security_group_duplicate_ingress_rule_fails.py", "service": "ec2"} {"check_id": "ec2.security-group-duplicate-name-concurrent", "deployments": [], "key": "ec2/security-group-duplicate-name-concurrent", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_security_group_duplicate_name_concurrent.py", "service": "ec2"} {"check_id": "ec2.security-group-name-notfound-error", "deployments": [], "key": "ec2/security-group-name-notfound-error", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups"], "path": "behavioral/ec2/check_security_group_name_notfound_error.py", "service": "ec2"} {"check_id": "ec2.security-group-protocol-keywords-are-case-insensitive-aliases", "deployments": [], "key": "ec2/security-group-protocol-keywords-are-case-insensitive-aliases", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_security_group_protocol_keywords_are_case_insensitive_aliases.py", "service": "ec2"} {"check_id": "ec2.security-group-rule-id-revoke-across-direction-or-group-rejected", "deployments": [], "key": "ec2/security-group-rule-id-revoke-across-direction-or-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress"], "path": "behavioral/ec2/check_security_group_rule_id_revoke_across_direction_or_group_rejected.py", "service": "ec2"} {"check_id": "ec2.security-group-rules-quota-is-enforced-per-direction-at-the-accounts-own-limit-rejected", "deployments": [], "key": "ec2/security-group-rules-quota-is-enforced-per-direction-at-the-accounts-own-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress", "service-quotas:GetServiceQuota", "service-quotas:ListServiceQuotas"], "path": "behavioral/ec2/check_security_group_rules_quota_is_enforced_per_direction_at_the_accounts_own_limit_rejected.py", "service": "ec2"} {"check_id": "ec2.security-group-unknown-protocol-or-icmpv6-zero-ports-rejected", "deployments": [], "key": "ec2/security-group-unknown-protocol-or-icmpv6-zero-ports-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_security_group_unknown_protocol_or_icmpv6_zero_ports_rejected.py", "service": "ec2"} {"check_id": "ec2.shutdown-api-termination-disabled-rejects-terminate-but-still-permits-stop", "deployments": [], "key": "ec2/shutdown-api-termination-disabled-rejects-terminate-but-still-permits-stop", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifyInstanceAttribute", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_shutdown_api_termination_disabled_rejects_terminate_but_still_permits_stop.py", "service": "ec2"} {"check_id": "ec2.shutdown-in-guest-halt-with-stop-behavior-leaves-it-stopped-and-restartable", "deployments": [], "key": "ec2/shutdown-in-guest-halt-with-stop-behavior-leaves-it-stopped-and-restartable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifyInstanceAttribute", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_shutdown_in_guest_halt_with_stop_behavior_leaves_it_stopped_and_restartable.py", "service": "ec2"} {"check_id": "ec2.shutdown-in-guest-halt-with-terminate-behavior-terminates-the-instance", "deployments": [], "key": "ec2/shutdown-in-guest-halt-with-terminate-behavior-terminates-the-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:ModifyInstanceAttribute", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_shutdown_in_guest_halt_with_terminate_behavior_terminates_the_instance.py", "service": "ec2"} {"check_id": "ec2.snapshot-create-from-volume-and-describe", "deployments": [], "key": "ec2/snapshot-create-from-volume-and-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DetachVolume"], "path": "behavioral/ec2/check_snapshot_create_from_volume_and_describe.py", "service": "ec2"} {"check_id": "ec2.snapshot-in-use-by-registered-image-delete-rejected", "deployments": [], "key": "ec2/snapshot-in-use-by-registered-image-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:RegisterImage"], "path": "behavioral/ec2/check_snapshot_in_use_by_registered_image_delete_rejected.py", "service": "ec2"} {"check_id": "ec2.spot-price-history-repeat-calls-return-stable-price", "deployments": [], "key": "ec2/spot-price-history-repeat-calls-return-stable-price", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSpotPriceHistory"], "path": "behavioral/ec2/check_spot_price_history_repeat_calls_return_stable_price.py", "service": "ec2"} {"check_id": "ec2.spotint-cancelling-a-fulfilled-spot-request-leaves-the-guest-running-with-no-notice", "deployments": [], "key": "ec2/spotint-cancelling-a-fulfilled-spot-request-leaves-the-guest-running-with-no-notice", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CancelSpotInstanceRequests", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeSpotInstanceRequests", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_spotint_cancelling_a_fulfilled_spot_request_leaves_the_guest_running_with_no_notice.py", "service": "ec2"} {"check_id": "ec2.spotint-one-time-spot-request-refuses-interruption-behavior-stop", "deployments": [], "key": "ec2/spotint-one-time-spot-request-refuses-interruption-behavior-stop", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelSpotInstanceRequests", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSpotInstanceRequests", "ec2:RequestSpotInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_spotint_one_time_spot_request_refuses_interruption_behavior_stop.py", "service": "ec2"} {"check_id": "ec2.spotint-spot-price-below-market-is-never-fulfilled-and-launches-no-instance", "deployments": [], "key": "ec2/spotint-spot-price-below-market-is-never-fulfilled-and-launches-no-instance", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["ec2:CancelSpotInstanceRequests", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:RequestSpotInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_spotint_spot_price_below_market_is_never_fulfilled_and_launches_no_instance.py", "service": "ec2"} {"check_id": "ec2.spotint-spot-request-fulfilment-boots-a-guest-that-reports-no-interruption-notice", "deployments": [], "key": "ec2/spotint-spot-request-fulfilment-boots-a-guest-that-reports-no-interruption-notice", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CancelSpotInstanceRequests", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeSpotInstanceRequests", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RequestSpotInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_spotint_spot_request_fulfilment_boots_a_guest_that_reports_no_interruption_notice.py", "service": "ec2"} {"check_id": "ec2.srcdest-check-enforcement-gates-appliance-forwarded-traffic", "deployments": [], "key": "ec2/srcdest-check-enforcement-gates-appliance-forwarded-traffic", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyInstanceAttribute", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_srcdest_check_enforcement_gates_appliance_forwarded_traffic.py", "service": "ec2"} {"check_id": "ec2.stop-protected-instance-refuses-stop-until-the-attribute-is-cleared", "deployments": [], "key": "ec2/stop-protected-instance-refuses-stop-until-the-attribute-is-cleared", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_stop_protected_instance_refuses_stop_until_the_attribute_is_cleared.py", "service": "ec2"} {"check_id": "ec2.stop-start-transitions-are-monotone-and-reads-do-not-advance-them", "deployments": [], "key": "ec2/stop-start-transitions-are-monotone-and-reads-do-not-advance-them", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceStatus", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_stop_start_transitions_are_monotone_and_reads_do_not_advance_them.py", "service": "ec2"} {"check_id": "ec2.store-image-task-lifecycle-to-completion", "deployments": [], "key": "ec2/store-image-task-lifecycle-to-completion", "labels": ["axis:happy-path", "plane:control"], "operations": ["ebs:CompleteSnapshot", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:CreateStoreImageTask", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:DescribeImages", "ec2:DescribeSnapshots", "ec2:DescribeStoreImageTasks", "ec2:RegisterImage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2"], "path": "behavioral/ec2/check_store_image_task_lifecycle_to_completion.py", "service": "ec2"} {"check_id": "ec2.subnet-cidr-outside-vpc-range-fails", "deployments": [], "key": "ec2/subnet-cidr-outside-vpc-range-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_subnet_cidr_outside_vpc_range_fails.py", "service": "ec2"} {"check_id": "ec2.subnet-cidr-overlap-conflict-fails", "deployments": [], "key": "ec2/subnet-cidr-overlap-conflict-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_subnet_cidr_overlap_conflict_fails.py", "service": "ec2"} {"check_id": "ec2.subnet-cidr-reservation-and-eni-permission", "deployments": [], "key": "ec2/subnet-cidr-reservation-and-eni-permission", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateSubnet", "ec2:CreateSubnetCidrReservation", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteSubnetCidrReservation", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ec2:GetSubnetCidrReservations"], "path": "behavioral/ec2/check_subnet_cidr_reservation_and_eni_permission.py", "service": "ec2"} {"check_id": "ec2.subnet-cidr-reservation-write-read-delete", "deployments": [], "key": "ec2/subnet-cidr-reservation-write-read-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateSubnetCidrReservation", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteSubnetCidrReservation", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ec2:GetSubnetCidrReservations"], "path": "behavioral/ec2/check_subnet_cidr_reservation_write_read_delete.py", "service": "ec2"} {"check_id": "ec2.subnet-created-with-an-ipv6-cidr-block-reads-it-back-associated", "deployments": [], "key": "ec2/subnet-created-with-an-ipv6-cidr-block-reads-it-back-associated", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute"], "path": "behavioral/ec2/check_subnet_created_with_an_ipv6_cidr_block_reads_it_back_associated.py", "service": "ec2"} {"check_id": "ec2.tags-validation-boundaries", "deployments": [], "key": "ec2/tags-validation-boundaries", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNatGateway", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeInternetGateways", "ec2:DescribeNatGateways", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeTags", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable"], "path": "behavioral/ec2/check_tags_validation_boundaries.py", "service": "ec2"} {"check_id": "ec2.terminate-instance-with-disable-api-termination-fails", "deployments": [], "key": "ec2/terminate-instance-with-disable-api-termination-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_terminate_instance_with_disable_api_termination_fails.py", "service": "ec2"} {"check_id": "ec2.terminate-termination-protected-instance-rejected", "deployments": [], "key": "ec2/terminate-termination-protected-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_terminate_termination_protected_instance_rejected.py", "service": "ec2"} {"check_id": "ec2.timesync-chrony-in-the-guest-locks-onto-the-link-local-amazon-time-sync-source", "deployments": [], "key": "ec2/timesync-chrony-in-the-guest-locks-onto-the-link-local-amazon-time-sync-source", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_timesync_chrony_in_the_guest_locks_onto_the_link_local_amazon_time_sync_source.py", "service": "ec2"} {"check_id": "ec2.timesync-guest-clock-agrees-with-the-aws-api-date-header-inside-two-seconds", "deployments": [], "key": "ec2/timesync-guest-clock-agrees-with-the-aws-api-date-header-inside-two-seconds", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRegions", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_timesync_guest_clock_agrees_with_the_aws_api_date_header_inside_two_seconds.py", "service": "ec2"} {"check_id": "ec2.traffic-mirror-filter-rule-target-lifecycle", "deployments": [], "key": "ec2/traffic-mirror-filter-rule-target-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateTrafficMirrorFilter", "ec2:CreateTrafficMirrorFilterRule", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteTrafficMirrorFilter", "ec2:DeleteVpc", "ec2:DescribeTrafficMirrorFilters", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_traffic_mirror_filter_rule_target_lifecycle.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-family-error-semantics", "deployments": [], "key": "ec2/transit-gateway-family-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayConnect", "ec2:CreateTransitGatewayConnectPeer", "ec2:CreateTransitGatewayMulticastDomain", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayPrefixListReference", "ec2:CreateTransitGatewayRoute", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayRouteTableAnnouncement", "ec2:CreateTransitGatewayVpcAttachment"], "path": "behavioral/ec2/check_transit_gateway_family_error_semantics.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-metering-policy-entry-crud-consistency", "deployments": [], "key": "ec2/transit-gateway-metering-policy-entry-crud-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMeteringPolicy", "ec2:CreateTransitGatewayMeteringPolicyEntry", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMeteringPolicy", "ec2:DeleteTransitGatewayMeteringPolicyEntry", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayMeteringPolicyEntries"], "path": "behavioral/ec2/check_transit_gateway_metering_policy_entry_crud_consistency.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-metering-policy-entry-lifecycle", "deployments": [], "key": "ec2/transit-gateway-metering-policy-entry-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayMeteringPolicy", "ec2:CreateTransitGatewayMeteringPolicyEntry", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayMeteringPolicy", "ec2:DeleteTransitGatewayMeteringPolicyEntry", "ec2:DescribeTransitGatewayMeteringPolicies", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayMeteringPolicyEntries"], "path": "behavioral/ec2/check_transit_gateway_metering_policy_entry_lifecycle.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-peering-reject-blocks-accept", "deployments": [], "key": "ec2/transit-gateway-peering-reject-blocks-accept", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayPeeringAttachment", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPeeringAttachment", "ec2:DescribeRegions", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGateways", "ec2:RejectTransitGatewayPeeringAttachment", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_transit_gateway_peering_reject_blocks_accept.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-policy-table-entry-crud-consistency", "deployments": [], "key": "ec2/transit-gateway-policy-table-entry-crud-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPolicyTable", "ec2:CreateTransitGatewayPolicyTableEntry", "ec2:CreateTransitGatewayRouteTable", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPolicyTable", "ec2:DeleteTransitGatewayPolicyTableEntry", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayPolicyTables", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPolicyTableEntries"], "path": "behavioral/ec2/check_transit_gateway_policy_table_entry_crud_consistency.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-prefix-list-reference-lifecycle", "deployments": [], "key": "ec2/transit-gateway-prefix-list-reference-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPrefixListReference", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteManagedPrefixList", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPrefixListReference", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeManagedPrefixLists", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:GetTransitGatewayPrefixListReferences", "ec2:ModifyTransitGatewayPrefixListReference"], "path": "behavioral/ec2/check_transit_gateway_prefix_list_reference_lifecycle.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-prefix-list-reference-modify-reflects", "deployments": [], "key": "ec2/transit-gateway-prefix-list-reference-modify-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPrefixListReference", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteManagedPrefixList", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPrefixListReference", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeManagedPrefixLists", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:GetTransitGatewayPrefixListReferences", "ec2:ModifyTransitGatewayPrefixListReference"], "path": "behavioral/ec2/check_transit_gateway_prefix_list_reference_modify_reflects.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-route-table-announcement-over-pending-peering-rejected", "deployments": [], "key": "ec2/transit-gateway-route-table-announcement-over-pending-peering-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AcceptTransitGatewayPeeringAttachment", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayPeeringAttachment", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayRouteTableAnnouncement", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayPeeringAttachment", "ec2:DeleteTransitGatewayRouteTable", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGatewayRouteTableAnnouncements", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGateways", "sts:GetCallerIdentity"], "path": "behavioral/ec2/check_transit_gateway_route_table_announcement_over_pending_peering_rejected.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-route-table-association-moves-between-tables", "deployments": [], "key": "ec2/transit-gateway-route-table-association-moves-between-tables", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateTransitGatewayRouteTable", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeleteVpc", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DisassociateTransitGatewayRouteTable", "ec2:GetTransitGatewayRouteTableAssociations"], "path": "behavioral/ec2/check_transit_gateway_route_table_association_moves_between_tables.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-route-table-propagation-produces-route-duplicate-enable-rejected", "deployments": [], "key": "ec2/transit-gateway-route-table-propagation-produces-route-duplicate-enable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DisableTransitGatewayRouteTablePropagation", "ec2:EnableTransitGatewayRouteTablePropagation", "ec2:GetTransitGatewayRouteTablePropagations", "ec2:SearchTransitGatewayRoutes"], "path": "behavioral/ec2/check_transit_gateway_route_table_propagation_produces_route_duplicate_enable_rejected.py", "service": "ec2"} {"check_id": "ec2.transit-gateway-static-route-attachments-present-blackhole-route-attachments-absent", "deployments": [], "key": "ec2/transit-gateway-static-route-attachments-present-blackhole-route-attachments-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRoute", "ec2:CreateTransitGatewayRouteTable", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRoute", "ec2:DeleteTransitGatewayRouteTable", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeleteVpc", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayRouteTables", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:SearchTransitGatewayRoutes"], "path": "behavioral/ec2/check_transit_gateway_static_route_attachments_present_blackhole_route_attachments_absent.py", "service": "ec2"} {"check_id": "ec2.trunk-interface-association-lifecycle", "deployments": [], "key": "ec2/trunk-interface-association-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateTrunkInterface", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeTrunkInterfaceAssociations", "ec2:DescribeVpcs", "ec2:DisassociateTrunkInterface"], "path": "behavioral/ec2/check_trunk_interface_association_lifecycle.py", "service": "ec2"} {"check_id": "ec2.trunk-interface-association-non-trunk-type-rejected", "deployments": [], "key": "ec2/trunk-interface-association-non-trunk-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateTrunkInterface", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTrunkInterfaceAssociations"], "path": "behavioral/ec2/check_trunk_interface_association_non_trunk_type_rejected.py", "service": "ec2"} {"check_id": "ec2.trunk-interface-associations-reflects-associate-disassociate", "deployments": [], "key": "ec2/trunk-interface-associations-reflects-associate-disassociate", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateTrunkInterface", "ec2:CreateNetworkInterface", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTrunkInterfaceAssociations", "ec2:DisassociateTrunkInterface"], "path": "behavioral/ec2/check_trunk_interface_associations_reflects_associate_disassociate.py", "service": "ec2"} {"check_id": "ec2.two-instances-from-one-launch-keep-independent-stop-and-terminate-states", "deployments": [], "key": "ec2/two-instances-from-one-launch-keep-independent-stop-and-terminate-states", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_two_instances_from_one_launch_keep_independent_stop_and_terminate_states.py", "service": "ec2"} {"check_id": "ec2.validate-security-group-quotas-for-interface-exceeded-rejected", "deployments": [], "key": "ec2/validate-security-group-quotas-for-interface-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeSecurityGroups", "ec2:ValidateSecurityGroupQuotasForInterface"], "path": "behavioral/ec2/check_validate_security_group_quotas_for_interface_exceeded_rejected.py", "service": "ec2"} {"check_id": "ec2.verified-access-and-insights-error-semantics", "deployments": [], "key": "ec2/verified-access-and-insights-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateNetworkInsightsPath", "ec2:CreateVerifiedAccessGroup", "ec2:CreateVerifiedAccessTrustProvider", "ec2:DeleteNetworkInsightsAccessScope"], "path": "behavioral/ec2/check_verified_access_and_insights_error_semantics.py", "service": "ec2"} {"check_id": "ec2.volume-attach-to-second-instance-fails", "deployments": [], "key": "ec2/volume-attach-to-second-instance-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachVolume", "ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_volume_attach_to_second_instance_fails.py", "service": "ec2"} {"check_id": "ec2.volume-create-attach-detach-delete-lifecycle", "deployments": [], "key": "ec2/volume-create-attach-detach-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachVolume", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RunInstances", "ec2:TerminateInstances"], "path": "behavioral/ec2/check_volume_create_attach_detach_delete_lifecycle.py", "service": "ec2"} {"check_id": "ec2.volume-delete-while-attached-fails", "deployments": [], "key": "ec2/volume-delete-while-attached-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachVolume", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2/check_volume_delete_while_attached_fails.py", "service": "ec2"} {"check_id": "ec2.volume-modify-size-and-type-lifecycle", "deployments": [], "key": "ec2/volume-modify-size-and-type-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:ModifyVolume"], "path": "behavioral/ec2/check_volume_modify_size_and_type_lifecycle.py", "service": "ec2"} {"check_id": "ec2.vpc-endpoint-gateway-create-reject-bad-service", "deployments": [], "key": "ec2/vpc-endpoint-gateway-create-reject-bad-service", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:ModifyVpcEndpoint"], "path": "behavioral/ec2/check_vpc_endpoint_gateway_create_reject_bad_service.py", "service": "ec2"} {"check_id": "ec2.vpc-name-resolution-dhcp-black-hole-nameserver-fails-guest-lookups-while-default-resolves", "deployments": [], "key": "ec2/vpc-name-resolution-dhcp-black-hole-nameserver-fails-guest-lookups-while-default-resolves", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateDhcpOptions", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateDhcpOptions", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteDhcpOptions", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeDhcpOptions", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2/check_vpc_name_resolution_dhcp_black_hole_nameserver_fails_guest_lookups_while_default_resolves.py", "service": "ec2"} {"check_id": "ec2.vpc-peering-connection-lifecycle", "deployments": [], "key": "ec2/vpc-peering-connection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_vpc_peering_connection_lifecycle.py", "service": "ec2"} {"check_id": "ec2.vpc-secondary-cidr-block-association-lifecycle", "deployments": [], "key": "ec2/vpc-secondary-cidr-block-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateVpcCidrBlock", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateVpcCidrBlock"], "path": "behavioral/ec2/check_vpc_secondary_cidr_block_association_lifecycle.py", "service": "ec2"} {"check_id": "ec2.vpc-subnet-create-describe-delete-lifecycle", "deployments": [], "key": "ec2/vpc-subnet-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs"], "path": "behavioral/ec2/check_vpc_subnet_create_describe_delete_lifecycle.py", "service": "ec2"} {"check_id": "ec2.vpn-and-vpc-config-error-semantics", "deployments": [], "key": "ec2/vpn-and-vpc-config-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpcEndpointConnectionNotification", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:CreateVpnConnection", "ec2:CreateVpnConnectionRoute"], "path": "behavioral/ec2/check_vpn_and_vpc_config_error_semantics.py", "service": "ec2"} {"check_id": "ec2__ecs.awsvpc-task-eni-matches-the-ec2-view-and-is-released-on-stop", "deployments": [], "key": "ec2__ecs/awsvpc-task-eni-matches-the-ec2-view-and-is-released-on-stop", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNetworkInterface", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ec2__ecs/check_awsvpc_task_eni_matches_the_ec2_view_and_is_released_on_stop.py", "service": "ec2__ecs"} {"check_id": "ec2__ecs__events__sqs.xsvc-ecs-2-container-instance-draining-event-reaches-draining-rule-not-active-rule", "deployments": [], "key": "ec2__ecs__events__sqs/xsvc-ecs-2-container-instance-draining-event-reaches-draining-rule-not-active-rule", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:UpdateContainerInstancesState", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter"], "path": "behavioral/ec2__ecs__events__sqs/check_xsvc_ecs_2_container_instance_draining_event_reaches_draining_rule_not_active_rule.py", "service": "ec2__ecs__events__sqs"} {"check_id": "ec2__ecs__logs.deep-ecs-1-guestdepth-ebs-runtask-without-volume-configuration-rejected", "deployments": [], "key": "ec2__ecs__logs/deep-ecs-1-guestdepth-ebs-runtask-without-volume-configuration-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ec2__ecs__logs/check_deep_ecs_1_guestdepth_ebs_runtask_without_volume_configuration_rejected.py", "service": "ec2__ecs__logs"} {"check_id": "ec2__ecs__logs.deep-ecs-1-guestdepth-ebs-volume-configured-at-launch", "deployments": [], "key": "ec2__ecs__logs/deep-ecs-1-guestdepth-ebs-volume-configured-at-launch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ec2__ecs__logs/check_deep_ecs_1_guestdepth_ebs_volume_configured_at_launch.py", "service": "ec2__ecs__logs"} {"check_id": "ec2__ecs__logs.deep-ecs-1-guestdepth-firelens-fluentbit-routes-app-output", "deployments": [], "key": "ec2__ecs__logs/deep-ecs-1-guestdepth-firelens-fluentbit-routes-app-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ec2__ecs__logs/check_deep_ecs_1_guestdepth_firelens_fluentbit_routes_app_output.py", "service": "ec2__ecs__logs"} {"check_id": "ec2__ecs__logs.deep-ecs-1-guestdepth-pidmode-task", "deployments": [], "key": "ec2__ecs__logs/deep-ecs-1-guestdepth-pidmode-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ec2__ecs__logs/check_deep_ecs_1_guestdepth_pidmode_task.py", "service": "ec2__ecs__logs"} {"check_id": "ec2__elbv2.xsvc-elbv2-3-alb-security-group-ingress-revoked-client-connections-blocked-by-timeout", "deployments": [], "key": "ec2__elbv2/xsvc-elbv2-3-alb-security-group-ingress-revoked-client-connections-blocked-by-timeout", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/ec2__elbv2/check_xsvc_elbv2_3_alb_security_group_ingress_revoked_client_connections_blocked_by_timeout.py", "service": "ec2__elbv2"} {"check_id": "ec2__elbv2.xsvc-elbv2-3-target-security-group-ingress-revoked-health-times-out-until-reauthorized", "deployments": [], "key": "ec2__elbv2/xsvc-elbv2-3-target-security-group-ingress-revoked-health-times-out-until-reauthorized", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/ec2__elbv2/check_xsvc_elbv2_3_target_security_group_ingress_revoked_health_times_out_until_reauthorized.py", "service": "ec2__elbv2"} {"check_id": "ec2__elbv2__ssm.dtgthealth-guest-health-endpoint-decides-alb-target-rotation", "deployments": [], "key": "ec2__elbv2__ssm/dtgthealth-guest-health-endpoint-decides-alb-target-rotation", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__elbv2__ssm/check_dtgthealth_guest_health_endpoint_decides_alb_target_rotation.py", "service": "ec2__elbv2__ssm"} {"check_id": "ec2__elbv2__ssm.dtgthealth-guest-stalled-health-response-times-out-and-withdraws-the-target", "deployments": [], "key": "ec2__elbv2__ssm/dtgthealth-guest-stalled-health-response-times-out-and-withdraws-the-target", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__elbv2__ssm/check_dtgthealth_guest_stalled_health_response_times_out_and_withdraws_the_target.py", "service": "ec2__elbv2__ssm"} {"check_id": "ec2__events__kms__sqs.xsvc-ec2-2-create-volume-under-disabled-key-emits-one-failed-notification-rejected", "deployments": [], "key": "ec2__events__kms__sqs/xsvc-ec2-2-create-volume-under-disabled-key-emits-one-failed-notification-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__kms__sqs/check_xsvc_ec2_2_create_volume_under_disabled_key_emits_one_failed_notification_rejected.py", "service": "ec2__events__kms__sqs"} {"check_id": "ec2__events__kms__sqs.xsvc-ec2-2-run-instances-under-disabled-key-terminates-with-client-kms-reason-rejected", "deployments": [], "key": "ec2__events__kms__sqs/xsvc-ec2-2-run-instances-under-disabled-key-terminates-with-client-kms-reason-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__kms__sqs/check_xsvc_ec2_2_run_instances_under_disabled_key_terminates_with_client_kms_reason_rejected.py", "service": "ec2__events__kms__sqs"} {"check_id": "ec2__events__sqs.events-ec2-lifecycle-copy-snapshot-from-missing-source-fails-asynchronously", "deployments": [], "key": "ec2__events__sqs/events-ec2-lifecycle-copy-snapshot-from-missing-source-fails-asynchronously", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CopySnapshot", "ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_events_ec2_lifecycle_copy_snapshot_from_missing_source_fails_asynchronously.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.events-ec2-lifecycle-ebs-attached-volume-delete-rejected-emits-no-notification", "deployments": [], "key": "ec2__events__sqs/events-ec2-lifecycle-ebs-attached-volume-delete-rejected-emits-no-notification", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:AttachVolume", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_events_ec2_lifecycle_ebs_attached_volume_delete_rejected_emits_no_notification.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.events-ec2-lifecycle-ebs-snapshot-notification-carries-snapshot-state", "deployments": [], "key": "ec2__events__sqs/events-ec2-lifecycle-ebs-snapshot-notification-carries-snapshot-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_events_ec2_lifecycle_ebs_snapshot_notification_carries_snapshot_state.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.events-ec2-lifecycle-protected-terminate-rejected-emits-no-shutting-down", "deployments": [], "key": "ec2__events__sqs/events-ec2-lifecycle-protected-terminate-rejected-emits-no-shutting-down", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_events_ec2_lifecycle_protected_terminate_rejected_emits_no_shutting_down.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.events-ec2-lifecycle-running-rule-fires-on-start-not-on-stop", "deployments": [], "key": "ec2__events__sqs/events-ec2-lifecycle-running-rule-fires-on-start-not-on-stop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_events_ec2_lifecycle_running_rule_fires_on_start_not_on_stop.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.instance-state-change-notifications-are-delivered-per-state-to-their-own-rule", "deployments": [], "key": "ec2__events__sqs/instance-state-change-notifications-are-delivered-per-state-to-their-own-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_instance_state_change_notifications_are_delivered_per_state_to_their_own_rule.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.xsvc-ec2-1-attach-and-detach-emit-no-volume-notification-unlike-create", "deployments": [], "key": "ec2__events__sqs/xsvc-ec2-1-attach-and-detach-emit-no-volume-notification-unlike-create", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AttachVolume", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RunInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_xsvc_ec2_1_attach_and_detach_emit_no_volume_notification_unlike_create.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.xsvc-ec2-1-create-image-ami-state-change-available-then-deregistered", "deployments": [], "key": "ec2__events__sqs/xsvc-ec2-1-create-image-ami-state-change-available-then-deregistered", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateImage", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSnapshot", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeregisterImage", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:RunInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_xsvc_ec2_1_create_image_ami_state_change_available_then_deregistered.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.xsvc-ec2-1-create-snapshots-completion-lists-every-data-volume", "deployments": [], "key": "ec2__events__sqs/xsvc-ec2-1-create-snapshots-completion-lists-every-data-volume", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachVolume", "ec2:CreateSnapshots", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSnapshot", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DetachVolume", "ec2:RunInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_xsvc_ec2_1_create_snapshots_completion_lists_every_data_volume.py", "service": "ec2__events__sqs"} {"check_id": "ec2__events__sqs.xsvc-ec2-1-state-change-transformed-delivery-while-rejected-target-dead-letters", "deployments": [], "key": "ec2__events__sqs/xsvc-ec2-1-state-change-transformed-delivery-while-rejected-target-dead-letters", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__events__sqs/check_xsvc_ec2_1_state_change_transformed_delivery_while_rejected_target_dead_letters.py", "service": "ec2__events__sqs"} {"check_id": "ec2__iam.dry-run-answers-unauthorizedoperation-for-a-principal-without-the-permission-rejected", "deployments": [], "key": "ec2__iam/dry-run-answers-unauthorizedoperation-for-a-principal-without-the-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ec2__iam/check_dry_run_answers_unauthorizedoperation_for_a_principal_without_the_permission_rejected.py", "service": "ec2__iam"} {"check_id": "ec2__iam.instance-profile-path-preserved-through-launch", "deployments": [], "key": "ec2__iam/instance-profile-path-preserved-through-launch", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ec2__iam/check_instance_profile_path_preserved_through_launch.py", "service": "ec2__iam"} {"check_id": "ec2__iam.instance-profile-role-swap-changes-the-credentials-imds-serves", "deployments": [], "key": "ec2__iam/instance-profile-role-swap-changes-the-credentials-imds-serves", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:ReplaceIamInstanceProfileAssociation", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2__iam/check_instance_profile_role_swap_changes_the_credentials_imds_serves.py", "service": "ec2__iam"} {"check_id": "ec2__iam.request-spot-fleet-overrides-instance-type-and-requirements-conflict-rejected", "deployments": [], "key": "ec2__iam/request-spot-fleet-overrides-instance-type-and-requirements-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CancelSpotFleetRequests", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSpotFleetInstances", "ec2:DescribeSpotFleetRequests", "ec2:RequestSpotFleet", "ec2:TerminateInstances", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ec2__iam/check_request_spot_fleet_overrides_instance_type_and_requirements_conflict_rejected.py", "service": "ec2__iam"} {"check_id": "ec2__iam__lambda.create-function-requires-matching-security-group-condition", "deployments": [], "key": "ec2__iam__lambda/create-function-requires-matching-security-group-condition", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:TagResource", "logs:DeleteLogGroup", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ec2__iam__lambda/check_create_function_requires_matching_security_group_condition.py", "service": "ec2__iam__lambda"} {"check_id": "ec2__iam__lambda__logs.lambda-metadata-endpoint-requires-bearer-token-and-reports-a-real-az", "deployments": [], "key": "ec2__iam__lambda__logs/lambda-metadata-endpoint-requires-bearer-token-and-reports-a-real-az", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/ec2__iam__lambda__logs/check_lambda_metadata_endpoint_requires_bearer_token_and_reports_a_real_az.py", "service": "ec2__iam__lambda__logs"} {"check_id": "ec2__iam__logs.log-vpc-flow-logs-scope-excludes-non-member-eni", "deployments": [], "key": "ec2__iam__logs/log-vpc-flow-logs-scope-excludes-non-member-eni", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateFlowLogs", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ec2__iam__logs/check_log_vpc_flow_logs_scope_excludes_non_member_eni.py", "service": "ec2__iam__logs"} {"check_id": "ec2__iam__logs.log-vpc-flow-logs-traffic-type-filter-excludes-other-action", "deployments": [], "key": "ec2__iam__logs/log-vpc-flow-logs-traffic-type-filter-excludes-other-action", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateFlowLogs", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeFlowLogs", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ec2__iam__logs/check_log_vpc_flow_logs_traffic_type_filter_excludes_other_action.py", "service": "ec2__iam__logs"} {"check_id": "ec2__iam__logs.xsvc-ec2-3-flow-log-delivery-role-without-put-log-events-denied", "deployments": [], "key": "ec2__iam__logs/xsvc-ec2-3-flow-log-delivery-role-without-put-log-events-denied", "labels": ["axis:rejection", "dp:native", "plane:data", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateFlowLogs", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeFlowLogs", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ec2__iam__logs/check_xsvc_ec2_3_flow_log_delivery_role_without_put_log_events_denied.py", "service": "ec2__iam__logs"} {"check_id": "ec2__iam__s3__ssm.xsvc-ec2-3-imds-credentials-put-object-outside-role-policy-denied", "deployments": [], "key": "ec2__iam__s3__ssm/xsvc-ec2-3-imds-credentials-put-object-outside-role-policy-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2__iam__s3__ssm/check_xsvc_ec2_3_imds_credentials_put_object_outside_role_policy_denied.py", "service": "ec2__iam__s3__ssm"} {"check_id": "ec2__iam__s3__ssm.xsvc-ec2-3-imds-credentials-withdrawn-after-disassociate-iam-instance-profile", "deployments": [], "key": "ec2__iam__s3__ssm/xsvc-ec2-3-imds-credentials-withdrawn-after-disassociate-iam-instance-profile", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateIamInstanceProfile", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__iam__s3__ssm/check_xsvc_ec2_3_imds_credentials_withdrawn_after_disassociate_iam_instance_profile.py", "service": "ec2__iam__s3__ssm"} {"check_id": "ec2__iam__ssm__sts.run-instances-subnet-scoped-policy-refuses-other-subnet", "deployments": [], "key": "ec2__iam__ssm__sts/run-instances-subnet-scoped-policy-refuses-other-subnet", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:TerminateInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:GetParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ec2__iam__ssm__sts/check_run_instances_subnet_scoped_policy_refuses_other_subnet.py", "service": "ec2__iam__ssm__sts"} {"check_id": "ec2__kms.sep-kms-key-scope-ebs-volume-under-a-disabled-key-never-becomes-available-rejected", "deployments": [], "key": "ec2__kms/sep-kms-key-scope-ebs-volume-under-a-disabled-key-never-becomes-available-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/ec2__kms/check_sep_kms_key_scope_ebs_volume_under_a_disabled_key_never_becomes_available_rejected.py", "service": "ec2__kms"} {"check_id": "ec2__kms__s3.directory-bucket-sse-kms-customer-managed-key-round-trips", "deployments": [], "key": "ec2__kms__s3/directory-bucket-sse-kms-customer-managed-key-round-trips", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CopyObject", "s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketEncryption", "s3:PutObject"], "path": "behavioral/ec2__kms__s3/check_directory_bucket_sse_kms_customer_managed_key_round_trips.py", "service": "ec2__kms__s3"} {"check_id": "ec2__lambda.xsvc-ec2-3-lambda-vpc-eni-dependency-violation-rejected", "deployments": [], "key": "ec2__lambda/xsvc-ec2-3-lambda-vpc-eni-dependency-violation-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/ec2__lambda/check_xsvc_ec2_3_lambda_vpc_eni_dependency_violation_rejected.py", "service": "ec2__lambda"} {"check_id": "ec2__lambda.xsvc-ec2-3-lambda-vpc-role-without-create-network-interface-rejected", "deployments": [], "key": "ec2__lambda/xsvc-ec2-3-lambda-vpc-role-without-create-network-interface-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/ec2__lambda/check_xsvc_ec2_3_lambda_vpc_role_without_create_network_interface_rejected.py", "service": "ec2__lambda"} {"check_id": "ec2__lambda__logs__route53resolver.concurrent-firewall-rules-at-one-priority-admit-exactly-one-and-it-takes-effect", "deployments": [], "key": "ec2__lambda__logs__route53resolver/concurrent-firewall-rules-at-one-priority-admit-exactly-one-and-it-takes-effect", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRules", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_concurrent_firewall_rules_at_one_priority_admit_exactly_one_and_it_takes_effect.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__logs__route53resolver.deleting-a-firewall-domain-list-in-use-rejected-and-it-keeps-blocking", "deployments": [], "key": "ec2__lambda__logs__route53resolver/deleting-a-firewall-domain-list-in-use-rejected-and-it-keeps-blocking", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallDomainList", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_deleting_a_firewall_domain_list_in_use_rejected_and_it_keeps_blocking.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__logs__route53resolver.disabling-autodefined-reverse-lookup-stops-the-reverse-answer", "deployments": [], "key": "ec2__lambda__logs__route53resolver/disabling-autodefined-reverse-lookup-stops-the-reverse-answer", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53resolver:GetResolverConfig", "route53resolver:UpdateResolverConfig"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_disabling_autodefined_reverse_lookup_stops_the_reverse_answer.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__logs__route53resolver.dns-firewall-block-override-returns-the-configured-override-record", "deployments": [], "key": "ec2__lambda__logs__route53resolver/dns-firewall-block-override-returns-the-configured-override-record", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_dns_firewall_block_override_returns_the_configured_override_record.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__logs__route53resolver.dns-firewall-block-rule-actually-blocks-resolution-inside-the-vpc", "deployments": [], "key": "ec2__lambda__logs__route53resolver/dns-firewall-block-rule-actually-blocks-resolution-inside-the-vpc", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_dns_firewall_block_rule_actually_blocks_resolution_inside_the_vpc.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__logs__route53resolver.firewall-alert-action-logs-the-match-without-blocking-the-answer", "deployments": [], "key": "ec2__lambda__logs__route53resolver/firewall-alert-action-logs-the-match-without-blocking-the-answer", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:ListResolverQueryLogConfigAssociations", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_firewall_alert_action_logs_the_match_without_blocking_the_answer.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__logs__route53resolver.firewall-block-takes-precedence-over-the-private-hosted-zone", "deployments": [], "key": "ec2__lambda__logs__route53resolver/firewall-block-takes-precedence-over-the-private-hosted-zone", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_firewall_block_takes_precedence_over_the_private_hosted_zone.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__logs__route53resolver.firewall-rule-priority-decides-which-action-the-resolver-applies", "deployments": [], "key": "ec2__lambda__logs__route53resolver/firewall-rule-priority-decides-which-action-the-resolver-applies", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRules", "route53resolver:UpdateFirewallDomains", "route53resolver:UpdateFirewallRule"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_firewall_rule_priority_decides_which_action_the_resolver_applies.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__logs__route53resolver.query-log-config-records-the-query-the-instance-actually-made", "deployments": [], "key": "ec2__lambda__logs__route53resolver/query-log-config-records-the-query-the-instance-actually-made", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:ListResolverQueryLogConfigAssociations"], "path": "behavioral/ec2__lambda__logs__route53resolver/check_query_log_config_records_the_query_the_instance_actually_made.py", "service": "ec2__lambda__logs__route53resolver"} {"check_id": "ec2__lambda__route53.route53-private-hosted-zone-name-resolves-only-from-inside-the-associated-vpc", "deployments": [], "key": "ec2__lambda__route53/route53-private-hosted-zone-name-resolves-only-from-inside-the-associated-vpc", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeVpcAttribute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/ec2__lambda__route53/check_route53_private_hosted_zone_name_resolves_only_from_inside_the_associated_vpc.py", "service": "ec2__lambda__route53"} {"check_id": "ec2__lambda__route53.route53-private-zone-name-rejected-with-nxdomain-after-the-vpc-is-disassociated", "deployments": [], "key": "ec2__lambda__route53/route53-private-zone-name-rejected-with-nxdomain-after-the-vpc-is-disassociated", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcAttribute", "ec2:ModifyVpcAttribute", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "route53:AssociateVPCWithHostedZone", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:DisassociateVPCFromHostedZone", "route53:GetChange", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/ec2__lambda__route53/check_route53_private_zone_name_rejected_with_nxdomain_after_the_vpc_is_disassociated.py", "service": "ec2__lambda__route53"} {"check_id": "ec2__network-firewall.nfwr-stateful-domain-rule-blocks-host-header-allows-other", "deployments": [], "key": "ec2__network-firewall/nfwr-stateful-domain-rule-blocks-host-header-allows-other", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteRouteTable", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:CreateRuleGroup", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection", "ssm:GetParameter"], "path": "behavioral/ec2__network-firewall/check_nfwr_stateful_domain_rule_blocks_host_header_allows_other.py", "service": "ec2__network-firewall"} {"check_id": "ec2__opensearch.xsvc-opensearch-3-subnets-across-two-vpcs-rejected", "deployments": [], "key": "ec2__opensearch/xsvc-opensearch-3-subnets-across-two-vpcs-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:CreateServiceLinkedRole", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain"], "path": "behavioral/ec2__opensearch/check_xsvc_opensearch_3_subnets_across_two_vpcs_rejected.py", "service": "ec2__opensearch"} {"check_id": "ec2__rds__rds-data.idle-transaction-write-is-rolled-back-and-rollback-on-expired-id-refused", "deployments": [], "key": "ec2__rds__rds-data/idle-transaction-write-is-rolled-back-and-rollback-on-expired-id-refused", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/ec2__rds__rds-data/check_idle_transaction_write_is_rolled_back_and_rollback_on_expired_id_refused.py", "service": "ec2__rds__rds-data"} {"check_id": "ec2__route53__route53resolver__ssm.inbound-resolver-endpoint-addresses-answer-the-private-hosted-zone", "deployments": [], "key": "ec2__route53__route53resolver__ssm/inbound-resolver-endpoint-addresses-answer-the-private-hosted-zone", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRuleAssociation", "route53resolver:ListResolverEndpointIpAddresses", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__route53__route53resolver__ssm/check_inbound_resolver_endpoint_addresses_answer_the_private_hosted_zone.py", "service": "ec2__route53__route53resolver__ssm"} {"check_id": "ec2__route53__route53resolver__ssm.inbound-resolver-endpoint-query-denied-when-the-security-group-revokes-udp-53", "deployments": [], "key": "ec2__route53__route53resolver__ssm/inbound-resolver-endpoint-query-denied-when-the-security-group-revokes-udp-53", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroupRules", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRuleAssociation", "route53resolver:ListResolverEndpointIpAddresses", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__route53__route53resolver__ssm/check_inbound_resolver_endpoint_query_denied_when_the_security_group_revokes_udp_53.py", "service": "ec2__route53__route53resolver__ssm"} {"check_id": "ec2__s3.directory-bucket-sse-s3-aes256-exact-on-every-response", "deployments": [], "key": "ec2__s3/directory-bucket-sse-s3-aes256-exact-on-every-response", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:CopyObject", "s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/ec2__s3/check_directory_bucket_sse_s3_aes256_exact_on_every_response.py", "service": "ec2__s3"} {"check_id": "ec2__s3.log-vpc-flow-logs-custom-format-field-order-follows-config", "deployments": [], "key": "ec2__s3/log-vpc-flow-logs-custom-format-field-order-follows-config", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateFlowLogs", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/ec2__s3/check_log_vpc_flow_logs_custom_format_field_order_follows_config.py", "service": "ec2__s3"} {"check_id": "ec2__s3.log-vpc-flow-logs-s3-accept-and-rejected-records", "deployments": [], "key": "ec2__s3/log-vpc-flow-logs-s3-accept-and-rejected-records", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateFlowLogs", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteFlowLogs", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/ec2__s3/check_log_vpc_flow_logs_s3_accept_and_rejected_records.py", "service": "ec2__s3"} {"check_id": "ec2__s3__sqs__ssm.instance-job-writes-objects-and-every-s3-event-lands-in-sqs-with-matching-etag-size-sequencer", "deployments": [], "key": "ec2__s3__sqs__ssm/instance-job-writes-objects-and-every-s3-event-lands-in-sqs-with-matching-etag-size-sequencer", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2__s3__sqs__ssm/check_instance_job_writes_objects_and_every_s3_event_lands_in_sqs_with_matching_etag_size_sequencer.py", "service": "ec2__s3__sqs__ssm"} {"check_id": "ec2__s3__sqs__ssm.s3pointer-guest-reduces-the-whole-multipart-object-to-a-verified-checksum-and-leaves-nothing-on-failure", "deployments": [], "key": "ec2__s3__sqs__ssm/s3pointer-guest-reduces-the-whole-multipart-object-to-a-verified-checksum-and-leaves-nothing-on-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:UploadPart", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__s3__sqs__ssm/check_s3pointer_guest_reduces_the_whole_multipart_object_to_a_verified_checksum_and_leaves_nothing_on_failure.py", "service": "ec2__s3__sqs__ssm"} {"check_id": "ec2__s3__sqs__ssm.s3pointer-oversized-inline-payload-is-rejected-and-never-enqueued-while-the-pointer-form-is-accepted", "deployments": [], "key": "ec2__s3__sqs__ssm/s3pointer-oversized-inline-payload-is-rejected-and-never-enqueued-while-the-pointer-form-is-accepted", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/ec2__s3__sqs__ssm/check_s3pointer_oversized_inline_payload_is_rejected_and_never_enqueued_while_the_pointer_form_is_accepted.py", "service": "ec2__s3__sqs__ssm"} {"check_id": "ec2__s3__sqs__ssm.sqsfail-guest-job-failure-keeps-the-message-writes-no-partial-result-and-redrives-to-the-dlq", "deployments": [], "key": "ec2__s3__sqs__ssm/sqsfail-guest-job-failure-keeps-the-message-writes-no-partial-result-and-redrives-to-the-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2__s3__sqs__ssm/check_sqsfail_guest_job_failure_keeps_the_message_writes_no_partial_result_and_redrives_to_the_dlq.py", "service": "ec2__s3__sqs__ssm"} {"check_id": "ec2__s3__sqs__ssm.sqsjob-poisoned-job-leaves-no-partial-result-and-returns-to-the-queue-until-its-input-exists", "deployments": [], "key": "ec2__s3__sqs__ssm/sqsjob-poisoned-job-leaves-no-partial-result-and-returns-to-the-queue-until-its-input-exists", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__s3__sqs__ssm/check_sqsjob_poisoned_job_leaves_no_partial_result_and_returns_to_the_queue_until_its_input_exists.py", "service": "ec2__s3__sqs__ssm"} {"check_id": "ec2__s3__sqs__ssm.sqsjob-worker-drains-queue-and-every-result-object-holds-the-independently-computed-answer", "deployments": [], "key": "ec2__s3__sqs__ssm/sqsjob-worker-drains-queue-and-every-result-object-holds-the-independently-computed-answer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2__s3__sqs__ssm/check_sqsjob_worker_drains_queue_and_every_result_object_holds_the_independently_computed_answer.py", "service": "ec2__s3__sqs__ssm"} {"check_id": "ec2__s3__sqs__ssm.sqsrace-poisoned-job-writes-no-result-object-and-lands-in-dlq", "deployments": [], "key": "ec2__s3__sqs__ssm/sqsrace-poisoned-job-writes-no-result-object-and-lands-in-dlq", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__s3__sqs__ssm/check_sqsrace_poisoned_job_writes_no_result_object_and_lands_in_dlq.py", "service": "ec2__s3__sqs__ssm"} {"check_id": "ec2__s3__sqs__ssm.sqsrace-two-workers-one-queue-write-every-job-result-exactly-once", "deployments": [], "key": "ec2__s3__sqs__ssm/sqsrace-two-workers-one-queue-write-every-job-result-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__s3__sqs__ssm/check_sqsrace_two_workers_one_queue_write_every_job_result_exactly_once.py", "service": "ec2__s3__sqs__ssm"} {"check_id": "ec2__s3__ssm.sep-network-truth-vpc-endpoint-policy-deny-blocks-an-iam-allowed-s3-write-rejected", "deployments": [], "key": "ec2__s3__ssm/sep-network-truth-vpc-endpoint-policy-deny-blocks-an-iam-allowed-s3-write-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcEndpoint", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "iam:SimulatePrincipalPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__s3__ssm/check_sep_network_truth_vpc_endpoint_policy_deny_blocks_an_iam_allowed_s3_write_rejected.py", "service": "ec2__s3__ssm"} {"check_id": "ec2__ssm.catalog-ami-arm64-parameter-resolves-to-an-arm64-image", "deployments": [], "key": "ec2__ssm/catalog-ami-arm64-parameter-resolves-to-an-arm64-image", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ssm:GetParameter"], "path": "behavioral/ec2__ssm/check_catalog_ami_arm64_parameter_resolves_to_an_arm64_image.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.catalog-ami-resolvable", "deployments": [], "key": "ec2__ssm/catalog-ami-resolvable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ec2__ssm/check_catalog_ami_resolvable.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.describe-images-amazon-owner-name-filter-lists-public-ebs-images", "deployments": [], "key": "ec2__ssm/describe-images-amazon-owner-name-filter-lists-public-ebs-images", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ssm:GetParameter"], "path": "behavioral/ec2__ssm/check_describe_images_amazon_owner_name_filter_lists_public_ebs_images.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.dtgw-transit-gateway-forwards-packets-between-two-vpcs-and-a-blackholed-route-stops-them", "deployments": [], "key": "ec2__ssm/dtgw-transit-gateway-forwards-packets-between-two-vpcs-and-a-blackholed-route-stops-them", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTransitGateway", "ec2:CreateTransitGatewayRoute", "ec2:CreateTransitGatewayVpcAttachment", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteTransitGateway", "ec2:DeleteTransitGatewayRoute", "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeTransitGatewayVpcAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:GetTransitGatewayRouteTableAssociations", "ec2:ModifyVpcAttribute", "ec2:ReplaceTransitGatewayRoute", "ec2:RunInstances", "ec2:SearchTransitGatewayRoutes", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_dtgw_transit_gateway_forwards_packets_between_two_vpcs_and_a_blackholed_route_stops_them.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.dwin-windows-guest-ebs-drive-letter-reads-blocked-after-detach", "deployments": [], "key": "ec2__ssm/dwin-windows-guest-ebs-drive-letter-reads-blocked-after-detach", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachVolume", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DetachInternetGateway", "ec2:DetachVolume", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_dwin_windows_guest_ebs_drive_letter_reads_blocked_after_detach.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.dwin-windows-guest-runs-powershell-and-reads-imds", "deployments": [], "key": "ec2__ssm/dwin-windows-guest-runs-powershell-and-reads-imds", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:ListCommandInvocations", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_dwin_windows_guest_runs_powershell_and_reads_imds.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.dwin-windows-password-data-decrypts-with-its-key-pair", "deployments": [], "key": "ec2__ssm/dwin-windows-password-data-decrypts-with-its-key-pair", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateKeyPair", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteKeyPair", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:GetPasswordData", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2__ssm/check_dwin_windows_password_data_decrypts_with_its_key_pair.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.get-parameters-resolves-two-ami-parameters-and-reports-the-unknown-one-invalid", "deployments": [], "key": "ec2__ssm/get-parameters-resolves-two-ami-parameters-and-reports-the-unknown-one-invalid", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeImages", "ssm:GetParameter", "ssm:GetParameters"], "path": "behavioral/ec2__ssm/check_get_parameters_resolves_two_ami_parameters_and_reports_the_unknown_one_invalid.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.guest-imdsv1-read-rejected-once-http-tokens-is-required", "deployments": [], "key": "ec2__ssm/guest-imdsv1-read-rejected-once-http-tokens-is-required", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifyInstanceMetadataOptions", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_guest_imdsv1_read_rejected_once_http_tokens_is_required.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.guest-user-data-does-not-rerun-after-a-stop-start-cycle", "deployments": [], "key": "ec2__ssm/guest-user-data-does-not-rerun-after-a-stop-start-cycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_guest_user_data_does_not_rerun_after_a_stop_start_cycle.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.guest-user-data-output-read-back-through-run-command", "deployments": [], "key": "ec2__ssm/guest-user-data-output-read-back-through-run-command", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_guest_user_data_output_read_back_through_run_command.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.imds-token-ttl-above-21600-seconds-rejected-while-the-maximum-is-served", "deployments": [], "key": "ec2__ssm/imds-token-ttl-above-21600-seconds-rejected-while-the-maximum-is-served", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ec2__ssm/check_imds_token_ttl_above_21600_seconds_rejected_while_the_maximum_is_served.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.launch-under-http-tokens-enforced-requires-required", "deployments": [], "key": "ec2__ssm/launch-under-http-tokens-enforced-requires-required", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:GetInstanceMetadataDefaults", "ec2:ModifyInstanceMetadataDefaults", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2__ssm/check_launch_under_http_tokens_enforced_requires_required.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.mtu-jumbo-frames-carry-an-unfragmented-payload-across-availability-zones-in-one-vpc", "deployments": [], "key": "ec2__ssm/mtu-jumbo-frames-carry-an-unfragmented-payload-across-availability-zones-in-one-vpc", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_mtu_jumbo_frames_carry_an_unfragmented_payload_across_availability_zones_in_one_vpc.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.mtu-path-mtu-collapses-to-1500-when-the-same-eni-sends-through-the-internet-gateway", "deployments": [], "key": "ec2__ssm/mtu-path-mtu-collapses-to-1500-when-the-same-eni-sends-through-the-internet-gateway", "labels": ["axis:negative-delivery", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_mtu_path_mtu_collapses_to_1500_when_the_same_eni_sends_through_the_internet_gateway.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.mtu-tcp-negotiates-a-segment-size-that-reveals-the-path-mtu-without-losing-a-byte", "deployments": [], "key": "ec2__ssm/mtu-tcp-negotiates-a-segment-size-that-reveals-the-path-mtu-without-losing-a-byte", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_mtu_tcp_negotiates_a_segment_size_that_reveals_the_path_mtu_without_losing_a_byte.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.nacls-are-stateless-but-security-groups-are-stateful", "deployments": [], "key": "ec2__ssm/nacls-are-stateless-but-security-groups-are-stateful", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateNetworkAcl", "ec2:CreateNetworkAclEntry", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "ec2:ReplaceNetworkAclAssociation", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_nacls_are_stateless_but_security_groups_are_stateful.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.run-instances-empty-placement-availability-zone-treated-as-unset", "deployments": [], "key": "ec2__ssm/run-instances-empty-placement-availability-zone-treated-as-unset", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ssm:GetParameter"], "path": "behavioral/ec2__ssm/check_run_instances_empty_placement_availability_zone_treated_as_unset.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.run-instances-refuses-a-nonexistent-key-pair-and-launches-nothing", "deployments": [], "key": "ec2__ssm/run-instances-refuses-a-nonexistent-key-pair-and-launches-nothing", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:RunInstances", "ec2:TerminateInstances", "ssm:GetParameter"], "path": "behavioral/ec2__ssm/check_run_instances_refuses_a_nonexistent_key_pair_and_launches_nothing.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.sep-network-truth-sg-source-group-rule-admits-members-only-and-drops-as-timeout-not-refusal", "deployments": [], "key": "ec2__ssm/sep-network-truth-sg-source-group-rule-admits-members-only-and-drops-as-timeout-not-refusal", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_sep_network_truth_sg_source_group_rule_admits_members_only_and_drops_as_timeout_not_refusal.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.sep-network-truth-vpc-peering-carries-packets-only-with-routes-on-both-sides", "deployments": [], "key": "ec2__ssm/sep-network-truth-vpc-peering-carries-packets-only-with-routes-on-both-sides", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AcceptVpcPeeringConnection", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcPeeringConnection", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcPeeringConnection", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_sep_network_truth_vpc_peering_carries_packets_only_with_routes_on_both_sides.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.sg-resolution-prefix-list-and-reachability-analyzer", "deployments": [], "key": "ec2__ssm/sg-resolution-prefix-list-and-reachability-analyzer", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateManagedPrefixList", "ec2:CreateNetworkInsightsPath", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteManagedPrefixList", "ec2:DeleteNetworkInsightsAnalysis", "ec2:DeleteNetworkInsightsPath", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeManagedPrefixLists", "ec2:DescribeNetworkInsightsAnalyses", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:GetManagedPrefixListEntries", "ec2:ModifyManagedPrefixList", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:StartNetworkInsightsAnalysis", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_sg_resolution_prefix_list_and_reachability_analyzer.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.ssm-patch-baseline-scan-reports-compliance-for-a-real-instance", "deployments": [], "key": "ec2__ssm/ssm-patch-baseline-scan-reports-compliance-for-a-real-instance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:DescribeInstanceInformation", "ssm:DescribeInstancePatchStates", "ssm:DescribeInstancePatches", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:GetPatchBaselineForPatchGroup", "ssm:RegisterPatchBaselineForPatchGroup", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_ssm_patch_baseline_scan_reports_compliance_for_a_real_instance.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.ssm-run-command-executes-on-a-real-managed-instance-and-returns-its-stdout", "deployments": [], "key": "ec2__ssm/ssm-run-command-executes-on-a-real-managed-instance-and-returns-its-stdout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteParameter", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:ListCommandInvocations", "ssm:ListCommands", "ssm:PutParameter", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_ssm_run_command_executes_on_a_real_managed_instance_and_returns_its_stdout.py", "service": "ec2__ssm"} {"check_id": "ec2__ssm.ssm-send-command-to-a-stopped-instance-rejected-and-no-invocation-is-created", "deployments": [], "key": "ec2__ssm/ssm-send-command-to-a-stopped-instance-rejected-and-no-invocation-is-created", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:ListCommandInvocations", "ssm:ListCommands", "ssm:SendCommand"], "path": "behavioral/ec2__ssm/check_ssm_send_command_to_a_stopped_instance_rejected_and_no_invocation_is_created.py", "service": "ec2__ssm"} {"check_id": "ec2__sts.instance-profile-session-userid-is-the-role-id-and-instance-id-composite", "deployments": [], "key": "ec2__sts/instance-profile-session-userid-is-the-role-id-and-instance-id-composite", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ec2__sts/check_instance_profile_session_userid_is_the_role_id_and_instance_id_composite.py", "service": "ec2__sts"} {"check_id": "ecr-public.authorization-token-expiry-enforced", "deployments": [], "key": "ecr-public/authorization-token-expiry-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:GetAuthorizationToken"], "path": "behavioral/ecr-public/check_authorization_token_expiry_enforced.py", "service": "ecr-public"} {"check_id": "ecr-public.authorization-token-is-single-object-and-decodes-to-aws-user", "deployments": [], "key": "ecr-public/authorization-token-is-single-object-and-decodes-to-aws-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:GetAuthorizationToken"], "path": "behavioral/ecr-public/check_authorization_token_is_single_object_and_decodes_to_aws_user.py", "service": "ecr-public"} {"check_id": "ecr-public.batch-check-layer-availability", "deployments": [], "key": "ecr-public/batch-check-layer-availability", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_batch_check_layer_availability.py", "service": "ecr-public"} {"check_id": "ecr-public.batch-delete-image-partial-failure", "deployments": [], "key": "ecr-public/batch-delete-image-partial-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:BatchDeleteImage", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_batch_delete_image_partial_failure.py", "service": "ecr-public"} {"check_id": "ecr-public.catalog-logo-blob-is-input-only-and-size-capped", "deployments": [], "key": "ecr-public/catalog-logo-blob-is-input-only-and-size-capped", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_catalog_logo_blob_is_input_only_and_size_capped.py", "service": "ecr-public"} {"check_id": "ecr-public.catalog-logo-blob-is-stored-and-served-as-a-real-image", "deployments": [], "key": "ecr-public/catalog-logo-blob-is-stored-and-served-as-a-real-image", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_catalog_logo_blob_is_stored_and_served_as_a_real_image.py", "service": "ecr-public"} {"check_id": "ecr-public.chunked-layer-upload-offsets-are-enforced-byte-exactly", "deployments": [], "key": "ecr-public/chunked-layer-upload-offsets-are-enforced-byte-exactly", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_chunked_layer_upload_offsets_are_enforced_byte_exactly.py", "service": "ecr-public"} {"check_id": "ecr-public.complete-layer-upload-digest-mismatch-rejected", "deployments": [], "key": "ecr-public/complete-layer-upload-digest-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_complete_layer_upload_digest_mismatch_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.complete-layer-upload-empty", "deployments": [], "key": "ecr-public/complete-layer-upload-empty", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_complete_layer_upload_empty.py", "service": "ecr-public"} {"check_id": "ecr-public.complete-layer-upload-not-found", "deployments": [], "key": "ecr-public/complete-layer-upload-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_complete_layer_upload_not_found.py", "service": "ecr-public"} {"check_id": "ecr-public.concurrent-complete-layer-upload-same-uploadid-converges", "deployments": [], "key": "ecr-public/concurrent-complete-layer-upload-same-uploadid-converges", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_concurrent_complete_layer_upload_same_uploadid_converges.py", "service": "ecr-public"} {"check_id": "ecr-public.concurrent-create-repository-same-name", "deployments": [], "key": "ecr-public/concurrent-create-repository-same-name", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_concurrent_create_repository_same_name.py", "service": "ecr-public"} {"check_id": "ecr-public.concurrent-put-registry-catalog-data-last-write-wins", "deployments": [], "key": "ecr-public/concurrent-put-registry-catalog-data-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_concurrent_put_registry_catalog_data_last_write_wins.py", "service": "ecr-public"} {"check_id": "ecr-public.concurrent-put-repository-catalog-data-last-writer-wins", "deployments": [], "key": "ecr-public/concurrent-put-repository-catalog-data-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_concurrent_put_repository_catalog_data_last_writer_wins.py", "service": "ecr-public"} {"check_id": "ecr-public.concurrent-tag-resource-additions-merge", "deployments": [], "key": "ecr-public/concurrent-tag-resource-additions-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:ListTagsForResource", "ecr-public:TagResource"], "path": "behavioral/ecr-public/check_concurrent_tag_resource_additions_merge.py", "service": "ecr-public"} {"check_id": "ecr-public.create-repository-basic", "deployments": [], "key": "ecr-public/create-repository-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_create_repository_basic.py", "service": "ecr-public"} {"check_id": "ecr-public.create-repository-catalog-data-is-atomic", "deployments": [], "key": "ecr-public/create-repository-catalog-data-is-atomic", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:GetRepositoryCatalogData", "ecr-public:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_create_repository_catalog_data_is_atomic.py", "service": "ecr-public"} {"check_id": "ecr-public.create-repository-duplicate", "deployments": [], "key": "ecr-public/create-repository-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_create_repository_duplicate.py", "service": "ecr-public"} {"check_id": "ecr-public.create-repository-invalid-name", "deployments": [], "key": "ecr-public/create-repository-invalid-name", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories"], "path": "behavioral/ecr-public/check_create_repository_invalid_name.py", "service": "ecr-public"} {"check_id": "ecr-public.data-plane-accepts-registry-alias-and-normalizes-to-account-id", "deployments": [], "key": "ecr-public/data-plane-accepts-registry-alias-and-normalizes-to-account-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:BatchDeleteImage", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:DescribeRegistries", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_data_plane_accepts_registry_alias_and_normalizes_to_account_id.py", "service": "ecr-public"} {"check_id": "ecr-public.delete-repository-force", "deployments": [], "key": "ecr-public/delete-repository-force", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_delete_repository_force.py", "service": "ecr-public"} {"check_id": "ecr-public.delete-repository-not-empty", "deployments": [], "key": "ecr-public/delete-repository-not-empty", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ecr-public:BatchDeleteImage", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:PutRepositoryCatalogData", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_delete_repository_not_empty.py", "service": "ecr-public"} {"check_id": "ecr-public.delete-repository-not-found", "deployments": [], "key": "ecr-public/delete-repository-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_delete_repository_not_found.py", "service": "ecr-public"} {"check_id": "ecr-public.delete-repository-policy-not-set-error", "deployments": [], "key": "ecr-public/delete-repository-policy-not-set-error", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DeleteRepositoryPolicy", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_delete_repository_policy_not_set_error.py", "service": "ecr-public"} {"check_id": "ecr-public.delete-repository-policy-on-nonexistent-repository-rejected", "deployments": [], "key": "ecr-public/delete-repository-policy-on-nonexistent-repository-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DeleteRepositoryPolicy", "ecr-public:DescribeRepositories", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_delete_repository_policy_on_nonexistent_repository_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.deploy-public-repository-cfn-behavior", "deployments": [], "key": "ecr-public/deploy-public-repository-cfn-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr-public:BatchCheckLayerAvailability", "ecr-public:BatchDeleteImage", "ecr-public:CompleteLayerUpload", "ecr-public:DescribeImages", "ecr-public:DescribeRepositories", "ecr-public:GetAuthorizationToken", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_deploy_public_repository_cfn_behavior.py", "service": "ecr-public"} {"check_id": "ecr-public.deploy-public-repository-cfn-stack", "deployments": [], "key": "ecr-public/deploy-public-repository-cfn-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr-public:CompleteLayerUpload", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_deploy_public_repository_cfn_stack.py", "service": "ecr-public"} {"check_id": "ecr-public.describe-image-tags-pagination-partitions-the-tag-set-exactly", "deployments": [], "key": "ecr-public/describe-image-tags-pagination-partitions-the-tag-set-exactly", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_describe_image_tags_pagination_partitions_the_tag_set_exactly.py", "service": "ecr-public"} {"check_id": "ecr-public.describe-images-not-found", "deployments": [], "key": "ecr-public/describe-images-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_describe_images_not_found.py", "service": "ecr-public"} {"check_id": "ecr-public.describe-registries-alias-record-is-fully-populated", "deployments": [], "key": "ecr-public/describe-registries-alias-record-is-fully-populated", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRegistries"], "path": "behavioral/ecr-public/check_describe_registries_alias_record_is_fully_populated.py", "service": "ecr-public"} {"check_id": "ecr-public.e2e-image-publish-and-catalog-flow", "deployments": [], "key": "ecr-public/e2e-image-publish-and-catalog-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeRepositories", "ecr-public:GetRepositoryCatalogData", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:PutRepositoryCatalogData", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_e2e_image_publish_and_catalog_flow.py", "service": "ecr-public"} {"check_id": "ecr-public.e2e-image-push-pull-tag-delete-flow", "deployments": [], "key": "ecr-public/e2e-image-push-pull-tag-delete-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_e2e_image_push_pull_tag_delete_flow.py", "service": "ecr-public"} {"check_id": "ecr-public.e2e-put-image-missing-layers-rejected", "deployments": [], "key": "ecr-public/e2e-put-image-missing-layers-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_e2e_put_image_missing_layers_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.get-authorization-token-without-credentials-denied", "deployments": [], "key": "ecr-public/get-authorization-token-without-credentials-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:GetAuthorizationToken", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser"], "path": "behavioral/ecr-public/check_get_authorization_token_without_credentials_denied.py", "service": "ecr-public"} {"check_id": "ecr-public.get-repository-catalog-data-nonexistent-repo-rejected", "deployments": [], "key": "ecr-public/get-repository-catalog-data-nonexistent-repo-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_get_repository_catalog_data_nonexistent_repo_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.get-repository-policy-not-set", "deployments": [], "key": "ecr-public/get-repository-policy-not-set", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy"], "path": "behavioral/ecr-public/check_get_repository_policy_not_set.py", "service": "ecr-public"} {"check_id": "ecr-public.image-digest-mismatch-rejected", "deployments": [], "key": "ecr-public/image-digest-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_image_digest_mismatch_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.image-push-lifecycle", "deployments": [], "key": "ecr-public/image-push-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_image_push_lifecycle.py", "service": "ecr-public"} {"check_id": "ecr-public.image-pushed-at-is-a-live-clock-stamp-that-reads-do-not-move", "deployments": [], "key": "ecr-public/image-pushed-at-is-a-live-clock-stamp-that-reads-do-not-move", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_image_pushed_at_is_a_live_clock_stamp_that_reads_do_not_move.py", "service": "ecr-public"} {"check_id": "ecr-public.layer-blob-byte-equality-round-trip", "deployments": [], "key": "ecr-public/layer-blob-byte-equality-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_layer_blob_byte_equality_round_trip.py", "service": "ecr-public"} {"check_id": "ecr-public.list-tags-invalid-arn", "deployments": [], "key": "ecr-public/list-tags-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:ListTagsForResource"], "path": "behavioral/ecr-public/check_list_tags_invalid_arn.py", "service": "ecr-public"} {"check_id": "ecr-public.manifest-list-image-size-is-the-max-of-its-children", "deployments": [], "key": "ecr-public/manifest-list-image-size-is-the-max-of-its-children", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_manifest_list_image_size_is_the_max_of_its_children.py", "service": "ecr-public"} {"check_id": "ecr-public.put-image-duplicate-rejected", "deployments": [], "key": "ecr-public/put-image-duplicate-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_put_image_duplicate_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.put-image-duplicate-tag-moves-tag", "deployments": [], "key": "ecr-public/put-image-duplicate-tag-moves-tag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_put_image_duplicate_tag_moves_tag.py", "service": "ecr-public"} {"check_id": "ecr-public.put-image-invalid-manifest", "deployments": [], "key": "ecr-public/put-image-invalid-manifest", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_put_image_invalid_manifest.py", "service": "ecr-public"} {"check_id": "ecr-public.put-image-missing-layer-rejected", "deployments": [], "key": "ecr-public/put-image-missing-layer-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_put_image_missing_layer_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.put-image-rejects-manifest-with-unuploaded-layer", "deployments": [], "key": "ecr-public/put-image-rejects-manifest-with-unuploaded-layer", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_put_image_rejects_manifest_with_unuploaded_layer.py", "service": "ecr-public"} {"check_id": "ecr-public.put-image-with-a-digest-mismatched-manifest-rejected-and-nothing-stored", "deployments": [], "key": "ecr-public/put-image-with-a-digest-mismatched-manifest-rejected-and-nothing-stored", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_put_image_with_a_digest_mismatched_manifest_rejected_and_nothing_stored.py", "service": "ecr-public"} {"check_id": "ecr-public.put-registry-catalog-data-invalid-input-rejected", "deployments": [], "key": "ecr-public/put-registry-catalog-data-invalid-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_put_registry_catalog_data_invalid_input_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.put-registry-catalog-data-invalid-parameter-rejected", "deployments": [], "key": "ecr-public/put-registry-catalog-data-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_put_registry_catalog_data_invalid_parameter_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.put-registry-catalog-data-unicode-preserved", "deployments": [], "key": "ecr-public/put-registry-catalog-data-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_put_registry_catalog_data_unicode_preserved.py", "service": "ecr-public"} {"check_id": "ecr-public.put-registry-catalog-data-unsupported-command-rejected", "deployments": [], "key": "ecr-public/put-registry-catalog-data-unsupported-command-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_put_registry_catalog_data_unsupported_command_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.put-repository-catalog-data-freeform-architecture", "deployments": [], "key": "ecr-public/put-repository-catalog-data-freeform-architecture", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_put_repository_catalog_data_freeform_architecture.py", "service": "ecr-public"} {"check_id": "ecr-public.put-repository-catalog-data-unknown-repo-not-found", "deployments": [], "key": "ecr-public/put-repository-catalog-data-unknown-repo-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_put_repository_catalog_data_unknown_repo_not_found.py", "service": "ecr-public"} {"check_id": "ecr-public.registry-basics", "deployments": [], "key": "ecr-public/registry-basics", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:DescribeRegistries", "ecr-public:GetAuthorizationToken"], "path": "behavioral/ecr-public/check_registry_basics.py", "service": "ecr-public"} {"check_id": "ecr-public.registry-catalog-data-round-trip", "deployments": [], "key": "ecr-public/registry-catalog-data-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_registry_catalog_data_round_trip.py", "service": "ecr-public"} {"check_id": "ecr-public.registry-catalog-data-round-trip-unicode", "deployments": [], "key": "ecr-public/registry-catalog-data-round-trip-unicode", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_registry_catalog_data_round_trip_unicode.py", "service": "ecr-public"} {"check_id": "ecr-public.registry-catalog-display-name-round-trip-and-limit", "deployments": [], "key": "ecr-public/registry-catalog-display-name-round-trip-and-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_registry_catalog_display_name_round_trip_and_limit.py", "service": "ecr-public"} {"check_id": "ecr-public.registry-id-stable-across-calls", "deployments": [], "key": "ecr-public/registry-id-stable-across-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRegistries", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_registry_id_stable_across_calls.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-catalog-data-base64-logo-round-trip", "deployments": [], "key": "ecr-public/repository-catalog-data-base64-logo-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_repository_catalog_data_base64_logo_round_trip.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-catalog-data-lifecycle", "deployments": [], "key": "ecr-public/repository-catalog-data-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_repository_catalog_data_lifecycle.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-catalog-data-unicode-round-trip", "deployments": [], "key": "ecr-public/repository-catalog-data-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_repository_catalog_data_unicode_round_trip.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-catalog-text-limits-enforced", "deployments": [], "key": "ecr-public/repository-catalog-text-limits-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_repository_catalog_text_limits_enforced.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-delete-in-progress-blocks-mutations", "deployments": [], "key": "ecr-public/repository-delete-in-progress-blocks-mutations", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_repository_delete_in_progress_blocks_mutations.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-policy-document-byte-preserved", "deployments": [], "key": "ecr-public/repository-policy-document-byte-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy"], "path": "behavioral/ecr-public/check_repository_policy_document_byte_preserved.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-policy-json-preserved-exact", "deployments": [], "key": "ecr-public/repository-policy-json-preserved-exact", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy"], "path": "behavioral/ecr-public/check_repository_policy_json_preserved_exact.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-policy-json-round-trip-preserved", "deployments": [], "key": "ecr-public/repository-policy-json-round-trip-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_repository_policy_json_round_trip_preserved.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-policy-lifecycle", "deployments": [], "key": "ecr-public/repository-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DeleteRepositoryPolicy", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy"], "path": "behavioral/ecr-public/check_repository_policy_lifecycle.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-policy-malformed-json-rejected", "deployments": [], "key": "ecr-public/repository-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy"], "path": "behavioral/ecr-public/check_repository_policy_malformed_json_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-policy-self-lockout-with-force-actually-blocks-set-repository-policy", "deployments": [], "key": "ecr-public/repository-policy-self-lockout-with-force-actually-blocks-set-repository-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DeleteRepositoryPolicy", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_repository_policy_self_lockout_with_force_actually_blocks_set_repository_policy.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-recreate-after-delete-clean-state", "deployments": [], "key": "ecr-public/repository-recreate-after-delete-clean-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:GetRepositoryCatalogData", "ecr-public:PutRepositoryCatalogData"], "path": "behavioral/ecr-public/check_repository_recreate_after_delete_clean_state.py", "service": "ecr-public"} {"check_id": "ecr-public.repository-uri-and-arn-are-alias-scoped-and-regionless", "deployments": [], "key": "ecr-public/repository-uri-and-arn-are-alias-scoped-and-regionless", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRegistries", "ecr-public:DescribeRepositories", "ecr-public:ListTagsForResource", "ecr-public:TagResource"], "path": "behavioral/ecr-public/check_repository_uri_and_arn_are_alias_scoped_and_regionless.py", "service": "ecr-public"} {"check_id": "ecr-public.response-shapes-omit-private-ecr-only-members", "deployments": [], "key": "ecr-public/response-shapes-omit-private-ecr-only-members", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImageTags", "ecr-public:DescribeImages", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_response_shapes_omit_private_ecr_only_members.py", "service": "ecr-public"} {"check_id": "ecr-public.server-side-manifest-schema-validation-enforced", "deployments": [], "key": "ecr-public/server-side-manifest-schema-validation-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeImages", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_server_side_manifest_schema_validation_enforced.py", "service": "ecr-public"} {"check_id": "ecr-public.server-side-public-repository-always-readable", "deployments": [], "key": "ecr-public/server-side-public-repository-always-readable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DeleteRepositoryPolicy", "ecr-public:DescribeImages", "ecr-public:GetAuthorizationToken", "ecr-public:GetRepositoryPolicy", "ecr-public:InitiateLayerUpload", "ecr-public:PutImage", "ecr-public:SetRepositoryPolicy", "ecr-public:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_server_side_public_repository_always_readable.py", "service": "ecr-public"} {"check_id": "ecr-public.server-side-registry-catalog-data-single-per-registry", "deployments": [], "key": "ecr-public/server-side-registry-catalog-data-single-per-registry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:GetRegistryCatalogData", "ecr-public:PutRegistryCatalogData"], "path": "behavioral/ecr-public/check_server_side_registry_catalog_data_single_per_registry.py", "service": "ecr-public"} {"check_id": "ecr-public.server-side-repository-uri-server-assigned", "deployments": [], "key": "ecr-public/server-side-repository-uri-server-assigned", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRegistries", "ecr-public:DescribeRepositories"], "path": "behavioral/ecr-public/check_server_side_repository_uri_server_assigned.py", "service": "ecr-public"} {"check_id": "ecr-public.set-repository-policy-exceeds-size-limit-rejected", "deployments": [], "key": "ecr-public/set-repository-policy-exceeds-size-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy"], "path": "behavioral/ecr-public/check_set_repository_policy_exceeds_size_limit_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.set-repository-policy-invalid-effect-rejected", "deployments": [], "key": "ecr-public/set-repository-policy-invalid-effect-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public/check_set_repository_policy_invalid_effect_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.set-repository-policy-malformed", "deployments": [], "key": "ecr-public/set-repository-policy-malformed", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy"], "path": "behavioral/ecr-public/check_set_repository_policy_malformed.py", "service": "ecr-public"} {"check_id": "ecr-public.set-repository-policy-oversized-rejected", "deployments": [], "key": "ecr-public/set-repository-policy-oversized-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:GetRepositoryPolicy", "ecr-public:SetRepositoryPolicy"], "path": "behavioral/ecr-public/check_set_repository_policy_oversized_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.tag-resource-invalid-key-characters-rejected", "deployments": [], "key": "ecr-public/tag-resource-invalid-key-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:ListTagsForResource", "ecr-public:TagResource"], "path": "behavioral/ecr-public/check_tag_resource_invalid_key_characters_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.tag-resource-lifecycle", "deployments": [], "key": "ecr-public/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:ListTagsForResource", "ecr-public:TagResource", "ecr-public:UntagResource"], "path": "behavioral/ecr-public/check_tag_resource_lifecycle.py", "service": "ecr-public"} {"check_id": "ecr-public.tag-resource-malformed-arn-rejected", "deployments": [], "key": "ecr-public/tag-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:ListTagsForResource", "ecr-public:TagResource"], "path": "behavioral/ecr-public/check_tag_resource_malformed_arn_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.tag-resource-reserved-prefix", "deployments": [], "key": "ecr-public/tag-resource-reserved-prefix", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:ListTagsForResource", "ecr-public:TagResource"], "path": "behavioral/ecr-public/check_tag_resource_reserved_prefix.py", "service": "ecr-public"} {"check_id": "ecr-public.tag-resource-too-many-tags", "deployments": [], "key": "ecr-public/tag-resource-too-many-tags", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:ListTagsForResource", "ecr-public:TagResource"], "path": "behavioral/ecr-public/check_tag_resource_too_many_tags.py", "service": "ecr-public"} {"check_id": "ecr-public.upload-layer-part-binary-blob-preserved", "deployments": [], "key": "ecr-public/upload-layer-part-binary-blob-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_upload_layer_part_binary_blob_preserved.py", "service": "ecr-public"} {"check_id": "ecr-public.upload-layer-part-exceeds-max-size-rejected", "deployments": [], "key": "ecr-public/upload-layer-part-exceeds-max-size-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_upload_layer_part_exceeds_max_size_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.upload-layer-part-offset-gap-rejected", "deployments": [], "key": "ecr-public/upload-layer-part-offset-gap-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_upload_layer_part_offset_gap_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public.upload-layer-part-sequential-ordering-enforced", "deployments": [], "key": "ecr-public/upload-layer-part-sequential-ordering-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_upload_layer_part_sequential_ordering_enforced.py", "service": "ecr-public"} {"check_id": "ecr-public.upload-layer-part-unknown-upload-id-rejected", "deployments": [], "key": "ecr-public/upload-layer-part-unknown-upload-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr-public:BatchCheckLayerAvailability", "ecr-public:CompleteLayerUpload", "ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart"], "path": "behavioral/ecr-public/check_upload_layer_part_unknown_upload_id_rejected.py", "service": "ecr-public"} {"check_id": "ecr-public__iam.iam-policy-without-create-repository-blocks-only-that-action", "deployments": [], "key": "ecr-public__iam/iam-policy-without-create-repository-blocks-only-that-action", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr-public:CreateRepository", "ecr-public:DeleteRepository", "ecr-public:DescribeRepositories", "ecr-public:GetAuthorizationToken", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr-public__iam/check_iam_policy_without_create_repository_blocks_only_that_action.py", "service": "ecr-public__iam"} {"check_id": "ecr.account-setting-roundtrip", "deployments": [], "key": "ecr/account-setting-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:GetAccountSetting", "ecr:PutAccountSetting"], "path": "behavioral/ecr/check_account_setting_roundtrip.py", "service": "ecr"} {"check_id": "ecr.batch-check-layer-availability-mixed", "deployments": [], "key": "ecr/batch-check-layer-availability-mixed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_batch_check_layer_availability_mixed.py", "service": "ecr"} {"check_id": "ecr.batch-delete-image-partial-outcome", "deployments": [], "key": "ecr/batch-delete-image-partial-outcome", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchDeleteImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_batch_delete_image_partial_outcome.py", "service": "ecr"} {"check_id": "ecr.batch-delete-image-untags-shared-digest", "deployments": [], "key": "ecr/batch-delete-image-untags-shared-digest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchDeleteImage", "ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_batch_delete_image_untags_shared_digest.py", "service": "ecr"} {"check_id": "ecr.batch-get-repository-scanning-configuration-missing-repo", "deployments": [], "key": "ecr/batch-get-repository-scanning-configuration-missing-repo", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:BatchGetRepositoryScanningConfiguration", "ecr:CreateRepository", "ecr:DeleteRepository"], "path": "behavioral/ecr/check_batch_get_repository_scanning_configuration_missing_repo.py", "service": "ecr"} {"check_id": "ecr.batch-get-repository-scanning-configuration-multi-repo", "deployments": [], "key": "ecr/batch-get-repository-scanning-configuration-multi-repo", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:BatchGetRepositoryScanningConfiguration", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_batch_get_repository_scanning_configuration_multi_repo.py", "service": "ecr"} {"check_id": "ecr.complete-layer-upload-bad-uploadid-rejected", "deployments": [], "key": "ecr/complete-layer-upload-bad-uploadid-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_complete_layer_upload_bad_uploadid_rejected.py", "service": "ecr"} {"check_id": "ecr.complete-layer-upload-double-completion-rejected", "deployments": [], "key": "ecr/complete-layer-upload-double-completion-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_complete_layer_upload_double_completion_rejected.py", "service": "ecr"} {"check_id": "ecr.complete-layer-upload-empty-rejected", "deployments": [], "key": "ecr/complete-layer-upload-empty-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_complete_layer_upload_empty_rejected.py", "service": "ecr"} {"check_id": "ecr.complete-layer-upload-wrong-digest-rejected", "deployments": [], "key": "ecr/complete-layer-upload-wrong-digest-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_complete_layer_upload_wrong_digest_rejected.py", "service": "ecr"} {"check_id": "ecr.completed-upload-id-reuse-fails", "deployments": [], "key": "ecr/completed-upload-id-reuse-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_completed_upload_id_reuse_fails.py", "service": "ecr"} {"check_id": "ecr.concurrent-immutable-tag-push-race", "deployments": [], "key": "ecr/concurrent-immutable-tag-push-race", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_concurrent_immutable_tag_push_race.py", "service": "ecr"} {"check_id": "ecr.concurrent-pull-through-cache-rule-update-race", "deployments": [], "key": "ecr/concurrent-pull-through-cache-rule-update-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_concurrent_pull_through_cache_rule_update_race.py", "service": "ecr"} {"check_id": "ecr.concurrent-register-pull-time-update-exclusion-race", "deployments": [], "key": "ecr/concurrent-register-pull-time-update-exclusion-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_concurrent_register_pull_time_update_exclusion_race.py", "service": "ecr"} {"check_id": "ecr.concurrent-registry-policy-put-last-writer-wins", "deployments": [], "key": "ecr/concurrent-registry-policy-put-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_concurrent_registry_policy_put_last_writer_wins.py", "service": "ecr"} {"check_id": "ecr.concurrent-registry-scanning-configuration-updates-serialized", "deployments": [], "key": "ecr/concurrent-registry-scanning-configuration-updates-serialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_concurrent_registry_scanning_configuration_updates_serialized.py", "service": "ecr"} {"check_id": "ecr.create-describe-delete-repository", "deployments": [], "key": "ecr/create-describe-delete-repository", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:PutImageTagMutability"], "path": "behavioral/ecr/check_create_describe_delete_repository.py", "service": "ecr"} {"check_id": "ecr.create-pull-through-cache-rule-duplicate-rejected", "deployments": [], "key": "ecr/create-pull-through-cache-rule-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules"], "path": "behavioral/ecr/check_create_pull_through_cache_rule_duplicate_rejected.py", "service": "ecr"} {"check_id": "ecr.create-repository-duplicate-conflict", "deployments": [], "key": "ecr/create-repository-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories"], "path": "behavioral/ecr/check_create_repository_duplicate_conflict.py", "service": "ecr"} {"check_id": "ecr.create-repository-invalid-name-rejected", "deployments": [], "key": "ecr/create-repository-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories"], "path": "behavioral/ecr/check_create_repository_invalid_name_rejected.py", "service": "ecr"} {"check_id": "ecr.delete-registry-policy-nonexistent-rejected", "deployments": [], "key": "ecr/delete-registry-policy-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_delete_registry_policy_nonexistent_rejected.py", "service": "ecr"} {"check_id": "ecr.delete-registry-policy-not-found-rejected", "deployments": [], "key": "ecr/delete-registry-policy-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_delete_registry_policy_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.delete-repository-creation-template-nonexistent-rejected", "deployments": [], "key": "ecr/delete-repository-creation-template-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepositoryCreationTemplate", "ecr:DeleteRepositoryCreationTemplate", "ecr:DescribeRepositoryCreationTemplates"], "path": "behavioral/ecr/check_delete_repository_creation_template_nonexistent_rejected.py", "service": "ecr"} {"check_id": "ecr.delete-repository-requires-force-when-not-empty", "deployments": [], "key": "ecr/delete-repository-requires-force-when-not-empty", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_delete_repository_requires_force_when_not_empty.py", "service": "ecr"} {"check_id": "ecr.delete-signing-configuration-nonexistent-rejected", "deployments": [], "key": "ecr/delete-signing-configuration-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_delete_signing_configuration_nonexistent_rejected.py", "service": "ecr"} {"check_id": "ecr.delete-signing-configuration-not-found-rejected", "deployments": [], "key": "ecr/delete-signing-configuration-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_delete_signing_configuration_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.deploy-ecr-lifecycle-policy-cfn-expires-image", "deployments": [], "key": "ecr/deploy-ecr-lifecycle-policy-cfn-expires-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:DescribeImages", "ecr:GetLifecyclePolicy", "ecr:GetLifecyclePolicyPreview", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutLifecyclePolicy", "ecr:StartLifecyclePolicyPreview", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_deploy_ecr_lifecycle_policy_cfn_expires_image.py", "service": "ecr"} {"check_id": "ecr.deploy-ecr-repository-cfn-enforces-immutable-tag-policy-rejected", "deployments": [], "key": "ecr/deploy-ecr-repository-cfn-enforces-immutable-tag-policy-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_deploy_ecr_repository_cfn_enforces_immutable_tag_policy_rejected.py", "service": "ecr"} {"check_id": "ecr.deploy-ecr-repository-cfn-then-push-image-succeeds", "deployments": [], "key": "ecr/deploy-ecr-repository-cfn-then-push-image-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_deploy_ecr_repository_cfn_then_push_image_succeeds.py", "service": "ecr"} {"check_id": "ecr.deploy-ecr-repository-with-lifecycle-policy-behaves", "deployments": [], "key": "ecr/deploy-ecr-repository-with-lifecycle-policy-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:CompleteLayerUpload", "ecr:DescribeImages", "ecr:GetLifecyclePolicy", "ecr:GetLifecyclePolicyPreview", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:StartLifecyclePolicyPreview", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_deploy_ecr_repository_with_lifecycle_policy_behaves.py", "service": "ecr"} {"check_id": "ecr.deploy-registry-scanning-configuration-enforced", "deployments": [], "key": "ecr/deploy-registry-scanning-configuration-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:GetRegistryScanningConfiguration", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutRegistryScanningConfiguration", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_deploy_registry_scanning_configuration_enforced.py", "service": "ecr"} {"check_id": "ecr.deploy-repository-lifecycle-policy-enforced", "deployments": [], "key": "ecr/deploy-repository-lifecycle-policy-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ecr:BatchDeleteImage", "ecr:CompleteLayerUpload", "ecr:DescribeImages", "ecr:GetLifecyclePolicyPreview", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:StartLifecyclePolicyPreview", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_deploy_repository_lifecycle_policy_enforced.py", "service": "ecr"} {"check_id": "ecr.deregister-exclusion-not-found", "deployments": [], "key": "ecr/deregister-exclusion-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_deregister_exclusion_not_found.py", "service": "ecr"} {"check_id": "ecr.deregister-pull-time-exclusion-not-found-rejected", "deployments": [], "key": "ecr/deregister-pull-time-exclusion-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_deregister_pull_time_exclusion_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.deregister-pull-time-update-exclusion-nonexistent-rejected", "deployments": [], "key": "ecr/deregister-pull-time-update-exclusion-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_deregister_pull_time_update_exclusion_nonexistent_rejected.py", "service": "ecr"} {"check_id": "ecr.deregister-pull-time-update-exclusion-not-found-rejected", "deployments": [], "key": "ecr/deregister-pull-time-update-exclusion-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_deregister_pull_time_update_exclusion_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.deregister-pull-time-update-exclusion-unknown-rejected", "deployments": [], "key": "ecr/deregister-pull-time-update-exclusion-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_deregister_pull_time_update_exclusion_unknown_rejected.py", "service": "ecr"} {"check_id": "ecr.describe-image-replication-status-image-not-found-rejected", "deployments": [], "key": "ecr/describe-image-replication-status-image-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageReplicationStatus", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_describe_image_replication_status_image_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.describe-image-replication-status-missing-image-rejected", "deployments": [], "key": "ecr/describe-image-replication-status-missing-image-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageReplicationStatus", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_describe_image_replication_status_missing_image_rejected.py", "service": "ecr"} {"check_id": "ecr.describe-image-replication-status-not-found", "deployments": [], "key": "ecr/describe-image-replication-status-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageReplicationStatus", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_describe_image_replication_status_not_found.py", "service": "ecr"} {"check_id": "ecr.describe-image-signing-status-image-not-found-rejected", "deployments": [], "key": "ecr/describe-image-signing-status-image-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageSigningStatus", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_describe_image_signing_status_image_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.describe-image-signing-status-missing-image-rejected", "deployments": [], "key": "ecr/describe-image-signing-status-missing-image-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageSigningStatus", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_describe_image_signing_status_missing_image_rejected.py", "service": "ecr"} {"check_id": "ecr.describe-image-signing-status-missing-repo-rejected", "deployments": [], "key": "ecr/describe-image-signing-status-missing-repo-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageSigningStatus", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_describe_image_signing_status_missing_repo_rejected.py", "service": "ecr"} {"check_id": "ecr.describe-image-signing-status-not-found", "deployments": [], "key": "ecr/describe-image-signing-status-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageSigningStatus", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_describe_image_signing_status_not_found.py", "service": "ecr"} {"check_id": "ecr.describe-registry-reflects-replication-config", "deployments": [], "key": "ecr/describe-registry-reflects-replication-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DescribeRegistry", "ecr:PutReplicationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_describe_registry_reflects_replication_config.py", "service": "ecr"} {"check_id": "ecr.describe-registry-validation-rejected", "deployments": [], "key": "ecr/describe-registry-validation-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/ecr/check_describe_registry_validation_rejected.py", "service": "ecr"} {"check_id": "ecr.download-url-for-layer-expires-one-hour-after-issuance", "deployments": [], "key": "ecr/download-url-for-layer-expires-one-hour-after-issuance", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_download_url_for_layer_expires_one_hour_after_issuance.py", "service": "ecr"} {"check_id": "ecr.download-url-returns-exact-layer-bytes", "deployments": [], "key": "ecr/download-url-returns-exact-layer-bytes", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_download_url_returns_exact_layer_bytes.py", "service": "ecr"} {"check_id": "ecr.e2e-image-push-scan-replicate-cleanup", "deployments": [], "key": "ecr/e2e-image-push-scan-replicate-cleanup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageReplicationStatus", "ecr:DescribeImageScanFindings", "ecr:DescribeRegistry", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutReplicationConfiguration", "ecr:StartImageScan", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_e2e_image_push_scan_replicate_cleanup.py", "service": "ecr"} {"check_id": "ecr.e2e-image-scan-lifecycle", "deployments": [], "key": "ecr/e2e-image-scan-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:StartImageScan", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_e2e_image_scan_lifecycle.py", "service": "ecr"} {"check_id": "ecr.e2e-pull-through-cache-duplicate-rule-rejected", "deployments": [], "key": "ecr/e2e-pull-through-cache-duplicate-rule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules"], "path": "behavioral/ecr/check_e2e_pull_through_cache_duplicate_rule_rejected.py", "service": "ecr"} {"check_id": "ecr.e2e-pull-through-cache-full-flow", "deployments": [], "key": "ecr/e2e-pull-through-cache-full-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DeleteRepository", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "ecr:ValidatePullThroughCacheRule", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/ecr/check_e2e_pull_through_cache_full_flow.py", "service": "ecr"} {"check_id": "ecr.e2e-pull-through-cache-rule-consumption-flow", "deployments": [], "key": "ecr/e2e-pull-through-cache-rule-consumption-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DeleteRepository", "ecr:DescribePullThroughCacheRules", "ecr:DescribeRepositories", "ecr:ValidatePullThroughCacheRule"], "path": "behavioral/ecr/check_e2e_pull_through_cache_rule_consumption_flow.py", "service": "ecr"} {"check_id": "ecr.e2e-pull-through-cache-validate-update-cycle", "deployments": [], "key": "ecr/e2e-pull-through-cache-validate-update-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "ecr:ValidatePullThroughCacheRule", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/ecr/check_e2e_pull_through_cache_validate_update_cycle.py", "service": "ecr"} {"check_id": "ecr.e2e-registry-policy-cross-account-pull-consequence", "deployments": [], "key": "ecr/e2e-registry-policy-cross-account-pull-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRegistryPolicy", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:GetAuthorizationToken", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_e2e_registry_policy_cross_account_pull_consequence.py", "service": "ecr"} {"check_id": "ecr.e2e-replication-configuration-drives-replication-status", "deployments": [], "key": "ecr/e2e-replication-configuration-drives-replication-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageReplicationStatus", "ecr:DescribeRegistry", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutReplicationConfiguration", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_e2e_replication_configuration_drives_replication_status.py", "service": "ecr"} {"check_id": "ecr.e2e-repository-full-lifecycle-scan-and-replicate", "deployments": [], "key": "ecr/e2e-repository-full-lifecycle-scan-and-replicate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CreatePullThroughCacheRule", "ecr:CreateRepository", "ecr:DeletePullThroughCacheRule", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:DescribeRepositories", "ecr:StartImageScan"], "path": "behavioral/ecr/check_e2e_repository_full_lifecycle_scan_and_replicate.py", "service": "ecr"} {"check_id": "ecr.e2e-signing-and-status-flow", "deployments": [], "key": "ecr/e2e-signing-and-status-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteSigningConfiguration", "ecr:DescribeImageSigningStatus", "ecr:GetSigningConfiguration", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutSigningConfiguration", "ecr:UploadLayerPart", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/ecr/check_e2e_signing_and_status_flow.py", "service": "ecr"} {"check_id": "ecr.e2e-signing-configuration-drives-signing-status", "deployments": [], "key": "ecr/e2e-signing-configuration-drives-signing-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteSigningConfiguration", "ecr:DescribeImageSigningStatus", "ecr:GetSigningConfiguration", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutSigningConfiguration", "ecr:UploadLayerPart", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/ecr/check_e2e_signing_configuration_drives_signing_status.py", "service": "ecr"} {"check_id": "ecr.e2e-storage-class-and-replication-flow", "deployments": [], "key": "ecr/e2e-storage-class-and-replication-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageReplicationStatus", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_e2e_storage_class_and_replication_flow.py", "service": "ecr"} {"check_id": "ecr.get-account-setting-invalid-name-fails", "deployments": [], "key": "ecr/get-account-setting-invalid-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:GetAccountSetting"], "path": "behavioral/ecr/check_get_account_setting_invalid_name_fails.py", "service": "ecr"} {"check_id": "ecr.get-account-setting-invalid-name-rejected", "deployments": [], "key": "ecr/get-account-setting-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:GetAccountSetting"], "path": "behavioral/ecr/check_get_account_setting_invalid_name_rejected.py", "service": "ecr"} {"check_id": "ecr.get-download-url-for-layer", "deployments": [], "key": "ecr/get-download-url-for-layer", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_get_download_url_for_layer.py", "service": "ecr"} {"check_id": "ecr.get-download-url-for-layer-url-expiry", "deployments": [], "key": "ecr/get-download-url-for-layer-url-expiry", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_get_download_url_for_layer_url_expiry.py", "service": "ecr"} {"check_id": "ecr.get-registry-policy-not-found-before-put", "deployments": [], "key": "ecr/get-registry-policy-not-found-before-put", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_get_registry_policy_not_found_before_put.py", "service": "ecr"} {"check_id": "ecr.get-registry-policy-not-found-rejected", "deployments": [], "key": "ecr/get-registry-policy-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_get_registry_policy_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.get-registry-scanning-configuration-invalid-filter-rejected", "deployments": [], "key": "ecr/get-registry-scanning-configuration-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_get_registry_scanning_configuration_invalid_filter_rejected.py", "service": "ecr"} {"check_id": "ecr.get-signing-configuration-not-found", "deployments": [], "key": "ecr/get-signing-configuration-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_get_signing_configuration_not_found.py", "service": "ecr"} {"check_id": "ecr.get-signing-configuration-not-found-before-put", "deployments": [], "key": "ecr/get-signing-configuration-not-found-before-put", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration"], "path": "behavioral/ecr/check_get_signing_configuration_not_found_before_put.py", "service": "ecr"} {"check_id": "ecr.get-signing-configuration-not-found-rejected", "deployments": [], "key": "ecr/get-signing-configuration-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_get_signing_configuration_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.image-scan-on-archived-image-rejected", "deployments": [], "key": "ecr/image-scan-on-archived-image-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:DescribeImages", "ecr:GetRegistryScanningConfiguration", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutRegistryScanningConfiguration", "ecr:StartImageScan", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_image_scan_on_archived_image_rejected.py", "service": "ecr"} {"check_id": "ecr.image-scanning-configuration-toggle", "deployments": [], "key": "ecr/image-scanning-configuration-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:PutImageScanningConfiguration"], "path": "behavioral/ecr/check_image_scanning_configuration_toggle.py", "service": "ecr"} {"check_id": "ecr.image-storage-class-archival-blocks-mutating-ops", "deployments": [], "key": "ecr/image-storage-class-archival-blocks-mutating-ops", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:StartImageScan", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_image_storage_class_archival_blocks_mutating_ops.py", "service": "ecr"} {"check_id": "ecr.image-storage-class-transition", "deployments": [], "key": "ecr/image-storage-class-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_image_storage_class_transition.py", "service": "ecr"} {"check_id": "ecr.image-storage-class-transition-state-machine", "deployments": [], "key": "ecr/image-storage-class-transition-state-machine", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageReplicationStatus", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_image_storage_class_transition_state_machine.py", "service": "ecr"} {"check_id": "ecr.image-storage-class-value-persists", "deployments": [], "key": "ecr/image-storage-class-value-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_image_storage_class_value_persists.py", "service": "ecr"} {"check_id": "ecr.image-tag-immutable-mutation-rejected", "deployments": [], "key": "ecr/image-tag-immutable-mutation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_image_tag_immutable_mutation_rejected.py", "service": "ecr"} {"check_id": "ecr.immutable-tag-exclusion-filter-scoped", "deployments": [], "key": "ecr/immutable-tag-exclusion-filter-scoped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutImageTagMutability", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_immutable_tag_exclusion_filter_scoped.py", "service": "ecr"} {"check_id": "ecr.immutable-tag-mutability-blocks-retag", "deployments": [], "key": "ecr/immutable-tag-mutability-blocks-retag", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_immutable_tag_mutability_blocks_retag.py", "service": "ecr"} {"check_id": "ecr.layer-upload-lifecycle-complete", "deployments": [], "key": "ecr/layer-upload-lifecycle-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_layer_upload_lifecycle_complete.py", "service": "ecr"} {"check_id": "ecr.lifecycle-policy-invalid-json-rejected", "deployments": [], "key": "ecr/lifecycle-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetLifecyclePolicy", "ecr:PutLifecyclePolicy"], "path": "behavioral/ecr/check_lifecycle_policy_invalid_json_rejected.py", "service": "ecr"} {"check_id": "ecr.lifecycle-policy-preview-expires-image", "deployments": [], "key": "ecr/lifecycle-policy-preview-expires-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:GetLifecyclePolicyPreview", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:PutLifecyclePolicy", "ecr:StartLifecyclePolicyPreview", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_lifecycle_policy_preview_expires_image.py", "service": "ecr"} {"check_id": "ecr.lifecycle-policy-round-trip", "deployments": [], "key": "ecr/lifecycle-policy-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteLifecyclePolicy", "ecr:DeleteRepository", "ecr:GetLifecyclePolicy", "ecr:PutLifecyclePolicy"], "path": "behavioral/ecr/check_lifecycle_policy_round_trip.py", "service": "ecr"} {"check_id": "ecr.lifecycle-preview-names-exact-expiring-image", "deployments": [], "key": "ecr/lifecycle-preview-names-exact-expiring-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteLifecyclePolicy", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicyPreview", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:PutLifecyclePolicy", "ecr:StartLifecyclePolicyPreview", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_lifecycle_preview_names_exact_expiring_image.py", "service": "ecr"} {"check_id": "ecr.list-image-referrers-ordering-by-artifact-type", "deployments": [], "key": "ecr/list-image-referrers-ordering-by-artifact-type", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImageReferrers", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_list_image_referrers_ordering_by_artifact_type.py", "service": "ecr"} {"check_id": "ecr.list-image-referrers-ordering-reflects-push-order", "deployments": [], "key": "ecr/list-image-referrers-ordering-reflects-push-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImageReferrers", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_list_image_referrers_ordering_reflects_push_order.py", "service": "ecr"} {"check_id": "ecr.list-image-referrers-repo-not-found-rejected", "deployments": [], "key": "ecr/list-image-referrers-repo-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:ListImageReferrers", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_list_image_referrers_repo_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.list-image-referrers-repository-not-found", "deployments": [], "key": "ecr/list-image-referrers-repository-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImageReferrers", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_list_image_referrers_repository_not_found.py", "service": "ecr"} {"check_id": "ecr.list-image-referrers-repository-not-found-rejected", "deployments": [], "key": "ecr/list-image-referrers-repository-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:ListImageReferrers", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_list_image_referrers_repository_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.list-image-referrers-returns-oci-artifacts", "deployments": [], "key": "ecr/list-image-referrers-returns-oci-artifacts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImageReferrers", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_list_image_referrers_returns_oci_artifacts.py", "service": "ecr"} {"check_id": "ecr.list-image-referrers-server-populated", "deployments": [], "key": "ecr/list-image-referrers-server-populated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImageReferrers", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_list_image_referrers_server_populated.py", "service": "ecr"} {"check_id": "ecr.list-pull-time-exclusions-invalid-parameter-rejected", "deployments": [], "key": "ecr/list-pull-time-exclusions-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:ListPullTimeUpdateExclusions"], "path": "behavioral/ecr/check_list_pull_time_exclusions_invalid_parameter_rejected.py", "service": "ecr"} {"check_id": "ecr.list-pull-time-exclusions-pagination-stable-order", "deployments": [], "key": "ecr/list-pull-time-exclusions-pagination-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_list_pull_time_exclusions_pagination_stable_order.py", "service": "ecr"} {"check_id": "ecr.list-pull-time-update-exclusions-pagination-order", "deployments": [], "key": "ecr/list-pull-time-update-exclusions-pagination-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_list_pull_time_update_exclusions_pagination_order.py", "service": "ecr"} {"check_id": "ecr.manifest-list-child-reference-integrity", "deployments": [], "key": "ecr/manifest-list-child-reference-integrity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchDeleteImage", "ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_manifest_list_child_reference_integrity.py", "service": "ecr"} {"check_id": "ecr.mutable-repo-allows-tag-overwrite", "deployments": [], "key": "ecr/mutable-repo-allows-tag-overwrite", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_mutable_repo_allows_tag_overwrite.py", "service": "ecr"} {"check_id": "ecr.oci-manifest-media-type-negotiation", "deployments": [], "key": "ecr/oci-manifest-media-type-negotiation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_oci_manifest_media_type_negotiation.py", "service": "ecr"} {"check_id": "ecr.op-contract-batchCheckLayerAvailability", "deployments": [], "key": "ecr/op-contract-batchCheckLayerAvailability", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_op_contract_batch_check_layer_availability.py", "service": "ecr"} {"check_id": "ecr.op-contract-batchDeleteImage", "deployments": [], "key": "ecr/op-contract-batchDeleteImage", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchDeleteImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_op_contract_batch_delete_image.py", "service": "ecr"} {"check_id": "ecr.op-contract-batchGetImage", "deployments": [], "key": "ecr/op-contract-batchGetImage", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_op_contract_batch_get_image.py", "service": "ecr"} {"check_id": "ecr.op-contract-deleteLifecyclePolicy", "deployments": [], "key": "ecr/op-contract-deleteLifecyclePolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteLifecyclePolicy", "ecr:DeleteRepository", "ecr:GetLifecyclePolicy", "ecr:PutLifecyclePolicy"], "path": "behavioral/ecr/check_op_contract_delete_lifecycle_policy.py", "service": "ecr"} {"check_id": "ecr.op-contract-deletePullThroughCacheRule", "deployments": [], "key": "ecr/op-contract-deletePullThroughCacheRule", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules"], "path": "behavioral/ecr/check_op_contract_delete_pull_through_cache_rule.py", "service": "ecr"} {"check_id": "ecr.op-contract-deleteRepository", "deployments": [], "key": "ecr/op-contract-deleteRepository", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_op_contract_delete_repository.py", "service": "ecr"} {"check_id": "ecr.op-contract-deleteRepositoryPolicy", "deployments": [], "key": "ecr/op-contract-deleteRepositoryPolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy", "ecr:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_op_contract_delete_repository_policy.py", "service": "ecr"} {"check_id": "ecr.op-contract-describeRepositories", "deployments": [], "key": "ecr/op-contract-describeRepositories", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_op_contract_describe_repositories.py", "service": "ecr"} {"check_id": "ecr.op-contract-getLifecyclePolicy", "deployments": [], "key": "ecr/op-contract-getLifecyclePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetLifecyclePolicy", "ecr:PutLifecyclePolicy"], "path": "behavioral/ecr/check_op_contract_get_lifecycle_policy.py", "service": "ecr"} {"check_id": "ecr.op-contract-getLifecyclePolicyPreview", "deployments": [], "key": "ecr/op-contract-getLifecyclePolicyPreview", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetLifecyclePolicyPreview", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutLifecyclePolicy", "ecr:StartLifecyclePolicyPreview", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_op_contract_get_lifecycle_policy_preview.py", "service": "ecr"} {"check_id": "ecr.op-contract-getRepositoryPolicy", "deployments": [], "key": "ecr/op-contract-getRepositoryPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetRepositoryPolicy", "ecr:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_op_contract_get_repository_policy.py", "service": "ecr"} {"check_id": "ecr.op-contract-listImages", "deployments": [], "key": "ecr/op-contract-listImages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_op_contract_list_images.py", "service": "ecr"} {"check_id": "ecr.op-contract-listTagsForResource", "deployments": [], "key": "ecr/op-contract-listTagsForResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:ListTagsForResource", "ecr:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_op_contract_list_tags_for_resource.py", "service": "ecr"} {"check_id": "ecr.op-contract-putImageScanningConfiguration", "deployments": [], "key": "ecr/op-contract-putImageScanningConfiguration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:PutImageScanningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_op_contract_put_image_scanning_configuration.py", "service": "ecr"} {"check_id": "ecr.op-contract-putImageTagMutability", "deployments": [], "key": "ecr/op-contract-putImageTagMutability", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutImageTagMutability", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_op_contract_put_image_tag_mutability.py", "service": "ecr"} {"check_id": "ecr.op-contract-put-lifecycle-policy", "deployments": [], "key": "ecr/op-contract-put-lifecycle-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetLifecyclePolicy", "ecr:PutLifecyclePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_op_contract_put_lifecycle_policy.py", "service": "ecr"} {"check_id": "ecr.op-contract-set-repository-policy", "deployments": [], "key": "ecr/op-contract-set-repository-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetRepositoryPolicy", "ecr:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_op_contract_set_repository_policy.py", "service": "ecr"} {"check_id": "ecr.op-contract-tag-resource", "deployments": [], "key": "ecr/op-contract-tag-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:ListTagsForResource", "ecr:TagResource"], "path": "behavioral/ecr/check_op_contract_tag_resource.py", "service": "ecr"} {"check_id": "ecr.op-contract-untag-resource", "deployments": [], "key": "ecr/op-contract-untag-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:ListTagsForResource", "ecr:UntagResource"], "path": "behavioral/ecr/check_op_contract_untag_resource.py", "service": "ecr"} {"check_id": "ecr.pull-through-cache-duplicate-rejected", "deployments": [], "key": "ecr/pull-through-cache-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_through_cache_duplicate_rejected.py", "service": "ecr"} {"check_id": "ecr.pull-through-cache-rule-create-defaults-and-describe-pagination", "deployments": [], "key": "ecr/pull-through-cache-rule-create-defaults-and-describe-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules"], "path": "behavioral/ecr/check_pull_through_cache_rule_create_defaults_and_describe_pagination.py", "service": "ecr"} {"check_id": "ecr.pull-through-cache-rule-custom-role-arn-persists", "deployments": [], "key": "ecr/pull-through-cache-rule-custom-role-arn-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_through_cache_rule_custom_role_arn_persists.py", "service": "ecr"} {"check_id": "ecr.pull-through-cache-rule-lifecycle", "deployments": [], "key": "ecr/pull-through-cache-rule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_through_cache_rule_lifecycle.py", "service": "ecr"} {"check_id": "ecr.pull-through-cache-rule-update-lifecycle", "deployments": [], "key": "ecr/pull-through-cache-rule-update-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "ecr:ValidatePullThroughCacheRule", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_through_cache_rule_update_lifecycle.py", "service": "ecr"} {"check_id": "ecr.pull-through-cache-rule-update-persists-custom-role", "deployments": [], "key": "ecr/pull-through-cache-rule-update-persists-custom-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_through_cache_rule_update_persists_custom_role.py", "service": "ecr"} {"check_id": "ecr.pull-through-cache-rule-update-round-trip", "deployments": [], "key": "ecr/pull-through-cache-rule-update-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_through_cache_rule_update_round_trip.py", "service": "ecr"} {"check_id": "ecr.pull-through-cache-rule-upstream-repository-prefix-read-back", "deployments": [], "key": "ecr/pull-through-cache-rule-upstream-repository-prefix-read-back", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule"], "path": "behavioral/ecr/check_pull_through_cache_rule_upstream_repository_prefix_read_back.py", "service": "ecr"} {"check_id": "ecr.pull-time-exclusion-window-expires-then-pulls-resume-updates", "deployments": [], "key": "ecr/pull-time-exclusion-window-expires-then-pulls-resume-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_time_exclusion_window_expires_then_pulls_resume_updates.py", "service": "ecr"} {"check_id": "ecr.pull-time-update-exclusion-fields-preserved", "deployments": [], "key": "ecr/pull-time-update-exclusion-fields-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/ecr/check_pull_time_update_exclusion_fields_preserved.py", "service": "ecr"} {"check_id": "ecr.pull-time-update-exclusion-lifecycle", "deployments": [], "key": "ecr/pull-time-update-exclusion-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_time_update_exclusion_lifecycle.py", "service": "ecr"} {"check_id": "ecr.pull-time-update-exclusion-window-expires", "deployments": [], "key": "ecr/pull-time-update-exclusion-window-expires", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_pull_time_update_exclusion_window_expires.py", "service": "ecr"} {"check_id": "ecr.push-image-tag-list-and-fetch", "deployments": [], "key": "ecr/push-image-tag-list-and-fetch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_push_image_tag_list_and_fetch.py", "service": "ecr"} {"check_id": "ecr.push-untagged-then-multi-tag", "deployments": [], "key": "ecr/push-untagged-then-multi-tag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_push_untagged_then_multi_tag.py", "service": "ecr"} {"check_id": "ecr.put-image-dangling-references-rejected", "deployments": [], "key": "ecr/put-image-dangling-references-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_put_image_dangling_references_rejected.py", "service": "ecr"} {"check_id": "ecr.put-image-digest-mismatch", "deployments": [], "key": "ecr/put-image-digest-mismatch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_put_image_digest_mismatch.py", "service": "ecr"} {"check_id": "ecr.put-image-digest-mismatch-on-concurrent-push-rejected", "deployments": [], "key": "ecr/put-image-digest-mismatch-on-concurrent-push-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_put_image_digest_mismatch_on_concurrent_push_rejected.py", "service": "ecr"} {"check_id": "ecr.put-image-duplicate-identical-rejected", "deployments": [], "key": "ecr/put-image-duplicate-identical-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_put_image_duplicate_identical_rejected.py", "service": "ecr"} {"check_id": "ecr.put-image-immutable-tag-mutation-rejected", "deployments": [], "key": "ecr/put-image-immutable-tag-mutation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_put_image_immutable_tag_mutation_rejected.py", "service": "ecr"} {"check_id": "ecr.put-image-immutable-tag-overwrite-rejected", "deployments": [], "key": "ecr/put-image-immutable-tag-overwrite-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutImageTagMutability", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_put_image_immutable_tag_overwrite_rejected.py", "service": "ecr"} {"check_id": "ecr.put-image-layers-not-found", "deployments": [], "key": "ecr/put-image-layers-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:PutImage", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_put_image_layers_not_found.py", "service": "ecr"} {"check_id": "ecr.put-image-tag-mutability-transition", "deployments": [], "key": "ecr/put-image-tag-mutability-transition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutImageTagMutability", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_put_image_tag_mutability_transition.py", "service": "ecr"} {"check_id": "ecr.put-registry-policy-invalid-json-rejected", "deployments": [], "key": "ecr/put-registry-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_put_registry_policy_invalid_json_rejected.py", "service": "ecr"} {"check_id": "ecr.put-registry-policy-malformed-json-rejected", "deployments": [], "key": "ecr/put-registry-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_put_registry_policy_malformed_json_rejected.py", "service": "ecr"} {"check_id": "ecr.put-registry-policy-overly-broad-principal-rejected", "deployments": [], "key": "ecr/put-registry-policy-overly-broad-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_put_registry_policy_overly_broad_principal_rejected.py", "service": "ecr"} {"check_id": "ecr.put-registry-scanning-configuration-invalid-filter-rejected", "deployments": [], "key": "ecr/put-registry-scanning-configuration-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_put_registry_scanning_configuration_invalid_filter_rejected.py", "service": "ecr"} {"check_id": "ecr.put-registry-scanning-configuration-org-policy-blocked", "deployments": [], "key": "ecr/put-registry-scanning-configuration-org-policy-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_put_registry_scanning_configuration_org_policy_blocked.py", "service": "ecr"} {"check_id": "ecr.put-signing-configuration-invalid-profile-rejected", "deployments": [], "key": "ecr/put-signing-configuration-invalid-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_put_signing_configuration_invalid_profile_rejected.py", "service": "ecr"} {"check_id": "ecr.put-signing-configuration-invalid-signing-profile-rejected", "deployments": [], "key": "ecr/put-signing-configuration-invalid-signing-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/ecr/check_put_signing_configuration_invalid_signing_profile_rejected.py", "service": "ecr"} {"check_id": "ecr.register-pull-time-exclusion-duplicate-rejected", "deployments": [], "key": "ecr/register-pull-time-exclusion-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/ecr/check_register_pull_time_exclusion_duplicate_rejected.py", "service": "ecr"} {"check_id": "ecr.register-pull-time-exclusion-limit-exceeded-rejected", "deployments": [], "key": "ecr/register-pull-time-exclusion-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_register_pull_time_exclusion_limit_exceeded_rejected.py", "service": "ecr"} {"check_id": "ecr.register-pull-time-update-exclusion-duplicate-rejected", "deployments": [], "key": "ecr/register-pull-time-update-exclusion-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeregisterPullTimeUpdateExclusion", "ecr:ListPullTimeUpdateExclusions", "ecr:RegisterPullTimeUpdateExclusion", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_register_pull_time_update_exclusion_duplicate_rejected.py", "service": "ecr"} {"check_id": "ecr.registry-policy-delete-then-not-found", "deployments": [], "key": "ecr/registry-policy-delete-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_registry_policy_delete_then_not_found.py", "service": "ecr"} {"check_id": "ecr.registry-policy-document-unicode-round-trip", "deployments": [], "key": "ecr/registry-policy-document-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_registry_policy_document_unicode_round_trip.py", "service": "ecr"} {"check_id": "ecr.registry-policy-invalid-document-rejected", "deployments": [], "key": "ecr/registry-policy-invalid-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_registry_policy_invalid_document_rejected.py", "service": "ecr"} {"check_id": "ecr.registry-policy-lifecycle", "deployments": [], "key": "ecr/registry-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:DescribeRegistry", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy"], "path": "behavioral/ecr/check_registry_policy_lifecycle.py", "service": "ecr"} {"check_id": "ecr.registry-policy-lifecycle-transitions", "deployments": [], "key": "ecr/registry-policy-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_registry_policy_lifecycle_transitions.py", "service": "ecr"} {"check_id": "ecr.registry-policy-unicode-document-round-trip", "deployments": [], "key": "ecr/registry-policy-unicode-document-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_registry_policy_unicode_document_round_trip.py", "service": "ecr"} {"check_id": "ecr.registry-policy-unicode-round-trip", "deployments": [], "key": "ecr/registry-policy-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteRegistryPolicy", "ecr:GetRegistryPolicy", "ecr:PutRegistryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_registry_policy_unicode_round_trip.py", "service": "ecr"} {"check_id": "ecr.registry-scanning-configuration-enforced-on-push", "deployments": [], "key": "ecr/registry-scanning-configuration-enforced-on-push", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:GetRegistryScanningConfiguration", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutRegistryScanningConfiguration", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_registry_scanning_configuration_enforced_on_push.py", "service": "ecr"} {"check_id": "ecr.registry-scanning-configuration-lifecycle", "deployments": [], "key": "ecr/registry-scanning-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:BatchGetRepositoryScanningConfiguration", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_registry_scanning_configuration_lifecycle.py", "service": "ecr"} {"check_id": "ecr.registry-scanning-configuration-put-persists", "deployments": [], "key": "ecr/registry-scanning-configuration-put-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_registry_scanning_configuration_put_persists.py", "service": "ecr"} {"check_id": "ecr.registry-scanning-configuration-round-trip", "deployments": [], "key": "ecr/registry-scanning-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_registry_scanning_configuration_round_trip.py", "service": "ecr"} {"check_id": "ecr.registry-scanning-configuration-update-cycle", "deployments": [], "key": "ecr/registry-scanning-configuration-update-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:GetRegistryScanningConfiguration", "ecr:PutRegistryScanningConfiguration"], "path": "behavioral/ecr/check_registry_scanning_configuration_update_cycle.py", "service": "ecr"} {"check_id": "ecr.registry-v2-root-on-the-published-proxy-endpoint-answers-the-basic-token", "deployments": [], "key": "ecr/registry-v2-root-on-the-published-proxy-endpoint-answers-the-basic-token", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ecr:GetAuthorizationToken"], "path": "behavioral/ecr/check_registry_v2_root_on_the_published_proxy_endpoint_answers_the_basic_token.py", "service": "ecr"} {"check_id": "ecr.replicated-image-is-byte-identical-in-the-destination-region", "deployments": [], "key": "ecr/replicated-image-is-byte-identical-in-the-destination-region", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRegistry", "ecr:DescribeRepositories", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutReplicationConfiguration", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_replicated_image_is_byte_identical_in_the_destination_region.py", "service": "ecr"} {"check_id": "ecr.replication-configuration-lifecycle", "deployments": [], "key": "ecr/replication-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DescribeRegistry", "ecr:PutReplicationConfiguration"], "path": "behavioral/ecr/check_replication_configuration_lifecycle.py", "service": "ecr"} {"check_id": "ecr.replication-to-same-region-rejected", "deployments": [], "key": "ecr/replication-to-same-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DescribeRegistry", "ecr:PutReplicationConfiguration"], "path": "behavioral/ecr/check_replication_to_same_region_rejected.py", "service": "ecr"} {"check_id": "ecr.repository-creation-template-lifecycle", "deployments": [], "key": "ecr/repository-creation-template-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepositoryCreationTemplate", "ecr:DeleteRepositoryCreationTemplate", "ecr:DescribeRepositoryCreationTemplates", "ecr:UpdateRepositoryCreationTemplate"], "path": "behavioral/ecr/check_repository_creation_template_lifecycle.py", "service": "ecr"} {"check_id": "ecr.repository-delete-non-empty-rejected", "deployments": [], "key": "ecr/repository-delete-non-empty-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:BatchDeleteImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_repository_delete_non_empty_rejected.py", "service": "ecr"} {"check_id": "ecr.repository-not-found-representative", "deployments": [], "key": "ecr/repository-not-found-representative", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetRepositoryPolicy", "ecr:SetRepositoryPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_repository_not_found_representative.py", "service": "ecr"} {"check_id": "ecr.repository-policy-deny-blocks-layer-upload", "deployments": [], "key": "ecr/repository-policy-deny-blocks-layer-upload", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteRepositoryPolicy", "ecr:DescribeRepositories", "ecr:GetRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:ListImages", "ecr:SetRepositoryPolicy", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_repository_policy_deny_blocks_layer_upload.py", "service": "ecr"} {"check_id": "ecr.repository-policy-round-trip", "deployments": [], "key": "ecr/repository-policy-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy", "ecr:SetRepositoryPolicy"], "path": "behavioral/ecr/check_repository_policy_round_trip.py", "service": "ecr"} {"check_id": "ecr.scan-not-found-before-scan-started", "deployments": [], "key": "ecr/scan-not-found-before-scan-started", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_scan_not_found_before_scan_started.py", "service": "ecr"} {"check_id": "ecr.signing-configuration-delete-returns-not-found-after", "deployments": [], "key": "ecr/signing-configuration-delete-returns-not-found-after", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_signing_configuration_delete_returns_not_found_after.py", "service": "ecr"} {"check_id": "ecr.signing-configuration-enforced-verification", "deployments": [], "key": "ecr/signing-configuration-enforced-verification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteSigningConfiguration", "ecr:DescribeImageSigningStatus", "ecr:GetSigningConfiguration", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutSigningConfiguration", "ecr:UploadLayerPart", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_signing_configuration_enforced_verification.py", "service": "ecr"} {"check_id": "ecr.signing-configuration-lifecycle", "deployments": [], "key": "ecr/signing-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_signing_configuration_lifecycle.py", "service": "ecr"} {"check_id": "ecr.signing-configuration-round-trip", "deployments": [], "key": "ecr/signing-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_signing_configuration_round_trip.py", "service": "ecr"} {"check_id": "ecr.signing-configuration-rule-set-round-trip", "deployments": [], "key": "ecr/signing-configuration-rule-set-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:DeleteSigningConfiguration", "ecr:GetSigningConfiguration", "ecr:PutSigningConfiguration", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/ecr/check_signing_configuration_rule_set_round_trip.py", "service": "ecr"} {"check_id": "ecr.start-image-scan-archived-image-blocked", "deployments": [], "key": "ecr/start-image-scan-archived-image-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:StartImageScan", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_start_image_scan_archived_image_blocked.py", "service": "ecr"} {"check_id": "ecr.start-image-scan-on-archived-image-rejected", "deployments": [], "key": "ecr/start-image-scan-on-archived-image-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:DescribeImages", "ecr:GetRegistryScanningConfiguration", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutRegistryScanningConfiguration", "ecr:StartImageScan", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_start_image_scan_on_archived_image_rejected.py", "service": "ecr"} {"check_id": "ecr.start-image-scan-transitions-to-findings", "deployments": [], "key": "ecr/start-image-scan-transitions-to-findings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImageScanFindings", "ecr:GetRegistryScanningConfiguration", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:PutRegistryScanningConfiguration", "ecr:StartImageScan", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_start_image_scan_transitions_to_findings.py", "service": "ecr"} {"check_id": "ecr.start-lifecycle-policy-preview-missing-repo-fails", "deployments": [], "key": "ecr/start-lifecycle-policy-preview-missing-repo-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:GetLifecyclePolicyPreview", "ecr:StartLifecyclePolicyPreview"], "path": "behavioral/ecr/check_start_lifecycle_policy_preview_missing_repo_fails.py", "service": "ecr"} {"check_id": "ecr.tag-resource-and-untag", "deployments": [], "key": "ecr/tag-resource-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:ListTagsForResource", "ecr:TagResource", "ecr:UntagResource"], "path": "behavioral/ecr/check_tag_resource_and_untag.py", "service": "ecr"} {"check_id": "ecr.tag-resource-reserved-prefix-rejected", "deployments": [], "key": "ecr/tag-resource-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:ListTagsForResource", "ecr:TagResource"], "path": "behavioral/ecr/check_tag_resource_reserved_prefix_rejected.py", "service": "ecr"} {"check_id": "ecr.update-image-storage-class-double-archive-rejected", "deployments": [], "key": "ecr/update-image-storage-class-double-archive-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_update_image_storage_class_double_archive_rejected.py", "service": "ecr"} {"check_id": "ecr.update-image-storage-class-transition", "deployments": [], "key": "ecr/update-image-storage-class-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_update_image_storage_class_transition.py", "service": "ecr"} {"check_id": "ecr.update-image-storage-class-unsupported-rejected", "deployments": [], "key": "ecr/update-image-storage-class-unsupported-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_update_image_storage_class_unsupported_rejected.py", "service": "ecr"} {"check_id": "ecr.update-image-storage-class-unsupported-transition-rejected", "deployments": [], "key": "ecr/update-image-storage-class-unsupported-transition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_update_image_storage_class_unsupported_transition_rejected.py", "service": "ecr"} {"check_id": "ecr.update-pull-through-cache-rule-invalid-upstream-rejected", "deployments": [], "key": "ecr/update-pull-through-cache-rule-invalid-upstream-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_update_pull_through_cache_rule_invalid_upstream_rejected.py", "service": "ecr"} {"check_id": "ecr.update-pull-through-cache-rule-missing-secret-rejected", "deployments": [], "key": "ecr/update-pull-through-cache-rule-missing-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_update_pull_through_cache_rule_missing_secret_rejected.py", "service": "ecr"} {"check_id": "ecr.update-pull-through-cache-rule-nonexistent-rejected", "deployments": [], "key": "ecr/update-pull-through-cache-rule-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_update_pull_through_cache_rule_nonexistent_rejected.py", "service": "ecr"} {"check_id": "ecr.update-pull-through-cache-rule-not-found-rejected", "deployments": [], "key": "ecr/update-pull-through-cache-rule-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/ecr/check_update_pull_through_cache_rule_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.update-pull-through-cache-rule-secret-not-found-rejected", "deployments": [], "key": "ecr/update-pull-through-cache-rule-secret-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/ecr/check_update_pull_through_cache_rule_secret_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.update-storage-class-unsupported-rejected", "deployments": [], "key": "ecr/update-storage-class-unsupported-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UpdateImageStorageClass", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_update_storage_class_unsupported_rejected.py", "service": "ecr"} {"check_id": "ecr.upload-layer-part-binary-blob-round-trip", "deployments": [], "key": "ecr/upload-layer-part-binary-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_upload_layer_part_binary_blob_round_trip.py", "service": "ecr"} {"check_id": "ecr.upload-layer-part-noncontiguous-range-rejected", "deployments": [], "key": "ecr/upload-layer-part-noncontiguous-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_upload_layer_part_noncontiguous_range_rejected.py", "service": "ecr"} {"check_id": "ecr.upload-layer-part-streaming-then-complete", "deployments": [], "key": "ecr/upload-layer-part-streaming-then-complete", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart"], "path": "behavioral/ecr/check_upload_layer_part_streaming_then_complete.py", "service": "ecr"} {"check_id": "ecr.validate-pull-through-cache-rule-confirms-configured-rule", "deployments": [], "key": "ecr/validate-pull-through-cache-rule-confirms-configured-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:ValidatePullThroughCacheRule"], "path": "behavioral/ecr/check_validate_pull_through_cache_rule_confirms_configured_rule.py", "service": "ecr"} {"check_id": "ecr.validate-pull-through-cache-rule-nonexistent-rejected", "deployments": [], "key": "ecr/validate-pull-through-cache-rule-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:ValidatePullThroughCacheRule"], "path": "behavioral/ecr/check_validate_pull_through_cache_rule_nonexistent_rejected.py", "service": "ecr"} {"check_id": "ecr.validate-pull-through-cache-rule-not-found", "deployments": [], "key": "ecr/validate-pull-through-cache-rule-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:ValidatePullThroughCacheRule"], "path": "behavioral/ecr/check_validate_pull_through_cache_rule_not_found.py", "service": "ecr"} {"check_id": "ecr.validate-pull-through-cache-rule-not-found-rejected", "deployments": [], "key": "ecr/validate-pull-through-cache-rule-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:ValidatePullThroughCacheRule"], "path": "behavioral/ecr/check_validate_pull_through_cache_rule_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr.validate-pull-through-cache-rule-secret-not-found-rejected", "deployments": [], "key": "ecr/validate-pull-through-cache-rule-secret-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "ecr:DescribePullThroughCacheRules", "ecr:UpdatePullThroughCacheRule", "ecr:ValidatePullThroughCacheRule", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/ecr/check_validate_pull_through_cache_rule_secret_not_found_rejected.py", "service": "ecr"} {"check_id": "ecr__ecs__elbv2.deploy-cfn-ecs-ecr-elbv2-stack-provisions-routing", "deployments": [], "key": "ecr__ecs__elbv2/deploy-cfn-ecs-ecr-elbv2-stack-provisions-routing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecr:DeleteRepository", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "elbv2:DescribeTargetHealth"], "path": "behavioral/ecr__ecs__elbv2/check_deploy_cfn_ecs_ecr_elbv2_stack_provisions_routing.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.deploy-cfn-negative-missing-service-target-group-binding", "deployments": [], "key": "ecr__ecs__elbv2/deploy-cfn-negative-missing-service-target-group-binding", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecr:DeleteRepository", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "elbv2:DescribeTargetHealth"], "path": "behavioral/ecr__ecs__elbv2/check_deploy_cfn_negative_missing_service_target_group_binding.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.deploy-cfn-updates-service-on-image-tag-change", "deployments": [], "key": "ecr__ecs__elbv2/deploy-cfn-updates-service-on-image-tag-change", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ecr:DeleteRepository", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "elbv2:DescribeTargetHealth"], "path": "behavioral/ecr__ecs__elbv2/check_deploy_cfn_updates_service_on_image_tag_change.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-execution-role-trust-policy-allows-ecs-tasks", "deployments": [], "key": "ecr__ecs__elbv2/ecs-execution-role-trust-policy-allows-ecs-tasks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_execution_role_trust_policy_allows_ecs_tasks.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-service-create-fails-with-target-group-type-mismatch", "deployments": [], "key": "ecr__ecs__elbv2/ecs-service-create-fails-with-target-group-type-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListServices", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_service_create_fails_with_target_group_type_mismatch.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-service-create-rejects-nonexistent-role-arn", "deployments": [], "key": "ecr__ecs__elbv2/ecs-service-create-rejects-nonexistent-role-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListServices", "ecs:ListTaskDefinitionFamilies", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_service_create_rejects_nonexistent_role_arn.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-task-fails-when-ecr-repo-policy-denies-pull", "deployments": [], "key": "ecr__ecs__elbv2/ecs-task-fails-when-ecr-repo-policy-denies-pull", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:SetRepositoryPolicy", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_task_fails_when_ecr_repo_policy_denies_pull.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-task-fails-with-nonexistent-ecr-image-tag", "deployments": [], "key": "ecr__ecs__elbv2/ecs-task-fails-with-nonexistent-ecr-image-tag", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_task_fails_with_nonexistent_ecr_image_tag.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-task-launch-fails-without-ecs-tasks-trust", "deployments": [], "key": "ecr__ecs__elbv2/ecs-task-launch-fails-without-ecs-tasks-trust", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_task_launch_fails_without_ecs_tasks_trust.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-task-with-foreign-ecr-registry-image-fails-to-pull", "deployments": [], "key": "ecr__ecs__elbv2/ecs-task-with-foreign-ecr-registry-image-fails-to-pull", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_task_with_foreign_ecr_registry_image_fails_to_pull.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-taskdef-image-digest-pinning-matches-ecr", "deployments": [], "key": "ecr__ecs__elbv2/ecs-taskdef-image-digest-pinning-matches-ecr", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_taskdef_image_digest_pinning_matches_ecr.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.ecs-taskdef-registers-with-ecr-image-uri", "deployments": [], "key": "ecr__ecs__elbv2/ecs-taskdef-registers-with-ecr-image-uri", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecr__ecs__elbv2/check_ecs_taskdef_registers_with_ecr_image_uri.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.elbv2-deregisters-targets-on-ecs-task-stop", "deployments": [], "key": "ecr__ecs__elbv2/elbv2-deregisters-targets-on-ecs-task-stop", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecr__ecs__elbv2/check_elbv2_deregisters_targets_on_ecs_task_stop.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.elbv2-health-check-reflects-ecs-task-status", "deployments": [], "key": "ecr__ecs__elbv2/elbv2-health-check-reflects-ecs-task-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth"], "path": "behavioral/ecr__ecs__elbv2/check_elbv2_health_check_reflects_ecs_task_status.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.elbv2-listener-routes-only-to-registered-ecs-targets", "deployments": [], "key": "ecr__ecs__elbv2/elbv2-listener-routes-only-to-registered-ecs-targets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecr__ecs__elbv2/check_elbv2_listener_routes_only_to_registered_ecs_targets.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.elbv2-no-target-registration-without-service-lb-config", "deployments": [], "key": "ecr__ecs__elbv2/elbv2-no-target-registration-without-service-lb-config", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth"], "path": "behavioral/ecr__ecs__elbv2/check_elbv2_no_target_registration_without_service_lb_config.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__elbv2.elbv2-target-group-registers-ecs-service-tasks", "deployments": [], "key": "ecr__ecs__elbv2/elbv2-target-group-registers-ecs-service-tasks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth"], "path": "behavioral/ecr__ecs__elbv2/check_elbv2_target_group_registers_ecs_service_tasks.py", "service": "ecr__ecs__elbv2"} {"check_id": "ecr__ecs__logs.ecr-pull-through-cache-image-pulled-by-ecs-task", "deployments": [], "key": "ecr__ecs__logs/ecr-pull-through-cache-image-pulled-by-ecs-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CreatePullThroughCacheRule", "ecr:CreateRepository", "ecr:DeletePullThroughCacheRule", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:ListImages", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecr__ecs__logs/check_ecr_pull_through_cache_image_pulled_by_ecs_task.py", "service": "ecr__ecs__logs"} {"check_id": "ecr__ecs__logs.ecs-exec-role-without-ecr-auth-cannot-pull", "deployments": [], "key": "ecr__ecs__logs/ecs-exec-role-without-ecr-auth-cannot-pull", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CreatePullThroughCacheRule", "ecr:CreateRepository", "ecr:DeletePullThroughCacheRule", "ecr:DeleteRepository", "ecr:ListImages", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecr__ecs__logs/check_ecs_exec_role_without_ecr_auth_cannot_pull.py", "service": "ecr__ecs__logs"} {"check_id": "ecr__eks__logs.cli-eks-update-logging-config-workflow", "deployments": [], "key": "ecr__eks__logs/cli-eks-update-logging-config-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams"], "path": "behavioral/ecr__eks__logs/check_cli_eks_update_logging_config_workflow.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.deploy-eks-cluster-with-full-logging-cloudformation", "deployments": [], "key": "ecr__eks__logs/deploy-eks-cluster-with-full-logging-cloudformation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams"], "path": "behavioral/ecr__eks__logs/check_deploy_eks_cluster_with_full_logging_cloudformation.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.deploy-eks-cluster-without-logging-config-no-log-groups", "deployments": [], "key": "ecr__eks__logs/deploy-eks-cluster-without-logging-config-no-log-groups", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "logs:DescribeLogGroups", "logs:DescribeLogStreams"], "path": "behavioral/ecr__eks__logs/check_deploy_eks_cluster_without_logging_config_no_log_groups.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.deploy-eks-nodegroup-with-ecr-readonly-policy", "deployments": [], "key": "ecr__eks__logs/deploy-eks-nodegroup-with-ecr-readonly-policy", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:GetAuthorizationToken", "ecr:TagResource"], "path": "behavioral/ecr__eks__logs/check_deploy_eks_nodegroup_with_ecr_readonly_policy.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.ecr-cross-account-pull-denied-without-repo-policy-rejected", "deployments": [], "key": "ecr__eks__logs/ecr-cross-account-pull-denied-without-repo-policy-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:SetRepositoryPolicy", "ecr:UploadLayerPart", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ecr__eks__logs/check_ecr_cross_account_pull_denied_without_repo_policy_rejected.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-audit-log-streams-delivered-to-cloudwatch", "deployments": [], "key": "ecr__eks__logs/eks-audit-log-streams-delivered-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams"], "path": "behavioral/ecr__eks__logs/check_eks_audit_log_streams_delivered_to_cloudwatch.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-cluster-log-group-naming-follows-convention-per-cluster", "deployments": [], "key": "ecr__eks__logs/eks-cluster-log-group-naming-follows-convention-per-cluster", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents"], "path": "behavioral/ecr__eks__logs/check_eks_cluster_log_group_naming_follows_convention_per_cluster.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-container-insights-metrics-logs-delivery", "deployments": [], "key": "ecr__eks__logs/eks-container-insights-metrics-logs-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:CreatePodIdentityAssociation", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:FilterLogEvents"], "path": "behavioral/ecr__eks__logs/check_eks_container_insights_metrics_logs_delivery.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-container-insights-without-agent-permission-no-delivery", "deployments": [], "key": "ecr__eks__logs/eks-container-insights-without-agent-permission-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:CreatePodIdentityAssociation", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:FilterLogEvents"], "path": "behavioral/ecr__eks__logs/check_eks_container_insights_without_agent_permission_no_delivery.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-disabled-log-type-produces-no-log-group", "deployments": [], "key": "ecr__eks__logs/eks-disabled-log-type-produces-no-log-group", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/ecr__eks__logs/check_eks_disabled_log_type_produces_no_log_group.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-enable-cluster-logging-creates-log-group", "deployments": [], "key": "ecr__eks__logs/eks-enable-cluster-logging-creates-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams"], "path": "behavioral/ecr__eks__logs/check_eks_enable_cluster_logging_creates_log_group.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-fargate-execution-role-pulls-ecr-image", "deployments": [], "key": "ecr__eks__logs/eks-fargate-execution-role-pulls-ecr-image", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ReleaseAddress", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "eks:CreateCluster", "eks:CreateFargateProfile", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DescribeCluster", "eks:DescribeFargateProfile", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecr__eks__logs/check_eks_fargate_execution_role_pulls_ecr_image.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-fargate-logging-without-execution-role-permission-no-delivery", "deployments": [], "key": "ecr__eks__logs/eks-fargate-logging-without-execution-role-permission-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "eks:CreateCluster", "eks:CreateFargateProfile", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DescribeCluster", "eks:DescribeFargateProfile", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/ecr__eks__logs/check_eks_fargate_logging_without_execution_role_permission_no_delivery.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-fargate-pod-logs-delivered-to-cloudwatch", "deployments": [], "key": "ecr__eks__logs/eks-fargate-pod-logs-delivered-to-cloudwatch", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "eks:CreateCluster", "eks:CreateFargateProfile", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DescribeCluster", "eks:DescribeFargateProfile", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/ecr__eks__logs/check_eks_fargate_pod_logs_delivered_to_cloudwatch.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-irsa-role-pulls-ecr-image-without-imagepullsecret", "deployments": [], "key": "ecr__eks__logs/eks-irsa-role-pulls-ecr-image-without-imagepullsecret", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ecr__eks__logs/check_eks_irsa_role_pulls_ecr_image_without_imagepullsecret.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-nodegroup-pulls-private-ecr-image", "deployments": [], "key": "ecr__eks__logs/eks-nodegroup-pulls-private-ecr-image", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecr__eks__logs/check_eks_nodegroup_pulls_private_ecr_image.py", "service": "ecr__eks__logs"} {"check_id": "ecr__eks__logs.eks-pod-image-pull-fails-without-ecr-permission-rejected", "deployments": [], "key": "ecr__eks__logs/eks-pod-image-pull-fails-without-ecr-permission-rejected", "labels": ["axis:negative-delivery", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecr__eks__logs/check_eks_pod_image_pull_fails_without_ecr_permission_rejected.py", "service": "ecr__eks__logs"} {"check_id": "ecr__kms.kms-encrypted-repository-creates-exactly-one-ecr-grant-and-retires-it-on-delete", "deployments": [], "key": "ecr__kms/kms-encrypted-repository-creates-exactly-one-ecr-grant-and-retires-it-on-delete", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:ListGrants", "kms:ScheduleKeyDeletion"], "path": "behavioral/ecr__kms/check_kms_encrypted_repository_creates_exactly_one_ecr_grant_and_retires_it_on_delete.py", "service": "ecr__kms"} {"check_id": "ecr__lambda.container-image-repository-policy-deny-rejected", "deployments": [], "key": "ecr__lambda/container-image-repository-policy-deny-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:SetRepositoryPolicy", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/ecr__lambda/check_container_image_repository_policy_deny_rejected.py", "service": "ecr__lambda"} {"check_id": "ecr__lambda.image-nodejs-base-concurrent-invocations-run-in-parallel", "deployments": [], "key": "ecr__lambda/image-nodejs-base-concurrent-invocations-run-in-parallel", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:GetAuthorizationToken", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/ecr__lambda/check_image_nodejs_base_concurrent_invocations_run_in_parallel.py", "service": "ecr__lambda"} {"check_id": "ecr__lambda.image-nodejs-base-runs-package-json-dependencies", "deployments": [], "key": "ecr__lambda/image-nodejs-base-runs-package-json-dependencies", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:GetAuthorizationToken", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/ecr__lambda/check_image_nodejs_base_runs_package_json_dependencies.py", "service": "ecr__lambda"} {"check_id": "ecr__lambda.image-python-base-honors-lambda-env-and-task-root", "deployments": [], "key": "ecr__lambda/image-python-base-honors-lambda-env-and-task-root", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:GetAuthorizationToken", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/ecr__lambda/check_image_python_base_honors_lambda_env_and_task_root.py", "service": "ecr__lambda"} {"check_id": "ecr__lambda.image-python-base-runs-requirements-txt-dependencies", "deployments": [], "key": "ecr__lambda/image-python-base-runs-requirements-txt-dependencies", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:GetAuthorizationToken", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/ecr__lambda/check_image_python_base_runs_requirements_txt_dependencies.py", "service": "ecr__lambda"} {"check_id": "ecr__lambda.image-python-base-runtime-capabilities", "deployments": [], "key": "ecr__lambda/image-python-base-runtime-capabilities", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:GetAuthorizationToken", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/ecr__lambda/check_image_python_base_runtime_capabilities.py", "service": "ecr__lambda"} {"check_id": "ecr__lambda.image-update-function-code-to-new-tag-serves-new-handler-output", "deployments": [], "key": "ecr__lambda/image-update-function-code-to-new-tag-serves-new-handler-output", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeImages", "ecr:GetAuthorizationToken", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode"], "path": "behavioral/ecr__lambda/check_image_update_function_code_to_new_tag_serves_new_handler_output.py", "service": "ecr__lambda"} {"check_id": "ecr__lambda__sqs.container-image-custom-runtime-sqs-batch-item-failures", "deployments": [], "key": "ecr__lambda__sqs/container-image-custom-runtime-sqs-batch-item-failures", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/ecr__lambda__sqs/check_container_image_custom_runtime_sqs_batch_item_failures.py", "service": "ecr__lambda__sqs"} {"check_id": "ecs.access-denied-across-mutating-ops", "deployments": [], "key": "ecs/access-denied-across-mutating-ops", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_access_denied_across_mutating_ops.py", "service": "ecs"} {"check_id": "ecs.account-setting-put-and-list", "deployments": [], "key": "ecs/account-setting-put-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:ListAccountSettings", "ecs:PutAccountSetting"], "path": "behavioral/ecs/check_account_setting_put_and_list.py", "service": "ecs"} {"check_id": "ecs.account-setting-put-list-delete-roundtrip", "deployments": [], "key": "ecs/account-setting-put-list-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteAccountSetting", "ecs:ListAccountSettings", "ecs:PutAccountSetting"], "path": "behavioral/ecs/check_account_setting_put_list_delete_roundtrip.py", "service": "ecs"} {"check_id": "ecs.attribute-put-list-delete-roundtrip", "deployments": [], "key": "ecs/attribute-put-list-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteAttributes", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListAttributes", "ecs:PutAttributes", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_attribute_put_list_delete_roundtrip.py", "service": "ecs"} {"check_id": "ecs.attributes-put-list-delete-lifecycle", "deployments": [], "key": "ecs/attributes-put-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteAttributes", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListAttributes", "ecs:PutAttributes", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_attributes_put_list_delete_lifecycle.py", "service": "ecs"} {"check_id": "ecs.awsvpc-task-attachment-details-match-network-configuration", "deployments": [], "key": "ecs/awsvpc-task-attachment-details-match-network-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_awsvpc_task_attachment_details_match_network_configuration.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-create-invalid-asg-fails", "deployments": [], "key": "ecs/capacity-provider-create-invalid-asg-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ssm:GetParameter"], "path": "behavioral/ecs/check_capacity_provider_create_invalid_asg_fails.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-create-update-delete-lifecycle", "deployments": [], "key": "ecs/capacity-provider-create-update-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ecs:UpdateCapacityProvider", "ssm:GetParameter"], "path": "behavioral/ecs/check_capacity_provider_create_update_delete_lifecycle.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-delete-nonexistent-fails", "deployments": [], "key": "ecs/capacity-provider-delete-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteCapacityProvider"], "path": "behavioral/ecs/check_capacity_provider_delete_nonexistent_fails.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-lifecycle-active-to-inactive", "deployments": [], "key": "ecs/capacity-provider-lifecycle-active-to-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ssm:GetParameter"], "path": "behavioral/ecs/check_capacity_provider_lifecycle_active_to_inactive.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-managed-scaling-enforced", "deployments": [], "key": "ecs/capacity-provider-managed-scaling-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders", "iam:CreateServiceLinkedRole", "ssm:GetParameter"], "path": "behavioral/ecs/check_capacity_provider_managed_scaling_enforced.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/capacity-provider-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DescribeCapacityProviders", "ecs:PutClusterCapacityProviders", "ecs:UpdateCapacityProvider", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_capacity_provider_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-removal-while-in-use-rejected", "deployments": [], "key": "ecs/capacity-provider-removal-while-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_capacity_provider_removal_while_in_use_rejected.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-strategy-fallback-ordering", "deployments": [], "key": "ecs/capacity-provider-strategy-fallback-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_capacity_provider_strategy_fallback_ordering.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-strategy-fargate-spot-task-placement", "deployments": [], "key": "ecs/capacity-provider-strategy-fargate-spot-task-placement", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_capacity_provider_strategy_fargate_spot_task_placement.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-update-changes-managed-scaling", "deployments": [], "key": "ecs/capacity-provider-update-changes-managed-scaling", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ecs:UpdateCapacityProvider", "ssm:GetParameter"], "path": "behavioral/ecs/check_capacity_provider_update_changes_managed_scaling.py", "service": "ecs"} {"check_id": "ecs.capacity-provider-update-unknown", "deployments": [], "key": "ecs/capacity-provider-update-unknown", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ecs:UpdateCapacityProvider", "ssm:GetParameter"], "path": "behavioral/ecs/check_capacity_provider_update_unknown.py", "service": "ecs"} {"check_id": "ecs.capprov-base-and-weight-place-containers-that-really-run", "deployments": [], "key": "ecs/capprov-base-and-weight-place-containers-that-really-run", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs/check_capprov_base_and_weight_place_containers_that_really_run.py", "service": "ecs"} {"check_id": "ecs.capprov-cluster-default-strategy-governs-a-task-that-names-no-provider", "deployments": [], "key": "ecs/capprov-cluster-default-strategy-governs-a-task-that-names-no-provider", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs/check_capprov_cluster_default_strategy_governs_a_task_that_names_no_provider.py", "service": "ecs"} {"check_id": "ecs.capprov-zero-capacity-provider-rejects-task-and-no-container-runs", "deployments": [], "key": "ecs/capprov-zero-capacity-provider-rejects-task-and-no-container-runs", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "ssm:GetParameter"], "path": "behavioral/ecs/check_capprov_zero_capacity_provider_rejects_task_and_no_container_runs.py", "service": "ecs"} {"check_id": "ecs.cluster-and-task-definition-are-region-scoped", "deployments": [], "key": "ecs/cluster-and-task-definition-are-region-scoped", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:ListClusters", "ecs:ListTaskDefinitionFamilies", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_cluster_and_task_definition_are_region_scoped.py", "service": "ecs"} {"check_id": "ecs.cluster-create-active", "deployments": [], "key": "ecs/cluster-create-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters"], "path": "behavioral/ecs/check_cluster_create_active.py", "service": "ecs"} {"check_id": "ecs.cluster-create-idempotent-by-name", "deployments": [], "key": "ecs/cluster-create-idempotent-by-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters"], "path": "behavioral/ecs/check_cluster_create_idempotent_by_name.py", "service": "ecs"} {"check_id": "ecs.cluster-delete-nonexistent-fails", "deployments": [], "key": "ecs/cluster-delete-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters"], "path": "behavioral/ecs/check_cluster_delete_nonexistent_fails.py", "service": "ecs"} {"check_id": "ecs.cluster-delete-removes-from-active", "deployments": [], "key": "ecs/cluster-delete-removes-from-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters"], "path": "behavioral/ecs/check_cluster_delete_removes_from_active.py", "service": "ecs"} {"check_id": "ecs.cluster-delete-with-active-service-fails", "deployments": [], "key": "ecs/cluster-delete-with-active-service-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:ListClusters", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_cluster_delete_with_active_service_fails.py", "service": "ecs"} {"check_id": "ecs.cluster-delete-with-active-service-rejected", "deployments": [], "key": "ecs/cluster-delete-with-active-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_cluster_delete_with_active_service_rejected.py", "service": "ecs"} {"check_id": "ecs.cluster-foreign-account-arn-rejected", "deployments": [], "key": "ecs/cluster-foreign-account-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters"], "path": "behavioral/ecs/check_cluster_foreign_account_arn_rejected.py", "service": "ecs"} {"check_id": "ecs.cluster-lifecycle-active-to-deleted", "deployments": [], "key": "ecs/cluster-lifecycle-active-to-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:UpdateClusterSettings"], "path": "behavioral/ecs/check_cluster_lifecycle_active_to_deleted.py", "service": "ecs"} {"check_id": "ecs.cluster-lifecycle-active-to-inactive", "deployments": [], "key": "ecs/cluster-lifecycle-active-to-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:ListClusters"], "path": "behavioral/ecs/check_cluster_lifecycle_active_to_inactive.py", "service": "ecs"} {"check_id": "ecs.cluster-settings-container-insights-toggle", "deployments": [], "key": "ecs/cluster-settings-container-insights-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:UpdateClusterSettings"], "path": "behavioral/ecs/check_cluster_settings_container_insights_toggle.py", "service": "ecs"} {"check_id": "ecs.concurrent-account-setting-writes", "deployments": [], "key": "ecs/concurrent-account-setting-writes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteAccountSetting", "ecs:ListAccountSettings", "ecs:PutAccountSetting", "ecs:PutAccountSettingDefault"], "path": "behavioral/ecs/check_concurrent_account_setting_writes.py", "service": "ecs"} {"check_id": "ecs.concurrent-capacity-provider-association", "deployments": [], "key": "ecs/concurrent-capacity-provider-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders", "ecs:UpdateCapacityProvider", "ssm:GetParameter"], "path": "behavioral/ecs/check_concurrent_capacity_provider_association.py", "service": "ecs"} {"check_id": "ecs.concurrent-capacity-provider-update-contention", "deployments": [], "key": "ecs/concurrent-capacity-provider-update-contention", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ecs:UpdateCapacityProvider", "ssm:GetParameter"], "path": "behavioral/ecs/check_concurrent_capacity_provider_update_contention.py", "service": "ecs"} {"check_id": "ecs.concurrent-cluster-delete-race", "deployments": [], "key": "ecs/concurrent-cluster-delete-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters"], "path": "behavioral/ecs/check_concurrent_cluster_delete_race.py", "service": "ecs"} {"check_id": "ecs.concurrent-cluster-settings-update", "deployments": [], "key": "ecs/concurrent-cluster-settings-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:UpdateClusterSettings"], "path": "behavioral/ecs/check_concurrent_cluster_settings_update.py", "service": "ecs"} {"check_id": "ecs.concurrent-container-instance-state-update", "deployments": [], "key": "ecs/concurrent-container-instance-state-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:UpdateContainerInstancesState", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_concurrent_container_instance_state_update.py", "service": "ecs"} {"check_id": "ecs.concurrent-create-service-duplicate-name", "deployments": [], "key": "ecs/concurrent-create-service-duplicate-name", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_concurrent_create_service_duplicate_name.py", "service": "ecs"} {"check_id": "ecs.concurrent-daemon-update", "deployments": [], "key": "ecs/concurrent-daemon-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:DescribeDaemonDeployments", "ecs:DescribeDaemonRevisions", "ecs:DescribeDaemonTaskDefinition", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_concurrent_daemon_update.py", "service": "ecs"} {"check_id": "ecs.concurrent-put-cluster-capacity-providers-serializes", "deployments": [], "key": "ecs/concurrent-put-cluster-capacity-providers-serializes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders"], "path": "behavioral/ecs/check_concurrent_put_cluster_capacity_providers_serializes.py", "service": "ecs"} {"check_id": "ecs.concurrent-run-task-idempotent-token", "deployments": [], "key": "ecs/concurrent-run-task-idempotent-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_concurrent_run_task_idempotent_token.py", "service": "ecs"} {"check_id": "ecs.concurrent-service-update-deployment-converges", "deployments": [], "key": "ecs/concurrent-service-update-deployment-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopServiceDeployment", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_concurrent_service_update_deployment_converges.py", "service": "ecs"} {"check_id": "ecs.concurrent-tag-operations", "deployments": [], "key": "ecs/concurrent-tag-operations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource", "ecs:UntagResource"], "path": "behavioral/ecs/check_concurrent_tag_operations.py", "service": "ecs"} {"check_id": "ecs.concurrent-task-definition-registration", "deployments": [], "key": "ecs/concurrent-task-definition-registration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_concurrent_task_definition_registration.py", "service": "ecs"} {"check_id": "ecs.concurrent-taskset-update-primary", "deployments": [], "key": "ecs/concurrent-taskset-update-primary", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskSets", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateTaskSet"], "path": "behavioral/ecs/check_concurrent_taskset_update_primary.py", "service": "ecs"} {"check_id": "ecs.concurrent-update-service-primary-task-set-race", "deployments": [], "key": "ecs/concurrent-update-service-primary-task-set-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_concurrent_update_service_primary_task_set_race.py", "service": "ecs"} {"check_id": "ecs.concurrent-update-task-protection-conflicting-expiry", "deployments": [], "key": "ecs/concurrent-update-task-protection-conflicting-expiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_concurrent_update_task_protection_conflicting_expiry.py", "service": "ecs"} {"check_id": "ecs.container-definition-empty-vs-absent-environment-preserved", "deployments": [], "key": "ecs/container-definition-empty-vs-absent-environment-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_container_definition_empty_vs_absent_environment_preserved.py", "service": "ecs"} {"check_id": "ecs.container-definition-secrets-valuefrom-round-trip", "deployments": [], "key": "ecs/container-definition-secrets-valuefrom-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_container_definition_secrets_valuefrom_round_trip.py", "service": "ecs"} {"check_id": "ecs.container-depends-on-complete-admits-nonzero-exit-unlike-success", "deployments": [], "key": "ecs/container-depends-on-complete-admits-nonzero-exit-unlike-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_container_depends_on_complete_admits_nonzero_exit_unlike_success.py", "service": "ecs"} {"check_id": "ecs.container-depends-on-healthy-waits-for-the-health-check-to-pass", "deployments": [], "key": "ecs/container-depends-on-healthy-waits-for-the-health-check-to-pass", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_container_depends_on_healthy_waits_for_the_health_check_to_pass.py", "service": "ecs"} {"check_id": "ecs.container-depends-on-success-gates-dependent-start", "deployments": [], "key": "ecs/container-depends-on-success-gates-dependent-start", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_container_depends_on_success_gates_dependent_start.py", "service": "ecs"} {"check_id": "ecs.container-environment-unicode-value-round-trip", "deployments": [], "key": "ecs/container-environment-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_container_environment_unicode_value_round_trip.py", "service": "ecs"} {"check_id": "ecs.container-health-check-transitions-healthy-and-unhealthy", "deployments": [], "key": "ecs/container-health-check-transitions-healthy-and-unhealthy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_container_health_check_transitions_healthy_and_unhealthy.py", "service": "ecs"} {"check_id": "ecs.container-instance-agent-connection-timeout", "deployments": [], "key": "ecs/container-instance-agent-connection-timeout", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:UpdateContainerAgent", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_container_instance_agent_connection_timeout.py", "service": "ecs"} {"check_id": "ecs.container-instance-agent-update-rejected-missing-version", "deployments": [], "key": "ecs/container-instance-agent-update-rejected-missing-version", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:RegisterContainerInstance", "ecs:UpdateContainerAgent", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_container_instance_agent_update_rejected_missing_version.py", "service": "ecs"} {"check_id": "ecs.container-instance-deregister-not-found", "deployments": [], "key": "ecs/container-instance-deregister-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_container_instance_deregister_not_found.py", "service": "ecs"} {"check_id": "ecs.container-instance-deregister-removes-from-list", "deployments": [], "key": "ecs/container-instance-deregister-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListContainerInstances", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_container_instance_deregister_removes_from_list.py", "service": "ecs"} {"check_id": "ecs.container-instance-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/container-instance-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:RegisterContainerInstance", "ecs:UpdateContainerInstancesState", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_container_instance_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.container-instance-register-deregister-lifecycle", "deployments": [], "key": "ecs/container-instance-register-deregister-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:RegisterContainerInstance", "ecs:UpdateContainerInstancesState", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_container_instance_register_deregister_lifecycle.py", "service": "ecs"} {"check_id": "ecs.container-instance-register-state-deregister", "deployments": [], "key": "ecs/container-instance-register-state-deregister", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:UpdateContainerInstancesState", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_container_instance_register_state_deregister.py", "service": "ecs"} {"check_id": "ecs.container-secret-base64-payload-round-trip", "deployments": [], "key": "ecs/container-secret-base64-payload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_container_secret_base64_payload_round_trip.py", "service": "ecs"} {"check_id": "ecs.container-state-change-sequencing", "deployments": [], "key": "ecs/container-state-change-sequencing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:StartTask", "ecs:StopTask", "ecs:SubmitContainerStateChange", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_container_state_change_sequencing.py", "service": "ecs"} {"check_id": "ecs.container-workdir-user-and-ulimit-apply-inside-the-running-container", "deployments": [], "key": "ecs/container-workdir-user-and-ulimit-apply-inside-the-running-container", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_container_workdir_user_and_ulimit_apply_inside_the_running_container.py", "service": "ecs"} {"check_id": "ecs.continue-service-deployment-advances-rollout", "deployments": [], "key": "ecs/continue-service-deployment-advances-rollout", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:ContinueServiceDeployment", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_continue_service_deployment_advances_rollout.py", "service": "ecs"} {"check_id": "ecs.continue-service-deployment-advances-waiting-deployment", "deployments": [], "key": "ecs/continue-service-deployment-advances-waiting-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:ContinueServiceDeployment", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_continue_service_deployment_advances_waiting_deployment.py", "service": "ecs"} {"check_id": "ecs.continue-service-deployment-rejects-non-waiting-state", "deployments": [], "key": "ecs/continue-service-deployment-rejects-non-waiting-state", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:ContinueServiceDeployment", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_continue_service_deployment_rejects_non_waiting_state.py", "service": "ecs"} {"check_id": "ecs.create-capacity-provider-duplicate-name-conflict-rejected", "deployments": [], "key": "ecs/create-capacity-provider-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ssm:GetParameter"], "path": "behavioral/ecs/check_create_capacity_provider_duplicate_name_conflict_rejected.py", "service": "ecs"} {"check_id": "ecs.create-capacity-provider-duplicate-name-rejected", "deployments": [], "key": "ecs/create-capacity-provider-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ssm:GetParameter"], "path": "behavioral/ecs/check_create_capacity_provider_duplicate_name_rejected.py", "service": "ecs"} {"check_id": "ecs.create-cluster-duplicate-capacity-provider-name-rejected", "deployments": [], "key": "ecs/create-cluster-duplicate-capacity-provider-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ssm:GetParameter"], "path": "behavioral/ecs/check_create_cluster_duplicate_capacity_provider_name_rejected.py", "service": "ecs"} {"check_id": "ecs.create-cluster-service-connect-namespace-validation", "deployments": [], "key": "ecs/create-cluster-service-connect-namespace-validation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/ecs/check_create_cluster_service_connect_namespace_validation.py", "service": "ecs"} {"check_id": "ecs.create-daemon-unknown-cluster-rejected", "deployments": [], "key": "ecs/create-daemon-unknown-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:RegisterDaemonTaskDefinition", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_create_daemon_unknown_cluster_rejected.py", "service": "ecs"} {"check_id": "ecs.create-service-load-balancer-missing-target-group-rejected", "deployments": [], "key": "ecs/create-service-load-balancer-missing-target-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_create_service_load_balancer_missing_target_group_rejected.py", "service": "ecs"} {"check_id": "ecs.create-service-load-balancer-target-group-port-mismatch-rejected", "deployments": [], "key": "ecs/create-service-load-balancer-target-group-port-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup"], "path": "behavioral/ecs/check_create_service_load_balancer_target_group_port_mismatch_rejected.py", "service": "ecs"} {"check_id": "ecs.create-service-mismatched-launch-type-capacity-provider-rejected", "deployments": [], "key": "ecs/create-service-mismatched-launch-type-capacity-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_create_service_mismatched_launch_type_capacity_provider_rejected.py", "service": "ecs"} {"check_id": "ecs.create-task-set-on-draining-service-rejected", "deployments": [], "key": "ecs/create-task-set-on-draining-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_create_task_set_on_draining_service_rejected.py", "service": "ecs"} {"check_id": "ecs.create-task-set-scale-out-of-range-rejected", "deployments": [], "key": "ecs/create-task-set-scale-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_create_task_set_scale_out_of_range_rejected.py", "service": "ecs"} {"check_id": "ecs.daemon-create-active-lifecycle", "deployments": [], "key": "ecs/daemon-create-active-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:RegisterDaemonTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_create_active_lifecycle.py", "service": "ecs"} {"check_id": "ecs.daemon-deployment-new-revision-ordering", "deployments": [], "key": "ecs/daemon-deployment-new-revision-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemonDeployments", "ecs:DescribeDaemonRevisions", "ecs:DescribeDaemonTaskDefinition", "ecs:ListDaemonDeployments", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_deployment_new_revision_ordering.py", "service": "ecs"} {"check_id": "ecs.daemon-deployment-timeout-marks-failed", "deployments": [], "key": "ecs/daemon-deployment-timeout-marks-failed", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCluster", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:ListDaemons", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_daemon_deployment_timeout_marks_failed.py", "service": "ecs"} {"check_id": "ecs.daemon-deployment-tracking", "deployments": [], "key": "ecs/daemon-deployment-tracking", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemonDeployments", "ecs:ListDaemonDeployments", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_deployment_tracking.py", "service": "ecs"} {"check_id": "ecs.daemon-deployments-lifecycle-progresses", "deployments": [], "key": "ecs/daemon-deployments-lifecycle-progresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:DescribeDaemonDeployments", "ecs:ListDaemonDeployments", "ecs:PutClusterCapacityProviders", "ecs:RegisterDaemonTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_daemon_deployments_lifecycle_progresses.py", "service": "ecs"} {"check_id": "ecs.daemon-describe-after-delete-not-found", "deployments": [], "key": "ecs/daemon-describe-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:RegisterDaemonTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_describe_after_delete_not_found.py", "service": "ecs"} {"check_id": "ecs.daemon-lifecycle-create-to-delete", "deployments": [], "key": "ecs/daemon-lifecycle-create-to-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_lifecycle_create_to_delete.py", "service": "ecs"} {"check_id": "ecs.daemon-list-reflects-creation", "deployments": [], "key": "ecs/daemon-list-reflects-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:ListDaemons", "ecs:RegisterDaemonTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_list_reflects_creation.py", "service": "ecs"} {"check_id": "ecs.daemon-managed-rollout", "deployments": [], "key": "ecs/daemon-managed-rollout", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemonDeployments", "ecs:DescribeDaemonRevisions", "ecs:DescribeDaemonTaskDefinition", "ecs:ListDaemonDeployments", "ecs:RegisterDaemonTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_managed_rollout.py", "service": "ecs"} {"check_id": "ecs.daemon-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/daemon-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:ListDaemons", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_daemon_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.daemon-revision-numbers-strictly-increase", "deployments": [], "key": "ecs/daemon-revision-numbers-strictly-increase", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:DescribeDaemonTaskDefinition", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_daemon_revision_numbers_strictly_increase.py", "service": "ecs"} {"check_id": "ecs.daemon-revisions-history", "deployments": [], "key": "ecs/daemon-revisions-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemonRevisions", "ecs:ListDaemonDeployments", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_revisions_history.py", "service": "ecs"} {"check_id": "ecs.daemon-revisions-tracked", "deployments": [], "key": "ecs/daemon-revisions-tracked", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemonDeployments", "ecs:DescribeDaemonRevisions", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_revisions_tracked.py", "service": "ecs"} {"check_id": "ecs.daemon-revisions-tracks-updates", "deployments": [], "key": "ecs/daemon-revisions-tracks-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:DescribeDaemonRevisions", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_daemon_revisions_tracks_updates.py", "service": "ecs"} {"check_id": "ecs.daemon-task-definition-delete-then-describe-inactive", "deployments": [], "key": "ecs/daemon-task-definition-delete-then-describe-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:DescribeDaemonTaskDefinition", "ecs:ListDaemonTaskDefinitions", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_daemon_task_definition_delete_then_describe_inactive.py", "service": "ecs"} {"check_id": "ecs.daemon-task-definition-register-describe-delete", "deployments": [], "key": "ecs/daemon-task-definition-register-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:DescribeDaemonTaskDefinition", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_daemon_task_definition_register_describe_delete.py", "service": "ecs"} {"check_id": "ecs.daemon-task-definition-register-describe-list", "deployments": [], "key": "ecs/daemon-task-definition-register-describe-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:DescribeDaemonTaskDefinition", "ecs:ListDaemonTaskDefinitions", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_daemon_task_definition_register_describe_list.py", "service": "ecs"} {"check_id": "ecs.daemon-task-definition-register-lifecycle", "deployments": [], "key": "ecs/daemon-task-definition-register-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:DescribeDaemonTaskDefinition", "ecs:ListDaemonTaskDefinitions", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_daemon_task_definition_register_lifecycle.py", "service": "ecs"} {"check_id": "ecs.daemon-update-after-delete-rejected", "deployments": [], "key": "ecs/daemon-update-after-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:DescribeDaemonDeployments", "ecs:DescribeDaemonRevisions", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_update_after_delete_rejected.py", "service": "ecs"} {"check_id": "ecs.daemon-update-changes-desired-state", "deployments": [], "key": "ecs/daemon-update-changes-desired-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:DescribeDaemonDeployments", "ecs:DescribeDaemonRevisions", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_daemon_update_changes_desired_state.py", "service": "ecs"} {"check_id": "ecs.deep-ecs-2-ec2place-binpack-colocates-while-spread-separates", "deployments": [], "key": "ecs/deep-ecs-2-ec2place-binpack-colocates-while-spread-separates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_deep_ecs_2_ec2place_binpack_colocates_while_spread_separates.py", "service": "ecs"} {"check_id": "ecs.deep-ecs-2-ec2place-bridge-dynamic-host-port-serves-sibling-and-fixed-port-collision-rejected", "deployments": [], "key": "ecs/deep-ecs-2-ec2place-bridge-dynamic-host-port-serves-sibling-and-fixed-port-collision-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StartTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents", "ssm:GetParameter"], "path": "behavioral/ecs/check_deep_ecs_2_ec2place_bridge_dynamic_host_port_serves_sibling_and_fixed_port_collision_rejected.py", "service": "ecs"} {"check_id": "ecs.deep-ecs-2-ec2place-distinct-instance-third-task-on-two-hosts-rejected", "deployments": [], "key": "ecs/deep-ecs-2-ec2place-distinct-instance-third-task-on-two-hosts-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_deep_ecs_2_ec2place_distinct_instance_third_task_on_two_hosts_rejected.py", "service": "ecs"} {"check_id": "ecs.deep-ecs-2-ec2place-draining-instance-relocates-service-task-to-other-host", "deployments": [], "key": "ecs/deep-ecs-2-ec2place-draining-instance-relocates-service-task-to-other-host", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateContainerInstancesState", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_deep_ecs_2_ec2place_draining_instance_relocates_service_task_to_other_host.py", "service": "ecs"} {"check_id": "ecs.deep-ecs-3-deploy-fail-maximum-percent-ceiling-never-exceeded-during-rollout", "deployments": [], "key": "ecs/deep-ecs-3-deploy-fail-maximum-percent-ceiling-never-exceeded-during-rollout", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_deep_ecs_3_deploy_fail_maximum_percent_ceiling_never_exceeded_during_rollout.py", "service": "ecs"} {"check_id": "ecs.deep-ecs-3-deploy-fail-metric-alarm-rolls-back-to-rev1-quiet-twin-completes", "deployments": [], "key": "ecs/deep-ecs-3-deploy-fail-metric-alarm-rolls-back-to-rev1-quiet-twin-completes", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_deep_ecs_3_deploy_fail_metric_alarm_rolls_back_to_rev1_quiet_twin_completes.py", "service": "ecs"} {"check_id": "ecs.default-capacity-providers-active", "deployments": [], "key": "ecs/default-capacity-providers-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DescribeCapacityProviders"], "path": "behavioral/ecs/check_default_capacity_providers_active.py", "service": "ecs"} {"check_id": "ecs.delete-active-task-definition-rejected", "deployments": [], "key": "ecs/delete-active-task-definition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_delete_active_task_definition_rejected.py", "service": "ecs"} {"check_id": "ecs.delete-attributes-missing-target-rejected", "deployments": [], "key": "ecs/delete-attributes-missing-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteAttributes", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListAttributes", "ecs:PutAttributes", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_delete_attributes_missing_target_rejected.py", "service": "ecs"} {"check_id": "ecs.delete-attributes-removes-attribute", "deployments": [], "key": "ecs/delete-attributes-removes-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteAttributes", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListAttributes", "ecs:PutAttributes", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_delete_attributes_removes_attribute.py", "service": "ecs"} {"check_id": "ecs.delete-cluster-with-active-capacity-providers-rejected", "deployments": [], "key": "ecs/delete-cluster-with-active-capacity-providers-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeImages", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders"], "path": "behavioral/ecs/check_delete_cluster_with_active_capacity_providers_rejected.py", "service": "ecs"} {"check_id": "ecs.delete-cluster-with-active-service-rejected", "deployments": [], "key": "ecs/delete-cluster-with-active-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_delete_cluster_with_active_service_rejected.py", "service": "ecs"} {"check_id": "ecs.delete-cluster-with-active-services-rejected", "deployments": [], "key": "ecs/delete-cluster-with-active-services-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_delete_cluster_with_active_services_rejected.py", "service": "ecs"} {"check_id": "ecs.delete-cluster-with-capacity-provider-rejected", "deployments": [], "key": "ecs/delete-cluster-with-capacity-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_delete_cluster_with_capacity_provider_rejected.py", "service": "ecs"} {"check_id": "ecs.delete-daemon-task-definition-already-deleted-invalid-parameter", "deployments": [], "key": "ecs/delete-daemon-task-definition-already-deleted-invalid-parameter", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:DescribeDaemonTaskDefinition", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_delete_daemon_task_definition_already_deleted_invalid_parameter.py", "service": "ecs"} {"check_id": "ecs.delete-daemon-with-active-deployment-succeeds", "deployments": [], "key": "ecs/delete-daemon-with-active-deployment-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:DescribeDaemonDeployments", "ecs:RegisterDaemonTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_delete_daemon_with_active_deployment_succeeds.py", "service": "ecs"} {"check_id": "ecs.delete-primary-task-set-without-force-rejected", "deployments": [], "key": "ecs/delete-primary-task-set-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_delete_primary_task_set_without_force_rejected.py", "service": "ecs"} {"check_id": "ecs.delete-service-nonzero-desired-count-without-force-rejected", "deployments": [], "key": "ecs/delete-service-nonzero-desired-count-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_delete_service_nonzero_desired_count_without_force_rejected.py", "service": "ecs"} {"check_id": "ecs.delete-task-definitions-batch-deletes-inactive-revisions-and-reports-the-active-one", "deployments": [], "key": "ecs/delete-task-definitions-batch-deletes-inactive-revisions-and-reports-the-active-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_delete_task_definitions_batch_deletes_inactive_revisions_and_reports_the_active_one.py", "service": "ecs"} {"check_id": "ecs.deleted-newest-revision-number-is-not-reused-by-the-next-registration", "deployments": [], "key": "ecs/deleted-newest-revision-number-is-not-reused-by-the-next-registration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_deleted_newest_revision_number_is_not_reused_by_the_next_registration.py", "service": "ecs"} {"check_id": "ecs.deploy-cfn-cluster-hosts-runtask-behavior", "deployments": [], "key": "ecs/deploy-cfn-cluster-hosts-runtask-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_deploy_cfn_cluster_hosts_runtask_behavior.py", "service": "ecs"} {"check_id": "ecs.deploy-cfn-service-desired-count-materializes-tasks", "deployments": [], "key": "ecs/deploy-cfn-service-desired-count-materializes-tasks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/ecs/check_deploy_cfn_service_desired_count_materializes_tasks.py", "service": "ecs"} {"check_id": "ecs.deploy-cfn-taskdefinition-revision-used-by-service-tasks", "deployments": [], "key": "ecs/deploy-cfn-taskdefinition-revision-used-by-service-tasks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "iam:CreateServiceLinkedRole", "iam:GetRole"], "path": "behavioral/ecs/check_deploy_cfn_taskdefinition_revision_used_by_service_tasks.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-capacity-provider-cfn-usable-for-run-task", "deployments": [], "key": "ecs/deploy-ecs-capacity-provider-cfn-usable-for-run-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ssm:GetParameter"], "path": "behavioral/ecs/check_deploy_ecs_capacity_provider_cfn_usable_for_run_task.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-capacityprovider-cfn-association-enforced", "deployments": [], "key": "ecs/deploy-ecs-capacityprovider-cfn-association-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_deploy_ecs_capacityprovider_cfn_association_enforced.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-cluster-cfn-runs-task", "deployments": [], "key": "ecs/deploy-ecs-cluster-cfn-runs-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_deploy_ecs_cluster_cfn_runs_task.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-cluster-service-cfn-reaches-steady-state", "deployments": [], "key": "ecs/deploy-ecs-cluster-service-cfn-reaches-steady-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition"], "path": "behavioral/ecs/check_deploy_ecs_cluster_service_cfn_reaches_steady_state.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-runtask-fargate-incompatible-taskdef-rejected", "deployments": [], "key": "ecs/deploy-ecs-runtask-fargate-incompatible-taskdef-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_deploy_ecs_runtask_fargate_incompatible_taskdef_rejected.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-runtask-unassociated-capacity-provider-rejected", "deployments": [], "key": "ecs/deploy-ecs-runtask-unassociated-capacity-provider-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_deploy_ecs_runtask_unassociated_capacity_provider_rejected.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-service-cfn-reaches-steady-state", "deployments": [], "key": "ecs/deploy-ecs-service-cfn-reaches-steady-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_deploy_ecs_service_cfn_reaches_steady_state.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-service-cfn-update-triggers-new-deployment", "deployments": [], "key": "ecs/deploy-ecs-service-cfn-update-triggers-new-deployment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_deploy_ecs_service_cfn_update_triggers_new_deployment.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-taskdefinition-cfn-registers-and-matches", "deployments": [], "key": "ecs/deploy-ecs-taskdefinition-cfn-registers-and-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition"], "path": "behavioral/ecs/check_deploy_ecs_taskdefinition_cfn_registers_and_matches.py", "service": "ecs"} {"check_id": "ecs.deploy-ecs-taskdefinition-cfn-run-task-behaves", "deployments": [], "key": "ecs/deploy-ecs-taskdefinition-cfn-run-task-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_deploy_ecs_taskdefinition_cfn_run_task_behaves.py", "service": "ecs"} {"check_id": "ecs.deployment-circuit-breaker-rolls-back-to-last-good", "deployments": [], "key": "ecs/deployment-circuit-breaker-rolls-back-to-last-good", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_deployment_circuit_breaker_rolls_back_to_last_good.py", "service": "ecs"} {"check_id": "ecs.deployment-read-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/deployment-read-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:CreateService", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemonDeployments", "ecs:DescribeDaemonRevisions", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:DescribeTasks", "ecs:ListDaemonDeployments", "ecs:ListServiceDeployments", "ecs:RegisterDaemonTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_deployment_read_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.deregister-container-instance-requires-force", "deployments": [], "key": "ecs/deregister-container-instance-requires-force", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:StartTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_deregister_container_instance_requires_force.py", "service": "ecs"} {"check_id": "ecs.deregister-container-instance-with-running-tasks-requires-force", "deployments": [], "key": "ecs/deregister-container-instance-with-running-tasks-requires-force", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinition", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:StartTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_deregister_container_instance_with_running_tasks_requires_force.py", "service": "ecs"} {"check_id": "ecs.deregister-nonexistent-taskdef-fails", "deployments": [], "key": "ecs/deregister-nonexistent-taskdef-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_deregister_nonexistent_taskdef_fails.py", "service": "ecs"} {"check_id": "ecs.describe-daemon-unknown-name-not-found", "deployments": [], "key": "ecs/describe-daemon-unknown-name-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:RegisterDaemonTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_describe_daemon_unknown_name_not_found.py", "service": "ecs"} {"check_id": "ecs.describe-service-revisions-lists-history", "deployments": [], "key": "ecs/describe-service-revisions-lists-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_describe_service_revisions_lists_history.py", "service": "ecs"} {"check_id": "ecs.describe-service-revisions-records-each-update", "deployments": [], "key": "ecs/describe-service-revisions-records-each-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceRevisions", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_describe_service_revisions_records_each_update.py", "service": "ecs"} {"check_id": "ecs.describe-tasks-nonexistent-cluster-rejected", "deployments": [], "key": "ecs/describe-tasks-nonexistent-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeTasks"], "path": "behavioral/ecs/check_describe_tasks_nonexistent_cluster_rejected.py", "service": "ecs"} {"check_id": "ecs.discover-poll-endpoint-for-registered-instance", "deployments": [], "key": "ecs/discover-poll-endpoint-for-registered-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:DiscoverPollEndpoint", "ecs:ListContainerInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_discover_poll_endpoint_for_registered_instance.py", "service": "ecs"} {"check_id": "ecs.discover-poll-endpoint-returns-agent-endpoint", "deployments": [], "key": "ecs/discover-poll-endpoint-returns-agent-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DiscoverPollEndpoint", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_discover_poll_endpoint_returns_agent_endpoint.py", "service": "ecs"} {"check_id": "ecs.discover-poll-endpoint-returns-endpoint-for-registered-instance", "deployments": [], "key": "ecs/discover-poll-endpoint-returns-endpoint-for-registered-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DiscoverPollEndpoint", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_discover_poll_endpoint_returns_endpoint_for_registered_instance.py", "service": "ecs"} {"check_id": "ecs.e2e-blue-green-deployment-full-cycle", "deployments": [], "key": "ecs/e2e-blue-green-deployment-full-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_e2e_blue_green_deployment_full_cycle.py", "service": "ecs"} {"check_id": "ecs.e2e-capacity-provider-autoscaling-task-placement", "deployments": [], "key": "ecs/e2e-capacity-provider-autoscaling-task-placement", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_e2e_capacity_provider_autoscaling_task_placement.py", "service": "ecs"} {"check_id": "ecs.e2e-capacity-provider-driven-scaling-flow", "deployments": [], "key": "ecs/e2e-capacity-provider-driven-scaling-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "autoscaling:UpdateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeContainerInstances", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListClusters", "ecs:ListContainerInstances", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_e2e_capacity_provider_driven_scaling_flow.py", "service": "ecs"} {"check_id": "ecs.e2e-capacity-provider-fargate-spot-task-lifecycle", "deployments": [], "key": "ecs/e2e-capacity-provider-fargate-spot-task-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_e2e_capacity_provider_fargate_spot_task_lifecycle.py", "service": "ecs"} {"check_id": "ecs.e2e-daemon-instance-join-schedules-task-consequence", "deployments": [], "key": "ecs/e2e-daemon-instance-join-schedules-task-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeClusters", "ecs:DescribeDaemon", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterDaemonTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_e2e_daemon_instance_join_schedules_task_consequence.py", "service": "ecs"} {"check_id": "ecs.e2e-daemon-rolling-update-across-instances", "deployments": [], "key": "ecs/e2e-daemon-rolling-update-across-instances", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:TerminateInstances", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:CreateService", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemonDeployments", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterDaemonTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateDaemon", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/ecs/check_e2e_daemon_rolling_update_across_instances.py", "service": "ecs"} {"check_id": "ecs.e2e-delete-cluster-with-active-service-rejected", "deployments": [], "key": "ecs/e2e-delete-cluster-with-active-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_e2e_delete_cluster_with_active_service_rejected.py", "service": "ecs"} {"check_id": "ecs.e2e-disassociate-capacity-provider-in-use-rejected", "deployments": [], "key": "ecs/e2e-disassociate-capacity-provider-in-use-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_e2e_disassociate_capacity_provider_in_use_rejected.py", "service": "ecs"} {"check_id": "ecs.e2e-run-task-execute-command-session-lifecycle", "deployments": [], "key": "ecs/e2e-run-task-execute-command-session-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "ssm:DescribeSessions"], "path": "behavioral/ecs/check_e2e_run_task_execute_command_session_lifecycle.py", "service": "ecs"} {"check_id": "ecs.e2e-run-task-to-completion-and-cluster-cleanup", "deployments": [], "key": "ecs/e2e-run-task-to-completion-and-cluster-cleanup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_e2e_run_task_to_completion_and_cluster_cleanup.py", "service": "ecs"} {"check_id": "ecs.e2e-service-deploy-scale-drain-teardown", "deployments": [], "key": "ecs/e2e-service-deploy-scale-drain-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListClusters", "ecs:ListServices", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListRoles", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/ecs/check_e2e_service_deploy_scale_drain_teardown.py", "service": "ecs"} {"check_id": "ecs.e2e-service-deploy-scale-observe-teardown", "deployments": [], "key": "ecs/e2e-service-deploy-scale-observe-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_e2e_service_deploy_scale_observe_teardown.py", "service": "ecs"} {"check_id": "ecs.e2e-service-deployment-rollback-on-failed-taskdef", "deployments": [], "key": "ecs/e2e-service-deployment-rollback-on-failed-taskdef", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_e2e_service_deployment_rollback_on_failed_taskdef.py", "service": "ecs"} {"check_id": "ecs.e2e-task-protection-scale-in-survival", "deployments": [], "key": "ecs/e2e-task-protection-scale-in-survival", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_e2e_task_protection_scale_in_survival.py", "service": "ecs"} {"check_id": "ecs.e2e-task-protection-scale-in-survival-and-expiry", "deployments": [], "key": "ecs/e2e-task-protection-scale-in-survival-and-expiry", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "ecs:UpdateTaskProtection", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_e2e_task_protection_scale_in_survival_and_expiry.py", "service": "ecs"} {"check_id": "ecs.ecs-delete-cluster-with-active-service-rejected", "deployments": [], "key": "ecs/ecs-delete-cluster-with-active-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServices", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_ecs_delete_cluster_with_active_service_rejected.py", "service": "ecs"} {"check_id": "ecs.ecs-service-reaches-steady-state", "deployments": [], "key": "ecs/ecs-service-reaches-steady-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_ecs_service_reaches_steady_state.py", "service": "ecs"} {"check_id": "ecs.eni-attachment-reaches-attached", "deployments": [], "key": "ecs/eni-attachment-reaches-attached", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitAttachmentStateChanges", "ecs:UpdateService", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_eni_attachment_reaches_attached.py", "service": "ecs"} {"check_id": "ecs.ephemeral-storage-request-is-provisioned-inside-the-container", "deployments": [], "key": "ecs/ephemeral-storage-request-is-provisioned-inside-the-container", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_ephemeral_storage_request_is_provisioned_inside_the_container.py", "service": "ecs"} {"check_id": "ecs.essential-container-exit-stops-task-and-sidecar", "deployments": [], "key": "ecs/essential-container-exit-stops-task-and-sidecar", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_essential_container_exit_stops_task_and_sidecar.py", "service": "ecs"} {"check_id": "ecs.exec-disabled-task-session-rejected-while-enabled-streams", "deployments": [], "key": "ecs/exec-disabled-task-session-rejected-while-enabled-streams", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:DescribeSessions", "ssm:TerminateSession"], "path": "behavioral/ecs/check_exec_disabled_task_session_rejected_while_enabled_streams.py", "service": "ecs"} {"check_id": "ecs.exec-file-write-visible-to-second-session", "deployments": [], "key": "ecs/exec-file-write-visible-to-second-session", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:TerminateSession"], "path": "behavioral/ecs/check_exec_file_write_visible_to_second_session.py", "service": "ecs"} {"check_id": "ecs.exec-interactive-stdout-round-trip", "deployments": [], "key": "ecs/exec-interactive-stdout-round-trip", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:TerminateSession"], "path": "behavioral/ecs/check_exec_interactive_stdout_round_trip.py", "service": "ecs"} {"check_id": "ecs.exec-protection-agent-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/exec-protection-agent-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ExecuteCommand", "ecs:GetTaskProtection", "ecs:SubmitAttachmentStateChanges", "ecs:SubmitContainerStateChange", "ecs:SubmitTaskStateChange", "ecs:UpdateContainerAgent", "ecs:UpdateTaskProtection", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_exec_protection_agent_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.exec-session-resize-propagates-to-pty", "deployments": [], "key": "ecs/exec-session-resize-propagates-to-pty", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:TerminateSession"], "path": "behavioral/ecs/check_exec_session_resize_propagates_to_pty.py", "service": "ecs"} {"check_id": "ecs.exec-targets-the-named-container-not-a-sibling", "deployments": [], "key": "ecs/exec-targets-the-named-container-not-a-sibling", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:TerminateSession"], "path": "behavioral/ecs/check_exec_targets_the_named_container_not_a_sibling.py", "service": "ecs"} {"check_id": "ecs.execute-command-fails-when-not-enabled-at-launch", "deployments": [], "key": "ecs/execute-command-fails-when-not-enabled-at-launch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecs/check_execute_command_fails_when_not_enabled_at_launch.py", "service": "ecs"} {"check_id": "ecs.execute-command-on-stopped-task-rejected", "deployments": [], "key": "ecs/execute-command-on-stopped-task-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecs/check_execute_command_on_stopped_task_rejected.py", "service": "ecs"} {"check_id": "ecs.execute-command-rejected-without-ssm-connection", "deployments": [], "key": "ecs/execute-command-rejected-without-ssm-connection", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecs/check_execute_command_rejected_without_ssm_connection.py", "service": "ecs"} {"check_id": "ecs.execute-command-requires-enabled-flag", "deployments": [], "key": "ecs/execute-command-requires-enabled-flag", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterContainerInstance", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:SubmitTaskStateChange", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_execute_command_requires_enabled_flag.py", "service": "ecs"} {"check_id": "ecs.execute-command-requires-enabled-flag-rejected", "deployments": [], "key": "ecs/execute-command-requires-enabled-flag-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/ecs/check_execute_command_requires_enabled_flag_rejected.py", "service": "ecs"} {"check_id": "ecs.execute-command-server-managed-session", "deployments": [], "key": "ecs/execute-command-server-managed-session", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:DescribeSessions"], "path": "behavioral/ecs/check_execute_command_server_managed_session.py", "service": "ecs"} {"check_id": "ecs.execute-command-session-credentials-round-trip", "deployments": [], "key": "ecs/execute-command-session-credentials-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:DescribeSessions"], "path": "behavioral/ecs/check_execute_command_session_credentials_round_trip.py", "service": "ecs"} {"check_id": "ecs.execute-command-session-expiry", "deployments": [], "key": "ecs/execute-command-session-expiry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm:DescribeSessions"], "path": "behavioral/ecs/check_execute_command_session_expiry.py", "service": "ecs"} {"check_id": "ecs.execute-command-succeeds-when-enabled-at-runtime", "deployments": [], "key": "ecs/execute-command-succeeds-when-enabled-at-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm:DescribeSessions"], "path": "behavioral/ecs/check_execute_command_succeeds_when_enabled_at_runtime.py", "service": "ecs"} {"check_id": "ecs.execute-command-unknown-task", "deployments": [], "key": "ecs/execute-command-unknown-task", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/ecs/check_execute_command_unknown_task.py", "service": "ecs"} {"check_id": "ecs.execute-command-without-enable-flag-rejected", "deployments": [], "key": "ecs/execute-command-without-enable-flag-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecs/check_execute_command_without_enable_flag_rejected.py", "service": "ecs"} {"check_id": "ecs.execute-command-without-exec-enabled-rejected", "deployments": [], "key": "ecs/execute-command-without-exec-enabled-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ExecuteCommand", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecs/check_execute_command_without_exec_enabled_rejected.py", "service": "ecs"} {"check_id": "ecs.express-gateway-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/express-gateway-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateExpressGatewayService", "ecs:DeleteCluster", "ecs:DeleteExpressGatewayService", "ecs:DescribeExpressGatewayService", "ecs:UpdateExpressGatewayService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_express_gateway_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.express-gateway-service-delete-then-describe-404", "deployments": [], "key": "ecs/express-gateway-service-delete-then-describe-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateExpressGatewayService", "ecs:DeleteExpressGatewayService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeExpressGatewayService", "ecs:ListTaskDefinitions", "ecs:UpdateExpressGatewayService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecs/check_express_gateway_service_delete_then_describe_404.py", "service": "ecs"} {"check_id": "ecs.express-gateway-service-full-lifecycle", "deployments": [], "key": "ecs/express-gateway-service-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateExpressGatewayService", "ecs:DeleteCluster", "ecs:DeleteExpressGatewayService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeExpressGatewayService", "ecs:ListTaskDefinitions", "ecs:UpdateExpressGatewayService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecs/check_express_gateway_service_full_lifecycle.py", "service": "ecs"} {"check_id": "ecs.express-gateway-service-lifecycle", "deployments": [], "key": "ecs/express-gateway-service-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateExpressGatewayService", "ecs:DeleteCluster", "ecs:DeleteExpressGatewayService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeExpressGatewayService", "ecs:ListTaskDefinitions", "ecs:UpdateExpressGatewayService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecs/check_express_gateway_service_lifecycle.py", "service": "ecs"} {"check_id": "ecs.get-task-protection-returns-current-state", "deployments": [], "key": "ecs/get-task-protection-returns-current-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_get_task_protection_returns_current_state.py", "service": "ecs"} {"check_id": "ecs.health-check-start-period-suppresses-unhealthy-then-expires", "deployments": [], "key": "ecs/health-check-start-period-suppresses-unhealthy-then-expires", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_health_check_start_period_suppresses_unhealthy_then_expires.py", "service": "ecs"} {"check_id": "ecs.invalid-parameter-cluster-and-account-ops", "deployments": [], "key": "ecs/invalid-parameter-cluster-and-account-ops", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteAccountSetting", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:ListAccountSettings", "ecs:ListClusters", "ecs:PutAccountSetting", "ecs:PutAccountSettingDefault"], "path": "behavioral/ecs/check_invalid_parameter_cluster_and_account_ops.py", "service": "ecs"} {"check_id": "ecs.invalid-parameter-daemon-taskdef-and-namespace", "deployments": [], "key": "ecs/invalid-parameter-daemon-taskdef-and-namespace", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:DescribeDaemonTaskDefinition", "ecs:DiscoverPollEndpoint", "ecs:ListDaemonTaskDefinitions", "ecs:ListServicesByNamespace", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_invalid_parameter_daemon_taskdef_and_namespace.py", "service": "ecs"} {"check_id": "ecs.invalid-parameter-task-definition-ops", "deployments": [], "key": "ecs/invalid-parameter-task-definition-ops", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitionFamilies", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_invalid_parameter_task_definition_ops.py", "service": "ecs"} {"check_id": "ecs.list-attributes-filters-by-target-type", "deployments": [], "key": "ecs/list-attributes-filters-by-target-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListAttributes", "ecs:PutAttributes", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_list_attributes_filters_by_target_type.py", "service": "ecs"} {"check_id": "ecs.list-clusters-reflects-state", "deployments": [], "key": "ecs/list-clusters-reflects-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListClusters"], "path": "behavioral/ecs/check_list_clusters_reflects_state.py", "service": "ecs"} {"check_id": "ecs.list-container-instances-empty-for-new-cluster", "deployments": [], "key": "ecs/list-container-instances-empty-for-new-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:ListContainerInstances"], "path": "behavioral/ecs/check_list_container_instances_empty_for_new_cluster.py", "service": "ecs"} {"check_id": "ecs.list-daemon-task-definitions-filters", "deployments": [], "key": "ecs/list-daemon-task-definitions-filters", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:ListDaemonTaskDefinitions", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_list_daemon_task_definitions_filters.py", "service": "ecs"} {"check_id": "ecs.list-daemon-task-definitions-reflects-registration", "deployments": [], "key": "ecs/list-daemon-task-definitions-reflects-registration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteDaemonTaskDefinition", "ecs:ListDaemonTaskDefinitions", "ecs:RegisterDaemonTaskDefinition"], "path": "behavioral/ecs/check_list_daemon_task_definitions_reflects_registration.py", "service": "ecs"} {"check_id": "ecs.list-daemons-reflects-create-and-delete", "deployments": [], "key": "ecs/list-daemons-reflects-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateDaemon", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteDaemon", "ecs:DeleteDaemonTaskDefinition", "ecs:DescribeCapacityProviders", "ecs:DescribeDaemon", "ecs:ListDaemons", "ecs:RegisterDaemonTaskDefinition", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_list_daemons_reflects_create_and_delete.py", "service": "ecs"} {"check_id": "ecs.list-services-by-namespace", "deployments": [], "key": "ecs/list-services-by-namespace", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListServicesByNamespace", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/ecs/check_list_services_by_namespace.py", "service": "ecs"} {"check_id": "ecs.list-services-by-namespace-filters-and-validates", "deployments": [], "key": "ecs/list-services-by-namespace-filters-and-validates", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServicesByNamespace", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetOperation"], "path": "behavioral/ecs/check_list_services_by_namespace_filters_and_validates.py", "service": "ecs"} {"check_id": "ecs.list-services-by-namespace-filters-correctly", "deployments": [], "key": "ecs/list-services-by-namespace-filters-correctly", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServicesByNamespace", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/ecs/check_list_services_by_namespace_filters_correctly.py", "service": "ecs"} {"check_id": "ecs.list-tasks-filters-by-desired-status", "deployments": [], "key": "ecs/list-tasks-filters-by-desired-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_list_tasks_filters_by_desired_status.py", "service": "ecs"} {"check_id": "ecs.list-tasks-nonexistent-service-filter-rejected", "deployments": [], "key": "ecs/list-tasks-nonexistent-service-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_list_tasks_nonexistent_service_filter_rejected.py", "service": "ecs"} {"check_id": "ecs.minimum-healthy-percent-floor-holds-during-rolling-update", "deployments": [], "key": "ecs/minimum-healthy-percent-floor-holds-during-rolling-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_minimum_healthy_percent_floor_holds_during_rolling_update.py", "service": "ecs"} {"check_id": "ecs.op-contract-createCapacityProvider", "deployments": [], "key": "ecs/op-contract-createCapacityProvider", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders"], "path": "behavioral/ecs/check_op_contract_create_capacity_provider.py", "service": "ecs"} {"check_id": "ecs.op-contract-createCluster", "deployments": [], "key": "ecs/op-contract-createCluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:ListClusters", "servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_op_contract_create_cluster.py", "service": "ecs"} {"check_id": "ecs.op-contract-deleteAccountSetting", "deployments": [], "key": "ecs/op-contract-deleteAccountSetting", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteAccountSetting", "ecs:ListAccountSettings", "ecs:PutAccountSetting"], "path": "behavioral/ecs/check_op_contract_delete_account_setting.py", "service": "ecs"} {"check_id": "ecs.op-contract-deleteCapacityProvider", "deployments": [], "key": "ecs/op-contract-deleteCapacityProvider", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders"], "path": "behavioral/ecs/check_op_contract_delete_capacity_provider.py", "service": "ecs"} {"check_id": "ecs.op-contract-deleteCluster", "deployments": [], "key": "ecs/op-contract-deleteCluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:ListClusters"], "path": "behavioral/ecs/check_op_contract_delete_cluster.py", "service": "ecs"} {"check_id": "ecs.op-contract-deleteService", "deployments": [], "key": "ecs/op-contract-deleteService", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_delete_service.py", "service": "ecs"} {"check_id": "ecs.op-contract-deleteTaskDefinitions", "deployments": [], "key": "ecs/op-contract-deleteTaskDefinitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_delete_task_definitions.py", "service": "ecs"} {"check_id": "ecs.op-contract-deleteTaskSet", "deployments": [], "key": "ecs/op-contract-deleteTaskSet", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_op_contract_delete_task_set.py", "service": "ecs"} {"check_id": "ecs.op-contract-deregisterTaskDefinition", "deployments": [], "key": "ecs/op-contract-deregisterTaskDefinition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_deregister_task_definition.py", "service": "ecs"} {"check_id": "ecs.op-contract-describeClusters", "deployments": [], "key": "ecs/op-contract-describeClusters", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters"], "path": "behavioral/ecs/check_op_contract_describe_clusters.py", "service": "ecs"} {"check_id": "ecs.op-contract-describeServices", "deployments": [], "key": "ecs/op-contract-describeServices", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_describe_services.py", "service": "ecs"} {"check_id": "ecs.op-contract-describeTaskDefinition", "deployments": [], "key": "ecs/op-contract-describeTaskDefinition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_describe_task_definition.py", "service": "ecs"} {"check_id": "ecs.op-contract-listAccountSettings", "deployments": [], "key": "ecs/op-contract-listAccountSettings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteAccountSetting", "ecs:ListAccountSettings", "ecs:PutAccountSetting", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_op_contract_list_account_settings.py", "service": "ecs"} {"check_id": "ecs.op-contract-listClusters", "deployments": [], "key": "ecs/op-contract-listClusters", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListClusters"], "path": "behavioral/ecs/check_op_contract_list_clusters.py", "service": "ecs"} {"check_id": "ecs.op-contract-listDaemons", "deployments": [], "key": "ecs/op-contract-listDaemons", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListDaemons"], "path": "behavioral/ecs/check_op_contract_list_daemons.py", "service": "ecs"} {"check_id": "ecs.op-contract-list-service-deployments", "deployments": [], "key": "ecs/op-contract-list-service-deployments", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_list_service_deployments.py", "service": "ecs"} {"check_id": "ecs.op-contract-list-services", "deployments": [], "key": "ecs/op-contract-list-services", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_list_services.py", "service": "ecs"} {"check_id": "ecs.op-contract-list-tags-for-resource", "deployments": [], "key": "ecs/op-contract-list-tags-for-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTagsForResource", "ecs:RegisterTaskDefinition", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_op_contract_list_tags_for_resource.py", "service": "ecs"} {"check_id": "ecs.op-contract-list-task-definition-families", "deployments": [], "key": "ecs/op-contract-list-task-definition-families", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitionFamilies", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_list_task_definition_families.py", "service": "ecs"} {"check_id": "ecs.op-contract-list-task-definitions", "deployments": [], "key": "ecs/op-contract-list-task-definitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_list_task_definitions.py", "service": "ecs"} {"check_id": "ecs.op-contract-list-tasks", "deployments": [], "key": "ecs/op-contract-list-tasks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_op_contract_list_tasks.py", "service": "ecs"} {"check_id": "ecs.op-contract-put-account-setting", "deployments": [], "key": "ecs/op-contract-put-account-setting", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteAccountSetting", "ecs:ListAccountSettings", "ecs:PutAccountSetting"], "path": "behavioral/ecs/check_op_contract_put_account_setting.py", "service": "ecs"} {"check_id": "ecs.op-contract-put-account-setting-default", "deployments": [], "key": "ecs/op-contract-put-account-setting-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:ListAccountSettings", "ecs:PutAccountSettingDefault"], "path": "behavioral/ecs/check_op_contract_put_account_setting_default.py", "service": "ecs"} {"check_id": "ecs.op-contract-put-cluster-capacity-providers", "deployments": [], "key": "ecs/op-contract-put-cluster-capacity-providers", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders"], "path": "behavioral/ecs/check_op_contract_put_cluster_capacity_providers.py", "service": "ecs"} {"check_id": "ecs.op-contract-register-task-definition", "deployments": [], "key": "ecs/op-contract-register-task-definition", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_op_contract_register_task_definition.py", "service": "ecs"} {"check_id": "ecs.op-contract-start-task", "deployments": [], "key": "ecs/op-contract-start-task", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StartTask", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_op_contract_start_task.py", "service": "ecs"} {"check_id": "ecs.op-contract-stop-task", "deployments": [], "key": "ecs/op-contract-stop-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_op_contract_stop_task.py", "service": "ecs"} {"check_id": "ecs.op-contract-tag-resource", "deployments": [], "key": "ecs/op-contract-tag-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_op_contract_tag_resource.py", "service": "ecs"} {"check_id": "ecs.op-contract-untag-resource", "deployments": [], "key": "ecs/op-contract-untag-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource", "ecs:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_op_contract_untag_resource.py", "service": "ecs"} {"check_id": "ecs.op-contract-update-cluster", "deployments": [], "key": "ecs/op-contract-update-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:UpdateCluster", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace"], "path": "behavioral/ecs/check_op_contract_update_cluster.py", "service": "ecs"} {"check_id": "ecs.placement-constraint-memberof-attribute-filters-candidate-instances", "deployments": [], "key": "ecs/placement-constraint-memberof-attribute-filters-candidate-instances", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteAttributes", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListAttributes", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:PutAttributes", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_placement_constraint_memberof_attribute_filters_candidate_instances.py", "service": "ecs"} {"check_id": "ecs.poll-endpoint-requires-registered-instance", "deployments": [], "key": "ecs/poll-endpoint-requires-registered-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:DiscoverPollEndpoint", "ecs:ListContainerInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_poll_endpoint_requires_registered_instance.py", "service": "ecs"} {"check_id": "ecs.put-account-setting-invalid-value-fails", "deployments": [], "key": "ecs/put-account-setting-invalid-value-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:ListAccountSettings", "ecs:PutAccountSetting"], "path": "behavioral/ecs/check_put_account_setting_invalid_value_fails.py", "service": "ecs"} {"check_id": "ecs.put-attributes-empty-string-value-preserved", "deployments": [], "key": "ecs/put-attributes-empty-string-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListAttributes", "ecs:ListContainerInstances", "ecs:PutAttributes", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_put_attributes_empty_string_value_preserved.py", "service": "ecs"} {"check_id": "ecs.put-attributes-exceeding-limit-rejected", "deployments": [], "key": "ecs/put-attributes-exceeding-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteAttributes", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListAttributes", "ecs:ListContainerInstances", "ecs:PutAttributes", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_put_attributes_exceeding_limit_rejected.py", "service": "ecs"} {"check_id": "ecs.put-attributes-invalid-target-rejected", "deployments": [], "key": "ecs/put-attributes-invalid-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListAttributes", "ecs:PutAttributes"], "path": "behavioral/ecs/check_put_attributes_invalid_target_rejected.py", "service": "ecs"} {"check_id": "ecs.put-attributes-target-not-found-rejected", "deployments": [], "key": "ecs/put-attributes-target-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListAttributes", "ecs:PutAttributes", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_put_attributes_target_not_found_rejected.py", "service": "ecs"} {"check_id": "ecs.put-cluster-capacity-providers-detach-in-use-conflict", "deployments": [], "key": "ecs/put-cluster-capacity-providers-detach-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ecs:CreateCapacityProvider", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCapacityProvider", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "iam:CreateServiceLinkedRole", "ssm:GetParameter"], "path": "behavioral/ecs/check_put_cluster_capacity_providers_detach_in_use_conflict.py", "service": "ecs"} {"check_id": "ecs.put-cluster-capacity-providers-invalid-base-weight-rejected", "deployments": [], "key": "ecs/put-cluster-capacity-providers-invalid-base-weight-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders"], "path": "behavioral/ecs/check_put_cluster_capacity_providers_invalid_base_weight_rejected.py", "service": "ecs"} {"check_id": "ecs.put-cluster-capacity-providers-unassociated-provider-used-in-strategy-rejected", "deployments": [], "key": "ecs/put-cluster-capacity-providers-unassociated-provider-used-in-strategy-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_put_cluster_capacity_providers_unassociated_provider_used_in_strategy_rejected.py", "service": "ecs"} {"check_id": "ecs.put-cluster-capacity-providers-unknown-provider-rejected", "deployments": [], "key": "ecs/put-cluster-capacity-providers-unknown-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeClusters", "ecs:PutClusterCapacityProviders"], "path": "behavioral/ecs/check_put_cluster_capacity_providers_unknown_provider_rejected.py", "service": "ecs"} {"check_id": "ecs.register-container-instance-malformed-identity-document-rejected", "deployments": [], "key": "ecs/register-container-instance-malformed-identity-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListContainerInstances", "ecs:RegisterContainerInstance", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_register_container_instance_malformed_identity_document_rejected.py", "service": "ecs"} {"check_id": "ecs.register-task-definition-soft-ulimit-above-hard-rejected-and-consumes-no-revision", "deployments": [], "key": "ecs/register-task-definition-soft-ulimit-above-hard-rejected-and-consumes-no-revision", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_task_definition_soft_ulimit_above_hard_rejected_and_consumes_no_revision.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-duplicate-container-name-rejected", "deployments": [], "key": "ecs/register-taskdef-duplicate-container-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitionFamilies", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_duplicate_container_name_rejected.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-invalid-resource-limits", "deployments": [], "key": "ecs/register-taskdef-invalid-resource-limits", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_invalid_resource_limits.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-malformed-container-definition-json-rejected", "deployments": [], "key": "ecs/register-taskdef-malformed-container-definition-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_malformed_container_definition_json_rejected.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-missing-container-name-rejected", "deployments": [], "key": "ecs/register-taskdef-missing-container-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_missing_container_name_rejected.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-network-mode-port-mapping-conflict-rejected", "deployments": [], "key": "ecs/register-taskdef-network-mode-port-mapping-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitionFamilies", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_network_mode_port_mapping_conflict_rejected.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-requires-container-defs", "deployments": [], "key": "ecs/register-taskdef-requires-container-defs", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_requires_container_defs.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-unicode-env-var-round-trip", "deployments": [], "key": "ecs/register-taskdef-unicode-env-var-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_unicode_env_var_round_trip.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-unicode-env-vars-round-trip", "deployments": [], "key": "ecs/register-taskdef-unicode-env-vars-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_unicode_env_vars_round_trip.py", "service": "ecs"} {"check_id": "ecs.register-taskdef-unicode-tags-round-trip", "deployments": [], "key": "ecs/register-taskdef-unicode-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTagsForResource", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_register_taskdef_unicode_tags_round_trip.py", "service": "ecs"} {"check_id": "ecs.run-task-awsvpc-missing-network-config-rejected", "deployments": [], "key": "ecs/run-task-awsvpc-missing-network-config-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_run_task_awsvpc_missing_network_config_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-blocked-by-iam-policy-rejected", "deployments": [], "key": "ecs/run-task-blocked-by-iam-policy-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_run_task_blocked_by_iam_policy_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-capacity-provider-strategy-conflict-rejected", "deployments": [], "key": "ecs/run-task-capacity-provider-strategy-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_run_task_capacity_provider_strategy_conflict_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-client-token-conflict-rejected", "deployments": [], "key": "ecs/run-task-client-token-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_client_token_conflict_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-client-token-idempotency", "deployments": [], "key": "ecs/run-task-client-token-idempotency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_client_token_idempotency.py", "service": "ecs"} {"check_id": "ecs.run-task-client-token-idempotency-concurrent", "deployments": [], "key": "ecs/run-task-client-token-idempotency-concurrent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_run_task_client_token_idempotency_concurrent.py", "service": "ecs"} {"check_id": "ecs.run-task-client-token-idempotent-concurrent", "deployments": [], "key": "ecs/run-task-client-token-idempotent-concurrent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_client_token_idempotent_concurrent.py", "service": "ecs"} {"check_id": "ecs.run-task-container-override-base64-payload-preserved", "deployments": [], "key": "ecs/run-task-container-override-base64-payload-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_container_override_base64_payload_preserved.py", "service": "ecs"} {"check_id": "ecs.run-task-container-override-exceeds-taskdef-limits-rejected", "deployments": [], "key": "ecs/run-task-container-override-exceeds-taskdef-limits-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_run_task_container_override_exceeds_taskdef_limits_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-container-override-exit-code", "deployments": [], "key": "ecs/run-task-container-override-exit-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListClusters", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_run_task_container_override_exit_code.py", "service": "ecs"} {"check_id": "ecs.run-task-cpu-memory-out-of-range-rejected", "deployments": [], "key": "ecs/run-task-cpu-memory-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_cpu_memory_out_of_range_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-cpu-override-exceeds-taskdef-limit-rejected", "deployments": [], "key": "ecs/run-task-cpu-override-exceeds-taskdef-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_cpu_override_exceeds_taskdef_limit_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-creates-task-with-expected-state", "deployments": [], "key": "ecs/run-task-creates-task-with-expected-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_run_task_creates_task_with_expected_state.py", "service": "ecs"} {"check_id": "ecs.run-task-environment-override-injected", "deployments": [], "key": "ecs/run-task-environment-override-injected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_environment_override_injected.py", "service": "ecs"} {"check_id": "ecs.run-task-fargate-count-three-runs-every-task-to-its-exit-code-or-refuses-honestly", "deployments": [], "key": "ecs/run-task-fargate-count-three-runs-every-task-to-its-exit-code-or-refuses-honestly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_run_task_fargate_count_three_runs_every_task_to_its_exit_code_or_refuses_honestly.py", "service": "ecs"} {"check_id": "ecs.run-task-fargate-lifecycle-to-stopped", "deployments": [], "key": "ecs/run-task-fargate-lifecycle-to-stopped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_run_task_fargate_lifecycle_to_stopped.py", "service": "ecs"} {"check_id": "ecs.run-task-large-environment-override-payload-round-trip", "deployments": [], "key": "ecs/run-task-large-environment-override-payload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_large_environment_override_payload_round_trip.py", "service": "ecs"} {"check_id": "ecs.run-task-launch-type-and-capacity-provider-conflict-rejected", "deployments": [], "key": "ecs/run-task-launch-type-and-capacity-provider-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_launch_type_and_capacity_provider_conflict_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-lifecycle-transitions", "deployments": [], "key": "ecs/run-task-lifecycle-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_lifecycle_transitions.py", "service": "ecs"} {"check_id": "ecs.run-task-missing-task-definition-rejected", "deployments": [], "key": "ecs/run-task-missing-task-definition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_missing_task_definition_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-nonexistent-cluster-fails", "deployments": [], "key": "ecs/run-task-nonexistent-cluster-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:RunTask"], "path": "behavioral/ecs/check_run_task_nonexistent_cluster_fails.py", "service": "ecs"} {"check_id": "ecs.run-task-nonexistent-taskdef-fails", "deployments": [], "key": "ecs/run-task-nonexistent-taskdef-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTasks", "ecs:RunTask"], "path": "behavioral/ecs/check_run_task_nonexistent_taskdef_fails.py", "service": "ecs"} {"check_id": "ecs.run-task-overrides-unknown-container-name-rejected", "deployments": [], "key": "ecs/run-task-overrides-unknown-container-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_overrides_unknown_container_name_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-platform-incompatibility-rejected", "deployments": [], "key": "ecs/run-task-platform-incompatibility-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_run_task_platform_incompatibility_rejected.py", "service": "ecs"} {"check_id": "ecs.run-task-propagate-tags-from-task-definition", "deployments": [], "key": "ecs/run-task-propagate-tags-from-task-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTagsForResource", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_propagate_tags_from_task_definition.py", "service": "ecs"} {"check_id": "ecs.run-task-runs-or-refuses-honestly", "deployments": [], "key": "ecs/run-task-runs-or-refuses-honestly", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_run_task_runs_or_refuses_honestly.py", "service": "ecs"} {"check_id": "ecs.run-task-task-role-override-replaces-task-definition-role", "deployments": [], "key": "ecs/run-task-task-role-override-replaces-task-definition-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecs/check_run_task_task_role_override_replaces_task_definition_role.py", "service": "ecs"} {"check_id": "ecs.run-task-with-an-unpullable-image-reports-failed-to-start-not-running", "deployments": [], "key": "ecs/run-task-with-an-unpullable-image-reports-failed-to-start-not-running", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_run_task_with_an_unpullable_image_reports_failed_to_start_not_running.py", "service": "ecs"} {"check_id": "ecs.run-task-with-inactive-taskdef-rejected", "deployments": [], "key": "ecs/run-task-with-inactive-taskdef-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_run_task_with_inactive_taskdef_rejected.py", "service": "ecs"} {"check_id": "ecs.runtask-incompatible-launch-type-rejected", "deployments": [], "key": "ecs/runtask-incompatible-launch-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_runtask_incompatible_launch_type_rejected.py", "service": "ecs"} {"check_id": "ecs.runtask-without-capacity-rejected", "deployments": [], "key": "ecs/runtask-without-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_runtask_without_capacity_rejected.py", "service": "ecs"} {"check_id": "ecs.server-side-task-definition-revision-numbering-under-concurrent-load", "deployments": [], "key": "ecs/server-side-task-definition-revision-numbering-under-concurrent-load", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_server_side_task_definition_revision_numbering_under_concurrent_load.py", "service": "ecs"} {"check_id": "ecs.service-converges-running-count-to-desired", "deployments": [], "key": "ecs/service-converges-running-count-to-desired", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_converges_running_count_to_desired.py", "service": "ecs"} {"check_id": "ecs.service-cpu-utilization-metric-published", "deployments": [], "key": "ecs/service-cpu-utilization-metric-published", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_service_cpu_utilization_metric_published.py", "service": "ecs"} {"check_id": "ecs.service-create-active-state", "deployments": [], "key": "ecs/service-create-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_service_create_active_state.py", "service": "ecs"} {"check_id": "ecs.service-create-requires-valid-cluster", "deployments": [], "key": "ecs/service-create-requires-valid-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_service_create_requires_valid_cluster.py", "service": "ecs"} {"check_id": "ecs.service-created-at-timestamp-millisecond-precision-preserved", "deployments": [], "key": "ecs/service-created-at-timestamp-millisecond-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_service_created_at_timestamp_millisecond_precision_preserved.py", "service": "ecs"} {"check_id": "ecs.service-delete-active-desired-count-without-force-rejected", "deployments": [], "key": "ecs/service-delete-active-desired-count-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_delete_active_desired_count_without_force_rejected.py", "service": "ecs"} {"check_id": "ecs.service-delete-requires-zero-desired-count-rejected", "deployments": [], "key": "ecs/service-delete-requires-zero-desired-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_delete_requires_zero_desired_count_rejected.py", "service": "ecs"} {"check_id": "ecs.service-delete-with-force-succeeds", "deployments": [], "key": "ecs/service-delete-with-force-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_service_delete_with_force_succeeds.py", "service": "ecs"} {"check_id": "ecs.service-delete-without-force-fails-when-desired-nonzero", "deployments": [], "key": "ecs/service-delete-without-force-fails-when-desired-nonzero", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_delete_without_force_fails_when_desired_nonzero.py", "service": "ecs"} {"check_id": "ecs.service-deployment-blue-green-sequential-progress", "deployments": [], "key": "ecs/service-deployment-blue-green-sequential-progress", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:ContinueServiceDeployment", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:ListServiceDeployments", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask"], "path": "behavioral/ecs/check_service_deployment_blue_green_sequential_progress.py", "service": "ecs"} {"check_id": "ecs.service-deployment-circuit-breaker-rollback-ordering", "deployments": [], "key": "ecs/service-deployment-circuit-breaker-rollback-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_deployment_circuit_breaker_rollback_ordering.py", "service": "ecs"} {"check_id": "ecs.service-deployment-continue-transitions-state", "deployments": [], "key": "ecs/service-deployment-continue-transitions-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:ContinueServiceDeployment", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_service_deployment_continue_transitions_state.py", "service": "ecs"} {"check_id": "ecs.service-deployment-event-timestamps-monotonic-across-updates", "deployments": [], "key": "ecs/service-deployment-event-timestamps-monotonic-across-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_deployment_event_timestamps_monotonic_across_updates.py", "service": "ecs"} {"check_id": "ecs.service-deployment-events-ordered", "deployments": [], "key": "ecs/service-deployment-events-ordered", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_deployment_events_ordered.py", "service": "ecs"} {"check_id": "ecs.service-deployment-history-records-success", "deployments": [], "key": "ecs/service-deployment-history-records-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_deployment_history_records_success.py", "service": "ecs"} {"check_id": "ecs.service-deployment-hook-wait-window", "deployments": [], "key": "ecs/service-deployment-hook-wait-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:ContinueServiceDeployment", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:ListServiceDeployments", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask"], "path": "behavioral/ecs/check_service_deployment_hook_wait_window.py", "service": "ecs"} {"check_id": "ecs.service-deployment-managed-orchestration", "deployments": [], "key": "ecs/service-deployment-managed-orchestration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:ContinueServiceDeployment", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_deployment_managed_orchestration.py", "service": "ecs"} {"check_id": "ecs.service-deployment-stop-freezes-terminal", "deployments": [], "key": "ecs/service-deployment-stop-freezes-terminal", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopServiceDeployment", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_deployment_stop_freezes_terminal.py", "service": "ecs"} {"check_id": "ecs.service-deployment-timestamp-precision-consistent", "deployments": [], "key": "ecs/service-deployment-timestamp-precision-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_service_deployment_timestamp_precision_consistent.py", "service": "ecs"} {"check_id": "ecs.service-deployment-timestamp-precision-preserved", "deployments": [], "key": "ecs/service-deployment-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_service_deployment_timestamp_precision_preserved.py", "service": "ecs"} {"check_id": "ecs.service-describe-nonexistent-returns-failure", "deployments": [], "key": "ecs/service-describe-nonexistent-returns-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DescribeServices"], "path": "behavioral/ecs/check_service_describe_nonexistent_returns_failure.py", "service": "ecs"} {"check_id": "ecs.service-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/service-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.service-primary-task-set-switch", "deployments": [], "key": "ecs/service-primary-task-set-switch", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_service_primary_task_set_switch.py", "service": "ecs"} {"check_id": "ecs.service-reaches-steady-state", "deployments": [], "key": "ecs/service-reaches-steady-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_reaches_steady_state.py", "service": "ecs"} {"check_id": "ecs.service-revisions-tracked-across-updates", "deployments": [], "key": "ecs/service-revisions-tracked-across-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_revisions_tracked_across_updates.py", "service": "ecs"} {"check_id": "ecs.service-revisions-tracking", "deployments": [], "key": "ecs/service-revisions-tracking", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceRevisions", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_service_revisions_tracking.py", "service": "ecs"} {"check_id": "ecs.service-scales-and-force-deletes-to-inactive", "deployments": [], "key": "ecs/service-scales-and-force-deletes-to-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_scales_and_force_deletes_to_inactive.py", "service": "ecs"} {"check_id": "ecs.service-tag-empty-string-vs-absent-key-preserved", "deployments": [], "key": "ecs/service-tag-empty-string-vs-absent-key-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:ListTagsForResource", "ecs:RegisterTaskDefinition", "ecs:TagResource"], "path": "behavioral/ecs/check_service_tag_empty_string_vs_absent_key_preserved.py", "service": "ecs"} {"check_id": "ecs.service-tag-numeric-string-precision-round-trip", "deployments": [], "key": "ecs/service-tag-numeric-string-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource"], "path": "behavioral/ecs/check_service_tag_numeric_string_precision_round_trip.py", "service": "ecs"} {"check_id": "ecs.service-update-desired-count", "deployments": [], "key": "ecs/service-update-desired-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_update_desired_count.py", "service": "ecs"} {"check_id": "ecs.service-update-scales-desired-count", "deployments": [], "key": "ecs/service-update-scales-desired-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_update_scales_desired_count.py", "service": "ecs"} {"check_id": "ecs.service-update-task-definition-triggers-new-deployment", "deployments": [], "key": "ecs/service-update-task-definition-triggers-new-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_service_update_task_definition_triggers_new_deployment.py", "service": "ecs"} {"check_id": "ecs.start-task-batch-partial-failure", "deployments": [], "key": "ecs/start-task-batch-partial-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StartTask", "ecs:StopTask", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_start_task_batch_partial_failure.py", "service": "ecs"} {"check_id": "ecs.start-task-on-draining-container-instance-rejected", "deployments": [], "key": "ecs/start-task-on-draining-container-instance-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:StartTask", "ecs:StopTask", "ecs:UpdateContainerInstancesState", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_start_task_on_draining_container_instance_rejected.py", "service": "ecs"} {"check_id": "ecs.stop-service-deployment-already-stopped-is-idempotent", "deployments": [], "key": "ecs/stop-service-deployment-already-stopped-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopServiceDeployment"], "path": "behavioral/ecs/check_stop_service_deployment_already_stopped_is_idempotent.py", "service": "ecs"} {"check_id": "ecs.stop-service-deployment-conflict-when-no-deployment", "deployments": [], "key": "ecs/stop-service-deployment-conflict-when-no-deployment", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeTaskDefinition", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopServiceDeployment"], "path": "behavioral/ecs/check_stop_service_deployment_conflict_when_no_deployment.py", "service": "ecs"} {"check_id": "ecs.stop-service-deployment-invalid-state-rejected", "deployments": [], "key": "ecs/stop-service-deployment-invalid-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopServiceDeployment"], "path": "behavioral/ecs/check_stop_service_deployment_invalid_state_rejected.py", "service": "ecs"} {"check_id": "ecs.stop-service-deployment-terminal-state-rejected", "deployments": [], "key": "ecs/stop-service-deployment-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServiceDeployments", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:ListServiceDeployments", "ecs:RegisterTaskDefinition", "ecs:StopServiceDeployment", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_stop_service_deployment_terminal_state_rejected.py", "service": "ecs"} {"check_id": "ecs.stop-task-nonexistent-fails", "deployments": [], "key": "ecs/stop-task-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:StopTask"], "path": "behavioral/ecs/check_stop_task_nonexistent_fails.py", "service": "ecs"} {"check_id": "ecs.stop-task-sets-desired-stopped", "deployments": [], "key": "ecs/stop-task-sets-desired-stopped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_stop_task_sets_desired_stopped.py", "service": "ecs"} {"check_id": "ecs.submit-attachment-state-change-updates-attachment-status", "deployments": [], "key": "ecs/submit-attachment-state-change-updates-attachment-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitAttachmentStateChanges", "ecs:UpdateService"], "path": "behavioral/ecs/check_submit_attachment_state_change_updates_attachment_status.py", "service": "ecs"} {"check_id": "ecs.submit-attachment-state-changes-updates-attachment-status", "deployments": [], "key": "ecs/submit-attachment-state-changes-updates-attachment-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterContainerInstance", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitAttachmentStateChanges", "ecs:SubmitTaskStateChange", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_submit_attachment_state_changes_updates_attachment_status.py", "service": "ecs"} {"check_id": "ecs.submit-attachment-state-changes-updates-eni-status", "deployments": [], "key": "ecs/submit-attachment-state-changes-updates-eni-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitAttachmentStateChanges", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_submit_attachment_state_changes_updates_eni_status.py", "service": "ecs"} {"check_id": "ecs.submit-container-state-change-updates-container-record", "deployments": [], "key": "ecs/submit-container-state-change-updates-container-record", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitContainerStateChange", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecs/check_submit_container_state_change_updates_container_record.py", "service": "ecs"} {"check_id": "ecs.submit-container-state-change-updates-container-status", "deployments": [], "key": "ecs/submit-container-state-change-updates-container-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterContainerInstance", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:SubmitContainerStateChange", "ecs:SubmitTaskStateChange", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_submit_container_state_change_updates_container_status.py", "service": "ecs"} {"check_id": "ecs.submit-task-state-change-invalid-status-rejected", "deployments": [], "key": "ecs/submit-task-state-change-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitTaskStateChange", "ecs:UpdateService"], "path": "behavioral/ecs/check_submit_task_state_change_invalid_status_rejected.py", "service": "ecs"} {"check_id": "ecs.submit-task-state-change-updates-task-record", "deployments": [], "key": "ecs/submit-task-state-change-updates-task-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitTaskStateChange", "ecs:UpdateService", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_submit_task_state_change_updates_task_record.py", "service": "ecs"} {"check_id": "ecs.submit-task-state-change-updates-task-status", "deployments": [], "key": "ecs/submit-task-state-change-updates-task-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterContainerInstance", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitTaskStateChange", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_submit_task_state_change_updates_task_status.py", "service": "ecs"} {"check_id": "ecs.tag-nonexistent-resource-fails", "deployments": [], "key": "ecs/tag-nonexistent-resource-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_tag_nonexistent_resource_fails.py", "service": "ecs"} {"check_id": "ecs.tag-nonexistent-task-definition-rejected", "deployments": [], "key": "ecs/tag-nonexistent-task-definition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTagsForResource", "ecs:RegisterTaskDefinition", "ecs:TagResource"], "path": "behavioral/ecs/check_tag_nonexistent_task_definition_rejected.py", "service": "ecs"} {"check_id": "ecs.tag-resource-invalid-character-rejected", "deployments": [], "key": "ecs/tag-resource-invalid-character-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource"], "path": "behavioral/ecs/check_tag_resource_invalid_character_rejected.py", "service": "ecs"} {"check_id": "ecs.tag-resource-invalid-tag-key-format-rejected", "deployments": [], "key": "ecs/tag-resource-invalid-tag-key-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource"], "path": "behavioral/ecs/check_tag_resource_invalid_tag_key_format_rejected.py", "service": "ecs"} {"check_id": "ecs.tag-resource-nonexistent-cluster-rejected", "deployments": [], "key": "ecs/tag-resource-nonexistent-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListClusters", "ecs:ListTagsForResource", "ecs:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_tag_resource_nonexistent_cluster_rejected.py", "service": "ecs"} {"check_id": "ecs.tag-resource-reserved-aws-prefix-key-rejected", "deployments": [], "key": "ecs/tag-resource-reserved-aws-prefix-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource"], "path": "behavioral/ecs/check_tag_resource_reserved_aws_prefix_key_rejected.py", "service": "ecs"} {"check_id": "ecs.tag-resource-then-list", "deployments": [], "key": "ecs/tag-resource-then-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource"], "path": "behavioral/ecs/check_tag_resource_then_list.py", "service": "ecs"} {"check_id": "ecs.tag-resource-unicode-key-value-round-trip", "deployments": [], "key": "ecs/tag-resource-unicode-key-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource"], "path": "behavioral/ecs/check_tag_resource_unicode_key_value_round_trip.py", "service": "ecs"} {"check_id": "ecs.tag-resource-unicode-value-round-trip", "deployments": [], "key": "ecs/tag-resource-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource"], "path": "behavioral/ecs/check_tag_resource_unicode_value_round_trip.py", "service": "ecs"} {"check_id": "ecs.tag-untag-resource-roundtrip", "deployments": [], "key": "ecs/tag-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource", "ecs:UntagResource"], "path": "behavioral/ecs/check_tag_untag_resource_roundtrip.py", "service": "ecs"} {"check_id": "ecs.tag-value-empty-string-vs-no-tags-preserved", "deployments": [], "key": "ecs/tag-value-empty-string-vs-no-tags-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource"], "path": "behavioral/ecs/check_tag_value_empty_string_vs_no_tags_preserved.py", "service": "ecs"} {"check_id": "ecs.tagging-attribute-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/tagging-attribute-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteAttributes", "ecs:DeleteCluster", "ecs:ListAttributes", "ecs:ListTagsForResource", "ecs:TagResource", "ecs:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_tagging_attribute_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.task-definition-container-definitions-round-trip", "deployments": [], "key": "ecs/task-definition-container-definitions-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_container_definitions_round_trip.py", "service": "ecs"} {"check_id": "ecs.task-definition-cpu-memory-numeric-precision-preserved", "deployments": [], "key": "ecs/task-definition-cpu-memory-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_cpu_memory_numeric_precision_preserved.py", "service": "ecs"} {"check_id": "ecs.task-definition-delete-active-rejected", "deployments": [], "key": "ecs/task-definition-delete-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_delete_active_rejected.py", "service": "ecs"} {"check_id": "ecs.task-definition-deregister-transitions-to-inactive", "deployments": [], "key": "ecs/task-definition-deregister-transitions-to-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_deregister_transitions_to_inactive.py", "service": "ecs"} {"check_id": "ecs.task-definition-family-revision-increment", "deployments": [], "key": "ecs/task-definition-family-revision-increment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_family_revision_increment.py", "service": "ecs"} {"check_id": "ecs.task-definition-numeric-cpu-memory-precision-preserved", "deployments": [], "key": "ecs/task-definition-numeric-cpu-memory-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_numeric_cpu_memory_precision_preserved.py", "service": "ecs"} {"check_id": "ecs.task-definition-register-deregister-lifecycle", "deployments": [], "key": "ecs/task-definition-register-deregister-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:ListServices", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_register_deregister_lifecycle.py", "service": "ecs"} {"check_id": "ecs.task-definition-registered-at-timestamp-precision-preserved", "deployments": [], "key": "ecs/task-definition-registered-at-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_registered_at_timestamp_precision_preserved.py", "service": "ecs"} {"check_id": "ecs.task-definition-revision-increment-and-family-alias", "deployments": [], "key": "ecs/task-definition-revision-increment-and-family-alias", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:ListTaskDefinitionFamilies", "ecs:ListTaskDefinitions", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_definition_revision_increment_and_family_alias.py", "service": "ecs"} {"check_id": "ecs.task-definition-unicode-family-and-tag-round-trip", "deployments": [], "key": "ecs/task-definition-unicode-family-and-tag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:TagResource"], "path": "behavioral/ecs/check_task_definition_unicode_family_and_tag_round_trip.py", "service": "ecs"} {"check_id": "ecs.task-describe-missing-reason", "deployments": [], "key": "ecs/task-describe-missing-reason", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask"], "path": "behavioral/ecs/check_task_describe_missing_reason.py", "service": "ecs"} {"check_id": "ecs.task-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/task-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StartTask", "ecs:StopTask", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_task_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.task-protection-default-state-is-disabled", "deployments": [], "key": "ecs/task-protection-default-state-is-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_protection_default_state_is_disabled.py", "service": "ecs"} {"check_id": "ecs.task-protection-enable-and-get-roundtrip", "deployments": [], "key": "ecs/task-protection-enable-and-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_enable_and_get_roundtrip.py", "service": "ecs"} {"check_id": "ecs.task-protection-enable-disable-on-service-task", "deployments": [], "key": "ecs/task-protection-enable-disable-on-service-task", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_enable_disable_on_service_task.py", "service": "ecs"} {"check_id": "ecs.task-protection-enforced-during-scale-in", "deployments": [], "key": "ecs/task-protection-enforced-during-scale-in", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_enforced_during_scale_in.py", "service": "ecs"} {"check_id": "ecs.task-protection-expires-after-ttl", "deployments": [], "key": "ecs/task-protection-expires-after-ttl", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_expires_after_ttl.py", "service": "ecs"} {"check_id": "ecs.task-protection-expires-in-minutes-out-of-range-rejected", "deployments": [], "key": "ecs/task-protection-expires-in-minutes-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_expires_in_minutes_out_of_range_rejected.py", "service": "ecs"} {"check_id": "ecs.task-protection-expires-range-validation", "deployments": [], "key": "ecs/task-protection-expires-range-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_expires_range_validation.py", "service": "ecs"} {"check_id": "ecs.task-protection-get-reflects-update", "deployments": [], "key": "ecs/task-protection-get-reflects-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateTaskProtection", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/ecs/check_task_protection_get_reflects_update.py", "service": "ecs"} {"check_id": "ecs.task-protection-requires-service-membership-rejected", "deployments": [], "key": "ecs/task-protection-requires-service-membership-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_requires_service_membership_rejected.py", "service": "ecs"} {"check_id": "ecs.task-protection-ttl-expires-and-clears", "deployments": [], "key": "ecs/task-protection-ttl-expires-and-clears", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_ttl_expires_and_clears.py", "service": "ecs"} {"check_id": "ecs.task-protection-ttl-expiry", "deployments": [], "key": "ecs/task-protection-ttl-expiry", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_ttl_expiry.py", "service": "ecs"} {"check_id": "ecs.task-protection-ttl-renewal-resets-timer", "deployments": [], "key": "ecs/task-protection-ttl-renewal-resets-timer", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_task_protection_ttl_renewal_resets_timer.py", "service": "ecs"} {"check_id": "ecs.task-role-credentials-endpoint-serves-task-role", "deployments": [], "key": "ecs/task-role-credentials-endpoint-serves-task-role", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/ecs/check_task_role_credentials_endpoint_serves_task_role.py", "service": "ecs"} {"check_id": "ecs.task-set-create-scale-and-stabilize", "deployments": [], "key": "ecs/task-set-create-scale-and-stabilize", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_task_set_create_scale_and_stabilize.py", "service": "ecs"} {"check_id": "ecs.task-set-delete-primary-without-force-rejected", "deployments": [], "key": "ecs/task-set-delete-primary-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_task_set_delete_primary_without_force_rejected.py", "service": "ecs"} {"check_id": "ecs.task-set-primary-update-not-found-rejected", "deployments": [], "key": "ecs/task-set-primary-update-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_task_set_primary_update_not_found_rejected.py", "service": "ecs"} {"check_id": "ecs.task-state-change-ordering-enforced", "deployments": [], "key": "ecs/task-state-change-ordering-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:StartTask", "ecs:StopTask", "ecs:SubmitTaskStateChange", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_task_state_change_ordering_enforced.py", "service": "ecs"} {"check_id": "ecs.task-state-change-ordering-enforced-rejected", "deployments": [], "key": "ecs/task-state-change-ordering-enforced-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitTaskStateChange", "ecs:UpdateService"], "path": "behavioral/ecs/check_task_state_change_ordering_enforced_rejected.py", "service": "ecs"} {"check_id": "ecs.task-state-change-sequencing", "deployments": [], "key": "ecs/task-state-change-sequencing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:StartTask", "ecs:StopTask", "ecs:SubmitTaskStateChange", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_task_state_change_sequencing.py", "service": "ecs"} {"check_id": "ecs.task-state-change-server-enforced", "deployments": [], "key": "ecs/task-state-change-server-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListContainerInstances", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StartTask", "ecs:StopTask", "ecs:SubmitAttachmentStateChanges", "ecs:SubmitContainerStateChange", "ecs:SubmitTaskStateChange", "ecs:UpdateService", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_task_state_change_server_enforced.py", "service": "ecs"} {"check_id": "ecs.task-state-changes-are-monotonic-terminal", "deployments": [], "key": "ecs/task-state-changes-are-monotonic-terminal", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:SubmitTaskStateChange", "ecs:UpdateService"], "path": "behavioral/ecs/check_task_state_changes_are_monotonic_terminal.py", "service": "ecs"} {"check_id": "ecs.taskdef-delete-while-active-fails", "deployments": [], "key": "ecs/taskdef-delete-while-active-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_taskdef_delete_while_active_fails.py", "service": "ecs"} {"check_id": "ecs.taskdef-deregister-transitions-inactive", "deployments": [], "key": "ecs/taskdef-deregister-transitions-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_taskdef_deregister_transitions_inactive.py", "service": "ecs"} {"check_id": "ecs.taskdef-describe-deregistered-still-visible", "deployments": [], "key": "ecs/taskdef-describe-deregistered-still-visible", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_taskdef_describe_deregistered_still_visible.py", "service": "ecs"} {"check_id": "ecs.taskdef-describe-nonexistent-fails", "deployments": [], "key": "ecs/taskdef-describe-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_taskdef_describe_nonexistent_fails.py", "service": "ecs"} {"check_id": "ecs.taskdef-register-revision-increment", "deployments": [], "key": "ecs/taskdef-register-revision-increment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition"], "path": "behavioral/ecs/check_taskdef_register_revision_increment.py", "service": "ecs"} {"check_id": "ecs.taskdef-revision-never-reused-after-deregister", "deployments": [], "key": "ecs/taskdef-revision-never-reused-after-deregister", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTaskDefinitions", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_taskdef_revision_never_reused_after_deregister.py", "service": "ecs"} {"check_id": "ecs.taskset-ops-on-missing-cluster-not-found", "deployments": [], "key": "ecs/taskset-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskSets", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateTaskSet", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_taskset_ops_on_missing_cluster_not_found.py", "service": "ecs"} {"check_id": "ecs.untag-resource-removes-tag", "deployments": [], "key": "ecs/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "ecs:TagResource", "ecs:UntagResource"], "path": "behavioral/ecs/check_untag_resource_removes_tag.py", "service": "ecs"} {"check_id": "ecs.update-capacity-provider-after-delete-fails", "deployments": [], "key": "ecs/update-capacity-provider-after-delete-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeAvailabilityZones", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ecs:UpdateCapacityProvider", "ssm:GetParameter"], "path": "behavioral/ecs/check_update_capacity_provider_after_delete_fails.py", "service": "ecs"} {"check_id": "ecs.update-capacity-provider-changes-managed-scaling", "deployments": [], "key": "ecs/update-capacity-provider-changes-managed-scaling", "labels": ["axis:happy-path", "plane:control"], "operations": ["autoscaling:CreateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DescribeAutoScalingGroups", "ec2:CreateLaunchTemplate", "ec2:DeleteLaunchTemplate", "ecs:CreateCapacityProvider", "ecs:DeleteCapacityProvider", "ecs:DescribeCapacityProviders", "ecs:UpdateCapacityProvider", "ssm:GetParameter"], "path": "behavioral/ecs/check_update_capacity_provider_changes_managed_scaling.py", "service": "ecs"} {"check_id": "ecs.update-container-agent-transitions-agent-update-status", "deployments": [], "key": "ecs/update-container-agent-transitions-agent-update-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:UpdateContainerAgent", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_update_container_agent_transitions_agent_update_status.py", "service": "ecs"} {"check_id": "ecs.update-container-agent-triggers-update-state", "deployments": [], "key": "ecs/update-container-agent-triggers-update-state", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:RegisterContainerInstance", "ecs:UpdateContainerAgent", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ecs/check_update_container_agent_triggers_update_state.py", "service": "ecs"} {"check_id": "ecs.update-container-instance-invalid-status-fails", "deployments": [], "key": "ecs/update-container-instance-invalid-status-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:UpdateContainerInstancesState", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter"], "path": "behavioral/ecs/check_update_container_instance_invalid_status_fails.py", "service": "ecs"} {"check_id": "ecs.update-container-instances-state-unknown", "deployments": [], "key": "ecs/update-container-instances-state-unknown", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:ListContainerInstances", "ecs:UpdateContainerInstancesState", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/ecs/check_update_container_instances_state_unknown.py", "service": "ecs"} {"check_id": "ecs.update-inactive-service-rejected", "deployments": [], "key": "ecs/update-inactive-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_update_inactive_service_rejected.py", "service": "ecs"} {"check_id": "ecs.update-primary-task-set-nonexistent-rejected", "deployments": [], "key": "ecs/update-primary-task-set-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:DescribeTasks", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_update_primary_task_set_nonexistent_rejected.py", "service": "ecs"} {"check_id": "ecs.update-service-deployment-controller-change-rejected", "deployments": [], "key": "ecs/update-service-deployment-controller-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DescribeServices", "ecs:UpdateService"], "path": "behavioral/ecs/check_update_service_deployment_controller_change_rejected.py", "service": "ecs"} {"check_id": "ecs.update-service-invalid-deployment-percent-bounds-rejected", "deployments": [], "key": "ecs/update-service-invalid-deployment-percent-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "ecs:UpdateService"], "path": "behavioral/ecs/check_update_service_invalid_deployment_percent_bounds_rejected.py", "service": "ecs"} {"check_id": "ecs.update-service-network-configuration-wrong-network-mode-rejected", "deployments": [], "key": "ecs/update-service-network-configuration-wrong-network-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService"], "path": "behavioral/ecs/check_update_service_network_configuration_wrong_network_mode_rejected.py", "service": "ecs"} {"check_id": "ecs.update-service-primary-task-set-switches-flag", "deployments": [], "key": "ecs/update-service-primary-task-set-switches-flag", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTaskSets", "ecs:PutClusterCapacityProviders", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_update_service_primary_task_set_switches_flag.py", "service": "ecs"} {"check_id": "ecs.update-service-primary-task-set-switches-primary", "deployments": [], "key": "ecs/update-service-primary-task-set-switches-primary", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:CreateTaskSet", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeleteTaskSet", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskSets", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet"], "path": "behavioral/ecs/check_update_service_primary_task_set_switches_primary.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-batch-partial-failure", "deployments": [], "key": "ecs/update-task-protection-batch-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_batch_partial_failure.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-cluster-mismatch-rejected", "deployments": [], "key": "ecs/update-task-protection-cluster-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_cluster_mismatch_rejected.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-disable-allows-immediate-scale-in", "deployments": [], "key": "ecs/update-task-protection-disable-allows-immediate-scale-in", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_disable_allows_immediate_scale_in.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-disable-clears-immediately", "deployments": [], "key": "ecs/update-task-protection-disable-clears-immediately", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_disable_clears_immediately.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-disable-mid-window-removes-protection", "deployments": [], "key": "ecs/update-task-protection-disable-mid-window-removes-protection", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_disable_mid_window_removes_protection.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-extends-existing-expiration", "deployments": [], "key": "ecs/update-task-protection-extends-existing-expiration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_extends_existing_expiration.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-extends-existing-window", "deployments": [], "key": "ecs/update-task-protection-extends-existing-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_extends_existing_window.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-idempotent-reapply-same-window", "deployments": [], "key": "ecs/update-task-protection-idempotent-reapply-same-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateTaskProtection", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_update_task_protection_idempotent_reapply_same_window.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-overwrite-extends-expiry", "deployments": [], "key": "ecs/update-task-protection-overwrite-extends-expiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateTaskProtection", "iam:CreateServiceLinkedRole"], "path": "behavioral/ecs/check_update_task_protection_overwrite_extends_expiry.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-reapply-extends-expiration", "deployments": [], "key": "ecs/update-task-protection-reapply-extends-expiration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_reapply_extends_expiration.py", "service": "ecs"} {"check_id": "ecs.update-task-protection-standalone-task-rejected", "deployments": [], "key": "ecs/update-task-protection-standalone-task-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:GetTaskProtection", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "ecs:UpdateTaskProtection"], "path": "behavioral/ecs/check_update_task_protection_standalone_task_rejected.py", "service": "ecs"} {"check_id": "ecs__efs__logs.ecs-efs-volume-shared-across-two-fargate-tasks-and-readonly-mount-write-denied", "deployments": [], "key": "ecs__efs__logs/ecs-efs-volume-shared-across-two-fargate-tasks-and-readonly-mount-write-denied", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterContainerInstance", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeAccessPoints", "efs:DescribeFileSystems", "efs:DescribeMountTargets", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ecs__efs__logs/check_ecs_efs_volume_shared_across_two_fargate_tasks_and_readonly_mount_write_denied.py", "service": "ecs__efs__logs"} {"check_id": "ecs__elbv2__logs.alb-unhealthy-only-target-fails-open-empty-group-returns-503", "deployments": [], "key": "ecs__elbv2__logs/alb-unhealthy-only-target-fails-open-empty-group-returns-503", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroup", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__elbv2__logs/check_alb_unhealthy_only_target_fails_open_empty_group_returns_503.py", "service": "ecs__elbv2__logs"} {"check_id": "ecs__elbv2__logs.ecs-container-health-check-failure-makes-the-service-replace-the-task-and-the-alb-drop-the-old-target", "deployments": [], "key": "ecs__elbv2__logs/ecs-container-health-check-failure-makes-the-service-replace-the-task-and-the-alb-drop-the-old-target", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__elbv2__logs/check_ecs_container_health_check_failure_makes_the_service_replace_the_task_and_the_alb_drop_the_old_target.py", "service": "ecs__elbv2__logs"} {"check_id": "ecs__elbv2__logs.ecs-rolling-update-serves-http-continuously-while-the-task-revision-swaps", "deployments": [], "key": "ecs__elbv2__logs/ecs-rolling-update-serves-http-continuously-while-the-task-revision-swaps", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__elbv2__logs/check_ecs_rolling_update_serves_http_continuously_while_the_task_revision_swaps.py", "service": "ecs__elbv2__logs"} {"check_id": "ecs__elbv2__logs.ecs-service-behind-alb-serves-http-request", "deployments": [], "key": "ecs__elbv2__logs/ecs-service-behind-alb-serves-http-request", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__elbv2__logs/check_ecs_service_behind_alb_serves_http_request.py", "service": "ecs__elbv2__logs"} {"check_id": "ecs__elbv2__logs.ecs-service-scale-out-and-in-tracks-alb-targets", "deployments": [], "key": "ecs__elbv2__logs/ecs-service-scale-out-and-in-tracks-alb-targets", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__elbv2__logs/check_ecs_service_scale_out_and_in_tracks_alb_targets.py", "service": "ecs__elbv2__logs"} {"check_id": "ecs__elbv2__logs.ecs-update-service-to-a-different-network-mode-rejected", "deployments": [], "key": "ecs__elbv2__logs/ecs-update-service-to-a-different-network-mode-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__elbv2__logs/check_ecs_update_service_to_a_different_network_mode_rejected.py", "service": "ecs__elbv2__logs"} {"check_id": "ecs__events__logs.xsvc-ecs-2-ecs-target-role-without-passrole-launches-no-task-until-passrole-is-granted", "deployments": [], "key": "ecs__events__logs/xsvc-ecs-2-ecs-target-role-without-passrole-launches-no-task-until-passrole-is-granted", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "events:DeleteRule", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ecs__events__logs/check_xsvc_ecs_2_ecs_target_role_without_passrole_launches_no_task_until_passrole_is_granted.py", "service": "ecs__events__logs"} {"check_id": "ecs__events__logs.xsvc-ecs-2-ecs-target-runs-fargate-task-whose-awslogs-carry-the-event-token", "deployments": [], "key": "ecs__events__logs/xsvc-ecs-2-ecs-target-runs-fargate-task-whose-awslogs-carry-the-event-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "events:DeleteRule", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ecs__events__logs/check_xsvc_ecs_2_ecs_target_runs_fargate_task_whose_awslogs_carry_the_event_token.py", "service": "ecs__events__logs"} {"check_id": "ecs__events__logs__sqs.ecs-container-oom-kill-reason-matches-eventbridge-task-state-change-detail", "deployments": [], "key": "ecs__events__logs__sqs/ecs-container-oom-kill-reason-matches-eventbridge-task-state-change-detail", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ecs__events__logs__sqs/check_ecs_container_oom_kill_reason_matches_eventbridge_task_state_change_detail.py", "service": "ecs__events__logs__sqs"} {"check_id": "ecs__events__logs__sqs.xsvc-ecs-2-ecs-target-without-passrole-dead-letters-the-event-and-launches-no-task", "deployments": [], "key": "ecs__events__logs__sqs/xsvc-ecs-2-ecs-target-without-passrole-dead-letters-the-event-and-launches-no-task", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "events:DeleteRule", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ecs__events__logs__sqs/check_xsvc_ecs_2_ecs_target_without_passrole_dead_letters_the_event_and_launches_no_task.py", "service": "ecs__events__logs__sqs"} {"check_id": "ecs__events__sqs.a-runtask-that-failed-placement-emits-no-task-state-change-event", "deployments": [], "key": "ecs__events__sqs/a-runtask-that-failed-placement-emits-no-task-state-change-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ecs__events__sqs/check_a_runtask_that_failed_placement_emits_no_task_state_change_event.py", "service": "ecs__events__sqs"} {"check_id": "ecs__events__sqs.ecs-deployment-state-change-events-deliver-in-progress-then-failed", "deployments": [], "key": "ecs__events__sqs/ecs-deployment-state-change-events-deliver-in-progress-then-failed", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateServiceLinkedRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ecs__events__sqs/check_ecs_deployment_state_change_events_deliver_in_progress_then_failed.py", "service": "ecs__events__sqs"} {"check_id": "ecs__events__sqs.events-workload-state-change-ecs-exit-code-rules-route-each-stopped-task-and-not-delivered-to-the-other", "deployments": [], "key": "ecs__events__sqs/events-workload-state-change-ecs-exit-code-rules-route-each-stopped-task-and-not-delivered-to-the-other", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/ecs__events__sqs/check_events_workload_state_change_ecs_exit_code_rules_route_each_stopped_task_and_not_delivered_to_the_other.py", "service": "ecs__events__sqs"} {"check_id": "ecs__events__sqs.xsvc-ecs-1-unpullable-image-task-configuration-failure-not-delivered-to-sibling", "deployments": [], "key": "ecs__events__sqs/xsvc-ecs-1-unpullable-image-task-configuration-failure-not-delivered-to-sibling", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "ecs:UpdateService", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateServiceLinkedRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ecs__events__sqs/check_xsvc_ecs_1_unpullable_image_task_configuration_failure_not_delivered_to_sibling.py", "service": "ecs__events__sqs"} {"check_id": "ecs__iam__s3.fargate-task-role-missing-s3-putobject-grant-is-denied-then-repaired", "deployments": [], "key": "ecs__iam__s3/fargate-task-role-missing-s3-putobject-grant-is-denied-then-repaired", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:ListTaskDefinitions", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/ecs__iam__s3/check_fargate_task_role_missing_s3_putobject_grant_is_denied_then_repaired.py", "service": "ecs__iam__s3"} {"check_id": "ecs__kms__logs__ssm.xsvc-ecs-3-secret-injection-cmk-disabled-rejected", "deployments": [], "key": "ecs__kms__logs__ssm/xsvc-ecs-3-secret-injection-cmk-disabled-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ecs__kms__logs__ssm/check_xsvc_ecs_3_secret_injection_cmk_disabled_rejected.py", "service": "ecs__kms__logs__ssm"} {"check_id": "ecs__kms__logs__ssm.xsvc-ecs-3-secret-injection-encryption-context-mismatch-rejected", "deployments": [], "key": "ecs__kms__logs__ssm/xsvc-ecs-3-secret-injection-encryption-context-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ecs__kms__logs__ssm/check_xsvc_ecs_3_secret_injection_encryption_context_mismatch_rejected.py", "service": "ecs__kms__logs__ssm"} {"check_id": "ecs__kms__logs__ssm.xsvc-ecs-3-secret-injection-key-policy-without-iam-delegation-rejected", "deployments": [], "key": "ecs__kms__logs__ssm/xsvc-ecs-3-secret-injection-key-policy-without-iam-delegation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/ecs__kms__logs__ssm/check_xsvc_ecs_3_secret_injection_key_policy_without_iam_delegation_rejected.py", "service": "ecs__kms__logs__ssm"} {"check_id": "ecs__kms__logs__ssm.xsvc-ecs-3-secret-injection-no-kms-decrypt-rejected", "deployments": [], "key": "ecs__kms__logs__ssm/xsvc-ecs-3-secret-injection-no-kms-decrypt-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ecs__kms__logs__ssm/check_xsvc_ecs_3_secret_injection_no_kms_decrypt_rejected.py", "service": "ecs__kms__logs__ssm"} {"check_id": "ecs__kms__logs__ssm.xsvc-ecs-3-secret-injection-positive", "deployments": [], "key": "ecs__kms__logs__ssm/xsvc-ecs-3-secret-injection-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ecs__kms__logs__ssm/check_xsvc_ecs_3_secret_injection_positive.py", "service": "ecs__kms__logs__ssm"} {"check_id": "ecs__kms__logs__ssm.xsvc-ecs-3-secret-injection-task-role-grants-rejected", "deployments": [], "key": "ecs__kms__logs__ssm/xsvc-ecs-3-secret-injection-task-role-grants-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ecs__kms__logs__ssm/check_xsvc_ecs_3_secret_injection_task_role_grants_rejected.py", "service": "ecs__kms__logs__ssm"} {"check_id": "ecs__logs.awslogs-datetime-format-starts-an-event-at-any-line-containing-a-timestamp", "deployments": [], "key": "ecs__logs/awslogs-datetime-format-starts-an-event-at-any-line-containing-a-timestamp", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_awslogs_datetime_format_starts_an_event_at_any_line_containing_a_timestamp.py", "service": "ecs__logs"} {"check_id": "ecs__logs.awslogs-exec-role-scoped-to-one-group-is-denied-on-another", "deployments": [], "key": "ecs__logs/awslogs-exec-role-scoped-to-one-group-is-denied-on-another", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ecs__logs/check_awslogs_exec_role_scoped_to_one_group_is_denied_on_another.py", "service": "ecs__logs"} {"check_id": "ecs__logs.awslogs-multiline-pattern-folds-continuation-lines-into-one-event", "deployments": [], "key": "ecs__logs/awslogs-multiline-pattern-folds-continuation-lines-into-one-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_awslogs_multiline_pattern_folds_continuation_lines_into_one_event.py", "service": "ecs__logs"} {"check_id": "ecs__logs.awslogs-without-create-log-stream-delivers-nothing", "deployments": [], "key": "ecs__logs/awslogs-without-create-log-stream-delivers-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_awslogs_without_create_log_stream_delivers_nothing.py", "service": "ecs__logs"} {"check_id": "ecs__logs.deep-ecs-guest-identity-awsvpc-task-reachable-on-its-eni-ip-only-while-its-sg-allows-it", "deployments": [], "key": "ecs__logs/deep-ecs-guest-identity-awsvpc-task-reachable-on-its-eni-ip-only-while-its-sg-allows-it", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupIngress", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_deep_ecs_guest_identity_awsvpc_task_reachable_on_its_eni_ip_only_while_its_sg_allows_it.py", "service": "ecs__logs"} {"check_id": "ecs__logs.deep-ecs-guest-identity-task-metadata-v4-matches-describe-tasks", "deployments": [], "key": "ecs__logs/deep-ecs-guest-identity-task-metadata-v4-matches-describe-tasks", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_deep_ecs_guest_identity_task_metadata_v4_matches_describe_tasks.py", "service": "ecs__logs"} {"check_id": "ecs__logs.deep-ecs-guest-identity-task-role-is-the-guests-credential-source-and-identity", "deployments": [], "key": "ecs__logs/deep-ecs-guest-identity-task-role-is-the-guests-credential-source-and-identity", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ecs__logs/check_deep_ecs_guest_identity_task_role_is_the_guests_credential_source_and_identity.py", "service": "ecs__logs"} {"check_id": "ecs__logs.deep-ecs-guest-identity-task-stats-counters-track-the-work-the-container-did", "deployments": [], "key": "ecs__logs/deep-ecs-guest-identity-task-stats-counters-track-the-work-the-container-did", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_deep_ecs_guest_identity_task_stats_counters_track_the_work_the_container_did.py", "service": "ecs__logs"} {"check_id": "ecs__logs.ecs-readonly-mount-point-write-rejected-while-the-writer-sibling-still-writes", "deployments": [], "key": "ecs__logs/ecs-readonly-mount-point-write-rejected-while-the-writer-sibling-still-writes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_ecs_readonly_mount_point_write_rejected_while_the_writer_sibling_still_writes.py", "service": "ecs__logs"} {"check_id": "ecs__logs.ecs-readonly-root-filesystem-write-rejected-while-a-mounted-volume-still-accepts-the-write", "deployments": [], "key": "ecs__logs/ecs-readonly-root-filesystem-write-rejected-while-a-mounted-volume-still-accepts-the-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_ecs_readonly_root_filesystem_write_rejected_while_a_mounted_volume_still_accepts_the_write.py", "service": "ecs__logs"} {"check_id": "ecs__logs.ecs-runtime-platform-arm64-task-reports-aarch64-to-its-own-process", "deployments": [], "key": "ecs__logs/ecs-runtime-platform-arm64-task-reports-aarch64-to-its-own-process", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_ecs_runtime_platform_arm64_task_reports_aarch64_to_its_own_process.py", "service": "ecs__logs"} {"check_id": "ecs__logs.ecs-service-connect-client-task-reaches-the-server-service-by-its-discovery-name", "deployments": [], "key": "ecs__logs/ecs-service-connect-client-task-reaches-the-server-service-by-its-discovery-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListInstances", "servicediscovery:ListServices"], "path": "behavioral/ecs__logs/check_ecs_service_connect_client_task_reaches_the_server_service_by_its_discovery_name.py", "service": "ecs__logs"} {"check_id": "ecs__logs.ecs-shared-volume-passes-bytes-between-two-containers-in-one-task", "deployments": [], "key": "ecs__logs/ecs-shared-volume-passes-bytes-between-two-containers-in-one-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_ecs_shared_volume_passes_bytes_between_two_containers_in_one_task.py", "service": "ecs__logs"} {"check_id": "ecs__logs.ecs-stop-timeout-grace-period-lets-a-sigterm-handler-flush-its-final-log-line", "deployments": [], "key": "ecs__logs/ecs-stop-timeout-grace-period-lets-a-sigterm-handler-flush-its-final-log-line", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_ecs_stop_timeout_grace_period_lets_a_sigterm_handler_flush_its_final_log_line.py", "service": "ecs__logs"} {"check_id": "ecs__logs.ecs-task-awslogs-stream-name-and-stdout", "deployments": [], "key": "ecs__logs/ecs-task-awslogs-stream-name-and-stdout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_ecs_task_awslogs_stream_name_and_stdout.py", "service": "ecs__logs"} {"check_id": "ecs__logs.ecs-ulimit-nofile-override-is-visible-to-the-container-process", "deployments": [], "key": "ecs__logs/ecs-ulimit-nofile-override-is-visible-to-the-container-process", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_ecs_ulimit_nofile_override_is_visible_to_the_container_process.py", "service": "ecs__logs"} {"check_id": "ecs__logs.log-workload-producers-awslogs-create-group-denied-without-create-log-group", "deployments": [], "key": "ecs__logs/log-workload-producers-awslogs-create-group-denied-without-create-log-group", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_log_workload_producers_awslogs_create_group_denied_without_create_log_group.py", "service": "ecs__logs"} {"check_id": "ecs__logs.log-workload-producers-awslogs-long-line-split-at-event-size-limit", "deployments": [], "key": "ecs__logs/log-workload-producers-awslogs-long-line-split-at-event-size-limit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_log_workload_producers_awslogs_long_line_split_at_event_size_limit.py", "service": "ecs__logs"} {"check_id": "ecs__logs.log-workload-producers-awslogs-one-event-per-line-verbatim", "deployments": [], "key": "ecs__logs/log-workload-producers-awslogs-one-event-per-line-verbatim", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_log_workload_producers_awslogs_one_event_per_line_verbatim.py", "service": "ecs__logs"} {"check_id": "ecs__logs.log-workload-producers-awslogs-stream-addresses-exactly-its-own-task", "deployments": [], "key": "ecs__logs/log-workload-producers-awslogs-stream-addresses-exactly-its-own-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/ecs__logs/check_log_workload_producers_awslogs_stream_addresses_exactly_its_own_task.py", "service": "ecs__logs"} {"check_id": "ecs__logs.log-workload-producers-failed-start-delivers-no-log-events-unlike-an-unlogged-run", "deployments": [], "key": "ecs__logs/log-workload-producers-failed-start-delivers-no-log-events-unlike-an-unlogged-run", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_log_workload_producers_failed_start_delivers_no_log_events_unlike_an_unlogged_run.py", "service": "ecs__logs"} {"check_id": "ecs__logs.svcreplace-deployment-whose-container-never-passes-its-healthcheck-is-rejected-and-rolled-back", "deployments": [], "key": "ecs__logs/svcreplace-deployment-whose-container-never-passes-its-healthcheck-is-rejected-and-rolled-back", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_svcreplace_deployment_whose_container_never_passes_its_healthcheck_is_rejected_and_rolled_back.py", "service": "ecs__logs"} {"check_id": "ecs__logs.svcreplace-stopped-standalone-task-is-never-relaunched-while-a-service-managed-one-is-replaced", "deployments": [], "key": "ecs__logs/svcreplace-stopped-standalone-task-is-never-relaunched-while-a-service-managed-one-is-replaced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeClusters", "ecs:DescribeServices", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "ecs:UpdateService", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents"], "path": "behavioral/ecs__logs/check_svcreplace_stopped_standalone_task_is_never_relaunched_while_a_service_managed_one_is_replaced.py", "service": "ecs__logs"} {"check_id": "ecs__logs__secretsmanager.ecs-secret-injection-needs-execution-role-not-task-role", "deployments": [], "key": "ecs__logs__secretsmanager/ecs-secret-injection-needs-execution-role-not-task-role", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/ecs__logs__secretsmanager/check_ecs_secret_injection_needs_execution_role_not_task_role.py", "service": "ecs__logs__secretsmanager"} {"check_id": "ecs__logs__secretsmanager.ecs-secret-json-key-selector-injects-only-that-key", "deployments": [], "key": "ecs__logs__secretsmanager/ecs-secret-json-key-selector-injects-only-that-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogEvents", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/ecs__logs__secretsmanager/check_ecs_secret_json_key_selector_injects_only_that_key.py", "service": "ecs__logs__secretsmanager"} {"check_id": "ecs__logs__secretsmanager.ecs-task-secret-injected-from-secretsmanager", "deployments": [], "key": "ecs__logs__secretsmanager/ecs-task-secret-injected-from-secretsmanager", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:RunTask", "ecs:StopTask", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/ecs__logs__secretsmanager/check_ecs_task_secret_injected_from_secretsmanager.py", "service": "ecs__logs__secretsmanager"} {"check_id": "ecs__resourcegroupstaggingapi.cluster-and-task-definition-tags-visible-through-get-resources", "deployments": [], "key": "ecs__resourcegroupstaggingapi/cluster-and-task-definition-tags-visible-through-get-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition", "resourcegroupstaggingapi:GetResources"], "path": "behavioral/ecs__resourcegroupstaggingapi/check_cluster_and_task_definition_tags_visible_through_get_resources.py", "service": "ecs__resourcegroupstaggingapi"} {"check_id": "ecs__resourcegroupstaggingapi.tag-resources-nonexistent-cluster-rejected-per-resource", "deployments": [], "key": "ecs__resourcegroupstaggingapi/tag-resources-nonexistent-cluster-rejected-per-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:ListTagsForResource", "resourcegroupstaggingapi:TagResources", "sts:GetCallerIdentity"], "path": "behavioral/ecs__resourcegroupstaggingapi/check_tag_resources_nonexistent_cluster_rejected_per_resource.py", "service": "ecs__resourcegroupstaggingapi"} {"check_id": "ecs__servicediscovery.ecs-cloud-map-registered-task-is-discoverable-by-its-private-ip-and-drops-out-when-stopped", "deployments": [], "key": "ecs__servicediscovery/ecs-cloud-map-registered-task-is-discoverable-by-its-private-ip-and-drops-out-when-stopped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListInstances", "servicediscovery:ListServices"], "path": "behavioral/ecs__servicediscovery/check_ecs_cloud_map_registered_task_is_discoverable_by_its_private_ip_and_drops_out_when_stopped.py", "service": "ecs__servicediscovery"} {"check_id": "ecs__servicediscovery.ecs-srv-service-registry-without-a-port-rejected", "deployments": [], "key": "ecs__servicediscovery/ecs-srv-service-registry-without-a-port-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecs:CreateCluster", "ecs:CreateService", "ecs:DeleteCluster", "ecs:DeleteService", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListServices", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:UpdateService", "iam:CreateServiceLinkedRole", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListInstances", "servicediscovery:ListServices"], "path": "behavioral/ecs__servicediscovery/check_ecs_srv_service_registry_without_a_port_rejected.py", "service": "ecs__servicediscovery"} {"check_id": "ecs__stepfunctions.ecs-run-task-sync-resolves-task-token-into-container-env", "deployments": [], "key": "ecs__stepfunctions/ecs-run-task-sync-resolves-task-token-into-container-env", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:DescribeTasks", "ecs:RegisterTaskDefinition", "ecs:StopTask", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/ecs__stepfunctions/check_ecs_run_task_sync_resolves_task_token_into_container_env.py", "service": "ecs__stepfunctions"} {"check_id": "ecs__stepfunctions.ecs-run-task-sync-without-run-task-permission-denied-and-no-task-created", "deployments": [], "key": "ecs__stepfunctions/ecs-run-task-sync-without-run-task-permission-denied-and-no-task-created", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ecs:CreateCluster", "ecs:DeleteCluster", "ecs:DeleteTaskDefinitions", "ecs:DeregisterTaskDefinition", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/ecs__stepfunctions/check_ecs_run_task_sync_without_run_task_permission_denied_and_no_task_created.py", "service": "ecs__stepfunctions"} {"check_id": "efs.backup-policy-status-transitions", "deployments": [], "key": "efs/backup-policy-status-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeBackupPolicy", "efs:DescribeFileSystems", "efs:PutBackupPolicy"], "path": "behavioral/efs/check_backup_policy_status_transitions.py", "service": "efs"} {"check_id": "efs.create-access-point-lifecycle-transition", "deployments": [], "key": "efs/create-access-point-lifecycle-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DescribeAccessPoints", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_create_access_point_lifecycle_transition.py", "service": "efs"} {"check_id": "efs.create-access-point-nonexistent-file-system-not-found", "deployments": [], "key": "efs/create-access-point-nonexistent-file-system-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DescribeAccessPoints", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_create_access_point_nonexistent_file_system_not_found.py", "service": "efs"} {"check_id": "efs.create-access-point-token-reuse-conflict", "deployments": [], "key": "efs/create-access-point-token-reuse-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DescribeAccessPoints", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_create_access_point_token_reuse_conflict.py", "service": "efs"} {"check_id": "efs.create-access-point-token-reuse-mismatched-params-rejected", "deployments": [], "key": "efs/create-access-point-token-reuse-mismatched-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DescribeAccessPoints", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_create_access_point_token_reuse_mismatched_params_rejected.py", "service": "efs"} {"check_id": "efs.create-file-system-concurrent-same-token-single-winner", "deployments": [], "key": "efs/create-file-system-concurrent-same-token-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_create_file_system_concurrent_same_token_single_winner.py", "service": "efs"} {"check_id": "efs.create-file-system-lifecycle-transition", "deployments": [], "key": "efs/create-file-system-lifecycle-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_create_file_system_lifecycle_transition.py", "service": "efs"} {"check_id": "efs.create-file-system-name-tag-persisted", "deployments": [], "key": "efs/create-file-system-name-tag-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems", "efs:DescribeTags"], "path": "behavioral/efs/check_create_file_system_name_tag_persisted.py", "service": "efs"} {"check_id": "efs.create-file-system-token-reuse-conflict", "deployments": [], "key": "efs/create-file-system-token-reuse-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_create_file_system_token_reuse_conflict.py", "service": "efs"} {"check_id": "efs.create-mount-target-duplicate-az-rejected", "deployments": [], "key": "efs/create-mount-target-duplicate-az-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeFileSystems", "efs:DescribeMountTargets"], "path": "behavioral/efs/check_create_mount_target_duplicate_az_rejected.py", "service": "efs"} {"check_id": "efs.create-mount-target-lifecycle-transition", "deployments": [], "key": "efs/create-mount-target-lifecycle-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeFileSystems", "efs:DescribeMountTargets"], "path": "behavioral/efs/check_create_mount_target_lifecycle_transition.py", "service": "efs"} {"check_id": "efs.delete-access-point-concurrent-delete-idempotent", "deployments": [], "key": "efs/delete-access-point-concurrent-delete-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DescribeAccessPoints", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_delete_access_point_concurrent_delete_idempotent.py", "service": "efs"} {"check_id": "efs.delete-access-point-lifecycle-transition", "deployments": [], "key": "efs/delete-access-point-lifecycle-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DescribeAccessPoints", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_delete_access_point_lifecycle_transition.py", "service": "efs"} {"check_id": "efs.delete-file-system-in-use-rejected", "deployments": [], "key": "efs/delete-file-system-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeFileSystems", "efs:DescribeMountTargets"], "path": "behavioral/efs/check_delete_file_system_in_use_rejected.py", "service": "efs"} {"check_id": "efs.delete-file-system-lifecycle-transition", "deployments": [], "key": "efs/delete-file-system-lifecycle-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems"], "path": "behavioral/efs/check_delete_file_system_lifecycle_transition.py", "service": "efs"} {"check_id": "efs.delete-mount-target-lifecycle-transition", "deployments": [], "key": "efs/delete-mount-target-lifecycle-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeFileSystems", "efs:DescribeMountTargets", "efs:ModifyMountTargetSecurityGroups"], "path": "behavioral/efs/check_delete_mount_target_lifecycle_transition.py", "service": "efs"} {"check_id": "efs.lifecycle-configuration-put-describe-round-trip", "deployments": [], "key": "efs/lifecycle-configuration-put-describe-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems", "efs:DescribeLifecycleConfiguration", "efs:PutLifecycleConfiguration"], "path": "behavioral/efs/check_lifecycle_configuration_put_describe_round_trip.py", "service": "efs"} {"check_id": "efs.put-file-system-policy-lockout-rejected", "deployments": [], "key": "efs/put-file-system-policy-lockout-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DeleteFileSystemPolicy", "efs:DescribeFileSystemPolicy", "efs:DescribeFileSystems", "efs:PutFileSystemPolicy"], "path": "behavioral/efs/check_put_file_system_policy_lockout_rejected.py", "service": "efs"} {"check_id": "efs.replication-configuration-lifecycle", "deployments": [], "key": "efs/replication-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:CreateReplicationConfiguration", "efs:DeleteFileSystem", "efs:DeleteReplicationConfiguration", "efs:DescribeFileSystems", "efs:DescribeReplicationConfigurations", "efs:TagResource"], "path": "behavioral/efs/check_replication_configuration_lifecycle.py", "service": "efs"} {"check_id": "efs.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "efs/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DescribeAccessPoints", "efs:DescribeFileSystems", "efs:ListTagsForResource", "efs:TagResource", "efs:UntagResource"], "path": "behavioral/efs/check_tag_resource_and_list_tags_round_trip.py", "service": "efs"} {"check_id": "efs.update-file-system-protection-toggle", "deployments": [], "key": "efs/update-file-system-protection-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems", "efs:UpdateFileSystemProtection"], "path": "behavioral/efs/check_update_file_system_protection_toggle.py", "service": "efs"} {"check_id": "efs.update-file-system-throughput-mode-missing-param-rejected", "deployments": [], "key": "efs/update-file-system-throughput-mode-missing-param-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems", "efs:UpdateFileSystem"], "path": "behavioral/efs/check_update_file_system_throughput_mode_missing_param_rejected.py", "service": "efs"} {"check_id": "efs.update-file-system-throughput-mode-transition", "deployments": [], "key": "efs/update-file-system-throughput-mode-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["efs:CreateFileSystem", "efs:DeleteFileSystem", "efs:DescribeFileSystems", "efs:UpdateFileSystem"], "path": "behavioral/efs/check_update_file_system_throughput_mode_transition.py", "service": "efs"} {"check_id": "efs__lambda.deep-lambda-2-efs-mount-shared-between-two-functions-and-clientmount-denied", "deployments": [], "key": "efs__lambda/deep-lambda-2-efs-mount-shared-between-two-functions-and-clientmount-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeAccessPoints", "efs:DescribeFileSystems", "efs:DescribeMountTargets", "efs:PutFileSystemPolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/efs__lambda/check_deep_lambda_2_efs_mount_shared_between_two_functions_and_clientmount_denied.py", "service": "efs__lambda"} {"check_id": "efs__lambda.efs-access-point-confines-each-function-to-its-own-root-directory", "deployments": [], "key": "efs__lambda/efs-access-point-confines-each-function-to-its-own-root-directory", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeAccessPoints", "efs:DescribeFileSystems", "efs:DescribeMountTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/efs__lambda/check_efs_access_point_confines_each_function_to_its_own_root_directory.py", "service": "efs__lambda"} {"check_id": "efs__lambda.efs-mount-without-client-write-is-read-only-and-write-rejected", "deployments": [], "key": "efs__lambda/efs-mount-without-client-write-is-read-only-and-write-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeAccessPoints", "efs:DescribeFileSystems", "efs:DescribeMountTargets", "efs:PutFileSystemPolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/efs__lambda/check_efs_mount_without_client_write_is_read_only_and_write_rejected.py", "service": "efs__lambda"} {"check_id": "efs__lambda.filesystemconfigs-mount-path-outside-mnt-and-missing-vpc-rejected", "deployments": [], "key": "efs__lambda/filesystemconfigs-mount-path-outside-mnt-and-missing-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["efs:CreateAccessPoint", "efs:CreateFileSystem", "efs:CreateMountTarget", "efs:DeleteAccessPoint", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeAccessPoints", "efs:DescribeFileSystems", "efs:DescribeMountTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/efs__lambda/check_filesystemconfigs_mount_path_outside_mnt_and_missing_vpc_rejected.py", "service": "efs__lambda"} {"check_id": "eks-auth.assume-role-access-denied-explicit-deny", "deployments": [], "key": "eks-auth/assume-role-access-denied-explicit-deny", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks-auth/check_assume_role_access_denied_explicit_deny.py", "service": "eks-auth"} {"check_id": "eks-auth.assume-role-concurrent-invalid-requests-consistent-error", "deployments": [], "key": "eks-auth/assume-role-concurrent-invalid-requests-consistent-error", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_assume_role_concurrent_invalid_requests_consistent_error.py", "service": "eks-auth"} {"check_id": "eks-auth.assume-role-error-response-no-credentials-leak", "deployments": [], "key": "eks-auth/assume-role-error-response-no-credentials-leak", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_assume_role_error_response_no_credentials_leak.py", "service": "eks-auth"} {"check_id": "eks-auth.assume-role-invalid-token-value-not-leaked-in-error", "deployments": [], "key": "eks-auth/assume-role-invalid-token-value-not-leaked-in-error", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_assume_role_invalid_token_value_not_leaked_in_error.py", "service": "eks-auth"} {"check_id": "eks-auth.assume-role-malformed-cluster-name-rejected", "deployments": [], "key": "eks-auth/assume-role-malformed-cluster-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_assume_role_malformed_cluster_name_rejected.py", "service": "eks-auth"} {"check_id": "eks-auth.assume-role-malformed-token-pattern-rejected", "deployments": [], "key": "eks-auth/assume-role-malformed-token-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_assume_role_malformed_token_pattern_rejected.py", "service": "eks-auth"} {"check_id": "eks-auth.assume-role-unknown-cluster-not-found", "deployments": [], "key": "eks-auth/assume-role-unknown-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_assume_role_unknown_cluster_not_found.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-association-deleted-rejected", "deployments": [], "key": "eks-auth/pod-identity-association-deleted-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/eks-auth/check_pod_identity_association_deleted_rejected.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-association-policy-intersects-the-role-permissions", "deployments": [], "key": "eks-auth/pod-identity-association-policy-intersects-the-role-permissions", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/eks-auth/check_pod_identity_association_policy_intersects_the_role_permissions.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-association-role-update-takes-effect", "deployments": [], "key": "eks-auth/pod-identity-association-role-update-takes-effect", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/eks-auth/check_pod_identity_association_role_update_takes_effect.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-clustername-constraint-boundaries-rejected", "deployments": [], "key": "eks-auth/pod-identity-clustername-constraint-boundaries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_pod_identity_clustername_constraint_boundaries_rejected.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-concurrent-valid-token-all-succeed", "deployments": [], "key": "eks-auth/pod-identity-concurrent-valid-token-all-succeed", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/eks-auth/check_pod_identity_concurrent_valid_token_all_succeed.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-credentials-scoped-to-role-permissions-rejected", "deployments": [], "key": "eks-auth/pod-identity-credentials-scoped-to-role-permissions-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudwatch:ListMetrics", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRoles", "iam:PutRolePolicy"], "path": "behavioral/eks-auth/check_pod_identity_credentials_scoped_to_role_permissions_rejected.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-header-rejection-layers-are-ordered", "deployments": [], "key": "eks-auth/pod-identity-header-rejection-layers-are-ordered", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_pod_identity_header_rejection_layers_are_ordered.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-native-round-trip-success", "deployments": [], "key": "eks-auth/pod-identity-native-round-trip-success", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/eks-auth/check_pod_identity_native_round_trip_success.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-no-matching-association-rejected", "deployments": [], "key": "eks-auth/pod-identity-no-matching-association-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/eks-auth/check_pod_identity_no_matching_association_rejected.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-repeated-calls-issue-fresh-credentials", "deployments": [], "key": "eks-auth/pod-identity-repeated-calls-issue-fresh-credentials", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/eks-auth/check_pod_identity_repeated_calls_issue_fresh_credentials.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-session-tags-gate-an-abac-scoped-s3-read", "deployments": [], "key": "eks-auth/pod-identity-session-tags-gate-an-abac-scoped-s3-read", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/eks-auth/check_pod_identity_session_tags_gate_an_abac_scoped_s3_read.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-target-role-chain-binds-to-the-generated-external-id", "deployments": [], "key": "eks-auth/pod-identity-target-role-chain-binds-to-the-generated-external-id", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/eks-auth/check_pod_identity_target_role_chain_binds_to_the_generated_external_id.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-token-claims-are-never-evaluated", "deployments": [], "key": "eks-auth/pod-identity-token-claims-are-never-evaluated", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity"], "path": "behavioral/eks-auth/check_pod_identity_token_claims_are_never_evaluated.py", "service": "eks-auth"} {"check_id": "eks-auth.pod-identity-wrong-audience-token-rejected", "deployments": [], "key": "eks-auth/pod-identity-wrong-audience-token-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks-auth:AssumeRoleForPodIdentity", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/eks-auth/check_pod_identity_wrong_audience_token_rejected.py", "service": "eks-auth"} {"check_id": "eks.access-entry-duplicate-principal-rejected", "deployments": [], "key": "eks/access-entry-duplicate-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:UpdateAccessEntry", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_access_entry_duplicate_principal_rejected.py", "service": "eks"} {"check_id": "eks.access-entry-ec2-linux-defaults-idempotent-create-and-pagination", "deployments": [], "key": "eks/access-entry-ec2-linux-defaults-idempotent-create-and-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:ListAccessEntries", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/eks/check_access_entry_ec2_linux_defaults_idempotent_create_and_pagination.py", "service": "eks"} {"check_id": "eks.access-entry-empty-vs-absent-kubernetes-groups-preserved", "deployments": [], "key": "eks/access-entry-empty-vs-absent-kubernetes-groups-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_access_entry_empty_vs_absent_kubernetes_groups_preserved.py", "service": "eks"} {"check_id": "eks.access-entry-full-lifecycle", "deployments": [], "key": "eks/access-entry-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:ListAccessEntries", "eks:UpdateAccessEntry", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/eks/check_access_entry_full_lifecycle.py", "service": "eks"} {"check_id": "eks.access-entry-invalid-type-username-combo-rejected", "deployments": [], "key": "eks/access-entry-invalid-type-username-combo-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_access_entry_invalid_type_username_combo_rejected.py", "service": "eks"} {"check_id": "eks.access-entry-kubernetes-groups-order-preserved", "deployments": [], "key": "eks/access-entry-kubernetes-groups-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_access_entry_kubernetes_groups_order_preserved.py", "service": "eks"} {"check_id": "eks.access-entry-policy-visibility-lifecycle", "deployments": [], "key": "eks/access-entry-policy-visibility-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DisassociateAccessPolicy", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_access_entry_policy_visibility_lifecycle.py", "service": "eks"} {"check_id": "eks.access-entry-takes-precedence-over-the-aws-auth-configmap", "deployments": [], "key": "eks/access-entry-takes-precedence-over-the-aws-auth-configmap", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_access_entry_takes_precedence_over_the_aws_auth_configmap.py", "service": "eks"} {"check_id": "eks.access-entry-update-not-found", "deployments": [], "key": "eks/access-entry-update-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:ListAccessEntries", "eks:ListAssociatedAccessPolicies", "eks:UpdateAccessEntry", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_access_entry_update_not_found.py", "service": "eks"} {"check_id": "eks.access-policy-association-lifecycle", "deployments": [], "key": "eks/access-policy-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:DisassociateAccessPolicy", "eks:ListAccessPolicies", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_access_policy_association_lifecycle.py", "service": "eks"} {"check_id": "eks.access-policy-association-ordering", "deployments": [], "key": "eks/access-policy-association-ordering", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:DisassociateAccessPolicy", "eks:ListAccessEntries", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_access_policy_association_ordering.py", "service": "eks"} {"check_id": "eks.access-policy-catalog-scope-metadata", "deployments": [], "key": "eks/access-policy-catalog-scope-metadata", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:ListAccessPolicies"], "path": "behavioral/eks/check_access_policy_catalog_scope_metadata.py", "service": "eks"} {"check_id": "eks.activate-certificate-authority-already-active-rejected", "deployments": [], "key": "eks/activate-certificate-authority-already-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "eks:ListUpdates", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_activate_certificate_authority_already_active_rejected.py", "service": "eks"} {"check_id": "eks.activate-certificate-authority-before-distribution-complete-rejected", "deployments": [], "key": "eks/activate-certificate-authority-before-distribution-complete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_activate_certificate_authority_before_distribution_complete_rejected.py", "service": "eks"} {"check_id": "eks.activate-certificate-authority-wrong-state-rejected", "deployments": [], "key": "eks/activate-certificate-authority-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_activate_certificate_authority_wrong_state_rejected.py", "service": "eks"} {"check_id": "eks.addon-catalog-missing-vs-unknown-semantics", "deployments": [], "key": "eks/addon-catalog-missing-vs-unknown-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DescribeAddonConfiguration", "eks:DescribeAddonVersions"], "path": "behavioral/eks/check_addon_catalog_missing_vs_unknown_semantics.py", "service": "eks"} {"check_id": "eks.addon-configuration-schema-matches-catalog-flag", "deployments": [], "key": "eks/addon-configuration-schema-matches-catalog-flag", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DescribeAddonConfiguration", "eks:DescribeAddonVersions"], "path": "behavioral/eks/check_addon_configuration_schema_matches_catalog_flag.py", "service": "eks"} {"check_id": "eks.addon-configuration-values-invalid-schema-rejected", "deployments": [], "key": "eks/addon-configuration-values-invalid-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_addon_configuration_values_invalid_schema_rejected.py", "service": "eks"} {"check_id": "eks.addon-configuration-values-json-precision-preserved", "deployments": [], "key": "eks/addon-configuration-values-json-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonConfiguration", "eks:DescribeAddonVersions", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_addon_configuration_values_json_precision_preserved.py", "service": "eks"} {"check_id": "eks.addon-configuration-values-json-precision-round-trip", "deployments": [], "key": "eks/addon-configuration-values-json-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonConfiguration", "eks:DescribeAddonVersions", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_addon_configuration_values_json_precision_round_trip.py", "service": "eks"} {"check_id": "eks.addon-configuration-values-json-preserved", "deployments": [], "key": "eks/addon-configuration-values-json-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_addon_configuration_values_json_preserved.py", "service": "eks"} {"check_id": "eks.addon-configuration-values-json-round-trip", "deployments": [], "key": "eks/addon-configuration-values-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_addon_configuration_values_json_round_trip.py", "service": "eks"} {"check_id": "eks.addon-configuration-values-reach-the-in-cluster-workload", "deployments": [], "key": "eks/addon-configuration-values-reach-the-in-cluster-workload", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DescribeAddon", "eks:DescribeAddonConfiguration", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_addon_configuration_values_reach_the_in_cluster_workload.py", "service": "eks"} {"check_id": "eks.addon-conflict-resolution-policy-enforced-server-side", "deployments": [], "key": "eks/addon-conflict-resolution-policy-enforced-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeCluster", "eks:ListAddons", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_addon_conflict_resolution_policy_enforced_server_side.py", "service": "eks"} {"check_id": "eks.addon-duplicate-create-rejected", "deployments": [], "key": "eks/addon-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_addon_duplicate_create_rejected.py", "service": "eks"} {"check_id": "eks.addon-duplicate-creation-rejected", "deployments": [], "key": "eks/addon-duplicate-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeCluster", "eks:ListAddons", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_addon_duplicate_creation_rejected.py", "service": "eks"} {"check_id": "eks.addon-full-lifecycle", "deployments": [], "key": "eks/addon-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonConfiguration", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListAddons", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_addon_full_lifecycle.py", "service": "eks"} {"check_id": "eks.addon-update-requires-existing-ordering", "deployments": [], "key": "eks/addon-update-requires-existing-ordering", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:ListAddons", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_addon_update_requires_existing_ordering.py", "service": "eks"} {"check_id": "eks.addon-version-ordering-newest-first", "deployments": [], "key": "eks/addon-version-ordering-newest-first", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DescribeAddonVersions"], "path": "behavioral/eks/check_addon_version_ordering_newest_first.py", "service": "eks"} {"check_id": "eks.associate-encryption-config-invalid-parameter", "deployments": [], "key": "eks/associate-encryption-config-invalid-parameter", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:AssociateEncryptionConfig", "eks:DeregisterCluster", "eks:DescribeCluster", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_associate_encryption_config_invalid_parameter.py", "service": "eks"} {"check_id": "eks.associate-identity-provider-config-invalid-parameter", "deployments": [], "key": "eks/associate-identity-provider-config-invalid-parameter", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:AssociateIdentityProviderConfig", "eks:DeregisterCluster", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_associate_identity_provider_config_invalid_parameter.py", "service": "eks"} {"check_id": "eks.cancel-update-completed-state-rejected", "deployments": [], "key": "eks/cancel-update-completed-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeClusterVersions", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "eks:UpdateClusterVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cancel_update_completed_state_rejected.py", "service": "eks"} {"check_id": "eks.cancel-update-completed-update-rejected", "deployments": [], "key": "eks/cancel-update-completed-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cancel_update_completed_update_rejected.py", "service": "eks"} {"check_id": "eks.cancel-update-invalid-parameter", "deployments": [], "key": "eks/cancel-update-invalid-parameter", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:CancelUpdate", "eks:DeregisterCluster", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_cancel_update_invalid_parameter.py", "service": "eks"} {"check_id": "eks.cancel-update-non-cancelable-state-rejected", "deployments": [], "key": "eks/cancel-update-non-cancelable-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cancel_update_non_cancelable_state_rejected.py", "service": "eks"} {"check_id": "eks.cancel-update-on-terminal-state-rejected", "deployments": [], "key": "eks/cancel-update-on-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cancel_update_on_terminal_state_rejected.py", "service": "eks"} {"check_id": "eks.cancel-update-on-version-update-rejected-update-completes", "deployments": [], "key": "eks/cancel-update-on-version-update-rejected-update-completes", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeClusterVersions", "eks:DescribeUpdate", "eks:UpdateClusterVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_cancel_update_on_version_update_rejected_update_completes.py", "service": "eks"} {"check_id": "eks.cancel-update-terminal-state-rejected", "deployments": [], "key": "eks/cancel-update-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cancel_update_terminal_state_rejected.py", "service": "eks"} {"check_id": "eks.cancel-update-unknown-update-id-not-found", "deployments": [], "key": "eks/cancel-update-unknown-update-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListUpdates", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_cancel_update_unknown_update_id_not_found.py", "service": "eks"} {"check_id": "eks.cancel-update-version-rollback-transitions-to-cancelled", "deployments": [], "key": "eks/cancel-update-version-rollback-transitions-to-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeClusterVersions", "eks:DescribeUpdate", "eks:UpdateClusterVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cancel_update_version_rollback_transitions_to_cancelled.py", "service": "eks"} {"check_id": "eks.cancel-update-wrong-state-blocked", "deployments": [], "key": "eks/cancel-update-wrong-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CancelUpdate", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_cancel_update_wrong_state_blocked.py", "service": "eks"} {"check_id": "eks.capability-access-denied", "deployments": [], "key": "eks/capability-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:CreateCapability", "eks:DeleteCapability", "eks:DescribeCapability", "eks:ListCapabilities", "eks:ListClusters", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_capability_access_denied.py", "service": "eks"} {"check_id": "eks.capability-configuration-blob-round-trip", "deployments": [], "key": "eks/capability-configuration-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCapability", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_capability_configuration_blob_round_trip.py", "service": "eks"} {"check_id": "eks.capability-create-malformed-input-rejected", "deployments": [], "key": "eks/capability-create-malformed-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCapability", "eks:DescribeCluster", "eks:ListCapabilities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_capability_create_malformed_input_rejected.py", "service": "eks"} {"check_id": "eks.capability-full-lifecycle", "deployments": [], "key": "eks/capability-full-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCapability", "eks:DescribeCluster", "eks:ListCapabilities", "eks:UpdateCapability", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/eks/check_capability_full_lifecycle.py", "service": "eks"} {"check_id": "eks.capability-lifecycle-transitions", "deployments": [], "key": "eks/capability-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCapability", "eks:DescribeCluster", "eks:ListCapabilities", "eks:UpdateCapability", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_capability_lifecycle_transitions.py", "service": "eks"} {"check_id": "eks.capability-malformed-name-rejected", "deployments": [], "key": "eks/capability-malformed-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCapability", "eks:DescribeCluster", "eks:ListCapabilities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_capability_malformed_name_rejected.py", "service": "eks"} {"check_id": "eks.capability-ops-on-missing-cluster-not-found", "deployments": [], "key": "eks/capability-ops-on-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeleteCapability", "eks:DescribeCapability", "eks:ListCapabilities", "eks:UpdateCapability"], "path": "behavioral/eks/check_capability_ops_on_missing_cluster_not_found.py", "service": "eks"} {"check_id": "eks.capability-server-side-managed-status-transition", "deployments": [], "key": "eks/capability-server-side-managed-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCapability", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_capability_server_side_managed_status_transition.py", "service": "eks"} {"check_id": "eks.capability-update-requires-existing-ordering", "deployments": [], "key": "eks/capability-update-requires-existing-ordering", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCapability", "eks:DescribeCluster", "eks:ListCapabilities", "eks:UpdateCapability", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/eks/check_capability_update_requires_existing_ordering.py", "service": "eks"} {"check_id": "eks.certificate-authority-activate-before-distribution-complete-rejected", "deployments": [], "key": "eks/certificate-authority-activate-before-distribution-complete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_certificate_authority_activate_before_distribution_complete_rejected.py", "service": "eks"} {"check_id": "eks.certificate-authority-activation-is-service-managed", "deployments": [], "key": "eks/certificate-authority-activation-is-service-managed", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "eks:ActivateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_activation_is_service_managed.py", "service": "eks"} {"check_id": "eks.certificate-authority-activation-requires-create-ordering", "deployments": [], "key": "eks/certificate-authority-activation-requires-create-ordering", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_activation_requires_create_ordering.py", "service": "eks"} {"check_id": "eks.certificate-authority-activation-validity-window-enforced", "deployments": [], "key": "eks/certificate-authority-activation-validity-window-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_activation_validity_window_enforced.py", "service": "eks"} {"check_id": "eks.certificate-authority-active-signer-deletion-rejected", "deployments": [], "key": "eks/certificate-authority-active-signer-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_active_signer_deletion_rejected.py", "service": "eks"} {"check_id": "eks.certificate-authority-csr-base64-blob-round-trip", "deployments": [], "key": "eks/certificate-authority-csr-base64-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_certificate_authority_csr_base64_blob_round_trip.py", "service": "eks"} {"check_id": "eks.certificate-authority-data-base64-round-trip", "deployments": [], "key": "eks/certificate-authority-data-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_data_base64_round_trip.py", "service": "eks"} {"check_id": "eks.certificate-authority-data-blob-round-trip", "deployments": [], "key": "eks/certificate-authority-data-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_data_blob_round_trip.py", "service": "eks"} {"check_id": "eks.certificate-authority-delete-in-use-blocked", "deployments": [], "key": "eks/certificate-authority-delete-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_delete_in_use_blocked.py", "service": "eks"} {"check_id": "eks.certificate-authority-delete-in-use-rejected", "deployments": [], "key": "eks/certificate-authority-delete-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_delete_in_use_rejected.py", "service": "eks"} {"check_id": "eks.certificate-authority-delete-while-active-blocked", "deployments": [], "key": "eks/certificate-authority-delete-while-active-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "eks:ListUpdates", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_certificate_authority_delete_while_active_blocked.py", "service": "eks"} {"check_id": "eks.certificate-authority-full-lifecycle", "deployments": [], "key": "eks/certificate-authority-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_full_lifecycle.py", "service": "eks"} {"check_id": "eks.certificate-authority-full-lifecycle-transitions", "deployments": [], "key": "eks/certificate-authority-full-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_full_lifecycle_transitions.py", "service": "eks"} {"check_id": "eks.certificate-authority-full-state-transitions", "deployments": [], "key": "eks/certificate-authority-full-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "eks:ListUpdates", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_full_state_transitions.py", "service": "eks"} {"check_id": "eks.certificate-authority-lifecycle-transitions", "deployments": [], "key": "eks/certificate-authority-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_lifecycle_transitions.py", "service": "eks"} {"check_id": "eks.certificate-authority-premature-activation-rejected", "deployments": [], "key": "eks/certificate-authority-premature-activation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_certificate_authority_premature_activation_rejected.py", "service": "eks"} {"check_id": "eks.certificate-authority-resource-limit-exceeded-rejected", "deployments": [], "key": "eks/certificate-authority-resource-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_resource_limit_exceeded_rejected.py", "service": "eks"} {"check_id": "eks.certificate-authority-server-side-key-generation", "deployments": [], "key": "eks/certificate-authority-server-side-key-generation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_certificate_authority_server_side_key_generation.py", "service": "eks"} {"check_id": "eks.certificate-authority-unknown-not-found", "deployments": [], "key": "eks/certificate-authority-unknown-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DescribeCertificateAuthority", "eks:ListCertificateAuthorities", "eks:ListClusters"], "path": "behavioral/eks/check_certificate_authority_unknown_not_found.py", "service": "eks"} {"check_id": "eks.certificate-authority-validity-period-precision-preserved", "deployments": [], "key": "eks/certificate-authority-validity-period-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_certificate_authority_validity_period_precision_preserved.py", "service": "eks"} {"check_id": "eks.child-apis-unknown-cluster-not-found", "deployments": [], "key": "eks/child-apis-unknown-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeAddon", "eks:DescribeCluster", "eks:DescribeFargateProfile", "eks:DescribeNodegroup", "eks:ListAccessEntries", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListIdentityProviderConfigs", "eks:ListNodegroups", "eks:ListPodIdentityAssociations", "eks:ListUpdates", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_child_apis_unknown_cluster_not_found.py", "service": "eks"} {"check_id": "eks.cluster-apis-unknown-cluster-not-found", "deployments": [], "key": "eks/cluster-apis-unknown-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeleteCluster", "eks:DescribeCluster", "eks:UpdateClusterConfig", "eks:UpdateClusterVersion"], "path": "behavioral/eks/check_cluster_apis_unknown_cluster_not_found.py", "service": "eks"} {"check_id": "eks.cluster-certificate-authority-data-base64-preserved", "deployments": [], "key": "eks/cluster-certificate-authority-data-base64-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cluster_certificate_authority_data_base64_preserved.py", "service": "eks"} {"check_id": "eks.cluster-create-duplicate-name-rejected", "deployments": [], "key": "eks/cluster-create-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_cluster_create_duplicate_name_rejected.py", "service": "eks"} {"check_id": "eks.cluster-created-at-timestamp-stable-across-reads", "deployments": [], "key": "eks/cluster-created-at-timestamp-stable-across-reads", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cluster_created_at_timestamp_stable_across_reads.py", "service": "eks"} {"check_id": "eks.cluster-delete-blocked-by-dependents-rejected", "deployments": [], "key": "eks/cluster-delete-blocked-by-dependents-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreateFargateProfile", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DescribeCluster", "eks:DescribeFargateProfile", "eks:ListClusters", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cluster_delete_blocked_by_dependents_rejected.py", "service": "eks"} {"check_id": "eks.cluster-deletion-protection-delete-rejected", "deployments": [], "key": "eks/cluster-deletion-protection-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_cluster_deletion_protection_delete_rejected.py", "service": "eks"} {"check_id": "eks.cluster-insights-read-path", "deployments": [], "key": "eks/cluster-insights-read-path", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsight", "eks:ListInsights", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_cluster_insights_read_path.py", "service": "eks"} {"check_id": "eks.cluster-kubernetes-api-server-serves-advertised-version", "deployments": [], "key": "eks/cluster-kubernetes-api-server-serves-advertised-version", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeFargateProfile", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_cluster_kubernetes_api_server_serves_advertised_version.py", "service": "eks"} {"check_id": "eks.cluster-register-deregister-lifecycle", "deployments": [], "key": "eks/cluster-register-deregister-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:DescribeCluster", "eks:ListClusters", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_cluster_register_deregister_lifecycle.py", "service": "eks"} {"check_id": "eks.cluster-tag-round-trip-and-untag", "deployments": [], "key": "eks/cluster-tag-round-trip-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:DescribeCluster", "eks:ListTagsForResource", "eks:RegisterCluster", "eks:TagResource", "eks:UntagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_cluster_tag_round_trip_and_untag.py", "service": "eks"} {"check_id": "eks.cluster-tags-empty-vs-absent-preserved", "deployments": [], "key": "eks/cluster-tags-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:DescribeCluster", "eks:ListTagsForResource", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_cluster_tags_empty_vs_absent_preserved.py", "service": "eks"} {"check_id": "eks.cluster-tags-unicode-round-trip", "deployments": [], "key": "eks/cluster-tags-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:ListTagsForResource", "eks:RegisterCluster", "eks:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_cluster_tags_unicode_round_trip.py", "service": "eks"} {"check_id": "eks.cluster-timestamp-precision-preserved", "deployments": [], "key": "eks/cluster-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cluster_timestamp_precision_preserved.py", "service": "eks"} {"check_id": "eks.cluster-update-config-lifecycle", "deployments": [], "key": "eks/cluster-update-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListUpdates", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_cluster_update_config_lifecycle.py", "service": "eks"} {"check_id": "eks.cluster-update-serialization", "deployments": [], "key": "eks/cluster-update-serialization", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeClusterVersions", "eks:DescribeUpdate", "eks:ListClusters", "eks:ListUpdates", "eks:UpdateClusterConfig", "eks:UpdateClusterVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_cluster_update_serialization.py", "service": "eks"} {"check_id": "eks.cluster-update-version-lifecycle", "deployments": [], "key": "eks/cluster-update-version-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeClusterVersions", "eks:DescribeUpdate", "eks:ListUpdates", "eks:UpdateClusterVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_cluster_update_version_lifecycle.py", "service": "eks"} {"check_id": "eks.cluster-version-update-in-progress-keeps-old-version-and-refuses-second", "deployments": [], "key": "eks/cluster-version-update-in-progress-keeps-old-version-and-refuses-second", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeClusterVersions", "eks:DescribeUpdate", "eks:ListUpdates", "eks:UpdateClusterVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_cluster_version_update_in_progress_keeps_old_version_and_refuses_second.py", "service": "eks"} {"check_id": "eks.concurrent-access-entry-update", "deployments": [], "key": "eks/concurrent-access-entry-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:UpdateAccessEntry", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_concurrent_access_entry_update.py", "service": "eks"} {"check_id": "eks.concurrent-certificate-authority-activate-idempotent", "deployments": [], "key": "eks/concurrent-certificate-authority-activate-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_concurrent_certificate_authority_activate_idempotent.py", "service": "eks"} {"check_id": "eks.concurrent-certificate-authority-delete-during-activation-conflict", "deployments": [], "key": "eks/concurrent-certificate-authority-delete-during-activation-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_concurrent_certificate_authority_delete_during_activation_conflict.py", "service": "eks"} {"check_id": "eks.concurrent-cluster-delete-conflict", "deployments": [], "key": "eks/concurrent-cluster-delete-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_concurrent_cluster_delete_conflict.py", "service": "eks"} {"check_id": "eks.concurrent-nodegroup-update-conflict", "deployments": [], "key": "eks/concurrent-nodegroup-update-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribeUpdate", "eks:ListUpdates", "eks:UpdateNodegroupConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_concurrent_nodegroup_update_conflict.py", "service": "eks"} {"check_id": "eks.concurrent-pod-identity-association-update-conflict", "deployments": [], "key": "eks/concurrent-pod-identity-association-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_concurrent_pod_identity_association_update_conflict.py", "service": "eks"} {"check_id": "eks.concurrent-podidentity-association-update-serialization", "deployments": [], "key": "eks/concurrent-podidentity-association-update-serialization", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_concurrent_podidentity_association_update_serialization.py", "service": "eks"} {"check_id": "eks.connected-cluster-refuses-eks-managed-children", "deployments": [], "key": "eks/connected-cluster-refuses-eks-managed-children", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:CreateAccessEntry", "eks:CreateAddon", "eks:CreateFargateProfile", "eks:DeregisterCluster", "eks:DescribeAccessEntry", "eks:DescribeAddon", "eks:DescribeCluster", "eks:DescribeClusterVersions", "eks:ListAccessEntries", "eks:ListAddons", "eks:ListClusters", "eks:ListNodegroups", "eks:RegisterCluster", "eks:UpdateClusterConfig", "eks:UpdateClusterVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_connected_cluster_refuses_eks_managed_children.py", "service": "eks"} {"check_id": "eks.create-addon-unknown-name-rejected", "deployments": [], "key": "eks/create-addon-unknown-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonConfiguration", "eks:DescribeCluster", "eks:ListAddons", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_create_addon_unknown_name_rejected.py", "service": "eks"} {"check_id": "eks.create-capability-argocd-config-on-ack-type-rejected", "deployments": [], "key": "eks/create-capability-argocd-config-on-ack-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCapability", "eks:DescribeCluster", "eks:ListCapabilities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_capability_argocd_config_on_ack_type_rejected.py", "service": "eks"} {"check_id": "eks.create-capability-unsupported-type-rejected", "deployments": [], "key": "eks/create-capability-unsupported-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCapability", "eks:CreateCluster", "eks:DeleteCapability", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListCapabilities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_capability_unsupported_type_rejected.py", "service": "eks"} {"check_id": "eks.create-certificate-authority-invalid-parameter-rejected", "deployments": [], "key": "eks/create-certificate-authority-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DeregisterCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:ListCertificateAuthorities", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_certificate_authority_invalid_parameter_rejected.py", "service": "eks"} {"check_id": "eks.create-certificate-authority-out-of-range-validity-rejected", "deployments": [], "key": "eks/create-certificate-authority-out-of-range-validity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_certificate_authority_out_of_range_validity_rejected.py", "service": "eks"} {"check_id": "eks.create-certificate-authority-resource-limit-exceeded-rejected", "deployments": [], "key": "eks/create-certificate-authority-resource-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_certificate_authority_resource_limit_exceeded_rejected.py", "service": "eks"} {"check_id": "eks.create-cluster-auto-mode-requires-matching-config", "deployments": [], "key": "eks/create-cluster-auto-mode-requires-matching-config", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_create_cluster_auto_mode_requires_matching_config.py", "service": "eks"} {"check_id": "eks.create-cluster-malformed-name-characters-rejected", "deployments": [], "key": "eks/create-cluster-malformed-name-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_cluster_malformed_name_characters_rejected.py", "service": "eks"} {"check_id": "eks.create-cluster-service-ipv4-cidr-rejected", "deployments": [], "key": "eks/create-cluster-service-ipv4-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_create_cluster_service_ipv4_cidr_rejected.py", "service": "eks"} {"check_id": "eks.create-cluster-single-az-subnet-rejected", "deployments": [], "key": "eks/create-cluster-single-az-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_create_cluster_single_az_subnet_rejected.py", "service": "eks"} {"check_id": "eks.create-nodegroup-disk-size-out-of-range-rejected", "deployments": [], "key": "eks/create-nodegroup-disk-size-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_nodegroup_disk_size_out_of_range_rejected.py", "service": "eks"} {"check_id": "eks.create-nodegroup-invalid-scaling-rejected", "deployments": [], "key": "eks/create-nodegroup-invalid-scaling-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_create_nodegroup_invalid_scaling_rejected.py", "service": "eks"} {"check_id": "eks.create-pod-identity-association-conflicting-role-rejected", "deployments": [], "key": "eks/create-pod-identity-association-conflicting-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_pod_identity_association_conflicting_role_rejected.py", "service": "eks"} {"check_id": "eks.create-pod-identity-association-untrusted-role-rejected", "deployments": [], "key": "eks/create-pod-identity-association-untrusted-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_create_pod_identity_association_untrusted_role_rejected.py", "service": "eks"} {"check_id": "eks.create-podidentity-association-malformed-role-arn-rejected", "deployments": [], "key": "eks/create-podidentity-association-malformed-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_create_podidentity_association_malformed_role_arn_rejected.py", "service": "eks"} {"check_id": "eks.delete-certificate-authority-active-state-blocked", "deployments": [], "key": "eks/delete-certificate-authority-active-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_delete_certificate_authority_active_state_blocked.py", "service": "eks"} {"check_id": "eks.delete-certificate-authority-in-use-blocked", "deployments": [], "key": "eks/delete-certificate-authority-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_delete_certificate_authority_in_use_blocked.py", "service": "eks"} {"check_id": "eks.delete-cluster-blocked-by-nodegroup-dependency", "deployments": [], "key": "eks/delete-cluster-blocked-by-nodegroup-dependency", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateFargateProfile", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_delete_cluster_blocked_by_nodegroup_dependency.py", "service": "eks"} {"check_id": "eks.delete-cluster-with-active-nodegroup-rejected", "deployments": [], "key": "eks/delete-cluster-with-active-nodegroup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_delete_cluster_with_active_nodegroup_rejected.py", "service": "eks"} {"check_id": "eks.delete-inuse-certificate-authority-rejected", "deployments": [], "key": "eks/delete-inuse-certificate-authority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_delete_inuse_certificate_authority_rejected.py", "service": "eks"} {"check_id": "eks.deploy-accessentry-via-cloudformation-duplicate-principal-rejected", "deployments": [], "key": "eks/deploy-accessentry-via-cloudformation-duplicate-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_accessentry_via_cloudformation_duplicate_principal_rejected.py", "service": "eks"} {"check_id": "eks.deploy-accessentry-via-cloudformation-grants-access", "deployments": [], "key": "eks/deploy-accessentry-via-cloudformation-grants-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_accessentry_via_cloudformation_grants_access.py", "service": "eks"} {"check_id": "eks.deploy-addon-configuration-values-applied", "deployments": [], "key": "eks/deploy-addon-configuration-values-applied", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonConfiguration", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_addon_configuration_values_applied.py", "service": "eks"} {"check_id": "eks.deploy-addon-via-cloudformation-installed", "deployments": [], "key": "eks/deploy-addon-via-cloudformation-installed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeCluster", "eks:ListAddons", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_addon_via_cloudformation_installed.py", "service": "eks"} {"check_id": "eks.deploy-cfn-cluster-active-and-usable", "deployments": [], "key": "eks/deploy-cfn-cluster-active-and-usable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "eks:CreateAddon", "eks:DeleteAddon", "eks:DescribeAddon", "eks:DescribeCluster", "eks:ListAddons", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_cfn_cluster_active_and_usable.py", "service": "eks"} {"check_id": "eks.deploy-cfn-cluster-behaves", "deployments": [], "key": "eks/deploy-cfn-cluster-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "eks:DescribeCluster", "eks:ListClusters"], "path": "behavioral/eks/check_deploy_cfn_cluster_behaves.py", "service": "eks"} {"check_id": "eks.deploy-cfn-nodegroup-joins-cluster", "deployments": [], "key": "eks/deploy-cfn-nodegroup-joins-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups"], "path": "behavioral/eks/check_deploy_cfn_nodegroup_joins_cluster.py", "service": "eks"} {"check_id": "eks.deploy-cfn-nodegroup-joins-cluster-and-scales", "deployments": [], "key": "eks/deploy-cfn-nodegroup-joins-cluster-and-scales", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_cfn_nodegroup_joins_cluster_and_scales.py", "service": "eks"} {"check_id": "eks.deploy-cfn-pod-identity-association-grants-role-access", "deployments": [], "key": "eks/deploy-cfn-pod-identity-association-grants-role-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_deploy_cfn_pod_identity_association_grants_role_access.py", "service": "eks"} {"check_id": "eks.deploy-cfn-podidentity-association-usable", "deployments": [], "key": "eks/deploy-cfn-podidentity-association-usable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations"], "path": "behavioral/eks/check_deploy_cfn_podidentity_association_usable.py", "service": "eks"} {"check_id": "eks.deploy-cluster-active-and-api-reachable", "deployments": [], "key": "eks/deploy-cluster-active-and-api-reachable", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_cluster_active_and_api_reachable.py", "service": "eks"} {"check_id": "eks.deploy-cluster-cfn-becomes-active-and-usable", "deployments": [], "key": "eks/deploy-cluster-cfn-becomes-active-and-usable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateNodegroup", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_deploy_cluster_cfn_becomes_active_and_usable.py", "service": "eks"} {"check_id": "eks.deploy-cluster-via-cloudformation-active", "deployments": [], "key": "eks/deploy-cluster-via-cloudformation-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:DescribeCluster", "eks:ListClusters", "eks:ListNodegroups"], "path": "behavioral/eks/check_deploy_cluster_via_cloudformation_active.py", "service": "eks"} {"check_id": "eks.deploy-eks-cluster-cloudformation-active", "deployments": [], "key": "eks/deploy-eks-cluster-cloudformation-active", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "eks:DescribeCluster", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_eks_cluster_cloudformation_active.py", "service": "eks"} {"check_id": "eks.deploy-eks-nodegroup-cloudformation-joins-cluster", "deployments": [], "key": "eks/deploy-eks-nodegroup-cloudformation-joins-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_eks_nodegroup_cloudformation_joins_cluster.py", "service": "eks"} {"check_id": "eks.deploy-eks-podidentity-association-cloudformation-functional", "deployments": [], "key": "eks/deploy-eks-podidentity-association-cloudformation-functional", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_deploy_eks_podidentity_association_cloudformation_functional.py", "service": "eks"} {"check_id": "eks.deploy-nodegroup-cfn-scales-and-joins-cluster", "deployments": [], "key": "eks/deploy-nodegroup-cfn-scales-and-joins-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_deploy_nodegroup_cfn_scales_and_joins_cluster.py", "service": "eks"} {"check_id": "eks.deploy-nodegroup-scaling-config-enforced", "deployments": [], "key": "eks/deploy-nodegroup-scaling-config-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:UpdateNodegroupConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_nodegroup_scaling_config_enforced.py", "service": "eks"} {"check_id": "eks.deploy-nodegroup-via-cloudformation-joins-cluster", "deployments": [], "key": "eks/deploy-nodegroup-via-cloudformation-joins-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_deploy_nodegroup_via_cloudformation_joins_cluster.py", "service": "eks"} {"check_id": "eks.deploy-pod-identity-association-grants-role", "deployments": [], "key": "eks/deploy-pod-identity-association-grants-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_deploy_pod_identity_association_grants_role.py", "service": "eks"} {"check_id": "eks.deploy-podidentity-association-cfn-enforced-at-runtime", "deployments": [], "key": "eks/deploy-podidentity-association-cfn-enforced-at-runtime", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_deploy_podidentity_association_cfn_enforced_at_runtime.py", "service": "eks"} {"check_id": "eks.deregister-cluster-blocked-in-use", "deployments": [], "key": "eks/deregister-cluster-blocked-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:DescribeCluster", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_deregister_cluster_blocked_in_use.py", "service": "eks"} {"check_id": "eks.describe-addon-configuration-schema", "deployments": [], "key": "eks/describe-addon-configuration-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DescribeAddonConfiguration", "eks:DescribeAddonVersions"], "path": "behavioral/eks/check_describe_addon_configuration_schema.py", "service": "eks"} {"check_id": "eks.describe-addon-versions-filter-shape", "deployments": [], "key": "eks/describe-addon-versions-filter-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DescribeAddonVersions"], "path": "behavioral/eks/check_describe_addon_versions_filter_shape.py", "service": "eks"} {"check_id": "eks.describe-addon-versions-filters", "deployments": [], "key": "eks/describe-addon-versions-filters", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DescribeAddonVersions"], "path": "behavioral/eks/check_describe_addon_versions_filters.py", "service": "eks"} {"check_id": "eks.describe-addon-versions-pagination-and-default-uniqueness", "deployments": [], "key": "eks/describe-addon-versions-pagination-and-default-uniqueness", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DescribeAddonVersions"], "path": "behavioral/eks/check_describe_addon_versions_pagination_and_default_uniqueness.py", "service": "eks"} {"check_id": "eks.describe-certificate-authority-unknown-not-found", "deployments": [], "key": "eks/describe-certificate-authority-unknown-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeleteCertificateAuthority", "eks:DescribeCertificateAuthority"], "path": "behavioral/eks/check_describe_certificate_authority_unknown_not_found.py", "service": "eks"} {"check_id": "eks.describe-cluster-versions-shape", "deployments": [], "key": "eks/describe-cluster-versions-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DescribeClusterVersions"], "path": "behavioral/eks/check_describe_cluster_versions_shape.py", "service": "eks"} {"check_id": "eks.describe-identity-provider-config-type-mismatch-rejected", "deployments": [], "key": "eks/describe-identity-provider-config-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeIdentityProviderConfig", "eks:ListIdentityProviderConfigs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_describe_identity_provider_config_type_mismatch_rejected.py", "service": "eks"} {"check_id": "eks.describe-identity-provider-config-unknown-name-not-found", "deployments": [], "key": "eks/describe-identity-provider-config-unknown-name-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeIdentityProviderConfig", "eks:ListIdentityProviderConfigs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_describe_identity_provider_config_unknown_name_not_found.py", "service": "eks"} {"check_id": "eks.describe-identity-provider-config-unknown-not-found", "deployments": [], "key": "eks/describe-identity-provider-config-unknown-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DescribeIdentityProviderConfig"], "path": "behavioral/eks/check_describe_identity_provider_config_unknown_not_found.py", "service": "eks"} {"check_id": "eks.describe-insights-refresh-unknown-cluster-not-found", "deployments": [], "key": "eks/describe-insights-refresh-unknown-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DescribeInsightsRefresh"], "path": "behavioral/eks/check_describe_insights_refresh_unknown_cluster_not_found.py", "service": "eks"} {"check_id": "eks.describe-update-not-found", "deployments": [], "key": "eks/describe-update-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_describe_update_not_found.py", "service": "eks"} {"check_id": "eks.disassociate-identity-provider-config-not-found", "deployments": [], "key": "eks/disassociate-identity-provider-config-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DisassociateIdentityProviderConfig"], "path": "behavioral/eks/check_disassociate_identity_provider_config_not_found.py", "service": "eks"} {"check_id": "eks.duplicate-podidentity-association-rejected", "deployments": [], "key": "eks/duplicate-podidentity-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_duplicate_podidentity_association_rejected.py", "service": "eks"} {"check_id": "eks.e2e-access-entry-kubectl-authorization-flow", "deployments": [], "key": "eks/e2e-access-entry-kubectl-authorization-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DisassociateAccessPolicy", "eks:ListAddons", "eks:ListAssociatedAccessPolicies", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_e2e_access_entry_kubectl_authorization_flow.py", "service": "eks"} {"check_id": "eks.e2e-access-entry-policy-grant-and-revoke-flow", "deployments": [], "key": "eks/e2e-access-entry-policy-grant-and-revoke-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:DisassociateAccessPolicy", "eks:ListAccessPolicies", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_access_entry_policy_grant_and_revoke_flow.py", "service": "eks"} {"check_id": "eks.e2e-access-policy-association-enforces-then-revokes-access", "deployments": [], "key": "eks/e2e-access-policy-association-enforces-then-revokes-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DisassociateAccessPolicy", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_access_policy_association_enforces_then_revokes_access.py", "service": "eks"} {"check_id": "eks.e2e-addon-config-update-consequence-flow", "deployments": [], "key": "eks/e2e-addon-config-update-consequence-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeAddon", "eks:DescribeAddonConfiguration", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribeUpdate", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_addon_config_update_consequence_flow.py", "service": "eks"} {"check_id": "eks.e2e-addon-upgrade-workload-continuity", "deployments": [], "key": "eks/e2e-addon-upgrade-workload-continuity", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_addon_upgrade_workload_continuity.py", "service": "eks"} {"check_id": "eks.e2e-addon-version-upgrade-consequence-flow", "deployments": [], "key": "eks/e2e-addon-version-upgrade-consequence-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:UpdateAddon", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_addon_version_upgrade_consequence_flow.py", "service": "eks"} {"check_id": "eks.e2e-certificate-authority-activation-to-teardown", "deployments": [], "key": "eks/e2e-certificate-authority-activation-to-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_certificate_authority_activation_to_teardown.py", "service": "eks"} {"check_id": "eks.e2e-certificate-authority-issue-activate-disable-delete", "deployments": [], "key": "eks/e2e-certificate-authority-issue-activate-disable-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCertificateAuthority", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_certificate_authority_issue_activate_disable_delete.py", "service": "eks"} {"check_id": "eks.e2e-cluster-delete-blocked-by-active-nodegroup-rejected", "deployments": [], "key": "eks/e2e-cluster-delete-blocked-by-active-nodegroup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_cluster_delete_blocked_by_active_nodegroup_rejected.py", "service": "eks"} {"check_id": "eks.e2e-cluster-nodegroup-pod-identity-teardown", "deployments": [], "key": "eks/e2e-cluster-nodegroup-pod-identity-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_cluster_nodegroup_pod_identity_teardown.py", "service": "eks"} {"check_id": "eks.e2e-cluster-nodegroup-podidentity-teardown-flow", "deployments": [], "key": "eks/e2e-cluster-nodegroup-podidentity-teardown-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreateNodegroup", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_cluster_nodegroup_podidentity_teardown_flow.py", "service": "eks"} {"check_id": "eks.e2e-cluster-nodegroup-workload-scale-teardown", "deployments": [], "key": "eks/e2e-cluster-nodegroup-workload-scale-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribeUpdate", "eks:UpdateNodegroupConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_cluster_nodegroup_workload_scale_teardown.py", "service": "eks"} {"check_id": "eks.e2e-insights-refresh-triggers-recompute-flow", "deployments": [], "key": "eks/e2e-insights-refresh-triggers-recompute-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsight", "eks:DescribeInsightsRefresh", "eks:ListInsights", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_insights_refresh_triggers_recompute_flow.py", "service": "eks"} {"check_id": "eks.e2e-pod-identity-association-role-access-flow", "deployments": [], "key": "eks/e2e-pod-identity-association-role-access-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_e2e_pod_identity_association_role_access_flow.py", "service": "eks"} {"check_id": "eks.e2e-pod-identity-association-role-assumption-flow", "deployments": [], "key": "eks/e2e-pod-identity-association-role-assumption-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_e2e_pod_identity_association_role_assumption_flow.py", "service": "eks"} {"check_id": "eks.e2e-pod-identity-role-assumption-flow", "deployments": [], "key": "eks/e2e-pod-identity-role-assumption-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_e2e_pod_identity_role_assumption_flow.py", "service": "eks"} {"check_id": "eks.e2e-pod-identity-role-rotation-flow", "deployments": [], "key": "eks/e2e-pod-identity-role-rotation-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_e2e_pod_identity_role_rotation_flow.py", "service": "eks"} {"check_id": "eks.eks-access-entry-deletion-leaves-the-principal-unauthorized", "deployments": [], "key": "eks/eks-access-entry-deletion-leaves-the-principal-unauthorized", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAccessEntries", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_eks_access_entry_deletion_leaves_the_principal_unauthorized.py", "service": "eks"} {"check_id": "eks.eks-anywhere-subscription-read-semantics", "deployments": [], "key": "eks/eks-anywhere-subscription-read-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DescribeEksAnywhereSubscription", "eks:ListEksAnywhereSubscriptions"], "path": "behavioral/eks/check_eks_anywhere_subscription_read_semantics.py", "service": "eks"} {"check_id": "eks.eks-concurrent-update-cluster-config-admits-exactly-one-update", "deployments": [], "key": "eks/eks-concurrent-update-cluster-config-admits-exactly-one-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribeUpdate", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "eks:ListUpdates", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_eks_concurrent_update_cluster_config_admits_exactly_one_update.py", "service": "eks"} {"check_id": "eks.eks-coredns-resolves-a-service-to-the-clusterip-the-api-reports", "deployments": [], "key": "eks/eks-coredns-resolves-a-service-to-the-clusterip-the-api-reports", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_eks_coredns_resolves_a_service_to_the_clusterip_the_api_reports.py", "service": "eks"} {"check_id": "eks.eks-create-cluster-active", "deployments": [], "key": "eks/eks-create-cluster-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListClusters", "eks:UpdateClusterConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_eks_create_cluster_active.py", "service": "eks"} {"check_id": "eks.eks-delete-cluster-with-a-live-node-is-rejected", "deployments": [], "key": "eks/eks-delete-cluster-with-a-live-node-is-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_eks_delete_cluster_with_a_live_node_is_rejected.py", "service": "eks"} {"check_id": "eks.eks-deployment-pod-is-reachable-through-a-cluster-service", "deployments": [], "key": "eks/eks-deployment-pod-is-reachable-through-a-cluster-service", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_eks_deployment_pod_is_reachable_through_a_cluster_service.py", "service": "eks"} {"check_id": "eks.eks-ebs-csi-volume-data-survives-a-pod-reschedule", "deployments": [], "key": "eks/eks-ebs-csi-volume-data-survives-a-pod-reschedule", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:CreatePodIdentityAssociation", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DeletePodIdentityAssociation", "eks:DescribeAddon", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_eks_ebs_csi_volume_data_survives_a_pod_reschedule.py", "service": "eks"} {"check_id": "eks.eks-irsa-projected-token-assumed-inside-the-pod-and-sub-condition-denied", "deployments": [], "key": "eks/eks-irsa-projected-token-assumed-inside-the-pod-and-sub-condition-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListClusters", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListOpenIDConnectProviders", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_eks_irsa_projected_token_assumed_inside_the_pod_and_sub_condition_denied.py", "service": "eks"} {"check_id": "eks.eks-kubectl-namespace", "deployments": [], "key": "eks/eks-kubectl-namespace", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_eks_kubectl_namespace.py", "service": "eks"} {"check_id": "eks.eks-managed-nodegroup-node-joins-and-runs-a-targeted-pod", "deployments": [], "key": "eks/eks-managed-nodegroup-node-joins-and-runs-a-targeted-pod", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["autoscaling:DescribeAutoScalingGroups", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_eks_managed_nodegroup_node_joins_and_runs_a_targeted_pod.py", "service": "eks"} {"check_id": "eks.eks-oidc-discovery-and-jwks-verify-a-projected-token-offline", "deployments": [], "key": "eks/eks-oidc-discovery-and-jwks-verify-a-projected-token-offline", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies"], "path": "behavioral/eks/check_eks_oidc_discovery_and_jwks_verify_a_projected_token_offline.py", "service": "eks"} {"check_id": "eks.eks-pinned-addon-version-is-the-image-running-in-the-cluster", "deployments": [], "key": "eks/eks-pinned-addon-version-is-the-image-running-in-the-cluster", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_eks_pinned_addon_version_is_the_image_running_in_the_cluster.py", "service": "eks"} {"check_id": "eks.eks-pod-identity-credentials-are-scoped-and-an-unallowed-bucket-is-denied", "deployments": [], "key": "eks/eks-pod-identity-credentials-are-scoped-and-an-unallowed-bucket-is-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:CreatePodIdentityAssociation", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DeletePodIdentityAssociation", "eks:DescribeAddon", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribePodIdentityAssociation", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_eks_pod_identity_credentials_are_scoped_and_an_unallowed_bucket_is_denied.py", "service": "eks"} {"check_id": "eks.eks-pod-ip-is-a-secondary-address-on-a-real-vpc-eni", "deployments": [], "key": "eks/eks-pod-ip-is-a-secondary-address-on-a-real-vpc-eni", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListClusters", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies"], "path": "behavioral/eks/check_eks_pod_ip_is_a_secondary_address_on_a_real_vpc_eni.py", "service": "eks"} {"check_id": "eks.eks-view-access-policy-write-is-forbidden-by-the-api-server", "deployments": [], "key": "eks/eks-view-access-policy-write-is-forbidden-by-the-api-server", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListAssociatedAccessPolicies", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_eks_view_access_policy_write_is_forbidden_by_the_api_server.py", "service": "eks"} {"check_id": "eks.encryption-config-association-lifecycle", "deployments": [], "key": "eks/encryption-config-association-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:AssociateEncryptionConfig", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListUpdates", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_encryption_config_association_lifecycle.py", "service": "eks"} {"check_id": "eks.encryption-config-key-arn-byte-preserved", "deployments": [], "key": "eks/encryption-config-key-arn-byte-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:AssociateEncryptionConfig", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/eks/check_encryption_config_key_arn_byte_preserved.py", "service": "eks"} {"check_id": "eks.encryption-config-key-arn-preserved", "deployments": [], "key": "eks/encryption-config-key-arn-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:AssociateEncryptionConfig", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/eks/check_encryption_config_key_arn_preserved.py", "service": "eks"} {"check_id": "eks.encryption-config-key-arn-round-trip", "deployments": [], "key": "eks/encryption-config-key-arn-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:AssociateEncryptionConfig", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_encryption_config_key_arn_round_trip.py", "service": "eks"} {"check_id": "eks.encryption-config-reassociation-rejected", "deployments": [], "key": "eks/encryption-config-reassociation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:AssociateEncryptionConfig", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeUpdate", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/eks/check_encryption_config_reassociation_rejected.py", "service": "eks"} {"check_id": "eks.encryption-config-second-associate-rejected", "deployments": [], "key": "eks/encryption-config-second-associate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:AssociateEncryptionConfig", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/eks/check_encryption_config_second_associate_rejected.py", "service": "eks"} {"check_id": "eks.fargate-profile-full-lifecycle", "deployments": [], "key": "eks/fargate-profile-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateFargateProfile", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DescribeCluster", "eks:DescribeFargateProfile", "eks:ListFargateProfiles", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_fargate_profile_full_lifecycle.py", "service": "eks"} {"check_id": "eks.fargate-profile-public-subnet-rejected", "deployments": [], "key": "eks/fargate-profile-public-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateFargateProfile", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DescribeCluster", "eks:DescribeFargateProfile", "eks:ListFargateProfiles", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_fargate_profile_public_subnet_rejected.py", "service": "eks"} {"check_id": "eks.hpa-min-replicas-above-max-replicas-rejected", "deployments": [], "key": "eks/hpa-min-replicas-above-max-replicas-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_hpa_min_replicas_above_max_replicas_rejected.py", "service": "eks"} {"check_id": "eks.hpa-scales-out-under-cpu-load-and-back-in-when-it-stops", "deployments": [], "key": "eks/hpa-scales-out-under-cpu-load-and-back-in-when-it-stops", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_hpa_scales_out_under_cpu_load_and_back_in_when_it_stops.py", "service": "eks"} {"check_id": "eks.hpa-target-without-a-cpu-request-is-blocked-from-scaling", "deployments": [], "key": "eks/hpa-target-without-a-cpu-request-is-blocked-from-scaling", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateAddon", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeAddon", "eks:DescribeAddonVersions", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_hpa_target_without_a_cpu_request_is_blocked_from_scaling.py", "service": "eks"} {"check_id": "eks.hybrid-nodes-cluster-ca-provisioning-teardown", "deployments": [], "key": "eks/hybrid-nodes-cluster-ca-provisioning-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_hybrid_nodes_cluster_ca_provisioning_teardown.py", "service": "eks"} {"check_id": "eks.identity-provider-config-details-round-trip", "deployments": [], "key": "eks/identity-provider-config-details-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:AssociateIdentityProviderConfig", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeIdentityProviderConfig", "eks:DescribeUpdate", "eks:DisassociateIdentityProviderConfig", "eks:ListIdentityProviderConfigs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_identity_provider_config_details_round_trip.py", "service": "eks"} {"check_id": "eks.identity-provider-config-lifecycle", "deployments": [], "key": "eks/identity-provider-config-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:AssociateIdentityProviderConfig", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeIdentityProviderConfig", "eks:DisassociateIdentityProviderConfig", "eks:ListIdentityProviderConfigs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_identity_provider_config_lifecycle.py", "service": "eks"} {"check_id": "eks.insights-refresh-completes-autonomously", "deployments": [], "key": "eks/insights-refresh-completes-autonomously", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsightsRefresh", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_insights_refresh_completes_autonomously.py", "service": "eks"} {"check_id": "eks.insights-refresh-cooldown-throttle", "deployments": [], "key": "eks/insights-refresh-cooldown-throttle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsightsRefresh", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_insights_refresh_cooldown_throttle.py", "service": "eks"} {"check_id": "eks.insights-refresh-in-progress-to-complete-transition", "deployments": [], "key": "eks/insights-refresh-in-progress-to-complete-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsightsRefresh", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_insights_refresh_in_progress_to_complete_transition.py", "service": "eks"} {"check_id": "eks.insights-refresh-lifecycle-transitions", "deployments": [], "key": "eks/insights-refresh-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsightsRefresh", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_insights_refresh_lifecycle_transitions.py", "service": "eks"} {"check_id": "eks.insights-refresh-observable-consequence", "deployments": [], "key": "eks/insights-refresh-observable-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsightsRefresh", "eks:ListInsights", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_insights_refresh_observable_consequence.py", "service": "eks"} {"check_id": "eks.insights-refresh-status-lifecycle", "deployments": [], "key": "eks/insights-refresh-status-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsightsRefresh", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_insights_refresh_status_lifecycle.py", "service": "eks"} {"check_id": "eks.irsa-cross-namespace-serviceaccount-token-rejected", "deployments": [], "key": "eks/irsa-cross-namespace-serviceaccount-token-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_irsa_cross_namespace_serviceaccount_token_rejected.py", "service": "eks"} {"check_id": "eks.irsa-web-identity-rejected-when-the-oidc-provider-is-deregistered", "deployments": [], "key": "eks/irsa-web-identity-rejected-when-the-oidc-provider-is-deregistered", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DetachInternetGateway", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:AttachRolePolicy", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListOpenIDConnectProviders", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_irsa_web_identity_rejected_when_the_oidc_provider_is_deregistered.py", "service": "eks"} {"check_id": "eks.k8s-configmap-mounted-value-readable-inside-the-pod", "deployments": [], "key": "eks/k8s-configmap-mounted-value-readable-inside-the-pod", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_k8s_configmap_mounted_value_readable_inside_the_pod.py", "service": "eks"} {"check_id": "eks.k8s-deployment-apply-runs-pods-on-real-nodes", "deployments": [], "key": "eks/k8s-deployment-apply-runs-pods-on-real-nodes", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_k8s_deployment_apply_runs_pods_on_real_nodes.py", "service": "eks"} {"check_id": "eks.k8s-deployment-scale-converges-to-the-requested-replicas", "deployments": [], "key": "eks/k8s-deployment-scale-converges-to-the-requested-replicas", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_k8s_deployment_scale_converges_to_the_requested_replicas.py", "service": "eks"} {"check_id": "eks.k8s-rbac-get-only-role-rejects-deleting-a-pod", "deployments": [], "key": "eks/k8s-rbac-get-only-role-rejects-deleting-a-pod", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_k8s_rbac_get_only_role_rejects_deleting_a_pod.py", "service": "eks"} {"check_id": "eks.k8s-resourcequota-rejects-a-pod-over-the-namespace-limit", "deployments": [], "key": "eks/k8s-resourcequota-rejects-a-pod-over-the-namespace-limit", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_k8s_resourcequota_rejects_a_pod_over_the_namespace_limit.py", "service": "eks"} {"check_id": "eks.k8s-rolling-update-replaces-pods-without-dropping-the-service", "deployments": [], "key": "eks/k8s-rolling-update-replaces-pods-without-dropping-the-service", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_k8s_rolling_update_replaces_pods_without_dropping_the_service.py", "service": "eks"} {"check_id": "eks.k8s-service-clusterip-load-balances-across-pods", "deployments": [], "key": "eks/k8s-service-clusterip-load-balances-across-pods", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_k8s_service_clusterip_load_balances_across_pods.py", "service": "eks"} {"check_id": "eks.kubectl-applied-deployment-pod-runs-and-serves-its-configmap-through-a-service", "deployments": [], "key": "eks/kubectl-applied-deployment-pod-runs-and-serves-its-configmap-through-a-service", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_kubectl_applied_deployment_pod_runs_and_serves_its_configmap_through_a_service.py", "service": "eks"} {"check_id": "eks.kubectl-denied-verb-returns-the-exact-forbidden-message-while-a-permitted-verb-succeeds", "deployments": [], "key": "eks/kubectl-denied-verb-returns-the-exact-forbidden-message-while-a-permitted-verb-succeeds", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListAddons", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_kubectl_denied_verb_returns_the_exact_forbidden_message_while_a_permitted_verb_succeeds.py", "service": "eks"} {"check_id": "eks.list-access-policies-catalog", "deployments": [], "key": "eks/list-access-policies-catalog", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:ListAccessPolicies"], "path": "behavioral/eks/check_list_access_policies_catalog.py", "service": "eks"} {"check_id": "eks.list-associated-access-policies-invalid-scope-rejected", "deployments": [], "key": "eks/list-associated-access-policies-invalid-scope-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_list_associated_access_policies_invalid_scope_rejected.py", "service": "eks"} {"check_id": "eks.list-associated-access-policies-unknown-entry-not-found", "deployments": [], "key": "eks/list-associated-access-policies-unknown-entry-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListAccessEntries", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_list_associated_access_policies_unknown_entry_not_found.py", "service": "eks"} {"check_id": "eks.list-associated-access-policies-unknown-principal-not-found", "deployments": [], "key": "eks/list-associated-access-policies-unknown-principal-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DisassociateAccessPolicy", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_list_associated_access_policies_unknown_principal_not_found.py", "service": "eks"} {"check_id": "eks.list-certificate-authorities-scoped-to-managed-clusters", "deployments": [], "key": "eks/list-certificate-authorities-scoped-to-managed-clusters", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_list_certificate_authorities_scoped_to_managed_clusters.py", "service": "eks"} {"check_id": "eks.list-clusters-include-projection-under-pagination", "deployments": [], "key": "eks/list-clusters-include-projection-under-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:DescribeCluster", "eks:ListClusters", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_list_clusters_include_projection_under_pagination.py", "service": "eks"} {"check_id": "eks.list-clusters-pagination-invariants", "deployments": [], "key": "eks/list-clusters-pagination-invariants", "labels": ["axis:happy-path", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:ListClusters", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_list_clusters_pagination_invariants.py", "service": "eks"} {"check_id": "eks.list-tags-for-resource-not-found", "deployments": [], "key": "eks/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:ListTagsForResource", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_list_tags_for_resource_not_found.py", "service": "eks"} {"check_id": "eks.namespace-scoped-access-policy-confines-reads-to-its-namespace", "deployments": [], "key": "eks/namespace-scoped-access-policy-confines-reads-to-its-namespace", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DisassociateAccessPolicy", "eks:ListAddons", "eks:ListAssociatedAccessPolicies", "eks:ListFargateProfiles", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_namespace_scoped_access_policy_confines_reads_to_its_namespace.py", "service": "eks"} {"check_id": "eks.nodegroup-duplicate-create-rejected", "deployments": [], "key": "eks/nodegroup-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_nodegroup_duplicate_create_rejected.py", "service": "eks"} {"check_id": "eks.nodegroup-full-lifecycle", "deployments": [], "key": "eks/nodegroup-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:UpdateNodegroupConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_nodegroup_full_lifecycle.py", "service": "eks"} {"check_id": "eks.nodegroup-full-lifecycle-transitions", "deployments": [], "key": "eks/nodegroup-full-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:UpdateNodegroupConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_nodegroup_full_lifecycle_transitions.py", "service": "eks"} {"check_id": "eks.nodegroup-labels-empty-vs-absent-preserved", "deployments": [], "key": "eks/nodegroup-labels-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_nodegroup_labels_empty_vs_absent_preserved.py", "service": "eks"} {"check_id": "eks.nodegroup-labels-taints-round-trip", "deployments": [], "key": "eks/nodegroup-labels-taints-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribeUpdate", "eks:UpdateNodegroupConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_nodegroup_labels_taints_round_trip.py", "service": "eks"} {"check_id": "eks.nodegroup-release-version-matches-optimized-ami-release-format", "deployments": [], "key": "eks/nodegroup-release-version-matches-optimized-ami-release-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_nodegroup_release_version_matches_optimized_ami_release_format.py", "service": "eks"} {"check_id": "eks.nodegroup-scaling-config-invalid-range-rejected", "deployments": [], "key": "eks/nodegroup-scaling-config-invalid-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListNodegroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_nodegroup_scaling_config_invalid_range_rejected.py", "service": "eks"} {"check_id": "eks.nodegroup-scaling-numeric-precision-preserved", "deployments": [], "key": "eks/nodegroup-scaling-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_nodegroup_scaling_numeric_precision_preserved.py", "service": "eks"} {"check_id": "eks.nodegroup-taint-effect-is-translated-and-repels-an-untolerating-pod", "deployments": [], "key": "eks/nodegroup-taint-effect-is-translated-and-repels-an-untolerating-pod", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:ListAddons", "eks:ListFargateProfiles", "eks:ListNodegroups", "eks:UpdateNodegroupConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_nodegroup_taint_effect_is_translated_and_repels_an_untolerating_pod.py", "service": "eks"} {"check_id": "eks.nodegroup-timestamps-precision-preserved", "deployments": [], "key": "eks/nodegroup-timestamps-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribeUpdate", "eks:UpdateNodegroupConfig", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_nodegroup_timestamps_precision_preserved.py", "service": "eks"} {"check_id": "eks.nodegroup-update-config-lifecycle", "deployments": [], "key": "eks/nodegroup-update-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribeUpdate", "eks:UpdateNodegroupConfig", "eks:UpdateNodegroupVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_nodegroup_update_config_lifecycle.py", "service": "eks"} {"check_id": "eks.nodegroup-update-serialization", "deployments": [], "key": "eks/nodegroup-update-serialization", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "eks:DescribeUpdate", "eks:ListUpdates", "eks:UpdateNodegroupConfig", "eks:UpdateNodegroupVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_nodegroup_update_serialization.py", "service": "eks"} {"check_id": "eks.op-associate-access-policy-scope-validation", "deployments": [], "key": "eks/op-associate-access-policy-scope-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:AssociateAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_op_associate_access_policy_scope_validation.py", "service": "eks"} {"check_id": "eks.op-create-children-require-existing-cluster", "deployments": [], "key": "eks/op-create-children-require-existing-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:AssociateAccessPolicy", "eks:AssociateIdentityProviderConfig", "eks:CreateAccessEntry", "eks:CreateAddon", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_op_create_children_require_existing_cluster.py", "service": "eks"} {"check_id": "eks.op-cross-account-pass-role-denied", "deployments": [], "key": "eks/op-cross-account-pass-role-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:CreateCluster", "eks:CreateFargateProfile", "eks:CreateNodegroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/eks/check_op_cross_account_pass_role_denied.py", "service": "eks"} {"check_id": "eks.op-eks-anywhere-mutations-unknown-subscription", "deployments": [], "key": "eks/op-eks-anywhere-mutations-unknown-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeleteEksAnywhereSubscription", "eks:ListEksAnywhereSubscriptions", "eks:UpdateEksAnywhereSubscription"], "path": "behavioral/eks/check_op_eks_anywhere_mutations_unknown_subscription.py", "service": "eks"} {"check_id": "eks.op-mutations-require-existing-cluster", "deployments": [], "key": "eks/op-mutations-require-existing-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeleteAccessEntry", "eks:DeleteAddon", "eks:DeleteFargateProfile", "eks:DeleteNodegroup", "eks:DeregisterCluster", "eks:DescribeInsight", "eks:DescribeUpdate", "eks:DisassociateAccessPolicy", "eks:ListInsights", "eks:UpdateAccessEntry", "eks:UpdateAddon", "eks:UpdateNodegroupConfig", "eks:UpdateNodegroupVersion", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_op_mutations_require_existing_cluster.py", "service": "eks"} {"check_id": "eks.op-pod-identity-identifier-validation", "deployments": [], "key": "eks/op-pod-identity-identifier-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeletePodIdentityAssociation", "eks:DescribePodIdentityAssociation"], "path": "behavioral/eks/check_op_pod_identity_identifier_validation.py", "service": "eks"} {"check_id": "eks.op-register-cluster-validation", "deployments": [], "key": "eks/op-register-cluster-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:DescribeCluster", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_op_register_cluster_validation.py", "service": "eks"} {"check_id": "eks.op-update-cluster-config-validation", "deployments": [], "key": "eks/op-update-cluster-config-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:UpdateClusterConfig"], "path": "behavioral/eks/check_op_update_cluster_config_validation.py", "service": "eks"} {"check_id": "eks.op-update-cluster-version-validation", "deployments": [], "key": "eks/op-update-cluster-version-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeClusterVersions", "eks:UpdateClusterVersion", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole"], "path": "behavioral/eks/check_op_update_cluster_version_validation.py", "service": "eks"} {"check_id": "eks.op-validation-precedence-is-layered", "deployments": [], "key": "eks/op-validation-precedence-is-layered", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:CreateAddon", "eks:CreatePodIdentityAssociation", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations"], "path": "behavioral/eks/check_op_validation_precedence_is_layered.py", "service": "eks"} {"check_id": "eks.pod-identity-addon-dependency-teardown-order", "deployments": [], "key": "eks/pod-identity-addon-dependency-teardown-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CreateAddon", "eks:CreateCluster", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeAddon", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_pod_identity_addon_dependency_teardown_order.py", "service": "eks"} {"check_id": "eks.pod-identity-association-cross-account-role-rejected", "deployments": [], "key": "eks/pod-identity-association-cross-account-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_pod_identity_association_cross_account_role_rejected.py", "service": "eks"} {"check_id": "eks.pod-identity-association-duplicate-rejected", "deployments": [], "key": "eks/pod-identity-association-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_pod_identity_association_duplicate_rejected.py", "service": "eks"} {"check_id": "eks.pod-identity-association-immutable-fields-rejected", "deployments": [], "key": "eks/pod-identity-association-immutable-fields-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_pod_identity_association_immutable_fields_rejected.py", "service": "eks"} {"check_id": "eks.pod-identity-association-lifecycle", "deployments": [], "key": "eks/pod-identity-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_pod_identity_association_lifecycle.py", "service": "eks"} {"check_id": "eks.pod-identity-association-role-swap-updates-association", "deployments": [], "key": "eks/pod-identity-association-role-swap-updates-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateAddon", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteAddon", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeAddon", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_pod_identity_association_role_swap_updates_association.py", "service": "eks"} {"check_id": "eks.pod-identity-association-tags-empty-vs-absent-preserved", "deployments": [], "key": "eks/pod-identity-association-tags-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListTagsForResource", "eks:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_pod_identity_association_tags_empty_vs_absent_preserved.py", "service": "eks"} {"check_id": "eks.pod-identity-association-tags-unicode-round-trip", "deployments": [], "key": "eks/pod-identity-association-tags-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListTagsForResource", "eks:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_pod_identity_association_tags_unicode_round_trip.py", "service": "eks"} {"check_id": "eks.pod-identity-association-timestamp-precision-preserved", "deployments": [], "key": "eks/pod-identity-association-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_pod_identity_association_timestamp_precision_preserved.py", "service": "eks"} {"check_id": "eks.pod-identity-association-untrusted-role-rejected", "deployments": [], "key": "eks/pod-identity-association-untrusted-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_pod_identity_association_untrusted_role_rejected.py", "service": "eks"} {"check_id": "eks.pod-identity-association-update-changes-role-binding", "deployments": [], "key": "eks/pod-identity-association-update-changes-role-binding", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_pod_identity_association_update_changes_role_binding.py", "service": "eks"} {"check_id": "eks.pod-identity-association-update-lifecycle", "deployments": [], "key": "eks/pod-identity-association-update-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_pod_identity_association_update_lifecycle.py", "service": "eks"} {"check_id": "eks.pod-identity-duplicate-association-rejected", "deployments": [], "key": "eks/pod-identity-duplicate-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/eks/check_pod_identity_duplicate_association_rejected.py", "service": "eks"} {"check_id": "eks.pod-identity-full-lifecycle", "deployments": [], "key": "eks/pod-identity-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/eks/check_pod_identity_full_lifecycle.py", "service": "eks"} {"check_id": "eks.pod-identity-tags-unicode-round-trip", "deployments": [], "key": "eks/pod-identity-tags-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListTagsForResource", "eks:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/eks/check_pod_identity_tags_unicode_round_trip.py", "service": "eks"} {"check_id": "eks.pod-identity-update-not-found", "deployments": [], "key": "eks/pod-identity-update-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/eks/check_pod_identity_update_not_found.py", "service": "eks"} {"check_id": "eks.register-cluster-access-denied", "deployments": [], "key": "eks/register-cluster-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:DescribeCluster", "eks:ListClusters", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_register_cluster_access_denied.py", "service": "eks"} {"check_id": "eks.register-cluster-client-request-token-is-idempotent", "deployments": [], "key": "eks/register-cluster-client-request-token-is-idempotent", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:DescribeCluster", "eks:ListClusters", "eks:RegisterCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_register_cluster_client_request_token_is_idempotent.py", "service": "eks"} {"check_id": "eks.server-side-access-entry-policy-enforcement", "deployments": [], "key": "eks/server-side-access-entry-policy-enforcement", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:AssociateAccessPolicy", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DisassociateAccessPolicy", "eks:ListAccessPolicies", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_server_side_access_entry_policy_enforcement.py", "service": "eks"} {"check_id": "eks.server-side-certificate-authority-key-material-managed", "deployments": [], "key": "eks/server-side-certificate-authority-key-material-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:ActivateCertificateAuthority", "eks:CreateCertificateAuthority", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCertificateAuthority", "eks:DescribeCluster", "eks:DescribeUpdate", "eks:ListCertificateAuthorities", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_server_side_certificate_authority_key_material_managed.py", "service": "eks"} {"check_id": "eks.server-side-pod-identity-role-scoping-enforced", "deployments": [], "key": "eks/server-side-pod-identity-role-scoping-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:ListPodIdentityAssociations", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_server_side_pod_identity_role_scoping_enforced.py", "service": "eks"} {"check_id": "eks.service-linked-role-enforced-for-cluster-creation", "deployments": [], "key": "eks/service-linked-role-enforced-for-cluster-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/eks/check_service_linked_role_enforced_for_cluster_creation.py", "service": "eks"} {"check_id": "eks.start-insights-refresh-already-in-progress-blocked", "deployments": [], "key": "eks/start-insights-refresh-already-in-progress-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribeInsightsRefresh", "eks:StartInsightsRefresh", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_start_insights_refresh_already_in_progress_blocked.py", "service": "eks"} {"check_id": "eks.tag-resource-contract-limits-rejected", "deployments": [], "key": "eks/tag-resource-contract-limits-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:ListTagsForResource", "eks:RegisterCluster", "eks:TagResource", "eks:UntagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_tag_resource_contract_limits_rejected.py", "service": "eks"} {"check_id": "eks.tag-resource-malformed-arn-rejected", "deployments": [], "key": "eks/tag-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:ListTagsForResource", "eks:RegisterCluster", "eks:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_tag_resource_malformed_arn_rejected.py", "service": "eks"} {"check_id": "eks.untag-resource-not-found", "deployments": [], "key": "eks/untag-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["eks:DeregisterCluster", "eks:ListTagsForResource", "eks:RegisterCluster", "eks:UntagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks/check_untag_resource_not_found.py", "service": "eks"} {"check_id": "eks.update-pod-identity-association-invalid-namespace-rejected", "deployments": [], "key": "eks/update-pod-identity-association-invalid-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DeletePodIdentityAssociation", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_update_pod_identity_association_invalid_namespace_rejected.py", "service": "eks"} {"check_id": "eks.update-pod-identity-association-malformed-target-rejected", "deployments": [], "key": "eks/update-pod-identity-association-malformed-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "eks:CreateCluster", "eks:CreatePodIdentityAssociation", "eks:DeleteCluster", "eks:DescribeCluster", "eks:DescribePodIdentityAssociation", "eks:UpdatePodIdentityAssociation", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/eks/check_update_pod_identity_association_malformed_target_rejected.py", "service": "eks"} {"check_id": "eks__eks-auth.pod-identity-absent-cluster-rejected-on-token-not-existence", "deployments": [], "key": "eks__eks-auth/pod-identity-absent-cluster-rejected-on-token-not-existence", "labels": ["axis:rejection", "plane:control"], "operations": ["eks-auth:AssumeRoleForPodIdentity", "eks:DescribeCluster", "eks:ListClusters", "eks:ListPodIdentityAssociations"], "path": "behavioral/eks__eks-auth/check_pod_identity_absent_cluster_rejected_on_token_not_existence.py", "service": "eks__eks-auth"} {"check_id": "eks__iam__sts.eks-kubernetes-api-namespace-via-sts-bearer-token", "deployments": [], "key": "eks__iam__sts/eks-kubernetes-api-namespace-via-sts-bearer-token", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeAccessEntry", "eks:DescribeCluster", "eks:ListAccessEntries", "eks:ListAssociatedAccessPolicies", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/eks__iam__sts/check_eks_kubernetes_api_namespace_via_sts_bearer_token.py", "service": "eks__iam__sts"} {"check_id": "eks__logs.audit-log-record-names-the-access-entry-username-for-allow-and-forbid", "deployments": [], "key": "eks__logs/audit-log-record-names-the-access-entry-username-for-allow-and-forbid", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeSubnets", "eks:CreateAccessEntry", "eks:CreateCluster", "eks:DeleteAccessEntry", "eks:DeleteCluster", "eks:DescribeCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/eks__logs/check_audit_log_record_names_the_access_entry_username_for_allow_and_forbid.py", "service": "eks__logs"} {"check_id": "elasticache.auth-token-dual-validity-window", "deployments": [], "key": "elasticache/auth-token-dual-validity-window", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_auth_token_dual_validity_window.py", "service": "elasticache"} {"check_id": "elasticache.auth-token-invalid-characters-rejected", "deployments": [], "key": "elasticache/auth-token-invalid-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups"], "path": "behavioral/elasticache/check_auth_token_invalid_characters_rejected.py", "service": "elasticache"} {"check_id": "elasticache.auth-token-special-characters-preserved", "deployments": [], "key": "elasticache/auth-token-special-characters-preserved", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_auth_token_special_characters_preserved.py", "service": "elasticache"} {"check_id": "elasticache.automatic-failover-promotes-replica", "deployments": [], "key": "elasticache/automatic-failover-promotes-replica", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:TestFailover"], "path": "behavioral/elasticache/check_automatic_failover_promotes_replica.py", "service": "elasticache"} {"check_id": "elasticache.batch-update-action-unknown-service-update", "deployments": [], "key": "elasticache/batch-update-action-unknown-service-update", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:BatchApplyUpdateAction", "elasticache:BatchStopUpdateAction", "elasticache:DescribeServiceUpdates"], "path": "behavioral/elasticache/check_batch_update_action_unknown_service_update.py", "service": "elasticache"} {"check_id": "elasticache.cache-cluster-duplicate-id", "deployments": [], "key": "elasticache/cache-cluster-duplicate-id", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters"], "path": "behavioral/elasticache/check_cache_cluster_duplicate_id.py", "service": "elasticache"} {"check_id": "elasticache.cache-cluster-empty-vs-absent-description-preserved", "deployments": [], "key": "elasticache/cache-cluster-empty-vs-absent-description-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameterGroups"], "path": "behavioral/elasticache/check_cache_cluster_empty_vs_absent_description_preserved.py", "service": "elasticache"} {"check_id": "elasticache.cache-cluster-empty-vs-absent-tag-value-preserved", "deployments": [], "key": "elasticache/cache-cluster-empty-vs-absent-tag-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:AddTagsToResource", "elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:ListTagsForResource", "elasticache:RemoveTagsFromResource"], "path": "behavioral/elasticache/check_cache_cluster_empty_vs_absent_tag_value_preserved.py", "service": "elasticache"} {"check_id": "elasticache.cache-cluster-lifecycle", "deployments": [], "key": "elasticache/cache-cluster-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_cache_cluster_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.cache-cluster-not-found-semantics", "deployments": [], "key": "elasticache/cache-cluster-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ListAllowedNodeTypeModifications", "elasticache:ModifyCacheCluster", "elasticache:RebootCacheCluster"], "path": "behavioral/elasticache/check_cache_cluster_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.cache-cluster-reboot-rejected-during-pending-modification", "deployments": [], "key": "elasticache/cache-cluster-reboot-rejected-during-pending-modification", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster", "elasticache:RebootCacheCluster"], "path": "behavioral/elasticache/check_cache_cluster_reboot_rejected_during_pending_modification.py", "service": "elasticache"} {"check_id": "elasticache.cache-cluster-resp-protocol-round-trip-over-socket", "deployments": [], "key": "elasticache/cache-cluster-resp-protocol-round-trip-over-socket", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_cache_cluster_resp_protocol_round_trip_over_socket.py", "service": "elasticache"} {"check_id": "elasticache.cache-parameter-group-lifecycle", "deployments": [], "key": "elasticache/cache-parameter-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameterGroups"], "path": "behavioral/elasticache/check_cache_parameter_group_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.cache-parameter-invalid-value-rejected", "deployments": [], "key": "elasticache/cache-parameter-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameters", "elasticache:ModifyCacheParameterGroup"], "path": "behavioral/elasticache/check_cache_parameter_invalid_value_rejected.py", "service": "elasticache"} {"check_id": "elasticache.cache-parameter-numeric-precision-round-trip", "deployments": [], "key": "elasticache/cache-parameter-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameters", "elasticache:ModifyCacheParameterGroup"], "path": "behavioral/elasticache/check_cache_parameter_numeric_precision_round_trip.py", "service": "elasticache"} {"check_id": "elasticache.cache-parameter-numeric-value-precision-preserved", "deployments": [], "key": "elasticache/cache-parameter-numeric-value-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameters", "elasticache:ModifyCacheParameterGroup"], "path": "behavioral/elasticache/check_cache_parameter_numeric_value_precision_preserved.py", "service": "elasticache"} {"check_id": "elasticache.cache-security-group-crud-lifecycle", "deployments": [], "key": "elasticache/cache-security-group-crud-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSecurityGroup", "elasticache:DeleteCacheSecurityGroup", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheSecurityGroups"], "path": "behavioral/elasticache/check_cache_security_group_crud_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.cache-security-group-ingress-not-found", "deployments": [], "key": "elasticache/cache-security-group-ingress-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:AuthorizeCacheSecurityGroupIngress", "elasticache:DeleteCacheSecurityGroup", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheSecurityGroups", "elasticache:RevokeCacheSecurityGroupIngress"], "path": "behavioral/elasticache/check_cache_security_group_ingress_not_found.py", "service": "elasticache"} {"check_id": "elasticache.cache-security-group-unsupported", "deployments": [], "key": "elasticache/cache-security-group-unsupported", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSecurityGroup", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheSecurityGroups"], "path": "behavioral/elasticache/check_cache_security_group_unsupported.py", "service": "elasticache"} {"check_id": "elasticache.cache-subnet-group-dependent-resource-lifecycle", "deployments": [], "key": "elasticache/cache-subnet-group-dependent-resource-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheSubnetGroups", "elasticache:DescribeReplicationGroups"], "path": "behavioral/elasticache/check_cache_subnet_group_dependent_resource_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.cache-subnet-group-duplicate-name-rejected", "deployments": [], "key": "elasticache/cache-subnet-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheSubnetGroups"], "path": "behavioral/elasticache/check_cache_subnet_group_duplicate_name_rejected.py", "service": "elasticache"} {"check_id": "elasticache.cache-subnet-group-in-use-forbidden", "deployments": [], "key": "elasticache/cache-subnet-group-in-use-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup"], "path": "behavioral/elasticache/check_cache_subnet_group_in_use_forbidden.py", "service": "elasticache"} {"check_id": "elasticache.cache-subnet-group-invalid-subnet", "deployments": [], "key": "elasticache/cache-subnet-group-invalid-subnet", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheSubnetGroups", "elasticache:ModifyCacheSubnetGroup"], "path": "behavioral/elasticache/check_cache_subnet_group_invalid_subnet.py", "service": "elasticache"} {"check_id": "elasticache.cache-subnet-group-lifecycle", "deployments": [], "key": "elasticache/cache-subnet-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheSubnetGroups", "elasticache:ModifyCacheSubnetGroup"], "path": "behavioral/elasticache/check_cache_subnet_group_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.concurrent-create-user-same-id", "deployments": [], "key": "elasticache/concurrent-create-user-same-id", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser"], "path": "behavioral/elasticache/check_concurrent_create_user_same_id.py", "service": "elasticache"} {"check_id": "elasticache.concurrent-delete-cache-cluster-race", "deployments": [], "key": "elasticache/concurrent-delete-cache-cluster-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters"], "path": "behavioral/elasticache/check_concurrent_delete_cache_cluster_race.py", "service": "elasticache"} {"check_id": "elasticache.concurrent-duplicate-parameter-group", "deployments": [], "key": "elasticache/concurrent-duplicate-parameter-group", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup"], "path": "behavioral/elasticache/check_concurrent_duplicate_parameter_group.py", "service": "elasticache"} {"check_id": "elasticache.concurrent-modify-replication-group-state-conflict", "deployments": [], "key": "elasticache/concurrent-modify-replication-group-state-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroup"], "path": "behavioral/elasticache/check_concurrent_modify_replication_group_state_conflict.py", "service": "elasticache"} {"check_id": "elasticache.concurrent-modify-user-group-membership-race", "deployments": [], "key": "elasticache/concurrent-modify-user-group-membership-race", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup", "elasticache:DescribeUserGroups", "elasticache:ModifyUserGroup"], "path": "behavioral/elasticache/check_concurrent_modify_user_group_membership_race.py", "service": "elasticache"} {"check_id": "elasticache.concurrent-replica-count-increase-decrease-contention", "deployments": [], "key": "elasticache/concurrent-replica-count-increase-decrease-contention", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DecreaseReplicaCount", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:IncreaseReplicaCount"], "path": "behavioral/elasticache/check_concurrent_replica_count_increase_decrease_contention.py", "service": "elasticache"} {"check_id": "elasticache.concurrent-shard-config-modification-conflict", "deployments": [], "key": "elasticache/concurrent-shard-config-modification-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration"], "path": "behavioral/elasticache/check_concurrent_shard_config_modification_conflict.py", "service": "elasticache"} {"check_id": "elasticache.create-cache-cluster-invalid-arguments", "deployments": [], "key": "elasticache/create-cache-cluster-invalid-arguments", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters"], "path": "behavioral/elasticache/check_create_cache_cluster_invalid_arguments.py", "service": "elasticache"} {"check_id": "elasticache.create-cache-cluster-missing-required-parameter-rejected", "deployments": [], "key": "elasticache/create-cache-cluster-missing-required-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters"], "path": "behavioral/elasticache/check_create_cache_cluster_missing_required_parameter_rejected.py", "service": "elasticache"} {"check_id": "elasticache.create-cache-cluster-unsupported-engine-version-rejected", "deployments": [], "key": "elasticache/create-cache-cluster-unsupported-engine-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheEngineVersions"], "path": "behavioral/elasticache/check_create_cache_cluster_unsupported_engine_version_rejected.py", "service": "elasticache"} {"check_id": "elasticache.create-global-replication-group-unknown-primary", "deployments": [], "key": "elasticache/create-global-replication-group-unknown-primary", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateGlobalReplicationGroup", "elasticache:CreateReplicationGroup", "elasticache:DescribeGlobalReplicationGroups", "elasticache:DescribeReplicationGroups"], "path": "behavioral/elasticache/check_create_global_replication_group_unknown_primary.py", "service": "elasticache"} {"check_id": "elasticache.create-replication-group-authtoken-without-transit-encryption-rejected", "deployments": [], "key": "elasticache/create-replication-group-authtoken-without-transit-encryption-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups"], "path": "behavioral/elasticache/check_create_replication_group_authtoken_without_transit_encryption_rejected.py", "service": "elasticache"} {"check_id": "elasticache.create-replication-group-invalid-shard-config-rejected", "deployments": [], "key": "elasticache/create-replication-group-invalid-shard-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups"], "path": "behavioral/elasticache/check_create_replication_group_invalid_shard_config_rejected.py", "service": "elasticache"} {"check_id": "elasticache.create-serverless-cache-conflicting-name-rejected", "deployments": [], "key": "elasticache/create-serverless-cache-conflicting-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches"], "path": "behavioral/elasticache/check_create_serverless_cache_conflicting_name_rejected.py", "service": "elasticache"} {"check_id": "elasticache.create-serverless-cache-usage-limit-out-of-range-rejected", "deployments": [], "key": "elasticache/create-serverless-cache-usage-limit-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches"], "path": "behavioral/elasticache/check_create_serverless_cache_usage_limit_out_of_range_rejected.py", "service": "elasticache"} {"check_id": "elasticache.create-snapshot-unsupported-node-type-rejected", "deployments": [], "key": "elasticache/create-snapshot-unsupported-node-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeCacheClusters", "elasticache:DescribeSnapshots"], "path": "behavioral/elasticache/check_create_snapshot_unsupported_node_type_rejected.py", "service": "elasticache"} {"check_id": "elasticache.create-user-weak-password-rejected", "deployments": [], "key": "elasticache/create-user-weak-password-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser", "elasticache:DescribeUsers"], "path": "behavioral/elasticache/check_create_user_weak_password_rejected.py", "service": "elasticache"} {"check_id": "elasticache.decrease-replica-count-noop-rejected", "deployments": [], "key": "elasticache/decrease-replica-count-noop-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DecreaseReplicaCount", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:IncreaseReplicaCount"], "path": "behavioral/elasticache/check_decrease_replica_count_noop_rejected.py", "service": "elasticache"} {"check_id": "elasticache.default-user-exists-and-is-immutable", "deployments": [], "key": "elasticache/default-user-exists-and-is-immutable", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser", "elasticache:DescribeUsers"], "path": "behavioral/elasticache/check_default_user_exists_and_is_immutable.py", "service": "elasticache"} {"check_id": "elasticache.delete-default-parameter-group-forbidden", "deployments": [], "key": "elasticache/delete-default-parameter-group-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameterGroups", "elasticache:DescribeCacheParameters", "elasticache:ModifyCacheParameterGroup"], "path": "behavioral/elasticache/check_delete_default_parameter_group_forbidden.py", "service": "elasticache"} {"check_id": "elasticache.delete-primary-cluster-automatic-failover-rejected", "deployments": [], "key": "elasticache/delete-primary-cluster-automatic-failover-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups"], "path": "behavioral/elasticache/check_delete_primary_cluster_automatic_failover_rejected.py", "service": "elasticache"} {"check_id": "elasticache.delete-replication-group-snapshotting-state-blocked", "deployments": [], "key": "elasticache/delete-replication-group-snapshotting-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeReplicationGroups", "elasticache:DescribeSnapshots"], "path": "behavioral/elasticache/check_delete_replication_group_snapshotting_state_blocked.py", "service": "elasticache"} {"check_id": "elasticache.delete-replication-group-wrong-state-rejected", "deployments": [], "key": "elasticache/delete-replication-group-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups"], "path": "behavioral/elasticache/check_delete_replication_group_wrong_state_rejected.py", "service": "elasticache"} {"check_id": "elasticache.deploy-cache-cluster-cfn-behaves", "deployments": [], "key": "elasticache/deploy-cache-cluster-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_deploy_cache_cluster_cfn_behaves.py", "service": "elasticache"} {"check_id": "elasticache.deploy-cachecluster-cfn-behavioral", "deployments": [], "key": "elasticache/deploy-cachecluster-cfn-behavioral", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_deploy_cachecluster_cfn_behavioral.py", "service": "elasticache"} {"check_id": "elasticache.deploy-replication-group-cfn-auth-enforced", "deployments": [], "key": "elasticache/deploy-replication-group-cfn-auth-enforced", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_deploy_replication_group_cfn_auth_enforced.py", "service": "elasticache"} {"check_id": "elasticache.deploy-replication-group-cfn-behaves", "deployments": [], "key": "elasticache/deploy-replication-group-cfn-behaves", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:DescribeCacheClusters", "elasticache:DescribeReplicationGroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_deploy_replication_group_cfn_behaves.py", "service": "elasticache"} {"check_id": "elasticache.deploy-replicationgroup-cfn-auth-enforced", "deployments": [], "key": "elasticache/deploy-replicationgroup-cfn-auth-enforced", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_deploy_replicationgroup_cfn_auth_enforced.py", "service": "elasticache"} {"check_id": "elasticache.deploy-serverless-cache-cfn-behaves", "deployments": [], "key": "elasticache/deploy-serverless-cache-cfn-behaves", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:DescribeServerlessCaches", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_deploy_serverless_cache_cfn_behaves.py", "service": "elasticache"} {"check_id": "elasticache.deploy-serverless-cache-cfn-invalid-engine-version-rejected", "deployments": [], "key": "elasticache/deploy-serverless-cache-cfn-invalid-engine-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticache:CreateServerlessCache", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches"], "path": "behavioral/elasticache/check_deploy_serverless_cache_cfn_invalid_engine_version_rejected.py", "service": "elasticache"} {"check_id": "elasticache.describe-cache-engine-versions", "deployments": [], "key": "elasticache/describe-cache-engine-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:DescribeCacheEngineVersions"], "path": "behavioral/elasticache/check_describe_cache_engine_versions.py", "service": "elasticache"} {"check_id": "elasticache.describe-events-window", "deployments": [], "key": "elasticache/describe-events-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:DescribeEvents"], "path": "behavioral/elasticache/check_describe_events_window.py", "service": "elasticache"} {"check_id": "elasticache.describe-reserved-cache-nodes-and-offerings", "deployments": [], "key": "elasticache/describe-reserved-cache-nodes-and-offerings", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:DescribeReservedCacheNodes", "elasticache:DescribeReservedCacheNodesOfferings"], "path": "behavioral/elasticache/check_describe_reserved_cache_nodes_and_offerings.py", "service": "elasticache"} {"check_id": "elasticache.describe-service-updates-and-actions", "deployments": [], "key": "elasticache/describe-service-updates-and-actions", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:DescribeServiceUpdates", "elasticache:DescribeUpdateActions"], "path": "behavioral/elasticache/check_describe_service_updates_and_actions.py", "service": "elasticache"} {"check_id": "elasticache.e2e-cluster-scale-failover-data-consequence", "deployments": [], "key": "elasticache/e2e-cluster-scale-failover-data-consequence", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:IncreaseReplicaCount", "elasticache:TestFailover", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_e2e_cluster_scale_failover_data_consequence.py", "service": "elasticache"} {"check_id": "elasticache.e2e-cluster-snapshot-restore-data-consistency", "deployments": [], "key": "elasticache/e2e-cluster-snapshot-restore-data-consistency", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeCacheClusters", "elasticache:DescribeSnapshots", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_e2e_cluster_snapshot_restore_data_consistency.py", "service": "elasticache"} {"check_id": "elasticache.e2e-cluster-snapshot-restore-data-persists", "deployments": [], "key": "elasticache/e2e-cluster-snapshot-restore-data-persists", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeCacheClusters", "elasticache:DescribeSnapshots", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_e2e_cluster_snapshot_restore_data_persists.py", "service": "elasticache"} {"check_id": "elasticache.e2e-serverless-snapshot-restore-flow", "deployments": [], "key": "elasticache/e2e-serverless-snapshot-restore-flow", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateServerlessCache", "elasticache:CreateServerlessCacheSnapshot", "elasticache:DeleteServerlessCache", "elasticache:DeleteServerlessCacheSnapshot", "elasticache:DescribeServerlessCacheSnapshots", "elasticache:DescribeServerlessCaches", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_e2e_serverless_snapshot_restore_flow.py", "service": "elasticache"} {"check_id": "elasticache.e2e-snapshot-unsupported-memcached-engine-rejected", "deployments": [], "key": "elasticache/e2e-snapshot-unsupported-memcached-engine-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeCacheClusters", "elasticache:DescribeSnapshots"], "path": "behavioral/elasticache/check_e2e_snapshot_unsupported_memcached_engine_rejected.py", "service": "elasticache"} {"check_id": "elasticache.e2e-user-group-access-revocation-flow", "deployments": [], "key": "elasticache/e2e-user-group-access-revocation-flow", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup", "elasticache:DescribeReplicationGroups", "elasticache:DescribeUserGroups", "elasticache:ModifyReplicationGroup", "elasticache:ModifyUserGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_e2e_user_group_access_revocation_flow.py", "service": "elasticache"} {"check_id": "elasticache.e2e-user-group-auth-enforcement-flow", "deployments": [], "key": "elasticache/e2e-user-group-auth-enforcement-flow", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_e2e_user_group_auth_enforcement_flow.py", "service": "elasticache"} {"check_id": "elasticache.e2e-user-group-replication-group-auth-flow", "deployments": [], "key": "elasticache/e2e-user-group-replication-group-auth-flow", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup", "elasticache:DescribeReplicationGroups", "elasticache:DescribeUserGroups", "elasticache:DescribeUsers", "elasticache:ModifyUser", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_e2e_user_group_replication_group_auth_flow.py", "service": "elasticache"} {"check_id": "elasticache.elasticache-auth-token-required-cluster-rejects-unauthenticated-command", "deployments": [], "key": "elasticache/elasticache-auth-token-required-cluster-rejects-unauthenticated-command", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_elasticache_auth_token_required_cluster_rejects_unauthenticated_command.py", "service": "elasticache"} {"check_id": "elasticache.elasticache-lua-eval-atomicity-and-script-cache", "deployments": [], "key": "elasticache/elasticache-lua-eval-atomicity-and-script-cache", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeVpcAttribute", "ec2:ModifyVpcAttribute", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheSubnetGroups", "elasticache:ModifyCacheSubnetGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_elasticache_lua_eval_atomicity_and_script_cache.py", "service": "elasticache"} {"check_id": "elasticache.elasticache-redis-key-expiry-removes-value-and-reports-ttl", "deployments": [], "key": "elasticache/elasticache-redis-key-expiry-removes-value-and-reports-ttl", "labels": ["axis:happy-path", "dp:native", "plane:data", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_elasticache_redis_key_expiry_removes_value_and_reports_ttl.py", "service": "elasticache"} {"check_id": "elasticache.elasticache-redis-set-get", "deployments": [], "key": "elasticache/elasticache-redis-set-get", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_elasticache_redis_set_get.py", "service": "elasticache"} {"check_id": "elasticache.elasticache-revoked-security-group-ingress-blocked-from-cache-data-plane", "deployments": [], "key": "elasticache/elasticache-revoked-security-group-ingress-blocked-from-cache-data-plane", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcAttribute", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupIngress", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheSubnetGroups", "elasticache:ModifyCacheSubnetGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_elasticache_revoked_security_group_ingress_blocked_from_cache_data_plane.py", "service": "elasticache"} {"check_id": "elasticache.elasticache-streams-xautoclaim-min-idle-threshold-selects-pending-entries", "deployments": [], "key": "elasticache/elasticache-streams-xautoclaim-min-idle-threshold-selects-pending-entries", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeVpcAttribute", "ec2:ModifyVpcAttribute", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheSubnetGroups", "elasticache:ModifyCacheSubnetGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_elasticache_streams_xautoclaim_min_idle_threshold_selects_pending_entries.py", "service": "elasticache"} {"check_id": "elasticache.engine-default-parameters-change-type-and-family-divergence", "deployments": [], "key": "elasticache/engine-default-parameters-change-type-and-family-divergence", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:DescribeCacheEngineVersions", "elasticache:DescribeEngineDefaultParameters"], "path": "behavioral/elasticache/check_engine_default_parameters_change_type_and_family_divergence.py", "service": "elasticache"} {"check_id": "elasticache.global-replication-group-lifecycle-full", "deployments": [], "key": "elasticache/global-replication-group-lifecycle-full", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateGlobalReplicationGroup", "elasticache:CreateReplicationGroup", "elasticache:DescribeCacheEngineVersions", "elasticache:DescribeGlobalReplicationGroups", "elasticache:DescribeReplicationGroups", "elasticache:FailoverGlobalReplicationGroup", "elasticache:IncreaseNodeGroupsInGlobalReplicationGroup"], "path": "behavioral/elasticache/check_global_replication_group_lifecycle_full.py", "service": "elasticache"} {"check_id": "elasticache.global-replication-group-lifecycle-full-transition", "deployments": [], "key": "elasticache/global-replication-group-lifecycle-full-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateGlobalReplicationGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteGlobalReplicationGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeGlobalReplicationGroups", "elasticache:DescribeReplicationGroups", "elasticache:DisassociateGlobalReplicationGroup"], "path": "behavioral/elasticache/check_global_replication_group_lifecycle_full_transition.py", "service": "elasticache"} {"check_id": "elasticache.global-replication-group-not-found-semantics", "deployments": [], "key": "elasticache/global-replication-group-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:DeleteGlobalReplicationGroup", "elasticache:DescribeGlobalReplicationGroups", "elasticache:DisassociateGlobalReplicationGroup", "elasticache:ModifyGlobalReplicationGroup"], "path": "behavioral/elasticache/check_global_replication_group_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.global-replication-group-secondary-lifecycle", "deployments": [], "key": "elasticache/global-replication-group-secondary-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateGlobalReplicationGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteGlobalReplicationGroup", "elasticache:DescribeGlobalReplicationGroups", "elasticache:DescribeReplicationGroups", "elasticache:DisassociateGlobalReplicationGroup"], "path": "behavioral/elasticache/check_global_replication_group_secondary_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.global-replication-group-topology-lifecycle", "deployments": [], "key": "elasticache/global-replication-group-topology-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateGlobalReplicationGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteGlobalReplicationGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeGlobalReplicationGroups", "elasticache:DescribeReplicationGroups", "elasticache:DisassociateGlobalReplicationGroup", "elasticache:ModifyGlobalReplicationGroup"], "path": "behavioral/elasticache/check_global_replication_group_topology_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.global-replication-group-topology-not-found", "deployments": [], "key": "elasticache/global-replication-group-topology-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:DecreaseNodeGroupsInGlobalReplicationGroup", "elasticache:FailoverGlobalReplicationGroup", "elasticache:IncreaseNodeGroupsInGlobalReplicationGroup", "elasticache:RebalanceSlotsInGlobalReplicationGroup"], "path": "behavioral/elasticache/check_global_replication_group_topology_not_found.py", "service": "elasticache"} {"check_id": "elasticache.increase-node-groups-below-current-rejected", "deployments": [], "key": "elasticache/increase-node-groups-below-current-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateGlobalReplicationGroup", "elasticache:CreateReplicationGroup", "elasticache:DescribeGlobalReplicationGroups", "elasticache:DescribeReplicationGroups", "elasticache:IncreaseNodeGroupsInGlobalReplicationGroup"], "path": "behavioral/elasticache/check_increase_node_groups_below_current_rejected.py", "service": "elasticache"} {"check_id": "elasticache.increase-replica-count-exceeds-limit-rejected", "deployments": [], "key": "elasticache/increase-replica-count-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:IncreaseReplicaCount"], "path": "behavioral/elasticache/check_increase_replica_count_exceeds_limit_rejected.py", "service": "elasticache"} {"check_id": "elasticache.maintenance-window-scheduling-enforced", "deployments": [], "key": "elasticache/maintenance-window-scheduling-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_maintenance_window_scheduling_enforced.py", "service": "elasticache"} {"check_id": "elasticache.migration-complete-without-active-migration-rejected", "deployments": [], "key": "elasticache/migration-complete-without-active-migration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CompleteMigration", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:StartMigration"], "path": "behavioral/elasticache/check_migration_complete_without_active_migration_rejected.py", "service": "elasticache"} {"check_id": "elasticache.migration-state-transitions", "deployments": [], "key": "elasticache/migration-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CompleteMigration", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:StartMigration", "elasticache:TestMigration"], "path": "behavioral/elasticache/check_migration_state_transitions.py", "service": "elasticache"} {"check_id": "elasticache.modify-and-reset-cache-parameter-group", "deployments": [], "key": "elasticache/modify-and-reset-cache-parameter-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameters", "elasticache:DescribeEngineDefaultParameters", "elasticache:ModifyCacheParameterGroup", "elasticache:ResetCacheParameterGroup"], "path": "behavioral/elasticache/check_modify_and_reset_cache_parameter_group.py", "service": "elasticache"} {"check_id": "elasticache.modify-cache-cluster-apply-immediately-false-pends", "deployments": [], "key": "elasticache/modify-cache-cluster-apply-immediately-false-pends", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_modify_cache_cluster_apply_immediately_false_pends.py", "service": "elasticache"} {"check_id": "elasticache.modify-cache-cluster-invalid-security-group-rejected", "deployments": [], "key": "elasticache/modify-cache-cluster-invalid-security-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_modify_cache_cluster_invalid_security_group_rejected.py", "service": "elasticache"} {"check_id": "elasticache.modify-cache-cluster-pending-vs-immediate-application", "deployments": [], "key": "elasticache/modify-cache-cluster-pending-vs-immediate-application", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheParameterGroup", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheParameterGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster", "elasticache:ModifyCacheParameterGroup", "elasticache:RebootCacheCluster"], "path": "behavioral/elasticache/check_modify_cache_cluster_pending_vs_immediate_application.py", "service": "elasticache"} {"check_id": "elasticache.modify-cache-parameter-invalid-value-rejected", "deployments": [], "key": "elasticache/modify-cache-parameter-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameters", "elasticache:ModifyCacheParameterGroup"], "path": "behavioral/elasticache/check_modify_cache_parameter_invalid_value_rejected.py", "service": "elasticache"} {"check_id": "elasticache.modify-parameter-group-batch-atomicity-on-unknown-parameter", "deployments": [], "key": "elasticache/modify-parameter-group-batch-atomicity-on-unknown-parameter", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameters", "elasticache:DescribeEngineDefaultParameters", "elasticache:ModifyCacheParameterGroup", "elasticache:ResetCacheParameterGroup"], "path": "behavioral/elasticache/check_modify_parameter_group_batch_atomicity_on_unknown_parameter.py", "service": "elasticache"} {"check_id": "elasticache.modify-replication-group-invalid-node-type-rejected", "deployments": [], "key": "elasticache/modify-replication-group-invalid-node-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroup"], "path": "behavioral/elasticache/check_modify_replication_group_invalid_node_type_rejected.py", "service": "elasticache"} {"check_id": "elasticache.modify-replication-group-shard-configuration-invalid-rejected", "deployments": [], "key": "elasticache/modify-replication-group-shard-configuration-invalid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration"], "path": "behavioral/elasticache/check_modify_replication_group_shard_configuration_invalid_rejected.py", "service": "elasticache"} {"check_id": "elasticache.modify-shard-configuration-disabled-cluster-mode-rejected", "deployments": [], "key": "elasticache/modify-shard-configuration-disabled-cluster-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration"], "path": "behavioral/elasticache/check_modify_shard_configuration_disabled_cluster_mode_rejected.py", "service": "elasticache"} {"check_id": "elasticache.modify-user-conflicting-auth-params-rejected", "deployments": [], "key": "elasticache/modify-user-conflicting-auth-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser", "elasticache:DescribeUsers", "elasticache:ModifyUser"], "path": "behavioral/elasticache/check_modify_user_conflicting_auth_params_rejected.py", "service": "elasticache"} {"check_id": "elasticache.modify-user-invalid-access-string-rejected", "deployments": [], "key": "elasticache/modify-user-invalid-access-string-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser", "elasticache:DescribeUsers", "elasticache:ModifyUser"], "path": "behavioral/elasticache/check_modify_user_invalid_access_string_rejected.py", "service": "elasticache"} {"check_id": "elasticache.multi-az-node-placement-enforced", "deployments": [], "key": "elasticache/multi-az-node-placement-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters"], "path": "behavioral/elasticache/check_multi_az_node_placement_enforced.py", "service": "elasticache"} {"check_id": "elasticache.online-migration-lifecycle", "deployments": [], "key": "elasticache/online-migration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CompleteMigration", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:StartMigration", "elasticache:TestMigration"], "path": "behavioral/elasticache/check_online_migration_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.online-migration-not-found-semantics", "deployments": [], "key": "elasticache/online-migration-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CompleteMigration", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:StartMigration", "elasticache:TestMigration"], "path": "behavioral/elasticache/check_online_migration_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.parameter-group-not-found-semantics", "deployments": [], "key": "elasticache/parameter-group-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheParameterGroup", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheParameters", "elasticache:ModifyCacheParameterGroup", "elasticache:ResetCacheParameterGroup"], "path": "behavioral/elasticache/check_parameter_group_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.parameter-value-outside-allowed-values-rejected", "deployments": [], "key": "elasticache/parameter-value-outside-allowed-values-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameters", "elasticache:DescribeEngineDefaultParameters", "elasticache:ModifyCacheParameterGroup"], "path": "behavioral/elasticache/check_parameter_value_outside_allowed_values_rejected.py", "service": "elasticache"} {"check_id": "elasticache.preferred-maintenance-window-invalid-format-rejected", "deployments": [], "key": "elasticache/preferred-maintenance-window-invalid-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_preferred_maintenance_window_invalid_format_rejected.py", "service": "elasticache"} {"check_id": "elasticache.preferred-maintenance-window-string-preserved", "deployments": [], "key": "elasticache/preferred-maintenance-window-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_preferred_maintenance_window_string_preserved.py", "service": "elasticache"} {"check_id": "elasticache.purchase-reserved-offering-unknown", "deployments": [], "key": "elasticache/purchase-reserved-offering-unknown", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:PurchaseReservedCacheNodesOffering"], "path": "behavioral/elasticache/check_purchase_reserved_offering_unknown.py", "service": "elasticache"} {"check_id": "elasticache.reboot-cache-cluster-invalid-state", "deployments": [], "key": "elasticache/reboot-cache-cluster-invalid-state", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:RebootCacheCluster"], "path": "behavioral/elasticache/check_reboot_cache_cluster_invalid_state.py", "service": "elasticache"} {"check_id": "elasticache.remove-default-user-from-group-rejected", "deployments": [], "key": "elasticache/remove-default-user-from-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup", "elasticache:DescribeUserGroups", "elasticache:ModifyUserGroup"], "path": "behavioral/elasticache/check_remove_default_user_from_group_rejected.py", "service": "elasticache"} {"check_id": "elasticache.replica-count-argument-validation", "deployments": [], "key": "elasticache/replica-count-argument-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:DecreaseReplicaCount", "elasticache:DescribeReplicationGroups", "elasticache:IncreaseReplicaCount", "elasticache:ModifyReplicationGroup"], "path": "behavioral/elasticache/check_replica_count_argument_validation.py", "service": "elasticache"} {"check_id": "elasticache.replica-count-state-gating", "deployments": [], "key": "elasticache/replica-count-state-gating", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DecreaseReplicaCount", "elasticache:DescribeCacheClusters", "elasticache:DescribeReplicationGroups", "elasticache:IncreaseReplicaCount"], "path": "behavioral/elasticache/check_replica_count_state_gating.py", "service": "elasticache"} {"check_id": "elasticache.replication-group-auth-token-rotation-grace-window", "deployments": [], "key": "elasticache/replication-group-auth-token-rotation-grace-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroup"], "path": "behavioral/elasticache/check_replication_group_auth_token_rotation_grace_window.py", "service": "elasticache"} {"check_id": "elasticache.replication-group-duplicate", "deployments": [], "key": "elasticache/replication-group-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroup"], "path": "behavioral/elasticache/check_replication_group_duplicate.py", "service": "elasticache"} {"check_id": "elasticache.replication-group-encryption-snapshot-and-tags-round-trip", "deployments": [], "key": "elasticache/replication-group-encryption-snapshot-and-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ListTagsForResource", "elasticache:ModifyReplicationGroup", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion"], "path": "behavioral/elasticache/check_replication_group_encryption_snapshot_and_tags_round_trip.py", "service": "elasticache"} {"check_id": "elasticache.replication-group-lifecycle", "deployments": [], "key": "elasticache/replication-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:ModifyReplicationGroup"], "path": "behavioral/elasticache/check_replication_group_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.replication-group-migration-lifecycle", "deployments": [], "key": "elasticache/replication-group-migration-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CompleteMigration", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:StartMigration"], "path": "behavioral/elasticache/check_replication_group_migration_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.replication-group-not-found-semantics", "deployments": [], "key": "elasticache/replication-group-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration", "elasticache:TestFailover"], "path": "behavioral/elasticache/check_replication_group_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.replication-group-user-group-ids-reject-bare-user-id", "deployments": [], "key": "elasticache/replication-group-user-group-ids-reject-bare-user-id", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup", "elasticache:DescribeReplicationGroups"], "path": "behavioral/elasticache/check_replication_group_user_group_ids_reject_bare_user_id.py", "service": "elasticache"} {"check_id": "elasticache.server-side-maintenance-window-enforced", "deployments": [], "key": "elasticache/server-side-maintenance-window-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_server_side_maintenance_window_enforced.py", "service": "elasticache"} {"check_id": "elasticache.serverless-cache-description-omitted-normalizes-to-single-space", "deployments": [], "key": "elasticache/serverless-cache-description-omitted-normalizes-to-single-space", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches"], "path": "behavioral/elasticache/check_serverless_cache_description_omitted_normalizes_to_single_space.py", "service": "elasticache"} {"check_id": "elasticache.serverless-cache-lifecycle", "deployments": [], "key": "elasticache/serverless-cache-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches", "elasticache:ModifyServerlessCache"], "path": "behavioral/elasticache/check_serverless_cache_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.serverless-cache-not-found-semantics", "deployments": [], "key": "elasticache/serverless-cache-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateServerlessCacheSnapshot", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches", "elasticache:ModifyServerlessCache"], "path": "behavioral/elasticache/check_serverless_cache_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.serverless-cache-snapshot-full-lifecycle", "deployments": [], "key": "elasticache/serverless-cache-snapshot-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:CreateServerlessCacheSnapshot", "elasticache:DeleteServerlessCache", "elasticache:DeleteServerlessCacheSnapshot", "elasticache:DescribeServerlessCacheSnapshots", "elasticache:DescribeServerlessCaches", "elasticache:ExportServerlessCacheSnapshot", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/elasticache/check_serverless_cache_snapshot_full_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache.serverless-cache-snapshot-retention-limit-out-of-range-rejected", "deployments": [], "key": "elasticache/serverless-cache-snapshot-retention-limit-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches", "elasticache:ModifyServerlessCache"], "path": "behavioral/elasticache/check_serverless_cache_snapshot_retention_limit_out_of_range_rejected.py", "service": "elasticache"} {"check_id": "elasticache.serverless-cache-snapshot-retention-window-enforced", "deployments": [], "key": "elasticache/serverless-cache-snapshot-retention-window-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:CreateServerlessCacheSnapshot", "elasticache:DeleteServerlessCache", "elasticache:DeleteServerlessCacheSnapshot", "elasticache:DescribeServerlessCacheSnapshots", "elasticache:DescribeServerlessCaches", "elasticache:ModifyServerlessCache"], "path": "behavioral/elasticache/check_serverless_cache_snapshot_retention_window_enforced.py", "service": "elasticache"} {"check_id": "elasticache.serverless-cache-usage-limits-inverted-rejected", "deployments": [], "key": "elasticache/serverless-cache-usage-limits-inverted-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches", "elasticache:ModifyServerlessCache"], "path": "behavioral/elasticache/check_serverless_cache_usage_limits_inverted_rejected.py", "service": "elasticache"} {"check_id": "elasticache.serverless-cache-usage-limits-numeric-precision-persists", "deployments": [], "key": "elasticache/serverless-cache-usage-limits-numeric-precision-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateServerlessCache", "elasticache:DeleteServerlessCache", "elasticache:DescribeServerlessCaches", "elasticache:ModifyServerlessCache"], "path": "behavioral/elasticache/check_serverless_cache_usage_limits_numeric_precision_persists.py", "service": "elasticache"} {"check_id": "elasticache.serverless-snapshot-not-found-semantics", "deployments": [], "key": "elasticache/serverless-snapshot-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CopyServerlessCacheSnapshot", "elasticache:CreateServerlessCache", "elasticache:CreateServerlessCacheSnapshot", "elasticache:DeleteServerlessCache", "elasticache:DeleteServerlessCacheSnapshot", "elasticache:DescribeServerlessCacheSnapshots", "elasticache:DescribeServerlessCaches", "elasticache:ExportServerlessCacheSnapshot", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/elasticache/check_serverless_snapshot_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.shard-configuration-resize-transitions", "deployments": [], "key": "elasticache/shard-configuration-resize-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration"], "path": "behavioral/elasticache/check_shard_configuration_resize_transitions.py", "service": "elasticache"} {"check_id": "elasticache.shard-reconfiguration-state-machine", "deployments": [], "key": "elasticache/shard-reconfiguration-state-machine", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration"], "path": "behavioral/elasticache/check_shard_reconfiguration_state_machine.py", "service": "elasticache"} {"check_id": "elasticache.slowlog-parameters-round-trip-and-reject-negative-length", "deployments": [], "key": "elasticache/slowlog-parameters-round-trip-and-reject-negative-length", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameters", "elasticache:ModifyCacheParameterGroup"], "path": "behavioral/elasticache/check_slowlog_parameters_round_trip_and_reject_negative_length.py", "service": "elasticache"} {"check_id": "elasticache.snapshot-lifecycle-from-cluster", "deployments": [], "key": "elasticache/snapshot-lifecycle-from-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CopySnapshot", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeSnapshots"], "path": "behavioral/elasticache/check_snapshot_lifecycle_from_cluster.py", "service": "elasticache"} {"check_id": "elasticache.snapshot-not-found-semantics", "deployments": [], "key": "elasticache/snapshot-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CopySnapshot", "elasticache:CreateSnapshot", "elasticache:DeleteSnapshot", "elasticache:DescribeSnapshots"], "path": "behavioral/elasticache/check_snapshot_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.snapshot-of-a-single-node-cluster-copies-and-deletes", "deployments": [], "key": "elasticache/snapshot-of-a-single-node-cluster-copies-and-deletes", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CopySnapshot", "elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot"], "path": "behavioral/elasticache/check_snapshot_of_a_single_node_cluster_copies_and_deletes.py", "service": "elasticache"} {"check_id": "elasticache.snapshot-retention-limit-auto-expiry", "deployments": [], "key": "elasticache/snapshot-retention-limit-auto-expiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeCacheClusters", "elasticache:DescribeSnapshots", "elasticache:ModifyCacheCluster"], "path": "behavioral/elasticache/check_snapshot_retention_limit_auto_expiry.py", "service": "elasticache"} {"check_id": "elasticache.snapshot-retention-limit-zero-disables-automatic-snapshots", "deployments": [], "key": "elasticache/snapshot-retention-limit-zero-disables-automatic-snapshots", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeCacheClusters", "elasticache:DescribeSnapshots"], "path": "behavioral/elasticache/check_snapshot_retention_limit_zero_disables_automatic_snapshots.py", "service": "elasticache"} {"check_id": "elasticache.snapshot-timestamp-precision-preserved", "deployments": [], "key": "elasticache/snapshot-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateSnapshot", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteSnapshot", "elasticache:DescribeCacheClusters", "elasticache:DescribeSnapshots"], "path": "behavioral/elasticache/check_snapshot_timestamp_precision_preserved.py", "service": "elasticache"} {"check_id": "elasticache.subnet-group-replace-semantics-and-cross-vpc-rejected", "deployments": [], "key": "elasticache/subnet-group-replace-semantics-and-cross-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:ModifyCacheSubnetGroup"], "path": "behavioral/elasticache/check_subnet_group_replace_semantics_and_cross_vpc_rejected.py", "service": "elasticache"} {"check_id": "elasticache.tag-key-reserved-prefix-and-length-rejected", "deployments": [], "key": "elasticache/tag-key-reserved-prefix-and-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:AddTagsToResource", "elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:ListTagsForResource", "elasticache:RemoveTagsFromResource"], "path": "behavioral/elasticache/check_tag_key_reserved_prefix_and_length_rejected.py", "service": "elasticache"} {"check_id": "elasticache.tag-unicode-value-round-trip", "deployments": [], "key": "elasticache/tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:AddTagsToResource", "elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:ListTagsForResource"], "path": "behavioral/elasticache/check_tag_unicode_value_round_trip.py", "service": "elasticache"} {"check_id": "elasticache.tags-add-list-remove", "deployments": [], "key": "elasticache/tags-add-list-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:AddTagsToResource", "elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:DescribeCacheParameterGroups", "elasticache:ListTagsForResource", "elasticache:RemoveTagsFromResource"], "path": "behavioral/elasticache/check_tags_add_list_remove.py", "service": "elasticache"} {"check_id": "elasticache.tags-invalid-arn", "deployments": [], "key": "elasticache/tags-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:AddTagsToResource", "elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:ListTagsForResource"], "path": "behavioral/elasticache/check_tags_invalid_arn.py", "service": "elasticache"} {"check_id": "elasticache.tags-unicode-value-round-trip", "deployments": [], "key": "elasticache/tags-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:AddTagsToResource", "elasticache:CreateCacheParameterGroup", "elasticache:DeleteCacheParameterGroup", "elasticache:ListTagsForResource"], "path": "behavioral/elasticache/check_tags_unicode_value_round_trip.py", "service": "elasticache"} {"check_id": "elasticache.test-failover-state-gating", "deployments": [], "key": "elasticache/test-failover-state-gating", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeReplicationGroups", "elasticache:TestFailover"], "path": "behavioral/elasticache/check_test_failover_state_gating.py", "service": "elasticache"} {"check_id": "elasticache.transit-encryption-endpoint-refuses-plaintext-resp-in-vpc", "deployments": [], "key": "elasticache/transit-encryption-endpoint-refuses-plaintext-resp-in-vpc", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeVpcAttribute", "ec2:ModifyVpcAttribute", "elasticache:CreateCacheSubnetGroup", "elasticache:CreateReplicationGroup", "elasticache:DeleteCacheSubnetGroup", "elasticache:DeleteReplicationGroup", "elasticache:DescribeCacheSubnetGroups", "elasticache:DescribeReplicationGroups", "elasticache:ModifyCacheSubnetGroup", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elasticache/check_transit_encryption_endpoint_refuses_plaintext_resp_in_vpc.py", "service": "elasticache"} {"check_id": "elasticache.user-access-string-append-and-password-mode-switch", "deployments": [], "key": "elasticache/user-access-string-append-and-password-mode-switch", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser", "elasticache:DescribeUsers", "elasticache:ModifyUser"], "path": "behavioral/elasticache/check_user_access_string_append_and_password_mode_switch.py", "service": "elasticache"} {"check_id": "elasticache.user-access-string-malformed-rejected", "deployments": [], "key": "elasticache/user-access-string-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser", "elasticache:ModifyUser"], "path": "behavioral/elasticache/check_user_access_string_malformed_rejected.py", "service": "elasticache"} {"check_id": "elasticache.user-group-default-required", "deployments": [], "key": "elasticache/user-group-default-required", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup"], "path": "behavioral/elasticache/check_user_group_default_required.py", "service": "elasticache"} {"check_id": "elasticache.user-group-delete-while-creating-rejected", "deployments": [], "key": "elasticache/user-group-delete-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUserGroup", "elasticache:DeleteUserGroup", "elasticache:DescribeUserGroups"], "path": "behavioral/elasticache/check_user_group_delete_while_creating_rejected.py", "service": "elasticache"} {"check_id": "elasticache.user-group-modify-membership", "deployments": [], "key": "elasticache/user-group-modify-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup", "elasticache:ModifyUserGroup"], "path": "behavioral/elasticache/check_user_group_modify_membership.py", "service": "elasticache"} {"check_id": "elasticache.user-group-not-found-semantics", "deployments": [], "key": "elasticache/user-group-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup", "elasticache:DescribeUserGroups", "elasticache:ModifyUserGroup"], "path": "behavioral/elasticache/check_user_group_not_found_semantics.py", "service": "elasticache"} {"check_id": "elasticache.user-group-unknown-member-rejected", "deployments": [], "key": "elasticache/user-group-unknown-member-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:CreateUserGroup", "elasticache:DeleteUser", "elasticache:DeleteUserGroup"], "path": "behavioral/elasticache/check_user_group_unknown_member_rejected.py", "service": "elasticache"} {"check_id": "elasticache.user-id-uniqueness-and-not-found", "deployments": [], "key": "elasticache/user-id-uniqueness-and-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser", "elasticache:DescribeUsers", "elasticache:ModifyUser"], "path": "behavioral/elasticache/check_user_id_uniqueness_and_not_found.py", "service": "elasticache"} {"check_id": "elasticache.user-lifecycle", "deployments": [], "key": "elasticache/user-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateUser", "elasticache:DeleteUser", "elasticache:DescribeUsers", "elasticache:ModifyUser"], "path": "behavioral/elasticache/check_user_lifecycle.py", "service": "elasticache"} {"check_id": "elasticache__logs.slow-log-delivery-to-missing-log-group-rejected", "deployments": [], "key": "elasticache__logs/slow-log-delivery-to-missing-log-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/elasticache__logs/check_slow_log_delivery_to_missing_log_group_rejected.py", "service": "elasticache__logs"} {"check_id": "elasticache__sns.cache-cluster-notification-configuration-names-the-topic", "deployments": [], "key": "elasticache__sns/cache-cluster-notification-configuration-names-the-topic", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticache:CreateCacheCluster", "elasticache:CreateCacheSubnetGroup", "elasticache:DeleteCacheCluster", "elasticache:DeleteCacheSubnetGroup", "elasticache:DescribeCacheClusters", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic"], "path": "behavioral/elasticache__sns/check_cache_cluster_notification_configuration_names_the_topic.py", "service": "elasticache__sns"} {"check_id": "elasticbeanstalk.abort-environment-update-unknown-env-fails", "deployments": [], "key": "elasticbeanstalk/abort-environment-update-unknown-env-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:AbortEnvironmentUpdate", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_abort_environment_update_unknown_env_fails.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.application-tags-set-at-creation-and-listed", "deployments": [], "key": "elasticbeanstalk/application-tags-set-at-creation-and-listed", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource"], "path": "behavioral/elasticbeanstalk/check_application_tags_set_at_creation_and_listed.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.application-version-processing-reaches-failed-for-malformed-bundle", "deployments": [], "key": "elasticbeanstalk/application-version-processing-reaches-failed-for-malformed-bundle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_application_version_processing_reaches_failed_for_malformed_bundle.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.apply-environment-managed-action-executes-server-side-update", "deployments": [], "key": "elasticbeanstalk/apply-environment-managed-action-executes-server-side-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_apply_environment_managed_action_executes_server_side_update.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.apply-environment-managed-action-invalid-state-rejected", "deployments": [], "key": "elasticbeanstalk/apply-environment-managed-action-invalid-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_apply_environment_managed_action_invalid_state_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.apply-environment-managed-action-missing-environment-name-rejected", "deployments": [], "key": "elasticbeanstalk/apply-environment-managed-action-missing-environment-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:DescribeEnvironments"], "path": "behavioral/elasticbeanstalk/check_apply_environment_managed_action_missing_environment_name_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.apply-environment-managed-action-unknown-action-id-rejected", "deployments": [], "key": "elasticbeanstalk/apply-environment-managed-action-unknown-action-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_apply_environment_managed_action_unknown_action_id_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.apply-managed-action-already-applied-rejected", "deployments": [], "key": "elasticbeanstalk/apply-managed-action-already-applied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_apply_managed_action_already_applied_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.apply-managed-action-invalid-state-rejected", "deployments": [], "key": "elasticbeanstalk/apply-managed-action-invalid-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_apply_managed_action_invalid_state_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.apply-managed-action-wrong-state-rejected", "deployments": [], "key": "elasticbeanstalk/apply-managed-action-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_apply_managed_action_wrong_state_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-environment-operations-role-changes-effective-role", "deployments": [], "key": "elasticbeanstalk/associate-environment-operations-role-changes-effective-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_associate_environment_operations_role_changes_effective_role.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-environment-operations-role-insufficient-privileges-denied", "deployments": [], "key": "elasticbeanstalk/associate-environment-operations-role-insufficient-privileges-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk/check_associate_environment_operations_role_insufficient_privileges_denied.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-environment-operations-role-then-disassociate", "deployments": [], "key": "elasticbeanstalk/associate-environment-operations-role-then-disassociate", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_associate_environment_operations_role_then_disassociate.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-environment-operations-role-unknown-environment-rejected", "deployments": [], "key": "elasticbeanstalk/associate-environment-operations-role-unknown-environment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:DescribeEnvironments", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/elasticbeanstalk/check_associate_environment_operations_role_unknown_environment_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-environment-operations-role-untrusted-role-rejected", "deployments": [], "key": "elasticbeanstalk/associate-environment-operations-role-untrusted-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_associate_environment_operations_role_untrusted_role_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-operations-role-concurrent-requests-converge", "deployments": [], "key": "elasticbeanstalk/associate-operations-role-concurrent-requests-converge", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_associate_operations_role_concurrent_requests_converge.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-operations-role-enables-cross-account-action", "deployments": [], "key": "elasticbeanstalk/associate-operations-role-enables-cross-account-action", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_associate_operations_role_enables_cross_account_action.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-operations-role-enforced-on-subsequent-actions", "deployments": [], "key": "elasticbeanstalk/associate-operations-role-enforced-on-subsequent-actions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_associate_operations_role_enforced_on_subsequent_actions.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-operations-role-insufficient-privileges-denied", "deployments": [], "key": "elasticbeanstalk/associate-operations-role-insufficient-privileges-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_associate_operations_role_insufficient_privileges_denied.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-operations-role-nonexistent-rejected", "deployments": [], "key": "elasticbeanstalk/associate-operations-role-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk/check_associate_operations_role_nonexistent_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.associate-operations-role-on-terminated-environment-rejected", "deployments": [], "key": "elasticbeanstalk/associate-operations-role-on-terminated-environment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_associate_operations_role_on_terminated_environment_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.check-dns-availability-prefix-legality-and-purity", "deployments": [], "key": "elasticbeanstalk/check-dns-availability-prefix-legality-and-purity", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CheckDNSAvailability"], "path": "behavioral/elasticbeanstalk/check_check_dns_availability_prefix_legality_and_purity.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.check-dns-availability-semantics", "deployments": [], "key": "elasticbeanstalk/check-dns-availability-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CheckDNSAvailability"], "path": "behavioral/elasticbeanstalk/check_check_dns_availability_semantics.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.compose-environments-concurrent-launch-no-duplicate-envs", "deployments": [], "key": "elasticbeanstalk/compose-environments-concurrent-launch-no-duplicate-envs", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_compose_environments_concurrent_launch_no_duplicate_envs.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.compose-environments-creates-envs-from-versions-lifecycle", "deployments": [], "key": "elasticbeanstalk/compose-environments-creates-envs-from-versions-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_compose_environments_creates_envs_from_versions_lifecycle.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.compose-environments-insufficient-privileges-blocked", "deployments": [], "key": "elasticbeanstalk/compose-environments-insufficient-privileges-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk/check_compose_environments_insufficient_privileges_blocked.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.compose-environments-insufficient-privileges-denied", "deployments": [], "key": "elasticbeanstalk/compose-environments-insufficient-privileges-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateTagsForResource", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_compose_environments_insufficient_privileges_denied.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.compose-environments-mismatched-application-must-fail", "deployments": [], "key": "elasticbeanstalk/compose-environments-mismatched-application-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments"], "path": "behavioral/elasticbeanstalk/check_compose_environments_mismatched_application_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.concurrent-apply-same-managed-action-id-race", "deployments": [], "key": "elasticbeanstalk/concurrent-apply-same-managed-action-id-race", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListPlatformBranches", "elasticbeanstalk:ListPlatformVersions", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_concurrent_apply_same_managed_action_id_race.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.concurrent-associate-disassociate-operations-role-converges", "deployments": [], "key": "elasticbeanstalk/concurrent-associate-disassociate-operations-role-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_concurrent_associate_disassociate_operations_role_converges.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.concurrent-associate-operations-role-converges", "deployments": [], "key": "elasticbeanstalk/concurrent-associate-operations-role-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_concurrent_associate_operations_role_converges.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.concurrent-create-application-same-name-converges", "deployments": [], "key": "elasticbeanstalk/concurrent-create-application-same-name-converges", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications"], "path": "behavioral/elasticbeanstalk/check_concurrent_create_application_same_name_converges.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.configuration-template-option-removal-falls-back-to-default", "deployments": [], "key": "elasticbeanstalk/configuration-template-option-removal-falls-back-to-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate"], "path": "behavioral/elasticbeanstalk/check_configuration_template_option_removal_falls_back_to_default.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-application-basic-fields", "deployments": [], "key": "elasticbeanstalk/create-application-basic-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications"], "path": "behavioral/elasticbeanstalk/check_create_application_basic_fields.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-application-duplicate-name-rejected", "deployments": [], "key": "elasticbeanstalk/create-application-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications"], "path": "behavioral/elasticbeanstalk/check_create_application_duplicate_name_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-application-version-duplicate-label-must-fail", "deployments": [], "key": "elasticbeanstalk/create-application-version-duplicate-label-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions"], "path": "behavioral/elasticbeanstalk/check_create_application_version_duplicate_label_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-application-version-lifecycle", "deployments": [], "key": "elasticbeanstalk/create-application-version-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:UpdateApplication", "elasticbeanstalk:UpdateApplicationVersion"], "path": "behavioral/elasticbeanstalk/check_create_application_version_lifecycle.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-application-version-unknown-application-must-fail", "deployments": [], "key": "elasticbeanstalk/create-application-version-unknown-application-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeApplications"], "path": "behavioral/elasticbeanstalk/check_create_application_version_unknown_application_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-configuration-template-and-verify-options", "deployments": [], "key": "elasticbeanstalk/create-configuration-template-and-verify-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_create_configuration_template_and_verify_options.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-configuration-template-duplicate-name-must-fail", "deployments": [], "key": "elasticbeanstalk/create-configuration-template-duplicate-name-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_create_configuration_template_duplicate_name_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-configuration-template-unknown-application-must-fail", "deployments": [], "key": "elasticbeanstalk/create-configuration-template-unknown-application-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_create_configuration_template_unknown_application_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-environment-duplicate-name-must-fail", "deployments": [], "key": "elasticbeanstalk/create-environment-duplicate-name-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_create_environment_duplicate_name_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-environment-duplicate-name-rejected", "deployments": [], "key": "elasticbeanstalk/create-environment-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_create_environment_duplicate_name_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-environment-invalid-solution-stack-must-fail", "deployments": [], "key": "elasticbeanstalk/create-environment-invalid-solution-stack-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate"], "path": "behavioral/elasticbeanstalk/check_create_environment_invalid_solution_stack_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-platform-version-insufficient-privileges-blocked", "deployments": [], "key": "elasticbeanstalk/create-platform-version-insufficient-privileges-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListPlatformVersions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:DeleteObject", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk/check_create_platform_version_insufficient_privileges_blocked.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-platform-version-insufficient-privileges-denied", "deployments": [], "key": "elasticbeanstalk/create-platform-version-insufficient-privileges-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:ListPlatformVersions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk/check_create_platform_version_insufficient_privileges_denied.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-platform-version-malformed-source-bundle-must-fail", "deployments": [], "key": "elasticbeanstalk/create-platform-version-malformed-source-bundle-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribePlatformVersion", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_create_platform_version_malformed_source_bundle_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-platform-version-quota-exceeded-rejected", "deployments": [], "key": "elasticbeanstalk/create-platform-version-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribeAccountAttributes", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListPlatformVersions", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_create_platform_version_quota_exceeded_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-platform-version-too-many-fails", "deployments": [], "key": "elasticbeanstalk/create-platform-version-too-many-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribeAccountAttributes", "elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListPlatformVersions", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_create_platform_version_too_many_fails.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-platform-version-too-many-platforms-blocked", "deployments": [], "key": "elasticbeanstalk/create-platform-version-too-many-platforms-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribeAccountAttributes", "elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListPlatformVersions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_create_platform_version_too_many_platforms_blocked.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-platform-version-too-many-platforms-rejected", "deployments": [], "key": "elasticbeanstalk/create-platform-version-too-many-platforms-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribeAccountAttributes", "elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListPlatformVersions", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_create_platform_version_too_many_platforms_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.create-storage-location-idempotent", "deployments": [], "key": "elasticbeanstalk/create-storage-location-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateStorageLocation", "s3:HeadBucket", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk/check_create_storage_location_idempotent.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.custom-platform-version-tags-round-trip", "deployments": [], "key": "elasticbeanstalk/custom-platform-version-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListTagsForResource", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_custom_platform_version_tags_round_trip.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-application-idempotent-unknown", "deployments": [], "key": "elasticbeanstalk/delete-application-idempotent-unknown", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications"], "path": "behavioral/elasticbeanstalk/check_delete_application_idempotent_unknown.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-application-removes-from-list", "deployments": [], "key": "elasticbeanstalk/delete-application-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications"], "path": "behavioral/elasticbeanstalk/check_delete_application_removes_from_list.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-application-version-unknown-label-is-noop", "deployments": [], "key": "elasticbeanstalk/delete-application-version-unknown-label-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions"], "path": "behavioral/elasticbeanstalk/check_delete_application_version_unknown_label_is_noop.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-application-with-active-environment-rejected", "deployments": [], "key": "elasticbeanstalk/delete-application-with-active-environment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_delete_application_with_active_environment_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-application-with-running-environment-must-fail", "deployments": [], "key": "elasticbeanstalk/delete-application-with-running-environment-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_delete_application_with_running_environment_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-configuration-template-removes-it", "deployments": [], "key": "elasticbeanstalk/delete-configuration-template-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate"], "path": "behavioral/elasticbeanstalk/check_delete_configuration_template_removes_it.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-environment-configuration-removes-draft-configuration", "deployments": [], "key": "elasticbeanstalk/delete-environment-configuration-removes-draft-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_delete_environment_configuration_removes_draft_configuration.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-environment-configuration-removes-saved-config", "deployments": [], "key": "elasticbeanstalk/delete-environment-configuration-removes-saved-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_delete_environment_configuration_removes_saved_config.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.delete-platform-version-aws-managed-must-fail", "deployments": [], "key": "elasticbeanstalk/delete-platform-version-aws-managed-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListPlatformVersions", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_delete_platform_version_aws_managed_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-application-cfn-then-swap-cnames-behaves", "deployments": [], "key": "elasticbeanstalk/deploy-application-cfn-then-swap-cnames-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:SwapEnvironmentCNAMEs", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_deploy_application_cfn_then_swap_cnames_behaves.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-application-version-via-cloudformation-then-environment-uses-it", "deployments": [], "key": "elasticbeanstalk/deploy-application-version-via-cloudformation-then-environment-uses-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_deploy_application_version_via_cloudformation_then_environment_uses_it.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-application-with-source-bundle-version-is-active", "deployments": [], "key": "elasticbeanstalk/deploy-application-with-source-bundle-version-is-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironmentHealth", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_deploy_application_with_source_bundle_version_is_active.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-cfn-application-version-behaves", "deployments": [], "key": "elasticbeanstalk/deploy-cfn-application-version-behaves", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_deploy_cfn_application_version_behaves.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-cfn-environment-behaves", "deployments": [], "key": "elasticbeanstalk/deploy-cfn-environment-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeInstancesHealth", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_deploy_cfn_environment_behaves.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-cloudformation-invalid-platform-arn-rejected", "deployments": [], "key": "elasticbeanstalk/deploy-cloudformation-invalid-platform-arn-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_deploy_cloudformation_invalid_platform_arn_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-environment-cfn-then-managed-action-applies", "deployments": [], "key": "elasticbeanstalk/deploy-environment-cfn-then-managed-action-applies", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_deploy_environment_cfn_then_managed_action_applies.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-environment-via-cloudformation-serves-traffic", "deployments": [], "key": "elasticbeanstalk/deploy-environment-via-cloudformation-serves-traffic", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentHealth", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:DescribeInstancesHealth", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_deploy_environment_via_cloudformation_serves_traffic.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.deploy-environment-via-cloudformation-then-active-and-reachable", "deployments": [], "key": "elasticbeanstalk/deploy-environment-via-cloudformation-then-active-and-reachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_deploy_environment_via_cloudformation_then_active_and_reachable.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-account-attributes-quotas", "deployments": [], "key": "elasticbeanstalk/describe-account-attributes-quotas", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:DescribeAccountAttributes"], "path": "behavioral/elasticbeanstalk/check_describe_account_attributes_quotas.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-configuration-options-catalog-constraints-typed", "deployments": [], "key": "elasticbeanstalk/describe-configuration-options-catalog-constraints-typed", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_describe_configuration_options_catalog_constraints_typed.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-configuration-options-for-solution-stack", "deployments": [], "key": "elasticbeanstalk/describe-configuration-options-for-solution-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_describe_configuration_options_for_solution_stack.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-environment-health-unknown-env-fails", "deployments": [], "key": "elasticbeanstalk/describe-environment-health-unknown-env-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:DescribeEnvironmentHealth", "elasticbeanstalk:DescribeEnvironments"], "path": "behavioral/elasticbeanstalk/check_describe_environment_health_unknown_env_fails.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-environment-managed-actions-ordered-by-schedule", "deployments": [], "key": "elasticbeanstalk/describe-environment-managed-actions-ordered-by-schedule", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_describe_environment_managed_actions_ordered_by_schedule.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-environments-unknown-name-returns-empty", "deployments": [], "key": "elasticbeanstalk/describe-environments-unknown-name-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment"], "path": "behavioral/elasticbeanstalk/check_describe_environments_unknown_name_returns_empty.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-events-ordering-severity-and-window", "deployments": [], "key": "elasticbeanstalk/describe-events-ordering-severity-and-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:UpdateApplication"], "path": "behavioral/elasticbeanstalk/check_describe_events_ordering_severity_and_window.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-events-records-application-creation", "deployments": [], "key": "elasticbeanstalk/describe-events-records-application-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEvents"], "path": "behavioral/elasticbeanstalk/check_describe_events_records_application_creation.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-instances-health-invalid-attribute-rejected", "deployments": [], "key": "elasticbeanstalk/describe-instances-health-invalid-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeInstancesHealth"], "path": "behavioral/elasticbeanstalk/check_describe_instances_health_invalid_attribute_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-instances-health-malformed-request-rejected", "deployments": [], "key": "elasticbeanstalk/describe-instances-health-malformed-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeInstancesHealth", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment"], "path": "behavioral/elasticbeanstalk/check_describe_instances_health_malformed_request_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-instances-health-unknown-environment-must-fail", "deployments": [], "key": "elasticbeanstalk/describe-instances-health-unknown-environment-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeInstancesHealth", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment"], "path": "behavioral/elasticbeanstalk/check_describe_instances_health_unknown_environment_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-platform-version-bogus-arn-fails", "deployments": [], "key": "elasticbeanstalk/describe-platform-version-bogus-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListPlatformVersions"], "path": "behavioral/elasticbeanstalk/check_describe_platform_version_bogus_arn_fails.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.describe-platform-version-details", "deployments": [], "key": "elasticbeanstalk/describe-platform-version-details", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListPlatformVersions"], "path": "behavioral/elasticbeanstalk/check_describe_platform_version_details.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.disassociate-environment-operations-role-reverts-to-default", "deployments": [], "key": "elasticbeanstalk/disassociate-environment-operations-role-reverts-to-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_disassociate_environment_operations_role_reverts_to_default.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.disassociate-environment-operations-role-unknown-env-must-fail", "deployments": [], "key": "elasticbeanstalk/disassociate-environment-operations-role-unknown-env-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_disassociate_environment_operations_role_unknown_env_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.disassociate-operations-role-clears-it", "deployments": [], "key": "elasticbeanstalk/disassociate-operations-role-clears-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_disassociate_operations_role_clears_it.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.duplicate-application-version-label-rejected", "deployments": [], "key": "elasticbeanstalk/duplicate-application-version-label-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions"], "path": "behavioral/elasticbeanstalk/check_duplicate_application_version_label_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-compose-environments-from-templates-produces-linked-envs", "deployments": [], "key": "elasticbeanstalk/e2e-compose-environments-from-templates-produces-linked-envs", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_e2e_compose_environments_from_templates_produces_linked_envs.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-compose-environments-then-terminate-cleans-up", "deployments": [], "key": "elasticbeanstalk/e2e-compose-environments-then-terminate-cleans-up", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateTagsForResource", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_e2e_compose_environments_then_terminate_cleans_up.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-compose-multi-tier-application-environments", "deployments": [], "key": "elasticbeanstalk/e2e-compose-multi-tier-application-environments", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_e2e_compose_multi_tier_application_environments.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-compose-swap-cnames-traffic-consequence", "deployments": [], "key": "elasticbeanstalk/e2e-compose-swap-cnames-traffic-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:SwapEnvironmentCNAMEs", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_e2e_compose_swap_cnames_traffic_consequence.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-managed-action-lifecycle-apply-and-verify-config-change", "deployments": [], "key": "elasticbeanstalk/e2e-managed-action-lifecycle-apply-and-verify-config-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_e2e_managed_action_lifecycle_apply_and_verify_config_change.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-managed-action-lifecycle-apply-observe-history", "deployments": [], "key": "elasticbeanstalk/e2e-managed-action-lifecycle-apply-observe-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_e2e_managed_action_lifecycle_apply_observe_history.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-operations-role-association-flow", "deployments": [], "key": "elasticbeanstalk/e2e-operations-role-association-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_e2e_operations_role_association_flow.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-operations-role-gates-managed-action-apply", "deployments": [], "key": "elasticbeanstalk/e2e-operations-role-gates-managed-action-apply", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListPlatformVersions", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_e2e_operations_role_gates_managed_action_apply.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-request-and-retrieve-environment-info-flow", "deployments": [], "key": "elasticbeanstalk/e2e-request-and-retrieve-environment-info-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_e2e_request_and_retrieve_environment_info_flow.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-swap-cname-then-verify-dns-and-traffic-consequence", "deployments": [], "key": "elasticbeanstalk/e2e-swap-cname-then-verify-dns-and-traffic-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:SwapEnvironmentCNAMEs", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_e2e_swap_cname_then_verify_dns_and_traffic_consequence.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.e2e-swap-cnames-then-dns-check-flips", "deployments": [], "key": "elasticbeanstalk/e2e-swap-cnames-then-dns-check-flips", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:SwapEnvironmentCNAMEs", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_e2e_swap_cnames_then_dns_check_flips.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-abort-environment-update-withholds-the-instance-replacement", "deployments": [], "key": "elasticbeanstalk/eb-abort-environment-update-withholds-the-instance-replacement", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:AbortEnvironmentUpdate", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_abort_environment_update_withholds_the_instance_replacement.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-concurrent-update-environment-yields-a-single-winner", "deployments": [], "key": "elasticbeanstalk/eb-concurrent-update-environment-yields-a-single-winner", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_concurrent_update_environment_yields_a_single_winner.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-create-environment-with-a-cname-prefix-already-in-use-rejected", "deployments": [], "key": "elasticbeanstalk/eb-create-environment-with-a-cname-prefix-already-in-use-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_create_environment_with_a_cname_prefix_already_in_use_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-deployed-application-serves-its-own-content-over-http", "deployments": [], "key": "elasticbeanstalk/eb-deployed-application-serves-its-own-content-over-http", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_deployed_application_serves_its_own_content_over_http.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-deploying-a-new-application-version-replaces-the-served-content", "deployments": [], "key": "elasticbeanstalk/eb-deploying-a-new-application-version-replaces-the-served-content", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_deploying_a_new_application_version_replaces_the_served_content.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-describe-instances-health-reports-the-environments-real-instances", "deployments": [], "key": "elasticbeanstalk/eb-describe-instances-health-reports-the-environments-real-instances", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironmentHealth", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeInstancesHealth", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_describe_instances_health_reports_the_environments_real_instances.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-ebextensions-config-files-really-run-on-the-instance", "deployments": [], "key": "elasticbeanstalk/eb-ebextensions-config-files-really-run-on-the-instance", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_ebextensions_config_files_really_run_on_the_instance.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-ebextensions-option-setting-loses-to-the-direct-environment-setting", "deployments": [], "key": "elasticbeanstalk/eb-ebextensions-option-setting-loses-to-the-direct-environment-setting", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_ebextensions_option_setting_loses_to_the_direct_environment_setting.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-enhanced-health-degrades-when-the-application-returns-http-500", "deployments": [], "key": "elasticbeanstalk/eb-enhanced-health-degrades-when-the-application-returns-http-500", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironmentHealth", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_enhanced_health_degrades_when_the_application_returns_http_500.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-environment-reaches-ready", "deployments": [], "key": "elasticbeanstalk/eb-environment-reaches-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_eb_environment_reaches_ready.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-failed-version-deploy-leaves-the-previous-version-serving", "deployments": [], "key": "elasticbeanstalk/eb-failed-version-deploy-leaves-the-previous-version-serving", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_failed_version_deploy_leaves_the_previous_version_serving.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-option-setting-becomes-a-real-environment-variable-in-the-application", "deployments": [], "key": "elasticbeanstalk/eb-option-setting-becomes-a-real-environment-variable-in-the-application", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_option_setting_becomes_a_real_environment_variable_in_the_application.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-restart-app-server-restarts-the-process-without-replacing-the-instance", "deployments": [], "key": "elasticbeanstalk/eb-restart-app-server-restarts-the-process-without-replacing-the-instance", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RestartAppServer", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_restart_app_server_restarts_the_process_without_replacing_the_instance.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-retrieved-environment-info-carries-the-applications-own-log-line", "deployments": [], "key": "elasticbeanstalk/eb-retrieved-environment-info-carries-the-applications-own-log-line", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_retrieved_environment_info_carries_the_applications_own_log_line.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-rolling-deployment-keeps-serving-where-all-at-once-does-not", "deployments": [], "key": "elasticbeanstalk/eb-rolling-deployment-keeps-serving-where-all-at-once-does-not", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_rolling_deployment_keeps_serving_where_all_at_once_does_not.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-saved-configuration-template-reproduces-its-option-in-a-new-environment", "deployments": [], "key": "elasticbeanstalk/eb-saved-configuration-template-reproduces-its-option-in-a-new-environment", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateConfigurationTemplate", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_saved_configuration_template_reproduces_its_option_in_a_new_environment.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-swap-environment-cnames-swaps-which-application-answers", "deployments": [], "key": "elasticbeanstalk/eb-swap-environment-cnames-swaps-which-application-answers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:SwapEnvironmentCNAMEs", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_swap_environment_cnames_swaps_which_application_answers.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-terminated-environment-stops-serving-and-frees-its-cname-prefix", "deployments": [], "key": "elasticbeanstalk/eb-terminated-environment-stops-serving-and-frees-its-cname-prefix", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_terminated_environment_stops_serving_and_frees_its_cname_prefix.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.eb-update-environment-refuses-the-settings-validate-configuration-flags", "deployments": [], "key": "elasticbeanstalk/eb-update-environment-refuses-the-settings-validate-configuration-flags", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "elasticbeanstalk:ValidateConfigurationSettings", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_eb_update_environment_refuses_the_settings_validate_configuration_flags.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.environment-create-enters-launching", "deployments": [], "key": "elasticbeanstalk/environment-create-enters-launching", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_environment_create_enters_launching.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.environment-info-log-payload-preserved", "deployments": [], "key": "elasticbeanstalk/environment-info-log-payload-preserved", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_environment_info_log_payload_preserved.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.environment-info-retrieval-empty-until-populated", "deployments": [], "key": "elasticbeanstalk/environment-info-retrieval-empty-until-populated", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_environment_info_retrieval_empty_until_populated.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.environment-info-tail-log-content-round-trip", "deployments": [], "key": "elasticbeanstalk/environment-info-tail-log-content-round-trip", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_environment_info_tail_log_content_round_trip.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.environment-operations-role-arn-round-trip", "deployments": [], "key": "elasticbeanstalk/environment-operations-role-arn-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_environment_operations_role_arn_round_trip.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.environment-option-setting-unicode-value-round-trip", "deployments": [], "key": "elasticbeanstalk/environment-option-setting-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_environment_option_setting_unicode_value_round_trip.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.environment-terminate-guarded-then-enters-terminating", "deployments": [], "key": "elasticbeanstalk/environment-terminate-guarded-then-enters-terminating", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_environment_terminate_guarded_then_enters_terminating.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.environment-update-while-launching-is-rejected", "deployments": [], "key": "elasticbeanstalk/environment-update-while-launching-is-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_environment_update_while_launching_is_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.foreign-resource-arn-for-tagging-rejected", "deployments": [], "key": "elasticbeanstalk/foreign-resource-arn-for-tagging-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource", "elasticbeanstalk:UpdateTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk/check_foreign_resource_arn_for_tagging_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-available-solution-stacks-details", "deployments": [], "key": "elasticbeanstalk/list-available-solution-stacks-details", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ListAvailableSolutionStacks"], "path": "behavioral/elasticbeanstalk/check_list_available_solution_stacks_details.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-platform-branches-filters-by-lifecycle-state", "deployments": [], "key": "elasticbeanstalk/list-platform-branches-filters-by-lifecycle-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ListPlatformBranches"], "path": "behavioral/elasticbeanstalk/check_list_platform_branches_filters_by_lifecycle_state.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-platform-branches-reflects-lifecycle-state", "deployments": [], "key": "elasticbeanstalk/list-platform-branches-reflects-lifecycle-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ListPlatformBranches"], "path": "behavioral/elasticbeanstalk/check_list_platform_branches_reflects_lifecycle_state.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-platform-branches-server-side-filter-enforced", "deployments": [], "key": "elasticbeanstalk/list-platform-branches-server-side-filter-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ListPlatformBranches"], "path": "behavioral/elasticbeanstalk/check_list_platform_branches_server_side_filter_enforced.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-platform-branches-stable-pagination-order", "deployments": [], "key": "elasticbeanstalk/list-platform-branches-stable-pagination-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ListPlatformBranches"], "path": "behavioral/elasticbeanstalk/check_list_platform_branches_stable_pagination_order.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-platform-versions-smoke", "deployments": [], "key": "elasticbeanstalk/list-platform-versions-smoke", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ListPlatformVersions"], "path": "behavioral/elasticbeanstalk/check_list_platform_versions_smoke.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-tags-for-resource-nonexistent-arn-rejected", "deployments": [], "key": "elasticbeanstalk/list-tags-for-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource"], "path": "behavioral/elasticbeanstalk/check_list_tags_for_resource_nonexistent_arn_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-tags-for-resource-not-found", "deployments": [], "key": "elasticbeanstalk/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource"], "path": "behavioral/elasticbeanstalk/check_list_tags_for_resource_not_found.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.list-tags-for-resource-unsupported-type", "deployments": [], "key": "elasticbeanstalk/list-tags-for-resource-unsupported-type", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource"], "path": "behavioral/elasticbeanstalk/check_list_tags_for_resource_unsupported_type.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.managed-action-apply-completed-state-rejected", "deployments": [], "key": "elasticbeanstalk/managed-action-apply-completed-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_managed_action_apply_completed_state_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.managed-action-apply-then-appears-in-history", "deployments": [], "key": "elasticbeanstalk/managed-action-apply-then-appears-in-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_managed_action_apply_then_appears_in_history.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.managed-action-description-unicode-preserved", "deployments": [], "key": "elasticbeanstalk/managed-action-description-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_managed_action_description_unicode_preserved.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.managed-action-history-retains-completed-actions-ttl", "deployments": [], "key": "elasticbeanstalk/managed-action-history-retains-completed-actions-ttl", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_managed_action_history_retains_completed_actions_ttl.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.managed-action-history-visible-after-completion-ttl", "deployments": [], "key": "elasticbeanstalk/managed-action-history-visible-after-completion-ttl", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_managed_action_history_visible_after_completion_ttl.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.managed-action-scheduled-then-becomes-pending-after-window", "deployments": [], "key": "elasticbeanstalk/managed-action-scheduled-then-becomes-pending-after-window", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListPlatformBranches", "elasticbeanstalk:ListPlatformVersions", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_managed_action_scheduled_then_becomes_pending_after_window.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.managed-action-window-timestamp-preserved", "deployments": [], "key": "elasticbeanstalk/managed-action-window-timestamp-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_managed_action_window_timestamp_preserved.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.platform-branch-lifecycle-state-preserved", "deployments": [], "key": "elasticbeanstalk/platform-branch-lifecycle-state-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:ListPlatformBranches", "elasticbeanstalk:ListPlatformVersions"], "path": "behavioral/elasticbeanstalk/check_platform_branch_lifecycle_state_preserved.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.platform-version-custom-tags-round-trip", "deployments": [], "key": "elasticbeanstalk/platform-version-custom-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreatePlatformVersion", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeletePlatformVersion", "elasticbeanstalk:DescribePlatformVersion", "elasticbeanstalk:ListTagsForResource", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_platform_version_custom_tags_round_trip.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.rebuild-environment-cycles-through-launching-to-ready", "deployments": [], "key": "elasticbeanstalk/rebuild-environment-cycles-through-launching-to-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_rebuild_environment_cycles_through_launching_to_ready.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.rebuild-environment-insufficient-privileges-denied", "deployments": [], "key": "elasticbeanstalk/rebuild-environment-insufficient-privileges-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk/check_rebuild_environment_insufficient_privileges_denied.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.rebuild-environment-server-recreates-underlying-resources", "deployments": [], "key": "elasticbeanstalk/rebuild-environment-server-recreates-underlying-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_rebuild_environment_server_recreates_underlying_resources.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.rebuild-environment-unknown-environment-rejected", "deployments": [], "key": "elasticbeanstalk/rebuild-environment-unknown-environment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:RebuildEnvironment"], "path": "behavioral/elasticbeanstalk/check_rebuild_environment_unknown_environment_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.rebuild-terminated-environment-version-deleted-rejected", "deployments": [], "key": "elasticbeanstalk/rebuild-terminated-environment-version-deleted-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile", "s3:PutObject"], "path": "behavioral/elasticbeanstalk/check_rebuild_terminated_environment_version_deleted_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.request-and-retrieve-environment-info-tail-logs", "deployments": [], "key": "elasticbeanstalk/request-and-retrieve-environment-info-tail-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_request_and_retrieve_environment_info_tail_logs.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.request-environment-info-then-retrieve-returns-populated", "deployments": [], "key": "elasticbeanstalk/request-environment-info-then-retrieve-returns-populated", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_request_environment_info_then_retrieve_returns_populated.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.request-then-retrieve-environment-info-workflow-lifecycle", "deployments": [], "key": "elasticbeanstalk/request-then-retrieve-environment-info-workflow-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_request_then_retrieve_environment_info_workflow_lifecycle.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.restart-app-server-unknown-env-must-fail", "deployments": [], "key": "elasticbeanstalk/restart-app-server-unknown-env-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RestartAppServer", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_restart_app_server_unknown_env_must_fail.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.retrieve-environment-info-log-content-round-trip", "deployments": [], "key": "elasticbeanstalk/retrieve-environment-info-log-content-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_retrieve_environment_info_log_content_round_trip.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.swap-environment-cnames-and-related-ops-against-nonexistent-environments-rejected", "deployments": [], "key": "elasticbeanstalk/swap-environment-cnames-and-related-ops-against-nonexistent-environments-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:ApplyEnvironmentManagedAction", "elasticbeanstalk:ComposeEnvironments", "elasticbeanstalk:DescribeEnvironmentManagedActionHistory", "elasticbeanstalk:DescribeEnvironmentManagedActions", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:SwapEnvironmentCNAMEs"], "path": "behavioral/elasticbeanstalk/check_swap_environment_cnames_and_related_ops_against_nonexistent_environments_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.swap-environment-cnames-nonexistent-source-fails", "deployments": [], "key": "elasticbeanstalk/swap-environment-cnames-nonexistent-source-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:SwapEnvironmentCNAMEs"], "path": "behavioral/elasticbeanstalk/check_swap_environment_cnames_nonexistent_source_fails.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-application-description-mutates-in-place", "deployments": [], "key": "elasticbeanstalk/update-application-description-mutates-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:UpdateApplication"], "path": "behavioral/elasticbeanstalk/check_update_application_description_mutates_in_place.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-application-resource-lifecycle-persists", "deployments": [], "key": "elasticbeanstalk/update-application-resource-lifecycle-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:UpdateApplicationResourceLifecycle", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListRoles", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_update_application_resource_lifecycle_persists.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-application-version-mutable-fields", "deployments": [], "key": "elasticbeanstalk/update-application-version-mutable-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:UpdateApplicationVersion"], "path": "behavioral/elasticbeanstalk/check_update_application_version_mutable_fields.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-configuration-template-option-settings", "deployments": [], "key": "elasticbeanstalk/update-configuration-template-option-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate"], "path": "behavioral/elasticbeanstalk/check_update_configuration_template_option_settings.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-environment-tier-change-rejected", "deployments": [], "key": "elasticbeanstalk/update-environment-tier-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/elasticbeanstalk/check_update_environment_tier_change_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-tags-exceeds-quota-rejected", "deployments": [], "key": "elasticbeanstalk/update-tags-exceeds-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource", "elasticbeanstalk:UpdateTagsForResource"], "path": "behavioral/elasticbeanstalk/check_update_tags_exceeds_quota_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-tags-for-resource-add-remove", "deployments": [], "key": "elasticbeanstalk/update-tags-for-resource-add-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource", "elasticbeanstalk:UpdateTagsForResource"], "path": "behavioral/elasticbeanstalk/check_update_tags_for_resource_add_remove.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-tags-for-resource-quota-exceeded-rejected", "deployments": [], "key": "elasticbeanstalk/update-tags-for-resource-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource", "elasticbeanstalk:UpdateTagsForResource"], "path": "behavioral/elasticbeanstalk/check_update_tags_for_resource_quota_exceeded_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-tags-for-resource-same-key-add-and-remove-rejected", "deployments": [], "key": "elasticbeanstalk/update-tags-for-resource-same-key-add-and-remove-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource", "elasticbeanstalk:UpdateTagsForResource"], "path": "behavioral/elasticbeanstalk/check_update_tags_for_resource_same_key_add_and_remove_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.update-tags-too-many-tags", "deployments": [], "key": "elasticbeanstalk/update-tags-too-many-tags", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:ListTagsForResource", "elasticbeanstalk:UpdateTagsForResource"], "path": "behavioral/elasticbeanstalk/check_update_tags_too_many_tags.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.validate-configuration-settings-asg-min-above-max-rejected", "deployments": [], "key": "elasticbeanstalk/validate-configuration-settings-asg-min-above-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:ValidateConfigurationSettings"], "path": "behavioral/elasticbeanstalk/check_validate_configuration_settings_asg_min_above_max_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.validate-configuration-settings-enforces-published-range-rejected", "deployments": [], "key": "elasticbeanstalk/validate-configuration-settings-enforces-published-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:ValidateConfigurationSettings"], "path": "behavioral/elasticbeanstalk/check_validate_configuration_settings_enforces_published_range_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.validate-configuration-settings-flags-bad-option", "deployments": [], "key": "elasticbeanstalk/validate-configuration-settings-flags-bad-option", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:ValidateConfigurationSettings"], "path": "behavioral/elasticbeanstalk/check_validate_configuration_settings_flags_bad_option.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.validate-configuration-settings-out-of-range-rejected", "deployments": [], "key": "elasticbeanstalk/validate-configuration-settings-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:ValidateConfigurationSettings"], "path": "behavioral/elasticbeanstalk/check_validate_configuration_settings_out_of_range_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.validate-configuration-settings-unknown-namespace-rejected", "deployments": [], "key": "elasticbeanstalk/validate-configuration-settings-unknown-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:ValidateConfigurationSettings"], "path": "behavioral/elasticbeanstalk/check_validate_configuration_settings_unknown_namespace_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk.validate-configuration-settings-unknown-option-rejected", "deployments": [], "key": "elasticbeanstalk/validate-configuration-settings-unknown-option-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:ValidateConfigurationSettings"], "path": "behavioral/elasticbeanstalk/check_validate_configuration_settings_unknown_option_rejected.py", "service": "elasticbeanstalk"} {"check_id": "elasticbeanstalk__logs.eb-stream-logs-delivers-the-application-stdout-to-the-derived-log-group", "deployments": [], "key": "elasticbeanstalk__logs/eb-stream-logs-delivers-the-application-stdout-to-the-derived-log-group", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elasticbeanstalk__logs/check_eb_stream_logs_delivers_the_application_stdout_to_the_derived_log_group.py", "service": "elasticbeanstalk__logs"} {"check_id": "elasticbeanstalk__sns__sqs.eb-environment-event-notification-is-delivered-to-the-subscribed-queue", "deployments": [], "key": "elasticbeanstalk__sns__sqs/eb-environment-event-notification-is-delivered-to-the-subscribed-queue", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:CreateStorageLocation", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:DeleteObject", "s3:PutObject", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/elasticbeanstalk__sns__sqs/check_eb_environment_event_notification_is_delivered_to_the_subscribed_queue.py", "service": "elasticbeanstalk__sns__sqs"} {"check_id": "elb.attach-subnet-adds-availability-zone-and-detach-removes-it", "deployments": [], "key": "elb/attach-subnet-adds-availability-zone-and-detach-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "elb:AttachLoadBalancerToSubnets", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DescribeLoadBalancers", "elb:DetachLoadBalancerFromSubnets"], "path": "behavioral/elb/check_attach_subnet_adds_availability_zone_and_detach_removes_it.py", "service": "elb"} {"check_id": "elb.attribute-update-merges-and-preserves-unnamed-attributes", "deployments": [], "key": "elb/attribute-update-merges-and-preserves-unnamed-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DescribeLoadBalancerAttributes", "elb:DescribeLoadBalancers", "elb:ModifyLoadBalancerAttributes"], "path": "behavioral/elb/check_attribute_update_merges_and_preserves_unnamed_attributes.py", "service": "elb"} {"check_id": "elb.cross-zone-load-balancing-spreads-requests-beyond-the-node-zone", "deployments": [], "key": "elb/cross-zone-load-balancing-spreads-requests-beyond-the-node-zone", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "elb:ConfigureHealthCheck", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DeregisterInstancesFromLoadBalancer", "elb:DescribeInstanceHealth", "elb:DescribeLoadBalancerAttributes", "elb:DescribeLoadBalancers", "elb:ModifyLoadBalancerAttributes", "elb:RegisterInstancesWithLoadBalancer", "ssm:GetParameter"], "path": "behavioral/elb/check_cross_zone_load_balancing_spreads_requests_beyond_the_node_zone.py", "service": "elb"} {"check_id": "elb.delete-load-balancer-is-idempotent-and-removes-it-from-describe", "deployments": [], "key": "elb/delete-load-balancer-is-idempotent-and-removes-it-from-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DescribeInstanceHealth", "elb:DescribeLoadBalancers"], "path": "behavioral/elb/check_delete_load_balancer_is_idempotent_and_removes_it_from_describe.py", "service": "elb"} {"check_id": "elb.duplicate-listener-port-rejected", "deployments": [], "key": "elb/duplicate-listener-port-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "elb:CreateLoadBalancer", "elb:CreateLoadBalancerListeners", "elb:DeleteLoadBalancer", "elb:DeleteLoadBalancerListeners", "elb:DescribeLoadBalancers"], "path": "behavioral/elb/check_duplicate_listener_port_rejected.py", "service": "elb"} {"check_id": "elb.duplicate-listener-port-with-different-backend-rejected", "deployments": [], "key": "elb/duplicate-listener-port-with-different-backend-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elb:CreateLoadBalancer", "elb:CreateLoadBalancerListeners", "elb:DeleteLoadBalancer", "elb:DeleteLoadBalancerListeners", "elb:DescribeLoadBalancers"], "path": "behavioral/elb/check_duplicate_listener_port_with_different_backend_rejected.py", "service": "elb"} {"check_id": "elb.duplicate-load-balancer-name-rejected", "deployments": [], "key": "elb/duplicate-load-balancer-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DescribeLoadBalancers"], "path": "behavioral/elb/check_duplicate_load_balancer_name_rejected.py", "service": "elb"} {"check_id": "elb.enable-availability-zones-on-a-vpc-load-balancer-rejected", "deployments": [], "key": "elb/enable-availability-zones-on-a-vpc-load-balancer-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "elb:AttachLoadBalancerToSubnets", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DescribeLoadBalancers", "elb:EnableAvailabilityZonesForLoadBalancer"], "path": "behavioral/elb/check_enable_availability_zones_on_a_vpc_load_balancer_rejected.py", "service": "elb"} {"check_id": "elb.health-check-reconfiguration-replaces-every-field", "deployments": [], "key": "elb/health-check-reconfiguration-replaces-every-field", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "elb:ConfigureHealthCheck", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DescribeLoadBalancers"], "path": "behavioral/elb/check_health_check_reconfiguration_replaces_every_field.py", "service": "elb"} {"check_id": "elb.health-check-timeout-not-below-interval-rejected", "deployments": [], "key": "elb/health-check-timeout-not-below-interval-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elb:ConfigureHealthCheck", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DescribeLoadBalancers"], "path": "behavioral/elb/check_health_check_timeout_not_below_interval_rejected.py", "service": "elb"} {"check_id": "elb.instance-health-decides-whether-real-http-reaches-the-backend", "deployments": [], "key": "elb/instance-health-decides-whether-real-http-reaches-the-backend", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:RunInstances", "ec2:TerminateInstances", "elb:ConfigureHealthCheck", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DeregisterInstancesFromLoadBalancer", "elb:DescribeInstanceHealth", "elb:DescribeLoadBalancers", "elb:RegisterInstancesWithLoadBalancer", "ssm:GetParameter"], "path": "behavioral/elb/check_instance_health_decides_whether_real_http_reaches_the_backend.py", "service": "elb"} {"check_id": "elb.lb-cookie-stickiness-pins-a-client-to-one-registered-instance", "deployments": [], "key": "elb/lb-cookie-stickiness-pins-a-client-to-one-registered-instance", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:RunInstances", "ec2:TerminateInstances", "elb:ConfigureHealthCheck", "elb:CreateLBCookieStickinessPolicy", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DeleteLoadBalancerPolicy", "elb:DeregisterInstancesFromLoadBalancer", "elb:DescribeInstanceHealth", "elb:DescribeLoadBalancers", "elb:ModifyLoadBalancerAttributes", "elb:RegisterInstancesWithLoadBalancer", "elb:SetLoadBalancerPoliciesOfListener", "ssm:GetParameter"], "path": "behavioral/elb/check_lb_cookie_stickiness_pins_a_client_to_one_registered_instance.py", "service": "elb"} {"check_id": "elb.lb-cookie-stickiness-pins-client-to-one-instance", "deployments": [], "key": "elb/lb-cookie-stickiness-pins-client-to-one-instance", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:RunInstances", "ec2:TerminateInstances", "elb:ConfigureHealthCheck", "elb:CreateLBCookieStickinessPolicy", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DeleteLoadBalancerPolicy", "elb:DeregisterInstancesFromLoadBalancer", "elb:DescribeInstanceHealth", "elb:DescribeLoadBalancers", "elb:RegisterInstancesWithLoadBalancer", "elb:SetLoadBalancerPoliciesOfListener", "ssm:GetParameter"], "path": "behavioral/elb/check_lb_cookie_stickiness_pins_client_to_one_instance.py", "service": "elb"} {"check_id": "elb.out-of-service-instance-blocked-from-receiving-traffic", "deployments": [], "key": "elb/out-of-service-instance-blocked-from-receiving-traffic", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:RunInstances", "ec2:TerminateInstances", "elb:ConfigureHealthCheck", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DeregisterInstancesFromLoadBalancer", "elb:DescribeInstanceHealth", "elb:DescribeLoadBalancers", "elb:RegisterInstancesWithLoadBalancer", "ssm:GetParameter"], "path": "behavioral/elb/check_out_of_service_instance_blocked_from_receiving_traffic.py", "service": "elb"} {"check_id": "elb.register-nonexistent-instance-rejected", "deployments": [], "key": "elb/register-nonexistent-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "elb:ConfigureHealthCheck", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DescribeInstanceHealth", "elb:DescribeLoadBalancers", "elb:RegisterInstancesWithLoadBalancer"], "path": "behavioral/elb/check_register_nonexistent_instance_rejected.py", "service": "elb"} {"check_id": "elb.registered-instance-serves-real-http-through-elb-dns-name", "deployments": [], "key": "elb/registered-instance-serves-real-http-through-elb-dns-name", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:RunInstances", "ec2:TerminateInstances", "elb:ConfigureHealthCheck", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DeregisterInstancesFromLoadBalancer", "elb:DescribeInstanceHealth", "elb:DescribeLoadBalancers", "elb:RegisterInstancesWithLoadBalancer", "ssm:GetParameter"], "path": "behavioral/elb/check_registered_instance_serves_real_http_through_elb_dns_name.py", "service": "elb"} {"check_id": "elb.stickiness-policy-deletion-while-attached-to-listener-rejected", "deployments": [], "key": "elb/stickiness-policy-deletion-while-attached-to-listener-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elb:CreateLBCookieStickinessPolicy", "elb:CreateLoadBalancer", "elb:DeleteLoadBalancer", "elb:DeleteLoadBalancerPolicy", "elb:DescribeLoadBalancerPolicies", "elb:DescribeLoadBalancers", "elb:SetLoadBalancerPoliciesOfListener"], "path": "behavioral/elb/check_stickiness_policy_deletion_while_attached_to_listener_rejected.py", "service": "elb"} {"check_id": "elbv2.add-and-describe-tags", "deployments": [], "key": "elbv2/add-and-describe-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_add_and_describe_tags.py", "service": "elbv2"} {"check_id": "elbv2.add-listener-certificate-nonexistent-arn-rejected", "deployments": [], "key": "elbv2/add-listener-certificate-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerCertificates"], "path": "behavioral/elbv2/check_add_listener_certificate_nonexistent_arn_rejected.py", "service": "elbv2"} {"check_id": "elbv2.add-listener-certificate-via-acm-round-trip", "deployments": [], "key": "elbv2/add-listener-certificate-via-acm-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_add_listener_certificate_via_acm_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.add-listener-certificates-and-describe", "deployments": [], "key": "elbv2/add-listener-certificates-and-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:ModifyVpcAttribute", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_add_listener_certificates_and_describe.py", "service": "elbv2"} {"check_id": "elbv2.add-listener-certificates-malformed-arn-rejected", "deployments": [], "key": "elbv2/add-listener-certificates-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_add_listener_certificates_malformed_arn_rejected.py", "service": "elbv2"} {"check_id": "elbv2.add-listener-certificates-too-many-fails", "deployments": [], "key": "elbv2/add-listener-certificates-too-many-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_add_listener_certificates_too_many_fails.py", "service": "elbv2"} {"check_id": "elbv2.add-listener-certificates-unknown-cert-fails", "deployments": [], "key": "elbv2/add-listener-certificates-unknown-cert-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_add_listener_certificates_unknown_cert_fails.py", "service": "elbv2"} {"check_id": "elbv2.add-remove-tags-round-trip", "deployments": [], "key": "elbv2/add-remove-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags", "elbv2:DescribeTargetGroups", "elbv2:RemoveTags"], "path": "behavioral/elbv2/check_add_remove_tags_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.add-tags-duplicate-keys-fails", "deployments": [], "key": "elbv2/add-tags-duplicate-keys-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_add_tags_duplicate_keys_fails.py", "service": "elbv2"} {"check_id": "elbv2.add-tags-duplicate-keys-rejected", "deployments": [], "key": "elbv2/add-tags-duplicate-keys-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_add_tags_duplicate_keys_rejected.py", "service": "elbv2"} {"check_id": "elbv2.add-tags-exceeding-quota-rejected", "deployments": [], "key": "elbv2/add-tags-exceeding-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_add_tags_exceeding_quota_rejected.py", "service": "elbv2"} {"check_id": "elbv2.add-tags-nonexistent-resource-fails", "deployments": [], "key": "elbv2/add-tags-nonexistent-resource-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_add_tags_nonexistent_resource_fails.py", "service": "elbv2"} {"check_id": "elbv2.add-trust-store-revocation-invalid-content-rejected", "deployments": [], "key": "elbv2/add-trust-store-revocation-invalid-content-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_add_trust_store_revocation_invalid_content_rejected.py", "service": "elbv2"} {"check_id": "elbv2.add-trust-store-revocations-invalid-content-fails", "deployments": [], "key": "elbv2/add-trust-store-revocations-invalid-content-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/elbv2/check_add_trust_store_revocations_invalid_content_fails.py", "service": "elbv2"} {"check_id": "elbv2.add-trust-store-revocations-malformed-crl-rejected", "deployments": [], "key": "elbv2/add-trust-store-revocations-malformed-crl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_add_trust_store_revocations_malformed_crl_rejected.py", "service": "elbv2"} {"check_id": "elbv2.add-trust-store-revocations-too-many-entries-fails", "deployments": [], "key": "elbv2/add-trust-store-revocations-too-many-entries-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_add_trust_store_revocations_too_many_entries_fails.py", "service": "elbv2"} {"check_id": "elbv2.alb-generated-responses-excluded-from-requestcount-and-target-codes", "deployments": [], "key": "elbv2/alb-generated-responses-excluded-from-requestcount-and-target-codes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/elbv2/check_alb_generated_responses_excluded_from_requestcount_and_target_codes.py", "service": "elbv2"} {"check_id": "elbv2.alb-listener-target-group-lifecycle", "deployments": [], "key": "elbv2/alb-listener-target-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:AddTags", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroup", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_alb_listener_target_group_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.capacity-reservation-exceeds-limit-rejected", "deployments": [], "key": "elbv2/capacity-reservation-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers", "elbv2:ModifyCapacityReservation"], "path": "behavioral/elbv2/check_capacity_reservation_exceeds_limit_rejected.py", "service": "elbv2"} {"check_id": "elbv2.capacity-reservation-modify-reaches-active-state", "deployments": [], "key": "elbv2/capacity-reservation-modify-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers", "elbv2:ModifyCapacityReservation"], "path": "behavioral/elbv2/check_capacity_reservation_modify_reaches_active_state.py", "service": "elbv2"} {"check_id": "elbv2.capacity-reservation-modify-then-describe-transitions", "deployments": [], "key": "elbv2/capacity-reservation-modify-then-describe-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers", "elbv2:ModifyCapacityReservation"], "path": "behavioral/elbv2/check_capacity_reservation_modify_then_describe_transitions.py", "service": "elbv2"} {"check_id": "elbv2.cascade-delete-dependency", "deployments": [], "key": "elbv2/cascade-delete-dependency", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_cascade_delete_dependency.py", "service": "elbv2"} {"check_id": "elbv2.concurrent-capacity-reservation-modify-race-single-winner", "deployments": [], "key": "elbv2/concurrent-capacity-reservation-modify-race-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers", "elbv2:ModifyCapacityReservation"], "path": "behavioral/elbv2/check_concurrent_capacity_reservation_modify_race_single_winner.py", "service": "elbv2"} {"check_id": "elbv2.concurrent-create-listener-same-port-race", "deployments": [], "key": "elbv2/concurrent-create-listener-same-port-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_concurrent_create_listener_same_port_race.py", "service": "elbv2"} {"check_id": "elbv2.concurrent-modify-rule-priority-optimistic-lock", "deployments": [], "key": "elbv2/concurrent-modify-rule-priority-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_concurrent_modify_rule_priority_optimistic_lock.py", "service": "elbv2"} {"check_id": "elbv2.concurrent-register-deregister-targets-consistent-state", "deployments": [], "key": "elbv2/concurrent-register-deregister-targets-consistent-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_concurrent_register_deregister_targets_consistent_state.py", "service": "elbv2"} {"check_id": "elbv2.concurrent-target-registration-no-loss", "deployments": [], "key": "elbv2/concurrent-target-registration-no-loss", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_concurrent_target_registration_no_loss.py", "service": "elbv2"} {"check_id": "elbv2.create-duplicate-listener-rejected", "deployments": [], "key": "elbv2/create-duplicate-listener-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListener"], "path": "behavioral/elbv2/check_create_duplicate_listener_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-listener-basic", "deployments": [], "key": "elbv2/create-listener-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners"], "path": "behavioral/elbv2/check_create_listener_basic.py", "service": "elbv2"} {"check_id": "elbv2.create-listener-duplicate-port-fails", "deployments": [], "key": "elbv2/create-listener-duplicate-port-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners"], "path": "behavioral/elbv2/check_create_listener_duplicate_port_fails.py", "service": "elbv2"} {"check_id": "elbv2.create-listener-nonexistent-lb-fails", "deployments": [], "key": "elbv2/create-listener-nonexistent-lb-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_create_listener_nonexistent_lb_fails.py", "service": "elbv2"} {"check_id": "elbv2.create-listener-unknown-ssl-policy-name-rejected", "deployments": [], "key": "elbv2/create-listener-unknown-ssl-policy-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "iam:DeleteServerCertificate", "iam:UploadServerCertificate"], "path": "behavioral/elbv2/check_create_listener_unknown_ssl_policy_name_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-listener-unsupported-protocol-version-rejected", "deployments": [], "key": "elbv2/create-listener-unsupported-protocol-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups"], "path": "behavioral/elbv2/check_create_listener_unsupported_protocol_version_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-load-balancer-duplicate-name-fails", "deployments": [], "key": "elbv2/create-load-balancer-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_create_load_balancer_duplicate_name_fails.py", "service": "elbv2"} {"check_id": "elbv2.create-load-balancer-empty-vs-absent-tags-preserved", "deployments": [], "key": "elbv2/create-load-balancer-empty-vs-absent-tags-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elbv2:AddTags", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTags", "elbv2:RemoveTags"], "path": "behavioral/elbv2/check_create_load_balancer_empty_vs_absent_tags_preserved.py", "service": "elbv2"} {"check_id": "elbv2.create-load-balancer-idempotent-replay", "deployments": [], "key": "elbv2/create-load-balancer-idempotent-replay", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_create_load_balancer_idempotent_replay.py", "service": "elbv2"} {"check_id": "elbv2.create-load-balancer-insufficient-subnets-fails", "deployments": [], "key": "elbv2/create-load-balancer-insufficient-subnets-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_create_load_balancer_insufficient_subnets_fails.py", "service": "elbv2"} {"check_id": "elbv2.create-load-balancer-invalid-scheme-rejected", "deployments": [], "key": "elbv2/create-load-balancer-invalid-scheme-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_create_load_balancer_invalid_scheme_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-load-balancer-missing-permission-denied", "deployments": [], "key": "elbv2/create-load-balancer-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_create_load_balancer_missing_permission_denied.py", "service": "elbv2"} {"check_id": "elbv2.create-load-balancer-reaches-active-state", "deployments": [], "key": "elbv2/create-load-balancer-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_create_load_balancer_reaches_active_state.py", "service": "elbv2"} {"check_id": "elbv2.create-rule-basic", "deployments": [], "key": "elbv2/create-rule-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_create_rule_basic.py", "service": "elbv2"} {"check_id": "elbv2.create-rule-condition-value-and-action-limits-rejected", "deployments": [], "key": "elbv2/create-rule-condition-value-and-action-limits-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_create_rule_condition_value_and_action_limits_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-rule-condition-value-exceeds-length-limit-rejected", "deployments": [], "key": "elbv2/create-rule-condition-value-exceeds-length-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_create_rule_condition_value_exceeds_length_limit_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-rule-duplicate-priority-fails", "deployments": [], "key": "elbv2/create-rule-duplicate-priority-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_create_rule_duplicate_priority_fails.py", "service": "elbv2"} {"check_id": "elbv2.create-rule-priority-conflict-rejected", "deployments": [], "key": "elbv2/create-rule-priority-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_create_rule_priority_conflict_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-rule-same-priority-concurrent-single-winner", "deployments": [], "key": "elbv2/create-rule-same-priority-concurrent-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_create_rule_same_priority_concurrent_single_winner.py", "service": "elbv2"} {"check_id": "elbv2.create-target-group-basic", "deployments": [], "key": "elbv2/create-target-group-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups"], "path": "behavioral/elbv2/check_create_target_group_basic.py", "service": "elbv2"} {"check_id": "elbv2.create-target-group-duplicate-name-fails", "deployments": [], "key": "elbv2/create-target-group-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups"], "path": "behavioral/elbv2/check_create_target_group_duplicate_name_fails.py", "service": "elbv2"} {"check_id": "elbv2.create-target-group-health-check-protocol-incompatible-rejected", "deployments": [], "key": "elbv2/create-target-group-health-check-protocol-incompatible-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups"], "path": "behavioral/elbv2/check_create_target_group_health_check_protocol_incompatible_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-target-group-identical-params-is-idempotent", "deployments": [], "key": "elbv2/create-target-group-identical-params-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups"], "path": "behavioral/elbv2/check_create_target_group_identical_params_is_idempotent.py", "service": "elbv2"} {"check_id": "elbv2.create-target-group-malformed-health-check-path-rejected", "deployments": [], "key": "elbv2/create-target-group-malformed-health-check-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyTargetGroup"], "path": "behavioral/elbv2/check_create_target_group_malformed_health_check_path_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-trust-store-duplicate-name-fails", "deployments": [], "key": "elbv2/create-trust-store-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_create_trust_store_duplicate_name_fails.py", "service": "elbv2"} {"check_id": "elbv2.create-trust-store-invalid-ca-bundle-rejected", "deployments": [], "key": "elbv2/create-trust-store-invalid-ca-bundle-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_create_trust_store_invalid_ca_bundle_rejected.py", "service": "elbv2"} {"check_id": "elbv2.create-trust-store-reaches-active", "deployments": [], "key": "elbv2/create-trust-store-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_create_trust_store_reaches_active.py", "service": "elbv2"} {"check_id": "elbv2.deep-elbv2-2-nlbwire-cross-zone-target-group-override", "deployments": [], "key": "elbv2/deep-elbv2-2-nlbwire-cross-zone-target-group-override", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_deep_elbv2_2_nlbwire_cross_zone_target_group_override.py", "service": "elbv2"} {"check_id": "elbv2.deep-elbv2-2-nlbwire-proxy-protocol-v2-signature-and-address-block", "deployments": [], "key": "elbv2/deep-elbv2-2-nlbwire-proxy-protocol-v2-signature-and-address-block", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_deep_elbv2_2_nlbwire_proxy_protocol_v2_signature_and_address_block.py", "service": "elbv2"} {"check_id": "elbv2.deep-elbv2-2-nlbwire-security-group-unlisted-listener-port-blocked", "deployments": [], "key": "elbv2/deep-elbv2-2-nlbwire-security-group-unlisted-listener-port-blocked", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_deep_elbv2_2_nlbwire_security_group_unlisted_listener_port_blocked.py", "service": "elbv2"} {"check_id": "elbv2.delete-default-rule-fails", "deployments": [], "key": "elbv2/delete-default-rule-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_delete_default_rule_fails.py", "service": "elbv2"} {"check_id": "elbv2.delete-listener-then-not-found", "deployments": [], "key": "elbv2/delete-listener-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:ModifyListener"], "path": "behavioral/elbv2/check_delete_listener_then_not_found.py", "service": "elbv2"} {"check_id": "elbv2.delete-load-balancer-then-not-found", "deployments": [], "key": "elbv2/delete-load-balancer-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_delete_load_balancer_then_not_found.py", "service": "elbv2"} {"check_id": "elbv2.delete-load-balancer-with-deletion-protection-rejected", "deployments": [], "key": "elbv2/delete-load-balancer-with-deletion-protection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_delete_load_balancer_with_deletion_protection_rejected.py", "service": "elbv2"} {"check_id": "elbv2.delete-nonexistent-listener-fails", "deployments": [], "key": "elbv2/delete-nonexistent-listener-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_delete_nonexistent_listener_fails.py", "service": "elbv2"} {"check_id": "elbv2.delete-nonexistent-load-balancer-is-idempotent", "deployments": [], "key": "elbv2/delete-nonexistent-load-balancer-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_delete_nonexistent_load_balancer_is_idempotent.py", "service": "elbv2"} {"check_id": "elbv2.delete-rule-then-not-found", "deployments": [], "key": "elbv2/delete-rule-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules", "elbv2:ModifyRule"], "path": "behavioral/elbv2/check_delete_rule_then_not_found.py", "service": "elbv2"} {"check_id": "elbv2.delete-shared-trust-store-association-same-account-fails", "deployments": [], "key": "elbv2/delete-shared-trust-store-association-same-account-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteLoadBalancer", "elbv2:DeleteSharedTrustStoreAssociation", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:ModifyListener", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/elbv2/check_delete_shared_trust_store_association_same_account_fails.py", "service": "elbv2"} {"check_id": "elbv2.delete-target-group-in-use-fails", "deployments": [], "key": "elbv2/delete-target-group-in-use-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyListener", "elbv2:ModifyTargetGroup"], "path": "behavioral/elbv2/check_delete_target_group_in_use_fails.py", "service": "elbv2"} {"check_id": "elbv2.delete-target-group-then-not-found", "deployments": [], "key": "elbv2/delete-target-group-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyTargetGroupAttributes"], "path": "behavioral/elbv2/check_delete_target_group_then_not_found.py", "service": "elbv2"} {"check_id": "elbv2.delete-trust-store-in-use-by-listener-fails", "deployments": [], "key": "elbv2/delete-trust-store-in-use-by-listener-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:ModifyListener", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elbv2/check_delete_trust_store_in_use_by_listener_fails.py", "service": "elbv2"} {"check_id": "elbv2.delete-trust-store-in-use-fails", "deployments": [], "key": "elbv2/delete-trust-store-in-use-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStores", "elbv2:ModifyListener", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/elbv2/check_delete_trust_store_in_use_fails.py", "service": "elbv2"} {"check_id": "elbv2.delete-trust-store-in-use-rejected", "deployments": [], "key": "elbv2/delete-trust-store-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:ModifyListener", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elbv2/check_delete_trust_store_in_use_rejected.py", "service": "elbv2"} {"check_id": "elbv2.delete-trust-store-then-not-found", "deployments": [], "key": "elbv2/delete-trust-store-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTags", "elbv2:DescribeTrustStores", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_delete_trust_store_then_not_found.py", "service": "elbv2"} {"check_id": "elbv2.deletion-protection-blocks-delete", "deployments": [], "key": "elbv2/deletion-protection-blocks-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_deletion_protection_blocks_delete.py", "service": "elbv2"} {"check_id": "elbv2.deploy-alb-cfn-then-target-health-behaves", "deployments": [], "key": "elbv2/deploy-alb-cfn-then-target-health-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/elbv2/check_deploy_alb_cfn_then_target_health_behaves.py", "service": "elbv2"} {"check_id": "elbv2.deploy-alb-listener-target-group-cfn-behaves", "deployments": [], "key": "elbv2/deploy-alb-listener-target-group-cfn-behaves", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction"], "path": "behavioral/elbv2/check_deploy_alb_listener_target_group_cfn_behaves.py", "service": "elbv2"} {"check_id": "elbv2.deploy-alb-listener-target-group-cfn-routes-traffic", "deployments": [], "key": "elbv2/deploy-alb-listener-target-group-cfn-routes-traffic", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "elbv2:DeregisterTargets", "elbv2:DescribeListeners", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/elbv2/check_deploy_alb_listener_target_group_cfn_routes_traffic.py", "service": "elbv2"} {"check_id": "elbv2.deploy-cfn-alb-nonexistent-subnet-rejected", "deployments": [], "key": "elbv2/deploy-cfn-alb-nonexistent-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_deploy_cfn_alb_nonexistent_subnet_rejected.py", "service": "elbv2"} {"check_id": "elbv2.deploy-duplicate-rule-priority-rejected", "deployments": [], "key": "elbv2/deploy-duplicate-rule-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateRule", "elbv2:DeleteRule", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_deploy_duplicate_rule_priority_rejected.py", "service": "elbv2"} {"check_id": "elbv2.deploy-elbv2-1-rule-update-tg-replace-deletion-protection", "deployments": [], "key": "elbv2/deploy-elbv2-1-rule-update-tg-replace-deletion-protection", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_deploy_elbv2_1_rule_update_tg_replace_deletion_protection.py", "service": "elbv2"} {"check_id": "elbv2.deploy-elbv2-2-rule-priority-collision-update-rejected", "deployments": [], "key": "elbv2/deploy-elbv2-2-rule-priority-collision-update-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_deploy_elbv2_2_rule_priority_collision_update_rejected.py", "service": "elbv2"} {"check_id": "elbv2.deploy-listener-rule-cfn-routing-order-behaves", "deployments": [], "key": "elbv2/deploy-listener-rule-cfn-routing-order-behaves", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:DescribeRules", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_deploy_listener_rule_cfn_routing_order_behaves.py", "service": "elbv2"} {"check_id": "elbv2.deploy-nlb-target-registration-cfn-health-check", "deployments": [], "key": "elbv2/deploy-nlb-target-registration-cfn-health-check", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_deploy_nlb_target_registration_cfn_health_check.py", "service": "elbv2"} {"check_id": "elbv2.deploy-trust-store-cfn-associates-with-listener", "deployments": [], "key": "elbv2/deploy-trust-store-cfn-associates-with-listener", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elbv2/check_deploy_trust_store_cfn_associates_with_listener.py", "service": "elbv2"} {"check_id": "elbv2.deploy-trust-store-cfn-association-enforced", "deployments": [], "key": "elbv2/deploy-trust-store-cfn-association-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTrustStoreRevocations", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_deploy_trust_store_cfn_association_enforced.py", "service": "elbv2"} {"check_id": "elbv2.deploy-trust-store-deletion-rejected-while-in-use", "deployments": [], "key": "elbv2/deploy-trust-store-deletion-rejected-while-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:DescribeSubnets", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elbv2/check_deploy_trust_store_deletion_rejected_while_in_use.py", "service": "elbv2"} {"check_id": "elbv2.deploy-truststore-cfn-bundle-integrity-behaves", "deployments": [], "key": "elbv2/deploy-truststore-cfn-bundle-integrity-behaves", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_deploy_truststore_cfn_bundle_integrity_behaves.py", "service": "elbv2"} {"check_id": "elbv2.deregister-nonexistent-target-is-idempotent", "deployments": [], "key": "elbv2/deregister-nonexistent-target-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_deregister_nonexistent_target_is_idempotent.py", "service": "elbv2"} {"check_id": "elbv2.deregister-target-draining-honors-delay", "deployments": [], "key": "elbv2/deregister-target-draining-honors-delay", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:AddTags", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_deregister_target_draining_honors_delay.py", "service": "elbv2"} {"check_id": "elbv2.deregister-targets-draining-before-removal", "deployments": [], "key": "elbv2/deregister-targets-draining-before-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_deregister_targets_draining_before_removal.py", "service": "elbv2"} {"check_id": "elbv2.deregister-targets-transitions-state", "deployments": [], "key": "elbv2/deregister-targets-transitions-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_deregister_targets_transitions_state.py", "service": "elbv2"} {"check_id": "elbv2.deregistration-delay-serves-in-flight-requests-while-draining", "deployments": [], "key": "elbv2/deregistration-delay-serves-in-flight-requests-while-draining", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyListener", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_deregistration_delay_serves_in_flight_requests_while_draining.py", "service": "elbv2"} {"check_id": "elbv2.describe-capacity-reservation-default-state", "deployments": [], "key": "elbv2/describe-capacity-reservation-default-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:ModifyVpcAttribute", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_describe_capacity_reservation_default_state.py", "service": "elbv2"} {"check_id": "elbv2.describe-capacity-reservation-nonexistent-lb-fails", "deployments": [], "key": "elbv2/describe-capacity-reservation-nonexistent-lb-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:ModifyVpcAttribute", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_describe_capacity_reservation_nonexistent_lb_fails.py", "service": "elbv2"} {"check_id": "elbv2.describe-listener-attributes-defaults", "deployments": [], "key": "elbv2/describe-listener-attributes-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerAttributes", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_describe_listener_attributes_defaults.py", "service": "elbv2"} {"check_id": "elbv2.describe-listener-certificates-not-found", "deployments": [], "key": "elbv2/describe-listener-certificates-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerCertificates"], "path": "behavioral/elbv2/check_describe_listener_certificates_not_found.py", "service": "elbv2"} {"check_id": "elbv2.describe-load-balancer-nonexistent-arn-rejected", "deployments": [], "key": "elbv2/describe-load-balancer-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_describe_load_balancer_nonexistent_arn_rejected.py", "service": "elbv2"} {"check_id": "elbv2.describe-load-balancers-unknown-arn-fails", "deployments": [], "key": "elbv2/describe-load-balancers-unknown-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_describe_load_balancers_unknown_arn_fails.py", "service": "elbv2"} {"check_id": "elbv2.describe-rules-returns-priority-ordered", "deployments": [], "key": "elbv2/describe-rules-returns-priority-ordered", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_describe_rules_returns_priority_ordered.py", "service": "elbv2"} {"check_id": "elbv2.describe-ssl-policies-malformed-name-filter-rejected", "deployments": [], "key": "elbv2/describe-ssl-policies-malformed-name-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:DescribeSSLPolicies"], "path": "behavioral/elbv2/check_describe_ssl_policies_malformed_name_filter_rejected.py", "service": "elbv2"} {"check_id": "elbv2.describe-ssl-policies-malformed-name-format-rejected", "deployments": [], "key": "elbv2/describe-ssl-policies-malformed-name-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:DescribeSSLPolicies"], "path": "behavioral/elbv2/check_describe_ssl_policies_malformed_name_format_rejected.py", "service": "elbv2"} {"check_id": "elbv2.describe-ssl-policies-returns-stable-order", "deployments": [], "key": "elbv2/describe-ssl-policies-returns-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:DescribeSSLPolicies"], "path": "behavioral/elbv2/check_describe_ssl_policies_returns_stable_order.py", "service": "elbv2"} {"check_id": "elbv2.describe-ssl-policies-unknown-name-rejected", "deployments": [], "key": "elbv2/describe-ssl-policies-unknown-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:DescribeSSLPolicies"], "path": "behavioral/elbv2/check_describe_ssl_policies_unknown_name_rejected.py", "service": "elbv2"} {"check_id": "elbv2.describe-target-health-unknown-group-fails", "deployments": [], "key": "elbv2/describe-target-health-unknown-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_describe_target_health_unknown_group_fails.py", "service": "elbv2"} {"check_id": "elbv2.describe-trust-store-associations-for-shared-listener", "deployments": [], "key": "elbv2/describe-trust-store-associations-for-shared-listener", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_describe_trust_store_associations_for_shared_listener.py", "service": "elbv2"} {"check_id": "elbv2.desync-mitigation-strictest-blocks-ambiguous-framing-before-the-target", "deployments": [], "key": "elbv2/desync-mitigation-strictest-blocks-ambiguous-framing-before-the-target", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/elbv2/check_desync_mitigation_strictest_blocks_ambiguous_framing_before_the_target.py", "service": "elbv2"} {"check_id": "elbv2.drop-invalid-header-fields-strips-the-header-before-the-target", "deployments": [], "key": "elbv2/drop-invalid-header-fields-strips-the-header-before-the-target", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyLoadBalancerAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/elbv2/check_drop_invalid_header_fields_strips_the_header_before_the_target.py", "service": "elbv2"} {"check_id": "elbv2.duplicate-listener-port-rejected", "deployments": [], "key": "elbv2/duplicate-listener-port-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_duplicate_listener_port_rejected.py", "service": "elbv2"} {"check_id": "elbv2.duplicate-tag-key-in-single-request-rejected", "deployments": [], "key": "elbv2/duplicate-tag-key-in-single-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_duplicate_tag_key_in_single_request_rejected.py", "service": "elbv2"} {"check_id": "elbv2.e2e-alb-target-routing-lifecycle", "deployments": [], "key": "elbv2/e2e-alb-target-routing-lifecycle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListFunctions"], "path": "behavioral/elbv2/check_e2e_alb_target_routing_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.e2e-alb-traffic-lifecycle-flow", "deployments": [], "key": "elbv2/e2e-alb-traffic-lifecycle-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_e2e_alb_traffic_lifecycle_flow.py", "service": "elbv2"} {"check_id": "elbv2.e2e-alb-traffic-routing-lifecycle", "deployments": [], "key": "elbv2/e2e-alb-traffic-routing-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyListener", "elbv2:ModifyRule", "elbv2:ModifyTargetGroup", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/elbv2/check_e2e_alb_traffic_routing_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.e2e-blue-green-weighted-cutover-flow", "deployments": [], "key": "elbv2/e2e-blue-green-weighted-cutover-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyRule", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_e2e_blue_green_weighted_cutover_flow.py", "service": "elbv2"} {"check_id": "elbv2.e2e-blue-green-weighted-target-group-shift", "deployments": [], "key": "elbv2/e2e-blue-green-weighted-target-group-shift", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyRule", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/elbv2/check_e2e_blue_green_weighted_target_group_shift.py", "service": "elbv2"} {"check_id": "elbv2.e2e-http-to-https-redirect-traffic-flow", "deployments": [], "key": "elbv2/e2e-http-to-https-redirect-traffic-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_e2e_http_to_https_redirect_traffic_flow.py", "service": "elbv2"} {"check_id": "elbv2.e2e-mtls-trust-store-listener-flow", "deployments": [], "key": "elbv2/e2e-mtls-trust-store-listener-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTrustStoreRevocations", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_e2e_mtls_trust_store_listener_flow.py", "service": "elbv2"} {"check_id": "elbv2.e2e-mtls-truststore-revocation-flow", "deployments": [], "key": "elbv2/e2e-mtls-truststore-revocation-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:AddTrustStoreRevocations", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTrustStore", "elbv2:DeleteLoadBalancer", "elbv2:DeleteSharedTrustStoreAssociation", "elbv2:DeleteTrustStore", "elbv2:DescribeListenerAttributes", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "elbv2:ModifyListener", "elbv2:ModifyListenerAttributes", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elbv2/check_e2e_mtls_truststore_revocation_flow.py", "service": "elbv2"} {"check_id": "elbv2.e2e-target-group-deletion-while-referenced-rejected", "deployments": [], "key": "elbv2/e2e-target-group-deletion-while-referenced-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:ModifyListener"], "path": "behavioral/elbv2/check_e2e_target_group_deletion_while_referenced_rejected.py", "service": "elbv2"} {"check_id": "elbv2.e2e-trust-store-mtls-association-and-revocation-flow", "deployments": [], "key": "elbv2/e2e-trust-store-mtls-association-and-revocation-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:AddTrustStoreRevocations", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteSharedTrustStoreAssociation", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "elbv2:ModifyListener", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_e2e_trust_store_mtls_association_and_revocation_flow.py", "service": "elbv2"} {"check_id": "elbv2.e2e-weighted-target-group-shift-flow", "deployments": [], "key": "elbv2/e2e-weighted-target-group-shift-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyRule", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/elbv2/check_e2e_weighted_target_group_shift_flow.py", "service": "elbv2"} {"check_id": "elbv2.elbv2-https-listener-with-cert", "deployments": [], "key": "elbv2/elbv2-https-listener-with-cert", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners"], "path": "behavioral/elbv2/check_elbv2_https_listener_with_cert.py", "service": "elbv2"} {"check_id": "elbv2.elbv2-target-reaches-healthy", "deployments": [], "key": "elbv2/elbv2-target-reaches-healthy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_elbv2_target_reaches_healthy.py", "service": "elbv2"} {"check_id": "elbv2.elbv2attr-deep-elbv2-1-mtls-passthrough-clientcert-chain", "deployments": [], "key": "elbv2/elbv2attr-deep-elbv2-1-mtls-passthrough-clientcert-chain", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/elbv2/check_elbv2attr_deep_elbv2_1_mtls_passthrough_clientcert_chain.py", "service": "elbv2"} {"check_id": "elbv2.elbv2attr-deep-elbv2-1-mtls-passthrough-forged-clientcert-header-stripped", "deployments": [], "key": "elbv2/elbv2attr-deep-elbv2-1-mtls-passthrough-forged-clientcert-header-stripped", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/elbv2/check_elbv2attr_deep_elbv2_1_mtls_passthrough_forged_clientcert_header_stripped.py", "service": "elbv2"} {"check_id": "elbv2.elbv2attr-deep-elbv2-1-server-header-removed-and-hsts-injected", "deployments": [], "key": "elbv2/elbv2attr-deep-elbv2-1-server-header-removed-and-hsts-injected", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListenerAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/elbv2/check_elbv2attr_deep_elbv2_1_server_header_removed_and_hsts_injected.py", "service": "elbv2"} {"check_id": "elbv2.elbv2attr-deep-elbv2-1-unhealthy-state-routing-min-healthy-count-serves-unhealthy-target", "deployments": [], "key": "elbv2/elbv2attr-deep-elbv2-1-unhealthy-state-routing-min-healthy-count-serves-unhealthy-target", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_elbv2attr_deep_elbv2_1_unhealthy_state_routing_min_healthy_count_serves_unhealthy_target.py", "service": "elbv2"} {"check_id": "elbv2.elbv2shape-deep-elbv2-3-app-cookie-stickiness-pins-with-cookie-spreads-without", "deployments": [], "key": "elbv2/elbv2shape-deep-elbv2-3-app-cookie-stickiness-pins-with-cookie-spreads-without", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_elbv2shape_deep_elbv2_3_app_cookie_stickiness_pins_with_cookie_spreads_without.py", "service": "elbv2"} {"check_id": "elbv2.elbv2shape-deep-elbv2-3-least-outstanding-requests-starves-slow-backend-vs-round-robin", "deployments": [], "key": "elbv2/elbv2shape-deep-elbv2-3-least-outstanding-requests-starves-slow-backend-vs-round-robin", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_elbv2shape_deep_elbv2_3_least_outstanding_requests_starves_slow_backend_vs_round_robin.py", "service": "elbv2"} {"check_id": "elbv2.elbv2shape-deep-elbv2-3-oversize-request-line-and-headers-rejected-by-alb", "deployments": [], "key": "elbv2/elbv2shape-deep-elbv2-3-oversize-request-line-and-headers-rejected-by-alb", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_elbv2shape_deep_elbv2_3_oversize_request_line_and_headers_rejected_by_alb.py", "service": "elbv2"} {"check_id": "elbv2.elbv2shape-deep-elbv2-3-slow-start-ramps-late-target-but-not-one-call-batch", "deployments": [], "key": "elbv2/elbv2shape-deep-elbv2-3-slow-start-ramps-late-target-but-not-one-call-batch", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_elbv2shape_deep_elbv2_3_slow_start_ramps_late_target_but_not_one_call_batch.py", "service": "elbv2"} {"check_id": "elbv2.elbv2shape-deep-elbv2-3-slow-start-with-least-outstanding-requests-rejected", "deployments": [], "key": "elbv2/elbv2shape-deep-elbv2-3-slow-start-with-least-outstanding-requests-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_elbv2shape_deep_elbv2_3_slow_start_with_least_outstanding_requests_rejected.py", "service": "elbv2"} {"check_id": "elbv2.empty-string-vs-absent-tag-value-distinguished", "deployments": [], "key": "elbv2/empty-string-vs-absent-tag-value-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_empty_string_vs_absent_tag_value_distinguished.py", "service": "elbv2"} {"check_id": "elbv2.forward-to-incompatible-target-group-protocol-rejected", "deployments": [], "key": "elbv2/forward-to-incompatible-target-group-protocol-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners"], "path": "behavioral/elbv2/check_forward_to_incompatible_target_group_protocol_rejected.py", "service": "elbv2"} {"check_id": "elbv2.forward-weighted-and-sticky-target-groups-data-plane", "deployments": [], "key": "elbv2/forward-weighted-and-sticky-target-groups-data-plane", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListener", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/elbv2/check_forward_weighted_and_sticky_target_groups_data_plane.py", "service": "elbv2"} {"check_id": "elbv2.get-resource-policy-consistent-read", "deployments": [], "key": "elbv2/get-resource-policy-consistent-read", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:GetResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_get_resource_policy_consistent_read.py", "service": "elbv2"} {"check_id": "elbv2.get-resource-policy-no-policy-rejected", "deployments": [], "key": "elbv2/get-resource-policy-no-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elbv2/check_get_resource_policy_no_policy_rejected.py", "service": "elbv2"} {"check_id": "elbv2.get-resource-policy-nonexistent-fails", "deployments": [], "key": "elbv2/get-resource-policy-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/elbv2/check_get_resource_policy_nonexistent_fails.py", "service": "elbv2"} {"check_id": "elbv2.get-resource-policy-returns-attached-json-policy", "deployments": [], "key": "elbv2/get-resource-policy-returns-attached-json-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_get_resource_policy_returns_attached_json_policy.py", "service": "elbv2"} {"check_id": "elbv2.get-resource-policy-returns-matching-policy-document", "deployments": [], "key": "elbv2/get-resource-policy-returns-matching-policy-document", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_get_resource_policy_returns_matching_policy_document.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-ca-bundle-byte-equality", "deployments": [], "key": "elbv2/get-trust-store-ca-bundle-byte-equality", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_ca_bundle_byte_equality.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-ca-bundle-byte-equality-round-trip", "deployments": [], "key": "elbv2/get-trust-store-ca-bundle-byte-equality-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_ca_bundle_byte_equality_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-ca-bundle-byte-fidelity", "deployments": [], "key": "elbv2/get-trust-store-ca-bundle-byte-fidelity", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_ca_bundle_byte_fidelity.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-ca-bundle-returns-full-uploaded-bundle", "deployments": [], "key": "elbv2/get-trust-store-ca-bundle-returns-full-uploaded-bundle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_ca_bundle_returns_full_uploaded_bundle.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-ca-bundle-unknown-truststore-fails", "deployments": [], "key": "elbv2/get-trust-store-ca-bundle-unknown-truststore-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_get_trust_store_ca_bundle_unknown_truststore_fails.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-revocation-content-byte-equality", "deployments": [], "key": "elbv2/get-trust-store-revocation-content-byte-equality", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_revocation_content_byte_equality.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-revocation-content-byte-equality-round-trip", "deployments": [], "key": "elbv2/get-trust-store-revocation-content-byte-equality-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_revocation_content_byte_equality_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-revocation-content-byte-fidelity", "deployments": [], "key": "elbv2/get-trust-store-revocation-content-byte-fidelity", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_revocation_content_byte_fidelity.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-revocation-content-matches-added", "deployments": [], "key": "elbv2/get-trust-store-revocation-content-matches-added", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_revocation_content_matches_added.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-revocation-content-returns-full-crl-bytes", "deployments": [], "key": "elbv2/get-trust-store-revocation-content-returns-full-crl-bytes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_revocation_content_returns_full_crl_bytes.py", "service": "elbv2"} {"check_id": "elbv2.get-trust-store-revocation-content-unknown-id-fails", "deployments": [], "key": "elbv2/get-trust-store-revocation-content-unknown-id-fails", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreRevocationContent", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_get_trust_store_revocation_content_unknown_id_fails.py", "service": "elbv2"} {"check_id": "elbv2.health-check-transitions-to-unhealthy-with-reason", "deployments": [], "key": "elbv2/health-check-transitions-to-unhealthy-with-reason", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroup", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_health_check_transitions_to_unhealthy_with_reason.py", "service": "elbv2"} {"check_id": "elbv2.https-to-http-redirect-rejected", "deployments": [], "key": "elbv2/https-to-http-redirect-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListeners", "elbv2:DescribeRules", "elbv2:ModifyListener"], "path": "behavioral/elbv2/check_https_to_http_redirect_rejected.py", "service": "elbv2"} {"check_id": "elbv2.imported-certificate-is-presented-and-sni-selects-per-host", "deployments": [], "key": "elbv2/imported-certificate-is-presented-and-sni-selects-per-host", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_imported_certificate_is_presented_and_sni_selects_per_host.py", "service": "elbv2"} {"check_id": "elbv2.instance-target-serves-http-and-unhealthy-stops-routing", "deployments": [], "key": "elbv2/instance-target-serves-http-and-unhealthy-stops-routing", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroup", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_instance_target_serves_http_and_unhealthy_stops_routing.py", "service": "elbv2"} {"check_id": "elbv2.lambda-target-request-response-contract", "deployments": [], "key": "elbv2/lambda-target-request-response-contract", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/elbv2/check_lambda_target_request_response_contract.py", "service": "elbv2"} {"check_id": "elbv2.lb-cookie-stickiness-pins-a-client-to-one-target-in-the-group", "deployments": [], "key": "elbv2/lb-cookie-stickiness-pins-a-client-to-one-target-in-the-group", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_lb_cookie_stickiness_pins_a_client_to_one_target_in_the_group.py", "service": "elbv2"} {"check_id": "elbv2.listener-attributes-modify-then-describe-reflects-change", "deployments": [], "key": "elbv2/listener-attributes-modify-then-describe-reflects-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListenerAttributes"], "path": "behavioral/elbv2/check_listener_attributes_modify_then_describe_reflects_change.py", "service": "elbv2"} {"check_id": "elbv2.listener-attributes-tcp-idle-timeout-roundtrip", "deployments": [], "key": "elbv2/listener-attributes-tcp-idle-timeout-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListenerAttributes"], "path": "behavioral/elbv2/check_listener_attributes_tcp_idle_timeout_roundtrip.py", "service": "elbv2"} {"check_id": "elbv2.listener-certificate-add-describe-remove-lifecycle", "deployments": [], "key": "elbv2/listener-certificate-add-describe-remove-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_listener_certificate_add_describe_remove_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.listener-certificate-empty-vs-absent-distinction", "deployments": [], "key": "elbv2/listener-certificate-empty-vs-absent-distinction", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerCertificates", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_listener_certificate_empty_vs_absent_distinction.py", "service": "elbv2"} {"check_id": "elbv2.listener-certificate-lifecycle", "deployments": [], "key": "elbv2/listener-certificate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_listener_certificate_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.listener-certificate-ordering", "deployments": [], "key": "elbv2/listener-certificate-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_listener_certificate_ordering.py", "service": "elbv2"} {"check_id": "elbv2.listener-default-action-empty-vs-absent-fields-preserved", "deployments": [], "key": "elbv2/listener-default-action-empty-vs-absent-fields-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_listener_default_action_empty_vs_absent_fields_preserved.py", "service": "elbv2"} {"check_id": "elbv2.listener-rule-condition-type-matrix-routing", "deployments": [], "key": "elbv2/listener-rule-condition-type-matrix-routing", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_listener_rule_condition_type_matrix_routing.py", "service": "elbv2"} {"check_id": "elbv2.listener-rule-priority-decides-which-rule-serves-the-request", "deployments": [], "key": "elbv2/listener-rule-priority-decides-which-rule-serves-the-request", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:ModifyRule", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_listener_rule_priority_decides_which_rule_serves_the_request.py", "service": "elbv2"} {"check_id": "elbv2.listener-rule-priority-determines-match-winner", "deployments": [], "key": "elbv2/listener-rule-priority-determines-match-winner", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_listener_rule_priority_determines_match_winner.py", "service": "elbv2"} {"check_id": "elbv2.listener-rule-priority-precedence-data-plane", "deployments": [], "key": "elbv2/listener-rule-priority-precedence-data-plane", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_listener_rule_priority_precedence_data_plane.py", "service": "elbv2"} {"check_id": "elbv2.listener-ssl-policy-bounds-the-negotiated-tls-version-and-cipher", "deployments": [], "key": "elbv2/listener-ssl-policy-bounds-the-negotiated-tls-version-and-cipher", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeSSLPolicies", "elbv2:ModifyListener"], "path": "behavioral/elbv2/check_listener_ssl_policy_bounds_the_negotiated_tls_version_and_cipher.py", "service": "elbv2"} {"check_id": "elbv2.load-balancer-active-state-transition", "deployments": [], "key": "elbv2/load-balancer-active-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_load_balancer_active_state_transition.py", "service": "elbv2"} {"check_id": "elbv2.load-balancer-attribute-legality-by-type-rejected", "deployments": [], "key": "elbv2/load-balancer-attribute-legality-by-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_load_balancer_attribute_legality_by_type_rejected.py", "service": "elbv2"} {"check_id": "elbv2.load-balancer-created-time-timestamp-preserved", "deployments": [], "key": "elbv2/load-balancer-created-time-timestamp-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_load_balancer_created_time_timestamp_preserved.py", "service": "elbv2"} {"check_id": "elbv2.load-balancer-created-timestamp-precision-preserved", "deployments": [], "key": "elbv2/load-balancer-created-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_load_balancer_created_timestamp_precision_preserved.py", "service": "elbv2"} {"check_id": "elbv2.modify-capacity-reservation-invalid-unit-count-rejected", "deployments": [], "key": "elbv2/modify-capacity-reservation-invalid-unit-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:AddTags", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeTags", "elbv2:ModifyCapacityReservation"], "path": "behavioral/elbv2/check_modify_capacity_reservation_invalid_unit_count_rejected.py", "service": "elbv2"} {"check_id": "elbv2.modify-capacity-reservation-sequential-requests-ordering-enforced", "deployments": [], "key": "elbv2/modify-capacity-reservation-sequential-requests-ordering-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers", "elbv2:ModifyCapacityReservation"], "path": "behavioral/elbv2/check_modify_capacity_reservation_sequential_requests_ordering_enforced.py", "service": "elbv2"} {"check_id": "elbv2.modify-capacity-reservation-units-limit-exceeded-rejected", "deployments": [], "key": "elbv2/modify-capacity-reservation-units-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers", "elbv2:ModifyCapacityReservation"], "path": "behavioral/elbv2/check_modify_capacity_reservation_units_limit_exceeded_rejected.py", "service": "elbv2"} {"check_id": "elbv2.modify-default-rule-conditions-fails", "deployments": [], "key": "elbv2/modify-default-rule-conditions-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules", "elbv2:ModifyRule"], "path": "behavioral/elbv2/check_modify_default_rule_conditions_fails.py", "service": "elbv2"} {"check_id": "elbv2.modify-ip-pools-nonexistent-lb-fails", "deployments": [], "key": "elbv2/modify-ip-pools-nonexistent-lb-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:ModifyIpPools", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_modify_ip_pools_nonexistent_lb_fails.py", "service": "elbv2"} {"check_id": "elbv2.modify-ip-pools-updates-lb-attributes", "deployments": [], "key": "elbv2/modify-ip-pools-updates-lb-attributes", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateIpam", "ec2:CreateIpamPool", "ec2:DeleteIpam", "ec2:DeleteIpamPool", "ec2:DescribeIpamPools", "ec2:DescribeIpams", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyIpPools", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_modify_ip_pools_updates_lb_attributes.py", "service": "elbv2"} {"check_id": "elbv2.modify-listener-attributes-invalid-config-fails", "deployments": [], "key": "elbv2/modify-listener-attributes-invalid-config-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeListenerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListenerAttributes"], "path": "behavioral/elbv2/check_modify_listener_attributes_invalid_config_fails.py", "service": "elbv2"} {"check_id": "elbv2.modify-listener-attributes-out-of-range-timeout-rejected", "deployments": [], "key": "elbv2/modify-listener-attributes-out-of-range-timeout-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListenerAttributes"], "path": "behavioral/elbv2/check_modify_listener_attributes_out_of_range_timeout_rejected.py", "service": "elbv2"} {"check_id": "elbv2.modify-listener-attributes-round-trip", "deployments": [], "key": "elbv2/modify-listener-attributes-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerAttributes", "elbv2:ModifyListenerAttributes"], "path": "behavioral/elbv2/check_modify_listener_attributes_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.modify-listener-attributes-updates-values", "deployments": [], "key": "elbv2/modify-listener-attributes-updates-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyListenerAttributes"], "path": "behavioral/elbv2/check_modify_listener_attributes_updates_values.py", "service": "elbv2"} {"check_id": "elbv2.modify-listener-port-updates", "deployments": [], "key": "elbv2/modify-listener-port-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:ModifyListener"], "path": "behavioral/elbv2/check_modify_listener_port_updates.py", "service": "elbv2"} {"check_id": "elbv2.modify-load-balancer-attributes-idle-timeout-enforced", "deployments": [], "key": "elbv2/modify-load-balancer-attributes-idle-timeout-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancerAttributes", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_modify_load_balancer_attributes_idle_timeout_enforced.py", "service": "elbv2"} {"check_id": "elbv2.modify-load-balancer-attributes-idle-timeout-round-trip", "deployments": [], "key": "elbv2/modify-load-balancer-attributes-idle-timeout-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancerAttributes", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_modify_load_balancer_attributes_idle_timeout_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.modify-rule-moves-the-in-use-hold-from-one-target-group-to-another", "deployments": [], "key": "elbv2/modify-rule-moves-the-in-use-hold-from-one-target-group-to-another", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "elbv2:ModifyRule", "elbv2:ModifyTargetGroup"], "path": "behavioral/elbv2/check_modify_rule_moves_the_in_use_hold_from_one_target_group_to_another.py", "service": "elbv2"} {"check_id": "elbv2.modify-rule-on-listener-pending-deletion-blocked", "deployments": [], "key": "elbv2/modify-rule-on-listener-pending-deletion-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeRules", "elbv2:ModifyRule"], "path": "behavioral/elbv2/check_modify_rule_on_listener_pending_deletion_blocked.py", "service": "elbv2"} {"check_id": "elbv2.modify-rule-updates-actions-and-conditions", "deployments": [], "key": "elbv2/modify-rule-updates-actions-and-conditions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules", "elbv2:ModifyRule"], "path": "behavioral/elbv2/check_modify_rule_updates_actions_and_conditions.py", "service": "elbv2"} {"check_id": "elbv2.modify-target-group-attributes-deregistration-delay-changes-drain-time", "deployments": [], "key": "elbv2/modify-target-group-attributes-deregistration-delay-changes-drain-time", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroupAttributes", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_modify_target_group_attributes_deregistration_delay_changes_drain_time.py", "service": "elbv2"} {"check_id": "elbv2.modify-target-group-attributes-out-of-range-threshold-rejected", "deployments": [], "key": "elbv2/modify-target-group-attributes-out-of-range-threshold-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyTargetGroup"], "path": "behavioral/elbv2/check_modify_target_group_attributes_out_of_range_threshold_rejected.py", "service": "elbv2"} {"check_id": "elbv2.modify-target-group-health-check-settings", "deployments": [], "key": "elbv2/modify-target-group-health-check-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyTargetGroup"], "path": "behavioral/elbv2/check_modify_target_group_health_check_settings.py", "service": "elbv2"} {"check_id": "elbv2.modify-target-group-health-check-settings-reflected", "deployments": [], "key": "elbv2/modify-target-group-health-check-settings-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyTargetGroup"], "path": "behavioral/elbv2/check_modify_target_group_health_check_settings_reflected.py", "service": "elbv2"} {"check_id": "elbv2.modify-target-group-invalid-health-check-fails", "deployments": [], "key": "elbv2/modify-target-group-invalid-health-check-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyTargetGroup"], "path": "behavioral/elbv2/check_modify_target_group_invalid_health_check_fails.py", "service": "elbv2"} {"check_id": "elbv2.modify-trust-store-invalid-bundle-fails", "deployments": [], "key": "elbv2/modify-trust-store-invalid-bundle-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_modify_trust_store_invalid_bundle_fails.py", "service": "elbv2"} {"check_id": "elbv2.modify-trust-store-missing-bundle-rejected", "deployments": [], "key": "elbv2/modify-trust-store-missing-bundle-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_modify_trust_store_missing_bundle_rejected.py", "service": "elbv2"} {"check_id": "elbv2.modify-trust-store-nonexistent-bundle-rejected", "deployments": [], "key": "elbv2/modify-trust-store-nonexistent-bundle-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_modify_trust_store_nonexistent_bundle_rejected.py", "service": "elbv2"} {"check_id": "elbv2.modify-trust-store-updates-ca-bundle", "deployments": [], "key": "elbv2/modify-trust-store-updates-ca-bundle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_modify_trust_store_updates_ca_bundle.py", "service": "elbv2"} {"check_id": "elbv2.network-config-error-semantics", "deployments": [], "key": "elbv2/network-config-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:ModifyIpPools", "elbv2:SetIpAddressType", "elbv2:SetSecurityGroups", "elbv2:SetSubnets", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_network_config_error_semantics.py", "service": "elbv2"} {"check_id": "elbv2.nlb-tcp-listener-preserves-client-source-ip-to-instance-target", "deployments": [], "key": "elbv2/nlb-tcp-listener-preserves-client-source-ip-to-instance-target", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_nlb_tcp_listener_preserves_client_source_ip_to_instance_target.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-add-tags", "deployments": [], "key": "elbv2/op-contract-add-tags", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_op_contract_add_tags.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-create-load-balancer", "deployments": [], "key": "elbv2/op-contract-create-load-balancer", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_op_contract_create_load_balancer.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-create-target-group", "deployments": [], "key": "elbv2/op-contract-create-target-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups"], "path": "behavioral/elbv2/check_op_contract_create_target_group.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-delete-listener", "deployments": [], "key": "elbv2/op-contract-delete-listener", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners"], "path": "behavioral/elbv2/check_op_contract_delete_listener.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-delete-load-balancer", "deployments": [], "key": "elbv2/op-contract-delete-load-balancer", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_op_contract_delete_load_balancer.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-delete-rule", "deployments": [], "key": "elbv2/op-contract-delete-rule", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules", "elbv2:ModifyRule"], "path": "behavioral/elbv2/check_op_contract_delete_rule.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-delete-target-group", "deployments": [], "key": "elbv2/op-contract-delete-target-group", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyListener"], "path": "behavioral/elbv2/check_op_contract_delete_target_group.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-describe-account-limits", "deployments": [], "key": "elbv2/op-contract-describe-account-limits", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:DescribeAccountLimits"], "path": "behavioral/elbv2/check_op_contract_describe_account_limits.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-describe-listeners", "deployments": [], "key": "elbv2/op-contract-describe-listeners", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners"], "path": "behavioral/elbv2/check_op_contract_describe_listeners.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-describe-load-balancers", "deployments": [], "key": "elbv2/op-contract-describe-load-balancers", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_op_contract_describe_load_balancers.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-describe-ssl-policies", "deployments": [], "key": "elbv2/op-contract-describe-ssl-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:DescribeSSLPolicies"], "path": "behavioral/elbv2/check_op_contract_describe_ssl_policies.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-describe-tags", "deployments": [], "key": "elbv2/op-contract-describe-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_op_contract_describe_tags.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-describe-target-group-attributes", "deployments": [], "key": "elbv2/op-contract-describe-target-group-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroupAttributes"], "path": "behavioral/elbv2/check_op_contract_describe_target_group_attributes.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-describe-target-groups", "deployments": [], "key": "elbv2/op-contract-describe-target-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups"], "path": "behavioral/elbv2/check_op_contract_describe_target_groups.py", "service": "elbv2"} {"check_id": "elbv2.op-contract-modify-listener", "deployments": [], "key": "elbv2/op-contract-modify-listener", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:ModifyListener"], "path": "behavioral/elbv2/check_op_contract_modify_listener.py", "service": "elbv2"} {"check_id": "elbv2.redirect-action-placeholder-substitution", "deployments": [], "key": "elbv2/redirect-action-placeholder-substitution", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeLoadBalancers"], "path": "behavioral/elbv2/check_redirect_action_placeholder_substitution.py", "service": "elbv2"} {"check_id": "elbv2.register-target-invalid-id-fails", "deployments": [], "key": "elbv2/register-target-invalid-id-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_register_target_invalid_id_fails.py", "service": "elbv2"} {"check_id": "elbv2.register-target-ip-outside-vpc-fails", "deployments": [], "key": "elbv2/register-target-ip-outside-vpc-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_register_target_ip_outside_vpc_fails.py", "service": "elbv2"} {"check_id": "elbv2.register-target-type-mismatch-rejected", "deployments": [], "key": "elbv2/register-target-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_register_target_type_mismatch_rejected.py", "service": "elbv2"} {"check_id": "elbv2.register-targets-and-describe-health", "deployments": [], "key": "elbv2/register-targets-and-describe-health", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_register_targets_and_describe_health.py", "service": "elbv2"} {"check_id": "elbv2.register-targets-duplicate-id-conflicting-port-rejected", "deployments": [], "key": "elbv2/register-targets-duplicate-id-conflicting-port-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_register_targets_duplicate_id_conflicting_port_rejected.py", "service": "elbv2"} {"check_id": "elbv2.register-targets-exceeding-max-batch-size-rejected", "deployments": [], "key": "elbv2/register-targets-exceeding-max-batch-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_register_targets_exceeding_max_batch_size_rejected.py", "service": "elbv2"} {"check_id": "elbv2.register-targets-exceeding-target-group-quota-rejected", "deployments": [], "key": "elbv2/register-targets-exceeding-target-group-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/elbv2/check_register_targets_exceeding_target_group_quota_rejected.py", "service": "elbv2"} {"check_id": "elbv2.register-targets-initial-health-state-before-check-interval", "deployments": [], "key": "elbv2/register-targets-initial-health-state-before-check-interval", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_register_targets_initial_health_state_before_check_interval.py", "service": "elbv2"} {"check_id": "elbv2.register-targets-port-out-of-range-rejected", "deployments": [], "key": "elbv2/register-targets-port-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_register_targets_port_out_of_range_rejected.py", "service": "elbv2"} {"check_id": "elbv2.register-targets-wrong-type-id-rejected", "deployments": [], "key": "elbv2/register-targets-wrong-type-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_register_targets_wrong_type_id_rejected.py", "service": "elbv2"} {"check_id": "elbv2.remove-default-listener-certificate-rejected", "deployments": [], "key": "elbv2/remove-default-listener-certificate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_remove_default_listener_certificate_rejected.py", "service": "elbv2"} {"check_id": "elbv2.remove-listener-certificate-removes-entry", "deployments": [], "key": "elbv2/remove-listener-certificate-removes-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_remove_listener_certificate_removes_entry.py", "service": "elbv2"} {"check_id": "elbv2.remove-listener-certificates-default-cert-forbidden", "deployments": [], "key": "elbv2/remove-listener-certificates-default-cert-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddListenerCertificates", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListenerCertificates", "elbv2:DescribeLoadBalancers", "elbv2:RemoveListenerCertificates"], "path": "behavioral/elbv2/check_remove_listener_certificates_default_cert_forbidden.py", "service": "elbv2"} {"check_id": "elbv2.remove-tags-removes-key", "deployments": [], "key": "elbv2/remove-tags-removes-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags", "elbv2:RemoveTags"], "path": "behavioral/elbv2/check_remove_tags_removes_key.py", "service": "elbv2"} {"check_id": "elbv2.remove-tags-then-verify-and-reject-missing-resource", "deployments": [], "key": "elbv2/remove-tags-then-verify-and-reject-missing-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags", "elbv2:RemoveTags"], "path": "behavioral/elbv2/check_remove_tags_then_verify_and_reject_missing_resource.py", "service": "elbv2"} {"check_id": "elbv2.remove-trust-store-revocations-unknown-id-not-silently-accepted", "deployments": [], "key": "elbv2/remove-trust-store-revocations-unknown-id-not-silently-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "elbv2:RemoveTrustStoreRevocations", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_remove_trust_store_revocations_unknown_id_not_silently_accepted.py", "service": "elbv2"} {"check_id": "elbv2.resource-policy-not-found", "deployments": [], "key": "elbv2/resource-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStores", "elbv2:GetResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_resource_policy_not_found.py", "service": "elbv2"} {"check_id": "elbv2.routing-http2-attribute-decides-the-alpn-protocol-the-alb-selects", "deployments": [], "key": "elbv2/routing-http2-attribute-decides-the-alpn-protocol-the-alb-selects", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes"], "path": "behavioral/elbv2/check_routing_http2_attribute_decides_the_alpn_protocol_the_alb_selects.py", "service": "elbv2"} {"check_id": "elbv2.rule-priority-ordering-via-describe", "deployments": [], "key": "elbv2/rule-priority-ordering-via-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_rule_priority_ordering_via_describe.py", "service": "elbv2"} {"check_id": "elbv2.server-side-capacity-reservation-provisioning-completes-without-client-polling", "deployments": [], "key": "elbv2/server-side-capacity-reservation-provisioning-completes-without-client-polling", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeCapacityReservation", "elbv2:DescribeLoadBalancers", "elbv2:ModifyCapacityReservation"], "path": "behavioral/elbv2/check_server_side_capacity_reservation_provisioning_completes_without_client_polling.py", "service": "elbv2"} {"check_id": "elbv2.server-side-periodic-health-check-executes-without-client-action", "deployments": [], "key": "elbv2/server-side-periodic-health-check-executes-without-client-action", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroup", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/elbv2/check_server_side_periodic_health_check_executes_without_client_action.py", "service": "elbv2"} {"check_id": "elbv2.set-ip-address-type-dualstack-without-ipv6-rejected", "deployments": [], "key": "elbv2/set-ip-address-type-dualstack-without-ipv6-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateSubnetCidrBlock", "ec2:AssociateVpcCidrBlock", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:SetIpAddressType"], "path": "behavioral/elbv2/check_set_ip_address_type_dualstack_without_ipv6_rejected.py", "service": "elbv2"} {"check_id": "elbv2.set-ip-address-type-invalid-subnet-fails", "deployments": [], "key": "elbv2/set-ip-address-type-invalid-subnet-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetIpAddressType"], "path": "behavioral/elbv2/check_set_ip_address_type_invalid_subnet_fails.py", "service": "elbv2"} {"check_id": "elbv2.set-ip-address-type-unsupported-for-load-balancer-type-rejected", "deployments": [], "key": "elbv2/set-ip-address-type-unsupported-for-load-balancer-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetIpAddressType"], "path": "behavioral/elbv2/check_set_ip_address_type_unsupported_for_load_balancer_type_rejected.py", "service": "elbv2"} {"check_id": "elbv2.set-ip-address-type-updates-lb", "deployments": [], "key": "elbv2/set-ip-address-type-updates-lb", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AssociateSubnetCidrBlock", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetIpAddressType"], "path": "behavioral/elbv2/check_set_ip_address_type_updates_lb.py", "service": "elbv2"} {"check_id": "elbv2.set-rule-priorities-atomic-swap-no-partial-update", "deployments": [], "key": "elbv2/set-rule-priorities-atomic-swap-no-partial-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_set_rule_priorities_atomic_swap_no_partial_update.py", "service": "elbv2"} {"check_id": "elbv2.set-rule-priorities-conflict-with-existing-fails", "deployments": [], "key": "elbv2/set-rule-priorities-conflict-with-existing-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_set_rule_priorities_conflict_with_existing_fails.py", "service": "elbv2"} {"check_id": "elbv2.set-rule-priorities-default-rule-priority-rejected", "deployments": [], "key": "elbv2/set-rule-priorities-default-rule-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeListeners", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_set_rule_priorities_default_rule_priority_rejected.py", "service": "elbv2"} {"check_id": "elbv2.set-rule-priorities-duplicate-fails", "deployments": [], "key": "elbv2/set-rule-priorities-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_set_rule_priorities_duplicate_fails.py", "service": "elbv2"} {"check_id": "elbv2.set-rule-priorities-duplicate-priority-fails", "deployments": [], "key": "elbv2/set-rule-priorities-duplicate-priority-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_set_rule_priorities_duplicate_priority_fails.py", "service": "elbv2"} {"check_id": "elbv2.set-rule-priorities-ignores-other-listener", "deployments": [], "key": "elbv2/set-rule-priorities-ignores-other-listener", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_set_rule_priorities_ignores_other_listener.py", "service": "elbv2"} {"check_id": "elbv2.set-rule-priorities-reorders-rules", "deployments": [], "key": "elbv2/set-rule-priorities-reorders-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules", "elbv2:SetRulePriorities"], "path": "behavioral/elbv2/check_set_rule_priorities_reorders_rules.py", "service": "elbv2"} {"check_id": "elbv2.set-security-groups-empty-list-not-silently-accepted", "deployments": [], "key": "elbv2/set-security-groups-empty-list-not-silently-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetSecurityGroups"], "path": "behavioral/elbv2/check_set_security_groups_empty_list_not_silently_accepted.py", "service": "elbv2"} {"check_id": "elbv2.set-security-groups-invalid-sg-fails", "deployments": [], "key": "elbv2/set-security-groups-invalid-sg-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetSecurityGroups"], "path": "behavioral/elbv2/check_set_security_groups_invalid_sg_fails.py", "service": "elbv2"} {"check_id": "elbv2.set-security-groups-replaces", "deployments": [], "key": "elbv2/set-security-groups-replaces", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetSecurityGroups"], "path": "behavioral/elbv2/check_set_security_groups_replaces.py", "service": "elbv2"} {"check_id": "elbv2.set-security-groups-round-trip", "deployments": [], "key": "elbv2/set-security-groups-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetSecurityGroups"], "path": "behavioral/elbv2/check_set_security_groups_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.set-security-groups-updates-lb", "deployments": [], "key": "elbv2/set-security-groups-updates-lb", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetSecurityGroups"], "path": "behavioral/elbv2/check_set_security_groups_updates_lb.py", "service": "elbv2"} {"check_id": "elbv2.set-subnets-allocation-id-not-found-fails", "deployments": [], "key": "elbv2/set-subnets-allocation-id-not-found-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ReleaseAddress", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetSubnets"], "path": "behavioral/elbv2/check_set_subnets_allocation_id_not_found_fails.py", "service": "elbv2"} {"check_id": "elbv2.set-subnets-expands-availability-zones", "deployments": [], "key": "elbv2/set-subnets-expands-availability-zones", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:SetSubnets"], "path": "behavioral/elbv2/check_set_subnets_expands_availability_zones.py", "service": "elbv2"} {"check_id": "elbv2.set-subnets-mismatched-vpc-rejected", "deployments": [], "key": "elbv2/set-subnets-mismatched-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetSubnets"], "path": "behavioral/elbv2/check_set_subnets_mismatched_vpc_rejected.py", "service": "elbv2"} {"check_id": "elbv2.set-subnets-single-az-rejected", "deployments": [], "key": "elbv2/set-subnets-single-az-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:SetSubnets"], "path": "behavioral/elbv2/check_set_subnets_single_az_rejected.py", "service": "elbv2"} {"check_id": "elbv2.set-subnets-updates-lb-availability-zones", "deployments": [], "key": "elbv2/set-subnets-updates-lb-availability-zones", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:SetSubnets"], "path": "behavioral/elbv2/check_set_subnets_updates_lb_availability_zones.py", "service": "elbv2"} {"check_id": "elbv2.source-ip-condition-uses-the-layer3-address-not-x-forwarded-for", "deployments": [], "key": "elbv2/source-ip-condition-uses-the-layer3-address-not-x-forwarded-for", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:ModifyRule", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/elbv2/check_source_ip_condition_uses_the_layer3_address_not_x_forwarded_for.py", "service": "elbv2"} {"check_id": "elbv2.tag-value-unicode-and-special-characters-round-trip", "deployments": [], "key": "elbv2/tag-value-unicode-and-special-characters-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_tag_value_unicode_and_special_characters_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.tag-value-unicode-round-trip", "deployments": [], "key": "elbv2/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_tag_value_unicode_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.target-draining-after-deregister", "deployments": [], "key": "elbv2/target-draining-after-deregister", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_target_draining_after_deregister.py", "service": "elbv2"} {"check_id": "elbv2.target-group-attribute-legality-by-protocol-rejected", "deployments": [], "key": "elbv2/target-group-attribute-legality-by-protocol-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroupAttributes", "elbv2:ModifyTargetGroupAttributes"], "path": "behavioral/elbv2/check_target_group_attribute_legality_by_protocol_rejected.py", "service": "elbv2"} {"check_id": "elbv2.target-group-deregistration-delay-attribute-round-trip", "deployments": [], "key": "elbv2/target-group-deregistration-delay-attribute-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroupAttributes", "elbv2:ModifyTargetGroupAttributes"], "path": "behavioral/elbv2/check_target_group_deregistration_delay_attribute_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.target-group-deregistration-delay-numeric-precision-round-trip", "deployments": [], "key": "elbv2/target-group-deregistration-delay-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroupAttributes", "elbv2:ModifyTargetGroupAttributes"], "path": "behavioral/elbv2/check_target_group_deregistration_delay_numeric_precision_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.target-group-health-check-numeric-precision-round-trip", "deployments": [], "key": "elbv2/target-group-health-check-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "elbv2:ModifyTargetGroup"], "path": "behavioral/elbv2/check_target_group_health_check_numeric_precision_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.target-group-load-balancer-arns-reflect-association", "deployments": [], "key": "elbv2/target-group-load-balancer-arns-reflect-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups"], "path": "behavioral/elbv2/check_target_group_load_balancer_arns_reflect_association.py", "service": "elbv2"} {"check_id": "elbv2.target-group-tag-unicode-value-round-trip", "deployments": [], "key": "elbv2/target-group-tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:AddTags", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_target_group_tag_unicode_value_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.target-health-check-state-transition-unhealthy-to-healthy", "deployments": [], "key": "elbv2/target-health-check-state-transition-unhealthy-to-healthy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroup", "elbv2:RegisterTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/elbv2/check_target_health_check_state_transition_unhealthy_to_healthy.py", "service": "elbv2"} {"check_id": "elbv2.target-initial-health-after-registration", "deployments": [], "key": "elbv2/target-initial-health-after-registration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetGroups", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_target_initial_health_after_registration.py", "service": "elbv2"} {"check_id": "elbv2.target-removed-after-deregistration-delay", "deployments": [], "key": "elbv2/target-removed-after-deregistration-delay", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyTargetGroupAttributes", "elbv2:RegisterTargets"], "path": "behavioral/elbv2/check_target_removed_after_deregistration_delay.py", "service": "elbv2"} {"check_id": "elbv2.target-response-exceeding-idle-timeout-yields-504", "deployments": [], "key": "elbv2/target-response-exceeding-idle-timeout-yields-504", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyLoadBalancerAttributes", "elbv2:RegisterTargets", "ssm:GetParameter"], "path": "behavioral/elbv2/check_target_response_exceeding_idle_timeout_yields_504.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-association-and-shared-deletion-rejected", "deployments": [], "key": "elbv2/trust-store-association-and-shared-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteSharedTrustStoreAssociation", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:ModifyListener", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_association_and_shared_deletion_rejected.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-association-created-and-removed", "deployments": [], "key": "elbv2/trust-store-association-created-and-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteLoadBalancer", "elbv2:DeleteSharedTrustStoreAssociation", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:ModifyListener", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_association_created_and_removed.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-association-lifecycle", "deployments": [], "key": "elbv2/trust-store-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteSharedTrustStoreAssociation", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_association_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-association-lifecycle-via-mtls-listener", "deployments": [], "key": "elbv2/trust-store-association-lifecycle-via-mtls-listener", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeleteTrustStore", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:ModifyListener", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_association_lifecycle_via_mtls_listener.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-bucket-not-found-error", "deployments": [], "key": "elbv2/trust-store-bucket-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_bucket_not_found_error.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-ca-bundle-binary-content-byte-equality", "deployments": [], "key": "elbv2/trust-store-ca-bundle-binary-content-byte-equality", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_ca_bundle_binary_content_byte_equality.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-ca-bundle-retrieval", "deployments": [], "key": "elbv2/trust-store-ca-bundle-retrieval", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_ca_bundle_retrieval.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-ca-bundle-server-side-validation-on-create", "deployments": [], "key": "elbv2/trust-store-ca-bundle-server-side-validation-on-create", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_ca_bundle_server_side_validation_on_create.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-create-active-delete-404", "deployments": [], "key": "elbv2/trust-store-create-active-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_create_active_delete_404.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-creation-state-transition", "deployments": [], "key": "elbv2/trust-store-creation-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_creation_state_transition.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-in-use-delete-fails", "deployments": [], "key": "elbv2/trust-store-in-use-delete-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTrustStore", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_in_use_delete_fails.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-invalid-bundle-rejected", "deployments": [], "key": "elbv2/trust-store-invalid-bundle-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_invalid_bundle_rejected.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-lifecycle", "deployments": [], "key": "elbv2/trust-store-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-lifecycle-create-active-delete-404", "deployments": [], "key": "elbv2/trust-store-lifecycle-create-active-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_lifecycle_create_active_delete_404.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-lifecycle-create-modify-delete", "deployments": [], "key": "elbv2/trust-store-lifecycle-create-modify-delete", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTrustStore", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_lifecycle_create_modify_delete.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-modify-updates-bundle", "deployments": [], "key": "elbv2/trust-store-modify-updates-bundle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_modify_updates_bundle.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-name-dedup", "deployments": [], "key": "elbv2/trust-store-name-dedup", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_name_dedup.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-not-found-family", "deployments": [], "key": "elbv2/trust-store-not-found-family", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStores", "elbv2:GetTrustStoreCaCertificatesBundle", "elbv2:GetTrustStoreRevocationContent", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_trust_store_not_found_family.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-ops-not-found", "deployments": [], "key": "elbv2/trust-store-ops-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreAssociations", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "elbv2:ModifyTrustStore", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_trust_store_ops_not_found.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-revocation-add-describe-remove", "deployments": [], "key": "elbv2/trust-store-revocation-add-describe-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "elbv2:RemoveTrustStoreRevocations", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_revocation_add_describe_remove.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-revocation-add-describe-remove-lifecycle", "deployments": [], "key": "elbv2/trust-store-revocation-add-describe-remove-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "elbv2:RemoveTrustStoreRevocations", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_revocation_add_describe_remove_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-revocation-add-describe-remove-roundtrip", "deployments": [], "key": "elbv2/trust-store-revocation-add-describe-remove-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "elbv2:RemoveTrustStoreRevocations", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_revocation_add_describe_remove_roundtrip.py", "service": "elbv2"} {"check_id": "elbv2.trust-store-revocation-lifecycle", "deployments": [], "key": "elbv2/trust-store-revocation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["elbv2:AddTrustStoreRevocations", "elbv2:CreateTrustStore", "elbv2:DeleteTrustStore", "elbv2:DescribeTrustStoreRevocations", "elbv2:DescribeTrustStores", "elbv2:RemoveTrustStoreRevocations", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/elbv2/check_trust_store_revocation_lifecycle.py", "service": "elbv2"} {"check_id": "elbv2.unicode-tag-value-round-trip", "deployments": [], "key": "elbv2/unicode-tag-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "elbv2:AddTags", "elbv2:CreateLoadBalancer", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTags"], "path": "behavioral/elbv2/check_unicode_tag_value_round_trip.py", "service": "elbv2"} {"check_id": "elbv2.unmatched-request-falls-through-to-the-default-action", "deployments": [], "key": "elbv2/unmatched-request-falls-through-to-the-default-action", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_unmatched_request_falls_through_to_the_default_action.py", "service": "elbv2"} {"check_id": "elbv2.weighted-forward-action-multiple-target-groups", "deployments": [], "key": "elbv2/weighted-forward-action-multiple-target-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeRules"], "path": "behavioral/elbv2/check_weighted_forward_action_multiple_target_groups.py", "service": "elbv2"} {"check_id": "elbv2.weighted-forward-rule-holds-both-target-groups-in-use-until-it-is-deleted", "deployments": [], "key": "elbv2/weighted-forward-rule-holds-both-target-groups-in-use-until-it-is-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeRules", "elbv2:DescribeTargetGroups", "sts:GetCallerIdentity"], "path": "behavioral/elbv2/check_weighted_forward_rule_holds_both_target_groups_in_use_until_it_is_deleted.py", "service": "elbv2"} {"check_id": "elbv2.xff-header-processing-mode-changes-what-the-target-receives", "deployments": [], "key": "elbv2/xff-header-processing-mode-changes-what-the-target-receives", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyLoadBalancerAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/elbv2/check_xff_header_processing_mode_changes_what_the_target_receives.py", "service": "elbv2"} {"check_id": "elbv2.zero-weight-target-group-is-never-selected", "deployments": [], "key": "elbv2/zero-weight-target-group-is-never-selected", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeListeners", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyListener", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/elbv2/check_zero_weight_target_group_is_never_selected.py", "service": "elbv2"} {"check_id": "elbv2__events__sqs.xsvc-elbv2-1-create-target-group-cloudtrail-event-reaches-queue-with-request-shape", "deployments": [], "key": "elbv2__events__sqs/xsvc-elbv2-1-create-target-group-cloudtrail-event-reaches-queue-with-request-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudwatch:GetMetricStatistics", "ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__events__sqs/check_xsvc_elbv2_1_create_target_group_cloudtrail_event_reaches_queue_with_request_shape.py", "service": "elbv2__events__sqs"} {"check_id": "elbv2__events__sqs.xsvc-elbv2-1-delete-target-group-rule-receives-nothing-from-create", "deployments": [], "key": "elbv2__events__sqs/xsvc-elbv2-1-delete-target-group-rule-receives-nothing-from-create", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudwatch:GetMetricStatistics", "ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__events__sqs/check_xsvc_elbv2_1_delete_target_group_rule_receives_nothing_from_create.py", "service": "elbv2__events__sqs"} {"check_id": "elbv2__events__sqs.xsvc-elbv2-1-duplicate-target-group-name-rejected-and-event-carries-error-code", "deployments": [], "key": "elbv2__events__sqs/xsvc-elbv2-1-duplicate-target-group-name-rejected-and-event-carries-error-code", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudwatch:GetMetricStatistics", "ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTargetGroups", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__events__sqs/check_xsvc_elbv2_1_duplicate_target_group_name_rejected_and_event_carries_error_code.py", "service": "elbv2__events__sqs"} {"check_id": "elbv2__events__sqs.xsvc-elbv2-1-input-transformer-delivers-only-the-extracted-target-group-name", "deployments": [], "key": "elbv2__events__sqs/xsvc-elbv2-1-input-transformer-delivers-only-the-extracted-target-group-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudwatch:GetMetricStatistics", "ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__events__sqs/check_xsvc_elbv2_1_input_transformer_delivers_only_the_extracted_target_group_name.py", "service": "elbv2__events__sqs"} {"check_id": "elbv2__events__sqs.xsvc-elbv2-1-unpermitted-queue-target-routes-event-to-dead-letter-queue", "deployments": [], "key": "elbv2__events__sqs/xsvc-elbv2-1-unpermitted-queue-target-routes-event-to-dead-letter-queue", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudwatch:GetMetricStatistics", "ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__events__sqs/check_xsvc_elbv2_1_unpermitted_queue_target_routes_event_to_dead_letter_queue.py", "service": "elbv2__events__sqs"} {"check_id": "elbv2__lambda.malformed-lambda-target-response-becomes-a-502-after-the-invocation", "deployments": [], "key": "elbv2__lambda/malformed-lambda-target-response-becomes-a-502-after-the-invocation", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/elbv2__lambda/check_malformed_lambda_target_response_becomes_a_502_after_the_invocation.py", "service": "elbv2__lambda"} {"check_id": "elbv2__lambda.xsvc-elbv2-3-lambda-health-check-500-and-raise-mark-only-those-targets-unhealthy", "deployments": [], "key": "elbv2__lambda/xsvc-elbv2-3-lambda-health-check-500-and-raise-mark-only-those-targets-unhealthy", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/elbv2__lambda/check_xsvc_elbv2_3_lambda_health_check_500_and_raise_mark_only_those_targets_unhealthy.py", "service": "elbv2__lambda"} {"check_id": "elbv2__lambda.xsvc-elbv2-3-lambda-invoke-permission-removed-is-denied-with-502-until-regranted", "deployments": [], "key": "elbv2__lambda/xsvc-elbv2-3-lambda-invoke-permission-removed-is-denied-with-502-until-regranted", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DeregisterTargets", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyLoadBalancerAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__lambda/check_xsvc_elbv2_3_lambda_invoke_permission_removed_is_denied_with_502_until_regranted.py", "service": "elbv2__lambda"} {"check_id": "elbv2__logs__wafv2.log-edge-producers-waf-log-records-rule-group-blocked-and-default-allowed-requests", "deployments": [], "key": "elbv2__logs__wafv2/log-edge-producers-waf-log-records-rule-group-blocked-and-default-allowed-requests", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity", "wafv2:AssociateWebACL", "wafv2:CreateRuleGroup", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:DisassociateWebACL", "wafv2:PutLoggingConfiguration"], "path": "behavioral/elbv2__logs__wafv2/check_log_edge_producers_waf_log_records_rule_group_blocked_and_default_allowed_requests.py", "service": "elbv2__logs__wafv2"} {"check_id": "elbv2__resourcegroupstaggingapi.load-balancer-and-target-group-tags-visible-through-get-resources", "deployments": [], "key": "elbv2__resourcegroupstaggingapi/load-balancer-and-target-group-tags-visible-through-get-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "elbv2:AddTags", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:RemoveTags", "resourcegroupstaggingapi:GetResources"], "path": "behavioral/elbv2__resourcegroupstaggingapi/check_load_balancer_and_target_group_tags_visible_through_get_resources.py", "service": "elbv2__resourcegroupstaggingapi"} {"check_id": "elbv2__resourcegroupstaggingapi.tag-resources-nonexistent-target-group-rejected-per-resource", "deployments": [], "key": "elbv2__resourcegroupstaggingapi/tag-resources-nonexistent-target-group-rejected-per-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "elbv2:CreateTargetGroup", "elbv2:DeleteTargetGroup", "elbv2:DescribeTags", "resourcegroupstaggingapi:TagResources", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__resourcegroupstaggingapi/check_tag_resources_nonexistent_target_group_rejected_per_resource.py", "service": "elbv2__resourcegroupstaggingapi"} {"check_id": "elbv2__s3.alb-access-log-lines-are-delivered-to-s3-with-the-documented-fields", "deployments": [], "key": "elbv2__s3/alb-access-log-lines-are-delivered-to-s3-with-the-documented-fields", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancerAttributes", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__s3/check_alb_access_log_lines_are_delivered_to_s3_with_the_documented_fields.py", "service": "elbv2__s3"} {"check_id": "elbv2__s3.log-edge-producers-alb-access-log-502-record-differs-from-target-status", "deployments": [], "key": "elbv2__s3/log-edge-producers-alb-access-log-502-record-differs-from-target-status", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:RunInstances", "ec2:TerminateInstances", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateRule", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteRule", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:DescribeTargetHealth", "elbv2:ModifyLoadBalancerAttributes", "elbv2:RegisterTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__s3/check_log_edge_producers_alb_access_log_502_record_differs_from_target_status.py", "service": "elbv2__s3"} {"check_id": "elbv2__s3.log-edge-producers-alb-https-access-log-records-negotiated-tls-and-sni", "deployments": [], "key": "elbv2__s3/log-edge-producers-alb-https-access-log-records-negotiated-tls-and-sni", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "elbv2:ModifyLoadBalancerAttributes", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/elbv2__s3/check_log_edge_producers_alb_https_access_log_records_negotiated_tls_and_sni.py", "service": "elbv2__s3"} {"check_id": "elbv2__wafv2.associated-web-acl-blocks-the-request-before-the-alb-reaches-the-target", "deployments": [], "key": "elbv2__wafv2/associated-web-acl-blocks-the-request-before-the-alb-reaches-the-target", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:CreateTargetGroup", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DeleteTargetGroup", "elbv2:DescribeLoadBalancers", "elbv2:RegisterTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/elbv2__wafv2/check_associated_web_acl_blocks_the_request_before_the_alb_reaches_the_target.py", "service": "elbv2__wafv2"} {"check_id": "elementalinference.associate-feed-activates-feed", "deployments": [], "key": "elementalinference/associate-feed-activates-feed", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_associate_feed_activates_feed.py", "service": "elementalinference"} {"check_id": "elementalinference.associate-feed-appends-outputs-patch-semantics", "deployments": [], "key": "elementalinference/associate-feed-appends-outputs-patch-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_associate_feed_appends_outputs_patch_semantics.py", "service": "elementalinference"} {"check_id": "elementalinference.associate-feed-concurrent-race-single-winner", "deployments": [], "key": "elementalinference/associate-feed-concurrent-race-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_associate_feed_concurrent_race_single_winner.py", "service": "elementalinference"} {"check_id": "elementalinference.associate-feed-dry-run-does-not-persist", "deployments": [], "key": "elementalinference/associate-feed-dry-run-does-not-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_associate_feed_dry_run_does_not_persist.py", "service": "elementalinference"} {"check_id": "elementalinference.associate-feed-second-resource-rejected", "deployments": [], "key": "elementalinference/associate-feed-second-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_associate_feed_second_resource_rejected.py", "service": "elementalinference"} {"check_id": "elementalinference.create-dictionary-invalid-name-validation", "deployments": [], "key": "elementalinference/create-dictionary-invalid-name-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:DeleteDictionary", "elementalinference:GetDictionary", "elementalinference:ListDictionaries"], "path": "behavioral/elementalinference/check_create_dictionary_invalid_name_validation.py", "service": "elementalinference"} {"check_id": "elementalinference.create-dictionary-status-available", "deployments": [], "key": "elementalinference/create-dictionary-status-available", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:DeleteDictionary", "elementalinference:GetDictionary"], "path": "behavioral/elementalinference/check_create_dictionary_status_available.py", "service": "elementalinference"} {"check_id": "elementalinference.create-feed-malformed-access-role-arn-rejected", "deployments": [], "key": "elementalinference/create-feed-malformed-access-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed", "elementalinference:ListFeeds"], "path": "behavioral/elementalinference/check_create_feed_malformed_access_role_arn_rejected.py", "service": "elementalinference"} {"check_id": "elementalinference.create-feed-status-available-no-association", "deployments": [], "key": "elementalinference/create-feed-status-available-no-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_create_feed_status_available_no_association.py", "service": "elementalinference"} {"check_id": "elementalinference.delete-dictionary-referenced-by-feed-rejected", "deployments": [], "key": "elementalinference/delete-dictionary-referenced-by-feed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:CreateFeed", "elementalinference:DeleteDictionary", "elementalinference:DeleteFeed", "elementalinference:GetDictionary"], "path": "behavioral/elementalinference/check_delete_dictionary_referenced_by_feed_rejected.py", "service": "elementalinference"} {"check_id": "elementalinference.delete-dictionary-removes-it", "deployments": [], "key": "elementalinference/delete-dictionary-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:DeleteDictionary", "elementalinference:GetDictionary", "elementalinference:UpdateDictionary"], "path": "behavioral/elementalinference/check_delete_dictionary_removes_it.py", "service": "elementalinference"} {"check_id": "elementalinference.delete-feed-removes-it-regardless-of-status", "deployments": [], "key": "elementalinference/delete-feed-removes-it-regardless-of-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_delete_feed_removes_it_regardless_of_status.py", "service": "elementalinference"} {"check_id": "elementalinference.dictionary-reference-tracks-referencing-feed", "deployments": [], "key": "elementalinference/dictionary-reference-tracks-referencing-feed", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateDictionary", "elementalinference:CreateFeed", "elementalinference:DeleteDictionary", "elementalinference:DeleteFeed", "elementalinference:DisassociateFeed", "elementalinference:GetDictionary", "elementalinference:GetFeed", "elementalinference:UpdateFeed"], "path": "behavioral/elementalinference/check_dictionary_reference_tracks_referencing_feed.py", "service": "elementalinference"} {"check_id": "elementalinference.disassociate-feed-archives-feed-irreversibly", "deployments": [], "key": "elementalinference/disassociate-feed-archives-feed-irreversibly", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:DisassociateFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_disassociate_feed_archives_feed_irreversibly.py", "service": "elementalinference"} {"check_id": "elementalinference.disassociate-feed-dry-run-does-not-persist", "deployments": [], "key": "elementalinference/disassociate-feed-dry-run-does-not-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:DisassociateFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_disassociate_feed_dry_run_does_not_persist.py", "service": "elementalinference"} {"check_id": "elementalinference.disassociate-feed-never-associated-rejected", "deployments": [], "key": "elementalinference/disassociate-feed-never-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:DisassociateFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_disassociate_feed_never_associated_rejected.py", "service": "elementalinference"} {"check_id": "elementalinference.disassociate-feed-wrong-resource-name-rejected", "deployments": [], "key": "elementalinference/disassociate-feed-wrong-resource-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:DisassociateFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_disassociate_feed_wrong_resource_name_rejected.py", "service": "elementalinference"} {"check_id": "elementalinference.export-dictionary-entries-roundtrip", "deployments": [], "key": "elementalinference/export-dictionary-entries-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["elementalinference:CreateDictionary", "elementalinference:DeleteDictionary", "elementalinference:ExportDictionaryEntries"], "path": "behavioral/elementalinference/check_export_dictionary_entries_roundtrip.py", "service": "elementalinference"} {"check_id": "elementalinference.feed-media-data-plane-not-reachable", "deployments": [], "key": "elementalinference/feed-media-data-plane-not-reachable", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["elementalinference:AssociateFeed", "elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_feed_media_data_plane_not_reachable.py", "service": "elementalinference"} {"check_id": "elementalinference.get-dictionary-not-found", "deployments": [], "key": "elementalinference/get-dictionary-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:DeleteDictionary", "elementalinference:GetDictionary"], "path": "behavioral/elementalinference/check_get_dictionary_not_found.py", "service": "elementalinference"} {"check_id": "elementalinference.get-feed-not-found", "deployments": [], "key": "elementalinference/get-feed-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed"], "path": "behavioral/elementalinference/check_get_feed_not_found.py", "service": "elementalinference"} {"check_id": "elementalinference.get-fixture-not-found", "deployments": [], "key": "elementalinference/get-fixture-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:GetFixture"], "path": "behavioral/elementalinference/check_get_fixture_not_found.py", "service": "elementalinference"} {"check_id": "elementalinference.list-dictionaries-pagination-maxresults", "deployments": [], "key": "elementalinference/list-dictionaries-pagination-maxresults", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:DeleteDictionary", "elementalinference:ListDictionaries"], "path": "behavioral/elementalinference/check_list_dictionaries_pagination_maxresults.py", "service": "elementalinference"} {"check_id": "elementalinference.list-feeds-reflects-created-feed", "deployments": [], "key": "elementalinference/list-feeds-reflects-created-feed", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed", "elementalinference:ListFeeds"], "path": "behavioral/elementalinference/check_list_feeds_reflects_created_feed.py", "service": "elementalinference"} {"check_id": "elementalinference.list-tags-for-resource-not-found", "deployments": [], "key": "elementalinference/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:DeleteDictionary", "elementalinference:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/elementalinference/check_list_tags_for_resource_not_found.py", "service": "elementalinference"} {"check_id": "elementalinference.search-and-get-fixture-consistent", "deployments": [], "key": "elementalinference/search-and-get-fixture-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["elementalinference:GetFixture", "elementalinference:SearchFixtures"], "path": "behavioral/elementalinference/check_search_and_get_fixture_consistent.py", "service": "elementalinference"} {"check_id": "elementalinference.search-fixtures-date-window-exceeds-seven-days-rejected", "deployments": [], "key": "elementalinference/search-fixtures-date-window-exceeds-seven-days-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["elementalinference:SearchFixtures"], "path": "behavioral/elementalinference/check_search_fixtures_date_window_exceeds_seven_days_rejected.py", "service": "elementalinference"} {"check_id": "elementalinference.tag-resource-list-tags-roundtrip", "deployments": [], "key": "elementalinference/tag-resource-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:CreateFeed", "elementalinference:DeleteDictionary", "elementalinference:DeleteFeed", "elementalinference:ListTagsForResource", "elementalinference:TagResource", "elementalinference:UntagResource"], "path": "behavioral/elementalinference/check_tag_resource_list_tags_roundtrip.py", "service": "elementalinference"} {"check_id": "elementalinference.update-dictionary-entries-replaces-not-merges", "deployments": [], "key": "elementalinference/update-dictionary-entries-replaces-not-merges", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateDictionary", "elementalinference:DeleteDictionary", "elementalinference:ExportDictionaryEntries", "elementalinference:GetDictionary", "elementalinference:UpdateDictionary"], "path": "behavioral/elementalinference/check_update_dictionary_entries_replaces_not_merges.py", "service": "elementalinference"} {"check_id": "elementalinference.update-feed-outputs-full-replacement", "deployments": [], "key": "elementalinference/update-feed-outputs-full-replacement", "labels": ["axis:happy-path", "plane:control"], "operations": ["elementalinference:CreateFeed", "elementalinference:DeleteFeed", "elementalinference:GetFeed", "elementalinference:UpdateFeed"], "path": "behavioral/elementalinference/check_update_feed_outputs_full_replacement.py", "service": "elementalinference"} {"check_id": "emr-containers.cancel-job-run-pending-to-cancelled", "deployments": [], "key": "emr-containers/cancel-job-run-pending-to-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CancelJobRun", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeJobRun", "emr-containers:DescribeVirtualCluster", "emr-containers:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_cancel_job_run_pending_to_cancelled.py", "service": "emr-containers"} {"check_id": "emr-containers.cancel-job-run-terminal-state-rejected", "deployments": [], "key": "emr-containers/cancel-job-run-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CancelJobRun", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeJobRun", "emr-containers:DescribeVirtualCluster", "emr-containers:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_cancel_job_run_terminal_state_rejected.py", "service": "emr-containers"} {"check_id": "emr-containers.create-job-template-concurrent-same-client-token-dedup", "deployments": [], "key": "emr-containers/create-job-template-concurrent-same-client-token-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-containers:CreateJobTemplate", "emr-containers:DeleteJobTemplate", "emr-containers:ListJobTemplates", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_create_job_template_concurrent_same_client_token_dedup.py", "service": "emr-containers"} {"check_id": "emr-containers.create-managed-endpoint-invalid-type-rejected", "deployments": [], "key": "emr-containers/create-managed-endpoint-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CreateManagedEndpoint", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteManagedEndpoint", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeManagedEndpoint", "emr-containers:DescribeVirtualCluster", "emr-containers:ListManagedEndpoints", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-containers/check_create_managed_endpoint_invalid_type_rejected.py", "service": "emr-containers"} {"check_id": "emr-containers.create-virtual-cluster-nonexistent-eks-cluster-rejected", "deployments": [], "key": "emr-containers/create-virtual-cluster-nonexistent-eks-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-containers/check_create_virtual_cluster_nonexistent_eks_cluster_rejected.py", "service": "emr-containers"} {"check_id": "emr-containers.delete-virtual-cluster-with-active-job-run-rejected", "deployments": [], "key": "emr-containers/delete-virtual-cluster-with-active-job-run-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CancelJobRun", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeJobRun", "emr-containers:DescribeVirtualCluster", "emr-containers:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_delete_virtual_cluster_with_active_job_run_rejected.py", "service": "emr-containers"} {"check_id": "emr-containers.job-template-client-token-reuse-conflict-rejected", "deployments": [], "key": "emr-containers/job-template-client-token-reuse-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-containers:CreateJobTemplate", "emr-containers:DeleteJobTemplate", "emr-containers:DescribeJobTemplate", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_job_template_client_token_reuse_conflict_rejected.py", "service": "emr-containers"} {"check_id": "emr-containers.job-template-create-idempotent-client-token", "deployments": [], "key": "emr-containers/job-template-create-idempotent-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-containers:CreateJobTemplate", "emr-containers:DeleteJobTemplate", "emr-containers:DescribeJobTemplate", "emr-containers:ListJobTemplates", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_job_template_create_idempotent_client_token.py", "service": "emr-containers"} {"check_id": "emr-containers.job-template-delete-twice-rejected", "deployments": [], "key": "emr-containers/job-template-delete-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-containers:CreateJobTemplate", "emr-containers:DeleteJobTemplate", "emr-containers:DescribeJobTemplate", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_job_template_delete_twice_rejected.py", "service": "emr-containers"} {"check_id": "emr-containers.job-template-lifecycle-create-describe-delete", "deployments": [], "key": "emr-containers/job-template-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-containers:CreateJobTemplate", "emr-containers:DeleteJobTemplate", "emr-containers:DescribeJobTemplate", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_job_template_lifecycle_create_describe_delete.py", "service": "emr-containers"} {"check_id": "emr-containers.job-template-tags-round-trip", "deployments": [], "key": "emr-containers/job-template-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-containers:CreateJobTemplate", "emr-containers:DeleteJobTemplate", "emr-containers:DescribeJobTemplate", "emr-containers:ListJobTemplates", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_job_template_tags_round_trip.py", "service": "emr-containers"} {"check_id": "emr-containers.list-job-runs-state-filter", "deployments": [], "key": "emr-containers/list-job-runs-state-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CancelJobRun", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeJobRun", "emr-containers:DescribeVirtualCluster", "emr-containers:ListJobRuns", "emr-containers:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_list_job_runs_state_filter.py", "service": "emr-containers"} {"check_id": "emr-containers.list-job-templates-pagination", "deployments": [], "key": "emr-containers/list-job-templates-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-containers:CreateJobTemplate", "emr-containers:DeleteJobTemplate", "emr-containers:ListJobTemplates", "sts:GetCallerIdentity"], "path": "behavioral/emr-containers/check_list_job_templates_pagination.py", "service": "emr-containers"} {"check_id": "emr-containers.list-security-configurations-created-after-filter", "deployments": [], "key": "emr-containers/list-security-configurations-created-after-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-containers:CreateSecurityConfiguration", "emr-containers:DeleteSecurityConfiguration", "emr-containers:ListSecurityConfigurations"], "path": "behavioral/emr-containers/check_list_security_configurations_created_after_filter.py", "service": "emr-containers"} {"check_id": "emr-containers.security-configuration-create-describe-list-delete", "deployments": [], "key": "emr-containers/security-configuration-create-describe-list-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-containers:CreateSecurityConfiguration", "emr-containers:DeleteSecurityConfiguration", "emr-containers:DescribeSecurityConfiguration", "emr-containers:ListSecurityConfigurations"], "path": "behavioral/emr-containers/check_security_configuration_create_describe_list_delete.py", "service": "emr-containers"} {"check_id": "emr-containers.start-job-run-spark-pi-native-round-trip", "deployments": [], "key": "emr-containers/start-job-run-spark-pi-native-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:CreateNodegroup", "eks:DeleteCluster", "eks:DeleteNodegroup", "eks:DescribeCluster", "eks:DescribeNodegroup", "emr-containers:CancelJobRun", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeJobRun", "emr-containers:DescribeVirtualCluster", "emr-containers:StartJobRun", "iam:AttachRolePolicy", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-containers/check_start_job_run_spark_pi_native_round_trip.py", "service": "emr-containers"} {"check_id": "emr-containers.update-virtual-cluster-on-terminated-cluster-rejected", "deployments": [], "key": "emr-containers/update-virtual-cluster-on-terminated-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeVirtualCluster", "emr-containers:UpdateVirtualCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-containers/check_update_virtual_cluster_on_terminated_cluster_rejected.py", "service": "emr-containers"} {"check_id": "emr-containers.virtual-cluster-delete-lifecycle-to-terminated", "deployments": [], "key": "emr-containers/virtual-cluster-delete-lifecycle-to-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeVirtualCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-containers/check_virtual_cluster_delete_lifecycle_to_terminated.py", "service": "emr-containers"} {"check_id": "emr-containers.virtual-cluster-tag-untag-round-trip", "deployments": [], "key": "emr-containers/virtual-cluster-tag-untag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeVirtualCluster", "emr-containers:ListTagsForResource", "emr-containers:TagResource", "emr-containers:UntagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-containers/check_virtual_cluster_tag_untag_round_trip.py", "service": "emr-containers"} {"check_id": "emr-containers.virtual-cluster-update-scheduler-configuration-success", "deployments": [], "key": "emr-containers/virtual-cluster-update-scheduler-configuration-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "eks:CreateCluster", "eks:DeleteCluster", "eks:DescribeCluster", "emr-containers:CreateVirtualCluster", "emr-containers:DeleteVirtualCluster", "emr-containers:DescribeVirtualCluster", "emr-containers:UpdateVirtualCluster", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-containers/check_virtual_cluster_update_scheduler_configuration_success.py", "service": "emr-containers"} {"check_id": "emr-serverless.auto-stop-configuration-stops-idle-application", "deployments": [], "key": "emr-serverless/auto-stop-configuration-stops-idle-application", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication"], "path": "behavioral/emr-serverless/check_auto_stop_configuration_stops_idle_application.py", "service": "emr-serverless"} {"check_id": "emr-serverless.cancel-job-run-on-terminal-state-rejected", "deployments": [], "key": "emr-serverless/cancel-job-run-on-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/emr-serverless/check_cancel_job_run_on_terminal_state_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.cancel-job-run-transitions-to-cancelled", "deployments": [], "key": "emr-serverless/cancel-job-run-transitions-to-cancelled", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr-serverless/check_cancel_job_run_transitions_to_cancelled.py", "service": "emr-serverless"} {"check_id": "emr-serverless.cancel-terminal-job-run-rejected", "deployments": [], "key": "emr-serverless/cancel-terminal-job-run-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_cancel_terminal_job_run_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.concurrent-create-application-idempotent-client-token", "deployments": [], "key": "emr-serverless/concurrent-create-application-idempotent-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications"], "path": "behavioral/emr-serverless/check_concurrent_create_application_idempotent_client_token.py", "service": "emr-serverless"} {"check_id": "emr-serverless.concurrent-job-run-submissions-unique-ids", "deployments": [], "key": "emr-serverless/concurrent-job-run-submissions-unique-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListJobRuns", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_concurrent_job_run_submissions_unique_ids.py", "service": "emr-serverless"} {"check_id": "emr-serverless.create-application-conflicting-client-token-rejected", "deployments": [], "key": "emr-serverless/create-application-conflicting-client-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications"], "path": "behavioral/emr-serverless/check_create_application_conflicting_client_token_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.create-application-idempotent-client-token", "deployments": [], "key": "emr-serverless/create-application-idempotent-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications"], "path": "behavioral/emr-serverless/check_create_application_idempotent_client_token.py", "service": "emr-serverless"} {"check_id": "emr-serverless.create-application-invalid-engine-type-rejected", "deployments": [], "key": "emr-serverless/create-application-invalid-engine-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications", "emr-serverless:StartApplication"], "path": "behavioral/emr-serverless/check_create_application_invalid_engine_type_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.create-application-invalid-release-label-rejected", "deployments": [], "key": "emr-serverless/create-application-invalid-release-label-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications"], "path": "behavioral/emr-serverless/check_create_application_invalid_release_label_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.create-application-reaches-created-state", "deployments": [], "key": "emr-serverless/create-application-reaches-created-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:StopApplication"], "path": "behavioral/emr-serverless/check_create_application_reaches_created_state.py", "service": "emr-serverless"} {"check_id": "emr-serverless.create-application-same-client-token-conflict-rejected", "deployments": [], "key": "emr-serverless/create-application-same-client-token-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications"], "path": "behavioral/emr-serverless/check_create_application_same_client_token_conflict_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.delete-application-removes-from-list", "deployments": [], "key": "emr-serverless/delete-application-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications", "emr-serverless:StartApplication"], "path": "behavioral/emr-serverless/check_delete_application_removes_from_list.py", "service": "emr-serverless"} {"check_id": "emr-serverless.delete-application-while-started-rejected", "deployments": [], "key": "emr-serverless/delete-application-while-started-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications", "emr-serverless:StartApplication", "emr-serverless:StopApplication"], "path": "behavioral/emr-serverless/check_delete_application_while_started_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.delete-started-application-rejected", "deployments": [], "key": "emr-serverless/delete-started-application-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication"], "path": "behavioral/emr-serverless/check_delete_started_application_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.get-application-nonexistent-not-found", "deployments": [], "key": "emr-serverless/get-application-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication"], "path": "behavioral/emr-serverless/check_get_application_nonexistent_not_found.py", "service": "emr-serverless"} {"check_id": "emr-serverless.get-application-not-found", "deployments": [], "key": "emr-serverless/get-application-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication"], "path": "behavioral/emr-serverless/check_get_application_not_found.py", "service": "emr-serverless"} {"check_id": "emr-serverless.get-dashboard-for-job-run-returns-url", "deployments": [], "key": "emr-serverless/get-dashboard-for-job-run-returns-url", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetDashboardForJobRun", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_get_dashboard_for_job_run_returns_url.py", "service": "emr-serverless"} {"check_id": "emr-serverless.get-job-run-invalid-attempt-not-found", "deployments": [], "key": "emr-serverless/get-job-run-invalid-attempt-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_get_job_run_invalid_attempt_not_found.py", "service": "emr-serverless"} {"check_id": "emr-serverless.get-session-endpoint-returns-endpoint-when-started", "deployments": [], "key": "emr-serverless/get-session-endpoint-returns-endpoint-when-started", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetSession", "emr-serverless:GetSessionEndpoint", "emr-serverless:StartApplication", "emr-serverless:StartSession", "emr-serverless:StopApplication", "emr-serverless:TerminateSession", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/emr-serverless/check_get_session_endpoint_returns_endpoint_when_started.py", "service": "emr-serverless"} {"check_id": "emr-serverless.job-run-reaches-failed-state-on-bad-entrypoint", "deployments": [], "key": "emr-serverless/job-run-reaches-failed-state-on-bad-entrypoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartApplication", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_job_run_reaches_failed_state_on_bad_entrypoint.py", "service": "emr-serverless"} {"check_id": "emr-serverless.list-applications-filters-by-state", "deployments": [], "key": "emr-serverless/list-applications-filters-by-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications"], "path": "behavioral/emr-serverless/check_list_applications_filters_by_state.py", "service": "emr-serverless"} {"check_id": "emr-serverless.list-applications-max-results-out-of-range-rejected", "deployments": [], "key": "emr-serverless/list-applications-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:ListApplications"], "path": "behavioral/emr-serverless/check_list_applications_max_results_out_of_range_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.list-applications-maxresults-out-of-range-rejected", "deployments": [], "key": "emr-serverless/list-applications-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:ListApplications"], "path": "behavioral/emr-serverless/check_list_applications_maxresults_out_of_range_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.list-job-runs-filters-by-state", "deployments": [], "key": "emr-serverless/list-job-runs-filters-by-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:ListJobRuns", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_list_job_runs_filters_by_state.py", "service": "emr-serverless"} {"check_id": "emr-serverless.session-lifecycle-start-and-terminate", "deployments": [], "key": "emr-serverless/session-lifecycle-start-and-terminate", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetSession", "emr-serverless:StartApplication", "emr-serverless:StartSession", "emr-serverless:StopApplication", "emr-serverless:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_session_lifecycle_start_and_terminate.py", "service": "emr-serverless"} {"check_id": "emr-serverless.spark-shuffle-partitioned-parquet-roundtrip", "deployments": [], "key": "emr-serverless/spark-shuffle-partitioned-parquet-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr-serverless/check_spark_shuffle_partitioned_parquet_roundtrip.py", "service": "emr-serverless"} {"check_id": "emr-serverless.spark-write-outside-execution-role-prefix-is-denied", "deployments": [], "key": "emr-serverless/spark-write-outside-execution-role-prefix-is-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr-serverless/check_spark_write_outside_execution_role_prefix_is_denied.py", "service": "emr-serverless"} {"check_id": "emr-serverless.start-application-transitions-to-started", "deployments": [], "key": "emr-serverless/start-application-transitions-to-started", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication"], "path": "behavioral/emr-serverless/check_start_application_transitions_to_started.py", "service": "emr-serverless"} {"check_id": "emr-serverless.start-job-run-auto-starts-application", "deployments": [], "key": "emr-serverless/start-job-run-auto-starts-application", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_start_job_run_auto_starts_application.py", "service": "emr-serverless"} {"check_id": "emr-serverless.start-job-run-invalid-execution-role-transitions-to-failed", "deployments": [], "key": "emr-serverless/start-job-run-invalid-execution-role-transitions-to-failed", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr-serverless/check_start_job_run_invalid_execution_role_transitions_to_failed.py", "service": "emr-serverless"} {"check_id": "emr-serverless.start-job-run-native-spark-execution-succeeds", "deployments": [], "key": "emr-serverless/start-job-run-native-spark-execution-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr-serverless/check_start_job_run_native_spark_execution_succeeds.py", "service": "emr-serverless"} {"check_id": "emr-serverless.start-session-reaches-started-state", "deployments": [], "key": "emr-serverless/start-session-reaches-started-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetSession", "emr-serverless:StartApplication", "emr-serverless:StartSession", "emr-serverless:StopApplication", "emr-serverless:TerminateSession", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/emr-serverless/check_start_session_reaches_started_state.py", "service": "emr-serverless"} {"check_id": "emr-serverless.start-session-without-interactive-configuration-rejected", "deployments": [], "key": "emr-serverless/start-session-without-interactive-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetSession", "emr-serverless:ListSessions", "emr-serverless:StartApplication", "emr-serverless:StartSession", "emr-serverless:StopApplication", "emr-serverless:TerminateSession", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/emr-serverless/check_start_session_without_interactive_configuration_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.start-stop-application-lifecycle", "deployments": [], "key": "emr-serverless/start-stop-application-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListApplications", "emr-serverless:StartApplication", "emr-serverless:StopApplication"], "path": "behavioral/emr-serverless/check_start_stop_application_lifecycle.py", "service": "emr-serverless"} {"check_id": "emr-serverless.stop-application-transitions-to-stopped-after-start", "deployments": [], "key": "emr-serverless/stop-application-transitions-to-stopped-after-start", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication"], "path": "behavioral/emr-serverless/check_stop_application_transitions_to_stopped_after_start.py", "service": "emr-serverless"} {"check_id": "emr-serverless.tag-and-untag-application-resource", "deployments": [], "key": "emr-serverless/tag-and-untag-application-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:ListTagsForResource", "emr-serverless:TagResource", "emr-serverless:UntagResource"], "path": "behavioral/emr-serverless/check_tag_and_untag_application_resource.py", "service": "emr-serverless"} {"check_id": "emr-serverless.tag-resource-list-tags-roundtrip", "deployments": [], "key": "emr-serverless/tag-resource-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListTagsForResource", "emr-serverless:TagResource"], "path": "behavioral/emr-serverless/check_tag_resource_list_tags_roundtrip.py", "service": "emr-serverless"} {"check_id": "emr-serverless.terminate-already-terminated-session-rejected", "deployments": [], "key": "emr-serverless/terminate-already-terminated-session-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetSession", "emr-serverless:StartApplication", "emr-serverless:StartSession", "emr-serverless:StopApplication", "emr-serverless:TerminateSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr-serverless/check_terminate_already_terminated_session_rejected.py", "service": "emr-serverless"} {"check_id": "emr-serverless.terminate-session-transitions-to-terminated", "deployments": [], "key": "emr-serverless/terminate-session-transitions-to-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetSession", "emr-serverless:ListSessions", "emr-serverless:StartApplication", "emr-serverless:StartSession", "emr-serverless:StopApplication", "emr-serverless:TerminateSession", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/emr-serverless/check_terminate_session_transitions_to_terminated.py", "service": "emr-serverless"} {"check_id": "emr-serverless.untag-resource-removes-tag", "deployments": [], "key": "emr-serverless/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListTagsForResource", "emr-serverless:UntagResource"], "path": "behavioral/emr-serverless/check_untag_resource_removes_tag.py", "service": "emr-serverless"} {"check_id": "emr-serverless.update-application-modifies-maximum-capacity", "deployments": [], "key": "emr-serverless/update-application-modifies-maximum-capacity", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:UpdateApplication"], "path": "behavioral/emr-serverless/check_update_application_modifies_maximum_capacity.py", "service": "emr-serverless"} {"check_id": "emr-serverless.update-application-while-started-rejected", "deployments": [], "key": "emr-serverless/update-application-while-started-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:UpdateApplication"], "path": "behavioral/emr-serverless/check_update_application_while_started_rejected.py", "service": "emr-serverless"} {"check_id": "emr.action-on-failure-continue-then-terminate-cluster", "deployments": [], "key": "emr/action-on-failure-continue-then-terminate-cluster", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_action_on_failure_continue_then_terminate_cluster.py", "service": "emr"} {"check_id": "emr.auto-scaling-policy-master-group-rejected", "deployments": [], "key": "emr/auto-scaling-policy-master-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_auto_scaling_policy_master_group_rejected.py", "service": "emr"} {"check_id": "emr.auto-scaling-policy-numeric-precision-roundtrip", "deployments": [], "key": "emr/auto-scaling-policy-numeric-precision-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_auto_scaling_policy_numeric_precision_roundtrip.py", "service": "emr"} {"check_id": "emr.auto-termination-idle-timeout-precision-preserved", "deployments": [], "key": "emr/auto-termination-idle-timeout-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:PutAutoTerminationPolicy", "emr:RemoveAutoTerminationPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_auto_termination_idle_timeout_precision_preserved.py", "service": "emr"} {"check_id": "emr.auto-termination-policy-empty-vs-absent-preserved", "deployments": [], "key": "emr/auto-termination-policy-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:PutAutoTerminationPolicy", "emr:RemoveAutoTerminationPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_auto_termination_policy_empty_vs_absent_preserved.py", "service": "emr"} {"check_id": "emr.auto-termination-policy-invalid-idle-timeout-rejected", "deployments": [], "key": "emr/auto-termination-policy-invalid-idle-timeout-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:PutAutoTerminationPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_auto_termination_policy_invalid_idle_timeout_rejected.py", "service": "emr"} {"check_id": "emr.auto-termination-policy-put-then-get-roundtrip", "deployments": [], "key": "emr/auto-termination-policy-put-then-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:PutAutoTerminationPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_auto_termination_policy_put_then_get_roundtrip.py", "service": "emr"} {"check_id": "emr.auto-termination-policy-really-terminates-the-idle-cluster", "deployments": [], "key": "emr/auto-termination-policy-really-terminates-the-idle-cluster", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:ListInstances", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_auto_termination_policy_really_terminates_the_idle_cluster.py", "service": "emr"} {"check_id": "emr.auto-termination-policy-roundtrip", "deployments": [], "key": "emr/auto-termination-policy-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:PutAutoTerminationPolicy", "emr:RemoveAutoTerminationPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_auto_termination_policy_roundtrip.py", "service": "emr"} {"check_id": "emr.block-public-access-configuration-exception-list-precision-preserved", "deployments": [], "key": "emr/block-public-access-configuration-exception-list-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:GetBlockPublicAccessConfiguration", "emr:PutBlockPublicAccessConfiguration"], "path": "behavioral/emr/check_block_public_access_configuration_exception_list_precision_preserved.py", "service": "emr"} {"check_id": "emr.block-public-access-configuration-overlapping-ranges-rejected", "deployments": [], "key": "emr/block-public-access-configuration-overlapping-ranges-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:GetBlockPublicAccessConfiguration", "emr:PutBlockPublicAccessConfiguration"], "path": "behavioral/emr/check_block_public_access_configuration_overlapping_ranges_rejected.py", "service": "emr"} {"check_id": "emr.block-public-access-configuration-replaces-not-merges", "deployments": [], "key": "emr/block-public-access-configuration-replaces-not-merges", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:GetBlockPublicAccessConfiguration", "emr:PutBlockPublicAccessConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_block_public_access_configuration_replaces_not_merges.py", "service": "emr"} {"check_id": "emr.block-public-access-configuration-roundtrip", "deployments": [], "key": "emr/block-public-access-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:GetBlockPublicAccessConfiguration", "emr:PutBlockPublicAccessConfiguration"], "path": "behavioral/emr/check_block_public_access_configuration_roundtrip.py", "service": "emr"} {"check_id": "emr.block-public-access-empty-vs-absent-exceptions-preserved", "deployments": [], "key": "emr/block-public-access-empty-vs-absent-exceptions-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:GetBlockPublicAccessConfiguration", "emr:PutBlockPublicAccessConfiguration"], "path": "behavioral/emr/check_block_public_access_empty_vs_absent_exceptions_preserved.py", "service": "emr"} {"check_id": "emr.bootstrap-action-completes-before-the-first-step-runs", "deployments": [], "key": "emr/bootstrap-action-completes-before-the-first-step-runs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListBootstrapActions", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/emr/check_bootstrap_action_completes_before_the_first_step_runs.py", "service": "emr"} {"check_id": "emr.bootstrap-action-failure-terminates-with-errors", "deployments": [], "key": "emr/bootstrap-action-failure-terminates-with-errors", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListBootstrapActions", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/emr/check_bootstrap_action_failure_terminates_with_errors.py", "service": "emr"} {"check_id": "emr.cluster-reaches-waiting-with-running-instances", "deployments": [], "key": "emr/cluster-reaches-waiting-with-running-instances", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:ListInstances", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_cluster_reaches_waiting_with_running_instances.py", "service": "emr"} {"check_id": "emr.concurrent-auto-termination-policy-put-converges", "deployments": [], "key": "emr/concurrent-auto-termination-policy-put-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:ListClusters", "emr:PutAutoTerminationPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_concurrent_auto_termination_policy_put_converges.py", "service": "emr"} {"check_id": "emr.concurrent-create-same-security-configuration-name", "deployments": [], "key": "emr/concurrent-create-same-security-configuration-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:ListSecurityConfigurations"], "path": "behavioral/emr/check_concurrent_create_same_security_configuration_name.py", "service": "emr"} {"check_id": "emr.concurrent-describe-security-configuration-is-consistent", "deployments": [], "key": "emr/concurrent-describe-security-configuration-is-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration"], "path": "behavioral/emr/check_concurrent_describe_security_configuration_is_consistent.py", "service": "emr"} {"check_id": "emr.concurrent-managed-scaling-policy-updates-no-corruption", "deployments": [], "key": "emr/concurrent-managed-scaling-policy-updates-no-corruption", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetManagedScalingPolicy", "emr:ListClusters", "emr:PutManagedScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_concurrent_managed_scaling_policy_updates_no_corruption.py", "service": "emr"} {"check_id": "emr.concurrent-put-auto-scaling-policy-deterministic", "deployments": [], "key": "emr/concurrent-put-auto-scaling-policy-deterministic", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_concurrent_put_auto_scaling_policy_deterministic.py", "service": "emr"} {"check_id": "emr.concurrent-put-auto-scaling-policy-last-writer-wins", "deployments": [], "key": "emr/concurrent-put-auto-scaling-policy-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole"], "path": "behavioral/emr/check_concurrent_put_auto_scaling_policy_last_writer_wins.py", "service": "emr"} {"check_id": "emr.concurrent-start-session-same-cluster-distinct-ids", "deployments": [], "key": "emr/concurrent-start-session-same-cluster-distinct-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:ListClusters", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_concurrent_start_session_same_cluster_distinct_ids.py", "service": "emr"} {"check_id": "emr.concurrent-studio-session-mapping-updates-consistent", "deployments": [], "key": "emr/concurrent-studio-session-mapping-updates-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:UpdateStudioSessionMapping", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "identitystore:CreateGroup", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_concurrent_studio_session_mapping_updates_consistent.py", "service": "emr"} {"check_id": "emr.concurrent-studio-session-mapping-updates-serialize", "deployments": [], "key": "emr/concurrent-studio-session-mapping-updates-serialize", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:UpdateStudioSessionMapping", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_concurrent_studio_session_mapping_updates_serialize.py", "service": "emr"} {"check_id": "emr.core-instance-group-resize-adds-a-real-ec2-instance", "deployments": [], "key": "emr/core-instance-group-resize-adds-a-real-ec2-instance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:ListInstances", "emr:ModifyInstanceGroups", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_core_instance_group_resize_adds_a_real_ec2_instance.py", "service": "emr"} {"check_id": "emr.create-persistent-app-ui-malformed-target-resource-arn-rejected", "deployments": [], "key": "emr/create-persistent-app-ui-malformed-target-resource-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:ListClusters", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_create_persistent_app_ui_malformed_target_resource_arn_rejected.py", "service": "emr"} {"check_id": "emr.delete-security-configuration-then-describe-fails", "deployments": [], "key": "emr/delete-security-configuration-then-describe-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration", "emr:ListSecurityConfigurations"], "path": "behavioral/emr/check_delete_security_configuration_then_describe_fails.py", "service": "emr"} {"check_id": "emr.delete-studio-session-mapping-then-get-fails", "deployments": [], "key": "emr/delete-studio-session-mapping-then-get-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:UpdateStudioSessionMapping", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_delete_studio_session_mapping_then_get_fails.py", "service": "emr"} {"check_id": "emr.deploy-cfn-cluster-executes-step", "deployments": [], "key": "emr/deploy-cfn-cluster-executes-step", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_deploy_cfn_cluster_executes_step.py", "service": "emr"} {"check_id": "emr.deploy-emr-cluster-cfn-then-step-executes", "deployments": [], "key": "emr/deploy-emr-cluster-cfn-then-step-executes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_deploy_emr_cluster_cfn_then_step_executes.py", "service": "emr"} {"check_id": "emr.deploy-emr-cluster-via-cloudformation-executes-step", "deployments": [], "key": "emr/deploy-emr-cluster-via-cloudformation-executes-step", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_deploy_emr_cluster_via_cloudformation_executes_step.py", "service": "emr"} {"check_id": "emr.deploy-emr-studio-via-cloudformation-session-mapping-usable", "deployments": [], "key": "emr/deploy-emr-studio-via-cloudformation-session-mapping-usable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:GetStudioSessionMapping", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_deploy_emr_studio_via_cloudformation_session_mapping_usable.py", "service": "emr"} {"check_id": "emr.describe-release-label-lists-applications", "deployments": [], "key": "emr/describe-release-label-lists-applications", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:DescribeReleaseLabel"], "path": "behavioral/emr/check_describe_release_label_lists_applications.py", "service": "emr"} {"check_id": "emr.e2e-cluster-create-step-execute-terminate-flow", "deployments": [], "key": "emr/e2e-cluster-create-step-execute-terminate-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_e2e_cluster_create_step_execute_terminate_flow.py", "service": "emr"} {"check_id": "emr.e2e-notebook-execution-persistent-app-ui-flow", "deployments": [], "key": "emr/e2e-notebook-execution-persistent-app-ui-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribeNotebookExecution", "emr:DescribePersistentAppUI", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:StartNotebookExecution", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr/check_e2e_notebook_execution_persistent_app_ui_flow.py", "service": "emr"} {"check_id": "emr.e2e-notebook-execution-run-to-completion", "deployments": [], "key": "emr/e2e-notebook-execution-run-to-completion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeNotebookExecution", "emr:ListNotebookExecutions", "emr:RunJobFlow", "emr:StartNotebookExecution", "emr:StopNotebookExecution", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr/check_e2e_notebook_execution_run_to_completion.py", "service": "emr"} {"check_id": "emr.e2e-studio-session-full-flow", "deployments": [], "key": "emr/e2e-studio-session-full-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:DescribeCluster", "emr:DescribeStudio", "emr:GetSession", "emr:GetSessionEndpoint", "emr:GetStudioSessionMapping", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreatePolicy", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_e2e_studio_session_full_flow.py", "service": "emr"} {"check_id": "emr.e2e-studio-session-start-execute-terminate-flow", "deployments": [], "key": "emr/e2e-studio-session-start-execute-terminate-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:DescribeCluster", "emr:GetSession", "emr:GetSessionEndpoint", "emr:GetStudioSessionMapping", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreatePolicy", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_e2e_studio_session_start_execute_terminate_flow.py", "service": "emr"} {"check_id": "emr.ebs-configuration-provisions-the-requested-real-volumes", "deployments": [], "key": "emr/ebs-configuration-provisions-the-requested-real-volumes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:ListInstances", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_ebs_configuration_provisions_the_requested_real_volumes.py", "service": "emr"} {"check_id": "emr.emr-block-public-access-rejects-a-cluster-with-an-open-security-group", "deployments": [], "key": "emr/emr-block-public-access-rejects-a-cluster-with-an-open-security-group", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:DescribeCluster", "emr:GetBlockPublicAccessConfiguration", "emr:ListInstances", "emr:PutBlockPublicAccessConfiguration", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_emr_block_public_access_rejects_a_cluster_with_an_open_security_group.py", "service": "emr"} {"check_id": "emr.emr-bootstrap-action-runs-once-on-every-provisioned-node", "deployments": [], "key": "emr/emr-bootstrap-action-runs-once-on-every-provisioned-node", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:ListInstances", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_emr_bootstrap_action_runs_once_on_every_provisioned_node.py", "service": "emr"} {"check_id": "emr.emr-cancel-and-wait-on-a-failed-step-cancels-the-following-step", "deployments": [], "key": "emr/emr-cancel-and-wait-on-a-failed-step-cancels-the-following-step", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions"], "path": "behavioral/emr/check_emr_cancel_and_wait_on_a_failed_step_cancels_the_following_step.py", "service": "emr"} {"check_id": "emr.emr-cancel-steps-on-a-running-step-prevents-its-output", "deployments": [], "key": "emr/emr-cancel-steps-on-a-running-step-prevents-its-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:CancelSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions"], "path": "behavioral/emr/check_emr_cancel_steps_on_a_running_step_prevents_its_output.py", "service": "emr"} {"check_id": "emr.emr-instance-fleet-provisioned-capacity-matches-real-ec2-instances", "deployments": [], "key": "emr/emr-instance-fleet-provisioned-capacity-matches-real-ec2-instances", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceFleets", "emr:ListInstances", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_emr_instance_fleet_provisioned_capacity_matches_real_ec2_instances.py", "service": "emr"} {"check_id": "emr.emr-launch-time-auto-termination-policy-echoed-and-out-of-range-refused", "deployments": [], "key": "emr/emr-launch-time-auto-termination-policy-echoed-and-out-of-range-refused", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_emr_launch_time_auto_termination_policy_echoed_and_out_of_range_refused.py", "service": "emr"} {"check_id": "emr.emr-run-step-spark", "deployments": [], "key": "emr/emr-run-step-spark", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListClusters", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_emr_run_step_spark.py", "service": "emr"} {"check_id": "emr.emr-serverless-failing-script-reports-failed-and-writes-no-output", "deployments": [], "key": "emr/emr-serverless-failing-script-reports-failed-and-writes-no-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:ListJobRuns", "emr-serverless:StartApplication", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_emr_serverless_failing_script_reports_failed_and_writes_no_output.py", "service": "emr"} {"check_id": "emr.emr-serverless-spark-job-run-reaches-success", "deployments": [], "key": "emr/emr-serverless-spark-job-run-reaches-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:ListJobRuns", "emr-serverless:StartApplication", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_emr_serverless_spark_job_run_reaches_success.py", "service": "emr"} {"check_id": "emr.emr-serverless-start-job-run-on-stopped-non-autostart-application-is-rejected", "deployments": [], "key": "emr/emr-serverless-start-job-run-on-stopped-non-autostart-application-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["emr-serverless:CancelJobRun", "emr-serverless:CreateApplication", "emr-serverless:DeleteApplication", "emr-serverless:GetApplication", "emr-serverless:GetJobRun", "emr-serverless:ListJobRuns", "emr-serverless:StartApplication", "emr-serverless:StartJobRun", "emr-serverless:StopApplication", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_emr_serverless_start_job_run_on_stopped_non_autostart_application_is_rejected.py", "service": "emr"} {"check_id": "emr.emr-step-args-are-passed-verbatim-to-the-application", "deployments": [], "key": "emr/emr-step-args-are-passed-verbatim-to-the-application", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/emr/check_emr_step_args_are_passed_verbatim_to_the_application.py", "service": "emr"} {"check_id": "emr.emr-step-concurrency-level-two-runs-two-steps-with-overlapping-intervals", "deployments": [], "key": "emr/emr-step-concurrency-level-two-runs-two-steps-with-overlapping-intervals", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:ModifyCluster", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions"], "path": "behavioral/emr/check_emr_step_concurrency_level_two_runs_two_steps_with_overlapping_intervals.py", "service": "emr"} {"check_id": "emr.emrfs-write-through-hadoop-fs-is-read-by-the-next-step", "deployments": [], "key": "emr/emrfs-write-through-hadoop-fs-is-read-by-the-next-step", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_emrfs_write_through_hadoop_fs_is_read_by_the_next_step.py", "service": "emr"} {"check_id": "emr.failed-spark-step-driver-traceback-in-gzipped-s3-step-log-fails", "deployments": [], "key": "emr/failed-spark-step-driver-traceback-in-gzipped-s3-step-log-fails", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_failed_spark_step_driver_traceback_in_gzipped_s3_step_log_fails.py", "service": "emr"} {"check_id": "emr.get-cluster-session-credentials-returns-scoped-credentials", "deployments": [], "key": "emr/get-cluster-session-credentials-returns-scoped-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeCluster", "emr:GetClusterSessionCredentials", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_get_cluster_session_credentials_returns_scoped_credentials.py", "service": "emr"} {"check_id": "emr.get-cluster-session-credentials-without-execution-role-denied", "deployments": [], "key": "emr/get-cluster-session-credentials-without-execution-role-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetClusterSessionCredentials", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_cluster_session_credentials_without_execution_role_denied.py", "service": "emr"} {"check_id": "emr.get-on-cluster-app-ui-presigned-url-for-running-cluster", "deployments": [], "key": "emr/get-on-cluster-app-ui-presigned-url-for-running-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetOnClusterAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_on_cluster_app_ui_presigned_url_for_running_cluster.py", "service": "emr"} {"check_id": "emr.get-on-cluster-app-ui-presigned-url-inactive-cluster-rejected", "deployments": [], "key": "emr/get-on-cluster-app-ui-presigned-url-inactive-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetOnClusterAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_on_cluster_app_ui_presigned_url_inactive_cluster_rejected.py", "service": "emr"} {"check_id": "emr.get-persistent-app-ui-presigned-url-before-ready-reports-not-ready", "deployments": [], "key": "emr/get-persistent-app-ui-presigned-url-before-ready-reports-not-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_persistent_app_ui_presigned_url_before_ready_reports_not_ready.py", "service": "emr"} {"check_id": "emr.get-persistent-app-ui-presigned-url-unknown-ui-rejected", "deployments": [], "key": "emr/get-persistent-app-ui-presigned-url-unknown-ui-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_persistent_app_ui_presigned_url_unknown_ui_rejected.py", "service": "emr"} {"check_id": "emr.get-session-endpoint-certificate-blob-preserved", "deployments": [], "key": "emr/get-session-endpoint-certificate-blob-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:GetSessionEndpoint", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_session_endpoint_certificate_blob_preserved.py", "service": "emr"} {"check_id": "emr.get-session-endpoint-for-terminated-cluster-rejected", "deployments": [], "key": "emr/get-session-endpoint-for-terminated-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:GetSessionEndpoint", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_session_endpoint_for_terminated_cluster_rejected.py", "service": "emr"} {"check_id": "emr.get-session-endpoint-returns-endpoint-for-started-session", "deployments": [], "key": "emr/get-session-endpoint-returns-endpoint-for-started-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:GetSessionEndpoint", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_session_endpoint_returns_endpoint_for_started_session.py", "service": "emr"} {"check_id": "emr.get-session-endpoint-returns-reachable-endpoint", "deployments": [], "key": "emr/get-session-endpoint-returns-reachable-endpoint", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:GetSessionEndpoint", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_session_endpoint_returns_reachable_endpoint.py", "service": "emr"} {"check_id": "emr.get-session-invalid-session-id-error-semantics", "deployments": [], "key": "emr/get-session-invalid-session-id-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:GetSession"], "path": "behavioral/emr/check_get_session_invalid_session_id_error_semantics.py", "service": "emr"} {"check_id": "emr.get-session-unknown-id-invalid-request", "deployments": [], "key": "emr/get-session-unknown-id-invalid-request", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetSession", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_get_session_unknown_id_invalid_request.py", "service": "emr"} {"check_id": "emr.hdfs-write-survives-the-step-boundary", "deployments": [], "key": "emr/hdfs-write-survives-the-step-boundary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_hdfs_write_survives_the_step_boundary.py", "service": "emr"} {"check_id": "emr.installed-application-versions-agree-between-describe-cluster-and-the-node", "deployments": [], "key": "emr/installed-application-versions-agree-between-describe-cluster-and-the-node", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_installed_application_versions_agree_between_describe_cluster_and_the_node.py", "service": "emr"} {"check_id": "emr.instance-fleet-modify-reflects-target-capacity", "deployments": [], "key": "emr/instance-fleet-modify-reflects-target-capacity", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceFleets", "emr:ModifyInstanceFleet", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_instance_fleet_modify_reflects_target_capacity.py", "service": "emr"} {"check_id": "emr.list-clusters-time-filters", "deployments": [], "key": "emr/list-clusters-time-filters", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_list_clusters_time_filters.py", "service": "emr"} {"check_id": "emr.list-notebook-executions-invalid-status-filter-rejected", "deployments": [], "key": "emr/list-notebook-executions-invalid-status-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:ListNotebookExecutions"], "path": "behavioral/emr/check_list_notebook_executions_invalid_status_filter_rejected.py", "service": "emr"} {"check_id": "emr.list-notebook-executions-newest-first", "deployments": [], "key": "emr/list-notebook-executions-newest-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeNotebookExecution", "emr:ListClusters", "emr:ListNotebookExecutions", "emr:RunJobFlow", "emr:StartNotebookExecution", "emr:StopNotebookExecution", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_list_notebook_executions_newest_first.py", "service": "emr"} {"check_id": "emr.list-notebook-executions-ordering-and-status-filter", "deployments": [], "key": "emr/list-notebook-executions-ordering-and-status-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeNotebookExecution", "emr:ListNotebookExecutions", "emr:RunJobFlow", "emr:StartNotebookExecution", "emr:StopNotebookExecution", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_list_notebook_executions_ordering_and_status_filter.py", "service": "emr"} {"check_id": "emr.list-notebook-executions-orders-newest-first", "deployments": [], "key": "emr/list-notebook-executions-orders-newest-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeNotebookExecution", "emr:ListClusters", "emr:ListNotebookExecutions", "emr:RunJobFlow", "emr:StartNotebookExecution", "emr:StopNotebookExecution", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_list_notebook_executions_orders_newest_first.py", "service": "emr"} {"check_id": "emr.list-release-labels-pagination", "deployments": [], "key": "emr/list-release-labels-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:ListReleaseLabels"], "path": "behavioral/emr/check_list_release_labels_pagination.py", "service": "emr"} {"check_id": "emr.list-release-labels-prefix-filter-and-ordering", "deployments": [], "key": "emr/list-release-labels-prefix-filter-and-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:ListReleaseLabels"], "path": "behavioral/emr/check_list_release_labels_prefix_filter_and_ordering.py", "service": "emr"} {"check_id": "emr.list-release-labels-then-describe", "deployments": [], "key": "emr/list-release-labels-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:DescribeReleaseLabel", "emr:ListReleaseLabels"], "path": "behavioral/emr/check_list_release_labels_then_describe.py", "service": "emr"} {"check_id": "emr.list-sessions-newest-first", "deployments": [], "key": "emr/list-sessions-newest-first", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:ListClusters", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_list_sessions_newest_first.py", "service": "emr"} {"check_id": "emr.list-sessions-ordering-newest-first", "deployments": [], "key": "emr/list-sessions-ordering-newest-first", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_list_sessions_ordering_newest_first.py", "service": "emr"} {"check_id": "emr.list-sessions-orders-by-creation-time", "deployments": [], "key": "emr/list-sessions-orders-by-creation-time", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:ListClusters", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_list_sessions_orders_by_creation_time.py", "service": "emr"} {"check_id": "emr.list-studio-session-mappings-invalid-identity-type-filter-rejected", "deployments": [], "key": "emr/list-studio-session-mappings-invalid-identity-type-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "emr:CreateStudio", "emr:DeleteStudio", "emr:ListStudioSessionMappings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/emr/check_list_studio_session_mappings_invalid_identity_type_filter_rejected.py", "service": "emr"} {"check_id": "emr.list-studio-session-mappings-invalid-identity-type-rejected", "deployments": [], "key": "emr/list-studio-session-mappings-invalid-identity-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "emr:CreateStudio", "emr:DeleteStudio", "emr:DescribeStudio", "emr:ListStudioSessionMappings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/emr/check_list_studio_session_mappings_invalid_identity_type_rejected.py", "service": "emr"} {"check_id": "emr.list-studio-session-mappings-pagination-stable", "deployments": [], "key": "emr/list-studio-session-mappings-pagination-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:ListStudioSessionMappings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_list_studio_session_mappings_pagination_stable.py", "service": "emr"} {"check_id": "emr.list-studio-session-mappings-reflects-membership", "deployments": [], "key": "emr/list-studio-session-mappings-reflects-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:ListStudioSessionMappings", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_list_studio_session_mappings_reflects_membership.py", "service": "emr"} {"check_id": "emr.list-studio-session-mappings-stable-ordering", "deployments": [], "key": "emr/list-studio-session-mappings-stable-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:ListStudioSessionMappings", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_list_studio_session_mappings_stable_ordering.py", "service": "emr"} {"check_id": "emr.list-supported-instance-types-for-release-label", "deployments": [], "key": "emr/list-supported-instance-types-for-release-label", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:ListSupportedInstanceTypes"], "path": "behavioral/emr/check_list_supported_instance_types_for_release_label.py", "service": "emr"} {"check_id": "emr.managed-scaling-policy-bounds-enforced-on-modify", "deployments": [], "key": "emr/managed-scaling-policy-bounds-enforced-on-modify", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:ModifyInstanceGroups", "emr:PutManagedScalingPolicy", "emr:RemoveManagedScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_managed_scaling_policy_bounds_enforced_on_modify.py", "service": "emr"} {"check_id": "emr.managed-scaling-policy-invalid-capacity-bounds-rejected", "deployments": [], "key": "emr/managed-scaling-policy-invalid-capacity-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetManagedScalingPolicy", "emr:PutManagedScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_managed_scaling_policy_invalid_capacity_bounds_rejected.py", "service": "emr"} {"check_id": "emr.managed-scaling-policy-invalid-capacity-range-rejected", "deployments": [], "key": "emr/managed-scaling-policy-invalid-capacity-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetManagedScalingPolicy", "emr:PutManagedScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_managed_scaling_policy_invalid_capacity_range_rejected.py", "service": "emr"} {"check_id": "emr.managed-scaling-policy-numeric-precision-preserved", "deployments": [], "key": "emr/managed-scaling-policy-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetManagedScalingPolicy", "emr:PutManagedScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_managed_scaling_policy_numeric_precision_preserved.py", "service": "emr"} {"check_id": "emr.managed-scaling-policy-put-then-get-roundtrip", "deployments": [], "key": "emr/managed-scaling-policy-put-then-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetManagedScalingPolicy", "emr:PutManagedScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_managed_scaling_policy_put_then_get_roundtrip.py", "service": "emr"} {"check_id": "emr.managed-scaling-policy-value-roundtrip", "deployments": [], "key": "emr/managed-scaling-policy-value-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetManagedScalingPolicy", "emr:PutManagedScalingPolicy", "emr:RemoveManagedScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_managed_scaling_policy_value_roundtrip.py", "service": "emr"} {"check_id": "emr.modify-cluster-step-concurrency-level-out-of-range-rejected", "deployments": [], "key": "emr/modify-cluster-step-concurrency-level-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ModifyCluster", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_modify_cluster_step_concurrency_level_out_of_range_rejected.py", "service": "emr"} {"check_id": "emr.modify-instance-fleet-invalid-capacity-rejected", "deployments": [], "key": "emr/modify-instance-fleet-invalid-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceFleets", "emr:ModifyInstanceFleet", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_modify_instance_fleet_invalid_capacity_rejected.py", "service": "emr"} {"check_id": "emr.modify-instance-fleet-negative-target-capacity-rejected", "deployments": [], "key": "emr/modify-instance-fleet-negative-target-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceFleets", "emr:ModifyInstanceFleet", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_modify_instance_fleet_negative_target_capacity_rejected.py", "service": "emr"} {"check_id": "emr.modify-instance-fleet-out-of-range-capacity-rejected", "deployments": [], "key": "emr/modify-instance-fleet-out-of-range-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceFleets", "emr:ModifyInstanceFleet", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_modify_instance_fleet_out_of_range_capacity_rejected.py", "service": "emr"} {"check_id": "emr.modify-instance-fleet-target-capacity-then-list-reflects-change", "deployments": [], "key": "emr/modify-instance-fleet-target-capacity-then-list-reflects-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:ListInstanceFleets", "emr:ModifyInstanceFleet", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_modify_instance_fleet_target_capacity_then_list_reflects_change.py", "service": "emr"} {"check_id": "emr.modify-instance-fleet-terminated-cluster-rejected", "deployments": [], "key": "emr/modify-instance-fleet-terminated-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:ListInstanceFleets", "emr:ModifyInstanceFleet", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_modify_instance_fleet_terminated_cluster_rejected.py", "service": "emr"} {"check_id": "emr.notebook-execution-lifecycle-transitions", "deployments": [], "key": "emr/notebook-execution-lifecycle-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeNotebookExecution", "emr:RunJobFlow", "emr:StartNotebookExecution", "emr:StopNotebookExecution", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/emr/check_notebook_execution_lifecycle_transitions.py", "service": "emr"} {"check_id": "emr.notebook-execution-state-transitions-starting-to-finished", "deployments": [], "key": "emr/notebook-execution-state-transitions-starting-to-finished", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeNotebookExecution", "emr:RunJobFlow", "emr:StartNotebookExecution", "emr:StopNotebookExecution", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_notebook_execution_state_transitions_starting_to_finished.py", "service": "emr"} {"check_id": "emr.op-app-ui-ops-reject-unknown-targets", "deployments": [], "key": "emr/op-app-ui-ops-reject-unknown-targets", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:GetOnClusterAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_op_app_ui_ops_reject_unknown_targets.py", "service": "emr"} {"check_id": "emr.op-auto-termination-policy-ops-reject-unknown-cluster", "deployments": [], "key": "emr/op-auto-termination-policy-ops-reject-unknown-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:GetAutoTerminationPolicy", "emr:PutAutoTerminationPolicy", "emr:RemoveAutoTerminationPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_op_auto_termination_policy_ops_reject_unknown_cluster.py", "service": "emr"} {"check_id": "emr.op-block-public-access-rejects-inverted-port-range", "deployments": [], "key": "emr/op-block-public-access-rejects-inverted-port-range", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:GetBlockPublicAccessConfiguration", "emr:PutBlockPublicAccessConfiguration"], "path": "behavioral/emr/check_op_block_public_access_rejects_inverted_port_range.py", "service": "emr"} {"check_id": "emr.op-cluster-id-mutations-reject-unknown-cluster", "deployments": [], "key": "emr/op-cluster-id-mutations-reject-unknown-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:AddInstanceFleet", "emr:CancelSteps", "emr:GetClusterSessionCredentials", "emr:ModifyCluster", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_op_cluster_id_mutations_reject_unknown_cluster.py", "service": "emr"} {"check_id": "emr.op-cluster-read-ops-reject-unknown-cluster", "deployments": [], "key": "emr/op-cluster-read-ops-reject-unknown-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListBootstrapActions", "emr:ListInstanceFleets", "emr:ListInstanceGroups", "emr:ListInstances", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_op_cluster_read_ops_reject_unknown_cluster.py", "service": "emr"} {"check_id": "emr.op-create-studio-rejects-unresolvable-network", "deployments": [], "key": "emr/op-create-studio-rejects-unresolvable-network", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:CreateStudio", "emr:ListStudios", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_op_create_studio_rejects_unresolvable_network.py", "service": "emr"} {"check_id": "emr.op-describe-job-flows-is-deprecated", "deployments": [], "key": "emr/op-describe-job-flows-is-deprecated", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:DescribeJobFlows", "emr:ListClusters"], "path": "behavioral/emr/check_op_describe_job_flows_is_deprecated.py", "service": "emr"} {"check_id": "emr.op-describe-release-label-unknown-fails", "deployments": [], "key": "emr/op-describe-release-label-unknown-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:DescribeReleaseLabel", "emr:ListReleaseLabels"], "path": "behavioral/emr/check_op_describe_release_label_unknown_fails.py", "service": "emr"} {"check_id": "emr.op-duplicate-security-configuration-name-fails", "deployments": [], "key": "emr/op-duplicate-security-configuration-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration"], "path": "behavioral/emr/check_op_duplicate_security_configuration_name_fails.py", "service": "emr"} {"check_id": "emr.op-jobflow-style-ops-reject-unknown-cluster", "deployments": [], "key": "emr/op-jobflow-style-ops-reject-unknown-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddInstanceGroups", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:ModifyInstanceGroups", "emr:RunJobFlow", "emr:SetKeepJobFlowAliveWhenNoSteps", "emr:SetTerminationProtection", "emr:SetVisibleToAllUsers", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_op_jobflow_style_ops_reject_unknown_cluster.py", "service": "emr"} {"check_id": "emr.op-list-clusters-rejects-invalid-state-filter", "deployments": [], "key": "emr/op-list-clusters-rejects-invalid-state-filter", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:ListClusters"], "path": "behavioral/emr/check_op_list_clusters_rejects_invalid_state_filter.py", "service": "emr"} {"check_id": "emr.op-list-supported-instance-types-unknown-release-fails", "deployments": [], "key": "emr/op-list-supported-instance-types-unknown-release-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:ListSupportedInstanceTypes"], "path": "behavioral/emr/check_op_list_supported_instance_types_unknown_release_fails.py", "service": "emr"} {"check_id": "emr.op-malformed-security-configuration-json-fails", "deployments": [], "key": "emr/op-malformed-security-configuration-json-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration", "emr:ListSecurityConfigurations"], "path": "behavioral/emr/check_op_malformed_security_configuration_json_fails.py", "service": "emr"} {"check_id": "emr.op-managed-scaling-policy-ops-reject-unknown-cluster", "deployments": [], "key": "emr/op-managed-scaling-policy-ops-reject-unknown-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:GetManagedScalingPolicy", "emr:PutManagedScalingPolicy", "emr:RemoveManagedScalingPolicy"], "path": "behavioral/emr/check_op_managed_scaling_policy_ops_reject_unknown_cluster.py", "service": "emr"} {"check_id": "emr.op-notebook-execution-ops-reject-unknown-execution", "deployments": [], "key": "emr/op-notebook-execution-ops-reject-unknown-execution", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:DescribeNotebookExecution", "emr:StopNotebookExecution"], "path": "behavioral/emr/check_op_notebook_execution_ops_reject_unknown_execution.py", "service": "emr"} {"check_id": "emr.op-run-job-flow-rejects-unknown-instance-profile", "deployments": [], "key": "emr/op-run-job-flow-rejects-unknown-instance-profile", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:ListClusters", "emr:RunJobFlow", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/emr/check_op_run_job_flow_rejects_unknown_instance_profile.py", "service": "emr"} {"check_id": "emr.op-run-job-flow-unknown-release-label-fails", "deployments": [], "key": "emr/op-run-job-flow-unknown-release-label-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_op_run_job_flow_unknown_release_label_fails.py", "service": "emr"} {"check_id": "emr.op-security-configuration-delete-is-not-idempotent", "deployments": [], "key": "emr/op-security-configuration-delete-is-not-idempotent", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:ListSecurityConfigurations"], "path": "behavioral/emr/check_op_security_configuration_delete_is_not_idempotent.py", "service": "emr"} {"check_id": "emr.op-session-mapping-unknown-studio-fails", "deployments": [], "key": "emr/op-session-mapping-unknown-studio-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:ListStudioSessionMappings", "emr:UpdateStudioSessionMapping", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_op_session_mapping_unknown_studio_fails.py", "service": "emr"} {"check_id": "emr.op-studio-unknown-id-operations-fail", "deployments": [], "key": "emr/op-studio-unknown-id-operations-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:DeleteStudio", "emr:DescribeStudio", "emr:ListStudios", "emr:UpdateStudio"], "path": "behavioral/emr/check_op_studio_unknown_id_operations_fail.py", "service": "emr"} {"check_id": "emr.op-tag-ops-reject-unknown-resource", "deployments": [], "key": "emr/op-tag-ops-reject-unknown-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddTags", "emr:DescribeCluster", "emr:RemoveTags", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_op_tag_ops_reject_unknown_resource.py", "service": "emr"} {"check_id": "emr.parquet-written-by-one-spark-step-is-read-back-by-the-next", "deployments": [], "key": "emr/parquet-written-by-one-spark-step-is-read-back-by-the-next", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_parquet_written_by_one_spark_step_is_read_back_by_the_next.py", "service": "emr"} {"check_id": "emr.persistent-app-ui-create-describe-presigned-url-chain", "deployments": [], "key": "emr/persistent-app-ui-create-describe-presigned-url-chain", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_persistent_app_ui_create_describe_presigned_url_chain.py", "service": "emr"} {"check_id": "emr.persistent-app-ui-creation-then-describe-eventually-ready", "deployments": [], "key": "emr/persistent-app-ui-creation-then-describe-eventually-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:DescribeStep", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_persistent_app_ui_creation_then_describe_eventually_ready.py", "service": "emr"} {"check_id": "emr.persistent-app-ui-describe-survives-cluster-termination-window", "deployments": [], "key": "emr/persistent-app-ui-describe-survives-cluster-termination-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:DescribeStep", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_persistent_app_ui_describe_survives_cluster_termination_window.py", "service": "emr"} {"check_id": "emr.persistent-app-ui-presigned-url-expires-after-ttl", "deployments": [], "key": "emr/persistent-app-ui-presigned-url-expires-after-ttl", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribeStep", "emr:GetPersistentAppUIPresignedURL", "emr:ListClusters", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_persistent_app_ui_presigned_url_expires_after_ttl.py", "service": "emr"} {"check_id": "emr.persistent-app-ui-presigned-url-flow", "deployments": [], "key": "emr/persistent-app-ui-presigned-url-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:DescribeStep", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_persistent_app_ui_presigned_url_flow.py", "service": "emr"} {"check_id": "emr.persistent-app-ui-presigned-url-token-preserved", "deployments": [], "key": "emr/persistent-app-ui-presigned-url-token-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/emr/check_persistent_app_ui_presigned_url_token_preserved.py", "service": "emr"} {"check_id": "emr.persistent-app-ui-reaches-attached-state", "deployments": [], "key": "emr/persistent-app-ui-reaches-attached-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_persistent_app_ui_reaches_attached_state.py", "service": "emr"} {"check_id": "emr.presigned-url-bounded-expiration", "deployments": [], "key": "emr/presigned-url-bounded-expiration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreatePersistentAppUI", "emr:DescribeCluster", "emr:DescribePersistentAppUI", "emr:GetOnClusterAppUIPresignedURL", "emr:GetPersistentAppUIPresignedURL", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_presigned_url_bounded_expiration.py", "service": "emr"} {"check_id": "emr.put-auto-scaling-policy-malformed-rule-rejected", "deployments": [], "key": "emr/put-auto-scaling-policy-malformed-rule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_put_auto_scaling_policy_malformed_rule_rejected.py", "service": "emr"} {"check_id": "emr.put-auto-scaling-policy-then-remove-reflects-in-instance-groups", "deployments": [], "key": "emr/put-auto-scaling-policy-then-remove-reflects-in-instance-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RemoveAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_put_auto_scaling_policy_then_remove_reflects_in_instance_groups.py", "service": "emr"} {"check_id": "emr.put-autoscaling-policy-malformed-rule-rejected", "deployments": [], "key": "emr/put-autoscaling-policy-malformed-rule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RemoveAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_put_autoscaling_policy_malformed_rule_rejected.py", "service": "emr"} {"check_id": "emr.remove-auto-scaling-policy-unknown-instance-group-rejected", "deployments": [], "key": "emr/remove-auto-scaling-policy-unknown-instance-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RemoveAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_remove_auto_scaling_policy_unknown_instance_group_rejected.py", "service": "emr"} {"check_id": "emr.remove-autoscaling-policy-without-existing-policy-rejected", "deployments": [], "key": "emr/remove-autoscaling-policy-without-existing-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListInstanceGroups", "emr:PutAutoScalingPolicy", "emr:RemoveAutoScalingPolicy", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_remove_autoscaling_policy_without_existing_policy_rejected.py", "service": "emr"} {"check_id": "emr.s3-dist-cp-group-by-aggregates-through-a-real-mapreduce-job", "deployments": [], "key": "emr/s3-dist-cp-group-by-aggregates-through-a-real-mapreduce-job", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_s3_dist_cp_group_by_aggregates_through_a_real_mapreduce_job.py", "service": "emr"} {"check_id": "emr.scaling-emrfs-read-of-a-deleted-object-is-rejected-and-writes-no-output", "deployments": [], "key": "emr/scaling-emrfs-read-of-a-deleted-object-is-rejected-and-writes-no-output", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_scaling_emrfs_read_of_a_deleted_object_is_rejected_and_writes_no_output.py", "service": "emr"} {"check_id": "emr.scaling-managed-scaling-headroom-adds-real-instances-for-pending-yarn-work", "deployments": [], "key": "emr/scaling-managed-scaling-headroom-adds-real-instances-for-pending-yarn-work", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:GetManagedScalingPolicy", "emr:ListInstanceGroups", "emr:ListInstances", "emr:PutManagedScalingPolicy", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_scaling_managed_scaling_headroom_adds_real_instances_for_pending_yarn_work.py", "service": "emr"} {"check_id": "emr.security-configuration-creation-timestamp-is-current", "deployments": [], "key": "emr/security-configuration-creation-timestamp-is-current", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration", "emr:ListSecurityConfigurations"], "path": "behavioral/emr/check_security_configuration_creation_timestamp_is_current.py", "service": "emr"} {"check_id": "emr.security-configuration-identical-create-is-idempotent", "deployments": [], "key": "emr/security-configuration-identical-create-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration", "emr:ListSecurityConfigurations"], "path": "behavioral/emr/check_security_configuration_identical_create_is_idempotent.py", "service": "emr"} {"check_id": "emr.security-configuration-malformed-json-rejected", "deployments": [], "key": "emr/security-configuration-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration"], "path": "behavioral/emr/check_security_configuration_malformed_json_rejected.py", "service": "emr"} {"check_id": "emr.security-configuration-rejects-illegal-encryption-semantics", "deployments": [], "key": "emr/security-configuration-rejects-illegal-encryption-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration", "emr:ListSecurityConfigurations"], "path": "behavioral/emr/check_security_configuration_rejects_illegal_encryption_semantics.py", "service": "emr"} {"check_id": "emr.security-configuration-roundtrip", "deployments": [], "key": "emr/security-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeSecurityConfiguration", "emr:ListSecurityConfigurations"], "path": "behavioral/emr/check_security_configuration_roundtrip.py", "service": "emr"} {"check_id": "emr.security-configuration-sse-kms-applies-to-emrfs-writes", "deployments": [], "key": "emr/security-configuration-sse-kms-applies-to-emrfs-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:CreateSecurityConfiguration", "emr:DeleteSecurityConfiguration", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketEncryption"], "path": "behavioral/emr/check_security_configuration_sse_kms_applies_to_emrfs_writes.py", "service": "emr"} {"check_id": "emr.server-side-unhealthy-node-replacement-enforced", "deployments": [], "key": "emr/server-side-unhealthy-node-replacement-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:RunJobFlow", "emr:SetUnhealthyNodeReplacement", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_server_side_unhealthy_node_replacement_enforced.py", "service": "emr"} {"check_id": "emr.session-endpoint-becomes-ready-within-ttl", "deployments": [], "key": "emr/session-endpoint-becomes-ready-within-ttl", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSessionEndpoint", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_session_endpoint_becomes_ready_within_ttl.py", "service": "emr"} {"check_id": "emr.session-idle-timeout-marks-session-stopped", "deployments": [], "key": "emr/session-idle-timeout-marks-session-stopped", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:ListClusters", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_session_idle_timeout_marks_session_stopped.py", "service": "emr"} {"check_id": "emr.session-idle-ttl-expires-without-explicit-terminate", "deployments": [], "key": "emr/session-idle-ttl-expires-without-explicit-terminate", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_session_idle_ttl_expires_without_explicit_terminate.py", "service": "emr"} {"check_id": "emr.session-lifecycle-start-active-terminate", "deployments": [], "key": "emr/session-lifecycle-start-active-terminate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_session_lifecycle_start_active_terminate.py", "service": "emr"} {"check_id": "emr.session-lifecycle-start-get-terminate", "deployments": [], "key": "emr/session-lifecycle-start-get-terminate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_session_lifecycle_start_get_terminate.py", "service": "emr"} {"check_id": "emr.session-tags-empty-vs-absent-preserved", "deployments": [], "key": "emr/session-tags-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_session_tags_empty_vs_absent_preserved.py", "service": "emr"} {"check_id": "emr.session-terminate-then-get-reflects-terminated-state", "deployments": [], "key": "emr/session-terminate-then-get-reflects-terminated-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_session_terminate_then_get_reflects_terminated_state.py", "service": "emr"} {"check_id": "emr.set-unhealthy-node-replacement-error-not-swallowed", "deployments": [], "key": "emr/set-unhealthy-node-replacement-error-not-swallowed", "labels": ["axis:rejection", "plane:control"], "operations": ["emr:DescribeCluster", "emr:SetUnhealthyNodeReplacement"], "path": "behavioral/emr/check_set_unhealthy_node_replacement_error_not_swallowed.py", "service": "emr"} {"check_id": "emr.set-unhealthy-node-replacement-unknown-cluster-error-shape", "deployments": [], "key": "emr/set-unhealthy-node-replacement-unknown-cluster-error-shape", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:RunJobFlow", "emr:SetUnhealthyNodeReplacement", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_set_unhealthy_node_replacement_unknown_cluster_error_shape.py", "service": "emr"} {"check_id": "emr.set-unhealthy-node-replacement-updates-cluster-configuration", "deployments": [], "key": "emr/set-unhealthy-node-replacement-updates-cluster-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:RunJobFlow", "emr:SetUnhealthyNodeReplacement", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_set_unhealthy_node_replacement_updates_cluster_configuration.py", "service": "emr"} {"check_id": "emr.spark-bigint-aggregate-beyond-float64-precision-is-exact", "deployments": [], "key": "emr/spark-bigint-aggregate-beyond-float64-precision-is-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_spark_bigint_aggregate_beyond_float64_precision_is_exact.py", "service": "emr"} {"check_id": "emr.spark-defaults-classification-governs-the-shuffle-partition-count", "deployments": [], "key": "emr/spark-defaults-classification-governs-the-shuffle-partition-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_spark_defaults_classification_governs_the_shuffle_partition_count.py", "service": "emr"} {"check_id": "emr.spark-partitioned-input-pruned-then-written-back-partitioned", "deployments": [], "key": "emr/spark-partitioned-input-pruned-then-written-back-partitioned", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_spark_partitioned_input_pruned_then_written_back_partitioned.py", "service": "emr"} {"check_id": "emr.spark-step-partitioned-write-lands-hive-layout-in-s3", "deployments": [], "key": "emr/spark-step-partitioned-write-lands-hive-layout-in-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_spark_step_partitioned_write_lands_hive_layout_in_s3.py", "service": "emr"} {"check_id": "emr.spark-step-with-a-missing-input-path-fails-and-writes-no-output", "deployments": [], "key": "emr/spark-step-with-a-missing-input-path-fails-and-writes-no-output", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInternetGateways", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr/check_spark_step_with_a_missing_input_path_fails_and_writes_no_output.py", "service": "emr"} {"check_id": "emr.spark-terminate-cluster-action-rejected-at-step-concurrency-two", "deployments": [], "key": "emr/spark-terminate-cluster-action-rejected-at-step-concurrency-two", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:ModifyCluster", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_spark_terminate_cluster_action_rejected_at_step_concurrency_two.py", "service": "emr"} {"check_id": "emr.start-session-non-studio-cluster-rejected", "deployments": [], "key": "emr/start-session-non-studio-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_start_session_non_studio_cluster_rejected.py", "service": "emr"} {"check_id": "emr.start-session-on-non-running-cluster-rejected", "deployments": [], "key": "emr/start-session-on-non-running-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_start_session_on_non_running_cluster_rejected.py", "service": "emr"} {"check_id": "emr.start-session-then-list-sessions-reflects-active-session", "deployments": [], "key": "emr/start-session-then-list-sessions-reflects-active-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:ListSessions", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_start_session_then_list_sessions_reflects_active_session.py", "service": "emr"} {"check_id": "emr.start-session-transitions-active-then-terminate-then-get-fails", "deployments": [], "key": "emr/start-session-transitions-active-then-terminate-then-get-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_start_session_transitions_active_then_terminate_then_get_fails.py", "service": "emr"} {"check_id": "emr.step-added-while-cluster-starting-queues-then-runs", "deployments": [], "key": "emr/step-added-while-cluster-starting-queues-then-runs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions"], "path": "behavioral/emr/check_step_added_while_cluster_starting_queues_then_runs.py", "service": "emr"} {"check_id": "emr.step-writes-real-output-to-s3", "deployments": [], "key": "emr/step-writes-real-output-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/emr/check_step_writes_real_output_to_s3.py", "service": "emr"} {"check_id": "emr.studio-lifecycle-and-tag-roundtrip", "deployments": [], "key": "emr/studio-lifecycle-and-tag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddTags", "emr:CreateStudio", "emr:DeleteStudio", "emr:DescribeStudio", "emr:ListStudios", "emr:RemoveTags", "emr:UpdateStudio", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/emr/check_studio_lifecycle_and_tag_roundtrip.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-create-then-get-roundtrip", "deployments": [], "key": "emr/studio-session-mapping-create-then-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_studio_session_mapping_create_then_get_roundtrip.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-delete-then-get-not-found", "deployments": [], "key": "emr/studio-session-mapping-delete-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:PutRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_studio_session_mapping_delete_then_get_not_found.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-duplicate-create-rejected", "deployments": [], "key": "emr/studio-session-mapping-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_studio_session_mapping_duplicate_create_rejected.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-invalid-identity-rejected", "deployments": [], "key": "emr/studio-session-mapping-invalid-identity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:ListStudioSessionMappings", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_studio_session_mapping_invalid_identity_rejected.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-invalid-session-policy-arn-rejected", "deployments": [], "key": "emr/studio-session-mapping-invalid-session-policy-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_studio_session_mapping_invalid_session_policy_arn_rejected.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-lifecycle-crud", "deployments": [], "key": "emr/studio-session-mapping-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:ListStudioSessionMappings", "emr:UpdateStudioSessionMapping", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_studio_session_mapping_lifecycle_crud.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-missing-identity-rejected", "deployments": [], "key": "emr/studio-session-mapping-missing-identity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:ListStudioSessionMappings", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_studio_session_mapping_missing_identity_rejected.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-unicode-identity-name-preserved", "deployments": [], "key": "emr/studio-session-mapping-unicode-identity-name-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_studio_session_mapping_unicode_identity_name_preserved.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-unicode-identity-preserved", "deployments": [], "key": "emr/studio-session-mapping-unicode-identity-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sso-admin:CreateInstance", "sso-admin:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/emr/check_studio_session_mapping_unicode_identity_preserved.py", "service": "emr"} {"check_id": "emr.studio-session-mapping-update-persists", "deployments": [], "key": "emr/studio-session-mapping-update-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:UpdateStudioSessionMapping", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_studio_session_mapping_update_persists.py", "service": "emr"} {"check_id": "emr.supported-instance-types-report-accurate-hardware-facts", "deployments": [], "key": "emr/supported-instance-types-report-accurate-hardware-facts", "labels": ["axis:happy-path", "plane:control"], "operations": ["emr:DescribeReleaseLabel", "emr:ListReleaseLabels", "emr:ListSupportedInstanceTypes"], "path": "behavioral/emr/check_supported_instance_types_report_accurate_hardware_facts.py", "service": "emr"} {"check_id": "emr.terminate-session-already-terminated-rejected", "deployments": [], "key": "emr/terminate-session-already-terminated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_terminate_session_already_terminated_rejected.py", "service": "emr"} {"check_id": "emr.terminate-session-twice-rejected", "deployments": [], "key": "emr/terminate-session-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RejectVpcEndpointConnections", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "emr:DescribeCluster", "emr:GetSession", "emr:RunJobFlow", "emr:StartSession", "emr:TerminateJobFlows", "emr:TerminateSession", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:ListAttachedRolePolicies", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_terminate_session_twice_rejected.py", "service": "emr"} {"check_id": "emr.termination-protection-blocks-terminate-job-flows", "deployments": [], "key": "emr/termination-protection-blocks-terminate-job-flows", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_termination_protection_blocks_terminate_job_flows.py", "service": "emr"} {"check_id": "emr.unhealthy-node-replacement-flag-enforced-on-cluster", "deployments": [], "key": "emr/unhealthy-node-replacement-flag-enforced-on-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:RunJobFlow", "emr:SetUnhealthyNodeReplacement", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_unhealthy_node_replacement_flag_enforced_on_cluster.py", "service": "emr"} {"check_id": "emr.unicode-tag-value-round-trip", "deployments": [], "key": "emr/unicode-tag-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddTags", "emr:DescribeCluster", "emr:ListClusters", "emr:RemoveTags", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/emr/check_unicode_tag_value_round_trip.py", "service": "emr"} {"check_id": "emr.update-studio-session-mapping-conflicting-identity-type-rejected", "deployments": [], "key": "emr/update-studio-session-mapping-conflicting-identity-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:UpdateStudioSessionMapping", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "identitystore:CreateGroup", "identitystore:DeleteGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_update_studio_session_mapping_conflicting_identity_type_rejected.py", "service": "emr"} {"check_id": "emr.update-studio-session-mapping-nonexistent-identity-rejected", "deployments": [], "key": "emr/update-studio-session-mapping-nonexistent-identity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "emr:CreateStudio", "emr:CreateStudioSessionMapping", "emr:DeleteStudio", "emr:DeleteStudioSessionMapping", "emr:GetStudioSessionMapping", "emr:UpdateStudioSessionMapping", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "identitystore:CreateUser", "identitystore:DeleteUser", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/emr/check_update_studio_session_mapping_nonexistent_identity_rejected.py", "service": "emr"} {"check_id": "emr__events__sqs.emr-step-status-change-delivers-failed-and-withholds-it-from-the-completed-rule", "deployments": [], "key": "emr__events__sqs/emr-step-status-change-delivers-failed-and-withholds-it-from-the-completed-rule", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/emr__events__sqs/check_emr_step_status_change_delivers_failed_and_withholds_it_from_the_completed_rule.py", "service": "emr__events__sqs"} {"check_id": "emr__glue.emr-spark-step-on-an-unregistered-glue-table-fails", "deployments": [], "key": "emr__glue/emr-spark-step-on-an-unregistered-glue-table-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue/check_emr_spark_step_on_an_unregistered_glue_table_fails.py", "service": "emr__glue"} {"check_id": "emr__glue.on-cluster-add-partition-lands-in-the-glue-catalog", "deployments": [], "key": "emr__glue/on-cluster-add-partition-lands-in-the-glue-catalog", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:SetTerminationProtection", "emr:TerminateJobFlows", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartition", "glue:GetPartitions", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr__glue/check_on_cluster_add_partition_lands_in_the_glue_catalog.py", "service": "emr__glue"} {"check_id": "emr__glue__s3.cfn-deploy-emr-cluster-glue-catalog-config-positive", "deployments": [], "key": "emr__glue__s3/cfn-deploy-emr-cluster-glue-catalog-config-positive", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_emr_cluster_glue_catalog_config_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-emr-cluster-glue-catalog-permission-missing-negative", "deployments": [], "key": "emr__glue__s3/cfn-deploy-emr-cluster-glue-catalog-permission-missing-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetTables", "iam:DeleteRolePolicy", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_emr_cluster_glue_catalog_permission_missing_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-emr-cluster-missing-instance-profile-negative", "deployments": [], "key": "emr__glue__s3/cfn-deploy-emr-cluster-missing-instance-profile-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListClusters", "emr:TerminateJobFlows", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_emr_cluster_missing_instance_profile_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-emr-cluster-s3-logging-stack-positive", "deployments": [], "key": "emr__glue__s3/cfn-deploy-emr-cluster-s3-logging-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "emr:DescribeCluster", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_emr_cluster_s3_logging_stack_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-emr-step-s3-bootstrap-positive", "deployments": [], "key": "emr__glue__s3/cfn-deploy-emr-step-s3-bootstrap-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_emr_step_s3_bootstrap_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-glue-crawler-invalid-s3-path-negative", "deployments": [], "key": "emr__glue__s3/cfn-deploy-glue-crawler-invalid-s3-path-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:GetDatabase", "glue:GetTables", "glue:StartCrawler", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_glue_crawler_invalid_s3_path_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-glue-crawler-s3-target-stack-positive", "deployments": [], "key": "emr__glue__s3/cfn-deploy-glue-crawler-s3-target-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_glue_crawler_s3_target_stack_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-glue-database-table-s3-stack-positive", "deployments": [], "key": "emr__glue__s3/cfn-deploy-glue-database-table-s3-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetTable", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_glue_database_table_s3_stack_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-glue-job-role-missing-s3-access-negative", "deployments": [], "key": "emr__glue__s3/cfn-deploy-glue-job-role-missing-s3-access-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJobRun", "glue:StartJobRun", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_glue_job_role_missing_s3_access_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cfn-deploy-glue-job-s3-script-location-positive", "deployments": [], "key": "emr__glue__s3/cfn-deploy-glue-job-s3-script-location-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJobRun", "glue:StartJobRun", "logs:GetLogEvents", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cfn_deploy_glue_job_s3_script_location_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cli-emr-cluster-terminate-s3-logs-persist-positive", "deployments": [], "key": "emr__glue__s3/cli-emr-cluster-terminate-s3-logs-persist-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:ListSteps", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_cli_emr_cluster_terminate_s3_logs_persist_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cli-emr-create-cluster-submit-step-s3-workflow", "deployments": [], "key": "emr__glue__s3/cli-emr-create-cluster-submit-step-s3-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/emr__glue__s3/check_cli_emr_create_cluster_submit_step_s3_workflow.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cli-glue-crawler-create-run-check-catalog-workflow", "deployments": [], "key": "emr__glue__s3/cli-glue-crawler-create-run-check-catalog-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetTables", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cli_glue_crawler_create_run_check_catalog_workflow.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cli-glue-crawler-missing-role-permission-error-negative", "deployments": [], "key": "emr__glue__s3/cli-glue-crawler-missing-role-permission-error-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetTables", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cli_glue_crawler_missing_role_permission_error_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.cli-glue-job-create-start-monitor-s3-output-workflow", "deployments": [], "key": "emr__glue__s3/cli-glue-job-create-start-monitor-s3-output-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:DeleteJob", "glue:GetJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_cli_glue_job_create_start_monitor_s3_output_workflow.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-bootstrap-action-script-fetched-from-s3-positive", "deployments": [], "key": "emr__glue__s3/emr-cluster-bootstrap-action-script-fetched-from-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_emr_cluster_bootstrap_action_script_fetched_from_s3_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-configured-with-glue-catalog-metastore-positive", "deployments": [], "key": "emr__glue__s3/emr-cluster-configured-with-glue-catalog-metastore-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_emr_cluster_configured_with_glue_catalog_metastore_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-glue-catalog-disabled-configuration-negative", "deployments": [], "key": "emr__glue__s3/emr-cluster-glue-catalog-disabled-configuration-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListInstanceGroups", "emr:ModifyInstanceGroups", "emr:RunJobFlow", "emr:TerminateJobFlows", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_emr_cluster_glue_catalog_disabled_configuration_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-glue-catalog-missing-permission-negative", "deployments": [], "key": "emr__glue__s3/emr-cluster-glue-catalog-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:RunJobFlow", "emr:TerminateJobFlows", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_emr_cluster_glue_catalog_missing_permission_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-instance-role-trust-mismatch-negative", "deployments": [], "key": "emr__glue__s3/emr-cluster-instance-role-trust-mismatch-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/emr__glue__s3/check_emr_cluster_instance_role_trust_mismatch_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-logs-uploaded-to-s3-log-uri-positive", "deployments": [], "key": "emr__glue__s3/emr-cluster-logs-uploaded-to-s3-log-uri-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "emr:DescribeCluster", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/emr__glue__s3/check_emr_cluster_logs_uploaded_to_s3_log_uri_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-missing-s3-logs-permission-negative", "deployments": [], "key": "emr__glue__s3/emr-cluster-missing-s3-logs-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "emr:DescribeCluster", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_emr_cluster_missing_s3_logs_permission_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-step-reads-input-from-s3-positive", "deployments": [], "key": "emr__glue__s3/emr-cluster-step-reads-input-from-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_emr_cluster_step_reads_input_from_s3_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-cluster-step-writes-output-to-s3-positive", "deployments": [], "key": "emr__glue__s3/emr-cluster-step-writes-output-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/emr__glue__s3/check_emr_cluster_step_writes_output_to_s3_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-hive-query-reads-glue-catalog-table-positive", "deployments": [], "key": "emr__glue__s3/emr-hive-query-reads-glue-catalog-table-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:RunJobFlow", "emr:TerminateJobFlows", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_emr_hive_query_reads_glue_catalog_table_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-spark-job-writes-result-via-glue-catalog-table-location-s3-positive", "deployments": [], "key": "emr__glue__s3/emr-spark-job-writes-result-via-glue-catalog-table-location-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:AddJobFlowSteps", "emr:DescribeCluster", "emr:DescribeStep", "emr:RunJobFlow", "emr:TerminateJobFlows", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_emr_spark_job_writes_result_via_glue_catalog_table_location_s3_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.emr-step-missing-s3-input-read-permission-negative", "deployments": [], "key": "emr__glue__s3/emr-step-missing-s3-input-read-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:DescribeStep", "emr:ListSteps", "emr:RunJobFlow", "emr:TerminateJobFlows", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_emr_step_missing_s3_input_read_permission_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.eventbridge-emr-cluster-state-change-rule-positive", "deployments": [], "key": "emr__glue__s3/eventbridge-emr-cluster-state-change-rule-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "emr:DescribeCluster", "emr:RunJobFlow", "emr:TerminateJobFlows", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/emr__glue__s3/check_eventbridge_emr_cluster_state_change_rule_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.eventbridge-glue-crawler-completion-triggers-downstream-glue-job-positive", "deployments": [], "key": "emr__glue__s3/eventbridge-glue-crawler-completion-triggers-downstream-glue-job-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateCrawler", "glue:CreateDatabase", "glue:CreateJob", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteJob", "glue:GetCrawler", "glue:GetJobRuns", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_eventbridge_glue_crawler_completion_triggers_downstream_glue_job_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.eventbridge-glue-job-state-change-triggers-rule-positive", "deployments": [], "key": "emr__glue__s3/eventbridge-glue-job-state-change-triggers-rule-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/emr__glue__s3/check_eventbridge_glue_job_state_change_triggers_rule_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.eventbridge-rule-missing-target-permission-negative", "deployments": [], "key": "emr__glue__s3/eventbridge-rule-missing-target-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/emr__glue__s3/check_eventbridge_rule_missing_target_permission_negative.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.eventbridge-s3-object-created-triggers-glue-crawler-positive", "deployments": [], "key": "emr__glue__s3/eventbridge-s3-object-created-triggers-glue-crawler-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_eventbridge_s3_object_created_triggers_glue_crawler_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-catalog-table-location-points-to-s3-path-positive", "deployments": [], "key": "emr__glue__s3/glue-catalog-table-location-points-to-s3-path-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/emr__glue__s3/check_glue_catalog_table_location_points_to_s3_path_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-connection-uses-role-with-glue-trust-positive", "deployments": [], "key": "emr__glue__s3/glue-connection-uses-role-with-glue-trust-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateConnection", "glue:CreateJob", "glue:DeleteConnection", "glue:DeleteJob", "glue:GetConnection", "glue:GetJob", "glue:GetJobRun", "glue:StartJobRun", "glue:UpdateJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_connection_uses_role_with_glue_trust_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-crawler-assumes-role-trusting-glue-service-positive", "deployments": [], "key": "emr__glue__s3/glue-crawler-assumes-role-trusting-glue-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_crawler_assumes_role_trusting_glue_service_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-crawler-creates-catalog-table-from-s3-positive", "deployments": [], "key": "emr__glue__s3/glue-crawler-creates-catalog-table-from-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_crawler_creates_catalog_table_from_s3_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-crawler-detects-s3-partitions-positive", "deployments": [], "key": "emr__glue__s3/glue-crawler-detects-s3-partitions-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetPartitions", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_crawler_detects_s3_partitions_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-crawler-missing-s3-list-permission-rejected", "deployments": [], "key": "emr__glue__s3/glue-crawler-missing-s3-list-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetTable", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_crawler_missing_s3_list_permission_rejected.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-etl-job-reads-s3-csv-source-positive", "deployments": [], "key": "emr__glue__s3/glue-etl-job-reads-s3-csv-source-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_etl_job_reads_s3_csv_source_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-etl-job-writes-parquet-to-s3-positive", "deployments": [], "key": "emr__glue__s3/glue-etl-job-writes-parquet-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_etl_job_writes_parquet_to_s3_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-job-bookmark-persists-processed-s3-keys-positive", "deployments": [], "key": "emr__glue__s3/glue-job-bookmark-persists-processed-s3-keys-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:ResetJobBookmark", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_job_bookmark_persists_processed_s3_keys_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-job-missing-s3-getobject-source-rejected", "deployments": [], "key": "emr__glue__s3/glue-job-missing-s3-getobject-source-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_job_missing_s3_getobject_source_rejected.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-job-role-cross-account-trust-mismatch-rejected", "deployments": [], "key": "emr__glue__s3/glue-job-role-cross-account-trust-mismatch-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/emr__glue__s3/check_glue_job_role_cross_account_trust_mismatch_rejected.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.glue-job-start-with-role-missing-glue-trust-rejected", "deployments": [], "key": "emr__glue__s3/glue-job-start-with-role-missing-glue-trust-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_glue_job_start_with_role_missing_glue_trust_rejected.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.iam-role-trust-glue-service-assumed-successfully-positive", "deployments": [], "key": "emr__glue__s3/iam-role-trust-glue-service-assumed-successfully-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/emr__glue__s3/check_iam_role_trust_glue_service_assumed_successfully_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.iam-role-trust-s3-service-assumed-for-batch-op-positive", "deployments": [], "key": "emr__glue__s3/iam-role-trust-s3-service-assumed-for-batch-op-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/emr__glue__s3/check_iam_role_trust_s3_service_assumed_for_batch_op_positive.py", "service": "emr__glue__s3"} {"check_id": "emr__glue__s3.s3-batch-operation-role-missing-s3-trust-rejected", "deployments": [], "key": "emr__glue__s3/s3-batch-operation-role-missing-s3-trust-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/emr__glue__s3/check_s3_batch_operation_role_missing_s3_trust_rejected.py", "service": "emr__glue__s3"} {"check_id": "endusermessaging.attribute-operations-on-deleted-profile-answer-profile-not-found", "deployments": [], "key": "endusermessaging/attribute-operations-on-deleted-profile-answer-profile-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:DeleteBrandProfileAttribute", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:ListBrandProfileAttributes", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_attribute_operations_on_deleted_profile_answer_profile_not_found.py", "service": "endusermessaging"} {"check_id": "endusermessaging.brand-profile-attribute-category-must-be-a-supported-value", "deployments": [], "key": "endusermessaging/brand-profile-attribute-category-must-be-a-supported-value", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_brand_profile_attribute_category_must_be_a_supported_value.py", "service": "endusermessaging"} {"check_id": "endusermessaging.brand-profile-attribute-create-then-delete-reflected-in-list", "deployments": [], "key": "endusermessaging/brand-profile-attribute-create-then-delete-reflected-in-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:DeleteBrandProfileAttribute", "endusermessaging:ListBrandProfileAttributes"], "path": "behavioral/endusermessaging/check_brand_profile_attribute_create_then_delete_reflected_in_list.py", "service": "endusermessaging"} {"check_id": "endusermessaging.brand-profile-attribute-media-download-url-serves-uploaded-bytes", "deployments": [], "key": "endusermessaging/brand-profile-attribute-media-download-url-serves-uploaded-bytes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_brand_profile_attribute_media_download_url_serves_uploaded_bytes.py", "service": "endusermessaging"} {"check_id": "endusermessaging.brand-profile-attribute-names-are-case-sensitive", "deployments": [], "key": "endusermessaging/brand-profile-attribute-names-are-case-sensitive", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:ListBrandProfileAttributes", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_brand_profile_attribute_names_are_case_sensitive.py", "service": "endusermessaging"} {"check_id": "endusermessaging.brand-profile-deletion-protection-blocks-then-allows-delete", "deployments": [], "key": "endusermessaging/brand-profile-deletion-protection-blocks-then-allows-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfile", "endusermessaging:UpdateBrandProfile"], "path": "behavioral/endusermessaging/check_brand_profile_deletion_protection_blocks_then_allows_delete.py", "service": "endusermessaging"} {"check_id": "endusermessaging.brand-profile-names-are-not-unique", "deployments": [], "key": "endusermessaging/brand-profile-names-are-not-unique", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:ListBrandProfiles"], "path": "behavioral/endusermessaging/check_brand_profile_names_are_not_unique.py", "service": "endusermessaging"} {"check_id": "endusermessaging.brand-profile-tag-resource-overwrites-and-untag-removes-only-named-keys", "deployments": [], "key": "endusermessaging/brand-profile-tag-resource-overwrites-and-untag-removes-only-named-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:ListTagsForResource", "endusermessaging:TagResource", "endusermessaging:UntagResource"], "path": "behavioral/endusermessaging/check_brand_profile_tag_resource_overwrites_and_untag_removes_only_named_keys.py", "service": "endusermessaging"} {"check_id": "endusermessaging.brand-profile-tags-are-unreachable-after-profile-delete", "deployments": [], "key": "endusermessaging/brand-profile-tags-are-unreachable-after-profile-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:ListTagsForResource", "endusermessaging:TagResource"], "path": "behavioral/endusermessaging/check_brand_profile_tags_are_unreachable_after_profile_delete.py", "service": "endusermessaging"} {"check_id": "endusermessaging.create-brand-profile-attributes-batch-is-atomic-on-conflict", "deployments": [], "key": "endusermessaging/create-brand-profile-attributes-batch-is-atomic-on-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_create_brand_profile_attributes_batch_is_atomic_on_conflict.py", "service": "endusermessaging"} {"check_id": "endusermessaging.create-brand-profile-attributes-batch-with-one-invalid-member-creates-none", "deployments": [], "key": "endusermessaging/create-brand-profile-attributes-batch-with-one-invalid-member-creates-none", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_create_brand_profile_attributes_batch_with_one_invalid_member_creates_none.py", "service": "endusermessaging"} {"check_id": "endusermessaging.create-brand-profile-attributes-client-token-replay-and-mismatch", "deployments": [], "key": "endusermessaging/create-brand-profile-attributes-client-token-replay-and-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:ListBrandProfileAttributes"], "path": "behavioral/endusermessaging/check_create_brand_profile_attributes_client_token_replay_and_mismatch.py", "service": "endusermessaging"} {"check_id": "endusermessaging.create-brand-profile-attributes-rejects-duplicate-name", "deployments": [], "key": "endusermessaging/create-brand-profile-attributes-rejects-duplicate-name", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_create_brand_profile_attributes_rejects_duplicate_name.py", "service": "endusermessaging"} {"check_id": "endusermessaging.create-brand-profile-attributes-rejects-duplicate-names-within-request", "deployments": [], "key": "endusermessaging/create-brand-profile-attributes-rejects-duplicate-names-within-request", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_create_brand_profile_attributes_rejects_duplicate_names_within_request.py", "service": "endusermessaging"} {"check_id": "endusermessaging.create-brand-profile-seeds-default-attribute-template", "deployments": [], "key": "endusermessaging/create-brand-profile-seeds-default-attribute-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:ListBrandProfileAttributes"], "path": "behavioral/endusermessaging/check_create_brand_profile_seeds_default_attribute_template.py", "service": "endusermessaging"} {"check_id": "endusermessaging.create-notify-code-configuration-client-token-replay-and-mismatch", "deployments": [], "key": "endusermessaging/create-notify-code-configuration-client-token-replay-and-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:ListNotifyCodeConfigurations"], "path": "behavioral/endusermessaging/check_create_notify_code_configuration_client_token_replay_and_mismatch.py", "service": "endusermessaging"} {"check_id": "endusermessaging.delete-brand-profile-attribute-of-unknown-name-succeeds-while-reads-answer-not-found", "deployments": [], "key": "endusermessaging/delete-brand-profile-attribute-of-unknown-name-succeeds-while-reads-answer-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:DeleteBrandProfileAttribute", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_delete_brand_profile_attribute_of_unknown_name_succeeds_while_reads_answer_not_found.py", "service": "endusermessaging"} {"check_id": "endusermessaging.delete-brand-profile-cascades-to-attributes", "deployments": [], "key": "endusermessaging/delete-brand-profile-cascades-to-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_delete_brand_profile_cascades_to_attributes.py", "service": "endusermessaging"} {"check_id": "endusermessaging.deletion-protection-does-not-block-attribute-deletes", "deployments": [], "key": "endusermessaging/deletion-protection-does-not-block-attribute-deletes", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:DeleteBrandProfileAttribute", "endusermessaging:GetBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfile"], "path": "behavioral/endusermessaging/check_deletion_protection_does_not_block_attribute_deletes.py", "service": "endusermessaging"} {"check_id": "endusermessaging.document-attribute-created-without-attachment-gains-media-on-update", "deployments": [], "key": "endusermessaging/document-attribute-created-without-attachment-gains-media-on-update", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_document_attribute_created_without_attachment_gains_media_on_update.py", "service": "endusermessaging"} {"check_id": "endusermessaging.get-brand-profile-accepts-arn-and-rejects-name-as-identifier", "deployments": [], "key": "endusermessaging/get-brand-profile-accepts-arn-and-rejects-name-as-identifier", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfile"], "path": "behavioral/endusermessaging/check_get_brand_profile_accepts_arn_and_rejects_name_as_identifier.py", "service": "endusermessaging"} {"check_id": "endusermessaging.image-attribute-rejects-value-and-attachment-together", "deployments": [], "key": "endusermessaging/image-attribute-rejects-value-and-attachment-together", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_image_attribute_rejects_value_and_attachment_together.py", "service": "endusermessaging"} {"check_id": "endusermessaging.image-attribute-value-must-be-an-s3-url", "deployments": [], "key": "endusermessaging/image-attribute-value-must-be-an-s3-url", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_image_attribute_value_must_be_an_s3_url.py", "service": "endusermessaging"} {"check_id": "endusermessaging.list-brand-profile-attributes-pages-cover-every-attribute-once", "deployments": [], "key": "endusermessaging/list-brand-profile-attributes-pages-cover-every-attribute-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:ListBrandProfileAttributes"], "path": "behavioral/endusermessaging/check_list_brand_profile_attributes_pages_cover_every_attribute_once.py", "service": "endusermessaging"} {"check_id": "endusermessaging.list-brand-profiles-pagination-covers-all-created", "deployments": [], "key": "endusermessaging/list-brand-profiles-pagination-covers-all-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:ListBrandProfiles"], "path": "behavioral/endusermessaging/check_list_brand_profiles_pagination_covers_all_created.py", "service": "endusermessaging"} {"check_id": "endusermessaging.list-jobs-rejects-unknown-operation-type", "deployments": [], "key": "endusermessaging/list-jobs-rejects-unknown-operation-type", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:ListJobs"], "path": "behavioral/endusermessaging/check_list_jobs_rejects_unknown_operation_type.py", "service": "endusermessaging"} {"check_id": "endusermessaging.list-tags-for-resource-on-arn-of-wrong-resource-type-answers-not-found", "deployments": [], "key": "endusermessaging/list-tags-for-resource-on-arn-of-wrong-resource-type-answers-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfile", "endusermessaging:ListTagsForResource"], "path": "behavioral/endusermessaging/check_list_tags_for_resource_on_arn_of_wrong_resource_type_answers_not_found.py", "service": "endusermessaging"} {"check_id": "endusermessaging.list-tags-for-resource-rejects-arn-from-another-region", "deployments": [], "key": "endusermessaging/list-tags-for-resource-rejects-arn-from-another-region", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:ListTagsForResource"], "path": "behavioral/endusermessaging/check_list_tags_for_resource_rejects_arn_from_another_region.py", "service": "endusermessaging"} {"check_id": "endusermessaging.media-attachment-rejects-unsupported-file-type", "deployments": [], "key": "endusermessaging/media-attachment-rejects-unsupported-file-type", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_media_attachment_rejects_unsupported_file_type.py", "service": "endusermessaging"} {"check_id": "endusermessaging.media-attribute-download-serves-sniffed-type-and-named-file", "deployments": [], "key": "endusermessaging/media-attribute-download-serves-sniffed-type-and-named-file", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_media_attribute_download_serves_sniffed_type_and_named_file.py", "service": "endusermessaging"} {"check_id": "endusermessaging.notify-code-configuration-deletion-protection-blocks-then-allows-delete", "deployments": [], "key": "endusermessaging/notify-code-configuration-deletion-protection-blocks-then-allows-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:GetNotifyCodeConfiguration", "endusermessaging:UpdateNotifyCodeConfiguration"], "path": "behavioral/endusermessaging/check_notify_code_configuration_deletion_protection_blocks_then_allows_delete.py", "service": "endusermessaging"} {"check_id": "endusermessaging.notify-code-configuration-lookup-by-arn-and-rejects-malformed-id", "deployments": [], "key": "endusermessaging/notify-code-configuration-lookup-by-arn-and-rejects-malformed-id", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:GetNotifyCodeConfiguration"], "path": "behavioral/endusermessaging/check_notify_code_configuration_lookup_by_arn_and_rejects_malformed_id.py", "service": "endusermessaging"} {"check_id": "endusermessaging.notify-code-configuration-tags-round-trip-and-vanish-on-delete", "deployments": [], "key": "endusermessaging/notify-code-configuration-tags-round-trip-and-vanish-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:ListTagsForResource", "endusermessaging:TagResource"], "path": "behavioral/endusermessaging/check_notify_code_configuration_tags_round_trip_and_vanish_on_delete.py", "service": "endusermessaging"} {"check_id": "endusermessaging.notify-code-template-must-contain-code-placeholder", "deployments": [], "key": "endusermessaging/notify-code-template-must-contain-code-placeholder", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:GetNotifyCodeConfiguration", "endusermessaging:UpdateNotifyCodeConfiguration"], "path": "behavioral/endusermessaging/check_notify_code_template_must_contain_code_placeholder.py", "service": "endusermessaging"} {"check_id": "endusermessaging.rename-brand-profile-under-deletion-protection-keeps-protection", "deployments": [], "key": "endusermessaging/rename-brand-profile-under-deletion-protection-keeps-protection", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfile", "endusermessaging:ListBrandProfiles", "endusermessaging:UpdateBrandProfile"], "path": "behavioral/endusermessaging/check_rename_brand_profile_under_deletion_protection_keeps_protection.py", "service": "endusermessaging"} {"check_id": "endusermessaging.seeded-attribute-can-be-deleted-and-recreated-with-a-value", "deployments": [], "key": "endusermessaging/seeded-attribute-can-be-deleted-and-recreated-with-a-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:DeleteBrandProfileAttribute", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:ListBrandProfileAttributes"], "path": "behavioral/endusermessaging/check_seeded_attribute_can_be_deleted_and_recreated_with_a_value.py", "service": "endusermessaging"} {"check_id": "endusermessaging.tag-resource-rejects-aws-prefixed-key", "deployments": [], "key": "endusermessaging/tag-resource-rejects-aws-prefixed-key", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfile", "endusermessaging:ListTagsForResource", "endusermessaging:TagResource"], "path": "behavioral/endusermessaging/check_tag_resource_rejects_aws_prefixed_key.py", "service": "endusermessaging"} {"check_id": "endusermessaging.tag-resource-rejects-duplicate-keys-in-one-request", "deployments": [], "key": "endusermessaging/tag-resource-rejects-duplicate-keys-in-one-request", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfile", "endusermessaging:ListTagsForResource", "endusermessaging:TagResource"], "path": "behavioral/endusermessaging/check_tag_resource_rejects_duplicate_keys_in_one_request.py", "service": "endusermessaging"} {"check_id": "endusermessaging.text-attribute-rejects-attachment-on-create-and-update", "deployments": [], "key": "endusermessaging/text-attribute-rejects-attachment-on-create-and-update", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_text_attribute_rejects_attachment_on_create_and_update.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-brand-profile-attribute-partial-update-preserves-other-fields", "deployments": [], "key": "endusermessaging/update-brand-profile-attribute-partial-update-preserves-other-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_update_brand_profile_attribute_partial_update_preserves_other_fields.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-brand-profile-attribute-rejects-request-with-no-fields", "deployments": [], "key": "endusermessaging/update-brand-profile-attribute-rejects-request-with-no-fields", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_update_brand_profile_attribute_rejects_request_with_no_fields.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-brand-profile-from-registration-refuses-unknown-registration", "deployments": [], "key": "endusermessaging/update-brand-profile-from-registration-refuses-unknown-registration", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:ListJobs", "endusermessaging:ListRegistrationsFromBrandProfile", "endusermessaging:UpdateBrandProfileAttribute", "endusermessaging:UpdateBrandProfileFromRegistration"], "path": "behavioral/endusermessaging/check_update_brand_profile_from_registration_refuses_unknown_registration.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-brand-profile-rejects-request-with-no-fields", "deployments": [], "key": "endusermessaging/update-brand-profile-rejects-request-with-no-fields", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfile", "endusermessaging:UpdateBrandProfile"], "path": "behavioral/endusermessaging/check_update_brand_profile_rejects_request_with_no_fields.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-media-attribute-attachment-replaces-served-bytes", "deployments": [], "key": "endusermessaging/update-media-attribute-attachment-replaces-served-bytes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["endusermessaging:CreateBrandProfile", "endusermessaging:CreateBrandProfileAttributes", "endusermessaging:DeleteBrandProfile", "endusermessaging:GetBrandProfileAttribute", "endusermessaging:UpdateBrandProfileAttribute"], "path": "behavioral/endusermessaging/check_update_media_attribute_attachment_replaces_served_bytes.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-notify-code-configuration-merges-channels-and-empty-template-clears-one", "deployments": [], "key": "endusermessaging/update-notify-code-configuration-merges-channels-and-empty-template-clears-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:GetNotifyCodeConfiguration", "endusermessaging:UpdateNotifyCodeConfiguration"], "path": "behavioral/endusermessaging/check_update_notify_code_configuration_merges_channels_and_empty_template_clears_one.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-notify-code-configuration-out-of-range-parameters-leave-config-unchanged", "deployments": [], "key": "endusermessaging/update-notify-code-configuration-out-of-range-parameters-leave-config-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:GetNotifyCodeConfiguration", "endusermessaging:UpdateNotifyCodeConfiguration"], "path": "behavioral/endusermessaging/check_update_notify_code_configuration_out_of_range_parameters_leave_config_unchanged.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-notify-code-configuration-partial-update-preserves-other-fields", "deployments": [], "key": "endusermessaging/update-notify-code-configuration-partial-update-preserves-other-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:GetNotifyCodeConfiguration", "endusermessaging:UpdateNotifyCodeConfiguration"], "path": "behavioral/endusermessaging/check_update_notify_code_configuration_partial_update_preserves_other_fields.py", "service": "endusermessaging"} {"check_id": "endusermessaging.update-notify-code-configuration-with-no-fields-changes-nothing", "deployments": [], "key": "endusermessaging/update-notify-code-configuration-with-no-fields-changes-nothing", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:CreateNotifyCodeConfiguration", "endusermessaging:DeleteNotifyCodeConfiguration", "endusermessaging:GetNotifyCodeConfiguration", "endusermessaging:UpdateNotifyCodeConfiguration"], "path": "behavioral/endusermessaging/check_update_notify_code_configuration_with_no_fields_changes_nothing.py", "service": "endusermessaging"} {"check_id": "endusermessaging.validate-notify-code-verification-without-a-sent-code-is-invalid", "deployments": [], "key": "endusermessaging/validate-notify-code-verification-without-a-sent-code-is-invalid", "labels": ["axis:happy-path", "plane:control"], "operations": ["endusermessaging:ValidateNotifyCodeVerification"], "path": "behavioral/endusermessaging/check_validate_notify_code_verification_without_a_sent_code_is_invalid.py", "service": "endusermessaging"} {"check_id": "entityresolution.add-policy-statement-concurrent-same-id-exactly-one-wins", "deployments": [], "key": "entityresolution/add-policy-statement-concurrent-same-id-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:AddPolicyStatement", "entityresolution:CreateIdNamespace", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteIdNamespace", "entityresolution:DeletePolicyStatement", "entityresolution:DeleteSchemaMapping", "entityresolution:GetPolicy", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_add_policy_statement_concurrent_same_id_exactly_one_wins.py", "service": "entityresolution"} {"check_id": "entityresolution.add-policy-statement-duplicate-id-conflict-rejected", "deployments": [], "key": "entityresolution/add-policy-statement-duplicate-id-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:AddPolicyStatement", "entityresolution:CreateIdNamespace", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteIdNamespace", "entityresolution:DeletePolicyStatement", "entityresolution:DeleteSchemaMapping", "entityresolution:GetPolicy", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_add_policy_statement_duplicate_id_conflict_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.batch-delete-unique-id-empty-list-rejected", "deployments": [], "key": "entityresolution/batch-delete-unique-id-empty-list-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["entityresolution:BatchDeleteUniqueId", "entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GenerateMatchId", "entityresolution:GetMatchId", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_batch_delete_unique_id_empty_list_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.create-id-namespace-invalid-type-enum-rejected", "deployments": [], "key": "entityresolution/create-id-namespace-invalid-type-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:CreateIdNamespace", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteIdNamespace", "entityresolution:DeleteSchemaMapping", "entityresolution:GetIdNamespace", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_create_id_namespace_invalid_type_enum_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.create-matching-workflow-invalid-schema-reference-rejected", "deployments": [], "key": "entityresolution/create-matching-workflow-invalid-schema-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GetMatchingWorkflow", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_create_matching_workflow_invalid_schema_reference_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.create-schema-mapping-duplicate-field-names-rejected", "deployments": [], "key": "entityresolution/create-schema-mapping-duplicate-field-names-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:CreateSchemaMapping", "entityresolution:DeleteSchemaMapping", "entityresolution:GetSchemaMapping"], "path": "behavioral/entityresolution/check_create_schema_mapping_duplicate_field_names_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.create-schema-mapping-duplicate-name-conflict-rejected", "deployments": [], "key": "entityresolution/create-schema-mapping-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:CreateSchemaMapping", "entityresolution:DeleteSchemaMapping", "entityresolution:GetSchemaMapping"], "path": "behavioral/entityresolution/check_create_schema_mapping_duplicate_name_conflict_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.delete-matching-workflow-removes-from-list", "deployments": [], "key": "entityresolution/delete-matching-workflow-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GetMatchingWorkflow", "entityresolution:ListMatchingWorkflows", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_delete_matching_workflow_removes_from_list.py", "service": "entityresolution"} {"check_id": "entityresolution.delete-schema-mapping-in-use-conflict-rejected", "deployments": [], "key": "entityresolution/delete-schema-mapping-in-use-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GetSchemaMapping", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_delete_schema_mapping_in_use_conflict_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.generate-match-id-dedup-across-calls", "deployments": [], "key": "entityresolution/generate-match-id-dedup-across-calls", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GenerateMatchId", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_generate_match_id_dedup_across_calls.py", "service": "entityresolution"} {"check_id": "entityresolution.get-schema-mapping-access-denied-without-permission-rejected", "deployments": [], "key": "entityresolution/get-schema-mapping-access-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:CreateSchemaMapping", "entityresolution:DeleteSchemaMapping", "entityresolution:GetSchemaMapping", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_get_schema_mapping_access_denied_without_permission_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.get-schema-mapping-not-found-rejected", "deployments": [], "key": "entityresolution/get-schema-mapping-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:CreateSchemaMapping", "entityresolution:DeleteSchemaMapping", "entityresolution:GetSchemaMapping"], "path": "behavioral/entityresolution/check_get_schema_mapping_not_found_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.id-mapping-workflow-create-get-delete-roundtrip", "deployments": [], "key": "entityresolution/id-mapping-workflow-create-get-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:CreateIdMappingWorkflow", "entityresolution:CreateIdNamespace", "entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteIdMappingWorkflow", "entityresolution:DeleteIdNamespace", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GetIdMappingWorkflow", "entityresolution:ListIdMappingWorkflows", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_id_mapping_workflow_create_get_delete_roundtrip.py", "service": "entityresolution"} {"check_id": "entityresolution.id-mapping-workflow-update-persists-changes", "deployments": [], "key": "entityresolution/id-mapping-workflow-update-persists-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:CreateIdMappingWorkflow", "entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteIdMappingWorkflow", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GetIdMappingWorkflow", "entityresolution:UpdateIdMappingWorkflow", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_id_mapping_workflow_update_persists_changes.py", "service": "entityresolution"} {"check_id": "entityresolution.id-namespace-create-get-update-roundtrip", "deployments": [], "key": "entityresolution/id-namespace-create-get-update-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:CreateIdNamespace", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteIdNamespace", "entityresolution:DeleteSchemaMapping", "entityresolution:GetIdNamespace", "entityresolution:UpdateIdNamespace", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_id_namespace_create_get_update_roundtrip.py", "service": "entityresolution"} {"check_id": "entityresolution.list-provider-services-get-provider-service-roundtrip", "deployments": [], "key": "entityresolution/list-provider-services-get-provider-service-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:GetProviderService", "entityresolution:ListProviderServices"], "path": "behavioral/entityresolution/check_list_provider_services_get_provider_service_roundtrip.py", "service": "entityresolution"} {"check_id": "entityresolution.matching-workflow-create-get-update-roundtrip", "deployments": [], "key": "entityresolution/matching-workflow-create-get-update-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GetMatchingWorkflow", "entityresolution:UpdateMatchingWorkflow", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_matching_workflow_create_get_update_roundtrip.py", "service": "entityresolution"} {"check_id": "entityresolution.matching-workflow-job-full-lifecycle", "deployments": [], "key": "entityresolution/matching-workflow-job-full-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["entityresolution:CreateMatchingWorkflow", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteMatchingWorkflow", "entityresolution:DeleteSchemaMapping", "entityresolution:GetMatchingJob", "entityresolution:GetMatchingWorkflow", "entityresolution:StartMatchingJob", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_matching_workflow_job_full_lifecycle.py", "service": "entityresolution"} {"check_id": "entityresolution.put-policy-stale-revision-token-rejected", "deployments": [], "key": "entityresolution/put-policy-stale-revision-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["entityresolution:AddPolicyStatement", "entityresolution:CreateIdNamespace", "entityresolution:CreateSchemaMapping", "entityresolution:DeleteIdNamespace", "entityresolution:DeletePolicyStatement", "entityresolution:DeleteSchemaMapping", "entityresolution:GetPolicy", "entityresolution:PutPolicy", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/entityresolution/check_put_policy_stale_revision_token_rejected.py", "service": "entityresolution"} {"check_id": "entityresolution.schema-mapping-create-get-delete-roundtrip", "deployments": [], "key": "entityresolution/schema-mapping-create-get-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:CreateSchemaMapping", "entityresolution:DeleteSchemaMapping", "entityresolution:GetSchemaMapping", "entityresolution:UpdateSchemaMapping"], "path": "behavioral/entityresolution/check_schema_mapping_create_get_delete_roundtrip.py", "service": "entityresolution"} {"check_id": "entityresolution.schema-mapping-list-pagination-respects-max-results", "deployments": [], "key": "entityresolution/schema-mapping-list-pagination-respects-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:CreateSchemaMapping", "entityresolution:DeleteSchemaMapping", "entityresolution:ListSchemaMappings"], "path": "behavioral/entityresolution/check_schema_mapping_list_pagination_respects_max_results.py", "service": "entityresolution"} {"check_id": "entityresolution.tag-resource-list-tags-untag-roundtrip", "deployments": [], "key": "entityresolution/tag-resource-list-tags-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["entityresolution:CreateSchemaMapping", "entityresolution:DeleteSchemaMapping", "entityresolution:ListTagsForResource", "entityresolution:TagResource", "entityresolution:UntagResource"], "path": "behavioral/entityresolution/check_tag_resource_list_tags_untag_roundtrip.py", "service": "entityresolution"} {"check_id": "es.associate-package-rejected-on-processing-domain-leaves-association-unset", "deployments": [], "key": "es/associate-package-rejected-on-processing-domain-leaves-association-unset", "labels": ["axis:rejection", "plane:control"], "operations": ["es:AssociatePackage", "es:CreateElasticsearchDomain", "es:CreatePackage", "es:DeleteElasticsearchDomain", "es:DeletePackage", "es:ListDomainsForPackage", "es:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/es/check_associate_package_rejected_on_processing_domain_leaves_association_unset.py", "service": "es"} {"check_id": "es.describe-domains-batch-scoped-to-requested-names-only", "deployments": [], "key": "es/describe-domains-batch-scoped-to-requested-names-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["es:CreateElasticsearchDomain", "es:DeleteElasticsearchDomain", "es:DescribeElasticsearchDomains"], "path": "behavioral/es/check_describe_domains_batch_scoped_to_requested_names_only.py", "service": "es"} {"check_id": "es.domain-tag-lifecycle-add-list-remove", "deployments": [], "key": "es/domain-tag-lifecycle-add-list-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["es:AddTags", "es:CreateElasticsearchDomain", "es:DeleteElasticsearchDomain", "es:ListTags", "es:RemoveTags"], "path": "behavioral/es/check_domain_tag_lifecycle_add_list_remove.py", "service": "es"} {"check_id": "es.duplicate-create-domain-returns-existing-config-unchanged", "deployments": [], "key": "es/duplicate-create-domain-returns-existing-config-unchanged", "labels": ["axis:happy-path", "plane:control"], "operations": ["es:CreateElasticsearchDomain", "es:DeleteElasticsearchDomain", "es:DescribeElasticsearchDomain"], "path": "behavioral/es/check_duplicate_create_domain_returns_existing_config_unchanged.py", "service": "es"} {"check_id": "es.es-index-document-search-roundtrip", "deployments": [], "key": "es/es-index-document-search-roundtrip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["es:CreateElasticsearchDomain", "es:DeleteElasticsearchDomain", "es:DescribeElasticsearchDomain"], "path": "behavioral/es/check_es_index_document_search_roundtrip.py", "service": "es"} {"check_id": "es.get-compatible-versions-reflects-created-domain-version", "deployments": [], "key": "es/get-compatible-versions-reflects-created-domain-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["es:CreateElasticsearchDomain", "es:DeleteElasticsearchDomain", "es:GetCompatibleElasticsearchVersions"], "path": "behavioral/es/check_get_compatible_versions_reflects_created_domain_version.py", "service": "es"} {"check_id": "es.index-name-uppercase-rejected-lowercase-control-indexes", "deployments": [], "key": "es/index-name-uppercase-rejected-lowercase-control-indexes", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["es:CreateElasticsearchDomain", "es:DeleteElasticsearchDomain", "es:DescribeElasticsearchDomain"], "path": "behavioral/es/check_index_name_uppercase_rejected_lowercase_control_indexes.py", "service": "es"} {"check_id": "es.outbound-cross-cluster-connection-to-nonexistent-domains-validates-asynchronously", "deployments": [], "key": "es/outbound-cross-cluster-connection-to-nonexistent-domains-validates-asynchronously", "labels": ["axis:happy-path", "plane:control"], "operations": ["es:CreateOutboundCrossClusterSearchConnection", "es:DeleteOutboundCrossClusterSearchConnection", "es:DescribeOutboundCrossClusterSearchConnections"], "path": "behavioral/es/check_outbound_cross_cluster_connection_to_nonexistent_domains_validates_asynchronously.py", "service": "es"} {"check_id": "es.update-package-creates-new-version-visible-in-history", "deployments": [], "key": "es/update-package-creates-new-version-visible-in-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["es:CreatePackage", "es:DeletePackage", "es:DescribePackages", "es:GetPackageVersionHistory", "es:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/es/check_update_package_creates_new_version_visible_in_history.py", "service": "es"} {"check_id": "eventbridgev2.create-event-bus-name-collision-different-token-rejected", "deployments": [], "key": "eventbridgev2/create-event-bus-name-collision-different-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:DeleteEventBus", "eventbridgev2:DescribeEventBus", "eventbridgev2:ListEventBuses"], "path": "behavioral/eventbridgev2/check_create_event_bus_name_collision_different_token_rejected.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.create-event-bus-same-client-token-is-idempotent", "deployments": [], "key": "eventbridgev2/create-event-bus-same-client-token-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:DeleteEventBus", "eventbridgev2:DescribeEventBus", "eventbridgev2:ListEventBuses"], "path": "behavioral/eventbridgev2/check_create_event_bus_same_client_token_is_idempotent.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.create-subscriber-client-token-replay-idempotent-and-mismatch-rejected", "deployments": [], "key": "eventbridgev2/create-subscriber-client-token-replay-idempotent-and-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeSubscriber", "eventbridgev2:ListSubscribers"], "path": "behavioral/eventbridgev2/check_create_subscriber_client_token_replay_idempotent_and_mismatch_rejected.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.delete-event-bus-blocked-by-event-source-until-revoked", "deployments": [], "key": "eventbridgev2/delete-event-bus-blocked-by-event-source-until-revoked", "labels": ["axis:rejection", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateEventSource", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteEventSource", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeEventSource", "eventbridgev2:RevokeResource"], "path": "behavioral/eventbridgev2/check_delete_event_bus_blocked_by_event_source_until_revoked.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.delete-event-bus-with-subscriber-rejected-until-removed", "deployments": [], "key": "eventbridgev2/delete-event-bus-with-subscriber-rejected-until-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus"], "path": "behavioral/eventbridgev2/check_delete_event_bus_with_subscriber_rejected_until_removed.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.event-bus-create-describe-list-delete-lifecycle", "deployments": [], "key": "eventbridgev2/event-bus-create-describe-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:DeleteEventBus", "eventbridgev2:DescribeEventBus", "eventbridgev2:ListEventBuses"], "path": "behavioral/eventbridgev2/check_event_bus_create_describe_list_delete_lifecycle.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.event-bus-tags-do-not-propagate-to-subscribers-or-event-sources", "deployments": [], "key": "eventbridgev2/event-bus-tags-do-not-propagate-to-subscribers-or-event-sources", "labels": ["axis:happy-path", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateEventSource", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteEventSource", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:ListTagsForResource", "eventbridgev2:TagResource"], "path": "behavioral/eventbridgev2/check_event_bus_tags_do_not_propagate_to_subscribers_or_event_sources.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.event-source-lifecycle-against-active-bus", "deployments": [], "key": "eventbridgev2/event-source-lifecycle-against-active-bus", "labels": ["axis:happy-path", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateEventSource", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteEventSource", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeEventSource", "eventbridgev2:ListEventSources"], "path": "behavioral/eventbridgev2/check_event_source_lifecycle_against_active_bus.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.point-in-time-starting-point-outside-allowed-range-rejected", "deployments": [], "key": "eventbridgev2/point-in-time-starting-point-outside-allowed-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:ListSubscribers"], "path": "behavioral/eventbridgev2/check_point_in_time_starting_point_outside_allowed_range_rejected.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.put-events-partial-failure-reports-per-entry-error", "deployments": [], "key": "eventbridgev2/put-events-partial-failure-reports-per-entry-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:DeleteEventBus", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents"], "path": "behavioral/eventbridgev2/check_put_events_partial_failure_reports_per_entry_error.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.recreated-event-bus-same-name-gets-new-identifier", "deployments": [], "key": "eventbridgev2/recreated-event-bus-same-name-gets-new-identifier", "labels": ["axis:happy-path", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:DeleteEventBus", "eventbridgev2:DescribeEventBus", "eventbridgev2:ListEventBuses"], "path": "behavioral/eventbridgev2/check_recreated_event_bus_same_name_gets_new_identifier.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.resource-policy-conflicting-revision-rejected", "deployments": [], "key": "eventbridgev2/resource-policy-conflicting-revision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteResourcePolicy", "eventbridgev2:DescribeEventBus", "eventbridgev2:GetResourcePolicy", "eventbridgev2:PutResourcePolicy"], "path": "behavioral/eventbridgev2/check_resource_policy_conflicting_revision_rejected.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.resource-policy-put-get-list-round-trip", "deployments": [], "key": "eventbridgev2/resource-policy-put-get-list-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteResourcePolicy", "eventbridgev2:DescribeEventBus", "eventbridgev2:GetResourcePolicy", "eventbridgev2:ListResourcePolicies", "eventbridgev2:PutResourcePolicy"], "path": "behavioral/eventbridgev2/check_resource_policy_put_get_list_round_trip.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.revoke-resource-marks-subscriber-terminal-and-outlives-bus-deletion", "deployments": [], "key": "eventbridgev2/revoke-resource-marks-subscriber-terminal-and-outlives-bus-deletion", "labels": ["axis:rejection", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeSubscriber", "eventbridgev2:RevokeResource", "eventbridgev2:UpdateSubscriber"], "path": "behavioral/eventbridgev2/check_revoke_resource_marks_subscriber_terminal_and_outlives_bus_deletion.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.subscriber-name-collision-on-same-bus-rejected-but-allowed-on-another", "deployments": [], "key": "eventbridgev2/subscriber-name-collision-on-same-bus-rejected-but-allowed-on-another", "labels": ["axis:rejection", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeSubscriber", "eventbridgev2:ListSubscribers"], "path": "behavioral/eventbridgev2/check_subscriber_name_collision_on_same_bus_rejected_but_allowed_on_another.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.subscriber-put-events-delivers-to-sqs", "deployments": [], "key": "eventbridgev2/subscriber-put-events-delivers-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2/check_subscriber_put_events_delivers_to_sqs.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "eventbridgev2/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:DeleteEventBus", "eventbridgev2:DescribeEventBus", "eventbridgev2:ListTagsForResource", "eventbridgev2:TagResource", "eventbridgev2:UntagResource"], "path": "behavioral/eventbridgev2/check_tag_resource_and_list_tags_round_trip.py", "service": "eventbridgev2"} {"check_id": "eventbridgev2__iam__sns__sqs.role-without-sns-publish-dead-letters-and-topic-receives-nothing", "deployments": [], "key": "eventbridgev2__iam__sns__sqs/role-without-sns-publish-dead-letters-and-topic-receives-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sns__sqs/check_role_without_sns_publish_dead_letters_and_topic_receives_nothing.py", "service": "eventbridgev2__iam__sns__sqs"} {"check_id": "eventbridgev2__iam__sns__sqs.sns-topic-target-publishes-one-event-per-message", "deployments": [], "key": "eventbridgev2__iam__sns__sqs/sns-topic-target-publishes-one-event-per-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sns__sqs/check_sns_topic_target_publishes_one_event_per_message.py", "service": "eventbridgev2__iam__sns__sqs"} {"check_id": "eventbridgev2__iam__sqs.dead-letter-record-names-access-denied-when-role-cannot-reach-target", "deployments": [], "key": "eventbridgev2__iam__sqs/dead-letter-record-names-access-denied-when-role-cannot-reach-target", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_dead_letter_record_names_access_denied_when_role_cannot_reach_target.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.detail-pattern-matches-put-events-envelope-not-raw-payload", "deployments": [], "key": "eventbridgev2__iam__sqs/detail-pattern-matches-put-events-envelope-not-raw-payload", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "eventbridgev2:PutRawEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_detail_pattern_matches_put_events_envelope_not_raw_payload.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.event-bus-target-forwards-as-new-event-with-evaluated-metadata", "deployments": [], "key": "eventbridgev2__iam__sqs/event-bus-target-forwards-as-new-event-with-evaluated-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_event_bus_target_forwards_as_new_event_with_evaluated_metadata.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.fifo-subscriber-delivers-event-group-in-publish-order", "deployments": [], "key": "eventbridgev2__iam__sqs/fifo-subscriber-delivers-event-group-in-publish-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_fifo_subscriber_delivers_event_group_in_publish_order.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.horizon-subscriber-replays-retained-events-marked-replay", "deployments": [], "key": "eventbridgev2__iam__sqs/horizon-subscriber-replays-retained-events-marked-replay", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeSubscriber", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_horizon_subscriber_replays_retained_events_marked_replay.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.jsonata-transformer-reads-octet-stream-data-as-base64", "deployments": [], "key": "eventbridgev2__iam__sqs/jsonata-transformer-reads-octet-stream-data-as-base64", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutRawEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_jsonata_transformer_reads_octet_stream_data_as_base64.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.jsonata-transformer-string-unquoted-and-object-serialized", "deployments": [], "key": "eventbridgev2__iam__sqs/jsonata-transformer-string-unquoted-and-object-serialized", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_jsonata_transformer_string_unquoted_and_object_serialized.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.put-events-content-based-deduplication-suppresses-resend", "deployments": [], "key": "eventbridgev2__iam__sqs/put-events-content-based-deduplication-suppresses-resend", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_put_events_content_based_deduplication_suppresses_resend.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.put-events-envelope-carries-resources-time-and-region", "deployments": [], "key": "eventbridgev2__iam__sqs/put-events-envelope-carries-resources-time-and-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_put_events_envelope_carries_resources_time_and_region.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.put-events-explicit-deduplication-id-suppresses-repeat", "deployments": [], "key": "eventbridgev2__iam__sqs/put-events-explicit-deduplication-id-suppresses-repeat", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_put_events_explicit_deduplication_id_suppresses_repeat.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.put-events-reserved-aws-source-refused-and-never-delivered", "deployments": [], "key": "eventbridgev2__iam__sqs/put-events-reserved-aws-source-refused-and-never-delivered", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_put_events_reserved_aws_source_refused_and_never_delivered.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.put-raw-events-invalid-json-and-open-format-refused-per-entry", "deployments": [], "key": "eventbridgev2__iam__sqs/put-raw-events-invalid-json-and-open-format-refused-per-entry", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "eventbridgev2:PutRawEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_put_raw_events_invalid_json_and_open_format_refused_per_entry.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.raw-transformer-delivers-payload-as-sent-and-bytes-as-base64", "deployments": [], "key": "eventbridgev2__iam__sqs/raw-transformer-delivers-payload-as-sent-and-bytes-as-base64", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "eventbridgev2:PutRawEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_raw_transformer_delivers_payload_as_sent_and_bytes_as_base64.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.sequence-numbers-increase-with-ingestion-and-match-delivery", "deployments": [], "key": "eventbridgev2__iam__sqs/sequence-numbers-increase-with-ingestion-and-match-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_sequence_numbers_increase_with_ingestion_and_match_delivery.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.sqs-message-attributes-evaluate-jsonata-and-keep-binary-literal", "deployments": [], "key": "eventbridgev2__iam__sqs/sqs-message-attributes-evaluate-jsonata-and-keep-binary-literal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_sqs_message_attributes_evaluate_jsonata_and_keep_binary_literal.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.subscriber-filters-combine-with-and-across-scopes", "deployments": [], "key": "eventbridgev2__iam__sqs/subscriber-filters-combine-with-and-across-scopes", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutRawEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_subscriber_filters_combine_with_and_across_scopes.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.subscriber-on-failure-configuration-writes-dead-letter-record-to-sqs", "deployments": [], "key": "eventbridgev2__iam__sqs/subscriber-on-failure-configuration-writes-dead-letter-record-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_subscriber_on_failure_configuration_writes_dead_letter_record_to_sqs.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.system-metadata-content-type-filter-routes-by-content-type", "deployments": [], "key": "eventbridgev2__iam__sqs/system-metadata-content-type-filter-routes-by-content-type", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutRawEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_system_metadata_content_type_filter_routes_by_content_type.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.update-subscriber-replaces-filter-configuration-whole", "deployments": [], "key": "eventbridgev2__iam__sqs/update-subscriber-replaces-filter-configuration-whole", "labels": ["axis:happy-path", "plane:control"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeSubscriber", "eventbridgev2:UpdateSubscriber", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_update_subscriber_replaces_filter_configuration_whole.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.update-subscriber-transformer-applies-to-later-events", "deployments": [], "key": "eventbridgev2__iam__sqs/update-subscriber-transformer-applies-to-later-events", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:DescribeSubscriber", "eventbridgev2:PutEvents", "eventbridgev2:UpdateSubscriber", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_update_subscriber_transformer_applies_to_later_events.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "eventbridgev2__iam__sqs.with-metadata-transformer-delivers-full-event-with-string-system-metadata", "deployments": [], "key": "eventbridgev2__iam__sqs/with-metadata-transformer-delivers-full-event-with-string-system-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["eventbridgev2:CreateEventBus", "eventbridgev2:CreateSubscriber", "eventbridgev2:DeleteEventBus", "eventbridgev2:DeleteSubscriber", "eventbridgev2:DescribeEventBus", "eventbridgev2:PutEvents", "eventbridgev2:PutRawEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/eventbridgev2__iam__sqs/check_with_metadata_transformer_delivers_full_event_with_string_system_metadata.py", "service": "eventbridgev2__iam__sqs"} {"check_id": "events.activate-deactivate-event-source-state-transition", "deployments": [], "key": "events/activate-deactivate-event-source-state-transition", "labels": ["axis:rejection", "plane:control"], "operations": ["events:ActivateEventSource", "events:CreateEventBus", "events:DeactivateEventSource", "events:DeleteEventBus", "events:DescribeEventBus", "events:DescribeEventSource"], "path": "behavioral/events/check_activate_deactivate_event_source_state_transition.py", "service": "events"} {"check_id": "events.activate-event-source-nonexistent-not-found", "deployments": [], "key": "events/activate-event-source-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:ActivateEventSource", "events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:DescribeEventSource"], "path": "behavioral/events/check_activate_event_source_nonexistent_not_found.py", "service": "events"} {"check_id": "events.api-destination-4xx-dead-letters-without-retry-while-5xx-is-retried-until-its-retry-attempts-are-used-up", "deployments": [], "key": "events/api-destination-4xx-dead-letters-without-retry-while-5xx-is-retried-until-its-retry-attempts-are-used-up", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:CreateEventBus", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeConnection", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_api_destination_4xx_dead_letters_without_retry_while_5xx_is_retried_until_its_retry_attempts_are_used_up.py", "service": "events"} {"check_id": "events.api-destination-api-key-connection-adds-its-key-and-parameters-and-its-values-win-over-the-targets", "deployments": [], "key": "events/api-destination-api-key-connection-adds-its-key-and-parameters-and-its-values-win-over-the-targets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:CreateEventBus", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeConnection", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_api_destination_api_key_connection_adds_its_key_and_parameters_and_its_values_win_over_the_targets.py", "service": "events"} {"check_id": "events.api-destination-basic-connection-sends-the-basic-authorization-header-with-the-destinations-method-and-the-bare-envelope", "deployments": [], "key": "events/api-destination-basic-connection-sends-the-basic-authorization-header-with-the-destinations-method-and-the-bare-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:CreateEventBus", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeConnection", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_api_destination_basic_connection_sends_the_basic_authorization_header_with_the_destinations_method_and_the_bare_envelope.py", "service": "events"} {"check_id": "events.api-destination-invocation-rate-limit-maximum-is-enforced", "deployments": [], "key": "events/api-destination-invocation-rate-limit-maximum-is-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DescribeApiDestination", "events:DescribeConnection", "events:ListApiDestinations", "events:UpdateApiDestination"], "path": "behavioral/events/check_api_destination_invocation_rate_limit_maximum_is_enforced.py", "service": "events"} {"check_id": "events.api-destination-lifecycle", "deployments": [], "key": "events/api-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DescribeApiDestination", "events:DescribeConnection", "events:ListApiDestinations", "events:UpdateApiDestination"], "path": "behavioral/events/check_api_destination_lifecycle.py", "service": "events"} {"check_id": "events.api-destination-oauth-connection-fetches-a-client-credentials-token-and-sends-it-as-the-bearer-header", "deployments": [], "key": "events/api-destination-oauth-connection-fetches-a-client-credentials-token-and-sends-it-as-the-bearer-header", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:CreateEventBus", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeConnection", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_api_destination_oauth_connection_fetches_a_client_credentials_token_and_sends_it_as_the_bearer_header.py", "service": "events"} {"check_id": "events.api-destination-rate-limit-defers-a-burst-it-cannot-absorb-and-still-delivers-every-event", "deployments": [], "key": "events/api-destination-rate-limit-defers-a-burst-it-cannot-absorb-and-still-delivers-every-event", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:CreateEventBus", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeApiDestination", "events:DescribeConnection", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_api_destination_rate_limit_defers_a_burst_it_cannot_absorb_and_still_delivers_every_event.py", "service": "events"} {"check_id": "events.api-destination-state-follows-connection-deauthorize-and-reauthorize", "deployments": [], "key": "events/api-destination-state-follows-connection-deauthorize-and-reauthorize", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeauthorizeConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DescribeApiDestination", "events:DescribeConnection", "events:UpdateConnection"], "path": "behavioral/events/check_api_destination_state_follows_connection_deauthorize_and_reauthorize.py", "service": "events"} {"check_id": "events.archive-managed-rule-refuses-customer-writes-and-survives-them", "deployments": [], "key": "events/archive-managed-rule-refuses-customer-writes-and-survives-them", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:ListRules", "events:ListTagsForResource", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/events/check_archive_managed_rule_refuses_customer_writes_and_survives_them.py", "service": "events"} {"check_id": "events.bus-policy-role-statement-admits-put-events-but-account-statement-leaves-bare-role-denied", "deployments": [], "key": "events/bus-policy-role-statement-admits-put-events-but-account-statement-leaves-bare-role-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:PutEvents", "events:PutPermission", "events:PutRule", "events:PutTargets", "events:RemovePermission", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole"], "path": "behavioral/events/check_bus_policy_role_statement_admits_put_events_but_account_statement_leaves_bare_role_denied.py", "service": "events"} {"check_id": "events.bus-target-without-role-arn-rejected-in-both-regions-and-the-rule-keeps-its-targets", "deployments": [], "key": "events/bus-target-without-role-arn-rejected-in-both-regions-and-the-rule-keeps-its-targets", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:DescribeRegions", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_bus_target_without_role_arn_rejected_in_both_regions_and_the_rule_keeps_its_targets.py", "service": "events"} {"check_id": "events.cancel-replay-in-flight-reaches-cancelled-and-stays-terminal", "deployments": [], "key": "events/cancel-replay-in-flight-reaches-cancelled-and-stays-terminal", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CancelReplay", "events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:ListReplays", "events:StartReplay"], "path": "behavioral/events/check_cancel_replay_in_flight_reaches_cancelled_and_stays_terminal.py", "service": "events"} {"check_id": "events.cmk-encrypted-bus-delivers-put-events-to-sqs-target", "deployments": [], "key": "events/cmk-encrypted-bus-delivers-put-events-to-sqs-target", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_cmk_encrypted_bus_delivers_put_events_to_sqs_target.py", "service": "events"} {"check_id": "events.cmk-without-events-grant-rejected-on-create-and-update", "deployments": [], "key": "events/cmk-without-events-grant-rejected-on-create-and-update", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:UpdateEventBus", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/events/check_cmk_without_events_grant_rejected_on_create_and_update.py", "service": "events"} {"check_id": "events.concurrent-activate-event-source-conflict-detected", "deployments": [], "key": "events/concurrent-activate-event-source-conflict-detected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:ActivateEventSource", "events:CreateEventBus", "events:CreatePartnerEventSource", "events:DeleteEventBus", "events:DeletePartnerEventSource", "events:DescribeEventBus", "events:DescribeEventSource", "sts:GetCallerIdentity"], "path": "behavioral/events/check_concurrent_activate_event_source_conflict_detected.py", "service": "events"} {"check_id": "events.concurrent-put-events-unique-event-ids", "deployments": [], "key": "events/concurrent-put-events-unique-event-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_concurrent_put_events_unique_event_ids.py", "service": "events"} {"check_id": "events.concurrent-update-endpoint-conflict-detected", "deployments": [], "key": "events/concurrent-update-endpoint-conflict-detected", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEndpoint", "events:CreateEventBus", "events:DeleteEndpoint", "events:DeleteEventBus", "events:DescribeEndpoint", "events:UpdateEndpoint", "route53:CreateHealthCheck", "route53:DeleteHealthCheck"], "path": "behavioral/events/check_concurrent_update_endpoint_conflict_detected.py", "service": "events"} {"check_id": "events.concurrent-update-event-bus-conflict-detected", "deployments": [], "key": "events/concurrent-update-event-bus-conflict-detected", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:UpdateEventBus"], "path": "behavioral/events/check_concurrent_update_event_bus_conflict_detected.py", "service": "events"} {"check_id": "events.create-api-destination-accepts-non-url-endpoint", "deployments": [], "key": "events/create-api-destination-accepts-non-url-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DescribeApiDestination", "events:DescribeConnection"], "path": "behavioral/events/check_create_api_destination_accepts_non_url_endpoint.py", "service": "events"} {"check_id": "events.create-api-destination-invalid-endpoint-pattern-rejected", "deployments": [], "key": "events/create-api-destination-invalid-endpoint-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DescribeApiDestination"], "path": "behavioral/events/check_create_api_destination_invalid_endpoint_pattern_rejected.py", "service": "events"} {"check_id": "events.create-api-destination-requires-existing-connection", "deployments": [], "key": "events/create-api-destination-requires-existing-connection", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DescribeConnection", "events:ListApiDestinations"], "path": "behavioral/events/check_create_api_destination_requires_existing_connection.py", "service": "events"} {"check_id": "events.create-archive-and-describe", "deployments": [], "key": "events/create-archive-and-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive"], "path": "behavioral/events/check_create_archive_and_describe.py", "service": "events"} {"check_id": "events.create-archive-duplicate-fails", "deployments": [], "key": "events/create-archive-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive"], "path": "behavioral/events/check_create_archive_duplicate_fails.py", "service": "events"} {"check_id": "events.create-archive-nonexistent-bus-fails", "deployments": [], "key": "events/create-archive-nonexistent-bus-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive"], "path": "behavioral/events/check_create_archive_nonexistent_bus_fails.py", "service": "events"} {"check_id": "events.create-connection-missing-auth-parameters-rejected", "deployments": [], "key": "events/create-connection-missing-auth-parameters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection"], "path": "behavioral/events/check_create_connection_missing_auth_parameters_rejected.py", "service": "events"} {"check_id": "events.create-connection-state-transition", "deployments": [], "key": "events/create-connection-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection"], "path": "behavioral/events/check_create_connection_state_transition.py", "service": "events"} {"check_id": "events.create-duplicate-event-bus-fails", "deployments": [], "key": "events/create-duplicate-event-bus-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus"], "path": "behavioral/events/check_create_duplicate_event_bus_fails.py", "service": "events"} {"check_id": "events.create-endpoint-duplicate-name-blocked", "deployments": [], "key": "events/create-endpoint-duplicate-name-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEndpoint", "events:CreateEventBus", "events:DeleteEndpoint", "events:DeleteEventBus", "events:DescribeEndpoint", "route53:CreateHealthCheck", "route53:DeleteHealthCheck"], "path": "behavioral/events/check_create_endpoint_duplicate_name_blocked.py", "service": "events"} {"check_id": "events.create-endpoint-malformed-routing-config-rejected", "deployments": [], "key": "events/create-endpoint-malformed-routing-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEndpoint", "events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEndpoint", "events:DescribeEventBus", "events:ListEndpoints"], "path": "behavioral/events/check_create_endpoint_malformed_routing_config_rejected.py", "service": "events"} {"check_id": "events.create-event-bus-basic", "deployments": [], "key": "events/create-event-bus-basic", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus"], "path": "behavioral/events/check_create_event_bus_basic.py", "service": "events"} {"check_id": "events.create-event-bus-reserved-and-malformed-names-rejected", "deployments": [], "key": "events/create-event-bus-reserved-and-malformed-names-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:ListEventBuses"], "path": "behavioral/events/check_create_event_bus_reserved_and_malformed_names_rejected.py", "service": "events"} {"check_id": "events.cross-region-bus-target-delivers-to-the-other-regions-rules-with-the-source-region-and-a-new-event-id", "deployments": [], "key": "events/cross-region-bus-target-delivers-to-the-other-regions-rules-with-the-source-region-and-a-new-event-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_cross_region_bus_target_delivers_to_the_other_regions_rules_with_the_source_region_and_a_new_event_id.py", "service": "events"} {"check_id": "events.custom-bus-addressed-by-arn-is-the-same-bus-as-by-name", "deployments": [], "key": "events/custom-bus-addressed-by-arn-is-the-same-bus-as-by-name", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:ListRules", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_custom_bus_addressed_by_arn_is_the_same_bus_as_by_name.py", "service": "events"} {"check_id": "events.custom-bus-put-events-routes-each-batch-entry-by-its-detail-content", "deployments": [], "key": "events/custom-bus-put-events-routes-each-batch-entry-by-its-detail-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_custom_bus_put_events_routes_each_batch_entry_by_its_detail_content.py", "service": "events"} {"check_id": "events.custom-bus-rule-calls-without-event-bus-name-not-found", "deployments": [], "key": "events/custom-bus-rule-calls-without-event-bus-name-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_custom_bus_rule_calls_without_event_bus_name_not_found.py", "service": "events"} {"check_id": "events.deactivate-event-source-nonexistent-not-found", "deployments": [], "key": "events/deactivate-event-source-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeactivateEventSource", "events:DeleteEventBus", "events:DescribeEventBus", "events:DescribeEventSource"], "path": "behavioral/events/check_deactivate_event_source_nonexistent_not_found.py", "service": "events"} {"check_id": "events.deauthorize-connection-state-transition", "deployments": [], "key": "events/deauthorize-connection-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateConnection", "events:DeauthorizeConnection", "events:DeleteConnection", "events:DescribeConnection"], "path": "behavioral/events/check_deauthorize_connection_state_transition.py", "service": "events"} {"check_id": "events.default-event-bus-listed", "deployments": [], "key": "events/default-event-bus-listed", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:ListEventBuses", "sts:GetCallerIdentity"], "path": "behavioral/events/check_default_event_bus_listed.py", "service": "events"} {"check_id": "events.delete-archive-not-blocked-by-in-flight-replay-and-start-replay-on-it-refused", "deployments": [], "key": "events/delete-archive-not-blocked-by-in-flight-replay-and-start-replay-on-it-refused", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CancelReplay", "events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:StartReplay"], "path": "behavioral/events/check_delete_archive_not_blocked_by_in_flight_replay_and_start_replay_on_it_refused.py", "service": "events"} {"check_id": "events.delete-archive-removes-it", "deployments": [], "key": "events/delete-archive-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:UpdateArchive"], "path": "behavioral/events/check_delete_archive_removes_it.py", "service": "events"} {"check_id": "events.delete-connection-eventually-not-found", "deployments": [], "key": "events/delete-connection-eventually-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "events:UpdateConnection"], "path": "behavioral/events/check_delete_connection_eventually_not_found.py", "service": "events"} {"check_id": "events.delete-connection-in-use-by-api-destination-allowed", "deployments": [], "key": "events/delete-connection-in-use-by-api-destination-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DescribeApiDestination", "events:DescribeConnection"], "path": "behavioral/events/check_delete_connection_in_use_by_api_destination_allowed.py", "service": "events"} {"check_id": "events.delete-default-event-bus-protected", "deployments": [], "key": "events/delete-default-event-bus-protected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus"], "path": "behavioral/events/check_delete_default_event_bus_protected.py", "service": "events"} {"check_id": "events.delete-endpoint-nonexistent-not-found", "deployments": [], "key": "events/delete-endpoint-nonexistent-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEndpoint", "events:DeleteEndpoint", "events:DescribeEndpoint", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "sts:GetCallerIdentity"], "path": "behavioral/events/check_delete_endpoint_nonexistent_not_found.py", "service": "events"} {"check_id": "events.delete-event-bus-blocked-while-a-rule-remains-and-succeeds-once-removed", "deployments": [], "key": "events/delete-event-bus-blocked-while-a-rule-remains-and-succeeds-once-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:DescribeRule", "events:ListEventBuses", "events:PutRule"], "path": "behavioral/events/check_delete_event_bus_blocked_while_a_rule_remains_and_succeeds_once_removed.py", "service": "events"} {"check_id": "events.delete-event-bus-blocked-while-an-archive-targets-it", "deployments": [], "key": "events/delete-event-bus-blocked-while-an-archive-targets-it", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeEventBus", "events:ListEventBuses", "events:ListRules"], "path": "behavioral/events/check_delete_event_bus_blocked_while_an_archive_targets_it.py", "service": "events"} {"check_id": "events.delete-event-bus-removes-resource", "deployments": [], "key": "events/delete-event-bus-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:PutRule"], "path": "behavioral/events/check_delete_event_bus_removes_resource.py", "service": "events"} {"check_id": "events.delete-nonexistent-rule-is-idempotent", "deployments": [], "key": "events/delete-nonexistent-rule-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule"], "path": "behavioral/events/check_delete_nonexistent_rule_is_idempotent.py", "service": "events"} {"check_id": "events.delete-partner-event-source-disabled-operation-blocked", "deployments": [], "key": "events/delete-partner-event-source-disabled-operation-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeletePartnerEventSource", "events:DescribeEventBus", "events:ListEventBuses", "sts:GetCallerIdentity"], "path": "behavioral/events/check_delete_partner_event_source_disabled_operation_blocked.py", "service": "events"} {"check_id": "events.delete-rule-removes-it", "deployments": [], "key": "events/delete-rule-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:EnableRule", "events:ListTargetsByRule", "events:PutRule", "events:RemoveTargets"], "path": "behavioral/events/check_delete_rule_removes_it.py", "service": "events"} {"check_id": "events.delete-rule-with-targets-requires-force", "deployments": [], "key": "events/delete-rule-with-targets-requires-force", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource"], "path": "behavioral/events/check_delete_rule_with_targets_requires_force.py", "service": "events"} {"check_id": "events.delete-rule-without-event-bus-name-leaves-custom-bus-rule-in-place", "deployments": [], "key": "events/delete-rule-without-event-bus-name-leaves-custom-bus-rule-in-place", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutRule"], "path": "behavioral/events/check_delete_rule_without_event_bus_name_leaves_custom_bus_rule_in_place.py", "service": "events"} {"check_id": "events.deploy-cfn-bus-target-with-a-stack-created-execution-role-forwards-events-to-the-destination-bus", "deployments": [], "key": "events/deploy-cfn-bus-target-with-a-stack-created-execution-role-forwards-events-to-the-destination-bus", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "events:ListTargetsByRule", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events/check_deploy_cfn_bus_target_with_a_stack_created_execution_role_forwards_events_to_the_destination_bus.py", "service": "events"} {"check_id": "events.deploy-cfn-event-bus-policy-admits-the-named-role-and-a-stack-update-removing-it-denies-again", "deployments": [], "key": "events/deploy-cfn-event-bus-policy-admits-the-named-role-and-a-stack-update-removing-it-denies-again", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:DescribeEventBus", "events:PutEvents", "iam:CreateRole", "iam:DeleteRole", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sts:AssumeRole"], "path": "behavioral/events/check_deploy_cfn_event_bus_policy_admits_the_named_role_and_a_stack_update_removing_it_denies_again.py", "service": "events"} {"check_id": "events.deploy-cfn-schedule-rule-fires-into-its-target-and-a-stack-update-disabling-it-stops-firing", "deployments": [], "key": "events/deploy-cfn-schedule-rule-fires-into-its-target-and-a-stack-update-disabling-it-stops-firing", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:DescribeRule", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events/check_deploy_cfn_schedule_rule_fires_into_its_target_and_a_stack_update_disabling_it_stops_firing.py", "service": "events"} {"check_id": "events.deploy-cfn-target-dead-letter-config-captures-undeliverable-events-until-a-stack-update-adds-the-queue-policy", "deployments": [], "key": "events/deploy-cfn-target-dead-letter-config-captures-undeliverable-events-until-a-stack-update-adds-the-queue-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:ListTargetsByRule", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events/check_deploy_cfn_target_dead_letter_config_captures_undeliverable_events_until_a_stack_update_adds_the_queue_policy.py", "service": "events"} {"check_id": "events.deploy-eventbus-rule-target-cfn-then-put-events-delivers", "deployments": [], "key": "events/deploy-eventbus-rule-target-cfn-then-put-events-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events/check_deploy_eventbus_rule_target_cfn_then_put_events_delivers.py", "service": "events"} {"check_id": "events.describe-connection-redacts-secret-auth-material", "deployments": [], "key": "events/describe-connection-redacts-secret-auth-material", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "events:ListConnections", "sts:GetCallerIdentity"], "path": "behavioral/events/check_describe_connection_redacts_secret_auth_material.py", "service": "events"} {"check_id": "events.describe-endpoint-nonexistent-not-found", "deployments": [], "key": "events/describe-endpoint-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEndpoint", "events:DeleteEndpoint", "events:DescribeEndpoint", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "sts:GetCallerIdentity"], "path": "behavioral/events/check_describe_endpoint_nonexistent_not_found.py", "service": "events"} {"check_id": "events.describe-event-source-nonexistent-not-found", "deployments": [], "key": "events/describe-event-source-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:DescribeEventSource", "events:ListEventSources"], "path": "behavioral/events/check_describe_event_source_nonexistent_not_found.py", "service": "events"} {"check_id": "events.describe-nonexistent-event-bus-fails", "deployments": [], "key": "events/describe-nonexistent-event-bus-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus"], "path": "behavioral/events/check_describe_nonexistent_event_bus_fails.py", "service": "events"} {"check_id": "events.describe-nonexistent-rule-fails", "deployments": [], "key": "events/describe-nonexistent-rule-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule"], "path": "behavioral/events/check_describe_nonexistent_rule_fails.py", "service": "events"} {"check_id": "events.describe-partner-event-source-nonexistent-not-found", "deployments": [], "key": "events/describe-partner-event-source-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:DescribePartnerEventSource"], "path": "behavioral/events/check_describe_partner_event_source_nonexistent_not_found.py", "service": "events"} {"check_id": "events.describe-replay-nonexistent-not-found", "deployments": [], "key": "events/describe-replay-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CancelReplay", "events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:ListReplays", "events:StartReplay"], "path": "behavioral/events/check_describe_replay_nonexistent_not_found.py", "service": "events"} {"check_id": "events.disabled-bus-key-stops-delivery-dead-letters-encrypted-events-until-reenabled", "deployments": [], "key": "events/disabled-bus-key-stops-delivery-dead-letters-encrypted-events-until-reenabled", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_disabled_bus_key_stops_delivery_dead_letters_encrypted_events_until_reenabled.py", "service": "events"} {"check_id": "events.disabled-rule-with-a-dead-letter-configured-target-drops-the-event-instead-of-dead-lettering-it", "deployments": [], "key": "events/disabled-rule-with-a-dead-letter-configured-target-drops-the-event-instead-of-dead-lettering-it", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_disabled_rule_with_a_dead_letter_configured_target_drops_the_event_instead_of_dead_lettering_it.py", "service": "events"} {"check_id": "events.e2e-bus-rule-archive-replay-redelivers-event", "deployments": [], "key": "events/e2e-bus-rule-archive-replay-redelivers-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeReplay", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:StartReplay", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_e2e_bus_rule_archive_replay_redelivers_event.py", "service": "events"} {"check_id": "events.e2e-partner-event-source-activation-to-ingestion-flow", "deployments": [], "key": "events/e2e-partner-event-source-activation-to-ingestion-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:CreatePartnerEventSource", "events:DeleteEventBus", "events:DeletePartnerEventSource", "events:DescribeEventBus", "events:DescribeEventSource", "events:PutEvents", "events:PutPartnerEvents", "sts:GetCallerIdentity"], "path": "behavioral/events/check_e2e_partner_event_source_activation_to_ingestion_flow.py", "service": "events"} {"check_id": "events.enable-disable-rule-roundtrip", "deployments": [], "key": "events/enable-disable-rule-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:ListTargetsByRule", "events:PutRule", "events:RemoveTargets"], "path": "behavioral/events/check_enable_disable_rule_roundtrip.py", "service": "events"} {"check_id": "events.enable-nonexistent-rule-fails", "deployments": [], "key": "events/enable-nonexistent-rule-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:EnableRule", "events:PutRule"], "path": "behavioral/events/check_enable_nonexistent_rule_fails.py", "service": "events"} {"check_id": "events.endpoint-failover-routing-config-managed", "deployments": [], "key": "events/endpoint-failover-routing-config-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEndpoint", "events:DeleteEndpoint", "events:DescribeEndpoint", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "sts:GetCallerIdentity"], "path": "behavioral/events/check_endpoint_failover_routing_config_managed.py", "service": "events"} {"check_id": "events.endpoint-lifecycle-create-active-delete-404", "deployments": [], "key": "events/endpoint-lifecycle-create-active-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEndpoint", "events:CreateEventBus", "events:DeleteEndpoint", "events:DeleteEventBus", "events:DescribeEndpoint", "events:UpdateEndpoint", "route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "sts:GetCallerIdentity"], "path": "behavioral/events/check_endpoint_lifecycle_create_active_delete_404.py", "service": "events"} {"check_id": "events.endpoint-routing-config-round-trip", "deployments": [], "key": "events/endpoint-routing-config-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEndpoint", "events:DeleteEndpoint", "events:DescribeEndpoint", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "sts:GetCallerIdentity"], "path": "behavioral/events/check_endpoint_routing_config_round_trip.py", "service": "events"} {"check_id": "events.event-bus-dead-letter-config-rejects-non-sqs-arns-and-keeps-prior-config", "deployments": [], "key": "events/event-bus-dead-letter-config-rejects-non-sqs-arns-and-keeps-prior-config", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:UpdateEventBus", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/events/check_event_bus_dead_letter_config_rejects_non_sqs_arns_and_keeps_prior_config.py", "service": "events"} {"check_id": "events.event-bus-tag-limit-counts-tags-already-on-the-bus-and-overwrites-do-not-count", "deployments": [], "key": "events/event-bus-tag-limit-counts-tags-already-on-the-bus-and-overwrites-do-not-count", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:ListTagsForResource", "events:TagResource"], "path": "behavioral/events/check_event_bus_tag_limit_counts_tags_already_on_the_bus_and_overwrites_do_not_count.py", "service": "events"} {"check_id": "events.event-pattern-over-2048-characters-rejected-counting-whitespace-and-the-rule-keeps-its-pattern", "deployments": [], "key": "events/event-pattern-over-2048-characters-rejected-counting-whitespace-and-the-rule-keeps-its-pattern", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:TestEventPattern"], "path": "behavioral/events/check_event_pattern_over_2048_characters_rejected_counting_whitespace_and_the_rule_keeps_its_pattern.py", "service": "events"} {"check_id": "events.events-archive-replay-filter-arn-naming-a-rule-on-another-bus-rejected", "deployments": [], "key": "events/events-archive-replay-filter-arn-naming-a-rule-on-another-bus-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeReplay", "events:ListReplays", "events:PutRule", "events:StartReplay"], "path": "behavioral/events/check_events_archive_replay_filter_arn_naming_a_rule_on_another_bus_rejected.py", "service": "events"} {"check_id": "events.events-archive-replay-to-a-bus-other-than-the-archive-source-rejected", "deployments": [], "key": "events/events-archive-replay-to-a-bus-other-than-the-archive-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:ListReplays", "events:StartReplay"], "path": "behavioral/events/check_events_archive_replay_to_a_bus_other_than_the_archive_source_rejected.py", "service": "events"} {"check_id": "events.events-archive-stores-only-the-events-matching-its-event-pattern", "deployments": [], "key": "events/events-archive-stores-only-the-events-matching-its-event-pattern", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:PutEvents"], "path": "behavioral/events/check_events_archive_stores_only_the_events_matching_its_event_pattern.py", "service": "events"} {"check_id": "events.events-create-archive-with-an-invalid-event-pattern-rejected", "deployments": [], "key": "events/events-create-archive-with-an-invalid-event-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:ListArchives", "events:PutEvents"], "path": "behavioral/events/check_events_create_archive_with_an_invalid_event_pattern_rejected.py", "service": "events"} {"check_id": "events.express-and-standard-state-machine-targets-start-with-the-envelope-as-input-named-after-the-event-id", "deployments": [], "key": "events/express-and-standard-state-machine-targets-start-with-the-envelope-as-input-named-after-the-event-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/events/check_express_and_standard_state_machine_targets_start_with_the_envelope_as_input_named_after_the_event_id.py", "service": "events"} {"check_id": "events.identity-explicit-deny-overrides-a-bus-policy-allow-naming-the-same-role", "deployments": [], "key": "events/identity-explicit-deny-overrides-a-bus-policy-allow-naming-the-same-role", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutPermission", "events:PutRule", "events:PutTargets", "events:RemovePermission", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole"], "path": "behavioral/events/check_identity_explicit_deny_overrides_a_bus_policy_allow_naming_the_same_role.py", "service": "events"} {"check_id": "events.identity-policy-events-source-condition-denies-put-events-for-any-other-source", "deployments": [], "key": "events/identity-policy-events-source-condition-denies-put-events-for-any-other-source", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole"], "path": "behavioral/events/check_identity_policy_events_source_condition_denies_put_events_for_any_other_source.py", "service": "events"} {"check_id": "events.input-transformer-array-paths-render-elements-slices-and-null-exactly", "deployments": [], "key": "events/input-transformer-array-paths-render-elements-slices-and-null-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_input_transformer_array_paths_render_elements_slices_and_null_exactly.py", "service": "events"} {"check_id": "events.input-transformer-plain-text-template-does-not-escape-strings-and-dead-letters-invalid-json", "deployments": [], "key": "events/input-transformer-plain-text-template-does-not-escape-strings-and-dead-letters-invalid-json", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_input_transformer_plain_text_template_does_not_escape_strings_and_dead_letters_invalid_json.py", "service": "events"} {"check_id": "events.input-transformer-unsupported-input-path-forms-rejected-and-targets-unchanged", "deployments": [], "key": "events/input-transformer-unsupported-input-path-forms-rejected-and-targets-unchanged", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_input_transformer_unsupported_input_path_forms_rejected_and_targets_unchanged.py", "service": "events"} {"check_id": "events.kinesis-partition-key-path-renders-numbers-and-objects-as-json-and-an-absent-field-as-empty-object", "deployments": [], "key": "events/kinesis-partition-key-path-renders-numbers-and-objects-as-json-and-an-absent-field-as-empty-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_kinesis_partition_key_path_renders_numbers_and_objects_as_json_and_an_absent_field_as_empty_object.py", "service": "events"} {"check_id": "events.lambda-target-function-error-is-retried-by-lambda-and-never-dead-lettered-by-the-rule", "deployments": [], "key": "events/lambda-target-function-error-is-retried-by-lambda-and-never-dead-lettered-by-the-rule", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:PutFunctionEventInvokeConfig", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_lambda_target_function_error_is_retried_by_lambda_and_never_dead_lettered_by_the_rule.py", "service": "events"} {"check_id": "events.lambda-target-is-invoked-asynchronously-and-its-on-success-destination-records-the-envelope", "deployments": [], "key": "events/lambda-target-is-invoked-asynchronously-and-its-on-success-destination-records-the-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionEventInvokeConfig", "lambda:PutFunctionEventInvokeConfig", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events/check_lambda_target_is_invoked_asynchronously_and_its_on_success_destination_records_the_envelope.py", "service": "events"} {"check_id": "events.list-archives-filters-by-prefix-and-source", "deployments": [], "key": "events/list-archives-filters-by-prefix-and-source", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateArchive", "events:DeleteArchive", "events:DescribeArchive", "events:DescribeEventBus", "events:ListArchives"], "path": "behavioral/events/check_list_archives_filters_by_prefix_and_source.py", "service": "events"} {"check_id": "events.list-connections-filters-are-mutually-exclusive", "deployments": [], "key": "events/list-connections-filters-are-mutually-exclusive", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "events:ListConnections"], "path": "behavioral/events/check_list_connections_filters_are_mutually_exclusive.py", "service": "events"} {"check_id": "events.list-event-buses-includes-default-and-custom", "deployments": [], "key": "events/list-event-buses-includes-default-and-custom", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:ListEventBuses"], "path": "behavioral/events/check_list_event_buses_includes_default_and_custom.py", "service": "events"} {"check_id": "events.list-event-buses-paginates-with-limit-and-next-token", "deployments": [], "key": "events/list-event-buses-paginates-with-limit-and-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:ListEventBuses"], "path": "behavioral/events/check_list_event_buses_paginates_with_limit_and_next_token.py", "service": "events"} {"check_id": "events.list-partner-event-source-accounts-unknown-source-not-found", "deployments": [], "key": "events/list-partner-event-source-accounts-unknown-source-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:ListEventBuses", "events:ListPartnerEventSourceAccounts"], "path": "behavioral/events/check_list_partner_event_source_accounts_unknown_source_not_found.py", "service": "events"} {"check_id": "events.list-partner-event-sources-disabled-account-denied", "deployments": [], "key": "events/list-partner-event-sources-disabled-account-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:ListEventBuses", "events:ListPartnerEventSources"], "path": "behavioral/events/check_list_partner_event_sources_disabled_account_denied.py", "service": "events"} {"check_id": "events.list-replays-combined-filters-rejected", "deployments": [], "key": "events/list-replays-combined-filters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:ListReplays"], "path": "behavioral/events/check_list_replays_combined_filters_rejected.py", "service": "events"} {"check_id": "events.list-rule-names-by-target", "deployments": [], "key": "events/list-rule-names-by-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListRuleNamesByTarget", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_list_rule_names_by_target.py", "service": "events"} {"check_id": "events.list-rule-names-by-target-paginates-with-limit-and-next-token", "deployments": [], "key": "events/list-rule-names-by-target-paginates-with-limit-and-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListRuleNamesByTarget", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_list_rule_names_by_target_paginates_with_limit_and_next_token.py", "service": "events"} {"check_id": "events.list-rules-pagination-and-name-prefix-exactness", "deployments": [], "key": "events/list-rules-pagination-and-name-prefix-exactness", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListRules", "events:PutRule"], "path": "behavioral/events/check_list_rules_pagination_and_name_prefix_exactness.py", "service": "events"} {"check_id": "events.list-targets-by-rule-paginates-with-limit-and-next-token", "deployments": [], "key": "events/list-targets-by-rule-paginates-with-limit-and-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeEventBus", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_list_targets_by_rule_paginates_with_limit_and_next_token.py", "service": "events"} {"check_id": "events.log-group-target-dead-letters-events-timed-too-old-or-too-far-ahead-while-a-current-event-is-written", "deployments": [], "key": "events/log-group-target-dead-letters-events-timed-too-old-or-too-far-ahead-while-a-current-event-is-written", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutResourcePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_log_group_target_dead_letters_events_timed_too_old_or_too_far_ahead_while_a_current_event_is_written.py", "service": "events"} {"check_id": "events.nested-or-inside-detail-agrees-between-test-event-pattern-and-real-delivery", "deployments": [], "key": "events/nested-or-inside-detail-agrees-between-test-event-pattern-and-real-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TestEventPattern", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_nested_or_inside_detail_agrees_between_test_event_pattern_and_real_delivery.py", "service": "events"} {"check_id": "events.oauth-connection-non-https-authorization-endpoint-rejected", "deployments": [], "key": "events/oauth-connection-non-https-authorization-endpoint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "events:ListConnections"], "path": "behavioral/events/check_oauth_connection_non_https_authorization_endpoint_rejected.py", "service": "events"} {"check_id": "events.oauth-connection-with-unreachable-endpoint-deauthorizes-and-its-destination-is-inactive", "deployments": [], "key": "events/oauth-connection-with-unreachable-endpoint-deauthorizes-and-its-destination-is-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DescribeApiDestination", "events:DescribeConnection"], "path": "behavioral/events/check_oauth_connection_with_unreachable_endpoint_deauthorizes_and_its_destination_is_inactive.py", "service": "events"} {"check_id": "events.partner-event-source-lifecycle-create-rejected-non-partner", "deployments": [], "key": "events/partner-event-source-lifecycle-create-rejected-non-partner", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:CreatePartnerEventSource", "events:DeleteEventBus", "events:DeletePartnerEventSource", "events:DescribeEventBus", "events:DescribePartnerEventSource", "sts:GetCallerIdentity"], "path": "behavioral/events/check_partner_event_source_lifecycle_create_rejected_non_partner.py", "service": "events"} {"check_id": "events.policy-scoped-to-one-bus-rules-denies-put-targets-on-the-same-rule-name-on-another-bus", "deployments": [], "key": "events/policy-scoped-to-one-bus-rules-denies-put-targets-on-the-same-rule-name-on-another-bus", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:AssumeRole"], "path": "behavioral/events/check_policy_scoped_to_one_bus_rules_denies_put_targets_on_the_same_rule_name_on_another_bus.py", "service": "events"} {"check_id": "events.put-and-remove-permission-conflicting-parameters-rejected", "deployments": [], "key": "events/put-and-remove-permission-conflicting-parameters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:PutPermission", "events:RemovePermission"], "path": "behavioral/events/check_put_and_remove_permission_conflicting_parameters_rejected.py", "service": "events"} {"check_id": "events.put-events-detail-json-nesting-depth-limit", "deployments": [], "key": "events/put-events-detail-json-nesting-depth-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:PutEvents"], "path": "behavioral/events/check_put_events_detail_json_nesting_depth_limit.py", "service": "events"} {"check_id": "events.put-events-detail-that-is-json-but-not-an-object-rejected", "deployments": [], "key": "events/put-events-detail-that-is-json-but-not-an-object-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:PutEvents"], "path": "behavioral/events/check_put_events_detail_that_is_json_but_not_an_object_rejected.py", "service": "events"} {"check_id": "events.put-events-endpoint-id-delivers-to-primary-and-replicates-to-secondary", "deployments": [], "key": "events/put-events-endpoint-id-delivers-to-primary-and-replicates-to-secondary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "events:CreateEndpoint", "events:DeleteEndpoint", "events:DeleteRule", "events:DescribeEndpoint", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_endpoint_id_delivers_to_primary_and_replicates_to_secondary.py", "service": "events"} {"check_id": "events.put-events-endpoint-id-with-unrelated-event-bus-name-rejected", "deployments": [], "key": "events/put-events-endpoint-id-with-unrelated-event-bus-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEndpoint", "events:DeleteEndpoint", "events:DeleteRule", "events:DescribeEndpoint", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_endpoint_id_with_unrelated_event_bus_name_rejected.py", "service": "events"} {"check_id": "events.put-events-malformed-detail-entry-fails", "deployments": [], "key": "events/put-events-malformed-detail-entry-fails", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:PutEvents"], "path": "behavioral/events/check_put_events_malformed_detail_entry_fails.py", "service": "events"} {"check_id": "events.put-events-missing-source-entry-fails", "deployments": [], "key": "events/put-events-missing-source-entry-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_missing_source_entry_fails.py", "service": "events"} {"check_id": "events.put-events-nonexistent-bus-silently-dropped", "deployments": [], "key": "events/put-events-nonexistent-bus-silently-dropped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DescribeEventBus", "events:PutEvents"], "path": "behavioral/events/check_put_events_nonexistent_bus_silently_dropped.py", "service": "events"} {"check_id": "events.put-events-numeric-precision-preserved", "deployments": [], "key": "events/put-events-numeric-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_numeric_precision_preserved.py", "service": "events"} {"check_id": "events.put-events-one-mebibyte-request-limit-refused-whole-and-large-event-delivers-intact", "deployments": [], "key": "events/put-events-one-mebibyte-request-limit-refused-whole-and-large-event-delivers-intact", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_one_mebibyte_request_limit_refused_whole_and_large_event_delivers_intact.py", "service": "events"} {"check_id": "events.put-events-partial-failure-invalid-entry", "deployments": [], "key": "events/put-events-partial-failure-invalid-entry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:PutEvents"], "path": "behavioral/events/check_put_events_partial_failure_invalid_entry.py", "service": "events"} {"check_id": "events.put-events-partial-failure-positional-alignment", "deployments": [], "key": "events/put-events-partial-failure-positional-alignment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:ListRules", "events:PutEvents"], "path": "behavioral/events/check_put_events_partial_failure_positional_alignment.py", "service": "events"} {"check_id": "events.put-events-target-without-resource-policy-blocks-delivery", "deployments": [], "key": "events/put-events-target-without-resource-policy-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_target_without_resource_policy_blocks_delivery.py", "service": "events"} {"check_id": "events.put-events-trace-header-reaches-sqs-targets-as-aws-trace-header", "deployments": [], "key": "events/put-events-trace-header-reaches-sqs-targets-as-aws-trace-header", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_trace_header_reaches_sqs_targets_as_aws_trace_header.py", "service": "events"} {"check_id": "events.put-events-triggers-matched-target-delivery", "deployments": [], "key": "events/put-events-triggers-matched-target-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_triggers_matched_target_delivery.py", "service": "events"} {"check_id": "events.put-events-unicode-detail-round-trip", "deployments": [], "key": "events/put-events-unicode-detail-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_unicode_detail_round_trip.py", "service": "events"} {"check_id": "events.put-events-unmatched-entry-not-delivered", "deployments": [], "key": "events/put-events-unmatched-entry-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_unmatched_entry_not_delivered.py", "service": "events"} {"check_id": "events.put-events-valid-returns-event-id", "deployments": [], "key": "events/put-events-valid-returns-event-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_events_valid_returns_event_id.py", "service": "events"} {"check_id": "events.put-partner-events-non-partner-account-denied", "deployments": [], "key": "events/put-partner-events-non-partner-account-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DescribeEventSource", "events:PutEvents", "events:PutPartnerEvents"], "path": "behavioral/events/check_put_partner_events_non_partner_account_denied.py", "service": "events"} {"check_id": "events.put-permission-same-statement-id-replaces-and-remove-all-clears-policy", "deployments": [], "key": "events/put-permission-same-statement-id-replaces-and-remove-all-clears-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:PutPermission", "events:RemovePermission"], "path": "behavioral/events/check_put_permission_same_statement_id_replaces_and_remove_all_clears_policy.py", "service": "events"} {"check_id": "events.put-remove-permission-roundtrip", "deployments": [], "key": "events/put-remove-permission-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:PutPermission", "events:RemovePermission"], "path": "behavioral/events/check_put_remove_permission_roundtrip.py", "service": "events"} {"check_id": "events.put-rule-default-state-enabled", "deployments": [], "key": "events/put-rule-default-state-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutRule", "events:RemoveTargets"], "path": "behavioral/events/check_put_rule_default_state_enabled.py", "service": "events"} {"check_id": "events.put-rule-invalid-pattern-fails", "deployments": [], "key": "events/put-rule-invalid-pattern-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutRule"], "path": "behavioral/events/check_put_rule_invalid_pattern_fails.py", "service": "events"} {"check_id": "events.put-rule-invalid-schedule-expression-rejected", "deployments": [], "key": "events/put-rule-invalid-schedule-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutRule"], "path": "behavioral/events/check_put_rule_invalid_schedule_expression_rejected.py", "service": "events"} {"check_id": "events.put-rule-new-pattern-stops-old-matches-and-keeps-targets", "deployments": [], "key": "events/put-rule-new-pattern-stops-old-matches-and-keeps-targets", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_rule_new_pattern_stops_old_matches_and_keeps_targets.py", "service": "events"} {"check_id": "events.put-rule-nonexistent-bus-fails", "deployments": [], "key": "events/put-rule-nonexistent-bus-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListRules", "events:PutRule"], "path": "behavioral/events/check_put_rule_nonexistent_bus_fails.py", "service": "events"} {"check_id": "events.put-rule-schedule-expression-grammar-rejection", "deployments": [], "key": "events/put-rule-schedule-expression-grammar-rejection", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutRule"], "path": "behavioral/events/check_put_rule_schedule_expression_grammar_rejection.py", "service": "events"} {"check_id": "events.put-rule-update-replaces-omitted-fields-and-ignores-tags", "deployments": [], "key": "events/put-rule-update-replaces-omitted-fields-and-ignores-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListTagsForResource", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_put_rule_update_replaces_omitted_fields_and_ignores_tags.py", "service": "events"} {"check_id": "events.put-rule-without-pattern-or-schedule-rejected", "deployments": [], "key": "events/put-rule-without-pattern-or-schedule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule"], "path": "behavioral/events/check_put_rule_without_pattern_or_schedule_rejected.py", "service": "events"} {"check_id": "events.put-target-role-retry-policy-and-dead-letter-config-roundtrip-then-role-replaced", "deployments": [], "key": "events/put-target-role-retry-policy-and-dead-letter-config-roundtrip-then-role-replaced", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events/check_put_target_role_retry_policy_and_dead_letter_config_roundtrip_then_role_replaced.py", "service": "events"} {"check_id": "events.put-targets-and-list", "deployments": [], "key": "events/put-targets-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_put_targets_and_list.py", "service": "events"} {"check_id": "events.put-targets-duplicate-id-in-one-request-rejected", "deployments": [], "key": "events/put-targets-duplicate-id-in-one-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeEventBus", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_put_targets_duplicate_id_in_one_request_rejected.py", "service": "events"} {"check_id": "events.put-targets-exceeds-max-limit", "deployments": [], "key": "events/put-targets-exceeds-max-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeEventBus", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_put_targets_exceeds_max_limit.py", "service": "events"} {"check_id": "events.put-targets-fifo-sqs-dead-letter-config-rejected", "deployments": [], "key": "events/put-targets-fifo-sqs-dead-letter-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/events/check_put_targets_fifo_sqs_dead_letter_config_rejected.py", "service": "events"} {"check_id": "events.put-targets-malformed-arn-rejected-atomically", "deployments": [], "key": "events/put-targets-malformed-arn-rejected-atomically", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeEventBus", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_put_targets_malformed_arn_rejected_atomically.py", "service": "events"} {"check_id": "events.put-targets-new-id-on-full-rule-rejected-while-same-id-upsert-accepted", "deployments": [], "key": "events/put-targets-new-id-on-full-rule-rejected-while-same-id-upsert-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeEventBus", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_put_targets_new_id_on_full_rule_rejected_while_same_id_upsert_accepted.py", "service": "events"} {"check_id": "events.put-targets-nonexistent-rule-fails", "deployments": [], "key": "events/put-targets-nonexistent-rule-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_put_targets_nonexistent_rule_fails.py", "service": "events"} {"check_id": "events.put-targets-omitted-role-arn-rejected-leaves-prior-target-unchanged", "deployments": [], "key": "events/put-targets-omitted-role-arn-rejected-leaves-prior-target-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/events/check_put_targets_omitted_role_arn_rejected_leaves_prior_target_unchanged.py", "service": "events"} {"check_id": "events.put-targets-retry-policy-above-documented-maxima-rejected", "deployments": [], "key": "events/put-targets-retry-policy-above-documented-maxima-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sts:GetCallerIdentity"], "path": "behavioral/events/check_put_targets_retry_policy_above_documented_maxima_rejected.py", "service": "events"} {"check_id": "events.put-targets-same-id-new-arn-moves-delivery-to-the-new-queue", "deployments": [], "key": "events/put-targets-same-id-new-arn-moves-delivery-to-the-new-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_put_targets_same_id_new_arn_moves_delivery_to_the_new_queue.py", "service": "events"} {"check_id": "events.put-targets-sns-fifo-topic-target-rejected", "deployments": [], "key": "events/put-targets-sns-fifo-topic-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/events/check_put_targets_sns_fifo_topic_target_rejected.py", "service": "events"} {"check_id": "events.put-targets-with-role-arn-denied-without-iam-pass-role-until-granted", "deployments": [], "key": "events/put-targets-with-role-arn-denied-without-iam-pass-role-until-granted", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:AssumeRole"], "path": "behavioral/events/check_put_targets_with_role_arn_denied_without_iam_pass_role_until_granted.py", "service": "events"} {"check_id": "events.queue-policy-deny-and-missing-allow-both-dead-letter-as-no-resource-without-retries", "deployments": [], "key": "events/queue-policy-deny-and-missing-allow-both-dead-letter-as-no-resource-without-retries", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_queue_policy_deny_and_missing_allow_both_dead_letter_as_no_resource_without_retries.py", "service": "events"} {"check_id": "events.recreated-event-bus-inherits-no-tags-policy-or-description", "deployments": [], "key": "events/recreated-event-bus-inherits-no-tags-policy-or-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:ListTagsForResource", "events:PutPermission", "events:TagResource"], "path": "behavioral/events/check_recreated_event_bus_inherits_no_tags_policy_or_description.py", "service": "events"} {"check_id": "events.remove-permission-nonexistent-fails", "deployments": [], "key": "events/remove-permission-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:PutPermission", "events:RemovePermission"], "path": "behavioral/events/check_remove_permission_nonexistent_fails.py", "service": "events"} {"check_id": "events.remove-targets-removes-them", "deployments": [], "key": "events/remove-targets-removes-them", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_remove_targets_removes_them.py", "service": "events"} {"check_id": "events.remove-targets-unknown-id-is-lenient", "deployments": [], "key": "events/remove-targets-unknown-id-is-lenient", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeEventBus", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets"], "path": "behavioral/events/check_remove_targets_unknown_id_is_lenient.py", "service": "events"} {"check_id": "events.replay-completion-populates-timestamps-and-list-state-filter-discriminates", "deployments": [], "key": "events/replay-completion-populates-timestamps-and-list-state-filter-discriminates", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:ListReplays", "events:PutEvents", "events:StartReplay"], "path": "behavioral/events/check_replay_completion_populates_timestamps_and_list_state_filter_discriminates.py", "service": "events"} {"check_id": "events.replay-reaches-completed", "deployments": [], "key": "events/replay-reaches-completed", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CancelReplay", "events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:ListReplays", "events:StartReplay"], "path": "behavioral/events/check_replay_reaches_completed.py", "service": "events"} {"check_id": "events.resource-tag-condition-scopes-disable-rule-to-rules-carrying-the-tag", "deployments": [], "key": "events/resource-tag-condition-scopes-disable-rule-to-rules-carrying-the-tag", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:PutRule", "events:TagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole"], "path": "behavioral/events/check_resource_tag_condition_scopes_disable_rule_to_rules_carrying_the_tag.py", "service": "events"} {"check_id": "events.rule-on-the-envelope-account-and-region-routes-only-this-accounts-events-here", "deployments": [], "key": "events/rule-on-the-envelope-account-and-region-routes-only-this-accounts-events-here", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_rule_on_the_envelope_account_and_region_routes_only_this_accounts_events_here.py", "service": "events"} {"check_id": "events.rule-scoped-to-event-bus-isolation", "deployments": [], "key": "events/rule-scoped-to-event-bus-isolation", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:ListTargetsByRule", "events:PutRule", "events:RemoveTargets"], "path": "behavioral/events/check_rule_scoped_to_event_bus_isolation.py", "service": "events"} {"check_id": "events.schedule-rule-on-custom-bus-rejected", "deployments": [], "key": "events/schedule-rule-on-custom-bus-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutRule"], "path": "behavioral/events/check_schedule_rule_on_custom_bus_rejected.py", "service": "events"} {"check_id": "events.schedule-rule-on-default-bus-accepted", "deployments": [], "key": "events/schedule-rule-on-default-bus-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule"], "path": "behavioral/events/check_schedule_rule_on_default_bus_accepted.py", "service": "events"} {"check_id": "events.sns-target-on-a-kms-encrypted-topic-dead-letters-as-no-permissions-until-the-key-policy-grants-events", "deployments": [], "key": "events/sns-target-on-a-kms-encrypted-topic-dead-letters-as-no-permissions-until-the-key-policy-grants-events", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_sns_target_on_a_kms_encrypted_topic_dead_letters_as_no_permissions_until_the_key_policy_grants_events.py", "service": "events"} {"check_id": "events.sns-target-publishes-the-compact-envelope-and-a-plain-text-template-keeps-its-quotes", "deployments": [], "key": "events/sns-target-publishes-the-compact-envelope-and-a-plain-text-template-keeps-its-quotes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_sns_target_publishes_the_compact_envelope_and_a_plain_text_template_keeps_its_quotes.py", "service": "events"} {"check_id": "events.sns-target-without-topic-policy-dead-letters-as-access-denied-until-the-policy-grants-publish", "deployments": [], "key": "events/sns-target-without-topic-policy-dead-letters-as-access-denied-until-the-policy-grants-publish", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_sns_target_without_topic_policy_dead_letters_as_access_denied_until_the_policy_grants_publish.py", "service": "events"} {"check_id": "events.sqs-target-encrypted-with-a-key-events-cannot-use-dead-letters-until-the-key-policy-grants-it", "deployments": [], "key": "events/sqs-target-encrypted-with-a-key-events-cannot-use-dead-letters-until-the-key-policy-grants-it", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_sqs_target_encrypted_with_a_key_events_cannot_use_dead_letters_until_the_key_policy_grants_it.py", "service": "events"} {"check_id": "events.sqs-target-message-group-id-json-path-resolves-per-event", "deployments": [], "key": "events/sqs-target-message-group-id-json-path-resolves-per-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_sqs_target_message_group_id_json_path_resolves_per_event.py", "service": "events"} {"check_id": "events.start-replay-duplicate-name-rejected", "deployments": [], "key": "events/start-replay-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CancelReplay", "events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:StartReplay"], "path": "behavioral/events/check_start_replay_duplicate_name_rejected.py", "service": "events"} {"check_id": "events.start-replay-end-time-before-start-rejected", "deployments": [], "key": "events/start-replay-end-time-before-start-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CancelReplay", "events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:ListReplays", "events:StartReplay"], "path": "behavioral/events/check_start_replay_end_time_before_start_rejected.py", "service": "events"} {"check_id": "events.start-replay-invalid-source-rejected", "deployments": [], "key": "events/start-replay-invalid-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CancelReplay", "events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeReplay", "events:ListReplays", "events:StartReplay"], "path": "behavioral/events/check_start_replay_invalid_source_rejected.py", "service": "events"} {"check_id": "events.system-tag-keys-rejected-on-event-bus-and-tags-unchanged", "deployments": [], "key": "events/system-tag-keys-rejected-on-event-bus-and-tags-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:ListTagsForResource", "events:TagResource", "events:UntagResource"], "path": "behavioral/events/check_system_tag_keys_rejected_on_event_bus_and_tags_unchanged.py", "service": "events"} {"check_id": "events.tag-list-untag-roundtrip", "deployments": [], "key": "events/tag-list-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:ListTagsForResource", "events:TagResource", "events:UntagResource"], "path": "behavioral/events/check_tag_list_untag_roundtrip.py", "service": "events"} {"check_id": "events.tag-nonexistent-resource-fails", "deployments": [], "key": "events/tag-nonexistent-resource-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:ListTagsForResource", "events:TagResource"], "path": "behavioral/events/check_tag_nonexistent_resource_fails.py", "service": "events"} {"check_id": "events.test-event-pattern-anything-but-exclusion-forms", "deployments": [], "key": "events/test-event-pattern-anything-but-exclusion-forms", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_anything_but_exclusion_forms.py", "service": "events"} {"check_id": "events.test-event-pattern-anything-but-mixed-string-number-list-rejected", "deployments": [], "key": "events/test-event-pattern-anything-but-mixed-string-number-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_anything_but_mixed_string_number_list_rejected.py", "service": "events"} {"check_id": "events.test-event-pattern-anything-but-nested-suffix-equals-ignore-case-and-wildcard-forms", "deployments": [], "key": "events/test-event-pattern-anything-but-nested-suffix-equals-ignore-case-and-wildcard-forms", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_anything_but_nested_suffix_equals_ignore_case_and_wildcard_forms.py", "service": "events"} {"check_id": "events.test-event-pattern-anything-but-over-array-valued-field-admits-any-escaping-element", "deployments": [], "key": "events/test-event-pattern-anything-but-over-array-valued-field-admits-any-escaping-element", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_anything_but_over_array_valued_field_admits_any_escaping_element.py", "service": "events"} {"check_id": "events.test-event-pattern-cidr-matcher-boundaries", "deployments": [], "key": "events/test-event-pattern-cidr-matcher-boundaries", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_cidr_matcher_boundaries.py", "service": "events"} {"check_id": "events.test-event-pattern-envelope-required-fields-and-parseable-time", "deployments": [], "key": "events/test-event-pattern-envelope-required-fields-and-parseable-time", "labels": ["axis:rejection", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_envelope_required_fields_and_parseable_time.py", "service": "events"} {"check_id": "events.test-event-pattern-exact-value-case-and-type-sensitivity", "deployments": [], "key": "events/test-event-pattern-exact-value-case-and-type-sensitivity", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_exact_value_case_and_type_sensitivity.py", "service": "events"} {"check_id": "events.test-event-pattern-exists-and-null-vs-empty-string", "deployments": [], "key": "events/test-event-pattern-exists-and-null-vs-empty-string", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_exists_and_null_vs_empty_string.py", "service": "events"} {"check_id": "events.test-event-pattern-exists-false-matches-when-an-intermediate-parent-is-missing", "deployments": [], "key": "events/test-event-pattern-exists-false-matches-when-an-intermediate-parent-is-missing", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_exists_false_matches_when_an_intermediate_parent_is_missing.py", "service": "events"} {"check_id": "events.test-event-pattern-exists-treats-every-object-leaf-and-the-empty-array-as-absent", "deployments": [], "key": "events/test-event-pattern-exists-treats-every-object-leaf-and-the-empty-array-as-absent", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_exists_treats_every_object_leaf_and_the_empty_array_as_absent.py", "service": "events"} {"check_id": "events.test-event-pattern-invalid-fails", "deployments": [], "key": "events/test-event-pattern-invalid-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_invalid_fails.py", "service": "events"} {"check_id": "events.test-event-pattern-malformed-operator-rejection", "deployments": [], "key": "events/test-event-pattern-malformed-operator-rejection", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_malformed_operator_rejection.py", "service": "events"} {"check_id": "events.test-event-pattern-match", "deployments": [], "key": "events/test-event-pattern-match", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_match.py", "service": "events"} {"check_id": "events.test-event-pattern-match-and-mismatch", "deployments": [], "key": "events/test-event-pattern-match-and-mismatch", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:DescribeEventBus", "events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_match_and_mismatch.py", "service": "events"} {"check_id": "events.test-event-pattern-multiple-filters-in-one-list-are-or-joined", "deployments": [], "key": "events/test-event-pattern-multiple-filters-in-one-list-are-or-joined", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_multiple_filters_in_one_list_are_or_joined.py", "service": "events"} {"check_id": "events.test-event-pattern-numeric-range-boundaries", "deployments": [], "key": "events/test-event-pattern-numeric-range-boundaries", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_numeric_range_boundaries.py", "service": "events"} {"check_id": "events.test-event-pattern-numeric-rejects-non-numeric-json-values-and-degenerate-ranges", "deployments": [], "key": "events/test-event-pattern-numeric-rejects-non-numeric-json-values-and-degenerate-ranges", "labels": ["axis:rejection", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_numeric_rejects_non_numeric_json_values_and_degenerate_ranges.py", "service": "events"} {"check_id": "events.test-event-pattern-or-and-semantics-across-keys-and-arrays", "deployments": [], "key": "events/test-event-pattern-or-and-semantics-across-keys-and-arrays", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_or_and_semantics_across_keys_and_arrays.py", "service": "events"} {"check_id": "events.test-event-pattern-string-content-filters", "deployments": [], "key": "events/test-event-pattern-string-content-filters", "labels": ["axis:negative-delivery", "plane:control"], "operations": ["events:TestEventPattern"], "path": "behavioral/events/check_test_event_pattern_string_content_filters.py", "service": "events"} {"check_id": "events.twelve-rules-matching-one-event-each-deliver-their-own-copy-and-a-near-miss-rule-none", "deployments": [], "key": "events/twelve-rules-matching-one-event-each-deliver-their-own-copy-and-a-near-miss-rule-none", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events/check_twelve_rules_matching_one_event_each_deliver_their_own_copy_and_a_near_miss_rule_none.py", "service": "events"} {"check_id": "events.update-archive-event-pattern-governs-what-is-archived-afterwards", "deployments": [], "key": "events/update-archive-event-pattern-governs-what-is-archived-afterwards", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeRule", "events:PutEvents", "events:UpdateArchive"], "path": "behavioral/events/check_update_archive_event_pattern_governs_what_is_archived_afterwards.py", "service": "events"} {"check_id": "events.update-archive-pattern-is-mirrored-into-its-managed-rule-and-delete-removes-it", "deployments": [], "key": "events/update-archive-pattern-is-mirrored-into-its-managed-rule-and-delete-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:DescribeRule", "events:ListRules", "events:UpdateArchive"], "path": "behavioral/events/check_update_archive_pattern_is_mirrored_into_its_managed_rule_and_delete_removes_it.py", "service": "events"} {"check_id": "events.update-connection-authorization-type", "deployments": [], "key": "events/update-connection-authorization-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "events:UpdateConnection"], "path": "behavioral/events/check_update_connection_authorization_type.py", "service": "events"} {"check_id": "events.update-endpoint-changes-routing-config", "deployments": [], "key": "events/update-endpoint-changes-routing-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEndpoint", "events:CreateEventBus", "events:DeleteEndpoint", "events:DeleteEventBus", "events:DescribeEndpoint", "events:UpdateEndpoint", "route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck"], "path": "behavioral/events/check_update_endpoint_changes_routing_config.py", "service": "events"} {"check_id": "events.update-endpoint-nonexistent-not-found", "deployments": [], "key": "events/update-endpoint-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEndpoint", "events:DeleteEndpoint", "events:DescribeEndpoint", "events:UpdateEndpoint", "route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "sts:GetCallerIdentity"], "path": "behavioral/events/check_update_endpoint_nonexistent_not_found.py", "service": "events"} {"check_id": "events.update-event-bus-partial-update-agrees-across-every-read-surface", "deployments": [], "key": "events/update-event-bus-partial-update-agrees-across-every-read-surface", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:ListEventBuses", "events:UpdateEventBus"], "path": "behavioral/events/check_update_event_bus_partial_update_agrees_across_every_read_surface.py", "service": "events"} {"check_id": "events.update-event-bus-policy-enforced-on-put-events", "deployments": [], "key": "events/update-event-bus-policy-enforced-on-put-events", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeEventBus", "events:PutEvents", "events:PutPermission", "events:PutRule", "events:PutTargets", "events:RemovePermission", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events/check_update_event_bus_policy_enforced_on_put_events.py", "service": "events"} {"check_id": "events__firehose__s3.cfn-deploy-eventbridge-firehose-s3-pipeline", "deployments": [], "key": "events__firehose__s3/cfn-deploy-eventbridge-firehose-s3-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "firehose:DescribeDeliveryStream", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/events__firehose__s3/check_cfn_deploy_eventbridge_firehose_s3_pipeline.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.cfn-deploy-firehose-role-missing-trust-fails-delivery", "deployments": [], "key": "events__firehose__s3/cfn-deploy-firehose-role-missing-trust-fails-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "firehose:DescribeDeliveryStream", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/events__firehose__s3/check_cfn_deploy_firehose_role_missing_trust_fails_delivery.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.cfn-deploy-firehose-role-trust-policy", "deployments": [], "key": "events__firehose__s3/cfn-deploy-firehose-role-trust-policy", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:GetRole", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/events__firehose__s3/check_cfn_deploy_firehose_role_trust_policy.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.eventbridge-fanout-firehose-and-sqs-targets", "deployments": [], "key": "events__firehose__s3/eventbridge-fanout-firehose-and-sqs-targets", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__firehose__s3/check_eventbridge_fanout_firehose_and_sqs_targets.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.eventbridge-firehose-delivery-stream-arn-resolution", "deployments": [], "key": "events__firehose__s3/eventbridge-firehose-delivery-stream-arn-resolution", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_eventbridge_firehose_delivery_stream_arn_resolution.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.eventbridge-firehose-target-missing-permission-not-invoked", "deployments": [], "key": "events__firehose__s3/eventbridge-firehose-target-missing-permission-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/events__firehose__s3/check_eventbridge_firehose_target_missing_permission_not_invoked.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.eventbridge-firehose-target-role-missing-trust-rejected", "deployments": [], "key": "events__firehose__s3/eventbridge-firehose-target-role-missing-trust-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_eventbridge_firehose_target_role_missing_trust_rejected.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.eventbridge-input-transformer-firehose-record", "deployments": [], "key": "events__firehose__s3/eventbridge-input-transformer-firehose-record", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_eventbridge_input_transformer_firehose_record.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.eventbridge-pattern-mismatch-suppresses-firehose-delivery", "deployments": [], "key": "events__firehose__s3/eventbridge-pattern-mismatch-suppresses-firehose-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/events__firehose__s3/check_eventbridge_pattern_mismatch_suppresses_firehose_delivery.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.eventbridge-put-events-triggers-firehose-to-s3", "deployments": [], "key": "events__firehose__s3/eventbridge-put-events-triggers-firehose-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_eventbridge_put_events_triggers_firehose_to_s3.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.eventbridge-rule-invokes-firehose-target", "deployments": [], "key": "events__firehose__s3/eventbridge-rule-invokes-firehose-target", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_eventbridge_rule_invokes_firehose_target.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.events-rule-role-trusts-events-service", "deployments": [], "key": "events__firehose__s3/events-rule-role-trusts-events-service", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_events_rule_role_trusts_events_service.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.events-target-role-without-trust-rejected", "deployments": [], "key": "events__firehose__s3/events-target-role-without-trust-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__firehose__s3/check_events_target_role_without_trust_rejected.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-assumes-role-with-correct-trust-policy", "deployments": [], "key": "events__firehose__s3/firehose-assumes-role-with-correct-trust-policy", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_firehose_assumes_role_with_correct_trust_policy.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-buffering-hints-batch-delivery-to-s3", "deployments": [], "key": "events__firehose__s3/firehose-buffering-hints-batch-delivery-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/events__firehose__s3/check_firehose_buffering_hints_batch_delivery_to_s3.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-compression-format-delivered-to-s3", "deployments": [], "key": "events__firehose__s3/firehose-compression-format-delivered-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_firehose_compression_format_delivered_to_s3.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-dynamic-partitioning-s3-key", "deployments": [], "key": "events__firehose__s3/firehose-dynamic-partitioning-s3-key", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_firehose_dynamic_partitioning_s3_key.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-role-missing-s3-permission-denied", "deployments": [], "key": "events__firehose__s3/firehose-role-missing-s3-permission-denied", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/events__firehose__s3/check_firehose_role_missing_s3_permission_denied.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-role-scoped-bucket-denied-on-other-bucket", "deployments": [], "key": "events__firehose__s3/firehose-role-scoped-bucket-denied-on-other-bucket", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/events__firehose__s3/check_firehose_role_scoped_bucket_denied_on_other_bucket.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-role-without-trust-policy-rejected", "deployments": [], "key": "events__firehose__s3/firehose-role-without-trust-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/events__firehose__s3/check_firehose_role_without_trust_policy_rejected.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-s3-backup-mode-all-delivers-source-records", "deployments": [], "key": "events__firehose__s3/firehose-s3-backup-mode-all-delivers-source-records", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/events__firehose__s3/check_firehose_s3_backup_mode_all_delivers_source_records.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-s3-destination-wrong-bucket-arn-rejected", "deployments": [], "key": "events__firehose__s3/firehose-s3-destination-wrong-bucket-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/events__firehose__s3/check_firehose_s3_destination_wrong_bucket_arn_rejected.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-s3-error-prefix-on-delivery-failure", "deployments": [], "key": "events__firehose__s3/firehose-s3-error-prefix-on-delivery-failure", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_firehose_s3_error_prefix_on_delivery_failure.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.firehose-s3-prefix-partitioning", "deployments": [], "key": "events__firehose__s3/firehose-s3-prefix-partitioning", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/events__firehose__s3/check_firehose_s3_prefix_partitioning.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.s3-replication-role-trusts-s3-service", "deployments": [], "key": "events__firehose__s3/s3-replication-role-trusts-s3-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/events__firehose__s3/check_s3_replication_role_trusts_s3_service.py", "service": "events__firehose__s3"} {"check_id": "events__firehose__s3.s3-role-without-trust-policy-rejected", "deployments": [], "key": "events__firehose__s3/s3-role-without-trust-policy-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketReplication", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/events__firehose__s3/check_s3_role_without_trust_policy_rejected.py", "service": "events__firehose__s3"} {"check_id": "events__glue.event-trigger-fires-only-after-its-batch-size-is-reached", "deployments": [], "key": "events__glue/event-trigger-fires-only-after-its-batch-size-is-reached", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateJob", "glue:CreateTrigger", "glue:CreateWorkflow", "glue:DeleteJob", "glue:DeleteTrigger", "glue:DeleteWorkflow", "glue:GetTrigger", "glue:GetWorkflow", "glue:GetWorkflowRuns", "glue:StopWorkflowRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/events__glue/check_event_trigger_fires_only_after_its_batch_size_is_reached.py", "service": "events__glue"} {"check_id": "events__iam__lambda__sqs.eventbridge-rule-no-permission-to-invoke-lambda", "deployments": [], "key": "events__iam__lambda__sqs/eventbridge-rule-no-permission-to-invoke-lambda", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__iam__lambda__sqs/check_eventbridge_rule_no_permission_to_invoke_lambda.py", "service": "events__iam__lambda__sqs"} {"check_id": "events__iam__sns__sqs__sts.put-targets-target-arn-condition-restricts-to-sqs", "deployments": [], "key": "events__iam__sns__sqs__sts/put-targets-target-arn-condition-restricts-to-sqs", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/events__iam__sns__sqs__sts/check_put_targets_target_arn_condition_restricts_to_sqs.py", "service": "events__iam__sns__sqs__sts"} {"check_id": "events__iam__sqs__stepfunctions.xsvc-iam-3-events-role-starts-sfn-execution-with-the-event-as-input", "deployments": [], "key": "events__iam__sqs__stepfunctions/xsvc-iam-3-events-role-starts-sfn-execution-with-the-event-as-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/events__iam__sqs__stepfunctions/check_xsvc_iam_3_events_role_starts_sfn_execution_with_the_event_as_input.py", "service": "events__iam__sqs__stepfunctions"} {"check_id": "events__iam__sqs__stepfunctions.xsvc-iam-3-role-without-events-trust-rejected-at-delivery-failed-to-assume-role", "deployments": [], "key": "events__iam__sqs__stepfunctions/xsvc-iam-3-role-without-events-trust-rejected-at-delivery-failed-to-assume-role", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/events__iam__sqs__stepfunctions/check_xsvc_iam_3_role_without_events_trust_rejected_at_delivery_failed_to_assume_role.py", "service": "events__iam__sqs__stepfunctions"} {"check_id": "events__iam__sqs__stepfunctions.xsvc-iam-3-role-without-start-execution-denied-dead-letters-and-counts-failed-invocations", "deployments": [], "key": "events__iam__sqs__stepfunctions/xsvc-iam-3-role-without-start-execution-denied-dead-letters-and-counts-failed-invocations", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/events__iam__sqs__stepfunctions/check_xsvc_iam_3_role_without_start_execution_denied_dead_letters_and_counts_failed_invocations.py", "service": "events__iam__sqs__stepfunctions"} {"check_id": "events__iam__sts.put-rule-source-conditions-gate-the-event-pattern", "deployments": [], "key": "events__iam__sts/put-rule-source-conditions-gate-the-event-pattern", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:PutRule", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/events__iam__sts/check_put_rule_source_conditions_gate_the_event_pattern.py", "service": "events__iam__sts"} {"check_id": "events__kinesis.kinesis-target-partition-key-path-routes-by-event-field", "deployments": [], "key": "events__kinesis/kinesis-target-partition-key-path-routes-by-event-field", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__kinesis/check_kinesis_target_partition_key_path_routes_by_event_field.py", "service": "events__kinesis"} {"check_id": "events__kms.archive-kms-key-identifier-absent-then-granted-on-update", "deployments": [], "key": "events__kms/archive-kms-key-identifier-absent-then-granted-on-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DescribeArchive", "events:UpdateArchive", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/events__kms/check_archive_kms_key_identifier_absent_then_granted_on_update.py", "service": "events__kms"} {"check_id": "events__lambda__rds__sqs.xsvc-rds-3-eventbridge-lambda-target-without-invoke-permission-dead-letters-rds-event", "deployments": [], "key": "events__lambda__rds__sqs/xsvc-rds-3-eventbridge-lambda-target-without-invoke-permission-dead-letters-rds-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:ModifyDBParameterGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__rds__sqs/check_xsvc_rds_3_eventbridge_lambda_target_without_invoke_permission_dead_letters_rds_event.py", "service": "events__lambda__rds__sqs"} {"check_id": "events__lambda__s3.cfn-deploy-s3-lambda-notification", "deployments": ["behavioral/events__lambda__s3/deployments/s3-lambda-notification-cfn.yaml"], "key": "events__lambda__s3/cfn-deploy-s3-lambda-notification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/events__lambda__s3/check_cfn_deploy_s3_lambda_notification.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.eventbridge-event-payload-format-to-lambda", "deployments": [], "key": "events__lambda__s3/eventbridge-event-payload-format-to-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__s3/check_eventbridge_event_payload_format_to_lambda.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.eventbridge-lambda-failure-routes-to-dlq", "deployments": [], "key": "events__lambda__s3/eventbridge-lambda-failure-routes-to-dlq", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__s3/check_eventbridge_lambda_failure_routes_to_dlq.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.eventbridge-pattern-mismatch-suppressed", "deployments": [], "key": "events__lambda__s3/eventbridge-pattern-mismatch-suppressed", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__s3/check_eventbridge_pattern_mismatch_suppressed.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.eventbridge-rule-invokes-lambda-target", "deployments": [], "key": "events__lambda__s3/eventbridge-rule-invokes-lambda-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__s3/check_eventbridge_rule_invokes_lambda_target.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.eventbridge-target-missing-lambda-permission-not-invoked", "deployments": [], "key": "events__lambda__s3/eventbridge-target-missing-lambda-permission-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__s3/check_eventbridge_target_missing_lambda_permission_not_invoked.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.eventbridge-target-qualified-arn-resolution", "deployments": [], "key": "events__lambda__s3/eventbridge-target-qualified-arn-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__s3/check_eventbridge_target_qualified_arn_resolution.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.lambda-putevents-triggers-downstream-rule", "deployments": [], "key": "events__lambda__s3/lambda-putevents-triggers-downstream-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__s3/check_lambda_putevents_triggers_downstream_rule.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.lambda-rejects-role-without-lambda-trust", "deployments": [], "key": "events__lambda__s3/lambda-rejects-role-without-lambda-trust", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/events__lambda__s3/check_lambda_rejects_role_without_lambda_trust.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.lambda-role-missing-s3-permission-denied", "deployments": [], "key": "events__lambda__s3/lambda-role-missing-s3-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/events__lambda__s3/check_lambda_role_missing_s3_permission_denied.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.s3-event-payload-format-to-lambda", "deployments": [], "key": "events__lambda__s3/s3-event-payload-format-to-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/events__lambda__s3/check_s3_event_payload_format_to_lambda.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.s3-notification-missing-permission-rejected", "deployments": [], "key": "events__lambda__s3/s3-notification-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__s3/check_s3_notification_missing_permission_rejected.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.s3-notification-suffix-filter", "deployments": [], "key": "events__lambda__s3/s3-notification-suffix-filter", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/events__lambda__s3/check_s3_notification_suffix_filter.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.s3-object-created-invokes-lambda", "deployments": [], "key": "events__lambda__s3/s3-object-created-invokes-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/events__lambda__s3/check_s3_object_created_invokes_lambda.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3.s3-to-eventbridge-to-lambda-pipeline", "deployments": [], "key": "events__lambda__s3/s3-to-eventbridge-to-lambda-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/events__lambda__s3/check_s3_to_eventbridge_to_lambda_pipeline.py", "service": "events__lambda__s3"} {"check_id": "events__lambda__s3__stepfunctions.cfn-deploy-eventbridge-fanout-lambda-sfn-stack", "deployments": [], "key": "events__lambda__s3__stepfunctions/cfn-deploy-eventbridge-fanout-lambda-sfn-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_cfn_deploy_eventbridge_fanout_lambda_sfn_stack.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.cfn-deploy-eventbridge-target-role-missing-trust-negative", "deployments": [], "key": "events__lambda__s3__stepfunctions/cfn-deploy-eventbridge-target-role-missing-trust-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "iam:UpdateAssumeRolePolicy", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_cfn_deploy_eventbridge_target_role_missing_trust_negative.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.cfn-deploy-lambda-role-missing-events-permission-negative", "deployments": [], "key": "events__lambda__s3__stepfunctions/cfn-deploy-lambda-role-missing-events-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:Invoke", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/events__lambda__s3__stepfunctions/check_cfn_deploy_lambda_role_missing_events_permission_negative.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.cfn-deploy-sfn-task-token-lambda-callback-stack", "deployments": [], "key": "events__lambda__s3__stepfunctions/cfn-deploy-sfn-task-token-lambda-callback-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_cfn_deploy_sfn_task_token_lambda_callback_stack.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.eventbridge-fanout-partial-failure-other-target-still-invoked", "deployments": [], "key": "events__lambda__s3__stepfunctions/eventbridge-fanout-partial-failure-other-target-still-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_eventbridge_fanout_partial_failure_other_target_still_invoked.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.eventbridge-fanout-single-event-invokes-lambda-and-sfn", "deployments": [], "key": "events__lambda__s3__stepfunctions/eventbridge-fanout-single-event-invokes-lambda-and-sfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_eventbridge_fanout_single_event_invokes_lambda_and_sfn.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.eventbridge-rule-multiple-targets-independent-delivery-tracking", "deployments": [], "key": "events__lambda__s3__stepfunctions/eventbridge-rule-multiple-targets-independent-delivery-tracking", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_eventbridge_rule_multiple_targets_independent_delivery_tracking.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.eventbridge-target-role-wrong-trust-blocks-sfn-start", "deployments": [], "key": "events__lambda__s3__stepfunctions/eventbridge-target-role-wrong-trust-blocks-sfn-start", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_eventbridge_target_role_wrong_trust_blocks_sfn_start.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.events-destination-config-stepfunctions-notification-format", "deployments": [], "key": "events__lambda__s3__stepfunctions/events-destination-config-stepfunctions-notification-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_events_destination_config_stepfunctions_notification_format.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.lambda-sdk-putevents-custom-detailtype-triggers-sfn", "deployments": [], "key": "events__lambda__s3__stepfunctions/lambda-sdk-putevents-custom-detailtype-triggers-sfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_lambda_sdk_putevents_custom_detailtype_triggers_sfn.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.lambda-sdk-putevents-denied-without-permission", "deployments": [], "key": "events__lambda__s3__stepfunctions/lambda-sdk-putevents-denied-without-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__s3__stepfunctions/check_lambda_sdk_putevents_denied_without_permission.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.lambda-sdk-putevents-triggers-rule", "deployments": [], "key": "events__lambda__s3__stepfunctions/lambda-sdk-putevents-triggers-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__s3__stepfunctions/check_lambda_sdk_putevents_triggers_rule.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.lambda-sdk-startexecution-denied-without-permission", "deployments": [], "key": "events__lambda__s3__stepfunctions/lambda-sdk-startexecution-denied-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_lambda_sdk_startexecution_denied_without_permission.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.lambda-sdk-startexecution-via-stepfunctions", "deployments": [], "key": "events__lambda__s3__stepfunctions/lambda-sdk-startexecution-via-stepfunctions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_lambda_sdk_startexecution_via_stepfunctions.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.lambda-sdk-stopexecution-via-stepfunctions", "deployments": [], "key": "events__lambda__s3__stepfunctions/lambda-sdk-stopexecution-via-stepfunctions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_lambda_sdk_stopexecution_via_stepfunctions.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.lambda-task-sfn-resultpath-merges-with-original-input", "deployments": [], "key": "events__lambda__s3__stepfunctions/lambda-task-sfn-resultpath-merges-with-original-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_lambda_task_sfn_resultpath_merges_with_original_input.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.s3-upload-lambda-putevents-blocked-without-events-permission", "deployments": [], "key": "events__lambda__s3__stepfunctions/s3-upload-lambda-putevents-blocked-without-events-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__s3__stepfunctions/check_s3_upload_lambda_putevents_blocked_without_events_permission.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.s3-upload-triggers-lambda-then-putevents-starts-sfn", "deployments": [], "key": "events__lambda__s3__stepfunctions/s3-upload-triggers-lambda-then-putevents-starts-sfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__s3__stepfunctions/check_s3_upload_triggers_lambda_then_putevents_starts_sfn.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.s3-write-eventbridge-rule-missing-startexecution-permission", "deployments": [], "key": "events__lambda__s3__stepfunctions/s3-write-eventbridge-rule-missing-startexecution-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_s3_write_eventbridge_rule_missing_startexecution_permission.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.s3-write-triggers-eventbridge-rule-to-stepfunctions", "deployments": [], "key": "events__lambda__s3__stepfunctions/s3-write-triggers-eventbridge-rule-to-stepfunctions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__s3__stepfunctions/check_s3_write_triggers_eventbridge_rule_to_stepfunctions.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.sfn-execution-role-wrong-trust-blocks-lambda-task", "deployments": [], "key": "events__lambda__s3__stepfunctions/sfn-execution-role-wrong-trust-blocks-lambda-task", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_sfn_execution_role_wrong_trust_blocks_lambda_task.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.sfn-startexecution-input-passthrough-to-lambda-task", "deployments": [], "key": "events__lambda__s3__stepfunctions/sfn-startexecution-input-passthrough-to-lambda-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_sfn_startexecution_input_passthrough_to_lambda_task.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.sfn-task-lambda-s3-write-denied-without-permission", "deployments": [], "key": "events__lambda__s3__stepfunctions/sfn-task-lambda-s3-write-denied-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_sfn_task_lambda_s3_write_denied_without_permission.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.sfn-task-lambda-writes-result-to-s3", "deployments": [], "key": "events__lambda__s3__stepfunctions/sfn-task-lambda-writes-result-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_sfn_task_lambda_writes_result_to_s3.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.sfn-task-token-heartbeat-timeout-fails-execution", "deployments": [], "key": "events__lambda__s3__stepfunctions/sfn-task-token-heartbeat-timeout-fails-execution", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_sfn_task_token_heartbeat_timeout_fails_execution.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.sfn-task-token-lambda-missing-sendtask-permission-blocks-resume", "deployments": [], "key": "events__lambda__s3__stepfunctions/sfn-task-token-lambda-missing-sendtask-permission-blocks-resume", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_sfn_task_token_lambda_missing_sendtask_permission_blocks_resume.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.sfn-waitfortasktoken-lambda-sendtaskfailure-fails-execution", "deployments": [], "key": "events__lambda__s3__stepfunctions/sfn-waitfortasktoken-lambda-sendtaskfailure-fails-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_sfn_waitfortasktoken_lambda_sendtaskfailure_fails_execution.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__s3__stepfunctions.sfn-waitfortasktoken-lambda-sendtasksuccess-resumes", "deployments": [], "key": "events__lambda__s3__stepfunctions/sfn-waitfortasktoken-lambda-sendtasksuccess-resumes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__s3__stepfunctions/check_sfn_waitfortasktoken_lambda_sendtasksuccess_resumes.py", "service": "events__lambda__s3__stepfunctions"} {"check_id": "events__lambda__sns.cdk-deploy-eventbridge-rule-to-sns-topic-invokes-subscribed-lambda", "deployments": ["behavioral/events__lambda__sns/deployments/eventbridge_sns_lambda_cdk/app.py", "behavioral/events__lambda__sns/deployments/eventbridge_sns_lambda_cdk/cdk.json"], "key": "events__lambda__sns/cdk-deploy-eventbridge-rule-to-sns-topic-invokes-subscribed-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:DescribeEventBus", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sns/check_cdk_deploy_eventbridge_rule_to_sns_topic_invokes_subscribed_lambda.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.cdk-deploy-sns-lambda-filter-policy-delivers-only-matching-attributes", "deployments": ["behavioral/events__lambda__sns/deployments/sns_lambda_filter_cdk/app.py", "behavioral/events__lambda__sns/deployments/sns_lambda_filter_cdk/cdk.json"], "key": "events__lambda__sns/cdk-deploy-sns-lambda-filter-policy-delivers-only-matching-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sns/check_cdk_deploy_sns_lambda_filter_policy_delivers_only_matching_attributes.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.cdk-deploy-sns-lambda-subscription-missing-permission", "deployments": ["behavioral/events__lambda__sns/deployments/sns_lambda_cdk/app.py", "behavioral/events__lambda__sns/deployments/sns_lambda_cdk/cdk.json"], "key": "events__lambda__sns/cdk-deploy-sns-lambda-subscription-missing-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:Publish", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sns/check_cdk_deploy_sns_lambda_subscription_missing_permission.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.cdk-deploy-sns-lambda-subscription-notification", "deployments": ["behavioral/events__lambda__sns/deployments/sns_lambda_cdk/app.py", "behavioral/events__lambda__sns/deployments/sns_lambda_cdk/cdk.json"], "key": "events__lambda__sns/cdk-deploy-sns-lambda-subscription-notification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole", "iam:PutRolePolicy", "lambda:GetFunction", "lambda:Invoke", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sns/check_cdk_deploy_sns_lambda_subscription_notification.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.cfn-deploy-eventbridge-fanout-lambda-sns", "deployments": [], "key": "events__lambda__sns/cfn-deploy-eventbridge-fanout-lambda-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sns/check_cfn_deploy_eventbridge_fanout_lambda_sns.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.cfn-deploy-eventbridge-lambda-target-missing-permission", "deployments": [], "key": "events__lambda__sns/cfn-deploy-eventbridge-lambda-target-missing-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sns/check_cfn_deploy_eventbridge_lambda_target_missing_permission.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.eventbridge-fanout-both-targets-denied-no-delivery", "deployments": [], "key": "events__lambda__sns/eventbridge-fanout-both-targets-denied-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns/check_eventbridge_fanout_both_targets_denied_no_delivery.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.eventbridge-fanout-lambda-denied-sns-still-delivered", "deployments": [], "key": "events__lambda__sns/eventbridge-fanout-lambda-denied-sns-still-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns/check_eventbridge_fanout_lambda_denied_sns_still_delivered.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.eventbridge-rule-fanout-lambda-sns-simultaneous", "deployments": [], "key": "events__lambda__sns/eventbridge-rule-fanout-lambda-sns-simultaneous", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns/check_eventbridge_rule_fanout_lambda_sns_simultaneous.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.eventbridge-rule-target-lambda-arn-invoke", "deployments": [], "key": "events__lambda__sns/eventbridge-rule-target-lambda-arn-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/events__lambda__sns/check_eventbridge_rule_target_lambda_arn_invoke.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.eventbridge-rule-target-sns-arn-publish", "deployments": [], "key": "events__lambda__sns/eventbridge-rule-target-sns-arn-publish", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns/check_eventbridge_rule_target_sns_arn_publish.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.eventbridge-sns-target-missing-topic-policy-not-published", "deployments": [], "key": "events__lambda__sns/eventbridge-sns-target-missing-topic-policy-not-published", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns/check_eventbridge_sns_target_missing_topic_policy_not_published.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.events-rule-notification-lambda-destination-delivery", "deployments": [], "key": "events__lambda__sns/events-rule-notification-lambda-destination-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/events__lambda__sns/check_events_rule_notification_lambda_destination_delivery.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.events-rule-notification-sns-destination-delivery", "deployments": [], "key": "events__lambda__sns/events-rule-notification-sns-destination-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetSubscriptionAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns/check_events_rule_notification_sns_destination_delivery.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.iam-role-trusts-events-service-assumed", "deployments": [], "key": "events__lambda__sns/iam-role-trusts-events-service-assumed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards"], "path": "behavioral/events__lambda__sns/check_iam_role_trusts_events_service_assumed.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.iam-role-trusts-lambda-service-assumed", "deployments": [], "key": "events__lambda__sns/iam-role-trusts-lambda-service-assumed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/events__lambda__sns/check_iam_role_trusts_lambda_service_assumed.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.iam-role-trusts-sns-service-assumed", "deployments": [], "key": "events__lambda__sns/iam-role-trusts-sns-service-assumed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sns/check_iam_role_trusts_sns_service_assumed.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.iam-role-wrong-principal-events-trust-rejected", "deployments": [], "key": "events__lambda__sns/iam-role-wrong-principal-events-trust-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns/check_iam_role_wrong_principal_events_trust_rejected.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.iam-role-wrong-principal-sns-trust-rejected", "deployments": [], "key": "events__lambda__sns/iam-role-wrong-principal-sns-trust-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sns/check_iam_role_wrong_principal_sns_trust_rejected.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.lambda-role-missing-events-permission-putevents-denied", "deployments": [], "key": "events__lambda__sns/lambda-role-missing-events-permission-putevents-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns/check_lambda_role_missing_events_permission_putevents_denied.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.sns-lambda-subscription-missing-permission-not-invoked", "deployments": [], "key": "events__lambda__sns/sns-lambda-subscription-missing-permission-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/events__lambda__sns/check_sns_lambda_subscription_missing_permission_not_invoked.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns.sns-lambda-subscription-notification-delivery", "deployments": [], "key": "events__lambda__sns/sns-lambda-subscription-notification-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/events__lambda__sns/check_sns_lambda_subscription_notification_delivery.py", "service": "events__lambda__sns"} {"check_id": "events__lambda__sns__sqs.cfn-sns-sqs-subscription-delivers", "deployments": [], "key": "events__lambda__sns__sqs/cfn-sns-sqs-subscription-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sns__sqs/check_cfn_sns_sqs_subscription_delivers.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.eventbridge-fanout-lambda-sns-sqs", "deployments": [], "key": "events__lambda__sns__sqs/eventbridge-fanout-lambda-sns-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns__sqs/check_eventbridge_fanout_lambda_sns_sqs.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.eventbridge-lambda-missing-resource-policy", "deployments": [], "key": "events__lambda__sns__sqs/eventbridge-lambda-missing-resource-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__sns__sqs/check_eventbridge_lambda_missing_resource_policy.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.eventbridge-lambda-rule-matching", "deployments": [], "key": "events__lambda__sns__sqs/eventbridge-lambda-rule-matching", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:Scan", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__sns__sqs/check_eventbridge_lambda_rule_matching.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.eventbridge-sns-rule", "deployments": [], "key": "events__lambda__sns__sqs/eventbridge-sns-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns__sqs/check_eventbridge_sns_rule.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.eventbridge-sqs-rule-matching", "deployments": [], "key": "events__lambda__sns__sqs/eventbridge-sqs-rule-matching", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns__sqs/check_eventbridge_sqs_rule_matching.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.iam-trust-lambda-wrong-principal", "deployments": [], "key": "events__lambda__sns__sqs/iam-trust-lambda-wrong-principal", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/events__lambda__sns__sqs/check_iam_trust_lambda_wrong_principal.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.lambda-sdk-publish-to-sns", "deployments": [], "key": "events__lambda__sns__sqs/lambda-sdk-publish-to-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns__sqs/check_lambda_sdk_publish_to_sns.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.lambda-sdk-publish-to-sns-missing-permission", "deployments": [], "key": "events__lambda__sns__sqs/lambda-sdk-publish-to-sns-missing-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns__sqs/check_lambda_sdk_publish_to_sns_missing_permission.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.lambda-sdk-putevents-to-bus", "deployments": [], "key": "events__lambda__sns__sqs/lambda-sdk-putevents-to-bus", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns__sqs/check_lambda_sdk_putevents_to_bus.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.lambda-sdk-sendmessage-to-sqs", "deployments": [], "key": "events__lambda__sns__sqs/lambda-sdk-sendmessage-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sns__sqs/check_lambda_sdk_sendmessage_to_sqs.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.sns-lambda-notification", "deployments": [], "key": "events__lambda__sns__sqs/sns-lambda-notification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/events__lambda__sns__sqs/check_sns_lambda_notification.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.sns-sqs-filter-policy-suppresses-non-matching", "deployments": [], "key": "events__lambda__sns__sqs/sns-sqs-filter-policy-suppresses-non-matching", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns__sqs/check_sns_sqs_filter_policy_suppresses_non_matching.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.sns-sqs-notification", "deployments": [], "key": "events__lambda__sns__sqs/sns-sqs-notification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sns__sqs/check_sns_sqs_notification.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.sqs-lambda-esm-delivers", "deployments": [], "key": "events__lambda__sns__sqs/sqs-lambda-esm-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/events__lambda__sns__sqs/check_sqs_lambda_esm_delivers.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sns__sqs.sqs-lambda-esm-missing-permission", "deployments": [], "key": "events__lambda__sns__sqs/sqs-lambda-esm-missing-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sns__sqs/check_sqs_lambda_esm_missing_permission.py", "service": "events__lambda__sns__sqs"} {"check_id": "events__lambda__sqs.a-failing-sibling-targets-retries-do-not-redeliver-to-the-target-that-succeeded", "deployments": [], "key": "events__lambda__sqs/a-failing-sibling-targets-retries-do-not-redeliver-to-the-target-that-succeeded", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionCode", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_a_failing_sibling_targets_retries_do_not_redeliver_to_the_target_that_succeeded.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cfn-deploy-eventbridge-rule-lambda-target", "deployments": ["behavioral/events__lambda__sqs/deployments/eventbridge-lambda.yaml"], "key": "events__lambda__sqs/cfn-deploy-eventbridge-rule-lambda-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:ListTargetsByRule", "events:PutEvents", "lambda:GetPolicy", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_cfn_deploy_eventbridge_rule_lambda_target.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cfn-deploy-eventbridge-rule-missing-sqs-policy-no-delivery", "deployments": [], "key": "events__lambda__sqs/cfn-deploy-eventbridge-rule-missing-sqs-policy-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_cfn_deploy_eventbridge_rule_missing_sqs_policy_no_delivery.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cfn-deploy-eventbridge-rule-sqs-target-with-policy", "deployments": [], "key": "events__lambda__sqs/cfn-deploy-eventbridge-rule-sqs-target-with-policy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_cfn_deploy_eventbridge_rule_sqs_target_with_policy.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cfn-deploy-sqs-lambda-event-source-mapping", "deployments": [], "key": "events__lambda__sqs/cfn-deploy-sqs-lambda-event-source-mapping", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetEventSourceMapping", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_cfn_deploy_sqs_lambda_event_source_mapping.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cfn-iam-role-trusts-events-service-principal", "deployments": [], "key": "events__lambda__sqs/cfn-iam-role-trusts-events-service-principal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards"], "path": "behavioral/events__lambda__sqs/check_cfn_iam_role_trusts_events_service_principal.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cfn-iam-role-trusts-lambda-service-principal", "deployments": [], "key": "events__lambda__sqs/cfn-iam-role-trusts-lambda-service-principal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/events__lambda__sqs/check_cfn_iam_role_trusts_lambda_service_principal.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cfn-iam-role-trusts-sqs-service-principal", "deployments": [], "key": "events__lambda__sqs/cfn-iam-role-trusts-sqs-service-principal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_cfn_iam_role_trusts_sqs_service_principal.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cfn-iam-role-wrong-principal-lambda-cannot-assume", "deployments": [], "key": "events__lambda__sqs/cfn-iam-role-wrong-principal-lambda-cannot-assume", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__sqs/check_cfn_iam_role_wrong_principal_lambda_cannot_assume.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cli-create-event-source-mapping-sqs-lambda", "deployments": [], "key": "events__lambda__sqs/cli-create-event-source-mapping-sqs-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_cli_create_event_source_mapping_sqs_lambda.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cli-delete-event-source-mapping-stops-polling", "deployments": [], "key": "events__lambda__sqs/cli-delete-event-source-mapping-stops-polling", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_cli_delete_event_source_mapping_stops_polling.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cli-eventbridge-remove-targets-stops-delivery-negative", "deployments": [], "key": "events__lambda__sqs/cli-eventbridge-remove-targets-stops-delivery-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_cli_eventbridge_remove_targets_stops_delivery_negative.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cli-lambda-add-permission-for-eventbridge-invoke", "deployments": [], "key": "events__lambda__sqs/cli-lambda-add-permission-for-eventbridge-invoke", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_cli_lambda_add_permission_for_eventbridge_invoke.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cli-put-rule-put-targets-lambda-sqs-fanout", "deployments": [], "key": "events__lambda__sqs/cli-put-rule-put-targets-lambda-sqs-fanout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_cli_put_rule_put_targets_lambda_sqs_fanout.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cli-sqs-missing-queue-policy-put-targets-succeeds-but-no-delivery", "deployments": [], "key": "events__lambda__sqs/cli-sqs-missing-queue-policy-put-targets-succeeds-but-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_cli_sqs_missing_queue_policy_put_targets_succeeds_but_no_delivery.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.cli-update-sqs-queue-policy-enables-eventbridge-delivery", "deployments": [], "key": "events__lambda__sqs/cli-update-sqs-queue-policy-enables-eventbridge-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_cli_update_sqs_queue_policy_enables_eventbridge_delivery.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.dotnet-eventbridge-rule-event-fields-reach-handler-via-onsuccess-destination", "deployments": [], "key": "events__lambda__sqs/dotnet-eventbridge-rule-event-fields-reach-handler-via-onsuccess-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:PutFunctionEventInvokeConfig", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_dotnet_eventbridge_rule_event_fields_reach_handler_via_onsuccess_destination.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-custom-bus-isolation", "deployments": [], "key": "events__lambda__sqs/eventbridge-custom-bus-isolation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_custom_bus_isolation.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-event-envelope-format-to-lambda", "deployments": [], "key": "events__lambda__sqs/eventbridge-event-envelope-format-to-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_eventbridge_event_envelope_format_to_lambda.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-fanout-lambda-and-sqs", "deployments": [], "key": "events__lambda__sqs/eventbridge-fanout-lambda-and-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_fanout_lambda_and_sqs.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-lambda-sourcearn-condition-arn-resolution", "deployments": [], "key": "events__lambda__sqs/eventbridge-lambda-sourcearn-condition-arn-resolution", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_lambda_sourcearn_condition_arn_resolution.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-lambda-target-missing-permission-dlq", "deployments": [], "key": "events__lambda__sqs/eventbridge-lambda-target-missing-permission-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_lambda_target_missing_permission_dlq.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-lambda-target-without-resource-policy-no-invoke", "deployments": [], "key": "events__lambda__sqs/eventbridge-lambda-target-without-resource-policy-no-invoke", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_lambda_target_without_resource_policy_no_invoke.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-multiple-rules-single-event-fanout", "deployments": [], "key": "events__lambda__sqs/eventbridge-multiple-rules-single-event-fanout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_multiple_rules_single_event_fanout.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-pattern-filtering-excludes-non-matching", "deployments": [], "key": "events__lambda__sqs/eventbridge-pattern-filtering-excludes-non-matching", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_pattern_filtering_excludes_non_matching.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-pattern-match-and-mismatch", "deployments": [], "key": "events__lambda__sqs/eventbridge-pattern-match-and-mismatch", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_pattern_match_and_mismatch.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-disabled-state-blocks-delivery", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-disabled-state-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_disabled_state_blocks_delivery.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-dlq-on-failed-lambda-invoke", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-dlq-on-failed-lambda-invoke", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_dlq_on_failed_lambda_invoke.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-event-pattern-content-filtering-sqs", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-event-pattern-content-filtering-sqs", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_event_pattern_content_filtering_sqs.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-input-transformer-reshapes-lambda-payload", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-input-transformer-reshapes-lambda-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_input_transformer_reshapes_lambda_payload.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-input-transformer-reshapes-sqs-payload", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-input-transformer-reshapes-sqs-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_input_transformer_reshapes_sqs_payload.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-invokes-lambda-target", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-invokes-lambda-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_invokes_lambda_target.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-on-detail-content-invokes-lambda-only-for-the-matching-entry", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-on-detail-content-invokes-lambda-only-for-the-matching-entry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_on_detail_content_invokes_lambda_only_for_the_matching_entry.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-sends-to-sqs-target", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-sends-to-sqs-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_sends_to_sqs_target.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-sqs-lambda-nested-detail-survives-to-dynamodb", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-sqs-lambda-nested-detail-survives-to-dynamodb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_sqs_lambda_nested_detail_survives_to_dynamodb.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-rule-targeting-a-lambda-alias-invokes-the-aliased-version", "deployments": [], "key": "events__lambda__sqs/eventbridge-rule-targeting-a-lambda-alias-invokes-the-aliased-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListRules", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_rule_targeting_a_lambda_alias_invokes_the_aliased_version.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-schedule-expression-triggers-lambda", "deployments": [], "key": "events__lambda__sqs/eventbridge-schedule-expression-triggers-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_schedule_expression_triggers_lambda.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-sqs-queue-policy-wrong-principal-blocks-delivery", "deployments": [], "key": "events__lambda__sqs/eventbridge-sqs-queue-policy-wrong-principal-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_sqs_queue_policy_wrong_principal_blocks_delivery.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-sqs-target-arn-must-match-queue-arn", "deployments": [], "key": "events__lambda__sqs/eventbridge-sqs-target-arn-must-match-queue-arn", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_sqs_target_arn_must_match_queue_arn.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-sqs-target-missing-queue-policy-dlq", "deployments": [], "key": "events__lambda__sqs/eventbridge-sqs-target-missing-queue-policy-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_sqs_target_missing_queue_policy_dlq.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-sqs-target-without-queue-policy-no-delivery", "deployments": [], "key": "events__lambda__sqs/eventbridge-sqs-target-without-queue-policy-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_sqs_target_without_queue_policy_no_delivery.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-to-lambda-to-sqs-chain", "deployments": [], "key": "events__lambda__sqs/eventbridge-to-lambda-to-sqs-chain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_eventbridge_to_lambda_to_sqs_chain.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.eventbridge-to-sqs-message-body-is-full-event", "deployments": [], "key": "events__lambda__sqs/eventbridge-to-sqs-message-body-is-full-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_eventbridge_to_sqs_message_body_is_full_event.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.events-delivery-and-failure-deleted-lambda-target-dead-letters-as-no-permissions", "deployments": [], "key": "events__lambda__sqs/events-delivery-and-failure-deleted-lambda-target-dead-letters-as-no-permissions", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_events_delivery_and_failure_deleted_lambda_target_dead_letters_as_no_permissions.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.events-delivery-and-failure-event-age-limit-dead-letters-without-further-attempts", "deployments": [], "key": "events__lambda__sqs/events-delivery-and-failure-event-age-limit-dead-letters-without-further-attempts", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteRule", "events:DescribeConnection", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_events_delivery_and_failure_event_age_limit_dead_letters_without_further_attempts.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.events-rule-sqs-esm-lambda-pipeline", "deployments": [], "key": "events__lambda__sqs/events-rule-sqs-esm-lambda-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:DescribeRule", "events:ListEventBuses", "events:ListRules", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_events_rule_sqs_esm_lambda_pipeline.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.java-eventbridge-rule-event-reaches-the-handler", "deployments": [], "key": "events__lambda__sqs/java-eventbridge-rule-event-reaches-the-handler", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_java_eventbridge_rule_event_reaches_the_handler.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-esm-dlq-on-repeated-failure", "deployments": [], "key": "events__lambda__sqs/lambda-esm-dlq-on-repeated-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_esm_dlq_on_repeated_failure.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-putevents-missing-permission-denied", "deployments": [], "key": "events__lambda__sqs/lambda-putevents-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_putevents_missing_permission_denied.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-putevents-triggers-downstream-rule-chain", "deployments": [], "key": "events__lambda__sqs/lambda-putevents-triggers-downstream-rule-chain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_putevents_triggers_downstream_rule_chain.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-role-missing-sqs-permissions-blocks-poll", "deployments": [], "key": "events__lambda__sqs/lambda-role-missing-sqs-permissions-blocks-poll", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_lambda_role_missing_sqs_permissions_blocks_poll.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-role-without-events-putevents-permission-denied", "deployments": [], "key": "events__lambda__sqs/lambda-role-without-events-putevents-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_role_without_events_putevents_permission_denied.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-role-without-sqs-sendmessage-permission-denied", "deployments": [], "key": "events__lambda__sqs/lambda-role-without-sqs-sendmessage-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_lambda_role_without_sqs_sendmessage_permission_denied.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-call-sqs-missing-permission-denied", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-call-sqs-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_call_sqs_missing_permission_denied.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-call-sqs-send-message-success", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-call-sqs-send-message-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_call_sqs_send_message_success.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-events-describerule-missing-permission-denied", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-events-describerule-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_events_describerule_missing_permission_denied.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-putevents-custom-bus-triggers-downstream-rule", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-putevents-custom-bus-triggers-downstream-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_putevents_custom_bus_triggers_downstream_rule.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-putevents-missing-permission-denied", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-putevents-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_putevents_missing_permission_denied.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-sqs-batch-sendmessage-delivers-all", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-sqs-batch-sendmessage-delivers-all", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_sqs_batch_sendmessage_delivers_all.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-sqs-changemessagevisibility-extends-lock", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-sqs-changemessagevisibility-extends-lock", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_sqs_changemessagevisibility_extends_lock.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-sqs-deletemessage-after-processing", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-sqs-deletemessage-after-processing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_sqs_deletemessage_after_processing.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sdk-sqs-receivemessage-missing-permission-denied", "deployments": [], "key": "events__lambda__sqs/lambda-sdk-sqs-receivemessage-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_lambda_sdk_sqs_receivemessage_missing_permission_denied.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-sqs-partial-batch-failure-reporting", "deployments": [], "key": "events__lambda__sqs/lambda-sqs-partial-batch-failure-reporting", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_sqs_partial_batch_failure_reporting.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-to-eventbridge-to-sqs-chain", "deployments": [], "key": "events__lambda__sqs/lambda-to-eventbridge-to-sqs-chain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_to_eventbridge_to_sqs_chain.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.lambda-without-sqs-permission-esm-creation-fails", "deployments": [], "key": "events__lambda__sqs/lambda-without-sqs-permission-esm-creation-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_lambda_without_sqs_permission_esm_creation_fails.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.ruby-eventbridge-rule-matched-event-reaches-the-handler", "deployments": [], "key": "events__lambda__sqs/ruby-eventbridge-rule-matched-event-reaches-the-handler", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs/check_ruby_eventbridge_rule_matched_event_reaches_the_handler.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-esm-batch-size-controls-invocation-count", "deployments": [], "key": "events__lambda__sqs/sqs-esm-batch-size-controls-invocation-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_esm_batch_size_controls_invocation_count.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-esm-disabled-mapping-stops-delivery", "deployments": [], "key": "events__lambda__sqs/sqs-esm-disabled-mapping-stops-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_esm_disabled_mapping_stops_delivery.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-esm-dlq-redrive-after-max-receive", "deployments": [], "key": "events__lambda__sqs/sqs-esm-dlq-redrive-after-max-receive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_esm_dlq_redrive_after_max_receive.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-esm-partial-batch-failure-retries-only-failed", "deployments": [], "key": "events__lambda__sqs/sqs-esm-partial-batch-failure-retries-only-failed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_esm_partial_batch_failure_retries_only_failed.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-esm-visibility-timeout-extends-during-processing", "deployments": [], "key": "events__lambda__sqs/sqs-esm-visibility-timeout-extends-during-processing", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_esm_visibility_timeout_extends_during_processing.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-esm-wrong-queue-arn-no-mapping-created", "deployments": [], "key": "events__lambda__sqs/sqs-esm-wrong-queue-arn-no-mapping-created", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_sqs_esm_wrong_queue_arn_no_mapping_created.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-fifo-esm-preserves-message-group-order", "deployments": [], "key": "events__lambda__sqs/sqs-fifo-esm-preserves-message-group-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_fifo_esm_preserves_message_group_order.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-fifo-lambda-message-group-order-preserved", "deployments": [], "key": "events__lambda__sqs/sqs-fifo-lambda-message-group-order-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_fifo_lambda_message_group_order_preserved.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-lambda-event-source-mapping-basic", "deployments": [], "key": "events__lambda__sqs/sqs-lambda-event-source-mapping-basic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_lambda_event_source_mapping_basic.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-lambda-event-source-mapping-missing-role-permission-rejected", "deployments": [], "key": "events__lambda__sqs/sqs-lambda-event-source-mapping-missing-role-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_sqs_lambda_event_source_mapping_missing_role_permission_rejected.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-lambda-function-error-redrive-to-dlq", "deployments": [], "key": "events__lambda__sqs/sqs-lambda-function-error-redrive-to-dlq", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_lambda_function_error_redrive_to_dlq.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-lambda-partial-batch-failure-reprocessing", "deployments": [], "key": "events__lambda__sqs/sqs-lambda-partial-batch-failure-reprocessing", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_lambda_partial_batch_failure_reprocessing.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-queue-policy-explicit-deny-blocks-eventbridge-delivery", "deployments": [], "key": "events__lambda__sqs/sqs-queue-policy-explicit-deny-blocks-eventbridge-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs/check_sqs_queue_policy_explicit_deny_blocks_eventbridge_delivery.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.sqs-to-lambda-event-source-mapping", "deployments": [], "key": "events__lambda__sqs/sqs-to-lambda-event-source-mapping", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs/check_sqs_to_lambda_event_source_mapping.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.xsvc-lambda-1-durable-execution-timeout-emits-timed-out-status-change-to-sqs", "deployments": [], "key": "events__lambda__sqs/xsvc-lambda-1-durable-execution-timeout-emits-timed-out-status-change-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunction", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_xsvc_lambda_1_durable_execution_timeout_emits_timed_out_status_change_to_sqs.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.xsvc-lambda-1-durable-failed-status-rule-rejects-succeeded-executions", "deployments": [], "key": "events__lambda__sqs/xsvc-lambda-1-durable-failed-status-rule-rejects-succeeded-executions", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_xsvc_lambda_1_durable_failed_status_rule_rejects_succeeded_executions.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.xsvc-lambda-1-durable-status-change-running-then-succeeded-reaches-sqs", "deployments": [], "key": "events__lambda__sqs/xsvc-lambda-1-durable-status-change-running-then-succeeded-reaches-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunction", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_xsvc_lambda_1_durable_status_change_running_then_succeeded_reaches_sqs.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs.xsvc-lambda-1-durable-stop-emits-stopped-status-change-to-sqs", "deployments": [], "key": "events__lambda__sqs/xsvc-lambda-1-durable-stop-emits-stopped-status-change-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunction", "lambda:Invoke", "lambda:StopDurableExecution", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs/check_xsvc_lambda_1_durable_stop_emits_stopped_status_change_to_sqs.py", "service": "events__lambda__sqs"} {"check_id": "events__lambda__sqs__stepfunctions.eventbridge-fanout-lambda-sqs-sfn", "deployments": [], "key": "events__lambda__sqs__stepfunctions/eventbridge-fanout-lambda-sqs-sfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_eventbridge_fanout_lambda_sqs_sfn.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.eventbridge-pattern-mismatch-not-delivered", "deployments": [], "key": "events__lambda__sqs__stepfunctions/eventbridge-pattern-mismatch-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_eventbridge_pattern_mismatch_not_delivered.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.eventbridge-to-lambda-blocked-without-resource-policy", "deployments": [], "key": "events__lambda__sqs__stepfunctions/eventbridge-to-lambda-blocked-without-resource-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_eventbridge_to_lambda_blocked_without_resource_policy.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.eventbridge-to-lambda-invokes-with-resource-policy", "deployments": [], "key": "events__lambda__sqs__stepfunctions/eventbridge-to-lambda-invokes-with-resource-policy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_eventbridge_to_lambda_invokes_with_resource_policy.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.eventbridge-to-sfn-blocked-without-startexecution", "deployments": [], "key": "events__lambda__sqs__stepfunctions/eventbridge-to-sfn-blocked-without-startexecution", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_eventbridge_to_sfn_blocked_without_startexecution.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.eventbridge-to-sfn-starts-execution", "deployments": [], "key": "events__lambda__sqs__stepfunctions/eventbridge-to-sfn-starts-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_eventbridge_to_sfn_starts_execution.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.eventbridge-to-sqs-delivers-envelope", "deployments": [], "key": "events__lambda__sqs__stepfunctions/eventbridge-to-sqs-delivers-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_eventbridge_to_sqs_delivers_envelope.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.lambda-sdk-denied-without-role-permissions", "deployments": [], "key": "events__lambda__sqs__stepfunctions/lambda-sdk-denied-without-role-permissions", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_lambda_sdk_denied_without_role_permissions.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.sfn-task-invokes-lambda-propagates-payload", "deployments": [], "key": "events__lambda__sqs__stepfunctions/sfn-task-invokes-lambda-propagates-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_sfn_task_invokes_lambda_propagates_payload.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.sfn-task-lambda-fails-without-invoke-permission", "deployments": [], "key": "events__lambda__sqs__stepfunctions/sfn-task-lambda-fails-without-invoke-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_sfn_task_lambda_fails_without_invoke_permission.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.sfn-task-sqs-denied-without-permission", "deployments": [], "key": "events__lambda__sqs__stepfunctions/sfn-task-sqs-denied-without-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_sfn_task_sqs_denied_without_permission.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.sfn-task-sqs-sendmessage-delivers", "deployments": [], "key": "events__lambda__sqs__stepfunctions/sfn-task-sqs-sendmessage-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_sfn_task_sqs_sendmessage_delivers.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.sfn-waitfortasktoken-sqs-callback", "deployments": [], "key": "events__lambda__sqs__stepfunctions/sfn-waitfortasktoken-sqs-callback", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_sfn_waitfortasktoken_sqs_callback.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.sqs-to-lambda-esm-handler-error-returns-message", "deployments": [], "key": "events__lambda__sqs__stepfunctions/sqs-to-lambda-esm-handler-error-returns-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_sqs_to_lambda_esm_handler_error_returns_message.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.sqs-to-lambda-esm-preserves-attributes", "deployments": [], "key": "events__lambda__sqs__stepfunctions/sqs-to-lambda-esm-preserves-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_sqs_to_lambda_esm_preserves_attributes.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__sqs__stepfunctions.sqs-to-lambda-esm-rejects-role-without-receive", "deployments": [], "key": "events__lambda__sqs__stepfunctions/sqs-to-lambda-esm-rejects-role-without-receive", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/events__lambda__sqs__stepfunctions/check_sqs_to_lambda_esm_rejects_role_without_receive.py", "service": "events__lambda__sqs__stepfunctions"} {"check_id": "events__lambda__ssm.cfn-deploy-eventbridge-lambda-ssm-pipeline", "deployments": ["behavioral/events__lambda__ssm/deployments/eb-lambda-ssm-cfn/template.yaml"], "key": "events__lambda__ssm/cfn-deploy-eventbridge-lambda-ssm-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "ssm:GetParameter"], "path": "behavioral/events__lambda__ssm/check_cfn_deploy_eventbridge_lambda_ssm_pipeline.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.concurrent-lambda-invocations-update-ssm-parameter-versioning", "deployments": [], "key": "events__lambda__ssm/concurrent-lambda-invocations-update-ssm-parameter-versioning", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_concurrent_lambda_invocations_update_ssm_parameter_versioning.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.eventbridge-dlq-captures-failed-lambda-invocation", "deployments": [], "key": "events__lambda__ssm/eventbridge-dlq-captures-failed-lambda-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__ssm/check_eventbridge_dlq_captures_failed_lambda_invocation.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.eventbridge-fanout-two-lambda-targets-write-ssm", "deployments": [], "key": "events__lambda__ssm/eventbridge-fanout-two-lambda-targets-write-ssm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_eventbridge_fanout_two_lambda_targets_write_ssm.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.eventbridge-input-transformer-reshapes-event-for-lambda", "deployments": [], "key": "events__lambda__ssm/eventbridge-input-transformer-reshapes-event-for-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__ssm/check_eventbridge_input_transformer_reshapes_event_for_lambda.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.eventbridge-reserved-aws-source-rejected-custom-delivered", "deployments": [], "key": "events__lambda__ssm/eventbridge-reserved-aws-source-rejected-custom-delivered", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__ssm/check_eventbridge_reserved_aws_source_rejected_custom_delivered.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.eventbridge-rule-invokes-lambda-basic", "deployments": [], "key": "events__lambda__ssm/eventbridge-rule-invokes-lambda-basic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__ssm/check_eventbridge_rule_invokes_lambda_basic.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.eventbridge-rule-without-lambda-permission-blocks-invocation", "deployments": [], "key": "events__lambda__ssm/eventbridge-rule-without-lambda-permission-blocks-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__lambda__ssm/check_eventbridge_rule_without_lambda_permission_blocks_invocation.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.eventbridge-schedule-lambda-writes-ssm-parameter", "deployments": [], "key": "events__lambda__ssm/eventbridge-schedule-lambda-writes-ssm-parameter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_eventbridge_schedule_lambda_writes_ssm_parameter.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.eventbridge-source-arn-account-extraction", "deployments": [], "key": "events__lambda__ssm/eventbridge-source-arn-account-extraction", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__ssm/check_eventbridge_source_arn_account_extraction.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.lambda-events-putevents-wrong-bus-arn-denied", "deployments": [], "key": "events__lambda__ssm/lambda-events-putevents-wrong-bus-arn-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_lambda_events_putevents_wrong_bus_arn_denied.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.lambda-resolves-ssm-parameter-arn", "deployments": [], "key": "events__lambda__ssm/lambda-resolves-ssm-parameter-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_lambda_resolves_ssm_parameter_arn.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.lambda-ssm-get-nonexistent-parameter-error-propagates", "deployments": [], "key": "events__lambda__ssm/lambda-ssm-get-nonexistent-parameter-error-propagates", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_lambda_ssm_get_nonexistent_parameter_error_propagates.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.lambda-ssm-get-parameters-partial-batch", "deployments": [], "key": "events__lambda__ssm/lambda-ssm-get-parameters-partial-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_lambda_ssm_get_parameters_partial_batch.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.lambda-ssm-path-prefix-condition-restriction-denied", "deployments": [], "key": "events__lambda__ssm/lambda-ssm-path-prefix-condition-restriction-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_lambda_ssm_path_prefix_condition_restriction_denied.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.lambda-ssm-wrong-resource-arn-denied", "deployments": [], "key": "events__lambda__ssm/lambda-ssm-wrong-resource-arn-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_lambda_ssm_wrong_resource_arn_denied.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.lambda-without-events-permission-denied", "deployments": [], "key": "events__lambda__ssm/lambda-without-events-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/events__lambda__ssm/check_lambda_without_events_permission_denied.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.lambda-without-ssm-permission-denied", "deployments": [], "key": "events__lambda__ssm/lambda-without-ssm-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/events__lambda__ssm/check_lambda_without_ssm_permission_denied.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__ssm.ssm-parameter-change-triggers-lambda-via-eventbridge", "deployments": [], "key": "events__lambda__ssm/ssm-parameter-change-triggers-lambda-via-eventbridge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:PutParameter"], "path": "behavioral/events__lambda__ssm/check_ssm_parameter_change_triggers_lambda_via_eventbridge.py", "service": "events__lambda__ssm"} {"check_id": "events__lambda__stepfunctions.deep-sfn-3-http-task-deauthorized-connection-rejected", "deployments": [], "key": "events__lambda__stepfunctions/deep-sfn-3-http-task-deauthorized-connection-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateConnection", "events:DeauthorizeConnection", "events:DeleteConnection", "events:DescribeConnection", "events:UpdateConnection", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__stepfunctions/check_deep_sfn_3_http_task_deauthorized_connection_rejected.py", "service": "events__lambda__stepfunctions"} {"check_id": "events__lambda__stepfunctions.deep-sfn-3-http-task-echo-roundtrip", "deployments": [], "key": "events__lambda__stepfunctions/deep-sfn-3-http-task-echo-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__stepfunctions/check_deep_sfn_3_http_task_echo_roundtrip.py", "service": "events__lambda__stepfunctions"} {"check_id": "events__lambda__stepfunctions.deep-sfn-3-http-task-unknown-connection-rejected", "deployments": [], "key": "events__lambda__stepfunctions/deep-sfn-3-http-task-unknown-connection-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/events__lambda__stepfunctions/check_deep_sfn_3_http_task_unknown_connection_rejected.py", "service": "events__lambda__stepfunctions"} {"check_id": "events__logs.xsvc-logs-1-bus-info-logging-reaches-the-log-group-only-once-a-delivery-exists", "deployments": [], "key": "events__logs/xsvc-logs-1-bus-info-logging-reaches-the-log-group-only-once-a-delivery-exists", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:UpdateEventBus", "logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/events__logs/check_xsvc_logs_1_bus_info_logging_reaches_the_log_group_only_once_a_delivery_exists.py", "service": "events__logs"} {"check_id": "events__logs.xsvc-logs-1-bus-logging-include-detail-none-omits-the-event-detail", "deployments": [], "key": "events__logs/xsvc-logs-1-bus-logging-include-detail-none-omits-the-event-detail", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DescribeEventBus", "events:PutEvents", "logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/events__logs/check_xsvc_logs_1_bus_logging_include_detail_none_omits_the_event_detail.py", "service": "events__logs"} {"check_id": "events__logs.xsvc-logs-1-custom-bus-rule-writes-the-exact-event-envelope-to-a-log-group", "deployments": [], "key": "events__logs/xsvc-logs-1-custom-bus-rule-writes-the-exact-event-envelope-to-a-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/events__logs/check_xsvc_logs_1_custom_bus_rule_writes_the_exact_event_envelope_to_a_log_group.py", "service": "events__logs"} {"check_id": "events__logs.xsvc-logs-1-error-level-bus-log-records-the-no-permissions-invocation-failure", "deployments": [], "key": "events__logs/xsvc-logs-1-error-level-bus-log-records-the-no-permissions-invocation-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/events__logs/check_xsvc_logs_1_error_level_bus_log_records_the_no_permissions_invocation_failure.py", "service": "events__logs"} {"check_id": "events__logs.xsvc-logs-1-input-template-without-timestamp-and-message-not-delivered-to-log-group", "deployments": [], "key": "events__logs/xsvc-logs-1-input-template-without-timestamp-and-message-not-delivered-to-log-group", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutResourcePolicy"], "path": "behavioral/events__logs/check_xsvc_logs_1_input_template_without_timestamp_and_message_not_delivered_to_log_group.py", "service": "events__logs"} {"check_id": "events__logs.xsvc-logs-1-input-transformer-renders-message-and-event-time-into-the-log-record", "deployments": [], "key": "events__logs/xsvc-logs-1-input-transformer-renders-message-and-event-time-into-the-log-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutResourcePolicy"], "path": "behavioral/events__logs/check_xsvc_logs_1_input_transformer_renders_message_and_event_time_into_the_log_record.py", "service": "events__logs"} {"check_id": "events__logs.xsvc-logs-1-log-group-without-events-policy-not-delivered-and-counts-failed-invocations", "deployments": [], "key": "events__logs/xsvc-logs-1-log-group-without-events-policy-not-delivered-and-counts-failed-invocations", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutResourcePolicy"], "path": "behavioral/events__logs/check_xsvc_logs_1_log_group_without_events_policy_not_delivered_and_counts_failed_invocations.py", "service": "events__logs"} {"check_id": "events__logs.xsvc-logs-1-near-miss-detail-type-rule-not-delivered-to-its-log-group", "deployments": [], "key": "events__logs/xsvc-logs-1-near-miss-detail-type-rule-not-delivered-to-its-log-group", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutResourcePolicy"], "path": "behavioral/events__logs/check_xsvc_logs_1_near_miss_detail_type_rule_not_delivered_to_its_log_group.py", "service": "events__logs"} {"check_id": "events__rds__scheduler.xsvc-rds-scheduler-stop-db-instance-denied-without-permission-reaches-rds-with-it", "deployments": [], "key": "events__rds__scheduler/xsvc-rds-scheduler-stop-db-instance-denied-without-permission-reaches-rds-with-it", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/events__rds__scheduler/check_xsvc_rds_scheduler_stop_db_instance_denied_without_permission_reaches_rds_with_it.py", "service": "events__rds__scheduler"} {"check_id": "events__rds__sqs.xsvc-rds-1-input-transformer-renders-db-and-message-from-rds-event", "deployments": [], "key": "events__rds__sqs/xsvc-rds-1-input-transformer-renders-db-and-message-from-rds-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "rds:RebootDBInstance", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__rds__sqs/check_xsvc_rds_1_input_transformer_renders_db_and_message_from_rds_event.py", "service": "events__rds__sqs"} {"check_id": "events__rds__sqs.xsvc-rds-1-near-miss-rules-not-delivered-after-matching-rule-receives", "deployments": [], "key": "events__rds__sqs/xsvc-rds-1-near-miss-rules-not-delivered-after-matching-rule-receives", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "rds:RebootDBInstance", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__rds__sqs/check_xsvc_rds_1_near_miss_rules_not_delivered_after_matching_rule_receives.py", "service": "events__rds__sqs"} {"check_id": "events__rds__sqs.xsvc-rds-1-reboot-emits-db-instance-restarted-event-to-sqs", "deployments": [], "key": "events__rds__sqs/xsvc-rds-1-reboot-emits-db-instance-restarted-event-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeEvents", "rds:DescribeOrderableDBInstanceOptions", "rds:RebootDBInstance", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__rds__sqs/check_xsvc_rds_1_reboot_emits_db_instance_restarted_event_to_sqs.py", "service": "events__rds__sqs"} {"check_id": "events__resourcegroupstaggingapi.tag-resources-nonexistent-rule-rejected-per-resource", "deployments": [], "key": "events__resourcegroupstaggingapi/tag-resources-nonexistent-rule-rejected-per-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["events:DeleteRule", "events:ListTagsForResource", "events:PutRule", "resourcegroupstaggingapi:TagResources", "sts:GetCallerIdentity"], "path": "behavioral/events__resourcegroupstaggingapi/check_tag_resources_nonexistent_rule_rejected_per_resource.py", "service": "events__resourcegroupstaggingapi"} {"check_id": "events__s3__sqs.a-post-object-upload-is-withheld-from-a-putobject-scoped-rule", "deployments": [], "key": "events__s3__sqs/a-post-object-upload-is-withheld-from-a-putobject-scoped-rule", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_a_post_object_upload_is_withheld_from_a_putobject_scoped_rule.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.cfn-s3-eventbridge-sqs-deploy", "deployments": ["behavioral/events__s3__sqs/deployments/s3-sqs-notification.yaml"], "key": "events__s3__sqs/cfn-s3-eventbridge-sqs-deploy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/events__s3__sqs/check_cfn_s3_eventbridge_sqs_deploy.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-dlq-on-target-failure", "deployments": [], "key": "events__s3__sqs/eventbridge-dlq-on-target-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_eventbridge_dlq_on_target_failure.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-fanout-multiple-sqs-targets", "deployments": [], "key": "events__s3__sqs/eventbridge-fanout-multiple-sqs-targets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_eventbridge_fanout_multiple_sqs_targets.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-fifo-queue-target-arn", "deployments": [], "key": "events__s3__sqs/eventbridge-fifo-queue-target-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_eventbridge_fifo_queue_target_arn.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-full-envelope-fields-sqs", "deployments": [], "key": "events__s3__sqs/eventbridge-full-envelope-fields-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_eventbridge_full_envelope_fields_sqs.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-input-transformer-sqs", "deployments": [], "key": "events__s3__sqs/eventbridge-input-transformer-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_eventbridge_input_transformer_sqs.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-pattern-filtering-sqs", "deployments": [], "key": "events__s3__sqs/eventbridge-pattern-filtering-sqs", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_eventbridge_pattern_filtering_sqs.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-put-targets-invalid-queue-arn-rejected", "deployments": [], "key": "events__s3__sqs/eventbridge-put-targets-invalid-queue-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_eventbridge_put_targets_invalid_queue_arn_rejected.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-rule-to-sqs-target", "deployments": [], "key": "events__s3__sqs/eventbridge-rule-to-sqs-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_eventbridge_rule_to_sqs_target.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.eventbridge-target-without-queue-policy-silently-fails", "deployments": [], "key": "events__s3__sqs/eventbridge-target-without-queue-policy-silently-fails", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_eventbridge_target_without_queue_policy_silently_fails.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.object-restore-initiated-and-tags-added-carry-their-own-detail-types", "deployments": [], "key": "events__s3__sqs/object-restore-initiated-and-tags-added-carry-their-own-detail-types", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketNotificationConfiguration", "s3:GetObjectTagging", "s3:HeadObject", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectTagging", "s3:RestoreObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_object_restore_initiated_and_tags_added_carry_their_own_detail_types.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.obs-s3-3-acl-rejected-under-bucket-owner-enforced-emits-no-event", "deployments": [], "key": "events__s3__sqs/obs-s3-3-acl-rejected-under-bucket-owner-enforced-emits-no-event", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetBucketOwnershipControls", "s3:GetObjectAcl", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketOwnershipControls", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_obs_s3_3_acl_rejected_under_bucket_owner_enforced_emits_no_event.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.obs-s3-3-copy-object-reaches-both-paths-with-copy-reason", "deployments": [], "key": "events__s3__sqs/obs-s3-3-copy-object-reaches-both-paths-with-copy-reason", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_obs_s3_3_copy_object_reaches_both_paths_with_copy_reason.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.obs-s3-3-copy-scoped-routes-withhold-a-plain-put", "deployments": [], "key": "events__s3__sqs/obs-s3-3-copy-scoped-routes-withhold-a-plain-put", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_obs_s3_3_copy_scoped_routes_withhold_a_plain_put.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.obs-s3-3-object-acl-put-reaches-both-paths", "deployments": [], "key": "events__s3__sqs/obs-s3-3-object-acl-put-reaches-both-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetBucketOwnershipControls", "s3:GetObjectAcl", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketOwnershipControls", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectAcl", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_obs_s3_3_object_acl_put_reaches_both_paths.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.obs-s3-3-object-tagging-put-and-delete-reach-both-paths", "deployments": [], "key": "events__s3__sqs/obs-s3-3-object-tagging-put-and-delete-reach-both-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjectTagging", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_obs_s3_3_object_tagging_put_and_delete_reach_both_paths.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.obs-s3-3-tags-deleted-withheld-from-tags-added-routes", "deployments": [], "key": "events__s3__sqs/obs-s3-3-tags-deleted-withheld-from-tags-added-routes", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjectTagging", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_obs_s3_3_tags_deleted_withheld_from_tags_added_routes.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.obs-s3-3-versioned-delete-marker-and-version-delete-reach-both-paths", "deployments": [], "key": "events__s3__sqs/obs-s3-3-versioned-delete-marker-and-version-delete-reach-both-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_obs_s3_3_versioned_delete_marker_and_version_delete_reach_both_paths.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.removing-eventbridge-configuration-withholds-envelope-but-native-queue-still-delivers", "deployments": [], "key": "events__s3__sqs/removing-eventbridge-configuration-withholds-envelope-but-native-queue-still-delivers", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_removing_eventbridge_configuration_withholds_envelope_but_native_queue_still_delivers.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-event-message-format-fields", "deployments": [], "key": "events__s3__sqs/s3-event-message-format-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_event_message_format_fields.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-event-wrong-type-not-delivered", "deployments": [], "key": "events__s3__sqs/s3-event-wrong-type-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_event_wrong_type_not_delivered.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-eventbridge-not-enabled-no-delivery", "deployments": [], "key": "events__s3__sqs/s3-eventbridge-not-enabled-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_eventbridge_not_enabled_no_delivery.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-eventbridge-to-sqs", "deployments": [], "key": "events__s3__sqs/s3-eventbridge-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_eventbridge_to_sqs.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-multi-event-type-routing-sqs", "deployments": [], "key": "events__s3__sqs/s3-multi-event-type-routing-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_multi_event_type_routing_sqs.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-notification-to-sqs-direct", "deployments": [], "key": "events__s3__sqs/s3-notification-to-sqs-direct", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_notification_to_sqs_direct.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-notification-without-queue-policy-fails", "deployments": [], "key": "events__s3__sqs/s3-notification-without-queue-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_notification_without_queue_policy_fails.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-queue-notification-filter-delivers-only-matching-url-encoded-keys", "deployments": [], "key": "events__s3__sqs/s3-queue-notification-filter-delivers-only-matching-url-encoded-keys", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_queue_notification_filter_delivers_only_matching_url_encoded_keys.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.s3-queue-notification-names-copy-multipart-and-delete-events", "deployments": [], "key": "events__s3__sqs/s3-queue-notification-names-copy-multipart-and-delete-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CopyObject", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "s3:UploadPart", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_s3_queue_notification_names_copy_multipart_and_delete_events.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.sqs-policy-wrong-source-arn-blocks-delivery", "deployments": [], "key": "events__s3__sqs/sqs-policy-wrong-source-arn-blocks-delivery", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_sqs_policy_wrong_source_arn_blocks_delivery.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.sqs-queue-policy-sourcearn-scoping", "deployments": [], "key": "events__s3__sqs/sqs-queue-policy-sourcearn-scoping", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/events__s3__sqs/check_sqs_queue_policy_sourcearn_scoping.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.xsvc-s3-1-acl-update-and-tag-delete-route-to-their-own-rules", "deployments": [], "key": "events__s3__sqs/xsvc-s3-1-acl-update-and-tag-delete-route-to-their-own-rules", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjectTagging", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_xsvc_s3_1_acl_update_and_tag_delete_route_to_their_own_rules.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.xsvc-s3-1-input-transformer-renders-s3-uri-not-envelope", "deployments": [], "key": "events__s3__sqs/xsvc-s3-1-input-transformer-renders-s3-uri-not-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_xsvc_s3_1_input_transformer_renders_s3_uri_not_envelope.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.xsvc-s3-1-key-anything-but-filter-withholds-excluded-keys", "deployments": [], "key": "events__s3__sqs/xsvc-s3-1-key-anything-but-filter-withholds-excluded-keys", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_xsvc_s3_1_key_anything_but_filter_withholds_excluded_keys.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.xsvc-s3-1-key-prefix-filter-withholds-near-miss-keys", "deployments": [], "key": "events__s3__sqs/xsvc-s3-1-key-prefix-filter-withholds-near-miss-keys", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_xsvc_s3_1_key_prefix_filter_withholds_near_miss_keys.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.xsvc-s3-1-key-suffix-filter-withholds-near-miss-keys", "deployments": [], "key": "events__s3__sqs/xsvc-s3-1-key-suffix-filter-withholds-near-miss-keys", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_xsvc_s3_1_key_suffix_filter_withholds_near_miss_keys.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.xsvc-s3-1-size-numeric-range-filter-withholds-out-of-range-objects", "deployments": [], "key": "events__s3__sqs/xsvc-s3-1-size-numeric-range-filter-withholds-out-of-range-objects", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_xsvc_s3_1_size_numeric_range_filter_withholds_out_of_range_objects.py", "service": "events__s3__sqs"} {"check_id": "events__s3__sqs.xsvc-s3-1-versioned-delete-emits-object-deleted-with-deletion-type", "deployments": [], "key": "events__s3__sqs/xsvc-s3-1-versioned-delete-emits-object-deleted-with-deletion-type", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__s3__sqs/check_xsvc_s3_1_versioned_delete_emits_object_deleted_with_deletion_type.py", "service": "events__s3__sqs"} {"check_id": "events__scheduler.eventbridge-templated-target-detail-type-and-source-reach-the-bus", "deployments": [], "key": "events__scheduler/eventbridge-templated-target-detail-type-and-source-reach-the-bus", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__scheduler/check_eventbridge_templated_target_detail_type_and_source_reach_the_bus.py", "service": "events__scheduler"} {"check_id": "events__secretsmanager.events-connection-api-key-is-stored-in-secrets-manager-and-rotated", "deployments": [], "key": "events__secretsmanager/events-connection-api-key-is-stored-in-secrets-manager-and-rotated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "events:UpdateConnection", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/events__secretsmanager/check_events_connection_api_key_is_stored_in_secrets_manager_and_rotated.py", "service": "events__secretsmanager"} {"check_id": "events__secretsmanager.events-connection-secret-direct-force-delete-rejected", "deployments": [], "key": "events__secretsmanager/events-connection-secret-direct-force-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateConnection", "events:DeleteConnection", "events:DescribeConnection", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/events__secretsmanager/check_events_connection_secret_direct_force_delete_rejected.py", "service": "events__secretsmanager"} {"check_id": "events__sqs.api-destination-timeout-retries-are-bounded-by-maximum-retry-attempts", "deployments": [], "key": "events__sqs/api-destination-timeout-retries-are-bounded-by-maximum-retry-attempts", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:CreateApiDestination", "events:CreateConnection", "events:CreateEventBus", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeApiDestination", "events:DescribeConnection", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_api_destination_timeout_retries_are_bounded_by_maximum_retry_attempts.py", "service": "events__sqs"} {"check_id": "events__sqs.bus-to-bus-forwarding-happens-once-and-preserves-the-envelope", "deployments": [], "key": "events__sqs/bus-to-bus-forwarding-happens-once-and-preserves-the-envelope", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_bus_to_bus_forwarding_happens_once_and_preserves_the_envelope.py", "service": "events__sqs"} {"check_id": "events__sqs.custom-bus-fanout-is-at-least-once-and-order-independent", "deployments": [], "key": "events__sqs/custom-bus-fanout-is-at-least-once-and-order-independent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_custom_bus_fanout_is_at_least_once_and_order_independent.py", "service": "events__sqs"} {"check_id": "events__sqs.enable-rule-direct-call-resumes-delivery", "deployments": [], "key": "events__sqs/enable-rule-direct-call-resumes-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_enable_rule_direct_call_resumes_delivery.py", "service": "events__sqs"} {"check_id": "events__sqs.eventbridge-anything-but-matcher-excludes-not-delivered", "deployments": [], "key": "events__sqs/eventbridge-anything-but-matcher-excludes-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_eventbridge_anything_but_matcher_excludes_not_delivered.py", "service": "events__sqs"} {"check_id": "events__sqs.eventbridge-disabled-rule-not-delivered", "deployments": [], "key": "events__sqs/eventbridge-disabled-rule-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_eventbridge_disabled_rule_not_delivered.py", "service": "events__sqs"} {"check_id": "events__sqs.eventbridge-input-transformer-missing-path-not-delivered", "deployments": [], "key": "events__sqs/eventbridge-input-transformer-missing-path-not-delivered", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_eventbridge_input_transformer_missing_path_not_delivered.py", "service": "events__sqs"} {"check_id": "events__sqs.eventbridge-numeric-matcher-below-threshold-not-delivered", "deployments": [], "key": "events__sqs/eventbridge-numeric-matcher-below-threshold-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_eventbridge_numeric_matcher_below_threshold_not_delivered.py", "service": "events__sqs"} {"check_id": "events__sqs.eventbridge-putevents-partial-batch-delivers-valid-entry-only", "deployments": [], "key": "events__sqs/eventbridge-putevents-partial-batch-delivers-valid-entry-only", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_eventbridge_putevents_partial_batch_delivers_valid_entry_only.py", "service": "events__sqs"} {"check_id": "events__sqs.eventbridge-wrong-event-bus-not-delivered", "deployments": [], "key": "events__sqs/eventbridge-wrong-event-bus-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_eventbridge_wrong_event_bus_not_delivered.py", "service": "events__sqs"} {"check_id": "events__sqs.events-archive-replay-does-not-redeliver-to-a-rule-outside-filter-arns", "deployments": [], "key": "events__sqs/events-archive-replay-does-not-redeliver-to-a-rule-outside-filter-arns", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeReplay", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:StartReplay", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_archive_replay_does_not_redeliver_to_a_rule_outside_filter_arns.py", "service": "events__sqs"} {"check_id": "events__sqs.events-archive-replay-reaches-a-rule-created-after-the-events-were-archived", "deployments": [], "key": "events__sqs/events-archive-replay-reaches-a-rule-created-after-the-events-were-archived", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeReplay", "events:ListRules", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:StartReplay", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_archive_replay_reaches_a_rule_created_after_the_events_were_archived.py", "service": "events__sqs"} {"check_id": "events__sqs.events-archive-replay-rule-matching-replay-name-exists-false-is-not-redelivered", "deployments": [], "key": "events__sqs/events-archive-replay-rule-matching-replay-name-exists-false-is-not-redelivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeReplay", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:StartReplay", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_archive_replay_rule_matching_replay_name_exists_false_is_not_redelivered.py", "service": "events__sqs"} {"check_id": "events__sqs.events-bus-policy-explicit-deny-rejects-entire-putevents-batch", "deployments": [], "key": "events__sqs/events-bus-policy-explicit-deny-rejects-entire-putevents-batch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeEventBus", "events:PutEvents", "events:PutPermission", "events:PutRule", "events:PutTargets", "events:RemovePermission", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_bus_policy_explicit_deny_rejects_entire_putevents_batch.py", "service": "events__sqs"} {"check_id": "events__sqs.events-concurrent-putevents-every-event-reaches-the-target", "deployments": [], "key": "events__sqs/events-concurrent-putevents-every-event-reaches-the-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_concurrent_putevents_every_event_reaches_the_target.py", "service": "events__sqs"} {"check_id": "events__sqs.events-delivery-and-failure-conflicting-input-and-input-path-rejected", "deployments": [], "key": "events__sqs/events-delivery-and-failure-conflicting-input-and-input-path-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_delivery_and_failure_conflicting_input_and_input_path_rejected.py", "service": "events__sqs"} {"check_id": "events__sqs.events-delivery-and-failure-deleted-queue-target-dead-letters-no-resource-while-sibling-delivers", "deployments": [], "key": "events__sqs/events-delivery-and-failure-deleted-queue-target-dead-letters-no-resource-while-sibling-delivers", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_delivery_and_failure_deleted_queue_target_dead_letters_no_resource_while_sibling_delivers.py", "service": "events__sqs"} {"check_id": "events__sqs.events-delivery-and-failure-input-transformer-reserved-variables-resolve-to-rule-and-event", "deployments": [], "key": "events__sqs/events-delivery-and-failure-input-transformer-reserved-variables-resolve-to-rule-and-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_delivery_and_failure_input_transformer_reserved_variables_resolve_to_rule_and_event.py", "service": "events__sqs"} {"check_id": "events__sqs.events-delivery-and-failure-input-transformer-substitution-forms-render-exactly", "deployments": [], "key": "events__sqs/events-delivery-and-failure-input-transformer-substitution-forms-render-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_delivery_and_failure_input_transformer_substitution_forms_render_exactly.py", "service": "events__sqs"} {"check_id": "events__sqs.events-delivery-and-failure-object-in-quoted-template-string-dead-letters-as-invalid-json", "deployments": [], "key": "events__sqs/events-delivery-and-failure-object-in-quoted-template-string-dead-letters-as-invalid-json", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_delivery_and_failure_object_in_quoted_template_string_dead_letters_as_invalid_json.py", "service": "events__sqs"} {"check_id": "events__sqs.events-delivery-and-failure-static-input-and-input-path-replace-the-event", "deployments": [], "key": "events__sqs/events-delivery-and-failure-static-input-and-input-path-replace-the-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_delivery_and_failure_static_input_and_input_path_replace_the_event.py", "service": "events__sqs"} {"check_id": "events__sqs.events-delivery-and-failure-unquoted-plain-text-template-rejected", "deployments": [], "key": "events__sqs/events-delivery-and-failure-unquoted-plain-text-template-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_delivery_and_failure_unquoted_plain_text_template_rejected.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-anything-but-excludes-values-and-never-matches-absence", "deployments": [], "key": "events__sqs/events-pattern-language-anything-but-excludes-values-and-never-matches-absence", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_anything_but_excludes_values_and_never_matches_absence.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-array-field-matches-if-any-element-matches", "deployments": [], "key": "events__sqs/events-pattern-language-array-field-matches-if-any-element-matches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_array_field_matches_if_any_element_matches.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-cidr-matches-addresses-inside-the-block-only", "deployments": [], "key": "events__sqs/events-pattern-language-cidr-matches-addresses-inside-the-block-only", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_cidr_matches_addresses_inside_the_block_only.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-content-filter-combined-with-a-second-key-rejected", "deployments": [], "key": "events__sqs/events-pattern-language-content-filter-combined-with-a-second-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_content_filter_combined_with_a_second_key_rejected.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-equals-ignore-case-folds-case-but-not-length", "deployments": [], "key": "events__sqs/events-pattern-language-equals-ignore-case-folds-case-but-not-length", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_equals_ignore_case_folds_case_but_not_length.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-exists-false-does-not-match-a-present-null-field", "deployments": [], "key": "events__sqs/events-pattern-language-exists-false-does-not-match-a-present-null-field", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_exists_false_does_not_match_a_present_null_field.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-exists-tests-leaf-presence-not-truthiness", "deployments": [], "key": "events__sqs/events-pattern-language-exists-tests-leaf-presence-not-truthiness", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_exists_tests_leaf_presence_not_truthiness.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-malformed-pattern-update-rejected-and-live-rule-keeps-matching", "deployments": [], "key": "events__sqs/events-pattern-language-malformed-pattern-update-rejected-and-live-rule-keeps-matching", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_malformed_pattern_update_rejected_and_live_rule_keeps_matching.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-nested-object-pattern-matches-the-leaf-path", "deployments": [], "key": "events__sqs/events-pattern-language-nested-object-pattern-matches-the-leaf-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_nested_object_pattern_matches_the_leaf_path.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-numeric-comparators-and-range-honour-their-boundaries", "deployments": [], "key": "events__sqs/events-pattern-language-numeric-comparators-and-range-honour-their-boundaries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_numeric_comparators_and_range_honour_their_boundaries.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-pattern-value-list-is-an-or", "deployments": [], "key": "events__sqs/events-pattern-language-pattern-value-list-is-an-or", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_pattern_value_list_is_an_or.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-prefix-matches-only-a-leading-substring", "deployments": [], "key": "events__sqs/events-pattern-language-prefix-matches-only-a-leading-substring", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_prefix_matches_only_a_leading_substring.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-suffix-matches-only-a-trailing-substring", "deployments": [], "key": "events__sqs/events-pattern-language-suffix-matches-only-a-trailing-substring", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_suffix_matches_only_a_trailing_substring.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-top-level-or-matches-any-branch-and-ands-with-siblings", "deployments": [], "key": "events__sqs/events-pattern-language-top-level-or-matches-any-branch-and-ands-with-siblings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_top_level_or_matches_any_branch_and_ands_with_siblings.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-two-keys-in-one-object-are-an-and", "deployments": [], "key": "events__sqs/events-pattern-language-two-keys-in-one-object-are-an-and", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_two_keys_in_one_object_are_an_and.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-wildcard-star-spans-any-run-including-slashes", "deployments": [], "key": "events__sqs/events-pattern-language-wildcard-star-spans-any-run-including-slashes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_wildcard_star_spans_any_run_including_slashes.py", "service": "events__sqs"} {"check_id": "events__sqs.events-pattern-language-wrong-type-field-does-not-match-and-does-not-error", "deployments": [], "key": "events__sqs/events-pattern-language-wrong-type-field-does-not-match-and-does-not-error", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_events_pattern_language_wrong_type_field_does_not_match_and_does_not_error.py", "service": "events__sqs"} {"check_id": "events__sqs.events-rate-schedule-fires-repeatedly-with-the-configured-period", "deployments": [], "key": "events__sqs/events-rate-schedule-fires-repeatedly-with-the-configured-period", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_rate_schedule_fires_repeatedly_with_the_configured_period.py", "service": "events__sqs"} {"check_id": "events__sqs.events-replay-redelivers-only-the-archived-events-inside-the-window", "deployments": [], "key": "events__sqs/events-replay-redelivers-only-the-archived-events-inside-the-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeReplay", "events:ListRules", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:StartReplay", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_replay_redelivers_only_the_archived_events_inside_the_window.py", "service": "events__sqs"} {"check_id": "events__sqs.events-test-event-pattern-verdicts-agree-with-real-delivery", "deployments": [], "key": "events__sqs/events-test-event-pattern-verdicts-agree-with-real-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TestEventPattern", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_events_test_event_pattern_verdicts_agree_with_real_delivery.py", "service": "events__sqs"} {"check_id": "events__sqs.non-matching-event-pattern-delivers-nothing-to-its-target", "deployments": [], "key": "events__sqs/non-matching-event-pattern-delivers-nothing-to-its-target", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_non_matching_event_pattern_delivers_nothing_to_its_target.py", "service": "events__sqs"} {"check_id": "events__sqs.put-events-batch-entries-route-each-to-its-own-bus", "deployments": [], "key": "events__sqs/put-events-batch-entries-route-each-to-its-own-bus", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_put_events_batch_entries_route_each_to_its_own_bus.py", "service": "events__sqs"} {"check_id": "events__sqs.put-events-request-size-accounting-is-additive-and-time-costs-fourteen-bytes", "deployments": [], "key": "events__sqs/put-events-request-size-accounting-is-additive-and-time-costs-fourteen-bytes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_put_events_request_size_accounting_is_additive_and_time_costs_fourteen_bytes.py", "service": "events__sqs"} {"check_id": "events__sqs.put-events-time-resources-and-event-id-carried-into-the-delivered-envelope", "deployments": [], "key": "events__sqs/put-events-time-resources-and-event-id-carried-into-the-delivered-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_put_events_time_resources_and_event_id_carried_into_the_delivered_envelope.py", "service": "events__sqs"} {"check_id": "events__sqs.put-events-trace-header-into-archived-bus-absent-on-replay", "deployments": [], "key": "events__sqs/put-events-trace-header-into-archived-bus-absent-on-replay", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeReplay", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:StartReplay", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_put_events_trace_header_into_archived_bus_absent_on_replay.py", "service": "events__sqs"} {"check_id": "events__sqs.put-rule-pattern-update-reroutes-delivery-and-keeps-targets", "deployments": [], "key": "events__sqs/put-rule-pattern-update-reroutes-delivery-and-keeps-targets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_put_rule_pattern_update_reroutes_delivery_and_keeps_targets.py", "service": "events__sqs"} {"check_id": "events__sqs.put-rule-update-omitting-state-re-enables-a-disabled-rule", "deployments": [], "key": "events__sqs/put-rule-update-omitting-state-re-enables-a-disabled-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_put_rule_update_omitting_state_re_enables_a_disabled_rule.py", "service": "events__sqs"} {"check_id": "events__sqs.put-targets-same-id-upsert-moves-delivery-to-the-new-queue", "deployments": [], "key": "events__sqs/put-targets-same-id-upsert-moves-delivery-to-the-new-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_put_targets_same_id_upsert_moves_delivery_to_the_new_queue.py", "service": "events__sqs"} {"check_id": "events__sqs.put-targets-upsert-with-invalid-input-rejected-and-live-target-keeps-delivering", "deployments": [], "key": "events__sqs/put-targets-upsert-with-invalid-input-rejected-and-live-target-keeps-delivering", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_put_targets_upsert_with_invalid_input_rejected_and_live_target_keeps_delivering.py", "service": "events__sqs"} {"check_id": "events__sqs.remove-one-of-two-targets-stops-only-its-delivery", "deployments": [], "key": "events__sqs/remove-one-of-two-targets-stops-only-its-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/events__sqs/check_remove_one_of_two_targets_stops_only_its_delivery.py", "service": "events__sqs"} {"check_id": "events__sqs.replay-redelivers-each-archived-event-exactly-once-and-never-the-out-of-window-one", "deployments": [], "key": "events__sqs/replay-redelivers-each-archived-event-exactly-once-and-never-the-out-of-window-one", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:CreateArchive", "events:CreateEventBus", "events:DeleteArchive", "events:DeleteEventBus", "events:DeleteRule", "events:DescribeArchive", "events:DescribeReplay", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:StartReplay", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_replay_redelivers_each_archived_event_exactly_once_and_never_the_out_of_window_one.py", "service": "events__sqs"} {"check_id": "events__sqs.throttled-lambda-target-is-one-successful-attempt-with-no-retry-and-no-dlq", "deployments": [], "key": "events__sqs/throttled-lambda-target-is-one-successful-attempt-with-no-retry-and-no-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs/check_throttled_lambda_target_is_one_successful_attempt_with_no_retry_and_no_dlq.py", "service": "events__sqs"} {"check_id": "events__sqs__stepfunctions.events-putevents-resources-carry-run-arns-and-rejected-entry-fails-task", "deployments": [], "key": "events__sqs__stepfunctions/events-putevents-resources-carry-run-arns-and-rejected-entry-fails-task", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/events__sqs__stepfunctions/check_events_putevents_resources_carry_run_arns_and_rejected_entry_fails_task.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.events-workload-state-change-sfn-aborted-event-follows-running-and-carries-the-stop-error-and-cause", "deployments": [], "key": "events__sqs__stepfunctions/events-workload-state-change-sfn-aborted-event-follows-running-and-carries-the-stop-error-and-cause", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/events__sqs__stepfunctions/check_events_workload_state_change_sfn_aborted_event_follows_running_and_carries_the_stop_error_and_cause.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.events-workload-state-change-sfn-each-terminal-status-rule-receives-only-its-own-status", "deployments": [], "key": "events__sqs__stepfunctions/events-workload-state-change-sfn-each-terminal-status-rule-receives-only-its-own-status", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/events__sqs__stepfunctions/check_events_workload_state_change_sfn_each_terminal_status_rule_receives_only_its_own_status.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.events-workload-state-change-sfn-express-execution-status-change-not-delivered-while-standard-twin-is", "deployments": [], "key": "events__sqs__stepfunctions/events-workload-state-change-sfn-express-execution-status-change-not-delivered-while-standard-twin-is", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution"], "path": "behavioral/events__sqs__stepfunctions/check_events_workload_state_change_sfn_express_execution_status_change_not_delivered_while_standard_twin_is.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.events-workload-state-change-sfn-failed-event-carries-the-fail-states-runtime-error-and-cause", "deployments": [], "key": "events__sqs__stepfunctions/events-workload-state-change-sfn-failed-event-carries-the-fail-states-runtime-error-and-cause", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs__stepfunctions/check_events_workload_state_change_sfn_failed_event_carries_the_fail_states_runtime_error_and_cause.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.redrive-of-aborted-execution-produces-second-aborted-status-change-event", "deployments": [], "key": "events__sqs__stepfunctions/redrive-of-aborted-execution-produces-second-aborted-status-change-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/events__sqs__stepfunctions/check_redrive_of_aborted_execution_produces_second_aborted_status_change_event.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.redrive-of-running-execution-rejected-no-status-change-event-follows", "deployments": [], "key": "events__sqs__stepfunctions/redrive-of-running-execution-rejected-no-status-change-event-follows", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/events__sqs__stepfunctions/check_redrive_of_running_execution_rejected_no_status_change_event_follows.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.status-change-event-for-qualified-execution-carries-version-and-alias-arns", "deployments": [], "key": "events__sqs__stepfunctions/status-change-event-for-qualified-execution-carries-version-and-alias-arns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeExecution", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution"], "path": "behavioral/events__sqs__stepfunctions/check_status_change_event_for_qualified_execution_carries_version_and_alias_arns.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.step-functions-execution-status-change-reaches-the-default-bus", "deployments": [], "key": "events__sqs__stepfunctions/step-functions-execution-status-change-reaches-the-default-bus", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs__stepfunctions/check_step_functions_execution_status_change_reaches_the_default_bus.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.xsvc-sfn-2-dlq-missing-permission", "deployments": [], "key": "events__sqs__stepfunctions/xsvc-sfn-2-dlq-missing-permission", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/events__sqs__stepfunctions/check_xsvc_sfn_2_dlq_missing_permission.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.xsvc-sfn-2-dlq-twin-with-permission-starts-execution", "deployments": [], "key": "events__sqs__stepfunctions/xsvc-sfn-2-dlq-twin-with-permission-starts-execution", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs__stepfunctions/check_xsvc_sfn_2_dlq_twin_with_permission_starts_execution.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.xsvc-sfn-2-large-input-status-change-not-included", "deployments": [], "key": "events__sqs__stepfunctions/xsvc-sfn-2-large-input-status-change-not-included", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__sqs__stepfunctions/check_xsvc_sfn_2_large_input_status_change_not_included.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.xsvc-sfn-2-redrive-status-change", "deployments": [], "key": "events__sqs__stepfunctions/xsvc-sfn-2-redrive-status-change", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution"], "path": "behavioral/events__sqs__stepfunctions/check_xsvc_sfn_2_redrive_status_change.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__sqs__stepfunctions.xsvc-sfn-2-waittoken-producer", "deployments": [], "key": "events__sqs__stepfunctions/xsvc-sfn-2-waittoken-producer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:ListTargetsByRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/events__sqs__stepfunctions/check_xsvc_sfn_2_waittoken_producer.py", "service": "events__sqs__stepfunctions"} {"check_id": "events__stepfunctions.eventbridge-input-transformer-output-is-sfn-execution-input", "deployments": [], "key": "events__stepfunctions/eventbridge-input-transformer-output-is-sfn-execution-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StopExecution"], "path": "behavioral/events__stepfunctions/check_eventbridge_input_transformer_output_is_sfn_execution_input.py", "service": "events__stepfunctions"} {"check_id": "events__stepfunctions.events-putevents-task-without-permission-is-caught-as-access-denied", "deployments": [], "key": "events__stepfunctions/events-putevents-task-without-permission-is-caught-as-access-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/events__stepfunctions/check_events_putevents_task_without_permission_is_caught_as_access_denied.py", "service": "events__stepfunctions"} {"check_id": "events__stepfunctions.execution-status-change-event-reaches-the-default-bus", "deployments": [], "key": "events__stepfunctions/execution-status-change-event-reaches-the-default-bus", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/events__stepfunctions/check_execution_status_change_event_reaches_the_default_bus.py", "service": "events__stepfunctions"} {"check_id": "evs.associate-eip-to-vlan-environment-not-found", "deployments": [], "key": "evs/associate-eip-to-vlan-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:AssociateEipToVlan"], "path": "behavioral/evs/check_associate_eip_to_vlan_environment_not_found.py", "service": "evs"} {"check_id": "evs.create-entitlement-environment-not-found", "deployments": [], "key": "evs/create-entitlement-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:CreateEntitlement", "evs:ListEnvironments"], "path": "behavioral/evs/check_create_entitlement_environment_not_found.py", "service": "evs"} {"check_id": "evs.create-environment-connector-environment-not-found", "deployments": [], "key": "evs/create-environment-connector-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:CreateEnvironmentConnector"], "path": "behavioral/evs/check_create_environment_connector_environment_not_found.py", "service": "evs"} {"check_id": "evs.create-environment-connector-invalid-secret-rejected", "deployments": [], "key": "evs/create-environment-connector-invalid-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateDhcpOptions", "ec2:CreateDhcpOptions", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteDhcpOptions", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "evs:CreateEnvironment", "evs:ListEnvironments"], "path": "behavioral/evs/check_create_environment_connector_invalid_secret_rejected.py", "service": "evs"} {"check_id": "evs.create-environment-host-conflicting-placement-params-rejected", "deployments": [], "key": "evs/create-environment-host-conflicting-placement-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:CreateEnvironmentHost"], "path": "behavioral/evs/check_create_environment_host_conflicting_placement_params_rejected.py", "service": "evs"} {"check_id": "evs.create-environment-host-nonexistent-environment-validation-exception", "deployments": [], "key": "evs/create-environment-host-nonexistent-environment-validation-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:CreateEnvironmentHost"], "path": "behavioral/evs/check_create_environment_host_nonexistent_environment_validation_exception.py", "service": "evs"} {"check_id": "evs.create-environment-idempotent-client-token-concurrent", "deployments": [], "key": "evs/create-environment-idempotent-client-token-concurrent", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateDhcpOptions", "ec2:CreateDhcpOptions", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteDhcpOptions", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "evs:CreateEnvironment", "evs:DeleteEnvironment", "evs:GetVersions", "evs:ListEnvironments"], "path": "behavioral/evs/check_create_environment_idempotent_client_token_concurrent.py", "service": "evs"} {"check_id": "evs.create-environment-invalid-vpc-rejected", "deployments": [], "key": "evs/create-environment-invalid-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateDhcpOptions", "ec2:CreateDhcpOptions", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteDhcpOptions", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "evs:CreateEnvironment", "evs:ListEnvironments"], "path": "behavioral/evs/check_create_environment_invalid_vpc_rejected.py", "service": "evs"} {"check_id": "evs.create-environment-terms-not-accepted-rejected", "deployments": [], "key": "evs/create-environment-terms-not-accepted-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateDhcpOptions", "ec2:CreateDhcpOptions", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteDhcpOptions", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "evs:CreateEnvironment", "evs:DeleteEnvironment", "evs:GetVersions", "evs:ListEnvironments"], "path": "behavioral/evs/check_create_environment_terms_not_accepted_rejected.py", "service": "evs"} {"check_id": "evs.delete-environment-with-active-connector-rejected", "deployments": [], "key": "evs/delete-environment-with-active-connector-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AssociateDhcpOptions", "ec2:CreateDhcpOptions", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteDhcpOptions", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "evs:CreateEnvironment", "evs:ListEnvironments"], "path": "behavioral/evs/check_delete_environment_with_active_connector_rejected.py", "service": "evs"} {"check_id": "evs.disassociate-eip-from-vlan-environment-not-found", "deployments": [], "key": "evs/disassociate-eip-from-vlan-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:DisassociateEipFromVlan"], "path": "behavioral/evs/check_disassociate_eip_from_vlan_environment_not_found.py", "service": "evs"} {"check_id": "evs.get-environment-not-found", "deployments": [], "key": "evs/get-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:GetEnvironment"], "path": "behavioral/evs/check_get_environment_not_found.py", "service": "evs"} {"check_id": "evs.get-versions-returns-known-vcf-versions", "deployments": [], "key": "evs/get-versions-returns-known-vcf-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["evs:GetVersions"], "path": "behavioral/evs/check_get_versions_returns_known_vcf_versions.py", "service": "evs"} {"check_id": "evs.list-environment-hosts-environment-not-found", "deployments": [], "key": "evs/list-environment-hosts-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:GetVersions", "evs:ListEnvironmentHosts"], "path": "behavioral/evs/check_list_environment_hosts_environment_not_found.py", "service": "evs"} {"check_id": "evs.list-environments-invalid-next-token-rejected", "deployments": [], "key": "evs/list-environments-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:ListEnvironments"], "path": "behavioral/evs/check_list_environments_invalid_next_token_rejected.py", "service": "evs"} {"check_id": "evs.list-tags-for-resource-not-found", "deployments": [], "key": "evs/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:ListTagsForResource"], "path": "behavioral/evs/check_list_tags_for_resource_not_found.py", "service": "evs"} {"check_id": "evs.missing-iam-permission-denied", "deployments": [], "key": "evs/missing-iam-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:GetEnvironment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole"], "path": "behavioral/evs/check_missing_iam_permission_denied.py", "service": "evs"} {"check_id": "evs.put-account-settings-invalid-value-rejected", "deployments": [], "key": "evs/put-account-settings-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:GetAccountSettings", "evs:PutAccountSettings"], "path": "behavioral/evs/check_put_account_settings_invalid_value_rejected.py", "service": "evs"} {"check_id": "evs.untag-resource-not-found", "deployments": [], "key": "evs/untag-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:UntagResource"], "path": "behavioral/evs/check_untag_resource_not_found.py", "service": "evs"} {"check_id": "evs.update-environment-connector-not-found", "deployments": [], "key": "evs/update-environment-connector-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["evs:ListEnvironments", "evs:UpdateEnvironmentConnector"], "path": "behavioral/evs/check_update_environment_connector_not_found.py", "service": "evs"} {"check_id": "firehose.buffering-hint-interval-delays-delivery", "deployments": [], "key": "firehose/buffering-hint-interval-delays-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_buffering_hint_interval_delays_delivery.py", "service": "firehose"} {"check_id": "firehose.buffering-hint-size-triggers-early-flush", "deployments": [], "key": "firehose/buffering-hint-size-triggers-early-flush", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_buffering_hint_size_triggers_early_flush.py", "service": "firehose"} {"check_id": "firehose.buffering-hints-delay-controls-delivery-timing", "deployments": [], "key": "firehose/buffering-hints-delay-controls-delivery-timing", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_buffering_hints_delay_controls_delivery_timing.py", "service": "firehose"} {"check_id": "firehose.buffering-hints-delay-delivery-to-s3", "deployments": [], "key": "firehose/buffering-hints-delay-delivery-to-s3", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:TagRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_buffering_hints_delay_delivery_to_s3.py", "service": "firehose"} {"check_id": "firehose.buffering-hints-numeric-precision-preserved", "deployments": [], "key": "firehose/buffering-hints-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_buffering_hints_numeric_precision_preserved.py", "service": "firehose"} {"check_id": "firehose.buffering-size-threshold-triggers-early-flush", "deployments": [], "key": "firehose/buffering-size-threshold-triggers-early-flush", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_buffering_size_threshold_triggers_early_flush.py", "service": "firehose"} {"check_id": "firehose.concurrent-create-same-name-race", "deployments": [], "key": "firehose/concurrent-create-same-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_concurrent_create_same_name_race.py", "service": "firehose"} {"check_id": "firehose.concurrent-put-record-batch-calls-no-record-loss", "deployments": [], "key": "firehose/concurrent-put-record-batch-calls-no-record-loss", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_concurrent_put_record_batch_calls_no_record_loss.py", "service": "firehose"} {"check_id": "firehose.concurrent-put-record-batch-no-data-loss", "deployments": [], "key": "firehose/concurrent-put-record-batch-no-data-loss", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_concurrent_put_record_batch_no_data_loss.py", "service": "firehose"} {"check_id": "firehose.concurrent-put-record-batch-no-false-conflict", "deployments": [], "key": "firehose/concurrent-put-record-batch-no-false-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_concurrent_put_record_batch_no_false_conflict.py", "service": "firehose"} {"check_id": "firehose.concurrent-tag-and-untag-race-consistent-final-state", "deployments": [], "key": "firehose/concurrent-tag-and-untag-race-consistent-final-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "firehose:UntagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_concurrent_tag_and_untag_race_consistent_final_state.py", "service": "firehose"} {"check_id": "firehose.concurrent-update-destination-race", "deployments": [], "key": "firehose/concurrent-update-destination-race", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_concurrent_update_destination_race.py", "service": "firehose"} {"check_id": "firehose.concurrent-update-destination-serializes", "deployments": [], "key": "firehose/concurrent-update-destination-serializes", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_concurrent_update_destination_serializes.py", "service": "firehose"} {"check_id": "firehose.create-delivery-stream-untrusted-role-rejected", "deployments": [], "key": "firehose/create-delivery-stream-untrusted-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_create_delivery_stream_untrusted_role_rejected.py", "service": "firehose"} {"check_id": "firehose.create-delivery-stream-with-tags-at-creation", "deployments": [], "key": "firehose/create-delivery-stream-with-tags-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_create_delivery_stream_with_tags_at_creation.py", "service": "firehose"} {"check_id": "firehose.create-duplicate-delivery-stream-rejected", "deployments": [], "key": "firehose/create-duplicate-delivery-stream-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_create_duplicate_delivery_stream_rejected.py", "service": "firehose"} {"check_id": "firehose.create-duplicate-name-resource-in-use", "deployments": [], "key": "firehose/create-duplicate-name-resource-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_duplicate_name_resource_in_use.py", "service": "firehose"} {"check_id": "firehose.create-kinesis-source-type-without-source-config", "deployments": [], "key": "firehose/create-kinesis-source-type-without-source-config", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:TagRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_kinesis_source_type_without_source_config.py", "service": "firehose"} {"check_id": "firehose.create-stream-applies-default-buffering-hints", "deployments": [], "key": "firehose/create-stream-applies-default-buffering-hints", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_applies_default_buffering_hints.py", "service": "firehose"} {"check_id": "firehose.create-stream-applies-default-compression-format", "deployments": [], "key": "firehose/create-stream-applies-default-compression-format", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_applies_default_compression_format.py", "service": "firehose"} {"check_id": "firehose.create-stream-buffering-hints-range-enforced", "deployments": [], "key": "firehose/create-stream-buffering-hints-range-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_buffering_hints_range_enforced.py", "service": "firehose"} {"check_id": "firehose.create-stream-buffering-interval-below-minimum-rejected", "deployments": [], "key": "firehose/create-stream-buffering-interval-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_buffering_interval_below_minimum_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-buffering-interval-out-of-range-rejected", "deployments": [], "key": "firehose/create-stream-buffering-interval-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/firehose/check_create_stream_buffering_interval_out_of_range_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-buffering-size-above-maximum-rejected", "deployments": [], "key": "firehose/create-stream-buffering-size-above-maximum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_create_stream_buffering_size_above_maximum_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-conflicting-destination-configs", "deployments": [], "key": "firehose/create-stream-conflicting-destination-configs", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_conflicting_destination_configs.py", "service": "firehose"} {"check_id": "firehose.create-stream-conflicting-destinations-rejected", "deployments": [], "key": "firehose/create-stream-conflicting-destinations-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_conflicting_destinations_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-initial-state-creating", "deployments": [], "key": "firehose/create-stream-initial-state-creating", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_initial_state_creating.py", "service": "firehose"} {"check_id": "firehose.create-stream-invalid-compression-type-rejected", "deployments": [], "key": "firehose/create-stream-invalid-compression-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_create_stream_invalid_compression_type_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-invalid-kms-key-arn", "deployments": [], "key": "firehose/create-stream-invalid-kms-key-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_invalid_kms_key_arn.py", "service": "firehose"} {"check_id": "firehose.create-stream-invalid-name-characters-rejected", "deployments": [], "key": "firehose/create-stream-invalid-name-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/firehose/check_create_stream_invalid_name_characters_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-malformed-bucket-arn-rejected", "deployments": [], "key": "firehose/create-stream-malformed-bucket-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_malformed_bucket_arn_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-malformed-role-arn-rejected", "deployments": [], "key": "firehose/create-stream-malformed-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_create_stream_malformed_role_arn_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-name-exceeds-length-limit-rejected", "deployments": [], "key": "firehose/create-stream-name-exceeds-length-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_name_exceeds_length_limit_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-nonexistent-role-arn-rejected", "deployments": [], "key": "firehose/create-stream-nonexistent-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_create_stream_nonexistent_role_arn_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-processing-configuration-validated", "deployments": [], "key": "firehose/create-stream-processing-configuration-validated", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_processing_configuration_validated.py", "service": "firehose"} {"check_id": "firehose.create-stream-rejects-non-s3-bucket-arn", "deployments": [], "key": "firehose/create-stream-rejects-non-s3-bucket-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_create_stream_rejects_non_s3_bucket_arn.py", "service": "firehose"} {"check_id": "firehose.create-stream-role-arn-error-classification", "deployments": [], "key": "firehose/create-stream-role-arn-error-classification", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_create_stream_role_arn_error_classification.py", "service": "firehose"} {"check_id": "firehose.create-stream-role-arn-malformed-rejected", "deployments": [], "key": "firehose/create-stream-role-arn-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/firehose/check_create_stream_role_arn_malformed_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-role-missing-trust-policy-denied", "deployments": [], "key": "firehose/create-stream-role-missing-trust-policy-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/firehose/check_create_stream_role_missing_trust_policy_denied.py", "service": "firehose"} {"check_id": "firehose.create-stream-role-missing-trust-policy-rejected", "deployments": [], "key": "firehose/create-stream-role-missing-trust-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_role_missing_trust_policy_rejected.py", "service": "firehose"} {"check_id": "firehose.create-stream-role-without-s3-permissions-denied", "deployments": [], "key": "firehose/create-stream-role-without-s3-permissions-denied", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_create_stream_role_without_s3_permissions_denied.py", "service": "firehose"} {"check_id": "firehose.custom-time-zone-shifts-the-timestamp-prefix-expansion", "deployments": [], "key": "firehose/custom-time-zone-shifts-the-timestamp-prefix-expansion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_custom_time_zone_shifts_the_timestamp_prefix_expansion.py", "service": "firehose"} {"check_id": "firehose.data-format-conversion-configuration-echoed-then-disable-preserves-schema-members", "deployments": [], "key": "firehose/data-format-conversion-configuration-echoed-then-disable-preserves-schema-members", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_data_format_conversion_configuration_echoed_then_disable_preserves_schema_members.py", "service": "firehose"} {"check_id": "firehose.delete-nonexistent-stream-not-found", "deployments": [], "key": "firehose/delete-nonexistent-stream-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_delete_nonexistent_stream_not_found.py", "service": "firehose"} {"check_id": "firehose.delete-stream-during-creating-rejected", "deployments": [], "key": "firehose/delete-stream-during-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_delete_stream_during_creating_rejected.py", "service": "firehose"} {"check_id": "firehose.delete-stream-transitions-to-deleting-then-gone", "deployments": [], "key": "firehose/delete-stream-transitions-to-deleting-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_delete_stream_transitions_to_deleting_then_gone.py", "service": "firehose"} {"check_id": "firehose.delete-stream-while-update-in-progress-resource-in-use", "deployments": [], "key": "firehose/delete-stream-while-update-in-progress-resource-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_delete_stream_while_update_in_progress_resource_in_use.py", "service": "firehose"} {"check_id": "firehose.delete-transitions-to-deleting", "deployments": [], "key": "firehose/delete-transitions-to-deleting", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_delete_transitions_to_deleting.py", "service": "firehose"} {"check_id": "firehose.delivered-object-content-type-and-encoding-match-declared-compression", "deployments": [], "key": "firehose/delivered-object-content-type-and-encoding-match-declared-compression", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_delivered_object_content_type_and_encoding_match_declared_compression.py", "service": "firehose"} {"check_id": "firehose.delivered-object-suffix-carries-the-stream-version-reported-by-describe", "deployments": [], "key": "firehose/delivered-object-suffix-carries-the-stream-version-reported-by-describe", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_delivered_object_suffix_carries_the_stream_version_reported_by_describe.py", "service": "firehose"} {"check_id": "firehose.delivery-stream-arn-format-consistent", "deployments": [], "key": "firehose/delivery-stream-arn-format-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_delivery_stream_arn_format_consistent.py", "service": "firehose"} {"check_id": "firehose.delivery-stream-type-default-direct-put", "deployments": [], "key": "firehose/delivery-stream-type-default-direct-put", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_delivery_stream_type_default_direct_put.py", "service": "firehose"} {"check_id": "firehose.deploy-cfn-delivery-stream-behaves-after-create", "deployments": [], "key": "firehose/deploy-cfn-delivery-stream-behaves-after-create", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_deploy_cfn_delivery_stream_behaves_after_create.py", "service": "firehose"} {"check_id": "firehose.deploy-cfn-firehose-stream-becomes-active", "deployments": [], "key": "firehose/deploy-cfn-firehose-stream-becomes-active", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_deploy_cfn_firehose_stream_becomes_active.py", "service": "firehose"} {"check_id": "firehose.deploy-cfn-stack-deletion-removes-delivery-stream", "deployments": [], "key": "firehose/deploy-cfn-stack-deletion-removes-delivery-stream", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_deploy_cfn_stack_deletion_removes_delivery_stream.py", "service": "firehose"} {"check_id": "firehose.deploy-cfn-stream-accepts-put-record", "deployments": [], "key": "firehose/deploy-cfn-stream-accepts-put-record", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_deploy_cfn_stream_accepts_put_record.py", "service": "firehose"} {"check_id": "firehose.deploy-cfn-stream-active-and-delivers-records-to-s3", "deployments": [], "key": "firehose/deploy-cfn-stream-active-and-delivers-records-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_deploy_cfn_stream_active_and_delivers_records_to_s3.py", "service": "firehose"} {"check_id": "firehose.deploy-cfn-stream-delivers-to-s3", "deployments": [], "key": "firehose/deploy-cfn-stream-delivers-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_deploy_cfn_stream_delivers_to_s3.py", "service": "firehose"} {"check_id": "firehose.deploy-cfn-stream-s3-destination-config-applied", "deployments": [], "key": "firehose/deploy-cfn-stream-s3-destination-config-applied", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_deploy_cfn_stream_s3_destination_config_applied.py", "service": "firehose"} {"check_id": "firehose.deploy-cfn-stream-tags-and-encryption-applied", "deployments": [], "key": "firehose/deploy-cfn-stream-tags-and-encryption-applied", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_deploy_cfn_stream_tags_and_encryption_applied.py", "service": "firehose"} {"check_id": "firehose.describe-delivery-stream-fields", "deployments": [], "key": "firehose/describe-delivery-stream-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_describe_delivery_stream_fields.py", "service": "firehose"} {"check_id": "firehose.describe-nonexistent-stream-not-found", "deployments": [], "key": "firehose/describe-nonexistent-stream-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_describe_nonexistent_stream_not_found.py", "service": "firehose"} {"check_id": "firehose.destination-retry-duration-respected", "deployments": [], "key": "firehose/destination-retry-duration-respected", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_destination_retry_duration_respected.py", "service": "firehose"} {"check_id": "firehose.e2e-create-put-deliver-to-s3-delete-and-confirm-gone", "deployments": [], "key": "firehose/e2e-create-put-deliver-to-s3-delete-and-confirm-gone", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "firehose:PutRecord", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_e2e_create_put_deliver_to_s3_delete_and_confirm_gone.py", "service": "firehose"} {"check_id": "firehose.e2e-create-put-flush-verify-delete-preserves-s3-objects", "deployments": [], "key": "firehose/e2e-create-put-flush-verify-delete-preserves-s3-objects", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_e2e_create_put_flush_verify_delete_preserves_s3_objects.py", "service": "firehose"} {"check_id": "firehose.e2e-create-put-land-delete-full-flow", "deployments": [], "key": "firehose/e2e-create-put-land-delete-full-flow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_e2e_create_put_land_delete_full_flow.py", "service": "firehose"} {"check_id": "firehose.e2e-create-put-verify-s3-delete", "deployments": [], "key": "firehose/e2e-create-put-verify-s3-delete", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_e2e_create_put_verify_s3_delete.py", "service": "firehose"} {"check_id": "firehose.e2e-encryption-enable-put-disable-flow", "deployments": [], "key": "firehose/e2e-encryption-enable-put-disable-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_e2e_encryption_enable_put_disable_flow.py", "service": "firehose"} {"check_id": "firehose.e2e-encryption-lifecycle-affects-delivery", "deployments": [], "key": "firehose/e2e-encryption-lifecycle-affects-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_e2e_encryption_lifecycle_affects_delivery.py", "service": "firehose"} {"check_id": "firehose.e2e-encryption-toggle-affects-status-across-flow", "deployments": [], "key": "firehose/e2e-encryption-toggle-affects-status-across-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_e2e_encryption_toggle_affects_status_across_flow.py", "service": "firehose"} {"check_id": "firehose.e2e-put-record-kinesis-source-rejected", "deployments": [], "key": "firehose/e2e-put-record-kinesis-source-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_e2e_put_record_kinesis_source_rejected.py", "service": "firehose"} {"check_id": "firehose.e2e-tag-and-update-destination-reflected-then-teardown", "deployments": [], "key": "firehose/e2e-tag-and-update-destination-reflected-then-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_e2e_tag_and_update_destination_reflected_then_teardown.py", "service": "firehose"} {"check_id": "firehose.e2e-tag-encrypt-update-destination-consequence-flow", "deployments": [], "key": "firehose/e2e-tag-encrypt-update-destination-consequence-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:PutRecord", "firehose:StartDeliveryStreamEncryption", "firehose:TagDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_e2e_tag_encrypt_update_destination_consequence_flow.py", "service": "firehose"} {"check_id": "firehose.e2e-update-destination-stale-version-rejected", "deployments": [], "key": "firehose/e2e-update-destination-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_e2e_update_destination_stale_version_rejected.py", "service": "firehose"} {"check_id": "firehose.empty-record-data-preserved", "deployments": [], "key": "firehose/empty-record-data-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_empty_record_data_preserved.py", "service": "firehose"} {"check_id": "firehose.encryption-status-default-disabled", "deployments": [], "key": "firehose/encryption-status-default-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_encryption_status_default_disabled.py", "service": "firehose"} {"check_id": "firehose.extended-s3-destination-configuration-defaults", "deployments": [], "key": "firehose/extended-s3-destination-configuration-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_extended_s3_destination_configuration_defaults.py", "service": "firehose"} {"check_id": "firehose.file-extension-overrides-the-compression-suffix-without-changing-the-bytes", "deployments": [], "key": "firehose/file-extension-overrides-the-compression-suffix-without-changing-the-bytes", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_file_extension_overrides_the_compression_suffix_without_changing_the_bytes.py", "service": "firehose"} {"check_id": "firehose.firehose-records-land-in-s3", "deployments": [], "key": "firehose/firehose-records-land-in-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_firehose_records_land_in_s3.py", "service": "firehose"} {"check_id": "firehose.kinesis-source-preserves-sequence-number-order", "deployments": [], "key": "firehose/kinesis-source-preserves-sequence-number-order", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_kinesis_source_preserves_sequence_number_order.py", "service": "firehose"} {"check_id": "firehose.kinesis-source-stream-rejects-put-record", "deployments": [], "key": "firehose/kinesis-source-stream-rejects-put-record", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_kinesis_source_stream_rejects_put_record.py", "service": "firehose"} {"check_id": "firehose.list-delivery-streams-excludes-deleted", "deployments": [], "key": "firehose/list-delivery-streams-excludes-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_list_delivery_streams_excludes_deleted.py", "service": "firehose"} {"check_id": "firehose.list-delivery-streams-includes-created", "deployments": [], "key": "firehose/list-delivery-streams-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_list_delivery_streams_includes_created.py", "service": "firehose"} {"check_id": "firehose.list-delivery-streams-pagination-limit", "deployments": [], "key": "firehose/list-delivery-streams-pagination-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:ListDeliveryStreams", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_list_delivery_streams_pagination_limit.py", "service": "firehose"} {"check_id": "firehose.list-tags-for-delivery-stream-limit", "deployments": [], "key": "firehose/list-tags-for-delivery-stream-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_list_tags_for_delivery_stream_limit.py", "service": "firehose"} {"check_id": "firehose.list-tags-limit-exceeds-max", "deployments": [], "key": "firehose/list-tags-limit-exceeds-max", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/firehose/check_list_tags_limit_exceeds_max.py", "service": "firehose"} {"check_id": "firehose.list-tags-nonexistent-stream-not-found", "deployments": [], "key": "firehose/list-tags-nonexistent-stream-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_list_tags_nonexistent_stream_not_found.py", "service": "firehose"} {"check_id": "firehose.processing-configuration-parameter-normalization-and-update-replaces-block", "deployments": [], "key": "firehose/processing-configuration-parameter-normalization-and-update-replaces-block", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_processing_configuration_parameter_normalization_and_update_replaces_block.py", "service": "firehose"} {"check_id": "firehose.put-record-accepts-arbitrary-binary-payload", "deployments": [], "key": "firehose/put-record-accepts-arbitrary-binary-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_accepts_arbitrary_binary_payload.py", "service": "firehose"} {"check_id": "firehose.put-record-base64-binary-blob-preserved", "deployments": [], "key": "firehose/put-record-base64-binary-blob-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_base64_binary_blob_preserved.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-binary-blob-round-trip", "deployments": [], "key": "firehose/put-record-batch-binary-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_batch_binary_blob_round_trip.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-empty-records-list-rejected", "deployments": [], "key": "firehose/put-record-batch-empty-records-list-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_put_record_batch_empty_records_list_rejected.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-exceeds-max-records", "deployments": [], "key": "firehose/put-record-batch-exceeds-max-records", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_batch_exceeds_max_records.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-invalid-source-kinesis-backed-stream", "deployments": [], "key": "firehose/put-record-batch-invalid-source-kinesis-backed-stream", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/firehose/check_put_record_batch_invalid_source_kinesis_backed_stream.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-large-payload-byte-equality-preserved", "deployments": [], "key": "firehose/put-record-batch-large-payload-byte-equality-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_batch_large_payload_byte_equality_preserved.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-oversized-record-rejected", "deployments": [], "key": "firehose/put-record-batch-oversized-record-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_batch_oversized_record_rejected.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-partial-failure-reported", "deployments": [], "key": "firehose/put-record-batch-partial-failure-reported", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_batch_partial_failure_reported.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-preserves-record-order-in-s3-object", "deployments": [], "key": "firehose/put-record-batch-preserves-record-order-in-s3-object", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_batch_preserves_record_order_in_s3_object.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-preserves-relative-order-in-s3", "deployments": [], "key": "firehose/put-record-batch-preserves-relative-order-in-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_batch_preserves_relative_order_in_s3.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-preserves-submission-order-in-s3", "deployments": [], "key": "firehose/put-record-batch-preserves-submission-order-in-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_put_record_batch_preserves_submission_order_in_s3.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-request-size-limit-enforced", "deployments": [], "key": "firehose/put-record-batch-request-size-limit-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_put_record_batch_request_size_limit_enforced.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-response-order-matches-request-order", "deployments": [], "key": "firehose/put-record-batch-response-order-matches-request-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_put_record_batch_response_order_matches_request_order.py", "service": "firehose"} {"check_id": "firehose.put-record-batch-success-all-ids-unique", "deployments": [], "key": "firehose/put-record-batch-success-all-ids-unique", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_batch_success_all_ids_unique.py", "service": "firehose"} {"check_id": "firehose.put-record-binary-blob-byte-equality", "deployments": [], "key": "firehose/put-record-binary-blob-byte-equality", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_put_record_binary_blob_byte_equality.py", "service": "firehose"} {"check_id": "firehose.put-record-binary-blob-round-trip", "deployments": [], "key": "firehose/put-record-binary-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_binary_blob_round_trip.py", "service": "firehose"} {"check_id": "firehose.put-record-data-exceeds-max-size", "deployments": [], "key": "firehose/put-record-data-exceeds-max-size", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_data_exceeds_max_size.py", "service": "firehose"} {"check_id": "firehose.put-record-empty-payload-blocked", "deployments": [], "key": "firehose/put-record-empty-payload-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_empty_payload_blocked.py", "service": "firehose"} {"check_id": "firehose.put-record-invalid-source-kinesis-backed-stream", "deployments": [], "key": "firehose/put-record-invalid-source-kinesis-backed-stream", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_invalid_source_kinesis_backed_stream.py", "service": "firehose"} {"check_id": "firehose.put-record-invalid-source-rejected", "deployments": [], "key": "firehose/put-record-invalid-source-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_invalid_source_rejected.py", "service": "firehose"} {"check_id": "firehose.put-record-invalid-source-stream-rejected", "deployments": [], "key": "firehose/put-record-invalid-source-stream-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_invalid_source_stream_rejected.py", "service": "firehose"} {"check_id": "firehose.put-record-kinesis-source-rejected", "deployments": [], "key": "firehose/put-record-kinesis-source-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_kinesis_source_rejected.py", "service": "firehose"} {"check_id": "firehose.put-record-max-size-payload-boundary-preserved", "deployments": [], "key": "firehose/put-record-max-size-payload-boundary-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_max_size_payload_boundary_preserved.py", "service": "firehose"} {"check_id": "firehose.put-record-nonexistent-stream-not-found", "deployments": [], "key": "firehose/put-record-nonexistent-stream-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_put_record_nonexistent_stream_not_found.py", "service": "firehose"} {"check_id": "firehose.put-record-on-kinesis-source-stream-rejected", "deployments": [], "key": "firehose/put-record-on-kinesis-source-stream-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_on_kinesis_source_stream_rejected.py", "service": "firehose"} {"check_id": "firehose.put-record-oversized-payload-rejected", "deployments": [], "key": "firehose/put-record-oversized-payload-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_oversized_payload_rejected.py", "service": "firehose"} {"check_id": "firehose.put-record-rejected-on-kinesis-source-stream", "deployments": [], "key": "firehose/put-record-rejected-on-kinesis-source-stream", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_rejected_on_kinesis_source_stream.py", "service": "firehose"} {"check_id": "firehose.put-record-rejected-while-stream-creating", "deployments": [], "key": "firehose/put-record-rejected-while-stream-creating", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_put_record_rejected_while_stream_creating.py", "service": "firehose"} {"check_id": "firehose.put-record-returns-unique-record-id", "deployments": [], "key": "firehose/put-record-returns-unique-record-id", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_returns_unique_record_id.py", "service": "firehose"} {"check_id": "firehose.put-record-then-batch-preserve-arrival-order-in-s3", "deployments": [], "key": "firehose/put-record-then-batch-preserve-arrival-order-in-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_then_batch_preserve_arrival_order_in_s3.py", "service": "firehose"} {"check_id": "firehose.put-record-unicode-payload-byte-equal-round-trip", "deployments": [], "key": "firehose/put-record-unicode-payload-byte-equal-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_unicode_payload_byte_equal_round_trip.py", "service": "firehose"} {"check_id": "firehose.put-record-unicode-payload-round-trip", "deployments": [], "key": "firehose/put-record-unicode-payload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_unicode_payload_round_trip.py", "service": "firehose"} {"check_id": "firehose.put-record-unicode-payload-round-trip-to-s3", "deployments": [], "key": "firehose/put-record-unicode-payload-round-trip-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_unicode_payload_round_trip_to_s3.py", "service": "firehose"} {"check_id": "firehose.put-record-unicode-round-trip", "deployments": [], "key": "firehose/put-record-unicode-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_put_record_unicode_round_trip.py", "service": "firehose"} {"check_id": "firehose.record-de-aggregation-json-splits-one-put-across-jq-derived-prefixes", "deployments": [], "key": "firehose/record-de-aggregation-json-splits-one-put-across-jq-derived-prefixes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_record_de_aggregation_json_splits_one_put_across_jq_derived_prefixes.py", "service": "firehose"} {"check_id": "firehose.s3-buffering-hint-controls-delivery-latency", "deployments": [], "key": "firehose/s3-buffering-hint-controls-delivery-latency", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_s3_buffering_hint_controls_delivery_latency.py", "service": "firehose"} {"check_id": "firehose.s3-delivery-triggered-by-buffer-interval-timeout", "deployments": [], "key": "firehose/s3-delivery-triggered-by-buffer-interval-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_s3_delivery_triggered_by_buffer_interval_timeout.py", "service": "firehose"} {"check_id": "firehose.s3-delivery-triggered-by-buffer-size-threshold", "deployments": [], "key": "firehose/s3-delivery-triggered-by-buffer-size-threshold", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_s3_delivery_triggered_by_buffer_size_threshold.py", "service": "firehose"} {"check_id": "firehose.s3-destination-buffering-hints-defaults-applied", "deployments": [], "key": "firehose/s3-destination-buffering-hints-defaults-applied", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_s3_destination_buffering_hints_defaults_applied.py", "service": "firehose"} {"check_id": "firehose.s3-destination-empty-prefix-vs-absent-prefix-preserved", "deployments": [], "key": "firehose/s3-destination-empty-prefix-vs-absent-prefix-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_s3_destination_empty_prefix_vs_absent_prefix_preserved.py", "service": "firehose"} {"check_id": "firehose.s3-destination-prefix-empty-vs-absent-distinguished", "deployments": [], "key": "firehose/s3-destination-prefix-empty-vs-absent-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_s3_destination_prefix_empty_vs_absent_distinguished.py", "service": "firehose"} {"check_id": "firehose.s3-prefix-timestamp-tokens-preserved", "deployments": [], "key": "firehose/s3-prefix-timestamp-tokens-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_s3_prefix_timestamp_tokens_preserved.py", "service": "firehose"} {"check_id": "firehose.server-side-assumes-configured-role-for-s3-put-object", "deployments": [], "key": "firehose/server-side-assumes-configured-role-for-s3-put-object", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_server_side_assumes_configured_role_for_s3_put_object.py", "service": "firehose"} {"check_id": "firehose.server-side-enforces-single-active-role-after-update-destination", "deployments": [], "key": "firehose/server-side-enforces-single-active-role-after-update-destination", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_server_side_enforces_single_active_role_after_update_destination.py", "service": "firehose"} {"check_id": "firehose.server-side-kms-encryption-enforced-for-s3-objects", "deployments": [], "key": "firehose/server-side-kms-encryption-enforced-for-s3-objects", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_server_side_kms_encryption_enforced_for_s3_objects.py", "service": "firehose"} {"check_id": "firehose.server-side-managed-flush-without-explicit-trigger", "deployments": [], "key": "firehose/server-side-managed-flush-without-explicit-trigger", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_server_side_managed_flush_without_explicit_trigger.py", "service": "firehose"} {"check_id": "firehose.server-side-role-permission-enforced-on-delivery", "deployments": [], "key": "firehose/server-side-role-permission-enforced-on-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_server_side_role_permission_enforced_on_delivery.py", "service": "firehose"} {"check_id": "firehose.server-side-role-permission-removal-blocks-delivery", "deployments": [], "key": "firehose/server-side-role-permission-removal-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_server_side_role_permission_removal_blocks_delivery.py", "service": "firehose"} {"check_id": "firehose.snappy-and-hadoop-snappy-are-distinct-compressed-deliveries", "deployments": [], "key": "firehose/snappy-and-hadoop-snappy-are-distinct-compressed-deliveries", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_snappy_and_hadoop_snappy_are_distinct_compressed_deliveries.py", "service": "firehose"} {"check_id": "firehose.splunk-retry-duration-out-of-range-rejected", "deployments": [], "key": "firehose/splunk-retry-duration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_splunk_retry_duration_out_of_range_rejected.py", "service": "firehose"} {"check_id": "firehose.start-encryption-already-enabling-conflict-rejected", "deployments": [], "key": "firehose/start-encryption-already-enabling-conflict-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_start_encryption_already_enabling_conflict_rejected.py", "service": "firehose"} {"check_id": "firehose.start-encryption-enabling-then-enabled", "deployments": [], "key": "firehose/start-encryption-enabling-then-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_start_encryption_enabling_then_enabled.py", "service": "firehose"} {"check_id": "firehose.start-encryption-invalid-key-type-combo", "deployments": [], "key": "firehose/start-encryption-invalid-key-type-combo", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_start_encryption_invalid_key_type_combo.py", "service": "firehose"} {"check_id": "firehose.start-encryption-invalid-kms-key", "deployments": [], "key": "firehose/start-encryption-invalid-kms-key", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/firehose/check_start_encryption_invalid_kms_key.py", "service": "firehose"} {"check_id": "firehose.start-encryption-nonexistent-stream-not-found", "deployments": [], "key": "firehose/start-encryption-nonexistent-stream-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/firehose/check_start_encryption_nonexistent_stream_not_found.py", "service": "firehose"} {"check_id": "firehose.start-encryption-while-stream-creating-rejected", "deployments": [], "key": "firehose/start-encryption-while-stream-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_start_encryption_while_stream_creating_rejected.py", "service": "firehose"} {"check_id": "firehose.start-encryption-while-stream-deleting-rejected", "deployments": [], "key": "firehose/start-encryption-while-stream-deleting-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_start_encryption_while_stream_deleting_rejected.py", "service": "firehose"} {"check_id": "firehose.stop-encryption-disabling-then-disabled", "deployments": [], "key": "firehose/stop-encryption-disabling-then-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_stop_encryption_disabling_then_disabled.py", "service": "firehose"} {"check_id": "firehose.stop-encryption-nonexistent-stream-not-found", "deployments": [], "key": "firehose/stop-encryption-nonexistent-stream-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/firehose/check_stop_encryption_nonexistent_stream_not_found.py", "service": "firehose"} {"check_id": "firehose.stop-encryption-on-unencrypted-stream", "deployments": [], "key": "firehose/stop-encryption-on-unencrypted-stream", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_stop_encryption_on_unencrypted_stream.py", "service": "firehose"} {"check_id": "firehose.stop-encryption-while-update-in-progress-resource-in-use", "deployments": [], "key": "firehose/stop-encryption-while-update-in-progress-resource-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:StartDeliveryStreamEncryption", "firehose:StopDeliveryStreamEncryption", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_stop_encryption_while_update_in_progress_resource_in_use.py", "service": "firehose"} {"check_id": "firehose.stream-status-transitions-creating-to-active", "deployments": [], "key": "firehose/stream-status-transitions-creating-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_stream_status_transitions_creating_to_active.py", "service": "firehose"} {"check_id": "firehose.tag-and-list-tags-roundtrip", "deployments": [], "key": "firehose/tag-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "firehose:UntagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_and_list_tags_roundtrip.py", "service": "firehose"} {"check_id": "firehose.tag-delivery-stream-disallowed-key-character-rejected", "deployments": [], "key": "firehose/tag-delivery-stream-disallowed-key-character-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_delivery_stream_disallowed_key_character_rejected.py", "service": "firehose"} {"check_id": "firehose.tag-delivery-stream-invalid-argument-too-many-tags", "deployments": [], "key": "firehose/tag-delivery-stream-invalid-argument-too-many-tags", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/firehose/check_tag_delivery_stream_invalid_argument_too_many_tags.py", "service": "firehose"} {"check_id": "firehose.tag-delivery-stream-nonexistent-rejected", "deployments": [], "key": "firehose/tag-delivery-stream-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_delivery_stream_nonexistent_rejected.py", "service": "firehose"} {"check_id": "firehose.tag-reserved-aws-prefix-rejected", "deployments": [], "key": "firehose/tag-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_reserved_aws_prefix_rejected.py", "service": "firehose"} {"check_id": "firehose.tag-stream-while-creating-is-accepted", "deployments": [], "key": "firehose/tag-stream-while-creating-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_stream_while_creating_is_accepted.py", "service": "firehose"} {"check_id": "firehose.tag-value-empty-string-preserved", "deployments": [], "key": "firehose/tag-value-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_value_empty_string_preserved.py", "service": "firehose"} {"check_id": "firehose.tag-value-empty-string-preserved-round-trip", "deployments": [], "key": "firehose/tag-value-empty-string-preserved-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_value_empty_string_preserved_round_trip.py", "service": "firehose"} {"check_id": "firehose.tag-value-exceeds-max-length-rejected", "deployments": [], "key": "firehose/tag-value-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_value_exceeds_max_length_rejected.py", "service": "firehose"} {"check_id": "firehose.tag-value-unicode-preserved", "deployments": [], "key": "firehose/tag-value-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_value_unicode_preserved.py", "service": "firehose"} {"check_id": "firehose.tag-value-unicode-round-trip", "deployments": [], "key": "firehose/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_tag_value_unicode_round_trip.py", "service": "firehose"} {"check_id": "firehose.untag-delivery-stream-invalid-tag-key", "deployments": [], "key": "firehose/untag-delivery-stream-invalid-tag-key", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "firehose:UntagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/firehose/check_untag_delivery_stream_invalid_tag_key.py", "service": "firehose"} {"check_id": "firehose.untag-removes-tags", "deployments": [], "key": "firehose/untag-removes-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListTagsForDeliveryStream", "firehose:TagDeliveryStream", "firehose:UntagDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_untag_removes_tags.py", "service": "firehose"} {"check_id": "firehose.update-destination-buffering-hints-numeric-precision-preserved", "deployments": [], "key": "firehose/update-destination-buffering-hints-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_update_destination_buffering_hints_numeric_precision_preserved.py", "service": "firehose"} {"check_id": "firehose.update-destination-change-type-rejected", "deployments": [], "key": "firehose/update-destination-change-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_update_destination_change_type_rejected.py", "service": "firehose"} {"check_id": "firehose.update-destination-immutable-delivery-stream-type", "deployments": [], "key": "firehose/update-destination-immutable-delivery-stream-type", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_update_destination_immutable_delivery_stream_type.py", "service": "firehose"} {"check_id": "firehose.update-destination-invalid-destination-id", "deployments": [], "key": "firehose/update-destination-invalid-destination-id", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions"], "path": "behavioral/firehose/check_update_destination_invalid_destination_id.py", "service": "firehose"} {"check_id": "firehose.update-destination-rejected-while-stream-creating", "deployments": [], "key": "firehose/update-destination-rejected-while-stream-creating", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_update_destination_rejected_while_stream_creating.py", "service": "firehose"} {"check_id": "firehose.update-destination-stale-version-conflict", "deployments": [], "key": "firehose/update-destination-stale-version-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_update_destination_stale_version_conflict.py", "service": "firehose"} {"check_id": "firehose.update-destination-stale-version-id-rejected", "deployments": [], "key": "firehose/update-destination-stale-version-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_update_destination_stale_version_id_rejected.py", "service": "firehose"} {"check_id": "firehose.update-destination-type-change-requires-full-config", "deployments": [], "key": "firehose/update-destination-type-change-requires-full-config", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:TagRole", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_update_destination_type_change_requires_full_config.py", "service": "firehose"} {"check_id": "firehose.update-destination-unknown-destination-id", "deployments": [], "key": "firehose/update-destination-unknown-destination-id", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/firehose/check_update_destination_unknown_destination_id.py", "service": "firehose"} {"check_id": "firehose.update-destination-version-increment", "deployments": [], "key": "firehose/update-destination-version-increment", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:UpdateDestination", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose/check_update_destination_version_increment.py", "service": "firehose"} {"check_id": "firehose.zip-compression-delivers-a-readable-zip-archive", "deployments": [], "key": "firehose/zip-compression-delivers-a-readable-zip-archive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose/check_zip_compression_delivers_a_readable_zip_archive.py", "service": "firehose"} {"check_id": "firehose__glue__s3.firehose-parquet-conversion-rejects-a-schema-mismatched-record-to-the-error-prefix", "deployments": [], "key": "firehose__glue__s3/firehose-parquet-conversion-rejects-a-schema-mismatched-record-to-the-error-prefix", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__glue__s3/check_firehose_parquet_conversion_rejects_a_schema_mismatched_record_to_the_error_prefix.py", "service": "firehose__glue__s3"} {"check_id": "firehose__glue__s3.format-conversion-error-code-distinguishes-malformed-data-from-parse-error", "deployments": [], "key": "firehose__glue__s3/format-conversion-error-code-distinguishes-malformed-data-from-parse-error", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/firehose__glue__s3/check_format_conversion_error_code_distinguishes_malformed_data_from_parse_error.py", "service": "firehose__glue__s3"} {"check_id": "firehose__iam__opensearch__s3.xsvc-opensearch-1-firehose-fgac-strict-mapping-indexes-only-conforming-documents", "deployments": [], "key": "firehose__iam__opensearch__s3/xsvc-opensearch-1-firehose-fgac-strict-mapping-indexes-only-conforming-documents", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/firehose__iam__opensearch__s3/check_xsvc_opensearch_1_firehose_fgac_strict_mapping_indexes_only_conforming_documents.py", "service": "firehose__iam__opensearch__s3"} {"check_id": "firehose__iam__opensearch__s3.xsvc-opensearch-1-firehose-fgac-strict-mapping-routes-conflicts-to-s3", "deployments": [], "key": "firehose__iam__opensearch__s3/xsvc-opensearch-1-firehose-fgac-strict-mapping-routes-conflicts-to-s3", "labels": ["axis:happy-path", "dp:native", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/firehose__iam__opensearch__s3/check_xsvc_opensearch_1_firehose_fgac_strict_mapping_routes_conflicts_to_s3.py", "service": "firehose__iam__opensearch__s3"} {"check_id": "firehose__iam__opensearch__s3.xsvc-opensearch-1-firehose-unmapped-role-denied-all-records-to-s3", "deployments": [], "key": "firehose__iam__opensearch__s3/xsvc-opensearch-1-firehose-unmapped-role-denied-all-records-to-s3", "labels": ["axis:rejection", "dp:native", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/firehose__iam__opensearch__s3/check_xsvc_opensearch_1_firehose_unmapped_role_denied_all_records_to_s3.py", "service": "firehose__iam__opensearch__s3"} {"check_id": "firehose__kinesis__s3.cfn-deploy-firehose-missing-kinesis-permission-negative", "deployments": [], "key": "firehose__kinesis__s3/cfn-deploy-firehose-missing-kinesis-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:PutRolePolicy", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "logs:GetLogEvents", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_cfn_deploy_firehose_missing_kinesis_permission_negative.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cfn-deploy-firehose-missing-s3-permission-negative", "deployments": [], "key": "firehose__kinesis__s3/cfn-deploy-firehose-missing-s3-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesis:PutRecord", "logs:GetLogEvents", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_cfn_deploy_firehose_missing_s3_permission_negative.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cfn-deploy-kinesis-firehose-s3-stack-positive", "deployments": [], "key": "firehose__kinesis__s3/cfn-deploy-kinesis-firehose-s3-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "kinesis:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_cfn_deploy_kinesis_firehose_s3_stack_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cfn-firehose-role-trust-policy-from-template-positive", "deployments": [], "key": "firehose__kinesis__s3/cfn-firehose-role-trust-policy-from-template-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "firehose:DescribeDeliveryStream", "iam:GetRole", "kinesis:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_cfn_firehose_role_trust_policy_from_template_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cfn-stack-update-firehose-s3-prefix-positive", "deployments": [], "key": "firehose__kinesis__s3/cfn-stack-update-firehose-s3-prefix-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kinesis:PutRecord", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_cfn_stack_update_firehose_s3_prefix_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cli-firehose-create-delivery-stream-describe-s3-destination", "deployments": [], "key": "firehose__kinesis__s3/cli-firehose-create-delivery-stream-describe-s3-destination", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_cli_firehose_create_delivery_stream_describe_s3_destination.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cli-firehose-describe-nonexistent-delivery-stream-negative", "deployments": [], "key": "firehose__kinesis__s3/cli-firehose-describe-nonexistent-delivery-stream-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_cli_firehose_describe_nonexistent_delivery_stream_negative.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cli-firehose-update-destination-bucket-workflow", "deployments": [], "key": "firehose__kinesis__s3/cli-firehose-update-destination-bucket-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_cli_firehose_update_destination_bucket_workflow.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cli-kinesis-describe-stream-firehose-source-consistency", "deployments": [], "key": "firehose__kinesis__s3/cli-kinesis-describe-stream-firehose-source-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_cli_kinesis_describe_stream_firehose_source_consistency.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.cli-kinesis-put-record-firehose-delivers-s3-workflow", "deployments": [], "key": "firehose__kinesis__s3/cli-kinesis-put-record-firehose-delivers-s3-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_cli_kinesis_put_record_firehose_delivers_s3_workflow.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-delivery-role-used-for-s3-putobject-positive", "deployments": [], "key": "firehose__kinesis__s3/firehose-delivery-role-used-for-s3-putobject-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_firehose_delivery_role_used_for_s3_putobject_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-kinesis-source-delivers-to-s3-positive", "deployments": [], "key": "firehose__kinesis__s3/firehose-kinesis-source-delivers-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/firehose__kinesis__s3/check_firehose_kinesis_source_delivers_to_s3_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-kinesis-source-missing-role-permission-negative", "deployments": [], "key": "firehose__kinesis__s3/firehose-kinesis-source-missing-role-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_firehose_kinesis_source_missing_role_permission_negative.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-kinesis-source-record-payload-preserved", "deployments": [], "key": "firehose__kinesis__s3/firehose-kinesis-source-record-payload-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_firehose_kinesis_source_record_payload_preserved.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-kinesis-source-resumes-after-shard-iterator-reset", "deployments": [], "key": "firehose__kinesis__s3/firehose-kinesis-source-resumes-after-shard-iterator-reset", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_firehose_kinesis_source_resumes_after_shard_iterator_reset.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-role-missing-trust-relationship-negative", "deployments": [], "key": "firehose__kinesis__s3/firehose-role-missing-trust-relationship-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_firehose_role_missing_trust_relationship_negative.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-role-trust-mismatched-service-principal-negative", "deployments": [], "key": "firehose__kinesis__s3/firehose-role-trust-mismatched-service-principal-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_firehose_role_trust_mismatched_service_principal_negative.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-s3-buffering-hints-flush-positive", "deployments": [], "key": "firehose__kinesis__s3/firehose-s3-buffering-hints-flush-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/firehose__kinesis__s3/check_firehose_s3_buffering_hints_flush_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-s3-destination-mismatched-bucket-arn-negative", "deployments": [], "key": "firehose__kinesis__s3/firehose-s3-destination-mismatched-bucket-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_firehose_s3_destination_mismatched_bucket_arn_negative.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.firehose-s3-prefix-partitioning-positive", "deployments": [], "key": "firehose__kinesis__s3/firehose-s3-prefix-partitioning-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_firehose_s3_prefix_partitioning_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.iam-role-trusts-firehose-service-positive", "deployments": [], "key": "firehose__kinesis__s3/iam-role-trusts-firehose-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__kinesis__s3/check_iam_role_trusts_firehose_service_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.s3-replication-role-trust-policy-positive", "deployments": [], "key": "firehose__kinesis__s3/s3-replication-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/firehose__kinesis__s3/check_s3_replication_role_trust_policy_positive.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__kinesis__s3.s3-role-missing-trust-relationship-negative", "deployments": [], "key": "firehose__kinesis__s3/s3-role-missing-trust-relationship-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/firehose__kinesis__s3/check_s3_role_missing_trust_relationship_negative.py", "service": "firehose__kinesis__s3"} {"check_id": "firehose__lambda__s3.firehose-backup-mode-writes-the-source-record-alongside-the-transformed-one", "deployments": [], "key": "firehose__lambda__s3/firehose-backup-mode-writes-the-source-record-alongside-the-transformed-one", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__lambda__s3/check_firehose_backup_mode_writes_the_source_record_alongside_the_transformed_one.py", "service": "firehose__lambda__s3"} {"check_id": "firehose__lambda__s3.firehose-http-endpoint-rejected-batch-is-retried-then-persisted-with-the-endpoint-error-message", "deployments": [], "key": "firehose__lambda__s3/firehose-http-endpoint-rejected-batch-is-retried-then-persisted-with-the-endpoint-error-message", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose__lambda__s3/check_firehose_http_endpoint_rejected_batch_is_retried_then_persisted_with_the_endpoint_error_message.py", "service": "firehose__lambda__s3"} {"check_id": "firehose__lambda__s3.firehose-http-endpoint-request-envelope-conforms-to-the-documented-protocol", "deployments": [], "key": "firehose__lambda__s3/firehose-http-endpoint-request-envelope-conforms-to-the-documented-protocol", "labels": ["axis:happy-path", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecordBatch", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose__lambda__s3/check_firehose_http_endpoint_request_envelope_conforms_to_the_documented_protocol.py", "service": "firehose__lambda__s3"} {"check_id": "firehose__lambda__s3.firehose-lambda-transform-rewrites-the-delivered-bytes", "deployments": [], "key": "firehose__lambda__s3/firehose-lambda-transform-rewrites-the-delivered-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__lambda__s3/check_firehose_lambda_transform_rewrites_the_delivered_bytes.py", "service": "firehose__lambda__s3"} {"check_id": "firehose__lambda__s3.firehose-processing-failed-records-land-under-the-error-output-prefix", "deployments": [], "key": "firehose__lambda__s3/firehose-processing-failed-records-land-under-the-error-output-prefix", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__lambda__s3/check_firehose_processing_failed_records_land_under_the_error_output_prefix.py", "service": "firehose__lambda__s3"} {"check_id": "firehose__logs__s3.cloudwatch-log-processing-stream-rejects-direct-put-record-from-non-cloudwatch-source", "deployments": [], "key": "firehose__logs__s3/cloudwatch-log-processing-stream-rejects-direct-put-record-from-non-cloudwatch-source", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/firehose__logs__s3/check_cloudwatch_log_processing_stream_rejects_direct_put_record_from_non_cloudwatch_source.py", "service": "firehose__logs__s3"} {"check_id": "firehose__logs__s3.cloudwatch-logging-options-emits-the-s3-access-denied-error-while-the-healthy-twin-logs-nothing", "deployments": [], "key": "firehose__logs__s3/cloudwatch-logging-options-emits-the-s3-access-denied-error-while-the-healthy-twin-logs-nothing", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/firehose__logs__s3/check_cloudwatch_logging_options_emits_the_s3_access_denied_error_while_the_healthy_twin_logs_nothing.py", "service": "firehose__logs__s3"} {"check_id": "firehose__logs__s3.subscription-filter-to-firehose-decompression-strips-cwl-envelope", "deployments": [], "key": "firehose__logs__s3/subscription-filter-to-firehose-decompression-strips-cwl-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/firehose__logs__s3/check_subscription_filter_to_firehose_decompression_strips_cwl_envelope.py", "service": "firehose__logs__s3"} {"check_id": "firehose__s3.firehose-destination-repointed-mid-stream-and-the-differential-barrier-proves-the-switch", "deployments": [], "key": "firehose__s3/firehose-destination-repointed-mid-stream-and-the-differential-barrier-proves-the-switch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_destination_repointed_mid_stream_and_the_differential_barrier_proves_the_switch.py", "service": "firehose__s3"} {"check_id": "firehose__s3.firehose-dynamic-partitioning-places-records-in-jq-derived-prefixes", "deployments": [], "key": "firehose__s3/firehose-dynamic-partitioning-places-records-in-jq-derived-prefixes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_dynamic_partitioning_places_records_in_jq_derived_prefixes.py", "service": "firehose__s3"} {"check_id": "firehose__s3.firehose-eighty-concurrent-records-all-arrive-uncorrupted-with-producer-attribution", "deployments": [], "key": "firehose__s3/firehose-eighty-concurrent-records-all-arrive-uncorrupted-with-producer-attribution", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_eighty_concurrent_records_all_arrive_uncorrupted_with_producer_attribution.py", "service": "firehose__s3"} {"check_id": "firehose__s3.firehose-gzip-compressed-delivery-decompresses-to-the-exact-records", "deployments": [], "key": "firehose__s3/firehose-gzip-compressed-delivery-decompresses-to-the-exact-records", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_gzip_compressed_delivery_decompresses_to_the_exact_records.py", "service": "firehose__s3"} {"check_id": "firehose__s3.firehose-put-record-batch-above-five-hundred-records-rejected-and-none-delivered", "deployments": [], "key": "firehose__s3/firehose-put-record-batch-above-five-hundred-records-rejected-and-none-delivered", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_put_record_batch_above_five_hundred_records_rejected_and_none_delivered.py", "service": "firehose__s3"} {"check_id": "firehose__s3.firehose-put-record-batch-delivers-to-s3", "deployments": [], "key": "firehose__s3/firehose-put-record-batch-delivers-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_put_record_batch_delivers_to_s3.py", "service": "firehose__s3"} {"check_id": "firehose__s3.firehose-put-record-delivers-to-s3", "deployments": [], "key": "firehose__s3/firehose-put-record-delivers-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_put_record_delivers_to_s3.py", "service": "firehose__s3"} {"check_id": "firehose__s3.firehose-record-above-the-per-record-ceiling-rejected-while-a-just-under-record-delivers", "deployments": [], "key": "firehose__s3/firehose-record-above-the-per-record-ceiling-rejected-while-a-just-under-record-delivers", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_record_above_the_per_record_ceiling_rejected_while_a_just_under_record_delivers.py", "service": "firehose__s3"} {"check_id": "firehose__s3.firehose-s3-prefix-timestamp-namespace-and-buffering", "deployments": [], "key": "firehose__s3/firehose-s3-prefix-timestamp-namespace-and-buffering", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/firehose__s3/check_firehose_s3_prefix_timestamp_namespace_and_buffering.py", "service": "firehose__s3"} {"check_id": "firehose__s3__sesv2.firehose-destination-delivers-two-send-events-within-the-buffering-interval", "deployments": [], "key": "firehose__s3__sesv2/firehose-destination-delivers-two-send-events-within-the-buffering-interval", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "route53:ListHostedZones", "route53:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail"], "path": "behavioral/firehose__s3__sesv2/check_firehose_destination_delivers_two_send_events_within_the_buffering_interval.py", "service": "firehose__s3__sesv2"} {"check_id": "firehose__s3__sesv2.firehose-destination-rejects-a-role-the-stream-cannot-be-assumed-by", "deployments": [], "key": "firehose__s3__sesv2/firehose-destination-rejects-a-role-the-stream-cannot-be-assumed-by", "labels": ["axis:rejection", "plane:control"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSetEventDestinations"], "path": "behavioral/firehose__s3__sesv2/check_firehose_destination_rejects_a_role_the_stream_cannot_be_assumed_by.py", "service": "firehose__s3__sesv2"} {"check_id": "fis.concurrent-start-experiment-single-winner", "deployments": [], "key": "fis/concurrent-start-experiment-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_concurrent_start_experiment_single_winner.py", "service": "fis"} {"check_id": "fis.concurrent-target-account-configuration-updates-last-write-wins", "deployments": [], "key": "fis/concurrent-target-account-configuration-updates-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "fis:UpdateTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_concurrent_target_account_configuration_updates_last_write_wins.py", "service": "fis"} {"check_id": "fis.create-experiment-template-wait-duration-exceeds-max-rejected", "deployments": [], "key": "fis/create-experiment-template-wait-duration-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperimentTemplate", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_create_experiment_template_wait_duration_exceeds_max_rejected.py", "service": "fis"} {"check_id": "fis.create-target-account-configuration-duplicate-conflict", "deployments": [], "key": "fis/create-target-account-configuration-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_create_target_account_configuration_duplicate_conflict.py", "service": "fis"} {"check_id": "fis.create-target-account-configuration-malformed-role-arn-rejected", "deployments": [], "key": "fis/create-target-account-configuration-malformed-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_create_target_account_configuration_malformed_role_arn_rejected.py", "service": "fis"} {"check_id": "fis.create-target-account-configuration-out-of-range-account-id-rejected", "deployments": [], "key": "fis/create-target-account-configuration-out-of-range-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "fis:ListTargetAccountConfigurations", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_create_target_account_configuration_out_of_range_account_id_rejected.py", "service": "fis"} {"check_id": "fis.delete-target-account-configuration-running-experiment-isolated", "deployments": [], "key": "fis/delete-target-account-configuration-running-experiment-isolated", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetExperiment", "fis:GetExperimentTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "fis:StartExperiment", "fis:StopExperiment", "fis:UpdateTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_delete_target_account_configuration_running_experiment_isolated.py", "service": "fis"} {"check_id": "fis.deploy-experiment-template-cloudformation-then-start", "deployments": [], "key": "fis/deploy-experiment-template-cloudformation-then-start", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "fis:GetExperiment", "fis:GetExperimentTemplate", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_deploy_experiment_template_cloudformation_then_start.py", "service": "fis"} {"check_id": "fis.deploy-experiment-template-via-cloudformation-starts-experiment", "deployments": [], "key": "fis/deploy-experiment-template-via-cloudformation-starts-experiment", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "fis:GetExperiment", "fis:GetExperimentTemplate", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_deploy_experiment_template_via_cloudformation_starts_experiment.py", "service": "fis"} {"check_id": "fis.e2e-experiment-create-start-observe-stop-teardown", "deployments": [], "key": "fis/e2e-experiment-create-start-observe-stop-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetAction", "fis:GetExperiment", "fis:GetExperimentTemplate", "fis:ListExperimentResolvedTargets", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_e2e_experiment_create_start_observe_stop_teardown.py", "service": "fis"} {"check_id": "fis.e2e-experiment-full-flow-with-target-accounts", "deployments": [], "key": "fis/e2e-experiment-full-flow-with-target-accounts", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetExperiment", "fis:GetExperimentTargetAccountConfiguration", "fis:GetExperimentTemplate", "fis:GetTargetAccountConfiguration", "fis:ListExperimentResolvedTargets", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_e2e_experiment_full_flow_with_target_accounts.py", "service": "fis"} {"check_id": "fis.experiment-halts-on-stop-condition-breach", "deployments": [], "key": "fis/experiment-halts-on-stop-condition-breach", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_experiment_halts_on_stop_condition_breach.py", "service": "fis"} {"check_id": "fis.experiment-lifecycle-pending-to-completed", "deployments": [], "key": "fis/experiment-lifecycle-pending-to-completed", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_experiment_lifecycle_pending_to_completed.py", "service": "fis"} {"check_id": "fis.experiment-options-empty-vs-absent-preserved", "deployments": [], "key": "fis/experiment-options-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_experiment_options_empty_vs_absent_preserved.py", "service": "fis"} {"check_id": "fis.experiment-resolved-targets-available-only-while-active", "deployments": [], "key": "fis/experiment-resolved-targets-available-only-while-active", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperimentResolvedTargets", "fis:StartExperiment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_experiment_resolved_targets_available_only_while_active.py", "service": "fis"} {"check_id": "fis.experiment-tags-round-trip-through-start", "deployments": [], "key": "fis/experiment-tags-round-trip-through-start", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_experiment_tags_round_trip_through_start.py", "service": "fis"} {"check_id": "fis.experiment-tags-unicode-preserved", "deployments": [], "key": "fis/experiment-tags-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_experiment_tags_unicode_preserved.py", "service": "fis"} {"check_id": "fis.fis-injected-api-internal-error-fails-a-role-scoped-ec2-call-and-spares-a-control-caller", "deployments": [], "key": "fis/fis-injected-api-internal-error-fails-a-role-scoped-ec2-call-and-spares-a-control-caller", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeRegions", "fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetAction", "fis:GetExperiment", "fis:GetExperimentTemplate", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_fis_injected_api_internal_error_fails_a_role_scoped_ec2_call_and_spares_a_control_caller.py", "service": "fis"} {"check_id": "fis.fis-reboot-instances-restarts-the-guest-kernel-and-the-boot-id-changes", "deployments": [], "key": "fis/fis-reboot-instances-restarts-the-guest-kernel-and-the-boot-id-changes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceStatus", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:GetConsoleOutput", "ec2:RunInstances", "ec2:TerminateInstances", "fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:GetExperimentTemplate", "fis:ListExperimentResolvedTargets", "fis:StartExperiment", "fis:StopExperiment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_fis_reboot_instances_restarts_the_guest_kernel_and_the_boot_id_changes.py", "service": "fis"} {"check_id": "fis.fis-stop-condition-breach-halts-a-live-api-fault-and-the-fault-actually-stops", "deployments": [], "key": "fis/fis-stop-condition-breach-halts-a-live-api-fault-and-the-fault-actually-stops", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "ec2:DescribeAvailabilityZones", "fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:GetExperimentTemplate", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_fis_stop_condition_breach_halts_a_live_api_fault_and_the_fault_actually_stops.py", "service": "fis"} {"check_id": "fis.get-experiment-malformed-id-validation-rejected", "deployments": [], "key": "fis/get-experiment-malformed-id-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_get_experiment_malformed_id_validation_rejected.py", "service": "fis"} {"check_id": "fis.get-experiment-target-account-configuration-cross-experiment-not-found", "deployments": [], "key": "fis/get-experiment-target-account-configuration-cross-experiment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetExperiment", "fis:GetExperimentTargetAccountConfiguration", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_get_experiment_target_account_configuration_cross_experiment_not_found.py", "service": "fis"} {"check_id": "fis.get-experiment-target-account-configuration-not-found-rejected", "deployments": [], "key": "fis/get-experiment-target-account-configuration-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetExperiment", "fis:GetExperimentTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_get_experiment_target_account_configuration_not_found_rejected.py", "service": "fis"} {"check_id": "fis.get-experiment-unknown-id-not-found", "deployments": [], "key": "fis/get-experiment-unknown-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_get_experiment_unknown_id_not_found.py", "service": "fis"} {"check_id": "fis.list-experiment-resolved-targets-reflects-server-side-resolution", "deployments": [], "key": "fis/list-experiment-resolved-targets-reflects-server-side-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperimentResolvedTargets", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_list_experiment_resolved_targets_reflects_server_side_resolution.py", "service": "fis"} {"check_id": "fis.list-experiments-filters-by-experiment-template-id", "deployments": [], "key": "fis/list-experiments-filters-by-experiment-template-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_list_experiments_filters_by_experiment_template_id.py", "service": "fis"} {"check_id": "fis.list-experiments-invalid-filter-rejected", "deployments": [], "key": "fis/list-experiments-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_list_experiments_invalid_filter_rejected.py", "service": "fis"} {"check_id": "fis.list-experiments-malformed-filter-rejected", "deployments": [], "key": "fis/list-experiments-malformed-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_list_experiments_malformed_filter_rejected.py", "service": "fis"} {"check_id": "fis.list-target-account-configurations-invalid-token-rejected", "deployments": [], "key": "fis/list-target-account-configurations-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:ListTargetAccountConfigurations", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_list_target_account_configurations_invalid_token_rejected.py", "service": "fis"} {"check_id": "fis.list-target-account-configurations-pagination-covers-all-accounts", "deployments": [], "key": "fis/list-target-account-configurations-pagination-covers-all-accounts", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetExperiment", "fis:ListExperimentTargetAccountConfigurations", "fis:ListTargetAccountConfigurations", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_list_target_account_configurations_pagination_covers_all_accounts.py", "service": "fis"} {"check_id": "fis.start-experiment-already-running-conflict", "deployments": [], "key": "fis/start-experiment-already-running-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_start_experiment_already_running_conflict.py", "service": "fis"} {"check_id": "fis.start-experiment-insufficient-role-permissions-denied", "deployments": [], "key": "fis/start-experiment-insufficient-role-permissions-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_start_experiment_insufficient_role_permissions_denied.py", "service": "fis"} {"check_id": "fis.start-experiment-missing-template-not-found", "deployments": [], "key": "fis/start-experiment-missing-template-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:GetExperimentTemplate", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_start_experiment_missing_template_not_found.py", "service": "fis"} {"check_id": "fis.start-experiment-nonexistent-template-not-found", "deployments": [], "key": "fis/start-experiment-nonexistent-template-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_start_experiment_nonexistent_template_not_found.py", "service": "fis"} {"check_id": "fis.start-experiment-service-quota-exceeded", "deployments": [], "key": "fis/start-experiment-service-quota-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:ListExperiments", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_start_experiment_service_quota_exceeded.py", "service": "fis"} {"check_id": "fis.start-experiment-transitions-to-running-then-completed", "deployments": [], "key": "fis/start-experiment-transitions-to-running-then-completed", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_start_experiment_transitions_to_running_then_completed.py", "service": "fis"} {"check_id": "fis.start-experiment-with-role-lacking-permissions-denied", "deployments": [], "key": "fis/start-experiment-with-role-lacking-permissions-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_start_experiment_with_role_lacking_permissions_denied.py", "service": "fis"} {"check_id": "fis.stop-completed-experiment-rejected", "deployments": [], "key": "fis/stop-completed-experiment-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_stop_completed_experiment_rejected.py", "service": "fis"} {"check_id": "fis.stop-experiment-already-stopped-rejected", "deployments": [], "key": "fis/stop-experiment-already-stopped-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_stop_experiment_already_stopped_rejected.py", "service": "fis"} {"check_id": "fis.stop-experiment-is-server-managed-terminal", "deployments": [], "key": "fis/stop-experiment-is-server-managed-terminal", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_stop_experiment_is_server_managed_terminal.py", "service": "fis"} {"check_id": "fis.stop-experiment-transitions-running-to-stopped", "deployments": [], "key": "fis/stop-experiment-transitions-running-to-stopped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/fis/check_stop_experiment_transitions_running_to_stopped.py", "service": "fis"} {"check_id": "fis.stop-experiment-transitions-to-stopped", "deployments": [], "key": "fis/stop-experiment-transitions-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:DeleteExperimentTemplate", "fis:GetExperiment", "fis:StartExperiment", "fis:StopExperiment", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_stop_experiment_transitions_to_stopped.py", "service": "fis"} {"check_id": "fis.target-account-configuration-empty-vs-absent-role-arn-preserved", "deployments": [], "key": "fis/target-account-configuration-empty-vs-absent-role-arn-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_target_account_configuration_empty_vs_absent_role_arn_preserved.py", "service": "fis"} {"check_id": "fis.target-account-configuration-invalid-account-id-rejected", "deployments": [], "key": "fis/target-account-configuration-invalid-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:ListTargetAccountConfigurations", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_target_account_configuration_invalid_account_id_rejected.py", "service": "fis"} {"check_id": "fis.target-account-configuration-invalid-role-arn-rejected", "deployments": [], "key": "fis/target-account-configuration-invalid-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_target_account_configuration_invalid_role_arn_rejected.py", "service": "fis"} {"check_id": "fis.target-account-configuration-lifecycle", "deployments": [], "key": "fis/target-account-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "fis:UpdateTargetAccountConfiguration", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/fis/check_target_account_configuration_lifecycle.py", "service": "fis"} {"check_id": "fis.target-account-configuration-role-arn-round-trip", "deployments": [], "key": "fis/target-account-configuration-role-arn-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_target_account_configuration_role_arn_round_trip.py", "service": "fis"} {"check_id": "fis.target-account-configuration-unicode-description-round-trip", "deployments": [], "key": "fis/target-account-configuration-unicode-description-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_target_account_configuration_unicode_description_round_trip.py", "service": "fis"} {"check_id": "fis.update-target-account-configuration-malformed-role-arn-rejected", "deployments": [], "key": "fis/update-target-account-configuration-malformed-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:GetTargetAccountConfiguration", "fis:UpdateTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_update_target_account_configuration_malformed_role_arn_rejected.py", "service": "fis"} {"check_id": "fis.update-target-account-configuration-nonexistent-not-found", "deployments": [], "key": "fis/update-target-account-configuration-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:GetTargetAccountConfiguration", "fis:ListTargetAccountConfigurations", "fis:UpdateTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_update_target_account_configuration_nonexistent_not_found.py", "service": "fis"} {"check_id": "fis.update-target-account-configuration-nonexistent-rejected", "deployments": [], "key": "fis/update-target-account-configuration-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fis:CreateExperimentTemplate", "fis:CreateTargetAccountConfiguration", "fis:DeleteExperimentTemplate", "fis:DeleteTargetAccountConfiguration", "fis:GetTargetAccountConfiguration", "fis:UpdateTargetAccountConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/fis/check_update_target_account_configuration_nonexistent_rejected.py", "service": "fis"} {"check_id": "fms.batch-associate-resource-without-admin-rejected", "deployments": [], "key": "fms/batch-associate-resource-without-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:BatchAssociateResource", "sts:GetCallerIdentity"], "path": "behavioral/fms/check_batch_associate_resource_without_admin_rejected.py", "service": "fms"} {"check_id": "fms.batch-disassociate-resource-without-admin-rejected", "deployments": [], "key": "fms/batch-disassociate-resource-without-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:BatchDisassociateResource", "sts:GetCallerIdentity"], "path": "behavioral/fms/check_batch_disassociate_resource_without_admin_rejected.py", "service": "fms"} {"check_id": "fms.delete-apps-list-without-admin-rejected", "deployments": [], "key": "fms/delete-apps-list-without-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:DeleteAppsList"], "path": "behavioral/fms/check_delete_apps_list_without_admin_rejected.py", "service": "fms"} {"check_id": "fms.delete-policy-malformed-id-rejected", "deployments": [], "key": "fms/delete-policy-malformed-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:DeletePolicy", "fms:GetPolicy"], "path": "behavioral/fms/check_delete_policy_malformed_id_rejected.py", "service": "fms"} {"check_id": "fms.delete-protocols-list-without-admin-rejected", "deployments": [], "key": "fms/delete-protocols-list-without-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:DeleteProtocolsList"], "path": "behavioral/fms/check_delete_protocols_list_without_admin_rejected.py", "service": "fms"} {"check_id": "fms.disassociate-third-party-firewall-not-admin-rejected", "deployments": [], "key": "fms/disassociate-third-party-firewall-not-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:DisassociateThirdPartyFirewall"], "path": "behavioral/fms/check_disassociate_third_party_firewall_not_admin_rejected.py", "service": "fms"} {"check_id": "fms.get-admin-account-unconfigured-not-found", "deployments": [], "key": "fms/get-admin-account-unconfigured-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetAdminAccount"], "path": "behavioral/fms/check_get_admin_account_unconfigured_not_found.py", "service": "fms"} {"check_id": "fms.get-admin-scope-malformed-account-rejected", "deployments": [], "key": "fms/get-admin-scope-malformed-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetAdminScope", "organizations:DescribeOrganization"], "path": "behavioral/fms/check_get_admin_scope_malformed_account_rejected.py", "service": "fms"} {"check_id": "fms.get-apps-list-nonexistent-not-found", "deployments": [], "key": "fms/get-apps-list-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetAdminAccount", "fms:GetAppsList"], "path": "behavioral/fms/check_get_apps_list_nonexistent_not_found.py", "service": "fms"} {"check_id": "fms.get-notification-channel-unconfigured-not-found", "deployments": [], "key": "fms/get-notification-channel-unconfigured-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetNotificationChannel"], "path": "behavioral/fms/check_get_notification_channel_unconfigured_not_found.py", "service": "fms"} {"check_id": "fms.get-policy-nonexistent-not-found", "deployments": [], "key": "fms/get-policy-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetPolicy"], "path": "behavioral/fms/check_get_policy_nonexistent_not_found.py", "service": "fms"} {"check_id": "fms.get-protocols-list-nonexistent-without-admin-rejected", "deployments": [], "key": "fms/get-protocols-list-nonexistent-without-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetProtocolsList"], "path": "behavioral/fms/check_get_protocols_list_nonexistent_without_admin_rejected.py", "service": "fms"} {"check_id": "fms.get-third-party-firewall-association-status-unconfigured-not-found", "deployments": [], "key": "fms/get-third-party-firewall-association-status-unconfigured-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetThirdPartyFirewallAssociationStatus"], "path": "behavioral/fms/check_get_third_party_firewall_association_status_unconfigured_not_found.py", "service": "fms"} {"check_id": "fms.list-admin-accounts-for-organization-unconfigured-not-found", "deployments": [], "key": "fms/list-admin-accounts-for-organization-unconfigured-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetAdminAccount", "fms:ListAdminAccountsForOrganization", "organizations:DescribeOrganization"], "path": "behavioral/fms/check_list_admin_accounts_for_organization_unconfigured_not_found.py", "service": "fms"} {"check_id": "fms.list-admins-managing-account-unconfigured-not-found", "deployments": [], "key": "fms/list-admins-managing-account-unconfigured-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:ListAdminsManagingAccount"], "path": "behavioral/fms/check_list_admins_managing_account_unconfigured_not_found.py", "service": "fms"} {"check_id": "fms.list-discovered-resources-non-admin-rejected", "deployments": [], "key": "fms/list-discovered-resources-non-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:ListDiscoveredResources", "sts:GetCallerIdentity"], "path": "behavioral/fms/check_list_discovered_resources_non_admin_rejected.py", "service": "fms"} {"check_id": "fms.list-member-accounts-unconfigured-not-found", "deployments": [], "key": "fms/list-member-accounts-unconfigured-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:ListMemberAccounts"], "path": "behavioral/fms/check_list_member_accounts_unconfigured_not_found.py", "service": "fms"} {"check_id": "fms.list-tags-for-resource-malformed-arn-rejected", "deployments": [], "key": "fms/list-tags-for-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/fms/check_list_tags_for_resource_malformed_arn_rejected.py", "service": "fms"} {"check_id": "fms.put-apps-list-without-admin-rejected", "deployments": [], "key": "fms/put-apps-list-without-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetAdminAccount", "fms:ListAppsLists", "fms:PutAppsList"], "path": "behavioral/fms/check_put_apps_list_without_admin_rejected.py", "service": "fms"} {"check_id": "fms.put-notification-channel-deploy-round-trip", "deployments": [], "key": "fms/put-notification-channel-deploy-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:DeleteNotificationChannel", "fms:GetNotificationChannel", "fms:PutNotificationChannel", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/fms/check_put_notification_channel_deploy_round_trip.py", "service": "fms"} {"check_id": "fms.put-protocols-list-without-admin-rejected", "deployments": [], "key": "fms/put-protocols-list-without-admin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetAdminAccount", "fms:ListProtocolsLists", "fms:PutProtocolsList"], "path": "behavioral/fms/check_put_protocols_list_without_admin_rejected.py", "service": "fms"} {"check_id": "fms.put-resource-set-invalid-resource-type-rejected", "deployments": [], "key": "fms/put-resource-set-invalid-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:GetAdminAccount", "fms:ListResourceSets", "fms:PutResourceSet"], "path": "behavioral/fms/check_put_resource_set_invalid_resource_type_rejected.py", "service": "fms"} {"check_id": "fms.tag-resource-nonexistent-policy-arn-not-found", "deployments": [], "key": "fms/tag-resource-nonexistent-policy-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["fms:ListTagsForResource", "fms:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/fms/check_tag_resource_nonexistent_policy_arn_not_found.py", "service": "fms"} {"check_id": "freetier.account-plan-state-account-id-matches-caller-identity", "deployments": [], "key": "freetier/account-plan-state-account-id-matches-caller-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetAccountPlanState", "sts:GetCallerIdentity"], "path": "behavioral/freetier/check_account_plan_state_account_id_matches_caller_identity.py", "service": "freetier"} {"check_id": "freetier.concurrent-get-account-plan-state-consistent", "deployments": [], "key": "freetier/concurrent-get-account-plan-state-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetAccountPlanState"], "path": "behavioral/freetier/check_concurrent_get_account_plan_state_consistent.py", "service": "freetier"} {"check_id": "freetier.get-account-activity-invalid-language-code-rejected", "deployments": [], "key": "freetier/get-account-activity-invalid-language-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountActivity"], "path": "behavioral/freetier/check_get_account_activity_invalid_language_code_rejected.py", "service": "freetier"} {"check_id": "freetier.get-account-activity-language-code-case-sensitive-rejected", "deployments": [], "key": "freetier/get-account-activity-language-code-case-sensitive-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountActivity"], "path": "behavioral/freetier/check_get_account_activity_language_code_case_sensitive_rejected.py", "service": "freetier"} {"check_id": "freetier.get-account-activity-not-found-for-unknown-id", "deployments": [], "key": "freetier/get-account-activity-not-found-for-unknown-id", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountActivity", "freetier:ListAccountActivities"], "path": "behavioral/freetier/check_get_account_activity_not_found_for_unknown_id.py", "service": "freetier"} {"check_id": "freetier.get-account-activity-resource-not-found", "deployments": [], "key": "freetier/get-account-activity-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountActivity", "freetier:ListAccountActivities"], "path": "behavioral/freetier/check_get_account_activity_resource_not_found.py", "service": "freetier"} {"check_id": "freetier.get-account-activity-wrong-length-rejected", "deployments": [], "key": "freetier/get-account-activity-wrong-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountActivity"], "path": "behavioral/freetier/check_get_account_activity_wrong_length_rejected.py", "service": "freetier"} {"check_id": "freetier.get-account-plan-state-access-denied-for-restricted-principal", "deployments": [], "key": "freetier/get-account-plan-state-access-denied-for-restricted-principal", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountPlanState", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/freetier/check_get_account_plan_state_access_denied_for_restricted_principal.py", "service": "freetier"} {"check_id": "freetier.get-account-plan-state-basic-shape", "deployments": [], "key": "freetier/get-account-plan-state-basic-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetAccountPlanState", "sts:GetCallerIdentity"], "path": "behavioral/freetier/check_get_account_plan_state_basic_shape.py", "service": "freetier"} {"check_id": "freetier.get-account-plan-state-concurrent-reads-consistent", "deployments": [], "key": "freetier/get-account-plan-state-concurrent-reads-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetAccountPlanState"], "path": "behavioral/freetier/check_get_account_plan_state_concurrent_reads_consistent.py", "service": "freetier"} {"check_id": "freetier.get-account-plan-state-fields-valid", "deployments": [], "key": "freetier/get-account-plan-state-fields-valid", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetAccountPlanState", "sts:GetCallerIdentity"], "path": "behavioral/freetier/check_get_account_plan_state_fields_valid.py", "service": "freetier"} {"check_id": "freetier.get-account-plan-state-matches-caller-account-id", "deployments": [], "key": "freetier/get-account-plan-state-matches-caller-account-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetAccountPlanState", "sts:GetCallerIdentity"], "path": "behavioral/freetier/check_get_account_plan_state_matches_caller_account_id.py", "service": "freetier"} {"check_id": "freetier.get-account-plan-state-repeated-read-stable", "deployments": [], "key": "freetier/get-account-plan-state-repeated-read-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetAccountPlanState", "sts:GetCallerIdentity"], "path": "behavioral/freetier/check_get_account_plan_state_repeated_read_stable.py", "service": "freetier"} {"check_id": "freetier.get-free-tier-usage-basic-shape", "deployments": [], "key": "freetier/get-free-tier-usage-basic-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetFreeTierUsage"], "path": "behavioral/freetier/check_get_free_tier_usage_basic_shape.py", "service": "freetier"} {"check_id": "freetier.get-free-tier-usage-conflicting-root-operators-rejected", "deployments": [], "key": "freetier/get-free-tier-usage-conflicting-root-operators-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetFreeTierUsage"], "path": "behavioral/freetier/check_get_free_tier_usage_conflicting_root_operators_rejected.py", "service": "freetier"} {"check_id": "freetier.get-free-tier-usage-dimension-values-pattern-rejected", "deployments": [], "key": "freetier/get-free-tier-usage-dimension-values-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetFreeTierUsage"], "path": "behavioral/freetier/check_get_free_tier_usage_dimension_values_pattern_rejected.py", "service": "freetier"} {"check_id": "freetier.get-free-tier-usage-empty-filter-rejected", "deployments": [], "key": "freetier/get-free-tier-usage-empty-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetFreeTierUsage"], "path": "behavioral/freetier/check_get_free_tier_usage_empty_filter_rejected.py", "service": "freetier"} {"check_id": "freetier.get-free-tier-usage-malformed-next-token-error", "deployments": [], "key": "freetier/get-free-tier-usage-malformed-next-token-error", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetFreeTierUsage"], "path": "behavioral/freetier/check_get_free_tier_usage_malformed_next_token_error.py", "service": "freetier"} {"check_id": "freetier.get-free-tier-usage-max-results-out-of-range-rejected", "deployments": [], "key": "freetier/get-free-tier-usage-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetFreeTierUsage"], "path": "behavioral/freetier/check_get_free_tier_usage_max_results_out_of_range_rejected.py", "service": "freetier"} {"check_id": "freetier.get-freetier-usage-multiple-match-options-rejected", "deployments": [], "key": "freetier/get-freetier-usage-multiple-match-options-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["freetier:GetFreeTierUsage"], "path": "behavioral/freetier/check_get_freetier_usage_multiple_match_options_rejected.py", "service": "freetier"} {"check_id": "freetier.get-freetier-usage-multiple-root-operators-rejected", "deployments": [], "key": "freetier/get-freetier-usage-multiple-root-operators-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["freetier:GetFreeTierUsage"], "path": "behavioral/freetier/check_get_freetier_usage_multiple_root_operators_rejected.py", "service": "freetier"} {"check_id": "freetier.list-account-activities-concurrent-reads-consistent", "deployments": [], "key": "freetier/list-account-activities-concurrent-reads-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:ListAccountActivities"], "path": "behavioral/freetier/check_list_account_activities_concurrent_reads_consistent.py", "service": "freetier"} {"check_id": "freetier.list-account-activities-invalid-language-code-error", "deployments": [], "key": "freetier/list-account-activities-invalid-language-code-error", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:ListAccountActivities"], "path": "behavioral/freetier/check_list_account_activities_invalid_language_code_error.py", "service": "freetier"} {"check_id": "freetier.list-account-activities-invalid-next-token-rejected", "deployments": [], "key": "freetier/list-account-activities-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:ListAccountActivities"], "path": "behavioral/freetier/check_list_account_activities_invalid_next_token_rejected.py", "service": "freetier"} {"check_id": "freetier.list-account-activities-invalid-status-filter-rejected", "deployments": [], "key": "freetier/list-account-activities-invalid-status-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:ListAccountActivities"], "path": "behavioral/freetier/check_list_account_activities_invalid_status_filter_rejected.py", "service": "freetier"} {"check_id": "freetier.list-account-activities-invalid-status-rejected", "deployments": [], "key": "freetier/list-account-activities-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:ListAccountActivities"], "path": "behavioral/freetier/check_list_account_activities_invalid_status_rejected.py", "service": "freetier"} {"check_id": "freetier.list-account-activities-max-results-out-of-range-rejected", "deployments": [], "key": "freetier/list-account-activities-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:ListAccountActivities"], "path": "behavioral/freetier/check_list_account_activities_max_results_out_of_range_rejected.py", "service": "freetier"} {"check_id": "freetier.list-account-activities-max-results-upper-bound-rejected", "deployments": [], "key": "freetier/list-account-activities-max-results-upper-bound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:ListAccountActivities"], "path": "behavioral/freetier/check_list_account_activities_max_results_upper_bound_rejected.py", "service": "freetier"} {"check_id": "freetier.upgrade-account-plan-access-denied-without-permission-rejected", "deployments": [], "key": "freetier/upgrade-account-plan-access-denied-without-permission-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["freetier:GetAccountPlanState", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:SimulatePrincipalPolicy", "sts:GetCallerIdentity"], "path": "behavioral/freetier/check_upgrade_account_plan_access_denied_without_permission_rejected.py", "service": "freetier"} {"check_id": "freetier.upgrade-account-plan-invalid-plan-type-error", "deployments": [], "key": "freetier/upgrade-account-plan-invalid-plan-type-error", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountPlanState", "freetier:UpgradeAccountPlan", "sts:GetCallerIdentity"], "path": "behavioral/freetier/check_upgrade_account_plan_invalid_plan_type_error.py", "service": "freetier"} {"check_id": "freetier.upgrade-account-plan-invalid-plan-type-rejected", "deployments": [], "key": "freetier/upgrade-account-plan-invalid-plan-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountPlanState", "freetier:UpgradeAccountPlan"], "path": "behavioral/freetier/check_upgrade_account_plan_invalid_plan_type_rejected.py", "service": "freetier"} {"check_id": "freetier.upgrade-account-plan-invalid-type-rejected", "deployments": [], "key": "freetier/upgrade-account-plan-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["freetier:GetAccountPlanState", "freetier:UpgradeAccountPlan"], "path": "behavioral/freetier/check_upgrade_account_plan_invalid_type_rejected.py", "service": "freetier"} {"check_id": "fsx.backup-restores-file-system-configuration", "deployments": [], "key": "fsx/backup-restores-file-system-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "fsx:CreateBackup", "fsx:CreateFileSystem", "fsx:CreateFileSystemFromBackup", "fsx:DeleteBackup", "fsx:DeleteFileSystem", "fsx:DescribeBackups", "fsx:DescribeFileSystems"], "path": "behavioral/fsx/check_backup_restores_file_system_configuration.py", "service": "fsx"} {"check_id": "fsx.data-repository-association-invalid-repository-path-rejected", "deployments": [], "key": "fsx/data-repository-association-invalid-repository-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "fsx:CreateDataRepositoryAssociation", "fsx:CreateFileSystem", "fsx:DeleteDataRepositoryAssociation", "fsx:DeleteFileSystem", "fsx:DescribeDataRepositoryAssociations", "fsx:DescribeFileSystems", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/fsx/check_data_repository_association_invalid_repository_path_rejected.py", "service": "fsx"} {"check_id": "fsx.storage-capacity-update-below-ten-percent-floor-refused", "deployments": [], "key": "fsx/storage-capacity-update-below-ten-percent-floor-refused", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "fsx:CreateFileSystem", "fsx:DeleteFileSystem", "fsx:DescribeFileSystems", "fsx:UpdateFileSystem"], "path": "behavioral/fsx/check_storage_capacity_update_below_ten_percent_floor_refused.py", "service": "fsx"} {"check_id": "gamelift.alias-create-defers-fleet-validation-to-resolve", "deployments": [], "key": "gamelift/alias-create-defers-fleet-validation-to-resolve", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateAlias", "gamelift:DeleteAlias", "gamelift:DescribeAlias", "gamelift:ResolveAlias"], "path": "behavioral/gamelift/check_alias_create_defers_fleet_validation_to_resolve.py", "service": "gamelift"} {"check_id": "gamelift.alias-terminal-routing-blocks-resolve", "deployments": [], "key": "gamelift/alias-terminal-routing-blocks-resolve", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateAlias", "gamelift:DeleteAlias", "gamelift:DescribeAlias", "gamelift:ResolveAlias", "gamelift:UpdateAlias"], "path": "behavioral/gamelift/check_alias_terminal_routing_blocks_resolve.py", "service": "gamelift"} {"check_id": "gamelift.alias-update-routing-strategy-persists", "deployments": [], "key": "gamelift/alias-update-routing-strategy-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateAlias", "gamelift:DeleteAlias", "gamelift:DescribeAlias", "gamelift:UpdateAlias"], "path": "behavioral/gamelift/check_alias_update_routing_strategy_persists.py", "service": "gamelift"} {"check_id": "gamelift.anywhere-fleet-register-compute-lifecycle", "deployments": [], "key": "gamelift/anywhere-fleet-register-compute-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateFleet", "gamelift:CreateLocation", "gamelift:DeleteFleet", "gamelift:DeleteLocation", "gamelift:DeregisterCompute", "gamelift:DescribeCompute", "gamelift:DescribeFleetAttributes", "gamelift:GetComputeAuthToken", "gamelift:ListCompute", "gamelift:RegisterCompute"], "path": "behavioral/gamelift/check_anywhere_fleet_register_compute_lifecycle.py", "service": "gamelift"} {"check_id": "gamelift.concurrent-create-location-only-one-wins", "deployments": [], "key": "gamelift/concurrent-create-location-only-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateLocation", "gamelift:DeleteLocation", "gamelift:ListLocations"], "path": "behavioral/gamelift/check_concurrent_create_location_only_one_wins.py", "service": "gamelift"} {"check_id": "gamelift.create-alias-simple-missing-fleet-id-rejected", "deployments": [], "key": "gamelift/create-alias-simple-missing-fleet-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateAlias", "gamelift:DeleteAlias", "gamelift:DescribeAlias", "gamelift:ListAliases"], "path": "behavioral/gamelift/check_create_alias_simple_missing_fleet_id_rejected.py", "service": "gamelift"} {"check_id": "gamelift.create-build-stays-initialized-until-upload", "deployments": [], "key": "gamelift/create-build-stays-initialized-until-upload", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateBuild", "gamelift:DeleteBuild", "gamelift:DescribeBuild", "gamelift:RequestUploadCredentials", "s3:GetObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/gamelift/check_create_build_stays_initialized_until_upload.py", "service": "gamelift"} {"check_id": "gamelift.create-matchmaking-ruleset-malformed-json-rejected", "deployments": [], "key": "gamelift/create-matchmaking-ruleset-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateMatchmakingRuleSet", "gamelift:DeleteMatchmakingRuleSet", "gamelift:DescribeMatchmakingRuleSets"], "path": "behavioral/gamelift/check_create_matchmaking_ruleset_malformed_json_rejected.py", "service": "gamelift"} {"check_id": "gamelift.custom-location-create-and-list", "deployments": [], "key": "gamelift/custom-location-create-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateLocation", "gamelift:DeleteLocation", "gamelift:ListLocations"], "path": "behavioral/gamelift/check_custom_location_create_and_list.py", "service": "gamelift"} {"check_id": "gamelift.delete-alias-removes-it", "deployments": [], "key": "gamelift/delete-alias-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateAlias", "gamelift:DeleteAlias", "gamelift:DescribeAlias", "gamelift:ListAliases", "gamelift:UpdateAlias"], "path": "behavioral/gamelift/check_delete_alias_removes_it.py", "service": "gamelift"} {"check_id": "gamelift.delete-game-session-queue-removes-it", "deployments": [], "key": "gamelift/delete-game-session-queue-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateGameSessionQueue", "gamelift:DeleteGameSessionQueue", "gamelift:DescribeGameSessionQueues", "gamelift:UpdateGameSessionQueue"], "path": "behavioral/gamelift/check_delete_game_session_queue_removes_it.py", "service": "gamelift"} {"check_id": "gamelift.delete-matchmaking-ruleset-in-use-rejected", "deployments": [], "key": "gamelift/delete-matchmaking-ruleset-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateMatchmakingConfiguration", "gamelift:CreateMatchmakingRuleSet", "gamelift:DeleteMatchmakingConfiguration", "gamelift:DeleteMatchmakingRuleSet", "gamelift:DescribeMatchmakingRuleSets"], "path": "behavioral/gamelift/check_delete_matchmaking_ruleset_in_use_rejected.py", "service": "gamelift"} {"check_id": "gamelift.game-session-queue-create-and-describe", "deployments": [], "key": "gamelift/game-session-queue-create-and-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateGameSessionQueue", "gamelift:DeleteGameSessionQueue", "gamelift:DescribeGameSessionQueues"], "path": "behavioral/gamelift/check_game_session_queue_create_and_describe.py", "service": "gamelift"} {"check_id": "gamelift.game-session-queue-invalid-destination-rejected", "deployments": [], "key": "gamelift/game-session-queue-invalid-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateGameSessionQueue", "gamelift:DeleteGameSessionQueue", "gamelift:DescribeGameSessionQueues"], "path": "behavioral/gamelift/check_game_session_queue_invalid_destination_rejected.py", "service": "gamelift"} {"check_id": "gamelift.matchmaking-configuration-lifecycle", "deployments": [], "key": "gamelift/matchmaking-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateMatchmakingConfiguration", "gamelift:CreateMatchmakingRuleSet", "gamelift:DeleteMatchmakingConfiguration", "gamelift:DeleteMatchmakingRuleSet", "gamelift:DescribeMatchmakingConfigurations", "gamelift:UpdateMatchmakingConfiguration"], "path": "behavioral/gamelift/check_matchmaking_configuration_lifecycle.py", "service": "gamelift"} {"check_id": "gamelift.matchmaking-configuration-unknown-ruleset-rejected", "deployments": [], "key": "gamelift/matchmaking-configuration-unknown-ruleset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateMatchmakingConfiguration", "gamelift:CreateMatchmakingRuleSet", "gamelift:DeleteMatchmakingConfiguration", "gamelift:DeleteMatchmakingRuleSet", "gamelift:DescribeMatchmakingConfigurations"], "path": "behavioral/gamelift/check_matchmaking_configuration_unknown_ruleset_rejected.py", "service": "gamelift"} {"check_id": "gamelift.matchmaking-ruleset-create-and-validate-roundtrip", "deployments": [], "key": "gamelift/matchmaking-ruleset-create-and-validate-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateMatchmakingRuleSet", "gamelift:DeleteMatchmakingRuleSet", "gamelift:DescribeMatchmakingRuleSets", "gamelift:ValidateMatchmakingRuleSet"], "path": "behavioral/gamelift/check_matchmaking_ruleset_create_and_validate_roundtrip.py", "service": "gamelift"} {"check_id": "gamelift.register-compute-duplicate-name-rejected", "deployments": [], "key": "gamelift/register-compute-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateFleet", "gamelift:CreateLocation", "gamelift:DeleteFleet", "gamelift:DeleteLocation", "gamelift:DeregisterCompute", "gamelift:DescribeCompute", "gamelift:DescribeFleetAttributes", "gamelift:ListCompute", "gamelift:RegisterCompute"], "path": "behavioral/gamelift/check_register_compute_duplicate_name_rejected.py", "service": "gamelift"} {"check_id": "gamelift.script-zip-upload-and-update-roundtrip", "deployments": [], "key": "gamelift/script-zip-upload-and-update-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateScript", "gamelift:DeleteScript", "gamelift:DescribeScript", "gamelift:UpdateScript"], "path": "behavioral/gamelift/check_script_zip_upload_and_update_roundtrip.py", "service": "gamelift"} {"check_id": "gamelift.start-game-session-placement-unknown-queue-rejected", "deployments": [], "key": "gamelift/start-game-session-placement-unknown-queue-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateGameSessionQueue", "gamelift:DeleteGameSessionQueue", "gamelift:DescribeGameSessionPlacement", "gamelift:StartGameSessionPlacement", "gamelift:StopGameSessionPlacement"], "path": "behavioral/gamelift/check_start_game_session_placement_unknown_queue_rejected.py", "service": "gamelift"} {"check_id": "gamelift.start-matchmaking-unknown-configuration-rejected", "deployments": [], "key": "gamelift/start-matchmaking-unknown-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:CreateMatchmakingConfiguration", "gamelift:CreateMatchmakingRuleSet", "gamelift:DeleteMatchmakingConfiguration", "gamelift:DeleteMatchmakingRuleSet", "gamelift:DescribeMatchmaking", "gamelift:StartMatchmaking", "gamelift:StopMatchmaking"], "path": "behavioral/gamelift/check_start_matchmaking_unknown_configuration_rejected.py", "service": "gamelift"} {"check_id": "gamelift.stop-game-session-placement-transitions-to-cancelled", "deployments": [], "key": "gamelift/stop-game-session-placement-transitions-to-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateGameSessionQueue", "gamelift:DeleteGameSessionQueue", "gamelift:DescribeGameSessionPlacement", "gamelift:StartGameSessionPlacement", "gamelift:StopGameSessionPlacement"], "path": "behavioral/gamelift/check_stop_game_session_placement_transitions_to_cancelled.py", "service": "gamelift"} {"check_id": "gamelift.stop-matchmaking-transitions-to-cancelled", "deployments": [], "key": "gamelift/stop-matchmaking-transitions-to-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateMatchmakingConfiguration", "gamelift:CreateMatchmakingRuleSet", "gamelift:DeleteMatchmakingConfiguration", "gamelift:DeleteMatchmakingRuleSet", "gamelift:DescribeMatchmaking", "gamelift:StartMatchmaking", "gamelift:StopMatchmaking"], "path": "behavioral/gamelift/check_stop_matchmaking_transitions_to_cancelled.py", "service": "gamelift"} {"check_id": "gamelift.tag-resource-lifecycle", "deployments": [], "key": "gamelift/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateAlias", "gamelift:DeleteAlias", "gamelift:ListTagsForResource", "gamelift:TagResource", "gamelift:UntagResource"], "path": "behavioral/gamelift/check_tag_resource_lifecycle.py", "service": "gamelift"} {"check_id": "gamelift.update-game-session-queue-persists-changes", "deployments": [], "key": "gamelift/update-game-session-queue-persists-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateGameSessionQueue", "gamelift:DeleteGameSessionQueue", "gamelift:DescribeGameSessionQueues", "gamelift:UpdateGameSessionQueue"], "path": "behavioral/gamelift/check_update_game_session_queue_persists_changes.py", "service": "gamelift"} {"check_id": "gamelift.validate-matchmaking-ruleset-semantic-violation-returns-invalid", "deployments": [], "key": "gamelift/validate-matchmaking-ruleset-semantic-violation-returns-invalid", "labels": ["axis:rejection", "plane:control"], "operations": ["gamelift:ValidateMatchmakingRuleSet"], "path": "behavioral/gamelift/check_validate_matchmaking_ruleset_semantic_violation_returns_invalid.py", "service": "gamelift"} {"check_id": "gamelift.vpc-peering-authorization-lifecycle", "deployments": [], "key": "gamelift/vpc-peering-authorization-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["gamelift:CreateVpcPeeringAuthorization", "gamelift:DeleteVpcPeeringAuthorization", "gamelift:DescribeVpcPeeringAuthorizations", "sts:GetCallerIdentity"], "path": "behavioral/gamelift/check_vpc_peering_authorization_lifecycle.py", "service": "gamelift"} {"check_id": "gameliftstreams.add-stream-group-location-duplicate-is-an-idempotent-no-op", "deployments": [], "key": "gameliftstreams/add-stream-group-location-duplicate-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:AddStreamGroupLocations", "gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup"], "path": "behavioral/gameliftstreams/check_add_stream_group_location_duplicate_is_an_idempotent_no_op.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.application-lifecycle-reaches-error-on-missing-bucket", "deployments": [], "key": "gameliftstreams/application-lifecycle-reaches-error-on-missing-bucket", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:GetApplication", "gameliftstreams:ListApplications", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_application_lifecycle_reaches_error_on_missing_bucket.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.application-source-access-denied-via-s3-deny-policy", "deployments": [], "key": "gameliftstreams/application-source-access-denied-via-s3-deny-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:GetApplication", "gameliftstreams:ListApplications", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_application_source_access_denied_via_s3_deny_policy.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.associate-applications-bidirectional-link", "deployments": [], "key": "gameliftstreams/associate-applications-bidirectional-link", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:AssociateApplications", "gameliftstreams:CreateApplication", "gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteApplication", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetApplication", "gameliftstreams:GetStreamGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_associate_applications_bidirectional_link.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.associate-applications-nonexistent-app-not-found", "deployments": [], "key": "gameliftstreams/associate-applications-nonexistent-app-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:AssociateApplications", "gameliftstreams:CreateApplication", "gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteApplication", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:DisassociateApplications", "gameliftstreams:GetApplication", "gameliftstreams:GetStreamGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_associate_applications_nonexistent_app_not_found.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.client-token-reuse-conflict-create-application", "deployments": [], "key": "gameliftstreams/client-token-reuse-conflict-create-application", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:GetApplication", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_client_token_reuse_conflict_create_application.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.concurrent-add-duplicate-location-race", "deployments": [], "key": "gameliftstreams/concurrent-add-duplicate-location-race", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:AddStreamGroupLocations", "gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup"], "path": "behavioral/gameliftstreams/check_concurrent_add_duplicate_location_race.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.concurrent-create-stream-group-same-client-token-idempotent", "deployments": [], "key": "gameliftstreams/concurrent-create-stream-group-same-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup", "gameliftstreams:ListStreamGroups"], "path": "behavioral/gameliftstreams/check_concurrent_create_stream_group_same_client_token_idempotent.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.concurrent-tag-resource-no-lost-updates", "deployments": [], "key": "gameliftstreams/concurrent-tag-resource-no-lost-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:ListTagsForResource", "gameliftstreams:TagResource"], "path": "behavioral/gameliftstreams/check_concurrent_tag_resource_no_lost_updates.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-application-content-lifecycle-ready", "deployments": [], "key": "gameliftstreams/create-application-content-lifecycle-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:GetApplication", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_create_application_content_lifecycle_ready.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-application-invalid-source-uri-rejected", "deployments": [], "key": "gameliftstreams/create-application-invalid-source-uri-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_create_application_invalid_source_uri_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-application-reflects-input-fields", "deployments": [], "key": "gameliftstreams/create-application-reflects-input-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:GetApplication", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_create_application_reflects_input_fields.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-application-source-access-denied-rejected", "deployments": [], "key": "gameliftstreams/create-application-source-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:GetApplication", "gameliftstreams:ListApplications", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_create_application_source_access_denied_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-stream-group-client-token-conflict-rejected", "deployments": [], "key": "gameliftstreams/create-stream-group-client-token-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup", "gameliftstreams:ListStreamGroups"], "path": "behavioral/gameliftstreams/check_create_stream_group_client_token_conflict_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-stream-group-client-token-idempotent", "deployments": [], "key": "gameliftstreams/create-stream-group-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:ListStreamGroups"], "path": "behavioral/gameliftstreams/check_create_stream_group_client_token_idempotent.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-stream-group-default-application-not-found", "deployments": [], "key": "gameliftstreams/create-stream-group-default-application-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteApplication", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetApplication", "gameliftstreams:GetStreamGroup", "gameliftstreams:ListStreamGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_create_stream_group_default_application_not_found.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-stream-group-invalid-stream-class-rejected", "deployments": [], "key": "gameliftstreams/create-stream-group-invalid-stream-class-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup"], "path": "behavioral/gameliftstreams/check_create_stream_group_invalid_stream_class_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-stream-session-admin-shell-not-ready-rejected", "deployments": [], "key": "gameliftstreams/create-stream-session-admin-shell-not-ready-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:AssociateApplications", "gameliftstreams:CreateApplication", "gameliftstreams:CreateStreamGroup", "gameliftstreams:CreateStreamSessionAdminShell", "gameliftstreams:DeleteApplication", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetApplication", "gameliftstreams:GetStreamGroup", "gameliftstreams:GetStreamSession", "gameliftstreams:StartStreamSession", "gameliftstreams:TerminateStreamSession", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_create_stream_session_admin_shell_not_ready_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-stream-session-connection-not-found-rejected", "deployments": [], "key": "gameliftstreams/create-stream-session-connection-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateStreamSessionConnection"], "path": "behavioral/gameliftstreams/check_create_stream_session_connection_not_found_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.create-stream-url-unassociated-application-rejected", "deployments": [], "key": "gameliftstreams/create-stream-url-unassociated-application-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:AssociateApplications", "gameliftstreams:CreateApplication", "gameliftstreams:CreateStreamGroup", "gameliftstreams:CreateStreamUrl", "gameliftstreams:DeleteApplication", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:DisassociateApplications", "gameliftstreams:GetApplication", "gameliftstreams:GetStreamGroup", "gameliftstreams:GetStreamUrl", "gameliftstreams:ListStreamUrls", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_create_stream_url_unassociated_application_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.delete-application-then-get-not-found", "deployments": [], "key": "gameliftstreams/delete-application-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:GetApplication", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_delete_application_then_get_not_found.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.delete-application-while-associated-conflict-rejected", "deployments": [], "key": "gameliftstreams/delete-application-while-associated-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:AssociateApplications", "gameliftstreams:CreateApplication", "gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteApplication", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:DisassociateApplications", "gameliftstreams:GetApplication", "gameliftstreams:GetStreamGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_delete_application_while_associated_conflict_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.delete-stream-group-removes-resource", "deployments": [], "key": "gameliftstreams/delete-stream-group-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup"], "path": "behavioral/gameliftstreams/check_delete_stream_group_removes_resource.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.disassociate-application-not-associated-rejected", "deployments": [], "key": "gameliftstreams/disassociate-application-not-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:AssociateApplications", "gameliftstreams:CreateApplication", "gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteApplication", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:DisassociateApplications", "gameliftstreams:GetApplication", "gameliftstreams:GetStreamGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_disassociate_application_not_associated_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.get-application-not-found", "deployments": [], "key": "gameliftstreams/get-application-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:GetApplication", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_get_application_not_found.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.list-applications-max-results-out-of-range-rejected", "deployments": [], "key": "gameliftstreams/list-applications-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:ListApplications"], "path": "behavioral/gameliftstreams/check_list_applications_max_results_out_of_range_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.list-applications-pagination-completeness", "deployments": [], "key": "gameliftstreams/list-applications-pagination-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:ListApplications", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_list_applications_pagination_completeness.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.remove-last-stream-group-location-rejected", "deployments": [], "key": "gameliftstreams/remove-last-stream-group-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:AddStreamGroupLocations", "gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup", "gameliftstreams:RemoveStreamGroupLocations"], "path": "behavioral/gameliftstreams/check_remove_last_stream_group_location_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.stream-group-lifecycle-reaches-active", "deployments": [], "key": "gameliftstreams/stream-group-lifecycle-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup"], "path": "behavioral/gameliftstreams/check_stream_group_lifecycle_reaches_active.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.stream-url-lifecycle-create-then-revoke", "deployments": [], "key": "gameliftstreams/stream-url-lifecycle-create-then-revoke", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:AssociateApplications", "gameliftstreams:CreateApplication", "gameliftstreams:CreateStreamGroup", "gameliftstreams:CreateStreamUrl", "gameliftstreams:DeleteApplication", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetApplication", "gameliftstreams:GetStreamGroup", "gameliftstreams:GetStreamUrl", "gameliftstreams:RevokeStreamUrl", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_stream_url_lifecycle_create_then_revoke.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.tag-and-untag-application-round-trip", "deployments": [], "key": "gameliftstreams/tag-and-untag-application-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateApplication", "gameliftstreams:DeleteApplication", "gameliftstreams:ListTagsForResource", "gameliftstreams:TagResource", "gameliftstreams:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/gameliftstreams/check_tag_and_untag_application_round_trip.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.tag-resource-invalid-arn-rejected", "deployments": [], "key": "gameliftstreams/tag-resource-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:ListTagsForResource", "gameliftstreams:TagResource"], "path": "behavioral/gameliftstreams/check_tag_resource_invalid_arn_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.tag-untag-resource-roundtrip", "deployments": [], "key": "gameliftstreams/tag-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:ListTagsForResource", "gameliftstreams:TagResource", "gameliftstreams:UntagResource"], "path": "behavioral/gameliftstreams/check_tag_untag_resource_roundtrip.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.update-stream-group-default-application-not-found-rejected", "deployments": [], "key": "gameliftstreams/update-stream-group-default-application-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup", "gameliftstreams:UpdateStreamGroup"], "path": "behavioral/gameliftstreams/check_update_stream_group_default_application_not_found_rejected.py", "service": "gameliftstreams"} {"check_id": "gameliftstreams.update-stream-group-description-persists", "deployments": [], "key": "gameliftstreams/update-stream-group-description-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["gameliftstreams:CreateStreamGroup", "gameliftstreams:DeleteStreamGroup", "gameliftstreams:GetStreamGroup", "gameliftstreams:UpdateStreamGroup"], "path": "behavioral/gameliftstreams/check_update_stream_group_description_persists.py", "service": "gameliftstreams"} {"check_id": "geo-maps.concurrent-tile-requests-return-isolated-content", "deployments": [], "key": "geo-maps/concurrent-tile-requests-return-isolated-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetTile"], "path": "behavioral/geo-maps/check_concurrent_tile_requests_return_isolated_content.py", "service": "geo-maps"} {"check_id": "geo-maps.e2e-style-to-render-pipeline-workflow", "deployments": [], "key": "geo-maps/e2e-style-to-render-pipeline-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetGlyphs", "geo-maps:GetSprites", "geo-maps:GetStyleDescriptor", "geo-maps:GetTile"], "path": "behavioral/geo-maps/check_e2e_style_to_render_pipeline_workflow.py", "service": "geo-maps"} {"check_id": "geo-maps.glyphs-different-unicode-ranges-return-different-blobs", "deployments": [], "key": "geo-maps/glyphs-different-unicode-ranges-return-different-blobs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetGlyphs"], "path": "behavioral/geo-maps/check_glyphs_different_unicode_ranges_return_different_blobs.py", "service": "geo-maps"} {"check_id": "geo-maps.glyphs-invalid-unicode-range-rejected", "deployments": [], "key": "geo-maps/glyphs-invalid-unicode-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-maps:GetGlyphs"], "path": "behavioral/geo-maps/check_glyphs_invalid_unicode_range_rejected.py", "service": "geo-maps"} {"check_id": "geo-maps.glyphs-returns-nonempty-glyph-blob", "deployments": [], "key": "geo-maps/glyphs-returns-nonempty-glyph-blob", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetGlyphs"], "path": "behavioral/geo-maps/check_glyphs_returns_nonempty_glyph_blob.py", "service": "geo-maps"} {"check_id": "geo-maps.sprites-2x-variant-larger-icon-dimensions", "deployments": [], "key": "geo-maps/sprites-2x-variant-larger-icon-dimensions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetSprites"], "path": "behavioral/geo-maps/check_sprites_2x_variant_larger_icon_dimensions.py", "service": "geo-maps"} {"check_id": "geo-maps.sprites-returns-valid-json-offsets", "deployments": [], "key": "geo-maps/sprites-returns-valid-json-offsets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetSprites"], "path": "behavioral/geo-maps/check_sprites_returns_valid_json_offsets.py", "service": "geo-maps"} {"check_id": "geo-maps.sprites-returns-valid-png-blob", "deployments": [], "key": "geo-maps/sprites-returns-valid-png-blob", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetSprites"], "path": "behavioral/geo-maps/check_sprites_returns_valid_png_blob.py", "service": "geo-maps"} {"check_id": "geo-maps.static-map-2x-filename-higher-resolution", "deployments": [], "key": "geo-maps/static-map-2x-filename-higher-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetStaticMap"], "path": "behavioral/geo-maps/check_static_map_2x_filename_higher_resolution.py", "service": "geo-maps"} {"check_id": "geo-maps.static-map-bounding-box-param-succeeds", "deployments": [], "key": "geo-maps/static-map-bounding-box-param-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetStaticMap"], "path": "behavioral/geo-maps/check_static_map_bounding_box_param_succeeds.py", "service": "geo-maps"} {"check_id": "geo-maps.static-map-dimension-out-of-range-rejected", "deployments": [], "key": "geo-maps/static-map-dimension-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-maps:GetStaticMap"], "path": "behavioral/geo-maps/check_static_map_dimension_out_of_range_rejected.py", "service": "geo-maps"} {"check_id": "geo-maps.static-map-mutually-exclusive-params-rejected", "deployments": [], "key": "geo-maps/static-map-mutually-exclusive-params-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-maps:GetStaticMap"], "path": "behavioral/geo-maps/check_static_map_mutually_exclusive_params_rejected.py", "service": "geo-maps"} {"check_id": "geo-maps.static-map-pixel-dimensions-match-request", "deployments": [], "key": "geo-maps/static-map-pixel-dimensions-match-request", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetStaticMap"], "path": "behavioral/geo-maps/check_static_map_pixel_dimensions_match_request.py", "service": "geo-maps"} {"check_id": "geo-maps.static-map-response-deterministic-across-repeated-requests", "deployments": [], "key": "geo-maps/static-map-response-deterministic-across-repeated-requests", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetStaticMap"], "path": "behavioral/geo-maps/check_static_map_response_deterministic_across_repeated_requests.py", "service": "geo-maps"} {"check_id": "geo-maps.static-map-satellite-style-returns-image", "deployments": [], "key": "geo-maps/static-map-satellite-style-returns-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetStaticMap"], "path": "behavioral/geo-maps/check_static_map_satellite_style_returns_image.py", "service": "geo-maps"} {"check_id": "geo-maps.style-descriptor-light-vs-dark-color-scheme-differ", "deployments": [], "key": "geo-maps/style-descriptor-light-vs-dark-color-scheme-differ", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetStyleDescriptor"], "path": "behavioral/geo-maps/check_style_descriptor_light_vs_dark_color_scheme_differ.py", "service": "geo-maps"} {"check_id": "geo-maps.style-descriptor-monochrome-style-returns-valid-json", "deployments": [], "key": "geo-maps/style-descriptor-monochrome-style-returns-valid-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetStyleDescriptor"], "path": "behavioral/geo-maps/check_style_descriptor_monochrome_style_returns_valid_json.py", "service": "geo-maps"} {"check_id": "geo-maps.style-descriptor-standard-returns-valid-style-json", "deployments": [], "key": "geo-maps/style-descriptor-standard-returns-valid-style-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetStyleDescriptor"], "path": "behavioral/geo-maps/check_style_descriptor_standard_returns_valid_style_json.py", "service": "geo-maps"} {"check_id": "geo-maps.tile-additional-features-accepted", "deployments": [], "key": "geo-maps/tile-additional-features-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetTile"], "path": "behavioral/geo-maps/check_tile_additional_features_accepted.py", "service": "geo-maps"} {"check_id": "geo-maps.tile-coordinate-out-of-range-rejected", "deployments": [], "key": "geo-maps/tile-coordinate-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-maps:GetTile"], "path": "behavioral/geo-maps/check_tile_coordinate_out_of_range_rejected.py", "service": "geo-maps"} {"check_id": "geo-maps.tile-invalid-tileset-pattern-rejected", "deployments": [], "key": "geo-maps/tile-invalid-tileset-pattern-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-maps:GetTile"], "path": "behavioral/geo-maps/check_tile_invalid_tileset_pattern_rejected.py", "service": "geo-maps"} {"check_id": "geo-maps.tile-raster-satellite-returns-image-blob", "deployments": [], "key": "geo-maps/tile-raster-satellite-returns-image-blob", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetTile"], "path": "behavioral/geo-maps/check_tile_raster_satellite_returns_image_blob.py", "service": "geo-maps"} {"check_id": "geo-maps.tile-vector-basemap-returns-pbf-blob", "deployments": [], "key": "geo-maps/tile-vector-basemap-returns-pbf-blob", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetTile"], "path": "behavioral/geo-maps/check_tile_vector_basemap_returns_pbf_blob.py", "service": "geo-maps"} {"check_id": "geo-maps.tile-zoom-level-changes-tile-content", "deployments": [], "key": "geo-maps/tile-zoom-level-changes-tile-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-maps:GetTile"], "path": "behavioral/geo-maps/check_tile_zoom_level_changes_tile_content.py", "service": "geo-maps"} {"check_id": "geo-places.autocomplete-highlights-mark-matched-substring", "deployments": [], "key": "geo-places/autocomplete-highlights-mark-matched-substring", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Autocomplete"], "path": "behavioral/geo-places/check_autocomplete_highlights_mark_matched_substring.py", "service": "geo-places"} {"check_id": "geo-places.autocomplete-max-results-enforced", "deployments": [], "key": "geo-places/autocomplete-max-results-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Autocomplete"], "path": "behavioral/geo-places/check_autocomplete_max_results_enforced.py", "service": "geo-places"} {"check_id": "geo-places.autocomplete-results-relevant-to-prefix", "deployments": [], "key": "geo-places/autocomplete-results-relevant-to-prefix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Autocomplete"], "path": "behavioral/geo-places/check_autocomplete_results_relevant_to_prefix.py", "service": "geo-places"} {"check_id": "geo-places.concurrent-getplace-calls-consistent", "deployments": [], "key": "geo-places/concurrent-getplace-calls-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Geocode", "geo-places:GetPlace"], "path": "behavioral/geo-places/check_concurrent_getplace_calls_consistent.py", "service": "geo-places"} {"check_id": "geo-places.e2e-suggest-searchtext-getplace-workflow", "deployments": [], "key": "geo-places/e2e-suggest-searchtext-getplace-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:GetPlace", "geo-places:SearchText", "geo-places:Suggest"], "path": "behavioral/geo-places/check_e2e_suggest_searchtext_getplace_workflow.py", "service": "geo-places"} {"check_id": "geo-places.geocode-getplace-roundtrip-consistency", "deployments": [], "key": "geo-places/geocode-getplace-roundtrip-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Geocode", "geo-places:GetPlace"], "path": "behavioral/geo-places/check_geocode_getplace_roundtrip_consistency.py", "service": "geo-places"} {"check_id": "geo-places.geocode-include-countries-filter", "deployments": [], "key": "geo-places/geocode-include-countries-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Geocode"], "path": "behavioral/geo-places/check_geocode_include_countries_filter.py", "service": "geo-places"} {"check_id": "geo-places.geocode-include-place-types-filter", "deployments": [], "key": "geo-places/geocode-include-place-types-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Geocode"], "path": "behavioral/geo-places/check_geocode_include_place_types_filter.py", "service": "geo-places"} {"check_id": "geo-places.geocode-landmark-returns-position", "deployments": [], "key": "geo-places/geocode-landmark-returns-position", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Geocode"], "path": "behavioral/geo-places/check_geocode_landmark_returns_position.py", "service": "geo-places"} {"check_id": "geo-places.geocode-missing-query-input-rejected", "deployments": [], "key": "geo-places/geocode-missing-query-input-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-places:Geocode"], "path": "behavioral/geo-places/check_geocode_missing_query_input_rejected.py", "service": "geo-places"} {"check_id": "geo-places.geocode-query-components-structured-search", "deployments": [], "key": "geo-places/geocode-query-components-structured-search", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Geocode"], "path": "behavioral/geo-places/check_geocode_query_components_structured_search.py", "service": "geo-places"} {"check_id": "geo-places.getplace-unresolvable-place-id-rejected", "deployments": [], "key": "geo-places/getplace-unresolvable-place-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-places:Geocode", "geo-places:GetPlace"], "path": "behavioral/geo-places/check_getplace_unresolvable_place_id_rejected.py", "service": "geo-places"} {"check_id": "geo-places.political-view-changes-country-code", "deployments": [], "key": "geo-places/political-view-changes-country-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:ReverseGeocode"], "path": "behavioral/geo-places/check_political_view_changes_country_code.py", "service": "geo-places"} {"check_id": "geo-places.political-view-invalid-pattern-rejected", "deployments": [], "key": "geo-places/political-view-invalid-pattern-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-places:Geocode"], "path": "behavioral/geo-places/check_political_view_invalid_pattern_rejected.py", "service": "geo-places"} {"check_id": "geo-places.reverse-geocode-country-for-known-position", "deployments": [], "key": "geo-places/reverse-geocode-country-for-known-position", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:ReverseGeocode"], "path": "behavioral/geo-places/check_reverse_geocode_country_for_known_position.py", "service": "geo-places"} {"check_id": "geo-places.reverse-geocode-radius-out-of-range-rejected", "deployments": [], "key": "geo-places/reverse-geocode-radius-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-places:ReverseGeocode"], "path": "behavioral/geo-places/check_reverse_geocode_radius_out_of_range_rejected.py", "service": "geo-places"} {"check_id": "geo-places.search-nearby-invalid-next-token-rejected", "deployments": [], "key": "geo-places/search-nearby-invalid-next-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-places:SearchNearby"], "path": "behavioral/geo-places/check_search_nearby_invalid_next_token_rejected.py", "service": "geo-places"} {"check_id": "geo-places.search-nearby-pagination-distinct-pages", "deployments": [], "key": "geo-places/search-nearby-pagination-distinct-pages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:SearchNearby"], "path": "behavioral/geo-places/check_search_nearby_pagination_distinct_pages.py", "service": "geo-places"} {"check_id": "geo-places.search-nearby-results-within-radius", "deployments": [], "key": "geo-places/search-nearby-results-within-radius", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:SearchNearby"], "path": "behavioral/geo-places/check_search_nearby_results_within_radius.py", "service": "geo-places"} {"check_id": "geo-places.search-text-bounding-box-filter", "deployments": [], "key": "geo-places/search-text-bounding-box-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:SearchText"], "path": "behavioral/geo-places/check_search_text_bounding_box_filter.py", "service": "geo-places"} {"check_id": "geo-places.search-text-finds-known-landmark", "deployments": [], "key": "geo-places/search-text-finds-known-landmark", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:SearchText"], "path": "behavioral/geo-places/check_search_text_finds_known_landmark.py", "service": "geo-places"} {"check_id": "geo-places.search-text-max-results-enforced", "deployments": [], "key": "geo-places/search-text-max-results-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:SearchText"], "path": "behavioral/geo-places/check_search_text_max_results_enforced.py", "service": "geo-places"} {"check_id": "geo-places.suggest-returns-results-for-partial-query", "deployments": [], "key": "geo-places/suggest-returns-results-for-partial-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-places:Suggest"], "path": "behavioral/geo-places/check_suggest_returns_results_for_partial_query.py", "service": "geo-places"} {"check_id": "geo-routes.calculate-isolines-basic-success", "deployments": [], "key": "geo-routes/calculate-isolines-basic-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_basic_success.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-car-reaches-farther-than-pedestrian", "deployments": [], "key": "geo-routes/calculate-isolines-car-reaches-farther-than-pedestrian", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_car_reaches_farther_than_pedestrian.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-destination-based-snaps-destination-not-origin", "deployments": [], "key": "geo-routes/calculate-isolines-destination-based-snaps-destination-not-origin", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_destination_based_snaps_destination_not_origin.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-distance-threshold", "deployments": [], "key": "geo-routes/calculate-isolines-distance-threshold", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_distance_threshold.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-distance-thresholds-success", "deployments": [], "key": "geo-routes/calculate-isolines-distance-thresholds-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_distance_thresholds_success.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-finer-granularity-yields-more-points", "deployments": [], "key": "geo-routes/calculate-isolines-finer-granularity-yields-more-points", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_finer_granularity_yields_more_points.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-missing-origin-and-destination-rejected", "deployments": [], "key": "geo-routes/calculate-isolines-missing-origin-and-destination-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_missing_origin_and_destination_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-mixed-threshold-types-rejected", "deployments": [], "key": "geo-routes/calculate-isolines-mixed-threshold-types-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_mixed_threshold_types_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-multiple-thresholds-ordering", "deployments": [], "key": "geo-routes/calculate-isolines-multiple-thresholds-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_multiple_thresholds_ordering.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-time-thresholds-success", "deployments": [], "key": "geo-routes/calculate-isolines-time-thresholds-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_time_thresholds_success.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-isolines-too-many-thresholds-rejected", "deployments": [], "key": "geo-routes/calculate-isolines-too-many-thresholds-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateIsolines"], "path": "behavioral/geo-routes/check_calculate_isolines_too_many_thresholds_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-basic-success", "deployments": [], "key": "geo-routes/calculate-route-matrix-basic-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_basic_success.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-concurrent-identical-requests-consistent", "deployments": [], "key": "geo-routes/calculate-route-matrix-concurrent-identical-requests-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_concurrent_identical_requests_consistent.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-empty-origins-rejected", "deployments": [], "key": "geo-routes/calculate-route-matrix-empty-origins-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_empty_origins_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-no-route-error-count-consistency", "deployments": [], "key": "geo-routes/calculate-route-matrix-no-route-error-count-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_no_route_error_count_consistency.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-out-of-bounds-destination", "deployments": [], "key": "geo-routes/calculate-route-matrix-out-of-bounds-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_out_of_bounds_destination.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-out-of-bounds-destination-rejected", "deployments": [], "key": "geo-routes/calculate-route-matrix-out-of-bounds-destination-rejected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_out_of_bounds_destination_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-pedestrian-slower-than-car", "deployments": [], "key": "geo-routes/calculate-route-matrix-pedestrian-slower-than-car", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_pedestrian_slower_than_car.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-travel-mode-options-mismatch-rejected", "deployments": [], "key": "geo-routes/calculate-route-matrix-travel-mode-options-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_travel_mode_options_mismatch_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-route-matrix-travel-mode-pedestrian-vs-car", "deployments": [], "key": "geo-routes/calculate-route-matrix-travel-mode-pedestrian-vs-car", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix"], "path": "behavioral/geo-routes/check_calculate_route_matrix_travel_mode_pedestrian_vs_car.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-and-route-matrix-agree-on-distance", "deployments": [], "key": "geo-routes/calculate-routes-and-route-matrix-agree-on-distance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRouteMatrix", "geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_and_route_matrix_agree_on_distance.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-basic-driving-success", "deployments": [], "key": "geo-routes/calculate-routes-basic-driving-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_basic_driving_success.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-concurrent-requests-consistent", "deployments": [], "key": "geo-routes/calculate-routes-concurrent-requests-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_concurrent_requests_consistent.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-conflicting-travel-mode-options-rejected", "deployments": [], "key": "geo-routes/calculate-routes-conflicting-travel-mode-options-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_conflicting_travel_mode_options_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-leg-geometry-format-matches-request", "deployments": [], "key": "geo-routes/calculate-routes-leg-geometry-format-matches-request", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_leg_geometry_format_matches_request.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-leg-geometry-simple-format", "deployments": [], "key": "geo-routes/calculate-routes-leg-geometry-simple-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_leg_geometry_simple_format.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-malformed-departure-time-rejected", "deployments": [], "key": "geo-routes/calculate-routes-malformed-departure-time-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_malformed_departure_time_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-max-alternatives-bound-respected", "deployments": [], "key": "geo-routes/calculate-routes-max-alternatives-bound-respected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_max_alternatives_bound_respected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-max-alternatives-bounds-success", "deployments": [], "key": "geo-routes/calculate-routes-max-alternatives-bounds-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_max_alternatives_bounds_success.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-max-alternatives-out-of-range-rejected", "deployments": [], "key": "geo-routes/calculate-routes-max-alternatives-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_max_alternatives_out_of_range_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-missing-destination-rejected", "deployments": [], "key": "geo-routes/calculate-routes-missing-destination-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_missing_destination_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-missing-permission-rejected", "deployments": [], "key": "geo-routes/calculate-routes-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/geo-routes/check_calculate_routes_missing_permission_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-passthrough-waypoint-does-not-split-leg", "deployments": [], "key": "geo-routes/calculate-routes-passthrough-waypoint-does-not-split-leg", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_passthrough_waypoint_does_not_split_leg.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-pedestrian-mode-success", "deployments": [], "key": "geo-routes/calculate-routes-pedestrian-mode-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_pedestrian_mode_success.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-pedestrian-slower-than-car", "deployments": [], "key": "geo-routes/calculate-routes-pedestrian-slower-than-car", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_pedestrian_slower_than_car.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-shortest-le-fastest-distance", "deployments": [], "key": "geo-routes/calculate-routes-shortest-le-fastest-distance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_shortest_le_fastest_distance.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-too-many-languages-rejected", "deployments": [], "key": "geo-routes/calculate-routes-too-many-languages-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_too_many_languages_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-truck-travel-mode-options-wiring-success", "deployments": [], "key": "geo-routes/calculate-routes-truck-travel-mode-options-wiring-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_truck_travel_mode_options_wiring_success.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-unsupported-language-triggers-fallback-notice", "deployments": [], "key": "geo-routes/calculate-routes-unsupported-language-triggers-fallback-notice", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_unsupported_language_triggers_fallback_notice.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-waypoint-adds-leg-and-distance", "deployments": [], "key": "geo-routes/calculate-routes-waypoint-adds-leg-and-distance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_waypoint_adds_leg_and_distance.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-waypoint-stop-duration-increases-total-duration", "deployments": [], "key": "geo-routes/calculate-routes-waypoint-stop-duration-increases-total-duration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_waypoint_stop_duration_increases_total_duration.py", "service": "geo-routes"} {"check_id": "geo-routes.calculate-routes-zero-max-alternatives-returns-single-route", "deployments": [], "key": "geo-routes/calculate-routes-zero-max-alternatives-returns-single-route", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_calculate_routes_zero_max_alternatives_returns_single_route.py", "service": "geo-routes"} {"check_id": "geo-routes.concurrent-identical-route-requests-consistent", "deployments": [], "key": "geo-routes/concurrent-identical-route-requests-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes"], "path": "behavioral/geo-routes/check_concurrent_identical_route_requests_consistent.py", "service": "geo-routes"} {"check_id": "geo-routes.e2e-optimize-waypoints-then-calculate-routes", "deployments": [], "key": "geo-routes/e2e-optimize-waypoints-then-calculate-routes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes", "geo-routes:OptimizeWaypoints"], "path": "behavioral/geo-routes/check_e2e_optimize_waypoints_then_calculate_routes.py", "service": "geo-routes"} {"check_id": "geo-routes.iam-deny-calculate-routes-access-denied", "deployments": [], "key": "geo-routes/iam-deny-calculate-routes-access-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:CalculateRoutes", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/geo-routes/check_iam_deny_calculate_routes_access_denied.py", "service": "geo-routes"} {"check_id": "geo-routes.optimize-waypoints-basic-success", "deployments": [], "key": "geo-routes/optimize-waypoints-basic-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:OptimizeWaypoints"], "path": "behavioral/geo-routes/check_optimize_waypoints_basic_success.py", "service": "geo-routes"} {"check_id": "geo-routes.optimize-waypoints-before-constraint-orders-sequence", "deployments": [], "key": "geo-routes/optimize-waypoints-before-constraint-orders-sequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:OptimizeWaypoints"], "path": "behavioral/geo-routes/check_optimize_waypoints_before_constraint_orders_sequence.py", "service": "geo-routes"} {"check_id": "geo-routes.optimize-waypoints-driving-distance-clustering-groups-nearby-waypoints", "deployments": [], "key": "geo-routes/optimize-waypoints-driving-distance-clustering-groups-nearby-waypoints", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:OptimizeWaypoints"], "path": "behavioral/geo-routes/check_optimize_waypoints_driving_distance_clustering_groups_nearby_waypoints.py", "service": "geo-routes"} {"check_id": "geo-routes.optimize-waypoints-duplicate-ids-rejected", "deployments": [], "key": "geo-routes/optimize-waypoints-duplicate-ids-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:OptimizeWaypoints"], "path": "behavioral/geo-routes/check_optimize_waypoints_duplicate_ids_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.optimize-waypoints-origin-and-destination-no-waypoints-success", "deployments": [], "key": "geo-routes/optimize-waypoints-origin-and-destination-no-waypoints-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:OptimizeWaypoints"], "path": "behavioral/geo-routes/check_optimize_waypoints_origin_and_destination_no_waypoints_success.py", "service": "geo-routes"} {"check_id": "geo-routes.optimize-waypoints-origin-only-minimal-success", "deployments": [], "key": "geo-routes/optimize-waypoints-origin-only-minimal-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:OptimizeWaypoints"], "path": "behavioral/geo-routes/check_optimize_waypoints_origin_only_minimal_success.py", "service": "geo-routes"} {"check_id": "geo-routes.optimize-waypoints-service-duration-reflected", "deployments": [], "key": "geo-routes/optimize-waypoints-service-duration-reflected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:OptimizeWaypoints"], "path": "behavioral/geo-routes/check_optimize_waypoints_service_duration_reflected.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-basic-success", "deployments": [], "key": "geo-routes/snap-to-roads-basic-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_basic_success.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-duplicate-trace-points-each-snapped-independently", "deployments": [], "key": "geo-routes/snap-to-roads-duplicate-trace-points-each-snapped-independently", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_duplicate_trace_points_each_snapped_independently.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-geometry-format-matches-request", "deployments": [], "key": "geo-routes/snap-to-roads-geometry-format-matches-request", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_geometry_format_matches_request.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-invalid-latitude-rejected", "deployments": [], "key": "geo-routes/snap-to-roads-invalid-latitude-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_invalid_latitude_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-not-matched-notice", "deployments": [], "key": "geo-routes/snap-to-roads-not-matched-notice", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_not_matched_notice.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-notice-trace-points-not-matched", "deployments": [], "key": "geo-routes/snap-to-roads-notice-trace-points-not-matched", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_notice_trace_points_not_matched.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-out-of-sequence-timestamps-notice", "deployments": [], "key": "geo-routes/snap-to-roads-out-of-sequence-timestamps-notice", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_out_of_sequence_timestamps_notice.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-snap-radius-out-of-range-rejected", "deployments": [], "key": "geo-routes/snap-to-roads-snap-radius-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_snap_radius_out_of_range_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-too-few-points-rejected", "deployments": [], "key": "geo-routes/snap-to-roads-too-few-points-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_too_few_points_rejected.py", "service": "geo-routes"} {"check_id": "geo-routes.snap-to-roads-unmatched-point-notice", "deployments": [], "key": "geo-routes/snap-to-roads-unmatched-point-notice", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["geo-routes:SnapToRoads"], "path": "behavioral/geo-routes/check_snap_to_roads_unmatched_point_notice.py", "service": "geo-routes"} {"check_id": "globalaccelerator.accelerator-delete-rejects-enabled-accelerator", "deployments": [], "key": "globalaccelerator/accelerator-delete-rejects-enabled-accelerator", "labels": ["axis:rejection", "plane:control"], "operations": ["globalaccelerator:CreateAccelerator", "globalaccelerator:DeleteAccelerator", "globalaccelerator:DescribeAccelerator", "globalaccelerator:UpdateAccelerator"], "path": "behavioral/globalaccelerator/check_accelerator_delete_rejects_enabled_accelerator.py", "service": "globalaccelerator"} {"check_id": "globalaccelerator.client-ip-preservation-false-rejected-for-instance-endpoint", "deployments": [], "key": "globalaccelerator/client-ip-preservation-false-rejected-for-instance-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:RunInstances", "ec2:TerminateInstances", "globalaccelerator:CreateAccelerator", "globalaccelerator:CreateEndpointGroup", "globalaccelerator:CreateListener", "globalaccelerator:DeleteAccelerator", "globalaccelerator:DeleteEndpointGroup", "globalaccelerator:DeleteListener", "globalaccelerator:DescribeEndpointGroup", "globalaccelerator:ListEndpointGroups", "globalaccelerator:ListListeners", "globalaccelerator:UpdateAccelerator", "globalaccelerator:UpdateEndpointGroup", "ssm:GetParameter"], "path": "behavioral/globalaccelerator/check_client_ip_preservation_false_rejected_for_instance_endpoint.py", "service": "globalaccelerator"} {"check_id": "globalaccelerator.custom-routing-listener-delete-rejects-associated-endpoint-group", "deployments": [], "key": "globalaccelerator/custom-routing-listener-delete-rejects-associated-endpoint-group", "labels": ["axis:rejection", "plane:control"], "operations": ["globalaccelerator:CreateCustomRoutingAccelerator", "globalaccelerator:CreateCustomRoutingEndpointGroup", "globalaccelerator:CreateCustomRoutingListener", "globalaccelerator:DeleteCustomRoutingAccelerator", "globalaccelerator:DeleteCustomRoutingEndpointGroup", "globalaccelerator:DeleteCustomRoutingListener", "globalaccelerator:DescribeCustomRoutingAccelerator", "globalaccelerator:DescribeCustomRoutingAcceleratorAttributes", "globalaccelerator:DescribeCustomRoutingEndpointGroup", "globalaccelerator:DescribeCustomRoutingListener", "globalaccelerator:ListCustomRoutingEndpointGroups", "globalaccelerator:ListCustomRoutingListeners"], "path": "behavioral/globalaccelerator/check_custom_routing_listener_delete_rejects_associated_endpoint_group.py", "service": "globalaccelerator"} {"check_id": "globalaccelerator.endpoint-group-rejects-duplicate-region", "deployments": [], "key": "globalaccelerator/endpoint-group-rejects-duplicate-region", "labels": ["axis:rejection", "plane:control"], "operations": ["globalaccelerator:CreateAccelerator", "globalaccelerator:CreateEndpointGroup", "globalaccelerator:CreateListener", "globalaccelerator:DeleteAccelerator", "globalaccelerator:DeleteEndpointGroup", "globalaccelerator:DeleteListener", "globalaccelerator:ListEndpointGroups", "globalaccelerator:ListListeners", "globalaccelerator:UpdateAccelerator"], "path": "behavioral/globalaccelerator/check_endpoint_group_rejects_duplicate_region.py", "service": "globalaccelerator"} {"check_id": "globalaccelerator.health-check-interval-rejects-unsupported-value", "deployments": [], "key": "globalaccelerator/health-check-interval-rejects-unsupported-value", "labels": ["axis:rejection", "plane:control"], "operations": ["globalaccelerator:CreateAccelerator", "globalaccelerator:CreateEndpointGroup", "globalaccelerator:CreateListener", "globalaccelerator:DeleteAccelerator", "globalaccelerator:DeleteEndpointGroup", "globalaccelerator:DeleteListener", "globalaccelerator:DescribeEndpointGroup", "globalaccelerator:ListEndpointGroups", "globalaccelerator:ListListeners", "globalaccelerator:UpdateAccelerator", "globalaccelerator:UpdateEndpointGroup"], "path": "behavioral/globalaccelerator/check_health_check_interval_rejects_unsupported_value.py", "service": "globalaccelerator"} {"check_id": "globalaccelerator.listener-delete-rejects-associated-endpoint-group", "deployments": [], "key": "globalaccelerator/listener-delete-rejects-associated-endpoint-group", "labels": ["axis:rejection", "plane:control"], "operations": ["globalaccelerator:CreateAccelerator", "globalaccelerator:CreateEndpointGroup", "globalaccelerator:CreateListener", "globalaccelerator:DeleteAccelerator", "globalaccelerator:DeleteEndpointGroup", "globalaccelerator:DeleteListener", "globalaccelerator:ListEndpointGroups", "globalaccelerator:ListListeners", "globalaccelerator:UpdateAccelerator"], "path": "behavioral/globalaccelerator/check_listener_delete_rejects_associated_endpoint_group.py", "service": "globalaccelerator"} {"check_id": "globalaccelerator.listener-delete-survives-accelerator-attributes-unaffected", "deployments": [], "key": "globalaccelerator/listener-delete-survives-accelerator-attributes-unaffected", "labels": ["axis:rejection", "plane:control"], "operations": ["globalaccelerator:CreateAccelerator", "globalaccelerator:CreateListener", "globalaccelerator:DeleteAccelerator", "globalaccelerator:DeleteListener", "globalaccelerator:DescribeAccelerator", "globalaccelerator:DescribeAcceleratorAttributes", "globalaccelerator:DescribeListener", "globalaccelerator:ListAccelerators", "globalaccelerator:ListListeners", "globalaccelerator:UpdateListener"], "path": "behavioral/globalaccelerator/check_listener_delete_survives_accelerator_attributes_unaffected.py", "service": "globalaccelerator"} {"check_id": "globalaccelerator.traffic-dial-rejects-percentage-above-hundred", "deployments": [], "key": "globalaccelerator/traffic-dial-rejects-percentage-above-hundred", "labels": ["axis:rejection", "plane:control"], "operations": ["globalaccelerator:CreateAccelerator", "globalaccelerator:CreateEndpointGroup", "globalaccelerator:CreateListener", "globalaccelerator:DeleteAccelerator", "globalaccelerator:DeleteEndpointGroup", "globalaccelerator:DeleteListener", "globalaccelerator:DescribeEndpointGroup", "globalaccelerator:ListEndpointGroups", "globalaccelerator:ListListeners", "globalaccelerator:UpdateAccelerator", "globalaccelerator:UpdateEndpointGroup"], "path": "behavioral/globalaccelerator/check_traffic_dial_rejects_percentage_above_hundred.py", "service": "globalaccelerator"} {"check_id": "glue.asset-lifecycle-put-get-delete", "deployments": [], "key": "glue/asset-lifecycle-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_asset_lifecycle_put_get_delete.py", "service": "glue"} {"check_id": "glue.asset-lifecycle-put-get-delete-404", "deployments": [], "key": "glue/asset-lifecycle-put-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_asset_lifecycle_put_get_delete_404.py", "service": "glue"} {"check_id": "glue.asset-metadata-form-data-round-trip", "deployments": [], "key": "glue/asset-metadata-form-data-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_asset_metadata_form_data_round_trip.py", "service": "glue"} {"check_id": "glue.asset-type-lifecycle-put-get-delete", "deployments": [], "key": "glue/asset-type-lifecycle-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAssetType", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_asset_type_lifecycle_put_get_delete.py", "service": "glue"} {"check_id": "glue.asset-type-lifecycle-put-get-delete-404", "deployments": [], "key": "glue/asset-type-lifecycle-put-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAssetType", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_asset_type_lifecycle_put_get_delete_404.py", "service": "glue"} {"check_id": "glue.associate-glossary-terms-concurrent-modification-rejected", "deployments": [], "key": "glue/associate-glossary-terms-concurrent-modification-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_associate_glossary_terms_concurrent_modification_rejected.py", "service": "glue"} {"check_id": "glue.associate-glossary-terms-nonexistent-entity-rejected", "deployments": [], "key": "glue/associate-glossary-terms-nonexistent-entity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_associate_glossary_terms_nonexistent_entity_rejected.py", "service": "glue"} {"check_id": "glue.associate-glossary-terms-nonexistent-term-not-found", "deployments": [], "key": "glue/associate-glossary-terms-nonexistent-term-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_associate_glossary_terms_nonexistent_term_not_found.py", "service": "glue"} {"check_id": "glue.batch-create-partition-arity-mismatch-partial", "deployments": [], "key": "glue/batch-create-partition-arity-mismatch-partial", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:BatchCreatePartition", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartition", "glue:GetPartitions"], "path": "behavioral/glue/check_batch_create_partition_arity_mismatch_partial.py", "service": "glue"} {"check_id": "glue.batch-delete-connection-per-entry-errors-and-valid-deletes-land", "deployments": [], "key": "glue/batch-delete-connection-per-entry-errors-and-valid-deletes-land", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:BatchDeleteConnection", "glue:CreateConnection", "glue:DeleteConnection", "glue:GetConnection", "glue:UpdateConnection"], "path": "behavioral/glue/check_batch_delete_connection_per_entry_errors_and_valid_deletes_land.py", "service": "glue"} {"check_id": "glue.batch-get-and-delete-partition", "deployments": [], "key": "glue/batch-get-and-delete-partition", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchDeletePartition", "glue:BatchGetPartition", "glue:BatchUpdatePartition", "glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartition", "glue:GetPartitions"], "path": "behavioral/glue/check_batch_get_and_delete_partition.py", "service": "glue"} {"check_id": "glue.blueprint-duplicate-name-rejected", "deployments": [], "key": "glue/blueprint-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:GetBlueprint"], "path": "behavioral/glue/check_blueprint_duplicate_name_rejected.py", "service": "glue"} {"check_id": "glue.blueprint-lifecycle-create-run-delete", "deployments": [], "key": "glue/blueprint-lifecycle-create-run-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:DeleteJob", "glue:DeleteWorkflow", "glue:GetBlueprint", "glue:GetBlueprintRun", "glue:GetJob", "glue:GetWorkflow", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_blueprint_lifecycle_create_run_delete.py", "service": "glue"} {"check_id": "glue.blueprint-lifecycle-create-start-run-delete", "deployments": [], "key": "glue/blueprint-lifecycle-create-start-run-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:DeleteJob", "glue:DeleteWorkflow", "glue:GetBlueprint", "glue:GetBlueprintRun", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_blueprint_lifecycle_create_start_run_delete.py", "service": "glue"} {"check_id": "glue.blueprint-run-reaches-terminal-state", "deployments": [], "key": "glue/blueprint-run-reaches-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:DeleteWorkflow", "glue:GetBlueprint", "glue:GetBlueprintRun", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_blueprint_run_reaches_terminal_state.py", "service": "glue"} {"check_id": "glue.blueprint-run-timeout-reflected-in-status", "deployments": [], "key": "glue/blueprint-run-timeout-reflected-in-status", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateBlueprint", "glue:GetBlueprint", "glue:GetBlueprintRun", "glue:GetBlueprintRuns", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_blueprint_run_timeout_reflected_in_status.py", "service": "glue"} {"check_id": "glue.catalog-delete-nonexistent-rejected", "deployments": [], "key": "glue/catalog-delete-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_catalog_delete_nonexistent_rejected.py", "service": "glue"} {"check_id": "glue.catalog-duplicate-create-rejected", "deployments": [], "key": "glue/catalog-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_catalog_duplicate_create_rejected.py", "service": "glue"} {"check_id": "glue.catalog-federation-parameters-round-trip", "deployments": [], "key": "glue/catalog-federation-parameters-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:CreateConnection", "glue:DeleteCatalog", "glue:DeleteConnection", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_catalog_federation_parameters_round_trip.py", "service": "glue"} {"check_id": "glue.catalog-import-status-reflects-managed-migration", "deployments": [], "key": "glue/catalog-import-status-reflects-managed-migration", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:GetCatalogImportStatus"], "path": "behavioral/glue/check_catalog_import_status_reflects_managed_migration.py", "service": "glue"} {"check_id": "glue.catalog-invalid-name-rejected", "deployments": [], "key": "glue/catalog-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:GetCatalog"], "path": "behavioral/glue/check_catalog_invalid_name_rejected.py", "service": "glue"} {"check_id": "glue.catalog-lifecycle-create-get-delete", "deployments": [], "key": "glue/catalog-lifecycle-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_catalog_lifecycle_create_get_delete.py", "service": "glue"} {"check_id": "glue.catalog-lifecycle-create-get-delete-404", "deployments": [], "key": "glue/catalog-lifecycle-create-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_catalog_lifecycle_create_get_delete_404.py", "service": "glue"} {"check_id": "glue.catalog-parameters-map-round-trip", "deployments": [], "key": "glue/catalog-parameters-map-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase"], "path": "behavioral/glue/check_catalog_parameters_map_round_trip.py", "service": "glue"} {"check_id": "glue.catalog-parameters-round-trip", "deployments": [], "key": "glue/catalog-parameters-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_catalog_parameters_round_trip.py", "service": "glue"} {"check_id": "glue.catalog-resource-policy-lifecycle", "deployments": [], "key": "glue/catalog-resource-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteResourcePolicy", "glue:GetResourcePolicies", "glue:GetResourcePolicy", "glue:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_catalog_resource_policy_lifecycle.py", "service": "glue"} {"check_id": "glue.check-schema-version-validity-rejects-malformed", "deployments": [], "key": "glue/check-schema-version-validity-rejects-malformed", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CheckSchemaVersionValidity"], "path": "behavioral/glue/check_check_schema_version_validity_rejects_malformed.py", "service": "glue"} {"check_id": "glue.classifier-create-get-delete", "deployments": [], "key": "glue/classifier-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateClassifier", "glue:DeleteClassifier", "glue:GetClassifier"], "path": "behavioral/glue/check_classifier_create_get_delete.py", "service": "glue"} {"check_id": "glue.classifier-lifecycle", "deployments": [], "key": "glue/classifier-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateClassifier", "glue:DeleteClassifier", "glue:GetClassifier", "glue:GetClassifiers", "glue:UpdateClassifier"], "path": "behavioral/glue/check_classifier_lifecycle.py", "service": "glue"} {"check_id": "glue.column-statistics-concurrent-run-rejected", "deployments": [], "key": "glue/column-statistics-concurrent-run-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_concurrent_run_rejected.py", "service": "glue"} {"check_id": "glue.column-statistics-task-run-poll-until-terminal-within-timeout", "deployments": [], "key": "glue/column-statistics-task-run-poll-until-terminal-within-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_task_run_poll_until_terminal_within_timeout.py", "service": "glue"} {"check_id": "glue.column-statistics-task-run-reaches-terminal-state", "deployments": [], "key": "glue/column-statistics-task-run-reaches-terminal-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_task_run_reaches_terminal_state.py", "service": "glue"} {"check_id": "glue.column-statistics-task-run-respects-schedule-interval", "deployments": [], "key": "glue/column-statistics-task-run-respects-schedule-interval", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:GetColumnStatisticsTaskSettings", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_task_run_respects_schedule_interval.py", "service": "glue"} {"check_id": "glue.column-statistics-task-runs-ordering", "deployments": [], "key": "glue/column-statistics-task-runs-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_task_runs_ordering.py", "service": "glue"} {"check_id": "glue.column-statistics-task-settings-duplicate-create-rejected", "deployments": [], "key": "glue/column-statistics-task-settings-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRuns", "glue:GetColumnStatisticsTaskSettings", "glue:StartColumnStatisticsTaskRun", "glue:StopColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_task_settings_duplicate_create_rejected.py", "service": "glue"} {"check_id": "glue.column-statistics-task-settings-duplicate-rejected", "deployments": [], "key": "glue/column-statistics-task-settings-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskSettings", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_task_settings_duplicate_rejected.py", "service": "glue"} {"check_id": "glue.column-statistics-task-settings-lifecycle", "deployments": [], "key": "glue/column-statistics-task-settings-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskSettings", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_task_settings_lifecycle.py", "service": "glue"} {"check_id": "glue.column-statistics-task-settings-schedule-round-trip", "deployments": [], "key": "glue/column-statistics-task-settings-schedule-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskSettings", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_column_statistics_task_settings_schedule_round_trip.py", "service": "glue"} {"check_id": "glue.concurrent-asset-put-conflict-detected", "deployments": [], "key": "glue/concurrent-asset-put-conflict-detected", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_concurrent_asset_put_conflict_detected.py", "service": "glue"} {"check_id": "glue.concurrent-asset-put-conflict-rejected", "deployments": [], "key": "glue/concurrent-asset-put-conflict-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_concurrent_asset_put_conflict_rejected.py", "service": "glue"} {"check_id": "glue.concurrent-asset-type-put-both-succeed", "deployments": [], "key": "glue/concurrent-asset-type-put-both-succeed", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAssetType", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_concurrent_asset_type_put_both_succeed.py", "service": "glue"} {"check_id": "glue.concurrent-catalog-create-conflict-detected", "deployments": [], "key": "glue/concurrent-catalog-create-conflict-detected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_concurrent_catalog_create_conflict_detected.py", "service": "glue"} {"check_id": "glue.concurrent-catalog-create-conflict-rejected", "deployments": [], "key": "glue/concurrent-catalog-create-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_concurrent_catalog_create_conflict_rejected.py", "service": "glue"} {"check_id": "glue.concurrent-create-partition-exactly-one-succeeds", "deployments": [], "key": "glue/concurrent-create-partition-exactly-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartitions"], "path": "behavioral/glue/check_concurrent_create_partition_exactly_one_succeeds.py", "service": "glue"} {"check_id": "glue.concurrent-delete-asset-conflict-rejected", "deployments": [], "key": "glue/concurrent-delete-asset-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_concurrent_delete_asset_conflict_rejected.py", "service": "glue"} {"check_id": "glue.concurrent-delete-catalog-conflict-rejected", "deployments": [], "key": "glue/concurrent-delete-catalog-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_concurrent_delete_catalog_conflict_rejected.py", "service": "glue"} {"check_id": "glue.concurrent-delete-glossary-term-and-associate-both-succeed", "deployments": [], "key": "glue/concurrent-delete-glossary-term-and-associate-both-succeed", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:GetGlossaryTerm", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_concurrent_delete_glossary_term_and_associate_both_succeed.py", "service": "glue"} {"check_id": "glue.concurrent-glossary-create-conflict-rejected", "deployments": [], "key": "glue/concurrent-glossary-create-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:DeleteGlossary", "glue:GetGlossary"], "path": "behavioral/glue/check_concurrent_glossary_create_conflict_rejected.py", "service": "glue"} {"check_id": "glue.concurrent-glossary-delete-conflict-detected", "deployments": [], "key": "glue/concurrent-glossary-delete-conflict-detected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:DeleteGlossary", "glue:GetGlossary", "glue:UpdateGlossary"], "path": "behavioral/glue/check_concurrent_glossary_delete_conflict_detected.py", "service": "glue"} {"check_id": "glue.concurrent-glossary-term-association-conflict-detected", "deployments": [], "key": "glue/concurrent-glossary-term-association-conflict-detected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_concurrent_glossary_term_association_conflict_detected.py", "service": "glue"} {"check_id": "glue.concurrent-glossary-term-association-conflict-rejected", "deployments": [], "key": "glue/concurrent-glossary-term-association-conflict-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_concurrent_glossary_term_association_conflict_rejected.py", "service": "glue"} {"check_id": "glue.concurrent-glossary-term-create-conflict-rejected", "deployments": [], "key": "glue/concurrent-glossary-term-create-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossaryTerm"], "path": "behavioral/glue/check_concurrent_glossary_term_create_conflict_rejected.py", "service": "glue"} {"check_id": "glue.concurrent-identity-center-config-modification-rejected", "deployments": [], "key": "glue/concurrent-identity-center-config-modification-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlueIdentityCenterConfiguration", "glue:DeleteGlueIdentityCenterConfiguration", "glue:GetGlueIdentityCenterConfiguration", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/glue/check_concurrent_identity_center_config_modification_rejected.py", "service": "glue"} {"check_id": "glue.concurrent-identity-center-configuration-create-rejected", "deployments": [], "key": "glue/concurrent-identity-center-configuration-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlueIdentityCenterConfiguration", "glue:DeleteGlueIdentityCenterConfiguration", "glue:GetGlueIdentityCenterConfiguration", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/glue/check_concurrent_identity_center_configuration_create_rejected.py", "service": "glue"} {"check_id": "glue.connection-create-get-delete", "deployments": [], "key": "glue/connection-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateConnection", "glue:DeleteConnection", "glue:GetConnection"], "path": "behavioral/glue/check_connection_create_get_delete.py", "service": "glue"} {"check_id": "glue.connection-lifecycle", "deployments": [], "key": "glue/connection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateConnection", "glue:DeleteConnection", "glue:GetConnection", "glue:GetConnections", "glue:UpdateConnection"], "path": "behavioral/glue/check_connection_lifecycle.py", "service": "glue"} {"check_id": "glue.connection-password-hidden-when-requested", "deployments": [], "key": "glue/connection-password-hidden-when-requested", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateConnection", "glue:DeleteConnection", "glue:GetConnection"], "path": "behavioral/glue/check_connection_password_hidden_when_requested.py", "service": "glue"} {"check_id": "glue.crawler-create-start-poll-ready", "deployments": [], "key": "glue/crawler-create-start-poll-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetCrawlerMetrics", "glue:ListCrawls", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_crawler_create_start_poll_ready.py", "service": "glue"} {"check_id": "glue.crawler-metrics-reflect-run-activity", "deployments": [], "key": "glue/crawler-metrics-reflect-run-activity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetCrawlerMetrics", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_crawler_metrics_reflect_run_activity.py", "service": "glue"} {"check_id": "glue.crawler-metrics-reflect-run-progress", "deployments": [], "key": "glue/crawler-metrics-reflect-run-progress", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetCrawlerMetrics", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_crawler_metrics_reflect_run_progress.py", "service": "glue"} {"check_id": "glue.crawler-metrics-reflect-run-state", "deployments": [], "key": "glue/crawler-metrics-reflect-run-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetCrawlerMetrics", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_crawler_metrics_reflect_run_state.py", "service": "glue"} {"check_id": "glue.crawler-schedule-state-machine", "deployments": [], "key": "glue/crawler-schedule-state-machine", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchGetCrawlers", "glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:StopCrawlerSchedule", "glue:UpdateCrawler", "glue:UpdateCrawlerSchedule", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_crawler_schedule_state_machine.py", "service": "glue"} {"check_id": "glue.create-blueprint-invalid-location-rejected", "deployments": [], "key": "glue/create-blueprint-invalid-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:GetBlueprint", "glue:GetBlueprintRuns", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/glue/check_create_blueprint_invalid_location_rejected.py", "service": "glue"} {"check_id": "glue.create-catalog-duplicate-name-rejected", "deployments": [], "key": "glue/create-catalog-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_create_catalog_duplicate_name_rejected.py", "service": "glue"} {"check_id": "glue.create-catalog-native-unsupported-rejected", "deployments": [], "key": "glue/create-catalog-native-unsupported-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:GetCatalog", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_create_catalog_native_unsupported_rejected.py", "service": "glue"} {"check_id": "glue.create-column-statistics-task-settings-while-running-rejected", "deployments": [], "key": "glue/create-column-statistics-task-settings-while-running-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskSettings", "glue:StartColumnStatisticsTaskRun", "glue:StopColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_create_column_statistics_task_settings_while_running_rejected.py", "service": "glue"} {"check_id": "glue.create-crawler-no-targets-fails", "deployments": [], "key": "glue/create-crawler-no-targets-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_create_crawler_no_targets_fails.py", "service": "glue"} {"check_id": "glue.create-database-duplicate-name-rejected", "deployments": [], "key": "glue/create-database-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase"], "path": "behavioral/glue/check_create_database_duplicate_name_rejected.py", "service": "glue"} {"check_id": "glue.create-database-name-too-long-fails", "deployments": [], "key": "glue/create-database-name-too-long-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase"], "path": "behavioral/glue/check_create_database_name_too_long_fails.py", "service": "glue"} {"check_id": "glue.create-glossary-concurrent-create-race-rejected", "deployments": [], "key": "glue/create-glossary-concurrent-create-race-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:DeleteGlossary", "glue:GetGlossary"], "path": "behavioral/glue/check_create_glossary_concurrent_create_race_rejected.py", "service": "glue"} {"check_id": "glue.create-integration-resource-property-conflict-rejected", "deployments": [], "key": "glue/create-integration-resource-property-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateIntegrationResourceProperty", "glue:DeleteDatabase", "glue:DeleteIntegrationResourceProperty", "glue:GetIntegrationResourceProperty", "glue:TagResource", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_create_integration_resource_property_conflict_rejected.py", "service": "glue"} {"check_id": "glue.create-integration-resource-property-duplicate-is-upsert", "deployments": [], "key": "glue/create-integration-resource-property-duplicate-is-upsert", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateIntegrationResourceProperty", "glue:DeleteDatabase", "glue:DeleteIntegrationResourceProperty", "glue:GetIntegrationResourceProperty", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_create_integration_resource_property_duplicate_is_upsert.py", "service": "glue"} {"check_id": "glue.create-ml-transform-idempotent-mismatch-rejected", "deployments": [], "key": "glue/create-ml-transform-idempotent-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateMLTransform", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteMLTransform", "glue:GetMLTransform", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_create_ml_transform_idempotent_mismatch_rejected.py", "service": "glue"} {"check_id": "glue.create-ml-transform-idempotent-token-mismatch-rejected", "deployments": [], "key": "glue/create-ml-transform-idempotent-token-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateMLTransform", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteMLTransform", "glue:DeleteTable", "glue:GetMLTransform", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_create_ml_transform_idempotent_token_mismatch_rejected.py", "service": "glue"} {"check_id": "glue.create-partition-duplicate-fails", "deployments": [], "key": "glue/create-partition-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartition", "glue:GetPartitions"], "path": "behavioral/glue/check_create_partition_duplicate_fails.py", "service": "glue"} {"check_id": "glue.create-partition-index-nonpartition-key-rejected", "deployments": [], "key": "glue/create-partition-index-nonpartition-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartitionIndex", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartitionIndexes"], "path": "behavioral/glue/check_create_partition_index_nonpartition_key_rejected.py", "service": "glue"} {"check_id": "glue.create-session-duplicate-id-rejected", "deployments": [], "key": "glue/create-session-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_create_session_duplicate_id_rejected.py", "service": "glue"} {"check_id": "glue.create-session-idempotent-mismatch-rejected", "deployments": [], "key": "glue/create-session-idempotent-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_create_session_idempotent_mismatch_rejected.py", "service": "glue"} {"check_id": "glue.create-session-idempotent-token-mismatch-rejected", "deployments": [], "key": "glue/create-session-idempotent-token-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_create_session_idempotent_token_mismatch_rejected.py", "service": "glue"} {"check_id": "glue.create-table-duplicate-preserves-original", "deployments": [], "key": "glue/create-table-duplicate-preserves-original", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTableVersions"], "path": "behavioral/glue/check_create_table_duplicate_preserves_original.py", "service": "glue"} {"check_id": "glue.create-table-optimizer-nonexistent-table-not-found", "deployments": [], "key": "glue/create-table-optimizer-nonexistent-table-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:CreateTableOptimizer", "glue:DeleteDatabase", "glue:DeleteTable", "glue:DeleteTableOptimizer", "glue:GetTableOptimizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_create_table_optimizer_nonexistent_table_not_found.py", "service": "glue"} {"check_id": "glue.create-table-optimizer-nonexistent-table-rejected", "deployments": [], "key": "glue/create-table-optimizer-nonexistent-table-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:CreateTableOptimizer", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTableOptimizer", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_create_table_optimizer_nonexistent_table_rejected.py", "service": "glue"} {"check_id": "glue.create-table-optimizer-on-nonexistent-table-fails", "deployments": [], "key": "glue/create-table-optimizer-on-nonexistent-table-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:CreateTableOptimizer", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTableOptimizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_create_table_optimizer_on_nonexistent_table_fails.py", "service": "glue"} {"check_id": "glue.create-table-partition-key-overlapping-column-accepted", "deployments": [], "key": "glue/create-table-partition-key-overlapping-column-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTables"], "path": "behavioral/glue/check_create_table_partition_key_overlapping_column_accepted.py", "service": "glue"} {"check_id": "glue.create-trigger-conditional-without-predicate-fails", "deployments": [], "key": "glue/create-trigger-conditional-without-predicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:DeleteJob", "glue:DeleteTrigger", "glue:GetTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_create_trigger_conditional_without_predicate_fails.py", "service": "glue"} {"check_id": "glue.create-trigger-invalid-cron-fails", "deployments": [], "key": "glue/create-trigger-invalid-cron-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:DeleteJob", "glue:DeleteTrigger", "glue:GetTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_create_trigger_invalid_cron_fails.py", "service": "glue"} {"check_id": "glue.create-usage-profile-invalid-configuration-rejected", "deployments": [], "key": "glue/create-usage-profile-invalid-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateUsageProfile", "glue:DeleteUsageProfile", "glue:GetUsageProfile"], "path": "behavioral/glue/check_create_usage_profile_invalid_configuration_rejected.py", "service": "glue"} {"check_id": "glue.custom-entity-type-lifecycle", "deployments": [], "key": "glue/custom-entity-type-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchGetCustomEntityTypes", "glue:CreateCustomEntityType", "glue:DeleteCustomEntityType", "glue:GetCustomEntityType", "glue:ListCustomEntityTypes"], "path": "behavioral/glue/check_custom_entity_type_lifecycle.py", "service": "glue"} {"check_id": "glue.dashboard-url-returns-valid-endpoint", "deployments": [], "key": "glue/dashboard-url-returns-valid-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetDashboardUrl", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/glue/check_dashboard_url_returns_valid_endpoint.py", "service": "glue"} {"check_id": "glue.dashboard-url-returns-valid-session-scoped-endpoint", "deployments": [], "key": "glue/dashboard-url-returns-valid-session-scoped-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetDashboardUrl", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_dashboard_url_returns_valid_session_scoped_endpoint.py", "service": "glue"} {"check_id": "glue.data-quality-rule-recommendation-run-terminal-state", "deployments": [], "key": "glue/data-quality-rule-recommendation-run-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDataQualityRuleRecommendationRun", "glue:StartDataQualityRuleRecommendationRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_data_quality_rule_recommendation_run_terminal_state.py", "service": "glue"} {"check_id": "glue.data-quality-ruleset-evaluation-run-terminal-state", "deployments": [], "key": "glue/data-quality-ruleset-evaluation-run-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDataQualityRuleset", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDataQualityRuleset", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDataQualityResult", "glue:GetDataQualityRulesetEvaluationRun", "glue:StartDataQualityRulesetEvaluationRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_data_quality_ruleset_evaluation_run_terminal_state.py", "service": "glue"} {"check_id": "glue.data-quality-ruleset-lifecycle", "deployments": [], "key": "glue/data-quality-ruleset-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDataQualityRuleset", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDataQualityRuleset", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDataQualityRuleset", "glue:ListDataQualityRulesets", "glue:UpdateDataQualityRuleset"], "path": "behavioral/glue/check_data_quality_ruleset_lifecycle.py", "service": "glue"} {"check_id": "glue.database-create-get-delete", "deployments": [], "key": "glue/database-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase"], "path": "behavioral/glue/check_database_create_get_delete.py", "service": "glue"} {"check_id": "glue.database-delete-cascades-to-tables", "deployments": [], "key": "glue/database-delete-cascades-to-tables", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDatabase", "glue:GetTable"], "path": "behavioral/glue/check_database_delete_cascades_to_tables.py", "service": "glue"} {"check_id": "glue.database-update-description", "deployments": [], "key": "glue/database-update-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:UpdateDatabase"], "path": "behavioral/glue/check_database_update_description.py", "service": "glue"} {"check_id": "glue.delete-catalog-nonexistent-not-found-exact-code", "deployments": [], "key": "glue/delete-catalog-nonexistent-not-found-exact-code", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:DeleteCatalog", "glue:GetCatalog", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket"], "path": "behavioral/glue/check_delete_catalog_nonexistent_not_found_exact_code.py", "service": "glue"} {"check_id": "glue.delete-column-statistics-task-settings-nonexistent-not-found", "deployments": [], "key": "glue/delete-column-statistics-task-settings-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskSettings", "glue:GetTable"], "path": "behavioral/glue/check_delete_column_statistics_task_settings_nonexistent_not_found.py", "service": "glue"} {"check_id": "glue.delete-crawler-while-running-rejected", "deployments": [], "key": "glue/delete-crawler-while-running-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_delete_crawler_while_running_rejected.py", "service": "glue"} {"check_id": "glue.delete-current-table-version-rejected", "deployments": [], "key": "glue/delete-current-table-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:DeleteTableVersion", "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions", "glue:UpdateTable"], "path": "behavioral/glue/check_delete_current_table_version_rejected.py", "service": "glue"} {"check_id": "glue.delete-form-type-referenced-by-asset-type-fails", "deployments": [], "key": "glue/delete-form-type-referenced-by-asset-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAssetType", "glue:GetFormType", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_delete_form_type_referenced_by_asset_type_fails.py", "service": "glue"} {"check_id": "glue.delete-glossary-with-terms-conflict-accepted", "deployments": [], "key": "glue/delete-glossary-with-terms-conflict-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossary", "glue:GetGlossaryTerm", "glue:ListGlossaryTerms"], "path": "behavioral/glue/check_delete_glossary_with_terms_conflict_accepted.py", "service": "glue"} {"check_id": "glue.delete-glossary-with-terms-conflict-allowed", "deployments": [], "key": "glue/delete-glossary-with-terms-conflict-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossary", "glue:GetGlossaryTerm", "glue:ListGlossaryTerms"], "path": "behavioral/glue/check_delete_glossary_with_terms_conflict_allowed.py", "service": "glue"} {"check_id": "glue.delete-identity-center-configuration-concurrent-delete-rejected", "deployments": [], "key": "glue/delete-identity-center-configuration-concurrent-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlueIdentityCenterConfiguration", "glue:DeleteGlueIdentityCenterConfiguration", "glue:GetGlueIdentityCenterConfiguration", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/glue/check_delete_identity_center_configuration_concurrent_delete_rejected.py", "service": "glue"} {"check_id": "glue.delete-nonexistent-crawler-fails", "deployments": [], "key": "glue/delete-nonexistent-crawler-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_delete_nonexistent_crawler_fails.py", "service": "glue"} {"check_id": "glue.delete-session-in-illegal-state-rejected", "deployments": [], "key": "glue/delete-session-in-illegal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_delete_session_in_illegal_state_rejected.py", "service": "glue"} {"check_id": "glue.delete-session-while-statement-running-accepted", "deployments": [], "key": "glue/delete-session-while-statement-running-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_delete_session_while_statement_running_accepted.py", "service": "glue"} {"check_id": "glue.delete-usage-profile-in-use-blocked", "deployments": [], "key": "glue/delete-usage-profile-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateUsageProfile", "glue:DeleteUsageProfile", "glue:GetUsageProfile"], "path": "behavioral/glue/check_delete_usage_profile_in_use_blocked.py", "service": "glue"} {"check_id": "glue.delete-usage-profile-missing-name-is-idempotent-noop", "deployments": [], "key": "glue/delete-usage-profile-missing-name-is-idempotent-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateUsageProfile", "glue:DeleteUsageProfile", "glue:GetUsageProfile"], "path": "behavioral/glue/check_delete_usage_profile_missing_name_is_idempotent_noop.py", "service": "glue"} {"check_id": "glue.deploy-crawler-via-cloudformation", "deployments": [], "key": "glue/deploy-crawler-via-cloudformation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:GetCrawlerMetrics", "glue:GetDatabase", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_deploy_crawler_via_cloudformation.py", "service": "glue"} {"check_id": "glue.deploy-database-via-cloudformation", "deployments": [], "key": "glue/deploy-database-via-cloudformation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:CreateTable", "glue:DeleteTable", "glue:GetDatabase", "glue:GetTable", "glue:GetTables"], "path": "behavioral/glue/check_deploy_database_via_cloudformation.py", "service": "glue"} {"check_id": "glue.deploy-glue-crawler-cfn-runs-and-populates-catalog", "deployments": [], "key": "glue/deploy-glue-crawler-cfn-runs-and-populates-catalog", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_deploy_glue_crawler_cfn_runs_and_populates_catalog.py", "service": "glue"} {"check_id": "glue.deploy-glue-crawler-via-cloudformation-runs-and-populates-catalog", "deployments": [], "key": "glue/deploy-glue-crawler-via-cloudformation-runs-and-populates-catalog", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/glue/check_deploy_glue_crawler_via_cloudformation_runs_and_populates_catalog.py", "service": "glue"} {"check_id": "glue.deploy-glue-database-cfn-behaves", "deployments": [], "key": "glue/deploy-glue-database-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "glue:CreateTable", "glue:DeleteTable", "glue:GetDatabase", "glue:GetTable", "glue:GetTables", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_deploy_glue_database_cfn_behaves.py", "service": "glue"} {"check_id": "glue.deploy-glue-database-via-cloudformation-behaves", "deployments": [], "key": "glue/deploy-glue-database-via-cloudformation-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "glue:CreateTable", "glue:DeleteTable", "glue:GetDatabase", "glue:GetTable", "glue:GetTables", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_deploy_glue_database_via_cloudformation_behaves.py", "service": "glue"} {"check_id": "glue.deploy-glue-job-cfn-executes-successfully", "deployments": [], "key": "glue/deploy-glue-job-cfn-executes-successfully", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_deploy_glue_job_cfn_executes_successfully.py", "service": "glue"} {"check_id": "glue.deploy-glue-job-cfn-insufficient-role-permissions-rejected", "deployments": [], "key": "glue/deploy-glue-job-cfn-insufficient-role-permissions-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_deploy_glue_job_cfn_insufficient_role_permissions_rejected.py", "service": "glue"} {"check_id": "glue.deploy-glue-job-via-cloudformation-executes-successfully", "deployments": [], "key": "glue/deploy-glue-job-via-cloudformation-executes-successfully", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_deploy_glue_job_via_cloudformation_executes_successfully.py", "service": "glue"} {"check_id": "glue.deploy-glue-trigger-cfn-fires-scheduled-job", "deployments": [], "key": "glue/deploy-glue-trigger-cfn-fires-scheduled-job", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:GetTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_deploy_glue_trigger_cfn_fires_scheduled_job.py", "service": "glue"} {"check_id": "glue.deploy-job-missing-output-permission-rejected", "deployments": [], "key": "glue/deploy-job-missing-output-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_deploy_job_missing_output_permission_rejected.py", "service": "glue"} {"check_id": "glue.deploy-job-via-cloudformation", "deployments": [], "key": "glue/deploy-job-via-cloudformation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_deploy_job_via_cloudformation.py", "service": "glue"} {"check_id": "glue.e2e-blueprint-deployment-flow", "deployments": [], "key": "glue/e2e-blueprint-deployment-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:DeleteJob", "glue:DeleteWorkflow", "glue:GetBlueprint", "glue:GetBlueprintRun", "glue:GetJob", "glue:GetWorkflow", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_e2e_blueprint_deployment_flow.py", "service": "glue"} {"check_id": "glue.e2e-blueprint-run-deploys-workflow-flow", "deployments": [], "key": "glue/e2e-blueprint-run-deploys-workflow-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:DeleteJob", "glue:DeleteWorkflow", "glue:GetBlueprint", "glue:GetBlueprintRun", "glue:GetJob", "glue:GetWorkflow", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_e2e_blueprint_run_deploys_workflow_flow.py", "service": "glue"} {"check_id": "glue.e2e-column-statistics-task-run-flow", "deployments": [], "key": "glue/e2e-column-statistics-task-run-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsForTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/glue/check_e2e_column_statistics_task_run_flow.py", "service": "glue"} {"check_id": "glue.e2e-column-statistics-task-run-populates-stats-flow", "deployments": [], "key": "glue/e2e-column-statistics-task-run-populates-stats-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsForTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "glue:StopColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_e2e_column_statistics_task_run_populates_stats_flow.py", "service": "glue"} {"check_id": "glue.e2e-column-statistics-task-settings-nonexistent-table-rejected", "deployments": [], "key": "glue/e2e-column-statistics-task-settings-nonexistent-table-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateColumnStatisticsTaskSettings", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsTaskSettings", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskSettings", "glue:TagResource", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_e2e_column_statistics_task_settings_nonexistent_table_rejected.py", "service": "glue"} {"check_id": "glue.e2e-crawler-populates-catalog-then-teardown", "deployments": [], "key": "glue/e2e-crawler-populates-catalog-then-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetDatabase", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_e2e_crawler_populates_catalog_then_teardown.py", "service": "glue"} {"check_id": "glue.e2e-data-quality-evaluation-run-produces-result-flow", "deployments": [], "key": "glue/e2e-data-quality-evaluation-run-produces-result-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDataQualityRuleset", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDataQualityRuleset", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDataQualityResult", "glue:GetDataQualityRulesetEvaluationRun", "glue:StartDataQualityRulesetEvaluationRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_e2e_data_quality_evaluation_run_produces_result_flow.py", "service": "glue"} {"check_id": "glue.e2e-data-quality-ruleset-evaluation-flow", "deployments": [], "key": "glue/e2e-data-quality-ruleset-evaluation-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDataQualityRuleset", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDataQualityRuleset", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDataQualityResult", "glue:GetDataQualityRulesetEvaluationRun", "glue:StartDataQualityRulesetEvaluationRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_e2e_data_quality_ruleset_evaluation_flow.py", "service": "glue"} {"check_id": "glue.e2e-glossary-associate-nonexistent-term-rejected", "deployments": [], "key": "glue/e2e-glossary-associate-nonexistent-term-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_e2e_glossary_associate_nonexistent_term_rejected.py", "service": "glue"} {"check_id": "glue.e2e-glossary-term-association-lifecycle-flow", "deployments": [], "key": "glue/e2e-glossary-term-association-lifecycle-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:GetGlossaryTerm", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_e2e_glossary_term_association_lifecycle_flow.py", "service": "glue"} {"check_id": "glue.e2e-glossary-term-association-workflow", "deployments": [], "key": "glue/e2e-glossary-term-association-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateDatabase", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:DeleteTable", "glue:DisassociateGlossaryTerms", "glue:GetAsset", "glue:GetGlossaryTerm", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_e2e_glossary_term_association_workflow.py", "service": "glue"} {"check_id": "glue.e2e-interactive-session-statement-execution-flow", "deployments": [], "key": "glue/e2e-interactive-session-statement-execution-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_e2e_interactive_session_statement_execution_flow.py", "service": "glue"} {"check_id": "glue.e2e-schema-registry-compatibility-enforced-across-versions", "deployments": [], "key": "glue/e2e-schema-registry-compatibility-enforced-across-versions", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateRegistry", "glue:CreateSchema", "glue:DeleteRegistry", "glue:DeleteSchema", "glue:GetSchema", "glue:GetSchemaByDefinition", "glue:GetSchemaVersion", "glue:RegisterSchemaVersion"], "path": "behavioral/glue/check_e2e_schema_registry_compatibility_enforced_across_versions.py", "service": "glue"} {"check_id": "glue.empty-resource-listings-are-empty-not-errors", "deployments": [], "key": "glue/empty-resource-listings-are-empty-not-errors", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchGetBlueprints", "glue:GetCatalogs", "glue:GetClassifiers", "glue:GetConnections", "glue:GetCrawlers", "glue:GetDataCatalogEncryptionSettings", "glue:GetMLTransforms", "glue:GetSecurityConfigurations", "glue:ListBlueprints", "glue:ListCrawlers", "glue:ListDataQualityResults", "glue:ListDataQualityRuleRecommendationRuns", "glue:ListDataQualityRulesetEvaluationRuns", "glue:ListDataQualityRulesets", "glue:ListMLTransforms", "glue:ListRegistries", "glue:ListSessions", "glue:ListTriggers", "glue:ListUsageProfiles", "glue:ListWorkflows"], "path": "behavioral/glue/check_empty_resource_listings_are_empty_not_errors.py", "service": "glue"} {"check_id": "glue.form-type-delete-in-use-rejected", "deployments": [], "key": "glue/form-type-delete-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_form_type_delete_in_use_rejected.py", "service": "glue"} {"check_id": "glue.form-type-delete-referenced-by-asset-type-rejected", "deployments": [], "key": "glue/form-type-delete-referenced-by-asset-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAssetType", "glue:GetFormType", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_form_type_delete_referenced_by_asset_type_rejected.py", "service": "glue"} {"check_id": "glue.form-type-invalid-name-pattern-rejected", "deployments": [], "key": "glue/form-type-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:DeleteFormType", "glue:GetFormType", "glue:PutFormType"], "path": "behavioral/glue/check_form_type_invalid_name_pattern_rejected.py", "service": "glue"} {"check_id": "glue.form-type-lifecycle-put-get-delete", "deployments": [], "key": "glue/form-type-lifecycle-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteFormType", "glue:GetFormType", "glue:ListFormTypes", "glue:PutFormType"], "path": "behavioral/glue/check_form_type_lifecycle_put_get_delete.py", "service": "glue"} {"check_id": "glue.form-type-lifecycle-put-get-delete-404", "deployments": [], "key": "glue/form-type-lifecycle-put-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteFormType", "glue:GetFormType", "glue:PutFormType"], "path": "behavioral/glue/check_form_type_lifecycle_put_get_delete_404.py", "service": "glue"} {"check_id": "glue.get-asset-nonexistent-identifier-rejected", "deployments": [], "key": "glue/get-asset-nonexistent-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_get_asset_nonexistent_identifier_rejected.py", "service": "glue"} {"check_id": "glue.get-blueprint-runs-ordering-most-recent-first", "deployments": [], "key": "glue/get-blueprint-runs-ordering-most-recent-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:DeleteWorkflow", "glue:GetBlueprint", "glue:GetBlueprintRun", "glue:GetBlueprintRuns", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_get_blueprint_runs_ordering_most_recent_first.py", "service": "glue"} {"check_id": "glue.get-catalog-federation-source-error-propagated", "deployments": [], "key": "glue/get-catalog-federation-source-error-propagated", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCatalog", "glue:CreateConnection", "glue:DeleteConnection", "glue:GetCatalog", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_get_catalog_federation_source_error_propagated.py", "service": "glue"} {"check_id": "glue.get-column-statistics-task-run-invalid-input-exact-code", "deployments": [], "key": "glue/get-column-statistics-task-run-invalid-input-exact-code", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:GetColumnStatisticsTaskRun"], "path": "behavioral/glue/check_get_column_statistics_task_run_invalid_input_exact_code.py", "service": "glue"} {"check_id": "glue.get-dashboard-url-returns-valid-resource-url", "deployments": [], "key": "glue/get-dashboard-url-returns-valid-resource-url", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetDashboardUrl", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_get_dashboard_url_returns_valid_resource_url.py", "service": "glue"} {"check_id": "glue.get-dashboard-url-unknown-resource-rejected", "deployments": [], "key": "glue/get-dashboard-url-unknown-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetDashboardUrl", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_get_dashboard_url_unknown_resource_rejected.py", "service": "glue"} {"check_id": "glue.get-materialized-view-refresh-task-run-invalid-id-rejected", "deployments": [], "key": "glue/get-materialized-view-refresh-task-run-invalid-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:GetMaterializedViewRefreshTaskRun", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_get_materialized_view_refresh_task_run_invalid_id_rejected.py", "service": "glue"} {"check_id": "glue.get-partitions-expression-like-and-not-equals", "deployments": [], "key": "glue/get-partitions-expression-like-and-not-equals", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartitions"], "path": "behavioral/glue/check_get_partitions_expression_like_and_not_equals.py", "service": "glue"} {"check_id": "glue.get-partitions-expression-numeric-coercion", "deployments": [], "key": "glue/get-partitions-expression-numeric-coercion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartitions"], "path": "behavioral/glue/check_get_partitions_expression_numeric_coercion.py", "service": "glue"} {"check_id": "glue.get-partitions-expression-on-a-real-non-partition-column-refused", "deployments": [], "key": "glue/get-partitions-expression-on-a-real-non-partition-column-refused", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartitions", "glue:GetTable"], "path": "behavioral/glue/check_get_partitions_expression_on_a_real_non_partition_column_refused.py", "service": "glue"} {"check_id": "glue.get-partitions-malformed-expression-fails", "deployments": [], "key": "glue/get-partitions-malformed-expression-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartitions"], "path": "behavioral/glue/check_get_partitions_malformed_expression_fails.py", "service": "glue"} {"check_id": "glue.get-partitions-pagination-exactness", "deployments": [], "key": "glue/get-partitions-pagination-exactness", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartitions"], "path": "behavioral/glue/check_get_partitions_pagination_exactness.py", "service": "glue"} {"check_id": "glue.get-partitions-segmented-scan-complete", "deployments": [], "key": "glue/get-partitions-segmented-scan-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartitions"], "path": "behavioral/glue/check_get_partitions_segmented_scan_complete.py", "service": "glue"} {"check_id": "glue.get-partitions-unknown-column-expression-fails", "deployments": [], "key": "glue/get-partitions-unknown-column-expression-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartitions"], "path": "behavioral/glue/check_get_partitions_unknown_column_expression_fails.py", "service": "glue"} {"check_id": "glue.get-statement-nonexistent-not-found", "deployments": [], "key": "glue/get-statement-nonexistent-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_get_statement_nonexistent_not_found.py", "service": "glue"} {"check_id": "glue.get-statement-nonexistent-rejected", "deployments": [], "key": "glue/get-statement-nonexistent-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_get_statement_nonexistent_rejected.py", "service": "glue"} {"check_id": "glue.get-table-not-found", "deployments": [], "key": "glue/get-table-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable"], "path": "behavioral/glue/check_get_table_not_found.py", "service": "glue"} {"check_id": "glue.get-tables-lists-created-tables", "deployments": [], "key": "glue/get-tables-lists-created-tables", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTables"], "path": "behavioral/glue/check_get_tables_lists_created_tables.py", "service": "glue"} {"check_id": "glue.get-unfiltered-partition-metadata-nonexistent-rejected", "deployments": [], "key": "glue/get-unfiltered-partition-metadata-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartition", "glue:GetUnfilteredPartitionMetadata", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_get_unfiltered_partition_metadata_nonexistent_rejected.py", "service": "glue"} {"check_id": "glue.get-unfiltered-partition-metadata-not-found-exact-code", "deployments": [], "key": "glue/get-unfiltered-partition-metadata-not-found-exact-code", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartition", "glue:GetUnfilteredPartitionMetadata", "lakeformation:GetDataLakeSettings", "lakeformation:GrantPermissions", "lakeformation:PutDataLakeSettings", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_get_unfiltered_partition_metadata_not_found_exact_code.py", "service": "glue"} {"check_id": "glue.get-unfiltered-partitions-metadata-malformed-expression-blocked", "deployments": [], "key": "glue/get-unfiltered-partitions-metadata-malformed-expression-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartitions", "glue:GetUnfilteredPartitionsMetadata", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_get_unfiltered_partitions_metadata_malformed_expression_blocked.py", "service": "glue"} {"check_id": "glue.get-unfiltered-table-metadata-federation-retryable-error", "deployments": [], "key": "glue/get-unfiltered-table-metadata-federation-retryable-error", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateConnection", "glue:CreateDatabase", "glue:DeleteConnection", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:GetUnfilteredTableMetadata", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_get_unfiltered_table_metadata_federation_retryable_error.py", "service": "glue"} {"check_id": "glue.get-unfiltered-table-metadata-nonexistent-table-rejected", "deployments": [], "key": "glue/get-unfiltered-table-metadata-nonexistent-table-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetUnfilteredTableMetadata", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_get_unfiltered_table_metadata_nonexistent_table_rejected.py", "service": "glue"} {"check_id": "glue.glossary-create-duplicate-name-rejected", "deployments": [], "key": "glue/glossary-create-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:DeleteGlossary", "glue:GetGlossary"], "path": "behavioral/glue/check_glossary_create_duplicate_name_rejected.py", "service": "glue"} {"check_id": "glue.glossary-delete-with-terms-attached-accepted", "deployments": [], "key": "glue/glossary-delete-with-terms-attached-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossary", "glue:GetGlossaryTerm", "glue:UpdateGlossary"], "path": "behavioral/glue/check_glossary_delete_with_terms_attached_accepted.py", "service": "glue"} {"check_id": "glue.glossary-lifecycle-create-get-delete", "deployments": [], "key": "glue/glossary-lifecycle-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlossary", "glue:DeleteGlossary", "glue:GetGlossary", "glue:UpdateGlossary"], "path": "behavioral/glue/check_glossary_lifecycle_create_get_delete.py", "service": "glue"} {"check_id": "glue.glossary-lifecycle-create-get-delete-404", "deployments": [], "key": "glue/glossary-lifecycle-create-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlossary", "glue:DeleteGlossary", "glue:GetGlossary", "glue:UpdateGlossary"], "path": "behavioral/glue/check_glossary_lifecycle_create_get_delete_404.py", "service": "glue"} {"check_id": "glue.glossary-term-create-against-missing-glossary-rejected", "deployments": [], "key": "glue/glossary-term-create-against-missing-glossary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossary", "glue:GetGlossaryTerm"], "path": "behavioral/glue/check_glossary_term_create_against_missing_glossary_rejected.py", "service": "glue"} {"check_id": "glue.glossary-term-create-missing-glossary-rejected", "deployments": [], "key": "glue/glossary-term-create-missing-glossary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossary", "glue:GetGlossaryTerm"], "path": "behavioral/glue/check_glossary_term_create_missing_glossary_rejected.py", "service": "glue"} {"check_id": "glue.glossary-term-lifecycle-create-associate-delete", "deployments": [], "key": "glue/glossary-term-lifecycle-create-associate-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:GetGlossaryTerm", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_glossary_term_lifecycle_create_associate_delete.py", "service": "glue"} {"check_id": "glue.glossary-term-lifecycle-create-associate-get-delete-404", "deployments": [], "key": "glue/glossary-term-lifecycle-create-associate-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:AssociateGlossaryTerms", "glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetAsset", "glue:GetGlossaryTerm", "glue:PutAsset", "glue:PutAssetType", "glue:PutFormType"], "path": "behavioral/glue/check_glossary_term_lifecycle_create_associate_get_delete_404.py", "service": "glue"} {"check_id": "glue.glossary-term-lifecycle-create-get-delete", "deployments": [], "key": "glue/glossary-term-lifecycle-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossaryTerm", "glue:UpdateGlossaryTerm"], "path": "behavioral/glue/check_glossary_term_lifecycle_create_get_delete.py", "service": "glue"} {"check_id": "glue.glossary-term-missing-glossary-rejected", "deployments": [], "key": "glue/glossary-term-missing-glossary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossary", "glue:GetGlossaryTerm"], "path": "behavioral/glue/check_glossary_term_missing_glossary_rejected.py", "service": "glue"} {"check_id": "glue.glossary-term-unicode-name-description-round-trip", "deployments": [], "key": "glue/glossary-term-unicode-name-description-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossaryTerm"], "path": "behavioral/glue/check_glossary_term_unicode_name_description_round_trip.py", "service": "glue"} {"check_id": "glue.glossary-term-unicode-round-trip", "deployments": [], "key": "glue/glossary-term-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossaryTerm"], "path": "behavioral/glue/check_glossary_term_unicode_round_trip.py", "service": "glue"} {"check_id": "glue.glossary-term-update-nonexistent-rejected", "deployments": [], "key": "glue/glossary-term-update-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateGlossary", "glue:CreateGlossaryTerm", "glue:DeleteGlossary", "glue:DeleteGlossaryTerm", "glue:GetGlossaryTerm", "glue:UpdateGlossaryTerm"], "path": "behavioral/glue/check_glossary_term_update_nonexistent_rejected.py", "service": "glue"} {"check_id": "glue.glue-concurrent-create-partition-lets-exactly-one-win-and-the-losers-see-already-exists", "deployments": [], "key": "glue/glue-concurrent-create-partition-lets-exactly-one-win-and-the-losers-see-already-exists", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartitions"], "path": "behavioral/glue/check_glue_concurrent_create_partition_lets_exactly_one_win_and_the_losers_see_already_exists.py", "service": "glue"} {"check_id": "glue.glue-crawler-discovers-hive-partition-keys-it-was-never-told-about", "deployments": [], "key": "glue/glue-crawler-discovers-hive-partition-keys-it-was-never-told-about", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetPartitions", "glue:GetTable", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_glue_crawler_discovers_hive_partition_keys_it_was_never_told_about.py", "service": "glue"} {"check_id": "glue.glue-job-reads-its-source-through-the-catalog-and-writes-partitions-into-a-registered-table", "deployments": [], "key": "glue/glue-job-reads-its-source-through-the-catalog-and-writes-partitions-into-a-registered-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateJob", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteJob", "glue:DeleteTable", "glue:GetJob", "glue:GetJobRun", "glue:GetPartitions", "glue:GetTable", "glue:GetTables", "glue:ListJobs", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_glue_job_reads_its_source_through_the_catalog_and_writes_partitions_into_a_registered_table.py", "service": "glue"} {"check_id": "glue.glue-job-rejects-a-type-violating-source-row-and-writes-no-output-or-partition", "deployments": [], "key": "glue/glue-job-rejects-a-type-violating-source-row-and-writes-no-output-or-partition", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateJob", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteJob", "glue:DeleteTable", "glue:GetJobRun", "glue:GetPartitions", "glue:GetTable", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_glue_job_rejects_a_type_violating_source_row_and_writes_no_output_or_partition.py", "service": "glue"} {"check_id": "glue.glue-job-runs-add-catalog-partitions-incrementally-and-re-registering-one-creates-no-duplicate", "deployments": [], "key": "glue/glue-job-runs-add-catalog-partitions-incrementally-and-re-registering-one-creates-no-duplicate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateJob", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteJob", "glue:DeleteTable", "glue:GetJobRun", "glue:GetPartitions", "glue:GetTable", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_glue_job_runs_add_catalog_partitions_incrementally_and_re_registering_one_creates_no_duplicate.py", "service": "glue"} {"check_id": "glue.glue-update-table-with-a-stale-version-id-rejected-and-the-live-table-unchanged", "deployments": [], "key": "glue/glue-update-table-with-a-stale-version-id-rejected-and-the-live-table-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTableVersions", "glue:UpdateTable"], "path": "behavioral/glue/check_glue_update_table_with_a_stale_version_id_rejected_and_the_live_table_unchanged.py", "service": "glue"} {"check_id": "glue.identity-center-configuration-enforces-managed-access-control", "deployments": [], "key": "glue/identity-center-configuration-enforces-managed-access-control", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlueIdentityCenterConfiguration", "glue:DeleteGlueIdentityCenterConfiguration", "glue:GetGlueIdentityCenterConfiguration", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/glue/check_identity_center_configuration_enforces_managed_access_control.py", "service": "glue"} {"check_id": "glue.identity-center-configuration-lifecycle", "deployments": [], "key": "glue/identity-center-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateGlueIdentityCenterConfiguration", "glue:DeleteGlueIdentityCenterConfiguration", "glue:GetGlueIdentityCenterConfiguration", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/glue/check_identity_center_configuration_lifecycle.py", "service": "glue"} {"check_id": "glue.integration-resource-property-lifecycle", "deployments": [], "key": "glue/integration-resource-property-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateIntegrationResourceProperty", "glue:DeleteDatabase", "glue:DeleteIntegrationResourceProperty", "glue:GetIntegrationResourceProperty", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_integration_resource_property_lifecycle.py", "service": "glue"} {"check_id": "glue.integration-table-properties-blob-round-trip", "deployments": [], "key": "glue/integration-table-properties-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateIntegrationTableProperties", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteIntegrationTableProperties", "glue:DeleteTable", "glue:GetIntegrationTableProperties", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_integration_table_properties_blob_round_trip.py", "service": "glue"} {"check_id": "glue.integration-table-properties-config-round-trip", "deployments": [], "key": "glue/integration-table-properties-config-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateConnection", "glue:CreateDatabase", "glue:CreateIntegrationTableProperties", "glue:CreateTable", "glue:DeleteConnection", "glue:DeleteDatabase", "glue:DeleteIntegrationTableProperties", "glue:DeleteTable", "glue:GetIntegrationTableProperties", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_integration_table_properties_config_round_trip.py", "service": "glue"} {"check_id": "glue.integration-table-properties-lifecycle", "deployments": [], "key": "glue/integration-table-properties-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateIntegrationTableProperties", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteIntegrationTableProperties", "glue:DeleteTable", "glue:GetIntegrationTableProperties", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_integration_table_properties_lifecycle.py", "service": "glue"} {"check_id": "glue.integration-table-properties-source-and-target-both-set-rejected", "deployments": [], "key": "glue/integration-table-properties-source-and-target-both-set-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateIntegrationTableProperties", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteIntegrationTableProperties", "glue:DeleteTable", "glue:GetIntegrationTableProperties", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_integration_table_properties_source_and_target_both_set_rejected.py", "service": "glue"} {"check_id": "glue.integration-table-properties-value-round-trip", "deployments": [], "key": "glue/integration-table-properties-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateIntegrationTableProperties", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteIntegrationTableProperties", "glue:DeleteTable", "glue:GetIntegrationTableProperties", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_integration_table_properties_value_round_trip.py", "service": "glue"} {"check_id": "glue.job-batch-stop-run", "deployments": [], "key": "glue/job-batch-stop-run", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchStopJobRun", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_job_batch_stop_run.py", "service": "glue"} {"check_id": "glue.job-bookmark-absent-until-run", "deployments": [], "key": "glue/job-bookmark-absent-until-run", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobBookmark", "glue:GetJobRun", "glue:ResetJobBookmark", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_job_bookmark_absent_until_run.py", "service": "glue"} {"check_id": "glue.job-create-get-delete", "deployments": [], "key": "glue/job-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:UpdateJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_job_create_get_delete.py", "service": "glue"} {"check_id": "glue.job-run-arguments-propagated", "deployments": [], "key": "glue/job-run-arguments-propagated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_job_run_arguments_propagated.py", "service": "glue"} {"check_id": "glue.job-runs-ordering-most-recent-first", "deployments": [], "key": "glue/job-runs-ordering-most-recent-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRuns", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_job_runs_ordering_most_recent_first.py", "service": "glue"} {"check_id": "glue.job-start-run-reaches-terminal-state", "deployments": [], "key": "glue/job-start-run-reaches-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_job_start_run_reaches_terminal_state.py", "service": "glue"} {"check_id": "glue.job-update-and-batch-get", "deployments": [], "key": "glue/job-update-and-batch-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchGetJobs", "glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:ListJobs", "glue:UpdateJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/glue/check_job_update_and_batch_get.py", "service": "glue"} {"check_id": "glue.job-update-reflected", "deployments": [], "key": "glue/job-update-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:UpdateJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_job_update_reflected.py", "service": "glue"} {"check_id": "glue.list-column-statistics-task-runs-ordering-most-recent-first", "deployments": [], "key": "glue/list-column-statistics-task-runs-ordering-most-recent-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:ListColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "glue:StopColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_list_column_statistics_task_runs_ordering_most_recent_first.py", "service": "glue"} {"check_id": "glue.list-statements-ordering-by-creation", "deployments": [], "key": "glue/list-statements-ordering-by-creation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:ListStatements", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_list_statements_ordering_by_creation.py", "service": "glue"} {"check_id": "glue.list-statements-ordering-by-execution", "deployments": [], "key": "glue/list-statements-ordering-by-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:ListStatements", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/glue/check_list_statements_ordering_by_execution.py", "service": "glue"} {"check_id": "glue.list-statements-returns-submission-order", "deployments": [], "key": "glue/list-statements-returns-submission-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:ListStatements", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_list_statements_returns_submission_order.py", "service": "glue"} {"check_id": "glue.ml-task-run-timeout-transitions-to-timeout-state", "deployments": [], "key": "glue/ml-task-run-timeout-transitions-to-timeout-state", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["glue:CreateDatabase", "glue:CreateMLTransform", "glue:CreateTable", "glue:GetMLTaskRun", "glue:StartMLLabelingSetGenerationTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_ml_task_run_timeout_transitions_to_timeout_state.py", "service": "glue"} {"check_id": "glue.ml-task-runs-ordering-most-recent-first", "deployments": [], "key": "glue/ml-task-runs-ordering-most-recent-first", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateMLTransform", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetMLTaskRun", "glue:GetMLTaskRuns", "glue:StartMLLabelingSetGenerationTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/glue/check_ml_task_runs_ordering_most_recent_first.py", "service": "glue"} {"check_id": "glue.ml-transform-lifecycle", "deployments": [], "key": "glue/ml-transform-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateMLTransform", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteMLTransform", "glue:DeleteTable", "glue:GetMLTaskRuns", "glue:GetMLTransform", "glue:GetMLTransforms", "glue:ListMLTransforms", "glue:UpdateMLTransform", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_ml_transform_lifecycle.py", "service": "glue"} {"check_id": "glue.partition-batch-create-partial-failure", "deployments": [], "key": "glue/partition-batch-create-partial-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:BatchCreatePartition", "glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartition"], "path": "behavioral/glue/check_partition_batch_create_partial_failure.py", "service": "glue"} {"check_id": "glue.partition-batch-get-omits-missing", "deployments": [], "key": "glue/partition-batch-get-omits-missing", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchGetPartition", "glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable"], "path": "behavioral/glue/check_partition_batch_get_omits_missing.py", "service": "glue"} {"check_id": "glue.partition-create-get-delete", "deployments": [], "key": "glue/partition-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartition", "glue:UpdatePartition"], "path": "behavioral/glue/check_partition_create_get_delete.py", "service": "glue"} {"check_id": "glue.partition-index-backfill-rejects-a-type-violating-partition-value", "deployments": [], "key": "glue/partition-index-backfill-rejects-a-type-violating-partition-value", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreatePartitionIndex", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartitionIndex", "glue:DeleteTable", "glue:GetPartition", "glue:GetPartitionIndexes", "glue:GetTable"], "path": "behavioral/glue/check_partition_index_backfill_rejects_a_type_violating_partition_value.py", "service": "glue"} {"check_id": "glue.partition-index-lifecycle", "deployments": [], "key": "glue/partition-index-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreatePartitionIndex", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartitionIndex", "glue:DeleteTable", "glue:GetPartitionIndexes"], "path": "behavioral/glue/check_partition_index_lifecycle.py", "service": "glue"} {"check_id": "glue.partition-update-reflected", "deployments": [], "key": "glue/partition-update-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartition", "glue:UpdatePartition"], "path": "behavioral/glue/check_partition_update_reflected.py", "service": "glue"} {"check_id": "glue.put-asset-concurrent-update-optimistic-lock-rejected", "deployments": [], "key": "glue/put-asset-concurrent-update-optimistic-lock-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:DeleteAsset", "glue:DeleteAssetType", "glue:DeleteFormType", "glue:GetAsset"], "path": "behavioral/glue/check_put_asset_concurrent_update_optimistic_lock_rejected.py", "service": "glue"} {"check_id": "glue.put-data-catalog-export-configuration-conflict-rejected", "deployments": [], "key": "glue/put-data-catalog-export-configuration-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:GetDataCatalogExportConfiguration", "glue:PutDataCatalogExportConfiguration", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/glue/check_put_data_catalog_export_configuration_conflict_rejected.py", "service": "glue"} {"check_id": "glue.register-version-on-disabled-compatibility-fails", "deployments": [], "key": "glue/register-version-on-disabled-compatibility-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSchema", "glue:DeleteSchema", "glue:GetSchemaVersion", "glue:ListSchemaVersions", "glue:RegisterSchemaVersion"], "path": "behavioral/glue/check_register_version_on_disabled_compatibility_fails.py", "service": "glue"} {"check_id": "glue.reject-concurrent-run-over-limit", "deployments": [], "key": "glue/reject-concurrent-run-over-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:BatchStopJobRun", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_reject_concurrent_run_over_limit.py", "service": "glue"} {"check_id": "glue.reject-crawler-with-unassumable-role", "deployments": [], "key": "glue/reject-crawler-with-unassumable-role", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_reject_crawler_with_unassumable_role.py", "service": "glue"} {"check_id": "glue.reject-delete-nonexistent-database", "deployments": [], "key": "glue/reject-delete-nonexistent-database", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase"], "path": "behavioral/glue/check_reject_delete_nonexistent_database.py", "service": "glue"} {"check_id": "glue.reject-duplicate-database", "deployments": [], "key": "glue/reject-duplicate-database", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase"], "path": "behavioral/glue/check_reject_duplicate_database.py", "service": "glue"} {"check_id": "glue.reject-duplicate-job-name", "deployments": [], "key": "glue/reject-duplicate-job-name", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_reject_duplicate_job_name.py", "service": "glue"} {"check_id": "glue.reject-get-nonexistent-crawler", "deployments": [], "key": "glue/reject-get-nonexistent-crawler", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_reject_get_nonexistent_crawler.py", "service": "glue"} {"check_id": "glue.reject-get-nonexistent-job-run", "deployments": [], "key": "glue/reject-get-nonexistent-job-run", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:BatchStopJobRun", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_reject_get_nonexistent_job_run.py", "service": "glue"} {"check_id": "glue.reject-get-nonexistent-table-version", "deployments": [], "key": "glue/reject-get-nonexistent-table-version", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTableVersion", "glue:GetTableVersions"], "path": "behavioral/glue/check_reject_get_nonexistent_table_version.py", "service": "glue"} {"check_id": "glue.reject-partition-on-unpartitioned-table", "deployments": [], "key": "glue/reject-partition-on-unpartitioned-table", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetPartition", "glue:GetPartitions"], "path": "behavioral/glue/check_reject_partition_on_unpartitioned_table.py", "service": "glue"} {"check_id": "glue.reject-partition-values-count-mismatch", "deployments": [], "key": "glue/reject-partition-values-count-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetPartition"], "path": "behavioral/glue/check_reject_partition_values_count_mismatch.py", "service": "glue"} {"check_id": "glue.reject-start-run-of-nonexistent-job", "deployments": [], "key": "glue/reject-start-run-of-nonexistent-job", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:BatchStopJobRun", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRuns", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_reject_start_run_of_nonexistent_job.py", "service": "glue"} {"check_id": "glue.reject-table-in-nonexistent-database", "deployments": [], "key": "glue/reject-table-in-nonexistent-database", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable"], "path": "behavioral/glue/check_reject_table_in_nonexistent_database.py", "service": "glue"} {"check_id": "glue.reject-update-nonexistent-table", "deployments": [], "key": "glue/reject-update-nonexistent-table", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:UpdateTable"], "path": "behavioral/glue/check_reject_update_nonexistent_table.py", "service": "glue"} {"check_id": "glue.reject-update-trigger-without-actions", "deployments": [], "key": "glue/reject-update-trigger-without-actions", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:DeleteJob", "glue:DeleteTrigger", "glue:GetTrigger", "glue:StopTrigger", "glue:UpdateTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_reject_update_trigger_without_actions.py", "service": "glue"} {"check_id": "glue.root-catalog-delete-rejected", "deployments": [], "key": "glue/root-catalog-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:DeleteCatalog", "glue:GetCatalog", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_root_catalog_delete_rejected.py", "service": "glue"} {"check_id": "glue.run-statement-on-busy-session-rejected", "deployments": [], "key": "glue/run-statement-on-busy-session-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:ListStatements", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_run_statement_on_busy_session_rejected.py", "service": "glue"} {"check_id": "glue.run-statement-on-non-ready-session-rejected", "deployments": [], "key": "glue/run-statement-on-non-ready-session-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:ListStatements", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_run_statement_on_non_ready_session_rejected.py", "service": "glue"} {"check_id": "glue.schema-protobuf-invalid-rejected-and-version-canonicalized", "deployments": [], "key": "glue/schema-protobuf-invalid-rejected-and-version-canonicalized", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CheckSchemaVersionValidity", "glue:CreateRegistry", "glue:CreateSchema", "glue:DeleteRegistry", "glue:ListSchemaVersions", "glue:RegisterSchemaVersion"], "path": "behavioral/glue/check_schema_protobuf_invalid_rejected_and_version_canonicalized.py", "service": "glue"} {"check_id": "glue.script-generation-roundtrip", "deployments": [], "key": "glue/script-generation-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateScript", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDataflowGraph", "glue:GetMapping", "glue:GetPlan"], "path": "behavioral/glue/check_script_generation_roundtrip.py", "service": "glue"} {"check_id": "glue.search-tables-name-predicate-tokenises-on-punctuation-not-substring", "deployments": [], "key": "glue/search-tables-name-predicate-tokenises-on-punctuation-not-substring", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:SearchTables"], "path": "behavioral/glue/check_search_tables_name_predicate_tokenises_on_punctuation_not_substring.py", "service": "glue"} {"check_id": "glue.security-configuration-lifecycle", "deployments": [], "key": "glue/security-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSecurityConfiguration", "glue:DeleteSecurityConfiguration", "glue:GetSecurityConfiguration", "glue:GetSecurityConfigurations"], "path": "behavioral/glue/check_security_configuration_lifecycle.py", "service": "glue"} {"check_id": "glue.server-side-encryption-enforced-on-new-tables", "deployments": [], "key": "glue/server-side-encryption-enforced-on-new-tables", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDataCatalogEncryptionSettings", "glue:GetTable", "glue:PutDataCatalogEncryptionSettings", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/glue/check_server_side_encryption_enforced_on_new_tables.py", "service": "glue"} {"check_id": "glue.session-command-args-round-trip", "deployments": [], "key": "glue/session-command-args-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_session_command_args_round_trip.py", "service": "glue"} {"check_id": "glue.session-description-and-tags-round-trip", "deployments": [], "key": "glue/session-description-and-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetTags", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_session_description_and_tags_round_trip.py", "service": "glue"} {"check_id": "glue.session-duplicate-id-rejected", "deployments": [], "key": "glue/session-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_session_duplicate_id_rejected.py", "service": "glue"} {"check_id": "glue.session-idle-timeout-transitions-to-timed-out", "deployments": [], "key": "glue/session-idle-timeout-transitions-to-timed-out", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_session_idle_timeout_transitions_to_timed_out.py", "service": "glue"} {"check_id": "glue.session-idle-timeout-transitions-to-timeout-state", "deployments": [], "key": "glue/session-idle-timeout-transitions-to-timeout-state", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_session_idle_timeout_transitions_to_timeout_state.py", "service": "glue"} {"check_id": "glue.session-lifecycle-create-get-delete", "deployments": [], "key": "glue/session-lifecycle-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_session_lifecycle_create_get_delete.py", "service": "glue"} {"check_id": "glue.session-lifecycle-create-run-get-delete-404", "deployments": [], "key": "glue/session-lifecycle-create-run-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/glue/check_session_lifecycle_create_run_get_delete_404.py", "service": "glue"} {"check_id": "glue.session-lifecycle-state-transitions", "deployments": [], "key": "glue/session-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_session_lifecycle_state_transitions.py", "service": "glue"} {"check_id": "glue.session-timestamp-precision-preserved", "deployments": [], "key": "glue/session-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_session_timestamp_precision_preserved.py", "service": "glue"} {"check_id": "glue.start-blueprint-run-illegal-state-rejected", "deployments": [], "key": "glue/start-blueprint-run-illegal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:GetBlueprint", "glue:GetBlueprintRuns", "glue:StartBlueprintRun", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/glue/check_start_blueprint_run_illegal_state_rejected.py", "service": "glue"} {"check_id": "glue.start-blueprint-run-while-running-accepted", "deployments": [], "key": "glue/start-blueprint-run-while-running-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateBlueprint", "glue:DeleteBlueprint", "glue:DeleteJob", "glue:DeleteWorkflow", "glue:GetBlueprint", "glue:GetBlueprintRun", "glue:GetBlueprintRuns", "glue:GetWorkflow", "glue:StartBlueprintRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/glue/check_start_blueprint_run_while_running_accepted.py", "service": "glue"} {"check_id": "glue.start-column-statistics-task-run-already-running-rejected", "deployments": [], "key": "glue/start-column-statistics-task-run-already-running-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "glue:StopColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue/check_start_column_statistics_task_run_already_running_rejected.py", "service": "glue"} {"check_id": "glue.start-column-statistics-task-run-running-conflict-rejected", "deployments": [], "key": "glue/start-column-statistics-task-run-running-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_start_column_statistics_task_run_running_conflict_rejected.py", "service": "glue"} {"check_id": "glue.start-column-statistics-task-run-while-running-blocked", "deployments": [], "key": "glue/start-column-statistics-task-run-while-running-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_start_column_statistics_task_run_while_running_blocked.py", "service": "glue"} {"check_id": "glue.start-column-statistics-task-run-while-running-rejected", "deployments": [], "key": "glue/start-column-statistics-task-run-while-running-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:StartColumnStatisticsTaskRun", "glue:StopColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/glue/check_start_column_statistics_task_run_while_running_rejected.py", "service": "glue"} {"check_id": "glue.start-crawler-already-running-fails", "deployments": [], "key": "glue/start-crawler-already-running-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:ListCrawls", "glue:StartCrawler", "glue:StopCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_start_crawler_already_running_fails.py", "service": "glue"} {"check_id": "glue.start-data-quality-evaluation-run-conflict-rejected", "deployments": [], "key": "glue/start-data-quality-evaluation-run-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CancelDataQualityRulesetEvaluationRun", "glue:CreateDataQualityRuleset", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDataQualityRuleset", "glue:DeleteDatabase", "glue:GetDataQualityRulesetEvaluationRun", "glue:StartDataQualityRulesetEvaluationRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_start_data_quality_evaluation_run_conflict_rejected.py", "service": "glue"} {"check_id": "glue.start-data-quality-recommendation-run-conflict-rejected", "deployments": [], "key": "glue/start-data-quality-recommendation-run-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CancelDataQualityRuleRecommendationRun", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:GetDataQualityRuleRecommendationRun", "glue:StartDataQualityRuleRecommendationRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue/check_start_data_quality_recommendation_run_conflict_rejected.py", "service": "glue"} {"check_id": "glue.start-data-quality-ruleset-evaluation-run-on-nonexistent-ruleset-fails", "deployments": [], "key": "glue/start-data-quality-ruleset-evaluation-run-on-nonexistent-ruleset-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CancelDataQualityRulesetEvaluationRun", "glue:CreateDataQualityRuleset", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDataQualityRuleset", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetDataQualityRulesetEvaluationRun", "glue:ListDataQualityRulesetEvaluationRuns", "glue:StartDataQualityRulesetEvaluationRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/glue/check_start_data_quality_ruleset_evaluation_run_on_nonexistent_ruleset_fails.py", "service": "glue"} {"check_id": "glue.statement-output-preserved-round-trip", "deployments": [], "key": "glue/statement-output-preserved-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:RunStatement", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_statement_output_preserved_round_trip.py", "service": "glue"} {"check_id": "glue.stop-session-drives-a-ready-session-to-stopped-and-refuses-new-statements", "deployments": [], "key": "glue/stop-session-drives-a-ready-session-to-stopped-and-refuses-new-statements", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateSession", "glue:DeleteSession", "glue:GetSession", "glue:GetStatement", "glue:ListStatements", "glue:RunStatement", "glue:StopSession", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy"], "path": "behavioral/glue/check_stop_session_drives_a_ready_session_to_stopped_and_refuses_new_statements.py", "service": "glue"} {"check_id": "glue.table-batch-delete-partial-failure", "deployments": [], "key": "glue/table-batch-delete-partial-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:BatchDeleteTable", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable"], "path": "behavioral/glue/check_table_batch_delete_partial_failure.py", "service": "glue"} {"check_id": "glue.table-create-get-delete", "deployments": [], "key": "glue/table-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable"], "path": "behavioral/glue/check_table_create_get_delete.py", "service": "glue"} {"check_id": "glue.table-optimizer-lifecycle-create-get-delete-404", "deployments": [], "key": "glue/table-optimizer-lifecycle-create-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:CreateTableOptimizer", "glue:DeleteDatabase", "glue:DeleteTable", "glue:DeleteTableOptimizer", "glue:GetTableOptimizer", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_table_optimizer_lifecycle_create_get_delete_404.py", "service": "glue"} {"check_id": "glue.table-update-schema-reflected", "deployments": [], "key": "glue/table-update-schema-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:UpdateTable"], "path": "behavioral/glue/check_table_update_schema_reflected.py", "service": "glue"} {"check_id": "glue.table-version-deletion", "deployments": [], "key": "glue/table-version-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchDeleteTableVersion", "glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:DeleteTableVersion", "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions", "glue:UpdateTable"], "path": "behavioral/glue/check_table_version_deletion.py", "service": "glue"} {"check_id": "glue.table-versions-incremented-on-update", "deployments": [], "key": "glue/table-versions-incremented-on-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTableVersions", "glue:UpdateTable"], "path": "behavioral/glue/check_table_versions_incremented_on_update.py", "service": "glue"} {"check_id": "glue.tag-resource-invalid-arn-fails", "deployments": [], "key": "glue/tag-resource-invalid-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetTags", "glue:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_tag_resource_invalid_arn_fails.py", "service": "glue"} {"check_id": "glue.tag-resource-lifecycle", "deployments": [], "key": "glue/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetTags", "glue:TagResource", "glue:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/glue/check_tag_resource_lifecycle.py", "service": "glue"} {"check_id": "glue.trigger-create-get-delete", "deployments": [], "key": "glue/trigger-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:DeleteJob", "glue:DeleteTrigger", "glue:GetTrigger", "glue:StartTrigger", "glue:StopTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_trigger_create_get_delete.py", "service": "glue"} {"check_id": "glue.trigger-create-with-nonexistent-job-allowed", "deployments": [], "key": "glue/trigger-create-with-nonexistent-job-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateTrigger", "glue:DeleteTrigger", "glue:GetTrigger", "glue:StopTrigger"], "path": "behavioral/glue/check_trigger_create_with_nonexistent_job_allowed.py", "service": "glue"} {"check_id": "glue.trigger-on-demand-lifecycle", "deployments": [], "key": "glue/trigger-on-demand-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:DeleteJob", "glue:DeleteTrigger", "glue:GetJobRuns", "glue:GetTrigger", "glue:StartTrigger", "glue:StopTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_trigger_on_demand_lifecycle.py", "service": "glue"} {"check_id": "glue.trigger-start-stop-transitions", "deployments": [], "key": "glue/trigger-start-stop-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:DeleteJob", "glue:DeleteTrigger", "glue:GetTrigger", "glue:StartTrigger", "glue:StopTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_trigger_start_stop_transitions.py", "service": "glue"} {"check_id": "glue.trigger-update-and-batch-get", "deployments": [], "key": "glue/trigger-update-and-batch-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:BatchGetTriggers", "glue:CreateJob", "glue:CreateTrigger", "glue:DeleteJob", "glue:DeleteTrigger", "glue:GetTrigger", "glue:GetTriggers", "glue:ListTriggers", "glue:UpdateTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole"], "path": "behavioral/glue/check_trigger_update_and_batch_get.py", "service": "glue"} {"check_id": "glue.trigger-update-predicate-reflected", "deployments": [], "key": "glue/trigger-update-predicate-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:DeleteJob", "glue:DeleteTrigger", "glue:GetTrigger", "glue:StopTrigger", "glue:UpdateTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_trigger_update_predicate_reflected.py", "service": "glue"} {"check_id": "glue.update-table-omitting-parameters-clears-them-not-merges", "deployments": [], "key": "glue/update-table-omitting-parameters-clears-them-not-merges", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTableVersion", "glue:UpdateTable"], "path": "behavioral/glue/check_update_table_omitting_parameters_clears_them_not_merges.py", "service": "glue"} {"check_id": "glue.update-table-skip-archive-suppresses-version", "deployments": [], "key": "glue/update-table-skip-archive-suppresses-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetTable", "glue:GetTableVersions", "glue:UpdateTable"], "path": "behavioral/glue/check_update_table_skip_archive_suppresses_version.py", "service": "glue"} {"check_id": "glue.usage-profile-configuration-round-trip", "deployments": [], "key": "glue/usage-profile-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateUsageProfile", "glue:DeleteUsageProfile", "glue:GetUsageProfile"], "path": "behavioral/glue/check_usage_profile_configuration_round_trip.py", "service": "glue"} {"check_id": "glue.usage-profile-duplicate-create-rejected", "deployments": [], "key": "glue/usage-profile-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateUsageProfile", "glue:DeleteUsageProfile", "glue:GetUsageProfile"], "path": "behavioral/glue/check_usage_profile_duplicate_create_rejected.py", "service": "glue"} {"check_id": "glue.usage-profile-empty-vs-absent-config-preserved", "deployments": [], "key": "glue/usage-profile-empty-vs-absent-config-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateUsageProfile", "glue:DeleteUsageProfile", "glue:GetUsageProfile"], "path": "behavioral/glue/check_usage_profile_empty_vs_absent_config_preserved.py", "service": "glue"} {"check_id": "glue.usage-profile-lifecycle-create-get-delete", "deployments": [], "key": "glue/usage-profile-lifecycle-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateUsageProfile", "glue:DeleteUsageProfile", "glue:GetUsageProfile", "glue:UpdateUsageProfile"], "path": "behavioral/glue/check_usage_profile_lifecycle_create_get_delete.py", "service": "glue"} {"check_id": "glue.usage-profile-lifecycle-create-get-delete-404", "deployments": [], "key": "glue/usage-profile-lifecycle-create-get-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateUsageProfile", "glue:DeleteUsageProfile", "glue:GetUsageProfile"], "path": "behavioral/glue/check_usage_profile_lifecycle_create_get_delete_404.py", "service": "glue"} {"check_id": "glue.workflow-run-lifecycle", "deployments": [], "key": "glue/workflow-run-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:BatchGetWorkflows", "glue:CreateJob", "glue:CreateTrigger", "glue:CreateWorkflow", "glue:DeleteJob", "glue:DeleteTrigger", "glue:DeleteWorkflow", "glue:GetWorkflow", "glue:GetWorkflowRun", "glue:GetWorkflowRuns", "glue:ListWorkflows", "glue:StartWorkflowRun", "glue:StopTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_workflow_run_lifecycle.py", "service": "glue"} {"check_id": "glue.workflow-run-properties-roundtrip", "deployments": [], "key": "glue/workflow-run-properties-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:CreateWorkflow", "glue:DeleteJob", "glue:DeleteTrigger", "glue:DeleteWorkflow", "glue:GetWorkflow", "glue:GetWorkflowRunProperties", "glue:PutWorkflowRunProperties", "glue:StartWorkflowRun", "glue:StopTrigger", "glue:UpdateWorkflow", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/glue/check_workflow_run_properties_roundtrip.py", "service": "glue"} {"check_id": "glue__iam__kinesis__s3__s3tables.create-channel-s3-tables-destination-creates-iceberg-table", "deployments": [], "key": "glue__iam__kinesis__s3__s3tables/create-channel-s3-tables-destination-creates-iceberg-table", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["glue:CreateRegistry", "glue:CreateSchema", "glue:DeleteRegistry", "glue:DeleteSchema", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "kinesis:PutRecord", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3tables:CreateNamespace", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:ListTables"], "path": "behavioral/glue__iam__kinesis__s3__s3tables/check_create_channel_s3_tables_destination_creates_iceberg_table.py", "service": "glue__iam__kinesis__s3__s3tables"} {"check_id": "glue__iam__kinesis__s3__s3tables.create-channel-s3-tables-destination-echoes-configuration-and-refuses-short-freshness", "deployments": [], "key": "glue__iam__kinesis__s3__s3tables/create-channel-s3-tables-destination-echoes-configuration-and-refuses-short-freshness", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateRegistry", "glue:CreateSchema", "glue:DeleteRegistry", "glue:DeleteSchema", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3tables:CreateNamespace", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket"], "path": "behavioral/glue__iam__kinesis__s3__s3tables/check_create_channel_s3_tables_destination_echoes_configuration_and_refuses_short_freshness.py", "service": "glue__iam__kinesis__s3__s3tables"} {"check_id": "glue__iam__kinesis__s3__s3tables.create-channel-s3-tables-without-partition-spec-rejected", "deployments": [], "key": "glue__iam__kinesis__s3__s3tables/create-channel-s3-tables-without-partition-spec-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["glue:CreateRegistry", "glue:CreateSchema", "glue:DeleteRegistry", "glue:DeleteSchema", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3tables:CreateNamespace", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:ListTables"], "path": "behavioral/glue__iam__kinesis__s3__s3tables/check_create_channel_s3_tables_without_partition_spec_rejected.py", "service": "glue__iam__kinesis__s3__s3tables"} {"check_id": "glue__resourcegroupstaggingapi.glue-database-tags-visible-via-resource-groups-tagging-api", "deployments": [], "key": "glue__resourcegroupstaggingapi/glue-database-tags-visible-via-resource-groups-tagging-api", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateDatabase", "glue:DeleteDatabase", "resourcegroupstaggingapi:GetResources", "sts:GetCallerIdentity"], "path": "behavioral/glue__resourcegroupstaggingapi/check_glue_database_tags_visible_via_resource_groups_tagging_api.py", "service": "glue__resourcegroupstaggingapi"} {"check_id": "glue__s3.glue-column-statistics-computed-from-real-data-match-the-known-distribution", "deployments": [], "key": "glue__s3/glue-column-statistics-computed-from-real-data-match-the-known-distribution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateDatabase", "glue:CreateTable", "glue:DeleteColumnStatisticsForTable", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetColumnStatisticsForTable", "glue:GetColumnStatisticsTaskRun", "glue:StartColumnStatisticsTaskRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_column_statistics_computed_from_real_data_match_the_known_distribution.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-crawler-combine-compatible-schemas-yields-one-table-not-two", "deployments": [], "key": "glue__s3/glue-crawler-combine-compatible-schemas-yields-one-table-not-two", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetPartitions", "glue:GetTable", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_crawler_combine_compatible_schemas_yields_one_table_not_two.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-crawler-deprecate-in-database-marks-the-vanished-prefix-and-spares-its-sibling", "deployments": [], "key": "glue__s3/glue-crawler-deprecate-in-database-marks-the-vanished-prefix-and-spares-its-sibling", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetTable", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_crawler_deprecate_in_database_marks_the_vanished_prefix_and_spares_its_sibling.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-crawler-infers-the-exact-schema-of-a-real-s3-prefix", "deployments": [], "key": "glue__s3/glue-crawler-infers-the-exact-schema-of-a-real-s3-prefix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_crawler_infers_the_exact_schema_of_a_real_s3_prefix.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-crawler-role-denied-s3-read-catalogues-no-table", "deployments": [], "key": "glue__s3/glue-crawler-role-denied-s3-read-catalogues-no-table", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_crawler_role_denied_s3_read_catalogues_no_table.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-job-bookmark-delta-then-reset-reprocesses-every-file", "deployments": [], "key": "glue__s3/glue-job-bookmark-delta-then-reset-reprocesses-every-file", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:GetJobBookmark", "glue:GetJobRun", "glue:ResetJobBookmark", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_job_bookmark_delta_then_reset_reprocesses_every_file.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-job-max-retries-two-produces-three-attempts-chained-by-previous-run-id", "deployments": [], "key": "glue__s3/glue-job-max-retries-two-produces-three-attempts-chained-by-previous-run-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_job_max_retries_two_produces_three_attempts_chained_by_previous_run_id.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-job-role-without-write-permission-fails-the-run-and-writes-no-output", "deployments": [], "key": "glue__s3/glue-job-role-without-write-permission-fails-the-run-and-writes-no-output", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_job_role_without_write_permission_fails_the_run_and_writes_no_output.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-python-shell-job-writes-its-computed-output-to-s3", "deployments": [], "key": "glue__s3/glue-python-shell-job-writes-its-computed-output-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_python_shell_job_writes_its_computed_output_to_s3.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-recrawl-of-a-changed-prefix-produces-a-new-table-version-with-the-added-column", "deployments": [], "key": "glue__s3/glue-recrawl-of-a-changed-prefix-produces-a-new-table-version-with-the-added-column", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:DeleteTable", "glue:GetCrawler", "glue:GetTable", "glue:GetTableVersions", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_recrawl_of_a_changed_prefix_produces_a_new_table_version_with_the_added_column.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-spark-etl-job-converts-csv-to-parquet-preserving-every-row", "deployments": [], "key": "glue__s3/glue-spark-etl-job-converts-csv-to-parquet-preserving-every-row", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_spark_etl_job_converts_csv_to_parquet_preserving_every_row.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-spark-parquet-partition-layout-and-footer-aggregates-and-a-malformed-row-fails-the-run", "deployments": [], "key": "glue__s3/glue-spark-parquet-partition-layout-and-footer-aggregates-and-a-malformed-row-fails-the-run", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_spark_parquet_partition_layout_and_footer_aggregates_and_a_malformed_row_fails_the_run.py", "service": "glue__s3"} {"check_id": "glue__s3.glue-workflow-runs-its-second-trigger-only-after-the-first-job-succeeds", "deployments": [], "key": "glue__s3/glue-workflow-runs-its-second-trigger-only-after-the-first-job-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:CreateTrigger", "glue:CreateWorkflow", "glue:DeleteJob", "glue:DeleteTrigger", "glue:DeleteWorkflow", "glue:GetJobRun", "glue:GetWorkflowRun", "glue:StartJobRun", "glue:StartWorkflowRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__s3/check_glue_workflow_runs_its_second_trigger_only_after_the_first_job_succeeds.py", "service": "glue__s3"} {"check_id": "glue__s3__stepfunctions.glue-start-job-run-sync-task-output-carries-the-sdk-envelope", "deployments": [], "key": "glue__s3__stepfunctions/glue-start-job-run-sync-task-output-carries-the-sdk-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/glue__s3__stepfunctions/check_glue_start_job_run_sync_task_output_carries_the_sdk_envelope.py", "service": "glue__s3__stepfunctions"} {"check_id": "glue__s3__stepfunctions.xsvc-sfn-1-glue-sync-failing-job-run-fails-as-task-failed", "deployments": [], "key": "glue__s3__stepfunctions/xsvc-sfn-1-glue-sync-failing-job-run-fails-as-task-failed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/glue__s3__stepfunctions/check_xsvc_sfn_1_glue_sync_failing_job_run_fails_as_task_failed.py", "service": "glue__s3__stepfunctions"} {"check_id": "glue__s3__stepfunctions.xsvc-sfn-1-glue-sync-stop-execution-stops-the-running-job-run", "deployments": [], "key": "glue__s3__stepfunctions/xsvc-sfn-1-glue-sync-stop-execution-stops-the-running-job-run", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:BatchStopJobRun", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/glue__s3__stepfunctions/check_xsvc_sfn_1_glue_sync_stop_execution_stops_the_running_job_run.py", "service": "glue__s3__stepfunctions"} {"check_id": "glue__s3__stepfunctions.xsvc-sfn-1-glue-sync-succeeds-only-after-the-job-run-completes", "deployments": [], "key": "glue__s3__stepfunctions/xsvc-sfn-1-glue-sync-succeeds-only-after-the-job-run-completes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/glue__s3__stepfunctions/check_xsvc_sfn_1_glue_sync_succeeds_only_after_the_job_run_completes.py", "service": "glue__s3__stepfunctions"} {"check_id": "glue__s3__stepfunctions.xsvc-sfn-1-glue-sync-without-get-job-run-is-denied-and-times-out", "deployments": [], "key": "glue__s3__stepfunctions/xsvc-sfn-1-glue-sync-without-get-job-run-is-denied-and-times-out", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/glue__s3__stepfunctions/check_xsvc_sfn_1_glue_sync_without_get_job_run_is_denied_and_times_out.py", "service": "glue__s3__stepfunctions"} {"check_id": "glue__sqs.cfn-deploy-eventbridge-rule-disabled-negative", "deployments": [], "key": "glue__sqs/cfn-deploy-eventbridge-rule-disabled-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:DescribeRule", "events:EnableRule", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_cfn_deploy_eventbridge_rule_disabled_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.cfn-deploy-glue-crawler-eventbridge-sqs-stack-positive", "deployments": [], "key": "glue__sqs/cfn-deploy-glue-crawler-eventbridge-sqs-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:StartCrawler", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_cfn_deploy_glue_crawler_eventbridge_sqs_stack_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.cfn-deploy-glue-job-eventbridge-sqs-stack-positive", "deployments": [], "key": "glue__sqs/cfn-deploy-glue-job-eventbridge-sqs-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJobRun", "glue:StartJobRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_cfn_deploy_glue_job_eventbridge_sqs_stack_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.cfn-deploy-sqs-queue-policy-missing-negative", "deployments": [], "key": "glue__sqs/cfn-deploy-sqs-queue-policy-missing-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_cfn_deploy_sqs_queue_policy_missing_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.cfn-glue-job-iam-role-trust-sqs-send-positive", "deployments": [], "key": "glue__sqs/cfn-glue-job-iam-role-trust-sqs-send-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJobRun", "glue:StartJobRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_cfn_glue_job_iam_role_trust_sqs_send_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.cli-glue-job-run-status-poll-sqs-completion-positive", "deployments": [], "key": "glue__sqs/cli-glue-job-run-status-poll-sqs-completion-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_cli_glue_job_run_status_poll_sqs_completion_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.cli-start-glue-job-run-sqs-notification-positive", "deployments": [], "key": "glue__sqs/cli-start-glue-job-run-sqs-notification-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_cli_start_glue_job_run_sqs_notification_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.deploy-eventbridge-glue-job-state-rule-to-sqs-positive", "deployments": [], "key": "glue__sqs/deploy-eventbridge-glue-job-state-rule-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJobRun", "glue:StartJobRun", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_deploy_eventbridge_glue_job_state_rule_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.deploy-eventbridge-rule-missing-target-permission-negative", "deployments": [], "key": "glue__sqs/deploy-eventbridge-rule-missing-target-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetJobRun", "glue:StartJobRun", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_deploy_eventbridge_rule_missing_target_permission_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.deploy-glue-crawler-role-trust-policy-positive", "deployments": [], "key": "glue__sqs/deploy-glue-crawler-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:GetPartitions", "glue:GetTables", "glue:StartCrawler", "glue:StopCrawler", "iam:GetRole", "iam:GetRolePolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:GetQueueAttributes"], "path": "behavioral/glue__sqs/check_deploy_glue_crawler_role_trust_policy_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.deploy-glue-crawler-sqs-dlq-configured-positive", "deployments": [], "key": "glue__sqs/deploy-glue-crawler-sqs-dlq-configured-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:StartCrawler", "glue:StopCrawler", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/glue__sqs/check_deploy_glue_crawler_sqs_dlq_configured_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.deploy-glue-crawler-with-sqs-event-queue-positive", "deployments": [], "key": "glue__sqs/deploy-glue-crawler-with-sqs-event-queue-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "glue:GetCrawler", "glue:GetPartitions", "glue:GetTables", "glue:StartCrawler", "glue:StopCrawler", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:GetQueueAttributes"], "path": "behavioral/glue__sqs/check_deploy_glue_crawler_with_sqs_event_queue_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.deploy-sqs-queue-policy-missing-glue-principal-negative", "deployments": [], "key": "glue__sqs/deploy-sqs-queue-policy-missing-glue-principal-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/glue__sqs/check_deploy_sqs_queue_policy_missing_glue_principal_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.deploy-stack-update-changes-sqs-queue-arn-positive", "deployments": [], "key": "glue__sqs/deploy-stack-update-changes-sqs-queue-arn-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "glue:GetCrawler", "glue:GetPartitions", "glue:GetTables", "glue:StartCrawler", "glue:StopCrawler", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_deploy_stack_update_changes_sqs_queue_arn_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-glue-crawler-state-change-to-sqs-positive", "deployments": [], "key": "glue__sqs/eventbridge-glue-crawler-state-change-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_glue_crawler_state_change_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-glue-job-failed-to-sqs-positive", "deployments": [], "key": "glue__sqs/eventbridge-glue-job-failed-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_glue_job_failed_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-glue-job-state-change-message-attributes-preserved", "deployments": [], "key": "glue__sqs/eventbridge-glue-job-state-change-message-attributes-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_glue_job_state_change_message_attributes_preserved.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-glue-job-succeeded-to-sqs-positive", "deployments": [], "key": "glue__sqs/eventbridge-glue-job-succeeded-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_glue_job_succeeded_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-glue-job-timeout-to-sqs-positive", "deployments": [], "key": "glue__sqs/eventbridge-glue-job-timeout-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_glue_job_timeout_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-rule-missing-sqs-queue-policy-negative", "deployments": [], "key": "glue__sqs/eventbridge-rule-missing-sqs-queue-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_rule_missing_sqs_queue_policy_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-rule-missing-sqs-resource-policy-negative", "deployments": [], "key": "glue__sqs/eventbridge-rule-missing-sqs-resource-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_rule_missing_sqs_resource_policy_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-rule-pattern-mismatch-glue-source-negative", "deployments": [], "key": "glue__sqs/eventbridge-rule-pattern-mismatch-glue-source-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_rule_pattern_mismatch_glue_source_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.eventbridge-rule-pattern-mismatch-no-delivery-negative", "deployments": [], "key": "glue__sqs/eventbridge-rule-pattern-mismatch-no-delivery-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_eventbridge_rule_pattern_mismatch_no_delivery_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-crawler-event-queue-batch-of-multiple-paths-positive", "deployments": [], "key": "glue__sqs/glue-crawler-event-queue-batch-of-multiple-paths-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetPartitions", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_glue_crawler_event_queue_batch_of_multiple_paths_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-crawler-event-queue-message-format-positive", "deployments": [], "key": "glue__sqs/glue-crawler-event-queue-message-format-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_glue_crawler_event_queue_message_format_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-crawler-missing-sqs-receive-permission-rejected", "deployments": [], "key": "glue__sqs/glue-crawler-missing-sqs-receive-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetCrawlers", "glue:GetPartitions", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_glue_crawler_missing_sqs_receive_permission_rejected.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-crawler-sqs-dlq-receives-malformed-event-rejected", "deployments": [], "key": "glue__sqs/glue-crawler-sqs-dlq-receives-malformed-event-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetPartitions", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_glue_crawler_sqs_dlq_receives_malformed_event_rejected.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-crawler-sqs-event-queue-triggers-target-positive", "deployments": [], "key": "glue__sqs/glue-crawler-sqs-event-queue-triggers-target-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetPartitions", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_glue_crawler_sqs_event_queue_triggers_target_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-crawler-sqs-queue-policy-blocks-send-rejected", "deployments": [], "key": "glue__sqs/glue-crawler-sqs-queue-policy-blocks-send-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_glue_crawler_sqs_queue_policy_blocks_send_rejected.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-crawler-sqs-visibility-timeout-redrive-positive", "deployments": [], "key": "glue__sqs/glue-crawler-sqs-visibility-timeout-redrive-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_glue_crawler_sqs_visibility_timeout_redrive_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-crawler-state-change-to-sqs-positive", "deployments": [], "key": "glue__sqs/glue-crawler-state-change-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_glue_crawler_state_change_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-job-assumes-role-sends-sqs-message-positive", "deployments": [], "key": "glue__sqs/glue-job-assumes-role-sends-sqs-message-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_glue_job_assumes_role_sends_sqs_message_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-job-failed-eventbridge-to-sqs-positive", "deployments": [], "key": "glue__sqs/glue-job-failed-eventbridge-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateJob", "glue:DeleteJob", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_glue_job_failed_eventbridge_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-job-role-missing-sqs-permission-rejected", "deployments": [], "key": "glue__sqs/glue-job-role-missing-sqs-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_glue_job_role_missing_sqs_permission_rejected.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-job-role-with-sqs-send-permission-positive", "deployments": [], "key": "glue__sqs/glue-job-role-with-sqs-send-permission-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_glue_job_role_with_sqs_send_permission_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-job-role-without-sqs-send-permission-negative", "deployments": [], "key": "glue__sqs/glue-job-role-without-sqs-send-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_glue_job_role_without_sqs_send_permission_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-job-state-change-detail-fields-preserved-in-sqs", "deployments": [], "key": "glue__sqs/glue-job-state-change-detail-fields-preserved-in-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_glue_job_state_change_detail_fields_preserved_in_sqs.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-job-succeeded-eventbridge-to-sqs-positive", "deployments": [], "key": "glue__sqs/glue-job-succeeded-eventbridge-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_glue_job_succeeded_eventbridge_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.glue-workflow-state-change-to-sqs-positive", "deployments": [], "key": "glue__sqs/glue-workflow-state-change-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "glue:CreateJob", "glue:CreateTrigger", "glue:CreateWorkflow", "glue:DeleteJob", "glue:DeleteTrigger", "glue:DeleteWorkflow", "glue:GetWorkflowRun", "glue:GetWorkflowRuns", "glue:StartTrigger", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_glue_workflow_state_change_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.iam-role-missing-glue-trust-assume-role-negative", "deployments": [], "key": "glue__sqs/iam-role-missing-glue-trust-assume-role-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__sqs/check_iam_role_missing_glue_trust_assume_role_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.iam-role-missing-sqs-trust-assume-role-negative", "deployments": [], "key": "glue__sqs/iam-role-missing-sqs-trust-assume-role-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_iam_role_missing_sqs_trust_assume_role_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.iam-role-trust-glue-amazonaws-com-positive", "deployments": [], "key": "glue__sqs/iam-role-trust-glue-amazonaws-com-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/glue__sqs/check_iam_role_trust_glue_amazonaws_com_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.iam-role-trust-sqs-amazonaws-com-positive", "deployments": [], "key": "glue__sqs/iam-role-trust-sqs-amazonaws-com-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_iam_role_trust_sqs_amazonaws_com_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.iam-role-trusts-glue-service-principal-positive", "deployments": [], "key": "glue__sqs/iam-role-trusts-glue-service-principal-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/glue__sqs/check_iam_role_trusts_glue_service_principal_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.iam-role-trusts-sqs-service-principal-positive", "deployments": [], "key": "glue__sqs/iam-role-trusts-sqs-service-principal-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:SimulatePrincipalPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_iam_role_trusts_sqs_service_principal_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.sdk-glue-crawler-completion-sends-sqs-message-positive", "deployments": [], "key": "glue__sqs/sdk-glue-crawler-completion-sends-sqs-message-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateCrawler", "glue:CreateDatabase", "glue:DeleteCrawler", "glue:DeleteDatabase", "glue:GetCrawler", "glue:GetTables", "glue:StartCrawler", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/glue__sqs/check_sdk_glue_crawler_completion_sends_sqs_message_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.sdk-glue-job-missing-sqs-send-permission-negative", "deployments": [], "key": "glue__sqs/sdk-glue-job-missing-sqs-send-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_sdk_glue_job_missing_sqs_send_permission_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.sdk-glue-job-run-writes-batch-messages-to-sqs-positive", "deployments": [], "key": "glue__sqs/sdk-glue-job-run-writes-batch-messages-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_sdk_glue_job_run_writes_batch_messages_to_sqs_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.sdk-glue-job-sqs-message-attributes-preserved", "deployments": [], "key": "glue__sqs/sdk-glue-job-sqs-message-attributes-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_sdk_glue_job_sqs_message_attributes_preserved.py", "service": "glue__sqs"} {"check_id": "glue__sqs.sdk-glue-job-wrong-queue-url-negative", "deployments": [], "key": "glue__sqs/sdk-glue-job-wrong-queue-url-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["glue:CreateJob", "glue:DeleteJob", "glue:GetJobRun", "glue:StartJobRun", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/glue__sqs/check_sdk_glue_job_wrong_queue_url_negative.py", "service": "glue__sqs"} {"check_id": "glue__sqs.sqs-queue-policy-allows-eventbridge-source-arn-positive", "deployments": [], "key": "glue__sqs/sqs-queue-policy-allows-eventbridge-source-arn-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/glue__sqs/check_sqs_queue_policy_allows_eventbridge_source_arn_positive.py", "service": "glue__sqs"} {"check_id": "glue__sqs.sqs-queue-policy-denies-glue-role-rejected", "deployments": [], "key": "glue__sqs/sqs-queue-policy-denies-glue-role-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/glue__sqs/check_sqs_queue_policy_denies_glue_role_rejected.py", "service": "glue__sqs"} {"check_id": "glue__stepfunctions.start-job-run-sync-for-an-unknown-job-name-fails-as-task-failed", "deployments": [], "key": "glue__stepfunctions/start-job-run-sync-for-an-unknown-job-name-fails-as-task-failed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/glue__stepfunctions/check_start_job_run_sync_for_an_unknown_job_name_fails_as_task_failed.py", "service": "glue__stepfunctions"} {"check_id": "grafana.concurrent-tag-resource-calls-all-persist", "deployments": [], "key": "grafana/concurrent-tag-resource-calls-all-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:ListTagsForResource", "grafana:TagResource", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/grafana/check_concurrent_tag_resource_calls_all_persist.py", "service": "grafana"} {"check_id": "grafana.create-workspace-invalid-org-units-combo-accepted", "deployments": [], "key": "grafana/create-workspace-invalid-org-units-combo-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:ListWorkspaces", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_create_workspace_invalid_org_units_combo_accepted.py", "service": "grafana"} {"check_id": "grafana.create-workspace-reaches-active-status", "deployments": [], "key": "grafana/create-workspace-reaches-active-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:ListWorkspaces", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_create_workspace_reaches_active_status.py", "service": "grafana"} {"check_id": "grafana.delete-workspace-removes-resource-and-double-delete-conflicts", "deployments": [], "key": "grafana/delete-workspace-removes-resource-and-double-delete-conflicts", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_delete_workspace_removes_resource_and_double_delete_conflicts.py", "service": "grafana"} {"check_id": "grafana.deploy-workspace-via-cloudformation-persists-update", "deployments": [], "key": "grafana/deploy-workspace-via-cloudformation-persists-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "grafana:DescribeWorkspace", "grafana:UpdateWorkspace", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_deploy_workspace_via_cloudformation_persists_update.py", "service": "grafana"} {"check_id": "grafana.describe-workspace-authentication-reflects-saml-not-configured", "deployments": [], "key": "grafana/describe-workspace-authentication-reflects-saml-not-configured", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:DescribeWorkspaceAuthentication", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_describe_workspace_authentication_reflects_saml_not_configured.py", "service": "grafana"} {"check_id": "grafana.describe-workspace-malformed-id-rejected", "deployments": [], "key": "grafana/describe-workspace-malformed-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["grafana:DescribeWorkspace", "grafana:ListWorkspaces"], "path": "behavioral/grafana/check_describe_workspace_malformed_id_rejected.py", "service": "grafana"} {"check_id": "grafana.describe-workspace-nonexistent-id-not-found", "deployments": [], "key": "grafana/describe-workspace-nonexistent-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["grafana:DescribeWorkspace", "grafana:ListVersions"], "path": "behavioral/grafana/check_describe_workspace_nonexistent_id_not_found.py", "service": "grafana"} {"check_id": "grafana.grafana-http-api-native-round-trip", "deployments": [], "key": "grafana/grafana-http-api-native-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["grafana:CreateWorkspace", "grafana:CreateWorkspaceServiceAccount", "grafana:CreateWorkspaceServiceAccountToken", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies"], "path": "behavioral/grafana/check_grafana_http_api_native_round_trip.py", "service": "grafana"} {"check_id": "grafana.list-versions-returns-available-versions", "deployments": [], "key": "grafana/list-versions-returns-available-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:ListVersions", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_list_versions_returns_available_versions.py", "service": "grafana"} {"check_id": "grafana.list-workspace-service-accounts-reflects-multiple-roles", "deployments": [], "key": "grafana/list-workspace-service-accounts-reflects-multiple-roles", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:CreateWorkspaceServiceAccount", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:ListWorkspaceServiceAccounts", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_list_workspace_service_accounts_reflects_multiple_roles.py", "service": "grafana"} {"check_id": "grafana.missing-iam-permission-create-workspace-rejected", "deployments": [], "key": "grafana/missing-iam-permission-create-workspace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:ListWorkspaces", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/grafana/check_missing_iam_permission_create_workspace_rejected.py", "service": "grafana"} {"check_id": "grafana.network-access-control-block-all-then-remove", "deployments": [], "key": "grafana/network-access-control-block-all-then-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:UpdateWorkspace", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_network_access_control_block_all_then_remove.py", "service": "grafana"} {"check_id": "grafana.service-account-lifecycle-round-trip", "deployments": [], "key": "grafana/service-account-lifecycle-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:CreateWorkspaceServiceAccount", "grafana:CreateWorkspaceServiceAccountToken", "grafana:DeleteWorkspace", "grafana:DeleteWorkspaceServiceAccount", "grafana:DeleteWorkspaceServiceAccountToken", "grafana:DescribeWorkspace", "grafana:ListWorkspaceServiceAccountTokens", "grafana:ListWorkspaceServiceAccounts", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_service_account_lifecycle_round_trip.py", "service": "grafana"} {"check_id": "grafana.service-account-token-seconds-to-live-out-of-range-rejected", "deployments": [], "key": "grafana/service-account-token-seconds-to-live-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:CreateWorkspaceServiceAccount", "grafana:CreateWorkspaceServiceAccountToken", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:ListWorkspaceServiceAccountTokens", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_service_account_token_seconds_to_live_out_of_range_rejected.py", "service": "grafana"} {"check_id": "grafana.tag-resource-roundtrip", "deployments": [], "key": "grafana/tag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:ListTagsForResource", "grafana:TagResource", "grafana:UntagResource", "iam:CreateRole", "iam:DeleteRole", "sts:GetCallerIdentity"], "path": "behavioral/grafana/check_tag_resource_roundtrip.py", "service": "grafana"} {"check_id": "grafana.update-workspace-configuration-json-roundtrip", "deployments": [], "key": "grafana/update-workspace-configuration-json-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:DescribeWorkspaceConfiguration", "grafana:UpdateWorkspaceConfiguration", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_update_workspace_configuration_json_roundtrip.py", "service": "grafana"} {"check_id": "grafana.update-workspace-conflict-while-updating-rejected", "deployments": [], "key": "grafana/update-workspace-conflict-while-updating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["grafana:CreateWorkspace", "grafana:DeleteWorkspace", "grafana:DescribeWorkspace", "grafana:UpdateWorkspace", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_update_workspace_conflict_while_updating_rejected.py", "service": "grafana"} {"check_id": "grafana.workspace-api-key-lifecycle-round-trip", "deployments": [], "key": "grafana/workspace-api-key-lifecycle-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["grafana:CreateWorkspace", "grafana:CreateWorkspaceApiKey", "grafana:DeleteWorkspace", "grafana:DeleteWorkspaceApiKey", "grafana:DescribeWorkspace", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/grafana/check_workspace_api_key_lifecycle_round_trip.py", "service": "grafana"} {"check_id": "greengrassv2.associate-service-role-untrusted-role-is-accepted", "deployments": [], "key": "greengrassv2/associate-service-role-untrusted-role-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:AssociateServiceRoleToAccount", "greengrassv2:DisassociateServiceRoleFromAccount", "greengrassv2:GetServiceRoleForAccount", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/greengrassv2/check_associate_service_role_untrusted_role_is_accepted.py", "service": "greengrassv2"} {"check_id": "greengrassv2.batch-associate-client-device-lenient-nonexistent-core-device", "deployments": [], "key": "greengrassv2/batch-associate-client-device-lenient-nonexistent-core-device", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:BatchAssociateClientDeviceWithCoreDevice", "greengrassv2:BatchDisassociateClientDeviceFromCoreDevice", "greengrassv2:ListClientDevicesAssociatedWithCoreDevice"], "path": "behavioral/greengrassv2/check_batch_associate_client_device_lenient_nonexistent_core_device.py", "service": "greengrassv2"} {"check_id": "greengrassv2.batch-disassociate-client-device-nonexistent-core-device-not-found", "deployments": [], "key": "greengrassv2/batch-disassociate-client-device-nonexistent-core-device-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:BatchDisassociateClientDeviceFromCoreDevice", "greengrassv2:ListClientDevicesAssociatedWithCoreDevice"], "path": "behavioral/greengrassv2/check_batch_disassociate_client_device_nonexistent_core_device_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.cancel-deployment-already-canceled-idempotent", "deployments": [], "key": "greengrassv2/cancel-deployment-already-canceled-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "iot:CreateThingGroup", "iot:DeleteThingGroup"], "path": "behavioral/greengrassv2/check_cancel_deployment_already_canceled_idempotent.py", "service": "greengrassv2"} {"check_id": "greengrassv2.cancel-deployment-nonexistent-not-found", "deployments": [], "key": "greengrassv2/cancel-deployment-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/greengrassv2/check_cancel_deployment_nonexistent_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.cancel-deployment-transitions-active-to-canceled", "deployments": [], "key": "greengrassv2/cancel-deployment-transitions-active-to-canceled", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "iot:CreateThingGroup", "iot:DeleteThingGroup"], "path": "behavioral/greengrassv2/check_cancel_deployment_transitions_active_to_canceled.py", "service": "greengrassv2"} {"check_id": "greengrassv2.component-tag-untag-list-round-trip", "deployments": [], "key": "greengrassv2/component-tag-untag-list-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:ListTagsForResource", "greengrassv2:TagResource", "greengrassv2:UntagResource"], "path": "behavioral/greengrassv2/check_component_tag_untag_list_round_trip.py", "service": "greengrassv2"} {"check_id": "greengrassv2.component-version-create-describe-get-delete-lifecycle", "deployments": [], "key": "greengrassv2/component-version-create-describe-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:GetComponent", "greengrassv2:ListComponentVersions", "greengrassv2:ListComponents"], "path": "behavioral/greengrassv2/check_component_version_create_describe_get_delete_lifecycle.py", "service": "greengrassv2"} {"check_id": "greengrassv2.component-version-duplicate-conflict-rejected", "deployments": [], "key": "greengrassv2/component-version-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:GetComponent"], "path": "behavioral/greengrassv2/check_component_version_duplicate_conflict_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.concurrent-component-version-creation-all-persist", "deployments": [], "key": "greengrassv2/concurrent-component-version-creation-all-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListComponentVersions"], "path": "behavioral/greengrassv2/check_concurrent_component_version_creation_all_persist.py", "service": "greengrassv2"} {"check_id": "greengrassv2.concurrent-create-deployment-same-target-conflict-tolerant", "deployments": [], "key": "greengrassv2/concurrent-create-deployment-same-target-conflict-tolerant", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:ListDeployments", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/greengrassv2/check_concurrent_create_deployment_same_target_conflict_tolerant.py", "service": "greengrassv2"} {"check_id": "greengrassv2.concurrent-create-deployment-same-target-single-latest", "deployments": [], "key": "greengrassv2/concurrent-create-deployment-same-target-single-latest", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "greengrassv2:ListDeployments", "iot:CreateThing", "iot:DeleteThing", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_concurrent_create_deployment_same_target_single_latest.py", "service": "greengrassv2"} {"check_id": "greengrassv2.concurrent-duplicate-component-version-creation-race-single-winner", "deployments": [], "key": "greengrassv2/concurrent-duplicate-component-version-creation-race-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent"], "path": "behavioral/greengrassv2/check_concurrent_duplicate_component_version_creation_race_single_winner.py", "service": "greengrassv2"} {"check_id": "greengrassv2.connectivity-info-round-trip-and-malformed-entry-rejected", "deployments": [], "key": "greengrassv2/connectivity-info-round-trip-and-malformed-entry-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:GetConnectivityInfo", "greengrassv2:UpdateConnectivityInfo"], "path": "behavioral/greengrassv2/check_connectivity_info_round_trip_and_malformed_entry_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.connectivity-info-update-get-overwrite-round-trip", "deployments": [], "key": "greengrassv2/connectivity-info-update-get-overwrite-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:GetConnectivityInfo", "greengrassv2:UpdateConnectivityInfo"], "path": "behavioral/greengrassv2/check_connectivity_info_update_get_overwrite_round_trip.py", "service": "greengrassv2"} {"check_id": "greengrassv2.core-device-nucleus-native-protocol-unreachable", "deployments": [], "key": "greengrassv2/core-device-nucleus-native-protocol-unreachable", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:GetCoreDevice", "greengrassv2:ListCoreDevices", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeThing"], "path": "behavioral/greengrassv2/check_core_device_nucleus_native_protocol_unreachable.py", "service": "greengrassv2"} {"check_id": "greengrassv2.core-device-scoped-ops-lenient-for-nonexistent-device", "deployments": [], "key": "greengrassv2/core-device-scoped-ops-lenient-for-nonexistent-device", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:BatchDisassociateClientDeviceFromCoreDevice", "greengrassv2:GetCoreDevice", "greengrassv2:ListEffectiveDeployments", "greengrassv2:ListInstalledComponents"], "path": "behavioral/greengrassv2/check_core_device_scoped_ops_lenient_for_nonexistent_device.py", "service": "greengrassv2"} {"check_id": "greengrassv2.create-component-version-access-denied-rejected", "deployments": [], "key": "greengrassv2/create-component-version-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:ListComponents", "iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_create_component_version_access_denied_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.create-component-version-invalid-recipe-rejected", "deployments": [], "key": "greengrassv2/create-component-version-invalid-recipe-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListComponents", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_create_component_version_invalid_recipe_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.create-component-version-invalid-recipe-validation-rejected", "deployments": [], "key": "greengrassv2/create-component-version-invalid-recipe-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListComponents", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_create_component_version_invalid_recipe_validation_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.create-deployment-active-state-matches-iot-job", "deployments": [], "key": "greengrassv2/create-deployment-active-state-matches-iot-job", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateComponentVersion", "greengrassv2:CreateDeployment", "greengrassv2:DeleteComponent", "greengrassv2:DeleteDeployment", "greengrassv2:DescribeComponent", "greengrassv2:GetDeployment", "iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:DescribeJob"], "path": "behavioral/greengrassv2/check_create_deployment_active_state_matches_iot_job.py", "service": "greengrassv2"} {"check_id": "greengrassv2.create-deployment-invalid-failure-handling-policy-rejected", "deployments": [], "key": "greengrassv2/create-deployment-invalid-failure-handling-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "greengrassv2:ListDeployments", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/greengrassv2/check_create_deployment_invalid_failure_handling_policy_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.create-deployment-nonexistent-target-not-found", "deployments": [], "key": "greengrassv2/create-deployment-nonexistent-target-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "greengrassv2:ListDeployments", "iot:CreateThing", "iot:DeleteThing", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_create_deployment_nonexistent_target_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.create-deployment-nonexistent-thing-group-target-rejected", "deployments": [], "key": "greengrassv2/create-deployment-nonexistent-thing-group-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "greengrassv2:ListDeployments", "iot:CreateThingGroup", "iot:DeleteThingGroup", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_create_deployment_nonexistent_thing_group_target_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.create-deployment-policies-reflected-in-get-deployment", "deployments": [], "key": "greengrassv2/create-deployment-policies-reflected-in-get-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/greengrassv2/check_create_deployment_policies_reflected_in_get_deployment.py", "service": "greengrassv2"} {"check_id": "greengrassv2.delete-active-deployment-validation-rejected", "deployments": [], "key": "greengrassv2/delete-active-deployment-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "iot:CreateThing", "iot:DeleteThing", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_delete_active_deployment_validation_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.delete-component-in-use-by-active-deployment-lenient", "deployments": [], "key": "greengrassv2/delete-component-in-use-by-active-deployment-lenient", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateComponentVersion", "greengrassv2:CreateDeployment", "greengrassv2:DeleteComponent", "greengrassv2:DeleteDeployment", "greengrassv2:DescribeComponent", "greengrassv2:GetComponent", "greengrassv2:GetDeployment", "greengrassv2:TagResource", "iot:CreateThing", "iot:DeleteThing", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_delete_component_in_use_by_active_deployment_lenient.py", "service": "greengrassv2"} {"check_id": "greengrassv2.delete-component-nonexistent-not-found", "deployments": [], "key": "greengrassv2/delete-component-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent"], "path": "behavioral/greengrassv2/check_delete_component_nonexistent_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.delete-component-removes-and-get-not-found", "deployments": [], "key": "greengrassv2/delete-component-removes-and-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:GetComponent", "greengrassv2:ListComponentVersions", "greengrassv2:ListComponents"], "path": "behavioral/greengrassv2/check_delete_component_removes_and_get_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.delete-component-then-redelete-rejected", "deployments": [], "key": "greengrassv2/delete-component-then-redelete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent"], "path": "behavioral/greengrassv2/check_delete_component_then_redelete_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.delete-deployment-active-conflict-rejected", "deployments": [], "key": "greengrassv2/delete-deployment-active-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "iot:CreateThingGroup", "iot:DeleteThingGroup"], "path": "behavioral/greengrassv2/check_delete_deployment_active_conflict_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.delete-deployment-nonexistent-not-found", "deployments": [], "key": "greengrassv2/delete-deployment-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "iot:CreateThing", "iot:DeleteThing", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_delete_deployment_nonexistent_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.deployment-create-get-active-lifecycle", "deployments": [], "key": "greengrassv2/deployment-create-get-active-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateComponentVersion", "greengrassv2:CreateDeployment", "greengrassv2:DeleteComponent", "greengrassv2:DeleteDeployment", "greengrassv2:DescribeComponent", "greengrassv2:GetDeployment", "greengrassv2:ListDeployments", "iot:CreateThingGroup", "iot:DeleteThingGroup"], "path": "behavioral/greengrassv2/check_deployment_create_get_active_lifecycle.py", "service": "greengrassv2"} {"check_id": "greengrassv2.deployment-supersede-marks-previous-inactive", "deployments": [], "key": "greengrassv2/deployment-supersede-marks-previous-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "iot:CreateThingGroup", "iot:DeleteThingGroup"], "path": "behavioral/greengrassv2/check_deployment_supersede_marks_previous_inactive.py", "service": "greengrassv2"} {"check_id": "greengrassv2.describe-component-malformed-arn-validation-rejected", "deployments": [], "key": "greengrassv2/describe-component-malformed-arn-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent"], "path": "behavioral/greengrassv2/check_describe_component_malformed_arn_validation_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.describe-component-nonexistent-not-found", "deployments": [], "key": "greengrassv2/describe-component-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_describe_component_nonexistent_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.disassociate-service-role-idempotent-when-none-associated", "deployments": [], "key": "greengrassv2/disassociate-service-role-idempotent-when-none-associated", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:AssociateServiceRoleToAccount", "greengrassv2:DisassociateServiceRoleFromAccount", "greengrassv2:GetServiceRoleForAccount", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/greengrassv2/check_disassociate_service_role_idempotent_when_none_associated.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-and-delete-core-device-nonexistent-not-found", "deployments": [], "key": "greengrassv2/get-and-delete-core-device-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:DeleteCoreDevice", "greengrassv2:GetCoreDevice", "greengrassv2:ListCoreDevices"], "path": "behavioral/greengrassv2/check_get_and_delete_core_device_nonexistent_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-component-malformed-arn-rejected", "deployments": [], "key": "greengrassv2/get-component-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:GetComponent", "greengrassv2:TagResource"], "path": "behavioral/greengrassv2/check_get_component_malformed_arn_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-component-nonexistent-not-found", "deployments": [], "key": "greengrassv2/get-component-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:GetComponent", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_get_component_nonexistent_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-component-recipe-output-format-yaml", "deployments": [], "key": "greengrassv2/get-component-recipe-output-format-yaml", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:GetComponent"], "path": "behavioral/greengrassv2/check_get_component_recipe_output_format_yaml.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-component-recipe-round-trip", "deployments": [], "key": "greengrassv2/get-component-recipe-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:GetComponent"], "path": "behavioral/greengrassv2/check_get_component_recipe_round_trip.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-component-version-artifact-malformed-arn-rejected", "deployments": [], "key": "greengrassv2/get-component-version-artifact-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:GetComponentVersionArtifact", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_get_component_version_artifact_malformed_arn_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-component-version-artifact-undeclared-artifact-rejected", "deployments": [], "key": "greengrassv2/get-component-version-artifact-undeclared-artifact-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:GetComponent", "greengrassv2:GetComponentVersionArtifact"], "path": "behavioral/greengrassv2/check_get_component_version_artifact_undeclared_artifact_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-connectivity-info-empty-for-new-thing", "deployments": [], "key": "greengrassv2/get-connectivity-info-empty-for-new-thing", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:GetConnectivityInfo", "greengrassv2:UpdateConnectivityInfo", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/greengrassv2/check_get_connectivity_info_empty_for_new_thing.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-core-device-nonexistent-not-found", "deployments": [], "key": "greengrassv2/get-core-device-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:GetCoreDevice", "greengrassv2:ListCoreDevices"], "path": "behavioral/greengrassv2/check_get_core_device_nonexistent_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.get-deployment-nonexistent-not-found", "deployments": [], "key": "greengrassv2/get-deployment-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateComponentVersion", "greengrassv2:CreateDeployment", "greengrassv2:DeleteComponent", "greengrassv2:DeleteDeployment", "greengrassv2:DescribeComponent", "greengrassv2:GetDeployment", "iot:CreateThingGroup", "iot:DeleteThingGroup"], "path": "behavioral/greengrassv2/check_get_deployment_nonexistent_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-client-devices-associated-nonexistent-core-device-not-found", "deployments": [], "key": "greengrassv2/list-client-devices-associated-nonexistent-core-device-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:ListClientDevicesAssociatedWithCoreDevice"], "path": "behavioral/greengrassv2/check_list_client_devices_associated_nonexistent_core_device_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-component-versions-malformed-arn-rejected", "deployments": [], "key": "greengrassv2/list-component-versions-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListComponentVersions"], "path": "behavioral/greengrassv2/check_list_component_versions_malformed_arn_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-component-versions-nonexistent-component-not-found", "deployments": [], "key": "greengrassv2/list-component-versions-nonexistent-component-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:ListComponentVersions", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_list_component_versions_nonexistent_component_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-component-versions-pagination", "deployments": [], "key": "greengrassv2/list-component-versions-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListComponentVersions"], "path": "behavioral/greengrassv2/check_list_component_versions_pagination.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-component-versions-pagination-next-token", "deployments": [], "key": "greengrassv2/list-component-versions-pagination-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListComponentVersions"], "path": "behavioral/greengrassv2/check_list_component_versions_pagination_next_token.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-component-versions-reflects-created-versions", "deployments": [], "key": "greengrassv2/list-component-versions-reflects-created-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListComponentVersions"], "path": "behavioral/greengrassv2/check_list_component_versions_reflects_created_versions.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-components-scope-private-isolated", "deployments": [], "key": "greengrassv2/list-components-scope-private-isolated", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListComponents"], "path": "behavioral/greengrassv2/check_list_components_scope_private_isolated.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-components-scope-private-isolation", "deployments": [], "key": "greengrassv2/list-components-scope-private-isolation", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:ListComponents"], "path": "behavioral/greengrassv2/check_list_components_scope_private_isolation.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-deployments-history-filter-latest-only-vs-all", "deployments": [], "key": "greengrassv2/list-deployments-history-filter-latest-only-vs-all", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "greengrassv2:ListDeployments", "iot:CreateThingGroup", "iot:DeleteThingGroup"], "path": "behavioral/greengrassv2/check_list_deployments_history_filter_latest_only_vs_all.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-effective-deployments-nonexistent-core-device-not-found", "deployments": [], "key": "greengrassv2/list-effective-deployments-nonexistent-core-device-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:GetCoreDevice", "greengrassv2:ListDeployments", "greengrassv2:ListEffectiveDeployments"], "path": "behavioral/greengrassv2/check_list_effective_deployments_nonexistent_core_device_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.list-tags-for-resource-malformed-arn-rejected", "deployments": [], "key": "greengrassv2/list-tags-for-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListTagsForResource", "greengrassv2:TagResource"], "path": "behavioral/greengrassv2/check_list_tags_for_resource_malformed_arn_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.resolve-component-candidates-match-and-missing", "deployments": [], "key": "greengrassv2/resolve-component-candidates-match-and-missing", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ResolveComponentCandidates"], "path": "behavioral/greengrassv2/check_resolve_component_candidates_match_and_missing.py", "service": "greengrassv2"} {"check_id": "greengrassv2.resolve-component-candidates-requires-device-auth-rejected", "deployments": [], "key": "greengrassv2/resolve-component-candidates-requires-device-auth-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:DescribeComponent", "greengrassv2:ResolveComponentCandidates"], "path": "behavioral/greengrassv2/check_resolve_component_candidates_requires_device_auth_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.resolve-component-candidates-unknown-version-not-found-rejected", "deployments": [], "key": "greengrassv2/resolve-component-candidates-unknown-version-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ResolveComponentCandidates"], "path": "behavioral/greengrassv2/check_resolve_component_candidates_unknown_version_not_found_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.service-role-association-lifecycle", "deployments": [], "key": "greengrassv2/service-role-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:AssociateServiceRoleToAccount", "greengrassv2:DisassociateServiceRoleFromAccount", "greengrassv2:GetServiceRoleForAccount", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/greengrassv2/check_service_role_association_lifecycle.py", "service": "greengrassv2"} {"check_id": "greengrassv2.tag-resource-non-greengrass-arn-rejected", "deployments": [], "key": "greengrassv2/tag-resource-non-greengrass-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListTagsForResource", "greengrassv2:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_tag_resource_non_greengrass_arn_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.tag-resource-nonexistent-arn-not-found", "deployments": [], "key": "greengrassv2/tag-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListTagsForResource", "greengrassv2:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_tag_resource_nonexistent_arn_not_found.py", "service": "greengrassv2"} {"check_id": "greengrassv2.tag-resource-round-trip-on-deployment", "deployments": [], "key": "greengrassv2/tag-resource-round-trip-on-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "greengrassv2:ListTagsForResource", "greengrassv2:TagResource", "greengrassv2:UntagResource", "iot:CreateThing", "iot:DeleteThing", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_tag_resource_round_trip_on_deployment.py", "service": "greengrassv2"} {"check_id": "greengrassv2.tag-resource-round-trip-on-deployment-v2", "deployments": [], "key": "greengrassv2/tag-resource-round-trip-on-deployment-v2", "labels": ["axis:happy-path", "plane:control"], "operations": ["greengrassv2:CancelDeployment", "greengrassv2:CreateDeployment", "greengrassv2:DeleteDeployment", "greengrassv2:GetDeployment", "greengrassv2:ListTagsForResource", "greengrassv2:TagResource", "greengrassv2:UntagResource", "iot:CreateThing", "iot:DeleteThing", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_tag_resource_round_trip_on_deployment_v2.py", "service": "greengrassv2"} {"check_id": "greengrassv2.untag-resource-empty-tag-keys-validation-rejected", "deployments": [], "key": "greengrassv2/untag-resource-empty-tag-keys-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListTagsForResource", "greengrassv2:TagResource", "greengrassv2:UntagResource"], "path": "behavioral/greengrassv2/check_untag_resource_empty_tag_keys_validation_rejected.py", "service": "greengrassv2"} {"check_id": "greengrassv2.untag-resource-nonexistent-arn-rejected", "deployments": [], "key": "greengrassv2/untag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["greengrassv2:CreateComponentVersion", "greengrassv2:DeleteComponent", "greengrassv2:ListTagsForResource", "greengrassv2:TagResource", "greengrassv2:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/greengrassv2/check_untag_resource_nonexistent_arn_rejected.py", "service": "greengrassv2"} {"check_id": "groundstation.antenna-downlink-config-default-polarization", "deployments": [], "key": "groundstation/antenna-downlink-config-default-polarization", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:GetConfig"], "path": "behavioral/groundstation/check_antenna_downlink_config_default_polarization.py", "service": "groundstation"} {"check_id": "groundstation.antenna-uplink-config-requires-frequency-approval", "deployments": [], "key": "groundstation/antenna-uplink-config-requires-frequency-approval", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:GetConfig", "groundstation:ListConfigs"], "path": "behavioral/groundstation/check_antenna_uplink_config_requires_frequency_approval.py", "service": "groundstation"} {"check_id": "groundstation.config-name-invalid-pattern-rejected", "deployments": [], "key": "groundstation/config-name-invalid-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:ListConfigs"], "path": "behavioral/groundstation/check_config_name_invalid_pattern_rejected.py", "service": "groundstation"} {"check_id": "groundstation.config-s3-recording-nonexistent-bucket-rejected", "deployments": [], "key": "groundstation/config-s3-recording-nonexistent-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:ListConfigs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/groundstation/check_config_s3_recording_nonexistent_bucket_rejected.py", "service": "groundstation"} {"check_id": "groundstation.create-config-tracking-roundtrip", "deployments": [], "key": "groundstation/create-config-tracking-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:GetConfig"], "path": "behavioral/groundstation/check_create_config_tracking_roundtrip.py", "service": "groundstation"} {"check_id": "groundstation.dataflow-endpoint-config-roundtrip", "deployments": [], "key": "groundstation/dataflow-endpoint-config-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:GetConfig"], "path": "behavioral/groundstation/check_dataflow_endpoint_config_roundtrip.py", "service": "groundstation"} {"check_id": "groundstation.dataflow-endpoint-group-lifecycle", "deployments": [], "key": "groundstation/dataflow-endpoint-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "groundstation:CreateDataflowEndpointGroup", "groundstation:DeleteDataflowEndpointGroup", "groundstation:GetDataflowEndpointGroup", "iam:CreateRole", "iam:DeleteRole"], "path": "behavioral/groundstation/check_dataflow_endpoint_group_lifecycle.py", "service": "groundstation"} {"check_id": "groundstation.delete-config-referenced-by-mission-profile-rejected", "deployments": [], "key": "groundstation/delete-config-referenced-by-mission-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:CreateMissionProfile", "groundstation:DeleteConfig", "groundstation:DeleteMissionProfile", "groundstation:GetConfig", "groundstation:GetMissionProfile"], "path": "behavioral/groundstation/check_delete_config_referenced_by_mission_profile_rejected.py", "service": "groundstation"} {"check_id": "groundstation.delete-config-then-get-not-found", "deployments": [], "key": "groundstation/delete-config-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:GetConfig", "groundstation:UpdateConfig"], "path": "behavioral/groundstation/check_delete_config_then_get_not_found.py", "service": "groundstation"} {"check_id": "groundstation.describe-contact-nonexistent-rejected", "deployments": [], "key": "groundstation/describe-contact-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:DescribeContact", "groundstation:ListContacts"], "path": "behavioral/groundstation/check_describe_contact_nonexistent_rejected.py", "service": "groundstation"} {"check_id": "groundstation.get-minute-usage-returns-expected-types", "deployments": [], "key": "groundstation/get-minute-usage-returns-expected-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:GetMinuteUsage"], "path": "behavioral/groundstation/check_get_minute_usage_returns_expected_types.py", "service": "groundstation"} {"check_id": "groundstation.list-configs-reflects-lifecycle", "deployments": [], "key": "groundstation/list-configs-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:ListConfigs"], "path": "behavioral/groundstation/check_list_configs_reflects_lifecycle.py", "service": "groundstation"} {"check_id": "groundstation.list-contacts-invalid-time-window-rejected", "deployments": [], "key": "groundstation/list-contacts-invalid-time-window-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:ListContacts"], "path": "behavioral/groundstation/check_list_contacts_invalid_time_window_rejected.py", "service": "groundstation"} {"check_id": "groundstation.list-mission-profiles-reflects-lifecycle", "deployments": [], "key": "groundstation/list-mission-profiles-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:CreateMissionProfile", "groundstation:DeleteConfig", "groundstation:DeleteMissionProfile", "groundstation:ListMissionProfiles"], "path": "behavioral/groundstation/check_list_mission_profiles_reflects_lifecycle.py", "service": "groundstation"} {"check_id": "groundstation.mission-profile-lifecycle", "deployments": [], "key": "groundstation/mission-profile-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:CreateMissionProfile", "groundstation:DeleteConfig", "groundstation:DeleteMissionProfile", "groundstation:GetMissionProfile", "groundstation:UpdateMissionProfile"], "path": "behavioral/groundstation/check_mission_profile_lifecycle.py", "service": "groundstation"} {"check_id": "groundstation.mission-profile-nonexistent-tracking-config-rejected", "deployments": [], "key": "groundstation/mission-profile-nonexistent-tracking-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:CreateMissionProfile", "groundstation:DeleteConfig", "groundstation:DeleteMissionProfile", "groundstation:ListMissionProfiles"], "path": "behavioral/groundstation/check_mission_profile_nonexistent_tracking_config_rejected.py", "service": "groundstation"} {"check_id": "groundstation.tag-and-untag-resource-lifecycle", "deployments": [], "key": "groundstation/tag-and-untag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:ListTagsForResource", "groundstation:TagResource", "groundstation:UntagResource"], "path": "behavioral/groundstation/check_tag_and_untag_resource_lifecycle.py", "service": "groundstation"} {"check_id": "groundstation.tag-resource-concurrent-writes-all-persist", "deployments": [], "key": "groundstation/tag-resource-concurrent-writes-all-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:ListTagsForResource", "groundstation:TagResource"], "path": "behavioral/groundstation/check_tag_resource_concurrent_writes_all_persist.py", "service": "groundstation"} {"check_id": "groundstation.update-config-persists-new-spectrum", "deployments": [], "key": "groundstation/update-config-persists-new-spectrum", "labels": ["axis:happy-path", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:GetConfig", "groundstation:UpdateConfig"], "path": "behavioral/groundstation/check_update_config_persists_new_spectrum.py", "service": "groundstation"} {"check_id": "groundstation.uplink-echo-config-rejects-wrong-type-arn", "deployments": [], "key": "groundstation/uplink-echo-config-rejects-wrong-type-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["groundstation:CreateConfig", "groundstation:DeleteConfig", "groundstation:ListConfigs"], "path": "behavioral/groundstation/check_uplink_echo_config_rejects_wrong_type_arn.py", "service": "groundstation"} {"check_id": "guardduty.accept-invitation-without-pending-invite-rejected", "deployments": [], "key": "guardduty/accept-invitation-without-pending-invite-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:AcceptInvitation", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetDetector", "guardduty:GetMasterAccount"], "path": "behavioral/guardduty/check_accept_invitation_without_pending_invite_rejected.py", "service": "guardduty"} {"check_id": "guardduty.archive-findings-foreign-id-rejected", "deployments": [], "key": "guardduty/archive-findings-foreign-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["guardduty:ArchiveFindings", "guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:UnarchiveFindings"], "path": "behavioral/guardduty/check_archive_findings_foreign_id_rejected.py", "service": "guardduty"} {"check_id": "guardduty.archive-unarchive-findings-last-write-wins", "deployments": [], "key": "guardduty/archive-unarchive-findings-last-write-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["guardduty:ArchiveFindings", "guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:UnarchiveFindings"], "path": "behavioral/guardduty/check_archive_unarchive_findings_last_write_wins.py", "service": "guardduty"} {"check_id": "guardduty.concurrent-start-malware-scan-second-call-rejected", "deployments": [], "key": "guardduty/concurrent-start-malware-scan-second-call-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetDetector", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:StartMalwareScan", "guardduty:UpdateDetector", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_concurrent_start_malware_scan_second_call_rejected.py", "service": "guardduty"} {"check_id": "guardduty.concurrent-start-malware-scan-second-caller-rejected", "deployments": [], "key": "guardduty/concurrent-start-malware-scan-second-caller-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetDetector", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:ListMalwareScans", "guardduty:UpdateDetector", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_concurrent_start_malware_scan_second_caller_rejected.py", "service": "guardduty"} {"check_id": "guardduty.concurrent-update-custom-detection-rule-org-config-conflict", "deployments": [], "key": "guardduty/concurrent-update-custom-detection-rule-org-config-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:DescribeOrganizationConfiguration", "guardduty:ListCustomDetectionRules", "guardduty:ListDetectors", "guardduty:UpdateCustomDetectionRuleOrgConfiguration"], "path": "behavioral/guardduty/check_concurrent_update_custom_detection_rule_org_config_conflict.py", "service": "guardduty"} {"check_id": "guardduty.concurrent-update-ipset-last-writer-wins", "deployments": [], "key": "guardduty/concurrent-update-ipset-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListDetectors", "guardduty:UpdateIPSet"], "path": "behavioral/guardduty/check_concurrent_update_ipset_last_writer_wins.py", "service": "guardduty"} {"check_id": "guardduty.create-custom-detection-rule-association-duplicate-name-conflict", "deployments": [], "key": "guardduty/create-custom-detection-rule-association-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateCustomDetectionRuleAssociation", "guardduty:CreateDetector", "guardduty:DeleteCustomDetectionRuleAssociation", "guardduty:DeleteDetector", "guardduty:GetCustomDetectionRuleAssociation", "guardduty:ListCustomDetectionRuleAssociations", "guardduty:ListCustomDetectionRules", "guardduty:ListDetectors"], "path": "behavioral/guardduty/check_create_custom_detection_rule_association_duplicate_name_conflict.py", "service": "guardduty"} {"check_id": "guardduty.create-custom-detection-rule-association-without-permission-denied", "deployments": [], "key": "guardduty/create-custom-detection-rule-association-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateCustomDetectionRuleAssociation", "guardduty:CreateDetector", "guardduty:DeleteCustomDetectionRuleAssociation", "guardduty:DeleteDetector", "guardduty:ListCustomDetectionRuleAssociations", "guardduty:ListDetectors", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser"], "path": "behavioral/guardduty/check_create_custom_detection_rule_association_without_permission_denied.py", "service": "guardduty"} {"check_id": "guardduty.create-duplicate-custom-detection-rule-association-conflict", "deployments": [], "key": "guardduty/create-duplicate-custom-detection-rule-association-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateCustomDetectionRuleAssociation", "guardduty:CreateDetector", "guardduty:DeleteCustomDetectionRuleAssociation", "guardduty:DeleteDetector", "guardduty:GetCustomDetectionRuleAssociation", "guardduty:ListCustomDetectionRuleAssociations", "guardduty:ListCustomDetectionRules", "guardduty:ListDetectors"], "path": "behavioral/guardduty/check_create_duplicate_custom_detection_rule_association_conflict.py", "service": "guardduty"} {"check_id": "guardduty.create-duplicate-malware-protection-plan-conflict", "deployments": [], "key": "guardduty/create-duplicate-malware-protection-plan-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateMalwareProtectionPlan", "guardduty:DeleteMalwareProtectionPlan", "guardduty:ListMalwareProtectionPlans", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/guardduty/check_create_duplicate_malware_protection_plan_conflict.py", "service": "guardduty"} {"check_id": "guardduty.create-filter-invalid-criteria-field-rejected", "deployments": [], "key": "guardduty/create-filter-invalid-criteria-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:GetFilter", "guardduty:ListDetectors", "guardduty:ListFilters"], "path": "behavioral/guardduty/check_create_filter_invalid_criteria_field_rejected.py", "service": "guardduty"} {"check_id": "guardduty.create-filter-out-of-range-criteria-rejected", "deployments": [], "key": "guardduty/create-filter-out-of-range-criteria-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:ListFilters"], "path": "behavioral/guardduty/check_create_filter_out_of_range_criteria_rejected.py", "service": "guardduty"} {"check_id": "guardduty.create-investigation-without-permission-denied", "deployments": [], "key": "guardduty/create-investigation-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateInvestigation", "guardduty:DeleteDetector", "guardduty:ListDetectors", "guardduty:ListInvestigations", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole"], "path": "behavioral/guardduty/check_create_investigation_without_permission_denied.py", "service": "guardduty"} {"check_id": "guardduty.create-ipset-malformed-s3-location-rejected", "deployments": [], "key": "guardduty/create-ipset-malformed-s3-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListIPSets"], "path": "behavioral/guardduty/check_create_ipset_malformed_s3_location_rejected.py", "service": "guardduty"} {"check_id": "guardduty.create-malware-protection-plan-duplicate-conflict", "deployments": [], "key": "guardduty/create-malware-protection-plan-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateMalwareProtectionPlan", "guardduty:DeleteMalwareProtectionPlan", "guardduty:GetMalwareProtectionPlan", "guardduty:ListMalwareProtectionPlans", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_create_malware_protection_plan_duplicate_conflict.py", "service": "guardduty"} {"check_id": "guardduty.create-members-invalid-account-id-rejected", "deployments": [], "key": "guardduty/create-members-invalid-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateMembers", "guardduty:DeleteDetector", "guardduty:DeleteMembers", "guardduty:GetMembers", "guardduty:ListDetectors", "guardduty:ListMembers"], "path": "behavioral/guardduty/check_create_members_invalid_account_id_rejected.py", "service": "guardduty"} {"check_id": "guardduty.create-members-malformed-account-id-rejected", "deployments": [], "key": "guardduty/create-members-malformed-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateMembers", "guardduty:DeleteDetector", "guardduty:DeleteMembers", "guardduty:ListMembers"], "path": "behavioral/guardduty/check_create_members_malformed_account_id_rejected.py", "service": "guardduty"} {"check_id": "guardduty.create-sample-findings-generates-server-side-findings", "deployments": [], "key": "guardduty/create-sample-findings-generates-server-side-findings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListFindings"], "path": "behavioral/guardduty/check_create_sample_findings_generates_server_side_findings.py", "service": "guardduty"} {"check_id": "guardduty.create-sample-findings-server-generated-fields", "deployments": [], "key": "guardduty/create-sample-findings-server-generated-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_create_sample_findings_server_generated_fields.py", "service": "guardduty"} {"check_id": "guardduty.create-second-detector-in-account-region-conflict-rejected", "deployments": [], "key": "guardduty/create-second-detector-in-account-region-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetDetector", "guardduty:ListDetectors"], "path": "behavioral/guardduty/check_create_second_detector_in_account_region_conflict_rejected.py", "service": "guardduty"} {"check_id": "guardduty.custom-detection-rule-association-lifecycle", "deployments": [], "key": "guardduty/custom-detection-rule-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateCustomDetectionRuleAssociation", "guardduty:CreateDetector", "guardduty:DeleteCustomDetectionRuleAssociation", "guardduty:DeleteDetector", "guardduty:GetCustomDetectionRule", "guardduty:GetCustomDetectionRuleAssociation", "guardduty:ListCustomDetectionRuleAssociations", "guardduty:ListCustomDetectionRules", "guardduty:ListDetectors", "guardduty:UpdateCustomDetectionRuleAssociation"], "path": "behavioral/guardduty/check_custom_detection_rule_association_lifecycle.py", "service": "guardduty"} {"check_id": "guardduty.custom-detection-rule-org-configuration-lifecycle", "deployments": [], "key": "guardduty/custom-detection-rule-org-configuration-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:DeleteCustomDetectionRuleOrgConfiguration", "guardduty:DeleteDetector", "guardduty:GetCustomDetectionRuleOrgConfiguration", "guardduty:ListCustomDetectionRuleOrgConfigurations", "guardduty:ListDetectors", "guardduty:UpdateCustomDetectionRuleOrgConfiguration"], "path": "behavioral/guardduty/check_custom_detection_rule_org_configuration_lifecycle.py", "service": "guardduty"} {"check_id": "guardduty.delete-custom-detection-rule-org-configuration-conflict-when-associations-exist", "deployments": [], "key": "guardduty/delete-custom-detection-rule-org-configuration-conflict-when-associations-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateCustomDetectionRuleAssociation", "guardduty:CreateCustomDetectionRuleOrgConfiguration", "guardduty:CreateDetector", "guardduty:DeleteCustomDetectionRuleAssociation", "guardduty:DeleteCustomDetectionRuleOrgConfiguration", "guardduty:DeleteDetector", "guardduty:GetCustomDetectionRuleOrgConfiguration", "guardduty:ListCustomDetectionRuleOrgConfigurations", "guardduty:ListCustomDetectionRules"], "path": "behavioral/guardduty/check_delete_custom_detection_rule_org_configuration_conflict_when_associations_exist.py", "service": "guardduty"} {"check_id": "guardduty.delete-malware-protection-plan-cross-account-denied", "deployments": [], "key": "guardduty/delete-malware-protection-plan-cross-account-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateMalwareProtectionPlan", "guardduty:DeleteMalwareProtectionPlan", "guardduty:GetMalwareProtectionPlan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_delete_malware_protection_plan_cross_account_denied.py", "service": "guardduty"} {"check_id": "guardduty.delete-org-config-conflict-when-associations-exist", "deployments": [], "key": "guardduty/delete-org-config-conflict-when-associations-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateCustomDetectionRuleOrgConfiguration", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:ListCustomDetectionRuleOrgConfigurations", "guardduty:ListCustomDetectionRules", "guardduty:ListDetectors"], "path": "behavioral/guardduty/check_delete_org_config_conflict_when_associations_exist.py", "service": "guardduty"} {"check_id": "guardduty.deploy-detector-cfn-behaves", "deployments": [], "key": "guardduty/deploy-detector-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "guardduty:CreateFilter", "guardduty:DeleteFilter", "guardduty:GetDetector", "guardduty:GetFilter", "guardduty:ListDetectors", "guardduty:ListFilters"], "path": "behavioral/guardduty/check_deploy_detector_cfn_behaves.py", "service": "guardduty"} {"check_id": "guardduty.deploy-guardduty-detector-cfn-active-behavior", "deployments": [], "key": "guardduty/deploy-guardduty-detector-cfn-active-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "guardduty:CreateSampleFindings", "guardduty:GetDetector", "guardduty:ListDetectors", "guardduty:ListFindings"], "path": "behavioral/guardduty/check_deploy_guardduty_detector_cfn_active_behavior.py", "service": "guardduty"} {"check_id": "guardduty.deploy-ipset-cfn-becomes-active-and-usable", "deployments": [], "key": "guardduty/deploy-ipset-cfn-becomes-active-and-usable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "guardduty:GetIPSet", "guardduty:ListDetectors", "guardduty:ListIPSets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/guardduty/check_deploy_ipset_cfn_becomes_active_and_usable.py", "service": "guardduty"} {"check_id": "guardduty.deploy-ipset-cfn-behaves", "deployments": [], "key": "guardduty/deploy-ipset-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetIPSet", "guardduty:ListDetectors", "guardduty:ListIPSets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/guardduty/check_deploy_ipset_cfn_behaves.py", "service": "guardduty"} {"check_id": "guardduty.disassociate-members-not-a-member-rejected", "deployments": [], "key": "guardduty/disassociate-members-not-a-member-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:DisassociateMembers", "guardduty:ListDetectors", "guardduty:ListMembers"], "path": "behavioral/guardduty/check_disassociate_members_not_a_member_rejected.py", "service": "guardduty"} {"check_id": "guardduty.e2e-finding-feedback-archive-flow", "deployments": [], "key": "guardduty/e2e-finding-feedback-archive-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["guardduty:ArchiveFindings", "guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:UnarchiveFindings", "guardduty:UpdateFindingsFeedback"], "path": "behavioral/guardduty/check_e2e_finding_feedback_archive_flow.py", "service": "guardduty"} {"check_id": "guardduty.e2e-malware-scan-to-finding-flow", "deployments": [], "key": "guardduty/e2e-malware-scan-to-finding-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:DescribeMalwareScans", "guardduty:GetDetector", "guardduty:GetFindings", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:StartMalwareScan", "guardduty:UpdateDetector", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_e2e_malware_scan_to_finding_flow.py", "service": "guardduty"} {"check_id": "guardduty.e2e-sample-findings-archive-lifecycle", "deployments": [], "key": "guardduty/e2e-sample-findings-archive-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["guardduty:ArchiveFindings", "guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings"], "path": "behavioral/guardduty/check_e2e_sample_findings_archive_lifecycle.py", "service": "guardduty"} {"check_id": "guardduty.e2e-threat-intel-match-detection-flow", "deployments": [], "key": "guardduty/e2e-threat-intel-match-detection-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:CreateThreatIntelSet", "guardduty:DeleteDetector", "guardduty:DeleteThreatIntelSet", "guardduty:GetFindings", "guardduty:GetThreatIntelSet", "guardduty:ListDetectors", "guardduty:ListFindings", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/guardduty/check_e2e_threat_intel_match_detection_flow.py", "service": "guardduty"} {"check_id": "guardduty.filter-criteria-numeric-round-trip", "deployments": [], "key": "guardduty/filter-criteria-numeric-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:GetFilter", "guardduty:ListDetectors", "guardduty:UpdateFilter"], "path": "behavioral/guardduty/check_filter_criteria_numeric_round_trip.py", "service": "guardduty"} {"check_id": "guardduty.filter-delete-already-deleted-rejected", "deployments": [], "key": "guardduty/filter-delete-already-deleted-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:GetFilter", "guardduty:ListDetectors", "guardduty:ListFilters"], "path": "behavioral/guardduty/check_filter_delete_already_deleted_rejected.py", "service": "guardduty"} {"check_id": "guardduty.filter-finding-criteria-round-trip", "deployments": [], "key": "guardduty/filter-finding-criteria-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:GetFilter", "guardduty:ListDetectors", "guardduty:UpdateFilter"], "path": "behavioral/guardduty/check_filter_finding_criteria_round_trip.py", "service": "guardduty"} {"check_id": "guardduty.filter-lifecycle-create-update-delete", "deployments": [], "key": "guardduty/filter-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:GetFilter", "guardduty:ListDetectors", "guardduty:UpdateFilter"], "path": "behavioral/guardduty/check_filter_lifecycle_create_update_delete.py", "service": "guardduty"} {"check_id": "guardduty.filter-list-order-stable-across-updates", "deployments": [], "key": "guardduty/filter-list-order-stable-across-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:ListDetectors", "guardduty:ListFilters", "guardduty:UpdateFilter"], "path": "behavioral/guardduty/check_filter_list_order_stable_across_updates.py", "service": "guardduty"} {"check_id": "guardduty.filter-rank-out-of-range-rejected", "deployments": [], "key": "guardduty/filter-rank-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:GetFilter", "guardduty:ListDetectors", "guardduty:ListFilters"], "path": "behavioral/guardduty/check_filter_rank_out_of_range_rejected.py", "service": "guardduty"} {"check_id": "guardduty.finding-feedback-comment-unicode-round-trip", "deployments": [], "key": "guardduty/finding-feedback-comment-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:UpdateFindingsFeedback"], "path": "behavioral/guardduty/check_finding_feedback_comment_unicode_round_trip.py", "service": "guardduty"} {"check_id": "guardduty.finding-feedback-comments-unicode-preserved", "deployments": [], "key": "guardduty/finding-feedback-comments-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:UpdateFindingsFeedback"], "path": "behavioral/guardduty/check_finding_feedback_comments_unicode_preserved.py", "service": "guardduty"} {"check_id": "guardduty.findings-archive-unarchive-transition", "deployments": [], "key": "guardduty/findings-archive-unarchive-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:ArchiveFindings", "guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:UnarchiveFindings"], "path": "behavioral/guardduty/check_findings_archive_unarchive_transition.py", "service": "guardduty"} {"check_id": "guardduty.findings-feedback-invalid-value-rejected", "deployments": [], "key": "guardduty/findings-feedback-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:UpdateFindingsFeedback"], "path": "behavioral/guardduty/check_findings_feedback_invalid_value_rejected.py", "service": "guardduty"} {"check_id": "guardduty.findings-feedback-latest-value-wins", "deployments": [], "key": "guardduty/findings-feedback-latest-value-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings", "guardduty:UpdateFindingsFeedback"], "path": "behavioral/guardduty/check_findings_feedback_latest_value_wins.py", "service": "guardduty"} {"check_id": "guardduty.get-custom-detection-rule-cross-account-denied", "deployments": [], "key": "guardduty/get-custom-detection-rule-cross-account-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetCustomDetectionRule", "guardduty:ListCustomDetectionRules", "guardduty:ListDetectors", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_get_custom_detection_rule_cross_account_denied.py", "service": "guardduty"} {"check_id": "guardduty.get-findings-nonexistent-detector-rejected", "deployments": [], "key": "guardduty/get-findings-nonexistent-detector-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:GetFindings", "guardduty:ListDetectors", "guardduty:ListFindings"], "path": "behavioral/guardduty/check_get_findings_nonexistent_detector_rejected.py", "service": "guardduty"} {"check_id": "guardduty.get-malware-scan-missing-returns-resourcenotfound", "deployments": [], "key": "guardduty/get-malware-scan-missing-returns-resourcenotfound", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:GetMalwareScan", "guardduty:ListMalwareScans"], "path": "behavioral/guardduty/check_get_malware_scan_missing_returns_resourcenotfound.py", "service": "guardduty"} {"check_id": "guardduty.get-malware-scan-nonexistent-resourcenotfound", "deployments": [], "key": "guardduty/get-malware-scan-nonexistent-resourcenotfound", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:GetMalwareScan", "guardduty:ListMalwareScans"], "path": "behavioral/guardduty/check_get_malware_scan_nonexistent_resourcenotfound.py", "service": "guardduty"} {"check_id": "guardduty.get-nonexistent-ipset-badrequest", "deployments": [], "key": "guardduty/get-nonexistent-ipset-badrequest", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListDetectors", "guardduty:ListIPSets", "guardduty:UpdateIPSet"], "path": "behavioral/guardduty/check_get_nonexistent_ipset_badrequest.py", "service": "guardduty"} {"check_id": "guardduty.guardduty-activate-ipset-rejected-by-account-quota", "deployments": [], "key": "guardduty/guardduty-activate-ipset-rejected-by-account-quota", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListDetectors", "guardduty:ListIPSets"], "path": "behavioral/guardduty/check_guardduty_activate_ipset_rejected_by_account_quota.py", "service": "guardduty"} {"check_id": "guardduty.ipset-lifecycle-active-then-deleted", "deployments": [], "key": "guardduty/ipset-lifecycle-active-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListDetectors", "guardduty:UpdateIPSet", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_ipset_lifecycle_active_then_deleted.py", "service": "guardduty"} {"check_id": "guardduty.ipset-lifecycle-create-active-delete", "deployments": [], "key": "guardduty/ipset-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListDetectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_ipset_lifecycle_create_active_delete.py", "service": "guardduty"} {"check_id": "guardduty.ipset-name-unicode-round-trip", "deployments": [], "key": "guardduty/ipset-name-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListDetectors", "guardduty:ListIPSets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_ipset_name_unicode_round_trip.py", "service": "guardduty"} {"check_id": "guardduty.ipset-unicode-name-round-trip", "deployments": [], "key": "guardduty/ipset-unicode-name-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet"], "path": "behavioral/guardduty/check_ipset_unicode_name_round_trip.py", "service": "guardduty"} {"check_id": "guardduty.malware-protection-plan-lifecycle", "deployments": [], "key": "guardduty/malware-protection-plan-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateMalwareProtectionPlan", "guardduty:DeleteMalwareProtectionPlan", "guardduty:GetMalwareProtectionPlan", "guardduty:UpdateMalwareProtectionPlan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/guardduty/check_malware_protection_plan_lifecycle.py", "service": "guardduty"} {"check_id": "guardduty.malware-scan-completes-within-timeout-window", "deployments": [], "key": "guardduty/malware-scan-completes-within-timeout-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:StartMalwareScan", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_malware_scan_completes_within_timeout_window.py", "service": "guardduty"} {"check_id": "guardduty.malware-scan-list-reflects-status-order", "deployments": [], "key": "guardduty/malware-scan-list-reflects-status-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:ListMalwareScans", "guardduty:StartMalwareScan", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_malware_scan_list_reflects_status_order.py", "service": "guardduty"} {"check_id": "guardduty.malware-scan-settings-exclusion-list-round-trip", "deployments": [], "key": "guardduty/malware-scan-settings-exclusion-list-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetMalwareScanSettings", "guardduty:UpdateMalwareScanSettings"], "path": "behavioral/guardduty/check_malware_scan_settings_exclusion_list_round_trip.py", "service": "guardduty"} {"check_id": "guardduty.malware-scan-status-progresses-server-side", "deployments": [], "key": "guardduty/malware-scan-status-progresses-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:ListMalwareScans", "guardduty:StartMalwareScan", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_malware_scan_status_progresses_server_side.py", "service": "guardduty"} {"check_id": "guardduty.malware-scan-status-transitions-to-completed", "deployments": [], "key": "guardduty/malware-scan-status-transitions-to-completed", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:StartMalwareScan", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_malware_scan_status_transitions_to_completed.py", "service": "guardduty"} {"check_id": "guardduty.member-association-lifecycle", "deployments": [], "key": "guardduty/member-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateMembers", "guardduty:DeleteDetector", "guardduty:DeleteMembers", "guardduty:DisassociateMembers", "guardduty:GetMembers", "guardduty:ListDetectors"], "path": "behavioral/guardduty/check_member_association_lifecycle.py", "service": "guardduty"} {"check_id": "guardduty.publishing-destination-lifecycle", "deployments": [], "key": "guardduty/publishing-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreatePublishingDestination", "guardduty:DeleteDetector", "guardduty:DeletePublishingDestination", "guardduty:DescribePublishingDestination", "guardduty:ListDetectors", "guardduty:UpdatePublishingDestination", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_publishing_destination_lifecycle.py", "service": "guardduty"} {"check_id": "guardduty.sample-findings-eventual-listability", "deployments": [], "key": "guardduty/sample-findings-eventual-listability", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["guardduty:CreateDetector", "guardduty:CreateSampleFindings", "guardduty:DeleteDetector", "guardduty:ListDetectors", "guardduty:ListFindings"], "path": "behavioral/guardduty/check_sample_findings_eventual_listability.py", "service": "guardduty"} {"check_id": "guardduty.second-detector-in-region-rejected", "deployments": [], "key": "guardduty/second-detector-in-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetDetector", "guardduty:ListDetectors"], "path": "behavioral/guardduty/check_second_detector_in_region_rejected.py", "service": "guardduty"} {"check_id": "guardduty.start-malware-scan-already-running-conflict", "deployments": [], "key": "guardduty/start-malware-scan-already-running-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetDetector", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:ListMalwareScans", "guardduty:StartMalwareScan", "guardduty:UpdateDetector", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_start_malware_scan_already_running_conflict.py", "service": "guardduty"} {"check_id": "guardduty.start-malware-scan-duplicate-conflict", "deployments": [], "key": "guardduty/start-malware-scan-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetDetector", "guardduty:GetMalwareScan", "guardduty:ListDetectors", "guardduty:ListMalwareScans", "guardduty:StartMalwareScan", "guardduty:UpdateDetector", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_start_malware_scan_duplicate_conflict.py", "service": "guardduty"} {"check_id": "guardduty.start-malware-scan-in-progress-conflict-rejected", "deployments": [], "key": "guardduty/start-malware-scan-in-progress-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:GetMalwareScan", "guardduty:ListMalwareScans", "guardduty:StartMalwareScan", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_start_malware_scan_in_progress_conflict_rejected.py", "service": "guardduty"} {"check_id": "guardduty.threat-intel-set-location-unicode-round-trip", "deployments": [], "key": "guardduty/threat-intel-set-location-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateThreatIntelSet", "guardduty:DeleteDetector", "guardduty:DeleteThreatIntelSet", "guardduty:GetThreatIntelSet", "guardduty:ListDetectors", "guardduty:ListThreatIntelSets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_threat_intel_set_location_unicode_round_trip.py", "service": "guardduty"} {"check_id": "guardduty.threatentityset-lifecycle", "deployments": [], "key": "guardduty/threatentityset-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateThreatEntitySet", "guardduty:DeleteDetector", "guardduty:DeleteThreatEntitySet", "guardduty:GetThreatEntitySet", "guardduty:ListDetectors", "guardduty:UpdateThreatEntitySet", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/guardduty/check_threatentityset_lifecycle.py", "service": "guardduty"} {"check_id": "guardduty.threatentityset-lifecycle-create-delete", "deployments": [], "key": "guardduty/threatentityset-lifecycle-create-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateThreatEntitySet", "guardduty:DeleteDetector", "guardduty:DeleteThreatEntitySet", "guardduty:GetThreatEntitySet", "guardduty:ListDetectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/guardduty/check_threatentityset_lifecycle_create_delete.py", "service": "guardduty"} {"check_id": "guardduty.threatintelset-lifecycle", "deployments": [], "key": "guardduty/threatintelset-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateThreatIntelSet", "guardduty:DeleteDetector", "guardduty:DeleteThreatIntelSet", "guardduty:GetThreatIntelSet", "guardduty:ListDetectors", "guardduty:UpdateThreatIntelSet", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_threatintelset_lifecycle.py", "service": "guardduty"} {"check_id": "guardduty.threatintelset-lifecycle-create-active-delete", "deployments": [], "key": "guardduty/threatintelset-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateThreatIntelSet", "guardduty:DeleteDetector", "guardduty:DeleteThreatIntelSet", "guardduty:GetThreatIntelSet", "guardduty:ListDetectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_threatintelset_lifecycle_create_active_delete.py", "service": "guardduty"} {"check_id": "guardduty.trustedentityset-lifecycle-create-delete", "deployments": [], "key": "guardduty/trustedentityset-lifecycle-create-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateTrustedEntitySet", "guardduty:DeleteDetector", "guardduty:DeleteTrustedEntitySet", "guardduty:GetTrustedEntitySet", "guardduty:ListDetectors", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/guardduty/check_trustedentityset_lifecycle_create_delete.py", "service": "guardduty"} {"check_id": "guardduty.update-ipset-nonexistent-rejected", "deployments": [], "key": "guardduty/update-ipset-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListIPSets", "guardduty:UpdateIPSet"], "path": "behavioral/guardduty/check_update_ipset_nonexistent_rejected.py", "service": "guardduty"} {"check_id": "guardduty.update-ipset-without-permission-denied", "deployments": [], "key": "guardduty/update-ipset-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["guardduty:CreateDetector", "guardduty:CreateIPSet", "guardduty:DeleteDetector", "guardduty:DeleteIPSet", "guardduty:GetIPSet", "guardduty:ListDetectors", "guardduty:UpdateIPSet", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/guardduty/check_update_ipset_without_permission_denied.py", "service": "guardduty"} {"check_id": "healthlake.concurrent-publish-profile-versions-sequential", "deployments": [], "key": "healthlake/concurrent-publish-profile-versions-sequential", "labels": ["axis:happy-path", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:ListDataTransformationProfileVersions", "healthlake:PublishDataTransformationProfile"], "path": "behavioral/healthlake/check_concurrent_publish_profile_versions_sequential.py", "service": "healthlake"} {"check_id": "healthlake.create-datastore-invalid-type-version-validation-error", "deployments": [], "key": "healthlake/create-datastore-invalid-type-version-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:ListFHIRDatastores"], "path": "behavioral/healthlake/check_create_datastore_invalid_type_version_validation_error.py", "service": "healthlake"} {"check_id": "healthlake.data-transformation-profile-draft-update-persists", "deployments": [], "key": "healthlake/data-transformation-profile-draft-update-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:GetDataTransformationProfile", "healthlake:UpdateDataTransformationProfile"], "path": "behavioral/healthlake/check_data_transformation_profile_draft_update_persists.py", "service": "healthlake"} {"check_id": "healthlake.delete-profile-removes-all-published-versions", "deployments": [], "key": "healthlake/delete-profile-removes-all-published-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:GetDataTransformationProfile", "healthlake:ListDataTransformationProfileVersions", "healthlake:PublishDataTransformationProfile"], "path": "behavioral/healthlake/check_delete_profile_removes_all_published_versions.py", "service": "healthlake"} {"check_id": "healthlake.describe-fhir-datastore-not-found", "deployments": [], "key": "healthlake/describe-fhir-datastore-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore"], "path": "behavioral/healthlake/check_describe_fhir_datastore_not_found.py", "service": "healthlake"} {"check_id": "healthlake.fhir-datastore-full-lifecycle-transitions", "deployments": [], "key": "healthlake/fhir-datastore-full-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "healthlake:UpdateFHIRDatastore"], "path": "behavioral/healthlake/check_fhir_datastore_full_lifecycle_transitions.py", "service": "healthlake"} {"check_id": "healthlake.fhir-import-job-delivers-resource-to-datastore", "deployments": [], "key": "healthlake/fhir-import-job-delivers-resource-to-datastore", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "healthlake:DescribeFHIRImportJob", "healthlake:StartFHIRImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/healthlake/check_fhir_import_job_delivers_resource_to_datastore.py", "service": "healthlake"} {"check_id": "healthlake.fhir-rest-api-native-protocol-roundtrip", "deployments": [], "key": "healthlake/fhir-rest-api-native-protocol-roundtrip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore"], "path": "behavioral/healthlake/check_fhir_rest_api_native_protocol_roundtrip.py", "service": "healthlake"} {"check_id": "healthlake.get-profile-out-of-range-version-not-found", "deployments": [], "key": "healthlake/get-profile-out-of-range-version-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:GetDataTransformationProfile", "healthlake:ListDataTransformationProfileVersions", "healthlake:PublishDataTransformationProfile"], "path": "behavioral/healthlake/check_get_profile_out_of_range_version_not_found.py", "service": "healthlake"} {"check_id": "healthlake.publish-from-existing-version-rollback", "deployments": [], "key": "healthlake/publish-from-existing-version-rollback", "labels": ["axis:happy-path", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:GetDataTransformationProfile", "healthlake:PublishDataTransformationProfile", "healthlake:UpdateDataTransformationProfile"], "path": "behavioral/healthlake/check_publish_from_existing_version_rollback.py", "service": "healthlake"} {"check_id": "healthlake.publish-increments-version-and-freezes-snapshot", "deployments": [], "key": "healthlake/publish-increments-version-and-freezes-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:GetDataTransformationProfile", "healthlake:PublishDataTransformationProfile", "healthlake:UpdateDataTransformationProfile"], "path": "behavioral/healthlake/check_publish_increments_version_and_freezes_snapshot.py", "service": "healthlake"} {"check_id": "healthlake.publish-profile-exceeds-version-quota-rejected", "deployments": [], "key": "healthlake/publish-profile-exceeds-version-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:ListDataTransformationProfileVersions", "healthlake:PublishDataTransformationProfile"], "path": "behavioral/healthlake/check_publish_profile_exceeds_version_quota_rejected.py", "service": "healthlake"} {"check_id": "healthlake.start-import-job-into-creating-datastore-rejected", "deployments": [], "key": "healthlake/start-import-job-into-creating-datastore-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "healthlake:DescribeFHIRImportJob", "healthlake:ListFHIRImportJobs", "healthlake:StartFHIRImportJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/healthlake/check_start_import_job_into_creating_datastore_rejected.py", "service": "healthlake"} {"check_id": "healthlake.start-transformation-job-nonexistent-profile-not-found", "deployments": [], "key": "healthlake/start-transformation-job-nonexistent-profile-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:DescribeDataTransformationJob", "healthlake:ListDataTransformationJobs", "healthlake:PublishDataTransformationProfile", "healthlake:StartDataTransformationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/healthlake/check_start_transformation_job_nonexistent_profile_not_found.py", "service": "healthlake"} {"check_id": "healthlake.start-transformation-job-untrusted-role-rejected", "deployments": [], "key": "healthlake/start-transformation-job-untrusted-role-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:DescribeDataTransformationJob", "healthlake:ListDataTransformationJobs", "healthlake:PublishDataTransformationProfile", "healthlake:StartDataTransformationJob", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/healthlake/check_start_transformation_job_untrusted_role_rejected.py", "service": "healthlake"} {"check_id": "healthlake.tag-and-untag-profile-roundtrip", "deployments": [], "key": "healthlake/tag-and-untag-profile-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:ListTagsForResource", "healthlake:TagResource", "healthlake:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/healthlake/check_tag_and_untag_profile_roundtrip.py", "service": "healthlake"} {"check_id": "healthlake.transform-data-sync-csv-to-fhir-bundle", "deployments": [], "key": "healthlake/transform-data-sync-csv-to-fhir-bundle", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:GetDataTransformationProfile"], "path": "behavioral/healthlake/check_transform_data_sync_csv_to_fhir_bundle.py", "service": "healthlake"} {"check_id": "healthlake.update-datastore-while-creating-rejected", "deployments": [], "key": "healthlake/update-datastore-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["healthlake:CreateFHIRDatastore", "healthlake:DeleteFHIRDatastore", "healthlake:DescribeFHIRDatastore", "healthlake:UpdateFHIRDatastore"], "path": "behavioral/healthlake/check_update_datastore_while_creating_rejected.py", "service": "healthlake"} {"check_id": "healthlake.update-profile-mapping-exceeds-entry-limit-rejected", "deployments": [], "key": "healthlake/update-profile-mapping-exceeds-entry-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["healthlake:CreateDataTransformationProfile", "healthlake:DeleteDataTransformationProfile", "healthlake:GetDataTransformationProfile", "healthlake:UpdateDataTransformationProfile"], "path": "behavioral/healthlake/check_update_profile_mapping_exceeds_entry_limit_rejected.py", "service": "healthlake"} {"check_id": "healthlake.validate-source-reports-structural-issues", "deployments": [], "key": "healthlake/validate-source-reports-structural-issues", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/healthlake/check_validate_source_reports_structural_issues.py", "service": "healthlake"} {"check_id": "iam.abac-resource-tag-must-match-principal-tag-on-a-real-signed-call", "deployments": [], "key": "iam/abac-resource-tag-must-match-principal-tag-on-a-real-signed-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListUserTags", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy", "iam:TagUser"], "path": "behavioral/iam/check_abac_resource_tag_must_match_principal_tag_on_a_real_signed_call.py", "service": "iam"} {"check_id": "iam.absent-condition-key-denied-unless-ifexists-forallvalues-or-null", "deployments": [], "key": "iam/absent-condition-key-denied-unless-ifexists-forallvalues-or-null", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetAccountSummary", "iam:GetUser", "iam:ListAccountAliases", "iam:ListGroups", "iam:ListInstanceProfiles", "iam:ListRoles", "iam:ListServerCertificates", "iam:ListUserTags", "iam:PutUserPolicy", "iam:TagUser"], "path": "behavioral/iam/check_absent_condition_key_denied_unless_ifexists_forallvalues_or_null.py", "service": "iam"} {"check_id": "iam.access-key-last-used-tracks-usage", "deployments": [], "key": "iam/access-key-last-used-tracks-usage", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetAccessKeyLastUsed", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_access_key_last_used_tracks_usage.py", "service": "iam"} {"check_id": "iam.access-key-limit-concurrency", "deployments": [], "key": "iam/access-key-limit-concurrency", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetUser", "iam:ListAccessKeys"], "path": "behavioral/iam/check_access_key_limit_concurrency.py", "service": "iam"} {"check_id": "iam.account-password-policy-lifecycle", "deployments": [], "key": "iam/account-password-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteAccountPasswordPolicy", "iam:GetAccountPasswordPolicy", "iam:UpdateAccountPasswordPolicy"], "path": "behavioral/iam/check_account_password_policy_lifecycle.py", "service": "iam"} {"check_id": "iam.account-properties-toggle-persists", "deployments": [], "key": "iam/account-properties-toggle-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GetAccountProperties", "iam:PutAccountProperties"], "path": "behavioral/iam/check_account_properties_toggle_persists.py", "service": "iam"} {"check_id": "iam.account-summary-reflects-resource-counts", "deployments": [], "key": "iam/account-summary-reflects-resource-counts", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteUser", "iam:GetAccountAuthorizationDetails", "iam:GetAccountSummary", "iam:GetRole", "iam:GetUser", "iam:TagRole"], "path": "behavioral/iam/check_account_summary_reflects_resource_counts.py", "service": "iam"} {"check_id": "iam.account-summary-server-side-aggregation-reflects-resource-counts", "deployments": [], "key": "iam/account-summary-server-side-aggregation-reflects-resource-counts", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:GetAccountSummary"], "path": "behavioral/iam/check_account_summary_server_side_aggregation_reflects_resource_counts.py", "service": "iam"} {"check_id": "iam.action-wildcard-prefix-match-enforced-on-a-real-signed-call", "deployments": [], "key": "iam/action-wildcard-prefix-match-enforced-on-a-real-signed-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetLoginProfile", "iam:GetUser", "iam:GetUserPolicy", "iam:ListAccessKeys", "iam:ListUserTags", "iam:PutUserPolicy"], "path": "behavioral/iam/check_action_wildcard_prefix_match_enforced_on_a_real_signed_call.py", "service": "iam"} {"check_id": "iam.add-client-id-duplicate-idempotent-dedup", "deployments": [], "key": "iam/add-client-id-duplicate-idempotent-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddClientIDToOpenIDConnectProvider", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider"], "path": "behavioral/iam/check_add_client_id_duplicate_idempotent_dedup.py", "service": "iam"} {"check_id": "iam.add-remove-user-from-group", "deployments": [], "key": "iam/add-remove-user-from-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:ListGroupsForUser", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_add_remove_user_from_group.py", "service": "iam"} {"check_id": "iam.add-role-to-instance-profile", "deployments": [], "key": "iam/add-role-to-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_add_role_to_instance_profile.py", "service": "iam"} {"check_id": "iam.assumed-role-session-is-authorized-by-the-role-policy", "deployments": [], "key": "iam/assumed-role-session-is-authorized-by-the-role-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_assumed_role_session_is_authorized_by_the_role_policy.py", "service": "iam"} {"check_id": "iam.attach-list-group-policies", "deployments": [], "key": "iam/attach-list-group-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachGroupPolicy", "iam:CreateGroup", "iam:CreatePolicy", "iam:DeleteGroup", "iam:DeletePolicy", "iam:DetachGroupPolicy", "iam:ListAttachedGroupPolicies"], "path": "behavioral/iam/check_attach_list_group_policies.py", "service": "iam"} {"check_id": "iam.attach-list-role-policies", "deployments": [], "key": "iam/attach-list-role-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_attach_list_role_policies.py", "service": "iam"} {"check_id": "iam.attach-list-user-policies", "deployments": [], "key": "iam/attach-list-user-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreatePolicy", "iam:CreateUser", "iam:DeletePolicy", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:ListAttachedUserPolicies"], "path": "behavioral/iam/check_attach_list_user_policies.py", "service": "iam"} {"check_id": "iam.attach-same-managed-policy-twice-is-idempotent", "deployments": [], "key": "iam/attach-same-managed-policy-twice-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachGroupPolicy", "iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:CreateGroup", "iam:CreatePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteGroup", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachGroupPolicy", "iam:DetachRolePolicy", "iam:DetachUserPolicy", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies", "iam:ListEntitiesForPolicy"], "path": "behavioral/iam/check_attach_same_managed_policy_twice_is_idempotent.py", "service": "iam"} {"check_id": "iam.attachment-count-increments", "deployments": [], "key": "iam/attachment-count-increments", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetPolicy"], "path": "behavioral/iam/check_attachment_count_increments.py", "service": "iam"} {"check_id": "iam.change-password-invalid-user-type-rejected", "deployments": [], "key": "iam/change-password-invalid-user-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:ChangePassword", "iam:CreateAccessKey", "iam:CreateLoginProfile", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:GetLoginProfile", "iam:GetUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_change_password_invalid_user_type_rejected.py", "service": "iam"} {"check_id": "iam.change-password-requires-valid-old-password", "deployments": [], "key": "iam/change-password-requires-valid-old-password", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:ChangePassword", "iam:CreateAccessKey", "iam:CreateLoginProfile", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:GetLoginProfile", "iam:GetUser"], "path": "behavioral/iam/check_change_password_requires_valid_old_password.py", "service": "iam"} {"check_id": "iam.change-password-updates-login-profile", "deployments": [], "key": "iam/change-password-updates-login-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:ChangePassword", "iam:CreateAccessKey", "iam:CreateLoginProfile", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:GetLoginProfile"], "path": "behavioral/iam/check_change_password_updates_login_profile.py", "service": "iam"} {"check_id": "iam.cli-iam-role-lifecycle", "deployments": [], "key": "iam/cli-iam-role-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies"], "path": "behavioral/iam/check_cli_iam_role_lifecycle.py", "service": "iam"} {"check_id": "iam.concurrent-add-client-id-race-consistent-final-state", "deployments": [], "key": "iam/concurrent-add-client-id-race-consistent-final-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddClientIDToOpenIDConnectProvider", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider"], "path": "behavioral/iam/check_concurrent_add_client_id_race_consistent_final_state.py", "service": "iam"} {"check_id": "iam.concurrent-instance-profile-tag-update-conflict", "deployments": [], "key": "iam/concurrent-instance-profile-tag-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:ListInstanceProfileTags", "iam:TagInstanceProfile"], "path": "behavioral/iam/check_concurrent_instance_profile_tag_update_conflict.py", "service": "iam"} {"check_id": "iam.concurrent-oidc-thumbprint-update-conflict", "deployments": [], "key": "iam/concurrent-oidc-thumbprint-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:UpdateOpenIDConnectProviderThumbprint"], "path": "behavioral/iam/check_concurrent_oidc_thumbprint_update_conflict.py", "service": "iam"} {"check_id": "iam.concurrent-resync-mfa-device-race-rejected", "deployments": [], "key": "iam/concurrent-resync-mfa-device-race-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice"], "path": "behavioral/iam/check_concurrent_resync_mfa_device_race_rejected.py", "service": "iam"} {"check_id": "iam.concurrent-role-creation-race", "deployments": [], "key": "iam/concurrent-role-creation-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_concurrent_role_creation_race.py", "service": "iam"} {"check_id": "iam.concurrent-saml-provider-update-conflict", "deployments": [], "key": "iam/concurrent-saml-provider-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:GetSAMLProvider", "iam:UpdateSAMLProvider"], "path": "behavioral/iam/check_concurrent_saml_provider_update_conflict.py", "service": "iam"} {"check_id": "iam.concurrent-tag-oidc-provider-optimistic-lock", "deployments": [], "key": "iam/concurrent-tag-oidc-provider-optimistic-lock", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:ListOpenIDConnectProviderTags", "iam:TagOpenIDConnectProvider"], "path": "behavioral/iam/check_concurrent_tag_oidc_provider_optimistic_lock.py", "service": "iam"} {"check_id": "iam.concurrent-update-saml-provider-race-accepted", "deployments": [], "key": "iam/concurrent-update-saml-provider-race-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:GetSAMLProvider", "iam:UpdateSAMLProvider"], "path": "behavioral/iam/check_concurrent_update_saml_provider_race_accepted.py", "service": "iam"} {"check_id": "iam.condition-key-flips-a-real-authorization-decision", "deployments": [], "key": "iam/condition-key-flips-a-real-authorization-decision", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListUserTags", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy", "iam:TagUser", "iam:UntagUser"], "path": "behavioral/iam/check_condition_key_flips_a_real_authorization_decision.py", "service": "iam"} {"check_id": "iam.create-access-key-quota-exceeded-rejected", "deployments": [], "key": "iam/create-access-key-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys"], "path": "behavioral/iam/check_create_access_key_quota_exceeded_rejected.py", "service": "iam"} {"check_id": "iam.create-delete-group", "deployments": [], "key": "iam/create-delete-group", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:GetGroup"], "path": "behavioral/iam/check_create_delete_group.py", "service": "iam"} {"check_id": "iam.create-duplicate-role", "deployments": [], "key": "iam/create-duplicate-role", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_create_duplicate_role.py", "service": "iam"} {"check_id": "iam.create-duplicate-user", "deployments": [], "key": "iam/create-duplicate-user", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser"], "path": "behavioral/iam/check_create_duplicate_user.py", "service": "iam"} {"check_id": "iam.create-get-instance-profile", "deployments": [], "key": "iam/create-get-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile"], "path": "behavioral/iam/check_create_get_instance_profile.py", "service": "iam"} {"check_id": "iam.create-get-policy", "deployments": [], "key": "iam/create-get-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy"], "path": "behavioral/iam/check_create_get_policy.py", "service": "iam"} {"check_id": "iam.create-get-role", "deployments": [], "key": "iam/create-get-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:ListRoles", "iam:UpdateRole"], "path": "behavioral/iam/check_create_get_role.py", "service": "iam"} {"check_id": "iam.create-get-user", "deployments": [], "key": "iam/create-get-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_create_get_user.py", "service": "iam"} {"check_id": "iam.create-open-id-connect-provider-duplicate-url-rejected", "deployments": [], "key": "iam/create-open-id-connect-provider-duplicate-url-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:ListOpenIDConnectProviders"], "path": "behavioral/iam/check_create_open_id_connect_provider_duplicate_url_rejected.py", "service": "iam"} {"check_id": "iam.create-role-with-description", "deployments": [], "key": "iam/create-role-with-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_create_role_with_description.py", "service": "iam"} {"check_id": "iam.create-role-with-tags", "deployments": [], "key": "iam/create-role-with-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListRoleTags"], "path": "behavioral/iam/check_create_role_with_tags.py", "service": "iam"} {"check_id": "iam.create-service-linked-role-unsupported-service-rejected", "deployments": [], "key": "iam/create-service-linked-role-unsupported-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus", "iam:ListRoles"], "path": "behavioral/iam/check_create_service_linked_role_unsupported_service_rejected.py", "service": "iam"} {"check_id": "iam.create-virtual-mfa-device-duplicate-name-different-path-rejected", "deployments": [], "key": "iam/create-virtual-mfa-device-duplicate-name-different-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice"], "path": "behavioral/iam/check_create_virtual_mfa_device_duplicate_name_different_path_rejected.py", "service": "iam"} {"check_id": "iam.credential-report-ready-then-expires", "deployments": [], "key": "iam/credential-report-ready-then-expires", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GenerateCredentialReport", "iam:GetCredentialReport"], "path": "behavioral/iam/check_credential_report_ready_then_expires.py", "service": "iam"} {"check_id": "iam.credential-report-ttl-expiry-requires-regeneration", "deployments": [], "key": "iam/credential-report-ttl-expiry-requires-regeneration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GenerateCredentialReport", "iam:GetCredentialReport"], "path": "behavioral/iam/check_credential_report_ttl_expiry_requires_regeneration.py", "service": "iam"} {"check_id": "iam.current-time-date-condition-window-denied-outside", "deployments": [], "key": "iam/current-time-date-condition-window-denied-outside", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetAccountSummary", "iam:GetUser", "iam:ListAccountAliases", "iam:ListGroups", "iam:ListInstanceProfiles", "iam:ListRoles", "iam:ListServerCertificates", "iam:PutUserPolicy"], "path": "behavioral/iam/check_current_time_date_condition_window_denied_outside.py", "service": "iam"} {"check_id": "iam.default-policy-version-selects-the-enforced-decision", "deployments": [], "key": "iam/default-policy-version-selects-the-enforced-decision", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetUser", "iam:ListPolicyVersions", "iam:SetDefaultPolicyVersion"], "path": "behavioral/iam/check_default_policy_version_selects_the_enforced_decision.py", "service": "iam"} {"check_id": "iam.delegation-request-workflow-lifecycle", "deployments": [], "key": "iam/delegation-request-workflow-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AcceptDelegationRequest", "iam:AcquireRole", "iam:AssociateDelegationRequest", "iam:CreateDelegationRequest", "iam:GetDelegationRequest", "iam:GetRole", "iam:ListDelegationRequests", "iam:RejectDelegationRequest", "iam:SendDelegationToken", "iam:UpdateDelegationRequest"], "path": "behavioral/iam/check_delegation_request_workflow_lifecycle.py", "service": "iam"} {"check_id": "iam.delete-account-password-policy", "deployments": [], "key": "iam/delete-account-password-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteAccountPasswordPolicy", "iam:GetAccountPasswordPolicy", "iam:UpdateAccountPasswordPolicy"], "path": "behavioral/iam/check_delete_account_password_policy.py", "service": "iam"} {"check_id": "iam.delete-group-with-inline-policy-rejected", "deployments": [], "key": "iam/delete-group-with-inline-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:GetGroup", "iam:ListGroupPolicies", "iam:PutGroupPolicy"], "path": "behavioral/iam/check_delete_group_with_inline_policy_rejected.py", "service": "iam"} {"check_id": "iam.delete-group-with-member-conflict-rejected", "deployments": [], "key": "iam/delete-group-with-member-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:GetGroup", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_delete_group_with_member_conflict_rejected.py", "service": "iam"} {"check_id": "iam.delete-group-with-members", "deployments": [], "key": "iam/delete-group-with-members", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:GetGroup", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_delete_group_with_members.py", "service": "iam"} {"check_id": "iam.delete-instance-profile", "deployments": [], "key": "iam/delete-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile", "iam:TagInstanceProfile"], "path": "behavioral/iam/check_delete_instance_profile.py", "service": "iam"} {"check_id": "iam.delete-instance-profile-with-role", "deployments": [], "key": "iam/delete-instance-profile-with-role", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_delete_instance_profile_with_role.py", "service": "iam"} {"check_id": "iam.delete-login-profile-nonexistent-rejected", "deployments": [], "key": "iam/delete-login-profile-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateLoginProfile", "iam:CreateUser", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:GetLoginProfile", "iam:UpdateLoginProfile"], "path": "behavioral/iam/check_delete_login_profile_nonexistent_rejected.py", "service": "iam"} {"check_id": "iam.delete-permissions-boundary-nonexistent-404", "deployments": [], "key": "iam/delete-permissions-boundary-nonexistent-404", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:GetRole", "iam:GetUser", "iam:PutRolePermissionsBoundary", "iam:PutUserPermissionsBoundary"], "path": "behavioral/iam/check_delete_permissions_boundary_nonexistent_404.py", "service": "iam"} {"check_id": "iam.delete-permissions-boundary-service-linked-role-rejected", "deployments": [], "key": "iam/delete-permissions-boundary-service-linked-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteServiceLinkedRole", "iam:GetRole", "iam:PutRolePermissionsBoundary"], "path": "behavioral/iam/check_delete_permissions_boundary_service_linked_role_rejected.py", "service": "iam"} {"check_id": "iam.delete-policy", "deployments": [], "key": "iam/delete-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:GetPolicy"], "path": "behavioral/iam/check_delete_policy.py", "service": "iam"} {"check_id": "iam.delete-policy-conflict-while-attached-rejected", "deployments": [], "key": "iam/delete-policy-conflict-while-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetPolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_delete_policy_conflict_while_attached_rejected.py", "service": "iam"} {"check_id": "iam.delete-policy-refused-while-it-bounds-a-role-until-the-boundary-is-removed", "deployments": [], "key": "iam/delete-policy-refused-while-it-bounds-a-role-until-the-boundary-is-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:GetPolicy", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_delete_policy_refused_while_it_bounds_a_role_until_the_boundary_is_removed.py", "service": "iam"} {"check_id": "iam.delete-policy-version", "deployments": [], "key": "iam/delete-policy-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicyVersion", "iam:ListPolicyVersions"], "path": "behavioral/iam/check_delete_policy_version.py", "service": "iam"} {"check_id": "iam.delete-policy-while-attached", "deployments": [], "key": "iam/delete-policy-while-attached", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetPolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_delete_policy_while_attached.py", "service": "iam"} {"check_id": "iam.delete-role", "deployments": [], "key": "iam/delete-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:PutRolePolicy"], "path": "behavioral/iam/check_delete_role.py", "service": "iam"} {"check_id": "iam.delete-role-inline-policy", "deployments": [], "key": "iam/delete-role-inline-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_delete_role_inline_policy.py", "service": "iam"} {"check_id": "iam.delete-role-refused-until-every-attached-policy-is-detached", "deployments": [], "key": "iam/delete-role-refused-until-every-attached-policy-is-detached", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetPolicy", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_delete_role_refused_until_every_attached_policy_is_detached.py", "service": "iam"} {"check_id": "iam.delete-role-with-attached-policy", "deployments": [], "key": "iam/delete-role-with-attached-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRoles", "iam:TagRole"], "path": "behavioral/iam/check_delete_role_with_attached_policy.py", "service": "iam"} {"check_id": "iam.delete-role-with-inline-policy", "deployments": [], "key": "iam/delete-role-with-inline-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_delete_role_with_inline_policy.py", "service": "iam"} {"check_id": "iam.delete-user", "deployments": [], "key": "iam/delete-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "iam:UpdateUser"], "path": "behavioral/iam/check_delete_user.py", "service": "iam"} {"check_id": "iam.delete-user-in-group", "deployments": [], "key": "iam/delete-user-in-group", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:GetUser", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_delete_user_in_group.py", "service": "iam"} {"check_id": "iam.delete-with-dependents-returns-deleteconflict", "deployments": [], "key": "iam/delete-with-dependents-returns-deleteconflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:AddUserToGroup", "iam:AttachUserPolicy", "iam:CreateGroup", "iam:CreateInstanceProfile", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:CreateRole", "iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteGroup", "iam:DeleteInstanceProfile", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteServerCertificate", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:DetachUserPolicy", "iam:EnableMFADevice", "iam:GetGroup", "iam:GetInstanceProfile", "iam:GetPolicy", "iam:GetRole", "iam:GetServerCertificate", "iam:GetUser", "iam:ListPolicyVersions", "iam:ListVirtualMFADevices", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "iam:RemoveUserFromGroup", "iam:UploadServerCertificate"], "path": "behavioral/iam/check_delete_with_dependents_returns_deleteconflict.py", "service": "iam"} {"check_id": "iam.deny-notaction-complement-enforced-on-a-real-signed-call", "deployments": [], "key": "iam/deny-notaction-complement-enforced-on-a-real-signed-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_deny_notaction_complement_enforced_on_a_real_signed_call.py", "service": "iam"} {"check_id": "iam.deploy-iam-managed-policy-cloudformation-stack-delete-cascades", "deployments": [], "key": "iam/deploy-iam-managed-policy-cloudformation-stack-delete-cascades", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetPolicy", "iam:GetRole", "iam:TagPolicy", "iam:TagRole"], "path": "behavioral/iam/check_deploy_iam_managed_policy_cloudformation_stack_delete_cascades.py", "service": "iam"} {"check_id": "iam.deploy-iam-managed-policy-via-cloudformation-attaches-and-enforces", "deployments": [], "key": "iam/deploy-iam-managed-policy-via-cloudformation-attaches-and-enforces", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetPolicy", "iam:SimulatePrincipalPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_deploy_iam_managed_policy_via_cloudformation_attaches_and_enforces.py", "service": "iam"} {"check_id": "iam.deploy-iam-role-cloudformation-malformed-trust-policy-rejected", "deployments": [], "key": "iam/deploy-iam-role-cloudformation-malformed-trust-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:GetRole"], "path": "behavioral/iam/check_deploy_iam_role_cloudformation_malformed_trust_policy_rejected.py", "service": "iam"} {"check_id": "iam.deploy-iam-role-cloudformation-stack-update-changes-trust-policy", "deployments": [], "key": "iam/deploy-iam-role-cloudformation-stack-update-changes-trust-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetRole"], "path": "behavioral/iam/check_deploy_iam_role_cloudformation_stack_update_changes_trust_policy.py", "service": "iam"} {"check_id": "iam.deploy-iam-role-via-cloudformation-trust-policy-enforced", "deployments": [], "key": "iam/deploy-iam-role-via-cloudformation-trust-policy-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_deploy_iam_role_via_cloudformation_trust_policy_enforced.py", "service": "iam"} {"check_id": "iam.deploy-iam-user-cfn-delete-removes-user-with-login-profile", "deployments": [], "key": "iam/deploy-iam-user-cfn-delete-removes-user-with-login-profile", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateLoginProfile", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:GetLoginProfile", "iam:GetUser"], "path": "behavioral/iam/check_deploy_iam_user_cfn_delete_removes_user_with_login_profile.py", "service": "iam"} {"check_id": "iam.deploy-iam-user-cfn-path-update-preserves-user-id", "deployments": [], "key": "iam/deploy-iam-user-cfn-path-update-preserves-user-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetUser"], "path": "behavioral/iam/check_deploy_iam_user_cfn_path_update_preserves_user_id.py", "service": "iam"} {"check_id": "iam.deploy-iam-user-cloudformation-stack-update-replaces-inline-policy", "deployments": [], "key": "iam/deploy-iam-user-cloudformation-stack-update-replaces-inline-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:GetUserPolicy", "iam:ListUserPolicies"], "path": "behavioral/iam/check_deploy_iam_user_cloudformation_stack_update_replaces_inline_policy.py", "service": "iam"} {"check_id": "iam.deploy-iam-user-with-inline-policy-via-cloudformation", "deployments": [], "key": "iam/deploy-iam-user-with-inline-policy-via-cloudformation", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetUser", "iam:GetUserPolicy"], "path": "behavioral/iam/check_deploy_iam_user_with_inline_policy_via_cloudformation.py", "service": "iam"} {"check_id": "iam.detach-not-attached-policy", "deployments": [], "key": "iam/detach-not-attached-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_detach_not_attached_policy.py", "service": "iam"} {"check_id": "iam.detach-role-policy", "deployments": [], "key": "iam/detach-role-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_detach_role_policy.py", "service": "iam"} {"check_id": "iam.duplicate-create-returns-entityalreadyexists", "deployments": [], "key": "iam/duplicate-create-returns-entityalreadyexists", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccountAlias", "iam:CreateGroup", "iam:CreateInstanceProfile", "iam:CreateLoginProfile", "iam:CreateOpenIDConnectProvider", "iam:CreatePolicy", "iam:CreateRole", "iam:CreateSAMLProvider", "iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeleteAccountAlias", "iam:DeleteGroup", "iam:DeleteInstanceProfile", "iam:DeleteLoginProfile", "iam:DeleteOpenIDConnectProvider", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteSAMLProvider", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:GetGroup", "iam:GetInstanceProfile", "iam:GetLoginProfile", "iam:GetOpenIDConnectProvider", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:GetUser", "iam:ListAccountAliases", "iam:ListOpenIDConnectProviders", "iam:ListSAMLProviders", "iam:ListVirtualMFADevices"], "path": "behavioral/iam/check_duplicate_create_returns_entityalreadyexists.py", "service": "iam"} {"check_id": "iam.duplicate-role-name-across-regional-clients-rejected", "deployments": [], "key": "iam/duplicate-role-name-across-regional-clients-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_duplicate_role_name_across_regional_clients_rejected.py", "service": "iam"} {"check_id": "iam.duplicate-upload-returns-specific-duplicate-errors", "deployments": [], "key": "iam/duplicate-upload-returns-specific-duplicate-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteServerCertificate", "iam:DeleteSigningCertificate", "iam:DeleteUser", "iam:GetServerCertificate", "iam:ListSSHPublicKeys", "iam:ListSigningCertificates", "iam:UploadSSHPublicKey", "iam:UploadServerCertificate", "iam:UploadSigningCertificate"], "path": "behavioral/iam/check_duplicate_upload_returns_specific_duplicate_errors.py", "service": "iam"} {"check_id": "iam.e2e-oidc-add-client-id-to-deleted-provider-rejected", "deployments": [], "key": "iam/e2e-oidc-add-client-id-to-deleted-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddClientIDToOpenIDConnectProvider", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider"], "path": "behavioral/iam/check_e2e_oidc_add_client_id_to_deleted_provider_rejected.py", "service": "iam"} {"check_id": "iam.e2e-oidc-client-id-federation-workflow", "deployments": [], "key": "iam/e2e-oidc-client-id-federation-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddClientIDToOpenIDConnectProvider", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:RemoveClientIDFromOpenIDConnectProvider", "iam:UpdateOpenIDConnectProviderThumbprint"], "path": "behavioral/iam/check_e2e_oidc_client_id_federation_workflow.py", "service": "iam"} {"check_id": "iam.e2e-oidc-invalid-url-scheme-rejected", "deployments": [], "key": "iam/e2e-oidc-invalid-url-scheme-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_e2e_oidc_invalid_url_scheme_rejected.py", "service": "iam"} {"check_id": "iam.e2e-saml-provider-role-trust-federation-flow", "deployments": [], "key": "iam/e2e-saml-provider-role-trust-federation-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetSAMLProvider", "iam:ListAttachedRolePolicies", "iam:UpdateSAMLProvider"], "path": "behavioral/iam/check_e2e_saml_provider_role_trust_federation_flow.py", "service": "iam"} {"check_id": "iam.e2e-service-role-setup", "deployments": [], "key": "iam/e2e-service-role-setup", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetPolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListPolicies", "iam:ListRoles", "iam:UpdateRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_e2e_service_role_setup.py", "service": "iam"} {"check_id": "iam.enable-mfa-device-already-enrolled-rejected", "deployments": [], "key": "iam/enable-mfa-device-already-enrolled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ListUsers"], "path": "behavioral/iam/check_enable_mfa_device_already_enrolled_rejected.py", "service": "iam"} {"check_id": "iam.enable-mfa-device-wrong-code-rejected", "deployments": [], "key": "iam/enable-mfa-device-wrong-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListVirtualMFADevices"], "path": "behavioral/iam/check_enable_mfa_device_wrong_code_rejected.py", "service": "iam"} {"check_id": "iam.entity-name-length-and-charset-rejected", "deployments": [], "key": "iam/entity-name-length-and-charset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteGroup", "iam:DeletePolicy", "iam:DeleteUser", "iam:GetGroup", "iam:GetUser", "iam:ListUsers"], "path": "behavioral/iam/check_entity_name_length_and_charset_rejected.py", "service": "iam"} {"check_id": "iam.entity-temporarily-unmodifiable-enforced", "deployments": [], "key": "iam/entity-temporarily-unmodifiable-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:ChangePassword", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeactivateMFADevice", "iam:DeleteAccessKey", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:EnableMFADevice", "iam:GetUser", "iam:PutUserPolicy", "iam:UpdateLoginProfile", "iam:UpdateUser"], "path": "behavioral/iam/check_entity_temporarily_unmodifiable_enforced.py", "service": "iam"} {"check_id": "iam.explicit-deny-blocks-a-real-signed-call-and-is-scoped", "deployments": [], "key": "iam/explicit-deny-blocks-a-real-signed-call-and-is-scoped", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_explicit_deny_blocks_a_real_signed_call_and_is_scoped.py", "service": "iam"} {"check_id": "iam.generate-credential-report", "deployments": [], "key": "iam/generate-credential-report", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GenerateCredentialReport", "iam:GetCredentialReport", "iam:ListAccessKeys", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_generate_credential_report.py", "service": "iam"} {"check_id": "iam.generate-service-last-accessed-details", "deployments": [], "key": "iam/generate-service-last-accessed-details", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GenerateServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetails", "iam:GetUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_generate_service_last_accessed_details.py", "service": "iam"} {"check_id": "iam.get-account-authorization-details", "deployments": [], "key": "iam/get-account-authorization-details", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetAccountAuthorizationDetails", "iam:ListAccessKeys"], "path": "behavioral/iam/check_get_account_authorization_details.py", "service": "iam"} {"check_id": "iam.get-account-properties", "deployments": [], "key": "iam/get-account-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetAccountProperties", "iam:ListAccessKeys"], "path": "behavioral/iam/check_get_account_properties.py", "service": "iam"} {"check_id": "iam.get-account-summary", "deployments": [], "key": "iam/get-account-summary", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetAccountSummary", "iam:ListAccessKeys", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_account_summary.py", "service": "iam"} {"check_id": "iam.get-aws-managed-policy-metadata-and-default-version", "deployments": [], "key": "iam/get-aws-managed-policy-metadata-and-default-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GetPolicy", "iam:GetPolicyVersion", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_aws_managed_policy_metadata_and_default_version.py", "service": "iam"} {"check_id": "iam.get-context-keys-for-custom-policy", "deployments": [], "key": "iam/get-context-keys-for-custom-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GetContextKeysForCustomPolicy"], "path": "behavioral/iam/check_get_context_keys_for_custom_policy.py", "service": "iam"} {"check_id": "iam.get-context-keys-for-principal-policy", "deployments": [], "key": "iam/get-context-keys-for-principal-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetContextKeysForPrincipalPolicy", "iam:GetUser", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_context_keys_for_principal_policy.py", "service": "iam"} {"check_id": "iam.get-credential-report", "deployments": [], "key": "iam/get-credential-report", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GenerateCredentialReport", "iam:GetCredentialReport", "iam:ListAccessKeys", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_credential_report.py", "service": "iam"} {"check_id": "iam.get-group-lists-members", "deployments": [], "key": "iam/get-group-lists-members", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:GetGroup", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_get_group_lists_members.py", "service": "iam"} {"check_id": "iam.get-human-readable-summary", "deployments": [], "key": "iam/get-human-readable-summary", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetHumanReadableSummary", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_human_readable_summary.py", "service": "iam"} {"check_id": "iam.get-human-readable-summary-contract", "deployments": [], "key": "iam/get-human-readable-summary-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetHumanReadableSummary", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_human_readable_summary_contract.py", "service": "iam"} {"check_id": "iam.get-instance-profile-contract", "deployments": [], "key": "iam/get-instance-profile-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile"], "path": "behavioral/iam/check_get_instance_profile_contract.py", "service": "iam"} {"check_id": "iam.get-nonexistent-entity-returns-nosuchentity", "deployments": [], "key": "iam/get-nonexistent-entity-returns-nosuchentity", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetGroup", "iam:GetInstanceProfile", "iam:GetLoginProfile", "iam:GetMFADevice", "iam:GetOpenIDConnectProvider", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:GetSAMLProvider", "iam:GetSSHPublicKey", "iam:GetServerCertificate", "iam:GetUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_nonexistent_entity_returns_nosuchentity.py", "service": "iam"} {"check_id": "iam.get-nonexistent-inline-policy-returns-nosuchentity", "deployments": [], "key": "iam/get-nonexistent-inline-policy-returns-nosuchentity", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccountPasswordPolicy", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetAccountPasswordPolicy", "iam:GetGroupPolicy", "iam:GetRolePolicy", "iam:GetUserPolicy", "iam:PutGroupPolicy", "iam:PutRolePolicy", "iam:PutUserPolicy", "iam:UpdateAccountPasswordPolicy"], "path": "behavioral/iam/check_get_nonexistent_inline_policy_returns_nosuchentity.py", "service": "iam"} {"check_id": "iam.get-nonexistent-role", "deployments": [], "key": "iam/get-nonexistent-role", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_get_nonexistent_role.py", "service": "iam"} {"check_id": "iam.get-nonexistent-user", "deployments": [], "key": "iam/get-nonexistent-user", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser"], "path": "behavioral/iam/check_get_nonexistent_user.py", "service": "iam"} {"check_id": "iam.get-open-id-connect-provider-contract", "deployments": [], "key": "iam/get-open-id-connect-provider-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider"], "path": "behavioral/iam/check_get_open_id_connect_provider_contract.py", "service": "iam"} {"check_id": "iam.get-outbound-web-identity-federation-info", "deployments": [], "key": "iam/get-outbound-web-identity-federation-info", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "iam:ListAccessKeys", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_outbound_web_identity_federation_info.py", "service": "iam"} {"check_id": "iam.get-outbound-web-identity-federation-info-contract", "deployments": [], "key": "iam/get-outbound-web-identity-federation-info-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo"], "path": "behavioral/iam/check_get_outbound_web_identity_federation_info_contract.py", "service": "iam"} {"check_id": "iam.get-policy-returns-tags-list-policies-omits-them", "deployments": [], "key": "iam/get-policy-returns-tags-list-policies-omits-them", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:ListPolicies"], "path": "behavioral/iam/check_get_policy_returns_tags_list_policies_omits_them.py", "service": "iam"} {"check_id": "iam.get-policy-version-document", "deployments": [], "key": "iam/get-policy-version-document", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicyVersion"], "path": "behavioral/iam/check_get_policy_version_document.py", "service": "iam"} {"check_id": "iam.get-role-policy-contract", "deployments": [], "key": "iam/get-role-policy-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/iam/check_get_role_policy_contract.py", "service": "iam"} {"check_id": "iam.get-role-returns-tags-list-roles-omits-them", "deployments": [], "key": "iam/get-role-returns-tags-list-roles-omits-them", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:ListRoles"], "path": "behavioral/iam/check_get_role_returns_tags_list_roles_omits_them.py", "service": "iam"} {"check_id": "iam.get-role-template-version", "deployments": [], "key": "iam/get-role-template-version", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:GetRoleTemplateVersion"], "path": "behavioral/iam/check_get_role_template_version.py", "service": "iam"} {"check_id": "iam.get-role-template-version-contract", "deployments": [], "key": "iam/get-role-template-version-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:GetRoleTemplateVersion", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_role_template_version_contract.py", "service": "iam"} {"check_id": "iam.get-service-last-accessed-details", "deployments": [], "key": "iam/get-service-last-accessed-details", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:GenerateServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetails", "iam:GetUser", "iam:ListAccessKeys", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_get_service_last_accessed_details.py", "service": "iam"} {"check_id": "iam.get-service-last-accessed-details-contract", "deployments": [], "key": "iam/get-service-last-accessed-details-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GenerateServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetails"], "path": "behavioral/iam/check_get_service_last_accessed_details_contract.py", "service": "iam"} {"check_id": "iam.get-service-last-accessed-details-with-entities", "deployments": [], "key": "iam/get-service-last-accessed-details-with-entities", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateUser", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:GenerateServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetailsWithEntities", "iam:GetUser"], "path": "behavioral/iam/check_get_service_last_accessed_details_with_entities.py", "service": "iam"} {"check_id": "iam.get-service-last-accessed-details-with-entities-contract", "deployments": [], "key": "iam/get-service-last-accessed-details-with-entities-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GenerateServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetailsWithEntities"], "path": "behavioral/iam/check_get_service_last_accessed_details_with_entities_contract.py", "service": "iam"} {"check_id": "iam.get-ssh-public-key-unrecognized-encoding-rejected", "deployments": [], "key": "iam/get-ssh-public-key-unrecognized-encoding-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:GetSSHPublicKey", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_get_ssh_public_key_unrecognized_encoding_rejected.py", "service": "iam"} {"check_id": "iam.get-user-policy-contract", "deployments": [], "key": "iam/get-user-policy-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/iam/check_get_user_policy_contract.py", "service": "iam"} {"check_id": "iam.global-role-visible-from-every-regional-client", "deployments": [], "key": "iam/global-role-visible-from-every-regional-client", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_global_role_visible_from_every_regional_client.py", "service": "iam"} {"check_id": "iam.group-inline-policy-lifecycle", "deployments": [], "key": "iam/group-inline-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:GetGroupPolicy", "iam:ListGroupPolicies", "iam:PutGroupPolicy"], "path": "behavioral/iam/check_group_inline_policy_lifecycle.py", "service": "iam"} {"check_id": "iam.group-lifecycle-crud", "deployments": [], "key": "iam/group-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:GetGroup", "iam:ListGroups", "iam:UpdateGroup"], "path": "behavioral/iam/check_group_lifecycle_crud.py", "service": "iam"} {"check_id": "iam.group-membership-authorizes-a-real-signed-call", "deployments": [], "key": "iam/group-membership-authorizes-a-real-signed-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateAccessKey", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:DeleteUser", "iam:GetGroup", "iam:GetUser", "iam:PutGroupPolicy", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_group_membership_authorizes_a_real_signed_call.py", "service": "iam"} {"check_id": "iam.group-policy-explicit-deny-overrides-the-users-own-allow", "deployments": [], "key": "iam/group-policy-explicit-deny-overrides-the-users-own-allow", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateAccessKey", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetGroup", "iam:GetGroupPolicy", "iam:GetUser", "iam:ListGroupsForUser", "iam:ListUserTags", "iam:PutGroupPolicy", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_group_policy_explicit_deny_overrides_the_users_own_allow.py", "service": "iam"} {"check_id": "iam.human-readable-summary-reflects-policy", "deployments": [], "key": "iam/human-readable-summary-reflects-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetHumanReadableSummary"], "path": "behavioral/iam/check_human_readable_summary_reflects_policy.py", "service": "iam"} {"check_id": "iam.human-readable-summary-unknown-entity-rejected", "deployments": [], "key": "iam/human-readable-summary-unknown-entity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetHumanReadableSummary", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_human_readable_summary_unknown_entity_rejected.py", "service": "iam"} {"check_id": "iam.iam-access-key-crud", "deployments": [], "key": "iam/iam-access-key-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetAccessKeyLastUsed", "iam:ListAccessKeys", "iam:UpdateAccessKey", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_iam_access_key_crud.py", "service": "iam"} {"check_id": "iam.iam-bound-deep-iam-3-group-inline-policy-over-5120-significant-chars-rejected", "deployments": [], "key": "iam/iam-bound-deep-iam-3-group-inline-policy-over-5120-significant-chars-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:GetGroupPolicy", "iam:ListGroupPolicies", "iam:PutGroupPolicy"], "path": "behavioral/iam/check_iam_bound_deep_iam_3_group_inline_policy_over_5120_significant_chars_rejected.py", "service": "iam"} {"check_id": "iam.iam-bound-deep-iam-3-list-users-pagination-mutation-ahead-of-cursor-no-duplicate-no-lost-survivor", "deployments": [], "key": "iam/iam-bound-deep-iam-3-list-users-pagination-mutation-ahead-of-cursor-no-duplicate-no-lost-survivor", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUsers"], "path": "behavioral/iam/check_iam_bound_deep_iam_3_list_users_pagination_mutation_ahead_of_cursor_no_duplicate_no_lost_survivor.py", "service": "iam"} {"check_id": "iam.iam-bound-deep-iam-3-managed-policy-create-over-6144-significant-chars-rejected", "deployments": [], "key": "iam/iam-bound-deep-iam-3-managed-policy-create-over-6144-significant-chars-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicies", "iam:ListPolicyVersions"], "path": "behavioral/iam/check_iam_bound_deep_iam_3_managed_policy_create_over_6144_significant_chars_rejected.py", "service": "iam"} {"check_id": "iam.iam-bound-deep-iam-3-managed-policy-version-over-6144-significant-chars-rejected", "deployments": [], "key": "iam/iam-bound-deep-iam-3-managed-policy-version-over-6144-significant-chars-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicyVersions"], "path": "behavioral/iam/check_iam_bound_deep_iam_3_managed_policy_version_over_6144_significant_chars_rejected.py", "service": "iam"} {"check_id": "iam.iam-bound-deep-iam-3-policy-size-whitespace-inside-strings-excluded-filled-rejected", "deployments": [], "key": "iam/iam-bound-deep-iam-3-policy-size-whitespace-inside-strings-excluded-filled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreateUser", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetPolicyVersion", "iam:GetUserPolicy", "iam:ListPolicies", "iam:ListPolicyVersions", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_iam_bound_deep_iam_3_policy_size_whitespace_inside_strings_excluded_filled_rejected.py", "service": "iam"} {"check_id": "iam.iam-bound-deep-iam-3-role-inline-policy-over-10240-significant-chars-rejected", "deployments": [], "key": "iam/iam-bound-deep-iam-3-role-inline-policy-over-10240-significant-chars-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_iam_bound_deep_iam_3_role_inline_policy_over_10240_significant_chars_rejected.py", "service": "iam"} {"check_id": "iam.iam-bound-deep-iam-3-user-inline-policy-aggregate-over-2048-rejected", "deployments": [], "key": "iam/iam-bound-deep-iam-3-user-inline-policy-aggregate-over-2048-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUserPolicy", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_iam_bound_deep_iam_3_user_inline_policy_aggregate_over_2048_rejected.py", "service": "iam"} {"check_id": "iam.iam-bound-deep-iam-3-user-inline-policy-over-2048-significant-chars-rejected", "deployments": [], "key": "iam/iam-bound-deep-iam-3-user-inline-policy-over-2048-significant-chars-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUserPolicy", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_iam_bound_deep_iam_3_user_inline_policy_over_2048_significant_chars_rejected.py", "service": "iam"} {"check_id": "iam.iam-cred-password-policy-violation-and-role-session-change-password-rejected", "deployments": [], "key": "iam/iam-cred-password-policy-violation-and-role-session-change-password-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:ChangePassword", "iam:CreateAccessKey", "iam:CreateLoginProfile", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteLoginProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetAccountPasswordPolicy", "iam:GetLoginProfile", "iam:PutRolePolicy", "iam:PutUserPolicy", "iam:UpdateAccountPasswordPolicy", "iam:UpdateLoginProfile", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_iam_cred_password_policy_violation_and_role_session_change_password_rejected.py", "service": "iam"} {"check_id": "iam.iam-entity-names-case-insensitive-unique", "deployments": [], "key": "iam/iam-entity-names-case-insensitive-unique", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:CreateInstanceProfile", "iam:CreatePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteInstanceProfile", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteUser", "iam:GetGroup", "iam:GetInstanceProfile", "iam:GetPolicy", "iam:GetRole", "iam:GetUser", "iam:ListGroups", "iam:ListInstanceProfiles", "iam:ListPolicies", "iam:ListRoles", "iam:ListUsers"], "path": "behavioral/iam/check_iam_entity_names_case_insensitive_unique.py", "service": "iam"} {"check_id": "iam.iam-eval-deep-iam-1-date-greater-than-past-instant-allows", "deployments": [], "key": "iam/iam-eval-deep-iam-1-date-greater-than-past-instant-allows", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListUserTags", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_iam_eval_deep_iam_1_date_greater_than_past_instant_allows.py", "service": "iam"} {"check_id": "iam.iam-eval-deep-iam-1-date-less-than-deadline-passes-then-denied", "deployments": [], "key": "iam/iam-eval-deep-iam-1-date-less-than-deadline-passes-then-denied", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListUserTags", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_iam_eval_deep_iam_1_date_less_than_deadline_passes_then_denied.py", "service": "iam"} {"check_id": "iam.iam-eval-deep-iam-1-denial-reason-messages-are-distinct", "deployments": [], "key": "iam/iam-eval-deep-iam-1-denial-reason-messages-are-distinct", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:GetUser", "iam:PutRolePolicy", "iam:PutUserPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_iam_eval_deep_iam_1_denial_reason_messages_are_distinct.py", "service": "iam"} {"check_id": "iam.iam-eval-deep-iam-1-omitted-request-tag-operators-diverge-denied", "deployments": [], "key": "iam/iam-eval-deep-iam-1-omitted-request-tag-operators-diverge-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListUserTags", "iam:PutUserPolicy", "iam:TagUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_iam_eval_deep_iam_1_omitted_request_tag_operators_diverge_denied.py", "service": "iam"} {"check_id": "iam.iam-eval-deep-iam-1-tag-keys-set-operator-swap-inverts-denied", "deployments": [], "key": "iam/iam-eval-deep-iam-1-tag-keys-set-operator-swap-inverts-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserTags", "iam:PutUserPolicy", "iam:TagUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_iam_eval_deep_iam_1_tag_keys_set_operator_swap_inverts_denied.py", "service": "iam"} {"check_id": "iam.iam-pass-role-to-service", "deployments": [], "key": "iam/iam-pass-role-to-service", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/iam/check_iam_pass_role_to_service.py", "service": "iam"} {"check_id": "iam.iam-simulate-principal-policy", "deployments": [], "key": "iam/iam-simulate-principal-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreatePolicy", "iam:CreateUser", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_iam_simulate_principal_policy.py", "service": "iam"} {"check_id": "iam.inactive-access-key-is-refused-while-its-active-twin-succeeds", "deployments": [], "key": "iam/inactive-access-key-is-refused-while-its-active-twin-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:PutUserPolicy", "iam:UpdateAccessKey"], "path": "behavioral/iam/check_inactive_access_key_is_refused_while_its_active_twin_succeeds.py", "service": "iam"} {"check_id": "iam.inline-policy-put-preserves-document-bytes-and-rejects-malformed-shapes", "deployments": [], "key": "iam/inline-policy-put-preserves-document-bytes-and-rejects-malformed-shapes", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:CreateRole", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteRole", "iam:DeleteUser"], "path": "behavioral/iam/check_inline_policy_put_preserves_document_bytes_and_rejects_malformed_shapes.py", "service": "iam"} {"check_id": "iam.instance-profile-carries-its-role-arn-path-and-trust-until-removed", "deployments": [], "key": "iam/instance-profile-carries-its-role-arn-path-and-trust-until-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:GetRole", "iam:ListInstanceProfilesForRole", "iam:RemoveRoleFromInstanceProfile", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_instance_profile_carries_its_role_arn_path_and_trust_until_removed.py", "service": "iam"} {"check_id": "iam.instance-profile-delete-with-role-conflict-rejected", "deployments": [], "key": "iam/instance-profile-delete-with-role-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_instance_profile_delete_with_role_conflict_rejected.py", "service": "iam"} {"check_id": "iam.instance-profile-single-role-constraint", "deployments": [], "key": "iam/instance-profile-single-role-constraint", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_instance_profile_single_role_constraint.py", "service": "iam"} {"check_id": "iam.instance-profile-tag-lifecycle", "deployments": [], "key": "iam/instance-profile-tag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile", "iam:ListInstanceProfileTags", "iam:TagInstanceProfile", "iam:UntagInstanceProfile"], "path": "behavioral/iam/check_instance_profile_tag_lifecycle.py", "service": "iam"} {"check_id": "iam.instance-profile-tags-lifecycle", "deployments": [], "key": "iam/instance-profile-tags-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:ListInstanceProfileTags", "iam:TagInstanceProfile", "iam:UntagInstanceProfile"], "path": "behavioral/iam/check_instance_profile_tags_lifecycle.py", "service": "iam"} {"check_id": "iam.invalid-mfa-authentication-code-rejected", "deployments": [], "key": "iam/invalid-mfa-authentication-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice"], "path": "behavioral/iam/check_invalid_mfa_authentication_code_rejected.py", "service": "iam"} {"check_id": "iam.invalid-policy-arn-on-attach-detach-rejected", "deployments": [], "key": "iam/invalid-policy-arn-on-attach-detach-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachGroupPolicy", "iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:CreateGroup", "iam:CreateRole", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachGroupPolicy", "iam:DetachRolePolicy", "iam:DetachUserPolicy", "iam:ListAttachedGroupPolicies", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies"], "path": "behavioral/iam/check_invalid_policy_arn_on_attach_detach_rejected.py", "service": "iam"} {"check_id": "iam.limit-exceeded-on-add-and-attach-operations", "deployments": [], "key": "iam/limit-exceeded-on-add-and-attach-operations", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:AddUserToGroup", "iam:CreateAccessKey", "iam:CreateGroup", "iam:CreateInstanceProfile", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteGroup", "iam:DeleteInstanceProfile", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteRole", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:GetInstanceProfile", "iam:ListAccessKeys", "iam:ListGroupsForUser", "iam:ListPolicyVersions", "iam:ListSSHPublicKeys", "iam:RemoveRoleFromInstanceProfile", "iam:RemoveUserFromGroup", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_limit_exceeded_on_add_and_attach_operations.py", "service": "iam"} {"check_id": "iam.list-account-aliases-contract", "deployments": [], "key": "iam/list-account-aliases-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccountAlias", "iam:DeleteAccountAlias", "iam:ListAccountAliases"], "path": "behavioral/iam/check_list_account_aliases_contract.py", "service": "iam"} {"check_id": "iam.list-attached-role-policies-denied-without-permission", "deployments": [], "key": "iam/list-attached-role-policies-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_list_attached_role_policies_denied_without_permission.py", "service": "iam"} {"check_id": "iam.list-aws-managed-policies-includes-well-known-policies", "deployments": [], "key": "iam/list-aws-managed-policies-includes-well-known-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:ListPolicies"], "path": "behavioral/iam/check_list_aws_managed_policies_includes_well_known_policies.py", "service": "iam"} {"check_id": "iam.list-groups-includes-created", "deployments": [], "key": "iam/list-groups-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:GetGroup", "iam:ListGroups"], "path": "behavioral/iam/check_list_groups_includes_created.py", "service": "iam"} {"check_id": "iam.list-instance-profiles-for-role", "deployments": [], "key": "iam/list-instance-profiles-for-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:ListInstanceProfilesForRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_list_instance_profiles_for_role.py", "service": "iam"} {"check_id": "iam.list-organizations-features", "deployments": [], "key": "iam/list-organizations-features", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys", "iam:ListOrganizationsFeatures", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_list_organizations_features.py", "service": "iam"} {"check_id": "iam.list-policies-granting-service-access", "deployments": [], "key": "iam/list-policies-granting-service-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListPoliciesGrantingServiceAccess", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_list_policies_granting_service_access.py", "service": "iam"} {"check_id": "iam.list-policies-includes-created", "deployments": [], "key": "iam/list-policies-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:ListPolicies"], "path": "behavioral/iam/check_list_policies_includes_created.py", "service": "iam"} {"check_id": "iam.list-role-inline-policies", "deployments": [], "key": "iam/list-role-inline-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_list_role_inline_policies.py", "service": "iam"} {"check_id": "iam.list-roles-by-path-prefix", "deployments": [], "key": "iam/list-roles-by-path-prefix", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListRoles"], "path": "behavioral/iam/check_list_roles_by_path_prefix.py", "service": "iam"} {"check_id": "iam.list-roles-includes-created", "deployments": [], "key": "iam/list-roles-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:ListRoles"], "path": "behavioral/iam/check_list_roles_includes_created.py", "service": "iam"} {"check_id": "iam.list-ssh-public-keys-stable-upload-order", "deployments": [], "key": "iam/list-ssh-public-keys-stable-upload-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:ListSSHPublicKeys", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_list_ssh_public_keys_stable_upload_order.py", "service": "iam"} {"check_id": "iam.list-user-inline-policies", "deployments": [], "key": "iam/list-user-inline-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_list_user_inline_policies.py", "service": "iam"} {"check_id": "iam.list-users-by-path-prefix", "deployments": [], "key": "iam/list-users-by-path-prefix", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUsers"], "path": "behavioral/iam/check_list_users_by_path_prefix.py", "service": "iam"} {"check_id": "iam.list-users-includes-created", "deployments": [], "key": "iam/list-users-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUsers"], "path": "behavioral/iam/check_list_users_includes_created.py", "service": "iam"} {"check_id": "iam.op-contract-list-users", "deployments": [], "key": "iam/op-contract-list-users", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUsers"], "path": "behavioral/iam/check_list_users_pagination_and_path_filter.py", "service": "iam"} {"check_id": "iam.login-profile-create-race-single-winner", "deployments": [], "key": "iam/login-profile-create-race-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateLoginProfile", "iam:CreateUser", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:GetLoginProfile"], "path": "behavioral/iam/check_login_profile_create_race_single_winner.py", "service": "iam"} {"check_id": "iam.login-profile-lifecycle", "deployments": [], "key": "iam/login-profile-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateLoginProfile", "iam:CreateUser", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:GetLoginProfile", "iam:UpdateLoginProfile"], "path": "behavioral/iam/check_login_profile_lifecycle.py", "service": "iam"} {"check_id": "iam.malformed-json-policy", "deployments": [], "key": "iam/malformed-json-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_malformed_json_policy.py", "service": "iam"} {"check_id": "iam.malformed-policy-document-rejected", "deployments": [], "key": "iam/malformed-policy-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccountPasswordPolicy", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetAccountPasswordPolicy", "iam:GetGroupPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:GetUserPolicy", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutGroupPolicy", "iam:PutRolePolicy", "iam:PutUserPolicy", "iam:UpdateAccountPasswordPolicy", "iam:UpdateAssumeRolePolicy"], "path": "behavioral/iam/check_malformed_policy_document_rejected.py", "service": "iam"} {"check_id": "iam.mfa-device-delete-while-enabled-rejected", "deployments": [], "key": "iam/mfa-device-delete-while-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListVirtualMFADevices"], "path": "behavioral/iam/check_mfa_device_delete_while_enabled_rejected.py", "service": "iam"} {"check_id": "iam.mfa-device-full-lifecycle", "deployments": [], "key": "iam/mfa-device-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:GetMFADevice", "iam:ListMFADevices", "iam:ListUsers", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice"], "path": "behavioral/iam/check_mfa_device_full_lifecycle.py", "service": "iam"} {"check_id": "iam.mfa-device-resync-code-window-enforced", "deployments": [], "key": "iam/mfa-device-resync-code-window-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice"], "path": "behavioral/iam/check_mfa_device_resync_code_window_enforced.py", "service": "iam"} {"check_id": "iam.mfa-device-tag-lifecycle", "deployments": [], "key": "iam/mfa-device-tag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListMFADeviceTags", "iam:TagMFADevice", "iam:UntagMFADevice"], "path": "behavioral/iam/check_mfa_device_tag_lifecycle.py", "service": "iam"} {"check_id": "iam.mfa-device-tag-unicode-value-preserved", "deployments": [], "key": "iam/mfa-device-tag-unicode-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListMFADeviceTags", "iam:TagMFADevice"], "path": "behavioral/iam/check_mfa_device_tag_unicode_value_preserved.py", "service": "iam"} {"check_id": "iam.mfa-device-tagging", "deployments": [], "key": "iam/mfa-device-tagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListMFADeviceTags", "iam:TagMFADevice", "iam:UntagMFADevice"], "path": "behavioral/iam/check_mfa_device_tagging.py", "service": "iam"} {"check_id": "iam.mfa-device-tags-lifecycle", "deployments": [], "key": "iam/mfa-device-tags-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListMFADeviceTags", "iam:TagMFADevice", "iam:UntagMFADevice"], "path": "behavioral/iam/check_mfa_device_tags_lifecycle.py", "service": "iam"} {"check_id": "iam.mfa-devices-list-order-stable", "deployments": [], "key": "iam/mfa-devices-list-order-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices"], "path": "behavioral/iam/check_mfa_devices_list_order_stable.py", "service": "iam"} {"check_id": "iam.minted-identifier-prefixes-and-arn-paths", "deployments": [], "key": "iam/minted-identifier-prefixes-and-arn-paths", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateGroup", "iam:CreateInstanceProfile", "iam:CreatePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteGroup", "iam:DeleteInstanceProfile", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteUser", "iam:GetUser", "iam:ListAccessKeys", "iam:UpdateUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_minted_identifier_prefixes_and_arn_paths.py", "service": "iam"} {"check_id": "iam.non-attachable-policy-boundary-rejected", "deployments": [], "key": "iam/non-attachable-policy-boundary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:GetRole", "iam:GetUser", "iam:PutRolePermissionsBoundary", "iam:PutUserPermissionsBoundary"], "path": "behavioral/iam/check_non_attachable_policy_boundary_rejected.py", "service": "iam"} {"check_id": "iam.non-user-caller-must-specify-username-rejected", "deployments": [], "key": "iam/non-user-caller-must-specify-username-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteSigningCertificate", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListSigningCertificates", "iam:PutRolePolicy", "iam:PutUserPolicy", "iam:UploadSigningCertificate", "sts:AssumeRole"], "path": "behavioral/iam/check_non_user_caller_must_specify_username_rejected.py", "service": "iam"} {"check_id": "iam.oidc-provider-add-client-id-limit-exceeded-rejected", "deployments": [], "key": "iam/oidc-provider-add-client-id-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddClientIDToOpenIDConnectProvider", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:RemoveClientIDFromOpenIDConnectProvider"], "path": "behavioral/iam/check_oidc_provider_add_client_id_limit_exceeded_rejected.py", "service": "iam"} {"check_id": "iam.oidc-provider-tag-lifecycle", "deployments": [], "key": "iam/oidc-provider-tag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:ListOpenIDConnectProviderTags", "iam:TagOpenIDConnectProvider", "iam:UntagOpenIDConnectProvider"], "path": "behavioral/iam/check_oidc_provider_tag_lifecycle.py", "service": "iam"} {"check_id": "iam.oidc-provider-tags-lifecycle", "deployments": [], "key": "iam/oidc-provider-tags-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:ListOpenIDConnectProviderTags", "iam:TagOpenIDConnectProvider", "iam:UntagOpenIDConnectProvider"], "path": "behavioral/iam/check_oidc_provider_tags_lifecycle.py", "service": "iam"} {"check_id": "iam.oidc-thumbprint-list-order-round-trip", "deployments": [], "key": "iam/oidc-thumbprint-list-order-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:UpdateOpenIDConnectProviderThumbprint"], "path": "behavioral/iam/check_oidc_thumbprint_list_order_round_trip.py", "service": "iam"} {"check_id": "iam.op-contract-acceptDelegationRequest", "deployments": [], "key": "iam/op-contract-acceptDelegationRequest", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AcceptDelegationRequest", "iam:GetDelegationRequest"], "path": "behavioral/iam/check_op_contract_accept_delegation_request.py", "service": "iam"} {"check_id": "iam.op-contract-acquireRole", "deployments": [], "key": "iam/op-contract-acquireRole", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AcquireRole", "iam:GetRole", "iam:ListRoles"], "path": "behavioral/iam/check_op_contract_acquire_role.py", "service": "iam"} {"check_id": "iam.op-contract-add-client-id-to-openid-connect-provider", "deployments": [], "key": "iam/op-contract-add-client-id-to-openid-connect-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:AddClientIDToOpenIDConnectProvider", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_add_client_id_to_openid_connect_provider.py", "service": "iam"} {"check_id": "iam.op-contract-add-role-to-instance-profile", "deployments": [], "key": "iam/op-contract-add-role-to-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_op_contract_add_role_to_instance_profile.py", "service": "iam"} {"check_id": "iam.op-contract-add-user-to-group", "deployments": [], "key": "iam/op-contract-add-user-to-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:ListGroupsForUser", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_op_contract_add_user_to_group.py", "service": "iam"} {"check_id": "iam.op-contract-associateDelegationRequest", "deployments": [], "key": "iam/op-contract-associateDelegationRequest", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AssociateDelegationRequest", "iam:GetDelegationRequest", "iam:ListDelegationRequests"], "path": "behavioral/iam/check_op_contract_associate_delegation_request.py", "service": "iam"} {"check_id": "iam.op-contract-attach-group-policy", "deployments": [], "key": "iam/op-contract-attach-group-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachGroupPolicy", "iam:CreateGroup", "iam:DeleteGroup", "iam:DetachGroupPolicy", "iam:ListAttachedGroupPolicies"], "path": "behavioral/iam/check_op_contract_attach_group_policy.py", "service": "iam"} {"check_id": "iam.op-contract-attach-role-policy", "deployments": [], "key": "iam/op-contract-attach-role-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_op_contract_attach_role_policy.py", "service": "iam"} {"check_id": "iam.op-contract-attach-user-policy", "deployments": [], "key": "iam/op-contract-attach-user-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateUser", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:ListAttachedUserPolicies"], "path": "behavioral/iam/check_op_contract_attach_user_policy.py", "service": "iam"} {"check_id": "iam.op-contract-create-access-key", "deployments": [], "key": "iam/op-contract-create-access-key", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys"], "path": "behavioral/iam/check_op_contract_create_access_key.py", "service": "iam"} {"check_id": "iam.op-contract-create-account-alias", "deployments": [], "key": "iam/op-contract-create-account-alias", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccountAlias", "iam:DeleteAccountAlias", "iam:ListAccountAliases"], "path": "behavioral/iam/check_op_contract_create_account_alias.py", "service": "iam"} {"check_id": "iam.op-contract-create-group", "deployments": [], "key": "iam/op-contract-create-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:GetGroup"], "path": "behavioral/iam/check_op_contract_create_group.py", "service": "iam"} {"check_id": "iam.op-contract-create-instance-profile", "deployments": [], "key": "iam/op-contract-create-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile"], "path": "behavioral/iam/check_op_contract_create_instance_profile.py", "service": "iam"} {"check_id": "iam.op-contract-create-openid-connect-provider", "deployments": [], "key": "iam/op-contract-create-openid-connect-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider"], "path": "behavioral/iam/check_op_contract_create_openid_connect_provider.py", "service": "iam"} {"check_id": "iam.op-contract-create-policy", "deployments": [], "key": "iam/op-contract-create-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy"], "path": "behavioral/iam/check_op_contract_create_policy.py", "service": "iam"} {"check_id": "iam.op-contract-create-policy-version", "deployments": [], "key": "iam/op-contract-create-policy-version", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:ListPolicyVersions"], "path": "behavioral/iam/check_op_contract_create_policy_version.py", "service": "iam"} {"check_id": "iam.op-contract-create-role", "deployments": [], "key": "iam/op-contract-create-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_op_contract_create_role.py", "service": "iam"} {"check_id": "iam.op-contract-createServiceSpecificCredential", "deployments": [], "key": "iam/op-contract-createServiceSpecificCredential", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:ListServiceSpecificCredentials"], "path": "behavioral/iam/check_op_contract_create_service_specific_credential.py", "service": "iam"} {"check_id": "iam.op-contract-create-user", "deployments": [], "key": "iam/op-contract-create-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser"], "path": "behavioral/iam/check_op_contract_create_user.py", "service": "iam"} {"check_id": "iam.op-contract-deleteAccessKey", "deployments": [], "key": "iam/op-contract-deleteAccessKey", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys"], "path": "behavioral/iam/check_op_contract_delete_access_key.py", "service": "iam"} {"check_id": "iam.op-contract-deleteAccountAlias", "deployments": [], "key": "iam/op-contract-deleteAccountAlias", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccountAlias", "iam:DeleteAccountAlias", "iam:ListAccountAliases"], "path": "behavioral/iam/check_op_contract_delete_account_alias.py", "service": "iam"} {"check_id": "iam.op-contract-deleteGroup", "deployments": [], "key": "iam/op-contract-deleteGroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachGroupPolicy", "iam:CreateGroup", "iam:DeleteGroup", "iam:DetachGroupPolicy", "iam:GetGroup", "iam:ListAttachedGroupPolicies"], "path": "behavioral/iam/check_op_contract_delete_group.py", "service": "iam"} {"check_id": "iam.op-contract-deleteGroupPolicy", "deployments": [], "key": "iam/op-contract-deleteGroupPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:GetGroupPolicy", "iam:ListGroupPolicies", "iam:PutGroupPolicy"], "path": "behavioral/iam/check_op_contract_delete_group_policy.py", "service": "iam"} {"check_id": "iam.op-contract-deleteInstanceProfile", "deployments": [], "key": "iam/op-contract-deleteInstanceProfile", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_op_contract_delete_instance_profile.py", "service": "iam"} {"check_id": "iam.op-contract-deleteOpenIDConnectProvider", "deployments": [], "key": "iam/op-contract-deleteOpenIDConnectProvider", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider"], "path": "behavioral/iam/check_op_contract_delete_open_idconnect_provider.py", "service": "iam"} {"check_id": "iam.op-contract-deletePolicy", "deployments": [], "key": "iam/op-contract-deletePolicy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetPolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_op_contract_delete_policy.py", "service": "iam"} {"check_id": "iam.op-contract-deletePolicyVersion", "deployments": [], "key": "iam/op-contract-deletePolicyVersion", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:ListPolicyVersions", "iam:SetDefaultPolicyVersion"], "path": "behavioral/iam/check_op_contract_delete_policy_version.py", "service": "iam"} {"check_id": "iam.op-contract-deleteRole", "deployments": [], "key": "iam/op-contract-deleteRole", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy"], "path": "behavioral/iam/check_op_contract_delete_role.py", "service": "iam"} {"check_id": "iam.op-contract-deleteRolePermissionsBoundary", "deployments": [], "key": "iam/op-contract-deleteRolePermissionsBoundary", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:GetRole", "iam:PutRolePermissionsBoundary"], "path": "behavioral/iam/check_op_contract_delete_role_permissions_boundary.py", "service": "iam"} {"check_id": "iam.op-contract-deleteRolePolicy", "deployments": [], "key": "iam/op-contract-deleteRolePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_op_contract_delete_role_policy.py", "service": "iam"} {"check_id": "iam.op-contract-deleteServiceSpecificCredential", "deployments": [], "key": "iam/op-contract-deleteServiceSpecificCredential", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:ListServiceSpecificCredentials"], "path": "behavioral/iam/check_op_contract_delete_service_specific_credential.py", "service": "iam"} {"check_id": "iam.op-contract-deleteUser", "deployments": [], "key": "iam/op-contract-deleteUser", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetUser"], "path": "behavioral/iam/check_op_contract_delete_user.py", "service": "iam"} {"check_id": "iam.op-contract-deleteUserPermissionsBoundary", "deployments": [], "key": "iam/op-contract-deleteUserPermissionsBoundary", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:GetUser"], "path": "behavioral/iam/check_op_contract_delete_user_permissions_boundary.py", "service": "iam"} {"check_id": "iam.op-contract-deleteUserPolicy", "deployments": [], "key": "iam/op-contract-deleteUserPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUserPolicy", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_op_contract_delete_user_policy.py", "service": "iam"} {"check_id": "iam.op-contract-detachGroupPolicy", "deployments": [], "key": "iam/op-contract-detachGroupPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachGroupPolicy", "iam:CreateGroup", "iam:DeleteGroup", "iam:DetachGroupPolicy", "iam:ListAttachedGroupPolicies"], "path": "behavioral/iam/check_op_contract_detach_group_policy.py", "service": "iam"} {"check_id": "iam.op-contract-detachRolePolicy", "deployments": [], "key": "iam/op-contract-detachRolePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_op_contract_detach_role_policy.py", "service": "iam"} {"check_id": "iam.op-contract-detachUserPolicy", "deployments": [], "key": "iam/op-contract-detachUserPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateUser", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:ListAttachedUserPolicies"], "path": "behavioral/iam/check_op_contract_detach_user_policy.py", "service": "iam"} {"check_id": "iam.op-contract-disableOutboundWebIdentityFederation", "deployments": [], "key": "iam/op-contract-disableOutboundWebIdentityFederation", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_disable_outbound_web_identity_federation.py", "service": "iam"} {"check_id": "iam.op-contract-enableOutboundWebIdentityFederation", "deployments": [], "key": "iam/op-contract-enableOutboundWebIdentityFederation", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_enable_outbound_web_identity_federation.py", "service": "iam"} {"check_id": "iam.op-contract-generateCredentialReport", "deployments": [], "key": "iam/op-contract-generateCredentialReport", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GenerateCredentialReport", "iam:GetCredentialReport"], "path": "behavioral/iam/check_op_contract_generate_credential_report.py", "service": "iam"} {"check_id": "iam.op-contract-generateOrganizationsAccessReport", "deployments": [], "key": "iam/op-contract-generateOrganizationsAccessReport", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:GenerateOrganizationsAccessReport", "iam:GetOrganizationsAccessReport", "iam:ListRoles", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_generate_organizations_access_report.py", "service": "iam"} {"check_id": "iam.op-contract-generateServiceLastAccessedDetails", "deployments": [], "key": "iam/op-contract-generateServiceLastAccessedDetails", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GenerateServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetails", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_generate_service_last_accessed_details.py", "service": "iam"} {"check_id": "iam.op-contract-getAccessKeyLastUsed", "deployments": [], "key": "iam/op-contract-getAccessKeyLastUsed", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetAccessKeyLastUsed", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_get_access_key_last_used.py", "service": "iam"} {"check_id": "iam.op-contract-getAccountAuthorizationDetails", "deployments": [], "key": "iam/op-contract-getAccountAuthorizationDetails", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetAccountAuthorizationDetails", "iam:PutUserPolicy"], "path": "behavioral/iam/check_op_contract_get_account_authorization_details.py", "service": "iam"} {"check_id": "iam.op-contract-getAccountProperties", "deployments": [], "key": "iam/op-contract-getAccountProperties", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:GetAccountProperties", "iam:PutAccountProperties"], "path": "behavioral/iam/check_op_contract_get_account_properties.py", "service": "iam"} {"check_id": "iam.op-contract-getAccountSummary", "deployments": [], "key": "iam/op-contract-getAccountSummary", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetAccountSummary"], "path": "behavioral/iam/check_op_contract_get_account_summary.py", "service": "iam"} {"check_id": "iam.op-contract-getContextKeysForCustomPolicy", "deployments": [], "key": "iam/op-contract-getContextKeysForCustomPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GetContextKeysForCustomPolicy"], "path": "behavioral/iam/check_op_contract_get_context_keys_for_custom_policy.py", "service": "iam"} {"check_id": "iam.op-contract-getContextKeysForPrincipalPolicy", "deployments": [], "key": "iam/op-contract-getContextKeysForPrincipalPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetContextKeysForPrincipalPolicy", "iam:PutRolePolicy"], "path": "behavioral/iam/check_op_contract_get_context_keys_for_principal_policy.py", "service": "iam"} {"check_id": "iam.op-contract-getCredentialReport", "deployments": [], "key": "iam/op-contract-getCredentialReport", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GenerateCredentialReport", "iam:GetCredentialReport", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_get_credential_report.py", "service": "iam"} {"check_id": "iam.op-contract-getDelegationRequest", "deployments": [], "key": "iam/op-contract-getDelegationRequest", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateDelegationRequest", "iam:GetDelegationRequest", "iam:ListDelegationRequests", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_get_delegation_request.py", "service": "iam"} {"check_id": "iam.op-contract-getGroup", "deployments": [], "key": "iam/op-contract-getGroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:GetGroup", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_op_contract_get_group.py", "service": "iam"} {"check_id": "iam.op-contract-getGroupPolicy", "deployments": [], "key": "iam/op-contract-getGroupPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:GetGroupPolicy", "iam:PutGroupPolicy"], "path": "behavioral/iam/check_op_contract_get_group_policy.py", "service": "iam"} {"check_id": "iam.op-contract-getPolicy", "deployments": [], "key": "iam/op-contract-getPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_get_policy.py", "service": "iam"} {"check_id": "iam.op-contract-getPolicyVersion", "deployments": [], "key": "iam/op-contract-getPolicyVersion", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicyVersion"], "path": "behavioral/iam/check_op_contract_get_policy_version.py", "service": "iam"} {"check_id": "iam.op-contract-listAccessKeys", "deployments": [], "key": "iam/op-contract-listAccessKeys", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys"], "path": "behavioral/iam/check_op_contract_list_access_keys.py", "service": "iam"} {"check_id": "iam.op-contract-listAttachedGroupPolicies", "deployments": [], "key": "iam/op-contract-listAttachedGroupPolicies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachGroupPolicy", "iam:CreateGroup", "iam:DeleteGroup", "iam:DetachGroupPolicy", "iam:ListAttachedGroupPolicies"], "path": "behavioral/iam/check_op_contract_list_attached_group_policies.py", "service": "iam"} {"check_id": "iam.op-contract-list-attached-role-policies-multi-attach-detach", "deployments": [], "key": "iam/op-contract-list-attached-role-policies-multi-attach-detach", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_op_contract_list_attached_role_policies_multi_attach_detach.py", "service": "iam"} {"check_id": "iam.op-contract-list-attached-user-policies-multi-attach-detach", "deployments": [], "key": "iam/op-contract-list-attached-user-policies-multi-attach-detach", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreatePolicy", "iam:CreateUser", "iam:DeletePolicy", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:ListAttachedUserPolicies"], "path": "behavioral/iam/check_op_contract_list_attached_user_policies_multi_attach_detach.py", "service": "iam"} {"check_id": "iam.op-contract-listEntitiesForPolicy-role-and-user", "deployments": [], "key": "iam/op-contract-listEntitiesForPolicy-role-and-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteUser", "iam:DetachRolePolicy", "iam:DetachUserPolicy", "iam:ListEntitiesForPolicy"], "path": "behavioral/iam/check_op_contract_list_entities_for_policy_role_and_user.py", "service": "iam"} {"check_id": "iam.op-contract-list-groups", "deployments": [], "key": "iam/op-contract-list-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:ListGroups"], "path": "behavioral/iam/check_op_contract_list_groups.py", "service": "iam"} {"check_id": "iam.op-contract-listGroupsForUser-two-groups", "deployments": [], "key": "iam/op-contract-listGroupsForUser-two-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:ListGroupsForUser", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_op_contract_list_groups_for_user_two_groups.py", "service": "iam"} {"check_id": "iam.op-contract-listGroups-missing-permission-denied", "deployments": [], "key": "iam/op-contract-listGroups-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListGroups", "iam:ListRoles", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_op_contract_list_groups_missing_permission_denied.py", "service": "iam"} {"check_id": "iam.op-contract-listGroups-path-prefix", "deployments": [], "key": "iam/op-contract-listGroups-path-prefix", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:ListGroups"], "path": "behavioral/iam/check_op_contract_list_groups_path_prefix.py", "service": "iam"} {"check_id": "iam.op-contract-list-instance-profiles", "deployments": [], "key": "iam/op-contract-list-instance-profiles", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:ListInstanceProfiles"], "path": "behavioral/iam/check_op_contract_list_instance_profiles.py", "service": "iam"} {"check_id": "iam.op-contract-list-instance-profiles-for-role", "deployments": [], "key": "iam/op-contract-list-instance-profiles-for-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:ListInstanceProfilesForRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_op_contract_list_instance_profiles_for_role.py", "service": "iam"} {"check_id": "iam.op-contract-listInstanceProfiles-missing-permission-denied", "deployments": [], "key": "iam/op-contract-listInstanceProfiles-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListInstanceProfiles", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_op_contract_list_instance_profiles_missing_permission_denied.py", "service": "iam"} {"check_id": "iam.op-contract-listInstanceProfiles-path-prefix", "deployments": [], "key": "iam/op-contract-listInstanceProfiles-path-prefix", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:ListInstanceProfiles"], "path": "behavioral/iam/check_op_contract_list_instance_profiles_path_prefix.py", "service": "iam"} {"check_id": "iam.op-contract-list-open-id-connect-providers", "deployments": [], "key": "iam/op-contract-list-open-id-connect-providers", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateOpenIDConnectProvider", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteOpenIDConnectProvider", "iam:DeleteUser", "iam:ListOpenIDConnectProviders"], "path": "behavioral/iam/check_op_contract_list_open_id_connect_providers.py", "service": "iam"} {"check_id": "iam.op-contract-listOpenIDConnectProviders-explicit-deny-rejected", "deployments": [], "key": "iam/op-contract-listOpenIDConnectProviders-explicit-deny-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateOpenIDConnectProvider", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteOpenIDConnectProvider", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetOpenIDConnectProvider", "iam:GetUser", "iam:ListOpenIDConnectProviders", "iam:ListRoles", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_op_contract_list_open_idconnect_providers_explicit_deny_rejected.py", "service": "iam"} {"check_id": "iam.op-contract-listOpenIDConnectProviders-membership", "deployments": [], "key": "iam/op-contract-listOpenIDConnectProviders-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:ListOpenIDConnectProviders"], "path": "behavioral/iam/check_op_contract_list_open_idconnect_providers_membership.py", "service": "iam"} {"check_id": "iam.op-contract-list-organizations-features", "deployments": [], "key": "iam/op-contract-list-organizations-features", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:ListOrganizationsFeatures"], "path": "behavioral/iam/check_op_contract_list_organizations_features.py", "service": "iam"} {"check_id": "iam.op-contract-list-policies", "deployments": [], "key": "iam/op-contract-list-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:ListPolicies"], "path": "behavioral/iam/check_op_contract_list_policies.py", "service": "iam"} {"check_id": "iam.op-contract-list-policies-granting-service-access", "deployments": [], "key": "iam/op-contract-list-policies-granting-service-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateUser", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:ListPoliciesGrantingServiceAccess", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_list_policies_granting_service_access.py", "service": "iam"} {"check_id": "iam.op-contract-listPolicies-pagination", "deployments": [], "key": "iam/op-contract-listPolicies-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:ListPolicies"], "path": "behavioral/iam/check_op_contract_list_policies_pagination.py", "service": "iam"} {"check_id": "iam.op-contract-listPolicies-path-prefix", "deployments": [], "key": "iam/op-contract-listPolicies-path-prefix", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:ListPolicies"], "path": "behavioral/iam/check_op_contract_list_policies_path_prefix.py", "service": "iam"} {"check_id": "iam.op-contract-list-policy-versions", "deployments": [], "key": "iam/op-contract-list-policy-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:ListPolicyVersions", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_list_policy_versions.py", "service": "iam"} {"check_id": "iam.op-contract-listRolePolicies-single-inline", "deployments": [], "key": "iam/op-contract-listRolePolicies-single-inline", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_op_contract_list_role_policies_single_inline.py", "service": "iam"} {"check_id": "iam.op-contract-listRoleTags-exact-set", "deployments": [], "key": "iam/op-contract-listRoleTags-exact-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListRoleTags", "iam:TagRole"], "path": "behavioral/iam/check_op_contract_list_role_tags_exact_set.py", "service": "iam"} {"check_id": "iam.op-contract-list-roles", "deployments": [], "key": "iam/op-contract-list-roles", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListRoles"], "path": "behavioral/iam/check_op_contract_list_roles.py", "service": "iam"} {"check_id": "iam.op-contract-listRoles-missing-permission-denied", "deployments": [], "key": "iam/op-contract-listRoles-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListRoles", "iam:ListUsers", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_op_contract_list_roles_missing_permission_denied.py", "service": "iam"} {"check_id": "iam.op-contract-listUserPolicies-single-inline", "deployments": [], "key": "iam/op-contract-listUserPolicies-single-inline", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_op_contract_list_user_policies_single_inline.py", "service": "iam"} {"check_id": "iam.op-contract-listUserTags-exact-set", "deployments": [], "key": "iam/op-contract-listUserTags-exact-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUserTags"], "path": "behavioral/iam/check_op_contract_list_user_tags_exact_set.py", "service": "iam"} {"check_id": "iam.op-contract-list-users-live-enforcement-denied", "deployments": [], "key": "iam/op-contract-list-users-live-enforcement-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:ListUsers", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_list_users_live_enforcement_denied.py", "service": "iam"} {"check_id": "iam.op-contract-listUsers-missing-permission-denied", "deployments": [], "key": "iam/op-contract-listUsers-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListRoles", "iam:ListUsers", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_op_contract_list_users_missing_permission_denied.py", "service": "iam"} {"check_id": "iam.op-contract-listUsers-path-prefix", "deployments": [], "key": "iam/op-contract-listUsers-path-prefix", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUsers"], "path": "behavioral/iam/check_op_contract_list_users_path_prefix.py", "service": "iam"} {"check_id": "iam.op-contract-put-account-properties", "deployments": [], "key": "iam/op-contract-put-account-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GetAccountProperties", "iam:PutAccountProperties"], "path": "behavioral/iam/check_op_contract_put_account_properties.py", "service": "iam"} {"check_id": "iam.op-contract-put-role-policy", "deployments": [], "key": "iam/op-contract-put-role-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_op_contract_put_role_policy.py", "service": "iam"} {"check_id": "iam.op-contract-put-user-policy", "deployments": [], "key": "iam/op-contract-put-user-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUserPolicy", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_op_contract_put_user_policy.py", "service": "iam"} {"check_id": "iam.op-contract-remove-client-id-from-oidc-provider", "deployments": [], "key": "iam/op-contract-remove-client-id-from-oidc-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:RemoveClientIDFromOpenIDConnectProvider"], "path": "behavioral/iam/check_op_contract_remove_client_id_from_oidc_provider.py", "service": "iam"} {"check_id": "iam.op-contract-remove-client-id-from-open-id-connect-provider", "deployments": [], "key": "iam/op-contract-remove-client-id-from-open-id-connect-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:RemoveClientIDFromOpenIDConnectProvider"], "path": "behavioral/iam/check_op_contract_remove_client_id_from_open_id_connect_provider.py", "service": "iam"} {"check_id": "iam.op-contract-remove-role-from-instance-profile", "deployments": [], "key": "iam/op-contract-remove-role-from-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_op_contract_remove_role_from_instance_profile.py", "service": "iam"} {"check_id": "iam.op-contract-remove-user-from-group", "deployments": [], "key": "iam/op-contract-remove-user-from-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteUser", "iam:GetGroup", "iam:RemoveUserFromGroup"], "path": "behavioral/iam/check_op_contract_remove_user_from_group.py", "service": "iam"} {"check_id": "iam.op-contract-resync-mfa-device", "deployments": [], "key": "iam/op-contract-resync-mfa-device", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice"], "path": "behavioral/iam/check_op_contract_resync_mfa_device.py", "service": "iam"} {"check_id": "iam.op-contract-set-security-token-service-preferences", "deployments": [], "key": "iam/op-contract-set-security-token-service-preferences", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GetAccountSummary", "iam:SetSecurityTokenServicePreferences"], "path": "behavioral/iam/check_op_contract_set_security_token_service_preferences.py", "service": "iam"} {"check_id": "iam.op-contract-simulate-custom-policy", "deployments": [], "key": "iam/op-contract-simulate-custom-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:SimulateCustomPolicy"], "path": "behavioral/iam/check_op_contract_simulate_custom_policy.py", "service": "iam"} {"check_id": "iam.op-contract-simulate-principal-policy", "deployments": [], "key": "iam/op-contract-simulate-principal-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_op_contract_simulate_principal_policy.py", "service": "iam"} {"check_id": "iam.op-contract-tag-role", "deployments": [], "key": "iam/op-contract-tag-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListRoleTags", "iam:TagRole"], "path": "behavioral/iam/check_op_contract_tag_role.py", "service": "iam"} {"check_id": "iam.op-contract-tag-user", "deployments": [], "key": "iam/op-contract-tag-user", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUserTags", "iam:TagUser"], "path": "behavioral/iam/check_op_contract_tag_user.py", "service": "iam"} {"check_id": "iam.op-contract-untag-role", "deployments": [], "key": "iam/op-contract-untag-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListRoleTags", "iam:TagRole", "iam:UntagRole"], "path": "behavioral/iam/check_op_contract_untag_role.py", "service": "iam"} {"check_id": "iam.op-contract-untag-user", "deployments": [], "key": "iam/op-contract-untag-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUserTags", "iam:TagUser", "iam:UntagUser"], "path": "behavioral/iam/check_op_contract_untag_user.py", "service": "iam"} {"check_id": "iam.op-contract-updateAccessKey", "deployments": [], "key": "iam/op-contract-updateAccessKey", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys", "iam:UpdateAccessKey"], "path": "behavioral/iam/check_op_contract_update_access_key.py", "service": "iam"} {"check_id": "iam.op-contract-updateAssumeRolePolicy", "deployments": [], "key": "iam/op-contract-updateAssumeRolePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:UpdateAssumeRolePolicy"], "path": "behavioral/iam/check_op_contract_update_assume_role_policy.py", "service": "iam"} {"check_id": "iam.op-contract-updateOpenIDConnectProviderThumbprint", "deployments": [], "key": "iam/op-contract-updateOpenIDConnectProviderThumbprint", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:UpdateOpenIDConnectProviderThumbprint", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_op_contract_update_open_idconnect_provider_thumbprint.py", "service": "iam"} {"check_id": "iam.outbound-web-identity-federation-toggle", "deployments": [], "key": "iam/outbound-web-identity-federation-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_outbound_web_identity_federation_toggle.py", "service": "iam"} {"check_id": "iam.percent-escape-in-policy-value-kept-and-in-policy-name-rejected", "deployments": [], "key": "iam/percent-escape-in-policy-value-kept-and-in-policy-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_percent_escape_in_policy_value_kept_and_in_policy_name_rejected.py", "service": "iam"} {"check_id": "iam.permissions-boundary-alone-never-grants-a-real-signed-call", "deployments": [], "key": "iam/permissions-boundary-alone-never-grants-a-real-signed-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPermissionsBoundary", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_permissions_boundary_alone_never_grants_a_real_signed_call.py", "service": "iam"} {"check_id": "iam.permissions-boundary-caps-a-real-signed-call", "deployments": [], "key": "iam/permissions-boundary-caps-a-real-signed-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:PutUserPermissionsBoundary", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_permissions_boundary_caps_a_real_signed_call.py", "service": "iam"} {"check_id": "iam.permissions-boundary-condition-key-gates-a-delegated-create-user", "deployments": [], "key": "iam/permissions-boundary-condition-key-gates-a-delegated-create-user", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:GetPolicy", "iam:GetUser", "iam:ListUsers", "iam:PutUserPolicy"], "path": "behavioral/iam/check_permissions_boundary_condition_key_gates_a_delegated_create_user.py", "service": "iam"} {"check_id": "iam.permissions-boundary-lifecycle", "deployments": [], "key": "iam/permissions-boundary-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:GetRole", "iam:GetUser", "iam:PutRolePermissionsBoundary", "iam:PutUserPermissionsBoundary"], "path": "behavioral/iam/check_permissions_boundary_lifecycle.py", "service": "iam"} {"check_id": "iam.permissions-boundary-non-attachable-policy-rejected", "deployments": [], "key": "iam/permissions-boundary-non-attachable-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:GetRole", "iam:ListPolicies", "iam:PutRolePermissionsBoundary"], "path": "behavioral/iam/check_permissions_boundary_non_attachable_policy_rejected.py", "service": "iam"} {"check_id": "iam.policy-arn-condition-scopes-delegated-attach-other-policy-denied", "deployments": [], "key": "iam/policy-arn-condition-scopes-delegated-attach-other-policy-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAttachedUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_policy_arn_condition_scopes_delegated_attach_other_policy_denied.py", "service": "iam"} {"check_id": "iam.policy-documents-are-url-encoded-on-the-query-wire", "deployments": [], "key": "iam/policy-documents-are-url-encoded-on-the-query-wire", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:GetRolePolicy", "iam:GetUserPolicy", "iam:ListRoles", "iam:PutRolePolicy", "iam:PutUserPolicy", "iam:UpdateAssumeRolePolicy"], "path": "behavioral/iam/check_policy_documents_are_url_encoded_on_the_query_wire.py", "service": "iam"} {"check_id": "iam.policy-empty-statement-array", "deployments": [], "key": "iam/policy-empty-statement-array", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy"], "path": "behavioral/iam/check_policy_empty_statement_array.py", "service": "iam"} {"check_id": "iam.policy-invalid-effect", "deployments": [], "key": "iam/policy-invalid-effect", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_policy_invalid_effect.py", "service": "iam"} {"check_id": "iam.policy-missing-action", "deployments": [], "key": "iam/policy-missing-action", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_policy_missing_action.py", "service": "iam"} {"check_id": "iam.policy-missing-statement", "deployments": [], "key": "iam/policy-missing-statement", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_policy_missing_statement.py", "service": "iam"} {"check_id": "iam.policy-simulation-explicit-deny-overrides-allow", "deployments": [], "key": "iam/policy-simulation-explicit-deny-overrides-allow", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/iam/check_policy_simulation_explicit_deny_overrides_allow.py", "service": "iam"} {"check_id": "iam.policy-tag-lifecycle", "deployments": [], "key": "iam/policy-tag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:ListPolicyTags", "iam:TagPolicy", "iam:UntagPolicy"], "path": "behavioral/iam/check_policy_tag_lifecycle.py", "service": "iam"} {"check_id": "iam.policy-tags-lifecycle", "deployments": [], "key": "iam/policy-tags-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:ListPolicyTags", "iam:TagPolicy", "iam:UntagPolicy"], "path": "behavioral/iam/check_policy_tags_lifecycle.py", "service": "iam"} {"check_id": "iam.policy-variable-username-scopes-one-shared-policy-per-caller", "deployments": [], "key": "iam/policy-variable-username-scopes-one-shared-policy-per-caller", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam/check_policy_variable_username_scopes_one_shared_policy_per_caller.py", "service": "iam"} {"check_id": "iam.policy-version-delete-default-rejected", "deployments": [], "key": "iam/policy-version-delete-default-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:ListPolicyVersions"], "path": "behavioral/iam/check_policy_version_delete_default_rejected.py", "service": "iam"} {"check_id": "iam.policy-version-limit", "deployments": [], "key": "iam/policy-version-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:ListPolicyVersions"], "path": "behavioral/iam/check_policy_version_limit.py", "service": "iam"} {"check_id": "iam.policy-version-limit-exceeded", "deployments": [], "key": "iam/policy-version-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:ListPolicyVersions"], "path": "behavioral/iam/check_policy_version_limit_exceeded.py", "service": "iam"} {"check_id": "iam.policy-versions-create-and-list", "deployments": [], "key": "iam/policy-versions-create-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:ListPolicyVersions"], "path": "behavioral/iam/check_policy_versions_create_and_list.py", "service": "iam"} {"check_id": "iam.put-account-properties", "deployments": [], "key": "iam/put-account-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetAccountProperties", "iam:ListAccessKeys", "iam:PutAccountProperties", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_put_account_properties.py", "service": "iam"} {"check_id": "iam.put-get-role-inline-policy", "deployments": [], "key": "iam/put-get-role-inline-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy"], "path": "behavioral/iam/check_put_get_role_inline_policy.py", "service": "iam"} {"check_id": "iam.put-get-user-inline-policy", "deployments": [], "key": "iam/put-get-user-inline-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUserPolicy", "iam:PutUserPolicy"], "path": "behavioral/iam/check_put_get_user_inline_policy.py", "service": "iam"} {"check_id": "iam.put-role-permissions-boundary-non-attachable-rejected", "deployments": [], "key": "iam/put-role-permissions-boundary-non-attachable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:GetRole", "iam:ListPolicies", "iam:PutRolePermissionsBoundary"], "path": "behavioral/iam/check_put_role_permissions_boundary_non_attachable_rejected.py", "service": "iam"} {"check_id": "iam.put-role-permissions-boundary-with-service-role-policy-rejected", "deployments": [], "key": "iam/put-role-permissions-boundary-with-service-role-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:GetRole", "iam:PutRolePermissionsBoundary"], "path": "behavioral/iam/check_put_role_permissions_boundary_with_service_role_policy_rejected.py", "service": "iam"} {"check_id": "iam.put-user-permissions-boundary-non-attachable-rejected", "deployments": [], "key": "iam/put-user-permissions-boundary-non-attachable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:GetUser", "iam:ListPolicies", "iam:PutUserPermissionsBoundary"], "path": "behavioral/iam/check_put_user_permissions_boundary_non_attachable_rejected.py", "service": "iam"} {"check_id": "iam.reject-delete-role-still-in-instance-profile", "deployments": [], "key": "iam/reject-delete-role-still-in-instance-profile", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:GetRole", "iam:ListInstanceProfilesForRole", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_reject_delete_role_still_in_instance_profile.py", "service": "iam"} {"check_id": "iam.reject-identity-policy-containing-principal", "deployments": [], "key": "iam/reject-identity-policy-containing-principal", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:ListPolicies"], "path": "behavioral/iam/check_reject_identity_policy_containing_principal.py", "service": "iam"} {"check_id": "iam.reject-trust-policy-without-principal", "deployments": [], "key": "iam/reject-trust-policy-without-principal", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_reject_trust_policy_without_principal.py", "service": "iam"} {"check_id": "iam.remove-client-id-not-associated-idempotent-noop", "deployments": [], "key": "iam/remove-client-id-not-associated-idempotent-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:RemoveClientIDFromOpenIDConnectProvider"], "path": "behavioral/iam/check_remove_client_id_not_associated_idempotent_noop.py", "service": "iam"} {"check_id": "iam.remove-role-from-instance-profile", "deployments": [], "key": "iam/remove-role-from-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile"], "path": "behavioral/iam/check_remove_role_from_instance_profile.py", "service": "iam"} {"check_id": "iam.requested-region-for-global-iam-is-us-east-1-other-region-denied", "deployments": [], "key": "iam/requested-region-for-global-iam-is-us-east-1-other-region-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetAccountSummary", "iam:GetUser", "iam:ListAccountAliases", "iam:ListGroups", "iam:ListRoles", "iam:PutUserPolicy"], "path": "behavioral/iam/check_requested_region_for_global_iam_is_us_east_1_other_region_denied.py", "service": "iam"} {"check_id": "iam.resource-level-arn-scoping-enforced-on-a-real-call", "deployments": [], "key": "iam/resource-level-arn-scoping-enforced-on-a-real-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_resource_level_arn_scoping_enforced_on_a_real_call.py", "service": "iam"} {"check_id": "iam.resync-mfa-device-invalid-code-rejected", "deployments": [], "key": "iam/resync-mfa-device-invalid-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice"], "path": "behavioral/iam/check_resync_mfa_device_invalid_code_rejected.py", "service": "iam"} {"check_id": "iam.role-arn-format", "deployments": [], "key": "iam/role-arn-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_role_arn_format.py", "service": "iam"} {"check_id": "iam.role-delete-with-attached-policy-rejected", "deployments": [], "key": "iam/role-delete-with-attached-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies"], "path": "behavioral/iam/check_role_delete_with_attached_policy_rejected.py", "service": "iam"} {"check_id": "iam.role-lifecycle-crud", "deployments": [], "key": "iam/role-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:ListRoles", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription"], "path": "behavioral/iam/check_role_lifecycle_crud.py", "service": "iam"} {"check_id": "iam.role-permissions-boundary-invalid-arn-rejected", "deployments": [], "key": "iam/role-permissions-boundary-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:GetRole", "iam:PutRolePermissionsBoundary", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_role_permissions_boundary_invalid_arn_rejected.py", "service": "iam"} {"check_id": "iam.role-permissions-boundary-lifecycle", "deployments": [], "key": "iam/role-permissions-boundary-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:GetRole", "iam:PutRolePermissionsBoundary"], "path": "behavioral/iam/check_role_permissions_boundary_lifecycle.py", "service": "iam"} {"check_id": "iam.role-session-duration-and-description-bounds-rejected", "deployments": [], "key": "iam/role-session-duration-and-description-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:ListRoles", "iam:UpdateRole"], "path": "behavioral/iam/check_role_session_duration_and_description_bounds_rejected.py", "service": "iam"} {"check_id": "iam.role-with-path", "deployments": [], "key": "iam/role-with-path", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_role_with_path.py", "service": "iam"} {"check_id": "iam.saml-metadata-document-byte-round-trip", "deployments": [], "key": "iam/saml-metadata-document-byte-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:GetSAMLProvider"], "path": "behavioral/iam/check_saml_metadata_document_byte_round_trip.py", "service": "iam"} {"check_id": "iam.saml-provider-invalid-metadata-document-rejected", "deployments": [], "key": "iam/saml-provider-invalid-metadata-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:ListSAMLProviders", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_saml_provider_invalid_metadata_document_rejected.py", "service": "iam"} {"check_id": "iam.saml-provider-lifecycle", "deployments": [], "key": "iam/saml-provider-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:GetSAMLProvider", "iam:ListSAMLProviders", "iam:UpdateSAMLProvider"], "path": "behavioral/iam/check_saml_provider_lifecycle.py", "service": "iam"} {"check_id": "iam.saml-provider-tag-lifecycle", "deployments": [], "key": "iam/saml-provider-tag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:ListSAMLProviderTags", "iam:TagSAMLProvider", "iam:UntagSAMLProvider"], "path": "behavioral/iam/check_saml_provider_tag_lifecycle.py", "service": "iam"} {"check_id": "iam.saml-provider-tagging", "deployments": [], "key": "iam/saml-provider-tagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:ListSAMLProviderTags", "iam:TagSAMLProvider", "iam:UntagSAMLProvider"], "path": "behavioral/iam/check_saml_provider_tagging.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-action-wildcards-match-exactly-the-documented-set-denied-outside", "deployments": [], "key": "iam/sep-policy-composition-action-wildcards-match-exactly-the-documented-set-denied-outside", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListSSHPublicKeys", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_sep_policy_composition_action_wildcards_match_exactly_the_documented_set_denied_outside.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-allow-notaction-grants-complement-on-named-resource-only-denied-elsewhere", "deployments": [], "key": "iam/sep-policy-composition-allow-notaction-grants-complement-on-named-resource-only-denied-elsewhere", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_sep_policy_composition_allow_notaction_grants_complement_on_named_resource_only_denied_elsewhere.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-boundary-caps-identity-allow-denied-by-simulator-and-real-call", "deployments": [], "key": "iam/sep-policy-composition-boundary-caps-identity-allow-denied-by-simulator-and-real-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_sep_policy_composition_boundary_caps_identity_allow_denied_by_simulator_and_real_call.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-group-managed-deny-overrides-user-allows-denied-by-simulator-and-real-call", "deployments": [], "key": "iam/sep-policy-composition-group-managed-deny-overrides-user-allows-denied-by-simulator-and-real-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:AttachGroupPolicy", "iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreateGroup", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteGroup", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachGroupPolicy", "iam:DetachUserPolicy", "iam:GetGroup", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedGroupPolicies", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_sep_policy_composition_group_managed_deny_overrides_user_allows_denied_by_simulator_and_real_call.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-managed-grant-eventually-applies-and-revocation-eventually-denied", "deployments": [], "key": "iam/sep-policy-composition-managed-grant-eventually-applies-and-revocation-eventually-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_sep_policy_composition_managed_grant_eventually_applies_and_revocation_eventually_denied.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-principal-tag-condition-simulated-with-real-tags-denied-on-mismatch", "deployments": [], "key": "iam/sep-policy-composition-principal-tag-condition-simulated-with-real-tags-denied-on-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy", "iam:TagUser"], "path": "behavioral/iam/check_sep_policy_composition_principal_tag_condition_simulated_with_real_tags_denied_on_mismatch.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-request-and-resource-tag-conditions-and-together-denied-when-either-fails", "deployments": [], "key": "iam/sep-policy-composition-request-and-resource-tag-conditions-and-together-denied-when-either-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy", "iam:TagUser"], "path": "behavioral/iam/check_sep_policy_composition_request_and_resource_tag_conditions_and_together_denied_when_either_fails.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-securetransport-condition-denied-when-policy-requires-plaintext", "deployments": [], "key": "iam/sep-policy-composition-securetransport-condition-denied-when-policy-requires-plaintext", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_sep_policy_composition_securetransport_condition_denied_when_policy_requires_plaintext.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-session-policy-narrows-never-widens-denied-by-simulator-and-real-call", "deployments": [], "key": "iam/sep-policy-composition-session-policy-narrows-never-widens-denied-by-simulator-and-real-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:SimulateCustomPolicy", "iam:SimulatePrincipalPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_sep_policy_composition_session_policy_narrows_never_widens_denied_by_simulator_and_real_call.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-sourceip-condition-gates-real-call-denied-outside-cidr", "deployments": [], "key": "iam/sep-policy-composition-sourceip-condition-gates-real-call-denied-outside-cidr", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_sep_policy_composition_sourceip_condition_gates_real_call_denied_outside_cidr.py", "service": "iam"} {"check_id": "iam.sep-policy-composition-stringnotequals-missing-sourcevpce-key-deny-applies-denied-by-simulator-and-real-call", "deployments": [], "key": "iam/sep-policy-composition-stringnotequals-missing-sourcevpce-key-deny-applies-denied-by-simulator-and-real-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:ListUserTags", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_sep_policy_composition_stringnotequals_missing_sourcevpce_key_deny_applies_denied_by_simulator_and_real_call.py", "service": "iam"} {"check_id": "iam.server-certificate-body-chain-and-key-match", "deployments": [], "key": "iam/server-certificate-body-chain-and-key-match", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteServerCertificate", "iam:GetServerCertificate", "iam:UploadServerCertificate", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_server_certificate_body_chain_and_key_match.py", "service": "iam"} {"check_id": "iam.server-certificate-lifecycle", "deployments": [], "key": "iam/server-certificate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteServerCertificate", "iam:GetServerCertificate", "iam:ListServerCertificates", "iam:UpdateServerCertificate", "iam:UploadServerCertificate"], "path": "behavioral/iam/check_server_certificate_lifecycle.py", "service": "iam"} {"check_id": "iam.server-certificate-tag-lifecycle", "deployments": [], "key": "iam/server-certificate-tag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteServerCertificate", "iam:ListServerCertificateTags", "iam:TagServerCertificate", "iam:UntagServerCertificate", "iam:UploadServerCertificate"], "path": "behavioral/iam/check_server_certificate_tag_lifecycle.py", "service": "iam"} {"check_id": "iam.server-certificate-tagging", "deployments": [], "key": "iam/server-certificate-tagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteServerCertificate", "iam:ListServerCertificateTags", "iam:TagServerCertificate", "iam:UntagServerCertificate", "iam:UploadServerCertificate"], "path": "behavioral/iam/check_server_certificate_tagging.py", "service": "iam"} {"check_id": "iam.service-last-accessed-details-generation-lifecycle", "deployments": [], "key": "iam/service-last-accessed-details-generation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GenerateServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetails", "iam:GetServiceLastAccessedDetailsWithEntities", "iam:ListPoliciesGrantingServiceAccess", "iam:PutRolePolicy"], "path": "behavioral/iam/check_service_last_accessed_details_generation_lifecycle.py", "service": "iam"} {"check_id": "iam.service-linked-role-attach-policy-rejected", "deployments": [], "key": "iam/service-linked-role-attach-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteServiceLinkedRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_service_linked_role_attach_policy_rejected.py", "service": "iam"} {"check_id": "iam.service-linked-role-create-delete", "deployments": [], "key": "iam/service-linked-role-create-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole", "iam:GetRole", "iam:GetServiceLinkedRoleDeletionStatus"], "path": "behavioral/iam/check_service_linked_role_create_delete.py", "service": "iam"} {"check_id": "iam.service-linked-role-immutability-rejected", "deployments": [], "key": "iam/service-linked-role-immutability-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteServiceLinkedRole", "iam:GetRole", "iam:GetServiceLinkedRoleDeletionStatus", "iam:UpdateRoleDescription"], "path": "behavioral/iam/check_service_linked_role_immutability_rejected.py", "service": "iam"} {"check_id": "iam.service-linked-role-inline-policy-attach-rejected", "deployments": [], "key": "iam/service-linked-role-inline-policy-attach-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteServiceLinkedRole", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy"], "path": "behavioral/iam/check_service_linked_role_inline_policy_attach_rejected.py", "service": "iam"} {"check_id": "iam.service-linked-role-lifecycle", "deployments": [], "key": "iam/service-linked-role-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole", "iam:GetRole", "iam:GetServiceLinkedRoleDeletionStatus"], "path": "behavioral/iam/check_service_linked_role_lifecycle.py", "service": "iam"} {"check_id": "iam.service-linked-role-trust-policy-immutable-rejected", "deployments": [], "key": "iam/service-linked-role-trust-policy-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteServiceLinkedRole", "iam:GetRole", "iam:GetServiceLinkedRoleDeletionStatus", "iam:UpdateAssumeRolePolicy"], "path": "behavioral/iam/check_service_linked_role_trust_policy_immutable_rejected.py", "service": "iam"} {"check_id": "iam.service-linked-role-unmodifiable-enforced", "deployments": [], "key": "iam/service-linked-role-unmodifiable-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteServiceLinkedRole", "iam:GetRole", "iam:GetServiceLinkedRoleDeletionStatus", "iam:TagRole", "iam:UpdateRole", "iam:UpdateRoleDescription"], "path": "behavioral/iam/check_service_linked_role_unmodifiable_enforced.py", "service": "iam"} {"check_id": "iam.service-role-at-root-path-reads-back-multi-statement-trust-and-two-attachments", "deployments": [], "key": "iam/service-role-at-root-path-reads-back-multi-statement-trust-and-two-attachments", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetPolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:UpdateRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_service_role_at_root_path_reads_back_multi_statement_trust_and_two_attachments.py", "service": "iam"} {"check_id": "iam.service-specific-credential-cross-user-isolation-rejected", "deployments": [], "key": "iam/service-specific-credential-cross-user-isolation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:ListServiceSpecificCredentials", "iam:ResetServiceSpecificCredential", "iam:UpdateServiceSpecificCredential"], "path": "behavioral/iam/check_service_specific_credential_cross_user_isolation_rejected.py", "service": "iam"} {"check_id": "iam.service-specific-credential-lifecycle", "deployments": [], "key": "iam/service-specific-credential-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:ListServiceSpecificCredentials", "iam:ResetServiceSpecificCredential", "iam:UpdateServiceSpecificCredential"], "path": "behavioral/iam/check_service_specific_credential_lifecycle.py", "service": "iam"} {"check_id": "iam.service-specific-credential-long-term-api-key-shape", "deployments": [], "key": "iam/service-specific-credential-long-term-api-key-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:ListServiceSpecificCredentials"], "path": "behavioral/iam/check_service_specific_credential_long_term_api_key_shape.py", "service": "iam"} {"check_id": "iam.service-specific-credential-quota-race", "deployments": [], "key": "iam/service-specific-credential-quota-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:ListServiceSpecificCredentials"], "path": "behavioral/iam/check_service_specific_credential_quota_race.py", "service": "iam"} {"check_id": "iam.service-specific-credential-unsupported-service-rejected", "deployments": [], "key": "iam/service-specific-credential-unsupported-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:GetUser", "iam:ListServiceSpecificCredentials"], "path": "behavioral/iam/check_service_specific_credential_unsupported_service_rejected.py", "service": "iam"} {"check_id": "iam.session-policy-intersects-the-role-policy", "deployments": [], "key": "iam/session-policy-intersects-the-role-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateUser", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_session_policy_intersects_the_role_policy.py", "service": "iam"} {"check_id": "iam.set-default-policy-version-invalid-version-rejected", "deployments": [], "key": "iam/set-default-policy-version-invalid-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:ListPolicyVersions", "iam:SetDefaultPolicyVersion"], "path": "behavioral/iam/check_set_default_policy_version_invalid_version_rejected.py", "service": "iam"} {"check_id": "iam.set-default-policy-version-lifecycle", "deployments": [], "key": "iam/set-default-policy-version-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicyVersions", "iam:SetDefaultPolicyVersion"], "path": "behavioral/iam/check_set_default_policy_version_lifecycle.py", "service": "iam"} {"check_id": "iam.set-security-token-service-preferences", "deployments": [], "key": "iam/set-security-token-service-preferences", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetAccountSummary", "iam:ListAccessKeys", "iam:SetSecurityTokenServicePreferences", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_set_security_token_service_preferences.py", "service": "iam"} {"check_id": "iam.signing-certificate-duplicate-rejected", "deployments": [], "key": "iam/signing-certificate-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSigningCertificate", "iam:DeleteUser", "iam:ListSigningCertificates", "iam:UploadSigningCertificate"], "path": "behavioral/iam/check_signing_certificate_duplicate_rejected.py", "service": "iam"} {"check_id": "iam.signing-certificate-lifecycle", "deployments": [], "key": "iam/signing-certificate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSigningCertificate", "iam:DeleteUser", "iam:ListSigningCertificates", "iam:UpdateSigningCertificate", "iam:UploadSigningCertificate"], "path": "behavioral/iam/check_signing_certificate_lifecycle.py", "service": "iam"} {"check_id": "iam.simulate-allow-agrees-with-a-real-signed-call", "deployments": [], "key": "iam/simulate-allow-agrees-with-a-real-signed-call", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:PutUserPolicy", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_simulate_allow_agrees_with_a_real_signed_call.py", "service": "iam"} {"check_id": "iam.simulate-condition-key-context-entries", "deployments": [], "key": "iam/simulate-condition-key-context-entries", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:SimulateCustomPolicy"], "path": "behavioral/iam/check_simulate_condition_key_context_entries.py", "service": "iam"} {"check_id": "iam.simulate-custom-policy", "deployments": [], "key": "iam/simulate-custom-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys", "iam:SimulateCustomPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_simulate_custom_policy.py", "service": "iam"} {"check_id": "iam.simulate-custom-policy-permissions-boundary-intersection", "deployments": [], "key": "iam/simulate-custom-policy-permissions-boundary-intersection", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:SimulateCustomPolicy"], "path": "behavioral/iam/check_simulate_custom_policy_permissions_boundary_intersection.py", "service": "iam"} {"check_id": "iam.simulate-custom-policy-uses-context-keys", "deployments": [], "key": "iam/simulate-custom-policy-uses-context-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GetContextKeysForCustomPolicy", "iam:SimulateCustomPolicy"], "path": "behavioral/iam/check_simulate_custom_policy_uses_context_keys.py", "service": "iam"} {"check_id": "iam.simulate-explicit-deny-overrides-allow", "deployments": [], "key": "iam/simulate-explicit-deny-overrides-allow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:SimulateCustomPolicy"], "path": "behavioral/iam/check_simulate_explicit_deny_overrides_allow.py", "service": "iam"} {"check_id": "iam.simulate-invalid-input-rejected", "deployments": [], "key": "iam/simulate-invalid-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "iam:SimulateCustomPolicy", "iam:SimulatePrincipalPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_simulate_invalid_input_rejected.py", "service": "iam"} {"check_id": "iam.simulate-notaction-and-wildcard-matching", "deployments": [], "key": "iam/simulate-notaction-and-wildcard-matching", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:SimulateCustomPolicy"], "path": "behavioral/iam/check_simulate_notaction_and_wildcard_matching.py", "service": "iam"} {"check_id": "iam.simulate-principal-policy-attached-boundary-caps-allow", "deployments": [], "key": "iam/simulate-principal-policy-attached-boundary-caps-allow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreatePolicy", "iam:CreateUser", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DetachUserPolicy", "iam:GetUser", "iam:PutUserPermissionsBoundary", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_simulate_principal_policy_attached_boundary_caps_allow.py", "service": "iam"} {"check_id": "iam.simulate-principal-policy-group-inherited-permission", "deployments": [], "key": "iam/simulate-principal-policy-group-inherited-permission", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:AttachGroupPolicy", "iam:CreateGroup", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteGroup", "iam:DeleteGroupPolicy", "iam:DeletePolicy", "iam:DeleteUser", "iam:DetachGroupPolicy", "iam:GetUser", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListGroupsForUser", "iam:PutGroupPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy"], "path": "behavioral/iam/check_simulate_principal_policy_group_inherited_permission.py", "service": "iam"} {"check_id": "iam.ssh-public-key-body-encoding-round-trip", "deployments": [], "key": "iam/ssh-public-key-body-encoding-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:GetSSHPublicKey", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_ssh_public_key_body_encoding_round_trip.py", "service": "iam"} {"check_id": "iam.ssh-public-key-duplicate-rejected", "deployments": [], "key": "iam/ssh-public-key-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:ListSSHPublicKeys", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_ssh_public_key_duplicate_rejected.py", "service": "iam"} {"check_id": "iam.ssh-public-key-duplicate-upload-rejected", "deployments": [], "key": "iam/ssh-public-key-duplicate-upload-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:ListSSHPublicKeys", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_ssh_public_key_duplicate_upload_rejected.py", "service": "iam"} {"check_id": "iam.ssh-public-key-fingerprint-consistent-across-encodings", "deployments": [], "key": "iam/ssh-public-key-fingerprint-consistent-across-encodings", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:GetSSHPublicKey", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_ssh_public_key_fingerprint_consistent_across_encodings.py", "service": "iam"} {"check_id": "iam.ssh-public-key-lifecycle", "deployments": [], "key": "iam/ssh-public-key-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:GetSSHPublicKey", "iam:ListSSHPublicKeys", "iam:UpdateSSHPublicKey", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_ssh_public_key_lifecycle.py", "service": "iam"} {"check_id": "iam.ssh-public-key-server-computed-fingerprint-matches-key", "deployments": [], "key": "iam/ssh-public-key-server-computed-fingerprint-matches-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:GetSSHPublicKey", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_ssh_public_key_server_computed_fingerprint_matches_key.py", "service": "iam"} {"check_id": "iam.sts-preferences-update-persists", "deployments": [], "key": "iam/sts-preferences-update-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:GetAccountSummary", "iam:SetSecurityTokenServicePreferences"], "path": "behavioral/iam/check_sts_preferences_update_persists.py", "service": "iam"} {"check_id": "iam.tag-instance-profile", "deployments": [], "key": "iam/tag-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile", "iam:ListInstanceProfileTags", "iam:TagInstanceProfile", "iam:UntagInstanceProfile"], "path": "behavioral/iam/check_tag_instance_profile.py", "service": "iam"} {"check_id": "iam.tag-instance-profile-reserved-prefix-rejected", "deployments": [], "key": "iam/tag-instance-profile-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:ListInstanceProfileTags", "iam:TagInstanceProfile"], "path": "behavioral/iam/check_tag_instance_profile_reserved_prefix_rejected.py", "service": "iam"} {"check_id": "iam.tag-mfadevice", "deployments": [], "key": "iam/tag-mfadevice", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListMFADeviceTags", "iam:TagMFADevice", "iam:UntagMFADevice", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_tag_mfadevice.py", "service": "iam"} {"check_id": "iam.tag-nonexistent-mfa-device-rejected-not-silently-accepted", "deployments": [], "key": "iam/tag-nonexistent-mfa-device-rejected-not-silently-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListMFADeviceTags", "iam:TagMFADevice", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_tag_nonexistent_mfa_device_rejected_not_silently_accepted.py", "service": "iam"} {"check_id": "iam.tag-open-idconnect-provider", "deployments": [], "key": "iam/tag-open-idconnect-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:GetOpenIDConnectProvider", "iam:ListOpenIDConnectProviderTags", "iam:TagOpenIDConnectProvider", "iam:UntagOpenIDConnectProvider", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_tag_open_idconnect_provider.py", "service": "iam"} {"check_id": "iam.tag-policy", "deployments": [], "key": "iam/tag-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:ListPolicyTags", "iam:ListPolicyVersions", "iam:TagPolicy", "iam:UntagPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_tag_policy.py", "service": "iam"} {"check_id": "iam.tag-policy-exceeds-limit-rejected", "deployments": [], "key": "iam/tag-policy-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreatePolicy", "iam:DeletePolicy", "iam:ListPolicyTags", "iam:TagPolicy"], "path": "behavioral/iam/check_tag_policy_exceeds_limit_rejected.py", "service": "iam"} {"check_id": "iam.tag-role", "deployments": [], "key": "iam/tag-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListRoleTags", "iam:TagRole"], "path": "behavioral/iam/check_tag_role.py", "service": "iam"} {"check_id": "iam.tag-samlprovider", "deployments": [], "key": "iam/tag-samlprovider", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:GetSAMLProvider", "iam:ListSAMLProviderTags", "iam:TagSAMLProvider", "iam:UntagSAMLProvider", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_tag_samlprovider.py", "service": "iam"} {"check_id": "iam.tag-server-certificate", "deployments": [], "key": "iam/tag-server-certificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteServerCertificate", "iam:ListServerCertificateTags", "iam:TagServerCertificate", "iam:UntagServerCertificate", "iam:UploadServerCertificate"], "path": "behavioral/iam/check_tag_server_certificate.py", "service": "iam"} {"check_id": "iam.tag-user", "deployments": [], "key": "iam/tag-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUserTags", "iam:TagUser"], "path": "behavioral/iam/check_tag_user.py", "service": "iam"} {"check_id": "iam.trust-policy-denies-assume-role-for-an-unnamed-principal", "deployments": [], "key": "iam/trust-policy-denies-assume-role-for-an-unnamed-principal", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:PutUserPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_trust_policy_denies_assume_role_for_an_unnamed_principal.py", "service": "iam"} {"check_id": "iam.trust-policy-validation", "deployments": [], "key": "iam/trust-policy-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole"], "path": "behavioral/iam/check_trust_policy_validation.py", "service": "iam"} {"check_id": "iam.unrecognized-ssh-public-key-encoding-rejected", "deployments": [], "key": "iam/unrecognized-ssh-public-key-encoding-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:GetSSHPublicKey", "iam:ListSSHPublicKeys", "iam:UpdateSSHPublicKey", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_unrecognized_ssh_public_key_encoding_rejected.py", "service": "iam"} {"check_id": "iam.unsupported-service-specific-credential-rejected", "deployments": [], "key": "iam/unsupported-service-specific-credential-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:ListServiceSpecificCredentials"], "path": "behavioral/iam/check_unsupported_service_specific_credential_rejected.py", "service": "iam"} {"check_id": "iam.untag-instance-profile", "deployments": [], "key": "iam/untag-instance-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:ListInstanceProfileTags", "iam:TagInstanceProfile", "iam:UntagInstanceProfile"], "path": "behavioral/iam/check_untag_instance_profile.py", "service": "iam"} {"check_id": "iam.untag-mfadevice", "deployments": [], "key": "iam/untag-mfadevice", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListMFADeviceTags", "iam:TagMFADevice", "iam:UntagMFADevice", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_untag_mfadevice.py", "service": "iam"} {"check_id": "iam.untag-nonexistent-mfa-device-returns-nosuchentity", "deployments": [], "key": "iam/untag-nonexistent-mfa-device-returns-nosuchentity", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListMFADeviceTags", "iam:TagMFADevice", "iam:UntagMFADevice", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_untag_nonexistent_mfa_device_returns_nosuchentity.py", "service": "iam"} {"check_id": "iam.untag-open-idconnect-provider", "deployments": [], "key": "iam/untag-open-idconnect-provider", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:DeleteOpenIDConnectProvider", "iam:ListOpenIDConnectProviderTags", "iam:TagOpenIDConnectProvider", "iam:UntagOpenIDConnectProvider", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_untag_open_idconnect_provider.py", "service": "iam"} {"check_id": "iam.untag-policy", "deployments": [], "key": "iam/untag-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteUser", "iam:ListAccessKeys", "iam:ListPolicyTags", "iam:ListPolicyVersions", "iam:TagPolicy", "iam:UntagPolicy", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_untag_policy.py", "service": "iam"} {"check_id": "iam.untag-role", "deployments": [], "key": "iam/untag-role", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:ListRoleTags", "iam:TagRole", "iam:UntagRole"], "path": "behavioral/iam/check_untag_role.py", "service": "iam"} {"check_id": "iam.untag-samlprovider", "deployments": [], "key": "iam/untag-samlprovider", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateSAMLProvider", "iam:DeleteSAMLProvider", "iam:ListSAMLProviderTags", "iam:TagSAMLProvider", "iam:UntagSAMLProvider", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_untag_samlprovider.py", "service": "iam"} {"check_id": "iam.untag-server-certificate", "deployments": [], "key": "iam/untag-server-certificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DeleteServerCertificate", "iam:ListServerCertificateTags", "iam:TagServerCertificate", "iam:UntagServerCertificate", "iam:UploadServerCertificate"], "path": "behavioral/iam/check_untag_server_certificate.py", "service": "iam"} {"check_id": "iam.untag-user", "deployments": [], "key": "iam/untag-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:ListUserTags", "iam:TagUser", "iam:UntagUser"], "path": "behavioral/iam/check_untag_user.py", "service": "iam"} {"check_id": "iam.update-assume-role-policy", "deployments": [], "key": "iam/update-assume-role-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:UpdateAssumeRolePolicy"], "path": "behavioral/iam/check_update_assume_role_policy.py", "service": "iam"} {"check_id": "iam.update-group-name", "deployments": [], "key": "iam/update-group-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:GetGroup", "iam:UpdateGroup"], "path": "behavioral/iam/check_update_group_name.py", "service": "iam"} {"check_id": "iam.update-group-name-conflict-rejected", "deployments": [], "key": "iam/update-group-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:GetGroup", "iam:UpdateGroup"], "path": "behavioral/iam/check_update_group_name_conflict_rejected.py", "service": "iam"} {"check_id": "iam.update-group-rename", "deployments": [], "key": "iam/update-group-rename", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:GetGroup", "iam:UpdateGroup"], "path": "behavioral/iam/check_update_group_rename.py", "service": "iam"} {"check_id": "iam.update-group-rename-conflict-rejected", "deployments": [], "key": "iam/update-group-rename-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateGroup", "iam:DeleteGroup", "iam:GetGroup", "iam:UpdateGroup"], "path": "behavioral/iam/check_update_group_rename_conflict_rejected.py", "service": "iam"} {"check_id": "iam.update-role-description-and-metadata", "deployments": [], "key": "iam/update-role-description-and-metadata", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:UpdateRole", "iam:UpdateRoleDescription"], "path": "behavioral/iam/check_update_role_description_and_metadata.py", "service": "iam"} {"check_id": "iam.update-role-metadata", "deployments": [], "key": "iam/update-role-metadata", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:UpdateRole", "iam:UpdateRoleDescription"], "path": "behavioral/iam/check_update_role_metadata.py", "service": "iam"} {"check_id": "iam.update-service-linked-role-unmodifiable-rejected", "deployments": [], "key": "iam/update-service-linked-role-unmodifiable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteServiceLinkedRole", "iam:GetRole", "iam:UpdateAssumeRolePolicy", "iam:UpdateRoleDescription"], "path": "behavioral/iam/check_update_service_linked_role_unmodifiable_rejected.py", "service": "iam"} {"check_id": "iam.update-ssh-public-key-invalid-status-value-rejected", "deployments": [], "key": "iam/update-ssh-public-key-invalid-status-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:ListSSHPublicKeys", "iam:UpdateSSHPublicKey", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_update_ssh_public_key_invalid_status_value_rejected.py", "service": "iam"} {"check_id": "iam.update-user-attributes", "deployments": [], "key": "iam/update-user-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "iam:UpdateUser"], "path": "behavioral/iam/check_update_user_attributes.py", "service": "iam"} {"check_id": "iam.update-user-rename", "deployments": [], "key": "iam/update-user-rename", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "iam:UpdateUser"], "path": "behavioral/iam/check_update_user_rename.py", "service": "iam"} {"check_id": "iam.update-user-rename-carries-access-keys-and-group-membership", "deployments": [], "key": "iam/update-user-rename-carries-access-keys-and-group-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddUserToGroup", "iam:CreateAccessKey", "iam:CreateGroup", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteGroup", "iam:DeleteUser", "iam:GetGroup", "iam:GetUser", "iam:ListAccessKeys", "iam:ListGroupsForUser", "iam:RemoveUserFromGroup", "iam:UpdateUser"], "path": "behavioral/iam/check_update_user_rename_carries_access_keys_and_group_membership.py", "service": "iam"} {"check_id": "iam.update-user-rename-conflict-rejected", "deployments": [], "key": "iam/update-user-rename-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "iam:UpdateUser"], "path": "behavioral/iam/check_update_user_rename_conflict_rejected.py", "service": "iam"} {"check_id": "iam.upload-ssh-public-key-malformed-body-rejected", "deployments": [], "key": "iam/upload-ssh-public-key-malformed-body-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteSSHPublicKey", "iam:DeleteUser", "iam:ListSSHPublicKeys", "iam:UploadSSHPublicKey"], "path": "behavioral/iam/check_upload_ssh_public_key_malformed_body_rejected.py", "service": "iam"} {"check_id": "iam.user-arn-format", "deployments": [], "key": "iam/user-arn-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_user_arn_format.py", "service": "iam"} {"check_id": "iam.user-lifecycle-crud", "deployments": [], "key": "iam/user-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "iam:ListUsers", "iam:UpdateUser"], "path": "behavioral/iam/check_user_lifecycle_crud.py", "service": "iam"} {"check_id": "iam.user-permissions-boundary-invalid-arn-rejected", "deployments": [], "key": "iam/user-permissions-boundary-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "iam:PutUserPermissionsBoundary", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_user_permissions_boundary_invalid_arn_rejected.py", "service": "iam"} {"check_id": "iam.user-permissions-boundary-lifecycle", "deployments": [], "key": "iam/user-permissions-boundary-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreatePolicy", "iam:CreateUser", "iam:DeletePolicy", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:GetUser", "iam:PutUserPermissionsBoundary"], "path": "behavioral/iam/check_user_permissions_boundary_lifecycle.py", "service": "iam"} {"check_id": "iam.user-with-path", "deployments": [], "key": "iam/user-with-path", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_user_with_path.py", "service": "iam"} {"check_id": "iam.virtual-mfa-device-lifecycle", "deployments": [], "key": "iam/virtual-mfa-device-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:GetMFADevice", "iam:ListMFADevices", "iam:ListVirtualMFADevices"], "path": "behavioral/iam/check_virtual_mfa_device_lifecycle.py", "service": "iam"} {"check_id": "iam.virtual-mfa-device-server-generated-seed-and-qrcode-contract", "deployments": [], "key": "iam/virtual-mfa-device-server-generated-seed-and-qrcode-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ListUsers"], "path": "behavioral/iam/check_virtual_mfa_device_server_generated_seed_and_qrcode_contract.py", "service": "iam"} {"check_id": "iam.webidentity-federation-double-toggle-rejected", "deployments": [], "key": "iam/webidentity-federation-double-toggle-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetCallerIdentity"], "path": "behavioral/iam/check_webidentity_federation_double_toggle_rejected.py", "service": "iam"} {"check_id": "iam__kinesis__logs__sts.put-subscription-filter-cross-region-destination-rejected", "deployments": [], "key": "iam__kinesis__logs__sts/put-subscription-filter-cross-region-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "logs:CreateLogGroup", "logs:DeleteDestination", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutDestination", "logs:PutDestinationPolicy", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/iam__kinesis__logs__sts/check_put_subscription_filter_cross_region_destination_rejected.py", "service": "iam__kinesis__logs__sts"} {"check_id": "iam__kinesis__pipes__sqs.kinesis-source-filter-on-decoded-data-field-and-input-template-rendering", "deployments": [], "key": "iam__kinesis__pipes__sqs/kinesis-source-filter-on-decoded-data-field-and-input-template-rendering", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/iam__kinesis__pipes__sqs/check_kinesis_source_filter_on_decoded_data_field_and_input_template_rendering.py", "service": "iam__kinesis__pipes__sqs"} {"check_id": "iam__kinesis__s3.create-channel-on-provisioned-stream-rejected-until-on-demand", "deployments": [], "key": "iam__kinesis__s3/create-channel-on-provisioned-stream-rejected-until-on-demand", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "kinesis:UpdateStreamMode", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iam__kinesis__s3/check_create_channel_on_provisioned_stream_rejected_until_on_demand.py", "service": "iam__kinesis__s3"} {"check_id": "iam__kinesis__s3.create-channel-output-key-template-variants-rejected", "deployments": [], "key": "iam__kinesis__s3/create-channel-output-key-template-variants-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iam__kinesis__s3/check_create_channel_output_key_template_variants_rejected.py", "service": "iam__kinesis__s3"} {"check_id": "iam__kinesis__s3.s3-channel-delivers-every-put-records-payload-once", "deployments": [], "key": "iam__kinesis__s3/s3-channel-delivers-every-put-records-payload-once", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:PutRecords", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iam__kinesis__s3/check_s3_channel_delivers_every_put_records_payload_once.py", "service": "iam__kinesis__s3"} {"check_id": "iam__kinesis__s3.s3-channel-echoes-freshness-and-refuses-below-minimum-while-put-records-accepted", "deployments": [], "key": "iam__kinesis__s3/s3-channel-echoes-freshness-and-refuses-below-minimum-while-put-records-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "kinesis:PutRecords", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iam__kinesis__s3/check_s3_channel_echoes_freshness_and_refuses_below_minimum_while_put_records_accepted.py", "service": "iam__kinesis__s3"} {"check_id": "iam__kms.key-policy-delegation-is-required-for-an-identity-policy-grant", "deployments": [], "key": "iam__kms/key-policy-delegation-is-required-for-an-identity-policy-grant", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:PutUserPolicy", "kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion"], "path": "behavioral/iam__kms/check_key_policy_delegation_is_required_for_an_identity_policy_grant.py", "service": "iam__kms"} {"check_id": "iam__kms.sep-kms-key-scope-key-policy-deny-beats-identity-allow-on-that-key-only-denied", "deployments": [], "key": "iam__kms/sep-kms-key-scope-key-policy-deny-beats-identity-allow-on-that-key-only-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:PutUserPolicy", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/iam__kms/check_sep_kms_key_scope_key_policy_deny_beats_identity_allow_on_that_key_only_denied.py", "service": "iam__kms"} {"check_id": "iam__kms.sep-policy-composition-kms-key-policy-required-identity-policy-alone-denied", "deployments": [], "key": "iam__kms/sep-policy-composition-kms-key-policy-required-identity-policy-alone-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy", "kms:CreateKey", "kms:Decrypt", "kms:ListAliases", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/iam__kms/check_sep_policy_composition_kms_key_policy_required_identity_policy_alone_denied.py", "service": "iam__kms"} {"check_id": "iam__kms__lambda__logs__sts.durable-execution-kms-disabled-still-serves-metadata", "deployments": [], "key": "iam__kms__lambda__logs__sts/durable-execution-kms-disabled-still-serves-metadata", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/iam__kms__lambda__logs__sts/check_durable_execution_kms_disabled_still_serves_metadata.py", "service": "iam__kms__lambda__logs__sts"} {"check_id": "iam__kms__s3__secretsmanager__sts.deleted-access-key-is-refused-by-sts-s3-kms-and-secrets-manager", "deployments": [], "key": "iam__kms__s3__secretsmanager__sts/deleted-access-key-is-refused-by-sts-s3-kms-and-secrets-manager", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:PutUserPolicy"], "path": "behavioral/iam__kms__s3__secretsmanager__sts/check_deleted_access_key_is_refused_by_sts_s3_kms_and_secrets_manager.py", "service": "iam__kms__s3__secretsmanager__sts"} {"check_id": "iam__kms__secretsmanager__sts.deactivated-access-key-is-refused-by-sts-kms-and-secrets-manager", "deployments": [], "key": "iam__kms__secretsmanager__sts/deactivated-access-key-is-refused-by-sts-kms-and-secrets-manager", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:PutUserPolicy", "iam:UpdateAccessKey"], "path": "behavioral/iam__kms__secretsmanager__sts/check_deactivated_access_key_is_refused_by_sts_kms_and_secrets_manager.py", "service": "iam__kms__secretsmanager__sts"} {"check_id": "iam__lambda.create-function-requires-matching-code-signing-config-condition", "deployments": [], "key": "iam__lambda/create-function-requires-matching-code-signing-config-condition", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "logs:DeleteLogGroup", "signer:CancelSigningProfile", "signer:PutSigningProfile", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__lambda/check_create_function_requires_matching_code_signing_config_condition.py", "service": "iam__lambda"} {"check_id": "iam__lambda.lambda-cannot-put-events-without-permission", "deployments": [], "key": "iam__lambda/lambda-cannot-put-events-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/iam__lambda/check_lambda_cannot_put_events_without_permission.py", "service": "iam__lambda"} {"check_id": "iam__lambda.xsvc-iam-2-lambda-add-permission-alone-authorizes-invoke", "deployments": [], "key": "iam__lambda/xsvc-iam-2-lambda-add-permission-alone-authorizes-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy"], "path": "behavioral/iam__lambda/check_xsvc_iam_2_lambda_add_permission_alone_authorizes_invoke.py", "service": "iam__lambda"} {"check_id": "iam__lambda.xsvc-iam-2-lambda-invoke-without-permission-denied", "deployments": [], "key": "iam__lambda/xsvc-iam-2-lambda-invoke-without-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy"], "path": "behavioral/iam__lambda/check_xsvc_iam_2_lambda_invoke_without_permission_denied.py", "service": "iam__lambda"} {"check_id": "iam__lambda.xsvc-iam-2-lambda-remove-permission-revokes-invoke-denied", "deployments": [], "key": "iam__lambda/xsvc-iam-2-lambda-remove-permission-revokes-invoke-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission"], "path": "behavioral/iam__lambda/check_xsvc_iam_2_lambda_remove_permission_revokes_invoke_denied.py", "service": "iam__lambda"} {"check_id": "iam__lambda__logs.list-versions-by-function-reports-per-version-configuration", "deployments": [], "key": "iam__lambda__logs/list-versions-by-function-reports-per-version-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListVersionsByFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/iam__lambda__logs/check_list_versions_by_function_reports_per_version_configuration.py", "service": "iam__lambda__logs"} {"check_id": "iam__lambda__logs__pipes__sqs.sqs-source-lambda-target-batch-item-failures-redeliver-only-reported-items", "deployments": [], "key": "iam__lambda__logs__pipes__sqs/sqs-source-lambda-target-batch-item-failures-redeliver-only-reported-items", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/iam__lambda__logs__pipes__sqs/check_sqs_source_lambda_target_batch_item_failures_redeliver_only_reported_items.py", "service": "iam__lambda__logs__pipes__sqs"} {"check_id": "iam__lambda__logs__pipes__sqs.sqs-source-lambda-target-unrecognized-item-identifier-redelivers-whole-batch", "deployments": [], "key": "iam__lambda__logs__pipes__sqs/sqs-source-lambda-target-unrecognized-item-identifier-redelivers-whole-batch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/iam__lambda__logs__pipes__sqs/check_sqs_source_lambda_target_unrecognized_item_identifier_redelivers_whole_batch.py", "service": "iam__lambda__logs__pipes__sqs"} {"check_id": "iam__lambda__logs__scheduler__sqs.scheduler-lambda-universal-target-invalid-input-dead-letters", "deployments": [], "key": "iam__lambda__logs__scheduler__sqs/scheduler-lambda-universal-target-invalid-input-dead-letters", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/iam__lambda__logs__scheduler__sqs/check_scheduler_lambda_universal_target_invalid_input_dead_letters.py", "service": "iam__lambda__logs__scheduler__sqs"} {"check_id": "iam__lambda__s3.bucket-policy-deleted-role-principal-rejected", "deployments": [], "key": "iam__lambda__s3/bucket-policy-deleted-role-principal-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/iam__lambda__s3/check_bucket_policy_deleted_role_principal_rejected.py", "service": "iam__lambda__s3"} {"check_id": "iam__lambda__s3__sts.assume-role-denied-when-trust-policy-omits-lambda-role", "deployments": [], "key": "iam__lambda__s3__sts/assume-role-denied-when-trust-policy-omits-lambda-role", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/iam__lambda__s3__sts/check_assume_role_denied_when_trust_policy_omits_lambda_role.py", "service": "iam__lambda__s3__sts"} {"check_id": "iam__lambda__s3__sts.lambda-assumed-role-credential-reads-restricted-bucket", "deployments": [], "key": "iam__lambda__s3__sts/lambda-assumed-role-credential-reads-restricted-bucket", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/iam__lambda__s3__sts/check_lambda_assumed_role_credential_reads_restricted_bucket.py", "service": "iam__lambda__s3__sts"} {"check_id": "iam__lambda__sns__sqs.https-delivery-content-type-defaults-to-text-plain-and-follows-headercontenttype", "deployments": [], "key": "iam__lambda__sns__sqs/https-delivery-content-type-defaults-to-text-plain-and-follows-headercontenttype", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/iam__lambda__sns__sqs/check_https_delivery_content_type_defaults_to_text_plain_and_follows_headercontenttype.py", "service": "iam__lambda__sns__sqs"} {"check_id": "iam__lambda__sns__sqs.unsubscribe-confirmation-posts-only-for-the-anonymous-flow-and-its-token-reconfirms", "deployments": [], "key": "iam__lambda__sns__sqs/unsubscribe-confirmation-posts-only-for-the-anonymous-flow-and-its-token-reconfirms", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/iam__lambda__sns__sqs/check_unsubscribe_confirmation_posts_only_for_the_anonymous_flow_and_its_token_reconfirms.py", "service": "iam__lambda__sns__sqs"} {"check_id": "iam__lambda__sts.function-identity-explicit-deny-overrides-its-allow", "deployments": [], "key": "iam__lambda__sts/function-identity-explicit-deny-overrides-its-allow", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/iam__lambda__sts/check_function_identity_explicit_deny_overrides_its_allow.py", "service": "iam__lambda__sts"} {"check_id": "iam__lambda__sts.function-runs-as-an-assumed-role-session-named-for-the-function", "deployments": [], "key": "iam__lambda__sts/function-runs-as-an-assumed-role-session-named-for-the-function", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/iam__lambda__sts/check_function_runs_as_an_assumed_role_session_named_for_the_function.py", "service": "iam__lambda__sts"} {"check_id": "iam__lambda__sts.iam-propagation-is-a-retry-contract-not-a-sleep", "deployments": [], "key": "iam__lambda__sts/iam-propagation-is-a-retry-contract-not-a-sleep", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:ListFunctions", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__lambda__sts/check_iam_propagation_is_a_retry_contract_not_a_sleep.py", "service": "iam__lambda__sts"} {"check_id": "iam__lambda__sts.identity-policy-grant-on-unqualified-arn-denies-qualified-invoke", "deployments": [], "key": "iam__lambda__sts/identity-policy-grant-on-unqualified-arn-denies-qualified-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__lambda__sts/check_identity_policy_grant_on_unqualified_arn_denies_qualified_invoke.py", "service": "iam__lambda__sts"} {"check_id": "iam__lambda__sts.nodejs22-environment-keys-without-session-token-rejected", "deployments": [], "key": "iam__lambda__sts/nodejs22-environment-keys-without-session-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/iam__lambda__sts/check_nodejs22_environment_keys_without_session_token_rejected.py", "service": "iam__lambda__sts"} {"check_id": "iam__lambda__sts.nodejs22-execution-role-credentials-in-environment", "deployments": [], "key": "iam__lambda__sts/nodejs22-execution-role-credentials-in-environment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/iam__lambda__sts/check_nodejs22_execution_role_credentials_in_environment.py", "service": "iam__lambda__sts"} {"check_id": "iam__logs.hlc-endpoint-event-shapes-accepted-missing-event-rejected", "deployments": [], "key": "iam__logs/hlc-endpoint-event-shapes-accepted-missing-event-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutBearerTokenAuthentication"], "path": "behavioral/iam__logs/check_hlc_endpoint_event_shapes_accepted_missing_event_rejected.py", "service": "iam__logs"} {"check_id": "iam__logs.structured-json-endpoint-partial-success-reports-refused-record-count", "deployments": [], "key": "iam__logs/structured-json-endpoint-partial-success-reports-refused-record-count", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutBearerTokenAuthentication"], "path": "behavioral/iam__logs/check_structured_json_endpoint_partial_success_reports_refused_record_count.py", "service": "iam__logs"} {"check_id": "iam__opensearch__sts.xsvc-opensearch-1-unmapped-iam-role-search-forbidden", "deployments": [], "key": "iam__opensearch__sts/xsvc-opensearch-1-unmapped-iam-role-search-forbidden", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__opensearch__sts/check_xsvc_opensearch_1_unmapped_iam_role_search_forbidden.py", "service": "iam__opensearch__sts"} {"check_id": "iam__pipes__sqs.create-pipe-input-template-over-max-length-rejected", "deployments": [], "key": "iam__pipes__sqs/create-pipe-input-template-over-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/iam__pipes__sqs/check_create_pipe_input_template_over_max_length_rejected.py", "service": "iam__pipes__sqs"} {"check_id": "iam__pipes__sqs.input-template-auto-quotes-strings-and-keeps-inlined-object-quotes-intact", "deployments": [], "key": "iam__pipes__sqs/input-template-auto-quotes-strings-and-keeps-inlined-object-quotes-intact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/iam__pipes__sqs/check_input_template_auto_quotes_strings_and_keeps_inlined_object_quotes_intact.py", "service": "iam__pipes__sqs"} {"check_id": "iam__pipes__sqs.input-template-reserved-pipe-variables-render-real-values", "deployments": [], "key": "iam__pipes__sqs/input-template-reserved-pipe-variables-render-real-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/iam__pipes__sqs/check_input_template_reserved_pipe_variables_render_real_values.py", "service": "iam__pipes__sqs"} {"check_id": "iam__pipes__sqs.pipe-filter-on-poller-added-event-source-field-never-matches", "deployments": [], "key": "iam__pipes__sqs/pipe-filter-on-poller-added-event-source-field-never-matches", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/iam__pipes__sqs/check_pipe_filter_on_poller_added_event_source_field_never_matches.py", "service": "iam__pipes__sqs"} {"check_id": "iam__pipes__sqs.update-pipe-input-template-over-max-length-rejected-pipe-keeps-working", "deployments": [], "key": "iam__pipes__sqs/update-pipe-input-template-over-max-length-rejected-pipe-keeps-working", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/iam__pipes__sqs/check_update_pipe_input_template_over_max_length_rejected_pipe_keeps_working.py", "service": "iam__pipes__sqs"} {"check_id": "iam__resiliencehubv2.invoker-role-trust-rejected-then-accepted-after-fix", "deployments": [], "key": "iam__resiliencehubv2/invoker-role-trust-rejected-then-accepted-after-fix", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:UpdateAssumeRolePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:DeleteService"], "path": "behavioral/iam__resiliencehubv2/check_invoker_role_trust_rejected_then_accepted_after_fix.py", "service": "iam__resiliencehubv2"} {"check_id": "iam__resiliencehubv2.revoking-invoker-role-trust-does-not-block-existing-service", "deployments": [], "key": "iam__resiliencehubv2/revoking-invoker-role-trust-does-not-block-existing-service", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:UpdateAssumeRolePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:DeleteService", "resiliencehubv2:GetService", "resiliencehubv2:UpdateService"], "path": "behavioral/iam__resiliencehubv2/check_revoking_invoker_role_trust_does_not_block_existing_service.py", "service": "iam__resiliencehubv2"} {"check_id": "iam__s3.presigned-get-signed-with-deleted-iam-user-key-rejected", "deployments": [], "key": "iam__s3/presigned-get-signed-with-deleted-iam-user-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/iam__s3/check_presigned_get_signed_with_deleted_iam_user_key_rejected.py", "service": "iam__s3"} {"check_id": "iam__s3.resource-policy-alone-authorizes-a-principal-with-no-identity-policy", "deployments": [], "key": "iam__s3/resource-policy-alone-authorizes-a-principal-with-no-identity-policy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListUserPolicies", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/iam__s3/check_resource_policy_alone_authorizes_a_principal_with_no_identity_policy.py", "service": "iam__s3"} {"check_id": "iam__s3.sep-policy-composition-s3-identity-or-bucket-policy-each-suffice-denied-with-neither", "deployments": [], "key": "iam__s3/sep-policy-composition-s3-identity-or-bucket-policy-each-suffice-denied-with-neither", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/iam__s3/check_sep_policy_composition_s3_identity_or_bucket_policy_each_suffice_denied_with_neither.py", "service": "iam__s3"} {"check_id": "iam__s3__stepfunctions__sts.distributed-map-csv-item-reader-pads-short-rows-and-drops-long-row-extras", "deployments": [], "key": "iam__s3__stepfunctions__sts/distributed-map-csv-item-reader-pads-short-rows-and-drops-long-row-extras", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/iam__s3__stepfunctions__sts/check_distributed_map_csv_item_reader_pads_short_rows_and_drops_long_row_extras.py", "service": "iam__s3__stepfunctions__sts"} {"check_id": "iam__s3__sts.assumed-role-permissions-policy-requestedregion-condition-gates-put-object-by-region", "deployments": [], "key": "iam__s3__sts/assumed-role-permissions-policy-requestedregion-condition-gates-put-object-by-region", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:GetBucketLocation", "s3:HeadObject"], "path": "behavioral/iam__s3__sts/check_assumed_role_permissions_policy_requestedregion_condition_gates_put_object_by_region.py", "service": "iam__s3__sts"} {"check_id": "iam__s3__sts.deny-unless-mfa-present-blocks-plain-session-but-allows-mfa-session", "deployments": [], "key": "iam__s3__sts/deny-unless-mfa-present-blocks-plain-session-but-allows-mfa-session", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:ListAccessKeys", "iam:ListMFADevices", "iam:ListUserPolicies", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iam__s3__sts/check_deny_unless_mfa_present_blocks_plain_session_but_allows_mfa_session.py", "service": "iam__s3__sts"} {"check_id": "iam__s3__sts.s3-put-bucket-encryption-requires-putencryptionconfiguration-action", "deployments": [], "key": "iam__s3__sts/s3-put-bucket-encryption-requires-putencryptionconfiguration-action", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:GetBucketEncryption", "s3:PutBucketEncryption", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__s3__sts/check_s3_put_bucket_encryption_requires_putencryptionconfiguration_action.py", "service": "iam__s3__sts"} {"check_id": "iam__s3__sts.s3-sts-session-credentials-object-roundtrip", "deployments": [], "key": "iam__s3__sts/s3-sts-session-credentials-object-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__s3__sts/check_s3_sts_session_credentials_object_roundtrip.py", "service": "iam__s3__sts"} {"check_id": "iam__s3__sts.xsvc-iam-2-s3-role-arn-principal-authorizes-every-session", "deployments": [], "key": "iam__s3__sts/xsvc-iam-2-s3-role-arn-principal-authorizes-every-session", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__s3__sts/check_xsvc_iam_2_s3_role_arn_principal_authorizes_every_session.py", "service": "iam__s3__sts"} {"check_id": "iam__s3__sts.xsvc-iam-2-s3-same-name-user-arn-principal-does-not-admit-role-session-denied", "deployments": [], "key": "iam__s3__sts/xsvc-iam-2-s3-same-name-user-arn-principal-does-not-admit-role-session-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__s3__sts/check_xsvc_iam_2_s3_same_name_user_arn_principal_does_not_admit_role_session_denied.py", "service": "iam__s3__sts"} {"check_id": "iam__s3__sts.xsvc-iam-2-s3-session-arn-principal-admits-only-that-session-denied", "deployments": [], "key": "iam__s3__sts/xsvc-iam-2-s3-session-arn-principal-admits-only-that-session-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__s3__sts/check_xsvc_iam_2_s3_session_arn_principal_admits_only_that_session_denied.py", "service": "iam__s3__sts"} {"check_id": "iam__scheduler.create-schedule-target-input-262144-byte-boundary", "deployments": [], "key": "iam__scheduler/create-schedule-target-input-262144-byte-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:ListSchedules"], "path": "behavioral/iam__scheduler/check_create_schedule_target_input_262144_byte_boundary.py", "service": "iam__scheduler"} {"check_id": "iam__scheduler.one-time-at-schedule-start-after-end-date-rejected", "deployments": [], "key": "iam__scheduler/one-time-at-schedule-start-after-end-date-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule"], "path": "behavioral/iam__scheduler/check_one_time_at_schedule_start_after_end_date_rejected.py", "service": "iam__scheduler"} {"check_id": "iam__scheduler__sqs.one-time-at-schedule-ignores-start-and-end-date", "deployments": [], "key": "iam__scheduler__sqs/one-time-at-schedule-ignores-start-and-end-date", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/iam__scheduler__sqs/check_one_time_at_schedule_ignores_start_and_end_date.py", "service": "iam__scheduler__sqs"} {"check_id": "iam__scheduler__sqs__sts.create-schedule-caller-without-passrole-denied", "deployments": [], "key": "iam__scheduler__sqs__sts/create-schedule-caller-without-passrole-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:ListSchedules", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:AssumeRole"], "path": "behavioral/iam__scheduler__sqs__sts/check_create_schedule_caller_without_passrole_denied.py", "service": "iam__scheduler__sqs__sts"} {"check_id": "iam__scheduler__stepfunctions.universal-target-sdk-service-id-vs-endpoint-prefix", "deployments": [], "key": "iam__scheduler__stepfunctions/universal-target-sdk-service-id-vs-endpoint-prefix", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/iam__scheduler__stepfunctions/check_universal_target_sdk_service_id_vs_endpoint_prefix.py", "service": "iam__scheduler__stepfunctions"} {"check_id": "iam__secretsmanager.xsvc-iam-2-secretsmanager-access-denied-status-code-differs-by-protocol", "deployments": [], "key": "iam__secretsmanager/xsvc-iam-2-secretsmanager-access-denied-status-code-differs-by-protocol", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListUsers", "secretsmanager:ListSecrets"], "path": "behavioral/iam__secretsmanager/check_xsvc_iam_2_secretsmanager_access_denied_status_code_differs_by_protocol.py", "service": "iam__secretsmanager"} {"check_id": "iam__sns.xsvc-iam-2-sns-identity-policy-only-authorizes-publish", "deployments": [], "key": "iam__sns/xsvc-iam-2-sns-identity-policy-only-authorizes-publish", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes"], "path": "behavioral/iam__sns/check_xsvc_iam_2_sns_identity_policy_only_authorizes_publish.py", "service": "iam__sns"} {"check_id": "iam__sns.xsvc-iam-2-sns-publish-denied-with-neither-grant", "deployments": [], "key": "iam__sns/xsvc-iam-2-sns-publish-denied-with-neither-grant", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/iam__sns/check_xsvc_iam_2_sns_publish_denied_with_neither_grant.py", "service": "iam__sns"} {"check_id": "iam__sns.xsvc-iam-2-sns-topic-policy-deny-beats-identity-allow-denied", "deployments": [], "key": "iam__sns/xsvc-iam-2-sns-topic-policy-deny-beats-identity-allow-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:GetUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/iam__sns/check_xsvc_iam_2_sns_topic_policy_deny_beats_identity_allow_denied.py", "service": "iam__sns"} {"check_id": "iam__sns.xsvc-iam-2-sns-topic-policy-only-authorizes-publish", "deployments": [], "key": "iam__sns/xsvc-iam-2-sns-topic-policy-only-authorizes-publish", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/iam__sns/check_xsvc_iam_2_sns_topic_policy_only_authorizes_publish.py", "service": "iam__sns"} {"check_id": "iam__sqs.sep-policy-composition-sqs-identity-or-queue-policy-each-suffice-denied-with-neither", "deployments": [], "key": "iam__sqs/sep-policy-composition-sqs-identity-or-queue-policy-each-suffice-denied-with-neither", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPermissionsBoundary", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:RemoveUserFromGroup", "iam:SimulatePrincipalPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/iam__sqs/check_sep_policy_composition_sqs_identity_or_queue_policy_each_suffice_denied_with_neither.py", "service": "iam__sqs"} {"check_id": "iam__sqs__sts.overly-permissive-get-queue-attributes-without-permission-denied", "deployments": [], "key": "iam__sqs__sts/overly-permissive-get-queue-attributes-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__sqs__sts/check_overly_permissive_get_queue_attributes_without_permission_denied.py", "service": "iam__sqs__sts"} {"check_id": "iam__sqs__sts.start-message-move-task-requires-composite-source-and-destination-permissions", "deployments": [], "key": "iam__sqs__sts/start-message-move-task-requires-composite-source-and-destination-permissions", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__sqs__sts/check_start_message_move_task_requires_composite_source_and_destination_permissions.py", "service": "iam__sqs__sts"} {"check_id": "iam__ssm.activation-with-inline-policy-role-describe-by-id-echoes-fields", "deployments": [], "key": "iam__ssm/activation-with-inline-policy-role-describe-by-id-echoes-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations"], "path": "behavioral/iam__ssm/check_activation_with_inline_policy_role_describe_by_id_echoes_fields.py", "service": "iam__ssm"} {"check_id": "iam__ssm__sts.assumed-role-sees-the-same-account-state", "deployments": [], "key": "iam__ssm__sts/assumed-role-sees-the-same-account-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "ssm:AddTagsToResource", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:PutParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/iam__ssm__sts/check_assumed_role_sees_the_same_account_state.py", "service": "iam__ssm__sts"} {"check_id": "iam__stepfunctions.confused-deputy-source-arn-mismatch-denied", "deployments": [], "key": "iam__stepfunctions/confused-deputy-source-arn-mismatch-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/iam__stepfunctions/check_confused_deputy_source_arn_mismatch_denied.py", "service": "iam__stepfunctions"} {"check_id": "iam__stepfunctions.confused-deputy-source-arn-trust-variants-permit-nested-executions", "deployments": [], "key": "iam__stepfunctions/confused-deputy-source-arn-trust-variants-permit-nested-executions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/iam__stepfunctions/check_confused_deputy_source_arn_trust_variants_permit_nested_executions.py", "service": "iam__stepfunctions"} {"check_id": "iam__stepfunctions.distributed-map-csv-item-reader-invalid-delimiter-rejected-at-create", "deployments": [], "key": "iam__stepfunctions/distributed-map-csv-item-reader-invalid-delimiter-rejected-at-create", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/iam__stepfunctions/check_distributed_map_csv_item_reader_invalid_delimiter_rejected_at_create.py", "service": "iam__stepfunctions"} {"check_id": "iam__stepfunctions.pass-state-result-builder-reads-variable-before-its-own-assign-commits", "deployments": [], "key": "iam__stepfunctions/pass-state-result-builder-reads-variable-before-its-own-assign-commits", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/iam__stepfunctions/check_pass_state_result_builder_reads_variable_before_its_own_assign_commits.py", "service": "iam__stepfunctions"} {"check_id": "iam__stepfunctions.retry-maxattempts-negative-literal-rejected-at-create-state-machine", "deployments": [], "key": "iam__stepfunctions/retry-maxattempts-negative-literal-rejected-at-create-state-machine", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/iam__stepfunctions/check_retry_maxattempts_negative_literal_rejected_at_create_state_machine.py", "service": "iam__stepfunctions"} {"check_id": "iam__stepfunctions.task-retry-attempt-budget-resets-on-redrive", "deployments": [], "key": "iam__stepfunctions/task-retry-attempt-budget-resets-on-redrive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/iam__stepfunctions/check_task_retry_attempt_budget_resets_on_redrive.py", "service": "iam__stepfunctions"} {"check_id": "iam__stepfunctions.test-state-denied-without-permission", "deployments": [], "key": "iam__stepfunctions/test-state-denied-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam__stepfunctions/check_test_state_denied_without_permission.py", "service": "iam__stepfunctions"} {"check_id": "iam__stepfunctions.test-state-reveal-secrets-requires-permission", "deployments": [], "key": "iam__stepfunctions/test-state-reveal-secrets-requires-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy"], "path": "behavioral/iam__stepfunctions/check_test_state_reveal_secrets_requires_permission.py", "service": "iam__stepfunctions"} {"check_id": "iam__storagegateway.least-privilege-delete-tape-pool-denied-then-allowed", "deployments": [], "key": "iam__storagegateway/least-privilege-delete-tape-pool-denied-then-allowed", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "storagegateway:DeleteTapePool", "storagegateway:ListTapePools"], "path": "behavioral/iam__storagegateway/check_least_privilege_delete_tape_pool_denied_then_allowed.py", "service": "iam__storagegateway"} {"check_id": "identitystore.concurrent-duplicate-group-displayname-single-winner", "deployments": [], "key": "identitystore/concurrent-duplicate-group-displayname-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:GetGroupId", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_concurrent_duplicate_group_displayname_single_winner.py", "service": "identitystore"} {"check_id": "identitystore.concurrent-duplicate-group-membership-single-winner", "deployments": [], "key": "identitystore/concurrent-duplicate-group-membership-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_concurrent_duplicate_group_membership_single_winner.py", "service": "identitystore"} {"check_id": "identitystore.concurrent-duplicate-membership-creation-race", "deployments": [], "key": "identitystore/concurrent-duplicate-membership-creation-race", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_concurrent_duplicate_membership_creation_race.py", "service": "identitystore"} {"check_id": "identitystore.concurrent-duplicate-username-creation-single-winner", "deployments": [], "key": "identitystore/concurrent-duplicate-username-creation-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:GetUserId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_concurrent_duplicate_username_creation_single_winner.py", "service": "identitystore"} {"check_id": "identitystore.concurrent-group-creation-same-display-name-race", "deployments": [], "key": "identitystore/concurrent-group-creation-same-display-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:GetGroupId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_concurrent_group_creation_same_display_name_race.py", "service": "identitystore"} {"check_id": "identitystore.concurrent-group-membership-creation-race", "deployments": [], "key": "identitystore/concurrent-group-membership-creation-race", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_concurrent_group_membership_creation_race.py", "service": "identitystore"} {"check_id": "identitystore.create-group-describe-fields", "deployments": [], "key": "identitystore/create-group-describe-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_group_describe_fields.py", "service": "identitystore"} {"check_id": "identitystore.create-group-describe-reflects-fields", "deployments": [], "key": "identitystore/create-group-describe-reflects-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_group_describe_reflects_fields.py", "service": "identitystore"} {"check_id": "identitystore.create-group-duplicate-display-name-conflict-rejected", "deployments": [], "key": "identitystore/create-group-duplicate-display-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:GetGroupId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_group_duplicate_display_name_conflict_rejected.py", "service": "identitystore"} {"check_id": "identitystore.create-group-duplicate-displayname-rejected", "deployments": [], "key": "identitystore/create-group-duplicate-displayname-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:GetGroupId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_group_duplicate_displayname_rejected.py", "service": "identitystore"} {"check_id": "identitystore.create-group-lifecycle", "deployments": [], "key": "identitystore/create-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_group_lifecycle.py", "service": "identitystore"} {"check_id": "identitystore.create-group-membership-duplicate-rejected", "deployments": [], "key": "identitystore/create-group-membership-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_group_membership_duplicate_rejected.py", "service": "identitystore"} {"check_id": "identitystore.create-group-membership-nonexistent-member-not-found-rejected", "deployments": [], "key": "identitystore/create-group-membership-nonexistent-member-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_group_membership_nonexistent_member_not_found_rejected.py", "service": "identitystore"} {"check_id": "identitystore.create-group-nonexistent-identity-store-rejected", "deployments": [], "key": "identitystore/create-group-nonexistent-identity-store-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:GetGroupId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_group_nonexistent_identity_store_rejected.py", "service": "identitystore"} {"check_id": "identitystore.create-membership-nonexistent-member-rejected", "deployments": [], "key": "identitystore/create-membership-nonexistent-member-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:DescribeGroupMembership", "identitystore:ListGroupMemberships", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_membership_nonexistent_member_rejected.py", "service": "identitystore"} {"check_id": "identitystore.create-user-defaults-enabled", "deployments": [], "key": "identitystore/create-user-defaults-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_user_defaults_enabled.py", "service": "identitystore"} {"check_id": "identitystore.create-user-describe-reflects-fields", "deployments": [], "key": "identitystore/create-user-describe-reflects-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_user_describe_reflects_fields.py", "service": "identitystore"} {"check_id": "identitystore.create-user-duplicate-username-rejected", "deployments": [], "key": "identitystore/create-user-duplicate-username-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:GetUserId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_user_duplicate_username_rejected.py", "service": "identitystore"} {"check_id": "identitystore.create-user-lifecycle", "deployments": [], "key": "identitystore/create-user-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_create_user_lifecycle.py", "service": "identitystore"} {"check_id": "identitystore.delete-already-deleted-group-is-idempotent", "deployments": [], "key": "identitystore/delete-already-deleted-group-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_already_deleted_group_is_idempotent.py", "service": "identitystore"} {"check_id": "identitystore.delete-group-cascades-membership-removal", "deployments": [], "key": "identitystore/delete-group-cascades-membership-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:DescribeGroupMembership", "identitystore:DescribeUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_group_cascades_membership_removal.py", "service": "identitystore"} {"check_id": "identitystore.delete-group-membership-direct-removes-from-list", "deployments": [], "key": "identitystore/delete-group-membership-direct-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:DescribeGroupMembership", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_group_membership_direct_removes_from_list.py", "service": "identitystore"} {"check_id": "identitystore.delete-group-membership-repeat-delete-idempotent", "deployments": [], "key": "identitystore/delete-group-membership-repeat-delete-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:DescribeGroupMembership", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_group_membership_repeat_delete_idempotent.py", "service": "identitystore"} {"check_id": "identitystore.delete-group-then-describe-not-found", "deployments": [], "key": "identitystore/delete-group-then-describe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_group_then_describe_not_found.py", "service": "identitystore"} {"check_id": "identitystore.delete-user-cascades-membership-removal", "deployments": [], "key": "identitystore/delete-user-cascades-membership-removal", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:DescribeGroup", "identitystore:DescribeGroupMembership", "identitystore:DescribeUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_user_cascades_membership_removal.py", "service": "identitystore"} {"check_id": "identitystore.delete-user-removes-memberships", "deployments": [], "key": "identitystore/delete-user-removes-memberships", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:DescribeGroup", "identitystore:DescribeGroupMembership", "identitystore:DescribeUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_user_removes_memberships.py", "service": "identitystore"} {"check_id": "identitystore.delete-user-removes-resource", "deployments": [], "key": "identitystore/delete-user-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_user_removes_resource.py", "service": "identitystore"} {"check_id": "identitystore.delete-user-then-describe-not-found", "deployments": [], "key": "identitystore/delete-user-then-describe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_delete_user_then_describe_not_found.py", "service": "identitystore"} {"check_id": "identitystore.describe-group-malformed-id-validation-rejected", "deployments": [], "key": "identitystore/describe-group-malformed-id-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_describe_group_malformed_id_validation_rejected.py", "service": "identitystore"} {"check_id": "identitystore.describe-group-malformed-identity-store-id-rejected", "deployments": [], "key": "identitystore/describe-group-malformed-identity-store-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_describe_group_malformed_identity_store_id_rejected.py", "service": "identitystore"} {"check_id": "identitystore.describe-group-membership-fields-consistent", "deployments": [], "key": "identitystore/describe-group-membership-fields-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:DescribeGroupMembership", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_describe_group_membership_fields_consistent.py", "service": "identitystore"} {"check_id": "identitystore.describe-nonexistent-group-rejected", "deployments": [], "key": "identitystore/describe-nonexistent-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_describe_nonexistent_group_rejected.py", "service": "identitystore"} {"check_id": "identitystore.describe-nonexistent-user-not-found", "deployments": [], "key": "identitystore/describe-nonexistent-user-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_describe_nonexistent_user_not_found.py", "service": "identitystore"} {"check_id": "identitystore.duplicate-group-display-name-conflict-rejected", "deployments": [], "key": "identitystore/duplicate-group-display-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:GetGroupId", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_duplicate_group_display_name_conflict_rejected.py", "service": "identitystore"} {"check_id": "identitystore.duplicate-group-membership-conflict-rejected", "deployments": [], "key": "identitystore/duplicate-group-membership-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_duplicate_group_membership_conflict_rejected.py", "service": "identitystore"} {"check_id": "identitystore.error-structured-fields-resource-type-and-reason", "deployments": [], "key": "identitystore/error-structured-fields-resource-type-and-reason", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:DescribeGroup", "identitystore:DescribeGroupMembership", "identitystore:DescribeUser", "identitystore:GetUserId", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_error_structured_fields_resource_type_and_reason.py", "service": "identitystore"} {"check_id": "identitystore.get-group-id-by-display-name", "deployments": [], "key": "identitystore/get-group-id-by-display-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:GetGroupId", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_get_group_id_by_display_name.py", "service": "identitystore"} {"check_id": "identitystore.get-group-id-by-unique-attribute", "deployments": [], "key": "identitystore/get-group-id-by-unique-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:GetGroupId", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_get_group_id_by_unique_attribute.py", "service": "identitystore"} {"check_id": "identitystore.get-group-membership-id-matches-created", "deployments": [], "key": "identitystore/get-group-membership-id-matches-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:GetGroupMembershipId", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_get_group_membership_id_matches_created.py", "service": "identitystore"} {"check_id": "identitystore.get-group-membership-id-matches-describe", "deployments": [], "key": "identitystore/get-group-membership-id-matches-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:DescribeGroupMembership", "identitystore:GetGroupMembershipId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_get_group_membership_id_matches_describe.py", "service": "identitystore"} {"check_id": "identitystore.get-user-id-by-unique-attribute", "deployments": [], "key": "identitystore/get-user-id-by-unique-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:GetUserId", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_get_user_id_by_unique_attribute.py", "service": "identitystore"} {"check_id": "identitystore.get-user-id-by-username", "deployments": [], "key": "identitystore/get-user-id-by-username", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:GetUserId", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_get_user_id_by_username.py", "service": "identitystore"} {"check_id": "identitystore.get-user-id-malformed-attribute-path-rejected", "deployments": [], "key": "identitystore/get-user-id-malformed-attribute-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:GetUserId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_get_user_id_malformed_attribute_path_rejected.py", "service": "identitystore"} {"check_id": "identitystore.group-audit-fields-created-updated-by", "deployments": [], "key": "identitystore/group-audit-fields-created-updated-by", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_group_audit_fields_created_updated_by.py", "service": "identitystore"} {"check_id": "identitystore.group-membership-create-list-roundtrip", "deployments": [], "key": "identitystore/group-membership-create-list-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_group_membership_create_list_roundtrip.py", "service": "identitystore"} {"check_id": "identitystore.group-membership-create-then-describe", "deployments": [], "key": "identitystore/group-membership-create-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:DescribeGroupMembership", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_group_membership_create_then_describe.py", "service": "identitystore"} {"check_id": "identitystore.group-membership-created-and-described", "deployments": [], "key": "identitystore/group-membership-created-and-described", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:DescribeGroupMembership", "identitystore:GetGroupMembershipId", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_group_membership_created_and_described.py", "service": "identitystore"} {"check_id": "identitystore.group-without-description-field-omitted", "deployments": [], "key": "identitystore/group-without-description-field-omitted", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:ListGroups", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_group_without_description_field_omitted.py", "service": "identitystore"} {"check_id": "identitystore.invalid-identity-store-id-pattern-validation-rejected", "deployments": [], "key": "identitystore/invalid-identity-store-id-pattern-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:GetUserId", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_invalid_identity_store_id_pattern_validation_rejected.py", "service": "identitystore"} {"check_id": "identitystore.is-member-in-groups-mixed-membership", "deployments": [], "key": "identitystore/is-member-in-groups-mixed-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:IsMemberInGroups", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_is_member_in_groups_mixed_membership.py", "service": "identitystore"} {"check_id": "identitystore.is-member-in-groups-mixed-results", "deployments": [], "key": "identitystore/is-member-in-groups-mixed-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:IsMemberInGroups", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_is_member_in_groups_mixed_results.py", "service": "identitystore"} {"check_id": "identitystore.is-member-in-groups-reflects-membership", "deployments": [], "key": "identitystore/is-member-in-groups-reflects-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:IsMemberInGroups", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_is_member_in_groups_reflects_membership.py", "service": "identitystore"} {"check_id": "identitystore.list-group-memberships-for-member", "deployments": [], "key": "identitystore/list-group-memberships-for-member", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteGroupMembership", "identitystore:DeleteUser", "identitystore:ListGroupMembershipsForMember", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_group_memberships_for_member.py", "service": "identitystore"} {"check_id": "identitystore.list-group-memberships-for-member-reflects-all-groups", "deployments": [], "key": "identitystore/list-group-memberships-for-member-reflects-all-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMembershipsForMember", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_group_memberships_for_member_reflects_all_groups.py", "service": "identitystore"} {"check_id": "identitystore.list-group-memberships-for-member-reflects-multiple-groups", "deployments": [], "key": "identitystore/list-group-memberships-for-member-reflects-multiple-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMembershipsForMember", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_group_memberships_for_member_reflects_multiple_groups.py", "service": "identitystore"} {"check_id": "identitystore.list-group-memberships-max-results-out-of-range-rejected", "deployments": [], "key": "identitystore/list-group-memberships-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_group_memberships_max_results_out_of_range_rejected.py", "service": "identitystore"} {"check_id": "identitystore.list-group-memberships-page-size-honored", "deployments": [], "key": "identitystore/list-group-memberships-page-size-honored", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_group_memberships_page_size_honored.py", "service": "identitystore"} {"check_id": "identitystore.list-group-memberships-pagination", "deployments": [], "key": "identitystore/list-group-memberships-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_group_memberships_pagination.py", "service": "identitystore"} {"check_id": "identitystore.list-group-memberships-pagination-max-results", "deployments": [], "key": "identitystore/list-group-memberships-pagination-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:CreateGroupMembership", "identitystore:CreateUser", "identitystore:DeleteGroup", "identitystore:DeleteUser", "identitystore:ListGroupMemberships", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_group_memberships_pagination_max_results.py", "service": "identitystore"} {"check_id": "identitystore.list-groups-pagination-next-token", "deployments": [], "key": "identitystore/list-groups-pagination-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:ListGroups", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_groups_pagination_next_token.py", "service": "identitystore"} {"check_id": "identitystore.list-users-invalid-extension-name-rejected", "deployments": [], "key": "identitystore/list-users-invalid-extension-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:ListUsers", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_users_invalid_extension_name_rejected.py", "service": "identitystore"} {"check_id": "identitystore.list-users-pagination-next-token", "deployments": [], "key": "identitystore/list-users-pagination-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:ListUsers", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_users_pagination_next_token.py", "service": "identitystore"} {"check_id": "identitystore.list-users-reflects-created-users", "deployments": [], "key": "identitystore/list-users-reflects-created-users", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:ListUsers", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_list_users_reflects_created_users.py", "service": "identitystore"} {"check_id": "identitystore.recreate-group-after-delete-with-same-displayname", "deployments": [], "key": "identitystore/recreate-group-after-delete-with-same-displayname", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_recreate_group_after_delete_with_same_displayname.py", "service": "identitystore"} {"check_id": "identitystore.update-group-description-persist", "deployments": [], "key": "identitystore/update-group-description-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_group_description_persist.py", "service": "identitystore"} {"check_id": "identitystore.update-group-description-persists", "deployments": [], "key": "identitystore/update-group-description-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_group_description_persists.py", "service": "identitystore"} {"check_id": "identitystore.update-group-description-remove", "deployments": [], "key": "identitystore/update-group-description-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_group_description_remove.py", "service": "identitystore"} {"check_id": "identitystore.update-group-display-name-change-reflected-in-get-group-id", "deployments": [], "key": "identitystore/update-group-display-name-change-reflected-in-get-group-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:GetGroupId", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_group_display_name_change_reflected_in_get_group_id.py", "service": "identitystore"} {"check_id": "identitystore.update-group-display-name-persist", "deployments": [], "key": "identitystore/update-group-display-name-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:GetGroupId", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_group_display_name_persist.py", "service": "identitystore"} {"check_id": "identitystore.update-group-display-name-persists", "deployments": [], "key": "identitystore/update-group-display-name-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_group_display_name_persists.py", "service": "identitystore"} {"check_id": "identitystore.update-group-multiple-attributes-single-call", "deployments": [], "key": "identitystore/update-group-multiple-attributes-single-call", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "identitystore:DescribeGroup", "identitystore:UpdateGroup", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_group_multiple_attributes_single_call.py", "service": "identitystore"} {"check_id": "identitystore.update-user-attributes-persist", "deployments": [], "key": "identitystore/update-user-attributes-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_user_attributes_persist.py", "service": "identitystore"} {"check_id": "identitystore.update-user-display-name-operations", "deployments": [], "key": "identitystore/update-user-display-name-operations", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_user_display_name_operations.py", "service": "identitystore"} {"check_id": "identitystore.update-user-immutable-userid-attribute-rejected", "deployments": [], "key": "identitystore/update-user-immutable-userid-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_user_immutable_userid_attribute_rejected.py", "service": "identitystore"} {"check_id": "identitystore.update-user-invalid-attribute-path-validation-rejected", "deployments": [], "key": "identitystore/update-user-invalid-attribute-path-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_user_invalid_attribute_path_validation_rejected.py", "service": "identitystore"} {"check_id": "identitystore.update-user-name-attributes-persist", "deployments": [], "key": "identitystore/update-user-name-attributes-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_user_name_attributes_persist.py", "service": "identitystore"} {"check_id": "identitystore.update-user-nickname-and-username-persist", "deployments": [], "key": "identitystore/update-user-nickname-and-username-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_user_nickname_and_username_persist.py", "service": "identitystore"} {"check_id": "identitystore.update-user-nickname-persists", "deployments": [], "key": "identitystore/update-user-nickname-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_user_nickname_persists.py", "service": "identitystore"} {"check_id": "identitystore.update-user-phone-numbers-full-replace", "deployments": [], "key": "identitystore/update-user-phone-numbers-full-replace", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_update_user_phone_numbers_full_replace.py", "service": "identitystore"} {"check_id": "identitystore.user-audit-fields-created-updated-by", "deployments": [], "key": "identitystore/user-audit-fields-created-updated-by", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_user_audit_fields_created_updated_by.py", "service": "identitystore"} {"check_id": "identitystore.user-profile-attributes-round-trip", "deployments": [], "key": "identitystore/user-profile-attributes-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:UpdateUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_user_profile_attributes_round_trip.py", "service": "identitystore"} {"check_id": "identitystore.user-without-optional-fields-omitted", "deployments": [], "key": "identitystore/user-without-optional-fields-omitted", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_user_without_optional_fields_omitted.py", "service": "identitystore"} {"check_id": "identitystore.username-with-space-rejected", "deployments": [], "key": "identitystore/username-with-space-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateUser", "identitystore:DeleteUser", "identitystore:DescribeUser", "identitystore:GetUserId", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/identitystore/check_username_with_space_rejected.py", "service": "identitystore"} {"check_id": "imagebuilder.cancel-image-creation-already-cancelled-rejected", "deployments": [], "key": "imagebuilder/cancel-image-creation-already-cancelled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeregisterImage", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CancelImageCreation", "imagebuilder:CreateComponent", "imagebuilder:CreateImage", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImage", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImage", "ssm:GetParameter"], "path": "behavioral/imagebuilder/check_cancel_image_creation_already_cancelled_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.cancel-image-creation-transition", "deployments": [], "key": "imagebuilder/cancel-image-creation-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DeregisterImage", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CancelImageCreation", "imagebuilder:CreateImage", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteImage", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImage"], "path": "behavioral/imagebuilder/check_cancel_image_creation_transition.py", "service": "imagebuilder"} {"check_id": "imagebuilder.component-policy-put-get-roundtrip", "deployments": [], "key": "imagebuilder/component-policy-put-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponentPolicy", "imagebuilder:PutComponentPolicy", "sts:GetCallerIdentity"], "path": "behavioral/imagebuilder/check_component_policy_put_get_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.concurrent-create-component-same-name-version-contention", "deployments": [], "key": "imagebuilder/concurrent-create-component-same-name-version-contention", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:ListComponentBuildVersions"], "path": "behavioral/imagebuilder/check_concurrent_create_component_same_name_version_contention.py", "service": "imagebuilder"} {"check_id": "imagebuilder.concurrent-create-component-same-token-idempotent", "deployments": [], "key": "imagebuilder/concurrent-create-component-same-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:ListComponentBuildVersions", "imagebuilder:TagResource"], "path": "behavioral/imagebuilder/check_concurrent_create_component_same_token_idempotent.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-component-get-roundtrip", "deployments": [], "key": "imagebuilder/create-component-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponent"], "path": "behavioral/imagebuilder/check_create_component_get_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-component-idempotent-mismatch-rejected", "deployments": [], "key": "imagebuilder/create-component-idempotent-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponent"], "path": "behavioral/imagebuilder/check_create_component_idempotent_mismatch_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-component-idempotent-same-token-returns-same-arn", "deployments": [], "key": "imagebuilder/create-component-idempotent-same-token-returns-same-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponent", "imagebuilder:ListComponentBuildVersions"], "path": "behavioral/imagebuilder/check_create_component_idempotent_same_token_returns_same_arn.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-component-invalid-semantic-version-rejected", "deployments": [], "key": "imagebuilder/create-component-invalid-semantic-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponent", "imagebuilder:ListComponents"], "path": "behavioral/imagebuilder/check_create_component_invalid_semantic_version_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-component-supported-os-versions-roundtrip", "deployments": [], "key": "imagebuilder/create-component-supported-os-versions-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponent"], "path": "behavioral/imagebuilder/check_create_component_supported_os_versions_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-component-with-kms-encryption-roundtrip", "deployments": [], "key": "imagebuilder/create-component-with-kms-encryption-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponent", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/imagebuilder/check_create_component_with_kms_encryption_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-container-recipe-get-roundtrip", "deployments": [], "key": "imagebuilder/create-container-recipe-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "imagebuilder:CreateComponent", "imagebuilder:CreateContainerRecipe", "imagebuilder:DeleteComponent", "imagebuilder:DeleteContainerRecipe", "imagebuilder:GetContainerRecipe"], "path": "behavioral/imagebuilder/check_create_container_recipe_get_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-distribution-configuration-get-roundtrip", "deployments": [], "key": "imagebuilder/create-distribution-configuration-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateDistributionConfiguration", "imagebuilder:DeleteDistributionConfiguration", "imagebuilder:GetDistributionConfiguration", "imagebuilder:UpdateDistributionConfiguration"], "path": "behavioral/imagebuilder/check_create_distribution_configuration_get_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-image-full-build-lifecycle", "deployments": [], "key": "imagebuilder/create-image-full-build-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DeregisterImage", "ec2:DescribeImages", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateImage", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteImage", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImage"], "path": "behavioral/imagebuilder/check_create_image_full_build_lifecycle.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-image-pipeline-duplicate-name-rejected", "deployments": [], "key": "imagebuilder/create-image-pipeline-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateComponent", "imagebuilder:CreateImagePipeline", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImagePipeline", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImagePipeline", "imagebuilder:ListImagePipelines", "ssm:GetParameter"], "path": "behavioral/imagebuilder/check_create_image_pipeline_duplicate_name_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-image-pipeline-missing-recipe-arn-rejected", "deployments": [], "key": "imagebuilder/create-image-pipeline-missing-recipe-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateImagePipeline", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteImagePipeline", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:ListImagePipelines"], "path": "behavioral/imagebuilder/check_create_image_pipeline_missing_recipe_arn_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-image-recipe-duplicate-version-rejected", "deployments": [], "key": "imagebuilder/create-image-recipe-duplicate-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:CreateImageRecipe", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImageRecipe", "imagebuilder:GetImageRecipe", "imagebuilder:ListImageRecipes", "ssm:GetParameter"], "path": "behavioral/imagebuilder/check_create_image_recipe_duplicate_version_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-image-recipe-get-roundtrip", "deployments": [], "key": "imagebuilder/create-image-recipe-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:CreateImageRecipe", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImageRecipe", "imagebuilder:GetImageRecipe"], "path": "behavioral/imagebuilder/check_create_image_recipe_get_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-image-recipe-invalid-semantic-version-rejected", "deployments": [], "key": "imagebuilder/create-image-recipe-invalid-semantic-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateImageRecipe", "imagebuilder:DeleteImageRecipe", "imagebuilder:ListImageRecipes"], "path": "behavioral/imagebuilder/check_create_image_recipe_invalid_semantic_version_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-infrastructure-configuration-duplicate-name-rejected", "deployments": [], "key": "imagebuilder/create-infrastructure-configuration-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetInfrastructureConfiguration", "imagebuilder:ListInfrastructureConfigurations"], "path": "behavioral/imagebuilder/check_create_infrastructure_configuration_duplicate_name_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-infrastructure-configuration-get-roundtrip", "deployments": [], "key": "imagebuilder/create-infrastructure-configuration-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetInfrastructureConfiguration"], "path": "behavioral/imagebuilder/check_create_infrastructure_configuration_get_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-infrastructure-configuration-invalid-instance-profile-rejected", "deployments": [], "key": "imagebuilder/create-infrastructure-configuration-invalid-instance-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetInfrastructureConfiguration", "imagebuilder:ListInfrastructureConfigurations"], "path": "behavioral/imagebuilder/check_create_infrastructure_configuration_invalid_instance_profile_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-workflow-dryrun-no-mutation", "deployments": [], "key": "imagebuilder/create-workflow-dryrun-no-mutation", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateWorkflow", "imagebuilder:ListWorkflows"], "path": "behavioral/imagebuilder/check_create_workflow_dryrun_no_mutation.py", "service": "imagebuilder"} {"check_id": "imagebuilder.create-workflow-get-roundtrip", "deployments": [], "key": "imagebuilder/create-workflow-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateWorkflow", "imagebuilder:DeleteWorkflow", "imagebuilder:GetWorkflow"], "path": "behavioral/imagebuilder/check_create_workflow_get_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.delete-component-referenced-by-recipe-rejected", "deployments": [], "key": "imagebuilder/delete-component-referenced-by-recipe-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:CreateImageRecipe", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImageRecipe", "imagebuilder:GetComponent", "ssm:GetParameter"], "path": "behavioral/imagebuilder/check_delete_component_referenced_by_recipe_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.delete-infrastructure-configuration-in-use-rejected", "deployments": [], "key": "imagebuilder/delete-infrastructure-configuration-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateImagePipeline", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteImagePipeline", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetInfrastructureConfiguration"], "path": "behavioral/imagebuilder/check_delete_infrastructure_configuration_in_use_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.get-component-policy-without-policy-returns-empty-placeholder", "deployments": [], "key": "imagebuilder/get-component-policy-without-policy-returns-empty-placeholder", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponentPolicy"], "path": "behavioral/imagebuilder/check_get_component_policy_without_policy_returns_empty_placeholder.py", "service": "imagebuilder"} {"check_id": "imagebuilder.image-pipeline-enable-disable-transition", "deployments": [], "key": "imagebuilder/image-pipeline-enable-disable-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateImagePipeline", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteImagePipeline", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImagePipeline", "imagebuilder:UpdateImagePipeline"], "path": "behavioral/imagebuilder/check_image_pipeline_enable_disable_transition.py", "service": "imagebuilder"} {"check_id": "imagebuilder.import-component-get-roundtrip", "deployments": [], "key": "imagebuilder/import-component-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:DeleteComponent", "imagebuilder:GetComponent", "imagebuilder:ImportComponent"], "path": "behavioral/imagebuilder/check_import_component_get_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.lifecycle-policy-enable-disable-transition", "deployments": [], "key": "imagebuilder/lifecycle-policy-enable-disable-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "imagebuilder:CreateLifecyclePolicy", "imagebuilder:DeleteLifecyclePolicy", "imagebuilder:GetLifecyclePolicy", "imagebuilder:UpdateLifecyclePolicy"], "path": "behavioral/imagebuilder/check_lifecycle_policy_enable_disable_transition.py", "service": "imagebuilder"} {"check_id": "imagebuilder.list-components-pagination-invalid-token-rejected", "deployments": [], "key": "imagebuilder/list-components-pagination-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:ListComponents"], "path": "behavioral/imagebuilder/check_list_components_pagination_invalid_token_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.list-image-packages-nonexistent-image-returns-empty", "deployments": [], "key": "imagebuilder/list-image-packages-nonexistent-image-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:ListImagePackages", "sts:GetCallerIdentity"], "path": "behavioral/imagebuilder/check_list_image_packages_nonexistent_image_returns_empty.py", "service": "imagebuilder"} {"check_id": "imagebuilder.list-image-pipelines-filters-by-name", "deployments": [], "key": "imagebuilder/list-image-pipelines-filters-by-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateComponent", "imagebuilder:CreateImagePipeline", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImagePipeline", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:ListImagePipelines", "ssm:GetParameter"], "path": "behavioral/imagebuilder/check_list_image_pipelines_filters_by_name.py", "service": "imagebuilder"} {"check_id": "imagebuilder.list-tags-for-resource-not-found", "deployments": [], "key": "imagebuilder/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/imagebuilder/check_list_tags_for_resource_not_found.py", "service": "imagebuilder"} {"check_id": "imagebuilder.put-component-policy-invalid-json-rejected", "deployments": [], "key": "imagebuilder/put-component-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponentPolicy", "imagebuilder:PutComponentPolicy", "sts:GetCallerIdentity"], "path": "behavioral/imagebuilder/check_put_component_policy_invalid_json_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.put-component-policy-nonexistent-component-not-found", "deployments": [], "key": "imagebuilder/put-component-policy-nonexistent-component-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:GetComponentPolicy", "imagebuilder:PutComponentPolicy", "sts:GetCallerIdentity"], "path": "behavioral/imagebuilder/check_put_component_policy_nonexistent_component_not_found.py", "service": "imagebuilder"} {"check_id": "imagebuilder.put-container-recipe-policy-roundtrip", "deployments": [], "key": "imagebuilder/put-container-recipe-policy-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "imagebuilder:CreateComponent", "imagebuilder:CreateContainerRecipe", "imagebuilder:DeleteComponent", "imagebuilder:DeleteContainerRecipe", "imagebuilder:GetContainerRecipePolicy", "imagebuilder:PutContainerRecipePolicy", "sts:GetCallerIdentity"], "path": "behavioral/imagebuilder/check_put_container_recipe_policy_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.put-image-recipe-policy-nonexistent-recipe-rejected", "deployments": [], "key": "imagebuilder/put-image-recipe-policy-nonexistent-recipe-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:CreateImageRecipe", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImageRecipe", "imagebuilder:GetImageRecipePolicy", "imagebuilder:PutImageRecipePolicy", "ssm:GetParameter", "sts:GetCallerIdentity"], "path": "behavioral/imagebuilder/check_put_image_recipe_policy_nonexistent_recipe_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.retry-image-non-failed-state-rejected", "deployments": [], "key": "imagebuilder/retry-image-non-failed-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeregisterImage", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CancelImageCreation", "imagebuilder:CreateImage", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteImage", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImage", "imagebuilder:ListTagsForResource", "imagebuilder:RetryImage", "imagebuilder:TagResource"], "path": "behavioral/imagebuilder/check_retry_image_non_failed_state_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.retry-image-on-active-build-rejected", "deployments": [], "key": "imagebuilder/retry-image-on-active-build-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeregisterImage", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CancelImageCreation", "imagebuilder:CreateImage", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteImage", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImage", "imagebuilder:RetryImage"], "path": "behavioral/imagebuilder/check_retry_image_on_active_build_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.send-workflow-step-action-nonexistent-step-rejected", "deployments": [], "key": "imagebuilder/send-workflow-step-action-nonexistent-step-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["imagebuilder:ListWaitingWorkflowSteps", "imagebuilder:SendWorkflowStepAction", "sts:GetCallerIdentity"], "path": "behavioral/imagebuilder/check_send_workflow_step_action_nonexistent_step_rejected.py", "service": "imagebuilder"} {"check_id": "imagebuilder.start-image-pipeline-execution-creates-pending-image", "deployments": [], "key": "imagebuilder/start-image-pipeline-execution-creates-pending-image", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CancelImageCreation", "imagebuilder:CreateComponent", "imagebuilder:CreateImagePipeline", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImage", "imagebuilder:DeleteImagePipeline", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImage", "imagebuilder:ListImagePipelineImages", "imagebuilder:StartImagePipelineExecution", "ssm:GetParameter"], "path": "behavioral/imagebuilder/check_start_image_pipeline_execution_creates_pending_image.py", "service": "imagebuilder"} {"check_id": "imagebuilder.start-image-pipeline-execution-disabled-pipeline-accepted", "deployments": [], "key": "imagebuilder/start-image-pipeline-execution-disabled-pipeline-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CancelImageCreation", "imagebuilder:CreateComponent", "imagebuilder:CreateImagePipeline", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImage", "imagebuilder:DeleteImagePipeline", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImage", "imagebuilder:GetImagePipeline", "imagebuilder:StartImagePipelineExecution", "ssm:GetParameter"], "path": "behavioral/imagebuilder/check_start_image_pipeline_execution_disabled_pipeline_accepted.py", "service": "imagebuilder"} {"check_id": "imagebuilder.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "imagebuilder/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:ListTagsForResource", "imagebuilder:TagResource"], "path": "behavioral/imagebuilder/check_tag_resource_and_list_tags_roundtrip.py", "service": "imagebuilder"} {"check_id": "imagebuilder.untag-resource-removes-tag", "deployments": [], "key": "imagebuilder/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateComponent", "imagebuilder:DeleteComponent", "imagebuilder:ListTagsForResource", "imagebuilder:TagResource", "imagebuilder:UntagResource"], "path": "behavioral/imagebuilder/check_untag_resource_removes_tag.py", "service": "imagebuilder"} {"check_id": "imagebuilder.update-distribution-configuration-persists-new-region", "deployments": [], "key": "imagebuilder/update-distribution-configuration-persists-new-region", "labels": ["axis:happy-path", "plane:control"], "operations": ["imagebuilder:CreateDistributionConfiguration", "imagebuilder:DeleteDistributionConfiguration", "imagebuilder:GetDistributionConfiguration", "imagebuilder:UpdateDistributionConfiguration"], "path": "behavioral/imagebuilder/check_update_distribution_configuration_persists_new_region.py", "service": "imagebuilder"} {"check_id": "imagebuilder.update-image-pipeline-rewires-infrastructure-configuration", "deployments": [], "key": "imagebuilder/update-image-pipeline-rewires-infrastructure-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "imagebuilder:CreateComponent", "imagebuilder:CreateImagePipeline", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImagePipeline", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:GetImagePipeline", "imagebuilder:UpdateImagePipeline", "ssm:GetParameter"], "path": "behavioral/imagebuilder/check_update_image_pipeline_rewires_infrastructure_configuration.py", "service": "imagebuilder"} {"check_id": "imagebuilder.update-lifecycle-policy-changes-policy-details-persisted", "deployments": [], "key": "imagebuilder/update-lifecycle-policy-changes-policy-details-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "imagebuilder:CreateLifecyclePolicy", "imagebuilder:DeleteLifecyclePolicy", "imagebuilder:GetLifecyclePolicy", "imagebuilder:UpdateLifecyclePolicy"], "path": "behavioral/imagebuilder/check_update_lifecycle_policy_changes_policy_details_persisted.py", "service": "imagebuilder"} {"check_id": "inspector-scan.scan-sbom-access-denied-without-permission-rejected", "deployments": [], "key": "inspector-scan/scan-sbom-access-denied-without-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_access_denied_without_permission_rejected.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-clean-component-no-findings", "deployments": [], "key": "inspector-scan/scan-sbom-clean-component-no-findings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_clean_component_no_findings.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-component-count-scales-within-limit", "deployments": [], "key": "inspector-scan/scan-sbom-component-count-scales-within-limit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_component_count_scales_within_limit.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-component-fields-echoed-correctly", "deployments": [], "key": "inspector-scan/scan-sbom-component-fields-echoed-correctly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_component_fields_echoed_correctly.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-component-limit-exceeded-rejected", "deployments": [], "key": "inspector-scan/scan-sbom-component-limit-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_component_limit_exceeded_rejected.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-concurrent-requests-isolated", "deployments": [], "key": "inspector-scan/scan-sbom-concurrent-requests-isolated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_concurrent_requests_isolated.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-cwe-classification-present", "deployments": [], "key": "inspector-scan/scan-sbom-cwe-classification-present", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_cwe_classification_present.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-default-output-format-matches-explicit", "deployments": [], "key": "inspector-scan/scan-sbom-default-output-format-matches-explicit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_default_output_format_matches_explicit.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-deterministic-repeat-call-same-findings", "deployments": [], "key": "inspector-scan/scan-sbom-deterministic-repeat-call-same-findings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_deterministic_repeat_call_same_findings.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-epss-and-cvss-ratings-present", "deployments": [], "key": "inspector-scan/scan-sbom-epss-and-cvss-ratings-present", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_epss_and_cvss_ratings_present.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-invalid-output-format-rejected", "deployments": [], "key": "inspector-scan/scan-sbom-invalid-output-format-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_invalid_output_format_rejected.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-log4j-critical-vulnerability-detected", "deployments": [], "key": "inspector-scan/scan-sbom-log4j-critical-vulnerability-detected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_log4j_critical_vulnerability_detected.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-malformed-document-rejected", "deployments": [], "key": "inspector-scan/scan-sbom-malformed-document-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_malformed_document_rejected.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-missing-required-fields-rejected", "deployments": [], "key": "inspector-scan/scan-sbom-missing-required-fields-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_missing_required_fields_rejected.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-multiple-vulnerable-components-all-detected", "deployments": [], "key": "inspector-scan/scan-sbom-multiple-vulnerable-components-all-detected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_multiple_vulnerable_components_all_detected.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-output-format-inspector-alt-shape", "deployments": [], "key": "inspector-scan/scan-sbom-output-format-inspector-alt-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_output_format_inspector_alt_shape.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-output-format-inspector-json-shape", "deployments": [], "key": "inspector-scan/scan-sbom-output-format-inspector-json-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_output_format_inspector_json_shape.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-partial-vulnerable-component-isolated", "deployments": [], "key": "inspector-scan/scan-sbom-partial-vulnerable-component-isolated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_partial_vulnerable_component_isolated.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-severity-rating-score-consistent", "deployments": [], "key": "inspector-scan/scan-sbom-severity-rating-score-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_severity_rating_score_consistent.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-source-reference-nvd-url-present", "deployments": [], "key": "inspector-scan/scan-sbom-source-reference-nvd-url-present", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_source_reference_nvd_url_present.py", "service": "inspector-scan"} {"check_id": "inspector-scan.scan-sbom-wrong-bom-format-rejected", "deployments": [], "key": "inspector-scan/scan-sbom-wrong-bom-format-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["inspector-scan:ScanSbom"], "path": "behavioral/inspector-scan/check_scan_sbom_wrong_bom_format_rejected.py", "service": "inspector-scan"} {"check_id": "inspector2.associate-member-non-org-account-rejected", "deployments": [], "key": "inspector2/associate-member-non-org-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:AssociateMember", "inspector2:GetDelegatedAdminAccount", "inspector2:ListMembers"], "path": "behavioral/inspector2/check_associate_member_non_org_account_rejected.py", "service": "inspector2"} {"check_id": "inspector2.batch-get-account-status-non-member-account-rejected", "deployments": [], "key": "inspector2/batch-get-account-status-non-member-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_batch_get_account_status_non_member_account_rejected.py", "service": "inspector2"} {"check_id": "inspector2.batch-get-free-trial-info-returns-status-for-caller-account", "deployments": [], "key": "inspector2/batch-get-free-trial-info-returns-status-for-caller-account", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:BatchGetFreeTrialInfo", "inspector2:Disable", "inspector2:Enable", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_batch_get_free_trial_info_returns_status_for_caller_account.py", "service": "inspector2"} {"check_id": "inspector2.cis-scan-configuration-create-list-delete-lifecycle", "deployments": [], "key": "inspector2/cis-scan-configuration-create-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:CreateCisScanConfiguration", "inspector2:DeleteCisScanConfiguration", "inspector2:Disable", "inspector2:Enable", "inspector2:ListCisScanConfigurations", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_cis_scan_configuration_create_list_delete_lifecycle.py", "service": "inspector2"} {"check_id": "inspector2.code-security-integration-create-get-delete-lifecycle", "deployments": [], "key": "inspector2/code-security-integration-create-get-delete-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:CreateCodeSecurityIntegration", "inspector2:ListCodeSecurityIntegrations"], "path": "behavioral/inspector2/check_code_security_integration_create_get_delete_lifecycle.py", "service": "inspector2"} {"check_id": "inspector2.code-security-scan-configuration-create-get-delete-lifecycle", "deployments": [], "key": "inspector2/code-security-scan-configuration-create-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:CreateCodeSecurityScanConfiguration", "inspector2:DeleteCodeSecurityScanConfiguration", "inspector2:GetCodeSecurityScanConfiguration"], "path": "behavioral/inspector2/check_code_security_scan_configuration_create_get_delete_lifecycle.py", "service": "inspector2"} {"check_id": "inspector2.concurrent-delete-filter-exactly-one-succeeds", "deployments": [], "key": "inspector2/concurrent-delete-filter-exactly-one-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:CreateFilter", "inspector2:DeleteFilter", "inspector2:ListFilters"], "path": "behavioral/inspector2/check_concurrent_delete_filter_exactly_one_succeeds.py", "service": "inspector2"} {"check_id": "inspector2.create-code-security-scan-configuration-invalid-rule-set-category-rejected", "deployments": [], "key": "inspector2/create-code-security-scan-configuration-invalid-rule-set-category-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:CreateCodeSecurityScanConfiguration", "inspector2:DeleteCodeSecurityScanConfiguration", "inspector2:ListCodeSecurityScanConfigurations"], "path": "behavioral/inspector2/check_create_code_security_scan_configuration_invalid_rule_set_category_rejected.py", "service": "inspector2"} {"check_id": "inspector2.create-filter-empty-criteria-rejected", "deployments": [], "key": "inspector2/create-filter-empty-criteria-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:CreateFilter", "inspector2:DeleteFilter", "inspector2:ListFilters"], "path": "behavioral/inspector2/check_create_filter_empty_criteria_rejected.py", "service": "inspector2"} {"check_id": "inspector2.delete-filter-twice-returns-not-found", "deployments": [], "key": "inspector2/delete-filter-twice-returns-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:CreateFilter", "inspector2:DeleteFilter", "inspector2:ListFilters"], "path": "behavioral/inspector2/check_delete_filter_twice_returns_not_found.py", "service": "inspector2"} {"check_id": "inspector2.ec2-deep-inspection-configuration-activation-transition", "deployments": [], "key": "inspector2/ec2-deep-inspection-configuration-activation-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:Disable", "inspector2:Enable", "inspector2:GetEc2DeepInspectionConfiguration", "inspector2:UpdateEc2DeepInspectionConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_ec2_deep_inspection_configuration_activation_transition.py", "service": "inspector2"} {"check_id": "inspector2.enable-disable-account-status-transition", "deployments": [], "key": "inspector2/enable-disable-account-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:Disable", "inspector2:Enable", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_enable_disable_account_status_transition.py", "service": "inspector2"} {"check_id": "inspector2.filter-create-list-delete-lifecycle", "deployments": [], "key": "inspector2/filter-create-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:CreateFilter", "inspector2:DeleteFilter", "inspector2:ListFilters", "inspector2:UpdateFilter"], "path": "behavioral/inspector2/check_filter_create_list_delete_lifecycle.py", "service": "inspector2"} {"check_id": "inspector2.filter-criteria-round-trip-exact-values", "deployments": [], "key": "inspector2/filter-criteria-round-trip-exact-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:CreateFilter", "inspector2:DeleteFilter", "inspector2:ListFilters"], "path": "behavioral/inspector2/check_filter_criteria_round_trip_exact_values.py", "service": "inspector2"} {"check_id": "inspector2.get-encryption-key-without-custom-key-returns-not-found", "deployments": [], "key": "inspector2/get-encryption-key-without-custom-key-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:Disable", "inspector2:Enable", "inspector2:GetEncryptionKey", "inspector2:ResetEncryptionKey", "inspector2:UpdateEncryptionKey", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_get_encryption_key_without_custom_key_returns_not_found.py", "service": "inspector2"} {"check_id": "inspector2.get-findings-report-status-no-report-returns-not-found", "deployments": [], "key": "inspector2/get-findings-report-status-no-report-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:GetFindingsReportStatus", "inspector2:ListUsageTotals"], "path": "behavioral/inspector2/check_get_findings_report_status_no_report_returns_not_found.py", "service": "inspector2"} {"check_id": "inspector2.list-finding-aggregations-type-mismatch-rejected", "deployments": [], "key": "inspector2/list-finding-aggregations-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:ListFindingAggregations"], "path": "behavioral/inspector2/check_list_finding_aggregations_type_mismatch_rejected.py", "service": "inspector2"} {"check_id": "inspector2.search-vulnerabilities-returns-matching-cve", "deployments": [], "key": "inspector2/search-vulnerabilities-returns-matching-cve", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:Disable", "inspector2:Enable", "inspector2:SearchVulnerabilities", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_search_vulnerabilities_returns_matching_cve.py", "service": "inspector2"} {"check_id": "inspector2.start-cis-session-unauthorized-scan-job-rejected", "deployments": [], "key": "inspector2/start-cis-session-unauthorized-scan-job-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:ListUsageTotals", "inspector2:StartCisSession", "inspector2:StopCisSession"], "path": "behavioral/inspector2/check_start_cis_session_unauthorized_scan_job_rejected.py", "service": "inspector2"} {"check_id": "inspector2.tag-resource-list-tags-round-trip", "deployments": [], "key": "inspector2/tag-resource-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:CreateFilter", "inspector2:DeleteFilter", "inspector2:ListTagsForResource", "inspector2:TagResource"], "path": "behavioral/inspector2/check_tag_resource_list_tags_round_trip.py", "service": "inspector2"} {"check_id": "inspector2.untag-resource-removes-tag", "deployments": [], "key": "inspector2/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:CreateFilter", "inspector2:DeleteFilter", "inspector2:ListTagsForResource", "inspector2:UntagResource"], "path": "behavioral/inspector2/check_untag_resource_removes_tag.py", "service": "inspector2"} {"check_id": "inspector2.update-configuration-ecr-rescan-duration-persists", "deployments": [], "key": "inspector2/update-configuration-ecr-rescan-duration-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:Disable", "inspector2:Enable", "inspector2:GetConfiguration", "inspector2:UpdateConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_update_configuration_ecr_rescan_duration_persists.py", "service": "inspector2"} {"check_id": "inspector2.update-encryption-key-invalid-arn-pattern-rejected", "deployments": [], "key": "inspector2/update-encryption-key-invalid-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:Disable", "inspector2:Enable", "inspector2:GetEncryptionKey", "inspector2:ResetEncryptionKey", "inspector2:UpdateEncryptionKey", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_update_encryption_key_invalid_arn_pattern_rejected.py", "service": "inspector2"} {"check_id": "inspector2.update-filter-action-and-criteria-persist", "deployments": [], "key": "inspector2/update-filter-action-and-criteria-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:CreateFilter", "inspector2:DeleteFilter", "inspector2:ListFilters", "inspector2:UpdateFilter"], "path": "behavioral/inspector2/check_update_filter_action_and_criteria_persist.py", "service": "inspector2"} {"check_id": "inspector2.update-reset-encryption-key-round-trip", "deployments": [], "key": "inspector2/update-reset-encryption-key-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["inspector2:BatchGetAccountStatus", "inspector2:Disable", "inspector2:Enable", "inspector2:GetEncryptionKey", "inspector2:ResetEncryptionKey", "inspector2:UpdateEncryptionKey", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/inspector2/check_update_reset_encryption_key_round_trip.py", "service": "inspector2"} {"check_id": "interconnect.accept-connection-proposal-unknown-key-rejected", "deployments": [], "key": "interconnect/accept-connection-proposal-unknown-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:AcceptConnectionProposal", "interconnect:ListConnections"], "path": "behavioral/interconnect/check_accept_connection_proposal_unknown_key_rejected.py", "service": "interconnect"} {"check_id": "interconnect.create-connection-concurrent-idempotent-client-token", "deployments": [], "key": "interconnect/create-connection-concurrent-idempotent-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["directconnect:CreateDirectConnectGateway", "directconnect:DeleteDirectConnectGateway", "interconnect:CreateConnection", "interconnect:DeleteConnection", "interconnect:ListAttachPoints", "interconnect:ListConnections", "interconnect:ListEnvironments", "sts:GetCallerIdentity"], "path": "behavioral/interconnect/check_create_connection_concurrent_idempotent_client_token.py", "service": "interconnect"} {"check_id": "interconnect.create-connection-nonexistent-environment-rejected", "deployments": [], "key": "interconnect/create-connection-nonexistent-environment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:CreateConnection", "interconnect:GetEnvironment", "interconnect:ListEnvironments", "sts:GetCallerIdentity"], "path": "behavioral/interconnect/check_create_connection_nonexistent_environment_rejected.py", "service": "interconnect"} {"check_id": "interconnect.delete-connection-nonexistent-id-rejected", "deployments": [], "key": "interconnect/delete-connection-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:DeleteConnection"], "path": "behavioral/interconnect/check_delete_connection_nonexistent_id_rejected.py", "service": "interconnect"} {"check_id": "interconnect.delete-connection-transitions-to-deleting-then-gone", "deployments": [], "key": "interconnect/delete-connection-transitions-to-deleting-then-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["directconnect:CreateDirectConnectGateway", "directconnect:DeleteDirectConnectGateway", "interconnect:CreateConnection", "interconnect:DeleteConnection", "interconnect:GetConnection", "interconnect:ListAttachPoints", "interconnect:ListEnvironments"], "path": "behavioral/interconnect/check_delete_connection_transitions_to_deleting_then_gone.py", "service": "interconnect"} {"check_id": "interconnect.describe-connection-proposal-unknown-key-rejected", "deployments": [], "key": "interconnect/describe-connection-proposal-unknown-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:DescribeConnectionProposal"], "path": "behavioral/interconnect/check_describe_connection_proposal_unknown_key_rejected.py", "service": "interconnect"} {"check_id": "interconnect.get-connection-nonexistent-id-rejected", "deployments": [], "key": "interconnect/get-connection-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:GetConnection"], "path": "behavioral/interconnect/check_get_connection_nonexistent_id_rejected.py", "service": "interconnect"} {"check_id": "interconnect.get-environment-nonexistent-id-rejected", "deployments": [], "key": "interconnect/get-environment-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:GetEnvironment"], "path": "behavioral/interconnect/check_get_environment_nonexistent_id_rejected.py", "service": "interconnect"} {"check_id": "interconnect.list-attach-points-matches-created-connection-attach-point", "deployments": [], "key": "interconnect/list-attach-points-matches-created-connection-attach-point", "labels": ["axis:happy-path", "plane:control"], "operations": ["directconnect:CreateDirectConnectGateway", "directconnect:DeleteDirectConnectGateway", "interconnect:CreateConnection", "interconnect:DeleteConnection", "interconnect:ListAttachPoints", "interconnect:ListEnvironments"], "path": "behavioral/interconnect/check_list_attach_points_matches_created_connection_attach_point.py", "service": "interconnect"} {"check_id": "interconnect.list-attach-points-nonexistent-environment-rejected", "deployments": [], "key": "interconnect/list-attach-points-nonexistent-environment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:ListAttachPoints", "interconnect:ListEnvironments"], "path": "behavioral/interconnect/check_list_attach_points_nonexistent_environment_rejected.py", "service": "interconnect"} {"check_id": "interconnect.list-connections-max-results-out-of-range-rejected", "deployments": [], "key": "interconnect/list-connections-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:ListConnections"], "path": "behavioral/interconnect/check_list_connections_max_results_out_of_range_rejected.py", "service": "interconnect"} {"check_id": "interconnect.tag-resource-cross-account-arn-rejected", "deployments": [], "key": "interconnect/tag-resource-cross-account-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:ListConnections", "interconnect:ListTagsForResource", "interconnect:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/interconnect/check_tag_resource_cross_account_arn_rejected.py", "service": "interconnect"} {"check_id": "interconnect.tag-resource-nonexistent-connection-rejected", "deployments": [], "key": "interconnect/tag-resource-nonexistent-connection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["interconnect:ListConnections", "interconnect:ListTagsForResource", "interconnect:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/interconnect/check_tag_resource_nonexistent_connection_rejected.py", "service": "interconnect"} {"check_id": "interconnect.update-connection-after-deletion-rejected", "deployments": [], "key": "interconnect/update-connection-after-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["directconnect:CreateDirectConnectGateway", "directconnect:DeleteDirectConnectGateway", "interconnect:CreateConnection", "interconnect:DeleteConnection", "interconnect:GetConnection", "interconnect:ListAttachPoints", "interconnect:ListEnvironments", "interconnect:UpdateConnection"], "path": "behavioral/interconnect/check_update_connection_after_deletion_rejected.py", "service": "interconnect"} {"check_id": "interconnect.update-connection-nonexistent-id-rejected", "deployments": [], "key": "interconnect/update-connection-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["directconnect:CreateDirectConnectGateway", "directconnect:DeleteDirectConnectGateway", "interconnect:CreateConnection", "interconnect:DeleteConnection", "interconnect:GetConnection", "interconnect:ListAttachPoints", "interconnect:ListEnvironments", "interconnect:UpdateConnection"], "path": "behavioral/interconnect/check_update_connection_nonexistent_id_rejected.py", "service": "interconnect"} {"check_id": "internetmonitor.concurrent-create-monitor-same-name-exactly-one-succeeds", "deployments": [], "key": "internetmonitor/concurrent-create-monitor-same-name-exactly-one-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:ListMonitors", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_concurrent_create_monitor_same_name_exactly_one_succeeds.py", "service": "internetmonitor"} {"check_id": "internetmonitor.create-monitor-duplicate-name-rejected", "deployments": [], "key": "internetmonitor/create-monitor-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_create_monitor_duplicate_name_rejected.py", "service": "internetmonitor"} {"check_id": "internetmonitor.create-monitor-health-events-config-persists", "deployments": [], "key": "internetmonitor/create-monitor-health-events-config-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_create_monitor_health_events_config_persists.py", "service": "internetmonitor"} {"check_id": "internetmonitor.create-monitor-reaches-active", "deployments": [], "key": "internetmonitor/create-monitor-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_create_monitor_reaches_active.py", "service": "internetmonitor"} {"check_id": "internetmonitor.create-monitor-traffic-percentage-out-of-range-rejected", "deployments": [], "key": "internetmonitor/create-monitor-traffic-percentage-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:ListMonitors", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_create_monitor_traffic_percentage_out_of_range_rejected.py", "service": "internetmonitor"} {"check_id": "internetmonitor.create-monitor-with-inline-tags", "deployments": [], "key": "internetmonitor/create-monitor-with-inline-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:ListTagsForResource", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_create_monitor_with_inline_tags.py", "service": "internetmonitor"} {"check_id": "internetmonitor.delete-monitor-removes-monitor", "deployments": [], "key": "internetmonitor/delete-monitor-removes-monitor", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:ListMonitors", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_delete_monitor_removes_monitor.py", "service": "internetmonitor"} {"check_id": "internetmonitor.get-monitor-reflects-created-config", "deployments": [], "key": "internetmonitor/get-monitor-reflects-created-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_get_monitor_reflects_created_config.py", "service": "internetmonitor"} {"check_id": "internetmonitor.get-query-results-schema-for-empty-monitor", "deployments": [], "key": "internetmonitor/get-query-results-schema-for-empty-monitor", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:GetQueryResults", "internetmonitor:StartQuery", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_get_query_results_schema_for_empty_monitor.py", "service": "internetmonitor"} {"check_id": "internetmonitor.get-query-status-wrong-monitor-rejected", "deployments": [], "key": "internetmonitor/get-query-status-wrong-monitor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetHealthEvent", "internetmonitor:GetMonitor", "internetmonitor:GetQueryStatus", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_get_query_status_wrong_monitor_rejected.py", "service": "internetmonitor"} {"check_id": "internetmonitor.list-health-events-empty-for-new-monitor", "deployments": [], "key": "internetmonitor/list-health-events-empty-for-new-monitor", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetHealthEvent", "internetmonitor:GetMonitor", "internetmonitor:ListHealthEvents", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_list_health_events_empty_for_new_monitor.py", "service": "internetmonitor"} {"check_id": "internetmonitor.list-internet-events-returns-valid-structure", "deployments": [], "key": "internetmonitor/list-internet-events-returns-valid-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:ListInternetEvents", "sts:GetCallerIdentity"], "path": "behavioral/internetmonitor/check_list_internet_events_returns_valid_structure.py", "service": "internetmonitor"} {"check_id": "internetmonitor.list-monitors-filter-by-status", "deployments": [], "key": "internetmonitor/list-monitors-filter-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:ListMonitors", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_list_monitors_filter_by_status.py", "service": "internetmonitor"} {"check_id": "internetmonitor.start-query-invalid-time-range-rejected", "deployments": [], "key": "internetmonitor/start-query-invalid-time-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["internetmonitor:ListInternetEvents"], "path": "behavioral/internetmonitor/check_start_query_invalid_time_range_rejected.py", "service": "internetmonitor"} {"check_id": "internetmonitor.start-query-measurements-reaches-succeeded", "deployments": [], "key": "internetmonitor/start-query-measurements-reaches-succeeded", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:StartQuery", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_start_query_measurements_reaches_succeeded.py", "service": "internetmonitor"} {"check_id": "internetmonitor.stop-query-leaves-terminal-status", "deployments": [], "key": "internetmonitor/stop-query-leaves-terminal-status", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:StopQuery", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_stop_query_leaves_terminal_status.py", "service": "internetmonitor"} {"check_id": "internetmonitor.tag-resource-exceeds-tag-limit-rejected", "deployments": [], "key": "internetmonitor/tag-resource-exceeds-tag-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:ListTagsForResource", "internetmonitor:TagResource", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_tag_resource_exceeds_tag_limit_rejected.py", "service": "internetmonitor"} {"check_id": "internetmonitor.tag-resource-round-trip", "deployments": [], "key": "internetmonitor/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:ListTagsForResource", "internetmonitor:TagResource", "internetmonitor:UntagResource", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_tag_resource_round_trip.py", "service": "internetmonitor"} {"check_id": "internetmonitor.update-monitor-nonexistent-monitor-rejected", "deployments": [], "key": "internetmonitor/update-monitor-nonexistent-monitor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:ListMonitors", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_update_monitor_nonexistent_monitor_rejected.py", "service": "internetmonitor"} {"check_id": "internetmonitor.update-monitor-status-toggle-active-inactive", "deployments": [], "key": "internetmonitor/update-monitor-status-toggle-active-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_update_monitor_status_toggle_active_inactive.py", "service": "internetmonitor"} {"check_id": "internetmonitor.update-monitor-traffic-percentage-persists", "deployments": [], "key": "internetmonitor/update-monitor-traffic-percentage-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["internetmonitor:CreateMonitor", "internetmonitor:DeleteMonitor", "internetmonitor:GetMonitor", "internetmonitor:UpdateMonitor"], "path": "behavioral/internetmonitor/check_update_monitor_traffic_percentage_persists.py", "service": "internetmonitor"} {"check_id": "invoicing.batch-get-invoice-profile-unlinked-account-rejected", "deployments": [], "key": "invoicing/batch-get-invoice-profile-unlinked-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:BatchGetInvoiceProfile", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_batch_get_invoice_profile_unlinked_account_rejected.py", "service": "invoicing"} {"check_id": "invoicing.concurrent-create-invoice-unit-same-token-idempotent", "deployments": [], "key": "invoicing/concurrent-create-invoice-unit-same-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:ListInvoiceUnits", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_concurrent_create_invoice_unit_same_token_idempotent.py", "service": "invoicing"} {"check_id": "invoicing.create-get-invoice-unit-round-trip", "deployments": [], "key": "invoicing/create-get-invoice-unit-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:GetInvoiceUnit", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_create_get_invoice_unit_round_trip.py", "service": "invoicing"} {"check_id": "invoicing.create-invoice-unit-client-token-idempotent", "deployments": [], "key": "invoicing/create-invoice-unit-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:ListInvoiceUnits", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_create_invoice_unit_client_token_idempotent.py", "service": "invoicing"} {"check_id": "invoicing.create-invoice-unit-invalid-receiver-format-rejected", "deployments": [], "key": "invoicing/create-invoice-unit-invalid-receiver-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:GetInvoiceUnit", "invoicing:ListInvoiceUnits", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_create_invoice_unit_invalid_receiver_format_rejected.py", "service": "invoicing"} {"check_id": "invoicing.create-invoice-unit-with-resource-tags-at-creation", "deployments": [], "key": "invoicing/create-invoice-unit-with-resource-tags-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_create_invoice_unit_with_resource_tags_at_creation.py", "service": "invoicing"} {"check_id": "invoicing.create-procurement-portal-preference-duplicate-conflict-rejected", "deployments": [], "key": "invoicing/create-procurement-portal-preference-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:CreateProcurementPortalPreference"], "path": "behavioral/invoicing/check_create_procurement_portal_preference_duplicate_conflict_rejected.py", "service": "invoicing"} {"check_id": "invoicing.create-procurement-portal-preference-invalid-identifier-pattern-rejected", "deployments": [], "key": "invoicing/create-procurement-portal-preference-invalid-identifier-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:CreateProcurementPortalPreference", "invoicing:DeleteProcurementPortalPreference", "invoicing:ListProcurementPortalPreferences"], "path": "behavioral/invoicing/check_create_procurement_portal_preference_invalid_identifier_pattern_rejected.py", "service": "invoicing"} {"check_id": "invoicing.create-procurement-portal-preference-pending-verification", "deployments": [], "key": "invoicing/create-procurement-portal-preference-pending-verification", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateProcurementPortalPreference", "invoicing:DeleteProcurementPortalPreference", "invoicing:GetProcurementPortalPreference", "invoicing:ListProcurementPortalPreferences", "invoicing:PutProcurementPortalPreference", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_create_procurement_portal_preference_pending_verification.py", "service": "invoicing"} {"check_id": "invoicing.delete-invoice-unit-then-get-rejected", "deployments": [], "key": "invoicing/delete-invoice-unit-then-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:GetInvoiceUnit", "invoicing:ListInvoiceUnits", "invoicing:UpdateInvoiceUnit", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_delete_invoice_unit_then_get_rejected.py", "service": "invoicing"} {"check_id": "invoicing.get-invoice-unit-asof-before-creation-not-found", "deployments": [], "key": "invoicing/get-invoice-unit-asof-before-creation-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:GetInvoiceUnit", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_get_invoice_unit_asof_before_creation_not_found.py", "service": "invoicing"} {"check_id": "invoicing.list-invoice-summaries-for-account-returns-list", "deployments": [], "key": "invoicing/list-invoice-summaries-for-account-returns-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:ListInvoiceSummaries", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_list_invoice_summaries_for_account_returns_list.py", "service": "invoicing"} {"check_id": "invoicing.list-invoice-units-asof-shows-historical-deleted-unit", "deployments": [], "key": "invoicing/list-invoice-units-asof-shows-historical-deleted-unit", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:GetInvoiceUnit", "invoicing:ListInvoiceUnits", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_list_invoice_units_asof_shows_historical_deleted_unit.py", "service": "invoicing"} {"check_id": "invoicing.list-invoice-units-filtered-by-name-contains-created", "deployments": [], "key": "invoicing/list-invoice-units-filtered-by-name-contains-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:GetInvoiceUnit", "invoicing:ListInvoiceUnits", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_list_invoice_units_filtered_by_name_contains_created.py", "service": "invoicing"} {"check_id": "invoicing.list-invoice-units-pagination-next-token", "deployments": [], "key": "invoicing/list-invoice-units-pagination-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:ListInvoiceUnits", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_list_invoice_units_pagination_next_token.py", "service": "invoicing"} {"check_id": "invoicing.list-procurement-portal-preferences-contains-created", "deployments": [], "key": "invoicing/list-procurement-portal-preferences-contains-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateProcurementPortalPreference", "invoicing:DeleteProcurementPortalPreference", "invoicing:GetProcurementPortalPreference", "invoicing:ListProcurementPortalPreferences", "invoicing:SendProcurementPortalValidation", "invoicing:VerifyProcurementPortalValidation"], "path": "behavioral/invoicing/check_list_procurement_portal_preferences_contains_created.py", "service": "invoicing"} {"check_id": "invoicing.put-procurement-portal-preference-updates-version", "deployments": [], "key": "invoicing/put-procurement-portal-preference-updates-version", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:CreateProcurementPortalPreference", "invoicing:DeleteProcurementPortalPreference", "invoicing:GetProcurementPortalPreference", "invoicing:PutProcurementPortalPreference", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_put_procurement_portal_preference_updates_version.py", "service": "invoicing"} {"check_id": "invoicing.tag-resource-exceeds-quota-rejected", "deployments": [], "key": "invoicing/tag-resource-exceeds-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:ListTagsForResource", "invoicing:TagResource", "invoicing:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_tag_resource_exceeds_quota_rejected.py", "service": "invoicing"} {"check_id": "invoicing.tag-untag-resource-round-trip", "deployments": [], "key": "invoicing/tag-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:ListTagsForResource", "invoicing:TagResource", "invoicing:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_tag_untag_resource_round_trip.py", "service": "invoicing"} {"check_id": "invoicing.update-invoice-unit-fields-and-last-modified", "deployments": [], "key": "invoicing/update-invoice-unit-fields-and-last-modified", "labels": ["axis:happy-path", "plane:control"], "operations": ["invoicing:CreateInvoiceUnit", "invoicing:DeleteInvoiceUnit", "invoicing:GetInvoiceUnit", "invoicing:ListInvoiceUnits", "invoicing:ListTagsForResource", "invoicing:TagResource", "invoicing:UntagResource", "invoicing:UpdateInvoiceUnit", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_update_invoice_unit_fields_and_last_modified.py", "service": "invoicing"} {"check_id": "invoicing.verify-procurement-portal-validation-wrong-code-rejected", "deployments": [], "key": "invoicing/verify-procurement-portal-validation-wrong-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["invoicing:SendProcurementPortalValidation", "invoicing:VerifyProcurementPortalValidation", "sts:GetCallerIdentity"], "path": "behavioral/invoicing/check_verify_procurement_portal_validation_wrong_code_rejected.py", "service": "invoicing"} {"check_id": "iot-data.connected-client-connection-apis-reflect-live-session", "deployments": [], "key": "iot-data/connected-client-connection-apis-reflect-live-session", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["iot-data:GetConnection", "iot-data:ListSubscriptions", "iot-data:SendDirectMessage", "iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DescribeCertificate", "iot:DescribeEndpoint", "iot:DetachPolicy", "iot:ListAttachedPolicies", "iot:ListTargetsForPolicy", "iot:UpdateCertificate"], "path": "behavioral/iot-data/check_connected_client_connection_apis_reflect_live_session.py", "service": "iot-data"} {"check_id": "iot-data.connection-ops-rejected-for-unconnected-client", "deployments": [], "key": "iot-data/connection-ops-rejected-for-unconnected-client", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:DeleteConnection", "iot-data:GetConnection", "iot-data:ListSubscriptions", "iot-data:Publish", "iot-data:SendDirectMessage"], "path": "behavioral/iot-data/check_connection_ops_rejected_for_unconnected_client.py", "service": "iot-data"} {"check_id": "iot-data.publish-oversize-payload-rejected", "deployments": [], "key": "iot-data/publish-oversize-payload-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:GetRetainedMessage", "iot-data:Publish"], "path": "behavioral/iot-data/check_publish_oversize_payload_rejected.py", "service": "iot-data"} {"check_id": "iot-data.publish-topic-depth-limit-rejected", "deployments": [], "key": "iot-data/publish-topic-depth-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:GetRetainedMessage", "iot-data:Publish"], "path": "behavioral/iot-data/check_publish_topic_depth_limit_rejected.py", "service": "iot-data"} {"check_id": "iot-data.publish-wildcard-topic-rejected", "deployments": [], "key": "iot-data/publish-wildcard-topic-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:GetRetainedMessage", "iot-data:ListRetainedMessages", "iot-data:Publish"], "path": "behavioral/iot-data/check_publish_wildcard_topic_rejected.py", "service": "iot-data"} {"check_id": "iot-data.retained-message-overwrite-keeps-latest", "deployments": [], "key": "iot-data/retained-message-overwrite-keeps-latest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:GetRetainedMessage", "iot-data:ListRetainedMessages", "iot-data:Publish"], "path": "behavioral/iot-data/check_retained_message_overwrite_keeps_latest.py", "service": "iot-data"} {"check_id": "iot-data.retained-message-requires-retain-flag", "deployments": [], "key": "iot-data/retained-message-requires-retain-flag", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iot-data:GetRetainedMessage", "iot-data:ListRetainedMessages", "iot-data:Publish"], "path": "behavioral/iot-data/check_retained_message_requires_retain_flag.py", "service": "iot-data"} {"check_id": "iot-data.shadow-malformed-json-payload-rejected", "deployments": [], "key": "iot-data/shadow-malformed-json-payload-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/iot-data/check_shadow_malformed_json_payload_rejected.py", "service": "iot-data"} {"check_id": "iot-data.shadow-reserved-and-oversize-name-rejected", "deployments": [], "key": "iot-data/shadow-reserved-and-oversize-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:ListNamedShadowsForThing", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/iot-data/check_shadow_reserved_and_oversize_name_rejected.py", "service": "iot-data"} {"check_id": "iot-data.shadow-unknown-state-node-rejected", "deployments": [], "key": "iot-data/shadow-unknown-state-node-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/iot-data/check_shadow_unknown_state_node_rejected.py", "service": "iot-data"} {"check_id": "iot-data.shadow-version-conditioned-create-rejected", "deployments": [], "key": "iot-data/shadow-version-conditioned-create-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/iot-data/check_shadow_version_conditioned_create_rejected.py", "service": "iot-data"} {"check_id": "iot-data.shadow-version-counter-survives-delete-and-recreate", "deployments": [], "key": "iot-data/shadow-version-counter-survives-delete-and-recreate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing"], "path": "behavioral/iot-data/check_shadow_version_counter_survives_delete_and_recreate.py", "service": "iot-data"} {"check_id": "iot-data.shadow-without-registry-thing-and-named-shadow-listing", "deployments": [], "key": "iot-data/shadow-without-registry-thing-and-named-shadow-listing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:ListNamedShadowsForThing", "iot-data:UpdateThingShadow", "iot:ListThings"], "path": "behavioral/iot-data/check_shadow_without_registry_thing_and_named_shadow_listing.py", "service": "iot-data"} {"check_id": "iot-jobs-data.absent-thing-queue-reads-over-permissive-while-describe-rejected", "deployments": [], "key": "iot-jobs-data/absent-thing-queue-reads-over-permissive-while-describe-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_absent_thing_queue_reads_over_permissive_while_describe_rejected.py", "service": "iot-jobs-data"} {"check_id": "iot-jobs-data.illegal-status-transitions-rejected-queued-to-succeeded-allowed", "deployments": [], "key": "iot-jobs-data/illegal-status-transitions-rejected-queued-to-succeeded-allowed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_illegal_status_transitions_rejected_queued_to_succeeded_allowed.py", "service": "iot-jobs-data"} {"check_id": "iot-jobs-data.include-toggles-have-opposite-defaults-per-operation", "deployments": [], "key": "iot-jobs-data/include-toggles-have-opposite-defaults-per-operation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_include_toggles_have_opposite_defaults_per_operation.py", "service": "iot-jobs-data"} {"check_id": "iot-jobs-data.stale-expected-version-rejected-leaves-execution-unchanged", "deployments": [], "key": "iot-jobs-data/stale-expected-version-rejected-leaves-execution-unchanged", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_stale_expected_version_rejected_leaves_execution_unchanged.py", "service": "iot-jobs-data"} {"check_id": "iot-jobs-data.start-command-execution-client-token-idempotent-and-absent-target-over-permissive", "deployments": [], "key": "iot-jobs-data/start-command-execution-client-token-idempotent-and-absent-target-over-permissive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_start_command_execution_client_token_idempotent_and_absent_target_over_permissive.py", "service": "iot-jobs-data"} {"check_id": "iot-jobs-data.start-command-execution-unknown-and-deprecated-command-rejected", "deployments": [], "key": "iot-jobs-data/start-command-execution-unknown-and-deprecated-command-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_start_command_execution_unknown_and_deprecated_command_rejected.py", "service": "iot-jobs-data"} {"check_id": "iot-jobs-data.start-next-returns-in-progress-before-next-queued", "deployments": [], "key": "iot-jobs-data/start-next-returns-in-progress-before-next-queued", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_start_next_returns_in_progress_before_next_queued.py", "service": "iot-jobs-data"} {"check_id": "iot-jobs-data.status-details-replaced-not-merged-and-kept-when-omitted", "deployments": [], "key": "iot-jobs-data/status-details-replaced-not-merged-and-kept-when-omitted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_status_details_replaced_not_merged_and_kept_when_omitted.py", "service": "iot-jobs-data"} {"check_id": "iot-jobs-data.terminal-execution-read-and-update-rejected-distinctly", "deployments": [], "key": "iot-jobs-data/terminal-execution-read-and-update-rejected-distinctly", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot-jobs-data/check_terminal_execution_read_and_update_rejected_distinctly.py", "service": "iot-jobs-data"} {"check_id": "iot-managed-integrations.account-association-lifecycle-and-refresh-conflict", "deployments": [], "key": "iot-managed-integrations/account-association-lifecycle-and-refresh-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot-managed-integrations:CreateAccountAssociation", "iot-managed-integrations:CreateCloudConnector", "iot-managed-integrations:CreateConnectorDestination", "iot-managed-integrations:DeleteAccountAssociation", "iot-managed-integrations:DeleteCloudConnector", "iot-managed-integrations:DeleteConnectorDestination", "iot-managed-integrations:GetAccountAssociation", "iot-managed-integrations:GetConnectorDestination", "iot-managed-integrations:StartAccountAssociationRefresh", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/iot-managed-integrations/check_account_association_lifecycle_and_refresh_conflict.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.cloud-connector-lifecycle", "deployments": [], "key": "iot-managed-integrations/cloud-connector-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot-managed-integrations:CreateCloudConnector", "iot-managed-integrations:DeleteCloudConnector", "iot-managed-integrations:GetCloudConnector", "iot-managed-integrations:UpdateCloudConnector", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/iot-managed-integrations/check_cloud_connector_lifecycle.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.connector-destination-referential-integrity", "deployments": [], "key": "iot-managed-integrations/connector-destination-referential-integrity", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot-managed-integrations:CreateCloudConnector", "iot-managed-integrations:CreateConnectorDestination", "iot-managed-integrations:DeleteCloudConnector", "iot-managed-integrations:DeleteConnectorDestination", "iot-managed-integrations:GetConnectorDestination", "iot-managed-integrations:UpdateConnectorDestination", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/iot-managed-integrations/check_connector_destination_referential_integrity.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.credential-locker-quota-exceeded-accepted", "deployments": [], "key": "iot-managed-integrations/credential-locker-quota-exceeded-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateCredentialLocker", "iot-managed-integrations:DeleteCredentialLocker", "iot-managed-integrations:GetCredentialLocker", "iot-managed-integrations:ListCredentialLockers"], "path": "behavioral/iot-managed-integrations/check_credential_locker_quota_exceeded_accepted.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.default-encryption-configuration-lifecycle", "deployments": [], "key": "iot-managed-integrations/default-encryption-configuration-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["iot-managed-integrations:GetDefaultEncryptionConfiguration", "iot-managed-integrations:PutDefaultEncryptionConfiguration"], "path": "behavioral/iot-managed-integrations/check_default_encryption_configuration_lifecycle.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.destination-duplicate-name-conflict-rejected", "deployments": [], "key": "iot-managed-integrations/destination-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-managed-integrations:CreateDestination", "iot-managed-integrations:DeleteDestination", "iot-managed-integrations:GetDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "sts:GetCallerIdentity"], "path": "behavioral/iot-managed-integrations/check_destination_duplicate_name_conflict_rejected.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.destination-lifecycle-and-update", "deployments": [], "key": "iot-managed-integrations/destination-lifecycle-and-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-managed-integrations:CreateDestination", "iot-managed-integrations:DeleteDestination", "iot-managed-integrations:GetDestination", "iot-managed-integrations:UpdateDestination", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/iot-managed-integrations/check_destination_lifecycle_and_update.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.device-discovery-lifecycle-and-discovered-devices", "deployments": [], "key": "iot-managed-integrations/device-discovery-lifecycle-and-discovered-devices", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateManagedThing", "iot-managed-integrations:DeleteManagedThing", "iot-managed-integrations:GetDeviceDiscovery", "iot-managed-integrations:ListDeviceDiscoveries", "iot-managed-integrations:ListDiscoveredDevices", "iot-managed-integrations:StartDeviceDiscovery"], "path": "behavioral/iot-managed-integrations/check_device_discovery_lifecycle_and_discovered_devices.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.event-log-configuration-lifecycle-and-duplicate-conflict", "deployments": [], "key": "iot-managed-integrations/event-log-configuration-lifecycle-and-duplicate-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateEventLogConfiguration", "iot-managed-integrations:DeleteEventLogConfiguration", "iot-managed-integrations:GetEventLogConfiguration", "iot-managed-integrations:ListEventLogConfigurations", "iot-managed-integrations:UpdateEventLogConfiguration"], "path": "behavioral/iot-managed-integrations/check_event_log_configuration_lifecycle_and_duplicate_conflict.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.hub-configuration-invalid-expiry-rejected", "deployments": [], "key": "iot-managed-integrations/hub-configuration-invalid-expiry-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot-managed-integrations:GetHubConfiguration", "iot-managed-integrations:PutHubConfiguration"], "path": "behavioral/iot-managed-integrations/check_hub_configuration_invalid_expiry_rejected.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.list-account-associations-max-results-out-of-range-rejected", "deployments": [], "key": "iot-managed-integrations/list-account-associations-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot-managed-integrations:ListAccountAssociations"], "path": "behavioral/iot-managed-integrations/check_list_account_associations_max_results_out_of_range_rejected.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.managed-thing-capability-report-round-trip", "deployments": [], "key": "iot-managed-integrations/managed-thing-capability-report-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateManagedThing", "iot-managed-integrations:DeleteManagedThing", "iot-managed-integrations:GetManagedThingCapabilities"], "path": "behavioral/iot-managed-integrations/check_managed_thing_capability_report_round_trip.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.managed-thing-double-delete-not-found", "deployments": [], "key": "iot-managed-integrations/managed-thing-double-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iot-managed-integrations:CreateManagedThing", "iot-managed-integrations:DeleteManagedThing", "iot-managed-integrations:GetManagedThing"], "path": "behavioral/iot-managed-integrations/check_managed_thing_double_delete_not_found.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.managed-thing-lifecycle-state-transitions", "deployments": [], "key": "iot-managed-integrations/managed-thing-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateManagedThing", "iot-managed-integrations:DeleteManagedThing", "iot-managed-integrations:GetManagedThing", "iot-managed-integrations:TagResource", "iot-managed-integrations:UpdateManagedThing"], "path": "behavioral/iot-managed-integrations/check_managed_thing_lifecycle_state_transitions.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.notification-configuration-lifecycle", "deployments": [], "key": "iot-managed-integrations/notification-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iot-managed-integrations:CreateDestination", "iot-managed-integrations:CreateNotificationConfiguration", "iot-managed-integrations:DeleteDestination", "iot-managed-integrations:DeleteNotificationConfiguration", "iot-managed-integrations:GetNotificationConfiguration", "iot-managed-integrations:UpdateNotificationConfiguration", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream"], "path": "behavioral/iot-managed-integrations/check_notification_configuration_lifecycle.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.ota-task-configuration-lifecycle", "deployments": [], "key": "iot-managed-integrations/ota-task-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateOtaTaskConfiguration", "iot-managed-integrations:DeleteOtaTaskConfiguration", "iot-managed-integrations:GetOtaTaskConfiguration"], "path": "behavioral/iot-managed-integrations/check_ota_task_configuration_lifecycle.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.ota-task-lifecycle-and-target-validation", "deployments": [], "key": "iot-managed-integrations/ota-task-lifecycle-and-target-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["iot-managed-integrations:CreateOtaTask", "iot-managed-integrations:DeleteOtaTask", "iot-managed-integrations:ListOtaTasks", "iot-managed-integrations:RegisterCustomEndpoint", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/iot-managed-integrations/check_ota_task_lifecycle_and_target_validation.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.provisioning-profile-concurrent-create-idempotent-client-token", "deployments": [], "key": "iot-managed-integrations/provisioning-profile-concurrent-create-idempotent-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateProvisioningProfile", "iot-managed-integrations:DeleteProvisioningProfile", "iot-managed-integrations:GetProvisioningProfile", "iot-managed-integrations:ListProvisioningProfiles", "iot-managed-integrations:RegisterCustomEndpoint"], "path": "behavioral/iot-managed-integrations/check_provisioning_profile_concurrent_create_idempotent_client_token.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.provisioning-profile-lifecycle-status", "deployments": [], "key": "iot-managed-integrations/provisioning-profile-lifecycle-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateProvisioningProfile", "iot-managed-integrations:DeleteProvisioningProfile", "iot-managed-integrations:GetProvisioningProfile", "iot-managed-integrations:ListProvisioningProfiles", "iot-managed-integrations:RegisterCustomEndpoint"], "path": "behavioral/iot-managed-integrations/check_provisioning_profile_lifecycle_status.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.register-custom-endpoint-repeat-is-idempotent-get-or-create", "deployments": [], "key": "iot-managed-integrations/register-custom-endpoint-repeat-is-idempotent-get-or-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:GetCustomEndpoint", "iot-managed-integrations:RegisterCustomEndpoint"], "path": "behavioral/iot-managed-integrations/check_register_custom_endpoint_repeat_is_idempotent_get_or_create.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.runtime-log-configuration-put-get-reset-cycle", "deployments": [], "key": "iot-managed-integrations/runtime-log-configuration-put-get-reset-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateManagedThing", "iot-managed-integrations:DeleteManagedThing", "iot-managed-integrations:GetManagedThing", "iot-managed-integrations:GetRuntimeLogConfiguration", "iot-managed-integrations:PutRuntimeLogConfiguration", "iot-managed-integrations:ResetRuntimeLogConfiguration"], "path": "behavioral/iot-managed-integrations/check_runtime_log_configuration_put_get_reset_cycle.py", "service": "iot-managed-integrations"} {"check_id": "iot-managed-integrations.tag-resource-round-trip-on-managed-thing", "deployments": [], "key": "iot-managed-integrations/tag-resource-round-trip-on-managed-thing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-managed-integrations:CreateManagedThing", "iot-managed-integrations:DeleteManagedThing", "iot-managed-integrations:ListTagsForResource", "iot-managed-integrations:TagResource", "iot-managed-integrations:UntagResource"], "path": "behavioral/iot-managed-integrations/check_tag_resource_round_trip_on_managed_thing.py", "service": "iot-managed-integrations"} {"check_id": "iot.add-remove-thing-from-group", "deployments": [], "key": "iot/add-remove-thing-from-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AddThingToThingGroup", "iot:CreateThing", "iot:CreateThingGroup", "iot:DeleteThing", "iot:DeleteThingGroup", "iot:ListThingGroupsForThing", "iot:ListThingsInThingGroup", "iot:RemoveThingFromThingGroup"], "path": "behavioral/iot/check_add_remove_thing_from_group.py", "service": "iot"} {"check_id": "iot.associate-targets-exceeds-limit-rejected", "deployments": [], "key": "iot/associate-targets-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AssociateTargetsWithJob", "iot:CreateJob", "iot:CreateThingGroup", "iot:DeleteJob", "iot:DeleteThingGroup", "iot:DescribeJob"], "path": "behavioral/iot/check_associate_targets_exceeds_limit_rejected.py", "service": "iot"} {"check_id": "iot.associate-targets-job-limit-exceeded-rejected", "deployments": [], "key": "iot/associate-targets-job-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AssociateTargetsWithJob", "iot:CreateJob", "iot:CreateThingGroup", "iot:DeleteJob", "iot:DeleteThingGroup", "iot:DescribeJob"], "path": "behavioral/iot/check_associate_targets_job_limit_exceeded_rejected.py", "service": "iot"} {"check_id": "iot.attach-detach-policy-to-certificate", "deployments": [], "key": "iot/attach-detach-policy-to-certificate", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPolicyVersions", "iot:ListPrincipalThings", "iot:ListTargetsForPolicy", "iot:UpdateCertificate"], "path": "behavioral/iot/check_attach_detach_policy_to_certificate.py", "service": "iot"} {"check_id": "iot.attach-policy-nonexistent-policy-rejected", "deployments": [], "key": "iot/attach-policy-nonexistent-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DetachPolicy", "iot:ListAttachedPolicies", "iot:UpdateCertificate"], "path": "behavioral/iot/check_attach_policy_nonexistent_policy_rejected.py", "service": "iot"} {"check_id": "iot.attach-policy-nonexistent-target-rejected", "deployments": [], "key": "iot/attach-policy-nonexistent-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DetachPolicy", "iot:ListTargetsForPolicy", "iot:UpdateCertificate", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_attach_policy_nonexistent_target_rejected.py", "service": "iot"} {"check_id": "iot.audit-suppression-lifecycle", "deployments": [], "key": "iot/audit-suppression-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateAuditSuppression", "iot:CreateKeysAndCertificate", "iot:DeleteAuditSuppression", "iot:DeleteCertificate", "iot:DescribeAuditSuppression", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListAuditSuppressions", "iot:ListPrincipalThings", "iot:UpdateAuditSuppression", "iot:UpdateCertificate"], "path": "behavioral/iot/check_audit_suppression_lifecycle.py", "service": "iot"} {"check_id": "iot.authorizer-lifecycle-and-active-delete-guard", "deployments": [], "key": "iot/authorizer-lifecycle-and-active-delete-guard", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateAuthorizer", "iot:DeleteAuthorizer", "iot:DescribeAuthorizer", "iot:ListAuthorizers", "iot:UpdateAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_authorizer_lifecycle_and_active_delete_guard.py", "service": "iot"} {"check_id": "iot.authorizer-tag-untag-round-trip-and-missing-authorizer-rejected", "deployments": [], "key": "iot/authorizer-tag-untag-round-trip-and-missing-authorizer-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateAuthorizer", "iot:DeleteAuthorizer", "iot:DescribeAuthorizer", "iot:ListTagsForResource", "iot:TagResource", "iot:UntagResource", "iot:UpdateAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_authorizer_tag_untag_round_trip_and_missing_authorizer_rejected.py", "service": "iot"} {"check_id": "iot.billing-group-lifecycle-and-membership", "deployments": [], "key": "iot/billing-group-lifecycle-and-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AddThingToBillingGroup", "iot:CreateBillingGroup", "iot:CreateThing", "iot:DeleteBillingGroup", "iot:DeleteThing", "iot:DescribeBillingGroup", "iot:ListBillingGroups", "iot:ListThingsInBillingGroup", "iot:RemoveThingFromBillingGroup", "iot:UpdateBillingGroup"], "path": "behavioral/iot/check_billing_group_lifecycle_and_membership.py", "service": "iot"} {"check_id": "iot.billing-group-stale-version-delete-fails", "deployments": [], "key": "iot/billing-group-stale-version-delete-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateBillingGroup", "iot:DeleteBillingGroup", "iot:DescribeBillingGroup"], "path": "behavioral/iot/check_billing_group_stale_version_delete_fails.py", "service": "iot"} {"check_id": "iot.cancel-certificate-transfer-not-in-progress-fails", "deployments": [], "key": "iot/cancel-certificate-transfer-not-in-progress-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CancelCertificateTransfer", "iot:CreateKeysAndCertificate", "iot:DeleteCertificate", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListOutgoingCertificates", "iot:ListPrincipalThings", "iot:TransferCertificate", "iot:UpdateCertificate"], "path": "behavioral/iot/check_cancel_certificate_transfer_not_in_progress_fails.py", "service": "iot"} {"check_id": "iot.cancel-completed-audit-task-rejected", "deployments": [], "key": "iot/cancel-completed-audit-task-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iot:CancelAuditTask", "iot:DeleteAccountAuditConfiguration", "iot:DescribeAccountAuditConfiguration", "iot:DescribeAuditTask", "iot:StartOnDemandAuditTask", "iot:UpdateAccountAuditConfiguration"], "path": "behavioral/iot/check_cancel_completed_audit_task_rejected.py", "service": "iot"} {"check_id": "iot.certificate-attach-detach-thing", "deployments": [], "key": "iot/certificate-attach-detach-thing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPrincipalThings", "iot:ListThingPrincipals", "iot:UpdateCertificate"], "path": "behavioral/iot/check_certificate_attach_detach_thing.py", "service": "iot"} {"check_id": "iot.certificate-provider-delete-conflict-when-referenced-rejected", "deployments": [], "key": "iot/certificate-provider-delete-conflict-when-referenced-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iot:CreateCertificateProvider", "iot:DeleteCertificateProvider", "iot:DescribeCertificateProvider", "iot:ListCertificateProviders", "iot:UpdateCertificateProvider", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/iot/check_certificate_provider_delete_conflict_when_referenced_rejected.py", "service": "iot"} {"check_id": "iot.certificate-provider-lifecycle", "deployments": [], "key": "iot/certificate-provider-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateCertificateProvider", "iot:DeleteCertificateProvider", "iot:DescribeCertificateProvider", "iot:UpdateCertificateProvider", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/iot/check_certificate_provider_lifecycle.py", "service": "iot"} {"check_id": "iot.certificate-provider-singleton-lifecycle", "deployments": [], "key": "iot/certificate-provider-singleton-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateCertificateProvider", "iot:DeleteCertificateProvider", "iot:DescribeCertificateProvider", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/iot/check_certificate_provider_singleton_lifecycle.py", "service": "iot"} {"check_id": "iot.certificate-state-transitions", "deployments": [], "key": "iot/certificate-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateKeysAndCertificate", "iot:DeleteCertificate", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPrincipalThings", "iot:UpdateCertificate"], "path": "behavioral/iot/check_certificate_state_transitions.py", "service": "iot"} {"check_id": "iot.certificate-status-transitions", "deployments": [], "key": "iot/certificate-status-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateKeysAndCertificate", "iot:DeleteCertificate", "iot:DescribeCertificate", "iot:UpdateCertificate"], "path": "behavioral/iot/check_certificate_status_transitions.py", "service": "iot"} {"check_id": "iot.command-execution-delete-non-terminal-rejected", "deployments": [], "key": "iot/command-execution-delete-non-terminal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot-jobs-data:StartCommandExecution", "iot:CreateCommand", "iot:CreateThing", "iot:DeleteCommand", "iot:DeleteCommandExecution", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:GetCommandExecution"], "path": "behavioral/iot/check_command_execution_delete_non_terminal_rejected.py", "service": "iot"} {"check_id": "iot.command-execution-state-transitions", "deployments": [], "key": "iot/command-execution-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot-jobs-data:StartCommandExecution", "iot:CreateCommand", "iot:CreateThing", "iot:DeleteCommand", "iot:DeleteCommandExecution", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:GetCommand", "iot:GetCommandExecution"], "path": "behavioral/iot/check_command_execution_state_transitions.py", "service": "iot"} {"check_id": "iot.command-lifecycle", "deployments": [], "key": "iot/command-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateCommand", "iot:DeleteCommand", "iot:GetCommand", "iot:ListCommands", "iot:UpdateCommand"], "path": "behavioral/iot/check_command_lifecycle.py", "service": "iot"} {"check_id": "iot.command-mandatory-parameters-empty-rejected", "deployments": [], "key": "iot/command-mandatory-parameters-empty-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateCommand", "iot:DeleteCommand", "iot:GetCommand"], "path": "behavioral/iot/check_command_mandatory_parameters_empty_rejected.py", "service": "iot"} {"check_id": "iot.command-payload-binary-round-trip", "deployments": [], "key": "iot/command-payload-binary-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateCommand", "iot:DeleteCommand", "iot:GetCommand"], "path": "behavioral/iot/check_command_payload_binary_round_trip.py", "service": "iot"} {"check_id": "iot.concurrency-package-version-conflict-on-concurrent-publish", "deployments": [], "key": "iot/concurrency-package-version-conflict-on-concurrent-publish", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:TagResource", "iot:UpdateIndexingConfiguration", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_concurrency_package_version_conflict_on_concurrent_publish.py", "service": "iot"} {"check_id": "iot.concurrency-scheduled-audit-name-conflict-rejected", "deployments": [], "key": "iot/concurrency-scheduled-audit-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateScheduledAudit", "iot:DeleteAccountAuditConfiguration", "iot:DeleteScheduledAudit", "iot:DescribeAccountAuditConfiguration", "iot:DescribeScheduledAudit", "iot:UpdateAccountAuditConfiguration"], "path": "behavioral/iot/check_concurrency_scheduled_audit_name_conflict_rejected.py", "service": "iot"} {"check_id": "iot.concurrent-command-execution-creation-respects-limit", "deployments": [], "key": "iot/concurrent-command-execution-creation-respects-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-jobs-data:StartCommandExecution", "iot:CreateCommand", "iot:CreateThing", "iot:DeleteCommand", "iot:DeleteCommandExecution", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:GetCommand", "iot:GetCommandExecution", "iot:ListCommandExecutions"], "path": "behavioral/iot/check_concurrent_command_execution_creation_respects_limit.py", "service": "iot"} {"check_id": "iot.concurrent-package-version-default-update-conflict", "deployments": [], "key": "iot/concurrent-package-version-default-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackage", "iot:ListPackageVersions", "iot:UpdateIndexingConfiguration", "iot:UpdatePackage", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_concurrent_package_version_default_update_conflict.py", "service": "iot"} {"check_id": "iot.concurrent-policy-version-creation-respects-limit", "deployments": [], "key": "iot/concurrent-policy-version-creation-respects-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePolicy", "iot:CreatePolicyVersion", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DetachPolicy", "iot:ListPolicyVersions", "iot:ListTargetsForPolicy"], "path": "behavioral/iot/check_concurrent_policy_version_creation_respects_limit.py", "service": "iot"} {"check_id": "iot.concurrent-provisioning-template-version-creation-conflict", "deployments": [], "key": "iot/concurrent-provisioning-template-version-creation-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateProvisioningTemplate", "iot:CreateProvisioningTemplateVersion", "iot:DeleteProvisioningTemplate", "iot:DeleteProvisioningTemplateVersion", "iot:ListProvisioningTemplateVersions"], "path": "behavioral/iot/check_concurrent_provisioning_template_version_creation_conflict.py", "service": "iot"} {"check_id": "iot.concurrent-shadow-version-conditioned-updates", "deployments": [], "key": "iot/concurrent-shadow-version-conditioned-updates", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_concurrent_shadow_version_conditioned_updates.py", "service": "iot"} {"check_id": "iot.concurrent-thing-group-update-optimistic-lock", "deployments": [], "key": "iot/concurrent-thing-group-update-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:DescribeThingGroup", "iot:UpdateThingGroup"], "path": "behavioral/iot/check_concurrent_thing_group_update_optimistic_lock.py", "service": "iot"} {"check_id": "iot.concurrent-topic-rule-destination-update-conflicting-rejected", "deployments": [], "key": "iot/concurrent-topic-rule-destination-update-conflicting-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateTopicRuleDestination", "iot:DeleteTopicRuleDestination", "iot:GetTopicRuleDestination", "iot:UpdateTopicRuleDestination"], "path": "behavioral/iot/check_concurrent_topic_rule_destination_update_conflicting_rejected.py", "service": "iot"} {"check_id": "iot.create-describe-delete-thing", "deployments": [], "key": "iot/create-describe-delete-thing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:DescribeThing", "iot:ListThings", "iot:UpdateThing"], "path": "behavioral/iot/check_create_describe_delete_thing.py", "service": "iot"} {"check_id": "iot.create-domain-configuration-invalid-certificate-rejected", "deployments": [], "key": "iot/create-domain-configuration-invalid-certificate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:AddTagsToCertificate", "acm:DeleteCertificate", "acm:ImportCertificate", "iot:CreateDomainConfiguration", "iot:DescribeDomainConfiguration", "iot:DescribeEndpoint", "iot:ListDomainConfigurations"], "path": "behavioral/iot/check_create_domain_configuration_invalid_certificate_rejected.py", "service": "iot"} {"check_id": "iot.create-dynamic-thing-group-invalid-query-rejected", "deployments": [], "key": "iot/create-dynamic-thing-group-invalid-query-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateDynamicThingGroup", "iot:DeleteDynamicThingGroup", "iot:DescribeIndex", "iot:DescribeThingGroup", "iot:GetIndexingConfiguration", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_create_dynamic_thing_group_invalid_query_rejected.py", "service": "iot"} {"check_id": "iot.create-fleet-metric-invalid-aggregation-rejected", "deployments": [], "key": "iot/create-fleet-metric-invalid-aggregation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateFleetMetric", "iot:DeleteFleetMetric", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:ListFleetMetrics", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_create_fleet_metric_invalid_aggregation_rejected.py", "service": "iot"} {"check_id": "iot.create-job-nonexistent-target-fails", "deployments": [], "key": "iot/create-job-nonexistent-target-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CancelJob", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeJob", "iot:DescribeThing", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_create_job_nonexistent_target_fails.py", "service": "iot"} {"check_id": "iot.create-package-version-conflict-duplicate-rejected", "deployments": [], "key": "iot/create-package-version-conflict-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_create_package_version_conflict_duplicate_rejected.py", "service": "iot"} {"check_id": "iot.create-provisioning-claim-missing-template-rejected", "deployments": [], "key": "iot/create-provisioning-claim-missing-template-rejected", "labels": ["axis:rejection", "dp:native", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreatePolicy", "iot:CreateProvisioningClaim", "iot:CreateProvisioningTemplate", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeleteProvisioningTemplate", "iot:DescribeEndpoint", "iot:ListCertificates", "iot:UpdateCertificate"], "path": "behavioral/iot/check_create_provisioning_claim_missing_template_rejected.py", "service": "iot"} {"check_id": "iot.create-thing-conflicting-attributes-fails", "deployments": [], "key": "iot/create-thing-conflicting-attributes-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:DescribeThing", "iot:UpdateThing"], "path": "behavioral/iot/check_create_thing_conflicting_attributes_fails.py", "service": "iot"} {"check_id": "iot.create-thing-conflicting-type-fails", "deployments": [], "key": "iot/create-thing-conflicting-type-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThing", "iot:CreateThingType", "iot:DeleteThing", "iot:DeleteThingType", "iot:DeprecateThingType", "iot:DescribeThing"], "path": "behavioral/iot/check_create_thing_conflicting_type_fails.py", "service": "iot"} {"check_id": "iot.create-thing-idempotent-same-attributes", "deployments": [], "key": "iot/create-thing-idempotent-same-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:DescribeThing"], "path": "behavioral/iot/check_create_thing_idempotent_same_attributes.py", "service": "iot"} {"check_id": "iot.create-topic-rule-invalid-sql-fails", "deployments": [], "key": "iot/create-topic-rule-invalid-sql-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:GetTopicRule", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_create_topic_rule_invalid_sql_fails.py", "service": "iot"} {"check_id": "iot.data-plane-command-execution-payload-round-trip", "deployments": [], "key": "iot/data-plane-command-execution-payload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateCommand", "iot:DeleteCommand", "iot:GetCommand", "iot:UpdateCommand"], "path": "behavioral/iot/check_data_plane_command_execution_payload_round_trip.py", "service": "iot"} {"check_id": "iot.data-plane-effective-policies-reflect-attached-policies", "deployments": [], "key": "iot/data-plane-effective-policies-reflect-attached-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DetachPolicy", "iot:GetEffectivePolicies", "iot:UpdateCertificate"], "path": "behavioral/iot/check_data_plane_effective_policies_reflect_attached_policies.py", "service": "iot"} {"check_id": "iot.data-plane-fleet-indexing-aggregation-reflects-thing-state", "deployments": [], "key": "iot/data-plane-fleet-indexing-aggregation-reflects-thing-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:GetBucketsAggregation", "iot:GetCardinality", "iot:GetIndexingConfiguration", "iot:GetPercentiles", "iot:GetStatistics", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_data_plane_fleet_indexing_aggregation_reflects_thing_state.py", "service": "iot"} {"check_id": "iot.data-plane-package-version-artifact-round-trip", "deployments": [], "key": "iot/data-plane-package-version-artifact-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AssociateSbomWithPackageVersion", "iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/iot/check_data_plane_package_version_artifact_round_trip.py", "service": "iot"} {"check_id": "iot.data-plane-registration-code-delete-and-regenerate", "deployments": [], "key": "iot/data-plane-registration-code-delete-and-regenerate", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:DeleteRegistrationCode", "iot:GetRegistrationCode"], "path": "behavioral/iot/check_data_plane_registration_code_delete_and_regenerate.py", "service": "iot"} {"check_id": "iot.data-plane-v2-logging-options-configured-vs-unset", "deployments": [], "key": "iot/data-plane-v2-logging-options-configured-vs-unset", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:DeleteV2LoggingLevel", "iot:GetV2LoggingOptions", "iot:ListV2LoggingLevels", "iot:SetV2LoggingLevel", "iot:SetV2LoggingOptions"], "path": "behavioral/iot/check_data_plane_v2_logging_options_configured_vs_unset.py", "service": "iot"} {"check_id": "iot.default-authorizer-duplicate-set-and-delete-conflict", "deployments": [], "key": "iot/default-authorizer-duplicate-set-and-delete-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:ClearDefaultAuthorizer", "iot:CreateAuthorizer", "iot:DeleteAuthorizer", "iot:DescribeAuthorizer", "iot:DescribeDefaultAuthorizer", "iot:SetDefaultAuthorizer", "iot:UpdateAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_default_authorizer_duplicate_set_and_delete_conflict.py", "service": "iot"} {"check_id": "iot.delete-active-certificate-fails", "deployments": [], "key": "iot/delete-active-certificate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateKeysAndCertificate", "iot:DeleteCertificate", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPrincipalThings", "iot:UpdateCertificate"], "path": "behavioral/iot/check_delete_active_certificate_fails.py", "service": "iot"} {"check_id": "iot.delete-ca-certificate-active-state-rejected", "deployments": [], "key": "iot/delete-ca-certificate-active-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:DeleteCACertificate", "iot:DescribeCACertificate", "iot:RegisterCACertificate", "iot:UpdateCACertificate"], "path": "behavioral/iot/check_delete_ca_certificate_active_state_rejected.py", "service": "iot"} {"check_id": "iot.delete-ca-certificate-with-active-certs-rejected", "deployments": [], "key": "iot/delete-ca-certificate-with-active-certs-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:DeleteCACertificate", "iot:DeleteCertificate", "iot:DescribeCACertificate", "iot:DescribeCertificate", "iot:RegisterCACertificate", "iot:RegisterCertificate", "iot:UpdateCACertificate", "iot:UpdateCertificate"], "path": "behavioral/iot/check_delete_ca_certificate_with_active_certs_rejected.py", "service": "iot"} {"check_id": "iot.delete-certificate-provider-succeeds-as-account-default", "deployments": [], "key": "iot/delete-certificate-provider-succeeds-as-account-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateCertificateFromCsr", "iot:CreateCertificateProvider", "iot:DeleteCertificate", "iot:DeleteCertificateProvider", "iot:DescribeCertificateProvider", "iot:UpdateCertificate", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/iot/check_delete_certificate_provider_succeeds_as_account_default.py", "service": "iot"} {"check_id": "iot.delete-certificate-with-attached-thing-fails", "deployments": [], "key": "iot/delete-certificate-with-attached-thing-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPrincipalThings", "iot:UpdateCertificate"], "path": "behavioral/iot/check_delete_certificate_with_attached_thing_fails.py", "service": "iot"} {"check_id": "iot.delete-command-execution-non-terminal-rejected", "deployments": [], "key": "iot/delete-command-execution-non-terminal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot-jobs-data:StartCommandExecution", "iot:CreateCommand", "iot:CreateThing", "iot:DeleteCommand", "iot:DeleteCommandExecution", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:GetCommandExecution"], "path": "behavioral/iot/check_delete_command_execution_non_terminal_rejected.py", "service": "iot"} {"check_id": "iot.delete-default-policy-version-fails", "deployments": [], "key": "iot/delete-default-policy-version-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePolicy", "iot:CreatePolicyVersion", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DetachPolicy", "iot:ListPolicyVersions", "iot:ListTargetsForPolicy"], "path": "behavioral/iot/check_delete_default_policy_version_fails.py", "service": "iot"} {"check_id": "iot.delete-in-progress-job-requires-force", "deployments": [], "key": "iot/delete-in-progress-job-requires-force", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CancelJob", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeJob", "iot:DescribeThing"], "path": "behavioral/iot/check_delete_in_progress_job_requires_force.py", "service": "iot"} {"check_id": "iot.delete-job-execution-removes-single-execution", "deployments": [], "key": "iot/delete-job-execution-removes-single-execution", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CancelJob", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteJobExecution", "iot:DeleteThing", "iot:DescribeJob", "iot:DescribeJobExecution", "iot:DescribeThing"], "path": "behavioral/iot/check_delete_job_execution_removes_single_execution.py", "service": "iot"} {"check_id": "iot.delete-package-with-existing-versions-rejected", "deployments": [], "key": "iot/delete-package-with-existing-versions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackage", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_delete_package_with_existing_versions_rejected.py", "service": "iot"} {"check_id": "iot.delete-package-with-versions-conflict-rejected", "deployments": [], "key": "iot/delete-package-with-versions-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:GetIndexingConfiguration", "iot:GetPackage", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_delete_package_with_versions_conflict_rejected.py", "service": "iot"} {"check_id": "iot.delete-provisioning-template-in-use-rejected", "deployments": [], "key": "iot/delete-provisioning-template-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iot:CreateProvisioningTemplate", "iot:DeleteCACertificate", "iot:DeleteProvisioningTemplate", "iot:DescribeProvisioningTemplate", "iot:RegisterCACertificate"], "path": "behavioral/iot/check_delete_provisioning_template_in_use_rejected.py", "service": "iot"} {"check_id": "iot.delete-provisioning-template-version-conflict-rejected", "deployments": [], "key": "iot/delete-provisioning-template-version-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreatePolicy", "iot:CreateProvisioningTemplate", "iot:CreateProvisioningTemplateVersion", "iot:DeletePolicy", "iot:DeleteProvisioningTemplate", "iot:DeleteProvisioningTemplateVersion", "iot:DescribeProvisioningTemplateVersion", "iot:UpdateProvisioningTemplate"], "path": "behavioral/iot/check_delete_provisioning_template_version_conflict_rejected.py", "service": "iot"} {"check_id": "iot.delete-registration-code-triggers-regeneration", "deployments": [], "key": "iot/delete-registration-code-triggers-regeneration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:DeleteRegistrationCode", "iot:GetRegistrationCode"], "path": "behavioral/iot/check_delete_registration_code_triggers_regeneration.py", "service": "iot"} {"check_id": "iot.delete-role-alias-succeeds-despite-active-credentials", "deployments": [], "key": "iot/delete-role-alias-succeeds-despite-active-credentials", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:CreateRoleAlias", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeleteRoleAlias", "iot:DescribeEndpoint", "iot:DescribeRoleAlias", "iot:DetachPolicy", "iot:UpdateCertificate", "iot:UpdateRoleAlias", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_delete_role_alias_succeeds_despite_active_credentials.py", "service": "iot"} {"check_id": "iot.delete-stream-succeeds-despite-active-ota-update", "deployments": [], "key": "iot/delete-stream-succeeds-despite-active-ota-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot:CreateOTAUpdate", "iot:CreateStream", "iot:CreateThing", "iot:DeleteOTAUpdate", "iot:DeleteStream", "iot:DeleteThing", "iot:DescribeStream", "iot:GetOTAUpdate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/iot/check_delete_stream_succeeds_despite_active_ota_update.py", "service": "iot"} {"check_id": "iot.deploy-iot-provisioning-template-cfn-enrolls-device", "deployments": [], "key": "iot/deploy-iot-provisioning-template-cfn-enrolls-device", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateCertificateFromCsr", "iot:CreateProvisioningClaim", "iot:CreateProvisioningTemplate", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeleteProvisioningTemplate", "iot:DeleteThing", "iot:DescribeProvisioningTemplate", "iot:DescribeThing", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:RegisterThing", "iot:UpdateCertificate"], "path": "behavioral/iot/check_deploy_iot_provisioning_template_cfn_enrolls_device.py", "service": "iot"} {"check_id": "iot.deploy-iot-topic-rule-cfn-routes-messages", "deployments": [], "key": "iot/deploy-iot-topic-rule-cfn-routes-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "iot:GetTopicRule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_deploy_iot_topic_rule_cfn_routes_messages.py", "service": "iot"} {"check_id": "iot.deploy-provisioning-template-cfn-issues-claim-certificates", "deployments": [], "key": "iot/deploy-provisioning-template-cfn-issues-claim-certificates", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateProvisioningClaim", "iot:DescribeEndpoint", "iot:DescribeProvisioningTemplate"], "path": "behavioral/iot/check_deploy_provisioning_template_cfn_issues_claim_certificates.py", "service": "iot"} {"check_id": "iot.deploy-role-alias-cfn-enforces-session-duration", "deployments": [], "key": "iot/deploy-role-alias-cfn-enforces-session-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iot:CreateRoleAlias", "iot:DeleteRoleAlias", "iot:DescribeRoleAlias"], "path": "behavioral/iot/check_deploy_role_alias_cfn_enforces_session_duration.py", "service": "iot"} {"check_id": "iot.deploy-topic-rule-cfn-routes-matching-messages", "deployments": [], "key": "iot/deploy-topic-rule-cfn-routes-matching-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:DescribeEndpoint", "iot:GetTopicRule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/iot/check_deploy_topic_rule_cfn_routes_matching_messages.py", "service": "iot"} {"check_id": "iot.deploy-topic-rule-cfn-routes-message", "deployments": [], "key": "iot/deploy-topic-rule-cfn-routes-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot-data:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/iot/check_deploy_topic_rule_cfn_routes_message.py", "service": "iot"} {"check_id": "iot.describe-default-authorizer-unset", "deployments": [], "key": "iot/describe-default-authorizer-unset", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:ClearDefaultAuthorizer", "iot:CreateAuthorizer", "iot:DeleteAuthorizer", "iot:DescribeDefaultAuthorizer", "iot:SetDefaultAuthorizer", "iot:UpdateAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_describe_default_authorizer_unset.py", "service": "iot"} {"check_id": "iot.describe-endpoint-types", "deployments": [], "key": "iot/describe-endpoint-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:DescribeEndpoint"], "path": "behavioral/iot/check_describe_endpoint_types.py", "service": "iot"} {"check_id": "iot.domain-configuration-lifecycle", "deployments": [], "key": "iot/domain-configuration-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "iot:CreateDomainConfiguration", "iot:DeleteDomainConfiguration", "iot:DescribeDomainConfiguration", "iot:UpdateDomainConfiguration"], "path": "behavioral/iot/check_domain_configuration_lifecycle.py", "service": "iot"} {"check_id": "iot.domain-configuration-lifecycle-transitions", "deployments": [], "key": "iot/domain-configuration-lifecycle-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "iot:CreateDomainConfiguration", "iot:DeleteDomainConfiguration", "iot:DescribeDomainConfiguration", "iot:ListDomainConfigurations"], "path": "behavioral/iot/check_domain_configuration_lifecycle_transitions.py", "service": "iot"} {"check_id": "iot.e2e-fleet-provisioning-claim-to-thing", "deployments": [], "key": "iot/e2e-fleet-provisioning-claim-to-thing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateKeysAndCertificate", "iot:CreateProvisioningClaim", "iot:CreateProvisioningTemplate", "iot:DeleteCertificate", "iot:DeleteProvisioningTemplate", "iot:DeleteThing", "iot:DescribeCertificate", "iot:DescribeThing", "iot:DetachThingPrincipal", "iot:ListThingPrincipals", "iot:RegisterThing", "iot:TagResource", "iot:UpdateCertificate"], "path": "behavioral/iot/check_e2e_fleet_provisioning_claim_to_thing.py", "service": "iot"} {"check_id": "iot.e2e-ota-update-lifecycle-to-job-execution", "deployments": [], "key": "iot/e2e-ota-update-lifecycle-to-job-execution", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iot:CreateOTAUpdate", "iot:CreateStream", "iot:CreateThing", "iot:DeleteOTAUpdate", "iot:DeleteStream", "iot:DeleteThing", "iot:DescribeJob", "iot:GetOTAUpdate", "iot:ListJobExecutionsForJob", "iot:ListOTAUpdates", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/iot/check_e2e_ota_update_lifecycle_to_job_execution.py", "service": "iot"} {"check_id": "iot.e2e-ota-update-package-job-delivery", "deployments": [], "key": "iot/e2e-ota-update-package-job-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-jobs-data:UpdateJobExecution", "iot:CreateOTAUpdate", "iot:CreatePackage", "iot:CreatePackageVersion", "iot:CreateThing", "iot:DeleteOTAUpdate", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:DescribeJobExecution", "iot:GetIndexingConfiguration", "iot:GetJobDocument", "iot:GetOTAUpdate", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "iot:UpdatePackageVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_e2e_ota_update_package_job_delivery.py", "service": "iot"} {"check_id": "iot.e2e-package-version-artifact-lifecycle", "deployments": [], "key": "iot/e2e-package-version-artifact-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot:AssociateSbomWithPackageVersion", "iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:GetIndexingConfiguration", "iot:GetPackageConfiguration", "iot:GetPackageVersion", "iot:ListSbomValidationResults", "iot:UpdateIndexingConfiguration", "iot:UpdatePackageConfiguration", "iot:UpdatePackageVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/iot/check_e2e_package_version_artifact_lifecycle.py", "service": "iot"} {"check_id": "iot.e2e-package-version-publish-to-job-deployment", "deployments": [], "key": "iot/e2e-package-version-publish-to-job-deployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateJob", "iot:CreatePackage", "iot:CreatePackageVersion", "iot:CreateThing", "iot:DeleteJob", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DeleteThing", "iot:DescribeJob", "iot:GetIndexingConfiguration", "iot:GetJobDocument", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_e2e_package_version_publish_to_job_deployment.py", "service": "iot"} {"check_id": "iot.e2e-topic-rule-destination-confirm-then-deliver", "deployments": [], "key": "iot/e2e-topic-rule-destination-confirm-then-deliver", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:ConfirmTopicRuleDestination", "iot:CreateTopicRule", "iot:CreateTopicRuleDestination", "iot:DeleteTopicRule", "iot:DeleteTopicRuleDestination", "iot:DescribeEndpoint", "iot:GetTopicRuleDestination", "iot:UpdateTopicRuleDestination", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_e2e_topic_rule_destination_confirm_then_deliver.py", "service": "iot"} {"check_id": "iot.e2e-topic-rule-destination-confirmation-flow", "deployments": [], "key": "iot/e2e-topic-rule-destination-confirmation-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:ConfirmTopicRuleDestination", "iot:CreateTopicRule", "iot:CreateTopicRuleDestination", "iot:DeleteTopicRule", "iot:DeleteTopicRuleDestination", "iot:GetTopicRule", "iot:GetTopicRuleDestination"], "path": "behavioral/iot/check_e2e_topic_rule_destination_confirmation_flow.py", "service": "iot"} {"check_id": "iot.fleet-index-aggregation-queries-consistent", "deployments": [], "key": "iot/fleet-index-aggregation-queries-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:DescribeIndex", "iot:GetCardinality", "iot:GetIndexingConfiguration", "iot:GetPercentiles", "iot:GetStatistics", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_fleet_index_aggregation_queries_consistent.py", "service": "iot"} {"check_id": "iot.fleet-metric-invalid-aggregation-rejected", "deployments": [], "key": "iot/fleet-metric-invalid-aggregation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateFleetMetric", "iot:DeleteFleetMetric", "iot:DescribeFleetMetric", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_fleet_metric_invalid_aggregation_rejected.py", "service": "iot"} {"check_id": "iot.fleet-metric-lifecycle", "deployments": [], "key": "iot/fleet-metric-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateFleetMetric", "iot:DeleteFleetMetric", "iot:DescribeFleetMetric", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:ListFleetMetrics", "iot:UpdateFleetMetric", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_fleet_metric_lifecycle.py", "service": "iot"} {"check_id": "iot.fleet-metric-lifecycle-and-query", "deployments": [], "key": "iot/fleet-metric-lifecycle-and-query", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateFleetMetric", "iot:DeleteFleetMetric", "iot:DescribeFleetMetric", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:ListFleetMetrics", "iot:UpdateFleetMetric", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_fleet_metric_lifecycle_and_query.py", "service": "iot"} {"check_id": "iot.fleet-metric-query-string-preserved", "deployments": [], "key": "iot/fleet-metric-query-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateFleetMetric", "iot:DeleteFleetMetric", "iot:DescribeFleetMetric", "iot:GetIndexingConfiguration", "iot:UpdateFleetMetric", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_fleet_metric_query_string_preserved.py", "service": "iot"} {"check_id": "iot.get-buckets-aggregation-index-not-ready-rejected", "deployments": [], "key": "iot/get-buckets-aggregation-index-not-ready-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot:DescribeIndex", "iot:GetBucketsAggregation", "iot:GetIndexingConfiguration", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_get_buckets_aggregation_index_not_ready_rejected.py", "service": "iot"} {"check_id": "iot.get-effective-policies-reflects-attached-policies", "deployments": [], "key": "iot/get-effective-policies-reflects-attached-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DetachPolicy", "iot:GetEffectivePolicies", "iot:UpdateCertificate"], "path": "behavioral/iot/check_get_effective_policies_reflects_attached_policies.py", "service": "iot"} {"check_id": "iot.get-effective-policies-reflects-principal-attachment", "deployments": [], "key": "iot/get-effective-policies-reflects-principal-attachment", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachPolicy", "iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DeleteThing", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:GetEffectivePolicies", "iot:ListAttachedPolicies", "iot:ListPolicyVersions", "iot:ListPrincipalThings", "iot:ListTargetsForPolicy", "iot:ListThingPrincipals", "iot:UpdateCertificate"], "path": "behavioral/iot/check_get_effective_policies_reflects_principal_attachment.py", "service": "iot"} {"check_id": "iot.get-job-document-round-trips", "deployments": [], "key": "iot/get-job-document-round-trips", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CancelJob", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeJob", "iot:DescribeThing", "iot:GetJobDocument"], "path": "behavioral/iot/check_get_job_document_round_trips.py", "service": "iot"} {"check_id": "iot.indexing-configuration-enforced-thing-connectivity", "deployments": [], "key": "iot/indexing-configuration-enforced-thing-connectivity", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetThingConnectivityData", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_indexing_configuration_enforced_thing_connectivity.py", "service": "iot"} {"check_id": "iot.iot-concurrent-shadow-updates-converge-to-one-final-version", "deployments": [], "key": "iot/iot-concurrent-shadow-updates-converge-to-one-final-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_iot_concurrent_shadow_updates_converge_to_one_final_version.py", "service": "iot"} {"check_id": "iot.iot-delete-thing-with-an-attached-principal-is-refused-and-the-attachment-survives", "deployments": [], "key": "iot/iot-delete-thing-with-an-attached-principal-is-refused-and-the-attachment-survives", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DescribeCertificate", "iot:DescribeThing", "iot:DetachThingPrincipal", "iot:ListPrincipalThings", "iot:ListThingPrincipals", "iot:UpdateCertificate"], "path": "behavioral/iot/check_iot_delete_thing_with_an_attached_principal_is_refused_and_the_attachment_survives.py", "service": "iot"} {"check_id": "iot.iot-named-shadow-delta-and-version-monotonicity-across-updates", "deployments": [], "key": "iot/iot-named-shadow-delta-and-version-monotonicity-across-updates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:ListNamedShadowsForThing", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_iot_named_shadow_delta_and_version_monotonicity_across_updates.py", "service": "iot"} {"check_id": "iot.iot-shadow-update-with-a-stale-version-is-rejected-and-the-document-is-unchanged", "deployments": [], "key": "iot/iot-shadow-update-with-a-stale-version-is-rejected-and-the-document-is-unchanged", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_iot_shadow_update_with_a_stale_version_is_rejected_and_the_document_is_unchanged.py", "service": "iot"} {"check_id": "iot.job-document-unicode-payload-round-trip", "deployments": [], "key": "iot/job-document-unicode-payload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:GetJobDocument"], "path": "behavioral/iot/check_job_document_unicode_payload_round_trip.py", "service": "iot"} {"check_id": "iot.job-execution-in-progress-timeout-transitions", "deployments": [], "key": "iot/job-execution-in-progress-timeout-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iot-jobs-data:GetPendingJobExecutions", "iot-jobs-data:StartNextPendingJobExecution", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:DescribeJobExecution"], "path": "behavioral/iot/check_job_execution_in_progress_timeout_transitions.py", "service": "iot"} {"check_id": "iot.job-execution-status-per-thing", "deployments": [], "key": "iot/job-execution-status-per-thing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeJobExecution", "iot:DescribeThing", "iot:ListJobExecutionsForThing"], "path": "behavioral/iot/check_job_execution_status_per_thing.py", "service": "iot"} {"check_id": "iot.job-lifecycle-cancel", "deployments": [], "key": "iot/job-lifecycle-cancel", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CancelJob", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeJob", "iot:DescribeThing"], "path": "behavioral/iot/check_job_lifecycle_cancel.py", "service": "iot"} {"check_id": "iot.job-targets-limit-exceeded-rejected", "deployments": [], "key": "iot/job-targets-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AssociateTargetsWithJob", "iot:CreateJob", "iot:CreateThingGroup", "iot:DeleteJob", "iot:DeleteThingGroup", "iot:DescribeJob", "iot:DescribeThingGroup"], "path": "behavioral/iot/check_job_targets_limit_exceeded_rejected.py", "service": "iot"} {"check_id": "iot.job-template-lifecycle", "deployments": [], "key": "iot/job-template-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateJobTemplate", "iot:DeleteJobTemplate", "iot:DescribeJobTemplate", "iot:ListJobTemplates"], "path": "behavioral/iot/check_job_template_lifecycle.py", "service": "iot"} {"check_id": "iot.job-update-and-execution-listings", "deployments": [], "key": "iot/job-update-and-execution-listings", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CancelJobExecution", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeJob", "iot:DescribeJobExecution", "iot:DescribeThing", "iot:ListJobExecutionsForJob", "iot:ListJobExecutionsForThing", "iot:ListJobs", "iot:UpdateJob"], "path": "behavioral/iot/check_job_update_and_execution_listings.py", "service": "iot"} {"check_id": "iot.jobs-data-step-timeout-times-out-one-thing-while-a-reset-twin-survives", "deployments": [], "key": "iot/jobs-data-step-timeout-times-out-one-thing-while-a-reset-twin-survives", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iot-jobs-data:DescribeJobExecution", "iot-jobs-data:GetPendingJobExecutions", "iot-jobs-data:StartNextPendingJobExecution", "iot-jobs-data:UpdateJobExecution", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:DescribeJob", "iot:DescribeJobExecution"], "path": "behavioral/iot/check_jobs_data_step_timeout_times_out_one_thing_while_a_reset_twin_survives.py", "service": "iot"} {"check_id": "iot.list-authorizers-orders-filters-and-pages", "deployments": [], "key": "iot/list-authorizers-orders-filters-and-pages", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateAuthorizer", "iot:DeleteAuthorizer", "iot:ListAuthorizers", "iot:UpdateAuthorizer", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_list_authorizers_orders_filters_and_pages.py", "service": "iot"} {"check_id": "iot.list-package-versions-ordered-by-creation-time", "deployments": [], "key": "iot/list-package-versions-ordered-by-creation-time", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:ListPackageVersions", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_list_package_versions_ordered_by_creation_time.py", "service": "iot"} {"check_id": "iot.managed-job-template-describable", "deployments": [], "key": "iot/managed-job-template-describable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:DescribeManagedJobTemplate", "iot:ListManagedJobTemplates"], "path": "behavioral/iot/check_managed_job_template_describable.py", "service": "iot"} {"check_id": "iot.mitigation-action-lifecycle", "deployments": [], "key": "iot/mitigation-action-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateMitigationAction", "iot:DeleteMitigationAction", "iot:DescribeMitigationAction", "iot:UpdateMitigationAction"], "path": "behavioral/iot/check_mitigation_action_lifecycle.py", "service": "iot"} {"check_id": "iot.mitigation-action-lifecycle-and-delete-idempotency", "deployments": [], "key": "iot/mitigation-action-lifecycle-and-delete-idempotency", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateMitigationAction", "iot:CreateThingGroup", "iot:DeleteMitigationAction", "iot:DeleteThingGroup", "iot:DescribeMitigationAction"], "path": "behavioral/iot/check_mitigation_action_lifecycle_and_delete_idempotency.py", "service": "iot"} {"check_id": "iot.negative-domain-configuration-invalid-certificate-blocked", "deployments": [], "key": "iot/negative-domain-configuration-invalid-certificate-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateDomainConfiguration", "iot:DescribeDomainConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_negative_domain_configuration_invalid_certificate_blocked.py", "service": "iot"} {"check_id": "iot.negative-dynamic-thing-group-invalid-query-blocked", "deployments": [], "key": "iot/negative-dynamic-thing-group-invalid-query-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateDynamicThingGroup", "iot:DeleteDynamicThingGroup", "iot:DescribeIndex", "iot:DescribeThingGroup", "iot:GetIndexingConfiguration", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_negative_dynamic_thing_group_invalid_query_blocked.py", "service": "iot"} {"check_id": "iot.negative-fleet-metric-index-not-ready-blocked", "deployments": [], "key": "iot/negative-fleet-metric-index-not-ready-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateFleetMetric", "iot:DeleteFleetMetric", "iot:DescribeFleetMetric", "iot:DescribeIndex", "iot:GetBucketsAggregation", "iot:GetIndexingConfiguration", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_negative_fleet_metric_index_not_ready_blocked.py", "service": "iot"} {"check_id": "iot.op-add-thing-to-missing-group-rejected", "deployments": [], "key": "iot/op-add-thing-to-missing-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AddThingToThingGroup", "iot:CreateThing", "iot:CreateThingGroup", "iot:DeleteThing", "iot:DeleteThingGroup", "iot:DescribeThingGroup", "iot:ListThingGroupsForThing"], "path": "behavioral/iot/check_op_add_thing_to_missing_group_rejected.py", "service": "iot"} {"check_id": "iot.op-create-duplicate-job-id-rejected", "deployments": [], "key": "iot/op-create-duplicate-job-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeJob", "iot:DescribeThing"], "path": "behavioral/iot/check_op_create_duplicate_job_id_rejected.py", "service": "iot"} {"check_id": "iot.op-create-policy-malformed-document-rejected", "deployments": [], "key": "iot/op-create-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePolicy", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DetachPolicy", "iot:GetPolicy", "iot:ListPolicyVersions", "iot:ListTargetsForPolicy"], "path": "behavioral/iot/check_op_create_policy_malformed_document_rejected.py", "service": "iot"} {"check_id": "iot.op-create-thing-invalid-name-rejected", "deployments": [], "key": "iot/op-create-thing-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:DescribeThing"], "path": "behavioral/iot/check_op_create_thing_invalid_name_rejected.py", "service": "iot"} {"check_id": "iot.op-create-thing-unknown-thing-type-rejected", "deployments": [], "key": "iot/op-create-thing-unknown-thing-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThing", "iot:CreateThingType", "iot:DeleteThing", "iot:DeleteThingType", "iot:DeprecateThingType", "iot:DescribeThing", "iot:DescribeThingType"], "path": "behavioral/iot/check_op_create_thing_unknown_thing_type_rejected.py", "service": "iot"} {"check_id": "iot.op-delete-attached-policy-rejected", "deployments": [], "key": "iot/op-delete-attached-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:GetPolicy", "iot:ListAttachedPolicies", "iot:ListPolicyVersions", "iot:ListPrincipalThings", "iot:ListTargetsForPolicy", "iot:UpdateCertificate"], "path": "behavioral/iot/check_op_delete_attached_policy_rejected.py", "service": "iot"} {"check_id": "iot.op-delete-non-deprecated-thing-type-rejected", "deployments": [], "key": "iot/op-delete-non-deprecated-thing-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThingType", "iot:DeleteThingType", "iot:DeprecateThingType", "iot:DescribeThingType"], "path": "behavioral/iot/check_op_delete_non_deprecated_thing_type_rejected.py", "service": "iot"} {"check_id": "iot.op-delete-thing-stale-expected-version-rejected", "deployments": [], "key": "iot/op-delete-thing-stale-expected-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:DescribeThing", "iot:UpdateThing"], "path": "behavioral/iot/check_op_delete_thing_stale_expected_version_rejected.py", "service": "iot"} {"check_id": "iot.ordering-list-command-executions-chronological", "deployments": [], "key": "iot/ordering-list-command-executions-chronological", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-jobs-data:StartCommandExecution", "iot:CreateCommand", "iot:CreateThing", "iot:DeleteCommand", "iot:DeleteCommandExecution", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:ListCommandExecutions"], "path": "behavioral/iot/check_ordering_list_command_executions_chronological.py", "service": "iot"} {"check_id": "iot.ota-update-lifecycle", "deployments": [], "key": "iot/ota-update-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CancelJob", "iot:CreateOTAUpdate", "iot:CreateThing", "iot:DeleteOTAUpdate", "iot:DeleteThing", "iot:DescribeJob", "iot:GetOTAUpdate", "iot:ListOTAUpdates", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/iot/check_ota_update_lifecycle.py", "service": "iot"} {"check_id": "iot.ota-update-lifecycle-and-delete-guard", "deployments": [], "key": "iot/ota-update-lifecycle-and-delete-guard", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iot:CancelJob", "iot:CreateOTAUpdate", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteOTAUpdate", "iot:DeleteThing", "iot:DescribeJob", "iot:GetOTAUpdate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_ota_update_lifecycle_and_delete_guard.py", "service": "iot"} {"check_id": "iot.package-configuration-default-version-enforced", "deployments": [], "key": "iot/package-configuration-default-version-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackage", "iot:GetPackageConfiguration", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "iot:UpdatePackage", "iot:UpdatePackageConfiguration", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_package_configuration_default_version_enforced.py", "service": "iot"} {"check_id": "iot.package-default-version-reflected-in-get-package", "deployments": [], "key": "iot/package-default-version-reflected-in-get-package", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackage", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "iot:UpdatePackage", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_package_default_version_reflected_in_get_package.py", "service": "iot"} {"check_id": "iot.package-version-draft-to-published", "deployments": [], "key": "iot/package-version-draft-to-published", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:GetIndexingConfiguration", "iot:GetPackage", "iot:GetPackageVersion", "iot:ListPackageVersions", "iot:ListPackages", "iot:UpdateIndexingConfiguration", "iot:UpdatePackage", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_package_version_draft_to_published.py", "service": "iot"} {"check_id": "iot.package-version-duplicate-conflict-rejected", "deployments": [], "key": "iot/package-version-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_package_version_duplicate_conflict_rejected.py", "service": "iot"} {"check_id": "iot.package-version-duplicate-name-rejected", "deployments": [], "key": "iot/package-version-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_package_version_duplicate_name_rejected.py", "service": "iot"} {"check_id": "iot.package-version-metadata-unicode-round-trip", "deployments": [], "key": "iot/package-version-metadata-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:ListTagsForResource", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_package_version_metadata_unicode_round_trip.py", "service": "iot"} {"check_id": "iot.package-version-sbom-association-round-trip", "deployments": [], "key": "iot/package-version-sbom-association-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AssociateSbomWithPackageVersion", "iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/iot/check_package_version_sbom_association_round_trip.py", "service": "iot"} {"check_id": "iot.package-version-update-conditional-conflict", "deployments": [], "key": "iot/package-version-update-conditional-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:TagResource", "iot:UpdateIndexingConfiguration", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_package_version_update_conditional_conflict.py", "service": "iot"} {"check_id": "iot.policy-version-lifecycle", "deployments": [], "key": "iot/policy-version-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreatePolicy", "iot:CreatePolicyVersion", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DetachPolicy", "iot:GetPolicy", "iot:ListPolicyVersions", "iot:ListTargetsForPolicy", "iot:SetDefaultPolicyVersion"], "path": "behavioral/iot/check_policy_version_lifecycle.py", "service": "iot"} {"check_id": "iot.policy-version-limit-exceeded", "deployments": [], "key": "iot/policy-version-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePolicy", "iot:CreatePolicyVersion", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DetachPolicy", "iot:ListPolicyVersions", "iot:ListTargetsForPolicy"], "path": "behavioral/iot/check_policy_version_limit_exceeded.py", "service": "iot"} {"check_id": "iot.policy-version-limit-exceeded-rejected", "deployments": [], "key": "iot/policy-version-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePolicy", "iot:CreatePolicyVersion", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:ListPolicyVersions"], "path": "behavioral/iot/check_policy_version_limit_exceeded_rejected.py", "service": "iot"} {"check_id": "iot.principal-policy-legacy-attach-detach", "deployments": [], "key": "iot/principal-policy-legacy-attach-detach", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachPrincipalPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachPrincipalPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPolicyVersions", "iot:ListPrincipalPolicies", "iot:ListPrincipalThings", "iot:ListTargetsForPolicy", "iot:UpdateCertificate"], "path": "behavioral/iot/check_principal_policy_legacy_attach_detach.py", "service": "iot"} {"check_id": "iot.provisioning-claim-unknown-template-rejected", "deployments": [], "key": "iot/provisioning-claim-unknown-template-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateProvisioningClaim", "iot:CreateProvisioningTemplate", "iot:DeleteCertificate", "iot:DeleteProvisioningTemplate", "iot:TagResource", "iot:UpdateCertificate", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_provisioning_claim_unknown_template_rejected.py", "service": "iot"} {"check_id": "iot.provisioning-template-json-body-round-trip", "deployments": [], "key": "iot/provisioning-template-json-body-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateProvisioningTemplate", "iot:DeleteProvisioningTemplate", "iot:DescribeProvisioningTemplate"], "path": "behavioral/iot/check_provisioning_template_json_body_round_trip.py", "service": "iot"} {"check_id": "iot.provisioning-template-version-concurrent-update-conflict", "deployments": [], "key": "iot/provisioning-template-version-concurrent-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iot:CreateProvisioningTemplate", "iot:CreateProvisioningTemplateVersion", "iot:DeleteProvisioningTemplate", "iot:DescribeProvisioningTemplate", "iot:ListProvisioningTemplateVersions"], "path": "behavioral/iot/check_provisioning_template_version_concurrent_update_conflict.py", "service": "iot"} {"check_id": "iot.provisioning-template-version-default-delete-guard", "deployments": [], "key": "iot/provisioning-template-version-default-delete-guard", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateProvisioningTemplate", "iot:CreateProvisioningTemplateVersion", "iot:DeleteProvisioningTemplate", "iot:DeleteProvisioningTemplateVersion", "iot:DescribeProvisioningTemplate", "iot:DescribeProvisioningTemplateVersion", "iot:UpdateProvisioningTemplate"], "path": "behavioral/iot/check_provisioning_template_version_default_delete_guard.py", "service": "iot"} {"check_id": "iot.provisioning-template-version-delete-default-rejected", "deployments": [], "key": "iot/provisioning-template-version-delete-default-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateProvisioningTemplate", "iot:CreateProvisioningTemplateVersion", "iot:DeleteProvisioningTemplate", "iot:DeleteProvisioningTemplateVersion", "iot:DescribeProvisioningTemplateVersion", "iot:ListProvisioningTemplateVersions", "iot:UpdateProvisioningTemplate"], "path": "behavioral/iot/check_provisioning_template_version_delete_default_rejected.py", "service": "iot"} {"check_id": "iot.provisioning-template-version-lifecycle", "deployments": [], "key": "iot/provisioning-template-version-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateProvisioningTemplate", "iot:CreateProvisioningTemplateVersion", "iot:DeleteProvisioningTemplate", "iot:DeleteProvisioningTemplateVersion", "iot:DescribeProvisioningTemplate", "iot:DescribeProvisioningTemplateVersion", "iot:ListProvisioningTemplateVersions"], "path": "behavioral/iot/check_provisioning_template_version_lifecycle.py", "service": "iot"} {"check_id": "iot.provisioning-template-version-lifecycle-and-default", "deployments": [], "key": "iot/provisioning-template-version-lifecycle-and-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iot:CreateProvisioningTemplate", "iot:CreateProvisioningTemplateVersion", "iot:DeleteProvisioningTemplate", "iot:DeleteProvisioningTemplateVersion", "iot:DescribeProvisioningTemplate", "iot:DescribeProvisioningTemplateVersion"], "path": "behavioral/iot/check_provisioning_template_version_lifecycle_and_default.py", "service": "iot"} {"check_id": "iot.register-thing-malformed-template-rejected", "deployments": [], "key": "iot/register-thing-malformed-template-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateKeysAndCertificate", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeleteThing", "iot:DescribeThing", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:RegisterThing", "iot:UpdateCertificate"], "path": "behavioral/iot/check_register_thing_malformed_template_rejected.py", "service": "iot"} {"check_id": "iot.registration-code-and-audit-config-readable", "deployments": [], "key": "iot/registration-code-and-audit-config-readable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:DescribeAccountAuditConfiguration", "iot:GetRegistrationCode"], "path": "behavioral/iot/check_registration_code_and_audit_config_readable.py", "service": "iot"} {"check_id": "iot.registration-code-regenerated-after-delete", "deployments": [], "key": "iot/registration-code-regenerated-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:DeleteRegistrationCode", "iot:GetRegistrationCode"], "path": "behavioral/iot/check_registration_code_regenerated_after_delete.py", "service": "iot"} {"check_id": "iot.replace-topic-rule-replaces-not-merges", "deployments": [], "key": "iot/replace-topic-rule-replaces-not-merges", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:GetTopicRule", "iot:ListTopicRules", "iot:ReplaceTopicRule", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_replace_topic_rule_replaces_not_merges.py", "service": "iot"} {"check_id": "iot.representation-provisioning-template-json-round-trip", "deployments": [], "key": "iot/representation-provisioning-template-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateProvisioningTemplate", "iot:CreateProvisioningTemplateVersion", "iot:DeleteProvisioningTemplate", "iot:DeleteProvisioningTemplateVersion", "iot:DescribeProvisioningTemplateVersion"], "path": "behavioral/iot/check_representation_provisioning_template_json_round_trip.py", "service": "iot"} {"check_id": "iot.retained-message-binary-payload-byte-equality", "deployments": [], "key": "iot/retained-message-binary-payload-byte-equality", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:GetRetainedMessage", "iot-data:Publish", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_retained_message_binary_payload_byte_equality.py", "service": "iot"} {"check_id": "iot.role-alias-credential-duration-out-of-range-rejected", "deployments": [], "key": "iot/role-alias-credential-duration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iot:CreateRoleAlias", "iot:DeleteRoleAlias", "iot:DescribeRoleAlias"], "path": "behavioral/iot/check_role_alias_credential_duration_out_of_range_rejected.py", "service": "iot"} {"check_id": "iot.role-alias-delete-invalidates-credential-exchange", "deployments": [], "key": "iot/role-alias-delete-invalidates-credential-exchange", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:CreateRoleAlias", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeleteRoleAlias", "iot:DescribeEndpoint", "iot:DescribeRoleAlias", "iot:DetachPolicy", "iot:UpdateCertificate"], "path": "behavioral/iot/check_role_alias_delete_invalidates_credential_exchange.py", "service": "iot"} {"check_id": "iot.role-alias-lifecycle", "deployments": [], "key": "iot/role-alias-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateRoleAlias", "iot:DeleteRoleAlias", "iot:DescribeRoleAlias", "iot:UpdateRoleAlias"], "path": "behavioral/iot/check_role_alias_lifecycle.py", "service": "iot"} {"check_id": "iot.role-alias-lifecycle-and-delete-conflict", "deployments": [], "key": "iot/role-alias-lifecycle-and-delete-conflict", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:CreateRoleAlias", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeleteRoleAlias", "iot:DescribeCertificate", "iot:DescribeEndpoint", "iot:DescribeRoleAlias", "iot:DetachPolicy", "iot:GetPolicy", "iot:UpdateCertificate", "iot:UpdateRoleAlias"], "path": "behavioral/iot/check_role_alias_lifecycle_and_delete_conflict.py", "service": "iot"} {"check_id": "iot.sbom-association-conflict-on-duplicate", "deployments": [], "key": "iot/sbom-association-conflict-on-duplicate", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AssociateSbomWithPackageVersion", "iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/iot/check_sbom_association_conflict_on_duplicate.py", "service": "iot"} {"check_id": "iot.scheduled-audit-lifecycle-triggers-audit-task", "deployments": [], "key": "iot/scheduled-audit-lifecycle-triggers-audit-task", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iot:CreateScheduledAudit", "iot:DeleteAccountAuditConfiguration", "iot:DeleteScheduledAudit", "iot:DescribeAccountAuditConfiguration", "iot:DescribeScheduledAudit", "iot:ListScheduledAudits", "iot:UpdateAccountAuditConfiguration"], "path": "behavioral/iot/check_scheduled_audit_lifecycle_triggers_audit_task.py", "service": "iot"} {"check_id": "iot.set-default-policy-version-invalid-fails", "deployments": [], "key": "iot/set-default-policy-version-invalid-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePolicy", "iot:CreatePolicyVersion", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DetachPolicy", "iot:GetPolicy", "iot:ListPolicyVersions", "iot:ListTargetsForPolicy", "iot:SetDefaultPolicyVersion"], "path": "behavioral/iot/check_set_default_policy_version_invalid_fails.py", "service": "iot"} {"check_id": "iot.shadow-client-token-echoed-not-persisted", "deployments": [], "key": "iot/shadow-client-token-echoed-not-persisted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_shadow_client_token_echoed_not_persisted.py", "service": "iot"} {"check_id": "iot.shadow-delta-only-differing-leaves", "deployments": [], "key": "iot/shadow-delta-only-differing-leaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_shadow_delta_only_differing_leaves.py", "service": "iot"} {"check_id": "iot.shadow-metadata-timestamp-per-leaf", "deployments": [], "key": "iot/shadow-metadata-timestamp-per-leaf", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_shadow_metadata_timestamp_per_leaf.py", "service": "iot"} {"check_id": "iot.shadow-named-vs-classic-independent", "deployments": [], "key": "iot/shadow-named-vs-classic-independent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_shadow_named_vs_classic_independent.py", "service": "iot"} {"check_id": "iot.shadow-nested-document-deep-merge", "deployments": [], "key": "iot/shadow-nested-document-deep-merge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_shadow_nested_document_deep_merge.py", "service": "iot"} {"check_id": "iot.shadow-oversize-document-rejected", "deployments": [], "key": "iot/shadow-oversize-document-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_shadow_oversize_document_rejected.py", "service": "iot"} {"check_id": "iot.shadow-update-get-delta-and-delete-lifecycle", "deployments": [], "key": "iot/shadow-update-get-delta-and-delete-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:ListNamedShadowsForThing", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:DescribeThing"], "path": "behavioral/iot/check_shadow_update_get_delta_and_delete_lifecycle.py", "service": "iot"} {"check_id": "iot.shadow-version-conflict-stale-update", "deployments": [], "key": "iot/shadow-version-conflict-stale-update", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint"], "path": "behavioral/iot/check_shadow_version_conflict_stale_update.py", "service": "iot"} {"check_id": "iot.stream-delete-conflict-when-referenced-by-ota-rejected", "deployments": [], "key": "iot/stream-delete-conflict-when-referenced-by-ota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iot:CreateOTAUpdate", "iot:CreateStream", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteOTAUpdate", "iot:DeleteStream", "iot:DeleteThing", "iot:DescribeStream", "iot:GetOTAUpdate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/iot/check_stream_delete_conflict_when_referenced_by_ota_rejected.py", "service": "iot"} {"check_id": "iot.stream-file-ordering-preserved", "deployments": [], "key": "iot/stream-file-ordering-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot:CreateStream", "iot:DeleteStream", "iot:DescribeStream", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/iot/check_stream_file_ordering_preserved.py", "service": "iot"} {"check_id": "iot.stream-lifecycle-delete-allowed-while-referenced", "deployments": [], "key": "iot/stream-lifecycle-delete-allowed-while-referenced", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CreateOTAUpdate", "iot:CreateStream", "iot:CreateThing", "iot:DeleteOTAUpdate", "iot:DeleteStream", "iot:DeleteThing", "iot:DescribeStream", "iot:GetOTAUpdate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/iot/check_stream_lifecycle_delete_allowed_while_referenced.py", "service": "iot"} {"check_id": "iot.telemetry-fleet-metric-invalid-aggregation-rejected", "deployments": [], "key": "iot/telemetry-fleet-metric-invalid-aggregation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateFleetMetric", "iot:DeleteFleetMetric", "iot:DescribeFleetMetric", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:ListFleetMetrics", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_telemetry_fleet_metric_invalid_aggregation_rejected.py", "service": "iot"} {"check_id": "iot.telemetry-fleet-metric-lifecycle-and-aggregation", "deployments": [], "key": "iot/telemetry-fleet-metric-lifecycle-and-aggregation", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateFleetMetric", "iot:DeleteFleetMetric", "iot:DescribeFleetMetric", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:ListFleetMetrics", "iot:UpdateFleetMetric", "iot:UpdateIndexingConfiguration"], "path": "behavioral/iot/check_telemetry_fleet_metric_lifecycle_and_aggregation.py", "service": "iot"} {"check_id": "iot.test-authorization-client-id-policy-variable-scoped", "deployments": [], "key": "iot/test-authorization-client-id-policy-variable-scoped", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPolicyVersions", "iot:ListPrincipalThings", "iot:ListTargetsForPolicy", "iot:TagResource", "iot:TestAuthorization", "iot:UpdateCertificate", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_test_authorization_client_id_policy_variable_scoped.py", "service": "iot"} {"check_id": "iot.test-authorization-policy-evaluation", "deployments": [], "key": "iot/test-authorization-policy-evaluation", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPolicyVersions", "iot:ListPrincipalThings", "iot:ListTargetsForPolicy", "iot:TestAuthorization", "iot:UpdateCertificate", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_test_authorization_policy_evaluation.py", "service": "iot"} {"check_id": "iot.test-authorization-subscribe-requires-topicfilter-resource", "deployments": [], "key": "iot/test-authorization-subscribe-requires-topicfilter-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachPolicy", "iot:CreateKeysAndCertificate", "iot:CreatePolicy", "iot:DeleteCertificate", "iot:DeletePolicy", "iot:DeletePolicyVersion", "iot:DescribeCertificate", "iot:DetachPolicy", "iot:DetachThingPrincipal", "iot:ListAttachedPolicies", "iot:ListPolicyVersions", "iot:ListPrincipalThings", "iot:ListTargetsForPolicy", "iot:TestAuthorization", "iot:UpdateCertificate", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_test_authorization_subscribe_requires_topicfilter_resource.py", "service": "iot"} {"check_id": "iot.thing-group-hierarchy", "deployments": [], "key": "iot/thing-group-hierarchy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:DescribeThingGroup", "iot:ListThingGroups"], "path": "behavioral/iot/check_thing_group_hierarchy.py", "service": "iot"} {"check_id": "iot.thing-group-hierarchy-depth-limit-rejected", "deployments": [], "key": "iot/thing-group-hierarchy-depth-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:DescribeThingGroup"], "path": "behavioral/iot/check_thing_group_hierarchy_depth_limit_rejected.py", "service": "iot"} {"check_id": "iot.thing-group-listings-for-thing", "deployments": [], "key": "iot/thing-group-listings-for-thing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AddThingToThingGroup", "iot:CreateThing", "iot:CreateThingGroup", "iot:DeleteThing", "iot:DeleteThingGroup", "iot:DescribeThingGroup", "iot:ListThingGroups", "iot:ListThingGroupsForThing", "iot:ListThings", "iot:TagResource", "iot:UpdateThingGroup"], "path": "behavioral/iot/check_thing_group_listings_for_thing.py", "service": "iot"} {"check_id": "iot.thing-group-tags-at-create-round-trip-and-missing-group-arn", "deployments": [], "key": "iot/thing-group-tags-at-create-round-trip-and-missing-group-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:ListTagsForResource", "iot:TagResource", "iot:UntagResource"], "path": "behavioral/iot/check_thing_group_tags_at_create_round_trip_and_missing_group_arn.py", "service": "iot"} {"check_id": "iot.thing-group-version-conflict-on-update", "deployments": [], "key": "iot/thing-group-version-conflict-on-update", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:DescribeThingGroup", "iot:UpdateThingGroup"], "path": "behavioral/iot/check_thing_group_version_conflict_on_update.py", "service": "iot"} {"check_id": "iot.thing-type-deprecated-blocks-new-thing", "deployments": [], "key": "iot/thing-type-deprecated-blocks-new-thing", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThing", "iot:CreateThingType", "iot:DeleteThing", "iot:DeleteThingType", "iot:DeprecateThingType", "iot:DescribeThing"], "path": "behavioral/iot/check_thing_type_deprecated_blocks_new_thing.py", "service": "iot"} {"check_id": "iot.thing-type-duplicate-name-idempotent", "deployments": [], "key": "iot/thing-type-duplicate-name-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateThingType", "iot:DeleteThingType", "iot:DeprecateThingType", "iot:DescribeThingType"], "path": "behavioral/iot/check_thing_type_duplicate_name_idempotent.py", "service": "iot"} {"check_id": "iot.thing-type-lifecycle-deprecate-undeprecate", "deployments": [], "key": "iot/thing-type-lifecycle-deprecate-undeprecate", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateThing", "iot:CreateThingType", "iot:DeleteThing", "iot:DeleteThingType", "iot:DeprecateThingType", "iot:DescribeThing", "iot:DescribeThingType", "iot:UpdateThing"], "path": "behavioral/iot/check_thing_type_lifecycle_deprecate_undeprecate.py", "service": "iot"} {"check_id": "iot.thing-type-premature-deletion-rejected", "deployments": [], "key": "iot/thing-type-premature-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreateThingType", "iot:DeleteThingType", "iot:DeprecateThingType", "iot:DescribeThingType"], "path": "behavioral/iot/check_thing_type_premature_deletion_rejected.py", "service": "iot"} {"check_id": "iot.topic-rule-destination-confirmation-rejected-without-valid-token", "deployments": [], "key": "iot/topic-rule-destination-confirmation-rejected-without-valid-token", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:ConfirmTopicRuleDestination", "iot:CreateTopicRuleDestination", "iot:DeleteTopicRuleDestination", "iot:GetTopicRuleDestination"], "path": "behavioral/iot/check_topic_rule_destination_confirmation_rejected_without_valid_token.py", "service": "iot"} {"check_id": "iot.topic-rule-destination-lifecycle-pending-to-enabled", "deployments": [], "key": "iot/topic-rule-destination-lifecycle-pending-to-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:ConfirmTopicRuleDestination", "iot:CreateTopicRuleDestination", "iot:DeleteTopicRuleDestination", "iot:GetTopicRuleDestination", "iot:ListTopicRuleDestinations"], "path": "behavioral/iot/check_topic_rule_destination_lifecycle_pending_to_enabled.py", "service": "iot"} {"check_id": "iot.topic-rule-invalid-sql-rejected", "deployments": [], "key": "iot/topic-rule-invalid-sql-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:GetTopicRule", "iot:ListTopicRules"], "path": "behavioral/iot/check_topic_rule_invalid_sql_rejected.py", "service": "iot"} {"check_id": "iot.topic-rule-lifecycle-disable-enable", "deployments": [], "key": "iot/topic-rule-lifecycle-disable-enable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:GetTopicRule", "iot:ReplaceTopicRule", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_topic_rule_lifecycle_disable_enable.py", "service": "iot"} {"check_id": "iot.topic-rule-with-unconfirmed-destination-blocks-delivery", "deployments": [], "key": "iot/topic-rule-with-unconfirmed-destination-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "dp:endpoint", "plane:data"], "operations": ["apigatewayv2:CreateApi", "apigatewayv2:CreateIntegration", "apigatewayv2:CreateRoute", "apigatewayv2:CreateStage", "apigatewayv2:DeleteApi", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iot-data:Publish", "iot:ConfirmTopicRuleDestination", "iot:CreateTopicRule", "iot:CreateTopicRuleDestination", "iot:DeleteTopicRule", "iot:DeleteTopicRuleDestination", "iot:GetTopicRuleDestination", "iot:UpdateTopicRuleDestination", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:Invoke", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/iot/check_topic_rule_with_unconfirmed_destination_blocks_delivery.py", "service": "iot"} {"check_id": "iot.update-package-configuration-auto-versioning-applied", "deployments": [], "key": "iot/update-package-configuration-auto-versioning-applied", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-data:GetThingShadow", "iot-jobs-data:StartNextPendingJobExecution", "iot-jobs-data:UpdateJobExecution", "iot:CreateJob", "iot:CreatePackage", "iot:CreatePackageVersion", "iot:CreateThing", "iot:DeleteJob", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackageConfiguration", "iot:UpdateIndexingConfiguration", "iot:UpdatePackageConfiguration", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_update_package_configuration_auto_versioning_applied.py", "service": "iot"} {"check_id": "iot.update-package-unknown-default-version-rejected", "deployments": [], "key": "iot/update-package-unknown-default-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:DescribeIndex", "iot:GetIndexingConfiguration", "iot:GetPackage", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "iot:UpdatePackage", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_update_package_unknown_default_version_rejected.py", "service": "iot"} {"check_id": "iot.update-package-version-nonexistent-rejected", "deployments": [], "key": "iot/update-package-version-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:CreatePackage", "iot:CreatePackageVersion", "iot:DeletePackage", "iot:DeletePackageVersion", "iot:GetIndexingConfiguration", "iot:GetPackageVersion", "iot:UpdateIndexingConfiguration", "iot:UpdatePackageVersion"], "path": "behavioral/iot/check_update_package_version_nonexistent_rejected.py", "service": "iot"} {"check_id": "iot.update-thing-attributes-merge", "deployments": [], "key": "iot/update-thing-attributes-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iot:DescribeThing", "iot:UpdateThing"], "path": "behavioral/iot/check_update_thing_attributes_merge.py", "service": "iot"} {"check_id": "iot.update-thing-groups-for-thing-bulk", "deployments": [], "key": "iot/update-thing-groups-for-thing-bulk", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateThing", "iot:CreateThingGroup", "iot:DeleteThing", "iot:DeleteThingGroup", "iot:ListThingGroupsForThing", "iot:UpdateThingGroupsForThing"], "path": "behavioral/iot/check_update_thing_groups_for_thing_bulk.py", "service": "iot"} {"check_id": "iot.visibility-timeout-job-execution-timeout-expires", "deployments": [], "key": "iot/visibility-timeout-job-execution-timeout-expires", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["iot-jobs-data:StartNextPendingJobExecution", "iot:CreateJob", "iot:CreateThing", "iot:DeleteJob", "iot:DeleteThing", "iot:DescribeEndpoint", "iot:DescribeJobExecution"], "path": "behavioral/iot/check_visibility_timeout_job_execution_timeout_expires.py", "service": "iot"} {"check_id": "iot__kinesis.topic-rule-kinesis-action-missing-put-record-permission-rejected", "deployments": [], "key": "iot__kinesis/topic-rule-kinesis-action-missing-put-record-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "sts:GetCallerIdentity"], "path": "behavioral/iot__kinesis/check_topic_rule_kinesis_action_missing_put_record_permission_rejected.py", "service": "iot__kinesis"} {"check_id": "iot__kinesis.topic-rule-kinesis-action-puts-record-from-published-message", "deployments": [], "key": "iot__kinesis/topic-rule-kinesis-action-puts-record-from-published-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "sts:GetCallerIdentity"], "path": "behavioral/iot__kinesis/check_topic_rule_kinesis_action_puts_record_from_published_message.py", "service": "iot__kinesis"} {"check_id": "iot__lambda.authorizer-signed-token-either-key-passthrough", "deployments": [], "key": "iot__lambda/authorizer-signed-token-either-key-passthrough", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateAuthorizer", "iot:DeleteAuthorizer", "iot:TestInvokeAuthorizer", "iot:UpdateAuthorizer", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_authorizer_signed_token_either_key_passthrough.py", "service": "iot__lambda"} {"check_id": "iot__lambda.authorizer-test-invoke-signature-mismatch-rejected", "deployments": [], "key": "iot__lambda/authorizer-test-invoke-signature-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iot:CreateAuthorizer", "iot:DeleteAuthorizer", "iot:TestInvokeAuthorizer", "iot:UpdateAuthorizer", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_authorizer_test_invoke_signature_mismatch_rejected.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cfn-deploy-iot-rule-error-action-lambda-positive", "deployments": [], "key": "iot__lambda/cfn-deploy-iot-rule-error-action-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot-data:Publish", "iot:DescribeEndpoint", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/iot__lambda/check_cfn_deploy_iot_rule_error_action_lambda_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cfn-deploy-iot-rule-lambda-env-update-positive", "deployments": [], "key": "iot__lambda/cfn-deploy-iot-rule-lambda-env-update-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iot-data:Publish", "iot:DescribeEndpoint", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/iot__lambda/check_cfn_deploy_iot_rule_lambda_env_update_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cfn-deploy-iot-rule-lambda-missing-permission-negative", "deployments": [], "key": "iot__lambda/cfn-deploy-iot-rule-lambda-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iot-data:Publish", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/iot__lambda/check_cfn_deploy_iot_rule_lambda_missing_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cfn-deploy-iot-rule-lambda-stack-positive", "deployments": [], "key": "iot__lambda/cfn-deploy-iot-rule-lambda-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot-data:Publish", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/iot__lambda/check_cfn_deploy_iot_rule_lambda_stack_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cfn-deploy-iot-rule-missing-lambda-permission-negative", "deployments": [], "key": "iot__lambda/cfn-deploy-iot-rule-missing-lambda-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot-data:Publish", "iot:DescribeEndpoint", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/iot__lambda/check_cfn_deploy_iot_rule_missing_lambda_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cfn-deploy-iot-rule-wrong-lambda-arn-negative", "deployments": [], "key": "iot__lambda/cfn-deploy-iot-rule-wrong-lambda-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iot-data:Publish", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/iot__lambda/check_cfn_deploy_iot_rule_wrong_lambda_arn_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cfn-deploy-iot-thing-custom-resource-lambda-positive", "deployments": [], "key": "iot__lambda/cfn-deploy-iot-thing-custom-resource-lambda-positive", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iot:DeleteThing", "iot:DescribeThing"], "path": "behavioral/iot__lambda/check_cfn_deploy_iot_thing_custom_resource_lambda_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cfn-deploy-lambda-execution-role-trusts-lambda-service-positive", "deployments": [], "key": "iot__lambda/cfn-deploy-lambda-execution-role-trusts-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iot:DescribeEndpoint", "lambda:Invoke"], "path": "behavioral/iot__lambda/check_cfn_deploy_lambda_execution_role_trusts_lambda_service_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cli-iot-create-topic-rule-lambda-invoke", "deployments": [], "key": "iot__lambda/cli-iot-create-topic-rule-lambda-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_cli_iot_create_topic_rule_lambda_invoke.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cli-iot-delete-topic-rule-then-publish-no-invoke-negative", "deployments": [], "key": "iot__lambda/cli-iot-delete-topic-rule-then-publish-no-invoke-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_cli_iot_delete_topic_rule_then_publish_no_invoke_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cli-iot-topic-rule-list-and-describe-roundtrip", "deployments": [], "key": "iot__lambda/cli-iot-topic-rule-list-and-describe-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_cli_iot_topic_rule_list_and_describe_roundtrip.py", "service": "iot__lambda"} {"check_id": "iot__lambda.cli-lambda-add-permission-wrong-principal-negative", "deployments": [], "key": "iot__lambda/cli-lambda-add-permission-wrong-principal-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_cli_lambda_add_permission_wrong_principal_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-action-role-trusts-iot-service-positive", "deployments": [], "key": "iot__lambda/iot-rule-action-role-trusts-iot-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_action_role_trusts_iot_service_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-action-role-wrong-trust-negative", "deployments": [], "key": "iot__lambda/iot-rule-action-role-wrong-trust-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_action_role_wrong_trust_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-disabled-no-invocation-negative", "deployments": [], "key": "iot__lambda/iot-rule-disabled-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_disabled_no_invocation_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-disabled-rule-no-invocation-negative", "deployments": [], "key": "iot__lambda/iot-rule-disabled-rule-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "iot:EnableTopicRule", "iot:GetTopicRule", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_disabled_rule_no_invocation_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-error-action-lambda-positive", "deployments": [], "key": "iot__lambda/iot-rule-error-action-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_error_action_lambda_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-lambda-action-positive", "deployments": [], "key": "iot__lambda/iot-rule-lambda-action-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_lambda_action_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-lambda-missing-invoke-permission-negative", "deployments": [], "key": "iot__lambda/iot-rule-lambda-missing-invoke-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_lambda_missing_invoke_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-lambda-payload-data-format", "deployments": [], "key": "iot__lambda/iot-rule-lambda-payload-data-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_lambda_payload_data_format.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-lambda-wrong-arn-negative", "deployments": [], "key": "iot__lambda/iot-rule-lambda-wrong-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_lambda_wrong_arn_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-lambda-wrong-source-arn-negative", "deployments": [], "key": "iot__lambda/iot-rule-lambda-wrong-source-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_lambda_wrong_source_arn_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-republish-chain-lambda-positive", "deployments": [], "key": "iot__lambda/iot-rule-republish-chain-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_republish_chain_lambda_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-rule-sql-filter-lambda-positive", "deployments": [], "key": "iot__lambda/iot-rule-sql-filter-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_rule_sql_filter_lambda_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.iot-topicrule-create-with-untrusted-role-negative", "deployments": [], "key": "iot__lambda/iot-topicrule-create-with-untrusted-role-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_iot_topicrule_create_with_untrusted_role_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-create-function-with-untrusted-role-negative", "deployments": [], "key": "iot__lambda/lambda-create-function-with-untrusted-role-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/iot__lambda/check_lambda_create_function_with_untrusted_role_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-execution-role-trusts-lambda-service-positive", "deployments": [], "key": "iot__lambda/lambda-execution-role-trusts-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_execution_role_trusts_lambda_service_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-execution-role-wrong-trust-negative", "deployments": [], "key": "iot__lambda/lambda-execution-role-wrong-trust-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/iot__lambda/check_lambda_execution_role_wrong_trust_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-create-thing-missing-permission-negative", "deployments": [], "key": "iot__lambda/lambda-iot-create-thing-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DeleteThing", "iot:DescribeThing", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_create_thing_missing_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-create-thing-positive", "deployments": [], "key": "iot__lambda/lambda-iot-create-thing-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DeleteThing", "iot:DescribeThing", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_create_thing_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-data-publish-missing-permission-negative", "deployments": [], "key": "iot__lambda/lambda-iot-data-publish-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/iot__lambda/check_lambda_iot_data_publish_missing_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-data-publish-positive", "deployments": [], "key": "iot__lambda/lambda-iot-data-publish-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:DescribeEndpoint", "iot:TagResource", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_lambda_iot_data_publish_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-describe-endpoint-missing-permission-negative", "deployments": [], "key": "iot__lambda/lambda-iot-describe-endpoint-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_describe_endpoint_missing_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-describe-endpoint-positive", "deployments": [], "key": "iot__lambda/lambda-iot-describe-endpoint-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_describe_endpoint_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-get-thing-shadow-missing-permission-negative", "deployments": [], "key": "iot__lambda/lambda-iot-get-thing-shadow-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_get_thing_shadow_missing_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-get-thing-shadow-positive", "deployments": [], "key": "iot__lambda/lambda-iot-get-thing-shadow-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:DeleteThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_get_thing_shadow_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-list-things-positive", "deployments": [], "key": "iot__lambda/lambda-iot-list-things-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CreateThing", "iot:DeleteThing", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_list_things_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-update-thing-attributes-positive", "deployments": [], "key": "iot__lambda/lambda-iot-update-thing-attributes-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeThing", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_update_thing_attributes_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-update-thing-shadow-positive", "deployments": [], "key": "iot__lambda/lambda-iot-update-thing-shadow-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_update_thing_shadow_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-iot-update-thing-shadow-version-conflict-negative", "deployments": [], "key": "iot__lambda/lambda-iot-update-thing-shadow-version-conflict-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:DeleteThingShadow", "iot-data:GetThingShadow", "iot-data:UpdateThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_iot_update_thing_shadow_version_conflict_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-sdk-iot-create-thing-missing-permission-negative", "deployments": [], "key": "iot__lambda/lambda-sdk-iot-create-thing-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DeleteThing", "iot:DescribeThing", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_sdk_iot_create_thing_missing_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-sdk-iot-create-thing-positive", "deployments": [], "key": "iot__lambda/lambda-sdk-iot-create-thing-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DeleteThing", "iot:DescribeThing", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_sdk_iot_create_thing_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-sdk-iot-describe-endpoint-positive", "deployments": [], "key": "iot__lambda/lambda-sdk-iot-describe-endpoint-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_sdk_iot_describe_endpoint_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-sdk-iot-list-things-positive", "deployments": [], "key": "iot__lambda/lambda-sdk-iot-list-things-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CreateThing", "iot:DeleteThing", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/iot__lambda/check_lambda_sdk_iot_list_things_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-sdk-iot-publish-missing-permission-negative", "deployments": [], "key": "iot__lambda/lambda-sdk-iot-publish-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CreateTopicRule", "iot:DeleteTopicRule", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_lambda_sdk_iot_publish_missing_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-sdk-iot-publish-positive", "deployments": [], "key": "iot__lambda/lambda-sdk-iot-publish-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:CreateTopicRule", "iot:DeleteTopicRule", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_lambda_sdk_iot_publish_positive.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-sdk-iot-update-shadow-missing-permission-negative", "deployments": [], "key": "iot__lambda/lambda-sdk-iot-update-shadow-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:GetThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_lambda_sdk_iot_update_shadow_missing_permission_negative.py", "service": "iot__lambda"} {"check_id": "iot__lambda.lambda-sdk-iot-update-thing-shadow-positive", "deployments": [], "key": "iot__lambda/lambda-sdk-iot-update-thing-shadow-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot-data:GetThingShadow", "iot:CreateThing", "iot:DeleteThing", "iot:DescribeEndpoint", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/iot__lambda/check_lambda_sdk_iot_update_thing_shadow_positive.py", "service": "iot__lambda"} {"check_id": "iot__s3.bulk-thing-registration-task-registers-things-from-s3", "deployments": [], "key": "iot__s3/bulk-thing-registration-task-registers-things-from-s3", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DeleteThing", "iot:DescribeThing", "iot:DescribeThingRegistrationTask", "iot:ListThingRegistrationTaskReports", "iot:StartThingRegistrationTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/iot__s3/check_bulk_thing_registration_task_registers_things_from_s3.py", "service": "iot__s3"} {"check_id": "iot__s3.bulk-thing-registration-task-with-an-unassumable-role-rejected", "deployments": [], "key": "iot__s3/bulk-thing-registration-task-with-an-unassumable-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iot:DeleteThing", "iot:DescribeThing", "iot:DescribeThingRegistrationTask", "iot:StartThingRegistrationTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/iot__s3/check_bulk_thing_registration_task_with_an_unassumable_role_rejected.py", "service": "iot__s3"} {"check_id": "iot__s3.rule-s3-action-substitution-template-computes-the-object-key", "deployments": [], "key": "iot__s3/rule-s3-action-substitution-template-computes-the-object-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iot-data:Publish", "iot:CreateTopicRule", "iot:DeleteTopicRule", "iot:GetTopicRule", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/iot__s3/check_rule_s3_action_substitution_template_computes_the_object_key.py", "service": "iot__s3"} {"check_id": "iotdeviceadvisor.concurrent-start-suite-run-only-one-wins", "deployments": [], "key": "iotdeviceadvisor/concurrent-start-suite-run-only-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DetachThingPrincipal", "iot:UpdateCertificate", "iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteRun", "iotdeviceadvisor:ListSuiteRuns", "iotdeviceadvisor:StartSuiteRun", "iotdeviceadvisor:StopSuiteRun", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_concurrent_start_suite_run_only_one_wins.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.create-get-delete-suite-definition-lifecycle", "deployments": [], "key": "iotdeviceadvisor/create-get-delete-suite-definition-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:UpdateSuiteDefinition", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_create_get_delete_suite_definition_lifecycle.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.create-suite-definition-missing-root-group-rejected", "deployments": [], "key": "iotdeviceadvisor/create-suite-definition-missing-root-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:ListSuiteDefinitions", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_create_suite_definition_missing_root_group_rejected.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.create-suite-definition-persists-tags-at-creation", "deployments": [], "key": "iotdeviceadvisor/create-suite-definition-persists-tags-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_create_suite_definition_persists_tags_at_creation.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.get-endpoint-returns-valid-device-advisor-domain", "deployments": [], "key": "iotdeviceadvisor/get-endpoint-returns-valid-device-advisor-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotdeviceadvisor:GetEndpoint"], "path": "behavioral/iotdeviceadvisor/check_get_endpoint_returns_valid_device_advisor_domain.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.get-suite-definition-by-version-returns-original-config", "deployments": [], "key": "iotdeviceadvisor/get-suite-definition-by-version-returns-original-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:UpdateSuiteDefinition", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_get_suite_definition_by_version_returns_original_config.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.get-suite-definition-nonexistent-id-not-found", "deployments": [], "key": "iotdeviceadvisor/get-suite-definition-nonexistent-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:ListSuiteDefinitions", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_get_suite_definition_nonexistent_id_not_found.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.get-suite-run-report-not-ready-before-completion", "deployments": [], "key": "iotdeviceadvisor/get-suite-run-report-not-ready-before-completion", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DetachThingPrincipal", "iot:UpdateCertificate", "iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteRun", "iotdeviceadvisor:GetSuiteRunReport", "iotdeviceadvisor:StartSuiteRun", "iotdeviceadvisor:StopSuiteRun", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_get_suite_run_report_not_ready_before_completion.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.list-suite-definitions-reflects-created-definition", "deployments": [], "key": "iotdeviceadvisor/list-suite-definitions-reflects-created-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:ListSuiteDefinitions", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_list_suite_definitions_reflects_created_definition.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.list-suite-runs-malformed-version-filter-rejected", "deployments": [], "key": "iotdeviceadvisor/list-suite-runs-malformed-version-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:ListSuiteRuns", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_list_suite_runs_malformed_version_filter_rejected.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.list-suite-runs-reflects-started-run", "deployments": [], "key": "iotdeviceadvisor/list-suite-runs-reflects-started-run", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DetachThingPrincipal", "iot:UpdateCertificate", "iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteRun", "iotdeviceadvisor:ListSuiteRuns", "iotdeviceadvisor:StartSuiteRun", "iotdeviceadvisor:StopSuiteRun", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_list_suite_runs_reflects_started_run.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.start-suite-run-conflict-when-already-running-rejected", "deployments": [], "key": "iotdeviceadvisor/start-suite-run-conflict-when-already-running-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DetachThingPrincipal", "iot:UpdateCertificate", "iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteRun", "iotdeviceadvisor:ListSuiteRuns", "iotdeviceadvisor:StartSuiteRun", "iotdeviceadvisor:StopSuiteRun", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_start_suite_run_conflict_when_already_running_rejected.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.start-suite-run-creates-pending-or-running-run", "deployments": [], "key": "iotdeviceadvisor/start-suite-run-creates-pending-or-running-run", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DetachThingPrincipal", "iot:UpdateCertificate", "iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteRun", "iotdeviceadvisor:StartSuiteRun", "iotdeviceadvisor:StopSuiteRun", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_start_suite_run_creates_pending_or_running_run.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.stop-suite-run-initiates-stopping-transition", "deployments": [], "key": "iotdeviceadvisor/stop-suite-run-initiates-stopping-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DetachThingPrincipal", "iot:UpdateCertificate", "iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteRun", "iotdeviceadvisor:StartSuiteRun", "iotdeviceadvisor:StopSuiteRun", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_stop_suite_run_initiates_stopping_transition.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.stop-suite-run-repeat-after-completion-rejected", "deployments": [], "key": "iotdeviceadvisor/stop-suite-run-repeat-after-completion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DetachThingPrincipal", "iot:UpdateCertificate", "iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteRun", "iotdeviceadvisor:StartSuiteRun", "iotdeviceadvisor:StopSuiteRun", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_stop_suite_run_repeat_after_completion_rejected.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.suite-run-without-device-fails-on-connect-timeout", "deployments": [], "key": "iotdeviceadvisor/suite-run-without-device-fails-on-connect-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iot:AttachThingPrincipal", "iot:CreateKeysAndCertificate", "iot:CreateThing", "iot:DeleteCertificate", "iot:DeleteThing", "iot:DetachThingPrincipal", "iot:UpdateCertificate", "iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteRun", "iotdeviceadvisor:StartSuiteRun", "iotdeviceadvisor:StopSuiteRun", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_suite_run_without_device_fails_on_connect_timeout.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.tag-resource-list-tags-roundtrip", "deployments": [], "key": "iotdeviceadvisor/tag-resource-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:ListTagsForResource", "iotdeviceadvisor:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_tag_resource_list_tags_roundtrip.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.untag-resource-removes-tags", "deployments": [], "key": "iotdeviceadvisor/untag-resource-removes-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:ListTagsForResource", "iotdeviceadvisor:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_untag_resource_removes_tags.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.update-suite-definition-advances-version", "deployments": [], "key": "iotdeviceadvisor/update-suite-definition-advances-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:UpdateSuiteDefinition", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_update_suite_definition_advances_version.py", "service": "iotdeviceadvisor"} {"check_id": "iotdeviceadvisor.update-suite-definition-nonexistent-id-rejected", "deployments": [], "key": "iotdeviceadvisor/update-suite-definition-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotdeviceadvisor:CreateSuiteDefinition", "iotdeviceadvisor:DeleteSuiteDefinition", "iotdeviceadvisor:GetSuiteDefinition", "iotdeviceadvisor:UpdateSuiteDefinition", "sts:GetCallerIdentity"], "path": "behavioral/iotdeviceadvisor/check_update_suite_definition_nonexistent_id_rejected.py", "service": "iotdeviceadvisor"} {"check_id": "iotsecuretunneling.close-tunnel-delete-flag-removes-tunnel-metadata", "deployments": [], "key": "iotsecuretunneling/close-tunnel-delete-flag-removes-tunnel-metadata", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel", "iotsecuretunneling:RotateTunnelAccessToken"], "path": "behavioral/iotsecuretunneling/check_close_tunnel_delete_flag_removes_tunnel_metadata.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.close-tunnel-transitions-status-to-closed", "deployments": [], "key": "iotsecuretunneling/close-tunnel-transitions-status-to-closed", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_close_tunnel_transitions_status_to_closed.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.concurrent-open-tunnel-calls-yield-unique-tunnel-ids", "deployments": [], "key": "iotsecuretunneling/concurrent-open-tunnel-calls-yield-unique-tunnel-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_concurrent_open_tunnel_calls_yield_unique_tunnel_ids.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.custom-timeout-config-persisted", "deployments": [], "key": "iotsecuretunneling/custom-timeout-config-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_custom_timeout_config_persisted.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.default-timeout-config-is-720-minutes", "deployments": [], "key": "iotsecuretunneling/default-timeout-config-is-720-minutes", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_default_timeout_config_is_720_minutes.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.describe-tunnel-unknown-id-rejected", "deployments": [], "key": "iotsecuretunneling/describe-tunnel-unknown-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_describe_tunnel_unknown_id_rejected.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.destination-config-persisted-in-describe-tunnel", "deployments": [], "key": "iotsecuretunneling/destination-config-persisted-in-describe-tunnel", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_destination_config_persisted_in_describe_tunnel.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.list-tunnels-filters-by-thing-name", "deployments": [], "key": "iotsecuretunneling/list-tunnels-filters-by-thing-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["iot:CreateThing", "iot:DeleteThing", "iotsecuretunneling:CloseTunnel", "iotsecuretunneling:ListTunnels", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_list_tunnels_filters_by_thing_name.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.list-tunnels-max-results-paginates", "deployments": [], "key": "iotsecuretunneling/list-tunnels-max-results-paginates", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:ListTunnels", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_list_tunnels_max_results_paginates.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.list-tunnels-reflects-status-across-tunnels", "deployments": [], "key": "iotsecuretunneling/list-tunnels-reflects-status-across-tunnels", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:ListTunnels", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_list_tunnels_reflects_status_across_tunnels.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.open-tunnel-creates-open-state-disconnected-endpoints", "deployments": [], "key": "iotsecuretunneling/open-tunnel-creates-open-state-disconnected-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_open_tunnel_creates_open_state_disconnected_endpoints.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.open-tunnel-initial-tags-visible-in-describe-and-list", "deployments": [], "key": "iotsecuretunneling/open-tunnel-initial-tags-visible-in-describe-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:ListTagsForResource", "iotsecuretunneling:OpenTunnel"], "path": "behavioral/iotsecuretunneling/check_open_tunnel_initial_tags_visible_in_describe_and_list.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.rotate-access-token-on-closed-tunnel-rejected", "deployments": [], "key": "iotsecuretunneling/rotate-access-token-on-closed-tunnel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel", "iotsecuretunneling:RotateTunnelAccessToken"], "path": "behavioral/iotsecuretunneling/check_rotate_access_token_on_closed_tunnel_rejected.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.rotate-tunnel-access-token-source-mode-reissues-tokens", "deployments": [], "key": "iotsecuretunneling/rotate-tunnel-access-token-source-mode-reissues-tokens", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel", "iotsecuretunneling:RotateTunnelAccessToken"], "path": "behavioral/iotsecuretunneling/check_rotate_tunnel_access_token_source_mode_reissues_tokens.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.rotate-with-destination-config-and-source-mode-rejected", "deployments": [], "key": "iotsecuretunneling/rotate-with-destination-config-and-source-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:DescribeTunnel", "iotsecuretunneling:OpenTunnel", "iotsecuretunneling:RotateTunnelAccessToken"], "path": "behavioral/iotsecuretunneling/check_rotate_with_destination_config_and_source_mode_rejected.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "iotsecuretunneling/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:ListTagsForResource", "iotsecuretunneling:OpenTunnel", "iotsecuretunneling:TagResource"], "path": "behavioral/iotsecuretunneling/check_tag_resource_and_list_tags_round_trip.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.tag-resource-unknown-arn-rejected", "deployments": [], "key": "iotsecuretunneling/tag-resource-unknown-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:ListTagsForResource", "iotsecuretunneling:OpenTunnel", "iotsecuretunneling:TagResource"], "path": "behavioral/iotsecuretunneling/check_tag_resource_unknown_arn_rejected.py", "service": "iotsecuretunneling"} {"check_id": "iotsecuretunneling.untag-resource-removes-tag-from-list", "deployments": [], "key": "iotsecuretunneling/untag-resource-removes-tag-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsecuretunneling:CloseTunnel", "iotsecuretunneling:ListTagsForResource", "iotsecuretunneling:OpenTunnel", "iotsecuretunneling:TagResource", "iotsecuretunneling:UntagResource"], "path": "behavioral/iotsecuretunneling/check_untag_resource_removes_tag_from_list.py", "service": "iotsecuretunneling"} {"check_id": "iotsitewise.asset-creation-reaches-active-state", "deployments": [], "key": "iotsitewise/asset-creation-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_asset_creation_reaches_active_state.py", "service": "iotsitewise"} {"check_id": "iotsitewise.asset-lifecycle-creating-to-active-with-model", "deployments": [], "key": "iotsitewise/asset-lifecycle-creating-to-active-with-model", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_asset_lifecycle_creating_to_active_with_model.py", "service": "iotsitewise"} {"check_id": "iotsitewise.asset-model-composite-model-lifecycle", "deployments": [], "key": "iotsitewise/asset-model-composite-model-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:CreateAssetModelCompositeModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DeleteAssetModelCompositeModel", "iotsitewise:DescribeAssetModel", "iotsitewise:DescribeAssetModelCompositeModel", "iotsitewise:UpdateAssetModelCompositeModel"], "path": "behavioral/iotsitewise/check_asset_model_composite_model_lifecycle.py", "service": "iotsitewise"} {"check_id": "iotsitewise.asset-model-lifecycle-creating-to-active", "deployments": [], "key": "iotsitewise/asset-model-lifecycle-creating-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_asset_model_lifecycle_creating_to_active.py", "service": "iotsitewise"} {"check_id": "iotsitewise.asset-model-lifecycle-reaches-active", "deployments": [], "key": "iotsitewise/asset-model-lifecycle-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:UpdateAssetModel"], "path": "behavioral/iotsitewise/check_asset_model_lifecycle_reaches_active.py", "service": "iotsitewise"} {"check_id": "iotsitewise.asset-property-aggregates-average", "deployments": [], "key": "iotsitewise/asset-property-aggregates-average", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyAggregates"], "path": "behavioral/iotsitewise/check_asset_property_aggregates_average.py", "service": "iotsitewise"} {"check_id": "iotsitewise.asset-property-value-history-ordering", "deployments": [], "key": "iotsitewise/asset-property-value-history-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValueHistory"], "path": "behavioral/iotsitewise/check_asset_property_value_history_ordering.py", "service": "iotsitewise"} {"check_id": "iotsitewise.asset-property-value-history-quality-filter-excludes-bad-readings", "deployments": [], "key": "iotsitewise/asset-property-value-history-quality-filter-excludes-bad-readings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValueHistory"], "path": "behavioral/iotsitewise/check_asset_property_value_history_quality_filter_excludes_bad_readings.py", "service": "iotsitewise"} {"check_id": "iotsitewise.asset-reassociation-to-different-parent-after-disassociate", "deployments": [], "key": "iotsitewise/asset-reassociation-to-different-parent-after-disassociate", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_asset_reassociation_to_different_parent_after_disassociate.py", "service": "iotsitewise"} {"check_id": "iotsitewise.associate-assets-concurrent-duplicate-race", "deployments": [], "key": "iotsitewise/associate-assets-concurrent-duplicate-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_associate_assets_concurrent_duplicate_race.py", "service": "iotsitewise"} {"check_id": "iotsitewise.associate-assets-duplicate-rejected", "deployments": [], "key": "iotsitewise/associate-assets-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_associate_assets_duplicate_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.associate-assets-hierarchy-and-list", "deployments": [], "key": "iotsitewise/associate-assets-hierarchy-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssetRelationships", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_associate_assets_hierarchy_and_list.py", "service": "iotsitewise"} {"check_id": "iotsitewise.associate-assets-hierarchy-visible-in-list", "deployments": [], "key": "iotsitewise/associate-assets-hierarchy-visible-in-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_associate_assets_hierarchy_visible_in_list.py", "service": "iotsitewise"} {"check_id": "iotsitewise.associate-time-series-to-asset-property-lifecycle", "deployments": [], "key": "iotsitewise/associate-time-series-to-asset-property-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:AssociateTimeSeriesToAssetProperty", "iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DeleteTimeSeries", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DescribeTimeSeries", "iotsitewise:DisassociateTimeSeriesFromAssetProperty"], "path": "behavioral/iotsitewise/check_associate_time_series_to_asset_property_lifecycle.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-get-asset-property-aggregates-roundtrip", "deployments": [], "key": "iotsitewise/batch-get-asset-property-aggregates-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchGetAssetPropertyAggregates", "iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_batch_get_asset_property_aggregates_roundtrip.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-get-asset-property-value-mixed-success-error", "deployments": [], "key": "iotsitewise/batch-get-asset-property-value-mixed-success-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchGetAssetPropertyValue", "iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValue"], "path": "behavioral/iotsitewise/check_batch_get_asset_property_value_mixed_success_error.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-get-asset-property-value-partial-failure", "deployments": [], "key": "iotsitewise/batch-get-asset-property-value-partial-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchGetAssetPropertyValue", "iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValue"], "path": "behavioral/iotsitewise/check_batch_get_asset_property_value_partial_failure.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-put-and-get-asset-property-value-roundtrip", "deployments": [], "key": "iotsitewise/batch-put-and-get-asset-property-value-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValue"], "path": "behavioral/iotsitewise/check_batch_put_and_get_asset_property_value_roundtrip.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-put-asset-property-value-variant-types-roundtrip", "deployments": [], "key": "iotsitewise/batch-put-asset-property-value-variant-types-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValue"], "path": "behavioral/iotsitewise/check_batch_put_asset_property_value_variant_types_roundtrip.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-put-conflicting-timestamp-quality-rejected", "deployments": [], "key": "iotsitewise/batch-put-conflicting-timestamp-quality-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValue"], "path": "behavioral/iotsitewise/check_batch_put_conflicting_timestamp_quality_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-put-get-asset-property-value-roundtrip", "deployments": [], "key": "iotsitewise/batch-put-get-asset-property-value-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:GetAssetPropertyValue", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_batch_put_get_asset_property_value_roundtrip.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-put-partial-failure-resource-not-found", "deployments": [], "key": "iotsitewise/batch-put-partial-failure-resource-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValue"], "path": "behavioral/iotsitewise/check_batch_put_partial_failure_resource_not_found.py", "service": "iotsitewise"} {"check_id": "iotsitewise.batch-put-timestamp-out-of-range-rejected", "deployments": [], "key": "iotsitewise/batch-put-timestamp-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValue", "iotsitewise:GetAssetPropertyValueHistory"], "path": "behavioral/iotsitewise/check_batch_put_timestamp_out_of_range_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.concurrent-asset-model-updates-etag-race", "deployments": [], "key": "iotsitewise/concurrent-asset-model-updates-etag-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:UpdateAssetModel"], "path": "behavioral/iotsitewise/check_concurrent_asset_model_updates_etag_race.py", "service": "iotsitewise"} {"check_id": "iotsitewise.concurrent-associate-assets-race", "deployments": [], "key": "iotsitewise/concurrent-associate-assets-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_concurrent_associate_assets_race.py", "service": "iotsitewise"} {"check_id": "iotsitewise.create-asset-duplicate-external-id-rejected", "deployments": [], "key": "iotsitewise/create-asset-duplicate-external-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_create_asset_duplicate_external_id_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.delete-asset-conflict-when-hierarchy-associated-rejected", "deployments": [], "key": "iotsitewise/delete-asset-conflict-when-hierarchy-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets"], "path": "behavioral/iotsitewise/check_delete_asset_conflict_when_hierarchy_associated_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.delete-asset-model-conflict-when-asset-exists-rejected", "deployments": [], "key": "iotsitewise/delete-asset-model-conflict-when-asset-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_delete_asset_model_conflict_when_asset_exists_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.delete-asset-model-ifnonematch-active-version-rejected", "deployments": [], "key": "iotsitewise/delete-asset-model-ifnonematch-active-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_delete_asset_model_ifnonematch_active_version_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.delete-asset-model-with-asset-conflict-rejected", "deployments": [], "key": "iotsitewise/delete-asset-model-with-asset-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_delete_asset_model_with_asset_conflict_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.delete-time-series-missing-identifier-rejected", "deployments": [], "key": "iotsitewise/delete-time-series-missing-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:DeleteTimeSeries", "iotsitewise:DescribeTimeSeries"], "path": "behavioral/iotsitewise/check_delete_time_series_missing_identifier_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.describe-asset-nonexistent-not-found", "deployments": [], "key": "iotsitewise/describe-asset-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_describe_asset_nonexistent_not_found.py", "service": "iotsitewise"} {"check_id": "iotsitewise.describe-asset-not-found", "deployments": [], "key": "iotsitewise/describe-asset-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel"], "path": "behavioral/iotsitewise/check_describe_asset_not_found.py", "service": "iotsitewise"} {"check_id": "iotsitewise.disassociate-assets-never-associated-rejected", "deployments": [], "key": "iotsitewise/disassociate-assets-never-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_disassociate_assets_never_associated_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.disassociate-assets-removes-association", "deployments": [], "key": "iotsitewise/disassociate-assets-removes-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_disassociate_assets_removes_association.py", "service": "iotsitewise"} {"check_id": "iotsitewise.disassociate-assets-removes-relationship", "deployments": [], "key": "iotsitewise/disassociate-assets-removes-relationship", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssociatedAssets"], "path": "behavioral/iotsitewise/check_disassociate_assets_removes_relationship.py", "service": "iotsitewise"} {"check_id": "iotsitewise.disassociate-time-series-removes-alias-association", "deployments": [], "key": "iotsitewise/disassociate-time-series-removes-alias-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DeleteTimeSeries", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DescribeTimeSeries", "iotsitewise:DisassociateTimeSeriesFromAssetProperty", "iotsitewise:GetAssetPropertyValueHistory", "iotsitewise:UpdateAssetProperty"], "path": "behavioral/iotsitewise/check_disassociate_time_series_removes_alias_association.py", "service": "iotsitewise"} {"check_id": "iotsitewise.execute-query-malformed-sql-rejected", "deployments": [], "key": "iotsitewise/execute-query-malformed-sql-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:ExecuteQuery"], "path": "behavioral/iotsitewise/check_execute_query_malformed_sql_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.execute-query-metadata-select-returns-asset-row", "deployments": [], "key": "iotsitewise/execute-query-metadata-select-returns-asset-row", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:ExecuteQuery"], "path": "behavioral/iotsitewise/check_execute_query_metadata_select_returns_asset_row.py", "service": "iotsitewise"} {"check_id": "iotsitewise.gateway-duplicate-core-device-rejected", "deployments": [], "key": "iotsitewise/gateway-duplicate-core-device-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateGateway", "iotsitewise:DeleteGateway", "iotsitewise:DescribeGateway"], "path": "behavioral/iotsitewise/check_gateway_duplicate_core_device_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.gateway-lifecycle-create-update-delete", "deployments": [], "key": "iotsitewise/gateway-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateGateway", "iotsitewise:DeleteGateway", "iotsitewise:DescribeGateway", "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:ListGateways", "iotsitewise:UpdateGateway", "iotsitewise:UpdateGatewayCapabilityConfiguration"], "path": "behavioral/iotsitewise/check_gateway_lifecycle_create_update_delete.py", "service": "iotsitewise"} {"check_id": "iotsitewise.get-asset-property-aggregates-average", "deployments": [], "key": "iotsitewise/get-asset-property-aggregates-average", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyAggregates"], "path": "behavioral/iotsitewise/check_get_asset_property_aggregates_average.py", "service": "iotsitewise"} {"check_id": "iotsitewise.get-asset-property-value-history-ordering", "deployments": [], "key": "iotsitewise/get-asset-property-value-history-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValueHistory"], "path": "behavioral/iotsitewise/check_get_asset_property_value_history_ordering.py", "service": "iotsitewise"} {"check_id": "iotsitewise.get-interpolated-asset-property-values", "deployments": [], "key": "iotsitewise/get-interpolated-asset-property-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetInterpolatedAssetPropertyValues"], "path": "behavioral/iotsitewise/check_get_interpolated_asset_property_values.py", "service": "iotsitewise"} {"check_id": "iotsitewise.interpolated-asset-property-values-midpoint", "deployments": [], "key": "iotsitewise/interpolated-asset-property-values-midpoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:GetAssetPropertyValueHistory", "iotsitewise:GetInterpolatedAssetPropertyValues"], "path": "behavioral/iotsitewise/check_interpolated_asset_property_values_midpoint.py", "service": "iotsitewise"} {"check_id": "iotsitewise.list-asset-model-properties-reflects-created-properties", "deployments": [], "key": "iotsitewise/list-asset-model-properties-reflects-created-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:ListAssetModelProperties"], "path": "behavioral/iotsitewise/check_list_asset_model_properties_reflects_created_properties.py", "service": "iotsitewise"} {"check_id": "iotsitewise.list-asset-model-properties-reflects-definition", "deployments": [], "key": "iotsitewise/list-asset-model-properties-reflects-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:ListAssetModelProperties"], "path": "behavioral/iotsitewise/check_list_asset_model_properties_reflects_definition.py", "service": "iotsitewise"} {"check_id": "iotsitewise.list-asset-relationships-returns-hierarchy-path", "deployments": [], "key": "iotsitewise/list-asset-relationships-returns-hierarchy-path", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:AssociateAssets", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DisassociateAssets", "iotsitewise:ListAssetRelationships"], "path": "behavioral/iotsitewise/check_list_asset_relationships_returns_hierarchy_path.py", "service": "iotsitewise"} {"check_id": "iotsitewise.list-time-series-and-delete-time-series-lifecycle", "deployments": [], "key": "iotsitewise/list-time-series-and-delete-time-series-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:DeleteTimeSeries", "iotsitewise:DescribeTimeSeries", "iotsitewise:ListTimeSeries"], "path": "behavioral/iotsitewise/check_list_time_series_and_delete_time_series_lifecycle.py", "service": "iotsitewise"} {"check_id": "iotsitewise.property-alias-bind-and-ingest-roundtrip", "deployments": [], "key": "iotsitewise/property-alias-bind-and-ingest-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DescribeTimeSeries", "iotsitewise:DisassociateTimeSeriesFromAssetProperty", "iotsitewise:GetAssetPropertyValue", "iotsitewise:GetAssetPropertyValueHistory", "iotsitewise:UpdateAssetProperty"], "path": "behavioral/iotsitewise/check_property_alias_bind_and_ingest_roundtrip.py", "service": "iotsitewise"} {"check_id": "iotsitewise.property-alias-ingestion-and-retrieval", "deployments": [], "key": "iotsitewise/property-alias-ingestion-and-retrieval", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DescribeAssetProperty", "iotsitewise:GetAssetPropertyValue", "iotsitewise:UpdateAssetProperty"], "path": "behavioral/iotsitewise/check_property_alias_ingestion_and_retrieval.py", "service": "iotsitewise"} {"check_id": "iotsitewise.tag-and-list-tags-roundtrip", "deployments": [], "key": "iotsitewise/tag-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:ListTagsForResource", "iotsitewise:TagResource", "iotsitewise:UntagResource"], "path": "behavioral/iotsitewise/check_tag_and_list_tags_roundtrip.py", "service": "iotsitewise"} {"check_id": "iotsitewise.tag-gateway-resource-roundtrip-list-and-untag", "deployments": [], "key": "iotsitewise/tag-gateway-resource-roundtrip-list-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateGateway", "iotsitewise:DeleteGateway", "iotsitewise:ListTagsForResource", "iotsitewise:TagResource", "iotsitewise:UntagResource"], "path": "behavioral/iotsitewise/check_tag_gateway_resource_roundtrip_list_and_untag.py", "service": "iotsitewise"} {"check_id": "iotsitewise.tag-resource-and-list-roundtrip", "deployments": [], "key": "iotsitewise/tag-resource-and-list-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:ListTagsForResource", "iotsitewise:TagResource", "iotsitewise:UntagResource"], "path": "behavioral/iotsitewise/check_tag_resource_and_list_roundtrip.py", "service": "iotsitewise"} {"check_id": "iotsitewise.tag-resource-too-many-tags-rejected", "deployments": [], "key": "iotsitewise/tag-resource-too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:ListTagsForResource", "iotsitewise:TagResource", "iotsitewise:UntagResource"], "path": "behavioral/iotsitewise/check_tag_resource_too_many_tags_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.time-series-alias-and-direct-ingestion-merge-into-one-history", "deployments": [], "key": "iotsitewise/time-series-alias-and-direct-ingestion-merge-into-one-history", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iotsitewise:AssociateTimeSeriesToAssetProperty", "iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DeleteTimeSeries", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DescribeTimeSeries", "iotsitewise:DisassociateTimeSeriesFromAssetProperty", "iotsitewise:GetAssetPropertyValueHistory"], "path": "behavioral/iotsitewise/check_time_series_alias_and_direct_ingestion_merge_into_one_history.py", "service": "iotsitewise"} {"check_id": "iotsitewise.too-many-tags-rejected", "deployments": [], "key": "iotsitewise/too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:ListTagsForResource", "iotsitewise:TagResource"], "path": "behavioral/iotsitewise/check_too_many_tags_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.update-asset-model-etag-precondition-mismatch-rejected", "deployments": [], "key": "iotsitewise/update-asset-model-etag-precondition-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:UpdateAssetModel"], "path": "behavioral/iotsitewise/check_update_asset_model_etag_precondition_mismatch_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.update-asset-model-precondition-etag-mismatch-rejected", "deployments": [], "key": "iotsitewise/update-asset-model-precondition-etag-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iotsitewise:CreateAssetModel", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAssetModel", "iotsitewise:UpdateAssetModel"], "path": "behavioral/iotsitewise/check_update_asset_model_precondition_etag_mismatch_rejected.py", "service": "iotsitewise"} {"check_id": "iotsitewise.update-asset-rename-reflected-in-describe", "deployments": [], "key": "iotsitewise/update-asset-rename-reflected-in-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:DeleteAsset", "iotsitewise:DeleteAssetModel", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:UpdateAsset"], "path": "behavioral/iotsitewise/check_update_asset_rename_reflected_in_describe.py", "service": "iotsitewise"} {"check_id": "iottwinmaker.batch-put-property-values-partial-entry-errors", "deployments": [], "key": "iottwinmaker/batch-put-property-values-partial-entry-errors", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:BatchPutPropertyValues", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "iottwinmaker:GetEntity", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_batch_put_property_values_partial_entry_errors.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.component-type-create-reaches-active-state", "deployments": [], "key": "iottwinmaker/component-type-create-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "iottwinmaker:UpdateComponentType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_component_type_create_reaches_active_state.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.concurrent-create-entity-same-id-race", "deployments": [], "key": "iottwinmaker/concurrent-create-entity-same-id-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetEntity", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_concurrent_create_entity_same_id_race.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.create-component-type-duplicate-id-conflict-rejected", "deployments": [], "key": "iottwinmaker/create-component-type-duplicate-id-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_create_component_type_duplicate_id_conflict_rejected.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.create-entity-rejects-abstract-component-type", "deployments": [], "key": "iottwinmaker/create-entity-rejects-abstract-component-type", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "iottwinmaker:GetEntity", "iottwinmaker:ListEntities", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_create_entity_rejects_abstract_component_type.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.create-sync-job-unassumable-role-rejected", "deployments": [], "key": "iottwinmaker/create-sync-job-unassumable-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateSyncJob", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteSyncJob", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetSyncJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_create_sync_job_unassumable_role_rejected.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.delete-component-type-referenced-by-entity-rejected", "deployments": [], "key": "iottwinmaker/delete-component-type-referenced-by-entity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "iottwinmaker:GetEntity", "iottwinmaker:UpdateComponentType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_delete_component_type_referenced_by_entity_rejected.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.delete-entity-transitions-to-removed", "deployments": [], "key": "iottwinmaker/delete-entity-transitions-to-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetEntity", "iottwinmaker:ListEntities", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_delete_entity_transitions_to_removed.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.delete-entity-with-children-without-recursive-rejected", "deployments": [], "key": "iottwinmaker/delete-entity-with-children-without-recursive-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetEntity", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_delete_entity_with_children_without_recursive_rejected.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.entity-create-reaches-active-state", "deployments": [], "key": "iottwinmaker/entity-create-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetEntity", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_entity_create_reaches_active_state.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.execute-query-filters-by-entity-name", "deployments": [], "key": "iottwinmaker/execute-query-filters-by-entity-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:ExecuteQuery", "iottwinmaker:GetEntity", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_execute_query_filters_by_entity_name.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.execute-query-invalid-syntax-rejected", "deployments": [], "key": "iottwinmaker/execute-query-invalid-syntax-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:ExecuteQuery", "iottwinmaker:GetEntity", "iottwinmaker:GetWorkspace", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_execute_query_invalid_syntax_rejected.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.get-entity-not-found", "deployments": [], "key": "iottwinmaker/get-entity-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetEntity", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_get_entity_not_found.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.get-property-value-history-nonexistent-entity-not-found", "deployments": [], "key": "iottwinmaker/get-property-value-history-nonexistent-entity-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "iottwinmaker:GetEntity", "iottwinmaker:GetPropertyValue", "iottwinmaker:GetPropertyValueHistory", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_get_property_value_history_nonexistent_entity_not_found.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.get-property-value-history-rejects-non-time-series-property", "deployments": [], "key": "iottwinmaker/get-property-value-history-rejects-non-time-series-property", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "iottwinmaker:GetEntity", "iottwinmaker:GetPropertyValue", "iottwinmaker:GetPropertyValueHistory", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_get_property_value_history_rejects_non_time_series_property.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.get-property-value-uses-default-value-when-unset", "deployments": [], "key": "iottwinmaker/get-property-value-uses-default-value-when-unset", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "iottwinmaker:GetEntity", "iottwinmaker:GetPropertyValue", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_get_property_value_uses_default_value_when_unset.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.list-entities-reflects-parent-child-hierarchy", "deployments": [], "key": "iottwinmaker/list-entities-reflects-parent-child-hierarchy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateEntity", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteEntity", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetEntity", "iottwinmaker:ListEntities", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_list_entities_reflects_parent_child_hierarchy.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.tag-resource-list-tags-roundtrip", "deployments": [], "key": "iottwinmaker/tag-resource-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetWorkspace", "iottwinmaker:ListTagsForResource", "iottwinmaker:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_tag_resource_list_tags_roundtrip.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.too-many-tags-exceeded-rejected", "deployments": [], "key": "iottwinmaker/too-many-tags-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetWorkspace", "iottwinmaker:ListTagsForResource", "iottwinmaker:TagResource", "iottwinmaker:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_too_many_tags_exceeded_rejected.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.untag-resource-removes-tag", "deployments": [], "key": "iottwinmaker/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetWorkspace", "iottwinmaker:ListTagsForResource", "iottwinmaker:TagResource", "iottwinmaker:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/iottwinmaker/check_untag_resource_removes_tag.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.update-component-type-property-definitions-persisted", "deployments": [], "key": "iottwinmaker/update-component-type-property-definitions-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateComponentType", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteComponentType", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetComponentType", "iottwinmaker:UpdateComponentType", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_update_component_type_property_definitions_persisted.py", "service": "iottwinmaker"} {"check_id": "iottwinmaker.workspace-get-persists-role-and-s3-location", "deployments": [], "key": "iottwinmaker/workspace-get-persists-role-and-s3-location", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "iottwinmaker:CreateWorkspace", "iottwinmaker:DeleteWorkspace", "iottwinmaker:GetWorkspace", "iottwinmaker:UpdateWorkspace", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/iottwinmaker/check_workspace_get_persists_role_and_s3_location.py", "service": "iottwinmaker"} {"check_id": "iotwireless.create-wireless-gateway-task-rejects-unknown-task-definition", "deployments": [], "key": "iotwireless/create-wireless-gateway-task-rejects-unknown-task-definition", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iotwireless:CreateWirelessGateway", "iotwireless:CreateWirelessGatewayTask", "iotwireless:CreateWirelessGatewayTaskDefinition", "iotwireless:DeleteWirelessGateway", "iotwireless:DeleteWirelessGatewayTask", "iotwireless:DeleteWirelessGatewayTaskDefinition", "iotwireless:GetWirelessGatewayTask"], "path": "behavioral/iotwireless/check_create_wireless_gateway_task_rejects_unknown_task_definition.py", "service": "iotwireless"} {"check_id": "iotwireless.duplicate-dev-eui-rejected-within-account", "deployments": [], "key": "iotwireless/duplicate-dev-eui-rejected-within-account", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iotwireless:CreateDestination", "iotwireless:CreateDeviceProfile", "iotwireless:CreateServiceProfile", "iotwireless:CreateWirelessDevice", "iotwireless:DeleteDestination", "iotwireless:DeleteDeviceProfile", "iotwireless:DeleteServiceProfile", "iotwireless:DeleteWirelessDevice", "iotwireless:GetWirelessDevice"], "path": "behavioral/iotwireless/check_duplicate_dev_eui_rejected_within_account.py", "service": "iotwireless"} {"check_id": "iotwireless.fuota-task-device-association-reflects-in-filtered-list", "deployments": [], "key": "iotwireless/fuota-task-device-association-reflects-in-filtered-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iotwireless:AssociateWirelessDeviceWithFuotaTask", "iotwireless:CreateDestination", "iotwireless:CreateDeviceProfile", "iotwireless:CreateFuotaTask", "iotwireless:CreateServiceProfile", "iotwireless:CreateWirelessDevice", "iotwireless:DeleteDestination", "iotwireless:DeleteDeviceProfile", "iotwireless:DeleteFuotaTask", "iotwireless:DeleteServiceProfile", "iotwireless:DeleteWirelessDevice", "iotwireless:DisassociateWirelessDeviceFromFuotaTask", "iotwireless:ListWirelessDevices"], "path": "behavioral/iotwireless/check_fuota_task_device_association_reflects_in_filtered_list.py", "service": "iotwireless"} {"check_id": "iotwireless.multicast-group-device-association-tracks-membership-count", "deployments": [], "key": "iotwireless/multicast-group-device-association-tracks-membership-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iotwireless:AssociateWirelessDeviceWithMulticastGroup", "iotwireless:CreateDestination", "iotwireless:CreateDeviceProfile", "iotwireless:CreateMulticastGroup", "iotwireless:CreateServiceProfile", "iotwireless:CreateWirelessDevice", "iotwireless:DeleteDestination", "iotwireless:DeleteDeviceProfile", "iotwireless:DeleteMulticastGroup", "iotwireless:DeleteServiceProfile", "iotwireless:DeleteWirelessDevice", "iotwireless:DisassociateWirelessDeviceFromMulticastGroup", "iotwireless:GetMulticastGroup"], "path": "behavioral/iotwireless/check_multicast_group_device_association_tracks_membership_count.py", "service": "iotwireless"} {"check_id": "iotwireless.network-analyzer-configuration-tracks-added-and-removed-devices", "deployments": [], "key": "iotwireless/network-analyzer-configuration-tracks-added-and-removed-devices", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iotwireless:CreateDestination", "iotwireless:CreateDeviceProfile", "iotwireless:CreateNetworkAnalyzerConfiguration", "iotwireless:CreateServiceProfile", "iotwireless:CreateWirelessDevice", "iotwireless:DeleteDestination", "iotwireless:DeleteDeviceProfile", "iotwireless:DeleteNetworkAnalyzerConfiguration", "iotwireless:DeleteServiceProfile", "iotwireless:DeleteWirelessDevice", "iotwireless:GetNetworkAnalyzerConfiguration", "iotwireless:UpdateNetworkAnalyzerConfiguration"], "path": "behavioral/iotwireless/check_network_analyzer_configuration_tracks_added_and_removed_devices.py", "service": "iotwireless"} {"check_id": "iotwireless.resource-event-configuration-update-round-trip", "deployments": [], "key": "iotwireless/resource-event-configuration-update-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iotwireless:CreateDestination", "iotwireless:CreateDeviceProfile", "iotwireless:CreateServiceProfile", "iotwireless:CreateWirelessDevice", "iotwireless:DeleteDestination", "iotwireless:DeleteDeviceProfile", "iotwireless:DeleteServiceProfile", "iotwireless:DeleteWirelessDevice", "iotwireless:GetResourceEventConfiguration", "iotwireless:UpdateResourceEventConfiguration"], "path": "behavioral/iotwireless/check_resource_event_configuration_update_round_trip.py", "service": "iotwireless"} {"check_id": "iotwireless.resource-log-level-override-and-reset-round-trip", "deployments": [], "key": "iotwireless/resource-log-level-override-and-reset-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iotwireless:CreateDestination", "iotwireless:CreateDeviceProfile", "iotwireless:CreateServiceProfile", "iotwireless:CreateWirelessDevice", "iotwireless:DeleteDestination", "iotwireless:DeleteDeviceProfile", "iotwireless:DeleteServiceProfile", "iotwireless:DeleteWirelessDevice", "iotwireless:GetResourceLogLevel", "iotwireless:PutResourceLogLevel", "iotwireless:ResetResourceLogLevel"], "path": "behavioral/iotwireless/check_resource_log_level_override_and_reset_round_trip.py", "service": "iotwireless"} {"check_id": "iotwireless.wireless-device-mac-version-must-match-device-profile", "deployments": [], "key": "iotwireless/wireless-device-mac-version-must-match-device-profile", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iotwireless:CreateDestination", "iotwireless:CreateDeviceProfile", "iotwireless:CreateServiceProfile", "iotwireless:CreateWirelessDevice", "iotwireless:DeleteDestination", "iotwireless:DeleteDeviceProfile", "iotwireless:DeleteServiceProfile", "iotwireless:DeleteWirelessDevice", "iotwireless:GetWirelessDevice", "iotwireless:ListWirelessDevices"], "path": "behavioral/iotwireless/check_wireless_device_mac_version_must_match_device_profile.py", "service": "iotwireless"} {"check_id": "ivs-realtime.composition-auto-shutdown-without-publisher", "deployments": [], "key": "ivs-realtime/composition-auto-shutdown-without-publisher", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:StartComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/ivs-realtime/check_composition_auto_shutdown_without_publisher.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.concurrent-delete-encoder-configuration-race", "deployments": [], "key": "ivs-realtime/concurrent-delete-encoder-configuration-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration"], "path": "behavioral/ivs-realtime/check_concurrent_delete_encoder_configuration_race.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.concurrent-start-composition-single-winner", "deployments": [], "key": "ivs-realtime/concurrent-start-composition-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:StartComposition", "ivs-realtime:StopComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/ivs-realtime/check_concurrent_start_composition_single_winner.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-encoder-configuration-bitrate-range-rejected", "deployments": [], "key": "ivs-realtime/create-encoder-configuration-bitrate-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration"], "path": "behavioral/ivs-realtime/check_create_encoder_configuration_bitrate_range_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-encoder-configuration-video-defaults", "deployments": [], "key": "ivs-realtime/create-encoder-configuration-video-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration"], "path": "behavioral/ivs-realtime/check_create_encoder_configuration_video_defaults.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-ingest-configuration-rtmp-requires-insecure-flag-rejected", "deployments": [], "key": "ivs-realtime/create-ingest-configuration-rtmp-requires-insecure-flag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateIngestConfiguration", "ivs-realtime:DeleteIngestConfiguration", "ivs-realtime:GetIngestConfiguration", "ivs-realtime:ListIngestConfigurations"], "path": "behavioral/ivs-realtime/check_create_ingest_configuration_rtmp_requires_insecure_flag_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-ingest-configuration-rtmps-lifecycle", "deployments": [], "key": "ivs-realtime/create-ingest-configuration-rtmps-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateIngestConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:DeleteIngestConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:GetIngestConfiguration", "ivs-realtime:ListIngestConfigurations"], "path": "behavioral/ivs-realtime/check_create_ingest_configuration_rtmps_lifecycle.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-attributes-size-limit-exceeded-rejected", "deployments": [], "key": "ivs-realtime/create-participant-token-attributes-size-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_attributes_size_limit_exceeded_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-concurrent-unique-participant-ids", "deployments": [], "key": "ivs-realtime/create-participant-token-concurrent-unique-participant-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_concurrent_unique_participant_ids.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-default-duration-is-720-minutes", "deployments": [], "key": "ivs-realtime/create-participant-token-default-duration-is-720-minutes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_default_duration_is_720_minutes.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-defaults", "deployments": [], "key": "ivs-realtime/create-participant-token-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_defaults.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-duration-and-capabilities-recorded", "deployments": [], "key": "ivs-realtime/create-participant-token-duration-and-capabilities-recorded", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_duration_and_capabilities_recorded.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-duration-boundary-rejected-over-max", "deployments": [], "key": "ivs-realtime/create-participant-token-duration-boundary-rejected-over-max", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_duration_boundary_rejected_over_max.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-duration-out-of-range-rejected", "deployments": [], "key": "ivs-realtime/create-participant-token-duration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_duration_out_of_range_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-empty-capabilities-list-honored", "deployments": [], "key": "ivs-realtime/create-participant-token-empty-capabilities-list-honored", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_empty_capabilities_list_honored.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-participant-token-nonexistent-stage-not-found", "deployments": [], "key": "ivs-realtime/create-participant-token-nonexistent-stage-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateParticipantToken", "ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_participant_token_nonexistent_stage_not_found.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-stage-invalid-name-pattern-rejected", "deployments": [], "key": "ivs-realtime/create-stage-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:ListStages"], "path": "behavioral/ivs-realtime/check_create_stage_invalid_name_pattern_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-stage-participant-token-configuration-attributes-roundtrip", "deployments": [], "key": "ivs-realtime/create-stage-participant-token-configuration-attributes-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_stage_participant_token_configuration_attributes_roundtrip.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-stage-participant-token-configurations-limit-exceeded-rejected", "deployments": [], "key": "ivs-realtime/create-stage-participant-token-configurations-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:ListStages"], "path": "behavioral/ivs-realtime/check_create_stage_participant_token_configurations_limit_exceeded_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-stage-participant-token-configurations-match-request", "deployments": [], "key": "ivs-realtime/create-stage-participant-token-configurations-match-request", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_stage_participant_token_configurations_match_request.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-stage-with-participant-token-configurations", "deployments": [], "key": "ivs-realtime/create-stage-with-participant-token-configurations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage"], "path": "behavioral/ivs-realtime/check_create_stage_with_participant_token_configurations.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-storage-configuration-invalid-bucket-name-rejected", "deployments": [], "key": "ivs-realtime/create-storage-configuration-invalid-bucket-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:ListStorageConfigurations", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs-realtime/check_create_storage_configuration_invalid_bucket_name_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-storage-configuration-nonexistent-bucket-not-found", "deployments": [], "key": "ivs-realtime/create-storage-configuration-nonexistent-bucket-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteStorageConfiguration", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs-realtime/check_create_storage_configuration_nonexistent_bucket_not_found.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.create-storage-configuration-s3-lifecycle", "deployments": [], "key": "ivs-realtime/create-storage-configuration-s3-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetStorageConfiguration", "ivs-realtime:ListStorageConfigurations", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs-realtime/check_create_storage_configuration_s3_lifecycle.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.delete-encoder-configuration-in-use-rejected", "deployments": [], "key": "ivs-realtime/delete-encoder-configuration-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:GetEncoderConfiguration", "ivs-realtime:ListEncoderConfigurations", "ivs-realtime:StartComposition", "ivs-realtime:StopComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/ivs-realtime/check_delete_encoder_configuration_in_use_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.delete-encoder-configuration-removes-from-list", "deployments": [], "key": "ivs-realtime/delete-encoder-configuration-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration", "ivs-realtime:ListEncoderConfigurations", "ivs-realtime:TagResource"], "path": "behavioral/ivs-realtime/check_delete_encoder_configuration_removes_from_list.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.delete-public-key-not-found-rejected", "deployments": [], "key": "ivs-realtime/delete-public-key-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:DeletePublicKey", "ivs-realtime:ImportPublicKey", "ivs-realtime:ListPublicKeys", "sts:GetCallerIdentity"], "path": "behavioral/ivs-realtime/check_delete_public_key_not_found_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.delete-stage-not-found-rejected", "deployments": [], "key": "ivs-realtime/delete-stage-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage"], "path": "behavioral/ivs-realtime/check_delete_stage_not_found_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.disconnect-participant-unknown-id-is-noop-success", "deployments": [], "key": "ivs-realtime/disconnect-participant-unknown-id-is-noop-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:DisconnectParticipant", "ivs-realtime:GetStage"], "path": "behavioral/ivs-realtime/check_disconnect_participant_unknown_id_is_noop_success.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.duplicate-public-key-import-rejected", "deployments": [], "key": "ivs-realtime/duplicate-public-key-import-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:DeletePublicKey", "ivs-realtime:ImportPublicKey", "ivs-realtime:ListPublicKeys"], "path": "behavioral/ivs-realtime/check_duplicate_public_key_import_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.encoder-configuration-bitrate-over-max-rejected", "deployments": [], "key": "ivs-realtime/encoder-configuration-bitrate-over-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:ListEncoderConfigurations"], "path": "behavioral/ivs-realtime/check_encoder_configuration_bitrate_over_max_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.encoder-configuration-custom-video-settings-persist", "deployments": [], "key": "ivs-realtime/encoder-configuration-custom-video-settings-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration"], "path": "behavioral/ivs-realtime/check_encoder_configuration_custom_video_settings_persist.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.encoder-configuration-default-video-settings", "deployments": [], "key": "ivs-realtime/encoder-configuration-default-video-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration"], "path": "behavioral/ivs-realtime/check_encoder_configuration_default_video_settings.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.encoder-configuration-fractional-framerate-persists", "deployments": [], "key": "ivs-realtime/encoder-configuration-fractional-framerate-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration"], "path": "behavioral/ivs-realtime/check_encoder_configuration_fractional_framerate_persists.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.encoder-configuration-framerate-over-max-rejected", "deployments": [], "key": "ivs-realtime/encoder-configuration-framerate-over-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:ListEncoderConfigurations"], "path": "behavioral/ivs-realtime/check_encoder_configuration_framerate_over_max_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.encoder-configuration-omitted-name-defaults-to-empty-string", "deployments": [], "key": "ivs-realtime/encoder-configuration-omitted-name-defaults-to-empty-string", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration"], "path": "behavioral/ivs-realtime/check_encoder_configuration_omitted_name_defaults_to_empty_string.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.encoder-configuration-partial-video-override-defaults-rest", "deployments": [], "key": "ivs-realtime/encoder-configuration-partial-video-override-defaults-rest", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration"], "path": "behavioral/ivs-realtime/check_encoder_configuration_partial_video_override_defaults_rest.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.encoder-configuration-pixel-product-exceeded-rejected", "deployments": [], "key": "ivs-realtime/encoder-configuration-pixel-product-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration", "ivs-realtime:ListEncoderConfigurations"], "path": "behavioral/ivs-realtime/check_encoder_configuration_pixel_product_exceeded_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.get-composition-not-found-rejected", "deployments": [], "key": "ivs-realtime/get-composition-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:StartComposition", "ivs-realtime:StopComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/ivs-realtime/check_get_composition_not_found_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.get-stage-malformed-arn-validation-rejected", "deployments": [], "key": "ivs-realtime/get-stage-malformed-arn-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage"], "path": "behavioral/ivs-realtime/check_get_stage_malformed_arn_validation_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.get-stage-not-found-after-delete", "deployments": [], "key": "ivs-realtime/get-stage-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:ListStages", "ivs-realtime:UpdateStage"], "path": "behavioral/ivs-realtime/check_get_stage_not_found_after_delete.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.get-stage-session-malformed-session-id-rejected", "deployments": [], "key": "ivs-realtime/get-stage-session-malformed-session-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:GetStageSession"], "path": "behavioral/ivs-realtime/check_get_stage_session_malformed_session_id_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.import-public-key-duplicate-material-rejected", "deployments": [], "key": "ivs-realtime/import-public-key-duplicate-material-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:DeletePublicKey", "ivs-realtime:GetPublicKey", "ivs-realtime:ImportPublicKey", "ivs-realtime:ListPublicKeys"], "path": "behavioral/ivs-realtime/check_import_public_key_duplicate_material_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.import-public-key-invalid-pem-rejected", "deployments": [], "key": "ivs-realtime/import-public-key-invalid-pem-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:DeletePublicKey", "ivs-realtime:ImportPublicKey", "ivs-realtime:ListPublicKeys"], "path": "behavioral/ivs-realtime/check_import_public_key_invalid_pem_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.import-public-key-lifecycle", "deployments": [], "key": "ivs-realtime/import-public-key-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:DeletePublicKey", "ivs-realtime:GetPublicKey", "ivs-realtime:ImportPublicKey", "ivs-realtime:ListPublicKeys"], "path": "behavioral/ivs-realtime/check_import_public_key_lifecycle.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.ingest-configuration-created-inactive", "deployments": [], "key": "ivs-realtime/ingest-configuration-created-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateIngestConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:DeleteIngestConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:GetIngestConfiguration", "ivs-realtime:ListIngestConfigurations"], "path": "behavioral/ivs-realtime/check_ingest_configuration_created_inactive.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.list-encoder-configurations-maxresults-over-max-rejected", "deployments": [], "key": "ivs-realtime/list-encoder-configurations-maxresults-over-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:ListEncoderConfigurations"], "path": "behavioral/ivs-realtime/check_list_encoder_configurations_maxresults_over_max_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.stage-active-session-id-absent-before-first-participant", "deployments": [], "key": "ivs-realtime/stage-active-session-id-absent-before-first-participant", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:ListStageSessions"], "path": "behavioral/ivs-realtime/check_stage_active_session_id_absent_before_first_participant.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.stage-deletion-removes-from-list-and-get-not-found", "deployments": [], "key": "ivs-realtime/stage-deletion-removes-from-list-and-get-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:ListStages"], "path": "behavioral/ivs-realtime/check_stage_deletion_removes_from_list_and_get_not_found.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.stage-endpoints-present-all-protocols", "deployments": [], "key": "ivs-realtime/stage-endpoints-present-all-protocols", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage"], "path": "behavioral/ivs-realtime/check_stage_endpoints_present_all_protocols.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.stage-endpoints-present-for-all-protocols", "deployments": [], "key": "ivs-realtime/stage-endpoints-present-for-all-protocols", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage"], "path": "behavioral/ivs-realtime/check_stage_endpoints_present_for_all_protocols.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.start-composition-idempotency-token-accepted", "deployments": [], "key": "ivs-realtime/start-composition-idempotency-token-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:ListCompositions", "ivs-realtime:StartComposition", "ivs-realtime:StopComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/ivs-realtime/check_start_composition_idempotency_token_accepted.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.start-composition-too-many-destinations-rejected", "deployments": [], "key": "ivs-realtime/start-composition-too-many-destinations-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:GetStage", "ivs-realtime:ListCompositions", "ivs-realtime:StartComposition", "ivs-realtime:StopComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/ivs-realtime/check_start_composition_too_many_destinations_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.start-participant-replication-source-not-found-rejected", "deployments": [], "key": "ivs-realtime/start-participant-replication-source-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:ListParticipantReplicas", "ivs-realtime:StartParticipantReplication"], "path": "behavioral/ivs-realtime/check_start_participant_replication_source_not_found_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.stop-composition-not-found-rejected", "deployments": [], "key": "ivs-realtime/stop-composition-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:StartComposition", "ivs-realtime:StopComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/ivs-realtime/check_stop_composition_not_found_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.stop-composition-sets-stopped-state-and-endtime", "deployments": [], "key": "ivs-realtime/stop-composition-sets-stopped-state-and-endtime", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:StartComposition", "ivs-realtime:StopComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/ivs-realtime/check_stop_composition_sets_stopped_state_and_endtime.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.stop-composition-terminal-state-conflict-rejected", "deployments": [], "key": "ivs-realtime/stop-composition-terminal-state-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetComposition", "ivs-realtime:StartComposition", "ivs-realtime:StopComposition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/ivs-realtime/check_stop_composition_terminal_state_conflict_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.storage-configuration-creates-bucket-policy", "deployments": [], "key": "ivs-realtime/storage-configuration-creates-bucket-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:ListStorageConfigurations", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/ivs-realtime/check_storage_configuration_creates_bucket_policy.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.tag-and-untag-resource-roundtrip", "deployments": [], "key": "ivs-realtime/tag-and-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:ListTagsForResource", "ivs-realtime:TagResource", "ivs-realtime:UntagResource"], "path": "behavioral/ivs-realtime/check_tag_and_untag_resource_roundtrip.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.tag-resource-exceeds-limit-rejected", "deployments": [], "key": "ivs-realtime/tag-resource-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:ListTagsForResource", "ivs-realtime:TagResource"], "path": "behavioral/ivs-realtime/check_tag_resource_exceeds_limit_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.tag-resource-nonexistent-resource-rejected", "deployments": [], "key": "ivs-realtime/tag-resource-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateEncoderConfiguration", "ivs-realtime:DeleteEncoderConfiguration", "ivs-realtime:GetEncoderConfiguration", "ivs-realtime:ListTagsForResource", "ivs-realtime:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/ivs-realtime/check_tag_resource_nonexistent_resource_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.tag-resource-round-trip-list-and-untag", "deployments": [], "key": "ivs-realtime/tag-resource-round-trip-list-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:ListTagsForResource", "ivs-realtime:TagResource", "ivs-realtime:UntagResource"], "path": "behavioral/ivs-realtime/check_tag_resource_round_trip_list_and_untag.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.tag-resource-tag-limit-exceeded-rejected", "deployments": [], "key": "ivs-realtime/tag-resource-tag-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:ListTagsForResource", "ivs-realtime:TagResource"], "path": "behavioral/ivs-realtime/check_tag_resource_tag_limit_exceeded_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.update-ingest-configuration-not-found-rejected", "deployments": [], "key": "ivs-realtime/update-ingest-configuration-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateIngestConfiguration", "ivs-realtime:DeleteIngestConfiguration", "ivs-realtime:GetIngestConfiguration", "ivs-realtime:UpdateIngestConfiguration"], "path": "behavioral/ivs-realtime/check_update_ingest_configuration_not_found_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.update-ingest-configuration-reassign-stage", "deployments": [], "key": "ivs-realtime/update-ingest-configuration-reassign-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateIngestConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:DeleteIngestConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:GetIngestConfiguration", "ivs-realtime:UpdateIngestConfiguration"], "path": "behavioral/ivs-realtime/check_update_ingest_configuration_reassign_stage.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.update-ingest-configuration-reassociates-stage", "deployments": [], "key": "ivs-realtime/update-ingest-configuration-reassociates-stage", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateIngestConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:DeleteIngestConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:GetIngestConfiguration", "ivs-realtime:UpdateIngestConfiguration"], "path": "behavioral/ivs-realtime/check_update_ingest_configuration_reassociates_stage.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.update-ingest-configuration-redundant-ingest-toggle", "deployments": [], "key": "ivs-realtime/update-ingest-configuration-redundant-ingest-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateIngestConfiguration", "ivs-realtime:CreateStage", "ivs-realtime:DeleteIngestConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:GetIngestConfiguration", "ivs-realtime:UpdateIngestConfiguration"], "path": "behavioral/ivs-realtime/check_update_ingest_configuration_redundant_ingest_toggle.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.update-stage-invalid-name-pattern-rejected", "deployments": [], "key": "ivs-realtime/update-stage-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:DeleteStage", "ivs-realtime:GetStage", "ivs-realtime:UpdateStage"], "path": "behavioral/ivs-realtime/check_update_stage_invalid_name_pattern_rejected.py", "service": "ivs-realtime"} {"check_id": "ivs-realtime.update-stage-recording-configuration-round-trip", "deployments": [], "key": "ivs-realtime/update-stage-recording-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs-realtime:CreateStage", "ivs-realtime:CreateStorageConfiguration", "ivs-realtime:DeleteStage", "ivs-realtime:DeleteStorageConfiguration", "ivs-realtime:GetStage", "ivs-realtime:UpdateStage", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/ivs-realtime/check_update_stage_recording_configuration_round_trip.py", "service": "ivs-realtime"} {"check_id": "ivs.batch-get-channel-partial-failure", "deployments": [], "key": "ivs/batch-get-channel-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:BatchGetChannel", "ivs:CreateChannel", "ivs:DeleteChannel", "sts:GetCallerIdentity"], "path": "behavioral/ivs/check_batch_get_channel_partial_failure.py", "service": "ivs"} {"check_id": "ivs.batch-get-stream-key-partial-failure", "deployments": [], "key": "ivs/batch-get-stream-key-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:BatchGetStreamKey", "ivs:CreateChannel", "ivs:DeleteChannel"], "path": "behavioral/ivs/check_batch_get_stream_key_partial_failure.py", "service": "ivs"} {"check_id": "ivs.batch-start-viewer-session-revocation-per-item-errors", "deployments": [], "key": "ivs/batch-start-viewer-session-revocation-per-item-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:BatchStartViewerSessionRevocation", "ivs:CreateChannel", "ivs:DeleteChannel", "sts:GetCallerIdentity"], "path": "behavioral/ivs/check_batch_start_viewer_session_revocation_per_item_errors.py", "service": "ivs"} {"check_id": "ivs.channel-lifecycle-create-get-delete", "deployments": [], "key": "ivs/channel-lifecycle-create-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:UpdateChannel"], "path": "behavioral/ivs/check_channel_lifecycle_create_get_delete.py", "service": "ivs"} {"check_id": "ivs.channel-multitrack-configuration-persisted", "deployments": [], "key": "ivs/channel-multitrack-configuration-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel"], "path": "behavioral/ivs/check_channel_multitrack_configuration_persisted.py", "service": "ivs"} {"check_id": "ivs.channel-not-broadcasting-across-operations", "deployments": [], "key": "ivs/channel-not-broadcasting-across-operations", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateAdConfiguration", "ivs:CreateChannel", "ivs:DeleteAdConfiguration", "ivs:DeleteChannel", "ivs:GetStream", "ivs:InsertAdBreak", "ivs:PutMetadata", "ivs:StopStream", "mediatailor:DeletePlaybackConfiguration", "mediatailor:PutPlaybackConfiguration"], "path": "behavioral/ivs/check_channel_not_broadcasting_across_operations.py", "service": "ivs"} {"check_id": "ivs.concurrent-create-stream-key-quota-race", "deployments": [], "key": "ivs/concurrent-create-stream-key-quota-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateStreamKey", "ivs:DeleteChannel", "ivs:DeleteStreamKey", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_concurrent_create_stream_key_quota_race.py", "service": "ivs"} {"check_id": "ivs.concurrent-create-stream-key-race", "deployments": [], "key": "ivs/concurrent-create-stream-key-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateStreamKey", "ivs:DeleteChannel", "ivs:DeleteStreamKey", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_concurrent_create_stream_key_race.py", "service": "ivs"} {"check_id": "ivs.concurrent-import-playback-key-pair-race", "deployments": [], "key": "ivs/concurrent-import-playback-key-pair-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair"], "path": "behavioral/ivs/check_concurrent_import_playback_key_pair_race.py", "service": "ivs"} {"check_id": "ivs.create-ad-configuration-empty-list-rejected", "deployments": [], "key": "ivs/create-ad-configuration-empty-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateAdConfiguration", "ivs:CreateChannel", "ivs:DeleteAdConfiguration", "ivs:DeleteChannel", "ivs:GetAdConfiguration", "ivs:ListAdConfigurations", "mediatailor:DeletePlaybackConfiguration", "mediatailor:PutPlaybackConfiguration"], "path": "behavioral/ivs/check_create_ad_configuration_empty_list_rejected.py", "service": "ivs"} {"check_id": "ivs.create-channel-default-fields", "deployments": [], "key": "ivs/create-channel-default-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel"], "path": "behavioral/ivs/check_create_channel_default_fields.py", "service": "ivs"} {"check_id": "ivs.create-channel-default-values", "deployments": [], "key": "ivs/create-channel-default-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_create_channel_default_values.py", "service": "ivs"} {"check_id": "ivs.create-channel-invalid-name-pattern-rejected", "deployments": [], "key": "ivs/create-channel-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:ListChannels"], "path": "behavioral/ivs/check_create_channel_invalid_name_pattern_rejected.py", "service": "ivs"} {"check_id": "ivs.create-channel-invalid-name-rejected", "deployments": [], "key": "ivs/create-channel-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:ListChannels"], "path": "behavioral/ivs/check_create_channel_invalid_name_rejected.py", "service": "ivs"} {"check_id": "ivs.create-channel-missing-permission-rejected", "deployments": [], "key": "ivs/create-channel-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:ListChannels", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ivs/check_create_channel_missing_permission_rejected.py", "service": "ivs"} {"check_id": "ivs.create-channel-reflects-configured-fields", "deployments": [], "key": "ivs/create-channel-reflects-configured-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel"], "path": "behavioral/ivs/check_create_channel_reflects_configured_fields.py", "service": "ivs"} {"check_id": "ivs.create-channel-with-tags-at-creation-persists", "deployments": [], "key": "ivs/create-channel-with-tags-at-creation-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:ListTagsForResource"], "path": "behavioral/ivs/check_create_channel_with_tags_at_creation_persists.py", "service": "ivs"} {"check_id": "ivs.create-playback-restriction-policy-invalid-country-rejected", "deployments": [], "key": "ivs/create-playback-restriction-policy-invalid-country-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreatePlaybackRestrictionPolicy", "ivs:DeletePlaybackRestrictionPolicy", "ivs:GetPlaybackRestrictionPolicy", "ivs:ListPlaybackRestrictionPolicies"], "path": "behavioral/ivs/check_create_playback_restriction_policy_invalid_country_rejected.py", "service": "ivs"} {"check_id": "ivs.create-playback-restriction-policy-round-trip", "deployments": [], "key": "ivs/create-playback-restriction-policy-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreatePlaybackRestrictionPolicy", "ivs:DeletePlaybackRestrictionPolicy", "ivs:GetPlaybackRestrictionPolicy"], "path": "behavioral/ivs/check_create_playback_restriction_policy_round_trip.py", "service": "ivs"} {"check_id": "ivs.create-recording-configuration-active-transition", "deployments": [], "key": "ivs/create-recording-configuration-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/ivs/check_create_recording_configuration_active_transition.py", "service": "ivs"} {"check_id": "ivs.create-recording-configuration-custom-rendition-empty-list-rejected", "deployments": [], "key": "ivs/create-recording-configuration-custom-rendition-empty-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "ivs:ListRecordingConfigurations", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs/check_create_recording_configuration_custom_rendition_empty_list_rejected.py", "service": "ivs"} {"check_id": "ivs.create-recording-configuration-invalid-bucket-create-failed", "deployments": [], "key": "ivs/create-recording-configuration-invalid-bucket-create-failed", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "ivs:ListRecordingConfigurations", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs/check_create_recording_configuration_invalid_bucket_create_failed.py", "service": "ivs"} {"check_id": "ivs.create-recording-configuration-invalid-bucket-name-rejected", "deployments": [], "key": "ivs/create-recording-configuration-invalid-bucket-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "ivs:ListRecordingConfigurations", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs/check_create_recording_configuration_invalid_bucket_name_rejected.py", "service": "ivs"} {"check_id": "ivs.create-stream-key-channel-not-found-rejected", "deployments": [], "key": "ivs/create-stream-key-channel-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateStreamKey", "ivs:DeleteChannel", "ivs:DeleteStreamKey", "ivs:GetChannel", "ivs:GetStreamKey", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_create_stream_key_channel_not_found_rejected.py", "service": "ivs"} {"check_id": "ivs.create-stream-key-quota-exceeded-rejected", "deployments": [], "key": "ivs/create-stream-key-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateStreamKey", "ivs:DeleteChannel", "ivs:DeleteStreamKey", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_create_stream_key_quota_exceeded_rejected.py", "service": "ivs"} {"check_id": "ivs.create-stream-key-resource-not-found-bad-channel", "deployments": [], "key": "ivs/create-stream-key-resource-not-found-bad-channel", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateStreamKey", "ivs:DeleteChannel", "ivs:DeleteStreamKey", "ivs:ListStreamKeys", "sts:GetCallerIdentity"], "path": "behavioral/ivs/check_create_stream_key_resource_not_found_bad_channel.py", "service": "ivs"} {"check_id": "ivs.delete-ad-configuration-associated-with-channel-rejected", "deployments": [], "key": "ivs/delete-ad-configuration-associated-with-channel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateAdConfiguration", "ivs:CreateChannel", "ivs:DeleteAdConfiguration", "ivs:DeleteChannel", "ivs:GetAdConfiguration", "mediatailor:DeletePlaybackConfiguration", "mediatailor:PutPlaybackConfiguration"], "path": "behavioral/ivs/check_delete_ad_configuration_associated_with_channel_rejected.py", "service": "ivs"} {"check_id": "ivs.delete-channel-removes-resource", "deployments": [], "key": "ivs/delete-channel-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:UpdateChannel"], "path": "behavioral/ivs/check_delete_channel_removes_resource.py", "service": "ivs"} {"check_id": "ivs.delete-channel-terminal-state", "deployments": [], "key": "ivs/delete-channel-terminal-state", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:ListChannels", "ivs:UpdateChannel"], "path": "behavioral/ivs/check_delete_channel_terminal_state.py", "service": "ivs"} {"check_id": "ivs.delete-playback-restriction-policy-attached-conflict-rejected", "deployments": [], "key": "ivs/delete-playback-restriction-policy-attached-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreatePlaybackRestrictionPolicy", "ivs:DeleteChannel", "ivs:DeletePlaybackRestrictionPolicy", "ivs:GetPlaybackRestrictionPolicy"], "path": "behavioral/ivs/check_delete_playback_restriction_policy_attached_conflict_rejected.py", "service": "ivs"} {"check_id": "ivs.delete-playback-restriction-policy-attached-rejected", "deployments": [], "key": "ivs/delete-playback-restriction-policy-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreatePlaybackRestrictionPolicy", "ivs:DeleteChannel", "ivs:DeletePlaybackRestrictionPolicy", "ivs:GetPlaybackRestrictionPolicy", "ivs:UpdatePlaybackRestrictionPolicy"], "path": "behavioral/ivs/check_delete_playback_restriction_policy_attached_rejected.py", "service": "ivs"} {"check_id": "ivs.delete-recording-configuration-referenced-by-channel-rejected", "deployments": [], "key": "ivs/delete-recording-configuration-referenced-by-channel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateRecordingConfiguration", "ivs:DeleteChannel", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "ivs:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs/check_delete_recording_configuration_referenced_by_channel_rejected.py", "service": "ivs"} {"check_id": "ivs.delete-recording-configuration-referenced-conflict-rejected", "deployments": [], "key": "ivs/delete-recording-configuration-referenced-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateRecordingConfiguration", "ivs:DeleteChannel", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs/check_delete_recording_configuration_referenced_conflict_rejected.py", "service": "ivs"} {"check_id": "ivs.delete-stream-key-then-get-not-found", "deployments": [], "key": "ivs/delete-stream-key-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:DeleteStreamKey", "ivs:GetStreamKey", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_delete_stream_key_then_get_not_found.py", "service": "ivs"} {"check_id": "ivs.get-channel-not-found", "deployments": [], "key": "ivs/get-channel-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "sts:GetCallerIdentity"], "path": "behavioral/ivs/check_get_channel_not_found.py", "service": "ivs"} {"check_id": "ivs.get-stream-channel-not-broadcasting", "deployments": [], "key": "ivs/get-stream-channel-not-broadcasting", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetStream"], "path": "behavioral/ivs/check_get_stream_channel_not_broadcasting.py", "service": "ivs"} {"check_id": "ivs.get-stream-key-returns-value-matches-create", "deployments": [], "key": "ivs/get-stream-key-returns-value-matches-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetStreamKey"], "path": "behavioral/ivs/check_get_stream_key_returns_value_matches_create.py", "service": "ivs"} {"check_id": "ivs.import-playback-key-pair-duplicate-conflict-rejected", "deployments": [], "key": "ivs/import-playback-key-pair-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair", "ivs:ListPlaybackKeyPairs"], "path": "behavioral/ivs/check_import_playback_key_pair_duplicate_conflict_rejected.py", "service": "ivs"} {"check_id": "ivs.import-playback-key-pair-duplicate-rejected", "deployments": [], "key": "ivs/import-playback-key-pair-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair", "ivs:ListPlaybackKeyPairs"], "path": "behavioral/ivs/check_import_playback_key_pair_duplicate_rejected.py", "service": "ivs"} {"check_id": "ivs.import-playback-key-pair-fingerprint-consistency", "deployments": [], "key": "ivs/import-playback-key-pair-fingerprint-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair"], "path": "behavioral/ivs/check_import_playback_key_pair_fingerprint_consistency.py", "service": "ivs"} {"check_id": "ivs.import-playback-key-pair-round-trip", "deployments": [], "key": "ivs/import-playback-key-pair-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair", "ivs:ListPlaybackKeyPairs"], "path": "behavioral/ivs/check_import_playback_key_pair_round_trip.py", "service": "ivs"} {"check_id": "ivs.import-playback-key-pair-wrong-key-type-rejected", "deployments": [], "key": "ivs/import-playback-key-pair-wrong-key-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair", "ivs:ListPlaybackKeyPairs"], "path": "behavioral/ivs/check_import_playback_key_pair_wrong_key_type_rejected.py", "service": "ivs"} {"check_id": "ivs.insert-ad-break-channel-not-broadcasting", "deployments": [], "key": "ivs/insert-ad-break-channel-not-broadcasting", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateAdConfiguration", "ivs:CreateChannel", "ivs:DeleteAdConfiguration", "ivs:DeleteChannel", "ivs:InsertAdBreak", "mediatailor:DeletePlaybackConfiguration", "mediatailor:PutPlaybackConfiguration"], "path": "behavioral/ivs/check_insert_ad_break_channel_not_broadcasting.py", "service": "ivs"} {"check_id": "ivs.list-channels-filter-by-name", "deployments": [], "key": "ivs/list-channels-filter-by-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListChannels"], "path": "behavioral/ivs/check_list_channels_filter_by_name.py", "service": "ivs"} {"check_id": "ivs.list-channels-filter-by-name-returns-subset", "deployments": [], "key": "ivs/list-channels-filter-by-name-returns-subset", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListChannels"], "path": "behavioral/ivs/check_list_channels_filter_by_name_returns_subset.py", "service": "ivs"} {"check_id": "ivs.list-channels-pagination-traverses-all", "deployments": [], "key": "ivs/list-channels-pagination-traverses-all", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListChannels"], "path": "behavioral/ivs/check_list_channels_pagination_traverses_all.py", "service": "ivs"} {"check_id": "ivs.list-playback-key-pairs-reflects-imported", "deployments": [], "key": "ivs/list-playback-key-pairs-reflects-imported", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair", "ivs:ListPlaybackKeyPairs"], "path": "behavioral/ivs/check_list_playback_key_pairs_reflects_imported.py", "service": "ivs"} {"check_id": "ivs.list-recording-configurations-pagination-with-next-token", "deployments": [], "key": "ivs/list-recording-configurations-pagination-with-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:ListRecordingConfigurations", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/ivs/check_list_recording_configurations_pagination_with_next_token.py", "service": "ivs"} {"check_id": "ivs.list-stream-keys-reflects-auto-created-key", "deployments": [], "key": "ivs/list-stream-keys-reflects-auto-created-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_list_stream_keys_reflects_auto_created_key.py", "service": "ivs"} {"check_id": "ivs.list-stream-keys-reflects-created-key", "deployments": [], "key": "ivs/list-stream-keys-reflects-created-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_list_stream_keys_reflects_created_key.py", "service": "ivs"} {"check_id": "ivs.list-tags-for-resource-not-found", "deployments": [], "key": "ivs/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair", "ivs:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/ivs/check_list_tags_for_resource_not_found.py", "service": "ivs"} {"check_id": "ivs.multitrack-container-format-incompatible-rejected", "deployments": [], "key": "ivs/multitrack-container-format-incompatible-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:ListChannels", "ivs:UpdateChannel"], "path": "behavioral/ivs/check_multitrack_container_format_incompatible_rejected.py", "service": "ivs"} {"check_id": "ivs.multitrack-requires-fragmented-mp4-rejected", "deployments": [], "key": "ivs/multitrack-requires-fragmented-mp4-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:ListChannels"], "path": "behavioral/ivs/check_multitrack_requires_fragmented_mp4_rejected.py", "service": "ivs"} {"check_id": "ivs.playback-key-pair-fingerprint-format", "deployments": [], "key": "ivs/playback-key-pair-fingerprint-format", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:DeletePlaybackKeyPair", "ivs:GetPlaybackKeyPair", "ivs:ImportPlaybackKeyPair", "ivs:ListPlaybackKeyPairs"], "path": "behavioral/ivs/check_playback_key_pair_fingerprint_format.py", "service": "ivs"} {"check_id": "ivs.playback-restriction-policy-update-persists", "deployments": [], "key": "ivs/playback-restriction-policy-update-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreatePlaybackRestrictionPolicy", "ivs:DeletePlaybackRestrictionPolicy", "ivs:GetPlaybackRestrictionPolicy", "ivs:UpdatePlaybackRestrictionPolicy"], "path": "behavioral/ivs/check_playback_restriction_policy_update_persists.py", "service": "ivs"} {"check_id": "ivs.put-metadata-channel-not-broadcasting", "deployments": [], "key": "ivs/put-metadata-channel-not-broadcasting", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:PutMetadata"], "path": "behavioral/ivs/check_put_metadata_channel_not_broadcasting.py", "service": "ivs"} {"check_id": "ivs.recording-configuration-active-state-transition", "deployments": [], "key": "ivs/recording-configuration-active-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/ivs/check_recording_configuration_active_state_transition.py", "service": "ivs"} {"check_id": "ivs.recording-configuration-reaches-active-state", "deployments": [], "key": "ivs/recording-configuration-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/ivs/check_recording_configuration_reaches_active_state.py", "service": "ivs"} {"check_id": "ivs.recording-configuration-rendition-selection-persists", "deployments": [], "key": "ivs/recording-configuration-rendition-selection-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/ivs/check_recording_configuration_rendition_selection_persists.py", "service": "ivs"} {"check_id": "ivs.recording-configuration-thumbnail-and-rendition-persisted", "deployments": [], "key": "ivs/recording-configuration-thumbnail-and-rendition-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/ivs/check_recording_configuration_thumbnail_and_rendition_persisted.py", "service": "ivs"} {"check_id": "ivs.recording-configuration-thumbnail-configuration-persists", "deployments": [], "key": "ivs/recording-configuration-thumbnail-configuration-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs/check_recording_configuration_thumbnail_configuration_persists.py", "service": "ivs"} {"check_id": "ivs.recording-configurations-list-reflects-lifecycle", "deployments": [], "key": "ivs/recording-configurations-list-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateRecordingConfiguration", "ivs:DeleteRecordingConfiguration", "ivs:GetRecordingConfiguration", "ivs:ListRecordingConfigurations", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs/check_recording_configurations_list_reflects_lifecycle.py", "service": "ivs"} {"check_id": "ivs.start-viewer-session-revocation-channel-not-found-rejected", "deployments": [], "key": "ivs/start-viewer-session-revocation-channel-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:StartViewerSessionRevocation"], "path": "behavioral/ivs/check_start_viewer_session_revocation_channel_not_found_rejected.py", "service": "ivs"} {"check_id": "ivs.start-viewer-session-revocation-ignores-broadcast-state", "deployments": [], "key": "ivs/start-viewer-session-revocation-ignores-broadcast-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetStream", "ivs:StartViewerSessionRevocation"], "path": "behavioral/ivs/check_start_viewer_session_revocation_ignores_broadcast_state.py", "service": "ivs"} {"check_id": "ivs.start-viewer-session-revocation-resource-not-found", "deployments": [], "key": "ivs/start-viewer-session-revocation-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:StartViewerSessionRevocation", "sts:GetCallerIdentity"], "path": "behavioral/ivs/check_start_viewer_session_revocation_resource_not_found.py", "service": "ivs"} {"check_id": "ivs.stop-stream-channel-not-broadcasting", "deployments": [], "key": "ivs/stop-stream-channel-not-broadcasting", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetStream", "ivs:StopStream"], "path": "behavioral/ivs/check_stop_stream_channel_not_broadcasting.py", "service": "ivs"} {"check_id": "ivs.stream-key-quota-second-key-rejected", "deployments": [], "key": "ivs/stream-key-quota-second-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateStreamKey", "ivs:DeleteChannel", "ivs:DeleteStreamKey", "ivs:ListStreamKeys"], "path": "behavioral/ivs/check_stream_key_quota_second_key_rejected.py", "service": "ivs"} {"check_id": "ivs.stream-key-rotation-changes-value", "deployments": [], "key": "ivs/stream-key-rotation-changes-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateStreamKey", "ivs:DeleteChannel", "ivs:DeleteStreamKey", "ivs:GetStreamKey"], "path": "behavioral/ivs/check_stream_key_rotation_changes_value.py", "service": "ivs"} {"check_id": "ivs.tag-and-untag-resource-roundtrip", "deployments": [], "key": "ivs/tag-and-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListTagsForResource", "ivs:TagResource", "ivs:UntagResource"], "path": "behavioral/ivs/check_tag_and_untag_resource_roundtrip.py", "service": "ivs"} {"check_id": "ivs.tag-resource-lifecycle", "deployments": [], "key": "ivs/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListTagsForResource", "ivs:TagResource", "ivs:UntagResource"], "path": "behavioral/ivs/check_tag_resource_lifecycle.py", "service": "ivs"} {"check_id": "ivs.tag-resource-list-tags-roundtrip", "deployments": [], "key": "ivs/tag-resource-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:ListTagsForResource", "ivs:TagResource", "ivs:UntagResource"], "path": "behavioral/ivs/check_tag_resource_list_tags_roundtrip.py", "service": "ivs"} {"check_id": "ivs.update-channel-disables-recording-with-empty-arn", "deployments": [], "key": "ivs/update-channel-disables-recording-with-empty-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:CreateRecordingConfiguration", "ivs:DeleteChannel", "ivs:DeleteRecordingConfiguration", "ivs:GetChannel", "ivs:GetRecordingConfiguration", "ivs:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/ivs/check_update_channel_disables_recording_with_empty_arn.py", "service": "ivs"} {"check_id": "ivs.update-channel-persists-change", "deployments": [], "key": "ivs/update-channel-persists-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:UpdateChannel"], "path": "behavioral/ivs/check_update_channel_persists_change.py", "service": "ivs"} {"check_id": "ivs.update-channel-type-and-preset-persist", "deployments": [], "key": "ivs/update-channel-type-and-preset-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreateChannel", "ivs:DeleteChannel", "ivs:GetChannel", "ivs:UpdateChannel"], "path": "behavioral/ivs/check_update_channel_type_and_preset_persist.py", "service": "ivs"} {"check_id": "ivs.update-playback-restriction-policy-fields-persisted", "deployments": [], "key": "ivs/update-playback-restriction-policy-fields-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreatePlaybackRestrictionPolicy", "ivs:DeletePlaybackRestrictionPolicy", "ivs:GetPlaybackRestrictionPolicy", "ivs:UpdatePlaybackRestrictionPolicy"], "path": "behavioral/ivs/check_update_playback_restriction_policy_fields_persisted.py", "service": "ivs"} {"check_id": "ivs.update-playback-restriction-policy-persists-change", "deployments": [], "key": "ivs/update-playback-restriction-policy-persists-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivs:CreatePlaybackRestrictionPolicy", "ivs:DeletePlaybackRestrictionPolicy", "ivs:GetPlaybackRestrictionPolicy", "ivs:UpdatePlaybackRestrictionPolicy"], "path": "behavioral/ivs/check_update_playback_restriction_policy_persists_change.py", "service": "ivs"} {"check_id": "ivschat.concurrent-create-room-name-collision-single-winner", "deployments": [], "key": "ivschat/concurrent-create-room-name-collision-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateRoom", "ivschat:DeleteRoom", "ivschat:GetRoom"], "path": "behavioral/ivschat/check_concurrent_create_room_name_collision_single_winner.py", "service": "ivschat"} {"check_id": "ivschat.create-chat-token-nonexistent-room-not-found", "deployments": [], "key": "ivschat/create-chat-token-nonexistent-room-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ivschat:CreateChatToken", "ivschat:CreateRoom", "ivschat:DeleteRoom", "sts:GetCallerIdentity"], "path": "behavioral/ivschat/check_create_chat_token_nonexistent_room_not_found.py", "service": "ivschat"} {"check_id": "ivschat.create-chat-token-session-duration-out-of-range-rejected", "deployments": [], "key": "ivschat/create-chat-token-session-duration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivschat:CreateChatToken", "ivschat:CreateRoom", "ivschat:DeleteRoom"], "path": "behavioral/ivschat/check_create_chat_token_session_duration_out_of_range_rejected.py", "service": "ivschat"} {"check_id": "ivschat.create-chat-token-session-expiration-matches-duration", "deployments": [], "key": "ivschat/create-chat-token-session-expiration-matches-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateChatToken", "ivschat:CreateRoom", "ivschat:DeleteRoom"], "path": "behavioral/ivschat/check_create_chat_token_session_expiration_matches_duration.py", "service": "ivschat"} {"check_id": "ivschat.create-logging-configuration-invalid-s3-destination-not-found", "deployments": [], "key": "ivschat/create-logging-configuration-invalid-s3-destination-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ivschat:CreateLoggingConfiguration", "ivschat:DeleteLoggingConfiguration", "ivschat:ListLoggingConfigurations", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/ivschat/check_create_logging_configuration_invalid_s3_destination_not_found.py", "service": "ivschat"} {"check_id": "ivschat.create-room-defaults-and-get", "deployments": [], "key": "ivschat/create-room-defaults-and-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateRoom", "ivschat:DeleteRoom", "ivschat:GetRoom"], "path": "behavioral/ivschat/check_create_room_defaults_and_get.py", "service": "ivschat"} {"check_id": "ivschat.delete-logging-configuration-conflict-while-attached-rejected", "deployments": [], "key": "ivschat/delete-logging-configuration-conflict-while-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ivschat:CreateLoggingConfiguration", "ivschat:CreateRoom", "ivschat:DeleteLoggingConfiguration", "ivschat:DeleteRoom", "ivschat:GetLoggingConfiguration", "ivschat:UpdateRoom", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ivschat/check_delete_logging_configuration_conflict_while_attached_rejected.py", "service": "ivschat"} {"check_id": "ivschat.delete-logging-configuration-lifecycle", "deployments": [], "key": "ivschat/delete-logging-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateLoggingConfiguration", "ivschat:DeleteLoggingConfiguration", "ivschat:GetLoggingConfiguration", "ivschat:UpdateLoggingConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ivschat/check_delete_logging_configuration_lifecycle.py", "service": "ivschat"} {"check_id": "ivschat.delete-room-removes-resource", "deployments": [], "key": "ivschat/delete-room-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["ivschat:CreateRoom", "ivschat:DeleteRoom", "ivschat:GetRoom", "ivschat:UpdateRoom"], "path": "behavioral/ivschat/check_delete_room_removes_resource.py", "service": "ivschat"} {"check_id": "ivschat.e2e-room-logging-attach-workflow", "deployments": [], "key": "ivschat/e2e-room-logging-attach-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateLoggingConfiguration", "ivschat:CreateRoom", "ivschat:DeleteLoggingConfiguration", "ivschat:DeleteRoom", "ivschat:GetLoggingConfiguration", "ivschat:GetRoom", "ivschat:UpdateRoom", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ivschat/check_e2e_room_logging_attach_workflow.py", "service": "ivschat"} {"check_id": "ivschat.list-rooms-pagination-reflects-created", "deployments": [], "key": "ivschat/list-rooms-pagination-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateRoom", "ivschat:DeleteRoom", "ivschat:ListRooms"], "path": "behavioral/ivschat/check_list_rooms_pagination_reflects_created.py", "service": "ivschat"} {"check_id": "ivschat.logging-configuration-reaches-active-state", "deployments": [], "key": "ivschat/logging-configuration-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateLoggingConfiguration", "ivschat:DeleteLoggingConfiguration", "ivschat:GetLoggingConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ivschat/check_logging_configuration_reaches_active_state.py", "service": "ivschat"} {"check_id": "ivschat.tag-and-untag-resource-room", "deployments": [], "key": "ivschat/tag-and-untag-resource-room", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateRoom", "ivschat:DeleteRoom", "ivschat:ListTagsForResource", "ivschat:TagResource", "ivschat:UntagResource"], "path": "behavioral/ivschat/check_tag_and_untag_resource_room.py", "service": "ivschat"} {"check_id": "ivschat.update-logging-configuration-state-transition", "deployments": [], "key": "ivschat/update-logging-configuration-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateLoggingConfiguration", "ivschat:DeleteLoggingConfiguration", "ivschat:GetLoggingConfiguration", "ivschat:UpdateLoggingConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup"], "path": "behavioral/ivschat/check_update_logging_configuration_state_transition.py", "service": "ivschat"} {"check_id": "ivschat.update-room-persists-changes", "deployments": [], "key": "ivschat/update-room-persists-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ivschat:CreateRoom", "ivschat:DeleteRoom", "ivschat:GetRoom", "ivschat:UpdateRoom"], "path": "behavioral/ivschat/check_update_room_persists_changes.py", "service": "ivschat"} {"check_id": "kafka.account-level-catalog-listings", "deployments": [], "key": "kafka/account-level-catalog-listings", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:ListClusters", "kafka:ListClustersV2", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_account_level_catalog_listings.py", "service": "kafka"} {"check_id": "kafka.batch-disassociate-scram-secret-malformed-arn-rejected", "deployments": [], "key": "kafka/batch-disassociate-scram-secret-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:BatchDisassociateScramSecret", "kafka:ListKafkaVersions", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_batch_disassociate_scram_secret_malformed_arn_rejected.py", "service": "kafka"} {"check_id": "kafka.batch-disassociate-scram-secret-not-associated-rejected", "deployments": [], "key": "kafka/batch-disassociate-scram-secret-not-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_batch_disassociate_scram_secret_not_associated_rejected.py", "service": "kafka"} {"check_id": "kafka.batch-disassociate-scram-secret-unassociated-secret-rejected", "deployments": [], "key": "kafka/batch-disassociate-scram-secret-unassociated-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_batch_disassociate_scram_secret_unassociated_secret_rejected.py", "service": "kafka"} {"check_id": "kafka.batch-disassociate-unassociated-secret-rejected", "deployments": [], "key": "kafka/batch-disassociate-unassociated-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_batch_disassociate_unassociated_secret_rejected.py", "service": "kafka"} {"check_id": "kafka.bootstrap-brokers-availability-gate", "deployments": [], "key": "kafka/bootstrap-brokers-availability-gate", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers"], "path": "behavioral/kafka/check_bootstrap_brokers_availability_gate.py", "service": "kafka"} {"check_id": "kafka.bootstrap-brokers-endpoint-format-by-auth-type", "deployments": [], "key": "kafka/bootstrap-brokers-endpoint-format-by-auth-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_bootstrap_brokers_endpoint_format_by_auth_type.py", "service": "kafka"} {"check_id": "kafka.bootstrap-brokers-endpoint-formats-match-cluster-security", "deployments": [], "key": "kafka/bootstrap-brokers-endpoint-formats-match-cluster-security", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_bootstrap_brokers_endpoint_formats_match_cluster_security.py", "service": "kafka"} {"check_id": "kafka.bootstrap-brokers-endpoint-types-match-security-config", "deployments": [], "key": "kafka/bootstrap-brokers-endpoint-types-match-security-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers"], "path": "behavioral/kafka/check_bootstrap_brokers_endpoint_types_match_security_config.py", "service": "kafka"} {"check_id": "kafka.bootstrap-brokers-multi-auth-endpoint-accuracy", "deployments": [], "key": "kafka/bootstrap-brokers-multi-auth-endpoint-accuracy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_bootstrap_brokers_multi_auth_endpoint_accuracy.py", "service": "kafka"} {"check_id": "kafka.broker-count-decrease-rejected", "deployments": [], "key": "kafka/broker-count-decrease-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperation", "kafka:DescribeClusterV2", "kafka:UpdateBrokerCount"], "path": "behavioral/kafka/check_broker_count_decrease_rejected.py", "service": "kafka"} {"check_id": "kafka.broker-count-update-rejected-while-in-progress", "deployments": [], "key": "kafka/broker-count-update-rejected-while-in-progress", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeCluster", "kafka:DescribeClusterOperation", "kafka:ListClustersV2", "kafka:UpdateBrokerCount", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_broker_count_update_rejected_while_in_progress.py", "service": "kafka"} {"check_id": "kafka.broker-type-update-triggers-cluster-operation", "deployments": [], "key": "kafka/broker-type-update-triggers-cluster-operation", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterOperation", "kafka:ListClusterOperations", "kafka:ListKafkaVersions", "kafka:UpdateBrokerType"], "path": "behavioral/kafka/check_broker_type_update_triggers_cluster_operation.py", "service": "kafka"} {"check_id": "kafka.channel-concurrent-update-race-rejected-or-serialized", "deployments": [], "key": "kafka/channel-concurrent-update-race-rejected-or-serialized", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DescribeChannel", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/kafka/check_channel_concurrent_update_race_rejected_or_serialized.py", "service": "kafka"} {"check_id": "kafka.channel-create-duplicate-name-conflict", "deployments": [], "key": "kafka/channel-create-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeChannel", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:ListChannels", "kafka:ListKafkaVersions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/kafka/check_channel_create_duplicate_name_conflict.py", "service": "kafka"} {"check_id": "kafka.channel-create-invalid-config-rejected", "deployments": [], "key": "kafka/channel-create-invalid-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeChannel", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:ListChannels", "kafka:ListKafkaVersions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/kafka/check_channel_create_invalid_config_rejected.py", "service": "kafka"} {"check_id": "kafka.channel-delete-nonexistent-rejected", "deployments": [], "key": "kafka/channel-delete-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:ListChannels", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_channel_delete_nonexistent_rejected.py", "service": "kafka"} {"check_id": "kafka.channel-describe-after-delete-not-found", "deployments": [], "key": "kafka/channel-describe-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeChannel", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/kafka/check_channel_describe_after_delete_not_found.py", "service": "kafka"} {"check_id": "kafka.channel-duplicate-name-conflict", "deployments": [], "key": "kafka/channel-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:ListChannels", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_channel_duplicate_name_conflict.py", "service": "kafka"} {"check_id": "kafka.channel-invalid-name-pattern-rejected", "deployments": [], "key": "kafka/channel-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateChannel", "kafka:DeleteChannel", "kafka:ListKafkaVersions", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_channel_invalid_name_pattern_rejected.py", "service": "kafka"} {"check_id": "kafka.channel-lifecycle", "deployments": [], "key": "kafka/channel-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DescribeChannel", "kafka:DescribeClusterV2", "kafka:ListChannels", "kafka:ListKafkaVersions", "kafka:UpdateChannel", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_channel_lifecycle.py", "service": "kafka"} {"check_id": "kafka.channel-lifecycle-create-describe-update-delete", "deployments": [], "key": "kafka/channel-lifecycle-create-describe-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeChannel", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:ListChannels", "kafka:ListKafkaVersions", "kafka:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/kafka/check_channel_lifecycle_create_describe_update_delete.py", "service": "kafka"} {"check_id": "kafka.channel-list-pagination-and-filter-consistency", "deployments": [], "key": "kafka/channel-list-pagination-and-filter-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeChannel", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListChannels", "kafka:ListKafkaVersions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/kafka/check_channel_list_pagination_and_filter_consistency.py", "service": "kafka"} {"check_id": "kafka.channel-update-mutation-reflected-in-describe", "deployments": [], "key": "kafka/channel-update-mutation-reflected-in-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DescribeChannel", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListChannels", "kafka:ListKafkaVersions", "kafka:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/kafka/check_channel_update_mutation_reflected_in_describe.py", "service": "kafka"} {"check_id": "kafka.channel-update-unicode-fields-round-trip", "deployments": [], "key": "kafka/channel-update-unicode-fields-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeChannel", "kafka:DescribeClusterOperationV2", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/kafka/check_channel_update_unicode_fields_round_trip.py", "service": "kafka"} {"check_id": "kafka.client-vpc-connection-state-transition", "deployments": [], "key": "kafka/client-vpc-connection-state-transition", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:ListClientVpcConnections", "kafka:ListVpcConnections", "kafka:RejectClientVpcConnection", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_client_vpc_connection_state_transition.py", "service": "kafka"} {"check_id": "kafka.cluster-create-active-transition", "deployments": [], "key": "kafka/cluster-create-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeCluster"], "path": "behavioral/kafka/check_cluster_create_active_transition.py", "service": "kafka"} {"check_id": "kafka.cluster-create-enters-creating-state", "deployments": [], "key": "kafka/cluster-create-enters-creating-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterV2"], "path": "behavioral/kafka/check_cluster_create_enters_creating_state.py", "service": "kafka"} {"check_id": "kafka.cluster-create-invalid-broker-config-rejected", "deployments": [], "key": "kafka/cluster-create-invalid-broker-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:ListClustersV2"], "path": "behavioral/kafka/check_cluster_create_invalid_broker_config_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-create-invalid-instance-type-rejected", "deployments": [], "key": "kafka/cluster-create-invalid-instance-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:ListClustersV2"], "path": "behavioral/kafka/check_cluster_create_invalid_instance_type_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-create-subnets-same-az-rejected", "deployments": [], "key": "kafka/cluster-create-subnets-same-az-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:ListClustersV2"], "path": "behavioral/kafka/check_cluster_create_subnets_same_az_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-create-unsupported-kafka-version-rejected", "deployments": [], "key": "kafka/cluster-create-unsupported-kafka-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:ListClustersV2"], "path": "behavioral/kafka/check_cluster_create_unsupported_kafka_version_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-create-v2-both-cluster-types-rejected", "deployments": [], "key": "kafka/cluster-create-v2-both-cluster-types-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:ListClustersV2"], "path": "behavioral/kafka/check_cluster_create_v2_both_cluster_types_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-delete-active-transition", "deployments": [], "key": "kafka/cluster-delete-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:ListClustersV2", "kafka:TagResource"], "path": "behavioral/kafka/check_cluster_delete_active_transition.py", "service": "kafka"} {"check_id": "kafka.cluster-delete-and-broker-ops-rejected-while-creating", "deployments": [], "key": "kafka/cluster-delete-and-broker-ops-rejected-while-creating", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:ListNodes", "kafka:RebootBroker"], "path": "behavioral/kafka/check_cluster_delete_and_broker_ops_rejected_while_creating.py", "service": "kafka"} {"check_id": "kafka.cluster-delete-stale-version-rejected", "deployments": [], "key": "kafka/cluster-delete-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterV2"], "path": "behavioral/kafka/check_cluster_delete_stale_version_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-describe-malformed-arn-rejected", "deployments": [], "key": "kafka/cluster-describe-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeClusterV2", "kafka:ListClustersV2", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_describe_malformed_arn_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-describe-not-found", "deployments": [], "key": "kafka/cluster-describe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeClusterV2", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_describe_not_found.py", "service": "kafka"} {"check_id": "kafka.cluster-duplicate-name-conflict-across-api-versions", "deployments": [], "key": "kafka/cluster-duplicate-name-conflict-across-api-versions", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListClustersV2"], "path": "behavioral/kafka/check_cluster_duplicate_name_conflict_across_api_versions.py", "service": "kafka"} {"check_id": "kafka.cluster-list-name-filter-is-prefix-match", "deployments": [], "key": "kafka/cluster-list-name-filter-is-prefix-match", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListClusters", "kafka:ListClustersV2"], "path": "behavioral/kafka/check_cluster_list_name_filter_is_prefix_match.py", "service": "kafka"} {"check_id": "kafka.cluster-mutating-updates-rejected-while-creating", "deployments": [], "key": "kafka/cluster-mutating-updates-rejected-while-creating", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeClusterV2", "kafka:UpdateBrokerCount", "kafka:UpdateBrokerStorage", "kafka:UpdateMonitoring", "kafka:UpdateSecurity"], "path": "behavioral/kafka/check_cluster_mutating_updates_rejected_while_creating.py", "service": "kafka"} {"check_id": "kafka.cluster-operations-and-policy-views-on-new-cluster", "deployments": [], "key": "kafka/cluster-operations-and-policy-views-on-new-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:ListClusterOperations", "kafka:ListClusterOperationsV2"], "path": "behavioral/kafka/check_cluster_operations_and_policy_views_on_new_cluster.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-clear-restores-default-open-access", "deployments": [], "key": "kafka/cluster-policy-clear-restores-default-open-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeCluster", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_clear_restores_default_open_access.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-concurrent-optimistic-lock", "deployments": [], "key": "kafka/cluster-policy-concurrent-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_concurrent_optimistic_lock.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-document-round-trip", "deployments": [], "key": "kafka/cluster-policy-document-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_document_round_trip.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-empty-document-persists-as-absent", "deployments": [], "key": "kafka/cluster-policy-empty-document-persists-as-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_empty_document_persists_as_absent.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-enforced-on-cross-account-vpc-connection", "deployments": [], "key": "kafka/cluster-policy-enforced-on-cross-account-vpc-connection", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:CreateVpcConnection", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:ListVpcConnections", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_enforced_on_cross_account_vpc_connection.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-invalid-document-rejected", "deployments": [], "key": "kafka/cluster-policy-invalid-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_invalid_document_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-json-round-trip", "deployments": [], "key": "kafka/cluster-policy-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy"], "path": "behavioral/kafka/check_cluster_policy_json_round_trip.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-json-unicode-round-trip", "deployments": [], "key": "kafka/cluster-policy-json-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_json_unicode_round_trip.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-large-document-round-trip", "deployments": [], "key": "kafka/cluster-policy-large-document-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_large_document_round_trip.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-lifecycle-put-get-delete", "deployments": [], "key": "kafka/cluster-policy-lifecycle-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeCluster", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_lifecycle_put_get_delete.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-put-get-delete-lifecycle", "deployments": [], "key": "kafka/cluster-policy-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_put_get_delete_lifecycle.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-sequential-overwrite-latest-wins", "deployments": [], "key": "kafka/cluster-policy-sequential-overwrite-latest-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_sequential_overwrite_latest_wins.py", "service": "kafka"} {"check_id": "kafka.cluster-policy-version-mismatch-rejected", "deployments": [], "key": "kafka/cluster-policy-version-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetClusterPolicy", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_policy_version_mismatch_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-replicator-updates-blocked-while-creating-rejected", "deployments": [], "key": "kafka/cluster-replicator-updates-blocked-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "kafka:CreateCluster", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeClusterOperationV2", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "kafka:ListKafkaVersions", "kafka:UpdateRebalancing", "kafka:UpdateReplicationInfo", "kafka:UpdateStorage", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_cluster_replicator_updates_blocked_while_creating_rejected.py", "service": "kafka"} {"check_id": "kafka.cluster-storage-rebalancing-replication-updates-blocked-while-creating", "deployments": [], "key": "kafka/cluster-storage-rebalancing-replication-updates-blocked-while-creating", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:ListKafkaVersions", "kafka:UpdateRebalancing", "kafka:UpdateReplicationInfo", "kafka:UpdateStorage"], "path": "behavioral/kafka/check_cluster_storage_rebalancing_replication_updates_blocked_while_creating.py", "service": "kafka"} {"check_id": "kafka.cluster-version-config-updates-rejected-while-creating", "deployments": [], "key": "kafka/cluster-version-config-updates-rejected-while-creating", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateConfiguration", "kafka:DeleteCluster", "kafka:DeleteConfiguration", "kafka:DescribeClusterV2", "kafka:UpdateClusterConfiguration", "kafka:UpdateClusterKafkaVersion", "kafka:UpdateConnectivity"], "path": "behavioral/kafka/check_cluster_version_config_updates_rejected_while_creating.py", "service": "kafka"} {"check_id": "kafka.clusterv2-provisioned-create-active", "deployments": [], "key": "kafka/clusterv2-provisioned-create-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2"], "path": "behavioral/kafka/check_clusterv2_provisioned_create_active.py", "service": "kafka"} {"check_id": "kafka.clusterv2-serverless-create-active", "deployments": [], "key": "kafka/clusterv2-serverless-create-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2"], "path": "behavioral/kafka/check_clusterv2_serverless_create_active.py", "service": "kafka"} {"check_id": "kafka.compatible-kafka-versions-matches-real-upgrade-path", "deployments": [], "key": "kafka/compatible-kafka-versions-matches-real-upgrade-path", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:GetCompatibleKafkaVersions", "kafka:ListKafkaVersions", "kafka:UpdateClusterKafkaVersion"], "path": "behavioral/kafka/check_compatible_kafka_versions_matches_real_upgrade_path.py", "service": "kafka"} {"check_id": "kafka.compatible-kafka-versions-no-downgrade-offered", "deployments": [], "key": "kafka/compatible-kafka-versions-no-downgrade-offered", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:GetCompatibleKafkaVersions"], "path": "behavioral/kafka/check_compatible_kafka_versions_no_downgrade_offered.py", "service": "kafka"} {"check_id": "kafka.compatible-kafka-versions-nonexistent-cluster-not-found", "deployments": [], "key": "kafka/compatible-kafka-versions-nonexistent-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:GetCompatibleKafkaVersions", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_compatible_kafka_versions_nonexistent_cluster_not_found.py", "service": "kafka"} {"check_id": "kafka.compatible-kafka-versions-reflects-active-cluster-state", "deployments": [], "key": "kafka/compatible-kafka-versions-reflects-active-cluster-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetCompatibleKafkaVersions", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_compatible_kafka_versions_reflects_active_cluster_state.py", "service": "kafka"} {"check_id": "kafka.compatible-kafka-versions-reflects-cluster-version", "deployments": [], "key": "kafka/compatible-kafka-versions-reflects-cluster-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetCompatibleKafkaVersions", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_compatible_kafka_versions_reflects_cluster_version.py", "service": "kafka"} {"check_id": "kafka.compatible-kafka-versions-reflects-current-cluster-version", "deployments": [], "key": "kafka/compatible-kafka-versions-reflects-current-cluster-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterOperation", "kafka:GetCompatibleKafkaVersions", "kafka:ListKafkaVersions", "kafka:UpdateClusterKafkaVersion"], "path": "behavioral/kafka/check_compatible_kafka_versions_reflects_current_cluster_version.py", "service": "kafka"} {"check_id": "kafka.concurrent-topic-create-duplicate-race", "deployments": [], "key": "kafka/concurrent-topic-create-duplicate-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListTopics"], "path": "behavioral/kafka/check_concurrent_topic_create_duplicate_race.py", "service": "kafka"} {"check_id": "kafka.concurrent-topic-partition-increase-race", "deployments": [], "key": "kafka/concurrent-topic-partition-increase-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:DescribeTopicPartitions", "kafka:ListKafkaVersions", "kafka:UpdateTopic"], "path": "behavioral/kafka/check_concurrent_topic_partition_increase_race.py", "service": "kafka"} {"check_id": "kafka.concurrent-vpc-connection-create-same-endpoint-race", "deployments": [], "key": "kafka/concurrent-vpc-connection-create-same-endpoint-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:CreateVpcConnection", "kafka:DeleteCluster", "kafka:DeleteVpcConnection", "kafka:DescribeCluster", "kafka:DescribeClusterOperation", "kafka:DescribeClusterV2", "kafka:DescribeVpcConnection", "kafka:ListClientVpcConnections", "kafka:ListKafkaVersions", "kafka:UpdateConnectivity"], "path": "behavioral/kafka/check_concurrent_vpc_connection_create_same_endpoint_race.py", "service": "kafka"} {"check_id": "kafka.concurrent-vpc-connection-duplicate-create-race", "deployments": [], "key": "kafka/concurrent-vpc-connection-duplicate-create-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "kafka:CreateClusterV2", "kafka:CreateVpcConnection", "kafka:DeleteCluster", "kafka:DeleteVpcConnection", "kafka:DescribeCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeClusterV2", "kafka:DescribeVpcConnection", "kafka:ListClientVpcConnections", "kafka:ListKafkaVersions", "kafka:UpdateConnectivity"], "path": "behavioral/kafka/check_concurrent_vpc_connection_duplicate_create_race.py", "service": "kafka"} {"check_id": "kafka.configuration-arn-region-scope-enforced", "deployments": [], "key": "kafka/configuration-arn-region-scope-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:DescribeConfigurationRevision", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_arn_region_scope_enforced.py", "service": "kafka"} {"check_id": "kafka.configuration-concurrent-create-same-name-race", "deployments": [], "key": "kafka/configuration-concurrent-create-same-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:ListConfigurationRevisions"], "path": "behavioral/kafka/check_configuration_concurrent_create_same_name_race.py", "service": "kafka"} {"check_id": "kafka.configuration-create-describe-lifecycle", "deployments": [], "key": "kafka/configuration-create-describe-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration"], "path": "behavioral/kafka/check_configuration_create_describe_lifecycle.py", "service": "kafka"} {"check_id": "kafka.configuration-create-rejected-for-unsupported-kafka-version", "deployments": [], "key": "kafka/configuration-create-rejected-for-unsupported-kafka-version", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:ListConfigurations", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_configuration_create_rejected_for_unsupported_kafka_version.py", "service": "kafka"} {"check_id": "kafka.configuration-delete-in-use-conflict", "deployments": [], "key": "kafka/configuration-delete-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateConfiguration", "kafka:DeleteCluster", "kafka:DeleteConfiguration", "kafka:DescribeCluster", "kafka:DescribeClusterOperation", "kafka:DescribeClusterV2", "kafka:DescribeConfiguration", "kafka:UpdateClusterConfiguration"], "path": "behavioral/kafka/check_configuration_delete_in_use_conflict.py", "service": "kafka"} {"check_id": "kafka.configuration-delete-lifecycle", "deployments": [], "key": "kafka/configuration-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration"], "path": "behavioral/kafka/check_configuration_delete_lifecycle.py", "service": "kafka"} {"check_id": "kafka.configuration-description-empty-vs-absent-preserved", "deployments": [], "key": "kafka/configuration-description-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration"], "path": "behavioral/kafka/check_configuration_description_empty_vs_absent_preserved.py", "service": "kafka"} {"check_id": "kafka.configuration-duplicate-name-rejected", "deployments": [], "key": "kafka/configuration-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration"], "path": "behavioral/kafka/check_configuration_duplicate_name_rejected.py", "service": "kafka"} {"check_id": "kafka.configuration-invalid-server-properties-rejected", "deployments": [], "key": "kafka/configuration-invalid-server-properties-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:ListConfigurations"], "path": "behavioral/kafka/check_configuration_invalid_server_properties_rejected.py", "service": "kafka"} {"check_id": "kafka.configuration-invalid-server-property-rejected", "deployments": [], "key": "kafka/configuration-invalid-server-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration"], "path": "behavioral/kafka/check_configuration_invalid_server_property_rejected.py", "service": "kafka"} {"check_id": "kafka.configuration-list-and-revisions", "deployments": [], "key": "kafka/configuration-list-and-revisions", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:ListConfigurations"], "path": "behavioral/kafka/check_configuration_list_and_revisions.py", "service": "kafka"} {"check_id": "kafka.configuration-name-over-length-rejected", "deployments": [], "key": "kafka/configuration-name-over-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration"], "path": "behavioral/kafka/check_configuration_name_over_length_rejected.py", "service": "kafka"} {"check_id": "kafka.configuration-numeric-property-precision-preserved", "deployments": [], "key": "kafka/configuration-numeric-property-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfigurationRevision", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_numeric_property_precision_preserved.py", "service": "kafka"} {"check_id": "kafka.configuration-partial-invalid-kafka-versions-rejected", "deployments": [], "key": "kafka/configuration-partial-invalid-kafka-versions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:ListKafkaVersions", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_partial_invalid_kafka_versions_rejected.py", "service": "kafka"} {"check_id": "kafka.configuration-properties-base64-round-trip", "deployments": [], "key": "kafka/configuration-properties-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfigurationRevision", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_configuration_properties_base64_round_trip.py", "service": "kafka"} {"check_id": "kafka.configuration-property-value-type-accepted", "deployments": [], "key": "kafka/configuration-property-value-type-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:DescribeConfigurationRevision"], "path": "behavioral/kafka/check_configuration_property_value_type_accepted.py", "service": "kafka"} {"check_id": "kafka.configuration-reserved-broker-property-rejected", "deployments": [], "key": "kafka/configuration-reserved-broker-property-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_reserved_broker_property_rejected.py", "service": "kafka"} {"check_id": "kafka.configuration-revision-not-found", "deployments": [], "key": "kafka/configuration-revision-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfigurationRevision", "kafka:ListConfigurationRevisions"], "path": "behavioral/kafka/check_configuration_revision_not_found.py", "service": "kafka"} {"check_id": "kafka.configuration-revisions-append-only-immutable", "deployments": [], "key": "kafka/configuration-revisions-append-only-immutable", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:DescribeConfigurationRevision", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_revisions_append_only_immutable.py", "service": "kafka"} {"check_id": "kafka.configuration-server-properties-multiline-round-trip", "deployments": [], "key": "kafka/configuration-server-properties-multiline-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfigurationRevision"], "path": "behavioral/kafka/check_configuration_server_properties_multiline_round_trip.py", "service": "kafka"} {"check_id": "kafka.configuration-server-properties-round-trip", "deployments": [], "key": "kafka/configuration-server-properties-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfigurationRevision"], "path": "behavioral/kafka/check_configuration_server_properties_round_trip.py", "service": "kafka"} {"check_id": "kafka.configuration-unicode-properties-round-trip", "deployments": [], "key": "kafka/configuration-unicode-properties-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfigurationRevision"], "path": "behavioral/kafka/check_configuration_unicode_properties_round_trip.py", "service": "kafka"} {"check_id": "kafka.configuration-unsupported-kafka-version-rejected", "deployments": [], "key": "kafka/configuration-unsupported-kafka-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:ListConfigurations", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_configuration_unsupported_kafka_version_rejected.py", "service": "kafka"} {"check_id": "kafka.configuration-update-rejected-while-deleting", "deployments": [], "key": "kafka/configuration-update-rejected-while-deleting", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_update_rejected_while_deleting.py", "service": "kafka"} {"check_id": "kafka.configuration-update-revision-increment", "deployments": [], "key": "kafka/configuration-update-revision-increment", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfigurationRevision", "kafka:ListConfigurationRevisions", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_update_revision_increment.py", "service": "kafka"} {"check_id": "kafka.configuration-update-revisions-are-immutable", "deployments": [], "key": "kafka/configuration-update-revisions-are-immutable", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfiguration", "kafka:DescribeConfigurationRevision", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_update_revisions_are_immutable.py", "service": "kafka"} {"check_id": "kafka.configuration-update-server-properties-unicode-preserved", "deployments": [], "key": "kafka/configuration-update-server-properties-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:DescribeConfigurationRevision", "kafka:UpdateConfiguration"], "path": "behavioral/kafka/check_configuration_update_server_properties_unicode_preserved.py", "service": "kafka"} {"check_id": "kafka.create-topic-duplicate-rejected", "deployments": [], "key": "kafka/create-topic-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:ListTopics"], "path": "behavioral/kafka/check_create_topic_duplicate_rejected.py", "service": "kafka"} {"check_id": "kafka.create-vpc-connection-forbidden-without-permission", "deployments": [], "key": "kafka/create-vpc-connection-forbidden-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kafka:CreateVpcConnection", "kafka:DeleteVpcConnection", "kafka:ListVpcConnections", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_create_vpc_connection_forbidden_without_permission.py", "service": "kafka"} {"check_id": "kafka.create-vpc-connection-malformed-cluster-arn-rejected", "deployments": [], "key": "kafka/create-vpc-connection-malformed-cluster-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateVpcConnection", "kafka:ListVpcConnections", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_create_vpc_connection_malformed_cluster_arn_rejected.py", "service": "kafka"} {"check_id": "kafka.create-with-invalid-input-should-fail", "deployments": [], "key": "kafka/create-with-invalid-input-should-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:CreateClusterV2", "kafka:CreateConfiguration", "kafka:CreateReplicator", "kafka:CreateTopic", "kafka:CreateVpcConnection", "kafka:DeleteConfiguration", "kafka:ListClustersV2", "kafka:ListKafkaVersions", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_create_with_invalid_input_should_fail.py", "service": "kafka"} {"check_id": "kafka.delete-cluster-blocked-during-in-flight-op", "deployments": [], "key": "kafka/delete-cluster-blocked-during-in-flight-op", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterOperation", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_delete_cluster_blocked_during_in_flight_op.py", "service": "kafka"} {"check_id": "kafka.delete-nonexistent-resources-should-fail", "deployments": [], "key": "kafka/delete-nonexistent-resources-should-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DeleteConfiguration", "kafka:DeleteReplicator", "kafka:DeleteTopic", "kafka:DeleteVpcConnection", "kafka:DescribeConfiguration", "kafka:ListKafkaVersions", "kafka:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_delete_nonexistent_resources_should_fail.py", "service": "kafka"} {"check_id": "kafka.delete-topic-cluster-connectivity-exception", "deployments": [], "key": "kafka/delete-topic-cluster-connectivity-exception", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress", "kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:ListKafkaVersions", "kafka:ListTopics"], "path": "behavioral/kafka/check_delete_topic_cluster_connectivity_exception.py", "service": "kafka"} {"check_id": "kafka.delete-topic-cluster-connectivity-exception-on-unreachable-broker", "deployments": [], "key": "kafka/delete-topic-cluster-connectivity-exception-on-unreachable-broker", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupIngress", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:ListTopics"], "path": "behavioral/kafka/check_delete_topic_cluster_connectivity_exception_on_unreachable_broker.py", "service": "kafka"} {"check_id": "kafka.deploy-cfn-cluster-policy-attached-enforced", "deployments": [], "key": "kafka/deploy-cfn-cluster-policy-attached-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_deploy_cfn_cluster_policy_attached_enforced.py", "service": "kafka"} {"check_id": "kafka.deploy-cfn-msk-cluster-active-and-reachable", "deployments": [], "key": "kafka/deploy-cfn-msk-cluster-active-and-reachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_deploy_cfn_msk_cluster_active_and_reachable.py", "service": "kafka"} {"check_id": "kafka.deploy-msk-cluster-cfn-active-and-bootstrap-brokers", "deployments": [], "key": "kafka/deploy-msk-cluster-cfn-active-and-bootstrap-brokers", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_deploy_msk_cluster_cfn_active_and_bootstrap_brokers.py", "service": "kafka"} {"check_id": "kafka.deploy-msk-cluster-cfn-bootstrap-brokers-reachable", "deployments": [], "key": "kafka/deploy-msk-cluster-cfn-bootstrap-brokers-reachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "kafka:DescribeCluster", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions", "kafka:ListNodes"], "path": "behavioral/kafka/check_deploy_msk_cluster_cfn_bootstrap_brokers_reachable.py", "service": "kafka"} {"check_id": "kafka.deploy-msk-cluster-cfn-brokers-usable", "deployments": [], "key": "kafka/deploy-msk-cluster-cfn-brokers-usable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateTopic", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_deploy_msk_cluster_cfn_brokers_usable.py", "service": "kafka"} {"check_id": "kafka.deploy-msk-cluster-cfn-scram-auth-enforced", "deployments": [], "key": "kafka/deploy-msk-cluster-cfn-scram-auth-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_deploy_msk_cluster_cfn_scram_auth_enforced.py", "service": "kafka"} {"check_id": "kafka.deploy-msk-configuration-cfn-applied-to-cluster", "deployments": [], "key": "kafka/deploy-msk-configuration-cfn-applied-to-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:DescribeClusterV2", "kafka:DescribeConfiguration", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_deploy_msk_configuration_cfn_applied_to_cluster.py", "service": "kafka"} {"check_id": "kafka.deploy-msk-serverless-cfn-topic-createable", "deployments": [], "key": "kafka/deploy-msk-serverless-cfn-topic-createable", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "kafka:CreateTopic", "kafka:DescribeClusterV2", "kafka:DescribeTopic"], "path": "behavioral/kafka/check_deploy_msk_serverless_cfn_topic_createable.py", "service": "kafka"} {"check_id": "kafka.describe-topic-partitions-invalid-topic-rejected", "deployments": [], "key": "kafka/describe-topic-partitions-invalid-topic-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeClusterV2", "kafka:DescribeTopicPartitions", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_describe_topic_partitions_invalid_topic_rejected.py", "service": "kafka"} {"check_id": "kafka.describe-topic-partitions-malformed-name-rejected", "deployments": [], "key": "kafka/describe-topic-partitions-malformed-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeTopicPartitions", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_describe_topic_partitions_malformed_name_rejected.py", "service": "kafka"} {"check_id": "kafka.describe-topic-partitions-nonexistent-topic-not-found", "deployments": [], "key": "kafka/describe-topic-partitions-nonexistent-topic-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeTopicPartitions", "kafka:ListKafkaVersions", "kafka:ListTopics"], "path": "behavioral/kafka/check_describe_topic_partitions_nonexistent_topic_not_found.py", "service": "kafka"} {"check_id": "kafka.e2e-cluster-policy-cross-account-grant-then-revoke-flow", "deployments": [], "key": "kafka/e2e-cluster-policy-cross-account-grant-then-revoke-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_e2e_cluster_policy_cross_account_grant_then_revoke_flow.py", "service": "kafka"} {"check_id": "kafka.e2e-cluster-topic-replication-consequence", "deployments": [], "key": "kafka/e2e-cluster-topic-replication-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kafka:CreateClusterV2", "kafka:CreateReplicator", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "kafka:DescribeTopic", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_e2e_cluster_topic_replication_consequence.py", "service": "kafka"} {"check_id": "kafka.e2e-cross-cluster-replication-propagates-topic-set", "deployments": [], "key": "kafka/e2e-cross-cluster-replication-propagates-topic-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateCluster", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeCluster", "kafka:DescribeReplicator", "kafka:ListKafkaVersions", "kafka:UpdateReplicationInfo"], "path": "behavioral/kafka/check_e2e_cross_cluster_replication_propagates_topic_set.py", "service": "kafka"} {"check_id": "kafka.e2e-replicator-cross-cluster-topic-sync-teardown", "deployments": [], "key": "kafka/e2e-replicator-cross-cluster-topic-sync-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kafka:CreateCluster", "kafka:CreateReplicator", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DeleteTopic", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:ListTopics", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_e2e_replicator_cross_cluster_topic_sync_teardown.py", "service": "kafka"} {"check_id": "kafka.e2e-scram-secret-auth-grant-and-revoke", "deployments": [], "key": "kafka/e2e-scram-secret-auth-grant-and-revoke", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_e2e_scram_secret_auth_grant_and_revoke.py", "service": "kafka"} {"check_id": "kafka.e2e-scram-secret-rotation-access-flow", "deployments": [], "key": "kafka/e2e-scram-secret-rotation-access-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_e2e_scram_secret_rotation_access_flow.py", "service": "kafka"} {"check_id": "kafka.e2e-topic-lifecycle-scale-and-teardown", "deployments": [], "key": "kafka/e2e-topic-lifecycle-scale-and-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:DescribeTopicPartitions", "kafka:ListKafkaVersions", "kafka:UpdateTopic"], "path": "behavioral/kafka/check_e2e_topic_lifecycle_scale_and_teardown.py", "service": "kafka"} {"check_id": "kafka.kafka-versions-catalog-and-compatibility", "deployments": [], "key": "kafka/kafka-versions-catalog-and-compatibility", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:GetCompatibleKafkaVersions", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_kafka_versions_catalog_and_compatibility.py", "service": "kafka"} {"check_id": "kafka.kafka-versions-pagination-is-a-stable-partition", "deployments": [], "key": "kafka/kafka-versions-pagination-is-a-stable-partition", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_kafka_versions_pagination_is_a_stable_partition.py", "service": "kafka"} {"check_id": "kafka.list-configurations-max-results-above-limit-rejected", "deployments": [], "key": "kafka/list-configurations-max-results-above-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:ListConfigurations"], "path": "behavioral/kafka/check_list_configurations_max_results_above_limit_rejected.py", "service": "kafka"} {"check_id": "kafka.list-configurations-pagination-consistency", "deployments": [], "key": "kafka/list-configurations-pagination-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateConfiguration", "kafka:DeleteConfiguration", "kafka:ListConfigurations"], "path": "behavioral/kafka/check_list_configurations_pagination_consistency.py", "service": "kafka"} {"check_id": "kafka.list-nodes-broker-id-stable-ordering", "deployments": [], "key": "kafka/list-nodes-broker-id-stable-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListNodes"], "path": "behavioral/kafka/check_list_nodes_broker_id_stable_ordering.py", "service": "kafka"} {"check_id": "kafka.list-nodes-reflects-cluster-brokers", "deployments": [], "key": "kafka/list-nodes-reflects-cluster-brokers", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListNodes", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_list_nodes_reflects_cluster_brokers.py", "service": "kafka"} {"check_id": "kafka.list-scram-secrets-permission-denied", "deployments": [], "key": "kafka/list-scram-secrets-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_list_scram_secrets_permission_denied.py", "service": "kafka"} {"check_id": "kafka.msk-transactional-abort-invisible-to-read-committed-visible-to-read-uncommitted", "deployments": [], "key": "kafka/msk-transactional-abort-invisible-to-read-committed-visible-to-read-uncommitted", "labels": ["axis:negative-delivery", "dp:native", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_msk_transactional_abort_invisible_to_read_committed_visible_to_read_uncommitted.py", "service": "kafka"} {"check_id": "kafka.reboot-broker-missing-permission-denied", "deployments": [], "key": "kafka/reboot-broker-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafka:RebootBroker", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_reboot_broker_missing_permission_denied.py", "service": "kafka"} {"check_id": "kafka.reboot-broker-server-orchestrates-without-full-outage", "deployments": [], "key": "kafka/reboot-broker-server-orchestrates-without-full-outage", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperation", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListNodes", "kafka:ListTopics", "kafka:RebootBroker"], "path": "behavioral/kafka/check_reboot_broker_server_orchestrates_without_full_outage.py", "service": "kafka"} {"check_id": "kafka.reboot-broker-state-transition", "deployments": [], "key": "kafka/reboot-broker-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperation", "kafka:DescribeClusterV2", "kafka:ListNodes", "kafka:RebootBroker"], "path": "behavioral/kafka/check_reboot_broker_state_transition.py", "service": "kafka"} {"check_id": "kafka.reboot-broker-state-transition-through-rebooting", "deployments": [], "key": "kafka/reboot-broker-state-transition-through-rebooting", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListNodes", "kafka:RebootBroker"], "path": "behavioral/kafka/check_reboot_broker_state_transition_through_rebooting.py", "service": "kafka"} {"check_id": "kafka.replicator-create-invalid-role-rejected", "deployments": [], "key": "kafka/replicator-create-invalid-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "kafka:ListReplicators", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_replicator_create_invalid_role_rejected.py", "service": "kafka"} {"check_id": "kafka.replicator-create-running-transition", "deployments": [], "key": "kafka/replicator-create-running-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kafka:CreateClusterV2", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_replicator_create_running_transition.py", "service": "kafka"} {"check_id": "kafka.replicator-delete-transition", "deployments": [], "key": "kafka/replicator-delete-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kafka:CreateClusterV2", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_replicator_delete_transition.py", "service": "kafka"} {"check_id": "kafka.replicator-duplicate-name-conflict", "deployments": [], "key": "kafka/replicator-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateReplicator", "kafka:DeleteReplicator", "kafka:DescribeReplicator", "kafka:ListReplicators", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_replicator_duplicate_name_conflict.py", "service": "kafka"} {"check_id": "kafka.replicator-nonexistent-cluster-not-found", "deployments": [], "key": "kafka/replicator-nonexistent-cluster-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kafka:CreateClusterV2", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_replicator_nonexistent_cluster_not_found.py", "service": "kafka"} {"check_id": "kafka.replicator-read-paths-report-clean-miss", "deployments": [], "key": "kafka/replicator-read-paths-report-clean-miss", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DeleteReplicator", "kafka:DescribeReplicator", "kafka:ListReplicators", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_replicator_read_paths_report_clean_miss.py", "service": "kafka"} {"check_id": "kafka.replicator-same-source-target-rejected", "deployments": [], "key": "kafka/replicator-same-source-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateReplicator", "kafka:DeleteReplicator", "kafka:DescribeReplicator", "kafka:ListReplicators", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_replicator_same_source_target_rejected.py", "service": "kafka"} {"check_id": "kafka.scram-associate-invalid-arn-rejected", "deployments": [], "key": "kafka/scram-associate-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:BatchAssociateScramSecret", "kafka:ListKafkaVersions", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_scram_associate_invalid_arn_rejected.py", "service": "kafka"} {"check_id": "kafka.scram-disassociate-nonexistent-secret-rejected", "deployments": [], "key": "kafka/scram-disassociate-nonexistent-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_scram_disassociate_nonexistent_secret_rejected.py", "service": "kafka"} {"check_id": "kafka.scram-secret-associate-list-disassociate", "deployments": [], "key": "kafka/scram-secret-associate-list-disassociate", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_scram_secret_associate_list_disassociate.py", "service": "kafka"} {"check_id": "kafka.scram-secret-association-rejected-without-sasl-scram-enabled", "deployments": [], "key": "kafka/scram-secret-association-rejected-without-sasl-scram-enabled", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:BatchAssociateScramSecret", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeClusterV2", "kafka:ListScramSecrets", "kafka:UpdateSecurity", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_scram_secret_association_rejected_without_sasl_scram_enabled.py", "service": "kafka"} {"check_id": "kafka.scram-secret-batch-operations-partial-failure-isolation", "deployments": [], "key": "kafka/scram-secret-batch-operations-partial-failure-isolation", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_scram_secret_batch_operations_partial_failure_isolation.py", "service": "kafka"} {"check_id": "kafka.scram-secret-disassociation-immediate-auth-revocation", "deployments": [], "key": "kafka/scram-secret-disassociation-immediate-auth-revocation", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateClusterV2", "kafka:CreateConfiguration", "kafka:DeleteCluster", "kafka:DeleteConfiguration", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kafka:UpdateConnectivity", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_scram_secret_disassociation_immediate_auth_revocation.py", "service": "kafka"} {"check_id": "kafka.scram-secret-operations-require-scram-enabled-active-cluster", "deployments": [], "key": "kafka/scram-secret-operations-require-scram-enabled-active-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "kafka:BatchAssociateScramSecret", "kafka:BatchDisassociateScramSecret", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListScramSecrets", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_scram_secret_operations_require_scram_enabled_active_cluster.py", "service": "kafka"} {"check_id": "kafka.scram-secrets-list-reflects-association-order", "deployments": [], "key": "kafka/scram-secrets-list-reflects-association-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_scram_secrets_list_reflects_association_order.py", "service": "kafka"} {"check_id": "kafka.server-side-cluster-policy-cross-account-enforcement", "deployments": [], "key": "kafka/server-side-cluster-policy-cross-account-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DeleteClusterPolicy", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "kafka:GetClusterPolicy", "kafka:ListKafkaVersions", "kafka:PutClusterPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_server_side_cluster_policy_cross_account_enforcement.py", "service": "kafka"} {"check_id": "kafka.server-side-scram-secret-kms-encryption-required", "deployments": [], "key": "kafka/server-side-scram-secret-kms-encryption-required", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:BatchAssociateScramSecret", "kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListScramSecrets", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_server_side_scram_secret_kms_encryption_required.py", "service": "kafka"} {"check_id": "kafka.serverless-bootstrap-broker-endpoint-set", "deployments": [], "key": "kafka/serverless-bootstrap-broker-endpoint-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers"], "path": "behavioral/kafka/check_serverless_bootstrap_broker_endpoint_set.py", "service": "kafka"} {"check_id": "kafka.tag-resource-nonexistent-arn-not-found", "deployments": [], "key": "kafka/tag-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:ListTagsForResource", "kafka:TagResource", "kafka:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_tag_resource_nonexistent_arn_not_found.py", "service": "kafka"} {"check_id": "kafka.tag-resource-reserved-key-rejected", "deployments": [], "key": "kafka/tag-resource-reserved-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateReplicator", "kafka:DeleteReplicator", "kafka:DescribeReplicator", "kafka:ListTagsForResource", "kafka:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_tag_resource_reserved_key_rejected.py", "service": "kafka"} {"check_id": "kafka.tag-resource-round-trip", "deployments": [], "key": "kafka/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListTagsForResource", "kafka:TagResource", "kafka:UntagResource"], "path": "behavioral/kafka/check_tag_resource_round_trip.py", "service": "kafka"} {"check_id": "kafka.tag-unicode-and-empty-value-preserved", "deployments": [], "key": "kafka/tag-unicode-and-empty-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:ListTagsForResource", "kafka:TagResource", "kafka:UntagResource"], "path": "behavioral/kafka/check_tag_unicode_and_empty_value_preserved.py", "service": "kafka"} {"check_id": "kafka.tag-untag-nonexistent-resource-rejected", "deployments": [], "key": "kafka/tag-untag-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateReplicator", "kafka:DeleteReplicator", "kafka:DescribeReplicator", "kafka:ListTagsForResource", "kafka:TagResource", "kafka:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_tag_untag_nonexistent_resource_rejected.py", "service": "kafka"} {"check_id": "kafka.topic-create-describe-delete-lifecycle", "deployments": [], "key": "kafka/topic-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListTopics"], "path": "behavioral/kafka/check_topic_create_describe_delete_lifecycle.py", "service": "kafka"} {"check_id": "kafka.topic-create-duplicate-exists", "deployments": [], "key": "kafka/topic-create-duplicate-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:ListTopics"], "path": "behavioral/kafka/check_topic_create_duplicate_exists.py", "service": "kafka"} {"check_id": "kafka.topic-create-invalid-replication-factor-rejected", "deployments": [], "key": "kafka/topic-create-invalid-replication-factor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_topic_create_invalid_replication_factor_rejected.py", "service": "kafka"} {"check_id": "kafka.topic-delete-nonexistent-not-found", "deployments": [], "key": "kafka/topic-delete-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:ListTopics"], "path": "behavioral/kafka/check_topic_delete_nonexistent_not_found.py", "service": "kafka"} {"check_id": "kafka.topic-delete-nonexistent-unknown-topic-rejected", "deployments": [], "key": "kafka/topic-delete-nonexistent-unknown-topic-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_topic_delete_nonexistent_unknown_topic_rejected.py", "service": "kafka"} {"check_id": "kafka.topic-delete-unknown-topic", "deployments": [], "key": "kafka/topic-delete-unknown-topic", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListTopics"], "path": "behavioral/kafka/check_topic_delete_unknown_topic.py", "service": "kafka"} {"check_id": "kafka.topic-describe-partitions-matches-count", "deployments": [], "key": "kafka/topic-describe-partitions-matches-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:DescribeTopicPartitions"], "path": "behavioral/kafka/check_topic_describe_partitions_matches_count.py", "service": "kafka"} {"check_id": "kafka.topic-lifecycle-create-describe-update-delete", "deployments": [], "key": "kafka/topic-lifecycle-create-describe-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:DescribeTopicPartitions", "kafka:ListKafkaVersions", "kafka:ListTopics", "kafka:UpdateTopic"], "path": "behavioral/kafka/check_topic_lifecycle_create_describe_update_delete.py", "service": "kafka"} {"check_id": "kafka.topic-ops-cluster-resolution-errors", "deployments": [], "key": "kafka/topic-ops-cluster-resolution-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateTopic", "kafka:DescribeTopic", "kafka:ListTopics", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_topic_ops_cluster_resolution_errors.py", "service": "kafka"} {"check_id": "kafka.topic-partition-decrease-rejected", "deployments": [], "key": "kafka/topic-partition-decrease-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:UpdateTopic"], "path": "behavioral/kafka/check_topic_partition_decrease_rejected.py", "service": "kafka"} {"check_id": "kafka.topic-partition-message-ordering-preserved", "deployments": [], "key": "kafka/topic-partition-message-ordering-preserved", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "kafka:BatchAssociateScramSecret", "kafka:CreateClusterV2", "kafka:CreateConfiguration", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteConfiguration", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:GetBootstrapBrokers", "kafka:ListKafkaVersions", "kafka:UpdateConnectivity", "kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/kafka/check_topic_partition_message_ordering_preserved.py", "service": "kafka"} {"check_id": "kafka.topic-partition-order-preserved-after-partition-increase", "deployments": [], "key": "kafka/topic-partition-order-preserved-after-partition-increase", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:DescribeTopicPartitions", "kafka:ListKafkaVersions", "kafka:UpdateTopic"], "path": "behavioral/kafka/check_topic_partition_order_preserved_after_partition_increase.py", "service": "kafka"} {"check_id": "kafka.topic-replication-factor-exceeds-broker-count-rejected", "deployments": [], "key": "kafka/topic-replication-factor-exceeds-broker-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:ListTopics"], "path": "behavioral/kafka/check_topic_replication_factor_exceeds_broker_count_rejected.py", "service": "kafka"} {"check_id": "kafka.topic-replication-factor-exceeds-brokers-rejected", "deployments": [], "key": "kafka/topic-replication-factor-exceeds-brokers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:ListTopics"], "path": "behavioral/kafka/check_topic_replication_factor_exceeds_brokers_rejected.py", "service": "kafka"} {"check_id": "kafka.topic-retention-ms-numeric-precision-preserved", "deployments": [], "key": "kafka/topic-retention-ms-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeTopic", "kafka:DescribeTopicPartitions", "kafka:ListKafkaVersions"], "path": "behavioral/kafka/check_topic_retention_ms_numeric_precision_preserved.py", "service": "kafka"} {"check_id": "kafka.topic-update-controller-moved-error", "deployments": [], "key": "kafka/topic-update-controller-moved-error", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:ListNodes", "kafka:RebootBroker", "kafka:UpdateTopic"], "path": "behavioral/kafka/check_topic_update_controller_moved_error.py", "service": "kafka"} {"check_id": "kafka.update-broker-count-concurrent-version-conflict", "deployments": [], "key": "kafka/update-broker-count-concurrent-version-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperation", "kafka:DescribeClusterV2", "kafka:UpdateBrokerCount"], "path": "behavioral/kafka/check_update_broker_count_concurrent_version_conflict.py", "service": "kafka"} {"check_id": "kafka.update-broker-count-operation-lifecycle", "deployments": [], "key": "kafka/update-broker-count-operation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperation", "kafka:DescribeClusterV2", "kafka:UpdateBrokerCount"], "path": "behavioral/kafka/check_update_broker_count_operation_lifecycle.py", "service": "kafka"} {"check_id": "kafka.update-broker-storage-triggers-operation", "deployments": [], "key": "kafka/update-broker-storage-triggers-operation", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeClusterOperationV2", "kafka:ListClusterOperationsV2", "kafka:UpdateBrokerStorage", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_broker_storage_triggers_operation.py", "service": "kafka"} {"check_id": "kafka.update-broker-type-triggers-operation", "deployments": [], "key": "kafka/update-broker-type-triggers-operation", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeCluster", "kafka:ListClusterOperations", "kafka:UpdateBrokerType", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_broker_type_triggers_operation.py", "service": "kafka"} {"check_id": "kafka.update-channel-wrong-state-rejected", "deployments": [], "key": "kafka/update-channel-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kafka:CreateChannel", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteChannel", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeChannel", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/kafka/check_update_channel_wrong_state_rejected.py", "service": "kafka"} {"check_id": "kafka.update-cluster-configuration-triggers-operation", "deployments": [], "key": "kafka/update-cluster-configuration-triggers-operation", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateConfiguration", "kafka:DeleteCluster", "kafka:DeleteConfiguration", "kafka:DescribeCluster", "kafka:ListClusterOperationsV2", "kafka:UpdateClusterConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_cluster_configuration_triggers_operation.py", "service": "kafka"} {"check_id": "kafka.update-connectivity-server-enforced", "deployments": [], "key": "kafka/update-connectivity-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeCluster", "kafka:UpdateConnectivity", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_connectivity_server_enforced.py", "service": "kafka"} {"check_id": "kafka.update-kafka-version-triggers-operation", "deployments": [], "key": "kafka/update-kafka-version-triggers-operation", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeClusterOperation", "kafka:GetCompatibleKafkaVersions", "kafka:ListClusterOperations", "kafka:UpdateClusterKafkaVersion", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_kafka_version_triggers_operation.py", "service": "kafka"} {"check_id": "kafka.update-monitoring-server-enforced", "deployments": [], "key": "kafka/update-monitoring-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeClusterV2", "kafka:UpdateMonitoring", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_monitoring_server_enforced.py", "service": "kafka"} {"check_id": "kafka.update-rebalancing-server-enforced", "deployments": [], "key": "kafka/update-rebalancing-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListClusterOperationsV2", "kafka:UpdateRebalancing", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_rebalancing_server_enforced.py", "service": "kafka"} {"check_id": "kafka.update-replication-info-concurrent-conflicting-updates", "deployments": [], "key": "kafka/update-replication-info-concurrent-conflicting-updates", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kafka:CreateClusterV2", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "kafka:ListKafkaVersions", "kafka:UpdateReplicationInfo"], "path": "behavioral/kafka/check_update_replication_info_concurrent_conflicting_updates.py", "service": "kafka"} {"check_id": "kafka.update-replication-info-invalid-target-topics-rejected", "deployments": [], "key": "kafka/update-replication-info-invalid-target-topics-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kafka:CreateClusterV2", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "kafka:UpdateReplicationInfo", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_replication_info_invalid_target_topics_rejected.py", "service": "kafka"} {"check_id": "kafka.update-replication-info-invalid-topic-pattern-rejected", "deployments": [], "key": "kafka/update-replication-info-invalid-topic-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "kafka:CreateClusterV2", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeClusterV2", "kafka:DescribeReplicator", "kafka:UpdateReplicationInfo"], "path": "behavioral/kafka/check_update_replication_info_invalid_topic_pattern_rejected.py", "service": "kafka"} {"check_id": "kafka.update-replication-info-nonexistent-replicator-rejected", "deployments": [], "key": "kafka/update-replication-info-nonexistent-replicator-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeReplicator", "kafka:ListReplicators", "kafka:UpdateReplicationInfo", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_replication_info_nonexistent_replicator_rejected.py", "service": "kafka"} {"check_id": "kafka.update-replication-info-server-enforced-propagation", "deployments": [], "key": "kafka/update-replication-info-server-enforced-propagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kafka:CreateCluster", "kafka:CreateReplicator", "kafka:DeleteCluster", "kafka:DeleteReplicator", "kafka:DescribeCluster", "kafka:DescribeReplicator", "kafka:ListKafkaVersions", "kafka:UpdateReplicationInfo", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_replication_info_server_enforced_propagation.py", "service": "kafka"} {"check_id": "kafka.update-security-server-enforced", "deployments": [], "key": "kafka/update-security-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeCluster", "kafka:DescribeClusterOperation", "kafka:DescribeClusterV2", "kafka:ListKafkaVersions", "kafka:UpdateSecurity"], "path": "behavioral/kafka/check_update_security_server_enforced.py", "service": "kafka"} {"check_id": "kafka.update-storage-server-enforced", "deployments": [], "key": "kafka/update-storage-server-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DescribeCluster", "kafka:UpdateStorage", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_update_storage_server_enforced.py", "service": "kafka"} {"check_id": "kafka.update-topic-controller-moved-exception", "deployments": [], "key": "kafka/update-topic-controller-moved-exception", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DeleteTopic", "kafka:DescribeCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:ListNodes", "kafka:RebootBroker", "kafka:UpdateTopic"], "path": "behavioral/kafka/check_update_topic_controller_moved_exception.py", "service": "kafka"} {"check_id": "kafka.update-topic-controller-moved-exception-during-leader-election", "deployments": [], "key": "kafka/update-topic-controller-moved-exception-during-leader-election", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:CreateTopic", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:DescribeTopic", "kafka:ListKafkaVersions", "kafka:UpdateTopic"], "path": "behavioral/kafka/check_update_topic_controller_moved_exception_during_leader_election.py", "service": "kafka"} {"check_id": "kafka.vpc-connection-create-available-lifecycle", "deployments": [], "key": "kafka/vpc-connection-create-available-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateVpcConnection", "kafka:DeleteCluster", "kafka:DeleteVpcConnection", "kafka:DescribeCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeVpcConnection", "kafka:UpdateConnectivity"], "path": "behavioral/kafka/check_vpc_connection_create_available_lifecycle.py", "service": "kafka"} {"check_id": "kafka.vpc-connection-describe-404-after-delete", "deployments": [], "key": "kafka/vpc-connection-describe-404-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateClusterV2", "kafka:CreateVpcConnection", "kafka:DeleteCluster", "kafka:DeleteVpcConnection", "kafka:DescribeCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeVpcConnection", "kafka:ListKafkaVersions", "kafka:UpdateConnectivity"], "path": "behavioral/kafka/check_vpc_connection_describe_404_after_delete.py", "service": "kafka"} {"check_id": "kafka.vpc-connection-malformed-subnet-config-rejected", "deployments": [], "key": "kafka/vpc-connection-malformed-subnet-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateCluster", "kafka:CreateVpcConnection", "kafka:DeleteCluster", "kafka:DeleteVpcConnection", "kafka:DescribeCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeVpcConnection", "kafka:ListKafkaVersions", "kafka:ListVpcConnections", "kafka:UpdateConnectivity"], "path": "behavioral/kafka/check_vpc_connection_malformed_subnet_config_rejected.py", "service": "kafka"} {"check_id": "kafka.vpc-connection-malformed-target-cluster-rejected", "deployments": [], "key": "kafka/vpc-connection-malformed-target-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "kafka:CreateVpcConnection", "kafka:DeleteVpcConnection", "kafka:ListVpcConnections", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_vpc_connection_malformed_target_cluster_rejected.py", "service": "kafka"} {"check_id": "kafka.vpc-connection-reject-transitions-state", "deployments": [], "key": "kafka/vpc-connection-reject-transitions-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafka:CreateCluster", "kafka:CreateVpcConnection", "kafka:DeleteCluster", "kafka:DeleteVpcConnection", "kafka:DescribeCluster", "kafka:DescribeClusterOperationV2", "kafka:DescribeVpcConnection", "kafka:ListClientVpcConnections", "kafka:ListKafkaVersions", "kafka:RejectClientVpcConnection", "kafka:UpdateConnectivity"], "path": "behavioral/kafka/check_vpc_connection_reject_transitions_state.py", "service": "kafka"} {"check_id": "kafka.vpcconnection-read-paths-report-clean-miss", "deployments": [], "key": "kafka/vpcconnection-read-paths-report-clean-miss", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:DeleteVpcConnection", "kafka:DescribeVpcConnection", "kafka:ListVpcConnections", "sts:GetCallerIdentity"], "path": "behavioral/kafka/check_vpcconnection_read_paths_report_clean_miss.py", "service": "kafka"} {"check_id": "kafka.vpcconnection-requires-multi-vpc-enabled-cluster", "deployments": [], "key": "kafka/vpcconnection-requires-multi-vpc-enabled-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["kafka:CreateClusterV2", "kafka:CreateVpcConnection", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:ListClientVpcConnections"], "path": "behavioral/kafka/check_vpcconnection_requires_multi_vpc_enabled_cluster.py", "service": "kafka"} {"check_id": "kafka__logs__s3.msk-broker-logs-reach-cloudwatch-logs-and-s3-while-an-unwired-log-group-stays-empty", "deployments": [], "key": "kafka__logs__s3/msk-broker-logs-reach-cloudwatch-logs-and-s3-while-an-unwired-log-group-stays-empty", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "kafka:CreateCluster", "kafka:DeleteCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/kafka__logs__s3/check_msk_broker_logs_reach_cloudwatch_logs_and_s3_while_an_unwired_log_group_stays_empty.py", "service": "kafka__logs__s3"} {"check_id": "kafkaconnect.connector-create-lifecycle-reaches-failed-state", "deployments": [], "key": "kafkaconnect/connector-create-lifecycle-reaches-failed-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "kafkaconnect:CreateConnector", "kafkaconnect:CreateCustomPlugin", "kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteConnector", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:DescribeConnector", "kafkaconnect:DescribeCustomPlugin", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_connector_create_lifecycle_reaches_failed_state.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.create-custom-plugin-duplicate-name-rejected", "deployments": [], "key": "kafkaconnect/create-custom-plugin-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafkaconnect:CreateCustomPlugin", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DescribeCustomPlugin", "kafkaconnect:ListCustomPlugins", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_create_custom_plugin_duplicate_name_rejected.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.create-custom-plugin-malformed-s3-location-rejected", "deployments": [], "key": "kafkaconnect/create-custom-plugin-malformed-s3-location-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafkaconnect:CreateCustomPlugin", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DescribeCustomPlugin", "kafkaconnect:ListCustomPlugins", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_create_custom_plugin_malformed_s3_location_rejected.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.custom-plugin-delete-removes-resource", "deployments": [], "key": "kafkaconnect/custom-plugin-delete-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["kafkaconnect:CreateCustomPlugin", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DescribeCustomPlugin", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_custom_plugin_delete_removes_resource.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.custom-plugin-lifecycle-creating-to-active", "deployments": [], "key": "kafkaconnect/custom-plugin-lifecycle-creating-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafkaconnect:CreateCustomPlugin", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DescribeCustomPlugin", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_custom_plugin_lifecycle_creating_to_active.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.delete-custom-plugin-in-use-by-connector-rejected", "deployments": [], "key": "kafkaconnect/delete-custom-plugin-in-use-by-connector-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "kafkaconnect:CreateConnector", "kafkaconnect:CreateCustomPlugin", "kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteConnector", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:DescribeConnector", "kafkaconnect:DescribeCustomPlugin", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_delete_custom_plugin_in_use_by_connector_rejected.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.describe-custom-plugin-not-found-rejected", "deployments": [], "key": "kafkaconnect/describe-custom-plugin-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafkaconnect:CreateCustomPlugin", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DescribeCustomPlugin", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_describe_custom_plugin_not_found_rejected.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.kafka-connect-native-data-plane-vpc-only-skip", "deployments": [], "key": "kafkaconnect/kafka-connect-native-data-plane-vpc-only-skip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kafkaconnect:CreateConnector", "kafkaconnect:CreateCustomPlugin", "kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteConnector", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:DescribeConnector", "kafkaconnect:DescribeCustomPlugin", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/kafkaconnect/check_kafka_connect_native_data_plane_vpc_only_skip.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.list-connectors-malformed-next-token-rejected", "deployments": [], "key": "kafkaconnect/list-connectors-malformed-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kafkaconnect:ListConnectors"], "path": "behavioral/kafkaconnect/check_list_connectors_malformed_next_token_rejected.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.list-custom-plugins-name-prefix-filter", "deployments": [], "key": "kafkaconnect/list-custom-plugins-name-prefix-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafkaconnect:CreateCustomPlugin", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:ListCustomPlugins", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_list_custom_plugins_name_prefix_filter.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.list-tags-for-resource-reflects-creation-time-tags", "deployments": [], "key": "kafkaconnect/list-tags-for-resource-reflects-creation-time-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafkaconnect:CreateCustomPlugin", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_list_tags_for_resource_reflects_creation_time_tags.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.list-worker-configurations-pagination-no-duplicates", "deployments": [], "key": "kafkaconnect/list-worker-configurations-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:ListWorkerConfigurations"], "path": "behavioral/kafkaconnect/check_list_worker_configurations_pagination_no_duplicates.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.restart-connector-state-conflict-rejected", "deployments": [], "key": "kafkaconnect/restart-connector-state-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:CreateRole", "iam:DeleteRole", "kafkaconnect:CreateConnector", "kafkaconnect:CreateCustomPlugin", "kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteConnector", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:DescribeConnector", "kafkaconnect:DescribeCustomPlugin", "kafkaconnect:ListConnectorOperations", "kafkaconnect:RestartConnector", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_restart_connector_state_conflict_rejected.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.tag-resource-key-overwrite-on-reapply", "deployments": [], "key": "kafkaconnect/tag-resource-key-overwrite-on-reapply", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:ListTagsForResource", "kafkaconnect:TagResource"], "path": "behavioral/kafkaconnect/check_tag_resource_key_overwrite_on_reapply.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.tag-resource-roundtrip-list-and-untag", "deployments": [], "key": "kafkaconnect/tag-resource-roundtrip-list-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:ListTagsForResource", "kafkaconnect:TagResource", "kafkaconnect:UntagResource"], "path": "behavioral/kafkaconnect/check_tag_resource_roundtrip_list_and_untag.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.update-connector-stale-version-rejected", "deployments": [], "key": "kafkaconnect/update-connector-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "kafkaconnect:CreateConnector", "kafkaconnect:CreateCustomPlugin", "kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteConnector", "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:DescribeConnector", "kafkaconnect:DescribeCustomPlugin", "kafkaconnect:ListConnectorOperations", "kafkaconnect:UpdateConnector", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/kafkaconnect/check_update_connector_stale_version_rejected.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.worker-configuration-create-synchronous-active", "deployments": [], "key": "kafkaconnect/worker-configuration-create-synchronous-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:DescribeWorkerConfiguration"], "path": "behavioral/kafkaconnect/check_worker_configuration_create_synchronous_active.py", "service": "kafkaconnect"} {"check_id": "kafkaconnect.worker-configuration-delete-removes-resource", "deployments": [], "key": "kafkaconnect/worker-configuration-delete-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:DeleteWorkerConfiguration", "kafkaconnect:DescribeWorkerConfiguration", "kafkaconnect:TagResource"], "path": "behavioral/kafkaconnect/check_worker_configuration_delete_removes_resource.py", "service": "kafkaconnect"} {"check_id": "keyspaces.create-keyspace-duplicate-name-rejected", "deployments": [], "key": "keyspaces/create-keyspace-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:DeleteKeyspace", "keyspaces:GetKeyspace", "keyspaces:ListKeyspaces"], "path": "behavioral/keyspaces/check_create_keyspace_duplicate_name_rejected.py", "service": "keyspaces"} {"check_id": "keyspaces.create-table-invalid-column-type-rejected", "deployments": [], "key": "keyspaces/create-table-invalid-column-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:GetTable", "keyspaces:ListTables"], "path": "behavioral/keyspaces/check_create_table_invalid_column_type_rejected.py", "service": "keyspaces"} {"check_id": "keyspaces.create-table-with-clustering-and-static-columns", "deployments": [], "key": "keyspaces/create-table-with-clustering-and-static-columns", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_create_table_with_clustering_and_static_columns.py", "service": "keyspaces"} {"check_id": "keyspaces.delete-keyspace-cascades-and-rejects-redelete", "deployments": [], "key": "keyspaces/delete-keyspace-cascades-and-rejects-redelete", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_delete_keyspace_cascades_and_rejects_redelete.py", "service": "keyspaces"} {"check_id": "keyspaces.delete-type-referenced-by-column-rejected", "deployments": [], "key": "keyspaces/delete-type-referenced-by-column-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:CreateType", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:DeleteType", "keyspaces:GetTable", "keyspaces:GetType"], "path": "behavioral/keyspaces/check_delete_type_referenced_by_column_rejected.py", "service": "keyspaces"} {"check_id": "keyspaces.get-keyspace-not-found", "deployments": [], "key": "keyspaces/get-keyspace-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:DeleteKeyspace", "keyspaces:GetKeyspace"], "path": "behavioral/keyspaces/check_get_keyspace_not_found.py", "service": "keyspaces"} {"check_id": "keyspaces.get-table-not-found", "deployments": [], "key": "keyspaces/get-table-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_get_table_not_found.py", "service": "keyspaces"} {"check_id": "keyspaces.keyspace-ready-for-table-creation", "deployments": [], "key": "keyspaces/keyspace-ready-for-table-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspaces:ListKeyspaces"], "path": "behavioral/keyspaces/check_keyspace_ready_for_table_creation.py", "service": "keyspaces"} {"check_id": "keyspaces.list-tables-reflects-lifecycle", "deployments": [], "key": "keyspaces/list-tables-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspaces:ListTables"], "path": "behavioral/keyspaces/check_list_tables_reflects_lifecycle.py", "service": "keyspaces"} {"check_id": "keyspaces.native-cql-binary-protocol-lwt-paging-and-ttl", "deployments": [], "key": "keyspaces/native-cql-binary-protocol-lwt-paging-and-ttl", "labels": ["axis:happy-path", "dp:native", "plane:data", "timing:real-time"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListServiceSpecificCredentials", "iam:ListUserPolicies", "iam:PutUserPolicy", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_native_cql_binary_protocol_lwt_paging_and_ttl.py", "service": "keyspaces"} {"check_id": "keyspaces.native-cql-lwt-concurrency", "deployments": [], "key": "keyspaces/native-cql-lwt-concurrency", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListServiceSpecificCredentials", "iam:ListUserPolicies", "iam:PutUserPolicy", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_native_cql_lwt_concurrency.py", "service": "keyspaces"} {"check_id": "keyspaces.native-cql-round-trip", "deployments": [], "key": "keyspaces/native-cql-round-trip", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListServiceSpecificCredentials", "iam:ListUserPolicies", "iam:PutUserPolicy", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_native_cql_round_trip.py", "service": "keyspaces"} {"check_id": "keyspaces.native-cql-ttl-expiry", "deployments": [], "key": "keyspaces/native-cql-ttl-expiry", "labels": ["axis:happy-path", "dp:native", "plane:data", "timing:real-time"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListServiceSpecificCredentials", "iam:ListUserPolicies", "iam:PutUserPolicy", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_native_cql_ttl_expiry.py", "service": "keyspaces"} {"check_id": "keyspaces.native-cql-unsupported-consistency-level-rejected", "deployments": [], "key": "keyspaces/native-cql-unsupported-consistency-level-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListServiceSpecificCredentials", "iam:ListUserPolicies", "iam:PutUserPolicy", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetKeyspace", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_native_cql_unsupported_consistency_level_rejected.py", "service": "keyspaces"} {"check_id": "keyspaces.point-in-time-recovery-enabled-at-creation", "deployments": [], "key": "keyspaces/point-in-time-recovery-enabled-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_point_in_time_recovery_enabled_at_creation.py", "service": "keyspaces"} {"check_id": "keyspaces.table-autoscaling-settings-reflect-config", "deployments": [], "key": "keyspaces/table-autoscaling-settings-reflect-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspaces:GetTableAutoScalingSettings"], "path": "behavioral/keyspaces/check_table_autoscaling_settings_reflect_config.py", "service": "keyspaces"} {"check_id": "keyspaces.table-create-active-transition", "deployments": [], "key": "keyspaces/table-create-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable"], "path": "behavioral/keyspaces/check_table_create_active_transition.py", "service": "keyspaces"} {"check_id": "keyspaces.table-delete-lifecycle", "deployments": [], "key": "keyspaces/table-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspaces:ListTables"], "path": "behavioral/keyspaces/check_table_delete_lifecycle.py", "service": "keyspaces"} {"check_id": "keyspaces.tag-resource-quota-exceeded-rejected", "deployments": [], "key": "keyspaces/tag-resource-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:DeleteKeyspace", "keyspaces:ListTagsForResource", "keyspaces:TagResource"], "path": "behavioral/keyspaces/check_tag_resource_quota_exceeded_rejected.py", "service": "keyspaces"} {"check_id": "keyspaces.tag-untag-round-trip", "deployments": [], "key": "keyspaces/tag-untag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:DeleteKeyspace", "keyspaces:ListTagsForResource", "keyspaces:TagResource", "keyspaces:UntagResource"], "path": "behavioral/keyspaces/check_tag_untag_round_trip.py", "service": "keyspaces"} {"check_id": "keyspaces.type-create-active-transition", "deployments": [], "key": "keyspaces/type-create-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateType", "keyspaces:DeleteKeyspace", "keyspaces:DeleteType", "keyspaces:GetType"], "path": "behavioral/keyspaces/check_type_create_active_transition.py", "service": "keyspaces"} {"check_id": "keyspaces.update-table-add-column-transition", "deployments": [], "key": "keyspaces/update-table-add-column-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspaces:UpdateTable"], "path": "behavioral/keyspaces/check_update_table_add_column_transition.py", "service": "keyspaces"} {"check_id": "keyspaces.update-table-capacity-mode-transition", "deployments": [], "key": "keyspaces/update-table-capacity-mode-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspaces:UpdateTable"], "path": "behavioral/keyspaces/check_update_table_capacity_mode_transition.py", "service": "keyspaces"} {"check_id": "keyspacesstreams.cdc-batch-operation-decomposes-into-row-records", "deployments": [], "key": "keyspacesstreams/cdc-batch-operation-decomposes-into-row-records", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_cdc_batch_operation_decomposes_into_row_records.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.cdc-concurrent-inserts-preserve-sequence-ordering", "deployments": [], "key": "keyspacesstreams/cdc-concurrent-inserts-preserve-sequence-ordering", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_cdc_concurrent_inserts_preserve_sequence_ordering.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.cdc-keys-only-view-type-omits-images", "deployments": [], "key": "keyspacesstreams/cdc-keys-only-view-type-omits-images", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_cdc_keys_only_view_type_omits_images.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.cdc-native-protocol-insert-update-delete-round-trip", "deployments": [], "key": "keyspacesstreams/cdc-native-protocol-insert-update-delete-round-trip", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_cdc_native_protocol_insert_update_delete_round_trip.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-records-denied-by-iam-policy-rejected", "deployments": [], "key": "keyspacesstreams/get-records-denied-by-iam-policy-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_records_denied_by_iam_policy_rejected.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-records-malformed-iterator-rejected", "deployments": [], "key": "keyspacesstreams/get-records-malformed-iterator-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_records_malformed_iterator_rejected.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-records-max-results-out-of-range-rejected", "deployments": [], "key": "keyspacesstreams/get-records-max-results-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_records_max_results_out_of_range_rejected.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-records-pagination-via-next-shard-iterator", "deployments": [], "key": "keyspacesstreams/get-records-pagination-via-next-shard-iterator", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_records_pagination_via_next_shard_iterator.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-shard-iterator-missing-sequence-number-rejected", "deployments": [], "key": "keyspacesstreams/get-shard-iterator-missing-sequence-number-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_shard_iterator_missing_sequence_number_rejected.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-shard-iterator-sequence-number-boundary-semantics", "deployments": [], "key": "keyspacesstreams/get-shard-iterator-sequence-number-boundary-semantics", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_shard_iterator_sequence_number_boundary_semantics.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-shard-iterator-types-on-empty-stream", "deployments": [], "key": "keyspacesstreams/get-shard-iterator-types-on-empty-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetRecords", "keyspacesstreams:GetShardIterator", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_shard_iterator_types_on_empty_stream.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-stream-child-shards-filter-validation", "deployments": [], "key": "keyspacesstreams/get-stream-child-shards-filter-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_stream_child_shards_filter_validation.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-stream-nonexistent-arn-not-found", "deployments": [], "key": "keyspacesstreams/get-stream-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_stream_nonexistent_arn_not_found.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.get-stream-shard-structure-fields-and-pagination", "deployments": [], "key": "keyspacesstreams/get-stream-shard-structure-fields-and-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_get_stream_shard_structure_fields_and_pagination.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.list-streams-filtered-empty-for-table-without-cdc", "deployments": [], "key": "keyspacesstreams/list-streams-filtered-empty-for-table-without-cdc", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:ListStreams"], "path": "behavioral/keyspacesstreams/check_list_streams_filtered_empty_for_table_without_cdc.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.list-streams-pagination-across-multiple-streams", "deployments": [], "key": "keyspacesstreams/list-streams-pagination-across-multiple-streams", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:ListStreams"], "path": "behavioral/keyspacesstreams/check_list_streams_pagination_across_multiple_streams.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.list-streams-returns-created-stream", "deployments": [], "key": "keyspacesstreams/list-streams-returns-created-stream", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetStream", "keyspacesstreams:ListStreams"], "path": "behavioral/keyspacesstreams/check_list_streams_returns_created_stream.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.list-streams-unfiltered-includes-created-stream", "deployments": [], "key": "keyspacesstreams/list-streams-unfiltered-includes-created-stream", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:ListStreams"], "path": "behavioral/keyspacesstreams/check_list_streams_unfiltered_includes_created_stream.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.stream-disabled-after-cdc-disable", "deployments": [], "key": "keyspacesstreams/stream-disabled-after-cdc-disable", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspaces:UpdateTable", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_stream_disabled_after_cdc_disable.py", "service": "keyspacesstreams"} {"check_id": "keyspacesstreams.stream-enabled-after-cdc-create", "deployments": [], "key": "keyspacesstreams/stream-enabled-after-cdc-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["keyspaces:CreateKeyspace", "keyspaces:CreateTable", "keyspaces:DeleteKeyspace", "keyspaces:DeleteTable", "keyspaces:GetTable", "keyspacesstreams:GetStream"], "path": "behavioral/keyspacesstreams/check_stream_enabled_after_cdc_create.py", "service": "keyspacesstreams"} {"check_id": "kinesis-video-archived-media.concurrent-get-images-returns-consistent-results", "deployments": [], "key": "kinesis-video-archived-media/concurrent-get-images-returns-consistent-results", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetImages", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_concurrent_get_images_returns_consistent_results.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.data-retention-update-changes-error-class", "deployments": [], "key": "kinesis-video-archived-media/data-retention-update-changes-error-class", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetClip", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint", "kinesisvideo:UpdateDataRetention"], "path": "behavioral/kinesis-video-archived-media/check_data_retention_update_changes_error_class.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-clip-missing-codec-private-data-rejected", "deployments": [], "key": "kinesis-video-archived-media/get-clip-missing-codec-private-data-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:GetClip", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_clip_missing_codec_private_data_rejected.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-clip-no-data-retention-rejected", "deployments": [], "key": "kinesis-video-archived-media/get-clip-no-data-retention-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetClip", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint", "kinesisvideo:TagStream", "kinesisvideo:UpdateDataRetention"], "path": "behavioral/kinesis-video-archived-media/check_get_clip_no_data_retention_rejected.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-clip-reversed-timestamp-range-rejected", "deployments": [], "key": "kinesis-video-archived-media/get-clip-reversed-timestamp-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetClip", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_clip_reversed_timestamp_range_rejected.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-dash-streaming-session-url-live-mode-no-recent-fragments-not-found", "deployments": [], "key": "kinesis-video-archived-media/get-dash-streaming-session-url-live-mode-no-recent-fragments-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetDASHStreamingSessionURL", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_dash_streaming_session_url_live_mode_no_recent_fragments_not_found.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-hls-streaming-session-url-no-data-retention-rejected", "deployments": [], "key": "kinesis-video-archived-media/get-hls-streaming-session-url-no-data-retention-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetHLSStreamingSessionURL", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint", "kinesisvideo:UpdateDataRetention"], "path": "behavioral/kinesis-video-archived-media/check_get_hls_streaming_session_url_no_data_retention_rejected.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-hls-streaming-session-url-no-fragments-in-range-not-found", "deployments": [], "key": "kinesis-video-archived-media/get-hls-streaming-session-url-no-fragments-in-range-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetHLSStreamingSessionURL", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_hls_streaming_session_url_no_fragments_in_range_not_found.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-images-no-fragments-not-found", "deployments": [], "key": "kinesis-video-archived-media/get-images-no-fragments-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetImages", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_images_no_fragments_not_found.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-images-not-authorized-without-permission", "deployments": [], "key": "kinesis-video-archived-media/get-images-not-authorized-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "kinesis-video-archived-media:GetImages", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint", "sts:GetCallerIdentity"], "path": "behavioral/kinesis-video-archived-media/check_get_images_not_authorized_without_permission.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-images-reversed-timestamp-range-rejected", "deployments": [], "key": "kinesis-video-archived-media/get-images-reversed-timestamp-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetImages", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_images_reversed_timestamp_range_rejected.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-images-timestamp-window-exceeds-300-seconds-rejected", "deployments": [], "key": "kinesis-video-archived-media/get-images-timestamp-window-exceeds-300-seconds-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetImages", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_images_timestamp_window_exceeds_300_seconds_rejected.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-images-width-height-pixels-accepted-on-empty-stream", "deployments": [], "key": "kinesis-video-archived-media/get-images-width-height-pixels-accepted-on-empty-stream", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetImages", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_images_width_height_pixels_accepted_on_empty_stream.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.get-media-for-fragment-list-malformed-fragment-number-rejected", "deployments": [], "key": "kinesis-video-archived-media/get-media-for-fragment-list-malformed-fragment-number-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:GetMediaForFragmentList", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_get_media_for_fragment_list_malformed_fragment_number_rejected.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.list-fragments-and-get-clip-serve-ingested-video", "deployments": [], "key": "kinesis-video-archived-media/list-fragments-and-get-clip-serve-ingested-video", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:GetClip", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_list_fragments_and_get_clip_serve_ingested_video.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.list-fragments-empty-active-stream-returns-empty-list", "deployments": [], "key": "kinesis-video-archived-media/list-fragments-empty-active-stream-returns-empty-list", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_list_fragments_empty_active_stream_returns_empty_list.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.list-fragments-fragment-selector-type-both-succeed-on-empty-stream", "deployments": [], "key": "kinesis-video-archived-media/list-fragments-fragment-selector-type-both-succeed-on-empty-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_list_fragments_fragment_selector_type_both_succeed_on_empty_stream.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.list-fragments-stream-arn-and-name-addressing-equivalent", "deployments": [], "key": "kinesis-video-archived-media/list-fragments-stream-arn-and-name-addressing-equivalent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_list_fragments_stream_arn_and_name_addressing_equivalent.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.list-fragments-stream-identifier-mutual-exclusivity-rejected", "deployments": [], "key": "kinesis-video-archived-media/list-fragments-stream-identifier-mutual-exclusivity-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_list_fragments_stream_identifier_mutual_exclusivity_rejected.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-archived-media.list-fragments-stream-not-found", "deployments": [], "key": "kinesis-video-archived-media/list-fragments-stream-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-archived-media/check_list_fragments_stream_not_found.py", "service": "kinesis-video-archived-media"} {"check_id": "kinesis-video-media.get-media-after-fragment-number-non-numeric-rejected", "deployments": [], "key": "kinesis-video-media/get-media-after-fragment-number-non-numeric-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_after_fragment_number_non_numeric_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-after-ingested-stream-deletion-rejected", "deployments": [], "key": "kinesis-video-media/get-media-after-ingested-stream-deletion-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_after_ingested_stream_deletion_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-by-stream-arn-returns-ingested-fragment", "deployments": [], "key": "kinesis-video-media/get-media-by-stream-arn-returns-ingested-fragment", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_by_stream_arn_returns_ingested_fragment.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-by-stream-arn-succeeds", "deployments": [], "key": "kinesis-video-media/get-media-by-stream-arn-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_by_stream_arn_succeeds.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-continuation-token-invalid-rejected", "deployments": [], "key": "kinesis-video-media/get-media-continuation-token-invalid-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_continuation_token_invalid_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-continuation-token-selector-missing-token-rejected", "deployments": [], "key": "kinesis-video-media/get-media-continuation-token-selector-missing-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_continuation_token_selector_missing_token_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-deleted-stream-rejected", "deployments": [], "key": "kinesis-video-media/get-media-deleted-stream-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_deleted_stream_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-earliest-selector-returns-stream", "deployments": [], "key": "kinesis-video-media/get-media-earliest-selector-returns-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_earliest_selector_returns_stream.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-fragment-number-missing-after-rejected", "deployments": [], "key": "kinesis-video-media/get-media-fragment-number-missing-after-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_fragment_number_missing_after_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-malformed-stream-arn-rejected", "deployments": [], "key": "kinesis-video-media/get-media-malformed-stream-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_malformed_stream_arn_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-malformed-stream-name-rejected", "deployments": [], "key": "kinesis-video-media/get-media-malformed-stream-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_malformed_stream_name_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-nonexistent-stream-rejected", "deployments": [], "key": "kinesis-video-media/get-media-nonexistent-stream-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_nonexistent_stream_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-now-selector-succeeds", "deployments": [], "key": "kinesis-video-media/get-media-now-selector-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_now_selector_succeeds.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-producer-timestamp-missing-start-rejected", "deployments": [], "key": "kinesis-video-media/get-media-producer-timestamp-missing-start-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_producer_timestamp_missing_start_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-server-timestamp-missing-start-rejected", "deployments": [], "key": "kinesis-video-media/get-media-server-timestamp-missing-start-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesis-video-media/check_get_media_server_timestamp_missing_start_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-media.get-media-unauthorized-role-denied-rejected", "deployments": [], "key": "kinesis-video-media/get-media-unauthorized-role-denied-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kinesis-video-media/check_get_media_unauthorized_role_denied_rejected.py", "service": "kinesis-video-media"} {"check_id": "kinesis-video-signaling.deleted-channel-removed-from-describe", "deployments": [], "key": "kinesis-video-signaling/deleted-channel-removed-from-describe", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel"], "path": "behavioral/kinesis-video-signaling/check_deleted_channel_removed_from_describe.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-client-id-pattern-not-enforced", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-client-id-pattern-not-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_client_id_pattern_not_enforced.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-concurrent-clients-share-time-bucketed-credential", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-concurrent-clients-share-time-bucketed-credential", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_concurrent_clients_share_time_bucketed_credential.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-deleted-channel-not-found", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-deleted-channel-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_deleted_channel_not_found.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-denied-without-iam-permission", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-denied-without-iam-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint", "sts:AssumeRole"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_denied_without_iam_permission.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-ice-ttl-independent-of-channel-message-ttl", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-ice-ttl-independent-of-channel-message-ttl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_ice_ttl_independent_of_channel_message_ttl.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-malformed-channel-arn-rejected", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-malformed-channel-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_malformed_channel_arn_rejected.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-minimal-required-params-succeeds", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-minimal-required-params-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_minimal_required_params_succeeds.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-nonexistent-channel-not-found", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-nonexistent-channel-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_nonexistent_channel_not_found.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.get-ice-server-config-returns-valid-turn-credentials", "deployments": [], "key": "kinesis-video-signaling/get-ice-server-config-returns-valid-turn-credentials", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:GetIceServerConfig", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_get_ice_server_config_returns_valid_turn_credentials.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.kvs-signaling-wss-offer-answer-roundtrip", "deployments": [], "key": "kinesis-video-signaling/kvs-signaling-wss-offer-answer-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_kvs_signaling_wss_offer_answer_roundtrip.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.send-alexa-offer-to-master-malformed-arn-and-no-master-error-semantics", "deployments": [], "key": "kinesis-video-signaling/send-alexa-offer-to-master-malformed-arn-and-no-master-error-semantics", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:SendAlexaOfferToMaster", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_send_alexa_offer_to_master_malformed_arn_and_no_master_error_semantics.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.send-alexa-offer-to-master-master-connectivity-gates-delivery", "deployments": [], "key": "kinesis-video-signaling/send-alexa-offer-to-master-master-connectivity-gates-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["kinesis-video-signaling:SendAlexaOfferToMaster", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:GetSignalingChannelEndpoint"], "path": "behavioral/kinesis-video-signaling/check_send_alexa_offer_to_master_master_connectivity_gates_delivery.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.signaling-channel-appears-in-list", "deployments": [], "key": "kinesis-video-signaling/signaling-channel-appears-in-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:ListSignalingChannels"], "path": "behavioral/kinesis-video-signaling/check_signaling_channel_appears_in_list.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-signaling.signaling-channel-reaches-active-state", "deployments": [], "key": "kinesis-video-signaling/signaling-channel-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DescribeSignalingChannel"], "path": "behavioral/kinesis-video-signaling/check_signaling_channel_reaches_active_state.py", "service": "kinesis-video-signaling"} {"check_id": "kinesis-video-webrtc-storage.delete-signaling-channel-while-linked-rejected", "deployments": [], "key": "kinesis-video-webrtc-storage/delete-signaling-channel-while-linked-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_delete_signaling_channel_while_linked_rejected.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.describe-mapped-resource-configuration-reflects-link", "deployments": [], "key": "kinesis-video-webrtc-storage/describe-mapped-resource-configuration-reflects-link", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_describe_mapped_resource_configuration_reflects_link.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.join-storage-session-access-denied-without-permission", "deployments": [], "key": "kinesis-video-webrtc-storage/join-storage-session-access-denied-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis-video-webrtc-storage:JoinStorageSession", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kinesis-video-webrtc-storage/check_join_storage_session_access_denied_without_permission.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.join-storage-session-as-viewer-denied-for-wrong-channel-arn-scope", "deployments": [], "key": "kinesis-video-webrtc-storage/join-storage-session-as-viewer-denied-for-wrong-channel-arn-scope", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis-video-webrtc-storage:JoinStorageSessionAsViewer", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kinesis-video-webrtc-storage/check_join_storage_session_as_viewer_denied_for_wrong_channel_arn_scope.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.join-storage-session-as-viewer-requires-media-storage-enabled-rejected", "deployments": [], "key": "kinesis-video-webrtc-storage/join-storage-session-as-viewer-requires-media-storage-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSessionAsViewer", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_join_storage_session_as_viewer_requires_media_storage_enabled_rejected.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.join-storage-session-concurrent-master-calls-all-succeed", "deployments": [], "key": "kinesis-video-webrtc-storage/join-storage-session-concurrent-master-calls-all-succeed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSession", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_join_storage_session_concurrent_master_calls_all_succeed.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.join-storage-session-malformed-channel-arn-rejected", "deployments": [], "key": "kinesis-video-webrtc-storage/join-storage-session-malformed-channel-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSession", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_join_storage_session_malformed_channel_arn_rejected.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.join-storage-session-repeated-calls-not-deduplicated", "deployments": [], "key": "kinesis-video-webrtc-storage/join-storage-session-repeated-calls-not-deduplicated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSession", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_join_storage_session_repeated_calls_not_deduplicated.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.join-storage-session-requires-media-storage-enabled-rejected", "deployments": [], "key": "kinesis-video-webrtc-storage/join-storage-session-requires-media-storage-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSession", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_join_storage_session_requires_media_storage_enabled_rejected.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.media-storage-configuration-enable-disable-state-transition", "deployments": [], "key": "kinesis-video-webrtc-storage/media-storage-configuration-enable-disable-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_media_storage_configuration_enable_disable_state_transition.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.update-media-storage-configuration-disable-then-reenable", "deployments": [], "key": "kinesis-video-webrtc-storage/update-media-storage-configuration-disable-then-reenable", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_update_media_storage_configuration_disable_then_reenable.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.update-media-storage-configuration-stream-already-mapped-rejected", "deployments": [], "key": "kinesis-video-webrtc-storage/update-media-storage-configuration-stream-already-mapped-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_update_media_storage_configuration_stream_already_mapped_rejected.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.update-media-storage-configuration-zero-retention-rejected", "deployments": [], "key": "kinesis-video-webrtc-storage/update-media-storage-configuration-zero-retention-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_update_media_storage_configuration_zero_retention_rejected.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.viewer-join-before-master-then-master-join-succeeds", "deployments": [], "key": "kinesis-video-webrtc-storage/viewer-join-before-master-then-master-join-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSession", "kinesis-video-webrtc-storage:JoinStorageSessionAsViewer", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_viewer_join_before_master_then_master_join_succeeds.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.viewer-rejoin-same-client-id-does-not-consume-new-slot", "deployments": [], "key": "kinesis-video-webrtc-storage/viewer-rejoin-same-client-id-does-not-consume-new-slot", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSessionAsViewer", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_viewer_rejoin_same_client_id_does_not_consume_new_slot.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.viewer-slot-limit-enforced-concurrent", "deployments": [], "key": "kinesis-video-webrtc-storage/viewer-slot-limit-enforced-concurrent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSessionAsViewer", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_viewer_slot_limit_enforced_concurrent.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.viewer-slot-limit-enforced-sequential", "deployments": [], "key": "kinesis-video-webrtc-storage/viewer-slot-limit-enforced-sequential", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSessionAsViewer", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_viewer_slot_limit_enforced_sequential.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.viewer-slot-limit-independent-per-channel", "deployments": [], "key": "kinesis-video-webrtc-storage/viewer-slot-limit-independent-per-channel", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSessionAsViewer", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_viewer_slot_limit_independent_per_channel.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis-video-webrtc-storage.webrtc-signaling-sdp-offer-round-trip", "deployments": [], "key": "kinesis-video-webrtc-storage/webrtc-signaling-sdp-offer-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis-video-webrtc-storage:JoinStorageSession", "kinesisvideo:CreateSignalingChannel", "kinesisvideo:CreateStream", "kinesisvideo:DeleteSignalingChannel", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeSignalingChannel", "kinesisvideo:DescribeStream", "kinesisvideo:UpdateMediaStorageConfiguration"], "path": "behavioral/kinesis-video-webrtc-storage/check_webrtc_signaling_sdp_offer_round_trip.py", "service": "kinesis-video-webrtc-storage"} {"check_id": "kinesis.add-tags-to-stream-reserved-aws-prefix-rejected", "deployments": [], "key": "kinesis/add-tags-to-stream-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForStream"], "path": "behavioral/kinesis/check_add_tags_to_stream_reserved_aws_prefix_rejected.py", "service": "kinesis"} {"check_id": "kinesis.at-and-after-sequence-number-iterator-boundary", "deployments": [], "key": "kinesis/at-and-after-sequence-number-iterator-boundary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_at_and_after_sequence_number_iterator_boundary.py", "service": "kinesis"} {"check_id": "kinesis.at-sequence-number-from-foreign-shard-rejected", "deployments": [], "key": "kinesis/at-sequence-number-from-foreign-shard-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_at_sequence_number_from_foreign_shard_rejected.py", "service": "kinesis"} {"check_id": "kinesis.at-timestamp-iterator-clamps-to-earliest-record", "deployments": [], "key": "kinesis/at-timestamp-iterator-clamps-to-earliest-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_at_timestamp_iterator_clamps_to_earliest_record.py", "service": "kinesis"} {"check_id": "kinesis.auto-accepts-missing-partition-key-user-mode-rejects-it", "deployments": [], "key": "kinesis/auto-accepts-missing-partition-key-user-mode-rejects-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutRecords", "kinesis:UpdateStreamRecordDistributionStrategy"], "path": "behavioral/kinesis/check_auto_accepts_missing_partition_key_user_mode_rejects_it.py", "service": "kinesis"} {"check_id": "kinesis.channel-lifecycle-create-active-delete", "deployments": [], "key": "kinesis/channel-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_channel_lifecycle_create_active_delete.py", "service": "kinesis"} {"check_id": "kinesis.closed-parent-shard-drains-to-null-next-iterator", "deployments": [], "key": "kinesis/closed-parent-shard-drains-to-null-next-iterator", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_closed_parent_shard_drains_to_null_next_iterator.py", "service": "kinesis"} {"check_id": "kinesis.conc-limits-and-fanout-shard-record-rate-quota-throttles-tiny-records-rejected", "deployments": [], "key": "kinesis/conc-limits-and-fanout-shard-record-rate-quota-throttles-tiny-records-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_conc_limits_and_fanout_shard_record_rate_quota_throttles_tiny_records_rejected.py", "service": "kinesis"} {"check_id": "kinesis.concurrent-channel-update-serializes-cleanly", "deployments": [], "key": "kinesis/concurrent-channel-update-serializes-cleanly", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_concurrent_channel_update_serializes_cleanly.py", "service": "kinesis"} {"check_id": "kinesis.concurrent-update-channel-lost-update-detected", "deployments": [], "key": "kinesis/concurrent-update-channel-lost-update-detected", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:UpdateChannel", "logs:CreateLogGroup", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_concurrent_update_channel_lost_update_detected.py", "service": "kinesis"} {"check_id": "kinesis.concurrent-writers-to-one-shard-lose-no-records", "deployments": [], "key": "kinesis/concurrent-writers-to-one-shard-lose-no-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_concurrent_writers_to_one_shard_lose_no_records.py", "service": "kinesis"} {"check_id": "kinesis.create-channel-duplicate-name-blocked", "deployments": [], "key": "kinesis/create-channel-duplicate-name-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_create_channel_duplicate_name_blocked.py", "service": "kinesis"} {"check_id": "kinesis.create-channel-duplicate-name-rejected", "deployments": [], "key": "kinesis/create-channel-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_create_channel_duplicate_name_rejected.py", "service": "kinesis"} {"check_id": "kinesis.create-channel-invalid-kms-key-denied", "deployments": [], "key": "kinesis/create-channel-invalid-kms-key-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_create_channel_invalid_kms_key_denied.py", "service": "kinesis"} {"check_id": "kinesis.create-channel-invalid-name-fails", "deployments": [], "key": "kinesis/create-channel-invalid-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_create_channel_invalid_name_fails.py", "service": "kinesis"} {"check_id": "kinesis.create-channel-kms-access-denied", "deployments": [], "key": "kinesis/create-channel-kms-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_create_channel_kms_access_denied.py", "service": "kinesis"} {"check_id": "kinesis.create-channel-lifecycle", "deployments": [], "key": "kinesis/create-channel-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "kinesis:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_create_channel_lifecycle.py", "service": "kinesis"} {"check_id": "kinesis.create-channel-then-describe-shows-active", "deployments": [], "key": "kinesis/create-channel-then-describe-shows-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_create_channel_then_describe_shows_active.py", "service": "kinesis"} {"check_id": "kinesis.create-channel-without-kms-permission-must-be-denied", "deployments": [], "key": "kinesis/create-channel-without-kms-permission-must-be-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_create_channel_without_kms_permission_must_be_denied.py", "service": "kinesis"} {"check_id": "kinesis.create-duplicate-stream-fails", "deployments": [], "key": "kinesis/create-duplicate-stream-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards"], "path": "behavioral/kinesis/check_create_duplicate_stream_fails.py", "service": "kinesis"} {"check_id": "kinesis.create-on-demand-stream-with-shard-count-must-fail", "deployments": [], "key": "kinesis/create-on-demand-stream-with-shard-count-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/kinesis/check_create_on_demand_stream_with_shard_count_must_fail.py", "service": "kinesis"} {"check_id": "kinesis.create-stream-negative-warm-throughput-rejected", "deployments": [], "key": "kinesis/create-stream-negative-warm-throughput-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/kinesis/check_create_stream_negative_warm_throughput_rejected.py", "service": "kinesis"} {"check_id": "kinesis.create-stream-transitions-to-active", "deployments": [], "key": "kinesis/create-stream-transitions-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards"], "path": "behavioral/kinesis/check_create_stream_transitions_to_active.py", "service": "kinesis"} {"check_id": "kinesis.decrease-retention-below-minimum-fails", "deployments": [], "key": "kinesis/decrease-retention-below-minimum-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DecreaseStreamRetentionPeriod", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:IncreaseStreamRetentionPeriod", "kinesis:ListShards"], "path": "behavioral/kinesis/check_decrease_retention_below_minimum_fails.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-efo-subscription-on-split-parent-ends-with-child-shards", "deployments": [], "key": "kinesis/deep-kinesis-resharding-efo-subscription-on-split-parent-ends-with-child-shards", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SplitShard", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_efo_subscription_on_split_parent_ends_with_child_shards.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-list-shards-timestamp-filters-resolve-split-lineage", "deployments": [], "key": "kinesis/deep-kinesis-resharding-list-shards-timestamp-filters-resolve-split-lineage", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_list_shards_timestamp_filters_resolve_split_lineage.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-merge-with-closed-parent-rejected", "deployments": [], "key": "kinesis/deep-kinesis-resharding-merge-with-closed-parent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:MergeShards", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_merge_with_closed_parent_rejected.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-per-key-order-survives-merge-via-lineage", "deployments": [], "key": "kinesis/deep-kinesis-resharding-per-key-order-survives-merge-via-lineage", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:MergeShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_per_key_order_survives_merge_via_lineage.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-split-children-route-partition-keys-to-md5-owner", "deployments": [], "key": "kinesis/deep-kinesis-resharding-split-children-route-partition-keys-to-md5-owner", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_split_children_route_partition_keys_to_md5_owner.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-split-of-closed-parent-rejected", "deployments": [], "key": "kinesis/deep-kinesis-resharding-split-of-closed-parent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_split_of_closed_parent_rejected.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-update-shard-count-below-half-rejected", "deployments": [], "key": "kinesis/deep-kinesis-resharding-update-shard-count-below-half-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:UpdateShardCount"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_update_shard_count_below_half_rejected.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-update-shard-count-beyond-double-rejected", "deployments": [], "key": "kinesis/deep-kinesis-resharding-update-shard-count-beyond-double-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:UpdateShardCount"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_update_shard_count_beyond_double_rejected.py", "service": "kinesis"} {"check_id": "kinesis.deep-kinesis-resharding-update-shard-count-double-then-halve-retiles-keyspace", "deployments": [], "key": "kinesis/deep-kinesis-resharding-update-shard-count-double-then-halve-retiles-keyspace", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:UpdateShardCount"], "path": "behavioral/kinesis/check_deep_kinesis_resharding_update_shard_count_double_then_halve_retiles_keyspace.py", "service": "kinesis"} {"check_id": "kinesis.delete-channel-in-use-rejected", "deployments": [], "key": "kinesis/delete-channel-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_delete_channel_in_use_rejected.py", "service": "kinesis"} {"check_id": "kinesis.delete-channel-nonexistent-fails", "deployments": [], "key": "kinesis/delete-channel-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_delete_channel_nonexistent_fails.py", "service": "kinesis"} {"check_id": "kinesis.delete-channel-then-describe-fails", "deployments": [], "key": "kinesis/delete-channel-then-describe-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_delete_channel_then_describe_fails.py", "service": "kinesis"} {"check_id": "kinesis.delete-channel-with-dependents-blocked", "deployments": [], "key": "kinesis/delete-channel-with-dependents-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_delete_channel_with_dependents_blocked.py", "service": "kinesis"} {"check_id": "kinesis.delete-nonexistent-stream-fails", "deployments": [], "key": "kinesis/delete-nonexistent-stream-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/kinesis/check_delete_nonexistent_stream_fails.py", "service": "kinesis"} {"check_id": "kinesis.delete-resource-policy-then-get-fails", "deployments": [], "key": "kinesis/delete-resource-policy-then-get-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_delete_resource_policy_then_get_fails.py", "service": "kinesis"} {"check_id": "kinesis.delete-stream-removes-it", "deployments": [], "key": "kinesis/delete-stream-removes-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:ListStreams", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_delete_stream_removes_it.py", "service": "kinesis"} {"check_id": "kinesis.delete-stream-with-active-consumer-blocked", "deployments": [], "key": "kinesis/delete-stream-with-active-consumer-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListStreamConsumers", "kinesis:ListStreams", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_delete_stream_with_active_consumer_blocked.py", "service": "kinesis"} {"check_id": "kinesis.delete-stream-with-active-consumer-requires-enforce-flag", "deployments": [], "key": "kinesis/delete-stream-with-active-consumer-requires-enforce-flag", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_delete_stream_with_active_consumer_requires_enforce_flag.py", "service": "kinesis"} {"check_id": "kinesis.deleted-stream-name-recreates-an-empty-stream", "deployments": [], "key": "kinesis/deleted-stream-name-recreates-an-empty-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:ListStreams", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_deleted_stream_name_recreates_an_empty_stream.py", "service": "kinesis"} {"check_id": "kinesis.deploy-cfn-kinesis-stream-put-get-records", "deployments": [], "key": "kinesis/deploy-cfn-kinesis-stream-put-get-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_deploy_cfn_kinesis_stream_put_get_records.py", "service": "kinesis"} {"check_id": "kinesis.deploy-cfn-stream-encryption-enforced", "deployments": [], "key": "kinesis/deploy-cfn-stream-encryption-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:PutRecord", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kinesis/check_deploy_cfn_stream_encryption_enforced.py", "service": "kinesis"} {"check_id": "kinesis.deploy-cfn-stream-put-get-records-round-trip", "deployments": [], "key": "kinesis/deploy-cfn-stream-put-get-records-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_deploy_cfn_stream_put_get_records_round_trip.py", "service": "kinesis"} {"check_id": "kinesis.deploy-cfn-stream-tags-applied", "deployments": [], "key": "kinesis/deploy-cfn-stream-tags-applied", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesis:ListTagsForResource"], "path": "behavioral/kinesis/check_deploy_cfn_stream_tags_applied.py", "service": "kinesis"} {"check_id": "kinesis.deploy-kinesis-stream-cfn-behavioral-put-get", "deployments": [], "key": "kinesis/deploy-kinesis-stream-cfn-behavioral-put-get", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_deploy_kinesis_stream_cfn_behavioral_put_get.py", "service": "kinesis"} {"check_id": "kinesis.describe-channel-nonexistent-fails", "deployments": [], "key": "kinesis/describe-channel-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_describe_channel_nonexistent_fails.py", "service": "kinesis"} {"check_id": "kinesis.describe-limits-reflects-account-shard-limit", "deployments": [], "key": "kinesis/describe-limits-reflects-account-shard-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeLimits", "kinesis:DescribeStreamSummary"], "path": "behavioral/kinesis/check_describe_limits_reflects_account_shard_limit.py", "service": "kinesis"} {"check_id": "kinesis.describe-limits-reflects-account-shard-quota", "deployments": [], "key": "kinesis/describe-limits-reflects-account-shard-quota", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeLimits", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_describe_limits_reflects_account_shard_quota.py", "service": "kinesis"} {"check_id": "kinesis.describe-limits-reflects-actual-shard-usage", "deployments": [], "key": "kinesis/describe-limits-reflects-actual-shard-usage", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeLimits", "kinesis:DescribeStreamSummary"], "path": "behavioral/kinesis/check_describe_limits_reflects_actual_shard_usage.py", "service": "kinesis"} {"check_id": "kinesis.describe-nonexistent-stream-fails", "deployments": [], "key": "kinesis/describe-nonexistent-stream-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary"], "path": "behavioral/kinesis/check_describe_nonexistent_stream_fails.py", "service": "kinesis"} {"check_id": "kinesis.describe-stream-consumer-nonexistent-fails", "deployments": [], "key": "kinesis/describe-stream-consumer-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_describe_stream_consumer_nonexistent_fails.py", "service": "kinesis"} {"check_id": "kinesis.describe-stream-pagination-exclusive-start-shard-id-and-has-more-shards", "deployments": [], "key": "kinesis/describe-stream-pagination-exclusive-start-shard-id-and-has-more-shards", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards"], "path": "behavioral/kinesis/check_describe_stream_pagination_exclusive_start_shard_id_and_has_more_shards.py", "service": "kinesis"} {"check_id": "kinesis.disable-enhanced-monitoring-invalid-metric-fails", "deployments": [], "key": "kinesis/disable-enhanced-monitoring-invalid-metric-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:DisableEnhancedMonitoring", "kinesis:EnableEnhancedMonitoring", "kinesis:ListShards"], "path": "behavioral/kinesis/check_disable_enhanced_monitoring_invalid_metric_fails.py", "service": "kinesis"} {"check_id": "kinesis.disabled-cmk-blocks-the-stream-data-plane-until-re-enabled", "deployments": [], "key": "kinesis/disabled-cmk-blocks-the-stream-data-plane-until-re-enabled", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:StartStreamEncryption", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kinesis/check_disabled_cmk_blocks_the_stream_data_plane_until_re_enabled.py", "service": "kinesis"} {"check_id": "kinesis.dry-run-writes-and-reads-refuse-without-mutating-the-shard", "deployments": [], "key": "kinesis/dry-run-writes-and-reads-refuse-without-mutating-the-shard", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_dry_run_writes_and_reads_refuse_without_mutating_the_shard.py", "service": "kinesis"} {"check_id": "kinesis.e2e-enhanced-fanout-consumer-lifecycle", "deployments": [], "key": "kinesis/e2e-enhanced-fanout-consumer-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_e2e_enhanced_fanout_consumer_lifecycle.py", "service": "kinesis"} {"check_id": "kinesis.e2e-stream-consumer-fanout-lifecycle", "deployments": [], "key": "kinesis/e2e-stream-consumer-fanout-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecords", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard", "kinesis:TagResource"], "path": "behavioral/kinesis/check_e2e_stream_consumer_fanout_lifecycle.py", "service": "kinesis"} {"check_id": "kinesis.e2e-stream-consumer-fanout-subscribe-flow", "deployments": [], "key": "kinesis/e2e-stream-consumer-fanout-subscribe-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecords", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_e2e_stream_consumer_fanout_subscribe_flow.py", "service": "kinesis"} {"check_id": "kinesis.e2e-stream-produce-scale-consume-teardown", "deployments": [], "key": "kinesis/e2e-stream-produce-scale-consume-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_e2e_stream_produce_scale_consume_teardown.py", "service": "kinesis"} {"check_id": "kinesis.enable-enhanced-monitoring-success", "deployments": [], "key": "kinesis/enable-enhanced-monitoring-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:EnableEnhancedMonitoring", "kinesis:ListShards"], "path": "behavioral/kinesis/check_enable_enhanced_monitoring_success.py", "service": "kinesis"} {"check_id": "kinesis.enhanced-shard-level-metrics-land-in-cloudwatch-with-shard-dimension", "deployments": [], "key": "kinesis/enhanced-shard-level-metrics-land-in-cloudwatch-with-shard-dimension", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:EnableEnhancedMonitoring", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_enhanced_shard_level_metrics_land_in_cloudwatch_with_shard_dimension.py", "service": "kinesis"} {"check_id": "kinesis.exceeding-shard-limit-blocked-by-server-side-enforcement", "deployments": [], "key": "kinesis/exceeding-shard-limit-blocked-by-server-side-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeLimits", "kinesis:DescribeStreamSummary"], "path": "behavioral/kinesis/check_exceeding_shard_limit_blocked_by_server_side_enforcement.py", "service": "kinesis"} {"check_id": "kinesis.expired-shard-iterator-rejected-after-retention-window", "deployments": [], "key": "kinesis/expired-shard-iterator-rejected-after-retention-window", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_expired_shard_iterator_rejected_after_retention_window.py", "service": "kinesis"} {"check_id": "kinesis.explicit-hash-key-partitioning-preserves-order", "deployments": [], "key": "kinesis/explicit-hash-key-partitioning-preserves-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_explicit_hash_key_partitioning_preserves_order.py", "service": "kinesis"} {"check_id": "kinesis.explicit-hash-key-routes-record-to-chosen-shard", "deployments": [], "key": "kinesis/explicit-hash-key-routes-record-to-chosen-shard", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_explicit_hash_key_routes_record_to_chosen_shard.py", "service": "kinesis"} {"check_id": "kinesis.get-records-exceeding-the-per-shard-rate-throttles-then-recovers", "deployments": [], "key": "kinesis/get-records-exceeding-the-per-shard-rate-throttles-then-recovers", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_get_records_exceeding_the_per_shard_rate_throttles_then_recovers.py", "service": "kinesis"} {"check_id": "kinesis.get-records-invalid-iterator-fails", "deployments": [], "key": "kinesis/get-records-invalid-iterator-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards"], "path": "behavioral/kinesis/check_get_records_invalid_iterator_fails.py", "service": "kinesis"} {"check_id": "kinesis.get-records-limit-slices-shard-without-gaps-or-repeats", "deployments": [], "key": "kinesis/get-records-limit-slices-shard-without-gaps-or-repeats", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_get_records_limit_slices_shard_without_gaps_or_repeats.py", "service": "kinesis"} {"check_id": "kinesis.get-records-millis-behind-latest-reaches-zero", "deployments": [], "key": "kinesis/get-records-millis-behind-latest-reaches-zero", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_get_records_millis_behind_latest_reaches_zero.py", "service": "kinesis"} {"check_id": "kinesis.get-records-preserves-put-order-within-shard", "deployments": [], "key": "kinesis/get-records-preserves-put-order-within-shard", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_get_records_preserves_put_order_within_shard.py", "service": "kinesis"} {"check_id": "kinesis.get-resource-policy-without-policy-fails", "deployments": [], "key": "kinesis/get-resource-policy-without-policy-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_get_resource_policy_without_policy_fails.py", "service": "kinesis"} {"check_id": "kinesis.get-shard-iterator-latest-skips-prior-records", "deployments": [], "key": "kinesis/get-shard-iterator-latest-skips-prior-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_get_shard_iterator_latest_skips_prior_records.py", "service": "kinesis"} {"check_id": "kinesis.get-shard-iterator-nonexistent-stream-fails", "deployments": [], "key": "kinesis/get-shard-iterator-nonexistent-stream-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:ListShards"], "path": "behavioral/kinesis/check_get_shard_iterator_nonexistent_stream_fails.py", "service": "kinesis"} {"check_id": "kinesis.get-shard-iterator-ttl-expires-after-inactivity", "deployments": [], "key": "kinesis/get-shard-iterator-ttl-expires-after-inactivity", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_get_shard_iterator_ttl_expires_after_inactivity.py", "service": "kinesis"} {"check_id": "kinesis.hot-key-skew-across-split-shard-with-in-flight-traffic", "deployments": [], "key": "kinesis/hot-key-skew-across-split-shard-with-in-flight-traffic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_hot_key_skew_across_split_shard_with_in_flight_traffic.py", "service": "kinesis"} {"check_id": "kinesis.increase-retention-below-current-fails", "deployments": [], "key": "kinesis/increase-retention-below-current-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:IncreaseStreamRetentionPeriod", "kinesis:ListShards"], "path": "behavioral/kinesis/check_increase_retention_below_current_fails.py", "service": "kinesis"} {"check_id": "kinesis.increase-retention-period-beyond-max-rejected", "deployments": [], "key": "kinesis/increase-retention-period-beyond-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:IncreaseStreamRetentionPeriod"], "path": "behavioral/kinesis/check_increase_retention_period_beyond_max_rejected.py", "service": "kinesis"} {"check_id": "kinesis.increase-retention-period-success", "deployments": [], "key": "kinesis/increase-retention-period-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:IncreaseStreamRetentionPeriod", "kinesis:ListShards"], "path": "behavioral/kinesis/check_increase_retention_period_success.py", "service": "kinesis"} {"check_id": "kinesis.increase-then-decrease-retention-period", "deployments": [], "key": "kinesis/increase-then-decrease-retention-period", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DecreaseStreamRetentionPeriod", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:IncreaseStreamRetentionPeriod", "kinesis:ListShards"], "path": "behavioral/kinesis/check_increase_then_decrease_retention_period.py", "service": "kinesis"} {"check_id": "kinesis.kinpartial-oversized-entry-rejects-whole-batch-and-stores-nothing", "deployments": [], "key": "kinesis/kinpartial-oversized-entry-rejects-whole-batch-and-stores-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_kinpartial_oversized_entry_rejects_whole_batch_and_stores_nothing.py", "service": "kinesis"} {"check_id": "kinesis.kinpartial-resend-failed-subset-appears-exactly-once", "deployments": [], "key": "kinesis/kinpartial-resend-failed-subset-appears-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_kinpartial_resend_failed_subset_appears_exactly_once.py", "service": "kinesis"} {"check_id": "kinesis.kinpartial-resend-preserves-per-partition-key-ack-order", "deployments": [], "key": "kinesis/kinpartial-resend-preserves-per-partition-key-ack-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_kinpartial_resend_preserves_per_partition_key_ack_order.py", "service": "kinesis"} {"check_id": "kinesis.kinpartial-throttled-entries-rejected-and-absent-past-checkpoint", "deployments": [], "key": "kinesis/kinpartial-throttled-entries-rejected-and-absent-past-checkpoint", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_kinpartial_throttled_entries_rejected_and_absent_past_checkpoint.py", "service": "kinesis"} {"check_id": "kinesis.kinpartial-whole-batch-resend-stores-acknowledged-records-twice", "deployments": [], "key": "kinesis/kinpartial-whole-batch-resend-stores-acknowledged-records-twice", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_kinpartial_whole_batch_resend_stores_acknowledged_records_twice.py", "service": "kinesis"} {"check_id": "kinesis.kms-encrypted-stream-returns-plaintext-records", "deployments": [], "key": "kinesis/kms-encrypted-stream-returns-plaintext-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:StartStreamEncryption", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion"], "path": "behavioral/kinesis/check_kms_encrypted_stream_returns_plaintext_records.py", "service": "kinesis"} {"check_id": "kinesis.legacy-and-generic-tag-apis-share-the-same-tag-store", "deployments": [], "key": "kinesis/legacy-and-generic-tag-apis-share-the-same-tag-store", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:ListTagsForStream", "kinesis:RemoveTagsFromStream", "kinesis:TagResource", "kinesis:UntagResource"], "path": "behavioral/kinesis/check_legacy_and_generic_tag_apis_share_the_same_tag_store.py", "service": "kinesis"} {"check_id": "kinesis.list-channels-contains-created-channel", "deployments": [], "key": "kinesis/list-channels-contains-created-channel", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_list_channels_contains_created_channel.py", "service": "kinesis"} {"check_id": "kinesis.list-channels-malformed-next-token-rejected", "deployments": [], "key": "kinesis/list-channels-malformed-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:ListChannels"], "path": "behavioral/kinesis/check_list_channels_malformed_next_token_rejected.py", "service": "kinesis"} {"check_id": "kinesis.list-channels-reflects-created-channel", "deployments": [], "key": "kinesis/list-channels-reflects-created-channel", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:ListChannels", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_list_channels_reflects_created_channel.py", "service": "kinesis"} {"check_id": "kinesis.list-shards-pagination-covers-all-shards-exactly-once", "deployments": [], "key": "kinesis/list-shards-pagination-covers-all-shards-exactly-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards"], "path": "behavioral/kinesis/check_list_shards_pagination_covers_all_shards_exactly_once.py", "service": "kinesis"} {"check_id": "kinesis.list-shards-returns-disjoint-hash-ranges", "deployments": [], "key": "kinesis/list-shards-returns-disjoint-hash-ranges", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards"], "path": "behavioral/kinesis/check_list_shards_returns_disjoint_hash_ranges.py", "service": "kinesis"} {"check_id": "kinesis.list-shards-shard-filter-resolves-the-resharding-lineage", "deployments": [], "key": "kinesis/list-shards-shard-filter-resolves-the-resharding-lineage", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_list_shards_shard_filter_resolves_the_resharding_lineage.py", "service": "kinesis"} {"check_id": "kinesis.list-shards-stream-creation-timestamp-mismatch-rejected", "deployments": [], "key": "kinesis/list-shards-stream-creation-timestamp-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards"], "path": "behavioral/kinesis/check_list_shards_stream_creation_timestamp_mismatch_rejected.py", "service": "kinesis"} {"check_id": "kinesis.list-shards-streamname-and-streamarn-mismatch-rejected", "deployments": [], "key": "kinesis/list-shards-streamname-and-streamarn-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards"], "path": "behavioral/kinesis/check_list_shards_streamname_and_streamarn_mismatch_rejected.py", "service": "kinesis"} {"check_id": "kinesis.list-stream-consumers-expired-token-rejected", "deployments": [], "key": "kinesis/list-stream-consumers-expired-token-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListStreamConsumers", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_list_stream_consumers_expired_token_rejected.py", "service": "kinesis"} {"check_id": "kinesis.list-stream-consumers-expired-token-unreachable", "deployments": [], "key": "kinesis/list-stream-consumers-expired-token-unreachable", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListStreamConsumers", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_list_stream_consumers_expired_token_unreachable.py", "service": "kinesis"} {"check_id": "kinesis.list-stream-consumers-invalid-max-results-fails", "deployments": [], "key": "kinesis/list-stream-consumers-invalid-max-results-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListStreamConsumers"], "path": "behavioral/kinesis/check_list_stream_consumers_invalid_max_results_fails.py", "service": "kinesis"} {"check_id": "kinesis.list-stream-consumers-malformed-next-token-rejected", "deployments": [], "key": "kinesis/list-stream-consumers-malformed-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListStreamConsumers", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_list_stream_consumers_malformed_next_token_rejected.py", "service": "kinesis"} {"check_id": "kinesis.list-stream-consumers-pagination-preserves-order", "deployments": [], "key": "kinesis/list-stream-consumers-pagination-preserves-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListStreamConsumers", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_list_stream_consumers_pagination_preserves_order.py", "service": "kinesis"} {"check_id": "kinesis.list-streams-includes-created-stream", "deployments": [], "key": "kinesis/list-streams-includes-created-stream", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:ListStreams"], "path": "behavioral/kinesis/check_list_streams_includes_created_stream.py", "service": "kinesis"} {"check_id": "kinesis.list-streams-pagination-covers-created-streams-exactly-once", "deployments": [], "key": "kinesis/list-streams-pagination-covers-created-streams-exactly-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListStreams"], "path": "behavioral/kinesis/check_list_streams_pagination_covers_created_streams_exactly_once.py", "service": "kinesis"} {"check_id": "kinesis.list-streams-stream-summaries-reflect-mode-status-and-arn", "deployments": [], "key": "kinesis/list-streams-stream-summaries-reflect-mode-status-and-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListStreams"], "path": "behavioral/kinesis/check_list_streams_stream_summaries_reflect_mode_status_and_arn.py", "service": "kinesis"} {"check_id": "kinesis.list-tags-for-resource-nonexistent-arn-fails", "deployments": [], "key": "kinesis/list-tags-for-resource-nonexistent-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_list_tags_for_resource_nonexistent_arn_fails.py", "service": "kinesis"} {"check_id": "kinesis.list-tags-for-resource-nonexistent-arn-rejected", "deployments": [], "key": "kinesis/list-tags-for-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_list_tags_for_resource_nonexistent_arn_rejected.py", "service": "kinesis"} {"check_id": "kinesis.merge-non-adjacent-shards-must-fail", "deployments": [], "key": "kinesis/merge-non-adjacent-shards-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:MergeShards"], "path": "behavioral/kinesis/check_merge_non_adjacent_shards_must_fail.py", "service": "kinesis"} {"check_id": "kinesis.merge-shards-combines-adjacent", "deployments": [], "key": "kinesis/merge-shards-combines-adjacent", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:MergeShards"], "path": "behavioral/kinesis/check_merge_shards_combines_adjacent.py", "service": "kinesis"} {"check_id": "kinesis.merge-shards-on-ondemand-stream-fails", "deployments": [], "key": "kinesis/merge-shards-on-ondemand-stream-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:MergeShards"], "path": "behavioral/kinesis/check_merge_shards_on_ondemand_stream_fails.py", "service": "kinesis"} {"check_id": "kinesis.merged-shard-child-still-serves-parent-records", "deployments": [], "key": "kinesis/merged-shard-child-still-serves-parent-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:MergeShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_merged_shard_child_still_serves_parent_records.py", "service": "kinesis"} {"check_id": "kinesis.millis-behind-latest-tracks-the-clock-and-reads-do-not-advance-the-shard", "deployments": [], "key": "kinesis/millis-behind-latest-tracks-the-clock-and-reads-do-not-advance-the-shard", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_millis_behind_latest_tracks_the_clock_and_reads_do_not_advance_the_shard.py", "service": "kinesis"} {"check_id": "kinesis.put-record-binary-blob-byte-equality", "deployments": [], "key": "kinesis/put-record-binary-blob-byte-equality", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_binary_blob_byte_equality.py", "service": "kinesis"} {"check_id": "kinesis.put-record-binary-blob-preserved", "deployments": [], "key": "kinesis/put-record-binary-blob-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeLimits", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_binary_blob_preserved.py", "service": "kinesis"} {"check_id": "kinesis.put-record-binary-blob-round-trip", "deployments": [], "key": "kinesis/put-record-binary-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_binary_blob_round_trip.py", "service": "kinesis"} {"check_id": "kinesis.put-record-exceeding-max-record-size-rejected", "deployments": [], "key": "kinesis/put-record-exceeding-max-record-size-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_exceeding_max_record_size_rejected.py", "service": "kinesis"} {"check_id": "kinesis.put-record-explicit-hash-key-out-of-range-rejected", "deployments": [], "key": "kinesis/put-record-explicit-hash-key-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_explicit_hash_key_out_of_range_rejected.py", "service": "kinesis"} {"check_id": "kinesis.put-record-get-records-round-trip", "deployments": [], "key": "kinesis/put-record-get-records-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_get_records_round_trip.py", "service": "kinesis"} {"check_id": "kinesis.put-record-nonexistent-stream-fails", "deployments": [], "key": "kinesis/put-record-nonexistent-stream-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_nonexistent_stream_fails.py", "service": "kinesis"} {"check_id": "kinesis.put-record-oversized-data-rejected", "deployments": [], "key": "kinesis/put-record-oversized-data-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_oversized_data_rejected.py", "service": "kinesis"} {"check_id": "kinesis.put-record-oversized-payload-rejected-before-limit-increase", "deployments": [], "key": "kinesis/put-record-oversized-payload-rejected-before-limit-increase", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_oversized_payload_rejected_before_limit_increase.py", "service": "kinesis"} {"check_id": "kinesis.put-record-partition-key-too-long-fails", "deployments": [], "key": "kinesis/put-record-partition-key-too-long-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_partition_key_too_long_fails.py", "service": "kinesis"} {"check_id": "kinesis.put-record-signed-for-a-different-authority-host-rejected", "deployments": [], "key": "kinesis/put-record-signed-for-a-different-authority-host-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards"], "path": "behavioral/kinesis/check_put_record_signed_for_a_different_authority_host_rejected.py", "service": "kinesis"} {"check_id": "kinesis.put-record-then-get-records-round-trip-over-a-hand-signed-http2-request", "deployments": [], "key": "kinesis/put-record-then-get-records-round-trip-over-a-hand-signed-http2-request", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:ListShards"], "path": "behavioral/kinesis/check_put_record_then_get_records_round_trip_over_a_hand_signed_http2_request.py", "service": "kinesis"} {"check_id": "kinesis.put-record-unicode-partition-key-round-trip", "deployments": [], "key": "kinesis/put-record-unicode-partition-key-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_put_record_unicode_partition_key_round_trip.py", "service": "kinesis"} {"check_id": "kinesis.put-records-batch-success", "deployments": [], "key": "kinesis/put-records-batch-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_put_records_batch_success.py", "service": "kinesis"} {"check_id": "kinesis.put-records-entries-align-with-partition-key-hash", "deployments": [], "key": "kinesis/put-records-entries-align-with-partition-key-hash", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_put_records_entries_align_with_partition_key_hash.py", "service": "kinesis"} {"check_id": "kinesis.put-records-exceeds-batch-limit-fails", "deployments": [], "key": "kinesis/put-records-exceeds-batch-limit-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_put_records_exceeds_batch_limit_fails.py", "service": "kinesis"} {"check_id": "kinesis.put-records-partial-failure-reports-per-entry-error-codes", "deployments": [], "key": "kinesis/put-records-partial-failure-reports-per-entry-error-codes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_put_records_partial_failure_reports_per_entry_error_codes.py", "service": "kinesis"} {"check_id": "kinesis.put-records-preserves-per-shard-sequence-order", "deployments": [], "key": "kinesis/put-records-preserves-per-shard-sequence-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_put_records_preserves_per_shard_sequence_order.py", "service": "kinesis"} {"check_id": "kinesis.put-records-preserves-submission-order-within-shard", "deployments": [], "key": "kinesis/put-records-preserves-submission-order-within-shard", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_put_records_preserves_submission_order_within_shard.py", "service": "kinesis"} {"check_id": "kinesis.put-resource-policy-invalid-policy-rejected", "deployments": [], "key": "kinesis/put-resource-policy-invalid-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_put_resource_policy_invalid_policy_rejected.py", "service": "kinesis"} {"check_id": "kinesis.put-resource-policy-overwrites-previous-policy", "deployments": [], "key": "kinesis/put-resource-policy-overwrites-previous-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_put_resource_policy_overwrites_previous_policy.py", "service": "kinesis"} {"check_id": "kinesis.register-duplicate-consumer-name-fails", "deployments": [], "key": "kinesis/register-duplicate-consumer-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:ListStreamConsumers", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_register_duplicate_consumer_name_fails.py", "service": "kinesis"} {"check_id": "kinesis.register-stream-consumer-lifecycle", "deployments": [], "key": "kinesis/register-stream-consumer-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_register_stream_consumer_lifecycle.py", "service": "kinesis"} {"check_id": "kinesis.register-stream-consumer-same-name-different-streams-allowed", "deployments": [], "key": "kinesis/register-stream-consumer-same-name-different-streams-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListStreamConsumers", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_register_stream_consumer_same_name_different_streams_allowed.py", "service": "kinesis"} {"check_id": "kinesis.remove-tags-from-stream-removes-tag", "deployments": [], "key": "kinesis/remove-tags-from-stream-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:ListTagsForStream", "kinesis:RemoveTagsFromStream"], "path": "behavioral/kinesis/check_remove_tags_from_stream_removes_tag.py", "service": "kinesis"} {"check_id": "kinesis.resource-policy-denies-cross-principal-get-records", "deployments": [], "key": "kinesis/resource-policy-denies-cross-principal-get-records", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetResourcePolicy", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutResourcePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_resource_policy_denies_cross_principal_get_records.py", "service": "kinesis"} {"check_id": "kinesis.resource-policy-document-byte-preserved", "deployments": [], "key": "kinesis/resource-policy-document-byte-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy"], "path": "behavioral/kinesis/check_resource_policy_document_byte_preserved.py", "service": "kinesis"} {"check_id": "kinesis.resource-policy-invalid-json-rejected", "deployments": [], "key": "kinesis/resource-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_resource_policy_invalid_json_rejected.py", "service": "kinesis"} {"check_id": "kinesis.resource-policy-json-round-trip-byte-equality", "deployments": [], "key": "kinesis/resource-policy-json-round-trip-byte-equality", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_resource_policy_json_round_trip_byte_equality.py", "service": "kinesis"} {"check_id": "kinesis.resource-policy-large-json-round-trip", "deployments": [], "key": "kinesis/resource-policy-large-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeLimits", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_resource_policy_large_json_round_trip.py", "service": "kinesis"} {"check_id": "kinesis.resource-policy-put-get-delete", "deployments": [], "key": "kinesis/resource-policy-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:ListShards", "kinesis:PutResourcePolicy"], "path": "behavioral/kinesis/check_resource_policy_put_get_delete.py", "service": "kinesis"} {"check_id": "kinesis.resource-policy-put-get-delete-lifecycle", "deployments": [], "key": "kinesis/resource-policy-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteResourcePolicy", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetResourcePolicy", "kinesis:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_resource_policy_put_get_delete_lifecycle.py", "service": "kinesis"} {"check_id": "kinesis.retention-change-to-current-value-is-accepted-no-op", "deployments": [], "key": "kinesis/retention-change-to-current-value-is-accepted-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DecreaseStreamRetentionPeriod", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:IncreaseStreamRetentionPeriod"], "path": "behavioral/kinesis/check_retention_change_to_current_value_is_accepted_no_op.py", "service": "kinesis"} {"check_id": "kinesis.retention-period-limits-record-visibility-window", "deployments": [], "key": "kinesis/retention-period-limits-record-visibility-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:IncreaseStreamRetentionPeriod", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_retention_period_limits_record_visibility_window.py", "service": "kinesis"} {"check_id": "kinesis.sequence-number-for-ordering-enforces-strict-per-key-order", "deployments": [], "key": "kinesis/sequence-number-for-ordering-enforces-strict-per-key-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_sequence_number_for_ordering_enforces_strict_per_key_order.py", "service": "kinesis"} {"check_id": "kinesis.sequence-number-monotonic-across-put-record-calls", "deployments": [], "key": "kinesis/sequence-number-monotonic-across-put-record-calls", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_sequence_number_monotonic_across_put_record_calls.py", "service": "kinesis"} {"check_id": "kinesis.shard-dimensioned-metrics-absent-until-enhanced-monitoring-is-enabled", "deployments": [], "key": "kinesis/shard-dimensioned-metrics-absent-until-enhanced-monitoring-is-enabled", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:EnableEnhancedMonitoring", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_shard_dimensioned_metrics_absent_until_enhanced_monitoring_is_enabled.py", "service": "kinesis"} {"check_id": "kinesis.shard-iterator-expires-after-ttl", "deployments": [], "key": "kinesis/shard-iterator-expires-after-ttl", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_shard_iterator_expires_after_ttl.py", "service": "kinesis"} {"check_id": "kinesis.shard-iterator-expires-after-ttl-window", "deployments": [], "key": "kinesis/shard-iterator-expires-after-ttl-window", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:PutRecord"], "path": "behavioral/kinesis/check_shard_iterator_expires_after_ttl_window.py", "service": "kinesis"} {"check_id": "kinesis.split-shard-children-partition-parent-hash-range-and-records", "deployments": [], "key": "kinesis/split-shard-children-partition-parent-hash-range-and-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_split_shard_children_partition_parent_hash_range_and_records.py", "service": "kinesis"} {"check_id": "kinesis.split-shard-creates-child-shards", "deployments": [], "key": "kinesis/split-shard-creates-child-shards", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_split_shard_creates_child_shards.py", "service": "kinesis"} {"check_id": "kinesis.split-shard-invalid-hash-key-fails", "deployments": [], "key": "kinesis/split-shard-invalid-hash-key-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_split_shard_invalid_hash_key_fails.py", "service": "kinesis"} {"check_id": "kinesis.split-shard-new-starting-hash-key-outside-parent-range-rejected", "deployments": [], "key": "kinesis/split-shard-new-starting-hash-key-outside-parent-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecords", "kinesis:SplitShard"], "path": "behavioral/kinesis/check_split_shard_new_starting_hash_key_outside_parent_range_rejected.py", "service": "kinesis"} {"check_id": "kinesis.start-and-stop-stream-encryption", "deployments": [], "key": "kinesis/start-and-stop-stream-encryption", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:StartStreamEncryption", "kinesis:StopStreamEncryption", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kinesis/check_start_and_stop_stream_encryption.py", "service": "kinesis"} {"check_id": "kinesis.start-stream-encryption-transitions-to-active", "deployments": [], "key": "kinesis/start-stream-encryption-transitions-to-active", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:PutRecord", "kinesis:StartStreamEncryption", "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion"], "path": "behavioral/kinesis/check_start_stream_encryption_transitions_to_active.py", "service": "kinesis"} {"check_id": "kinesis.stop-stream-encryption-on-unencrypted-stream-rejected", "deployments": [], "key": "kinesis/stop-stream-encryption-on-unencrypted-stream-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:StartStreamEncryption", "kinesis:StopStreamEncryption", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kinesis/check_stop_stream_encryption_on_unencrypted_stream_rejected.py", "service": "kinesis"} {"check_id": "kinesis.stop-stream-encryption-reverts-to-disabled", "deployments": [], "key": "kinesis/stop-stream-encryption-reverts-to-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:StartStreamEncryption", "kinesis:StopStreamEncryption", "kms:CreateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kinesis/check_stop_stream_encryption_reverts_to_disabled.py", "service": "kinesis"} {"check_id": "kinesis.stream-summary-consumer-count-tracks-registered-consumers", "deployments": [], "key": "kinesis/stream-summary-consumer-count-tracks-registered-consumers", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListStreamConsumers", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_stream_summary_consumer_count_tracks_registered_consumers.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-delivers-records-in-order", "deployments": [], "key": "kinesis/subscribe-to-shard-delivers-records-in-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_delivers_records_in_order.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-delivers-records-in-sequence-order", "deployments": [], "key": "kinesis/subscribe-to-shard-delivers-records-in-sequence-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecords", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_delivers_records_in_sequence_order.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-delivers-records-in-write-order", "deployments": [], "key": "kinesis/subscribe-to-shard-delivers-records-in-write-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecords", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_delivers_records_in_write_order.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-dry-run-does-not-deliver-records", "deployments": [], "key": "kinesis/subscribe-to-shard-dry-run-does-not-deliver-records", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_dry_run_does_not_deliver_records.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-dry-run-rejected", "deployments": [], "key": "kinesis/subscribe-to-shard-dry-run-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_dry_run_rejected.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-dry-run-skips-execution", "deployments": [], "key": "kinesis/subscribe-to-shard-dry-run-skips-execution", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_dry_run_skips_execution.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-event-stream-framing-over-a-hand-signed-http2-request", "deployments": [], "key": "kinesis/subscribe-to-shard-event-stream-framing-over-a-hand-signed-http2-request", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer"], "path": "behavioral/kinesis/check_subscribe_to_shard_event_stream_framing_over_a_hand_signed_http2_request.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-expires-after-five-minutes", "deployments": [], "key": "kinesis/subscribe-to-shard-expires-after-five-minutes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_expires_after_five_minutes.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-honors-starting-position-latest", "deployments": [], "key": "kinesis/subscribe-to-shard-honors-starting-position-latest", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_honors_starting_position_latest.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-lease-expires-after-5-minutes", "deployments": [], "key": "kinesis/subscribe-to-shard-lease-expires-after-5-minutes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_lease_expires_after_5_minutes.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-missing-permission-denied", "deployments": [], "key": "kinesis/subscribe-to-shard-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_subscribe_to_shard_missing_permission_denied.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-second-subscription-rejected", "deployments": [], "key": "kinesis/subscribe-to-shard-second-subscription-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_second_subscription_rejected.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-subscription-expires-after-max-duration", "deployments": [], "key": "kinesis/subscribe-to-shard-subscription-expires-after-max-duration", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_subscription_expires_after_max_duration.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-with-shard-id-from-another-stream-rejected", "deployments": [], "key": "kinesis/subscribe-to-shard-with-shard-id-from-another-stream-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_with_shard_id_from_another_stream_rejected.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-without-permission-denied", "deployments": [], "key": "kinesis/subscribe-to-shard-without-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_without_permission_denied.py", "service": "kinesis"} {"check_id": "kinesis.subscribe-to-shard-without-permission-must-be-denied", "deployments": [], "key": "kinesis/subscribe-to-shard-without-permission-must-be-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_subscribe_to_shard_without_permission_must_be_denied.py", "service": "kinesis"} {"check_id": "kinesis.tag-and-list-tags-roundtrip", "deployments": [], "key": "kinesis/tag-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:ListTagsForStream"], "path": "behavioral/kinesis/check_tag_and_list_tags_roundtrip.py", "service": "kinesis"} {"check_id": "kinesis.tag-resource-concurrent-updates-consistent", "deployments": [], "key": "kinesis/tag-resource-concurrent-updates-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource"], "path": "behavioral/kinesis/check_tag_resource_concurrent_updates_consistent.py", "service": "kinesis"} {"check_id": "kinesis.tag-resource-concurrent-updates-last-writer-wins", "deployments": [], "key": "kinesis/tag-resource-concurrent-updates-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource"], "path": "behavioral/kinesis/check_tag_resource_concurrent_updates_last_writer_wins.py", "service": "kinesis"} {"check_id": "kinesis.tag-resource-invalid-key-fails", "deployments": [], "key": "kinesis/tag-resource-invalid-key-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource"], "path": "behavioral/kinesis/check_tag_resource_invalid_key_fails.py", "service": "kinesis"} {"check_id": "kinesis.tag-resource-lifecycle", "deployments": [], "key": "kinesis/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:ListTagsForResource", "kinesis:TagResource", "kinesis:UntagResource"], "path": "behavioral/kinesis/check_tag_resource_lifecycle.py", "service": "kinesis"} {"check_id": "kinesis.tag-resource-malformed-arn-rejected", "deployments": [], "key": "kinesis/tag-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource"], "path": "behavioral/kinesis/check_tag_resource_malformed_arn_rejected.py", "service": "kinesis"} {"check_id": "kinesis.tag-resource-reserved-aws-prefix-rejected", "deployments": [], "key": "kinesis/tag-resource-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource"], "path": "behavioral/kinesis/check_tag_resource_reserved_aws_prefix_rejected.py", "service": "kinesis"} {"check_id": "kinesis.tag-resource-unicode-value-round-trip", "deployments": [], "key": "kinesis/tag-resource-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource", "kinesis:UntagResource"], "path": "behavioral/kinesis/check_tag_resource_unicode_value_round_trip.py", "service": "kinesis"} {"check_id": "kinesis.tag-value-empty-string-vs-absent-preserved", "deployments": [], "key": "kinesis/tag-value-empty-string-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeLimits", "kinesis:DescribeStreamSummary", "kinesis:ListTagsForResource", "kinesis:TagResource"], "path": "behavioral/kinesis/check_tag_value_empty_string_vs_absent_preserved.py", "service": "kinesis"} {"check_id": "kinesis.three-shard-stream-large-and-split-batch-records-then-deleted-by-arn", "deployments": [], "key": "kinesis/three-shard-stream-large-and-split-batch-records-then-deleted-by-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:ListStreams", "kinesis:PutRecord", "kinesis:PutRecords"], "path": "behavioral/kinesis/check_three_shard_stream_large_and_split_batch_records_then_deleted_by_arn.py", "service": "kinesis"} {"check_id": "kinesis.two-enhanced-fanout-consumers-each-receive-all-records", "deployments": [], "key": "kinesis/two-enhanced-fanout-consumers-each-receive-all-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DeregisterStreamConsumer", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard"], "path": "behavioral/kinesis/check_two_enhanced_fanout_consumers_each_receive_all_records.py", "service": "kinesis"} {"check_id": "kinesis.untag-resource-nonexistent-arn-fails", "deployments": [], "key": "kinesis/untag-resource-nonexistent-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:ListTagsForResource", "kinesis:TagResource", "kinesis:UntagResource"], "path": "behavioral/kinesis/check_untag_resource_nonexistent_arn_fails.py", "service": "kinesis"} {"check_id": "kinesis.update-account-settings-invalid-value-fails", "deployments": [], "key": "kinesis/update-account-settings-invalid-value-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:DescribeAccountSettings", "kinesis:UpdateAccountSettings"], "path": "behavioral/kinesis/check_update_account_settings_invalid_value_fails.py", "service": "kinesis"} {"check_id": "kinesis.update-channel-concurrent-modification-conflict", "deployments": [], "key": "kinesis/update-channel-concurrent-modification-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_update_channel_concurrent_modification_conflict.py", "service": "kinesis"} {"check_id": "kinesis.update-channel-persists-configuration-change", "deployments": [], "key": "kinesis/update-channel-persists-configuration-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_update_channel_persists_configuration_change.py", "service": "kinesis"} {"check_id": "kinesis.update-channel-properties-persist", "deployments": [], "key": "kinesis/update-channel-properties-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_update_channel_properties_persist.py", "service": "kinesis"} {"check_id": "kinesis.update-channel-reflects-in-describe", "deployments": [], "key": "kinesis/update-channel-reflects-in-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateChannel", "kinesis:CreateStream", "kinesis:DeleteChannel", "kinesis:DeleteStream", "kinesis:DescribeChannel", "kinesis:DescribeStreamSummary", "kinesis:UpdateChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/kinesis/check_update_channel_reflects_in_describe.py", "service": "kinesis"} {"check_id": "kinesis.update-max-record-size-enables-larger-put-record", "deployments": [], "key": "kinesis/update-max-record-size-enables-larger-put-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:UpdateMaxRecordSize"], "path": "behavioral/kinesis/check_update_max_record_size_enables_larger_put_record.py", "service": "kinesis"} {"check_id": "kinesis.update-max-record-size-enforced-on-put-record", "deployments": [], "key": "kinesis/update-max-record-size-enforced-on-put-record", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:PutRecord", "kinesis:UpdateMaxRecordSize"], "path": "behavioral/kinesis/check_update_max_record_size_enforced_on_put_record.py", "service": "kinesis"} {"check_id": "kinesis.update-max-record-size-exceeding-service-cap-must-fail", "deployments": [], "key": "kinesis/update-max-record-size-exceeding-service-cap-must-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateMaxRecordSize"], "path": "behavioral/kinesis/check_update_max_record_size_exceeding_service_cap_must_fail.py", "service": "kinesis"} {"check_id": "kinesis.update-max-record-size-exceeds-service-ceiling-rejected", "deployments": [], "key": "kinesis/update-max-record-size-exceeds-service-ceiling-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateMaxRecordSize"], "path": "behavioral/kinesis/check_update_max_record_size_exceeds_service_ceiling_rejected.py", "service": "kinesis"} {"check_id": "kinesis.update-max-record-size-numeric-precision-persists", "deployments": [], "key": "kinesis/update-max-record-size-numeric-precision-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeLimits", "kinesis:DescribeStreamSummary", "kinesis:UpdateMaxRecordSize"], "path": "behavioral/kinesis/check_update_max_record_size_numeric_precision_persists.py", "service": "kinesis"} {"check_id": "kinesis.update-max-record-size-out-of-range-fails", "deployments": [], "key": "kinesis/update-max-record-size-out-of-range-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateMaxRecordSize"], "path": "behavioral/kinesis/check_update_max_record_size_out_of_range_fails.py", "service": "kinesis"} {"check_id": "kinesis.update-max-record-size-out-of-range-rejected", "deployments": [], "key": "kinesis/update-max-record-size-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateMaxRecordSize"], "path": "behavioral/kinesis/check_update_max_record_size_out_of_range_rejected.py", "service": "kinesis"} {"check_id": "kinesis.update-shard-count-concurrent-conflict", "deployments": [], "key": "kinesis/update-shard-count-concurrent-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:UpdateShardCount"], "path": "behavioral/kinesis/check_update_shard_count_concurrent_conflict.py", "service": "kinesis"} {"check_id": "kinesis.update-shard-count-on-ondemand-stream-fails", "deployments": [], "key": "kinesis/update-shard-count-on-ondemand-stream-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:UpdateShardCount"], "path": "behavioral/kinesis/check_update_shard_count_on_ondemand_stream_fails.py", "service": "kinesis"} {"check_id": "kinesis.update-shard-count-scales", "deployments": [], "key": "kinesis/update-shard-count-scales", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:UpdateShardCount"], "path": "behavioral/kinesis/check_update_shard_count_scales.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-mode-concurrent-conflict-resource-in-use", "deployments": [], "key": "kinesis/update-stream-mode-concurrent-conflict-resource-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateStreamMode"], "path": "behavioral/kinesis/check_update_stream_mode_concurrent_conflict_resource_in_use.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-mode-invalid-mode-value-fails", "deployments": [], "key": "kinesis/update-stream-mode-invalid-mode-value-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateStreamMode"], "path": "behavioral/kinesis/check_update_stream_mode_invalid_mode_value_fails.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-mode-switches-provisioned-to-ondemand", "deployments": [], "key": "kinesis/update-stream-mode-switches-provisioned-to-ondemand", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:UpdateStreamMode"], "path": "behavioral/kinesis/check_update_stream_mode_switches_provisioned_to_ondemand.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-mode-transitions-capacity-mode", "deployments": [], "key": "kinesis/update-stream-mode-transitions-capacity-mode", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:PutRecord", "kinesis:UpdateStreamMode"], "path": "behavioral/kinesis/check_update_stream_mode_transitions_capacity_mode.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-mode-transitions-provisioned-to-ondemand", "deployments": [], "key": "kinesis/update-stream-mode-transitions-provisioned-to-ondemand", "labels": ["axis:happy-path", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateStreamMode"], "path": "behavioral/kinesis/check_update_stream_mode_transitions_provisioned_to_ondemand.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-mode-while-resharding-blocked", "deployments": [], "key": "kinesis/update-stream-mode-while-resharding-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:SplitShard", "kinesis:UpdateStreamMode"], "path": "behavioral/kinesis/check_update_stream_mode_while_resharding_blocked.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-mode-while-updating-conflicts", "deployments": [], "key": "kinesis/update-stream-mode-while-updating-conflicts", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateStreamMode"], "path": "behavioral/kinesis/check_update_stream_mode_while_updating_conflicts.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-record-distribution-strategy-auto-ignores-partition-key", "deployments": [], "key": "kinesis/update-stream-record-distribution-strategy-auto-ignores-partition-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:UpdateStreamRecordDistributionStrategy"], "path": "behavioral/kinesis/check_update_stream_record_distribution_strategy_auto_ignores_partition_key.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-record-distribution-strategy-nonexistent-stream-rejected", "deployments": [], "key": "kinesis/update-stream-record-distribution-strategy-nonexistent-stream-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateStreamRecordDistributionStrategy"], "path": "behavioral/kinesis/check_update_stream_record_distribution_strategy_nonexistent_stream_rejected.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-record-distribution-strategy-requires-on-demand", "deployments": [], "key": "kinesis/update-stream-record-distribution-strategy-requires-on-demand", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateStreamRecordDistributionStrategy"], "path": "behavioral/kinesis/check_update_stream_record_distribution_strategy_requires_on_demand.py", "service": "kinesis"} {"check_id": "kinesis.update-stream-warm-throughput-negative-value-rejected", "deployments": [], "key": "kinesis/update-stream-warm-throughput-negative-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:UpdateStreamWarmThroughput"], "path": "behavioral/kinesis/check_update_stream_warm_throughput_negative_value_rejected.py", "service": "kinesis"} {"check_id": "kinesis__lambda.esm-at-timestamp-starting-position-withholds-pre-boundary-records", "deployments": [], "key": "kinesis__lambda/esm-at-timestamp-starting-position-withholds-pre-boundary-records", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/kinesis__lambda/check_esm_at_timestamp_starting_position_withholds_pre_boundary_records.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-batch-size-caps-records-per-invoke", "deployments": [], "key": "kinesis__lambda/kinesis-esm-batch-size-caps-records-per-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_batch_size_caps_records_per_invoke.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-batching-window-gathers-more-records-per-invoke-than-an-immediate-mapping", "deployments": [], "key": "kinesis__lambda/kinesis-esm-batching-window-gathers-more-records-per-invoke-than-an-immediate-mapping", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_batching_window_gathers_more_records_per_invoke_than_an_immediate_mapping.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-default-maximum-retry-attempts-is-minus-one", "deployments": [], "key": "kinesis__lambda/kinesis-esm-default-maximum-retry-attempts-is-minus-one", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_default_maximum_retry_attempts_is_minus_one.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-explicit-hash-key-routes-and-each-shard-stays-ordered", "deployments": [], "key": "kinesis__lambda/kinesis-esm-explicit-hash-key-routes-and-each-shard-stays-ordered", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_explicit_hash_key_routes_and_each_shard_stays_ordered.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-filter-on-decoded-json-data-drops-non-matching", "deployments": [], "key": "kinesis__lambda/kinesis-esm-filter-on-decoded-json-data-drops-non-matching", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_filter_on_decoded_json_data_drops_non_matching.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-latest-mapping-never-sees-records-put-before-it", "deployments": [], "key": "kinesis__lambda/kinesis-esm-latest-mapping-never-sees-records-put-before-it", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_latest_mapping_never_sees_records_put_before_it.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-parallelization-factor-above-ten-rejected", "deployments": [], "key": "kinesis__lambda/kinesis-esm-parallelization-factor-above-ten-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_parallelization_factor_above_ten_rejected.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-parallelization-factor-keeps-each-partition-key-in-order", "deployments": [], "key": "kinesis__lambda/kinesis-esm-parallelization-factor-keeps-each-partition-key-in-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_parallelization_factor_keeps_each_partition_key_in_order.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-record-envelope-matches-the-put-record", "deployments": [], "key": "kinesis__lambda/kinesis-esm-record-envelope-matches-the-put-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_record_envelope_matches_the_put_record.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda.kinesis-esm-tumbling-window-carries-state-and-closes-each-window-once", "deployments": [], "key": "kinesis__lambda/kinesis-esm-tumbling-window-carries-state-and-closes-each-window-once", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration"], "path": "behavioral/kinesis__lambda/check_kinesis_esm_tumbling_window_carries_state_and_closes_each_window_once.py", "service": "kinesis__lambda"} {"check_id": "kinesis__lambda__pipes__sqs.kinesis-enrichment-failure-dead-letters-to-sqs-with-documented-payload", "deployments": [], "key": "kinesis__lambda__pipes__sqs/kinesis-enrichment-failure-dead-letters-to-sqs-with-documented-payload", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/kinesis__lambda__pipes__sqs/check_kinesis_enrichment_failure_dead_letters_to_sqs_with_documented_payload.py", "service": "kinesis__lambda__pipes__sqs"} {"check_id": "kinesis__lambda__s3.kinesis-esm-create-rejects-an-onfailure-destination-of-an-unsupported-service", "deployments": [], "key": "kinesis__lambda__s3/kinesis-esm-create-rejects-an-onfailure-destination-of-an-unsupported-service", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/kinesis__lambda__s3/check_kinesis_esm_create_rejects_an_onfailure_destination_of_an_unsupported_service.py", "service": "kinesis__lambda__s3"} {"check_id": "kinesis__lambda__s3.kinesis-esm-s3-on-failure-destination-writes-the-full-invocation-record", "deployments": [], "key": "kinesis__lambda__s3/kinesis-esm-s3-on-failure-destination-writes-the-full-invocation-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/kinesis__lambda__s3/check_kinesis_esm_s3_on_failure_destination_writes_the_full_invocation_record.py", "service": "kinesis__lambda__s3"} {"check_id": "kinesis__logs.deep-cwlogs-semantics-deleted-subscription-filter-delivery-blocked", "deployments": [], "key": "kinesis__logs/deep-cwlogs-semantics-deleted-subscription-filter-delivery-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutLogEvents", "logs:PutSubscriptionFilter"], "path": "behavioral/kinesis__logs/check_deep_cwlogs_semantics_deleted_subscription_filter_delivery_blocked.py", "service": "kinesis__logs"} {"check_id": "kinesis__logs.deep-cwlogs-semantics-two-subscription-filters-envelopes-carry-filter-name-and-event-ids", "deployments": [], "key": "kinesis__logs/deep-cwlogs-semantics-two-subscription-filters-envelopes-carry-filter-name-and-event-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/kinesis__logs/check_deep_cwlogs_semantics_two_subscription_filters_envelopes_carry_filter_name_and_event_ids.py", "service": "kinesis__logs"} {"check_id": "kinesis__logs.log-cwl-plumbing-kinesis-control-message-precedes-data-message-with-exact-lines", "deployments": [], "key": "kinesis__logs/log-cwl-plumbing-kinesis-control-message-precedes-data-message-with-exact-lines", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/kinesis__logs/check_log_cwl_plumbing_kinesis_control_message_precedes_data_message_with_exact_lines.py", "service": "kinesis__logs"} {"check_id": "kinesis__logs.log-cwl-plumbing-sixth-subscription-filter-rejected-while-five-deliver", "deployments": [], "key": "kinesis__logs/log-cwl-plumbing-sixth-subscription-filter-rejected-while-five-deliver", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutLogEvents", "logs:PutSubscriptionFilter"], "path": "behavioral/kinesis__logs/check_log_cwl_plumbing_sixth_subscription_filter_rejected_while_five_deliver.py", "service": "kinesis__logs"} {"check_id": "kinesis__logs.subscription-filter-bylogstream-distribution-pins-each-log-stream-to-one-shard", "deployments": [], "key": "kinesis__logs/subscription-filter-bylogstream-distribution-pins-each-log-stream-to-one-shard", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/kinesis__logs/check_subscription_filter_bylogstream_distribution_pins_each_log_stream_to_one_shard.py", "service": "kinesis__logs"} {"check_id": "kinesis__pipes__sqs.kinesis-source-dead-letter-config-requires-sqs-or-sns", "deployments": [], "key": "kinesis__pipes__sqs/kinesis-source-dead-letter-config-requires-sqs-or-sns", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sns:CreateTopic", "sns:DeleteTopic", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/kinesis__pipes__sqs/check_kinesis_source_dead_letter_config_requires_sqs_or_sns.py", "service": "kinesis__pipes__sqs"} {"check_id": "kinesis__pipes__sqs.kinesis-source-sqs-target-delivers-data-base64-and-partition-key", "deployments": [], "key": "kinesis__pipes__sqs/kinesis-source-sqs-target-delivers-data-base64-and-partition-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:PutRecord", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/kinesis__pipes__sqs/check_kinesis_source_sqs_target_delivers_data_base64_and_partition_key.py", "service": "kinesis__pipes__sqs"} {"check_id": "kinesisanalyticsv2.add-application-input-on-flink-application-rejected", "deployments": [], "key": "kinesisanalyticsv2/add-application-input-on-flink-application-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kinesisanalyticsv2:AddApplicationCloudWatchLoggingOption", "kinesisanalyticsv2:AddApplicationInput", "kinesisanalyticsv2:CreateApplication", "kinesisanalyticsv2:DeleteApplication", "kinesisanalyticsv2:DescribeApplication", "kinesisanalyticsv2:ListApplicationVersions", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/kinesisanalyticsv2/check_add_application_input_on_flink_application_rejected.py", "service": "kinesisanalyticsv2"} {"check_id": "kinesisanalyticsv2.snapshot-of-ready-application-rejected", "deployments": [], "key": "kinesisanalyticsv2/snapshot-of-ready-application-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kinesisanalyticsv2:CreateApplication", "kinesisanalyticsv2:CreateApplicationSnapshot", "kinesisanalyticsv2:DeleteApplication", "kinesisanalyticsv2:DeleteApplicationSnapshot", "kinesisanalyticsv2:DescribeApplication", "kinesisanalyticsv2:DescribeApplicationSnapshot", "kinesisanalyticsv2:ListApplicationSnapshots"], "path": "behavioral/kinesisanalyticsv2/check_snapshot_of_ready_application_rejected.py", "service": "kinesisanalyticsv2"} {"check_id": "kinesisanalyticsv2.update-with-stale-version-id-rejected", "deployments": [], "key": "kinesisanalyticsv2/update-with-stale-version-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kinesisanalyticsv2:DeleteApplication", "kinesisanalyticsv2:DescribeApplication", "kinesisanalyticsv2:UpdateApplication"], "path": "behavioral/kinesisanalyticsv2/check_update_with_stale_version_id_rejected.py", "service": "kinesisanalyticsv2"} {"check_id": "kinesisvideo.get-data-endpoint-returns-host-distinct-from-control-plane", "deployments": [], "key": "kinesisvideo/get-data-endpoint-returns-host-distinct-from-control-plane", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_get_data_endpoint_returns_host_distinct_from_control_plane.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.get-data-endpoint-returns-per-stream-hosts-distinct-from-the-control-plane", "deployments": [], "key": "kinesisvideo/get-data-endpoint-returns-per-stream-hosts-distinct-from-the-control-plane", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_get_data_endpoint_returns_per_stream_hosts_distinct_from_the_control_plane.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.get-media-for-fragment-list-returns-only-named-fragment", "deployments": [], "key": "kinesisvideo/get-media-for-fragment-list-returns-only-named-fragment", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:GetMediaForFragmentList", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_get_media_for_fragment_list_returns_only_named_fragment.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.get-media-fragment-number-selector-resumes-after-named-fragment", "deployments": [], "key": "kinesisvideo/get-media-fragment-number-selector-resumes-after-named-fragment", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_get_media_fragment_number_selector_resumes_after_named_fragment.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.list-fragments-reflects-ingestion-transition-from-empty", "deployments": [], "key": "kinesisvideo/list-fragments-reflects-ingestion-transition-from-empty", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_list_fragments_reflects_ingestion_transition_from_empty.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-absolute-fragment-timecode-sets-producer-timestamp", "deployments": [], "key": "kinesisvideo/put-media-absolute-fragment-timecode-sets-producer-timestamp", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_absolute_fragment_timecode_sets_producer_timestamp.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-against-control-plane-host-rejected", "deployments": [], "key": "kinesisvideo/put-media-against-control-plane-host-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_against_control_plane_host_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-cluster-timecode-regression-rejected", "deployments": [], "key": "kinesisvideo/put-media-cluster-timecode-regression-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:GetMediaForFragmentList", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_cluster_timecode_regression_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-fragment-metadata-matches-ingested-container", "deployments": [], "key": "kinesisvideo/put-media-fragment-metadata-matches-ingested-container", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_fragment_metadata_matches_ingested_container.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-fragments-replay-byte-identical-through-get-media", "deployments": [], "key": "kinesisvideo/put-media-fragments-replay-byte-identical-through-get-media", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_fragments_replay_byte_identical_through_get_media.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-malformed-container-rejected", "deployments": [], "key": "kinesisvideo/put-media-malformed-container-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_malformed_container_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-nonexistent-stream-rejected", "deployments": [], "key": "kinesisvideo/put-media-nonexistent-stream-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_nonexistent_stream_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-sequential-sessions-extend-stream-monotonically", "deployments": [], "key": "kinesisvideo/put-media-sequential-sessions-extend-stream-monotonically", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_sequential_sessions_extend_stream_monotonically.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.put-media-unknown-track-number-rejected", "deployments": [], "key": "kinesisvideo/put-media-unknown-track-number-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_put_media_unknown_track_number_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-across-two-connections-appends-to-the-same-stream", "deployments": [], "key": "kinesisvideo/putmedia-across-two-connections-appends-to-the-same-stream", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_across_two_connections_appends_to_the_same_stream.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-block-on-undeclared-track-rejected", "deployments": [], "key": "kinesisvideo/putmedia-block-on-undeclared-track-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_block_on_undeclared_track_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-fragments-readable-by-get-media-for-fragment-list", "deployments": [], "key": "kinesisvideo/putmedia-fragments-readable-by-get-media-for-fragment-list", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:GetMediaForFragmentList", "kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_fragments_readable_by_get_media_for_fragment_list.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-fragments-round-trip-through-get-media", "deployments": [], "key": "kinesisvideo/putmedia-fragments-round-trip-through-get-media", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-media:GetMedia", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_fragments_round_trip_through_get_media.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-future-producer-timestamp-rejected", "deployments": [], "key": "kinesisvideo/putmedia-future-producer-timestamp-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_future_producer_timestamp_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-malformed-container-rejected", "deployments": [], "key": "kinesisvideo/putmedia-malformed-container-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_malformed_container_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-naming-another-stream-on-this-ingest-host-rejected", "deployments": [], "key": "kinesisvideo/putmedia-naming-another-stream-on-this-ingest-host-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_naming_another_stream_on_this_ingest_host_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-on-the-archive-endpoint-rejected", "deployments": [], "key": "kinesisvideo/putmedia-on-the-archive-endpoint-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_on_the_archive_endpoint_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-relative-timecodes-set-fragment-producer-timestamps", "deployments": [], "key": "kinesisvideo/putmedia-relative-timecodes-set-fragment-producer-timestamps", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_relative_timecodes_set_fragment_producer_timestamps.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.putmedia-without-content-sha256-header-rejected", "deployments": [], "key": "kinesisvideo/putmedia-without-content-sha256-header-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["kinesis-video-archived-media:ListFragments", "kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream", "kinesisvideo:GetDataEndpoint"], "path": "behavioral/kinesisvideo/check_putmedia_without_content_sha256_header_rejected.py", "service": "kinesisvideo"} {"check_id": "kinesisvideo.stream-delete-while-deleting-rejected", "deployments": [], "key": "kinesisvideo/stream-delete-while-deleting-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kinesisvideo:CreateStream", "kinesisvideo:DeleteStream", "kinesisvideo:DescribeStream"], "path": "behavioral/kinesisvideo/check_stream_delete_while_deleting_rejected.py", "service": "kinesisvideo"} {"check_id": "kms.alias-format-validation", "deployments": [], "key": "kms/alias-format-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ListAliases", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_alias_format_validation.py", "service": "kms"} {"check_id": "kms.alias-retarget-does-not-rebind-ciphertext", "deployments": [], "key": "kms/alias-retarget-does-not-rebind-ciphertext", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:Decrypt", "kms:DeleteAlias", "kms:DescribeKey", "kms:Encrypt", "kms:ListAliases", "kms:ScheduleKeyDeletion", "kms:UpdateAlias"], "path": "behavioral/kms/check_alias_retarget_does_not_rebind_ciphertext.py", "service": "kms"} {"check_id": "kms.asymmetric-decrypt-requires-key-id", "deployments": [], "key": "kms/asymmetric-decrypt-requires-key-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_asymmetric_decrypt_requires_key_id.py", "service": "kms"} {"check_id": "kms.asymmetric-rsa-encrypt-decrypt", "deployments": [], "key": "kms/asymmetric-rsa-encrypt-decrypt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_asymmetric_rsa_encrypt_decrypt.py", "service": "kms"} {"check_id": "kms.automatic-rotation-schedule-computed-server-side", "deployments": [], "key": "kms/automatic-rotation-schedule-computed-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:DisableKeyRotation", "kms:EnableKey", "kms:EnableKeyRotation", "kms:GetKeyRotationStatus", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_automatic_rotation_schedule_computed_server_side.py", "service": "kms"} {"check_id": "kms.aws-managed-key-reference-catalogue", "deployments": [], "key": "kms/aws-managed-key-reference-catalogue", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateAlias", "kms:DescribeKey", "kms:GetKeyPolicy", "kms:GetKeyRotationStatus", "kms:ListAliases"], "path": "behavioral/kms/check_aws_managed_key_reference_catalogue.py", "service": "kms"} {"check_id": "kms.cancel-key-deletion", "deployments": [], "key": "kms/cancel-key-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:DescribeKey", "kms:EnableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_cancel_key_deletion.py", "service": "kms"} {"check_id": "kms.concurrent-alias-creation-race", "deployments": [], "key": "kms/concurrent-alias-creation-race", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_concurrent_alias_creation_race.py", "service": "kms"} {"check_id": "kms.concurrent-create-grant-idempotent-tokens", "deployments": [], "key": "kms/concurrent-create-grant-idempotent-tokens", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_concurrent_create_grant_idempotent_tokens.py", "service": "kms"} {"check_id": "kms.concurrent-grant-creation-no-duplicate", "deployments": [], "key": "kms/concurrent-grant-creation-no-duplicate", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_concurrent_grant_creation_no_duplicate.py", "service": "kms"} {"check_id": "kms.concurrent-grant-revoke-double-revoke-rejected", "deployments": [], "key": "kms/concurrent-grant-revoke-double-revoke-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_concurrent_grant_revoke_double_revoke_rejected.py", "service": "kms"} {"check_id": "kms.concurrent-import-key-material-race", "deployments": [], "key": "kms/concurrent-import-key-material-race", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_concurrent_import_key_material_race.py", "service": "kms"} {"check_id": "kms.concurrent-tag-resource-last-writer-wins", "deployments": [], "key": "kms/concurrent-tag-resource-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "kms:TagResource"], "path": "behavioral/kms/check_concurrent_tag_resource_last_writer_wins.py", "service": "kms"} {"check_id": "kms.concurrent-update-primary-region-serialized", "deployments": [], "key": "kms/concurrent-update-primary-region-serialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_concurrent_update_primary_region_serialized.py", "service": "kms"} {"check_id": "kms.create-alias", "deployments": [], "key": "kms/create-alias", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_create_alias.py", "service": "kms"} {"check_id": "kms.create-alias-reserved-prefix-fails", "deployments": [], "key": "kms/create-alias-reserved-prefix-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ListAliases", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_create_alias_reserved_prefix_fails.py", "service": "kms"} {"check_id": "kms.create-asymmetric-rsa-key", "deployments": [], "key": "kms/create-asymmetric-rsa-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_create_asymmetric_rsa_key.py", "service": "kms"} {"check_id": "kms.create-custom-key-store-requires-active-cluster-rejected", "deployments": [], "key": "kms/create-custom-key-store-requires-active-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudhsmv2:CreateCluster", "cloudhsmv2:DeleteCluster", "cloudhsmv2:DescribeClusters", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "kms:CreateCustomKeyStore", "kms:DescribeCustomKeyStores"], "path": "behavioral/kms/check_create_custom_key_store_requires_active_cluster_rejected.py", "service": "kms"} {"check_id": "kms.create-grant-concurrent-same-params-distinct-grants", "deployments": [], "key": "kms/create-grant-concurrent-same-params-distinct-grants", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_create_grant_concurrent_same_params_distinct_grants.py", "service": "kms"} {"check_id": "kms.create-grant-dry-run-disabled-key-still-rejected", "deployments": [], "key": "kms/create-grant-dry-run-disabled-key-still-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ListGrants", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_create_grant_dry_run_disabled_key_still_rejected.py", "service": "kms"} {"check_id": "kms.create-grant-dry-run-does-not-persist", "deployments": [], "key": "kms/create-grant-dry-run-does-not-persist", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_create_grant_dry_run_does_not_persist.py", "service": "kms"} {"check_id": "kms.create-grant-dry-run-no-effect", "deployments": [], "key": "kms/create-grant-dry-run-no-effect", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_create_grant_dry_run_no_effect.py", "service": "kms"} {"check_id": "kms.create-grant-dry-run-no-op", "deployments": [], "key": "kms/create-grant-dry-run-no-op", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_create_grant_dry_run_no_op.py", "service": "kms"} {"check_id": "kms.create-grant-exceeding-key-policy-permissions-rejected", "deployments": [], "key": "kms/create-grant-exceeding-key-policy-permissions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:DescribeKey", "kms:ListGrants", "kms:PutKeyPolicy", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_create_grant_exceeding_key_policy_permissions_rejected.py", "service": "kms"} {"check_id": "kms.create-grant-on-disabled-key-fails", "deployments": [], "key": "kms/create-grant-on-disabled-key-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_create_grant_on_disabled_key_fails.py", "service": "kms"} {"check_id": "kms.create-hmac-key", "deployments": [], "key": "kms/create-hmac-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ListKeys", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_create_hmac_key.py", "service": "kms"} {"check_id": "kms.create-list-grant", "deployments": [], "key": "kms/create-list-grant", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_create_list_grant.py", "service": "kms"} {"check_id": "kms.create-symmetric-key", "deployments": [], "key": "kms/create-symmetric-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_create_symmetric_key.py", "service": "kms"} {"check_id": "kms.custom-key-store-connection-state-server-managed", "deployments": [], "key": "kms/custom-key-store-connection-state-server-managed", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateCustomKeyStore", "kms:CreateKey", "kms:DescribeCustomKeyStores", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_custom_key_store_connection_state_server_managed.py", "service": "kms"} {"check_id": "kms.data-key-of-custom-length-binds-a-multi-pair-context-regardless-of-order", "deployments": [], "key": "kms/data-key-of-custom-length-binds-a-multi-pair-context-regardless-of-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_data_key_of_custom_length_binds_a_multi_pair_context_regardless_of_order.py", "service": "kms"} {"check_id": "kms.data-key-without-plaintext-rewraps-under-a-second-key-and-context", "deployments": [], "key": "kms/data-key-without-plaintext-rewraps-under-a-second-key-and-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncrypt", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_data_key_without_plaintext_rewraps_under_a_second_key_and_context.py", "service": "kms"} {"check_id": "kms.decrypt-blocked-without-kms-decrypt-permission", "deployments": [], "key": "kms/decrypt-blocked-without-kms-decrypt-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_decrypt_blocked_without_kms_decrypt_permission.py", "service": "kms"} {"check_id": "kms.default-key-policy-grants-root-account-access", "deployments": [], "key": "kms/default-key-policy-grants-root-account-access", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_default_key_policy_grants_root_account_access.py", "service": "kms"} {"check_id": "kms.delete-alias", "deployments": [], "key": "kms/delete-alias", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "kms:UpdateAlias"], "path": "behavioral/kms/check_delete_alias.py", "service": "kms"} {"check_id": "kms.deploy-kms-alias-cfn-invalid-target-rejected", "deployments": [], "key": "kms/deploy-kms-alias-cfn-invalid-target-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ListAliases", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_deploy_kms_alias_cfn_invalid_target_rejected.py", "service": "kms"} {"check_id": "kms.deploy-kms-alias-cfn-resolves-target", "deployments": [], "key": "kms/deploy-kms-alias-cfn-resolves-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt"], "path": "behavioral/kms/check_deploy_kms_alias_cfn_resolves_target.py", "service": "kms"} {"check_id": "kms.deploy-kms-alias-cfn-then-resolve", "deployments": [], "key": "kms/deploy-kms-alias-cfn-then-resolve", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ListAliases", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_deploy_kms_alias_cfn_then_resolve.py", "service": "kms"} {"check_id": "kms.deploy-kms-key-cfn-encrypt-decrypt", "deployments": [], "key": "kms/deploy-kms-key-cfn-encrypt-decrypt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_deploy_kms_key_cfn_encrypt_decrypt.py", "service": "kms"} {"check_id": "kms.deploy-kms-key-cfn-then-encrypt-decrypt", "deployments": [], "key": "kms/deploy-kms-key-cfn-then-encrypt-decrypt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_deploy_kms_key_cfn_then_encrypt_decrypt.py", "service": "kms"} {"check_id": "kms.deploy-kms-key-cfn-usable", "deployments": [], "key": "kms/deploy-kms-key-cfn-usable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt"], "path": "behavioral/kms/check_deploy_kms_key_cfn_usable.py", "service": "kms"} {"check_id": "kms.deploy-kms-key-policy-from-template-applied", "deployments": [], "key": "kms/deploy-kms-key-policy-from-template-applied", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:GetKeyPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_deploy_kms_key_policy_from_template_applied.py", "service": "kms"} {"check_id": "kms.deploy-kms-key-rotation-policy-enforced", "deployments": [], "key": "kms/deploy-kms-key-rotation-policy-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "kms:GetKeyRotationStatus", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_deploy_kms_key_rotation_policy_enforced.py", "service": "kms"} {"check_id": "kms.deploy-kms-key-with-policy-cfn-enforced", "deployments": [], "key": "kms/deploy-kms-key-with-policy-cfn-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:Decrypt", "kms:Encrypt", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_deploy_kms_key_with_policy_cfn_enforced.py", "service": "kms"} {"check_id": "kms.derive-shared-secret-is-symmetric", "deployments": [], "key": "kms/derive-shared-secret-is-symmetric", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DeriveSharedSecret", "kms:GetPublicKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_derive_shared_secret_is_symmetric.py", "service": "kms"} {"check_id": "kms.describe-custom-key-stores-shape", "deployments": [], "key": "kms/describe-custom-key-stores-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:DescribeCustomKeyStores"], "path": "behavioral/kms/check_describe_custom_key_stores_shape.py", "service": "kms"} {"check_id": "kms.describe-key", "deployments": [], "key": "kms/describe-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_describe_key.py", "service": "kms"} {"check_id": "kms.disable-enable-key", "deployments": [], "key": "kms/disable-enable-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:Encrypt", "kms:GenerateDataKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_disable_enable_key.py", "service": "kms"} {"check_id": "kms.disable-key-rotation", "deployments": [], "key": "kms/disable-key-rotation", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DisableKeyRotation", "kms:EnableKeyRotation", "kms:GetKeyRotationStatus", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_disable_key_rotation.py", "service": "kms"} {"check_id": "kms.disabled-key-blocks-replicate-key-rejected", "deployments": [], "key": "kms/disabled-key-blocks-replicate-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_disabled_key_blocks_replicate_key_rejected.py", "service": "kms"} {"check_id": "kms.disabled-key-blocks-update-primary-region-rejected", "deployments": [], "key": "kms/disabled-key-blocks-update-primary-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_disabled_key_blocks_update_primary_region_rejected.py", "service": "kms"} {"check_id": "kms.double-schedule-deletion-conflict", "deployments": [], "key": "kms/double-schedule-deletion-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_double_schedule_deletion_conflict.py", "service": "kms"} {"check_id": "kms.e2e-envelope-encryption", "deployments": [], "key": "kms/e2e-envelope-encryption", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:Encrypt", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_e2e_envelope_encryption.py", "service": "kms"} {"check_id": "kms.e2e-envelope-with-imported-key-material", "deployments": [], "key": "kms/e2e-envelope-with-imported-key-material", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_e2e_envelope_with_imported_key_material.py", "service": "kms"} {"check_id": "kms.e2e-external-key-import-and-expire", "deployments": [], "key": "kms/e2e-external-key-import-and-expire", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_e2e_external_key_import_and_expire.py", "service": "kms"} {"check_id": "kms.e2e-grant-based-access-then-retire-blocks-further-use", "deployments": [], "key": "kms/e2e-grant-based-access-then-retire-blocks-further-use", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:RetireGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_e2e_grant_based_access_then_retire_blocks_further_use.py", "service": "kms"} {"check_id": "kms.e2e-import-external-key-material-envelope-flow", "deployments": [], "key": "kms/e2e-import-external-key-material-envelope-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_e2e_import_external_key_material_envelope_flow.py", "service": "kms"} {"check_id": "kms.e2e-import-external-key-material-then-delete-blocks-decrypt", "deployments": [], "key": "kms/e2e-import-external-key-material-then-delete-blocks-decrypt", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_e2e_import_external_key_material_then_delete_blocks_decrypt.py", "service": "kms"} {"check_id": "kms.e2e-key-rotation-and-decrypt-old-ciphertext", "deployments": [], "key": "kms/e2e-key-rotation-and-decrypt-old-ciphertext", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetKeyRotationStatus", "kms:RotateKeyOnDemand", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_e2e_key_rotation_and_decrypt_old_ciphertext.py", "service": "kms"} {"check_id": "kms.e2e-multi-region-replica-failover", "deployments": [], "key": "kms/e2e-multi-region-replica-failover", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReplicateKey", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_e2e_multi_region_replica_failover.py", "service": "kms"} {"check_id": "kms.e2e-multi-region-replica-promotion", "deployments": [], "key": "kms/e2e-multi-region-replica-promotion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_e2e_multi_region_replica_promotion.py", "service": "kms"} {"check_id": "kms.enable-key-rotation", "deployments": [], "key": "kms/enable-key-rotation", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:EnableKeyRotation", "kms:GetKeyRotationStatus", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_enable_key_rotation.py", "service": "kms"} {"check_id": "kms.enable-rotation-on-asymmetric-key-fails", "deployments": [], "key": "kms/enable-rotation-on-asymmetric-key-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:EnableKeyRotation", "kms:GetKeyRotationStatus", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_enable_rotation_on_asymmetric_key_fails.py", "service": "kms"} {"check_id": "kms.encrypt-decrypt-no-keyid", "deployments": [], "key": "kms/encrypt-decrypt-no-keyid", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encrypt_decrypt_no_keyid.py", "service": "kms"} {"check_id": "kms.encrypt-decrypt-roundtrip", "deployments": [], "key": "kms/encrypt-decrypt-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encrypt_decrypt_roundtrip.py", "service": "kms"} {"check_id": "kms.encrypt-max-plaintext-size", "deployments": [], "key": "kms/encrypt-max-plaintext-size", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encrypt_max_plaintext_size.py", "service": "kms"} {"check_id": "kms.encrypt-returns-key-id", "deployments": [], "key": "kms/encrypt-returns-key-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encrypt_returns_key_id.py", "service": "kms"} {"check_id": "kms.encrypt-via-alias", "deployments": [], "key": "kms/encrypt-via-alias", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:Decrypt", "kms:DeleteAlias", "kms:DescribeKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encrypt_via_alias.py", "service": "kms"} {"check_id": "kms.encrypt-with-disabled-key-rejected", "deployments": [], "key": "kms/encrypt-with-disabled-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encrypt_with_disabled_key_rejected.py", "service": "kms"} {"check_id": "kms.encryption-context-aad-binding-integrity", "deployments": [], "key": "kms/encryption-context-aad-binding-integrity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encryption_context_aad_binding_integrity.py", "service": "kms"} {"check_id": "kms.encryption-context-matching", "deployments": [], "key": "kms/encryption-context-matching", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encryption_context_matching.py", "service": "kms"} {"check_id": "kms.encryption-context-mismatch-rejected", "deployments": [], "key": "kms/encryption-context-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encryption_context_mismatch_rejected.py", "service": "kms"} {"check_id": "kms.encryption-context-unicode-round-trip", "deployments": [], "key": "kms/encryption-context-unicode-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_encryption_context_unicode_round_trip.py", "service": "kms"} {"check_id": "kms.error-disabled-key-decrypt", "deployments": [], "key": "kms/error-disabled-key-decrypt", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_error_disabled_key_decrypt.py", "service": "kms"} {"check_id": "kms.error-disabled-key-encrypt", "deployments": [], "key": "kms/error-disabled-key-encrypt", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_error_disabled_key_encrypt.py", "service": "kms"} {"check_id": "kms.error-duplicate-alias", "deployments": [], "key": "kms/error-duplicate-alias", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_error_duplicate_alias.py", "service": "kms"} {"check_id": "kms.error-generate-data-key-disabled", "deployments": [], "key": "kms/error-generate-data-key-disabled", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_error_generate_data_key_disabled.py", "service": "kms"} {"check_id": "kms.error-invalid-ciphertext", "deployments": [], "key": "kms/error-invalid-ciphertext", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_error_invalid_ciphertext.py", "service": "kms"} {"check_id": "kms.error-invalid-key-usage-encrypt", "deployments": [], "key": "kms/error-invalid-key-usage-encrypt", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_error_invalid_key_usage_encrypt.py", "service": "kms"} {"check_id": "kms.error-not-found", "deployments": [], "key": "kms/error-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_error_not_found.py", "service": "kms"} {"check_id": "kms.error-pending-deletion-encrypt", "deployments": [], "key": "kms/error-pending-deletion-encrypt", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:DescribeKey", "kms:EnableKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_error_pending_deletion_encrypt.py", "service": "kms"} {"check_id": "kms.error-sign-with-encrypt-key", "deployments": [], "key": "kms/error-sign-with-encrypt-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "kms:Sign"], "path": "behavioral/kms/check_error_sign_with_encrypt_key.py", "service": "kms"} {"check_id": "kms.external-origin-pending-import-lifecycle", "deployments": [], "key": "kms/external-origin-pending-import-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_external_origin_pending_import_lifecycle.py", "service": "kms"} {"check_id": "kms.generate-data-key", "deployments": [], "key": "kms/generate-data-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_generate_data_key.py", "service": "kms"} {"check_id": "kms.generate-data-key-decrypt-roundtrip", "deployments": [], "key": "kms/generate-data-key-decrypt-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_generate_data_key_decrypt_roundtrip.py", "service": "kms"} {"check_id": "kms.generate-data-key-pair-public-key-is-derived-from-the-returned-private-key", "deployments": [], "key": "kms/generate-data-key-pair-public-key-is-derived-from-the-returned-private-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_generate_data_key_pair_public_key_is_derived_from_the_returned_private_key.py", "service": "kms"} {"check_id": "kms.generate-data-key-pair-roundtrip", "deployments": [], "key": "kms/generate-data-key-pair-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKeyPair", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_generate_data_key_pair_roundtrip.py", "service": "kms"} {"check_id": "kms.generate-data-key-pair-without-plaintext", "deployments": [], "key": "kms/generate-data-key-pair-without-plaintext", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_generate_data_key_pair_without_plaintext.py", "service": "kms"} {"check_id": "kms.generate-data-key-spec-and-bytes-exclusivity", "deployments": [], "key": "kms/generate-data-key-spec-and-bytes-exclusivity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_generate_data_key_spec_and_bytes_exclusivity.py", "service": "kms"} {"check_id": "kms.generate-data-key-with-context", "deployments": [], "key": "kms/generate-data-key-with-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_generate_data_key_with_context.py", "service": "kms"} {"check_id": "kms.generate-data-key-without-plaintext", "deployments": [], "key": "kms/generate-data-key-without-plaintext", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_generate_data_key_without_plaintext.py", "service": "kms"} {"check_id": "kms.generate-mac-equals-a-locally-computed-hmac-over-the-imported-key-material", "deployments": [], "key": "kms/generate-mac-equals-a-locally-computed-hmac-over-the-imported-key-material", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GenerateMac", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion", "kms:VerifyMac"], "path": "behavioral/kms/check_generate_mac_equals_a_locally_computed_hmac_over_the_imported_key_material.py", "service": "kms"} {"check_id": "kms.generate-mac-verify-mac", "deployments": [], "key": "kms/generate-mac-verify-mac", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GenerateMac", "kms:ScheduleKeyDeletion", "kms:VerifyMac"], "path": "behavioral/kms/check_generate_mac_verify_mac.py", "service": "kms"} {"check_id": "kms.get-key-last-usage-invalid-arn-rejected", "deployments": [], "key": "kms/get-key-last-usage-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetKeyLastUsage", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_get_key_last_usage_invalid_arn_rejected.py", "service": "kms"} {"check_id": "kms.get-key-last-usage-monotonic-timestamps", "deployments": [], "key": "kms/get-key-last-usage-monotonic-timestamps", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Encrypt", "kms:GetKeyLastUsage", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_get_key_last_usage_monotonic_timestamps.py", "service": "kms"} {"check_id": "kms.get-key-last-usage-reflects-recent-operations", "deployments": [], "key": "kms/get-key-last-usage-reflects-recent-operations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Encrypt", "kms:GetKeyLastUsage", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_get_key_last_usage_reflects_recent_operations.py", "service": "kms"} {"check_id": "kms.get-key-policy-default", "deployments": [], "key": "kms/get-key-policy-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_get_key_policy_default.py", "service": "kms"} {"check_id": "kms.get-parameters-for-import-native-origin-key-rejected", "deployments": [], "key": "kms/get-parameters-for-import-native-origin-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_get_parameters_for_import_native_origin_key_rejected.py", "service": "kms"} {"check_id": "kms.grant-constraint-mismatched-context-rejected", "deployments": [], "key": "kms/grant-constraint-mismatched-context-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Encrypt", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_constraint_mismatched_context_rejected.py", "service": "kms"} {"check_id": "kms.grant-constraints-encryption-context-round-trip", "deployments": [], "key": "kms/grant-constraints-encryption-context-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_constraints_encryption_context_round_trip.py", "service": "kms"} {"check_id": "kms.grant-constraints-encryption-context-subset-round-trip", "deployments": [], "key": "kms/grant-constraints-encryption-context-subset-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_constraints_encryption_context_subset_round_trip.py", "service": "kms"} {"check_id": "kms.grant-constraints-server-enforced-on-encrypt", "deployments": [], "key": "kms/grant-constraints-server-enforced-on-encrypt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_constraints_server_enforced_on_encrypt.py", "service": "kms"} {"check_id": "kms.grant-encryption-context-constraint-enforced", "deployments": [], "key": "kms/grant-encryption-context-constraint-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:RetireGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_encryption_context_constraint_enforced.py", "service": "kms"} {"check_id": "kms.grant-encryption-context-equals-and-subset-are-enforced-differently", "deployments": [], "key": "kms/grant-encryption-context-equals-and-subset-are-enforced-differently", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_encryption_context_equals_and_subset_are_enforced_differently.py", "service": "kms"} {"check_id": "kms.grant-name-idempotency-and-revoke-semantics", "deployments": [], "key": "kms/grant-name-idempotency-and-revoke-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_name_idempotency_and_revoke_semantics.py", "service": "kms"} {"check_id": "kms.grant-operation-scope-enforced", "deployments": [], "key": "kms/grant-operation-scope-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:RetireGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_operation_scope_enforced.py", "service": "kms"} {"check_id": "kms.grant-revocation-blocks-decrypt-rejected", "deployments": [], "key": "kms/grant-revocation-blocks-decrypt-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_revocation_blocks_decrypt_rejected.py", "service": "kms"} {"check_id": "kms.grant-token-bypasses-listing-eventual-consistency", "deployments": [], "key": "kms/grant-token-bypasses-listing-eventual-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_token_bypasses_listing_eventual_consistency.py", "service": "kms"} {"check_id": "kms.grant-token-enables-immediate-use-before-propagation", "deployments": [], "key": "kms/grant-token-enables-immediate-use-before-propagation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_token_enables_immediate_use_before_propagation.py", "service": "kms"} {"check_id": "kms.grant-token-immediate-use-bypasses-propagation-delay", "deployments": [], "key": "kms/grant-token-immediate-use-bypasses-propagation-delay", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_token_immediate_use_bypasses_propagation_delay.py", "service": "kms"} {"check_id": "kms.grant-token-immediate-visibility", "deployments": [], "key": "kms/grant-token-immediate-visibility", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:DescribeKey", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_token_immediate_visibility.py", "service": "kms"} {"check_id": "kms.grant-with-constraints", "deployments": [], "key": "kms/grant-with-constraints", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_grant_with_constraints.py", "service": "kms"} {"check_id": "kms.hmac-mac-is-deterministic-and-tamper-evident", "deployments": [], "key": "kms/hmac-mac-is-deterministic-and-tamper-evident", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GenerateMac", "kms:ScheduleKeyDeletion", "kms:VerifyMac"], "path": "behavioral/kms/check_hmac_mac_is_deterministic_and_tamper_evident.py", "service": "kms"} {"check_id": "kms.import-key-material-base64-blob-round-trip", "deployments": [], "key": "kms/import-key-material-base64-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_base64_blob_round_trip.py", "service": "kms"} {"check_id": "kms.import-key-material-binary-blob-integrity", "deployments": [], "key": "kms/import-key-material-binary-blob-integrity", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_binary_blob_integrity.py", "service": "kms"} {"check_id": "kms.import-key-material-full-lifecycle", "deployments": [], "key": "kms/import-key-material-full-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_full_lifecycle.py", "service": "kms"} {"check_id": "kms.import-key-material-incorrect-key-material-rejected", "deployments": [], "key": "kms/import-key-material-incorrect-key-material-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_incorrect_key_material_rejected.py", "service": "kms"} {"check_id": "kms.import-key-material-incorrect-material-rejected", "deployments": [], "key": "kms/import-key-material-incorrect-material-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_incorrect_material_rejected.py", "service": "kms"} {"check_id": "kms.import-key-material-lifecycle-pending-to-imported-to-deleted", "deployments": [], "key": "kms/import-key-material-lifecycle-pending-to-imported-to-deleted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_lifecycle_pending_to_imported_to_deleted.py", "service": "kms"} {"check_id": "kms.import-key-material-state-transition", "deployments": [], "key": "kms/import-key-material-state-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_state_transition.py", "service": "kms"} {"check_id": "kms.import-key-material-state-transitions", "deployments": [], "key": "kms/import-key-material-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_state_transitions.py", "service": "kms"} {"check_id": "kms.import-key-material-tampered-blob-rejected", "deployments": [], "key": "kms/import-key-material-tampered-blob-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_tampered_blob_rejected.py", "service": "kms"} {"check_id": "kms.import-key-material-token-single-use-rejected", "deployments": [], "key": "kms/import-key-material-token-single-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ListKeyRotations", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_token_single_use_rejected.py", "service": "kms"} {"check_id": "kms.import-key-material-valid-to-timestamp-preserved", "deployments": [], "key": "kms/import-key-material-valid-to-timestamp-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_valid_to_timestamp_preserved.py", "service": "kms"} {"check_id": "kms.import-key-material-validto-auto-expiry", "deployments": [], "key": "kms/import-key-material-validto-auto-expiry", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_validto_auto_expiry.py", "service": "kms"} {"check_id": "kms.import-key-material-validto-out-of-range-rejected", "deployments": [], "key": "kms/import-key-material-validto-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_validto_out_of_range_rejected.py", "service": "kms"} {"check_id": "kms.import-key-material-wrong-key-state-rejected", "deployments": [], "key": "kms/import-key-material-wrong-key-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_key_material_wrong_key_state_rejected.py", "service": "kms"} {"check_id": "kms.import-token-is-bound-to-the-wrapping-key-pair-it-was-issued-with", "deployments": [], "key": "kms/import-token-is-bound-to-the-wrapping-key-pair-it-was-issued-with", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_token_is_bound_to_the_wrapping_key_pair_it_was_issued_with.py", "service": "kms"} {"check_id": "kms.import-token-ttl-window-enforced", "deployments": [], "key": "kms/import-token-ttl-window-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_import_token_ttl_window_enforced.py", "service": "kms"} {"check_id": "kms.imported-key-material-expiration-reverts-key-state", "deployments": [], "key": "kms/imported-key-material-expiration-reverts-key-state", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_imported_key_material_expiration_reverts_key_state.py", "service": "kms"} {"check_id": "kms.imported-rsa-private-key-signs-identically-to-the-local-key-it-came-from", "deployments": [], "key": "kms/imported-rsa-private-key-signs-identically-to-the-local-key-it-came-from", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetParametersForImport", "kms:GetPublicKey", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_imported_rsa_private_key_signs_identically_to_the_local_key_it_came_from.py", "service": "kms"} {"check_id": "kms.invalid-arn-consistent-across-metadata-ops", "deployments": [], "key": "kms/invalid-arn-consistent-across-metadata-ops", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetKeyLastUsage", "kms:ListKeyPolicies", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_invalid_arn_consistent_across_metadata_ops.py", "service": "kms"} {"check_id": "kms.invalid-arn-rejected-across-read-ops", "deployments": [], "key": "kms/invalid-arn-rejected-across-read-ops", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyLastUsage", "kms:ListKeyPolicies", "kms:ListRetirableGrants", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_invalid_arn_rejected_across_read_ops.py", "service": "kms"} {"check_id": "kms.key-arn-from-another-region-not-found", "deployments": [], "key": "kms/key-arn-from-another-region-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_key_arn_from_another_region_not_found.py", "service": "kms"} {"check_id": "kms.key-description-empty-vs-absent-preserved", "deployments": [], "key": "kms/key-description-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "kms:UpdateKeyDescription"], "path": "behavioral/kms/check_key_description_empty_vs_absent_preserved.py", "service": "kms"} {"check_id": "kms.key-description-unicode-preserved", "deployments": [], "key": "kms/key-description-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "kms:UpdateKeyDescription"], "path": "behavioral/kms/check_key_description_unicode_preserved.py", "service": "kms"} {"check_id": "kms.key-material-expiration-model-auto-expires", "deployments": [], "key": "kms/key-material-expiration-model-auto-expires", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_key_material_expiration_model_auto_expires.py", "service": "kms"} {"check_id": "kms.key-policy-encryption-context-condition-gates-decrypt", "deployments": [], "key": "kms/key-policy-encryption-context-condition-gates-decrypt", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey", "kms:GetKeyPolicy", "kms:ListKeyPolicies", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_key_policy_encryption_context_condition_gates_decrypt.py", "service": "kms"} {"check_id": "kms.key-policy-special-characters-round-trip", "deployments": [], "key": "kms/key-policy-special-characters-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_key_policy_special_characters_round_trip.py", "service": "kms"} {"check_id": "kms.key-rotation-schedule-server-managed", "deployments": [], "key": "kms/key-rotation-schedule-server-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:EnableKeyRotation", "kms:GetKeyRotationStatus", "kms:ListKeyRotations", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_key_rotation_schedule_server_managed.py", "service": "kms"} {"check_id": "kms.kms-asymmetric-signature-verifies-locally-against-the-published-public-key", "deployments": [], "key": "kms/kms-asymmetric-signature-verifies-locally-against-the-published-public-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_kms_asymmetric_signature_verifies_locally_against_the_published_public_key.py", "service": "kms"} {"check_id": "kms.kms-ciphertext-produced-locally-with-the-published-rsa-public-key-decrypts-in-kms", "deployments": [], "key": "kms/kms-ciphertext-produced-locally-with-the-published-rsa-public-key-decrypts-in-kms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_kms_ciphertext_produced_locally_with_the_published_rsa_public_key_decrypts_in_kms.py", "service": "kms"} {"check_id": "kms.kms-cross-region-decrypt-of-a-single-region-ciphertext-rejected", "deployments": [], "key": "kms/kms-cross-region-decrypt-of-a-single-region-ciphertext-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_kms_cross_region_decrypt_of_a_single_region_ciphertext_rejected.py", "service": "kms"} {"check_id": "kms.kms-decrypt-after-delete-imported-key-material-rejected", "deployments": [], "key": "kms/kms-decrypt-after-delete-imported-key-material-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_kms_decrypt_after_delete_imported_key_material_rejected.py", "service": "kms"} {"check_id": "kms.kms-derived-shared-secret-matches-a-locally-computed-ecdh-agreement", "deployments": [], "key": "kms/kms-derived-shared-secret-matches-a-locally-computed-ecdh-agreement", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DeriveSharedSecret", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_kms_derived_shared_secret_matches_a_locally_computed_ecdh_agreement.py", "service": "kms"} {"check_id": "kms.kms-imported-aes-key-material-wrapped-locally-decrypts-what-kms-encrypts", "deployments": [], "key": "kms/kms-imported-aes-key-material-wrapped-locally-decrypts-what-kms-encrypts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_kms_imported_aes_key_material_wrapped_locally_decrypts_what_kms_encrypts.py", "service": "kms"} {"check_id": "kms.kms-multi-region-replica-decrypts-a-ciphertext-its-primary-produced-in-another-region", "deployments": [], "key": "kms/kms-multi-region-replica-decrypts-a-ciphertext-its-primary-produced-in-another-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_kms_multi_region_replica_decrypts_a_ciphertext_its_primary_produced_in_another_region.py", "service": "kms"} {"check_id": "kms.kms-pending-deletion-decrypt-rejected-and-cancel-key-deletion-reopens-the-same-ciphertext", "deployments": [], "key": "kms/kms-pending-deletion-decrypt-rejected-and-cancel-key-deletion-reopens-the-same-ciphertext", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:EnableKey", "kms:Encrypt", "kms:ListKeys", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_kms_pending_deletion_decrypt_rejected_and_cancel_key_deletion_reopens_the_same_ciphertext.py", "service": "kms"} {"check_id": "kms.kms-reencrypt-with-a-mismatched-source-encryption-context-rejected", "deployments": [], "key": "kms/kms-reencrypt-with-a-mismatched-source-encryption-context-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReEncrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_kms_reencrypt_with_a_mismatched_source_encryption_context_rejected.py", "service": "kms"} {"check_id": "kms.kms-rotated-key-still-decrypts-its-pre-rotation-ciphertext-and-reencrypt-to-self-rewraps-it", "deployments": [], "key": "kms/kms-rotated-key-still-decrypts-its-pre-rotation-ciphertext-and-reencrypt-to-self-rewraps-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetKeyRotationStatus", "kms:ListKeyRotations", "kms:ReEncrypt", "kms:RotateKeyOnDemand", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_kms_rotated_key_still_decrypts_its_pre_rotation_ciphertext_and_reencrypt_to_self_rewraps_it.py", "service": "kms"} {"check_id": "kms.list-aliases", "deployments": [], "key": "kms/list-aliases", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:ListAliases", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_list_aliases.py", "service": "kms"} {"check_id": "kms.list-aliases-pagination-and-key-filter", "deployments": [], "key": "kms/list-aliases-pagination-and-key-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ListAliases", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_list_aliases_pagination_and_key_filter.py", "service": "kms"} {"check_id": "kms.list-key-policies-invalid-arn-rejected", "deployments": [], "key": "kms/list-key-policies-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ListKeyPolicies", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_list_key_policies_invalid_arn_rejected.py", "service": "kms"} {"check_id": "kms.list-key-rotations-chronological-order", "deployments": [], "key": "kms/list-key-rotations-chronological-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ListKeyRotations", "kms:RotateKeyOnDemand", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_list_key_rotations_chronological_order.py", "service": "kms"} {"check_id": "kms.list-keys-pagination-marker", "deployments": [], "key": "kms/list-keys-pagination-marker", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ListKeys", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_list_keys_pagination_marker.py", "service": "kms"} {"check_id": "kms.list-resource-tags-empty", "deployments": [], "key": "kms/list-resource-tags-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_list_resource_tags_empty.py", "service": "kms"} {"check_id": "kms.list-retirable-grants-invalid-marker-rejected", "deployments": [], "key": "kms/list-retirable-grants-invalid-marker-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:ListRetirableGrants", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_list_retirable_grants_invalid_marker_rejected.py", "service": "kms"} {"check_id": "kms.list-retirable-grants-pagination-marker-order", "deployments": [], "key": "kms/list-retirable-grants-pagination-marker-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:ListRetirableGrants", "kms:RetireGrant", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_list_retirable_grants_pagination_marker_order.py", "service": "kms"} {"check_id": "kms.mrk-replica-key-rotation-independent-server-managed", "deployments": [], "key": "kms/mrk-replica-key-rotation-independent-server-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:EnableKeyRotation", "kms:GetKeyRotationStatus", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_mrk_replica_key_rotation_independent_server_managed.py", "service": "kms"} {"check_id": "kms.multi-region-key", "deployments": [], "key": "kms/multi-region-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_multi_region_key.py", "service": "kms"} {"check_id": "kms.multi-region-replica-independent-deletion", "deployments": [], "key": "kms/multi-region-replica-independent-deletion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_multi_region_replica_independent_deletion.py", "service": "kms"} {"check_id": "kms.op-alias-without-prefix-rejected", "deployments": [], "key": "kms/op-alias-without-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ListAliases", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_alias_without_prefix_rejected.py", "service": "kms"} {"check_id": "kms.op-cancel-deletion-when-not-pending-rejected", "deployments": [], "key": "kms/op-cancel-deletion-when-not-pending-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_cancel_deletion_when_not_pending_rejected.py", "service": "kms"} {"check_id": "kms.op-custom-key-store-not-found-rejected", "deployments": [], "key": "kms/op-custom-key-store-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:ConnectCustomKeyStore", "kms:DescribeCustomKeyStores", "kms:DisconnectCustomKeyStore"], "path": "behavioral/kms/check_op_custom_key_store_not_found_rejected.py", "service": "kms"} {"check_id": "kms.op-delete-nonexistent-alias-rejected", "deployments": [], "key": "kms/op-delete-nonexistent-alias-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ListAliases", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_delete_nonexistent_alias_rejected.py", "service": "kms"} {"check_id": "kms.op-encrypt-oversized-plaintext-rejected", "deployments": [], "key": "kms/op-encrypt-oversized-plaintext-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_encrypt_oversized_plaintext_rejected.py", "service": "kms"} {"check_id": "kms.op-encryption-algorithm-key-mismatch-rejected", "deployments": [], "key": "kms/op-encryption-algorithm-key-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_encryption_algorithm_key_mismatch_rejected.py", "service": "kms"} {"check_id": "kms.op-generate-random-oversized-rejected", "deployments": [], "key": "kms/op-generate-random-oversized-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:GenerateRandom"], "path": "behavioral/kms/check_op_generate_random_oversized_rejected.py", "service": "kms"} {"check_id": "kms.op-import-apis-on-kms-origin-rejected", "deployments": [], "key": "kms/op-import-apis-on-kms-origin-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DeleteImportedKeyMaterial", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_import_apis_on_kms_origin_rejected.py", "service": "kms"} {"check_id": "kms.op-mac-algorithm-key-mismatch-rejected", "deployments": [], "key": "kms/op-mac-algorithm-key-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GenerateMac", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_mac_algorithm_key_mismatch_rejected.py", "service": "kms"} {"check_id": "kms.op-schedule-deletion-window-out-of-range-rejected", "deployments": [], "key": "kms/op-schedule-deletion-window-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_schedule_deletion_window_out_of_range_rejected.py", "service": "kms"} {"check_id": "kms.op-tampered-ciphertext-rejected", "deployments": [], "key": "kms/op-tampered-ciphertext-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_op_tampered_ciphertext_rejected.py", "service": "kms"} {"check_id": "kms.op-unknown-grant-id-rejected", "deployments": [], "key": "kms/op-unknown-grant-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RetireGrant", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_op_unknown_grant_id_rejected.py", "service": "kms"} {"check_id": "kms.put-key-policy", "deployments": [], "key": "kms/put-key-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_put_key_policy.py", "service": "kms"} {"check_id": "kms.put-key-policy-concurrent-last-writer-wins", "deployments": [], "key": "kms/put-key-policy-concurrent-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_put_key_policy_concurrent_last_writer_wins.py", "service": "kms"} {"check_id": "kms.put-key-policy-lockout-fails", "deployments": [], "key": "kms/put-key-policy-lockout-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_put_key_policy_lockout_fails.py", "service": "kms"} {"check_id": "kms.put-key-policy-malformed-json-rejected", "deployments": [], "key": "kms/put-key-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_put_key_policy_malformed_json_rejected.py", "service": "kms"} {"check_id": "kms.put-key-policy-rejection-leaves-policy-intact", "deployments": [], "key": "kms/put-key-policy-rejection-leaves-policy-intact", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetKeyPolicy", "kms:ListKeyPolicies", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_put_key_policy_rejection_leaves_policy_intact.py", "service": "kms"} {"check_id": "kms.replicate-key-already-exists-rejected", "deployments": [], "key": "kms/replicate-key-already-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_replicate_key_already_exists_rejected.py", "service": "kms"} {"check_id": "kms.replicate-key-creates-active-multi-region-replica", "deployments": [], "key": "kms/replicate-key-creates-active-multi-region-replica", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_replicate_key_creates_active_multi_region_replica.py", "service": "kms"} {"check_id": "kms.replicate-key-disabled-account-rejected", "deployments": [], "key": "kms/replicate-key-disabled-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_replicate_key_disabled_account_rejected.py", "service": "kms"} {"check_id": "kms.replicate-key-disabled-key-rejected", "deployments": [], "key": "kms/replicate-key-disabled-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_replicate_key_disabled_key_rejected.py", "service": "kms"} {"check_id": "kms.replicate-key-disabled-source-rejected", "deployments": [], "key": "kms/replicate-key-disabled-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_replicate_key_disabled_source_rejected.py", "service": "kms"} {"check_id": "kms.replicate-key-invalid-arn-rejected", "deployments": [], "key": "kms/replicate-key-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_replicate_key_invalid_arn_rejected.py", "service": "kms"} {"check_id": "kms.replicate-key-multi-region-lifecycle", "deployments": [], "key": "kms/replicate-key-multi-region-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_replicate_key_multi_region_lifecycle.py", "service": "kms"} {"check_id": "kms.replicate-key-tags-and-policy-preserved-across-region", "deployments": [], "key": "kms/replicate-key-tags-and-policy-preserved-across-region", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetKeyPolicy", "kms:ListResourceTags", "kms:ReplicateKey", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_replicate_key_tags_and_policy_preserved_across_region.py", "service": "kms"} {"check_id": "kms.replicate-key-then-update-primary-region", "deployments": [], "key": "kms/replicate-key-then-update-primary-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ReplicateKey", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_replicate_key_then_update_primary_region.py", "service": "kms"} {"check_id": "kms.reserved-tag-prefix-rejected", "deployments": [], "key": "kms/reserved-tag-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "kms:TagResource"], "path": "behavioral/kms/check_reserved_tag_prefix_rejected.py", "service": "kms"} {"check_id": "kms.retire-grant", "deployments": [], "key": "kms/retire-grant", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RetireGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_retire_grant.py", "service": "kms"} {"check_id": "kms.retire-grant-and-list-retirable", "deployments": [], "key": "kms/retire-grant-and-list-retirable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:ListRetirableGrants", "kms:RetireGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_retire_grant_and_list_retirable.py", "service": "kms"} {"check_id": "kms.retired-grant-cannot-be-used", "deployments": [], "key": "kms/retired-grant-cannot-be-used", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:RetireGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_retired_grant_cannot_be_used.py", "service": "kms"} {"check_id": "kms.revoke-grant", "deployments": [], "key": "kms/revoke-grant", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateGrant", "kms:CreateKey", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_revoke_grant.py", "service": "kms"} {"check_id": "kms.revoked-grant-cannot-be-used", "deployments": [], "key": "kms/revoked-grant-cannot-be-used", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:RetireGrant", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_revoked_grant_cannot_be_used.py", "service": "kms"} {"check_id": "kms.rotate-key-on-demand-asymmetric-key-rejected", "deployments": [], "key": "kms/rotate-key-on-demand-asymmetric-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ListKeyRotations", "kms:RotateKeyOnDemand", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_rotate_key_on_demand_asymmetric_key_rejected.py", "service": "kms"} {"check_id": "kms.rotate-key-on-demand-records-rotation", "deployments": [], "key": "kms/rotate-key-on-demand-records-rotation", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyRotationStatus", "kms:ListKeyRotations", "kms:RotateKeyOnDemand", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_rotate_key_on_demand_records_rotation.py", "service": "kms"} {"check_id": "kms.rotate-key-on-demand-unsupported-key-type-rejected", "deployments": [], "key": "kms/rotate-key-on-demand-unsupported-key-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyRotationStatus", "kms:ListKeyRotations", "kms:RotateKeyOnDemand", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_rotate_key_on_demand_unsupported_key_type_rejected.py", "service": "kms"} {"check_id": "kms.rotation-default-off", "deployments": [], "key": "kms/rotation-default-off", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyRotationStatus", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_rotation_default_off.py", "service": "kms"} {"check_id": "kms.rsa-oaep-plaintext-ceiling-by-modulus", "deployments": [], "key": "kms/rsa-oaep-plaintext-ceiling-by-modulus", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_rsa_oaep_plaintext_ceiling_by_modulus.py", "service": "kms"} {"check_id": "kms.schedule-cancel-key-deletion", "deployments": [], "key": "kms/schedule-cancel-key-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_schedule_cancel_key_deletion.py", "service": "kms"} {"check_id": "kms.schedule-key-deletion", "deployments": [], "key": "kms/schedule-key-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_schedule_key_deletion.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-bit-flipped-ciphertext-never-yields-different-plaintext-rejected", "deployments": [], "key": "kms/sep-kms-key-scope-bit-flipped-ciphertext-never-yields-different-plaintext-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_bit_flipped_ciphertext_never_yields_different_plaintext_rejected.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-context-absent-at-encrypt-present-at-decrypt-rejected", "deployments": [], "key": "kms/sep-kms-key-scope-context-absent-at-encrypt-present-at-decrypt-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_context_absent_at_encrypt_present_at_decrypt_rejected.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-context-map-is-order-independent-on-decrypt", "deployments": [], "key": "kms/sep-kms-key-scope-context-map-is-order-independent-on-decrypt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_context_map_is_order_independent_on_decrypt.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-cross-key-decrypt-fails-while-keyless-decrypt-names-the-wrapping-key", "deployments": [], "key": "kms/sep-kms-key-scope-cross-key-decrypt-fails-while-keyless-decrypt-names-the-wrapping-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_cross_key_decrypt_fails_while_keyless_decrypt_names_the_wrapping_key.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-data-key-halves-correspond-and-rewrap-moves-key-scope", "deployments": [], "key": "kms/sep-kms-key-scope-data-key-halves-correspond-and-rewrap-moves-key-scope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_data_key_halves_correspond_and_rewrap_moves_key_scope.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-disabled-key-rejects-only-its-own-ciphertext", "deployments": [], "key": "kms/sep-kms-key-scope-disabled-key-rejects-only-its-own-ciphertext", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_disabled_key_rejects_only_its_own_ciphertext.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-grant-context-equals-matches-reordered-context-but-absent-context-denied", "deployments": [], "key": "kms/sep-kms-key-scope-grant-context-equals-matches-reordered-context-but-absent-context-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetUser", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_grant_context_equals_matches_reordered_context_but_absent_context_denied.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-grant-on-one-key-does-not-authorize-another-key-denied", "deployments": [], "key": "kms/sep-kms-key-scope-grant-on-one-key-does-not-authorize-another-key-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetUser", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:RevokeGrant", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_grant_on_one_key_does_not_authorize_another_key_denied.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-identical-imported-material-does-not-make-keys-interchangeable-rejected", "deployments": [], "key": "kms/sep-kms-key-scope-identical-imported-material-does-not-make-keys-interchangeable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_sep_kms_key_scope_identical_imported_material_does_not_make_keys_interchangeable_rejected.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-mac-from-one-hmac-key-fails-verify-under-another-rejected", "deployments": [], "key": "kms/sep-kms-key-scope-mac-from-one-hmac-key-fails-verify-under-another-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GenerateMac", "kms:ScheduleKeyDeletion", "kms:VerifyMac"], "path": "behavioral/kms/check_sep_kms_key_scope_mac_from_one_hmac_key_fails_verify_under_another_rejected.py", "service": "kms"} {"check_id": "kms.sep-kms-key-scope-signature-from-one-key-fails-verify-under-another-rejected", "deployments": [], "key": "kms/sep-kms-key-scope-signature-from-one-key-fails-verify-under-another-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_sep_kms_key_scope_signature_from_one_key_fails_verify_under_another_rejected.py", "service": "kms"} {"check_id": "kms.sign-message-type-raw-and-digest-agree-only-when-the-digest-matches", "deployments": [], "key": "kms/sign-message-type-raw-and-digest-agree-only-when-the-digest-matches", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_sign_message_type_raw_and_digest_agree_only_when_the_digest_matches.py", "service": "kms"} {"check_id": "kms.sign-secp256k1-digest-cross-verify", "deployments": [], "key": "kms/sign-secp256k1-digest-cross-verify", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_sign_secp256k1_digest_cross_verify.py", "service": "kms"} {"check_id": "kms.sign-verify-ecc", "deployments": [], "key": "kms/sign-verify-ecc", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_sign_verify_ecc.py", "service": "kms"} {"check_id": "kms.sign-verify-ecc-p384-signs-only-with-ecdsa-sha-384", "deployments": [], "key": "kms/sign-verify-ecc-p384-signs-only-with-ecdsa-sha-384", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_sign_verify_ecc_p384_signs_only_with_ecdsa_sha_384.py", "service": "kms"} {"check_id": "kms.sign-verify-ed25519-raw-and-prehash", "deployments": [], "key": "kms/sign-verify-ed25519-raw-and-prehash", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_sign_verify_ed25519_raw_and_prehash.py", "service": "kms"} {"check_id": "kms.sign-verify-rsa", "deployments": [], "key": "kms/sign-verify-rsa", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_sign_verify_rsa.py", "service": "kms"} {"check_id": "kms.symmetric-ciphertext-is-randomised-and-length-linear-in-the-plaintext", "deployments": [], "key": "kms/symmetric-ciphertext-is-randomised-and-length-linear-in-the-plaintext", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:Encrypt", "kms:ScheduleKeyDeletion"], "path": "behavioral/kms/check_symmetric_ciphertext_is_randomised_and_length_linear_in_the_plaintext.py", "service": "kms"} {"check_id": "kms.tag-reserved-prefix-fails", "deployments": [], "key": "kms/tag-reserved-prefix-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "kms:TagResource"], "path": "behavioral/kms/check_tag_reserved_prefix_fails.py", "service": "kms"} {"check_id": "kms.tag-resource", "deployments": [], "key": "kms/tag-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "kms:TagResource"], "path": "behavioral/kms/check_tag_resource.py", "service": "kms"} {"check_id": "kms.tag-value-empty-string-preserved", "deployments": [], "key": "kms/tag-value-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "kms:TagResource", "kms:UntagResource"], "path": "behavioral/kms/check_tag_value_empty_string_preserved.py", "service": "kms"} {"check_id": "kms.tag-value-unicode-round-trip", "deployments": [], "key": "kms/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "kms:TagResource"], "path": "behavioral/kms/check_tag_value_unicode_round_trip.py", "service": "kms"} {"check_id": "kms.untag-resource", "deployments": [], "key": "kms/untag-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "kms:TagResource", "kms:UntagResource"], "path": "behavioral/kms/check_untag_resource.py", "service": "kms"} {"check_id": "kms.update-alias", "deployments": [], "key": "kms/update-alias", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:ListAliases", "kms:ScheduleKeyDeletion", "kms:UpdateAlias"], "path": "behavioral/kms/check_update_alias.py", "service": "kms"} {"check_id": "kms.update-custom-key-store-reconfigures-cluster", "deployments": [], "key": "kms/update-custom-key-store-reconfigures-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateCustomKeyStore", "kms:DescribeCustomKeyStores", "kms:UpdateCustomKeyStore"], "path": "behavioral/kms/check_update_custom_key_store_reconfigures_cluster.py", "service": "kms"} {"check_id": "kms.update-custom-key-store-requires-valid-configuration", "deployments": [], "key": "kms/update-custom-key-store-requires-valid-configuration", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:DescribeCustomKeyStores", "kms:UpdateCustomKeyStore"], "path": "behavioral/kms/check_update_custom_key_store_requires_valid_configuration.py", "service": "kms"} {"check_id": "kms.update-key-description", "deployments": [], "key": "kms/update-key-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "kms:UpdateKeyDescription"], "path": "behavioral/kms/check_update_key_description.py", "service": "kms"} {"check_id": "kms.update-primary-region-disabled-key-rejected", "deployments": [], "key": "kms/update-primary-region-disabled-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_update_primary_region_disabled_key_rejected.py", "service": "kms"} {"check_id": "kms.update-primary-region-disabled-replica-rejected", "deployments": [], "key": "kms/update-primary-region-disabled-replica-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ReplicateKey", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_update_primary_region_disabled_replica_rejected.py", "service": "kms"} {"check_id": "kms.update-primary-region-invalid-arn-rejected", "deployments": [], "key": "kms/update-primary-region-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion", "sts:GetCallerIdentity"], "path": "behavioral/kms/check_update_primary_region_invalid_arn_rejected.py", "service": "kms"} {"check_id": "kms.update-primary-region-lifecycle", "deployments": [], "key": "kms/update-primary-region-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_update_primary_region_lifecycle.py", "service": "kms"} {"check_id": "kms.update-primary-region-non-multiregion-key-rejected", "deployments": [], "key": "kms/update-primary-region-non-multiregion-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_update_primary_region_non_multiregion_key_rejected.py", "service": "kms"} {"check_id": "kms.update-primary-region-non-primary-key-rejected", "deployments": [], "key": "kms/update-primary-region-non-primary-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_update_primary_region_non_primary_key_rejected.py", "service": "kms"} {"check_id": "kms.update-primary-region-on-non-multi-region-key-rejected", "deployments": [], "key": "kms/update-primary-region-on-non-multi-region-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_update_primary_region_on_non_multi_region_key_rejected.py", "service": "kms"} {"check_id": "kms.update-primary-region-on-replica-rejected", "deployments": [], "key": "kms/update-primary-region-on-replica-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_update_primary_region_on_replica_rejected.py", "service": "kms"} {"check_id": "kms.update-primary-region-promotes-replica", "deployments": [], "key": "kms/update-primary-region-promotes-replica", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ReplicateKey", "kms:ScheduleKeyDeletion", "kms:UpdatePrimaryRegion"], "path": "behavioral/kms/check_update_primary_region_promotes_replica.py", "service": "kms"} {"check_id": "kms.verify-mac-wrong-message", "deployments": [], "key": "kms/verify-mac-wrong-message", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GenerateMac", "kms:ScheduleKeyDeletion", "kms:VerifyMac"], "path": "behavioral/kms/check_verify_mac_wrong_message.py", "service": "kms"} {"check_id": "kms.verify-tampered-signature-fails", "deployments": [], "key": "kms/verify-tampered-signature-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_verify_tampered_signature_fails.py", "service": "kms"} {"check_id": "kms.verify-wrong-message", "deployments": [], "key": "kms/verify-wrong-message", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "kms:Sign", "kms:Verify"], "path": "behavioral/kms/check_verify_wrong_message.py", "service": "kms"} {"check_id": "kms__lambda.deep-lambda-2-env-kms-absent-key-rejected-and-state-unchanged", "deployments": [], "key": "kms__lambda/deep-lambda-2-env-kms-absent-key-rejected-and-state-unchanged", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/kms__lambda/check_deep_lambda_2_env_kms_absent_key_rejected_and_state_unchanged.py", "service": "kms__lambda"} {"check_id": "kms__lambda.deep-lambda-2-env-kms-disable-blocks-cold-invoke-then-enable-restores", "deployments": [], "key": "kms__lambda/deep-lambda-2-env-kms-disable-blocks-cold-invoke-then-enable-restores", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/kms__lambda/check_deep_lambda_2_env_kms_disable_blocks_cold_invoke_then_enable_restores.py", "service": "kms__lambda"} {"check_id": "kms__lambda.kms-grant-authorizes-lambda-decrypt-then-revoke-denies", "deployments": [], "key": "kms__lambda/kms-grant-authorizes-lambda-decrypt-then-revoke-denies", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateGrant", "kms:CreateKey", "kms:Decrypt", "kms:DisableKey", "kms:Encrypt", "kms:ListGrants", "kms:RevokeGrant", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/kms__lambda/check_kms_grant_authorizes_lambda_decrypt_then_revoke_denies.py", "service": "kms__lambda"} {"check_id": "kms__lambda.kms-key-policy-deny-overrides-lambda-identity-allow", "deployments": [], "key": "kms__lambda/kms-key-policy-deny-overrides-lambda-identity-allow", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:Decrypt", "kms:DisableKey", "kms:Encrypt", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/kms__lambda/check_kms_key_policy_deny_overrides_lambda_identity_allow.py", "service": "kms__lambda"} {"check_id": "kms__lambda__s3.lambda-reads-sse-kms-object-via-customer-key-arn", "deployments": [], "key": "kms__lambda__s3/lambda-reads-sse-kms-object-via-customer-key-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/kms__lambda__s3/check_lambda_reads_sse_kms_object_via_customer_key_arn.py", "service": "kms__lambda__s3"} {"check_id": "kms__lambda__s3.sse-kms-object-unreadable-when-key-policy-denies-role", "deployments": [], "key": "kms__lambda__s3/sse-kms-object-unreadable-when-key-policy-denies-role", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:DisableKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/kms__lambda__s3/check_sse_kms_object_unreadable_when_key_policy_denies_role.py", "service": "kms__lambda__s3"} {"check_id": "kms__lambda__sqs.esm-on-sse-kms-queue-withholds-invocation-until-the-role-can-decrypt", "deployments": [], "key": "kms__lambda__sqs/esm-on-sse-kms-queue-withholds-invocation-until-the-role-can-decrypt", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/kms__lambda__sqs/check_esm_on_sse_kms_queue_withholds_invocation_until_the_role_can_decrypt.py", "service": "kms__lambda__sqs"} {"check_id": "kms__lambda__ssm.lambda-reads-securestring-parameter-encrypted-with-customer-key", "deployments": [], "key": "kms__lambda__ssm/lambda-reads-securestring-parameter-encrypted-with-customer-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/kms__lambda__ssm/check_lambda_reads_securestring_parameter_encrypted_with_customer_key.py", "service": "kms__lambda__ssm"} {"check_id": "kms__logs.associate-kms-key-alias-versus-key-arn", "deployments": [], "key": "kms__logs/associate-kms-key-alias-versus-key-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey"], "path": "behavioral/kms__logs/check_associate_kms_key_alias_versus_key_arn.py", "service": "kms__logs"} {"check_id": "kms__logs.xsvc-logs-2-associate-disabled-cmk-rejected-until-enabled", "deployments": [], "key": "kms__logs/xsvc-logs-2-associate-disabled-cmk-rejected-until-enabled", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/kms__logs/check_xsvc_logs_2_associate_disabled_cmk_rejected_until_enabled.py", "service": "kms__logs"} {"check_id": "kms__logs.xsvc-logs-2-cmk-scoped-to-group-a-rejects-associate-on-group-b", "deployments": [], "key": "kms__logs/xsvc-logs-2-cmk-scoped-to-group-a-rejects-associate-on-group-b", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/kms__logs/check_xsvc_logs_2_cmk_scoped_to_group_a_rejects_associate_on_group_b.py", "service": "kms__logs"} {"check_id": "kms__logs.xsvc-logs-2-create-log-group-with-out-of-scope-cmk-rejected", "deployments": [], "key": "kms__logs/xsvc-logs-2-create-log-group-with-out-of-scope-cmk-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/kms__logs/check_xsvc_logs_2_create_log_group_with_out_of_scope_cmk_rejected.py", "service": "kms__logs"} {"check_id": "kms__logs.xsvc-logs-2-subscription-filter-on-cmk-group-delivers-plaintext-to-kinesis", "deployments": [], "key": "kms__logs/xsvc-logs-2-subscription-filter-on-cmk-group-delivers-plaintext-to-kinesis", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/kms__logs/check_xsvc_logs_2_subscription_filter_on_cmk_group_delivers_plaintext_to_kinesis.py", "service": "kms__logs"} {"check_id": "kms__logs__stepfunctions__xray.cmk-encrypted-execution-still-delivers-to-cloudwatch-logs-and-xray", "deployments": [], "key": "kms__logs__stepfunctions__xray/cmk-encrypted-execution-still-delivers-to-cloudwatch-logs-and-xray", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:StartSyncExecution", "sts:GetCallerIdentity", "xray:BatchGetTraces"], "path": "behavioral/kms__logs__stepfunctions__xray/check_cmk_encrypted_execution_still_delivers_to_cloudwatch_logs_and_xray.py", "service": "kms__logs__stepfunctions__xray"} {"check_id": "kms__logs__stepfunctions__xray.disabled-cmk-blocks-new-logged-and-traced-execution", "deployments": [], "key": "kms__logs__stepfunctions__xray/disabled-cmk-blocks-new-logged-and-traced-execution", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution", "sts:GetCallerIdentity", "xray:BatchGetTraces"], "path": "behavioral/kms__logs__stepfunctions__xray/check_disabled_cmk_blocks_new_logged_and_traced_execution.py", "service": "kms__logs__stepfunctions__xray"} {"check_id": "kms__opensearch.xsvc-opensearch-3-cmk-domain-echoes-key-grants-and-serves-search", "deployments": [], "key": "kms__opensearch/xsvc-opensearch-3-cmk-domain-echoes-key-grants-and-serves-search", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["kms:CreateKey", "kms:ListGrants", "kms:ScheduleKeyDeletion", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/kms__opensearch/check_xsvc_opensearch_3_cmk_domain_echoes_key_grants_and_serves_search.py", "service": "kms__opensearch"} {"check_id": "kms__opensearch.xsvc-opensearch-3-cross-region-cmk-create-domain-rejected", "deployments": [], "key": "kms__opensearch/xsvc-opensearch-3-cross-region-cmk-create-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain"], "path": "behavioral/kms__opensearch/check_xsvc_opensearch_3_cross_region_cmk_create_domain_rejected.py", "service": "kms__opensearch"} {"check_id": "kms__opensearch.xsvc-opensearch-3-disabled-cmk-create-domain-rejected", "deployments": [], "key": "kms__opensearch/xsvc-opensearch-3-disabled-cmk-create-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain"], "path": "behavioral/kms__opensearch/check_xsvc_opensearch_3_disabled_cmk_create_domain_rejected.py", "service": "kms__opensearch"} {"check_id": "kms__pipes__sqs.pipes-create-pipe-nonexistent-kms-key-identifier-rejected", "deployments": [], "key": "kms__pipes__sqs/pipes-create-pipe-nonexistent-kms-key-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:DescribeKey", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/kms__pipes__sqs/check_pipes_create_pipe_nonexistent_kms_key_identifier_rejected.py", "service": "kms__pipes__sqs"} {"check_id": "kms__pipes__sqs.pipes-log-configuration-absent-by-default-and-cmk-key-identifier-echoed", "deployments": [], "key": "kms__pipes__sqs/pipes-log-configuration-absent-by-default-and-cmk-key-identifier-echoed", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/kms__pipes__sqs/check_pipes_log_configuration_absent_by_default_and_cmk_key_identifier_echoed.py", "service": "kms__pipes__sqs"} {"check_id": "kms__rds.storage-encrypted-without-kms-key-uses-aws-managed-key", "deployments": [], "key": "kms__rds/storage-encrypted-without-kms-key-uses-aws-managed-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:DescribeKey", "kms:ListAliases", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/kms__rds/check_storage_encrypted_without_kms_key_uses_aws_managed_key.py", "service": "kms__rds"} {"check_id": "kms__rds.xsvc-rds-2-disabled-cmk-rejected-for-encrypted-create-and-snapshot-copy", "deployments": [], "key": "kms__rds/xsvc-rds-2-disabled-cmk-rejected-for-encrypted-create-and-snapshot-copy", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "rds:CopyDBSnapshot", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeOrderableDBInstanceOptions"], "path": "behavioral/kms__rds/check_xsvc_rds_2_disabled_cmk_rejected_for_encrypted_create_and_snapshot_copy.py", "service": "kms__rds"} {"check_id": "kms__rds__secretsmanager.xsvc-rds-2-managed-master-secret-under-cmk-rejects-direct-writes", "deployments": [], "key": "kms__rds__secretsmanager/xsvc-rds-2-managed-master-secret-under-cmk-rejects-direct-writes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/kms__rds__secretsmanager/check_xsvc_rds_2_managed_master_secret_under_cmk_rejects_direct_writes.py", "service": "kms__rds__secretsmanager"} {"check_id": "kms__resourcegroupstaggingapi.key-tags-visible-through-get-resources-both-directions", "deployments": [], "key": "kms__resourcegroupstaggingapi/key-tags-visible-through-get-resources-both-directions", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "kms:TagResource", "resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources"], "path": "behavioral/kms__resourcegroupstaggingapi/check_key_tags_visible_through_get_resources_both_directions.py", "service": "kms__resourcegroupstaggingapi"} {"check_id": "kms__resourcegroupstaggingapi.tag-resources-nonexistent-key-rejected-per-resource", "deployments": [], "key": "kms__resourcegroupstaggingapi/tag-resources-nonexistent-key-rejected-per-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ListResourceTags", "kms:ScheduleKeyDeletion", "resourcegroupstaggingapi:TagResources", "sts:GetCallerIdentity"], "path": "behavioral/kms__resourcegroupstaggingapi/check_tag_resources_nonexistent_key_rejected_per_resource.py", "service": "kms__resourcegroupstaggingapi"} {"check_id": "kms__s3.bucket-key-switches-the-kms-encryption-context-from-object-arn-to-bucket-arn", "deployments": [], "key": "kms__s3/bucket-key-switches-the-kms-encryption-context-from-object-arn-to-bucket-arn", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:GetObject", "s3:HeadObject", "s3:PutBucketEncryption", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/kms__s3/check_bucket_key_switches_the_kms_encryption_context_from_object_arn_to_bucket_arn.py", "service": "kms__s3"} {"check_id": "kms__s3.kmsenvelope-client-side-envelope-through-s3-round-trips-the-exact-bytes-and-the-stored-object-is-ciphertext", "deployments": [], "key": "kms__s3/kmsenvelope-client-side-envelope-through-s3-round-trips-the-exact-bytes-and-the-stored-object-is-ciphertext", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/kms__s3/check_kmsenvelope_client_side_envelope_through_s3_round_trips_the_exact_bytes_and_the_stored_object_is_ciphertext.py", "service": "kms__s3"} {"check_id": "kms__s3.kmsenvelope-deny-of-generate-data-key-blocks-the-default-encrypted-write-while-earlier-objects-stay-readable", "deployments": [], "key": "kms__s3/kmsenvelope-deny-of-generate-data-key-blocks-the-default-encrypted-write-while-earlier-objects-stay-readable", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketEncryption", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/kms__s3/check_kmsenvelope_deny_of_generate_data_key_blocks_the_default_encrypted_write_while_earlier_objects_stay_readable.py", "service": "kms__s3"} {"check_id": "kms__s3.kmsenvelope-key-policy-deny-of-kms-decrypt-makes-the-sse-kms-object-unreadable-while-head-and-list-still-see-it", "deployments": [], "key": "kms__s3/kmsenvelope-key-policy-deny-of-kms-decrypt-makes-the-sse-kms-object-unreadable-while-head-and-list-still-see-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/kms__s3/check_kmsenvelope_key_policy_deny_of_kms_decrypt_makes_the_sse_kms_object_unreadable_while_head_and_list_still_see_it.py", "service": "kms__s3"} {"check_id": "kms__s3.kmsenvelope-mismatched-encryption-context-is-refused-when-unwrapping-the-stored-data-key", "deployments": [], "key": "kms__s3/kmsenvelope-mismatched-encryption-context-is-refused-when-unwrapping-the-stored-data-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/kms__s3/check_kmsenvelope_mismatched_encryption_context_is_refused_when_unwrapping_the_stored_data_key.py", "service": "kms__s3"} {"check_id": "kms__s3.kmsenvelope-sse-kms-write-rejected-when-the-cmk-lives-in-a-different-region-than-the-bucket", "deployments": [], "key": "kms__s3/kmsenvelope-sse-kms-write-rejected-when-the-cmk-lives-in-a-different-region-than-the-bucket", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLocation", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/kms__s3/check_kmsenvelope_sse_kms_write_rejected_when_the_cmk_lives_in_a_different_region_than_the_bucket.py", "service": "kms__s3"} {"check_id": "kms__s3.kmsenvelope-via-service-condition-permits-the-s3-envelope-path-and-denies-the-same-callers-direct-kms-use", "deployments": [], "key": "kms__s3/kmsenvelope-via-service-condition-permits-the-s3-envelope-path-and-denies-the-same-callers-direct-kms-use", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Decrypt", "kms:GenerateDataKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/kms__s3/check_kmsenvelope_via_service_condition_permits_the_s3_envelope_path_and_denies_the_same_callers_direct_kms_use.py", "service": "kms__s3"} {"check_id": "kms__s3.sep-kms-key-scope-sse-kms-object-unreadable-while-its-key-is-disabled-rejected", "deployments": [], "key": "kms__s3/sep-kms-key-scope-sse-kms-object-unreadable-while-its-key-is-disabled-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/kms__s3/check_sep_kms_key_scope_sse_kms_object_unreadable_while_its_key_is_disabled_rejected.py", "service": "kms__s3"} {"check_id": "kms__s3.sep-kms-key-scope-sse-kms-write-under-a-disabled-key-rejected-and-no-object-created", "deployments": [], "key": "kms__s3/sep-kms-key-scope-sse-kms-write-under-a-disabled-key-rejected-and-no-object-created", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/kms__s3/check_sep_kms_key_scope_sse_kms_write_under_a_disabled_key_rejected_and_no_object_created.py", "service": "kms__s3"} {"check_id": "kms__s3.sse-kms-alias-resolves-to-key-arn-in-head-object", "deployments": [], "key": "kms__s3/sse-kms-alias-resolves-to-key-arn-in-head-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketEncryption", "s3:PutObject"], "path": "behavioral/kms__s3/check_sse_kms_alias_resolves_to_key_arn_in_head_object.py", "service": "kms__s3"} {"check_id": "kms__s3.sse-kms-nonexistent-alias-rejected-and-no-object-created", "deployments": [], "key": "kms__s3/sse-kms-nonexistent-alias-rejected-and-no-object-created", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/kms__s3/check_sse_kms_nonexistent_alias_rejected_and_no_object_created.py", "service": "kms__s3"} {"check_id": "kms__s3__sqs.xsvc-s3-2-notification-config-to-a-kms-encrypted-queue-is-rejected-until-the-key-policy-grants-this-bucket", "deployments": [], "key": "kms__s3__sqs/xsvc-s3-2-notification-config-to-a-kms-encrypted-queue-is-rejected-until-the-key-policy-grants-this-bucket", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/kms__s3__sqs/check_xsvc_s3_2_notification_config_to_a_kms_encrypted_queue_is_rejected_until_the_key_policy_grants_this_bucket.py", "service": "kms__s3__sqs"} {"check_id": "kms__s3vectors.disabled-kms-key-refuses-new-vector-buckets-and-indexes-until-re-enabled", "deployments": [], "key": "kms__s3vectors/disabled-kms-key-refuses-new-vector-buckets-and-indexes-until-re-enabled", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket", "s3vectors:GetVectors", "s3vectors:PutVectors", "s3vectors:QueryVectors"], "path": "behavioral/kms__s3vectors/check_disabled_kms_key_refuses_new_vector_buckets_and_indexes_until_re_enabled.py", "service": "kms__s3vectors"} {"check_id": "kms__secretsmanager.get-secret-value-denied-when-the-cmk-decrypt-permission-is-removed", "deployments": [], "key": "kms__secretsmanager/get-secret-value-denied-when-the-cmk-decrypt-permission-is-removed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecrets"], "path": "behavioral/kms__secretsmanager/check_get_secret_value_denied_when_the_cmk_decrypt_permission_is_removed.py", "service": "kms__secretsmanager"} {"check_id": "kms__secretsmanager.secret-under-a-disabled-cmk-is-unreadable-until-the-key-is-re-enabled", "deployments": [], "key": "kms__secretsmanager/secret-under-a-disabled-cmk-is-unreadable-until-the-key-is-re-enabled", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/kms__secretsmanager/check_secret_under_a_disabled_cmk_is_unreadable_until_the_key_is_re_enabled.py", "service": "kms__secretsmanager"} {"check_id": "kms__secretsmanager.via-service-condition-permits-the-secrets-manager-read-and-denies-the-direct-call", "deployments": [], "key": "kms__secretsmanager/via-service-condition-permits-the-secrets-manager-read-and-denies-the-direct-call", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:Encrypt", "kms:GenerateDataKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "sts:GetCallerIdentity"], "path": "behavioral/kms__secretsmanager/check_via_service_condition_permits_the_secrets_manager_read_and_denies_the_direct_call.py", "service": "kms__secretsmanager"} {"check_id": "kms__sns.publish-fails-while-kms-master-key-is-disabled", "deployments": [], "key": "kms__sns/publish-fails-while-kms-master-key-is-disabled", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish"], "path": "behavioral/kms__sns/check_publish_fails_while_kms_master_key_is_disabled.py", "service": "kms__sns"} {"check_id": "kms__sns__sqs.delivery-to-a-kms-encrypted-queue-withheld-until-the-key-policy-grants-sns", "deployments": [], "key": "kms__sns__sqs/delivery-to-a-kms-encrypted-queue-withheld-until-the-key-policy-grants-sns", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/kms__sns__sqs/check_delivery_to_a_kms_encrypted_queue_withheld_until_the_key_policy_grants_sns.py", "service": "kms__sns__sqs"} {"check_id": "kms__sns__sqs.sse-kms-topic-delivers-plaintext-to-sqs-subscribers", "deployments": [], "key": "kms__sns__sqs/sse-kms-topic-delivers-plaintext-to-sqs-subscribers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/kms__sns__sqs/check_sse_kms_topic_delivers_plaintext_to_sqs_subscribers.py", "service": "kms__sns__sqs"} {"check_id": "kms__sqs.send-to-queue-with-disabled-kms-key-rejected", "deployments": [], "key": "kms__sqs/send-to-queue-with-disabled-kms-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/kms__sqs/check_send_to_queue_with_disabled_kms_key_rejected.py", "service": "kms__sqs"} {"check_id": "kms__sqs.send-to-queue-with-pending-deletion-kms-key-rejected", "deployments": [], "key": "kms__sqs/send-to-queue-with-pending-deletion-kms-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:DescribeKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/kms__sqs/check_send_to_queue_with_pending_deletion_kms_key_rejected.py", "service": "kms__sqs"} {"check_id": "kms__ssm.encryption-context-parameter-arn-condition-scopes-decryption", "deployments": [], "key": "kms__ssm/encryption-context-parameter-arn-condition-scopes-decryption", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:Decrypt", "kms:ScheduleKeyDeletion", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:AssumeRole"], "path": "behavioral/kms__ssm/check_encryption_context_parameter_arn_condition_scopes_decryption.py", "service": "kms__ssm"} {"check_id": "kms__ssm.securestring-under-a-disabled-cmk-is-neither-decrypted-nor-written", "deployments": [], "key": "kms__ssm/securestring-under-a-disabled-cmk-is-neither-decrypted-nor-written", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/kms__ssm/check_securestring_under_a_disabled_cmk_is_neither_decrypted_nor_written.py", "service": "kms__ssm"} {"check_id": "kms__ssm.ssm-securestring-parameter-is-encrypted-at-rest-and-decrypts-only-with-permission", "deployments": [], "key": "kms__ssm/ssm-securestring-parameter-is-encrypted-at-rest-and-decrypts-only-with-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:Decrypt", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:PutParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/kms__ssm/check_ssm_securestring_parameter_is_encrypted_at_rest_and_decrypts_only_with_permission.py", "service": "kms__ssm"} {"check_id": "kms__stepfunctions.caller-kms-generate-data-key-encryption-context-scopes-create-state-machine", "deployments": [], "key": "kms__stepfunctions/caller-kms-generate-data-key-encryption-context-scopes-create-state-machine", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "sts:AssumeRole"], "path": "behavioral/kms__stepfunctions/check_caller_kms_generate_data_key_encryption_context_scopes_create_state_machine.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.cmk-encrypted-distributed-map-children-describe-and-history-decrypt", "deployments": [], "key": "kms__stepfunctions/cmk-encrypted-distributed-map-children-describe-and-history-decrypt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:ListExecutions", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_cmk_encrypted_distributed_map_children_describe_and_history_decrypt.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.cmk-trust-removed-then-restored-execution-redrive-succeeds", "deployments": [], "key": "kms__stepfunctions/cmk-trust-removed-then-restored-execution-redrive-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution"], "path": "behavioral/kms__stepfunctions/check_cmk_trust_removed_then_restored_execution_redrive_succeeds.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.create-activity-disabled-cmk-invalid-encryption-config-rejected", "deployments": [], "key": "kms__stepfunctions/create-activity-disabled-cmk-invalid-encryption-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:ListActivities"], "path": "behavioral/kms__stepfunctions/check_create_activity_disabled_cmk_invalid_encryption_config_rejected.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.create-state-machine-kms-via-service-condition", "deployments": [], "key": "kms__stepfunctions/create-state-machine-kms-via-service-condition", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines", "sts:AssumeRole"], "path": "behavioral/kms__stepfunctions/check_create_state_machine_kms_via_service_condition.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.nested-sync-executions-succeed-across-cmk-combinations", "deployments": [], "key": "kms__stepfunctions/nested-sync-executions-succeed-across-cmk-combinations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_nested_sync_executions_succeed_across_cmk_combinations.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.nested-sync-parent-role-without-child-key-decrypt-denied", "deployments": [], "key": "kms__stepfunctions/nested-sync-parent-role-without-child-key-decrypt-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_nested_sync_parent_role_without_child_key_decrypt_denied.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.send-task-failure-cmk-key-disabled-mid-flight-invalid-state-recovers", "deployments": [], "key": "kms__stepfunctions/send-task-failure-cmk-key-disabled-mid-flight-invalid-state-recovers", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_send_task_failure_cmk_key_disabled_mid_flight_invalid_state_recovers.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.send-task-success-cmk-role-without-decrypt-denied-sourcearn-trust-works", "deployments": [], "key": "kms__stepfunctions/send-task-success-cmk-role-without-decrypt-denied-sourcearn-trust-works", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_send_task_success_cmk_role_without_decrypt_denied_sourcearn_trust_works.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.sfn-execution-role-trust-honors-source-account-and-source-arn", "deployments": [], "key": "kms__stepfunctions/sfn-execution-role-trust-honors-source-account-and-source-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution"], "path": "behavioral/kms__stepfunctions/check_sfn_execution_role_trust_honors_source_account_and_source_arn.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.sfn-execution-role-trust-source-account-mismatch-blocks-cmk-execution", "deployments": [], "key": "kms__stepfunctions/sfn-execution-role-trust-source-account-mismatch-blocks-cmk-execution", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/kms__stepfunctions/check_sfn_execution_role_trust_source_account_mismatch_blocks_cmk_execution.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.start-execution-cmk-key-denies-or-disabled-create-nothing", "deployments": [], "key": "kms__stepfunctions/start-execution-cmk-key-denies-or-disabled-create-nothing", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:GenerateDataKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_start_execution_cmk_key_denies_or_disabled_create_nothing.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.stop-execution-cmk-error-cause-encrypted-survives-key-disabled-and-denied", "deployments": [], "key": "kms__stepfunctions/stop-execution-cmk-error-cause-encrypted-survives-key-disabled-and-denied", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:GenerateDataKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/kms__stepfunctions/check_stop_execution_cmk_error_cause_encrypted_survives_key_disabled_and_denied.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.update-state-machine-cmk-add-swap-remove-reflected-in-describe", "deployments": [], "key": "kms__stepfunctions/update-state-machine-cmk-add-swap-remove-reflected-in-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/kms__stepfunctions/check_update_state_machine_cmk_add_swap_remove_reflected_in_describe.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.write-time-cmk-ops-caller-kms-deny-access-denied", "deployments": [], "key": "kms__stepfunctions/write-time-cmk-ops-caller-kms-deny-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeStateMachine", "stepfunctions:ListActivities", "stepfunctions:ListStateMachines", "stepfunctions:UpdateStateMachine", "sts:AssumeRole"], "path": "behavioral/kms__stepfunctions/check_write_time_cmk_ops_caller_kms_deny_access_denied.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-3-cmk-encrypted-execution-data-reads-back-exactly", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-3-cmk-encrypted-execution-data-reads-back-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_3_cmk_encrypted_execution_data_reads_back_exactly.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-3-cmk-variable-references-follow-definition-not-metadata-updates", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-3-cmk-variable-references-follow-definition-not-metadata-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_3_cmk_variable_references_follow_definition_not_metadata_updates.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-3-disabled-cmk-execution-reads-rejected-until-reenabled", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-3-disabled-cmk-execution-reads-rejected-until-reenabled", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_3_disabled_cmk_execution_reads_rejected_until_reenabled.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-3-execution-role-without-kms-generate-data-key-start-execution-denied", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-3-execution-role-without-kms-generate-data-key-start-execution-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_3_execution_role_without_kms_generate_data_key_start_execution_denied.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-activity-cmk-disabled-denies-get-activity-task-until-reenabled", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-activity-cmk-disabled-denies-get-activity-task-until-reenabled", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:AssumeRole"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_activity_cmk_disabled_denies_get_activity_task_until_reenabled.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-activity-cmk-get-activity-task-worker-decrypt-scoped-to-activity-key", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-activity-cmk-get-activity-task-worker-decrypt-scoped-to-activity-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:AssumeRole"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_activity_cmk_get_activity_task_worker_decrypt_scoped_to_activity_key.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-cmk-context-object-inputpath-outputpath-choice-and-map-itemspath-unchanged", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-cmk-context-object-inputpath-outputpath-choice-and-map-itemspath-unchanged", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_cmk_context_object_inputpath_outputpath_choice_and_map_itemspath_unchanged.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-describe-execution-metadata-only-elides-despite-disabled-cmk", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-describe-execution-metadata-only-elides-despite-disabled-cmk", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_describe_execution_metadata_only_elides_despite_disabled_cmk.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-disabled-cmk-mid-execution-fails-states-runtime", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-disabled-cmk-mid-execution-fails-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_disabled_cmk_mid_execution_fails_states_runtime.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-express-cmk-start-sync-execution-caller-decrypt-required-unless-metadata-only", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-express-cmk-start-sync-execution-caller-decrypt-required-unless-metadata-only", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution", "sts:AssumeRole"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_express_cmk_start_sync_execution_caller_decrypt_required_unless_metadata_only.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-express-cmk-start-sync-execution-key-policy-deny-and-disabled-key", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-express-cmk-start-sync-execution-key-policy-deny-and-disabled-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution", "sts:AssumeRole"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_express_cmk_start_sync_execution_key_policy_deny_and_disabled_key.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-get-execution-history-kms-deny-refuses-even-without-execution-data", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-get-execution-history-kms-deny-refuses-even-without-execution-data", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:GenerateDataKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_get_execution_history_kms_deny_refuses_even_without_execution_data.py", "service": "kms__stepfunctions"} {"check_id": "kms__stepfunctions.xsvc-sfn-kms-access-denied-mid-execution-fails-states-runtime", "deployments": [], "key": "kms__stepfunctions/xsvc-sfn-kms-access-denied-mid-execution-fails-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateKey", "kms:GenerateDataKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/kms__stepfunctions/check_xsvc_sfn_kms_access_denied_mid_execution_fails_states_runtime.py", "service": "kms__stepfunctions"} {"check_id": "lambda-core.client-token-replay-rejects-changed-parameters", "deployments": [], "key": "lambda-core/client-token-replay-rejects-changed-parameters", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_client_token_replay_rejects_changed_parameters.py", "service": "lambda-core"} {"check_id": "lambda-core.create-get-network-connector-field-roundtrip", "deployments": [], "key": "lambda-core/create-get-network-connector-field-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector"], "path": "behavioral/lambda-core/check_create_get_network_connector_field_roundtrip.py", "service": "lambda-core"} {"check_id": "lambda-core.create-network-connector-concurrent-same-client-token-converges", "deployments": [], "key": "lambda-core/create-network-connector-concurrent-same-client-token-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_create_network_connector_concurrent_same_client_token_converges.py", "service": "lambda-core"} {"check_id": "lambda-core.create-network-connector-duplicate-name-conflict-rejected", "deployments": [], "key": "lambda-core/create-network-connector-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_create_network_connector_duplicate_name_conflict_rejected.py", "service": "lambda-core"} {"check_id": "lambda-core.create-network-connector-idempotent-client-token-returns-same-resource", "deployments": [], "key": "lambda-core/create-network-connector-idempotent-client-token-returns-same-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_create_network_connector_idempotent_client_token_returns_same_resource.py", "service": "lambda-core"} {"check_id": "lambda-core.create-network-connector-operator-role-required-rejected", "deployments": [], "key": "lambda-core/create-network-connector-operator-role-required-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_create_network_connector_operator_role_required_rejected.py", "service": "lambda-core"} {"check_id": "lambda-core.create-network-connector-token-reuse-mismatch-rejected", "deployments": [], "key": "lambda-core/create-network-connector-token-reuse-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_create_network_connector_token_reuse_mismatch_rejected.py", "service": "lambda-core"} {"check_id": "lambda-core.create-network-connector-too-many-subnets-rejected", "deployments": [], "key": "lambda-core/create-network-connector-too-many-subnets-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_create_network_connector_too_many_subnets_rejected.py", "service": "lambda-core"} {"check_id": "lambda-core.create-rejected-with-unusable-operator-role", "deployments": [], "key": "lambda-core/create-rejected-with-unusable-operator-role", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_create_rejected_with_unusable_operator_role.py", "service": "lambda-core"} {"check_id": "lambda-core.create-rejected-without-operator-role", "deployments": [], "key": "lambda-core/create-rejected-without-operator-role", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_create_rejected_without_operator_role.py", "service": "lambda-core"} {"check_id": "lambda-core.delete-releases-connector-name-for-reuse", "deployments": [], "key": "lambda-core/delete-releases-connector-name-for-reuse", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors", "lambda-core:UpdateNetworkConnector", "sts:GetCallerIdentity"], "path": "behavioral/lambda-core/check_delete_releases_connector_name_for_reuse.py", "service": "lambda-core"} {"check_id": "lambda-core.duplicate-connector-name-rejected", "deployments": [], "key": "lambda-core/duplicate-connector-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_duplicate_connector_name_rejected.py", "service": "lambda-core"} {"check_id": "lambda-core.failed-update-keeps-connector-active-on-previous-config", "deployments": [], "key": "lambda-core/failed-update-keeps-connector-active-on-previous-config", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors", "lambda-core:UpdateNetworkConnector", "sts:GetCallerIdentity"], "path": "behavioral/lambda-core/check_failed_update_keeps_connector_active_on_previous_config.py", "service": "lambda-core"} {"check_id": "lambda-core.get-network-connector-by-name-id-and-arn-equivalent", "deployments": [], "key": "lambda-core/get-network-connector-by-name-id-and-arn-equivalent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector"], "path": "behavioral/lambda-core/check_get_network_connector_by_name_id_and_arn_equivalent.py", "service": "lambda-core"} {"check_id": "lambda-core.get-network-connector-identifier-too-long-rejected", "deployments": [], "key": "lambda-core/get-network-connector-identifier-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector"], "path": "behavioral/lambda-core/check_get_network_connector_identifier_too_long_rejected.py", "service": "lambda-core"} {"check_id": "lambda-core.list-network-connectors-max-items-boundary-accepted", "deployments": [], "key": "lambda-core/list-network-connectors-max-items-boundary-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_list_network_connectors_max_items_boundary_accepted.py", "service": "lambda-core"} {"check_id": "lambda-core.list-network-connectors-pagination-collects-all-created", "deployments": [], "key": "lambda-core/list-network-connectors-pagination-collects-all-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_list_network_connectors_pagination_collects_all_created.py", "service": "lambda-core"} {"check_id": "lambda-core.list-network-connectors-state-filter-scoping", "deployments": [], "key": "lambda-core/list-network-connectors-state-filter-scoping", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_list_network_connectors_state_filter_scoping.py", "service": "lambda-core"} {"check_id": "lambda-core.network-connector-arn-format-contains-account-and-region", "deployments": [], "key": "lambda-core/network-connector-arn-format-contains-account-and-region", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "sts:GetCallerIdentity"], "path": "behavioral/lambda-core/check_network_connector_arn_format_contains_account_and_region.py", "service": "lambda-core"} {"check_id": "lambda-core.network-connector-create-nonexistent-subnet-rejected", "deployments": [], "key": "lambda-core/network-connector-create-nonexistent-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors"], "path": "behavioral/lambda-core/check_network_connector_create_nonexistent_subnet_rejected.py", "service": "lambda-core"} {"check_id": "lambda-core.network-connector-delete-transitions-to-removed", "deployments": [], "key": "lambda-core/network-connector-delete-transitions-to-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector"], "path": "behavioral/lambda-core/check_network_connector_delete_transitions_to_removed.py", "service": "lambda-core"} {"check_id": "lambda-core.network-connector-dualstack-network-protocol-persists", "deployments": [], "key": "lambda-core/network-connector-dualstack-network-protocol-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AssociateVpcCidrBlock", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector"], "path": "behavioral/lambda-core/check_network_connector_dualstack_network_protocol_persists.py", "service": "lambda-core"} {"check_id": "lambda-core.network-connector-e2e-create-transitions-pending-to-active", "deployments": [], "key": "lambda-core/network-connector-e2e-create-transitions-pending-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector"], "path": "behavioral/lambda-core/check_network_connector_e2e_create_transitions_pending_to_active.py", "service": "lambda-core"} {"check_id": "lambda-core.network-connector-lifecycle-round-trip", "deployments": [], "key": "lambda-core/network-connector-lifecycle-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:ListNetworkConnectors", "lambda-core:UpdateNetworkConnector"], "path": "behavioral/lambda-core/check_network_connector_lifecycle_round_trip.py", "service": "lambda-core"} {"check_id": "lambda-core.network-connector-not-found-error-representative", "deployments": [], "key": "lambda-core/network-connector-not-found-error-representative", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:UpdateNetworkConnector"], "path": "behavioral/lambda-core/check_network_connector_not_found_error_representative.py", "service": "lambda-core"} {"check_id": "lambda-core.network-connector-update-pending-conflict-then-active-success", "deployments": [], "key": "lambda-core/network-connector-update-pending-conflict-then-active-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:UpdateNetworkConnector"], "path": "behavioral/lambda-core/check_network_connector_update_pending_conflict_then_active_success.py", "service": "lambda-core"} {"check_id": "lambda-core.pending-connector-rejects-update-and-delete", "deployments": [], "key": "lambda-core/pending-connector-rejects-update-and-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:UpdateNetworkConnector"], "path": "behavioral/lambda-core/check_pending_connector_rejects_update_and_delete.py", "service": "lambda-core"} {"check_id": "lambda-core.update-shrinking-config-deprovisions-dropped-subnet-eni", "deployments": [], "key": "lambda-core/update-shrinking-config-deprovisions-dropped-subnet-eni", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-core:UpdateNetworkConnector", "sts:GetCallerIdentity"], "path": "behavioral/lambda-core/check_update_shrinking_config_deprovisions_dropped_subnet_eni.py", "service": "lambda-core"} {"check_id": "lambda-core__lambda-microvms.microvm-denied-the-vpc-egress-connector-cannot-reach-the-private-subnet", "deployments": [], "key": "lambda-core__lambda-microvms/microvm-denied-the-vpc-egress-connector-cannot-reach-the-private-subnet", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcEndpoints", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-microvms:CreateMicrovmAuthToken", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda-core__lambda-microvms/check_microvm_denied_the_vpc_egress_connector_cannot_reach_the_private_subnet.py", "service": "lambda-core__lambda-microvms"} {"check_id": "lambda-core__lambda-microvms.vpc-egress-connector-path-is-blocked-by-the-target-security-group", "deployments": [], "key": "lambda-core__lambda-microvms/vpc-egress-connector-path-is-blocked-by-the-target-security-group", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcEndpoints", "ec2:RevokeSecurityGroupIngress", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda-core:CreateNetworkConnector", "lambda-core:DeleteNetworkConnector", "lambda-core:GetNetworkConnector", "lambda-microvms:CreateMicrovmAuthToken", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda-core__lambda-microvms/check_vpc_egress_connector_path_is_blocked_by_the_target_security_group.py", "service": "lambda-core__lambda-microvms"} {"check_id": "lambda-microvms.activating-a-failed-image-version-still-rejects-run", "deployments": [], "key": "lambda-microvms/activating-a-failed-image-version-still-rejects-run", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovms", "lambda-microvms:RunMicrovm", "lambda-microvms:UpdateMicrovmImageVersion"], "path": "behavioral/lambda-microvms/check_activating_a_failed_image_version_still_rejects_run.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.auth-token-expiration-over-sixty-minutes-rejected", "deployments": [], "key": "lambda-microvms/auth-token-expiration-over-sixty-minutes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmAuthToken", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_auth_token_expiration_over_sixty_minutes_rejected.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.concurrent-create-microvm-image-same-client-token-idempotent", "deployments": [], "key": "lambda-microvms/concurrent-create-microvm-image-same-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageVersions", "lambda-microvms:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_concurrent_create_microvm_image_same_client_token_idempotent.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.create-microvm-image-build-lifecycle", "deployments": [], "key": "lambda-microvms/create-microvm-image-build-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_create_microvm_image_build_lifecycle.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.create-shell-auth-token-without-shell-ingress-rejected", "deployments": [], "key": "lambda-microvms/create-shell-auth-token-without-shell-ingress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:CreateMicrovmShellAuthToken", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_create_shell_auth_token_without_shell_ingress_rejected.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.delete-image-with-running-microvm-rejected", "deployments": [], "key": "lambda-microvms/delete-image-with-running-microvm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_delete_image_with_running_microvm_rejected.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.delete-last-image-version-rejected", "deployments": [], "key": "lambda-microvms/delete-last-image-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:DeleteMicrovmImageVersion", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageVersions"], "path": "behavioral/lambda-microvms/check_delete_last_image_version_rejected.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.delete-microvm-image-lifecycle", "deployments": [], "key": "lambda-microvms/delete-microvm-image-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:TagRole", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImages", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_delete_microvm_image_lifecycle.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.delete-microvm-image-version-with-multiple-versions", "deployments": [], "key": "lambda-microvms/delete-microvm-image-version-with-multiple-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:DeleteMicrovmImageVersion", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageVersions", "lambda-microvms:UpdateMicrovmImage", "lambda-microvms:UpdateMicrovmImageVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_delete_microvm_image_version_with_multiple_versions.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.deleted-image-name-is-released-for-reuse", "deployments": [], "key": "lambda-microvms/deleted-image-name-is-released-for-reuse", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImages"], "path": "behavioral/lambda-microvms/check_deleted_image_name_is_released_for_reuse.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.duplicate-image-name-rejected", "deployments": [], "key": "lambda-microvms/duplicate-image-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageVersions", "lambda-microvms:ListMicrovmImages"], "path": "behavioral/lambda-microvms/check_duplicate_image_name_rejected.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.get-microvm-image-access-denied", "deployments": [], "key": "lambda-microvms/get-microvm-image-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "sts:GetCallerIdentity"], "path": "behavioral/lambda-microvms/check_get_microvm_image_access_denied.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.get-microvm-image-build-access-denied", "deployments": [], "key": "lambda-microvms/get-microvm-image-build-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda-microvms:GetMicrovmImageBuild", "lambda-microvms:ListManagedMicrovmImageVersions", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageBuilds", "sts:GetCallerIdentity"], "path": "behavioral/lambda-microvms/check_get_microvm_image_build_access_denied.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.get-microvm-not-found", "deployments": [], "key": "lambda-microvms/get-microvm-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_get_microvm_not_found.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.idle-policy-auto-suspends-microvm", "deployments": [], "key": "lambda-microvms/idle-policy-auto-suspends-microvm", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_idle_policy_auto_suspends_microvm.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.image-build-failure-surfaces-state-reason-on-every-build", "deployments": [], "key": "lambda-microvms/image-build-failure-surfaces-state-reason-on-every-build", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageBuild", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageBuilds"], "path": "behavioral/lambda-microvms/check_image_build_failure_surfaces_state_reason_on_every_build.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.image-build-fans-out-one-build-per-chipset-generation", "deployments": [], "key": "lambda-microvms/image-build-fans-out-one-build-per-chipset-generation", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImageBuild", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageBuilds"], "path": "behavioral/lambda-microvms/check_image_build_fans_out_one_build_per_chipset_generation.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.image-created-in-one-region-is-not-visible-in-another", "deployments": [], "key": "lambda-microvms/image-created-in-one-region-is-not-visible-in-another", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImages"], "path": "behavioral/lambda-microvms/check_image_created_in_one_region_is_not_visible_in_another.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.image-delete-rejected-while-a-microvm-is-running", "deployments": [], "key": "lambda-microvms/image-delete-rejected-while-a-microvm-is-running", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_image_delete_rejected_while_a_microvm_is_running.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.image-tag-edits-agree-across-both-read-paths", "deployments": [], "key": "lambda-microvms/image-tag-edits-agree-across-both-read-paths", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListTags", "lambda-microvms:TagResource", "lambda-microvms:UntagResource"], "path": "behavioral/lambda-microvms/check_image_tag_edits_agree_across_both_read_paths.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.image-version-status-toggle-active-inactive", "deployments": [], "key": "lambda-microvms/image-version-status-toggle-active-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:UpdateMicrovmImageVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_image_version_status_toggle_active_inactive.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.managed-image-read-through-customer-api-is-rejected", "deployments": [], "key": "lambda-microvms/managed-image-read-through-customer-api-is-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImageVersions", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageVersions", "lambda-microvms:ListMicrovmImages", "sts:GetCallerIdentity"], "path": "behavioral/lambda-microvms/check_managed_image_read_through_customer_api_is_rejected.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.maximum-duration-terminates-the-microvm-with-no-terminate-call", "deployments": [], "key": "lambda-microvms/maximum-duration-terminates-the-microvm-with-no-terminate-call", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovms", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_maximum_duration_terminates_the_microvm_with_no_terminate_call.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.microvm-auth-token-grants-endpoint-access", "deployments": [], "key": "lambda-microvms/microvm-auth-token-grants-endpoint-access", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmAuthToken", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_microvm_auth_token_grants_endpoint_access.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.microvm-proxy-endpoint-serves-guest-http", "deployments": [], "key": "lambda-microvms/microvm-proxy-endpoint-serves-guest-http", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmAuthToken", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_microvm_proxy_endpoint_serves_guest_http.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.microvm-run-suspend-resume-terminate-transitions", "deployments": [], "key": "lambda-microvms/microvm-run-suspend-resume-terminate-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovms", "lambda-microvms:ResumeMicrovm", "lambda-microvms:RunMicrovm", "lambda-microvms:SuspendMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_microvm_run_suspend_resume_terminate_transitions.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.representation-managed-microvm-image-fields-round-trip", "deployments": [], "key": "lambda-microvms/representation-managed-microvm-image-fields-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "sts:GetCallerIdentity"], "path": "behavioral/lambda-microvms/check_representation_managed_microvm_image_fields_round_trip.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.resume-running-microvm-is-an-idempotent-no-op", "deployments": [], "key": "lambda-microvms/resume-running-microvm-is-an-idempotent-no-op", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ResumeMicrovm", "lambda-microvms:RunMicrovm", "lambda-microvms:SuspendMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_resume_running_microvm_is_an_idempotent_no_op.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.run-microvm-duration-out-of-range-rejected", "deployments": [], "key": "lambda-microvms/run-microvm-duration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovms", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_run_microvm_duration_out_of_range_rejected.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.run-microvm-pending-to-running", "deployments": [], "key": "lambda-microvms/run-microvm-pending-to-running", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_run_microvm_pending_to_running.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.suspend-already-suspended-is-an-idempotent-no-op", "deployments": [], "key": "lambda-microvms/suspend-already-suspended-is-an-idempotent-no-op", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:SuspendMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_suspend_already_suspended_is_an_idempotent_no_op.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.suspend-resume-microvm-transitions", "deployments": [], "key": "lambda-microvms/suspend-resume-microvm-transitions", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmAuthToken", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ResumeMicrovm", "lambda-microvms:RunMicrovm", "lambda-microvms:SuspendMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_suspend_resume_microvm_transitions.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.suspend-resume-preserves-guest-memory-and-process-identity", "deployments": [], "key": "lambda-microvms/suspend-resume-preserves-guest-memory-and-process-identity", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmAuthToken", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ResumeMicrovm", "lambda-microvms:RunMicrovm", "lambda-microvms:SuspendMicrovm", "lambda-microvms:TerminateMicrovm", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_suspend_resume_preserves_guest_memory_and_process_identity.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.tag-resource-lifecycle-on-microvm-image", "deployments": [], "key": "lambda-microvms/tag-resource-lifecycle-on-microvm-image", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListTags", "lambda-microvms:TagResource", "lambda-microvms:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_tag_resource_lifecycle_on_microvm_image.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.tag-route-collision-resolves-by-resource-arn-not-client", "deployments": [], "key": "lambda-microvms/tag-route-collision-resolves-by-resource-arn-not-client", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListTags", "lambda-microvms:TagResource", "lambda:GetAccountSettings", "lambda:ListTags", "lambda:TagResource", "lambda:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/lambda-microvms/check_tag_route_collision_resolves_by_resource_arn_not_client.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.terminate-microvm-reaches-terminated", "deployments": [], "key": "lambda-microvms/terminate-microvm-reaches-terminated", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:RunMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_terminate_microvm_reaches_terminated.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.terminated-microvm-rejects-suspend-and-resume", "deployments": [], "key": "lambda-microvms/terminated-microvm-rejects-suspend-and-resume", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovm", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ResumeMicrovm", "lambda-microvms:RunMicrovm", "lambda-microvms:SuspendMicrovm", "lambda-microvms:TerminateMicrovm", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_terminated_microvm_rejects_suspend_and_resume.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.update-image-version-status-on-failed-build-accepted", "deployments": [], "key": "lambda-microvms/update-image-version-status-on-failed-build-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:UpdateMicrovmImageVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_update_image_version_status_on_failed_build_accepted.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.update-image-while-creating-rejected", "deployments": [], "key": "lambda-microvms/update-image-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageVersions", "lambda-microvms:UpdateMicrovmImage"], "path": "behavioral/lambda-microvms/check_update_image_while_creating_rejected.py", "service": "lambda-microvms"} {"check_id": "lambda-microvms.update-microvm-image-creates-new-version", "deployments": [], "key": "lambda-microvms/update-microvm-image-creates-new-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda-microvms:CreateMicrovmImage", "lambda-microvms:DeleteMicrovmImage", "lambda-microvms:GetMicrovmImage", "lambda-microvms:GetMicrovmImageVersion", "lambda-microvms:ListManagedMicrovmImages", "lambda-microvms:ListMicrovmImageVersions", "lambda-microvms:UpdateMicrovmImage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda-microvms/check_update_microvm_image_creates_new_version.py", "service": "lambda-microvms"} {"check_id": "lambda-web.application-log-level-rejects-an-unknown-value-and-defaults-to-info", "deployments": [], "key": "lambda-web/application-log-level-rejects-an-unknown-value-and-defaults-to-info", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "lambda-web:GetWebFunction", "lambda-web:GetWebFunctionRevision", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_application_log_level_rejects_an_unknown_value_and_defaults_to_info.py", "service": "lambda-web"} {"check_id": "lambda-web.create-web-function-revision-is-immutable-across-a-later-configuration-change", "deployments": [], "key": "lambda-web/create-web-function-revision-is-immutable-across-a-later-configuration-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:CreateWebFunctionRevision", "lambda-web:DeleteWebFunction", "lambda-web:DeleteWebFunctionRevision", "lambda-web:GetWebFunctionRevision", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_create_web_function_revision_is_immutable_across_a_later_configuration_change.py", "service": "lambda-web"} {"check_id": "lambda-web.delete-resource-policy-with-stale-revision-leaves-policy-unchanged", "deployments": [], "key": "lambda-web/delete-resource-policy-with-stale-revision-leaves-policy-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_delete_resource_policy_with_stale_revision_leaves_policy_unchanged.py", "service": "lambda-web"} {"check_id": "lambda-web.delete-web-function-cascades-tags-and-resource-policy", "deployments": [], "key": "lambda-web/delete-web-function-cascades-tags-and-resource-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_delete_web_function_cascades_tags_and_resource_policy.py", "service": "lambda-web"} {"check_id": "lambda-web.endpoint-auth-type-enforces-sigv4-for-iamauth-and-allows-unsigned-for-applicationmanaged", "deployments": [], "key": "lambda-web/endpoint-auth-type-enforces-sigv4-for-iamauth-and-allows-unsigned-for-applicationmanaged", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:CreateWebFunctionEndpoint", "lambda-web:DeleteResourcePolicy", "lambda-web:DeleteWebFunction", "lambda-web:DeleteWebFunctionEndpoint", "lambda-web:GetWebFunctionEndpoint", "lambda-web:GetWebFunctionRevision", "lambda-web:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda-web/check_endpoint_auth_type_enforces_sigv4_for_iamauth_and_allows_unsigned_for_applicationmanaged.py", "service": "lambda-web"} {"check_id": "lambda-web.endpoint-latest-revision-mode-rejects-switching-onto-a-non-active-revision", "deployments": [], "key": "lambda-web/endpoint-latest-revision-mode-rejects-switching-onto-a-non-active-revision", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:CreateWebFunctionRevision", "lambda-web:DeleteWebFunction", "lambda-web:DeleteWebFunctionRevision", "lambda-web:GetWebFunctionEndpoint", "lambda-web:GetWebFunctionRevision", "lambda-web:UpdateWebFunctionEndpoint", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_endpoint_latest_revision_mode_rejects_switching_onto_a_non_active_revision.py", "service": "lambda-web"} {"check_id": "lambda-web.get-resource-policy-revision-id-is-stable-until-the-next-mutation", "deployments": [], "key": "lambda-web/get-resource-policy-revision-id-is-stable-until-the-next-mutation", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_get_resource_policy_revision_id_is_stable_until_the_next_mutation.py", "service": "lambda-web"} {"check_id": "lambda-web.list-web-function-revisions-pages-through-every-revision-exactly-once", "deployments": [], "key": "lambda-web/list-web-function-revisions-pages-through-every-revision-exactly-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:CreateWebFunctionRevision", "lambda-web:DeleteWebFunction", "lambda-web:ListWebFunctionRevisions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_list_web_function_revisions_pages_through_every_revision_exactly_once.py", "service": "lambda-web"} {"check_id": "lambda-web.put-resource-policy-rejects-malformed-policy-without-disturbing-existing-policy", "deployments": [], "key": "lambda-web/put-resource-policy-rejects-malformed-policy-without-disturbing-existing-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_put_resource_policy_rejects_malformed_policy_without_disturbing_existing_policy.py", "service": "lambda-web"} {"check_id": "lambda-web.put-resource-policy-revision-chain-rejects-stale-revision-at-each-generation", "deployments": [], "key": "lambda-web/put-resource-policy-revision-chain-rejects-stale-revision-at-each-generation", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_put_resource_policy_revision_chain_rejects_stale_revision_at_each_generation.py", "service": "lambda-web"} {"check_id": "lambda-web.signed-https-get-on-web-function-endpoint-serves-handler-response", "deployments": [], "key": "lambda-web/signed-https-get-on-web-function-endpoint-serves-handler-response", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "lambda-web:GetWebFunctionEndpoint", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_signed_https_get_on_web_function_endpoint_serves_handler_response.py", "service": "lambda-web"} {"check_id": "lambda-web.tag-resource-merges-new-keys-without-removing-existing-tags", "deployments": [], "key": "lambda-web/tag-resource-merges-new-keys-without-removing-existing-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_tag_resource_merges_new_keys_without_removing_existing_tags.py", "service": "lambda-web"} {"check_id": "lambda-web.tag-resource-rejects-reserved-aws-prefix-key-and-applies-no-tags", "deployments": [], "key": "lambda-web/tag-resource-rejects-reserved-aws-prefix-key-and-applies-no-tags", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_tag_resource_rejects_reserved_aws_prefix_key_and_applies_no_tags.py", "service": "lambda-web"} {"check_id": "lambda-web.unsigned-https-get-on-web-function-endpoint-rejected", "deployments": [], "key": "lambda-web/unsigned-https-get-on-web-function-endpoint-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "lambda-web:GetWebFunctionEndpoint", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_unsigned_https_get_on_web_function_endpoint_rejected.py", "service": "lambda-web"} {"check_id": "lambda-web.untag-resource-is-idempotent-for-a-key-that-was-never-set", "deployments": [], "key": "lambda-web/untag-resource-is-idempotent-for-a-key-that-was-never-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_untag_resource_is_idempotent_for_a_key_that_was_never_set.py", "service": "lambda-web"} {"check_id": "lambda-web.web-account-settings-function-count-tracks-create-and-delete", "deployments": [], "key": "lambda-web/web-account-settings-function-count-tracks-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda-web:CreateWebFunction", "lambda-web:DeleteWebFunction", "lambda-web:GetWebAccountSettings", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda-web/check_web_account_settings_function_count_tracks_create_and_delete.py", "service": "lambda-web"} {"check_id": "lambda.50-distinct-code-artifacts-no-shared-code-store", "deployments": [], "key": "lambda/50-distinct-code-artifacts-no-shared-code-store", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:ListFunctions", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_50_distinct_code_artifacts_no_shared_code_store.py", "service": "lambda"} {"check_id": "lambda.account-settings-limits-drive-enforcement", "deployments": [], "key": "lambda/account-settings-limits-drive-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAccountSettings", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_account_settings_limits_drive_enforcement.py", "service": "lambda"} {"check_id": "lambda.add-get-policy", "deployments": [], "key": "lambda/add-get-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_add_get_policy.py", "service": "lambda"} {"check_id": "lambda.add-layer-permission-policy-length-exceeded", "deployments": [], "key": "lambda/add-layer-permission-policy-length-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda:AddLayerVersionPermission", "lambda:DeleteLayerVersion", "lambda:GetLayerVersionPolicy", "lambda:PublishLayerVersion", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_add_layer_permission_policy_length_exceeded.py", "service": "lambda"} {"check_id": "lambda.alias-lifecycle", "deployments": [], "key": "lambda/alias-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:ListAliases", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_alias_lifecycle.py", "service": "lambda"} {"check_id": "lambda.alias-lifecycle-full", "deployments": [], "key": "lambda/alias-lifecycle-full", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:ListAliases", "lambda:PublishVersion", "lambda:UpdateAlias"], "path": "behavioral/lambda/check_alias_lifecycle_full.py", "service": "lambda"} {"check_id": "lambda.alias-limit-enforcement", "deployments": [], "key": "lambda/alias-limit-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListAliases", "lambda:PublishVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_alias_limit_enforcement.py", "service": "lambda"} {"check_id": "lambda.alias-list-ordering", "deployments": [], "key": "lambda/alias-list-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:ListAliases", "lambda:PublishVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_alias_list_ordering.py", "service": "lambda"} {"check_id": "lambda.alias-on-latest-follows-code-updates", "deployments": [], "key": "lambda/alias-on-latest-follows-code-updates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_alias_on_latest_follows_code_updates.py", "service": "lambda"} {"check_id": "lambda.alias-revisionid-precondition", "deployments": [], "key": "lambda/alias-revisionid-precondition", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_alias_revisionid_precondition.py", "service": "lambda"} {"check_id": "lambda.alias-routes-to-version", "deployments": [], "key": "lambda/alias-routes-to-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListAliases", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_alias_routes_to_version.py", "service": "lambda"} {"check_id": "lambda.alias-update-stale-revision-rejected", "deployments": [], "key": "lambda/alias-update-stale-revision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateAlias"], "path": "behavioral/lambda/check_alias_update_stale_revision_rejected.py", "service": "lambda"} {"check_id": "lambda.alias-weight-ladder-observed-distribution", "deployments": [], "key": "lambda/alias-weight-ladder-observed-distribution", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_alias_weight_ladder_observed_distribution.py", "service": "lambda"} {"check_id": "lambda.alias-weighted-routing-splits-traffic", "deployments": [], "key": "lambda/alias-weighted-routing-splits-traffic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_alias_weighted_routing_splits_traffic.py", "service": "lambda"} {"check_id": "lambda.allocation-beyond-memory-size-is-killed-out-of-memory-rejected", "deployments": [], "key": "lambda/allocation-beyond-memory-size-is-killed-out-of-memory-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_allocation_beyond_memory_size_is_killed_out_of_memory_rejected.py", "service": "lambda"} {"check_id": "lambda.arbitrary-code-executes", "deployments": [], "key": "lambda/arbitrary-code-executes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListFunctions", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_arbitrary_code_executes.py", "service": "lambda"} {"check_id": "lambda.arm64-function-reports-aarch64-at-runtime", "deployments": [], "key": "lambda/arm64-function-reports-aarch64-at-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_arm64_function_reports_aarch64_at_runtime.py", "service": "lambda"} {"check_id": "lambda.arm64-image-function-runtime-reports-aarch64", "deployments": [], "key": "lambda/arm64-image-function-runtime-reports-aarch64", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_arm64_image_function_runtime_reports_aarch64.py", "service": "lambda"} {"check_id": "lambda.async-invoke-alias-qualifier-applies-to-onfailure-destination", "deployments": [], "key": "lambda/async-invoke-alias-qualifier-applies-to-onfailure-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_async_invoke_alias_qualifier_applies_to_onfailure_destination.py", "service": "lambda"} {"check_id": "lambda.async-payload-limit", "deployments": [], "key": "lambda/async-payload-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_async_payload_limit.py", "service": "lambda"} {"check_id": "lambda.async-returns-202", "deployments": [], "key": "lambda/async-returns-202", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_async_returns_202.py", "service": "lambda"} {"check_id": "lambda.callback-heartbeat-extends-deadline", "deployments": [], "key": "lambda/callback-heartbeat-extends-deadline", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:SendDurableExecutionCallbackHeartbeat", "lambda:SendDurableExecutionCallbackSuccess", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_callback_heartbeat_extends_deadline.py", "service": "lambda"} {"check_id": "lambda.callback-no-heartbeat-times-out", "deployments": [], "key": "lambda/callback-no-heartbeat-times-out", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_callback_no_heartbeat_times_out.py", "service": "lambda"} {"check_id": "lambda.callback-timeout-exceeded-rejected", "deployments": [], "key": "lambda/callback-timeout-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:SendDurableExecutionCallbackFailure", "lambda:SendDurableExecutionCallbackHeartbeat", "lambda:SendDurableExecutionCallbackSuccess", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_callback_timeout_exceeded_rejected.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-invalid-params-rejected", "deployments": [], "key": "lambda/capacity-provider-invalid-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_capacity_provider_invalid_params_rejected.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-lifecycle", "deployments": [], "key": "lambda/capacity-provider-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:UpdateCapacityProvider"], "path": "behavioral/lambda/check_capacity_provider_lifecycle.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-limit-enforcement", "deployments": [], "key": "lambda/capacity-provider-limit-enforcement", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider"], "path": "behavioral/lambda/check_capacity_provider_limit_enforcement.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-list-and-versions", "deployments": [], "key": "lambda/capacity-provider-list-and-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:ListCapacityProviders", "lambda:ListFunctionVersionsByCapacityProvider"], "path": "behavioral/lambda/check_capacity_provider_list_and_versions.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-list-pagination-server-side", "deployments": [], "key": "lambda/capacity-provider-list-pagination-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:ListCapacityProviders"], "path": "behavioral/lambda/check_capacity_provider_list_pagination_server_side.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-name-unicode-rejected", "deployments": [], "key": "lambda/capacity-provider-name-unicode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider"], "path": "behavioral/lambda/check_capacity_provider_name_unicode_rejected.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-scaling-update-triggers-version-rescale", "deployments": [], "key": "lambda/capacity-provider-scaling-update-triggers-version-rescale", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:GetFunctionConfiguration", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PublishVersion", "lambda:UpdateCapacityProvider", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_capacity_provider_scaling_update_triggers_version_rescale.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-scaling-value-precision-round-trip", "deployments": [], "key": "lambda/capacity-provider-scaling-value-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:UpdateCapacityProvider"], "path": "behavioral/lambda/check_capacity_provider_scaling_value_precision_round_trip.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-unicode-name-round-trip", "deployments": [], "key": "lambda/capacity-provider-unicode-name-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:ListCapacityProviders", "lambda:ListTags"], "path": "behavioral/lambda/check_capacity_provider_unicode_name_round_trip.py", "service": "lambda"} {"check_id": "lambda.capacity-provider-version-list-ordering", "deployments": [], "key": "lambda/capacity-provider-version-list-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetCapacityProvider", "lambda:GetFunctionConfiguration", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_capacity_provider_version_list_ordering.py", "service": "lambda"} {"check_id": "lambda.cli-lambda-create-invoke", "deployments": [], "key": "lambda/cli-lambda-create-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_cli_lambda_create_invoke.py", "service": "lambda"} {"check_id": "lambda.cli-lambda-invoke-nonexistent-error", "deployments": [], "key": "lambda/cli-lambda-invoke-nonexistent-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_cli_lambda_invoke_nonexistent_error.py", "service": "lambda"} {"check_id": "lambda.cli-script-lambda-deploy-and-invoke", "deployments": [], "key": "lambda/cli-script-lambda-deploy-and-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:DeleteFunction", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_cli_script_lambda_deploy_and_invoke.py", "service": "lambda"} {"check_id": "lambda.code-location-serves-the-exact-bytes-and-a-published-version-is-byte-frozen", "deployments": [], "key": "lambda/code-location-serves-the-exact-bytes-and-a-published-version-is-byte-frozen", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_code_location_serves_the_exact_bytes_and_a_published_version_is_byte_frozen.py", "service": "lambda"} {"check_id": "lambda.code-sha256-present", "deployments": [], "key": "lambda/code-sha256-present", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_code_sha256_present.py", "service": "lambda"} {"check_id": "lambda.code-signing-config-lifecycle", "deployments": [], "key": "lambda/code-signing-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:CreateCodeSigningConfig", "lambda:DeleteCodeSigningConfig", "lambda:GetCodeSigningConfig", "lambda:ListCodeSigningConfigs", "lambda:UpdateCodeSigningConfig", "signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_code_signing_config_lifecycle.py", "service": "lambda"} {"check_id": "lambda.code-signing-config-switched-to-enforce-refuses-the-next-unsigned-layer-attach", "deployments": [], "key": "lambda/code-signing-config-switched-to-enforce-refuses-the-next-unsigned-layer-attach", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:PublishLayerVersion", "lambda:UpdateCodeSigningConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_code_signing_config_switched_to_enforce_refuses_the_next_unsigned_layer_attach.py", "service": "lambda"} {"check_id": "lambda.code-signing-enforce-rejects-unsigned-package-rejected", "deployments": [], "key": "lambda/code-signing-enforce-rejects-unsigned-package-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:GetFunctionCodeSigningConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionCodeSigningConfig", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_code_signing_enforce_rejects_unsigned_package_rejected.py", "service": "lambda"} {"check_id": "lambda.codesigning-config-delete-while-attached-rejected", "deployments": [], "key": "lambda/codesigning-config-delete-while-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionCodeSigningConfig", "lambda:GetCodeSigningConfig", "lambda:GetFunctionCodeSigningConfig", "lambda:GetFunctionConfiguration", "lambda:PutFunctionCodeSigningConfig", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_codesigning_config_delete_while_attached_rejected.py", "service": "lambda"} {"check_id": "lambda.codesigning-config-lifecycle", "deployments": [], "key": "lambda/codesigning-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:CreateCodeSigningConfig", "lambda:DeleteCodeSigningConfig", "lambda:GetCodeSigningConfig", "lambda:UpdateCodeSigningConfig", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_codesigning_config_lifecycle.py", "service": "lambda"} {"check_id": "lambda.codesigning-config-list-roundtrip", "deployments": [], "key": "lambda/codesigning-config-list-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:CreateCodeSigningConfig", "lambda:DeleteCodeSigningConfig", "lambda:GetCodeSigningConfig", "lambda:ListCodeSigningConfigs", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_codesigning_config_list_roundtrip.py", "service": "lambda"} {"check_id": "lambda.cold-start-after-timeout", "deployments": [], "key": "lambda/cold-start-after-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_cold_start_after_timeout.py", "service": "lambda"} {"check_id": "lambda.concurrency-throttles-at-limit", "deployments": [], "key": "lambda/concurrency-throttles-at-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetAccountSettings", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_concurrency_throttles_at_limit.py", "service": "lambda"} {"check_id": "lambda.concurrent-function-update-conflict", "deployments": [], "key": "lambda/concurrent-function-update-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_concurrent_function_update_conflict.py", "service": "lambda"} {"check_id": "lambda.concurrent-tag-resource-merge", "deployments": [], "key": "lambda/concurrent-tag-resource-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListTags", "lambda:TagResource"], "path": "behavioral/lambda/check_concurrent_tag_resource_merge.py", "service": "lambda"} {"check_id": "lambda.container-image-cmd-override", "deployments": [], "key": "lambda/container-image-cmd-override", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_container_image_cmd_override.py", "service": "lambda"} {"check_id": "lambda.container-image-config-fields", "deployments": [], "key": "lambda/container-image-config-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_container_image_config_fields.py", "service": "lambda"} {"check_id": "lambda.container-image-layers-rejected", "deployments": [], "key": "lambda/container-image-layers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_container_image_layers_rejected.py", "service": "lambda"} {"check_id": "lambda.container-image-packagetype-immutable-on-update-rejected", "deployments": [], "key": "lambda/container-image-packagetype-immutable-on-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_container_image_packagetype_immutable_on_update_rejected.py", "service": "lambda"} {"check_id": "lambda.container-image-update-code", "deployments": [], "key": "lambda/container-image-update-code", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_container_image_update_code.py", "service": "lambda"} {"check_id": "lambda.container-image-uri-source-validation-rejected", "deployments": [], "key": "lambda/container-image-uri-source-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_container_image_uri_source_validation_rejected.py", "service": "lambda"} {"check_id": "lambda.context-object", "deployments": [], "key": "lambda/context-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_context_object.py", "service": "lambda"} {"check_id": "lambda.create-alias-limit-exceeded-rejected", "deployments": [], "key": "lambda/create-alias-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion"], "path": "behavioral/lambda/check_create_alias_limit_exceeded_rejected.py", "service": "lambda"} {"check_id": "lambda.create-duplicate", "deployments": [], "key": "lambda/create-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_create_duplicate.py", "service": "lambda"} {"check_id": "lambda.create-event-source-mapping-duplicate-conflict", "deployments": [], "key": "lambda/create-event-source-mapping-duplicate-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_create_event_source_mapping_duplicate_conflict.py", "service": "lambda"} {"check_id": "lambda.create-function-code-validation-errors", "deployments": [], "key": "lambda/create-function-code-validation-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_create_function_code_validation_errors.py", "service": "lambda"} {"check_id": "lambda.create-function-codesigning-not-found-rejected", "deployments": [], "key": "lambda/create-function-codesigning-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionCodeSigningConfig", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_create_function_codesigning_not_found_rejected.py", "service": "lambda"} {"check_id": "lambda.create-function-non-zip-and-empty-zip-rejected-creating-nothing", "deployments": [], "key": "lambda/create-function-non-zip-and-empty-zip-rejected-creating-nothing", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_create_function_non_zip_and_empty_zip_rejected_creating_nothing.py", "service": "lambda"} {"check_id": "lambda.create-function-url-config", "deployments": [], "key": "lambda/create-function-url-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionUrlConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_create_function_url_config.py", "service": "lambda"} {"check_id": "lambda.create-function-with-container-image-rejects-code-signing-config", "deployments": [], "key": "lambda/create-function-with-container-image-rejects-code-signing-config", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionCodeSigningConfig", "logs:DeleteLogGroup", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_create_function_with_container_image_rejects_code_signing_config.py", "service": "lambda"} {"check_id": "lambda.create-get-roundtrip", "deployments": [], "key": "lambda/create-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_create_get_roundtrip.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-client-context-header-carries-the-invoke-client-context", "deployments": [], "key": "lambda/custom-runtime-client-context-header-carries-the-invoke-client-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_client_context_header_carries_the_invoke_client_context.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-error-envelope-and-exit-error-rejected", "deployments": [], "key": "lambda/custom-runtime-error-envelope-and-exit-error-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_custom_runtime_error_envelope_and_exit_error_rejected.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-error-post-body-and-type-header-shape-the-error-payload", "deployments": [], "key": "lambda/custom-runtime-error-post-body-and-type-header-shape-the-error-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_error_post_body_and_type_header_shape_the_error_payload.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-handler-and-runtime-env-follow-configuration", "deployments": [], "key": "lambda/custom-runtime-handler-and-runtime-env-follow-configuration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_handler_and_runtime_env_follow_configuration.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-init-error-fails-the-invoke-and-init-is-retried-rejected", "deployments": [], "key": "lambda/custom-runtime-init-error-fails-the-invoke-and-init-is-retried-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_init_error_fails_the_invoke_and_init_is_retried_rejected.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-init-error-type-off-pattern-normalized-to-runtime-unknown", "deployments": [], "key": "lambda/custom-runtime-init-error-type-off-pattern-normalized-to-runtime-unknown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_init_error_type_off_pattern_normalized_to_runtime_unknown.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-invoked-arn-header-carries-the-invoke-qualifier", "deployments": [], "key": "lambda/custom-runtime-invoked-arn-header-carries-the-invoke-qualifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_invoked_arn_header_carries_the_invoke_qualifier.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-mismatched-invocation-id-echo-rejected", "deployments": [], "key": "lambda/custom-runtime-mismatched-invocation-id-echo-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_mismatched_invocation_id_echo_rejected.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-next-after-init-error-rejected-invalid-state-transition", "deployments": [], "key": "lambda/custom-runtime-next-after-init-error-rejected-invalid-state-transition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_next_after_init_error_rejected_invalid_state_transition.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-next-body-is-the-invoke-payload-byte-for-byte", "deployments": [], "key": "lambda/custom-runtime-next-body-is-the-invoke-payload-byte-for-byte", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_next_body_is_the_invoke_payload_byte_for_byte.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-raw-response-post-over-6mb-rejected-platform-enforced", "deployments": [], "key": "lambda/custom-runtime-raw-response-post-over-6mb-rejected-platform-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_custom_runtime_raw_response_post_over_6mb_rejected_platform_enforced.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-response-bytes-reach-the-caller-verbatim", "deployments": [], "key": "lambda/custom-runtime-response-bytes-reach-the-caller-verbatim", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_response_bytes_reach_the_caller_verbatim.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-second-answer-for-a-request-rejected", "deployments": [], "key": "lambda/custom-runtime-second-answer-for-a-request-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_second_answer_for_a_request_rejected.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-streaming-response-mode-delivers-chunks-via-invoke-with-response-stream", "deployments": [], "key": "lambda/custom-runtime-streaming-response-mode-delivers-chunks-via-invoke-with-response-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:InvokeWithResponseStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_custom_runtime_streaming_response_mode_delivers_chunks_via_invoke_with_response_stream.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-trace-id-header-follows-the-tracing-mode", "deployments": [], "key": "lambda/custom-runtime-trace-id-header-follows-the-tracing-mode", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_trace_id_header_follows_the_tracing_mode.py", "service": "lambda"} {"check_id": "lambda.custom-runtime-unexecutable-entrypoint-rejected-invalid-entrypoint", "deployments": [], "key": "lambda/custom-runtime-unexecutable-entrypoint-rejected-invalid-entrypoint", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_custom_runtime_unexecutable_entrypoint_rejected_invalid_entrypoint.py", "service": "lambda"} {"check_id": "lambda.dead-letter-config-roundtrip", "deployments": [], "key": "lambda/dead-letter-config-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_dead_letter_config_roundtrip.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-1-fn-state-padded-code-update-in-progress-serves-previous-code", "deployments": [], "key": "lambda/deep-lambda-1-fn-state-padded-code-update-in-progress-serves-previous-code", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_deep_lambda_1_fn_state_padded_code_update_in_progress_serves_previous_code.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-1-fn-state-vpc-attach-in-progress-invoke-allowed-code-update-rejected", "deployments": [], "key": "lambda/deep-lambda-1-fn-state-vpc-attach-in-progress-invoke-allowed-code-update-rejected", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_deep_lambda_1_fn_state_vpc_attach_in_progress_invoke_allowed_code_update_rejected.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-1-fn-state-vpc-create-pending-rejects-invoke-and-update", "deployments": [], "key": "lambda/deep-lambda-1-fn-state-vpc-create-pending-rejects-invoke-and-update", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_deep_lambda_1_fn_state_vpc_create_pending_rejects_invoke_and_update.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-3-runtime-pin-foreign-runtime-arn-rejected", "deployments": [], "key": "lambda/deep-lambda-3-runtime-pin-foreign-runtime-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetRuntimeManagementConfig", "lambda:Invoke", "lambda:PutRuntimeManagementConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_deep_lambda_3_runtime_pin_foreign_runtime_arn_rejected.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-3-runtime-pin-manual-arn-survives-cold-start", "deployments": [], "key": "lambda/deep-lambda-3-runtime-pin-manual-arn-survives-cold-start", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetRuntimeManagementConfig", "lambda:Invoke", "lambda:PutRuntimeManagementConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_deep_lambda_3_runtime_pin_manual_arn_survives_cold_start.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-3-url-auth-without-invoke-function-grant-denied", "deployments": [], "key": "lambda/deep-lambda-3-url-auth-without-invoke-function-grant-denied", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_deep_lambda_3_url_auth_without_invoke_function_grant_denied.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-3-url-cors-disallowed-preflight-rejected", "deployments": [], "key": "lambda/deep-lambda-3-url-cors-disallowed-preflight-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_deep_lambda_3_url_cors_disallowed_preflight_rejected.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-3-url-cors-not-enforced-server-side", "deployments": [], "key": "lambda/deep-lambda-3-url-cors-not-enforced-server-side", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_deep_lambda_3_url_cors_not_enforced_server_side.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-3-url-cors-preflight-answered-without-invoking-handler", "deployments": [], "key": "lambda/deep-lambda-3-url-cors-preflight-answered-without-invoking-handler", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_deep_lambda_3_url_cors_preflight_answered_without_invoking_handler.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-async-payload-band-delivered-intact-over-1mb-rejected", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-async-payload-band-delivered-intact-over-1mb-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListTags", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_async_payload_band_delivered_intact_over_1mb_rejected.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-ephemeral-storage-update-resizes-tmp-in-next-environment", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-ephemeral-storage-update-resizes-tmp-in-next-environment", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_ephemeral_storage_update_resizes_tmp_in_next_environment.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-layer-files-byte-exact-at-opt-and-opt-write-rejected", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-layer-files-byte-exact-at-opt-and-opt-write-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_layer_files_byte_exact_at_opt_and_opt_write_rejected.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-oversize-request-rejected-before-handler-oversize-response-after", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-oversize-request-rejected-before-handler-oversize-response-after", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListTags", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_oversize_request_rejected_before_handler_oversize_response_after.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-reserved-env-var-at-create-rejected", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-reserved-env-var-at-create-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_reserved_env_var_at_create_rejected.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-reserved-env-vars-track-version-and-log-destination", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-reserved-env-vars-track-version-and-log-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_reserved_env_vars_track_version_and_log_destination.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-stream-error-after-first-chunk-rejected-in-trailer", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-stream-error-after-first-chunk-rejected-in-trailer", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:InvokeWithResponseStream", "lambda:TagResource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_stream_error_after_first_chunk_rejected_in_trailer.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-stream-first-chunk-reaches-client-before-handler-finishes", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-stream-first-chunk-reaches-client-before-handler-finishes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:InvokeWithResponseStream", "lambda:TagResource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_stream_first_chunk_reaches_client_before_handler_finishes.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-timeout-overrun-rejected-and-post-deadline-work-never-runs", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-timeout-overrun-rejected-and-post-deadline-work-never-runs", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListTags", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_timeout_overrun_rejected_and_post_deadline_work_never_runs.py", "service": "lambda"} {"check_id": "lambda.deep-lambda-runtime-truth-tmp-empty-in-fresh-env-and-survives-warm", "deployments": [], "key": "lambda/deep-lambda-runtime-truth-tmp-empty-in-fresh-env-and-survives-warm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_deep_lambda_runtime_truth_tmp_empty_in_fresh_env_and_survives_warm.py", "service": "lambda"} {"check_id": "lambda.delete-alias-nonexistent-is-a-no-op", "deployments": [], "key": "lambda/delete-alias-nonexistent-is-a-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion"], "path": "behavioral/lambda/check_delete_alias_nonexistent_is_a_no_op.py", "service": "lambda"} {"check_id": "lambda.delete-capacity-provider-in-use-conflict", "deployments": [], "key": "lambda/delete-capacity-provider-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:GetFunctionConfiguration", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PutFunctionScalingConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_delete_capacity_provider_in_use_conflict.py", "service": "lambda"} {"check_id": "lambda.delete-capacity-provider-with-attached-function-rejected", "deployments": [], "key": "lambda/delete-capacity-provider-with-attached-function-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PutFunctionScalingConfig", "lambda:UpdateCapacityProvider", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_delete_capacity_provider_with_attached_function_rejected.py", "service": "lambda"} {"check_id": "lambda.delete-codesigning-config-in-use-conflict", "deployments": [], "key": "lambda/delete-codesigning-config-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionCodeSigningConfig", "lambda:GetCodeSigningConfig", "lambda:GetFunctionCodeSigningConfig", "lambda:GetFunctionConfiguration", "lambda:PutFunctionCodeSigningConfig", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_delete_codesigning_config_in_use_conflict.py", "service": "lambda"} {"check_id": "lambda.delete-event-source-mapping-in-use-rejected", "deployments": [], "key": "lambda/delete-event-source-mapping-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_delete_event_source_mapping_in_use_rejected.py", "service": "lambda"} {"check_id": "lambda.delete-function-url", "deployments": [], "key": "lambda/delete-function-url", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionUrlConfig", "lambda:UpdateFunctionUrlConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_delete_function_url.py", "service": "lambda"} {"check_id": "lambda.delete-function-version-referenced-by-alias-conflict", "deployments": [], "key": "lambda/delete-function-version-referenced-by-alias-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_delete_function_version_referenced_by_alias_conflict.py", "service": "lambda"} {"check_id": "lambda.delete-latest-qualifier-rejected", "deployments": [], "key": "lambda/delete-latest-qualifier-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_delete_latest_qualifier_rejected.py", "service": "lambda"} {"check_id": "lambda.delete-layer-version", "deployments": [], "key": "lambda/delete-layer-version", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda:AddLayerVersionPermission", "lambda:DeleteLayerVersion", "lambda:GetLayerVersion", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_delete_layer_version.py", "service": "lambda"} {"check_id": "lambda.delete-layer-version-idempotent-on-missing", "deployments": [], "key": "lambda/delete-layer-version-idempotent-on-missing", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:DeleteLayerVersion", "lambda:GetLayerVersion", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_delete_layer_version_idempotent_on_missing.py", "service": "lambda"} {"check_id": "lambda.delete-layer-version-referenced-succeeds", "deployments": [], "key": "lambda/delete-layer-version-referenced-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListLayerVersions", "lambda:PublishLayerVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_delete_layer_version_referenced_succeeds.py", "service": "lambda"} {"check_id": "lambda.delete-nonexistent", "deployments": [], "key": "lambda/delete-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/lambda/check_delete_nonexistent.py", "service": "lambda"} {"check_id": "lambda.delete-reserved-concurrency", "deployments": [], "key": "lambda/delete-reserved-concurrency", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_delete_reserved_concurrency.py", "service": "lambda"} {"check_id": "lambda.delete-resource-in-use-blocked", "deployments": [], "key": "lambda/delete-resource-in-use-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetAlias", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_delete_resource_in_use_blocked.py", "service": "lambda"} {"check_id": "lambda.delete-resource-policy-precondition-failed", "deployments": [], "key": "lambda/delete-resource-policy-precondition-failed", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteResourcePolicy", "lambda:GetFunctionConfiguration", "lambda:GetResourcePolicy", "lambda:PutResourcePolicy", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_delete_resource_policy_precondition_failed.py", "service": "lambda"} {"check_id": "lambda.delete-then-not-found", "deployments": [], "key": "lambda/delete-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_delete_then_not_found.py", "service": "lambda"} {"check_id": "lambda.delete-version-referenced-by-routing-weight-rejected", "deployments": [], "key": "lambda/delete-version-referenced-by-routing-weight-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_delete_version_referenced_by_routing_weight_rejected.py", "service": "lambda"} {"check_id": "lambda.deleted-version-number-not-reused", "deployments": [], "key": "lambda/deleted-version-number-not-reused", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_deleted_version_number_not_reused.py", "service": "lambda"} {"check_id": "lambda.deploy-capacity-provider-cloudformation-scaling-behavior", "deployments": [], "key": "lambda/deploy-capacity-provider-cloudformation-scaling-behavior", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetCapacityProvider", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PublishVersion"], "path": "behavioral/lambda/check_deploy_capacity_provider_cloudformation_scaling_behavior.py", "service": "lambda"} {"check_id": "lambda.deploy-function-cloudformation-invoke-behavior", "deployments": [], "key": "lambda/deploy-function-cloudformation-invoke-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_deploy_function_cloudformation_invoke_behavior.py", "service": "lambda"} {"check_id": "lambda.deploy-lambda-1-version-alias-code-update", "deployments": [], "key": "lambda/deploy-lambda-1-version-alias-code-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListVersionsByFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_deploy_lambda_1_version_alias_code_update.py", "service": "lambda"} {"check_id": "lambda.deploy-lambda-alias-weight-on-primary-version-rejected", "deployments": [], "key": "lambda/deploy-lambda-alias-weight-on-primary-version-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetAlias", "lambda:Invoke", "lambda:UpdateAlias", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_deploy_lambda_alias_weight_on_primary_version_rejected.py", "service": "lambda"} {"check_id": "lambda.docdb-esm-without-database-name-rejected-before-any-access-check", "deployments": [], "key": "lambda/docdb-esm-without-database-name-rejected-before-any-access-check", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings"], "path": "behavioral/lambda/check_docdb_esm_without_database_name_rejected_before_any_access_check.py", "service": "lambda"} {"check_id": "lambda.dotnet10-invoke-echoes-payload-and-reports-unhandled-error-shape", "deployments": [], "key": "lambda/dotnet10-invoke-echoes-payload-and-reports-unhandled-error-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_dotnet10_invoke_echoes_payload_and_reports_unhandled_error_shape.py", "service": "lambda"} {"check_id": "lambda.dotnet-async-task-handler-awaits-completion-before-responding", "deployments": [], "key": "lambda/dotnet-async-task-handler-awaits-completion-before-responding", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_async_task_handler_awaits_completion_before_responding.py", "service": "lambda"} {"check_id": "lambda.dotnet-class-library-handler-string-missing-assembly-type-or-method-rejected", "deployments": [], "key": "lambda/dotnet-class-library-handler-string-missing-assembly-type-or-method-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_class_library_handler_string_missing_assembly_type_or_method_rejected.py", "service": "lambda"} {"check_id": "lambda.dotnet-constructor-exception-wrapped-as-target-invocation-exception", "deployments": [], "key": "lambda/dotnet-constructor-exception-wrapped-as-target-invocation-exception", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_constructor_exception_wrapped_as_target_invocation_exception.py", "service": "lambda"} {"check_id": "lambda.dotnet-environment-exit-reports-runtime-exit-error", "deployments": [], "key": "lambda/dotnet-environment-exit-reports-runtime-exit-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_environment_exit_reports_runtime_exit_error.py", "service": "lambda"} {"check_id": "lambda.dotnet-executable-assembly-handler-runs-unmodified-on-both-architectures", "deployments": [], "key": "lambda/dotnet-executable-assembly-handler-runs-unmodified-on-both-architectures", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_executable_assembly_handler_runs_unmodified_on_both_architectures.py", "service": "lambda"} {"check_id": "lambda.dotnet-family-matrix-same-assembly-runs-under-every-supported-identifier", "deployments": [], "key": "lambda/dotnet-family-matrix-same-assembly-runs-under-every-supported-identifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_family_matrix_same_assembly_runs_under_every_supported_identifier.py", "service": "lambda"} {"check_id": "lambda.dotnet-filesystem-outside-tmp-is-read-only-rejected", "deployments": [], "key": "lambda/dotnet-filesystem-outside-tmp-is-read-only-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_filesystem_outside_tmp_is_read_only_rejected.py", "service": "lambda"} {"check_id": "lambda.dotnet-globalization-invariant-env-var-changes-runtime-behavior", "deployments": [], "key": "lambda/dotnet-globalization-invariant-env-var-changes-runtime-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_globalization_invariant_env_var_changes_runtime_behavior.py", "service": "lambda"} {"check_id": "lambda.dotnet-poco-handler-systemtextjson-binds-coerces-and-reports-context", "deployments": [], "key": "lambda/dotnet-poco-handler-systemtextjson-binds-coerces-and-reports-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_poco_handler_systemtextjson_binds_coerces_and_reports_context.py", "service": "lambda"} {"check_id": "lambda.dotnet-stream-handler-passes-raw-bytes-with-no-serializer", "deployments": [], "key": "lambda/dotnet-stream-handler-passes-raw-bytes-with-no-serializer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_stream_handler_passes_raw_bytes_with_no_serializer.py", "service": "lambda"} {"check_id": "lambda.dotnet-task-blocking-call-is-still-timed-out-and-killed", "deployments": [], "key": "lambda/dotnet-task-blocking-call-is-still-timed-out-and-killed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_dotnet_task_blocking_call_is_still_timed_out_and_killed.py", "service": "lambda"} {"check_id": "lambda.dry-run-does-not-invoke-handler", "deployments": [], "key": "lambda/dry-run-does-not-invoke-handler", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_dry_run_does_not_invoke_handler.py", "service": "lambda"} {"check_id": "lambda.duplicate-create-function-rejected-leaves-every-sibling-code-artifact-intact", "deployments": [], "key": "lambda/duplicate-create-function-rejected-leaves-every-sibling-code-artifact-intact", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_duplicate_create_function_rejected_leaves_every_sibling_code_artifact_intact.py", "service": "lambda"} {"check_id": "lambda.durable-config-defaults-and-partial-update", "deployments": [], "key": "lambda/durable-config-defaults-and-partial-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_durable_config_defaults_and_partial_update.py", "service": "lambda"} {"check_id": "lambda.durable-execution-callback-already-resolved-rejected", "deployments": [], "key": "lambda/durable-execution-callback-already-resolved-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:SendDurableExecutionCallbackSuccess", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_durable_execution_callback_already_resolved_rejected.py", "service": "lambda"} {"check_id": "lambda.durable-execution-callback-failure-flow", "deployments": [], "key": "lambda/durable-execution-callback-failure-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:SendDurableExecutionCallbackFailure", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_durable_execution_callback_failure_flow.py", "service": "lambda"} {"check_id": "lambda.durable-execution-callback-success-flow", "deployments": [], "key": "lambda/durable-execution-callback-success-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:SendDurableExecutionCallbackSuccess", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_durable_execution_callback_success_flow.py", "service": "lambda"} {"check_id": "lambda.durable-execution-callback-timeout-enforced", "deployments": [], "key": "lambda/durable-execution-callback-timeout-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:PublishVersion", "lambda:SendDurableExecutionCallbackFailure", "lambda:SendDurableExecutionCallbackHeartbeat", "lambda:SendDurableExecutionCallbackSuccess", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_durable_execution_callback_timeout_enforced.py", "service": "lambda"} {"check_id": "lambda.durable-execution-checkpoint-sequence-monotonic", "deployments": [], "key": "lambda/durable-execution-checkpoint-sequence-monotonic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_durable_execution_checkpoint_sequence_monotonic.py", "service": "lambda"} {"check_id": "lambda.durable-execution-checkpoint-ttl-bound", "deployments": [], "key": "lambda/durable-execution-checkpoint-ttl-bound", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:PublishVersion", "lambda:StopDurableExecution", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_durable_execution_checkpoint_ttl_bound.py", "service": "lambda"} {"check_id": "lambda.durable-execution-history-ordering", "deployments": [], "key": "lambda/durable-execution-history-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_durable_execution_history_ordering.py", "service": "lambda"} {"check_id": "lambda.durable-execution-kms-enforcement", "deployments": [], "key": "lambda/durable-execution-kms-enforcement", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:StopDurableExecution", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_durable_execution_kms_enforcement.py", "service": "lambda"} {"check_id": "lambda.durable-execution-kms-enforcement-rejected", "deployments": [], "key": "lambda/durable-execution-kms-enforcement-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:PublishVersion", "lambda:StopDurableExecution", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_durable_execution_kms_enforcement_rejected.py", "service": "lambda"} {"check_id": "lambda.durable-execution-kms-errors", "deployments": [], "key": "lambda/durable-execution-kms-errors", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "lambda:CheckpointDurableExecution", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetDurableExecutionState", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:PublishVersion", "lambda:StopDurableExecution", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_durable_execution_kms_errors.py", "service": "lambda"} {"check_id": "lambda.durable-execution-lifecycle", "deployments": [], "key": "lambda/durable-execution-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:StopDurableExecution", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_durable_execution_lifecycle.py", "service": "lambda"} {"check_id": "lambda.durable-execution-name-conflict-rejected", "deployments": [], "key": "lambda/durable-execution-name-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_durable_execution_name_conflict_rejected.py", "service": "lambda"} {"check_id": "lambda.durable-execution-server-managed-append-only-history", "deployments": [], "key": "lambda/durable-execution-server-managed-append-only-history", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CheckpointDurableExecution", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_durable_execution_server_managed_append_only_history.py", "service": "lambda"} {"check_id": "lambda.e2e-api-handler-pattern", "deployments": [], "key": "lambda/e2e-api-handler-pattern", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_e2e_api_handler_pattern.py", "service": "lambda"} {"check_id": "lambda.e2e-capacity-provider-scaling-flow", "deployments": [], "key": "lambda/e2e-capacity-provider-scaling-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:GetFunctionConfiguration", "lambda:GetFunctionScalingConfig", "lambda:Invoke", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PublishVersion", "lambda:PutFunctionScalingConfig", "lambda:UpdateCapacityProvider", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_e2e_capacity_provider_scaling_flow.py", "service": "lambda"} {"check_id": "lambda.e2e-sqs-trigger", "deployments": [], "key": "lambda/e2e-sqs-trigger", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda/check_e2e_sqs_trigger.py", "service": "lambda"} {"check_id": "lambda.env-var-size-and-reserved-key-rejected", "deployments": [], "key": "lambda/env-var-size-and-reserved-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_env_var_size_and_reserved_key_rejected.py", "service": "lambda"} {"check_id": "lambda.env-var-update-visible-on-next-invoke", "deployments": [], "key": "lambda/env-var-update-visible-on-next-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_env_var_update_visible_on_next_invoke.py", "service": "lambda"} {"check_id": "lambda.env-vars-and-module-state-isolated-between-two-distinct-functions", "deployments": [], "key": "lambda/env-vars-and-module-state-isolated-between-two-distinct-functions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_env_vars_and_module_state_isolated_between_two_distinct_functions.py", "service": "lambda"} {"check_id": "lambda.env-vars-exactly-4kb-accepted-one-byte-over-rejected-at-create", "deployments": [], "key": "lambda/env-vars-exactly-4kb-accepted-one-byte-over-rejected-at-create", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_env_vars_exactly_4kb_accepted_one_byte_over_rejected_at_create.py", "service": "lambda"} {"check_id": "lambda.environment-identity-warm-reuse-and-config-update-forces-cold", "deployments": [], "key": "lambda/environment-identity-warm-reuse-and-config-update-forces-cold", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_environment_identity_warm_reuse_and_config_update_forces_cold.py", "service": "lambda"} {"check_id": "lambda.environment-variables", "deployments": [], "key": "lambda/environment-variables", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_environment_variables.py", "service": "lambda"} {"check_id": "lambda.ephemeral-storage-available", "deployments": [], "key": "lambda/ephemeral-storage-available", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_ephemeral_storage_available.py", "service": "lambda"} {"check_id": "lambda.ephemeral-storage-size-bounds-rejected-and-accepted", "deployments": [], "key": "lambda/ephemeral-storage-size-bounds-rejected-and-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ephemeral_storage_size_bounds_rejected_and_accepted.py", "service": "lambda"} {"check_id": "lambda.ephemeral-storage-size-is-enforced-not-only-reported", "deployments": [], "key": "lambda/ephemeral-storage-size-is-enforced-not-only-reported", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_ephemeral_storage_size_is_enforced_not_only_reported.py", "service": "lambda"} {"check_id": "lambda.esm-crud", "deployments": [], "key": "lambda/esm-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_esm_crud.py", "service": "lambda"} {"check_id": "lambda.esm-drains-every-message-and-the-handler-logs-each-body", "deployments": [], "key": "lambda/esm-drains-every-message-and-the-handler-logs-each-body", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda/check_esm_drains_every_message_and_the_handler_logs_each_body.py", "service": "lambda"} {"check_id": "lambda.esm-handler-timeout-returns-the-whole-batch", "deployments": [], "key": "lambda/esm-handler-timeout-returns-the-whole-batch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda/check_esm_handler_timeout_returns_the_whole_batch.py", "service": "lambda"} {"check_id": "lambda.esm-no-message-is-lost-when-the-handler-throws-on-first-delivery", "deployments": [], "key": "lambda/esm-no-message-is-lost-when-the-handler-throws-on-first-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda/check_esm_no_message_is_lost_when_the_handler_throws_on_first_delivery.py", "service": "lambda"} {"check_id": "lambda.esm-unrecognized-item-identifier-fails-the-whole-batch", "deployments": [], "key": "lambda/esm-unrecognized-item-identifier-fails-the-whole-batch", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda/check_esm_unrecognized_item_identifier_fails_the_whole_batch.py", "service": "lambda"} {"check_id": "lambda.event-invoke-config-crud", "deployments": [], "key": "lambda/event-invoke-config-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionEventInvokeConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_event_invoke_config_crud.py", "service": "lambda"} {"check_id": "lambda.event-invoke-config-retry-bounds-rejected", "deployments": [], "key": "lambda/event-invoke-config-retry-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_event_invoke_config_retry_bounds_rejected.py", "service": "lambda"} {"check_id": "lambda.event-invoke-failure-not-surfaced", "deployments": [], "key": "lambda/event-invoke-failure-not-surfaced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_event_invoke_failure_not_surfaced.py", "service": "lambda"} {"check_id": "lambda.event-source-mapping-batching-window-delay", "deployments": [], "key": "lambda/event-source-mapping-batching-window-delay", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_event_source_mapping_batching_window_delay.py", "service": "lambda"} {"check_id": "lambda.event-source-mapping-concurrent-update-conflict", "deployments": [], "key": "lambda/event-source-mapping-concurrent-update-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_event_source_mapping_concurrent_update_conflict.py", "service": "lambda"} {"check_id": "lambda.event-source-mapping-list-ordering", "deployments": [], "key": "lambda/event-source-mapping-list-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_event_source_mapping_list_ordering.py", "service": "lambda"} {"check_id": "lambda.exec-wrapper-naming-a-missing-file-rejected-at-invoke", "deployments": [], "key": "lambda/exec-wrapper-naming-a-missing-file-rejected-at-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_exec_wrapper_naming_a_missing_file_rejected_at_invoke.py", "service": "lambda"} {"check_id": "lambda.exec-wrapper-script-starts-the-runtime-with-its-environment-and-arguments", "deployments": [], "key": "lambda/exec-wrapper-script-starts-the-runtime-with-its-environment-and-arguments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_exec_wrapper_script_starts_the_runtime_with_its_environment_and_arguments.py", "service": "lambda"} {"check_id": "lambda.execution-environment-contract-provided-al2023", "deployments": [], "key": "lambda/execution-environment-contract-provided-al2023", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_execution_environment_contract_provided_al2023.py", "service": "lambda"} {"check_id": "lambda.explicit-latest-qualifier-runs-head-code", "deployments": [], "key": "lambda/explicit-latest-qualifier-runs-head-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_explicit_latest_qualifier_runs_head_code.py", "service": "lambda"} {"check_id": "lambda.extension-register-after-init-is-refused", "deployments": [], "key": "lambda/extension-register-after-init-is-refused", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_extension_register_after_init_is_refused.py", "service": "lambda"} {"check_id": "lambda.extension-that-never-registers-fails-the-invoke", "deployments": [], "key": "lambda/extension-that-never-registers-fails-the-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_extension_that_never_registers_fails_the_invoke.py", "service": "lambda"} {"check_id": "lambda.external-extension-layer-runs-identically-across-runtime-families", "deployments": [], "key": "lambda/external-extension-layer-runs-identically-across-runtime-families", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:GetLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_external_extension_layer_runs_identically_across_runtime_families.py", "service": "lambda"} {"check_id": "lambda.external-extension-registers-receives-invoke-and-shutdown-events", "deployments": [], "key": "lambda/external-extension-registers-receives-invoke-and-shutdown-events", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_external_extension_registers_receives_invoke_and_shutdown_events.py", "service": "lambda"} {"check_id": "lambda.external-extension-that-exits-before-registering-fails-the-invoke", "deployments": [], "key": "lambda/external-extension-that-exits-before-registering-fails-the-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_external_extension_that_exits_before_registering_fails_the_invoke.py", "service": "lambda"} {"check_id": "lambda.function-codesigning-association-lifecycle", "deployments": [], "key": "lambda/function-codesigning-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionCodeSigningConfig", "lambda:GetFunctionCodeSigningConfig", "lambda:GetFunctionConfiguration", "lambda:ListFunctionsByCodeSigningConfig", "lambda:PutFunctionCodeSigningConfig", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_function_codesigning_association_lifecycle.py", "service": "lambda"} {"check_id": "lambda.function-error-unhandled", "deployments": [], "key": "lambda/function-error-unhandled", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_function_error_unhandled.py", "service": "lambda"} {"check_id": "lambda.function-sdk-reaches-the-emulator", "deployments": [], "key": "lambda/function-sdk-reaches-the-emulator", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_function_sdk_reaches_the_emulator.py", "service": "lambda"} {"check_id": "lambda.function-sdk-sends-an-sqs-message-the-caller-receives", "deployments": [], "key": "lambda/function-sdk-sends-an-sqs-message-the-caller-receives", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_function_sdk_sends_an_sqs_message_the_caller_receives.py", "service": "lambda"} {"check_id": "lambda.function-url-missing-permission-not-invoked", "deployments": [], "key": "lambda/function-url-missing-permission-not-invoked", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:Invoke", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_function_url_missing_permission_not_invoked.py", "service": "lambda"} {"check_id": "lambda.function-url-response-stream-mode-chunks-over-https", "deployments": [], "key": "lambda/function-url-response-stream-mode-chunks-over-https", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionUrlConfig", "lambda:UpdateFunctionUrlConfig", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_function_url_response_stream_mode_chunks_over_https.py", "service": "lambda"} {"check_id": "lambda.function-with-layer-config", "deployments": [], "key": "lambda/function-with-layer-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:PublishLayerVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_function_with_layer_config.py", "service": "lambda"} {"check_id": "lambda.get-account-settings-enforced-limits", "deployments": [], "key": "lambda/get-account-settings-enforced-limits", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetAccountSettings", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:PutFunctionConcurrency"], "path": "behavioral/lambda/check_get_account_settings_enforced_limits.py", "service": "lambda"} {"check_id": "lambda.get-durable-execution-state-invalid-checkpoint-token-rejected", "deployments": [], "key": "lambda/get-durable-execution-state-invalid-checkpoint-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionState", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_get_durable_execution_state_invalid_checkpoint_token_rejected.py", "service": "lambda"} {"check_id": "lambda.get-function-concurrency-field-scoped-to-unqualified-identity", "deployments": [], "key": "lambda/get-function-concurrency-field-scoped-to-unqualified-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_get_function_concurrency_field_scoped_to_unqualified_identity.py", "service": "lambda"} {"check_id": "lambda.get-function-configuration-representation-matches-created-config", "deployments": [], "key": "lambda/get-function-configuration-representation-matches-created-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion"], "path": "behavioral/lambda/check_get_function_configuration_representation_matches_created_config.py", "service": "lambda"} {"check_id": "lambda.get-function-scaling-config-default-when-unset", "deployments": [], "key": "lambda/get-function-scaling-config-default-when-unset", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:GetFunctionScalingConfig", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_get_function_scaling_config_default_when_unset.py", "service": "lambda"} {"check_id": "lambda.get-function-scaling-config-invalid-qualifier-rejected", "deployments": [], "key": "lambda/get-function-scaling-config-invalid-qualifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionScalingConfig", "lambda:PublishVersion"], "path": "behavioral/lambda/check_get_function_scaling_config_invalid_qualifier_rejected.py", "service": "lambda"} {"check_id": "lambda.get-function-scaling-config-nonexistent-function-rejected", "deployments": [], "key": "lambda/get-function-scaling-config-nonexistent-function-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionScalingConfig", "lambda:PublishVersion"], "path": "behavioral/lambda/check_get_function_scaling_config_nonexistent_function_rejected.py", "service": "lambda"} {"check_id": "lambda.get-policy-empty-404", "deployments": [], "key": "lambda/get-policy-empty-404", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_get_policy_empty_404.py", "service": "lambda"} {"check_id": "lambda.get-provisioned-concurrency-nonexistent-rejected", "deployments": [], "key": "lambda/get-provisioned-concurrency-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:ListProvisionedConcurrencyConfigs", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_get_provisioned_concurrency_nonexistent_rejected.py", "service": "lambda"} {"check_id": "lambda.go-bootstrap-runs-on-provided-al2023-arm64", "deployments": [], "key": "lambda/go-bootstrap-runs-on-provided-al2023-arm64", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_go_bootstrap_runs_on_provided_al2023_arm64.py", "service": "lambda"} {"check_id": "lambda.go-bootstrap-runs-on-provided-al2023-x86-64", "deployments": [], "key": "lambda/go-bootstrap-runs-on-provided-al2023-x86-64", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_go_bootstrap_runs_on_provided_al2023_x86_64.py", "service": "lambda"} {"check_id": "lambda.handler-import-failure-raises-rather-than-echoing", "deployments": [], "key": "lambda/handler-import-failure-raises-rather-than-echoing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_handler_import_failure_raises_rather_than_echoing.py", "service": "lambda"} {"check_id": "lambda.handler-update-switches-entry-point", "deployments": [], "key": "lambda/handler-update-switches-entry-point", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_handler_update_switches_entry_point.py", "service": "lambda"} {"check_id": "lambda.handler-update-to-missing-function-rejected-at-invoke", "deployments": [], "key": "lambda/handler-update-to-missing-function-rejected-at-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_handler_update_to_missing_function_rejected_at_invoke.py", "service": "lambda"} {"check_id": "lambda.handler-working-until-its-remaining-time-floor-completes-before-the-kill", "deployments": [], "key": "lambda/handler-working-until-its-remaining-time-floor-completes-before-the-kill", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_handler_working_until_its_remaining_time_floor_completes_before_the_kill.py", "service": "lambda"} {"check_id": "lambda.heartbeat-extends-callback-window", "deployments": [], "key": "lambda/heartbeat-extends-callback-window", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:PublishVersion", "lambda:SendDurableExecutionCallbackHeartbeat", "lambda:SendDurableExecutionCallbackSuccess", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_heartbeat_extends_callback_window.py", "service": "lambda"} {"check_id": "lambda.image-function-by-an-unpushed-digest-refused-while-the-pushed-digest-reaches-active", "deployments": [], "key": "lambda/image-function-by-an-unpushed-digest-refused-while-the-pushed-digest-reaches-active", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_image_function_by_an_unpushed_digest_refused_while_the_pushed_digest_reaches_active.py", "service": "lambda"} {"check_id": "lambda.image-function-runs-or-refuses-honestly", "deployments": [], "key": "lambda/image-function-runs-or-refuses-honestly", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_image_function_runs_or_refuses_honestly.py", "service": "lambda"} {"check_id": "lambda.image-function-update-to-a-missing-tag-refused-and-the-deployed-image-kept", "deployments": [], "key": "lambda/image-function-update-to-a-missing-tag-refused-and-the-deployed-image-kept", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_image_function_update_to_a_missing_tag_refused_and_the_deployed_image_kept.py", "service": "lambda"} {"check_id": "lambda.image-runtime-honors-entrypoint-cmd-workdir-and-merges-env", "deployments": [], "key": "lambda/image-runtime-honors-entrypoint-cmd-workdir-and-merges-env", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_image_runtime_honors_entrypoint_cmd_workdir_and_merges_env.py", "service": "lambda"} {"check_id": "lambda.image-uri-preserved-through-create-and-get", "deployments": [], "key": "lambda/image-uri-preserved-through-create-and-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration"], "path": "behavioral/lambda/check_image_uri_preserved_through_create_and_get.py", "service": "lambda"} {"check_id": "lambda.imageconfig-override-replaces-image-defaults-and-function-env-wins", "deployments": [], "key": "lambda/imageconfig-override-replaces-image-defaults-and-function-env-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_imageconfig_override_replaces_image_defaults_and_function_env_wins.py", "service": "lambda"} {"check_id": "lambda.init-failure-error-taxonomy", "deployments": [], "key": "lambda/init-failure-error-taxonomy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_init_failure_error_taxonomy.py", "service": "lambda"} {"check_id": "lambda.init-past-the-init-limit-is-retried-inside-the-invoke-and-timed-out-rejected", "deployments": [], "key": "lambda/init-past-the-init-limit-is-retried-inside-the-invoke-and-timed-out-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_init_past_the_init_limit_is_retried_inside_the_invoke_and_timed_out_rejected.py", "service": "lambda"} {"check_id": "lambda.init-phase-is-not-charged-against-the-function-timeout", "deployments": [], "key": "lambda/init-phase-is-not-charged-against-the-function-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_init_phase_is_not_charged_against_the_function_timeout.py", "service": "lambda"} {"check_id": "lambda.init-runs-module-level", "deployments": [], "key": "lambda/init-runs-module-level", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_init_runs_module_level.py", "service": "lambda"} {"check_id": "lambda.invalid-parameter-rejection-on-writes", "deployments": [], "key": "lambda/invalid-parameter-rejection-on-writes", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetAccountSettings", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:PublishVersion", "lambda:PutFunctionConcurrency", "lambda:PutProvisionedConcurrencyConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invalid_parameter_rejection_on_writes.py", "service": "lambda"} {"check_id": "lambda.invalid-runtime", "deployments": [], "key": "lambda/invalid-runtime", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction"], "path": "behavioral/lambda/check_invalid_runtime.py", "service": "lambda"} {"check_id": "lambda.invoke-async-ec2-errors", "deployments": [], "key": "lambda/invoke-async-ec2-errors", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:InvokeAsync", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invoke_async_ec2_errors.py", "service": "lambda"} {"check_id": "lambda.invoke-async-fire-and-forget-managed", "deployments": [], "key": "lambda/invoke-async-fire-and-forget-managed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:InvokeAsync", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_invoke_async_fire_and_forget_managed.py", "service": "lambda"} {"check_id": "lambda.invoke-async-invalid-qualifier-rejected", "deployments": [], "key": "lambda/invoke-async-invalid-qualifier-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:InvokeAsync", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_invoke_async_invalid_qualifier_rejected.py", "service": "lambda"} {"check_id": "lambda.invoke-code-artifact-state-errors", "deployments": [], "key": "lambda/invoke-code-artifact-state-errors", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invoke_code_artifact_state_errors.py", "service": "lambda"} {"check_id": "lambda.invoke-during-a-memory-update-is-served-and-converges-to-the-new-size", "deployments": [], "key": "lambda/invoke-during-a-memory-update-is-served-and-converges-to-the-new-size", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_invoke_during_a_memory_update_is_served_and_converges_to_the_new_size.py", "service": "lambda"} {"check_id": "lambda.invoke-echo", "deployments": [], "key": "lambda/invoke-echo", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invoke_echo.py", "service": "lambda"} {"check_id": "lambda.invoke-executed-version", "deployments": [], "key": "lambda/invoke-executed-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invoke_executed_version.py", "service": "lambda"} {"check_id": "lambda.invoke-log-result", "deployments": [], "key": "lambda/invoke-log-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_invoke_log_result.py", "service": "lambda"} {"check_id": "lambda.invoke-never-created-alias-rejected", "deployments": [], "key": "lambda/invoke-never-created-alias-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListAliases", "lambda:PublishVersion"], "path": "behavioral/lambda/check_invoke_never_created_alias_rejected.py", "service": "lambda"} {"check_id": "lambda.invoke-nonexistent", "deployments": [], "key": "lambda/invoke-nonexistent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invoke_nonexistent.py", "service": "lambda"} {"check_id": "lambda.invoke-payload-too-large", "deployments": [], "key": "lambda/invoke-payload-too-large", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invoke_payload_too_large.py", "service": "lambda"} {"check_id": "lambda.invoke-qualifier-conflicting-with-name-qualifier-rejected", "deployments": [], "key": "lambda/invoke-qualifier-conflicting-with-name-qualifier-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_invoke_qualifier_conflicting_with_name_qualifier_rejected.py", "service": "lambda"} {"check_id": "lambda.invoke-refuses-a-function-arn-from-another-region", "deployments": [], "key": "lambda/invoke-refuses-a-function-arn-from-another-region", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invoke_refuses_a_function_arn_from_another_region.py", "service": "lambda"} {"check_id": "lambda.invoke-status-codes", "deployments": [], "key": "lambda/invoke-status-codes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_invoke_status_codes.py", "service": "lambda"} {"check_id": "lambda.invoke-with-response-stream-ec2-errors", "deployments": [], "key": "lambda/invoke-with-response-stream-ec2-errors", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:InvokeWithResponseStream", "lambda:PublishVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_invoke_with_response_stream_ec2_errors.py", "service": "lambda"} {"check_id": "lambda.invoke-with-response-stream-managed-streaming", "deployments": [], "key": "lambda/invoke-with-response-stream-managed-streaming", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:InvokeWithResponseStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_invoke_with_response_stream_managed_streaming.py", "service": "lambda"} {"check_id": "lambda.invoke-with-tenant-id-reports-tenant-id-in-context", "deployments": [], "key": "lambda/invoke-with-tenant-id-reports-tenant-id-in-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_invoke_with_tenant_id_reports_tenant_id_in_context.py", "service": "lambda"} {"check_id": "lambda.invoke-without-tenant-id-on-tenant-isolated-function-rejected", "deployments": [], "key": "lambda/invoke-without-tenant-id-on-tenant-isolated-function-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_invoke_without_tenant_id_on_tenant_isolated_function_rejected.py", "service": "lambda"} {"check_id": "lambda.java17-request-stream-handler-gets-raw-bytes-and-a-context-naming-the-invocation", "deployments": [], "key": "lambda/java17-request-stream-handler-gets-raw-bytes-and-a-context-naming-the-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion"], "path": "behavioral/lambda/check_java17_request_stream_handler_gets_raw_bytes_and_a_context_naming_the_invocation.py", "service": "lambda"} {"check_id": "lambda.java21-handler-resolution-and-pojo-serde", "deployments": [], "key": "lambda/java21-handler-resolution-and-pojo-serde", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_java21_handler_resolution_and_pojo_serde.py", "service": "lambda"} {"check_id": "lambda.java21-request-handler-string-return-and-nested-exception-binary-name", "deployments": [], "key": "lambda/java21-request-handler-string-return-and-nested-exception-binary-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_java21_request_handler_string_return_and_nested_exception_binary_name.py", "service": "lambda"} {"check_id": "lambda.java21-snapstart-crac-hooks-and-restore-accounting", "deployments": [], "key": "lambda/java21-snapstart-crac-hooks-and-restore-accounting", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_java21_snapstart_crac_hooks_and_restore_accounting.py", "service": "lambda"} {"check_id": "lambda.java21-unresolvable-handler-string-rejected-at-invoke-not-at-config", "deployments": [], "key": "lambda/java21-unresolvable-handler-string-rejected-at-invoke-not-at-config", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_java21_unresolvable_handler_string_rejected_at_invoke_not_at_config.py", "service": "lambda"} {"check_id": "lambda.java-constructor-and-static-initializer-exception-reported-as-init-error", "deployments": [], "key": "lambda/java-constructor-and-static-initializer-exception-reported-as-init-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_java_constructor_and_static_initializer_exception_reported_as_init_error.py", "service": "lambda"} {"check_id": "lambda.java-exec-wrapper-wraps-the-jvm-bootstrap", "deployments": [], "key": "lambda/java-exec-wrapper-wraps-the-jvm-bootstrap", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_java_exec_wrapper_wraps_the_jvm_bootstrap.py", "service": "lambda"} {"check_id": "lambda.java-family-matrix-one-class-tree-runs-identically-on-every-supported-identifier", "deployments": [], "key": "lambda/java-family-matrix-one-class-tree-runs-identically-on-every-supported-identifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_java_family_matrix_one_class_tree_runs_identically_on_every_supported_identifier.py", "service": "lambda"} {"check_id": "lambda.java-handler-string-resolves-context-overload-and-runs-a-static-method", "deployments": [], "key": "lambda/java-handler-string-resolves-context-overload-and-runs-a-static-method", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_java_handler_string_resolves_context_overload_and_runs_a_static_method.py", "service": "lambda"} {"check_id": "lambda.java-heap-exhaustion-reports-outofmemoryerror-with-a-java-stack-trace", "deployments": [], "key": "lambda/java-heap-exhaustion-reports-outofmemoryerror-with-a-java-stack-trace", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_java_heap_exhaustion_reports_outofmemoryerror_with_a_java_stack_trace.py", "service": "lambda"} {"check_id": "lambda.java-layer-java-lib-jar-resolves-until-the-layer-is-detached", "deployments": [], "key": "lambda/java-layer-java-lib-jar-resolves-until-the-layer-is-detached", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_java_layer_java_lib_jar_resolves_until_the_layer_is_detached.py", "service": "lambda"} {"check_id": "lambda.java-package-root-classes-and-lib-jars-resolve-alphabetically", "deployments": [], "key": "lambda/java-package-root-classes-and-lib-jars-resolve-alphabetically", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_java_package_root_classes_and_lib_jars_resolve_alphabetically.py", "service": "lambda"} {"check_id": "lambda.java-system-exit-reports-runtime-exit-error-and-resets-state", "deployments": [], "key": "lambda/java-system-exit-reports-runtime-exit-error-and-resets-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_java_system_exit_reports_runtime_exit_error_and_resets_state.py", "service": "lambda"} {"check_id": "lambda.java-task-timed-out-kills-the-invoke-and-resets-the-jvm", "deployments": [], "key": "lambda/java-task-timed-out-kills-the-invoke-and-resets-the-jvm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_java_task_timed_out_kills_the_invoke_and_resets_the_jvm.py", "service": "lambda"} {"check_id": "lambda.java-tool-options-system-property-reaches-the-jvm", "deployments": [], "key": "lambda/java-tool-options-system-property-reaches-the-jvm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_java_tool_options_system_property_reaches_the_jvm.py", "service": "lambda"} {"check_id": "lambda.layer-code-importable", "deployments": [], "key": "lambda/layer-code-importable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_layer_code_importable.py", "service": "lambda"} {"check_id": "lambda.layer-count-over-five-rejected", "deployments": [], "key": "lambda/layer-count-over-five-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_layer_count_over_five_rejected.py", "service": "lambda"} {"check_id": "lambda.layer-custom-runtime-bootstrap-served-from-opt-and-package-bootstrap-wins", "deployments": [], "key": "lambda/layer-custom-runtime-bootstrap-served-from-opt-and-package-bootstrap-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_custom_runtime_bootstrap_served_from_opt_and_package_bootstrap_wins.py", "service": "lambda"} {"check_id": "lambda.layer-declared-incompatible-runtime-and-architecture-still-attaches-and-loads", "deployments": [], "key": "lambda/layer-declared-incompatible-runtime-and-architecture-still-attaches-and-loads", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:GetLayerVersion", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_declared_incompatible_runtime_and_architecture_still_attaches_and_loads.py", "service": "lambda"} {"check_id": "lambda.layer-direct-upload-request-over-size-limit-rejected-no-version-minted", "deployments": [], "key": "lambda/layer-direct-upload-request-over-size-limit-rejected-no-version-minted", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda:DeleteLayerVersion", "lambda:ListLayerVersions", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_layer_direct_upload_request_over_size_limit_rejected_no_version_minted.py", "service": "lambda"} {"check_id": "lambda.layer-lib-dir-on-ld-library-path-loads-shared-object-by-bare-name", "deployments": [], "key": "lambda/layer-lib-dir-on-ld-library-path-loads-shared-object-by-bare-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_lib_dir_on_ld_library_path_loads_shared_object_by_bare_name.py", "service": "lambda"} {"check_id": "lambda.layer-module-overrides-runtime-bundled-boto3", "deployments": [], "key": "lambda/layer-module-overrides-runtime-bundled-boto3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_module_overrides_runtime_bundled_boto3.py", "service": "lambda"} {"check_id": "lambda.layer-nodejs-function-node-modules-shadows-layer-package", "deployments": [], "key": "lambda/layer-nodejs-function-node-modules-shadows-layer-package", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_nodejs_function_node_modules_shadows_layer_package.py", "service": "lambda"} {"check_id": "lambda.layer-nodejs-node-modules-paths-resolve-by-require", "deployments": [], "key": "lambda/layer-nodejs-node-modules-paths-resolve-by-require", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_nodejs_node_modules_paths_resolve_by_require.py", "service": "lambda"} {"check_id": "lambda.layer-nodejs-other-major-directory-not-resolvable-rejected", "deployments": [], "key": "lambda/layer-nodejs-other-major-directory-not-resolvable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_nodejs_other_major_directory_not_resolvable_rejected.py", "service": "lambda"} {"check_id": "lambda.layer-permission-lifecycle", "deployments": [], "key": "lambda/layer-permission-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:AddLayerVersionPermission", "lambda:DeleteLayerVersion", "lambda:GetLayerVersionPolicy", "lambda:PublishLayerVersion", "lambda:RemoveLayerVersionPermission", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_layer_permission_lifecycle.py", "service": "lambda"} {"check_id": "lambda.layer-permission-revisionid-precondition", "deployments": [], "key": "lambda/layer-permission-revisionid-precondition", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda:AddLayerVersionPermission", "lambda:DeleteLayerVersion", "lambda:GetLayerVersionPolicy", "lambda:PublishLayerVersion", "lambda:RemoveLayerVersionPermission", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_layer_permission_revisionid_precondition.py", "service": "lambda"} {"check_id": "lambda.layer-pth-files-in-layer-site-dirs-extend-sys-path", "deployments": [], "key": "lambda/layer-pth-files-in-layer-site-dirs-extend-sys-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_pth_files_in_layer_site_dirs_extend_sys_path.py", "service": "lambda"} {"check_id": "lambda.layer-published-version-keeps-its-layer-after-latest-repoints-and-layer-deleted", "deployments": [], "key": "lambda/layer-published-version-keeps-its-layer-after-latest-repoints-and-layer-deleted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:GetLayerVersion", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_published_version_keeps_its_layer_after_latest_repoints_and_layer_deleted.py", "service": "lambda"} {"check_id": "lambda.layer-python-site-packages-dir-importable-and-precedes-python-root", "deployments": [], "key": "lambda/layer-python-site-packages-dir-importable-and-precedes-python-root", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_python_site_packages_dir_importable_and_precedes_python_root.py", "service": "lambda"} {"check_id": "lambda.layer-python-site-packages-for-other-minor-version-not-importable-rejected", "deployments": [], "key": "lambda/layer-python-site-packages-for-other-minor-version-not-importable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layer_python_site_packages_for_other_minor_version_not_importable_rejected.py", "service": "lambda"} {"check_id": "lambda.layer-version-by-arn-consistency", "deployments": [], "key": "lambda/layer-version-by-arn-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:DeleteLayerVersion", "lambda:GetLayerVersion", "lambda:GetLayerVersionByArn", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_layer_version_by_arn_consistency.py", "service": "lambda"} {"check_id": "lambda.layer-version-numbering", "deployments": [], "key": "lambda/layer-version-numbering", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:DeleteLayerVersion", "lambda:ListLayerVersions", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_layer_version_numbering.py", "service": "lambda"} {"check_id": "lambda.layer-version-permission-duplicate-statement-rejected", "deployments": [], "key": "lambda/layer-version-permission-duplicate-statement-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda:AddLayerVersionPermission", "lambda:DeleteLayerVersion", "lambda:GetLayerVersionPolicy", "lambda:PublishLayerVersion", "lambda:RemoveLayerVersionPermission", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_layer_version_permission_duplicate_statement_rejected.py", "service": "lambda"} {"check_id": "lambda.layer-version-permission-lifecycle", "deployments": [], "key": "lambda/layer-version-permission-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:AddLayerVersionPermission", "lambda:DeleteLayerVersion", "lambda:GetLayerVersionPolicy", "lambda:PublishLayerVersion", "lambda:RemoveLayerVersionPermission", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_layer_version_permission_lifecycle.py", "service": "lambda"} {"check_id": "lambda.layers-bin-on-path-executes-layer-binary", "deployments": [], "key": "lambda/layers-bin-on-path-executes-layer-binary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_layers_bin_on_path_executes_layer_binary.py", "service": "lambda"} {"check_id": "lambda.layers-combined-unzipped-size-over-250mb-rejected", "deployments": [], "key": "lambda/layers-combined-unzipped-size-over-250mb-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_layers_combined_unzipped_size_over_250mb_rejected.py", "service": "lambda"} {"check_id": "lambda.layers-deleted-version-still-resolves-new-reference-rejected", "deployments": [], "key": "lambda/layers-deleted-version-still-resolves-new-reference-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListLayerVersions", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_layers_deleted_version_still_resolves_new_reference_rejected.py", "service": "lambda"} {"check_id": "lambda.layers-detach-breaks-handler-import", "deployments": [], "key": "lambda/layers-detach-breaks-handler-import", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_layers_detach_breaks_handler_import.py", "service": "lambda"} {"check_id": "lambda.layers-function-package-shadows-layer-module", "deployments": [], "key": "lambda/layers-function-package-shadows-layer-module", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_layers_function_package_shadows_layer_module.py", "service": "lambda"} {"check_id": "lambda.layers-toplevel-zip-entry-not-importable-rejected", "deployments": [], "key": "lambda/layers-toplevel-zip-entry-not-importable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_layers_toplevel_zip_entry_not_importable_rejected.py", "service": "lambda"} {"check_id": "lambda.layers-version-pin-ignores-newer-version", "deployments": [], "key": "lambda/layers-version-pin-ignores-newer-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_layers_version_pin_ignores_newer_version.py", "service": "lambda"} {"check_id": "lambda.list-capacity-providers-stable-ordering", "deployments": [], "key": "lambda/list-capacity-providers-stable-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:ListCapacityProviders"], "path": "behavioral/lambda/check_list_capacity_providers_stable_ordering.py", "service": "lambda"} {"check_id": "lambda.list-durable-executions-by-function", "deployments": [], "key": "lambda/list-durable-executions-by-function", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_list_durable_executions_by_function.py", "service": "lambda"} {"check_id": "lambda.list-event-source-mappings-reflects", "deployments": [], "key": "lambda/list-event-source-mappings-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_list_event_source_mappings_reflects.py", "service": "lambda"} {"check_id": "lambda.list-function-event-invoke-configs-reflects", "deployments": [], "key": "lambda/list-function-event-invoke-configs-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListFunctionEventInvokeConfigs", "lambda:PublishVersion", "lambda:PutFunctionEventInvokeConfig"], "path": "behavioral/lambda/check_list_function_event_invoke_configs_reflects.py", "service": "lambda"} {"check_id": "lambda.list-function-url-configs-reflects", "deployments": [], "key": "lambda/list-function-url-configs-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:ListFunctionUrlConfigs", "lambda:PublishVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_list_function_url_configs_reflects.py", "service": "lambda"} {"check_id": "lambda.list-function-versions-by-capacity-provider-invalid-parameter-rejected", "deployments": [], "key": "lambda/list-function-versions-by-capacity-provider-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:ListFunctionVersionsByCapacityProvider"], "path": "behavioral/lambda/check_list_function_versions_by_capacity_provider_invalid_parameter_rejected.py", "service": "lambda"} {"check_id": "lambda.list-function-versions-by-capacity-provider-nonexistent-provider-rejected", "deployments": [], "key": "lambda/list-function-versions-by-capacity-provider-nonexistent-provider-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:ListFunctionVersionsByCapacityProvider"], "path": "behavioral/lambda/check_list_function_versions_by_capacity_provider_nonexistent_provider_rejected.py", "service": "lambda"} {"check_id": "lambda.list-functions-pagination-order", "deployments": [], "key": "lambda/list-functions-pagination-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:ListFunctions", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_list_functions_pagination_order.py", "service": "lambda"} {"check_id": "lambda.list-functions-throttling-and-pagination-consistency", "deployments": [], "key": "lambda/list-functions-throttling-and-pagination-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:ListFunctions", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_list_functions_throttling_and_pagination_consistency.py", "service": "lambda"} {"check_id": "lambda.list-includes-created", "deployments": [], "key": "lambda/list-includes-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:ListFunctions", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_list_includes_created.py", "service": "lambda"} {"check_id": "lambda.list-layers-and-versions", "deployments": [], "key": "lambda/list-layers-and-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:DeleteLayerVersion", "lambda:ListLayerVersions", "lambda:ListLayers", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_list_layers_and_versions.py", "service": "lambda"} {"check_id": "lambda.list-layers-filter-matches-only-the-latest-version-not-history", "deployments": [], "key": "lambda/list-layers-filter-matches-only-the-latest-version-not-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:DeleteLayerVersion", "lambda:ListLayerVersions", "lambda:ListLayers", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_list_layers_filter_matches_only_the_latest_version_not_history.py", "service": "lambda"} {"check_id": "lambda.list-versions", "deployments": [], "key": "lambda/list-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:ListVersionsByFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_list_versions.py", "service": "lambda"} {"check_id": "lambda.list-versions-by-function-ordering", "deployments": [], "key": "lambda/list-versions-by-function-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListVersionsByFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_list_versions_by_function_ordering.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-init-duration-only-on-cold-report-line", "deployments": [], "key": "lambda/log-lambda-report-init-duration-only-on-cold-report-line", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_init_duration_only_on_cold_report_line.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-json-format-platform-and-application-records-field-by-field", "deployments": [], "key": "lambda/log-lambda-report-json-format-platform-and-application-records-field-by-field", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_json_format_platform_and_application_records_field_by_field.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-log-level-with-text-format-rejected", "deployments": [], "key": "lambda/log-lambda-report-log-level-with-text-format-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_log_level_with_text_format_rejected.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-log-result-tail-is-last-4kb-of-invocation-log", "deployments": [], "key": "lambda/log-lambda-report-log-result-tail-is-last-4kb-of-invocation-log", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_log_result_tail_is_last_4kb_of_invocation_log.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-new-environment-opens-new-stream-warm-reuse-shares-one", "deployments": [], "key": "lambda/log-lambda-report-new-environment-opens-new-stream-warm-reuse-shares-one", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_new_environment_opens_new_stream_warm_reuse_shares_one.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-start-end-report-lines-bracket-the-invoke-request-id", "deployments": [], "key": "lambda/log-lambda-report-start-end-report-lines-bracket-the-invoke-request-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_start_end_report_lines_bracket_the_invoke_request_id.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-stdout-stderr-and-logging-lines-framed-in-stream", "deployments": [], "key": "lambda/log-lambda-report-stdout-stderr-and-logging-lines-framed-in-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_stdout_stderr_and_logging_lines_framed_in_stream.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-stream-name-format-carries-date-and-version-qualifier", "deployments": [], "key": "lambda/log-lambda-report-stream-name-format-carries-date-and-version-qualifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_stream_name_format_carries_date_and_version_qualifier.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-system-log-level-filters-platform-records-independently", "deployments": [], "key": "lambda/log-lambda-report-system-log-level-filters-platform-records-independently", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_system_log_level_filters_platform_records_independently.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-unhandled-exception-error-line-matches-function-error-and-tail", "deployments": [], "key": "lambda/log-lambda-report-unhandled-exception-error-line-matches-function-error-and-tail", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_unhandled_exception_error_line_matches_function_error_and_tail.py", "service": "lambda"} {"check_id": "lambda.log-lambda-report-unpublished-version-invoke-rejected-and-writes-no-stream", "deployments": [], "key": "lambda/log-lambda-report-unpublished-version-invoke-rejected-and-writes-no-stream", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents"], "path": "behavioral/lambda/check_log_lambda_report_unpublished_version_invoke_rejected_and_writes_no_stream.py", "service": "lambda"} {"check_id": "lambda.log-tail-absent-unless-log-type-is-tail", "deployments": [], "key": "lambda/log-tail-absent-unless-log-type-is-tail", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_absent_unless_log_type_is_tail.py", "service": "lambda"} {"check_id": "lambda.log-tail-application-log-level-update-admits-debug-on-next-invoke", "deployments": [], "key": "lambda/log-tail-application-log-level-update-admits-debug-on-next-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_application_log_level_update_admits_debug_on_next_invoke.py", "service": "lambda"} {"check_id": "lambda.log-tail-init-phase-output-precedes-first-start-only", "deployments": [], "key": "lambda/log-tail-init-phase-output-precedes-first-start-only", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_init_phase_output_precedes_first_start_only.py", "service": "lambda"} {"check_id": "lambda.log-tail-node-json-console-methods-map-to-their-levels", "deployments": [], "key": "lambda/log-tail-node-json-console-methods-map-to-their-levels", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_node_json_console_methods_map_to_their_levels.py", "service": "lambda"} {"check_id": "lambda.log-tail-node-json-error-argument-adds-error-fields", "deployments": [], "key": "lambda/log-tail-node-json-error-argument-adds-error-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_node_json_error_argument_adds_error_fields.py", "service": "lambda"} {"check_id": "lambda.log-tail-node-json-error-level-drops-lower-console-records", "deployments": [], "key": "lambda/log-tail-node-json-error-level-drops-lower-console-records", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_node_json_error_level_drops_lower_console_records.py", "service": "lambda"} {"check_id": "lambda.log-tail-node-json-object-argument-stays-structured", "deployments": [], "key": "lambda/log-tail-node-json-object-argument-stays-structured", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_node_json_object_argument_stays_structured.py", "service": "lambda"} {"check_id": "lambda.log-tail-node-json-unhandled-error-nests-the-error-in-message", "deployments": [], "key": "lambda/log-tail-node-json-unhandled-error-nests-the-error-in-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_node_json_unhandled_error_nests_the_error_in_message.py", "service": "lambda"} {"check_id": "lambda.log-tail-node-text-console-lines-are-tab-framed", "deployments": [], "key": "lambda/log-tail-node-text-console-lines-are-tab-framed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_node_text_console_lines_are_tab_framed.py", "service": "lambda"} {"check_id": "lambda.log-tail-not-returned-for-dry-run", "deployments": [], "key": "lambda/log-tail-not-returned-for-dry-run", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_not_returned_for_dry_run.py", "service": "lambda"} {"check_id": "lambda.log-tail-not-returned-for-event-invocation", "deployments": [], "key": "lambda/log-tail-not-returned-for-event-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_not_returned_for_event_invocation.py", "service": "lambda"} {"check_id": "lambda.log-tail-python-json-extra-fields-merge-into-the-record", "deployments": [], "key": "lambda/log-tail-python-json-extra-fields-merge-into-the-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_python_json_extra_fields_merge_into_the_record.py", "service": "lambda"} {"check_id": "lambda.log-tail-python-json-levels-keep-python-level-names", "deployments": [], "key": "lambda/log-tail-python-json-levels-keep-python-level-names", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_python_json_levels_keep_python_level_names.py", "service": "lambda"} {"check_id": "lambda.log-tail-python-json-logging-exception-carries-error-fields", "deployments": [], "key": "lambda/log-tail-python-json-logging-exception-carries-error-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_python_json_logging_exception_carries_error_fields.py", "service": "lambda"} {"check_id": "lambda.log-tail-python-json-unhandled-error-record-uses-log-level-key", "deployments": [], "key": "lambda/log-tail-python-json-unhandled-error-record-uses-log-level-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_python_json_unhandled_error_record_uses_log_level_key.py", "service": "lambda"} {"check_id": "lambda.log-tail-python-text-format-defaults-root-logger-to-warning", "deployments": [], "key": "lambda/log-tail-python-text-format-defaults-root-logger-to-warning", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_python_text_format_defaults_root_logger_to_warning.py", "service": "lambda"} {"check_id": "lambda.log-tail-runtime-env-exposes-log-format-and-level", "deployments": [], "key": "lambda/log-tail-runtime-env-exposes-log-format-and-level", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_runtime_env_exposes_log_format_and_level.py", "service": "lambda"} {"check_id": "lambda.log-tail-utf8-output-round-trips-byte-exact", "deployments": [], "key": "lambda/log-tail-utf8-output-round-trips-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_log_tail_utf8_output_round_trips_byte_exact.py", "service": "lambda"} {"check_id": "lambda.logging-config-json-format-filters-application-log-level", "deployments": [], "key": "lambda/logging-config-json-format-filters-application-log-level", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_logging_config_json_format_filters_application_log_level.py", "service": "lambda"} {"check_id": "lambda.logging-config-log-group-override-routes-logs-and-leaves-the-default-group-absent", "deployments": [], "key": "lambda/logging-config-log-group-override-routes-logs-and-leaves-the-default-group-absent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_logging_config_log_group_override_routes_logs_and_leaves_the_default_group_absent.py", "service": "lambda"} {"check_id": "lambda.memory-size-bounds-rejected-and-accepted", "deployments": [], "key": "lambda/memory-size-bounds-rejected-and-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_memory_size_bounds_rejected_and_accepted.py", "service": "lambda"} {"check_id": "lambda.memory-size-seen-by-the-handler-tracks-a-configuration-update", "deployments": [], "key": "lambda/memory-size-seen-by-the-handler-tracks-a-configuration-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_memory_size_seen_by_the_handler_tracks_a_configuration_update.py", "service": "lambda"} {"check_id": "lambda.mq-esm-role-without-describe-broker-rejected-before-the-broker-is-looked-up", "deployments": [], "key": "lambda/mq-esm-role-without-describe-broker-rejected-before-the-broker-is-looked-up", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings"], "path": "behavioral/lambda/check_mq_esm_role_without_describe_broker_rejected_before_the_broker_is_looked_up.py", "service": "lambda"} {"check_id": "lambda.msk-esm-invalid-starting-position-rejected", "deployments": [], "key": "lambda/msk-esm-invalid-starting-position-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings"], "path": "behavioral/lambda/check_msk_esm_invalid_starting_position_rejected.py", "service": "lambda"} {"check_id": "lambda.msk-esm-role-without-describe-cluster-rejected-before-the-cluster-is-looked-up", "deployments": [], "key": "lambda/msk-esm-role-without-describe-cluster-rejected-before-the-cluster-is-looked-up", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings"], "path": "behavioral/lambda/check_msk_esm_role_without_describe_cluster_rejected_before_the_cluster_is_looked_up.py", "service": "lambda"} {"check_id": "lambda.msk-esm-topics-list-too-long-rejected", "deployments": [], "key": "lambda/msk-esm-topics-list-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings"], "path": "behavioral/lambda/check_msk_esm_topics_list_too_long_rejected.py", "service": "lambda"} {"check_id": "lambda.multi-file-zip", "deployments": [], "key": "lambda/multi-file-zip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_multi_file_zip.py", "service": "lambda"} {"check_id": "lambda.native-elf-arch-execution-and-wrong-isa-rejected", "deployments": [], "key": "lambda/native-elf-arch-execution-and-wrong-isa-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_native_elf_arch_execution_and_wrong_isa_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-async-handler-never-settling-rejected-as-nodejs-exit", "deployments": [], "key": "lambda/nodejs-async-handler-never-settling-rejected-as-nodejs-exit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_async_handler_never_settling_rejected_as_nodejs_exit.py", "service": "lambda"} {"check_id": "lambda.nodejs-async-handler-return-values-serialize-to-json-payload", "deployments": [], "key": "lambda/nodejs-async-handler-return-values-serialize-to-json-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_async_handler_return_values_serialize_to_json_payload.py", "service": "lambda"} {"check_id": "lambda.nodejs-builtin-sdk-v3-clients-resolve-without-bundling", "deployments": [], "key": "lambda/nodejs-builtin-sdk-v3-clients-resolve-without-bundling", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_builtin_sdk_v3_clients_resolve_without_bundling.py", "service": "lambda"} {"check_id": "lambda.nodejs-callback-and-context-succeed-done-return-result", "deployments": [], "key": "lambda/nodejs-callback-and-context-succeed-done-return-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_callback_and_context_succeed_done_return_result.py", "service": "lambda"} {"check_id": "lambda.nodejs-callback-error-reports-unhandled-rejected", "deployments": [], "key": "lambda/nodejs-callback-error-reports-unhandled-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_callback_error_reports_unhandled_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-callback-waits-for-empty-event-loop-by-default", "deployments": [], "key": "lambda/nodejs-callback-waits-for-empty-event-loop-by-default", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_callback_waits_for_empty_event_loop_by_default.py", "service": "lambda"} {"check_id": "lambda.nodejs-child-process-exec-sync", "deployments": [], "key": "lambda/nodejs-child-process-exec-sync", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_child_process_exec_sync.py", "service": "lambda"} {"check_id": "lambda.nodejs-concurrent-invocations-run-in-parallel", "deployments": [], "key": "lambda/nodejs-concurrent-invocations-run-in-parallel", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_concurrent_invocations_run_in_parallel.py", "service": "lambda"} {"check_id": "lambda.nodejs-context-object-describes-the-invocation", "deployments": [], "key": "lambda/nodejs-context-object-describes-the-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion"], "path": "behavioral/lambda/check_nodejs_context_object_describes_the_invocation.py", "service": "lambda"} {"check_id": "lambda.nodejs-core-module-surface", "deployments": [], "key": "lambda/nodejs-core-module-surface", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_core_module_surface.py", "service": "lambda"} {"check_id": "lambda.nodejs-cpu-bound-handler-within-timeout", "deployments": [], "key": "lambda/nodejs-cpu-bound-handler-within-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_cpu_bound_handler_within_timeout.py", "service": "lambda"} {"check_id": "lambda.nodejs-crypto-cipher-round-trip", "deployments": [], "key": "lambda/nodejs-crypto-cipher-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_crypto_cipher_round_trip.py", "service": "lambda"} {"check_id": "lambda.nodejs-esm-handler-with-type-module", "deployments": [], "key": "lambda/nodejs-esm-handler-with-type-module", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_esm_handler_with_type_module.py", "service": "lambda"} {"check_id": "lambda.nodejs-esm-named-module-handler-digests-nested-events", "deployments": [], "key": "lambda/nodejs-esm-named-module-handler-digests-nested-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_nodejs_esm_named_module_handler_digests_nested_events.py", "service": "lambda"} {"check_id": "lambda.nodejs-esm-syntax-in-commonjs-js-rejected", "deployments": [], "key": "lambda/nodejs-esm-syntax-in-commonjs-js-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_esm_syntax_in_commonjs_js_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-event-invocation-runs-the-handler-and-logs-its-digest-under-the-request-id", "deployments": [], "key": "lambda/nodejs-event-invocation-runs-the-handler-and-logs-its-digest-under-the-request-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_nodejs_event_invocation_runs_the_handler_and_logs_its_digest_under_the_request_id.py", "service": "lambda"} {"check_id": "lambda.nodejs-filesystem-outside-tmp-is-read-only-rejected", "deployments": [], "key": "lambda/nodejs-filesystem-outside-tmp-is-read-only-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_nodejs_filesystem_outside_tmp_is_read_only_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-function-sdk-v3-writes-binary-bytes-the-caller-reads-back", "deployments": [], "key": "lambda/nodejs-function-sdk-v3-writes-binary-bytes-the-caller-reads-back", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_nodejs_function_sdk_v3_writes_binary_bytes_the_caller_reads_back.py", "service": "lambda"} {"check_id": "lambda.nodejs-handler-in-nested-directory-resolves", "deployments": [], "key": "lambda/nodejs-handler-in-nested-directory-resolves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_handler_in_nested_directory_resolves.py", "service": "lambda"} {"check_id": "lambda.nodejs-handler-reads-bundled-config-file", "deployments": [], "key": "lambda/nodejs-handler-reads-bundled-config-file", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_handler_reads_bundled_config_file.py", "service": "lambda"} {"check_id": "lambda.nodejs-init-exception-reported-on-invoke-rejected", "deployments": [], "key": "lambda/nodejs-init-exception-reported-on-invoke-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_init_exception_reported_on_invoke_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-js-file-wins-over-mjs-for-same-handler-module", "deployments": [], "key": "lambda/nodejs-js-file-wins-over-mjs-for-same-handler-module", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_js_file_wins_over_mjs_for_same_handler_module.py", "service": "lambda"} {"check_id": "lambda.nodejs-missing-handler-export-rejected-as-handler-not-found", "deployments": [], "key": "lambda/nodejs-missing-handler-export-rejected-as-handler-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_missing_handler_export_rejected_as_handler_not_found.py", "service": "lambda"} {"check_id": "lambda.nodejs-missing-module-rejected-as-import-module-error", "deployments": [], "key": "lambda/nodejs-missing-module-rejected-as-import-module-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_missing_module_rejected_as_import_module_error.py", "service": "lambda"} {"check_id": "lambda.nodejs-mjs-handler-top-level-await-completes-during-init", "deployments": [], "key": "lambda/nodejs-mjs-handler-top-level-await-completes-during-init", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_mjs_handler_top_level_await_completes_during_init.py", "service": "lambda"} {"check_id": "lambda.nodejs-native-addon-from-npm-loads", "deployments": [], "key": "lambda/nodejs-native-addon-from-npm-loads", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_native_addon_from_npm_loads.py", "service": "lambda"} {"check_id": "lambda.nodejs-node-options-preloads-module-and-sets-flags", "deployments": [], "key": "lambda/nodejs-node-options-preloads-module-and-sets-flags", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_node_options_preloads_module_and_sets_flags.py", "service": "lambda"} {"check_id": "lambda.nodejs-non-object-event-payloads-reach-handler-unwrapped", "deployments": [], "key": "lambda/nodejs-non-object-event-payloads-reach-handler-unwrapped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_non_object_event_payloads_reach_handler_unwrapped.py", "service": "lambda"} {"check_id": "lambda.nodejs-non-serializable-result-rejected", "deployments": [], "key": "lambda/nodejs-non-serializable-result-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_non_serializable_result_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-package-json-dependency-tree-imports", "deployments": [], "key": "lambda/nodejs-package-json-dependency-tree-imports", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_package_json_dependency_tree_imports.py", "service": "lambda"} {"check_id": "lambda.nodejs-package-json-esm-dependency-with-exports", "deployments": [], "key": "lambda/nodejs-package-json-esm-dependency-with-exports", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_package_json_esm_dependency_with_exports.py", "service": "lambda"} {"check_id": "lambda.nodejs-package-json-lodash-and-dayjs", "deployments": [], "key": "lambda/nodejs-package-json-lodash-and-dayjs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_package_json_lodash_and_dayjs.py", "service": "lambda"} {"check_id": "lambda.nodejs-package-type-module-loads-js-as-esm", "deployments": [], "key": "lambda/nodejs-package-type-module-loads-js-as-esm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_package_type_module_loads_js_as_esm.py", "service": "lambda"} {"check_id": "lambda.nodejs-pending-timer-runs-in-next-invocation-when-not-waiting", "deployments": [], "key": "lambda/nodejs-pending-timer-runs-in-next-invocation-when-not-waiting", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_pending_timer_runs_in_next_invocation_when_not_waiting.py", "service": "lambda"} {"check_id": "lambda.nodejs-process-exit-reports-exit-error-and-reinitializes-rejected", "deployments": [], "key": "lambda/nodejs-process-exit-reports-exit-error-and-reinitializes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_process_exit_reports_exit_error_and_reinitializes_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-rejected-promise-reports-rejection-reason-rejected", "deployments": [], "key": "lambda/nodejs-rejected-promise-reports-rejection-reason-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_rejected_promise_reports_rejection_reason_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-require-in-type-module-package-rejected", "deployments": [], "key": "lambda/nodejs-require-in-type-module-package-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_require_in_type_module_package_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-resolves-package-exports-map", "deployments": [], "key": "lambda/nodejs-resolves-package-exports-map", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_resolves_package_exports_map.py", "service": "lambda"} {"check_id": "lambda.nodejs-runtime-environment-variables-identify-runtime", "deployments": [], "key": "lambda/nodejs-runtime-environment-variables-identify-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_runtime_environment_variables_identify_runtime.py", "service": "lambda"} {"check_id": "lambda.nodejs-runtime-executes", "deployments": [], "key": "lambda/nodejs-runtime-executes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListFunctions", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_nodejs_runtime_executes.py", "service": "lambda"} {"check_id": "lambda.nodejs-runtime-family-matrix-identical-across-every-supported-identifier", "deployments": [], "key": "lambda/nodejs-runtime-family-matrix-identical-across-every-supported-identifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_nodejs_runtime_family_matrix_identical_across_every_supported_identifier.py", "service": "lambda"} {"check_id": "lambda.nodejs-stray-unhandled-rejection-fails-invoke-rejected", "deployments": [], "key": "lambda/nodejs-stray-unhandled-rejection-fails-invoke-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_stray_unhandled_rejection_fails_invoke_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-sync-handler-return-value-is-discarded", "deployments": [], "key": "lambda/nodejs-sync-handler-return-value-is-discarded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_sync_handler_return_value_is_discarded.py", "service": "lambda"} {"check_id": "lambda.nodejs-syntax-error-rejected-as-user-code-syntax-error", "deployments": [], "key": "lambda/nodejs-syntax-error-rejected-as-user-code-syntax-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_syntax_error_rejected_as_user_code_syntax_error.py", "service": "lambda"} {"check_id": "lambda.nodejs-task-timed-out-discards-the-execution-environment-rejected", "deployments": [], "key": "lambda/nodejs-task-timed-out-discards-the-execution-environment-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_nodejs_task_timed_out_discards_the_execution_environment_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-thrown-error-reports-type-message-and-trace-rejected", "deployments": [], "key": "lambda/nodejs-thrown-error-reports-type-message-and-trace-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_thrown_error_reports_type_message_and_trace_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-thrown-non-error-values-report-typeof-rejected", "deployments": [], "key": "lambda/nodejs-thrown-non-error-values-report-typeof-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_thrown_non_error_values_report_typeof_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-tz-environment-variable-sets-local-time-zone", "deployments": [], "key": "lambda/nodejs-tz-environment-variable-sets-local-time-zone", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_tz_environment_variable_sets_local_time_zone.py", "service": "lambda"} {"check_id": "lambda.nodejs-unicode-payload-round-trips", "deployments": [], "key": "lambda/nodejs-unicode-payload-round-trips", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_unicode_payload_round_trips.py", "service": "lambda"} {"check_id": "lambda.nodejs-unknown-node-options-flag-rejected-as-exit-error", "deployments": [], "key": "lambda/nodejs-unknown-node-options-flag-rejected-as-exit-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_unknown_node_options_flag_rejected_as_exit_error.py", "service": "lambda"} {"check_id": "lambda.nodejs-v8-heap-exhaustion-aborts-distinct-from-os-level-out-of-memory-rejected", "deployments": [], "key": "lambda/nodejs-v8-heap-exhaustion-aborts-distinct-from-os-level-out-of-memory-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_nodejs_v8_heap_exhaustion_aborts_distinct_from_os_level_out_of_memory_rejected.py", "service": "lambda"} {"check_id": "lambda.nodejs-warm-environment-reuses-module-scope-and-tmp", "deployments": [], "key": "lambda/nodejs-warm-environment-reuses-module-scope-and-tmp", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_warm_environment_reuses_module_scope_and_tmp.py", "service": "lambda"} {"check_id": "lambda.nodejs-web-globals-present", "deployments": [], "key": "lambda/nodejs-web-globals-present", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_web_globals_present.py", "service": "lambda"} {"check_id": "lambda.nodejs-worker-threads-run", "deployments": [], "key": "lambda/nodejs-worker-threads-run", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_worker_threads_run.py", "service": "lambda"} {"check_id": "lambda.nodejs-zlib-gzip-round-trip", "deployments": [], "key": "lambda/nodejs-zlib-gzip-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_nodejs_zlib_gzip_round_trip.py", "service": "lambda"} {"check_id": "lambda.out-of-memory-invocation-releases-its-reserved-concurrency-slot", "deployments": [], "key": "lambda/out-of-memory-invocation-releases-its-reserved-concurrency-slot", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_out_of_memory_invocation_releases_its_reserved_concurrency_slot.py", "service": "lambda"} {"check_id": "lambda.out-of-memory-kill-discards-the-execution-environment", "deployments": [], "key": "lambda/out-of-memory-kill-discards-the-execution-environment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_out_of_memory_kill_discards_the_execution_environment.py", "service": "lambda"} {"check_id": "lambda.outbound-dns-resolution-failure-for-unresolvable-hostname-rejected", "deployments": [], "key": "lambda/outbound-dns-resolution-failure-for-unresolvable-hostname-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_outbound_dns_resolution_failure_for_unresolvable_hostname_rejected.py", "service": "lambda"} {"check_id": "lambda.outbound-https-fetches-s3-object-via-virtual-hosted-presigned-url", "deployments": [], "key": "lambda/outbound-https-fetches-s3-object-via-virtual-hosted-presigned-url", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/lambda/check_outbound_https_fetches_s3_object_via_virtual_hosted_presigned_url.py", "service": "lambda"} {"check_id": "lambda.oversize-unhandled-error-becomes-response-size-too-large-rejected", "deployments": [], "key": "lambda/oversize-unhandled-error-becomes-response-size-too-large-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_oversize_unhandled_error_becomes_response_size_too_large_rejected.py", "service": "lambda"} {"check_id": "lambda.package-file-modes-normalized-so-every-file-is-readable-and-executable", "deployments": [], "key": "lambda/package-file-modes-normalized-so-every-file-is-readable-and-executable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_package_file_modes_normalized_so_every_file_is_readable_and_executable.py", "service": "lambda"} {"check_id": "lambda.package-handler-in-subdirectory-resolves-by-slash-and-dotted-path", "deployments": [], "key": "lambda/package-handler-in-subdirectory-resolves-by-slash-and-dotted-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_package_handler_in_subdirectory_resolves_by_slash_and_dotted_path.py", "service": "lambda"} {"check_id": "lambda.package-non-ascii-file-names-preserved-byte-exact", "deployments": [], "key": "lambda/package-non-ascii-file-names-preserved-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_package_non_ascii_file_names_preserved_byte_exact.py", "service": "lambda"} {"check_id": "lambda.package-symlinks-extracted-as-symlinks-and-followed", "deployments": [], "key": "lambda/package-symlinks-extracted-as-symlinks-and-followed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_package_symlinks_extracted_as_symlinks_and_followed.py", "service": "lambda"} {"check_id": "lambda.permission-revisionid-precondition", "deployments": [], "key": "lambda/permission-revisionid-precondition", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_permission_revisionid_precondition.py", "service": "lambda"} {"check_id": "lambda.policy-length-exceeded-enforcement", "deployments": [], "key": "lambda/policy-length-exceeded-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddLayerVersionPermission", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:DeleteResourcePolicy", "lambda:GetFunctionConfiguration", "lambda:GetLayerVersionPolicy", "lambda:GetPolicy", "lambda:GetResourcePolicy", "lambda:PublishLayerVersion", "lambda:PutResourcePolicy", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_policy_length_exceeded_enforcement.py", "service": "lambda"} {"check_id": "lambda.print-appears-in-logs", "deployments": [], "key": "lambda/print-appears-in-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_print_appears_in_logs.py", "service": "lambda"} {"check_id": "lambda.provided-al2023-application-log-level-fatal-drops-plain-stdout-from-cloudwatch", "deployments": [], "key": "lambda/provided-al2023-application-log-level-fatal-drops-plain-stdout-from-cloudwatch", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_provided_al2023_application_log_level_fatal_drops_plain_stdout_from_cloudwatch.py", "service": "lambda"} {"check_id": "lambda.provided-al2023-bootstrap-serves-the-runtime-api", "deployments": [], "key": "lambda/provided-al2023-bootstrap-serves-the-runtime-api", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_provided_al2023_bootstrap_serves_the_runtime_api.py", "service": "lambda"} {"check_id": "lambda.provisioned-concurrency-invocation-reports-no-init-duration", "deployments": [], "key": "lambda/provisioned-concurrency-invocation-reports-no-init-duration", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_provisioned_concurrency_invocation_reports_no_init_duration.py", "service": "lambda"} {"check_id": "lambda.provisioned-concurrency-is-capped-by-reserved-concurrency", "deployments": [], "key": "lambda/provisioned-concurrency-is-capped-by-reserved-concurrency", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetAccountSettings", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:ListProvisionedConcurrencyConfigs", "lambda:PublishVersion", "lambda:PutFunctionConcurrency", "lambda:PutProvisionedConcurrencyConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_provisioned_concurrency_is_capped_by_reserved_concurrency.py", "service": "lambda"} {"check_id": "lambda.provisioned-concurrency-lifecycle", "deployments": [], "key": "lambda/provisioned-concurrency-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:ListProvisionedConcurrencyConfigs", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_provisioned_concurrency_lifecycle.py", "service": "lambda"} {"check_id": "lambda.provisioned-concurrency-on-latest-rejected", "deployments": [], "key": "lambda/provisioned-concurrency-on-latest-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:ListProvisionedConcurrencyConfigs", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_provisioned_concurrency_on_latest_rejected.py", "service": "lambda"} {"check_id": "lambda.provisioned-concurrency-on-snapstart-version-rejected", "deployments": [], "key": "lambda/provisioned-concurrency-on-snapstart-version-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:Invoke", "lambda:ListProvisionedConcurrencyConfigs", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_provisioned_concurrency_on_snapstart_version_rejected.py", "service": "lambda"} {"check_id": "lambda.provisioned-concurrency-warmup-transition", "deployments": [], "key": "lambda/provisioned-concurrency-warmup-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_provisioned_concurrency_warmup_transition.py", "service": "lambda"} {"check_id": "lambda.public-policy-rejection", "deployments": [], "key": "lambda/public-policy-rejection", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_public_policy_rejection.py", "service": "lambda"} {"check_id": "lambda.publish-and-get-layer", "deployments": [], "key": "lambda/publish-and-get-layer", "labels": ["axis:happy-path", "plane:control"], "operations": ["lambda:DeleteLayerVersion", "lambda:GetLayerVersion", "lambda:PublishLayerVersion"], "path": "behavioral/lambda/check_publish_and_get_layer.py", "service": "lambda"} {"check_id": "lambda.publish-layer-version-corrupt-zip-rejected-no-version-minted", "deployments": [], "key": "lambda/publish-layer-version-corrupt-zip-rejected-no-version-minted", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListLayerVersions", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_publish_layer_version_corrupt_zip_rejected_no_version_minted.py", "service": "lambda"} {"check_id": "lambda.publish-version-immutable", "deployments": [], "key": "lambda/publish-version-immutable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_publish_version_immutable.py", "service": "lambda"} {"check_id": "lambda.publish-version-stale-sha-precondition-failed", "deployments": [], "key": "lambda/publish-version-stale-sha-precondition-failed", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListVersionsByFunction", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_publish_version_stale_sha_precondition_failed.py", "service": "lambda"} {"check_id": "lambda.publish-version-without-change-returns-existing-version", "deployments": [], "key": "lambda/publish-version-without-change-returns-existing-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListVersionsByFunction", "lambda:PublishVersion", "lambda:TagResource", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_publish_version_without_change_returns_existing_version.py", "service": "lambda"} {"check_id": "lambda.published-version-code-pinned-at-runtime", "deployments": [], "key": "lambda/published-version-code-pinned-at-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_published_version_code_pinned_at_runtime.py", "service": "lambda"} {"check_id": "lambda.published-version-keeps-its-env-vars-at-runtime", "deployments": [], "key": "lambda/published-version-keeps-its-env-vars-at-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_published_version_keeps_its_env_vars_at_runtime.py", "service": "lambda"} {"check_id": "lambda.published-version-keeps-its-own-memory-limit-rejected-past-it", "deployments": [], "key": "lambda/published-version-keeps-its-own-memory-limit-rejected-past-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_published_version_keeps_its_own_memory_limit_rejected_past_it.py", "service": "lambda"} {"check_id": "lambda.published-version-keeps-its-own-timeout-enforcement-rejected-past-it", "deployments": [], "key": "lambda/published-version-keeps-its-own-timeout-enforcement-rejected-past-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_published_version_keeps_its_own_timeout_enforcement_rejected_past_it.py", "service": "lambda"} {"check_id": "lambda.published-version-tracing-config-pinned-through-latest-change", "deployments": [], "key": "lambda/published-version-tracing-config-pinned-through-latest-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_published_version_tracing_config_pinned_through_latest_change.py", "service": "lambda"} {"check_id": "lambda.put-function-scaling-config-invalid-values-rejected", "deployments": [], "key": "lambda/put-function-scaling-config-invalid-values-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:GetFunctionScalingConfig", "lambda:PutFunctionScalingConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_put_function_scaling_config_invalid_values_rejected.py", "service": "lambda"} {"check_id": "lambda.put-function-scaling-config-then-capacity-provider-list-reflects", "deployments": [], "key": "lambda/put-function-scaling-config-then-capacity-provider-list-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:GetFunctionConfiguration", "lambda:GetFunctionScalingConfig", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PublishVersion", "lambda:PutFunctionScalingConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_put_function_scaling_config_then_capacity_provider_list_reflects.py", "service": "lambda"} {"check_id": "lambda.put-get-reserved-concurrency", "deployments": [], "key": "lambda/put-get-reserved-concurrency", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_put_get_reserved_concurrency.py", "service": "lambda"} {"check_id": "lambda.put-resource-policy-concurrent-writes-optimistic-lock", "deployments": [], "key": "lambda/put-resource-policy-concurrent-writes-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteResourcePolicy", "lambda:GetFunctionConfiguration", "lambda:GetResourcePolicy", "lambda:PutResourcePolicy", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_put_resource_policy_concurrent_writes_optimistic_lock.py", "service": "lambda"} {"check_id": "lambda.put-resource-policy-length-exceeded", "deployments": [], "key": "lambda/put-resource-policy-length-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:PutResourcePolicy", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_put_resource_policy_length_exceeded.py", "service": "lambda"} {"check_id": "lambda.put-resource-policy-public-document-round-trips", "deployments": [], "key": "lambda/put-resource-policy-public-document-round-trips", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:PutResourcePolicy", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_put_resource_policy_public_document_round_trips.py", "service": "lambda"} {"check_id": "lambda.put-runtime-management-config-invalid-mode-rejected", "deployments": [], "key": "lambda/put-runtime-management-config-invalid-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetRuntimeManagementConfig", "lambda:PutRuntimeManagementConfig"], "path": "behavioral/lambda/check_put_runtime_management_config_invalid_mode_rejected.py", "service": "lambda"} {"check_id": "lambda.python312-and-python313-handlers-run-asyncio-zoneinfo-and-sqlite3", "deployments": [], "key": "lambda/python312-and-python313-handlers-run-asyncio-zoneinfo-and-sqlite3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python312_and_python313_handlers_run_asyncio_zoneinfo_and_sqlite3.py", "service": "lambda"} {"check_id": "lambda.python-asyncio-run-completes", "deployments": [], "key": "lambda/python-asyncio-run-completes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_asyncio_run_completes.py", "service": "lambda"} {"check_id": "lambda.python-builtin-module-as-handler-rejected", "deployments": [], "key": "lambda/python-builtin-module-as-handler-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_builtin_module_as_handler_rejected.py", "service": "lambda"} {"check_id": "lambda.python-client-context-reaches-handler-as-typed-object", "deployments": [], "key": "lambda/python-client-context-reaches-handler-as-typed-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_client_context_reaches_handler_as_typed_object.py", "service": "lambda"} {"check_id": "lambda.python-context-request-id-equals-invoke-response-request-id", "deployments": [], "key": "lambda/python-context-request-id-equals-invoke-response-request-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_context_request_id_equals_invoke_response_request_id.py", "service": "lambda"} {"check_id": "lambda.python-context-version-and-invoked-arn-follow-the-qualifier", "deployments": [], "key": "lambda/python-context-version-and-invoked-arn-follow-the-qualifier", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_context_version_and_invoked_arn_follow_the_qualifier.py", "service": "lambda"} {"check_id": "lambda.python-cpu-bound-handler-within-timeout", "deployments": [], "key": "lambda/python-cpu-bound-handler-within-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_cpu_bound_handler_within_timeout.py", "service": "lambda"} {"check_id": "lambda.python-ctypes-loads-libc", "deployments": [], "key": "lambda/python-ctypes-loads-libc", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_ctypes_loads_libc.py", "service": "lambda"} {"check_id": "lambda.python-custom-exception-class-names-error-type-and-frames", "deployments": [], "key": "lambda/python-custom-exception-class-names-error-type-and-frames", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_custom_exception_class_names_error_type_and_frames.py", "service": "lambda"} {"check_id": "lambda.python-dotted-handler-import-failures-name-the-dotted-module", "deployments": [], "key": "lambda/python-dotted-handler-import-failures-name-the-dotted-module", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_dotted_handler_import_failures_name_the_dotted_module.py", "service": "lambda"} {"check_id": "lambda.python-event-payload-forms-reach-the-handler-as-parsed-json", "deployments": [], "key": "lambda/python-event-payload-forms-reach-the-handler-as-parsed-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_event_payload_forms_reach_the_handler_as_parsed_json.py", "service": "lambda"} {"check_id": "lambda.python-exception-error-message-is-str-of-the-exception", "deployments": [], "key": "lambda/python-exception-error-message-is-str-of-the-exception", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_exception_error_message_is_str_of_the_exception.py", "service": "lambda"} {"check_id": "lambda.python-handler-in-nested-package-resolves-relative-imports-and-files", "deployments": [], "key": "lambda/python-handler-in-nested-package-resolves-relative-imports-and-files", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_handler_in_nested_package_resolves_relative_imports_and_files.py", "service": "lambda"} {"check_id": "lambda.python-importlib-metadata-reads-vendored-dist-info", "deployments": [], "key": "lambda/python-importlib-metadata-reads-vendored-dist-info", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_importlib_metadata_reads_vendored_dist_info.py", "service": "lambda"} {"check_id": "lambda.python-invalid-client-context-rejected-before-the-handler-runs", "deployments": [], "key": "lambda/python-invalid-client-context-rejected-before-the-handler-runs", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_invalid_client_context_rejected_before_the_handler_runs.py", "service": "lambda"} {"check_id": "lambda.python-lzma-and-bz2-round-trip", "deployments": [], "key": "lambda/python-lzma-and-bz2-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_lzma_and_bz2_round_trip.py", "service": "lambda"} {"check_id": "lambda.python-malformed-handler-name-rejected-at-invoke", "deployments": [], "key": "lambda/python-malformed-handler-name-rejected-at-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_malformed_handler_name_rejected_at_invoke.py", "service": "lambda"} {"check_id": "lambda.python-module-level-exception-rejected-with-its-own-error-type", "deployments": [], "key": "lambda/python-module-level-exception-rejected-with-its-own-error-type", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_module_level_exception_rejected_with_its_own_error_type.py", "service": "lambda"} {"check_id": "lambda.python-module-state-is-per-version-not-shared-with-latest", "deployments": [], "key": "lambda/python-module-state-is-per-version-not-shared-with-latest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_module_state_is_per_version_not_shared_with_latest.py", "service": "lambda"} {"check_id": "lambda.python-named-module-handler-digests-a-nested-unicode-event-on-arm64", "deployments": [], "key": "lambda/python-named-module-handler-digests-a-nested-unicode-event-on-arm64", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_python_named_module_handler_digests_a_nested_unicode_event_on_arm64.py", "service": "lambda"} {"check_id": "lambda.python-non-serializable-return-rejected-with-marshal-error", "deployments": [], "key": "lambda/python-non-serializable-return-rejected-with-marshal-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_non_serializable_return_rejected_with_marshal_error.py", "service": "lambda"} {"check_id": "lambda.python-remaining-time-is-bounded-by-the-configured-timeout", "deployments": [], "key": "lambda/python-remaining-time-is-bounded-by-the-configured-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_remaining_time_is_bounded_by_the_configured_timeout.py", "service": "lambda"} {"check_id": "lambda.python-requirements-txt-native-wheel-imports", "deployments": [], "key": "lambda/python-requirements-txt-native-wheel-imports", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_requirements_txt_native_wheel_imports.py", "service": "lambda"} {"check_id": "lambda.python-requirements-txt-pure-dependency-tree-imports", "deployments": [], "key": "lambda/python-requirements-txt-pure-dependency-tree-imports", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_requirements_txt_pure_dependency_tree_imports.py", "service": "lambda"} {"check_id": "lambda.python-requirements-txt-pydantic-validates", "deployments": [], "key": "lambda/python-requirements-txt-pydantic-validates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_requirements_txt_pydantic_validates.py", "service": "lambda"} {"check_id": "lambda.python-return-bytes-and-non-finite-floats-pass-through-unvalidated", "deployments": [], "key": "lambda/python-return-bytes-and-non-finite-floats-pass-through-unvalidated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_return_bytes_and_non_finite_floats_pass_through_unvalidated.py", "service": "lambda"} {"check_id": "lambda.python-return-values-serialize-to-exact-json-bytes", "deployments": [], "key": "lambda/python-return-values-serialize-to-exact-json-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_return_values_serialize_to_exact_json_bytes.py", "service": "lambda"} {"check_id": "lambda.python-runtime-defined-env-vars-match-the-runtime-identity", "deployments": [], "key": "lambda/python-runtime-defined-env-vars-match-the-runtime-identity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_runtime_defined_env_vars_match_the_runtime_identity.py", "service": "lambda"} {"check_id": "lambda.python-runtime-family-every-supported-minor-runs-identically", "deployments": [], "key": "lambda/python-runtime-family-every-supported-minor-runs-identically", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_python_runtime_family_every_supported_minor_runs_identically.py", "service": "lambda"} {"check_id": "lambda.python-runtime-reports-configured-version", "deployments": [], "key": "lambda/python-runtime-reports-configured-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_runtime_reports_configured_version.py", "service": "lambda"} {"check_id": "lambda.python-sqlite3-in-memory-query", "deployments": [], "key": "lambda/python-sqlite3-in-memory-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_sqlite3_in_memory_query.py", "service": "lambda"} {"check_id": "lambda.python-ssl-default-context-verifies", "deployments": [], "key": "lambda/python-ssl-default-context-verifies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_ssl_default_context_verifies.py", "service": "lambda"} {"check_id": "lambda.python-subprocess-runs-a-command", "deployments": [], "key": "lambda/python-subprocess-runs-a-command", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_subprocess_runs_a_command.py", "service": "lambda"} {"check_id": "lambda.python-syntax-error-in-handler-module-rejected-at-invoke", "deployments": [], "key": "lambda/python-syntax-error-in-handler-module-rejected-at-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_syntax_error_in_handler_module_rejected_at_invoke.py", "service": "lambda"} {"check_id": "lambda.python-sys-exit-reports-runtime-exit-error-and-resets-state", "deployments": [], "key": "lambda/python-sys-exit-reports-runtime-exit-error-and-resets-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_sys_exit_reports_runtime_exit_error_and_resets_state.py", "service": "lambda"} {"check_id": "lambda.python-threadpool-executor-runs", "deployments": [], "key": "lambda/python-threadpool-executor-runs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_threadpool_executor_runs.py", "service": "lambda"} {"check_id": "lambda.python-trailing-data-after-json-fails-runtime-unmarshal", "deployments": [], "key": "lambda/python-trailing-data-after-json-fails-runtime-unmarshal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_trailing_data_after_json_fails_runtime_unmarshal.py", "service": "lambda"} {"check_id": "lambda.python-unparseable-payload-rejected-before-the-handler-runs", "deployments": [], "key": "lambda/python-unparseable-payload-rejected-before-the-handler-runs", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_unparseable_payload_rejected_before_the_handler_runs.py", "service": "lambda"} {"check_id": "lambda.python-user-env-vars-and-tz-override-reach-the-process", "deployments": [], "key": "lambda/python-user-env-vars-and-tz-override-reach-the-process", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_python_user_env_vars_and_tz_override_reach_the_process.py", "service": "lambda"} {"check_id": "lambda.python-zoneinfo-resolves", "deployments": [], "key": "lambda/python-zoneinfo-resolves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda/check_python_zoneinfo_resolves.py", "service": "lambda"} {"check_id": "lambda.recursion-config-lifecycle", "deployments": [], "key": "lambda/recursion-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionRecursionConfig", "lambda:PutFunctionRecursionConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_recursion_config_lifecycle.py", "service": "lambda"} {"check_id": "lambda.recursion-config-roundtrip", "deployments": [], "key": "lambda/recursion-config-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunctionRecursionConfig", "lambda:PutFunctionRecursionConfig"], "path": "behavioral/lambda/check_recursion_config_roundtrip.py", "service": "lambda"} {"check_id": "lambda.recursion-config-terminate-stops-a-self-invocation-chain", "deployments": [], "key": "lambda/recursion-config-terminate-stops-a-self-invocation-chain", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunctionRecursionConfig", "lambda:Invoke", "lambda:PutFunctionRecursionConfig", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_recursion_config_terminate_stops_a_self_invocation_chain.py", "service": "lambda"} {"check_id": "lambda.remaining-time-starts-at-the-configured-timeout-and-counts-down", "deployments": [], "key": "lambda/remaining-time-starts-at-the-configured-timeout-and-counts-down", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_remaining_time_starts_at_the_configured_timeout_and_counts_down.py", "service": "lambda"} {"check_id": "lambda.remove-layer-permission-precondition-failed", "deployments": [], "key": "lambda/remove-layer-permission-precondition-failed", "labels": ["axis:rejection", "plane:control"], "operations": ["lambda:AddLayerVersionPermission", "lambda:DeleteLayerVersion", "lambda:GetLayerVersionPolicy", "lambda:PublishLayerVersion", "lambda:RemoveLayerVersionPermission", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_remove_layer_permission_precondition_failed.py", "service": "lambda"} {"check_id": "lambda.remove-permission", "deployments": [], "key": "lambda/remove-permission", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_remove_permission.py", "service": "lambda"} {"check_id": "lambda.remove-permission-unknown-statement-not-found", "deployments": [], "key": "lambda/remove-permission-unknown-statement-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:RemovePermission", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_remove_permission_unknown_statement_not_found.py", "service": "lambda"} {"check_id": "lambda.reserved-concurrency-is-one-pool-shared-by-latest-version-and-alias-rejected", "deployments": [], "key": "lambda/reserved-concurrency-is-one-pool-shared-by-latest-version-and-alias-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_reserved_concurrency_is_one_pool_shared_by_latest_version_and_alias_rejected.py", "service": "lambda"} {"check_id": "lambda.reserved-concurrency-zero-on-one-function-leaves-another-unthrottled-rejected", "deployments": [], "key": "lambda/reserved-concurrency-zero-on-one-function-leaves-another-unthrottled-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_reserved_concurrency_zero_on_one_function_leaves_another_unthrottled_rejected.py", "service": "lambda"} {"check_id": "lambda.reserved-zero-blocks-invoke", "deployments": [], "key": "lambda/reserved-zero-blocks-invoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda/check_reserved_zero_blocks_invoke.py", "service": "lambda"} {"check_id": "lambda.resource-not-found-error-consistency", "deployments": [], "key": "lambda/resource-not-found-error-consistency", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetAlias", "lambda:GetCapacityProvider", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetLayerVersion", "lambda:PublishLayerVersion", "lambda:PublishVersion", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_resource_not_found_error_consistency.py", "service": "lambda"} {"check_id": "lambda.resource-policy-lifecycle", "deployments": [], "key": "lambda/resource-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteResourcePolicy", "lambda:GetFunctionConfiguration", "lambda:GetResourcePolicy", "lambda:PutResourcePolicy", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_resource_policy_lifecycle.py", "service": "lambda"} {"check_id": "lambda.resource-policy-revisionid-precondition", "deployments": [], "key": "lambda/resource-policy-revisionid-precondition", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:DeleteResourcePolicy", "lambda:GetFunctionConfiguration", "lambda:GetResourcePolicy", "lambda:PutResourcePolicy", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_resource_policy_revisionid_precondition.py", "service": "lambda"} {"check_id": "lambda.resource-policy-stale-revision-delete-rejected", "deployments": [], "key": "lambda/resource-policy-stale-revision-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteResourcePolicy", "lambda:GetFunctionConfiguration", "lambda:GetResourcePolicy", "lambda:PutResourcePolicy", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_resource_policy_stale_revision_delete_rejected.py", "service": "lambda"} {"check_id": "lambda.restore-next-without-snapstart-returns-404", "deployments": [], "key": "lambda/restore-next-without-snapstart-returns-404", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_restore_next_without_snapstart_returns_404.py", "service": "lambda"} {"check_id": "lambda.return-types", "deployments": [], "key": "lambda/return-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_return_types.py", "service": "lambda"} {"check_id": "lambda.ruby-context-object-reflects-the-invocation", "deployments": [], "key": "lambda/ruby-context-object-reflects-the-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_context_object_reflects_the_invocation.py", "service": "lambda"} {"check_id": "lambda.ruby-event-payload-json-types-map-to-ruby-objects", "deployments": [], "key": "lambda/ruby-event-payload-json-types-map-to-ruby-objects", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_event_payload_json_types_map_to_ruby_objects.py", "service": "lambda"} {"check_id": "lambda.ruby-exit-and-abort-reported-as-systemexit", "deployments": [], "key": "lambda/ruby-exit-and-abort-reported-as-systemexit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_ruby_exit_and_abort_reported_as_systemexit.py", "service": "lambda"} {"check_id": "lambda.ruby-handler-return-values-serialize-to-json", "deployments": [], "key": "lambda/ruby-handler-return-values-serialize-to-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_handler_return_values_serialize_to_json.py", "service": "lambda"} {"check_id": "lambda.ruby-handler-string-resolution-failures-rejected", "deployments": [], "key": "lambda/ruby-handler-string-resolution-failures-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_handler_string_resolution_failures_rejected.py", "service": "lambda"} {"check_id": "lambda.ruby-init-load-failures-reported-as-init-error-types-rejected", "deployments": [], "key": "lambda/ruby-init-load-failures-reported-as-init-error-types-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_init_load_failures_reported_as_init_error_types_rejected.py", "service": "lambda"} {"check_id": "lambda.ruby-layer-gem-under-ruby-gems-version-resolves", "deployments": [], "key": "lambda/ruby-layer-gem-under-ruby-gems-version-resolves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_ruby_layer_gem_under_ruby_gems_version_resolves.py", "service": "lambda"} {"check_id": "lambda.ruby-module-state-persists-across-warm-invokes-and-resets-on-exit", "deployments": [], "key": "lambda/ruby-module-state-persists-across-warm-invokes-and-resets-on-exit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_module_state_persists_across_warm_invokes_and_resets_on_exit.py", "service": "lambda"} {"check_id": "lambda.ruby-raised-exception-class-becomes-the-error-type-rejected", "deployments": [], "key": "lambda/ruby-raised-exception-class-becomes-the-error-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_raised_exception_class_becomes_the_error_type_rejected.py", "service": "lambda"} {"check_id": "lambda.ruby-readonly-filesystem-rejected", "deployments": [], "key": "lambda/ruby-readonly-filesystem-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_ruby_readonly_filesystem_rejected.py", "service": "lambda"} {"check_id": "lambda.ruby-reserved-env-vars-override-attempt", "deployments": [], "key": "lambda/ruby-reserved-env-vars-override-attempt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_ruby_reserved_env_vars_override_attempt.py", "service": "lambda"} {"check_id": "lambda.ruby-runtime-identifier-selects-the-interpreter", "deployments": [], "key": "lambda/ruby-runtime-identifier-selects-the-interpreter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_runtime_identifier_selects_the_interpreter.py", "service": "lambda"} {"check_id": "lambda.ruby-unserializable-return-value-rejected-generator-error", "deployments": [], "key": "lambda/ruby-unserializable-return-value-rejected-generator-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_ruby_unserializable_return_value_rejected_generator_error.py", "service": "lambda"} {"check_id": "lambda.ruby-vendor-bundle-gem-resolves-via-gem-path", "deployments": [], "key": "lambda/ruby-vendor-bundle-gem-resolves-via-gem-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_ruby_vendor_bundle_gem_resolves_via_gem_path.py", "service": "lambda"} {"check_id": "lambda.runtime-api-poll-loop-shell-bootstrap", "deployments": [], "key": "lambda/runtime-api-poll-loop-shell-bootstrap", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_runtime_api_poll_loop_shell_bootstrap.py", "service": "lambda"} {"check_id": "lambda.runtime-management-config-lifecycle", "deployments": [], "key": "lambda/runtime-management-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetRuntimeManagementConfig", "lambda:PutRuntimeManagementConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_runtime_management_config_lifecycle.py", "service": "lambda"} {"check_id": "lambda.runtime-management-config-roundtrip", "deployments": [], "key": "lambda/runtime-management-config-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetRuntimeManagementConfig", "lambda:PutRuntimeManagementConfig"], "path": "behavioral/lambda/check_runtime_management_config_roundtrip.py", "service": "lambda"} {"check_id": "lambda.runtime-update-reflected-in-sys-version", "deployments": [], "key": "lambda/runtime-update-reflected-in-sys-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_runtime_update_reflected_in_sys_version.py", "service": "lambda"} {"check_id": "lambda.s3-code-source", "deployments": [], "key": "lambda/s3-code-source", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda/check_s3_code_source.py", "service": "lambda"} {"check_id": "lambda.s3-object-version-pins-the-code-a-function-runs", "deployments": [], "key": "lambda/s3-object-version-pins-the-code-a-function-runs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda/check_s3_object_version_pins_the_code_a_function_runs.py", "service": "lambda"} {"check_id": "lambda.scaling-config-lifecycle", "deployments": [], "key": "lambda/scaling-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetCapacityProvider", "lambda:GetFunctionConfiguration", "lambda:GetFunctionScalingConfig", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PublishVersion", "lambda:PutFunctionScalingConfig", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_scaling_config_lifecycle.py", "service": "lambda"} {"check_id": "lambda.scaling-config-roundtrip", "deployments": [], "key": "lambda/scaling-config-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:GetFunctionConfiguration", "lambda:GetFunctionScalingConfig", "lambda:PublishVersion", "lambda:PutFunctionScalingConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_scaling_config_roundtrip.py", "service": "lambda"} {"check_id": "lambda.sdk-create-cli-describe-lambda", "deployments": [], "key": "lambda/sdk-create-cli-describe-lambda", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_sdk_create_cli_describe_lambda.py", "service": "lambda"} {"check_id": "lambda.send-callback-success-after-checkpoint-window", "deployments": [], "key": "lambda/send-callback-success-after-checkpoint-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:PublishVersion", "lambda:SendDurableExecutionCallbackSuccess", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda/check_send_callback_success_after_checkpoint_window.py", "service": "lambda"} {"check_id": "lambda.snapstart-on-a-runtime-without-snapstart-rejected", "deployments": [], "key": "lambda/snapstart-on-a-runtime-without-snapstart-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_snapstart_on_a_runtime_without_snapstart_rejected.py", "service": "lambda"} {"check_id": "lambda.snapstart-python-before-snapshot-hook-that-raises-fails-the-published-version", "deployments": [], "key": "lambda/snapstart-python-before-snapshot-hook-that-raises-fails-the-published-version", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_snapstart_python_before_snapshot_hook_that_raises_fails_the_published_version.py", "service": "lambda"} {"check_id": "lambda.snapstart-python-version-restores-with-before-snapshot-state-and-a-restore-report", "deployments": [], "key": "lambda/snapstart-python-version-restores-with-before-snapshot-state-and-a-restore-report", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion"], "path": "behavioral/lambda/check_snapstart_python_version_restores_with_before_snapshot_state_and_a_restore_report.py", "service": "lambda"} {"check_id": "lambda.snapstart-restored-version-reuses-the-snapshot-init", "deployments": [], "key": "lambda/snapstart-restored-version-reuses-the-snapshot-init", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_snapstart_restored_version_reuses_the_snapshot_init.py", "service": "lambda"} {"check_id": "lambda.stale-revision-id", "deployments": [], "key": "lambda/stale-revision-id", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_stale_revision_id.py", "service": "lambda"} {"check_id": "lambda.stdlib-imports", "deployments": [], "key": "lambda/stdlib-imports", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_stdlib_imports.py", "service": "lambda"} {"check_id": "lambda.stop-durable-execution-already-terminal-is-a-no-op", "deployments": [], "key": "lambda/stop-durable-execution-already-terminal-is-a-no-op", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:StopDurableExecution", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_stop_durable_execution_already_terminal_is_a_no_op.py", "service": "lambda"} {"check_id": "lambda.stop-durable-execution-terminal-state-is-a-no-op", "deployments": [], "key": "lambda/stop-durable-execution-terminal-state-is-a-no-op", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetDurableExecution", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:ListDurableExecutionsByFunction", "lambda:StopDurableExecution", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_stop_durable_execution_terminal_state_is_a_no_op.py", "service": "lambda"} {"check_id": "lambda.stream-buffered-function-error-reported-as-unhandled-in-invoke-complete", "deployments": [], "key": "lambda/stream-buffered-function-error-reported-as-unhandled-in-invoke-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:InvokeWithResponseStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_stream_buffered_function_error_reported_as_unhandled_in_invoke_complete.py", "service": "lambda"} {"check_id": "lambda.stream-buffered-function-returns-one-payload-chunk-equal-to-invoke", "deployments": [], "key": "lambda/stream-buffered-function-returns-one-payload-chunk-equal-to-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:InvokeWithResponseStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_stream_buffered_function_returns_one_payload_chunk_equal_to_invoke.py", "service": "lambda"} {"check_id": "lambda.stream-handler-throw-delivers-no-bytes-and-no-error-code", "deployments": [], "key": "lambda/stream-handler-throw-delivers-no-bytes-and-no-error-code", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:InvokeWithResponseStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_stream_handler_throw_delivers_no_bytes_and_no_error_code.py", "service": "lambda"} {"check_id": "lambda.stream-provisioned-environment-reports-provisioned-initialization-type", "deployments": [], "key": "lambda/stream-provisioned-environment-reports-provisioned-initialization-type", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetAccountSettings", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_stream_provisioned_environment_reports_provisioned_initialization_type.py", "service": "lambda"} {"check_id": "lambda.stream-provisioned-streaming-function-streams-from-prewarmed-environment", "deployments": [], "key": "lambda/stream-provisioned-streaming-function-streams-from-prewarmed-environment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteProvisionedConcurrencyConfig", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:InvokeWithResponseStream", "lambda:PublishVersion", "lambda:PutProvisionedConcurrencyConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_stream_provisioned_streaming_function_streams_from_prewarmed_environment.py", "service": "lambda"} {"check_id": "lambda.stream-qualifier-alias-executes-and-reports-the-alias-version", "deployments": [], "key": "lambda/stream-qualifier-alias-executes-and-reports-the-alias-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:InvokeWithResponseStream", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_stream_qualifier_alias_executes_and_reports_the_alias_version.py", "service": "lambda"} {"check_id": "lambda.stream-response-chunks-map-onto-handler-writes", "deployments": [], "key": "lambda/stream-response-chunks-map-onto-handler-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:InvokeWithResponseStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_stream_response_chunks_map_onto_handler_writes.py", "service": "lambda"} {"check_id": "lambda.stream-url-error-after-first-write-truncates-the-200-body", "deployments": [], "key": "lambda/stream-url-error-after-first-write-truncates-the-200-body", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_stream_url_error_after_first_write_truncates_the_200_body.py", "service": "lambda"} {"check_id": "lambda.stream-url-http-response-stream-metadata-sets-status-headers-and-cookies", "deployments": [], "key": "lambda/stream-url-http-response-stream-metadata-sets-status-headers-and-cookies", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_stream_url_http_response_stream_metadata_sets_status_headers_and_cookies.py", "service": "lambda"} {"check_id": "lambda.sync-request-at-the-6mb-limit-reaches-the-handler-intact-one-byte-over-rejected", "deployments": [], "key": "lambda/sync-request-at-the-6mb-limit-reaches-the-handler-intact-one-byte-over-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_sync_request_at_the_6mb_limit_reaches_the_handler_intact_one_byte_over_rejected.py", "service": "lambda"} {"check_id": "lambda.sync-response-at-the-payload-limit-delivered-intact-one-byte-over-rejected", "deployments": [], "key": "lambda/sync-response-at-the-payload-limit-delivered-intact-one-byte-over-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_sync_response_at_the_payload_limit_delivered_intact_one_byte_over_rejected.py", "service": "lambda"} {"check_id": "lambda.tag-resource-lifecycle", "deployments": [], "key": "lambda/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:ListTags", "lambda:TagResource", "lambda:UntagResource"], "path": "behavioral/lambda/check_tag_resource_lifecycle.py", "service": "lambda"} {"check_id": "lambda.tags-lifecycle", "deployments": [], "key": "lambda/tags-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:ListTags", "lambda:TagResource", "lambda:UntagResource", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_tags_lifecycle.py", "service": "lambda"} {"check_id": "lambda.task-root-and-runtime-dir-read-only-while-tmp-writable-rejected", "deployments": [], "key": "lambda/task-root-and-runtime-dir-read-only-while-tmp-writable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_task_root_and_runtime_dir_read_only_while_tmp_writable_rejected.py", "service": "lambda"} {"check_id": "lambda.telemetry-api-subscribe-validation-rejected-with-exact-error-bodies", "deployments": [], "key": "lambda/telemetry-api-subscribe-validation-rejected-with-exact-error-bodies", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_telemetry_api_subscribe_validation_rejected_with_exact_error_bodies.py", "service": "lambda"} {"check_id": "lambda.thirty-way-concurrency-creates-thirty-distinct-environments", "deployments": [], "key": "lambda/thirty-way-concurrency-creates-thirty-distinct-environments", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricData", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAccountSettings", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_thirty_way_concurrency_creates_thirty_distinct_environments.py", "service": "lambda"} {"check_id": "lambda.timed-out-invocation-releases-its-reserved-concurrency-slot", "deployments": [], "key": "lambda/timed-out-invocation-releases-its-reserved-concurrency-slot", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_timed_out_invocation_releases_its_reserved_concurrency_slot.py", "service": "lambda"} {"check_id": "lambda.timeout-bounds-rejected-and-accepted", "deployments": [], "key": "lambda/timeout-bounds-rejected-and-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_timeout_bounds_rejected_and_accepted.py", "service": "lambda"} {"check_id": "lambda.timeout-enforcement", "deployments": [], "key": "lambda/timeout-enforcement", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_timeout_enforcement.py", "service": "lambda"} {"check_id": "lambda.timeout-in-an-update-refused-for-another-field-is-not-applied-rejected", "deployments": [], "key": "lambda/timeout-in-an-update-refused-for-another-field-is-not-applied-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_timeout_in_an_update_refused_for_another_field_is_not_applied_rejected.py", "service": "lambda"} {"check_id": "lambda.timeout-lowered-kills-a-handler-that-finished-before-rejected", "deployments": [], "key": "lambda/timeout-lowered-kills-a-handler-that-finished-before-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_timeout_lowered_kills_a_handler_that_finished_before_rejected.py", "service": "lambda"} {"check_id": "lambda.timeout-update-moves-the-enforced-deadline-rejected-past-it", "deployments": [], "key": "lambda/timeout-update-moves-the-enforced-deadline-rejected-past-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_timeout_update_moves_the_enforced_deadline_rejected_past_it.py", "service": "lambda"} {"check_id": "lambda.tmp-not-shared-between-concurrent-invocations", "deployments": [], "key": "lambda/tmp-not-shared-between-concurrent-invocations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_tmp_not_shared_between_concurrent_invocations.py", "service": "lambda"} {"check_id": "lambda.tmp-not-shared-between-two-distinct-functions", "deployments": [], "key": "lambda/tmp-not-shared-between-two-distinct-functions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_tmp_not_shared_between_two_distinct_functions.py", "service": "lambda"} {"check_id": "lambda.tmp-persists-across-warm", "deployments": [], "key": "lambda/tmp-persists-across-warm", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_tmp_persists_across_warm.py", "service": "lambda"} {"check_id": "lambda.tmp-writable", "deployments": [], "key": "lambda/tmp-writable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_tmp_writable.py", "service": "lambda"} {"check_id": "lambda.two-layers-sharing-a-path-resolve-to-the-last-layer-at-runtime", "deployments": [], "key": "lambda/two-layers-sharing-a-path-resolve-to-the-last-layer-at-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishLayerVersion", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_two_layers_sharing_a_path_resolve_to_the_last_layer_at_runtime.py", "service": "lambda"} {"check_id": "lambda.unreserved-allows-concurrent", "deployments": [], "key": "lambda/unreserved-allows-concurrent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_unreserved_allows_concurrent.py", "service": "lambda"} {"check_id": "lambda.unzipped-package-over-250mb-rejected", "deployments": [], "key": "lambda/unzipped-package-over-250mb-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_unzipped_package_over_250mb_rejected.py", "service": "lambda"} {"check_id": "lambda.update-alias-concurrent-conflicting-writes", "deployments": [], "key": "lambda/update-alias-concurrent-conflicting-writes", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateAlias"], "path": "behavioral/lambda/check_update_alias_concurrent_conflicting_writes.py", "service": "lambda"} {"check_id": "lambda.update-alias-precondition-failed-stale-revision", "deployments": [], "key": "lambda/update-alias-precondition-failed-stale-revision", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_update_alias_precondition_failed_stale_revision.py", "service": "lambda"} {"check_id": "lambda.update-alias-repoint-switches-executed-code", "deployments": [], "key": "lambda/update-alias-repoint-switches-executed-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_update_alias_repoint_switches_executed_code.py", "service": "lambda"} {"check_id": "lambda.update-capacity-provider-applies-and-persists", "deployments": [], "key": "lambda/update-capacity-provider-applies-and-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:UpdateCapacityProvider"], "path": "behavioral/lambda/check_update_capacity_provider_applies_and_persists.py", "service": "lambda"} {"check_id": "lambda.update-capacity-provider-concurrent-conflicting-writes", "deployments": [], "key": "lambda/update-capacity-provider-concurrent-conflicting-writes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:UpdateCapacityProvider"], "path": "behavioral/lambda/check_update_capacity_provider_concurrent_conflicting_writes.py", "service": "lambda"} {"check_id": "lambda.update-capacity-provider-conflict-during-delete-rejected", "deployments": [], "key": "lambda/update-capacity-provider-conflict-during-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:CreateFunction", "lambda:DeleteCapacityProvider", "lambda:DeleteFunction", "lambda:GetCapacityProvider", "lambda:ListFunctionVersionsByCapacityProvider", "lambda:PutFunctionScalingConfig", "lambda:UpdateCapacityProvider", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_update_capacity_provider_conflict_during_delete_rejected.py", "service": "lambda"} {"check_id": "lambda.update-capacity-provider-invalid-params-rejected", "deployments": [], "key": "lambda/update-capacity-provider-invalid-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:UpdateCapacityProvider"], "path": "behavioral/lambda/check_update_capacity_provider_invalid_params_rejected.py", "service": "lambda"} {"check_id": "lambda.update-capacity-provider-nonexistent-rejected", "deployments": [], "key": "lambda/update-capacity-provider-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:ListCapacityProviders", "lambda:UpdateCapacityProvider"], "path": "behavioral/lambda/check_update_capacity_provider_nonexistent_rejected.py", "service": "lambda"} {"check_id": "lambda.update-capacity-provider-without-permission-denied", "deployments": [], "key": "lambda/update-capacity-provider-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateCapacityProvider", "lambda:DeleteCapacityProvider", "lambda:GetCapacityProvider", "lambda:ListCapacityProviders", "lambda:UpdateCapacityProvider", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_update_capacity_provider_without_permission_denied.py", "service": "lambda"} {"check_id": "lambda.update-code-takes-effect", "deployments": [], "key": "lambda/update-code-takes-effect", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_update_code_takes_effect.py", "service": "lambda"} {"check_id": "lambda.update-configuration", "deployments": [], "key": "lambda/update-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_update_configuration.py", "service": "lambda"} {"check_id": "lambda.update-event-source-mapping-state-machine", "deployments": [], "key": "lambda/update-event-source-mapping-state-machine", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda/check_update_event_source_mapping_state_machine.py", "service": "lambda"} {"check_id": "lambda.update-function-code-corrupt-zip-rejected-previous-code-keeps-running", "deployments": [], "key": "lambda/update-function-code-corrupt-zip-rejected-previous-code-keeps-running", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_update_function_code_corrupt_zip_rejected_previous_code_keeps_running.py", "service": "lambda"} {"check_id": "lambda.update-function-code-dry-run-changes-nothing-at-runtime", "deployments": [], "key": "lambda/update-function-code-dry-run-changes-nothing-at-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_update_function_code_dry_run_changes_nothing_at_runtime.py", "service": "lambda"} {"check_id": "lambda.update-function-code-invalid-signature-rejected", "deployments": [], "key": "lambda/update-function-code-invalid-signature-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionCodeSigningConfig", "lambda:GetFunctionCodeSigningConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionCodeSigningConfig", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:PutSigningProfile", "signer:StartSigningJob"], "path": "behavioral/lambda/check_update_function_code_invalid_signature_rejected.py", "service": "lambda"} {"check_id": "lambda.update-function-code-publish-true-mints-running-version", "deployments": [], "key": "lambda/update-function-code-publish-true-mints-running-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_update_function_code_publish_true_mints_running_version.py", "service": "lambda"} {"check_id": "lambda.update-function-code-stale-revision-rejected", "deployments": [], "key": "lambda/update-function-code-stale-revision-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_update_function_code_stale_revision_rejected.py", "service": "lambda"} {"check_id": "lambda.update-function-code-validation-errors", "deployments": [], "key": "lambda/update-function-code-validation-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionCodeSigningConfig", "lambda:GetFunctionCodeSigningConfig", "lambda:GetFunctionConfiguration", "lambda:PutFunctionCodeSigningConfig", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_update_function_code_validation_errors.py", "service": "lambda"} {"check_id": "lambda.update-function-configuration-ignores-tenancy-config-field", "deployments": [], "key": "lambda/update-function-configuration-ignores-tenancy-config-field", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_update_function_configuration_ignores_tenancy_config_field.py", "service": "lambda"} {"check_id": "lambda.update-function-configuration-signature-errors", "deployments": [], "key": "lambda/update-function-configuration-signature-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateCodeSigningConfig", "lambda:CreateFunction", "lambda:DeleteCodeSigningConfig", "lambda:DeleteFunction", "lambda:DeleteLayerVersion", "lambda:GetFunctionConfiguration", "lambda:PublishLayerVersion", "lambda:PutFunctionCodeSigningConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "signer:CancelSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/lambda/check_update_function_configuration_signature_errors.py", "service": "lambda"} {"check_id": "lambda.update-function-event-invoke-config-partial-update", "deployments": [], "key": "lambda/update-function-event-invoke-config-partial-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionEventInvokeConfig"], "path": "behavioral/lambda/check_update_function_event_invoke_config_partial_update.py", "service": "lambda"} {"check_id": "lambda.url-aws-iam-signature-scoped-to-another-service-rejected", "deployments": [], "key": "lambda/url-aws-iam-signature-scoped-to-another-service-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_url_aws_iam_signature_scoped_to_another_service_rejected.py", "service": "lambda"} {"check_id": "lambda.url-aws-iam-signed-request-429-when-reserved-concurrency-zero", "deployments": [], "key": "lambda/url-aws-iam-signed-request-429-when-reserved-concurrency-zero", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_url_aws_iam_signed_request_429_when_reserved_concurrency_zero.py", "service": "lambda"} {"check_id": "lambda.url-aws-iam-tampered-body-rejected-with-invalid-signature", "deployments": [], "key": "lambda/url-aws-iam-tampered-body-rejected-with-invalid-signature", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_url_aws_iam_tampered_body_rejected_with_invalid_signature.py", "service": "lambda"} {"check_id": "lambda.url-aws-iam-unsigned-request-forbidden-signed-request-served-with-caller-identity", "deployments": [], "key": "lambda/url-aws-iam-unsigned-request-forbidden-signed-request-served-with-caller-identity", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda/check_url_aws_iam_unsigned_request_forbidden_signed_request_served_with_caller_identity.py", "service": "lambda"} {"check_id": "lambda.url-binary-request-body-reaches-handler-base64-encoded", "deployments": [], "key": "lambda/url-binary-request-body-reaches-handler-base64-encoded", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_binary_request_body_reaches_handler_base64_encoded.py", "service": "lambda"} {"check_id": "lambda.url-cookie-header-split-into-event-cookies-array", "deployments": [], "key": "lambda/url-cookie-header-split-into-event-cookies-array", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_cookie_header_split_into_event_cookies_array.py", "service": "lambda"} {"check_id": "lambda.url-deleted-config-stops-serving-the-url", "deployments": [], "key": "lambda/url-deleted-config-stops-serving-the-url", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionUrlConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_deleted_config_stops_serving_the_url.py", "service": "lambda"} {"check_id": "lambda.url-form-urlencoded-body-is-base64-encoded-while-text-plain-is-not", "deployments": [], "key": "lambda/url-form-urlencoded-body-is-base64-encoded-while-text-plain-is-not", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_form_urlencoded_body_is_base64_encoded_while_text_plain_is_not.py", "service": "lambda"} {"check_id": "lambda.url-function-timeout-rejected-with-502", "deployments": [], "key": "lambda/url-function-timeout-rejected-with-502", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_function_timeout_rejected_with_502.py", "service": "lambda"} {"check_id": "lambda.url-get-event-v2-carries-raw-path-query-and-lowercased-headers", "deployments": [], "key": "lambda/url-get-event-v2-carries-raw-path-query-and-lowercased-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_get_event_v2_carries_raw_path_query_and_lowercased_headers.py", "service": "lambda"} {"check_id": "lambda.url-invalid-status-code-result-rejected-with-502", "deployments": [], "key": "lambda/url-invalid-status-code-result-rejected-with-502", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_invalid_status_code_result_rejected_with_502.py", "service": "lambda"} {"check_id": "lambda.url-none-auth-grants-to-a-named-principal-do-not-admit-anonymous-callers", "deployments": [], "key": "lambda/url-none-auth-grants-to-a-named-principal-do-not-admit-anonymous-callers", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "lambda:UpdateFunctionUrlConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_none_auth_grants_to_a_named_principal_do_not_admit_anonymous_callers.py", "service": "lambda"} {"check_id": "lambda.url-on-alias-qualifier-routes-to-the-alias-version-and-follows-alias-updates", "deployments": [], "key": "lambda/url-on-alias-qualifier-routes-to-the-alias-version-and-follows-alias-updates", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_on_alias_qualifier_routes_to_the_alias_version_and_follows_alias_updates.py", "service": "lambda"} {"check_id": "lambda.url-plain-string-result-served-as-bare-text-unlike-invoke", "deployments": [], "key": "lambda/url-plain-string-result-served-as-bare-text-unlike-invoke", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_plain_string_result_served_as_bare_text_unlike_invoke.py", "service": "lambda"} {"check_id": "lambda.url-response-base64-body-decoded-to-raw-bytes", "deployments": [], "key": "lambda/url-response-base64-body-decoded-to-raw-bytes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_response_base64_body_decoded_to_raw_bytes.py", "service": "lambda"} {"check_id": "lambda.url-response-cookies-emitted-as-set-cookie-headers", "deployments": [], "key": "lambda/url-response-cookies-emitted-as-set-cookie-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_response_cookies_emitted_as_set_cookie_headers.py", "service": "lambda"} {"check_id": "lambda.url-response-over-6mb-rejected-with-502", "deployments": [], "key": "lambda/url-response-over-6mb-rejected-with-502", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_response_over_6mb_rejected_with_502.py", "service": "lambda"} {"check_id": "lambda.url-response-status-headers-and-body-mapped-from-handler-result", "deployments": [], "key": "lambda/url-response-status-headers-and-body-mapped-from-handler-result", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_response_status_headers_and_body_mapped_from_handler_result.py", "service": "lambda"} {"check_id": "lambda.url-result-without-content-type-or-body-gets-json-default-and-empty-body", "deployments": [], "key": "lambda/url-result-without-content-type-or-body-gets-json-default-and-empty-body", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_result_without_content_type_or_body_gets_json_default_and_empty_body.py", "service": "lambda"} {"check_id": "lambda.url-result-without-status-code-inferred-as-200-json", "deployments": [], "key": "lambda/url-result-without-status-code-inferred-as-200-json", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_result_without_status_code_inferred_as_200_json.py", "service": "lambda"} {"check_id": "lambda.url-text-request-body-reaches-handler-verbatim-not-base64", "deployments": [], "key": "lambda/url-text-request-body-reaches-handler-verbatim-not-base64", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_text_request_body_reaches_handler_verbatim_not_base64.py", "service": "lambda"} {"check_id": "lambda.url-unhandled-function-error-rejected-with-502-without-leaking-the-error", "deployments": [], "key": "lambda/url-unhandled-function-error-rejected-with-502-without-leaking-the-error", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/lambda/check_url_unhandled_function_error_rejected_with_502_without_leaking_the_error.py", "service": "lambda"} {"check_id": "lambda.warm-start-reuse", "deployments": [], "key": "lambda/warm-start-reuse", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "logs:DeleteLogGroup"], "path": "behavioral/lambda/check_warm_start_reuse.py", "service": "lambda"} {"check_id": "lambda.weighted-alias-across-execution-roles-rejected", "deployments": [], "key": "lambda/weighted-alias-across-execution-roles-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration"], "path": "behavioral/lambda/check_weighted_alias_across_execution_roles_rejected.py", "service": "lambda"} {"check_id": "lambda.weighted-alias-on-latest-primary-rejected", "deployments": [], "key": "lambda/weighted-alias-on-latest-primary-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_weighted_alias_on_latest_primary_rejected.py", "service": "lambda"} {"check_id": "lambda.weighted-alias-with-two-additional-versions-rejected", "deployments": [], "key": "lambda/weighted-alias-with-two-additional-versions-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode"], "path": "behavioral/lambda/check_weighted_alias_with_two_additional_versions_rejected.py", "service": "lambda"} {"check_id": "lambda__logs.log-cwl-custom-log-group-shared-by-two-functions-keeps-streams-apart", "deployments": [], "key": "lambda__logs/log-cwl-custom-log-group-shared-by-two-functions-keeps-streams-apart", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda__logs/check_log_cwl_custom_log_group_shared_by_two_functions_keeps_streams_apart.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-log-group-update-redirects-the-next-invocation", "deployments": [], "key": "lambda__logs/log-cwl-log-group-update-redirects-the-next-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionConfiguration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda__logs/check_log_cwl_log_group_update_redirects_the_next_invocation.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-missing-custom-log-group-is-created-on-first-invoke", "deployments": [], "key": "lambda__logs/log-cwl-missing-custom-log-group-is-created-on-first-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda__logs/check_log_cwl_missing_custom_log_group_is_created_on_first_invoke.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-node-text-multiline-console-log-is-one-event", "deployments": [], "key": "lambda__logs/log-cwl-node-text-multiline-console-log-is-one-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda__logs/check_log_cwl_node_text_multiline_console_log_is_one_event.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-plumbing-lambda-envelope-carries-only-pattern-matched-lines", "deployments": [], "key": "lambda__logs/log-cwl-plumbing-lambda-envelope-carries-only-pattern-matched-lines", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:PutLogEvents", "logs:PutRetentionPolicy", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/lambda__logs/check_log_cwl_plumbing_lambda_envelope_carries_only_pattern_matched_lines.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-plumbing-lambda-filter-rejected-when-invoke-permission-names-another-group", "deployments": [], "key": "lambda__logs/log-cwl-plumbing-lambda-filter-rejected-when-invoke-permission-names-another-group", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeLogGroups", "logs:DescribeSubscriptionFilters", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutRetentionPolicy", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/lambda__logs/check_log_cwl_plumbing_lambda_filter_rejected_when_invoke_permission_names_another_group.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-role-without-logs-permission-keeps-the-tail-and-creates-no-group", "deployments": [], "key": "lambda__logs/log-cwl-role-without-logs-permission-keeps-the-tail-and-creates-no-group", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda__logs/check_log_cwl_role_without_logs_permission_keeps_the_tail_and_creates_no_group.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-self-structured-json-lines-are-filtered-by-their-level-key", "deployments": [], "key": "lambda__logs/log-cwl-self-structured-json-lines-are-filtered-by-their-level-key", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda__logs/check_log_cwl_self_structured_json_lines_are_filtered_by_their_level_key.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-system-debug-level-delivers-runtime-done-and-init-records", "deployments": [], "key": "lambda__logs/log-cwl-system-debug-level-delivers-runtime-done-and-init-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda__logs/check_log_cwl_system_debug_level_delivers_runtime_done_and_init_records.py", "service": "lambda__logs"} {"check_id": "lambda__logs.log-cwl-system-warn-level-still-delivers-a-timeout-report", "deployments": [], "key": "lambda__logs/log-cwl-system-warn-level-still-delivers-a-timeout-report", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents"], "path": "behavioral/lambda__logs/check_log_cwl_system_warn_level_still_delivers_a_timeout_report.py", "service": "lambda__logs"} {"check_id": "lambda__logs.ruby-application-log-level-error-drops-warn-from-cloudwatch-delivery", "deployments": [], "key": "lambda__logs/ruby-application-log-level-error-drops-warn-from-cloudwatch-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/lambda__logs/check_ruby_application_log_level_error_drops_warn_from_cloudwatch_delivery.py", "service": "lambda__logs"} {"check_id": "lambda__logs.ruby-filter-log-events-start-end-report-and-handler-output", "deployments": [], "key": "lambda__logs/ruby-filter-log-events-start-end-report-and-handler-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/lambda__logs/check_ruby_filter_log_events_start_end_report_and_handler_output.py", "service": "lambda__logs"} {"check_id": "lambda__logs__secretsmanager.concurrent-reader-during-rotation-never-observes-a-broken-current-credential", "deployments": [], "key": "lambda__logs__secretsmanager/concurrent-reader-during-rotation-never-observes-a-broken-current-credential", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__logs__secretsmanager/check_concurrent_reader_during_rotation_never_observes_a_broken_current_credential.py", "service": "lambda__logs__secretsmanager"} {"check_id": "lambda__logs__secretsmanager.deep-secrets-and-params-failed-finishsecret-leaves-candidate-awspending-and-rejects-new-rotation", "deployments": [], "key": "lambda__logs__secretsmanager/deep-secrets-and-params-failed-finishsecret-leaves-candidate-awspending-and-rejects-new-rotation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__logs__secretsmanager/check_deep_secrets_and_params_failed_finishsecret_leaves_candidate_awspending_and_rejects_new_rotation.py", "service": "lambda__logs__secretsmanager"} {"check_id": "lambda__logs__secretsmanager.deep-secrets-and-params-rotation-token-is-staged-awspending-at-every-step-before-awscurrent-moves", "deployments": [], "key": "lambda__logs__secretsmanager/deep-secrets-and-params-rotation-token-is-staged-awspending-at-every-step-before-awscurrent-moves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__logs__secretsmanager/check_deep_secrets_and_params_rotation_token_is_staged_awspending_at_every_step_before_awscurrent_moves.py", "service": "lambda__logs__secretsmanager"} {"check_id": "lambda__logs__secretsmanager.rotate-immediately-false-schedules-a-rotation-without-running-the-full-protocol", "deployments": [], "key": "lambda__logs__secretsmanager/rotate-immediately-false-schedules-a-rotation-without-running-the-full-protocol", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutRetentionPolicy", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__logs__secretsmanager/check_rotate_immediately_false_schedules_a_rotation_without_running_the_full_protocol.py", "service": "lambda__logs__secretsmanager"} {"check_id": "lambda__logs__secretsmanager.rotation-lambda-actually-replaces-the-current-secret-value-it-generated", "deployments": [], "key": "lambda__logs__secretsmanager/rotation-lambda-actually-replaces-the-current-secret-value-it-generated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__logs__secretsmanager/check_rotation_lambda_actually_replaces_the_current_secret_value_it_generated.py", "service": "lambda__logs__secretsmanager"} {"check_id": "lambda__logs__secretsmanager.rotation-with-a-failing-testsecret-step-rejected-and-awscurrent-never-moves", "deployments": [], "key": "lambda__logs__secretsmanager/rotation-with-a-failing-testsecret-step-rejected-and-awscurrent-never-moves", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__logs__secretsmanager/check_rotation_with_a_failing_testsecret_step_rejected_and_awscurrent_never_moves.py", "service": "lambda__logs__secretsmanager"} {"check_id": "lambda__logs__sqs.subscription-filter-delivers-log-events-to-lambda", "deployments": [], "key": "lambda__logs__sqs/subscription-filter-delivers-log-events-to-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutLogEvents", "logs:PutRetentionPolicy", "logs:PutSubscriptionFilter", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__logs__sqs/check_subscription_filter_delivers_log_events_to_lambda.py", "service": "lambda__logs__sqs"} {"check_id": "lambda__logs__sqs.subscription-filter-non-matching-pattern-not-delivered", "deployments": [], "key": "lambda__logs__sqs/subscription-filter-non-matching-pattern-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:PutLogEvents", "logs:PutRetentionPolicy", "logs:PutSubscriptionFilter", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__logs__sqs/check_subscription_filter_non_matching_pattern_not_delivered.py", "service": "lambda__logs__sqs"} {"check_id": "lambda__opensearch__s3.cli-create-lambda-with-s3-opensearch-role-and-invoke", "deployments": [], "key": "lambda__opensearch__s3/cli-create-lambda-with-s3-opensearch-role-and-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["lambda:GetFunctionConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_cli_create_lambda_with_s3_opensearch_role_and_invoke.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.cli-lambda-role-policy-detach-blocks-opensearch-access-negative", "deployments": [], "key": "lambda__opensearch__s3/cli-lambda-role-policy-detach-blocks-opensearch-access-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["lambda:GetFunctionConfiguration", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_cli_lambda_role_policy_detach_blocks_opensearch_access_negative.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.cli-s3-put-object-triggers-lambda-opensearch-index-verify", "deployments": [], "key": "lambda__opensearch__s3/cli-s3-put-object-triggers-lambda-opensearch-index-verify", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["lambda:GetFunctionConfiguration", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_cli_s3_put_object_triggers_lambda_opensearch_index_verify.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.cli-update-lambda-env-opensearch-endpoint-verify", "deployments": [], "key": "lambda__opensearch__s3/cli-update-lambda-env-opensearch-endpoint-verify", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["lambda:GetFunctionConfiguration", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_cli_update_lambda_env_opensearch_endpoint_verify.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.deploy-iam-role-trusts-lambda-service-positive", "deployments": [], "key": "lambda__opensearch__s3/deploy-iam-role-trusts-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:Invoke"], "path": "behavioral/lambda__opensearch__s3/check_deploy_iam_role_trusts_lambda_service_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.deploy-iam-role-trusts-s3-service-positive", "deployments": [], "key": "lambda__opensearch__s3/deploy-iam-role-trusts-s3-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:GetRole", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/lambda__opensearch__s3/check_deploy_iam_role_trusts_s3_service_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.deploy-lambda-opensearch-s3-stack-positive", "deployments": [], "key": "lambda__opensearch__s3/deploy-lambda-opensearch-s3-stack-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:DescribeDomain", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_deploy_lambda_opensearch_s3_stack_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.deploy-lambda-role-missing-opensearch-policy-denied", "deployments": [], "key": "lambda__opensearch__s3/deploy-lambda-role-missing-opensearch-policy-denied", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:DeleteRolePolicy", "lambda:Invoke", "opensearch:DescribeDomain", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_deploy_lambda_role_missing_opensearch_policy_denied.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.deploy-opensearch-domain-policy-restricts-lambda-denied", "deployments": [], "key": "lambda__opensearch__s3/deploy-opensearch-domain-policy-restricts-lambda-denied", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:Invoke", "opensearch:DescribeDomain", "opensearch:UpdateDomainConfig", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_deploy_opensearch_domain_policy_restricts_lambda_denied.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.deploy-s3-notification-lambda-opensearch-pipeline-positive", "deployments": [], "key": "lambda__opensearch__s3/deploy-s3-notification-lambda-opensearch-pipeline-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:DescribeDomain", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_deploy_s3_notification_lambda_opensearch_pipeline_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-opensearch-bulk-index-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-opensearch-bulk-index-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_opensearch_bulk_index_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-opensearch-delete-index-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-opensearch-delete-index-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_opensearch_delete_index_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-opensearch-domain-access-policy-denies-negative", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-opensearch-domain-access-policy-denies-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:UpdateDomainConfig", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_opensearch_domain_access_policy_denies_negative.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-opensearch-index-document-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-opensearch-index-document-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_opensearch_index_document_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-opensearch-missing-permission-negative", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-opensearch-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_opensearch_missing_permission_negative.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-opensearch-search-query-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-opensearch-search-query-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_opensearch_search_query_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-opensearch-update-document-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-opensearch-update-document-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_opensearch_update_document_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-s3-bucket-policy-deny-negative", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-s3-bucket-policy-deny-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_s3_bucket_policy_deny_negative.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-s3-copyobject-cross-bucket-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-s3-copyobject-cross-bucket-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_s3_copyobject_cross_bucket_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-s3-deleteobject-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-s3-deleteobject-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_s3_deleteobject_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-s3-headobject-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-s3-headobject-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_s3_headobject_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-s3-listobjects-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-s3-listobjects-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_s3_listobjects_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-s3-missing-listbucket-permission-negative", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-s3-missing-listbucket-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_s3_missing_listbucket_permission_negative.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.lambda-sdk-s3-presigned-url-generation-positive", "deployments": [], "key": "lambda__opensearch__s3/lambda-sdk-s3-presigned-url-generation-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__opensearch__s3/check_lambda_sdk_s3_presigned_url_generation_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.s3-event-triggers-lambda-search-index-update-positive", "deployments": [], "key": "lambda__opensearch__s3/s3-event-triggers-lambda-search-index-update-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_s3_event_triggers_lambda_search_index_update_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.s3-notification-filter-suffix-positive", "deployments": [], "key": "lambda__opensearch__s3/s3-notification-filter-suffix-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "opensearch:AddTags", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_s3_notification_filter_suffix_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.s3-notification-lambda-indexes-object-metadata-opensearch-positive", "deployments": [], "key": "lambda__opensearch__s3/s3-notification-lambda-indexes-object-metadata-opensearch-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_s3_notification_lambda_indexes_object_metadata_opensearch_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.s3-notification-lambda-opensearch-write-failure-negative", "deployments": [], "key": "lambda__opensearch__s3/s3-notification-lambda-opensearch-write-failure-negative", "labels": ["axis:negative-delivery", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "opensearch:AddTags", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:UpdateDomainConfig", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_s3_notification_lambda_opensearch_write_failure_negative.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.s3-notification-missing-lambda-permission-negative", "deployments": [], "key": "lambda__opensearch__s3/s3-notification-missing-lambda-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_s3_notification_missing_lambda_permission_negative.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__opensearch__s3.s3-notification-triggers-lambda-opensearch-index-positive", "deployments": [], "key": "lambda__opensearch__s3/s3-notification-triggers-lambda-opensearch-index-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__opensearch__s3/check_s3_notification_triggers_lambda_opensearch_index_positive.py", "service": "lambda__opensearch__s3"} {"check_id": "lambda__pipes__sqs.cli-create-pipe-sqs-to-lambda-workflow", "deployments": [], "key": "lambda__pipes__sqs/cli-create-pipe-sqs-to-lambda-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_cli_create_pipe_sqs_to_lambda_workflow.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.cli-delete-pipe-stops-delivery-negative", "deployments": [], "key": "lambda__pipes__sqs/cli-delete-pipe-stops-delivery-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_cli_delete_pipe_stops_delivery_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.cli-update-pipe-target-lambda-arn-workflow", "deployments": [], "key": "lambda__pipes__sqs/cli-update-pipe-target-lambda-arn-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_cli_update_pipe_target_lambda_arn_workflow.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.deploy-esm-missing-permission-cfn-negative", "deployments": [], "key": "lambda__pipes__sqs/deploy-esm-missing-permission-cfn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_deploy_esm_missing_permission_cfn_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.deploy-esm-sqs-lambda-cfn-positive", "deployments": [], "key": "lambda__pipes__sqs/deploy-esm-sqs-lambda-cfn-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_deploy_esm_sqs_lambda_cfn_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.deploy-pipes-filter-pattern-config-positive", "deployments": [], "key": "lambda__pipes__sqs/deploy-pipes-filter-pattern-config-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_deploy_pipes_filter_pattern_config_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.deploy-pipes-missing-role-negative", "deployments": [], "key": "lambda__pipes__sqs/deploy-pipes-missing-role-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_deploy_pipes_missing_role_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.deploy-pipes-sqs-lambda-stack-positive", "deployments": [], "key": "lambda__pipes__sqs/deploy-pipes-sqs-lambda-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_deploy_pipes_sqs_lambda_stack_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.events-pipes-enrichment-computed-field-shapes-target-via-input-template", "deployments": [], "key": "lambda__pipes__sqs/events-pipes-enrichment-computed-field-shapes-target-via-input-template", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_events_pipes_enrichment_computed_field_shapes_target_via_input_template.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.events-pipes-enrichment-failure-retains-source-record-and-withholds-target", "deployments": [], "key": "lambda__pipes__sqs/events-pipes-enrichment-failure-retains-source-record-and-withholds-target", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_events_pipes_enrichment_failure_retains_source_record_and_withholds_target.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.events-pipes-enrichment-filter-drops-record-before-enrichment-and-deletes-it", "deployments": [], "key": "lambda__pipes__sqs/events-pipes-enrichment-filter-drops-record-before-enrichment-and-deletes-it", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_events_pipes_enrichment_filter_drops_record_before_enrichment_and_deletes_it.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.events-pipes-enrichment-invoke-permission-denied-withholds-delivery-until-granted", "deployments": [], "key": "lambda__pipes__sqs/events-pipes-enrichment-invoke-permission-denied-withholds-delivery-until-granted", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_events_pipes_enrichment_invoke_permission_denied_withholds_delivery_until_granted.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.events-pipes-enrichment-sees-whole-batch-and-target-gets-its-single-result", "deployments": [], "key": "lambda__pipes__sqs/events-pipes-enrichment-sees-whole-batch-and-target-gets-its-single-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/lambda__pipes__sqs/check_events_pipes_enrichment_sees_whole_batch_and_target_gets_its_single_result.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.events-pipes-enrichment-stopped-pipe-consumes-nothing-and-start-drains-backlog", "deployments": [], "key": "lambda__pipes__sqs/events-pipes-enrichment-stopped-pipe-consumes-nothing-and-start-drains-backlog", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/lambda__pipes__sqs/check_events_pipes_enrichment_stopped_pipe_consumes_nothing_and_start_drains_backlog.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.iam-role-trusts-lambda-service-positive", "deployments": [], "key": "lambda__pipes__sqs/iam-role-trusts-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/lambda__pipes__sqs/check_iam_role_trusts_lambda_service_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.iam-role-trusts-sqs-service-positive", "deployments": [], "key": "lambda__pipes__sqs/iam-role-trusts-sqs-service-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:SimulatePrincipalPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/lambda__pipes__sqs/check_iam_role_trusts_sqs_service_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.iam-role-wrong-trust-policy-lambda-cannot-assume-negative", "deployments": [], "key": "lambda__pipes__sqs/iam-role-wrong-trust-policy-lambda-cannot-assume-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/lambda__pipes__sqs/check_iam_role_wrong_trust_policy_lambda_cannot_assume_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.lambda-sdk-pipes-describe-missing-permission-negative", "deployments": [], "key": "lambda__pipes__sqs/lambda-sdk-pipes-describe-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__pipes__sqs/check_lambda_sdk_pipes_describe_missing_permission_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.lambda-sdk-pipes-describe-pipe-positive", "deployments": [], "key": "lambda__pipes__sqs/lambda-sdk-pipes-describe-pipe-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__pipes__sqs/check_lambda_sdk_pipes_describe_pipe_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.lambda-sdk-pipes-start-pipe-missing-permission-negative", "deployments": [], "key": "lambda__pipes__sqs/lambda-sdk-pipes-start-pipe-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__pipes__sqs/check_lambda_sdk_pipes_start_pipe_missing_permission_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.lambda-sdk-pipes-start-pipe-positive", "deployments": [], "key": "lambda__pipes__sqs/lambda-sdk-pipes-start-pipe-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__pipes__sqs/check_lambda_sdk_pipes_start_pipe_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.lambda-sdk-pipes-stop-pipe-positive", "deployments": [], "key": "lambda__pipes__sqs/lambda-sdk-pipes-stop-pipe-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__pipes__sqs/check_lambda_sdk_pipes_stop_pipe_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.lambda-sdk-sqs-receivemessage-from-handler-positive", "deployments": [], "key": "lambda__pipes__sqs/lambda-sdk-sqs-receivemessage-from-handler-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_lambda_sdk_sqs_receivemessage_from_handler_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.lambda-sdk-sqs-sendmessage-from-handler-positive", "deployments": [], "key": "lambda__pipes__sqs/lambda-sdk-sqs-sendmessage-from-handler-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__pipes__sqs/check_lambda_sdk_sqs_sendmessage_from_handler_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.lambda-sdk-sqs-sendmessage-missing-permission-negative", "deployments": [], "key": "lambda__pipes__sqs/lambda-sdk-sqs-sendmessage-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__pipes__sqs/check_lambda_sdk_sqs_sendmessage_missing_permission_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-batch-size-controls-lambda-invocation-count", "deployments": [], "key": "lambda__pipes__sqs/pipes-batch-size-controls-lambda-invocation-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_batch_size_controls_lambda_invocation_count.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-enrichment-transforms-payload-before-target", "deployments": [], "key": "lambda__pipes__sqs/pipes-enrichment-transforms-payload-before-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_enrichment_transforms_payload_before_target.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-execution-role-trusts-pipes-service-positive", "deployments": [], "key": "lambda__pipes__sqs/pipes-execution-role-trusts-pipes-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_execution_role_trusts_pipes_service_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-execution-role-wrong-trust-negative", "deployments": [], "key": "lambda__pipes__sqs/pipes-execution-role-wrong-trust-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_execution_role_wrong_trust_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-filter-criteria-drops-nonmatching-message", "deployments": [], "key": "lambda__pipes__sqs/pipes-filter-criteria-drops-nonmatching-message", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_filter_criteria_drops_nonmatching_message.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-missing-source-role-permission-negative", "deployments": [], "key": "lambda__pipes__sqs/pipes-missing-source-role-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_missing_source_role_permission_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-missing-target-invoke-permission-negative", "deployments": [], "key": "lambda__pipes__sqs/pipes-missing-target-invoke-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_missing_target_invoke_permission_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-sqs-fifo-source-lambda-target-ordering-positive", "deployments": [], "key": "lambda__pipes__sqs/pipes-sqs-fifo-source-lambda-target-ordering-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_sqs_fifo_source_lambda_target_ordering_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-sqs-source-lambda-target-delivery-positive", "deployments": [], "key": "lambda__pipes__sqs/pipes-sqs-source-lambda-target-delivery-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_sqs_source_lambda_target_delivery_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.pipes-sqs-visibility-timeout-respected-during-processing", "deployments": [], "key": "lambda__pipes__sqs/pipes-sqs-visibility-timeout-respected-during-processing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_pipes_sqs_visibility_timeout_respected_during_processing.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.sqs-esm-batch-window-controls-invocation-timing", "deployments": [], "key": "lambda__pipes__sqs/sqs-esm-batch-window-controls-invocation-timing", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_sqs_esm_batch_window_controls_invocation_timing.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.sqs-esm-disabled-mapping-no-invocation-negative", "deployments": [], "key": "lambda__pipes__sqs/sqs-esm-disabled-mapping-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_sqs_esm_disabled_mapping_no_invocation_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.sqs-esm-fifo-queue-message-group-ordering-preserved", "deployments": [], "key": "lambda__pipes__sqs/sqs-esm-fifo-queue-message-group-ordering-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_sqs_esm_fifo_queue_message_group_ordering_preserved.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.sqs-esm-maximum-concurrency-limits-parallel-invocations", "deployments": [], "key": "lambda__pipes__sqs/sqs-esm-maximum-concurrency-limits-parallel-invocations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_sqs_esm_maximum_concurrency_limits_parallel_invocations.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.sqs-esm-wrong-queue-arn-no-invocation-negative", "deployments": [], "key": "lambda__pipes__sqs/sqs-esm-wrong-queue-arn-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_sqs_esm_wrong_queue_arn_no_invocation_negative.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__pipes__sqs.sqs-event-source-mapping-invokes-lambda-positive", "deployments": [], "key": "lambda__pipes__sqs/sqs-event-source-mapping-invokes-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__pipes__sqs/check_sqs_event_source_mapping_invokes_lambda_positive.py", "service": "lambda__pipes__sqs"} {"check_id": "lambda__rds__secretsmanager.cli-create-lambda-role-trust-policy-lambda-service", "deployments": [], "key": "lambda__rds__secretsmanager/cli-create-lambda-role-trust-policy-lambda-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_create_lambda_role_trust_policy_lambda_service.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.cli-lambda-invoke-denied-without-rds-policy-negative", "deployments": [], "key": "lambda__rds__secretsmanager/cli-lambda-invoke-denied-without-rds-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "rds:DescribeDBInstances", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_lambda_invoke_denied_without_rds_policy_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.cli-lambda-invoke-with-rds-secret-missing-permission-denied", "deployments": [], "key": "lambda__rds__secretsmanager/cli-lambda-invoke-with-rds-secret-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_lambda_invoke_with_rds_secret_missing_permission_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.cli-lambda-rds-secret-end-to-end-setup", "deployments": [], "key": "lambda__rds__secretsmanager/cli-lambda-rds-secret-end-to-end-setup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_lambda_rds_secret_end_to_end_setup.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.cli-lambda-rds-secretsmanager-end-to-end-invoke", "deployments": [], "key": "lambda__rds__secretsmanager/cli-lambda-rds-secretsmanager-end-to-end-invoke", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_lambda_rds_secretsmanager_end_to_end_invoke.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.cli-lambda-role-missing-trust-policy-negative", "deployments": [], "key": "lambda__rds__secretsmanager/cli-lambda-role-missing-trust-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_lambda_role_missing_trust_policy_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.cli-lambda-update-env-with-secret-arn", "deployments": [], "key": "lambda__rds__secretsmanager/cli-lambda-update-env-with-secret-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_lambda_update_env_with_secret_arn.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.cli-rds-describe-db-proxy-targets", "deployments": [], "key": "lambda__rds__secretsmanager/cli-rds-describe-db-proxy-targets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_rds_describe_db_proxy_targets.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.cli-rds-secret-rotation-enable", "deployments": [], "key": "lambda__rds__secretsmanager/cli-rds-secret-rotation-enable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_cli_rds_secret_rotation_enable.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deep-rds-3-proxy-require-tls-plaintext-rejected", "deployments": [], "key": "lambda__rds__secretsmanager/deep-rds-3-proxy-require-tls-plaintext-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "rds:CreateDBInstance", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:DescribeOrderableDBInstanceOptions", "rds:ModifyDBProxy", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_deep_rds_3_proxy_require_tls_plaintext_rejected.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-lambda-execution-role-trusts-lambda-service-positive", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-lambda-execution-role-trusts-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_lambda_execution_role_trusts_lambda_service_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-lambda-rds-missing-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-lambda-rds-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_lambda_rds_missing_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-lambda-rds-secretsmanager-stack", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-lambda-rds-secretsmanager-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_lambda_rds_secretsmanager_stack.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-lambda-role-wrong-trust-rejected", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-lambda-role-wrong-trust-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_lambda_role_wrong_trust_rejected.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-missing-rds-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-missing-rds-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_missing_rds_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-missing-secretsmanager-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-missing-secretsmanager-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_missing_secretsmanager_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-rds-lambda-secretsmanager-stack-positive", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-rds-lambda-secretsmanager-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_rds_lambda_secretsmanager_stack_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-rds-proxy-lambda-auth-wiring-positive", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-rds-proxy-lambda-auth-wiring-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "lambda:Invoke", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_rds_proxy_lambda_auth_wiring_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.deploy-cfn-rds-rotation-lambda-wiring", "deployments": [], "key": "lambda__rds__secretsmanager/deploy-cfn-rds-rotation-lambda-wiring", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_deploy_cfn_rds_rotation_lambda_wiring.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-execution-role-assumed-for-rds-proxy-auth-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-execution-role-assumed-for-rds-proxy-auth-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_execution_role_assumed_for_rds_proxy_auth_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-connect-via-proxy-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-connect-via-proxy-positive", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "rds:CreateDBInstance", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_connect_via_proxy_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-data-api-execute-statement-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-data-api-execute-statement-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_data_api_execute_statement_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-data-api-executestatement-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-data-api-executestatement-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "secretsmanager:DescribeSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_data_api_executestatement_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-data-api-missing-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-data-api-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "secretsmanager:DescribeSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_data_api_missing_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-describe-db-instances-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-describe-db-instances-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_describe_db_instances_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-describedbinstances-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-describedbinstances-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_describedbinstances_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-generate-db-auth-token-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-generate-db-auth-token-positive", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_generate_db_auth_token_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-missing-describedbinstances-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-missing-describedbinstances-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_missing_describedbinstances_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-missing-permission-denied", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_missing_permission_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-proxy-missing-permission-denied", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-proxy-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "dp:native", "plane:data"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "rds:CreateDBInstance", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_proxy_missing_permission_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-wrong-db-cluster-arn-negative", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-wrong-db-cluster-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "secretsmanager:DescribeSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_wrong_db_cluster_arn_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-rds-wrong-db-instance-arn-denied", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-rds-wrong-db-instance-arn-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_rds_wrong_db_instance_arn_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-role-trust-policy-allows-lambda-service-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-role-trust-policy-allows-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_role_trust_policy_allows_lambda_service_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-role-trust-policy-missing-service-denied", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-role-trust-policy-missing-service-denied", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:UpdateAssumeRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_role_trust_policy_missing_service_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-role-trust-policy-wrong-principal-denied", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-role-trust-policy-wrong-principal-denied", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_role_trust_policy_wrong_principal_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-cross-account-secret-denied", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-cross-account-secret-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:PutResourcePolicy"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_cross_account_secret_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-describe-secret-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-describe-secret-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_describe_secret_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-describesecret-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-describesecret-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_describesecret_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-get-secret-value-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-get-secret-value-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecretVersionIds"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_get_secret_value_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-getsecretvalue-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-getsecretvalue-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecretVersionIds"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_getsecretvalue_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-iam-missing-permission-rejected", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-iam-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_iam_missing_permission_rejected.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-kms-decrypt-missing-permission-denied", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-kms-decrypt-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_kms_decrypt_missing_permission_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-missing-permission-rejected", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_missing_permission_rejected.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-put-secret-value-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-put-secret-value-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_put_secret_value_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-putsecretvalue-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-putsecretvalue-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_putsecretvalue_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-resource-policy-denies-principal-rejected", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-resource-policy-denies-principal-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:PutResourcePolicy"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_resource_policy_denies_principal_rejected.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-rotate-secret-trigger-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-rotate-secret-trigger-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_rotate_secret_trigger_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-version-stage-awscurrent-positive", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-version-stage-awscurrent-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_version_stage_awscurrent_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-wrong-arn-resourcenotfound-rejected", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-wrong-arn-resourcenotfound-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_wrong_arn_resourcenotfound_rejected.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.lambda-secretsmanager-wrong-secret-arn-denied", "deployments": [], "key": "lambda__rds__secretsmanager/lambda-secretsmanager-wrong-secret-arn-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_lambda_secretsmanager_wrong_secret_arn_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-credentials-stored-in-secretsmanager-resource-reference", "deployments": [], "key": "lambda__rds__secretsmanager/rds-credentials-stored-in-secretsmanager-resource-reference", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_credentials_stored_in_secretsmanager_resource_reference.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-eventbridge-schedule-invokes-lambda-sdk-positive", "deployments": [], "key": "lambda__rds__secretsmanager/rds-eventbridge-schedule-invokes-lambda-sdk-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_eventbridge_schedule_invokes_lambda_sdk_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-eventbridge-schedule-missing-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/rds-eventbridge-schedule-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_eventbridge_schedule_missing_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-proxy-auth-lambda-missing-permission-denied", "deployments": [], "key": "lambda__rds__secretsmanager/rds-proxy-auth-lambda-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBInstance", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_proxy_auth_lambda_missing_permission_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-proxy-invokes-lambda-custom-auth-positive", "deployments": [], "key": "lambda__rds__secretsmanager/rds-proxy-invokes-lambda-custom-auth-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBInstance", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_proxy_invokes_lambda_custom_auth_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-proxy-lambda-custom-auth-invocation-positive", "deployments": [], "key": "lambda__rds__secretsmanager/rds-proxy-lambda-custom-auth-invocation-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_proxy_lambda_custom_auth_invocation_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-proxy-lambda-custom-auth-missing-invoke-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/rds-proxy-lambda-custom-auth-missing-invoke-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:ModifyDBProxy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_proxy_lambda_custom_auth_missing_invoke_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-proxy-secret-arn-resolution", "deployments": [], "key": "lambda__rds__secretsmanager/rds-proxy-secret-arn-resolution", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_proxy_secret_arn_resolution.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-proxy-secretsmanager-auth-binding-positive", "deployments": [], "key": "lambda__rds__secretsmanager/rds-proxy-secretsmanager-auth-binding-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:ModifyDBProxy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_proxy_secretsmanager_auth_binding_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-rotation-lambda-missing-invoke-permission-denied", "deployments": [], "key": "lambda__rds__secretsmanager/rds-rotation-lambda-missing-invoke-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_rotation_lambda_missing_invoke_permission_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-secret-rotation-lambda-invocation-positive", "deployments": [], "key": "lambda__rds__secretsmanager/rds-secret-rotation-lambda-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_secret_rotation_lambda_invocation_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-secretsmanager-rotation-missing-lambda-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/rds-secretsmanager-rotation-missing-lambda-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:FilterLogEvents", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_secretsmanager_rotation_missing_lambda_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-secretsmanager-rotation-schedule-configured-positive", "deployments": [], "key": "lambda__rds__secretsmanager/rds-secretsmanager-rotation-schedule-configured-positive", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_secretsmanager_rotation_schedule_configured_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-secretsmanager-rotation-updates-credentials-positive", "deployments": [], "key": "lambda__rds__secretsmanager/rds-secretsmanager-rotation-updates-credentials-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_secretsmanager_rotation_updates_credentials_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.rds-secretsmanager-rotation-wrong-secret-id-negative", "deployments": [], "key": "lambda__rds__secretsmanager/rds-secretsmanager-rotation-wrong-secret-id-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_rds_secretsmanager_rotation_wrong_secret_id_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.secretsmanager-rotation-eventbridge-missing-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/secretsmanager-rotation-eventbridge-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/lambda__rds__secretsmanager/check_secretsmanager_rotation_eventbridge_missing_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.secretsmanager-rotation-eventbridge-schedule-invokes-lambda-positive", "deployments": [], "key": "lambda__rds__secretsmanager/secretsmanager-rotation-eventbridge-schedule-invokes-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/lambda__rds__secretsmanager/check_secretsmanager_rotation_eventbridge_schedule_invokes_lambda_positive.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.secretsmanager-rotation-lambda-execution-role-missing-permission-negative", "deployments": [], "key": "lambda__rds__secretsmanager/secretsmanager-rotation-lambda-execution-role-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/lambda__rds__secretsmanager/check_secretsmanager_rotation_lambda_execution_role_missing_permission_negative.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__rds__secretsmanager.secretsmanager-rotation-lambda-wrong-secret-arn-denied", "deployments": [], "key": "lambda__rds__secretsmanager/secretsmanager-rotation-lambda-wrong-secret-arn-denied", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/lambda__rds__secretsmanager/check_secretsmanager_rotation_lambda_wrong_secret_arn_denied.py", "service": "lambda__rds__secretsmanager"} {"check_id": "lambda__s3.bucket-policy-alone-grants-lambda-role-object-read", "deployments": [], "key": "lambda__s3/bucket-policy-alone-grants-lambda-role-object-read", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3/check_bucket_policy_alone_grants_lambda_role_object_read.py", "service": "lambda__s3"} {"check_id": "lambda__s3.bucket-policy-deny-overrides-lambda-identity-allow", "deployments": [], "key": "lambda__s3/bucket-policy-deny-overrides-lambda-identity-allow", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3/check_bucket_policy_deny_overrides_lambda_identity_allow.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-handler-http-client-fetches-a-presigned-url", "deployments": [], "key": "lambda__s3/function-handler-http-client-fetches-a-presigned-url", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3/check_function_handler_http_client_fetches_a_presigned_url.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-bucket-policy-round-trips", "deployments": [], "key": "lambda__s3/function-sdk-bucket-policy-round-trips", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_bucket_policy_round_trips.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-bucket-tagging-round-trips", "deployments": [], "key": "lambda__s3/function-sdk-bucket-tagging-round-trips", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_bucket_tagging_round_trips.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-bulk-delete-reports-every-key", "deployments": [], "key": "lambda__s3/function-sdk-bulk-delete-reports-every-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_bulk_delete_reports_every_key.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-creates-heads-lists-and-deletes-a-bucket", "deployments": [], "key": "lambda__s3/function-sdk-creates-heads-lists-and-deletes-a-bucket", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_creates_heads_lists_and_deletes_a_bucket.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-delete-bucket-refused-while-objects-remain", "deployments": [], "key": "lambda__s3/function-sdk-delete-bucket-refused-while-objects-remain", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_delete_bucket_refused_while_objects_remain.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-get-bucket-location-reports-the-region", "deployments": [], "key": "lambda__s3/function-sdk-get-bucket-location-reports-the-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_get_bucket_location_reports_the_region.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-get-object-attributes-reports-size-and-etag", "deployments": [], "key": "lambda__s3/function-sdk-get-object-attributes-reports-size-and-etag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_get_object_attributes_reports_size_and_etag.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-head-object-missing-key-is-a-plain-404", "deployments": [], "key": "lambda__s3/function-sdk-head-object-missing-key-is-a-plain-404", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_head_object_missing_key_is_a_plain_404.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-last-modified-is-a-timezone-aware-datetime", "deployments": [], "key": "lambda__s3/function-sdk-last-modified-is-a-timezone-aware-datetime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_last_modified_is_a_timezone_aware_datetime.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-list-objects-v1-walks-with-marker", "deployments": [], "key": "lambda__s3/function-sdk-list-objects-v1-walks-with-marker", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_list_objects_v1_walks_with_marker.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-multipart-upload-round-trip", "deployments": [], "key": "lambda__s3/function-sdk-multipart-upload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_multipart_upload_round_trip.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-object-tagging-round-trips", "deployments": [], "key": "lambda__s3/function-sdk-object-tagging-round-trips", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectTagging", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_object_tagging_round_trips.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-paginator-walks-every-page", "deployments": [], "key": "lambda__s3/function-sdk-paginator-walks-every-page", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_paginator_walks_every_page.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-put-outside-granted-prefix-denied-as-function-error", "deployments": [], "key": "lambda__s3/function-sdk-put-outside-granted-prefix-denied-as-function-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_put_outside_granted_prefix_denied_as_function_error.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-reads-what-the-caller-wrote", "deployments": [], "key": "lambda__s3/function-sdk-reads-what-the-caller-wrote", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_reads_what_the_caller_wrote.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-resource-bucket-objects-filter-by-prefix", "deployments": [], "key": "lambda__s3/function-sdk-resource-bucket-objects-filter-by-prefix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_resource_bucket_objects_filter_by_prefix.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-upload-fileobj-and-download-fileobj-round-trip", "deployments": [], "key": "lambda__s3/function-sdk-upload-fileobj-and-download-fileobj-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_upload_fileobj_and_download_fileobj_round_trip.py", "service": "lambda__s3"} {"check_id": "lambda__s3.function-sdk-versioning-keeps-every-version", "deployments": [], "key": "lambda__s3/function-sdk-versioning-keeps-every-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_function_sdk_versioning_keeps_every_version.py", "service": "lambda__s3"} {"check_id": "lambda__s3.in-handler-boto3-reports-its-version-and-lists-buckets", "deployments": [], "key": "lambda__s3/in-handler-boto3-reports-its-version-and-lists-buckets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/lambda__s3/check_in_handler_boto3_reports_its_version_and_lists_buckets.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs22-global-fetch-reads-presigned-object", "deployments": [], "key": "lambda__s3/nodejs22-global-fetch-reads-presigned-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/lambda__s3/check_nodejs22_global_fetch_reads_presigned_object.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs22-global-fetch-tampered-presigned-url-rejected", "deployments": [], "key": "lambda__s3/nodejs22-global-fetch-tampered-presigned-url-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/lambda__s3/check_nodejs22_global_fetch_tampered_presigned_url_rejected.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs-function-sdk-creates-lists-and-deletes-a-bucket", "deployments": [], "key": "lambda__s3/nodejs-function-sdk-creates-lists-and-deletes-a-bucket", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_nodejs_function_sdk_creates_lists_and_deletes_a_bucket.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs-function-sdk-delete-objects", "deployments": [], "key": "lambda__s3/nodejs-function-sdk-delete-objects", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_nodejs_function_sdk_delete_objects.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs-function-sdk-last-modified-is-a-date", "deployments": [], "key": "lambda__s3/nodejs-function-sdk-last-modified-is-a-date", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_nodejs_function_sdk_last_modified_is_a_date.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs-function-sdk-multipart-upload-round-trip", "deployments": [], "key": "lambda__s3/nodejs-function-sdk-multipart-upload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_nodejs_function_sdk_multipart_upload_round_trip.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs-function-sdk-object-tagging-round-trips", "deployments": [], "key": "lambda__s3/nodejs-function-sdk-object-tagging-round-trips", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_nodejs_function_sdk_object_tagging_round_trips.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs-function-sdk-paginate-list-objects-v2", "deployments": [], "key": "lambda__s3/nodejs-function-sdk-paginate-list-objects-v2", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_nodejs_function_sdk_paginate_list_objects_v2.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs-function-sdk-s3-presigner-url-fetches-the-object", "deployments": [], "key": "lambda__s3/nodejs-function-sdk-s3-presigner-url-fetches-the-object", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3/check_nodejs_function_sdk_s3_presigner_url_fetches_the_object.py", "service": "lambda__s3"} {"check_id": "lambda__s3.nodejs-handler-https-get-fetches-a-presigned-url", "deployments": [], "key": "lambda__s3/nodejs-handler-https-get-fetches-a-presigned-url", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3/check_nodejs_handler_https_get_fetches_a_presigned_url.py", "service": "lambda__s3"} {"check_id": "lambda__s3.s3-object-overwrite-after-deploy-does-not-change-running-code", "deployments": [], "key": "lambda__s3/s3-object-overwrite-after-deploy-does-not-change-running-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda__s3/check_s3_object_overwrite_after_deploy_does_not_change_running_code.py", "service": "lambda__s3"} {"check_id": "lambda__s3.s3-object-version-pins-deployed-code", "deployments": [], "key": "lambda__s3/s3-object-version-pins-deployed-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda__s3/check_s3_object_version_pins_deployed_code.py", "service": "lambda__s3"} {"check_id": "lambda__s3.update-code-from-missing-s3-key-rejected", "deployments": [], "key": "lambda__s3/update-code-from-missing-s3-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateFunctionCode", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda__s3/check_update_code_from_missing_s3_key_rejected.py", "service": "lambda__s3"} {"check_id": "lambda__s3.zipfile-and-s3-source-deploy-identical-code", "deployments": [], "key": "lambda__s3/zipfile-and-s3-source-deploy-identical-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda__s3/check_zipfile_and_s3_source_deploy_identical_code.py", "service": "lambda__s3"} {"check_id": "lambda__s3__s3control.xsvc-s3-3-access-point-policy-denied-lambda-role-still-reads-bucket-directly", "deployments": [], "key": "lambda__s3__s3control/xsvc-s3-3-access-point-policy-denied-lambda-role-still-reads-bucket-directly", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:GetAccessPointPolicy", "s3control:PutAccessPointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3__s3control/check_xsvc_s3_3_access_point_policy_denied_lambda_role_still_reads_bucket_directly.py", "service": "lambda__s3__s3control"} {"check_id": "lambda__s3__sagemaker.sagemaker-pipeline-execution-runs-its-lambda-step-and-writes-the-declared-output", "deployments": [], "key": "lambda__s3__sagemaker/sagemaker-pipeline-execution-runs-its-lambda-step-and-writes-the-declared-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreatePipeline", "sagemaker:DeletePipeline", "sagemaker:DescribePipeline", "sagemaker:DescribePipelineExecution", "sagemaker:ListPipelineExecutionSteps", "sagemaker:ListPipelineExecutions", "sagemaker:StartPipelineExecution"], "path": "behavioral/lambda__s3__sagemaker/check_sagemaker_pipeline_execution_runs_its_lambda_step_and_writes_the_declared_output.py", "service": "lambda__s3__sagemaker"} {"check_id": "lambda__s3__sagemaker.sagemaker-pipeline-step-denied-lambda-invoke-fails-and-writes-no-marker", "deployments": [], "key": "lambda__s3__sagemaker/sagemaker-pipeline-step-denied-lambda-invoke-fails-and-writes-no-marker", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreatePipeline", "sagemaker:DeletePipeline", "sagemaker:DescribePipelineExecution", "sagemaker:ListPipelineExecutionSteps", "sagemaker:StartPipelineExecution"], "path": "behavioral/lambda__s3__sagemaker/check_sagemaker_pipeline_step_denied_lambda_invoke_fails_and_writes_no_marker.py", "service": "lambda__s3__sagemaker"} {"check_id": "lambda__s3__sns.s3-sns-missing-lambda-invoke-permission-blocks-delivery", "deployments": [], "key": "lambda__s3__sns/s3-sns-missing-lambda-invoke-permission-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/lambda__s3__sns/check_s3_sns_missing_lambda_invoke_permission_blocks_delivery.py", "service": "lambda__s3__sns"} {"check_id": "lambda__s3__sqs.cli-create-bucket-queue-function-wire-notification-e2e-positive", "deployments": [], "key": "lambda__s3__sqs/cli-create-bucket-queue-function-wire-notification-e2e-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3__sqs/check_cli_create_bucket_queue_function_wire_notification_e2e_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.cli-delete-queue-then-notification-fails-negative", "deployments": [], "key": "lambda__s3__sqs/cli-delete-queue-then-notification-fails-negative", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2"], "path": "behavioral/lambda__s3__sqs/check_cli_delete_queue_then_notification_fails_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.cli-invoke-lambda-manual-test-event-positive", "deployments": [], "key": "lambda__s3__sqs/cli-invoke-lambda-manual-test-event-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/lambda__s3__sqs/check_cli_invoke_lambda_manual_test_event_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.cli-list-event-source-mappings-state-transition-positive", "deployments": [], "key": "lambda__s3__sqs/cli-list-event-source-mappings-state-transition-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction"], "path": "behavioral/lambda__s3__sqs/check_cli_list_event_source_mappings_state_transition_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.cli-put-bucket-notification-missing-permission-negative", "deployments": [], "key": "lambda__s3__sqs/cli-put-bucket-notification-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3__sqs/check_cli_put_bucket_notification_missing_permission_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.cli-update-event-source-mapping-batch-size-positive", "deployments": [], "key": "lambda__s3__sqs/cli-update-event-source-mapping-batch-size-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:GetFunction", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:SendMessage", "sqs:SendMessageBatch", "sqs:TagQueue"], "path": "behavioral/lambda__s3__sqs/check_cli_update_event_source_mapping_batch_size_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.cli-upload-object-poll-queue-verify-message-positive", "deployments": [], "key": "lambda__s3__sqs/cli-upload-object-poll-queue-verify-message-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2"], "path": "behavioral/lambda__s3__sqs/check_cli_upload_object_poll_queue_verify_message_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.deploy-lambda-destination-missing-permission-negative", "deployments": [], "key": "lambda__s3__sqs/deploy-lambda-destination-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "lambda:Invoke", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/lambda__s3__sqs/check_deploy_lambda_destination_missing_permission_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.deploy-lambda-destination-onfailure-to-sqs-positive", "deployments": [], "key": "lambda__s3__sqs/deploy-lambda-destination-onfailure-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/lambda__s3__sqs/check_deploy_lambda_destination_onfailure_to_sqs_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.deploy-lambda-reserved-concurrency-limits-sqs-throughput-positive", "deployments": [], "key": "lambda__s3__sqs/deploy-lambda-reserved-concurrency-limits-sqs-throughput-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_deploy_lambda_reserved_concurrency_limits_sqs_throughput_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.deploy-missing-esm-source-arn-permission-negative", "deployments": [], "key": "lambda__s3__sqs/deploy-missing-esm-source-arn-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__s3__sqs/check_deploy_missing_esm_source_arn_permission_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.deploy-s3-batch-notification-multiple-lambda-targets-positive", "deployments": [], "key": "lambda__s3__sqs/deploy-s3-batch-notification-multiple-lambda-targets-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/lambda__s3__sqs/check_deploy_s3_batch_notification_multiple_lambda_targets_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.deploy-sqs-dlq-redrive-policy-lambda-failure-positive", "deployments": [], "key": "lambda__s3__sqs/deploy-sqs-dlq-redrive-policy-lambda-failure-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_deploy_sqs_dlq_redrive_policy_lambda_failure_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.dotnet-s3-notification-records-reach-handler-via-onsuccess-destination", "deployments": [], "key": "lambda__s3__sqs/dotnet-s3-notification-records-reach-handler-via-onsuccess-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:PutFunctionEventInvokeConfig", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__s3__sqs/check_dotnet_s3_notification_records_reach_handler_via_onsuccess_destination.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.esm-event-source-arn-type-and-account-rejected", "deployments": [], "key": "lambda__s3__sqs/esm-event-source-arn-type-and-account-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_esm_event_source_arn_type_and_account_rejected.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.java-s3-notification-record-fields-reach-the-handler", "deployments": [], "key": "lambda__s3__sqs/java-s3-notification-record-fields-reach-the-handler", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/lambda__s3__sqs/check_java_s3_notification_record_fields_reach_the_handler.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-s3-copyobject-positive", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-s3-copyobject-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_s3_copyobject_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-s3-delete-object-positive", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-s3-delete-object-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_s3_delete_object_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-s3-generate-presigned-url-positive", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-s3-generate-presigned-url-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_s3_generate_presigned_url_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-s3-list-objects-v2-pagination-positive", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-s3-list-objects-v2-pagination-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_s3_list_objects_v2_pagination_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-s3-missing-deleteobject-permission-negative", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-s3-missing-deleteobject-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_s3_missing_deleteobject_permission_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-s3-presigned-url-missing-permission-negative", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-s3-presigned-url-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_s3_presigned_url_missing_permission_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-sqs-change-message-visibility-positive", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-sqs-change-message-visibility-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_sqs_change_message_visibility_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-sqs-missing-changemessagevisibility-permission-negative", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-sqs-missing-changemessagevisibility-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_sqs_missing_changemessagevisibility_permission_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-sqs-missing-receivemessage-permission-negative", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-sqs-missing-receivemessage-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_sqs_missing_receivemessage_permission_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-sqs-receive-and-delete-message-positive", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-sqs-receive-and-delete-message-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_sqs_receive_and_delete_message_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.lambda-sdk-sqs-send-message-batch-positive", "deployments": [], "key": "lambda__s3__sqs/lambda-sdk-sqs-send-message-batch-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__s3__sqs/check_lambda_sdk_sqs_send_message_batch_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.ruby-s3-object-created-notification-record-reaches-the-handler", "deployments": [], "key": "lambda__s3__sqs/ruby-s3-object-created-notification-record-reaches-the-handler", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/lambda__s3__sqs/check_ruby_s3_object_created_notification_record_reaches_the_handler.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-event-name-filter-mismatch-negative", "deployments": [], "key": "lambda__s3__sqs/s3-notification-event-name-filter-mismatch-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_event_name_filter_mismatch_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-multipart-upload-complete-triggers-positive", "deployments": [], "key": "lambda__s3__sqs/s3-notification-multipart-upload-complete-triggers-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketVersioning", "s3:UploadPart"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_multipart_upload_complete_triggers_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-multiple-destinations-fanout-positive", "deployments": [], "key": "lambda__s3__sqs/s3-notification-multiple-destinations-fanout-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_multiple_destinations_fanout_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-object-removed-to-lambda-positive", "deployments": [], "key": "lambda__s3__sqs/s3-notification-object-removed-to-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_object_removed_to_lambda_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-object-removed-to-sqs-positive", "deployments": [], "key": "lambda__s3__sqs/s3-notification-object-removed-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_object_removed_to_sqs_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-queue-deleted-after-config-no-delivery-negative", "deployments": [], "key": "lambda__s3__sqs/s3-notification-queue-deleted-after-config-no-delivery-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sqs:TagQueue"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_queue_deleted_after_config_no_delivery_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-suffix-filter-mismatch-no-delivery-negative", "deployments": [], "key": "lambda__s3__sqs/s3-notification-suffix-filter-mismatch-no-delivery-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_suffix_filter_mismatch_no_delivery_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-suffix-filter-positive", "deployments": [], "key": "lambda__s3__sqs/s3-notification-suffix-filter-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_suffix_filter_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-to-sqs-lambda-esm-drains-queue-positive", "deployments": [], "key": "lambda__s3__sqs/s3-notification-to-sqs-lambda-esm-drains-queue-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_to_sqs_lambda_esm_drains_queue_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-versioned-bucket-delete-marker-positive", "deployments": [], "key": "lambda__s3__sqs/s3-notification-versioned-bucket-delete-marker-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_versioned_bucket_delete_marker_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.s3-notification-wrong-lambda-arn-in-config-negative", "deployments": [], "key": "lambda__s3__sqs/s3-notification-wrong-lambda-arn-in-config-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3__sqs/check_s3_notification_wrong_lambda_arn_in_config_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-batch-size-affects-invocation-count-positive", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-batch-size-affects-invocation-count-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "sqs:SendMessageBatch"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_batch_size_affects_invocation_count_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-concurrent-batch-window-positive", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-concurrent-batch-window-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_concurrent_batch_window_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-direct-sdk-trigger-positive", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-direct-sdk-trigger-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_direct_sdk_trigger_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-disabled-mapping-no-invocation-negative", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-disabled-mapping-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_disabled_mapping_no_invocation_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-dlq-redirect-after-max-receives-positive", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-dlq-redirect-after-max-receives-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_dlq_redirect_after_max_receives_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-filter-criteria-drops-nonmatching-negative", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-filter-criteria-drops-nonmatching-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_filter_criteria_drops_nonmatching_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-lambda-error-triggers-retry-positive", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-lambda-error-triggers-retry-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_lambda_error_triggers_retry_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-message-attributes-preserved-positive", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-message-attributes-preserved-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_message_attributes_preserved_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-visibility-timeout-respects-lambda-duration-positive", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-visibility-timeout-respects-lambda-duration-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_visibility_timeout_respects_lambda_duration_positive.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__sqs.sqs-esm-wrong-queue-arn-mismatch-negative", "deployments": [], "key": "lambda__s3__sqs/sqs-esm-wrong-queue-arn-mismatch-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__s3__sqs/check_sqs_esm_wrong_queue_arn_mismatch_negative.py", "service": "lambda__s3__sqs"} {"check_id": "lambda__s3__stepfunctions.cfn-deploy-missing-sfn-permission-negative", "deployments": ["behavioral/lambda__s3__stepfunctions/deployments/broken-sfn-perms.yaml"], "key": "lambda__s3__stepfunctions/cfn-deploy-missing-sfn-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:Invoke", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/lambda__s3__stepfunctions/check_cfn_deploy_missing_sfn_permission_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.cfn-deploy-s3-notification-to-lambda-positive", "deployments": ["behavioral/lambda__s3__stepfunctions/deployments/s3-notification-cfn.yaml"], "key": "lambda__s3__stepfunctions/cfn-deploy-s3-notification-to-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/lambda__s3__stepfunctions/check_cfn_deploy_s3_notification_to_lambda_positive.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.cfn-deploy-sfn-lambda-s3-stack-positive", "deployments": ["behavioral/lambda__s3__stepfunctions/deployments/sfn-lambda-s3-stack.yaml"], "key": "lambda__s3__stepfunctions/cfn-deploy-sfn-lambda-s3-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__s3__stepfunctions/check_cfn_deploy_sfn_lambda_s3_stack_positive.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-describe-sfn-execution-positive", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-describe-sfn-execution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_describe_sfn_execution_positive.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-describe-sfn-missing-permission-negative", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-describe-sfn-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_describe_sfn_missing_permission_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-list-sfn-executions-wrong-arn-negative", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-list-sfn-executions-wrong-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_list_sfn_executions_wrong_arn_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-reads-s3-object-missing-permission-negative", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-reads-s3-object-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_reads_s3_object_missing_permission_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-s3-getobject-nonexistent-key-error-propagation", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-s3-getobject-nonexistent-key-error-propagation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_s3_getobject_nonexistent_key_error_propagation.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-s3-putobject-missing-permission-negative", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-s3-putobject-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_s3_putobject_missing_permission_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-starts-sfn-execution-positive", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-starts-sfn-execution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_starts_sfn_execution_positive.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-starts-sfn-missing-permission-negative", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-starts-sfn-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_starts_sfn_missing_permission_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.lambda-writes-to-s3-via-sdk-positive", "deployments": [], "key": "lambda__s3__stepfunctions/lambda-writes-to-s3-via-sdk-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/lambda__s3__stepfunctions/check_lambda_writes_to_s3_via_sdk_positive.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.s3-event-filter-prefix-negative", "deployments": [], "key": "lambda__s3__stepfunctions/s3-event-filter-prefix-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__stepfunctions/check_s3_event_filter_prefix_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.s3-notification-missing-invoke-permission-negative", "deployments": [], "key": "lambda__s3__stepfunctions/s3-notification-missing-invoke-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__stepfunctions/check_s3_notification_missing_invoke_permission_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.s3-notification-payload-format-preserved", "deployments": [], "key": "lambda__s3__stepfunctions/s3-notification-payload-format-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__stepfunctions/check_s3_notification_payload_format_preserved.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.s3-notification-triggers-lambda-positive", "deployments": [], "key": "lambda__s3__stepfunctions/s3-notification-triggers-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/lambda__s3__stepfunctions/check_s3_notification_triggers_lambda_positive.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.s3-trigger-lambda-starts-sfn-pipeline", "deployments": [], "key": "lambda__s3__stepfunctions/s3-trigger-lambda-starts-sfn-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_s3_trigger_lambda_starts_sfn_pipeline.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-catch-lambda-error-and-write-s3", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-catch-lambda-error-and-write-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_catch_lambda_error_and_write_s3.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-express-workflow-lambda-sync-positive", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-express-workflow-lambda-sync-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:StartSyncExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_express_workflow_lambda_sync_positive.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-invokes-lambda-via-task-positive", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-invokes-lambda-via-task-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_invokes_lambda_via_task_positive.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-map-state-parallel-lambda-invocations", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-map-state-parallel-lambda-invocations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_map_state_parallel_lambda_invocations.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-pipeline-lambda-broken-s3-permission-negative", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-pipeline-lambda-broken-s3-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_pipeline_lambda_broken_s3_permission_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-pipeline-lambda-writes-s3", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-pipeline-lambda-writes-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_pipeline_lambda_writes_s3.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-task-lambda-missing-invoke-permission-negative", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-task-lambda-missing-invoke-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_task_lambda_missing_invoke_permission_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-task-lambda-passes-input-output", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-task-lambda-passes-input-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_task_lambda_passes_input_output.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__s3__stepfunctions.sfn-task-nonexistent-lambda-arn-negative", "deployments": [], "key": "lambda__s3__stepfunctions/sfn-task-nonexistent-lambda-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/lambda__s3__stepfunctions/check_sfn_task_nonexistent_lambda_arn_negative.py", "service": "lambda__s3__stepfunctions"} {"check_id": "lambda__scheduler.cfn-deploy-scheduler-invalid-target-arn-negative", "deployments": [], "key": "lambda__scheduler/cfn-deploy-scheduler-invalid-target-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__scheduler/check_cfn_deploy_scheduler_invalid_target_arn_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cfn-deploy-scheduler-lambda-target-positive", "deployments": [], "key": "lambda__scheduler/cfn-deploy-scheduler-lambda-target-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__scheduler/check_cfn_deploy_scheduler_lambda_target_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cfn-deploy-scheduler-missing-invoke-permission-negative", "deployments": [], "key": "lambda__scheduler/cfn-deploy-scheduler-missing-invoke-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__scheduler/check_cfn_deploy_scheduler_missing_invoke_permission_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cfn-deploy-scheduler-role-trust-policy-positive", "deployments": [], "key": "lambda__scheduler/cfn-deploy-scheduler-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__scheduler/check_cfn_deploy_scheduler_role_trust_policy_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cfn-deploy-scheduler-schedule-group-positive", "deployments": [], "key": "lambda__scheduler/cfn-deploy-scheduler-schedule-group-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__scheduler/check_cfn_deploy_scheduler_schedule_group_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cfn-stack-update-scheduler-cron-expression-positive", "deployments": [], "key": "lambda__scheduler/cfn-stack-update-scheduler-cron-expression-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__scheduler/check_cfn_stack_update_scheduler_cron_expression_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cli-scheduler-create-schedule-invalid-role-negative", "deployments": [], "key": "lambda__scheduler/cli-scheduler-create-schedule-invalid-role-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/lambda__scheduler/check_cli_scheduler_create_schedule_invalid_role_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cli-scheduler-create-schedule-lambda-target", "deployments": [], "key": "lambda__scheduler/cli-scheduler-create-schedule-lambda-target", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda__scheduler/check_cli_scheduler_create_schedule_lambda_target.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cli-scheduler-delete-schedule-stops-invocation-negative", "deployments": [], "key": "lambda__scheduler/cli-scheduler-delete-schedule-stops-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "scheduler:GetSchedule"], "path": "behavioral/lambda__scheduler/check_cli_scheduler_delete_schedule_stops_invocation_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cli-scheduler-list-schedules-verify-target", "deployments": [], "key": "lambda__scheduler/cli-scheduler-list-schedules-verify-target", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda__scheduler/check_cli_scheduler_list_schedules_verify_target.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.cli-scheduler-update-schedule-changes-target", "deployments": [], "key": "lambda__scheduler/cli-scheduler-update-schedule-changes-target", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/lambda__scheduler/check_cli_scheduler_update_schedule_changes_target.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.lambda-invokes-scheduler-create-schedule-positive", "deployments": [], "key": "lambda__scheduler/lambda-invokes-scheduler-create-schedule-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__scheduler/check_lambda_invokes_scheduler_create_schedule_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.lambda-invokes-scheduler-delete-schedule-positive", "deployments": [], "key": "lambda__scheduler/lambda-invokes-scheduler-delete-schedule-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:ListSchedules", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__scheduler/check_lambda_invokes_scheduler_delete_schedule_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.lambda-invokes-scheduler-get-schedule-positive", "deployments": [], "key": "lambda__scheduler/lambda-invokes-scheduler-get-schedule-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__scheduler/check_lambda_invokes_scheduler_get_schedule_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.lambda-scheduler-create-schedule-missing-permission-negative", "deployments": [], "key": "lambda__scheduler/lambda-scheduler-create-schedule-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:ListSchedules", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__scheduler/check_lambda_scheduler_create_schedule_missing_permission_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.lambda-scheduler-create-schedule-wrong-group-negative", "deployments": [], "key": "lambda__scheduler/lambda-scheduler-create-schedule-wrong-group-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:ListSchedules", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__scheduler/check_lambda_scheduler_create_schedule_wrong_group_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.lambda-scheduler-list-schedules-missing-permission-negative", "deployments": [], "key": "lambda__scheduler/lambda-scheduler-list-schedules-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__scheduler/check_lambda_scheduler_list_schedules_missing_permission_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.lambda-scheduler-update-schedule-group-positive", "deployments": [], "key": "lambda__scheduler/lambda-scheduler-update-schedule-group-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:ListSchedules", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__scheduler/check_lambda_scheduler_update_schedule_group_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-cron-schedule-invocation-positive", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-cron-schedule-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_cron_schedule_invocation_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-disabled-schedule-no-invocation-negative", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-disabled-schedule-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_disabled_schedule_no_invocation_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-flexible-time-window-invocation", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-flexible-time-window-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_flexible_time_window_invocation.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-missing-invoke-permission-negative", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-missing-invoke-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_missing_invoke_permission_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-one-time-schedule-invocation-positive", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-one-time-schedule-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_one_time_schedule_invocation_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-payload-input-passthrough", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-payload-input-passthrough", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_payload_input_passthrough.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-rate-schedule-invocation-positive", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-rate-schedule-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_rate_schedule_invocation_positive.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-retry-policy-invocation-count", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-retry-policy-invocation-count", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:PutFunctionEventInvokeConfig", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_retry_policy_invocation_count.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-role-trust-missing-negative", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-role-trust-missing-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_role_trust_missing_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-schedule-group-arn-resolution", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-schedule-group-arn-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_schedule_group_arn_resolution.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler.scheduler-lambda-wrong-target-arn-negative", "deployments": [], "key": "lambda__scheduler/scheduler-lambda-wrong-target-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler/check_scheduler_lambda_wrong_target_arn_negative.py", "service": "lambda__scheduler"} {"check_id": "lambda__scheduler__sqs.xsvc-lambda-3-scheduler-deleted-lambda-target-dead-letters-once", "deployments": [], "key": "lambda__scheduler__sqs/xsvc-lambda-3-scheduler-deleted-lambda-target-dead-letters-once", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler__sqs/check_xsvc_lambda_3_scheduler_deleted_lambda_target_dead_letters_once.py", "service": "lambda__scheduler__sqs"} {"check_id": "lambda__scheduler__sqs.xsvc-lambda-3-scheduler-lambda-target-receives-exact-input-dlq-empty", "deployments": [], "key": "lambda__scheduler__sqs/xsvc-lambda-3-scheduler-lambda-target-receives-exact-input-dlq-empty", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__scheduler__sqs/check_xsvc_lambda_3_scheduler_lambda_target_receives_exact_input_dlq_empty.py", "service": "lambda__scheduler__sqs"} {"check_id": "lambda__scheduler__sqs.xsvc-lambda-3-scheduler-role-without-invoke-permission-denied-to-dlq", "deployments": [], "key": "lambda__scheduler__sqs/xsvc-lambda-3-scheduler-role-without-invoke-permission-denied-to-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler__sqs/check_xsvc_lambda_3_scheduler_role_without_invoke_permission_denied_to_dlq.py", "service": "lambda__scheduler__sqs"} {"check_id": "lambda__scheduler__sqs.xsvc-lambda-3-scheduler-throwing-lambda-fails-to-onfailure-not-scheduler-dlq", "deployments": [], "key": "lambda__scheduler__sqs/xsvc-lambda-3-scheduler-throwing-lambda-fails-to-onfailure-not-scheduler-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__scheduler__sqs/check_xsvc_lambda_3_scheduler_throwing_lambda_fails_to_onfailure_not_scheduler_dlq.py", "service": "lambda__scheduler__sqs"} {"check_id": "lambda__secretsmanager.kafka-esm-consumer-group-id-length-and-charset-rejected", "deployments": [], "key": "lambda__secretsmanager/kafka-esm-consumer-group-id-length-and-charset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager/check_kafka_esm_consumer_group_id_length_and_charset_rejected.py", "service": "lambda__secretsmanager"} {"check_id": "lambda__secretsmanager.kafka-esm-onfailure-destination-kafka-topic-rules-rejected", "deployments": [], "key": "lambda__secretsmanager/kafka-esm-onfailure-destination-kafka-topic-rules-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager/check_kafka_esm_onfailure_destination_kafka_topic_rules_rejected.py", "service": "lambda__secretsmanager"} {"check_id": "lambda__secretsmanager.kafka-esm-schema-registry-config-invalid-shape-rejected", "deployments": [], "key": "lambda__secretsmanager/kafka-esm-schema-registry-config-invalid-shape-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager/check_kafka_esm_schema_registry_config_invalid_shape_rejected.py", "service": "lambda__secretsmanager"} {"check_id": "lambda__secretsmanager.self-managed-kafka-esm-duplicate-for-the-same-topic-rejected", "deployments": [], "key": "lambda__secretsmanager/self-managed-kafka-esm-duplicate-for-the-same-topic-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager/check_self_managed_kafka_esm_duplicate_for_the_same_topic_rejected.py", "service": "lambda__secretsmanager"} {"check_id": "lambda__secretsmanager__sqs.deployment-cfn-sqs-lambda-secret", "deployments": ["behavioral/lambda__secretsmanager__sqs/deployments/cfn-sqs-lambda-secret.yaml"], "key": "lambda__secretsmanager__sqs/deployment-cfn-sqs-lambda-secret", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DescribeLogStreams", "logs:GetLogEvents", "sqs:SendMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_deployment_cfn_sqs_lambda_secret.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.error-propagation-queue-not-exist", "deployments": [], "key": "lambda__secretsmanager__sqs/error-propagation-queue-not-exist", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__secretsmanager__sqs/check_error_propagation_queue_not_exist.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.error-propagation-secret-not-found", "deployments": [], "key": "lambda__secretsmanager__sqs/error-propagation-secret-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager__sqs/check_error_propagation_secret_not_found.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.lambda-fetches-secret-by-arn", "deployments": [], "key": "lambda__secretsmanager__sqs/lambda-fetches-secret-by-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager__sqs/check_lambda_fetches_secret_by_arn.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.lambda-no-permissions-denied-both-services", "deployments": [], "key": "lambda__secretsmanager__sqs/lambda-no-permissions-denied-both-services", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_lambda_no_permissions_denied_both_services.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.lambda-secretsmanager-missing-permission-denied", "deployments": [], "key": "lambda__secretsmanager__sqs/lambda-secretsmanager-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager__sqs/check_lambda_secretsmanager_missing_permission_denied.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.lambda-sends-message-to-sqs-format", "deployments": [], "key": "lambda__secretsmanager__sqs/lambda-sends-message-to-sqs-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_lambda_sends_message_to_sqs_format.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.lambda-sqs-missing-permission-denied", "deployments": [], "key": "lambda__secretsmanager__sqs/lambda-sqs-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_lambda_sqs_missing_permission_denied.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.pipeline-sqs-secret-sqs-chain", "deployments": [], "key": "lambda__secretsmanager__sqs/pipeline-sqs-secret-sqs-chain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_pipeline_sqs_secret_sqs_chain.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.secret-arn-partial-resolution", "deployments": [], "key": "lambda__secretsmanager__sqs/secret-arn-partial-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager__sqs/check_secret_arn_partial_resolution.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.secret-resource-scoped-denies-other-secret", "deployments": [], "key": "lambda__secretsmanager__sqs/secret-resource-scoped-denies-other-secret", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/lambda__secretsmanager__sqs/check_secret_resource_scoped_denies_other_secret.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.secret-version-stage-resolution", "deployments": [], "key": "lambda__secretsmanager__sqs/secret-version-stage-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue"], "path": "behavioral/lambda__secretsmanager__sqs/check_secret_version_stage_resolution.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.shared-state-concurrent-sqs-writes", "deployments": [], "key": "lambda__secretsmanager__sqs/shared-state-concurrent-sqs-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_shared_state_concurrent_sqs_writes.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.sqs-batch-message-format", "deployments": [], "key": "lambda__secretsmanager__sqs/sqs-batch-message-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_sqs_batch_message_format.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.sqs-esm-missing-permission-fails", "deployments": [], "key": "lambda__secretsmanager__sqs/sqs-esm-missing-permission-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__secretsmanager__sqs/check_sqs_esm_missing_permission_fails.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.sqs-lambda-basic-trigger", "deployments": [], "key": "lambda__secretsmanager__sqs/sqs-lambda-basic-trigger", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_sqs_lambda_basic_trigger.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__secretsmanager__sqs.sqs-resource-scoped-denies-other-queue", "deployments": [], "key": "lambda__secretsmanager__sqs/sqs-resource-scoped-denies-other-queue", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__secretsmanager__sqs/check_sqs_resource_scoped_denies_other_queue.py", "service": "lambda__secretsmanager__sqs"} {"check_id": "lambda__ses.lambda-receipt-action-event-invocation-delivers-documented-ses-event", "deployments": [], "key": "lambda__ses/lambda-receipt-action-event-invocation-delivers-documented-ses-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "route53:ListHostedZones", "route53:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRule", "ses:SetActiveReceiptRuleSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sts:GetCallerIdentity"], "path": "behavioral/lambda__ses/check_lambda_receipt_action_event_invocation_delivers_documented_ses_event.py", "service": "lambda__ses"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-configuration-set-positive", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-configuration-set-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_configuration_set_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-env-configset-arn-resolution", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-env-configset-arn-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "sesv2:GetConfigurationSet"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_env_configset_arn_resolution.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-identity-resource-positive", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-identity-resource-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_identity_resource_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-missing-iam-policy-negative", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-missing-iam-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_missing_iam_policy_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-missing-policy-negative", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-missing-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_missing_policy_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-role-positive", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-role-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_role_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-role-trust-positive", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-role-trust-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_role_trust_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-role-unverified-sender-message-rejected", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-role-unverified-sender-message-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "sesv2:GetAccount"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_role_unverified_sender_message_rejected.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-stack-positive", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_stack_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-wrong-arn-negative", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-wrong-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "sesv2:DeleteEmailIdentity"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_wrong_arn_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-wrong-role-arn-negative", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-wrong-role-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_wrong_role_arn_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-deploy-lambda-sesv2-wrong-trust-principal-negative", "deployments": [], "key": "lambda__sesv2/cfn-deploy-lambda-sesv2-wrong-trust-principal-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda__sesv2/check_cfn_deploy_lambda_sesv2_wrong_trust_principal_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-lambda-role-trust-policy-validation-positive", "deployments": [], "key": "lambda__sesv2/cfn-lambda-role-trust-policy-validation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_lambda_role_trust_policy_validation_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-lambda-sesv2-trust-policy-positive", "deployments": [], "key": "lambda__sesv2/cfn-lambda-sesv2-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:Invoke", "sesv2:ListEmailIdentities"], "path": "behavioral/lambda__sesv2/check_cfn_lambda_sesv2_trust_policy_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-lambda-sesv2-wrong-role-arn-negative", "deployments": [], "key": "lambda__sesv2/cfn-lambda-sesv2-wrong-role-arn-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunction", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_cfn_lambda_sesv2_wrong_role_arn_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-stack-update-lambda-sesv2-add-permission-positive", "deployments": [], "key": "lambda__sesv2/cfn-stack-update-lambda-sesv2-add-permission-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_stack_update_lambda_sesv2_add_permission_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-stack-update-lambda-sesv2-identity-env-positive", "deployments": [], "key": "lambda__sesv2/cfn-stack-update-lambda-sesv2-identity-env-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_stack_update_lambda_sesv2_identity_env_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cfn-stack-update-lambda-sesv2-permission-add-positive", "deployments": [], "key": "lambda__sesv2/cfn-stack-update-lambda-sesv2-permission-add-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "lambda:GetFunction", "lambda:Invoke"], "path": "behavioral/lambda__sesv2/check_cfn_stack_update_lambda_sesv2_permission_add_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cli-lambda-sesv2-deploy-and-send-email", "deployments": [], "key": "lambda__sesv2/cli-lambda-sesv2-deploy-and-send-email", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:DeleteFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_cli_lambda_sesv2_deploy_and_send_email.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cli-lambda-sesv2-describe-email-identity", "deployments": [], "key": "lambda__sesv2/cli-lambda-sesv2-describe-email-identity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:DeleteFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_cli_lambda_sesv2_describe_email_identity.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cli-lambda-sesv2-describe-function-config", "deployments": [], "key": "lambda__sesv2/cli-lambda-sesv2-describe-function-config", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/lambda__sesv2/check_cli_lambda_sesv2_describe_function_config.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cli-lambda-sesv2-missing-policy-negative", "deployments": [], "key": "lambda__sesv2/cli-lambda-sesv2-missing-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:DeleteFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_cli_lambda_sesv2_missing_policy_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.cli-lambda-sesv2-update-role-policy-positive", "deployments": [], "key": "lambda__sesv2/cli-lambda-sesv2-update-role-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "lambda:DeleteFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_cli_lambda_sesv2_update_role_policy_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.iam-role-trust-lambda-service-positive", "deployments": [], "key": "lambda__sesv2/iam-role-trust-lambda-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:GetAccount"], "path": "behavioral/lambda__sesv2/check_iam_role_trust_lambda_service_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-execution-role-wrong-trust-negative", "deployments": [], "key": "lambda__sesv2/lambda-execution-role-wrong-trust-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda__sesv2/check_lambda_execution_role_wrong_trust_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-iam-trust-policy-assume-role-positive", "deployments": [], "key": "lambda__sesv2/lambda-iam-trust-policy-assume-role-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_iam_trust_policy_assume_role_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-account-suppression-list-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-account-suppression-list-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:ListSuppressedDestinations"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_account_suppression_list_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-configuration-set-event-destination-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-configuration-set-event-destination-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSetEventDestinations", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_configuration_set_event_destination_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-configuration-set-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-configuration-set-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSet"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_configuration_set_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-create-contact-list-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-create-contact-list-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:DeleteContactList", "sesv2:GetContactList"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_create_contact_list_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-create-contact-list-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-create-contact-list-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:DeleteContactList", "sesv2:GetContactList"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_create_contact_list_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-create-contact-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-create-contact-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateContactList", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:ListContacts"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_create_contact_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-create-contact-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-create-contact-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:CreateContactList", "sesv2:DeleteContactList", "sesv2:GetContact"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_create_contact_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-create-email-identity-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-create-email-identity-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_create_email_identity_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-create-email-identity-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-create-email-identity-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_create_email_identity_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-delete-contact-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-delete-contact-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:ListContactLists"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_delete_contact_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-delete-email-identity-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-delete-email-identity-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:ListEmailIdentities"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_delete_email_identity_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-delete-suppressed-destination-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-delete-suppressed-destination-positive", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:DeleteSuppressedDestination", "sesv2:GetSuppressedDestination", "sesv2:PutSuppressedDestination"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_delete_suppressed_destination_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-get-account-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-get-account-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:GetAccount"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_get_account_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-get-email-identity-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-get-email-identity-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_get_email_identity_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-get-email-identity-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-get-email-identity-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_get_email_identity_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-get-identity-verification-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-get-identity-verification-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_get_identity_verification_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-get-suppressed-destination-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-get-suppressed-destination-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:DeleteSuppressedDestination", "sesv2:GetAccount", "sesv2:GetEmailIdentity", "sesv2:GetSuppressedDestination", "sesv2:PutAccountSuppressionAttributes", "sesv2:SendEmail"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_get_suppressed_destination_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-list-email-identities-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-list-email-identities-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_list_email_identities_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-list-email-identities-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-list-email-identities-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_list_email_identities_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-list-suppressed-destinations-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-list-suppressed-destinations-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:DeleteSuppressedDestination", "sesv2:PutSuppressedDestination"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_list_suppressed_destinations_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-list-suppressed-destinations-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-list-suppressed-destinations-positive", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:ListSuppressedDestinations"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_list_suppressed_destinations_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-put-configuration-set-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-put-configuration-set-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSet"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_put_configuration_set_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-put-mail-from-domain-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-put-mail-from-domain-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_put_mail_from_domain_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-put-suppressed-destination-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-put-suppressed-destination-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:DeleteSuppressedDestination", "sesv2:GetAccount", "sesv2:GetSuppressedDestination"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_put_suppressed_destination_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-put-suppressed-destination-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-put-suppressed-destination-positive", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:DeleteSuppressedDestination", "sesv2:GetAccount", "sesv2:GetSuppressedDestination"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_put_suppressed_destination_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-put-suppression-attributes-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-put-suppression-attributes-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:DeleteSuppressedDestination", "sesv2:GetSuppressedDestination"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_put_suppression_attributes_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-send-email-response-format", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-send-email-response-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sesv2:ListEmailIdentities"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_send_email_response_format.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-send-templated-email-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-send-templated-email-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:CreateEmailTemplate", "sesv2:DeleteConfigurationSet", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailIdentity", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_send_templated_email_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-tag-resource-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-tag-resource-missing-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_tag_resource_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-tag-resource-positive", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-tag-resource-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:DeleteConfigurationSet", "sesv2:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_tag_resource_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-update-configuration-set-event-destination-missing-permission-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-update-configuration-set-event-destination-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSetEventDestinations"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_update_configuration_set_event_destination_missing_permission_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-sesv2-wrong-region-endpoint-negative", "deployments": [], "key": "lambda__sesv2/lambda-sesv2-wrong-region-endpoint-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:GetEmailIdentity"], "path": "behavioral/lambda__sesv2/check_lambda_sesv2_wrong_region_endpoint_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.lambda-wrong-trust-policy-sesv2-negative", "deployments": [], "key": "lambda__sesv2/lambda-wrong-trust-policy-sesv2-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda__sesv2/check_lambda_wrong_trust_policy_sesv2_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.sesv2-eventbridge-bounce-event-data-format", "deployments": [], "key": "lambda__sesv2/sesv2-eventbridge-bounce-event-data-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_sesv2_eventbridge_bounce_event_data_format.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.sesv2-eventbridge-complaint-event-lambda-positive", "deployments": [], "key": "lambda__sesv2/sesv2-eventbridge-complaint-event-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_sesv2_eventbridge_complaint_event_lambda_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.sesv2-eventbridge-delivery-event-lambda-positive", "deployments": [], "key": "lambda__sesv2/sesv2-eventbridge-delivery-event-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_sesv2_eventbridge_delivery_event_lambda_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.sesv2-eventbridge-rule-missing-resource-policy-negative", "deployments": [], "key": "lambda__sesv2/sesv2-eventbridge-rule-missing-resource-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_sesv2_eventbridge_rule_missing_resource_policy_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.sesv2-eventbridge-send-event-lambda-invocation-positive", "deployments": [], "key": "lambda__sesv2/sesv2-eventbridge-send-event-lambda-invocation-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_sesv2_eventbridge_send_event_lambda_invocation_positive.py", "service": "lambda__sesv2"} {"check_id": "lambda__sesv2.sesv2-eventbridge-wrong-event-pattern-negative", "deployments": [], "key": "lambda__sesv2/sesv2-eventbridge-wrong-event-pattern-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:RemovePermission", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sesv2/check_sesv2_eventbridge_wrong_event_pattern_negative.py", "service": "lambda__sesv2"} {"check_id": "lambda__sns__sqs.cfn-deploy-iam-role-trust-lambda-invokes-sqs-positive", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-iam-role-trust-lambda-invokes-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_iam_role_trust_lambda_invokes_sqs_positive.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-iam-role-trust-lambda-positive", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-iam-role-trust-lambda-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "lambda:Invoke"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_iam_role_trust_lambda_positive.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-iam-role-trust-mismatch-negative", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-iam-role-trust-mismatch-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_iam_role_trust_mismatch_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-iam-role-trust-sns-positive", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-iam-role-trust-sns-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_iam_role_trust_sns_positive.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-iam-role-trust-sqs-positive", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-iam-role-trust-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_iam_role_trust_sqs_positive.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-lambda-destination-sns-on-failure", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-lambda-destination-sns-on-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:Invoke", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_lambda_destination_sns_on_failure.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-lambda-execution-role-missing-sqs-permission-negative", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-lambda-execution-role-missing-sqs-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_lambda_execution_role_missing_sqs_permission_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-sns-sqs-lambda-full-pipeline-positive", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-sns-sqs-lambda-full-pipeline-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_sns_sqs_lambda_full_pipeline_positive.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-sns-sqs-subscription", "deployments": ["behavioral/lambda__sns__sqs/deployments/cfn-sns-sqs-subscription.yaml"], "key": "lambda__sns__sqs/cfn-deploy-sns-sqs-subscription", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:Publish", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_sns_sqs_subscription.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cfn-deploy-sqs-esm-filter-criteria-positive", "deployments": [], "key": "lambda__sns__sqs/cfn-deploy-sqs-esm-filter-criteria-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:GetEventSourceMapping", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_cfn_deploy_sqs_esm_filter_criteria_positive.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cli-lambda-add-permission-sns-invoke-workflow", "deployments": [], "key": "lambda__sns__sqs/cli-lambda-add-permission-sns-invoke-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cli_lambda_add_permission_sns_invoke_workflow.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cli-missing-lambda-permission-blocks-invoke-workflow", "deployments": [], "key": "lambda__sns__sqs/cli-missing-lambda-permission-blocks-invoke-workflow", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetPolicy", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cli_missing_lambda_permission_blocks_invoke_workflow.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cli-missing-queue-policy-blocks-delivery-workflow", "deployments": [], "key": "lambda__sns__sqs/cli-missing-queue-policy-blocks-delivery-workflow", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cli_missing_queue_policy_blocks_delivery_workflow.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cli-sns-create-topic-subscribe-sqs-workflow", "deployments": [], "key": "lambda__sns__sqs/cli-sns-create-topic-subscribe-sqs-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_cli_sns_create_topic_subscribe_sqs_workflow.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cli-sns-publish-verify-sqs-delivery-workflow", "deployments": [], "key": "lambda__sns__sqs/cli-sns-publish-verify-sqs-delivery-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_cli_sns_publish_verify_sqs_delivery_workflow.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.cli-sqs-set-queue-policy-workflow", "deployments": [], "key": "lambda__sns__sqs/cli-sqs-set-queue-policy-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_cli_sqs_set_queue_policy_workflow.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.dead-letter-topic-relays-the-original-event-with-lambda-error-attributes", "deployments": [], "key": "lambda__sns__sqs/dead-letter-topic-relays-the-original-event-with-lambda-error-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_dead_letter_topic_relays_the_original_event_with_lambda_error_attributes.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.dead-letter-topic-the-execution-role-cannot-publish-to-is-rejected", "deployments": [], "key": "lambda__sns__sqs/dead-letter-topic-the-execution-role-cannot-publish-to-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_dead_letter_topic_the_execution_role_cannot_publish_to_is_rejected.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.esm-creation-fails-for-nonexistent-queue-arn", "deployments": [], "key": "lambda__sns__sqs/esm-creation-fails-for-nonexistent-queue-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_esm_creation_fails_for_nonexistent_queue_arn.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.fanout-sns-multiple-sqs", "deployments": [], "key": "lambda__sns__sqs/fanout-sns-multiple-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_fanout_sns_multiple_sqs.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-lambda-principal", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-lambda-principal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_lambda_principal.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-lambda-service-assume", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-lambda-service-assume", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_lambda_service_assume.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-mismatched-principal-lambda-blocked", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-mismatched-principal-lambda-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_mismatched_principal_lambda_blocked.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-mismatched-principal-sns-blocked", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-mismatched-principal-sns-blocked", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DescribeLogStreams", "logs:GetLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_mismatched_principal_sns_blocked.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-mismatched-principal-sqs-blocked", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-mismatched-principal-sqs-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sqs:StartMessageMoveTask", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_mismatched_principal_sqs_blocked.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-sns-principal", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-sns-principal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_sns_principal.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-sns-service-assume", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-sns-service-assume", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_sns_service_assume.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-sqs-principal", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-sqs-principal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_sqs_principal.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-role-trust-sqs-service-assume", "deployments": [], "key": "lambda__sns__sqs/iam-role-trust-sqs-service-assume", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sqs:StartMessageMoveTask", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sns__sqs/check_iam_role_trust_sqs_service_assume.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-trust-lambda-missing-trust-statement-negative", "deployments": [], "key": "lambda__sns__sqs/iam-trust-lambda-missing-trust-statement-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke"], "path": "behavioral/lambda__sns__sqs/check_iam_trust_lambda_missing_trust_statement_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-trust-sns-wrong-principal-negative", "deployments": [], "key": "lambda__sns__sqs/iam-trust-sns-wrong-principal-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_iam_trust_sns_wrong_principal_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.iam-trust-sqs-wrong-principal-negative", "deployments": [], "key": "lambda__sns__sqs/iam-trust-sqs-wrong-principal-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_iam_trust_sqs_wrong_principal_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-change-message-visibility-sqs", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-change-message-visibility-sqs", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_change_message_visibility_sqs.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-delete-message-from-sqs", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-delete-message-from-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_delete_message_from_sqs.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-list-subscriptions-by-topic", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-list-subscriptions-by-topic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_list_subscriptions_by_topic.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-receive-message-from-sqs", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-receive-message-from-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_receive_message_from_sqs.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-receive-message-missing-permission-negative", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-receive-message-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_receive_message_missing_permission_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-receive-message-missing-permission-rejected", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-receive-message-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_receive_message_missing_permission_rejected.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-subscribe-missing-permission-negative", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-subscribe-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_subscribe_missing_permission_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-subscribe-missing-permission-rejected", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-subscribe-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_subscribe_missing_permission_rejected.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sdk-subscribe-to-sns-topic", "deployments": [], "key": "lambda__sns__sqs/lambda-sdk-subscribe-to-sns-topic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_lambda_sdk_subscribe_to_sns_topic.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sns-sdk-missing-permission", "deployments": [], "key": "lambda__sns__sqs/lambda-sns-sdk-missing-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_lambda_sns_sdk_missing_permission.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sns-sdk-publish", "deployments": [], "key": "lambda__sns__sqs/lambda-sns-sdk-publish", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_lambda_sns_sdk_publish.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sqs-sdk-missing-permission", "deployments": [], "key": "lambda__sns__sqs/lambda-sqs-sdk-missing-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_lambda_sqs_sdk_missing_permission.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.lambda-sqs-sdk-send-message", "deployments": [], "key": "lambda__sns__sqs/lambda-sqs-sdk-send-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_lambda_sqs_sdk_send_message.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.on-success-destination-topic-publishes-the-invocation-record-as-the-message", "deployments": [], "key": "lambda__sns__sqs/on-success-destination-topic-publishes-the-invocation-record-as-the-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_on_success_destination_topic_publishes_the_invocation_record_as_the_message.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.pipeline-sns-sqs-lambda", "deployments": [], "key": "lambda__sns__sqs/pipeline-sns-sqs-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_pipeline_sns_sqs_lambda.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.shared-state-sns-fanout-two-lambdas-ddb", "deployments": [], "key": "lambda__sns__sqs/shared-state-sns-fanout-two-lambdas-ddb", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/lambda__sns__sqs/check_shared_state_sns_fanout_two_lambdas_ddb.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-add-permission-source-arn-mismatch", "deployments": [], "key": "lambda__sns__sqs/sns-add-permission-source-arn-mismatch", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/lambda__sns__sqs/check_sns_add_permission_source_arn_mismatch.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-fifo-topic-to-sqs-fifo-delivers", "deployments": [], "key": "lambda__sns__sqs/sns-fifo-topic-to-sqs-fifo-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_fifo_topic_to_sqs_fifo_delivers.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-lambda-destination-onfailure-to-sqs", "deployments": [], "key": "lambda__sns__sqs/sns-lambda-destination-onfailure-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_lambda_destination_onfailure_to_sqs.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-lambda-dlq-on-invoke-failure", "deployments": [], "key": "lambda__sns__sqs/sns-lambda-dlq-on-invoke-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_lambda_dlq_on_invoke_failure.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-lambda-notification-message-attributes-filter", "deployments": [], "key": "lambda__sns__sqs/sns-lambda-notification-message-attributes-filter", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_sns_lambda_notification_message_attributes_filter.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-notification-config-lambda-destination-update", "deployments": [], "key": "lambda__sns__sqs/sns-notification-config-lambda-destination-update", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_sns_notification_config_lambda_destination_update.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-notification-config-sqs-destination-stale-arn-fails", "deployments": [], "key": "lambda__sns__sqs/sns-notification-config-sqs-destination-stale-arn-fails", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_notification_config_sqs_destination_stale_arn_fails.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-sqs-cross-account-missing-topic-policy-negative", "deployments": [], "key": "lambda__sns__sqs/sns-sqs-cross-account-missing-topic-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sns__sqs/check_sns_sqs_cross_account_missing_topic_policy_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-sqs-cross-account-topic-policy-delivers", "deployments": [], "key": "lambda__sns__sqs/sns-sqs-cross-account-topic-policy-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sns__sqs/check_sns_sqs_cross_account_topic_policy_delivers.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-sqs-fifo-missing-messagegroupid-negative", "deployments": [], "key": "lambda__sns__sqs/sns-sqs-fifo-missing-messagegroupid-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_sqs_fifo_missing_messagegroupid_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-to-lambda-missing-invoke-permission", "deployments": [], "key": "lambda__sns__sqs/sns-to-lambda-missing-invoke-permission", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/lambda__sns__sqs/check_sns_to_lambda_missing_invoke_permission.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-to-lambda-subscription-basic", "deployments": [], "key": "lambda__sns__sqs/sns-to-lambda-subscription-basic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/lambda__sns__sqs/check_sns_to_lambda_subscription_basic.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-to-sqs-filter-policy", "deployments": [], "key": "lambda__sns__sqs/sns-to-sqs-filter-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_to_sqs_filter_policy.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-to-sqs-missing-queue-policy", "deployments": [], "key": "lambda__sns__sqs/sns-to-sqs-missing-queue-policy", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_to_sqs_missing_queue_policy.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-to-sqs-raw-message-delivery", "deployments": [], "key": "lambda__sns__sqs/sns-to-sqs-raw-message-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_to_sqs_raw_message_delivery.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sns-to-sqs-subscription-basic", "deployments": [], "key": "lambda__sns__sqs/sns-to-sqs-subscription-basic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sns__sqs/check_sns_to_sqs_subscription_basic.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.snstrig-execution-role-without-sqs-grant-rejects-onfailure-destination", "deployments": [], "key": "lambda__sns__sqs/snstrig-execution-role-without-sqs-grant-rejects-onfailure-destination", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionEventInvokeConfig", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_snstrig_execution_role_without_sqs_grant_rejects_onfailure_destination.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.snstrig-lambda-async-retry-exhausted-onfailure-to-sqs", "deployments": [], "key": "lambda__sns__sqs/snstrig-lambda-async-retry-exhausted-onfailure-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionEventInvokeConfig", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_snstrig_lambda_async_retry_exhausted_onfailure_to_sqs.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.snstrig-publish-batch-invokes-the-function-once-per-matching-entry", "deployments": [], "key": "lambda__sns__sqs/snstrig-publish-batch-invokes-the-function-once-per-matching-entry", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "sns:CreateTopic", "sns:DeleteTopic", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sns__sqs/check_snstrig_publish_batch_invokes_the_function_once_per_matching_entry.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-batch-size-respected", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-batch-size-respected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_batch_size_respected.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-batch-window-respected", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-batch-window-respected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_batch_window_respected.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-disabled-mapping-no-invocation-blocked", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-disabled-mapping-no-invocation-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_disabled_mapping_no_invocation_blocked.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-disabled-no-invocation-negative", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-disabled-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_disabled_no_invocation_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-filter-criteria-delivers", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-filter-criteria-delivers", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_filter_criteria_delivers.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-filter-criteria-matches", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-filter-criteria-matches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_filter_criteria_matches.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-filter-criteria-suppresses-non-matching", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-filter-criteria-suppresses-non-matching", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_filter_criteria_suppresses_non_matching.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-maximum-concurrency-limits", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-maximum-concurrency-limits", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_maximum_concurrency_limits.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-partial-batch-failure-requeues", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-partial-batch-failure-requeues", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_partial_batch_failure_requeues.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-wrong-arn-mapping-fails", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-wrong-arn-mapping-fails", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_wrong_arn_mapping_fails.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-lambda-esm-wrong-queue-arn-negative", "deployments": [], "key": "lambda__sns__sqs/sqs-lambda-esm-wrong-queue-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_lambda_esm_wrong_queue_arn_negative.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-to-lambda-dlq-on-failure", "deployments": [], "key": "lambda__sns__sqs/sqs-to-lambda-dlq-on-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_to_lambda_dlq_on_failure.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-to-lambda-esm-basic", "deployments": [], "key": "lambda__sns__sqs/sqs-to-lambda-esm-basic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_to_lambda_esm_basic.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sns__sqs.sqs-to-lambda-esm-missing-permission", "deployments": [], "key": "lambda__sns__sqs/sqs-to-lambda-esm-missing-permission", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sns__sqs/check_sqs_to_lambda_esm_missing_permission.py", "service": "lambda__sns__sqs"} {"check_id": "lambda__sqs.alias-async-record-reports-the-alias-target-version-and-follows-a-repoint", "deployments": [], "key": "lambda__sqs/alias-async-record-reports-the-alias-target-version-and-follows-a-repoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateAlias", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_alias_async_record_reports_the_alias_target_version_and_follows_a_repoint.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.alias-event-invoke-config-overrides-the-unqualified-config-for-alias-invokes", "deployments": [], "key": "lambda__sqs/alias-event-invoke-config-overrides-the-unqualified-config-for-alias-invokes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteAlias", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_alias_event_invoke_config_overrides_the_unqualified_config_for_alias_invokes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.async-event-that-fails-once-then-succeeds-on-retry-is-recorded-on-success-only", "deployments": [], "key": "lambda__sqs/async-event-that-fails-once-then-succeeds-on-retry-is-recorded-on-success-only", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_async_event_that_fails_once_then_succeeds_on_retry_is_recorded_on_success_only.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.async-invoke-node-esm-handler-on-success-and-on-failure-destination-envelopes", "deployments": [], "key": "lambda__sqs/async-invoke-node-esm-handler-on-success-and-on-failure-destination-envelopes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_async_invoke_node_esm_handler_on_success_and_on_failure_destination_envelopes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.async-retry-budget-of-one-runs-the-handler-twice-and-reports-two-invokes", "deployments": [], "key": "lambda__sqs/async-retry-budget-of-one-runs-the-handler-twice-and-reports-two-invokes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_async_retry_budget_of_one_runs_the_handler_twice_and_reports_two_invokes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.async-retry-budget-of-two-yields-exactly-three-attempts", "deployments": [], "key": "lambda__sqs/async-retry-budget-of-two-yields-exactly-three-attempts", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_async_retry_budget_of_two_yields_exactly_three_attempts.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.async-timeout-is-a-function-error-recorded-on-failure-with-the-timeout-message", "deployments": [], "key": "lambda__sqs/async-timeout-is-a-function-error-recorded-on-failure-with-the-timeout-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_async_timeout_is_a_function_error_recorded_on_failure_with_the_timeout_message.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.batch-item-failures-ignored-without-functionresponsetypes", "deployments": [], "key": "lambda__sqs/batch-item-failures-ignored-without-functionresponsetypes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_batch_item_failures_ignored_without_functionresponsetypes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.dead-letter-error-message-attribute-keeps-only-the-first-kilobyte", "deployments": [], "key": "lambda__sqs/dead-letter-error-message-attribute-keeps-only-the-first-kilobyte", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_dead_letter_error_message_attribute_keeps_only_the_first_kilobyte.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.dead-letter-queue-and-on-failure-destination-both-receive-the-failed-event", "deployments": [], "key": "lambda__sqs/dead-letter-queue-and-on-failure-destination-both-receive-the-failed-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_dead_letter_queue_and_on_failure_destination_both_receive_the_failed_event.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.dead-letter-queue-receives-the-original-event-with-request-id-and-error-attributes", "deployments": [], "key": "lambda__sqs/dead-letter-queue-receives-the-original-event-with-request-id-and-error-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_dead_letter_queue_receives_the_original_event_with_request_id_and_error_attributes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.dead-letter-queue-the-execution-role-cannot-send-to-is-rejected", "deployments": [], "key": "lambda__sqs/dead-letter-queue-the-execution-role-cannot-send-to-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_dead_letter_queue_the_execution_role_cannot_send_to_is_rejected.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.dead-letter-queue-withholds-successful-and-synchronous-failures", "deployments": [], "key": "lambda__sqs/dead-letter-queue-withholds-successful-and-synchronous-failures", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_dead_letter_queue_withholds_successful_and_synchronous_failures.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.deleted-event-invoke-config-stops-destination-delivery-until-put-again", "deployments": [], "key": "lambda__sqs/deleted-event-invoke-config-stops-destination-delivery-until-put-again", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_deleted_event_invoke_config_stops_destination_delivery_until_put_again.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.destination-record-carries-non-object-request-and-response-payloads-verbatim", "deployments": [], "key": "lambda__sqs/destination-record-carries-non-object-request-and-response-payloads-verbatim", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_destination_record_carries_non_object_request_and_response_payloads_verbatim.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.dotnet-async-invoke-onsuccess-onfailure-destination-envelope", "deployments": [], "key": "lambda__sqs/dotnet-async-invoke-onsuccess-onfailure-destination-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_dotnet_async_invoke_onsuccess_onfailure_destination_envelope.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.dotnet-sqs-batch-item-failures-deletes-only-successes", "deployments": [], "key": "lambda__sqs/dotnet-sqs-batch-item-failures-deletes-only-successes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_dotnet_sqs_batch_item_failures_deletes_only_successes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.dry-run-invoke-produces-no-destination-record", "deployments": [], "key": "lambda__sqs/dry-run-invoke-produces-no-destination-record", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_dry_run_invoke_produces_no_destination_record.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.esm-disabled-not-invoked", "deployments": [], "key": "lambda__sqs/esm-disabled-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_esm_disabled_not_invoked.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.esm-filter-criteria-non-matching-not-invoked", "deployments": [], "key": "lambda__sqs/esm-filter-criteria-non-matching-not-invoked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_esm_filter_criteria_non_matching_not_invoked.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.function-destination-without-invoke-permission-is-rejected", "deployments": [], "key": "lambda__sqs/function-destination-without-invoke-permission-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_function_destination_without_invoke_permission_is_rejected.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.function-sdk-send-to-unpermitted-queue-denied-as-function-error", "deployments": [], "key": "lambda__sqs/function-sdk-send-to-unpermitted-queue-denied-as-function-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sqs/check_function_sdk_send_to_unpermitted_queue_denied_as_function_error.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.go-handler-async-invoke-destinations-route-onsuccess-and-onfailure", "deployments": [], "key": "lambda__sqs/go-handler-async-invoke-destinations-route-onsuccess-and-onfailure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_go_handler_async_invoke_destinations_route_onsuccess_and_onfailure.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.go-handler-sqs-batch-item-failures-deletes-only-the-successes", "deployments": [], "key": "lambda__sqs/go-handler-sqs-batch-item-failures-deletes-only-the-successes", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_go_handler_sqs_batch_item_failures_deletes_only_the_successes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.java-async-invoke-on-success-and-on-failure-destination-envelope", "deployments": [], "key": "lambda__sqs/java-async-invoke-on-success-and-on-failure-destination-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_java_async_invoke_on_success_and_on_failure_destination_envelope.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.java-sqs-esm-partial-batch-response-deletes-only-the-successful-records", "deployments": [], "key": "lambda__sqs/java-sqs-esm-partial-batch-response-deletes-only-the-successful-records", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_java_sqs_esm_partial_batch_response_deletes_only_the_successful_records.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.lambda-async-retry-exhausted-routes-to-onfailure-destination", "deployments": [], "key": "lambda__sqs/lambda-async-retry-exhausted-routes-to-onfailure-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_lambda_async_retry_exhausted_routes_to_onfailure_destination.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.maximum-event-age-discards-the-throttled-async-invocation-to-the-on-failure-destination", "deployments": [], "key": "lambda__sqs/maximum-event-age-discards-the-throttled-async-invocation-to-the-on-failure-destination", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConcurrency", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:Invoke", "lambda:PutFunctionConcurrency", "lambda:PutFunctionEventInvokeConfig", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_maximum_event_age_discards_the_throttled_async_invocation_to_the_on_failure_destination.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.on-success-destination-function-is-invoked-with-the-invocation-record", "deployments": [], "key": "lambda__sqs/on-success-destination-function-is-invoked-with-the-invocation-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_on_success_destination_function_is_invoked_with_the_invocation_record.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.published-version-failure-uses-its-publish-time-dead-letter-queue", "deployments": [], "key": "lambda__sqs/published-version-failure-uses-its-publish-time-dead-letter-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_published_version_failure_uses_its_publish_time_dead_letter_queue.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.published-version-without-its-own-event-invoke-config-gets-no-latest-destination", "deployments": [], "key": "lambda__sqs/published-version-without-its-own-event-invoke-config-gets-no-latest-destination", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_published_version_without_its_own_event_invoke_config_gets_no_latest_destination.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.put-event-invoke-config-without-destinations-clears-the-previous-ones", "deployments": [], "key": "lambda__sqs/put-event-invoke-config-without-destinations-clears-the-previous-ones", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_put_event_invoke_config_without_destinations_clears_the_previous_ones.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.ruby-async-invoke-onsuccess-and-onfailure-destination-envelope", "deployments": [], "key": "lambda__sqs/ruby-async-invoke-onsuccess-and-onfailure-destination-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:GetFunctionEventInvokeConfig", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_ruby_async_invoke_onsuccess_and_onfailure_destination_envelope.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.ruby-sqs-esm-partial-batch-response-deletes-only-successes", "deployments": [], "key": "lambda__sqs/ruby-sqs-esm-partial-batch-response-deletes-only-successes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_ruby_sqs_esm_partial_batch_response_deletes_only_successes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-delivers-each-record-byte-exact-with-its-message-attributes", "deployments": [], "key": "lambda__sqs/sqs-esm-delivers-each-record-byte-exact-with-its-message-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_esm_delivers_each_record_byte_exact_with_its_message_attributes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-fifo-batches-deliver-every-message-in-group-order-within-batch-size", "deployments": [], "key": "lambda__sqs/sqs-esm-fifo-batches-deliver-every-message-in-group-order-within-batch-size", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_esm_fifo_batches_deliver_every_message_in_group_order_within_batch_size.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-fifo-queue-rejects-maximum-batching-window-negative", "deployments": [], "key": "lambda__sqs/sqs-esm-fifo-queue-rejects-maximum-batching-window-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__sqs/check_sqs_esm_fifo_queue_rejects_maximum_batching_window_negative.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-filters-are-ored-and-numeric-and-case-exact", "deployments": [], "key": "lambda__sqs/sqs-esm-filters-are-ored-and-numeric-and-case-exact", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_esm_filters_are_ored_and_numeric_and_case_exact.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-message-attributes-keep-type-and-bytes", "deployments": [], "key": "lambda__sqs/sqs-esm-message-attributes-keep-type-and-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_esm_message_attributes_keep_type_and_bytes.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-on-a-function-alias-invokes-the-aliased-version-not-latest", "deployments": [], "key": "lambda__sqs/sqs-esm-on-a-function-alias-invokes-the-aliased-version-not-latest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:UpdateEventSourceMapping", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_esm_on_a_function_alias_invokes_the_aliased_version_not_latest.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-plain-string-body-filter-drops-non-matching-prefix", "deployments": [], "key": "lambda__sqs/sqs-esm-plain-string-body-filter-drops-non-matching-prefix", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_esm_plain_string_body_filter_drops_non_matching_prefix.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-record-envelope-matches-the-sent-message", "deployments": [], "key": "lambda__sqs/sqs-esm-record-envelope-matches-the-sent-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_esm_record_envelope_matches_the_sent_message.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-esm-redelivered-record-keeps-identity-and-first-receive-time", "deployments": [], "key": "lambda__sqs/sqs-esm-redelivered-record-keeps-identity-and-first-receive-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_esm_redelivered_record_keeps_identity_and_first_receive_time.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-fifo-esm-record-carries-group-dedup-and-sequence-number", "deployments": [], "key": "lambda__sqs/sqs-fifo-esm-record-carries-group-dedup-and-sequence-number", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_fifo_esm_record_carries_group_dedup_and_sequence_number.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.sqs-node-commonjs-handler-partial-batch-response-deletes-only-acknowledged-messages", "deployments": [], "key": "lambda__sqs/sqs-node-commonjs-handler-partial-batch-response-deletes-only-acknowledged-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/lambda__sqs/check_sqs_node_commonjs_handler_partial_batch_response_deletes_only_acknowledged_messages.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.update-event-invoke-config-redirects-on-success-and-keeps-on-failure", "deployments": [], "key": "lambda__sqs/update-event-invoke-config-redirects-on-success-and-keeps-on-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_update_event_invoke_config_redirects_on_success_and_keeps_on_failure.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.xsvc-lambda-3-async-onsuccess-destination-record-shape", "deployments": [], "key": "lambda__sqs/xsvc-lambda-3-async-onsuccess-destination-record-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PublishVersion", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_xsvc_lambda_3_async_onsuccess_destination_record_shape.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.xsvc-lambda-3-sync-invoke-produces-no-onsuccess-destination-record", "deployments": [], "key": "lambda__sqs/xsvc-lambda-3-sync-invoke-produces-no-onsuccess-destination-record", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_xsvc_lambda_3_sync_invoke_produces_no_onsuccess_destination_record.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs.zero-reserved-concurrency-sends-async-events-to-on-failure-without-running-them", "deployments": [], "key": "lambda__sqs/zero-reserved-concurrency-sends-async-events-to-on-failure-without-running-them", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:DeleteFunctionConcurrency", "lambda:DeleteFunctionEventInvokeConfig", "lambda:GetFunctionConfiguration", "lambda:Invoke", "lambda:PutFunctionConcurrency", "lambda:PutFunctionEventInvokeConfig", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs/check_zero_reserved_concurrency_sends_async_events_to_on_failure_without_running_them.py", "service": "lambda__sqs"} {"check_id": "lambda__sqs__stepfunctions.cfn-validate-sfn-lambda-sqs-stack", "deployments": ["behavioral/lambda__sqs__stepfunctions/deployments/sfn-lambda-sqs.yaml"], "key": "lambda__sqs__stepfunctions/cfn-validate-sfn-lambda-sqs-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/lambda__sqs__stepfunctions/check_cfn_validate_sfn_lambda_sqs_stack.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.cfn-validate-sfn-missing-lambda-permission", "deployments": ["behavioral/lambda__sqs__stepfunctions/deployments/sfn-lambda-sqs.yaml", "behavioral/lambda__sqs__stepfunctions/deployments/sfn-no-lambda-perm.yaml", "behavioral/lambda__sqs__stepfunctions/deployments/sqs-esm-lambda.yaml"], "key": "lambda__sqs__stepfunctions/cfn-validate-sfn-missing-lambda-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/lambda__sqs__stepfunctions/check_cfn_validate_sfn_missing_lambda_permission.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.cfn-validate-sqs-esm-lambda-stack", "deployments": ["behavioral/lambda__sqs__stepfunctions/deployments/sfn-lambda-sqs.yaml", "behavioral/lambda__sqs__stepfunctions/deployments/sfn-no-lambda-perm.yaml", "behavioral/lambda__sqs__stepfunctions/deployments/sqs-esm-lambda.yaml"], "key": "lambda__sqs__stepfunctions/cfn-validate-sqs-esm-lambda-stack", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:ValidateTemplate"], "path": "behavioral/lambda__sqs__stepfunctions/check_cfn_validate_sqs_esm_lambda_stack.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.cli-deploy-and-run-sfn-lambda-sqs-pipeline-e2e", "deployments": [], "key": "lambda__sqs__stepfunctions/cli-deploy-and-run-sfn-lambda-sqs-pipeline-e2e", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "lambda:GetFunction", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_cli_deploy_and_run_sfn_lambda_sqs_pipeline_e2e.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.cli-detach-lambda-invoke-policy-breaks-sfn-task-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/cli-detach-lambda-invoke-policy-breaks-sfn-task-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_cli_detach_lambda_invoke_policy_breaks_sfn_task_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.cli-purge-queue-then-esm-no-messages-processed-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/cli-purge-queue-then-esm-no-messages-processed-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_cli_purge_queue_then_esm_no_messages_processed_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.cli-recreate-queue-changes-arn-stale-esm-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/cli-recreate-queue-changes-arn-stale-esm-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_cli_recreate_queue_changes_arn_stale_esm_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.cli-send-task-token-success-via-cli-resumes-execution", "deployments": [], "key": "lambda__sqs__stepfunctions/cli-send-task-token-success-via-cli-resumes-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_cli_send_task_token_success_via_cli_resumes_execution.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.cli-update-event-source-mapping-batchsize-live", "deployments": [], "key": "lambda__sqs__stepfunctions/cli-update-event-source-mapping-batchsize-live", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch"], "path": "behavioral/lambda__sqs__stepfunctions/check_cli_update_event_source_mapping_batchsize_live.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.deploy-cdk-synth-express-workflow-lambda-sqs-stack", "deployments": [], "key": "lambda__sqs__stepfunctions/deploy-cdk-synth-express-workflow-lambda-sqs-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:ReceiveMessage", "stepfunctions:StartSyncExecution", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sqs__stepfunctions/check_deploy_cdk_synth_express_workflow_lambda_sqs_stack.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.deploy-lambda-esm-reportbatchitemfailures-enabled-stack", "deployments": [], "key": "lambda__sqs__stepfunctions/deploy-lambda-esm-reportbatchitemfailures-enabled-stack", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:CreateEventSourceMapping", "lambda:DeleteEventSourceMapping", "lambda:GetEventSourceMapping", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_deploy_lambda_esm_reportbatchitemfailures_enabled_stack.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.deploy-missing-lambda-invoke-permission-sfn-template-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/deploy-missing-lambda-invoke-permission-sfn-template-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DescribeLogStreams", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_deploy_missing_lambda_invoke_permission_sfn_template_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.deploy-missing-sqs-sendmessage-permission-template-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/deploy-missing-sqs-sendmessage-permission-template-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:ReceiveMessage", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_deploy_missing_sqs_sendmessage_permission_template_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.deploy-sfn-fifo-queue-integration-stack", "deployments": [], "key": "lambda__sqs__stepfunctions/deploy-sfn-fifo-queue-integration-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_deploy_sfn_fifo_queue_integration_stack.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.deploy-sfn-lambda-sqs-dlq-redrive-policy-stack", "deployments": [], "key": "lambda__sqs__stepfunctions/deploy-sfn-lambda-sqs-dlq-redrive-policy-stack", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "lambda:ListEventSourceMappings", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_deploy_sfn_lambda_sqs_dlq_redrive_policy_stack.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.deploy-stack-update-changes-timeoutseconds-behavior", "deployments": [], "key": "lambda__sqs__stepfunctions/deploy-stack-update-changes-timeoutseconds-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_deploy_stack_update_changes_timeoutseconds_behavior.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-describe-sfn-execution-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-describe-sfn-execution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_describe_sfn_execution_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-invokes-sfn-and-polls-execution-status-until-complete", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-invokes-sfn-and-polls-execution-status-until-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_invokes_sfn_and_polls_execution_status_until_complete.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-list-sfn-executions-missing-permission-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-list-sfn-executions-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_list_sfn_executions_missing_permission_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-send-sqs-message-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-send-sqs-message-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_send_sqs_message_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-send-sqs-missing-permission-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-send-sqs-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_send_sqs_missing_permission_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-sfn-list-executions-filtered-by-status", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-sfn-list-executions-filtered-by-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_sfn_list_executions_filtered_by_status.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-sfn-start-execution-idempotency", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-sfn-start-execution-idempotency", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_sfn_start_execution_idempotency.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-sfn-stopexecution-halts-running-workflow", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-sfn-stopexecution-halts-running-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_sfn_stopexecution_halts_running_workflow.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-sfn-stopexecution-missing-permission-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-sfn-stopexecution-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_sfn_stopexecution_missing_permission_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-sqs-send-invalid-queue-url-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-sqs-send-invalid-queue-url-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_sqs_send_invalid_queue_url_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-start-sfn-execution-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-start-sfn-execution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_start_sfn_execution_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.lambda-start-sfn-missing-permission-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/lambda-start-sfn-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions"], "path": "behavioral/lambda__sqs__stepfunctions/check_lambda_start_sfn_missing_permission_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-catch-lambda-error-to-sqs", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-catch-lambda-error-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_catch_lambda_error_to_sqs.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-choice-state-routes-lambda-output-to-sqs-queue-selection", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-choice-state-routes-lambda-output-to-sqs-queue-selection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_choice_state_routes_lambda_output_to_sqs_queue_selection.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-invoke-lambda-missing-permission-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-invoke-lambda-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_invoke_lambda_missing_permission_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-invoke-lambda-task-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-invoke-lambda-task-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_invoke_lambda_task_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-lambda-arn-in-definition-exact-match", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-lambda-arn-in-definition-exact-match", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_lambda_arn_in_definition_exact_match.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-lambda-invoke-payload-too-large-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-lambda-invoke-payload-too-large-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_lambda_invoke_payload_too_large_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-lambda-retry-backoff-then-catch-to-sqs", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-lambda-retry-backoff-then-catch-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_lambda_retry_backoff_then_catch_to_sqs.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-lambda-sqs-pipeline-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-lambda-sqs-pipeline-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_lambda_sqs_pipeline_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-lambda-task-event-invocation-returns-202-and-the-function-delivers-to-sqs", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-lambda-task-event-invocation-returns-202-and-the-function-delivers-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_lambda_task_event_invocation_returns_202_and_the_function_delivers_to_sqs.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-lambda-task-result-path-merges-the-computed-total-into-the-input", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-lambda-task-result-path-merges-the-computed-total-into-the-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_lambda_task_result_path_merges_the_computed_total_into_the_input.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-lambda-task-timeoutseconds-triggers-retry", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-lambda-task-timeoutseconds-triggers-retry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_lambda_task_timeoutseconds_triggers_retry.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-lambda-wait-for-task-token-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-lambda-wait-for-task-token-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_lambda_wait_for_task_token_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-map-state-itembatcher-lambda-sqs-fanout", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-map-state-itembatcher-lambda-sqs-fanout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_map_state_itembatcher_lambda_sqs_fanout.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-map-state-lambda-concurrency", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-map-state-lambda-concurrency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_map_state_lambda_concurrency.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-parallel-branch-failure-negative-no-partial-sqs-delivery", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-parallel-branch-failure-negative-no-partial-sqs-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_parallel_branch_failure_negative_no_partial_sqs_delivery.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-parallel-lambda-sqs-branches", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-parallel-lambda-sqs-branches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_parallel_lambda_sqs_branches.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-send-sqs-missing-permission-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-send-sqs-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_send_sqs_missing_permission_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-send-sqs-task-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-send-sqs-task-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_send_sqs_task_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-changemessagevisibility-task-extends-timeout", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-changemessagevisibility-task-extends-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_changemessagevisibility_task_extends_timeout.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-delete-message-task-removes-from-queue", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-delete-message-task-removes-from-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_delete_message_task_removes_from_queue.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-fifo-messagegroupid-from-input-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-fifo-messagegroupid-from-input-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_fifo_messagegroupid_from_input_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-fifo-missing-messagegroupid-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-fifo-missing-messagegroupid-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_fifo_missing_messagegroupid_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-message-attributes-passed-through-task-parameters", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-message-attributes-passed-through-task-parameters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_message_attributes_passed_through_task_parameters.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-send-message-wait-for-task-token-missing-perm-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-send-message-wait-for-task-token-missing-perm-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_send_message_wait_for_task_token_missing_perm_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-sendmessagebatch-task-delivers-multiple", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-sendmessagebatch-task-delivers-multiple", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_sendmessagebatch_task_delivers_multiple.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-task-wrong-queueurl-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-task-wrong-queueurl-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_task_wrong_queueurl_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-sqs-waitfortasktoken-heartbeat-timeout-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-sqs-waitfortasktoken-heartbeat-timeout-negative", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_sqs_waitfortasktoken_heartbeat_timeout_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-task-token-duplicate-sendtasksuccess-rejected-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-task-token-duplicate-sendtasksuccess-rejected-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_task_token_duplicate_sendtasksuccess_rejected_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-task-token-heartbeat-timeout-fails-execution", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-task-token-heartbeat-timeout-fails-execution", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_task_token_heartbeat_timeout_fails_execution.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-task-token-invalid-token-sendtasksuccess-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-task-token-invalid-token-sendtasksuccess-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_task_token_invalid_token_sendtasksuccess_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-task-token-sendtaskfailure-from-lambda-propagates-error", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-task-token-sendtaskfailure-from-lambda-propagates-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_task_token_sendtaskfailure_from_lambda_propagates_error.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-task-token-sendtaskheartbeat-keeps-execution-alive", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-task-token-sendtaskheartbeat-keeps-execution-alive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_task_token_sendtaskheartbeat_keeps_execution_alive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sfn-wait-for-task-token-lambda-resumes", "deployments": [], "key": "lambda__sqs__stepfunctions/sfn-wait-for-task-token-lambda-resumes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__sqs__stepfunctions/check_sfn_wait_for_task_token_lambda_resumes.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-batch-size-respected", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-batch-size-respected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_batch_size_respected.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-concurrent-batches-scale-with-queue-depth", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-concurrent-batches-scale-with-queue-depth", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_concurrent_batches_scale_with_queue_depth.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-disabled-mapping-no-invocation-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-disabled-mapping-no-invocation-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_disabled_mapping_no_invocation_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-dlq-on-lambda-failure-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-dlq-on-lambda-failure-positive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_dlq_on_lambda_failure_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-fifo-duplicate-message-not-redelivered-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-fifo-duplicate-message-not-redelivered-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_fifo_duplicate_message_not_redelivered_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-fifo-queue-message-group-ordering-preserved", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-fifo-queue-message-group-ordering-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_fifo_queue_message_group_ordering_preserved.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-filter-policy-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-filter-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_filter_policy_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-lambda-trigger-positive", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-lambda-trigger-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_lambda_trigger_positive.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-maximum-batching-window-respected", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-maximum-batching-window-respected", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_maximum_batching_window_respected.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-message-attributes-preserved", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-message-attributes-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_message_attributes_preserved.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-mismatched-queue-arn-not-triggered-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-mismatched-queue-arn-not-triggered-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_mismatched_queue_arn_not_triggered_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-missing-receive-permission-negative", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-missing-receive-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "lambda:ListEventSourceMappings", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_missing_receive_permission_negative.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-report-batch-item-failures-partial-retry", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-report-batch-item-failures-partial-retry", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "lambda:UpdateEventSourceMapping", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_report_batch_item_failures_partial_retry.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-visibility-timeout-extended-during-processing", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-visibility-timeout-extended-during-processing", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunction", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_visibility_timeout_extended_during_processing.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__stepfunctions.sqs-esm-visibility-timeout-respected", "deployments": [], "key": "lambda__sqs__stepfunctions/sqs-esm-visibility-timeout-respected", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/lambda__sqs__stepfunctions/check_sqs_esm_visibility_timeout_respected.py", "service": "lambda__sqs__stepfunctions"} {"check_id": "lambda__sqs__xray.sqs-delivered-invocation-trace-links-back-to-the-messages-trace-header", "deployments": [], "key": "lambda__sqs__xray/sqs-delivered-invocation-trace-links-back-to-the-messages-trace-header", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateEventSourceMapping", "lambda:CreateFunction", "lambda:DeleteEventSourceMapping", "lambda:DeleteFunction", "lambda:GetEventSourceMapping", "lambda:GetFunctionConfiguration", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "xray:BatchGetTraces", "xray:GetTraceSummaries"], "path": "behavioral/lambda__sqs__xray/check_sqs_delivered_invocation_trace_links_back_to_the_messages_trace_header.py", "service": "lambda__sqs__xray"} {"check_id": "lambda__stepfunctions.express-sync-execution-lambda-task-wraps-payload-like-standard", "deployments": [], "key": "lambda__stepfunctions/express-sync-execution-lambda-task-wraps-payload-like-standard", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution"], "path": "behavioral/lambda__stepfunctions/check_express_sync_execution_lambda_task_wraps_payload_like_standard.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.express-sync-execution-retry-and-catch-match-standards-shapes", "deployments": [], "key": "lambda__stepfunctions/express-sync-execution-retry-and-catch-match-standards-shapes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/lambda__stepfunctions/check_express_sync_execution_retry_and_catch_match_standards_shapes.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.inputpath-null-empty-effective-input-pass-lambda-activity", "deployments": [], "key": "lambda__stepfunctions/inputpath-null-empty-effective-input-pass-lambda-activity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__stepfunctions/check_inputpath_null_empty_effective_input_pass_lambda_activity.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.lambda-direct-arn-resource-unwraps-payload-while-invoke-integration-wraps-it", "deployments": [], "key": "lambda__stepfunctions/lambda-direct-arn-resource-unwraps-payload-while-invoke-integration-wraps-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateAlias", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:PublishVersion", "lambda:UpdateFunctionCode", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__stepfunctions/check_lambda_direct_arn_resource_unwraps_payload_while_invoke_integration_wraps_it.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.lambda-invoke-error-payload-missing-error-type-fails-lambda-unknown", "deployments": [], "key": "lambda__stepfunctions/lambda-invoke-error-payload-missing-error-type-fails-lambda-unknown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__stepfunctions/check_lambda_invoke_error_payload_missing_error_type_fails_lambda_unknown.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.lambda-invoke-retry-error-name-mismatch-not-retried", "deployments": [], "key": "lambda__stepfunctions/lambda-invoke-retry-error-name-mismatch-not-retried", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__stepfunctions/check_lambda_invoke_retry_error_name_mismatch_not_retried.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.lambda-invoke-retry-full-jitter-caps-scheduled-gaps", "deployments": [], "key": "lambda__stepfunctions/lambda-invoke-retry-full-jitter-caps-scheduled-gaps", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__stepfunctions/check_lambda_invoke_retry_full_jitter_caps_scheduled_gaps.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.lambda-sendtaskfailure-error-cause-length-limits", "deployments": [], "key": "lambda__stepfunctions/lambda-sendtaskfailure-error-cause-length-limits", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__stepfunctions/check_lambda_sendtaskfailure_error_cause_length_limits.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.lambda-task-credentials-rolearn-overrides-the-execution-role", "deployments": [], "key": "lambda__stepfunctions/lambda-task-credentials-rolearn-overrides-the-execution-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__stepfunctions/check_lambda_task_credentials_rolearn_overrides_the_execution_role.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.lambda-waitfortasktoken-heartbeat-timeout-history-event", "deployments": [], "key": "lambda__stepfunctions/lambda-waitfortasktoken-heartbeat-timeout-history-event", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/lambda__stepfunctions/check_lambda_waitfortasktoken_heartbeat_timeout_history_event.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.outputpath-null-empty-output-pass-lambda-activity", "deployments": [], "key": "lambda__stepfunctions/outputpath-null-empty-output-pass-lambda-activity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__stepfunctions/check_outputpath_null_empty_output_pass_lambda_activity.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.oversized-lambda-error-cause-truncated-name-still-caught", "deployments": [], "key": "lambda__stepfunctions/oversized-lambda-error-cause-truncated-name-still-caught", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__stepfunctions/check_oversized_lambda_error_cause_truncated_name_still_caught.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.parameters-injected-payload-over-the-state-quota-rejected-before-the-task-runs", "deployments": [], "key": "lambda__stepfunctions/parameters-injected-payload-over-the-state-quota-rejected-before-the-task-runs", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/lambda__stepfunctions/check_parameters_injected_payload_over_the_state_quota_rejected_before_the_task_runs.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.resultselector-path-missing-field-states-runtime", "deployments": [], "key": "lambda__stepfunctions/resultselector-path-missing-field-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/lambda__stepfunctions/check_resultselector_path_missing_field_states_runtime.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.task-credentials-dynamic-rolearn-on-legacy-lambda-arn-task-assumes-task-role", "deployments": [], "key": "lambda__stepfunctions/task-credentials-dynamic-rolearn-on-legacy-lambda-arn-task-assumes-task-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/lambda__stepfunctions/check_task_credentials_dynamic_rolearn_on_legacy_lambda_arn_task_assumes_task_role.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.task-credentials-external-id-default-and-custom-match-succeed", "deployments": [], "key": "lambda__stepfunctions/task-credentials-external-id-default-and-custom-match-succeed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/lambda__stepfunctions/check_task_credentials_external_id_default_and_custom_match_succeed.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.task-credentials-external-id-mismatch-and-too-short-rejected", "deployments": [], "key": "lambda__stepfunctions/task-credentials-external-id-mismatch-and-too-short-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/lambda__stepfunctions/check_task_credentials_external_id_mismatch_and_too_short_rejected.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.task-credentials-role-trust-excluding-execution-role-fails-task", "deployments": [], "key": "lambda__stepfunctions/task-credentials-role-trust-excluding-execution-role-fails-task", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__stepfunctions/check_task_credentials_role_trust_excluding_execution_role_fails_task.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.task-credentials-role-without-invoke-permission-denied", "deployments": [], "key": "lambda__stepfunctions/task-credentials-role-without-invoke-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/lambda__stepfunctions/check_task_credentials_role_without_invoke_permission_denied.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.task-token-heartbeat-timeout-catcher-order-decides-winner", "deployments": [], "key": "lambda__stepfunctions/task-token-heartbeat-timeout-catcher-order-decides-winner", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__stepfunctions/check_task_token_heartbeat_timeout_catcher_order_decides_winner.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.task-token-timeoutseconds-not-caught-by-heartbeat-timeout-catcher", "deployments": [], "key": "lambda__stepfunctions/task-token-timeoutseconds-not-caught-by-heartbeat-timeout-catcher", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/lambda__stepfunctions/check_task_token_timeoutseconds_not_caught_by_heartbeat_timeout_catcher.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions.wait-secondspath-timestamppath-on-null-lambda-payload-fails-at-runtime", "deployments": [], "key": "lambda__stepfunctions/wait-secondspath-timestamppath-on-null-lambda-payload-fails-at-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/lambda__stepfunctions/check_wait_secondspath_timestamppath_on_null_lambda_payload_fails_at_runtime.py", "service": "lambda__stepfunctions"} {"check_id": "lambda__stepfunctions__xray.xray-segment-tree-marks-map-and-parallel-cancellation-and-a-stopped-executions-fault", "deployments": [], "key": "lambda__stepfunctions__xray/xray-segment-tree-marks-map-and-parallel-cancellation-and-a-stopped-executions-fault", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "xray:BatchGetTraces"], "path": "behavioral/lambda__stepfunctions__xray/check_xray_segment_tree_marks_map_and_parallel_cancellation_and_a_stopped_executions_fault.py", "service": "lambda__stepfunctions__xray"} {"check_id": "lambda__stepfunctions__xray.xray-segment-tree-reflects-choice-path-lambda-status-and-retry-attempts", "deployments": [], "key": "lambda__stepfunctions__xray/xray-segment-tree-reflects-choice-path-lambda-status-and-retry-attempts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "xray:BatchGetTraces"], "path": "behavioral/lambda__stepfunctions__xray/check_xray_segment_tree_reflects_choice_path_lambda_status_and_retry_attempts.py", "service": "lambda__stepfunctions__xray"} {"check_id": "lambda__swf.schedule-lambda-function-without-role-rejected", "deployments": [], "key": "lambda__swf/schedule-lambda-function-without-role-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/lambda__swf/check_schedule_lambda_function_without_role_rejected.py", "service": "lambda__swf"} {"check_id": "lambda__vpc-lattice.auth-policy-deny-overrides-a-working-in-vpc-invoke", "deployments": [], "key": "lambda__vpc-lattice/auth-policy-deny-overrides-a-working-in-vpc-invoke", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "vpc-lattice:CreateListener", "vpc-lattice:CreateService", "vpc-lattice:CreateServiceNetwork", "vpc-lattice:CreateServiceNetworkServiceAssociation", "vpc-lattice:CreateServiceNetworkVpcAssociation", "vpc-lattice:CreateTargetGroup", "vpc-lattice:DeleteAuthPolicy", "vpc-lattice:DeleteListener", "vpc-lattice:DeleteService", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:DeleteServiceNetworkServiceAssociation", "vpc-lattice:DeleteServiceNetworkVpcAssociation", "vpc-lattice:DeleteTargetGroup", "vpc-lattice:DeregisterTargets", "vpc-lattice:GetService", "vpc-lattice:GetServiceNetworkServiceAssociation", "vpc-lattice:GetServiceNetworkVpcAssociation", "vpc-lattice:GetTargetGroup", "vpc-lattice:PutAuthPolicy", "vpc-lattice:RegisterTargets"], "path": "behavioral/lambda__vpc-lattice/check_auth_policy_deny_overrides_a_working_in_vpc_invoke.py", "service": "lambda__vpc-lattice"} {"check_id": "lambda__vpc-lattice.in-vpc-http-get-through-service-network-reaches-lambda-target", "deployments": [], "key": "lambda__vpc-lattice/in-vpc-http-get-through-service-network-reaches-lambda-target", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "vpc-lattice:CreateListener", "vpc-lattice:CreateService", "vpc-lattice:CreateServiceNetwork", "vpc-lattice:CreateServiceNetworkServiceAssociation", "vpc-lattice:CreateServiceNetworkVpcAssociation", "vpc-lattice:CreateTargetGroup", "vpc-lattice:DeleteListener", "vpc-lattice:DeleteService", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:DeleteServiceNetworkServiceAssociation", "vpc-lattice:DeleteServiceNetworkVpcAssociation", "vpc-lattice:DeleteTargetGroup", "vpc-lattice:DeregisterTargets", "vpc-lattice:GetService", "vpc-lattice:GetServiceNetworkServiceAssociation", "vpc-lattice:GetServiceNetworkVpcAssociation", "vpc-lattice:GetTargetGroup", "vpc-lattice:RegisterTargets"], "path": "behavioral/lambda__vpc-lattice/check_in_vpc_http_get_through_service_network_reaches_lambda_target.py", "service": "lambda__vpc-lattice"} {"check_id": "lambda__xray.active-tracing-records-distinct-aws-lambda-and-aws-lambda-function-segments", "deployments": [], "key": "lambda__xray/active-tracing-records-distinct-aws-lambda-and-aws-lambda-function-segments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "xray:BatchGetTraces", "xray:GetTraceSummaries"], "path": "behavioral/lambda__xray/check_active_tracing_records_distinct_aws_lambda_and_aws_lambda_function_segments.py", "service": "lambda__xray"} {"check_id": "lambda__xray.async-invoke-trace-header-continues-the-callers-chosen-trace", "deployments": [], "key": "lambda__xray/async-invoke-trace-header-continues-the-callers-chosen-trace", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "xray:BatchGetTraces"], "path": "behavioral/lambda__xray/check_async_invoke_trace_header_continues_the_callers_chosen_trace.py", "service": "lambda__xray"} {"check_id": "lambda__xray.lambda-udp-daemon-datagram-reaches-trace-store", "deployments": [], "key": "lambda__xray/lambda-udp-daemon-datagram-reaches-trace-store", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "xray:BatchGetTraces", "xray:GetTraceSummaries"], "path": "behavioral/lambda__xray/check_lambda_udp_daemon_datagram_reaches_trace_store.py", "service": "lambda__xray"} {"check_id": "lambda__xray.lambda-udp-daemon-malformed-framing-datagram-rejected", "deployments": [], "key": "lambda__xray/lambda-udp-daemon-malformed-framing-datagram-rejected", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "xray:BatchGetTraces", "xray:GetTraceSummaries"], "path": "behavioral/lambda__xray/check_lambda_udp_daemon_malformed_framing_datagram_rejected.py", "service": "lambda__xray"} {"check_id": "lambda__xray.tracing-config-active-produces-a-trace-passthrough-produces-none", "deployments": [], "key": "lambda__xray/tracing-config-active-produces-a-trace-passthrough-produces-none", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "xray:BatchGetTraces", "xray:GetTraceSummaries"], "path": "behavioral/lambda__xray/check_tracing_config_active_produces_a_trace_passthrough_produces_none.py", "service": "lambda__xray"} {"check_id": "launch-wizard.concurrent-create-deployment-invalid-workload-all-rejected", "deployments": [], "key": "launch-wizard/concurrent-create-deployment-invalid-workload-all-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:CreateDeployment", "launch-wizard:ListDeployments", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_concurrent_create_deployment_invalid_workload_all_rejected.py", "service": "launch-wizard"} {"check_id": "launch-wizard.create-deployment-invalid-specifications-map-rejected", "deployments": [], "key": "launch-wizard/create-deployment-invalid-specifications-map-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:CreateDeployment", "launch-wizard:GetWorkloadDeploymentPattern", "launch-wizard:ListDeployments", "launch-wizard:ListWorkloadDeploymentPatterns", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_create_deployment_invalid_specifications_map_rejected.py", "service": "launch-wizard"} {"check_id": "launch-wizard.deploy-create-deployment-unknown-workload-not-found", "deployments": [], "key": "launch-wizard/deploy-create-deployment-unknown-workload-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:CreateDeployment", "launch-wizard:ListDeployments", "launch-wizard:ListWorkloadDeploymentPatterns", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_deploy_create_deployment_unknown_workload_not_found.py", "service": "launch-wizard"} {"check_id": "launch-wizard.e2e-workload-discovery-to-deployment-attempt-workflow", "deployments": [], "key": "launch-wizard/e2e-workload-discovery-to-deployment-attempt-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["launch-wizard:CreateDeployment", "launch-wizard:GetDeploymentPatternVersion", "launch-wizard:GetWorkload", "launch-wizard:GetWorkloadDeploymentPattern", "launch-wizard:ListDeploymentPatternVersions", "launch-wizard:ListDeployments", "launch-wizard:ListWorkloadDeploymentPatterns", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_e2e_workload_discovery_to_deployment_attempt_workflow.py", "service": "launch-wizard"} {"check_id": "launch-wizard.get-deployment-nonexistent-id-not-found", "deployments": [], "key": "launch-wizard/get-deployment-nonexistent-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:GetDeployment", "launch-wizard:ListDeployments"], "path": "behavioral/launch-wizard/check_get_deployment_nonexistent_id_not_found.py", "service": "launch-wizard"} {"check_id": "launch-wizard.get-workload-deployment-pattern-returns-specification-schema", "deployments": [], "key": "launch-wizard/get-workload-deployment-pattern-returns-specification-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["launch-wizard:GetWorkloadDeploymentPattern", "launch-wizard:ListWorkloadDeploymentPatterns", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_get_workload_deployment_pattern_returns_specification_schema.py", "service": "launch-wizard"} {"check_id": "launch-wizard.get-workload-invalid-name-pattern-rejected", "deployments": [], "key": "launch-wizard/get-workload-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:GetWorkload", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_get_workload_invalid_name_pattern_rejected.py", "service": "launch-wizard"} {"check_id": "launch-wizard.get-workload-matches-listed-workload", "deployments": [], "key": "launch-wizard/get-workload-matches-listed-workload", "labels": ["axis:happy-path", "plane:control"], "operations": ["launch-wizard:GetWorkload", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_get_workload_matches_listed_workload.py", "service": "launch-wizard"} {"check_id": "launch-wizard.get-workload-unknown-name-not-found", "deployments": [], "key": "launch-wizard/get-workload-unknown-name-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:GetWorkload", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_get_workload_unknown_name_not_found.py", "service": "launch-wizard"} {"check_id": "launch-wizard.list-deployments-filter-by-invalid-status-rejected", "deployments": [], "key": "launch-wizard/list-deployments-filter-by-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:ListDeployments"], "path": "behavioral/launch-wizard/check_list_deployments_filter_by_invalid_status_rejected.py", "service": "launch-wizard"} {"check_id": "launch-wizard.list-deployments-filter-by-workload-name-no-match-returns-empty", "deployments": [], "key": "launch-wizard/list-deployments-filter-by-workload-name-no-match-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["launch-wizard:ListDeployments"], "path": "behavioral/launch-wizard/check_list_deployments_filter_by_workload_name_no_match_returns_empty.py", "service": "launch-wizard"} {"check_id": "launch-wizard.list-deployments-max-results-out-of-range-rejected", "deployments": [], "key": "launch-wizard/list-deployments-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:ListDeployments"], "path": "behavioral/launch-wizard/check_list_deployments_max_results_out_of_range_rejected.py", "service": "launch-wizard"} {"check_id": "launch-wizard.list-tags-for-resource-nonexistent-arn-not-found", "deployments": [], "key": "launch-wizard/list-tags-for-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:ListTagsForResource", "launch-wizard:ListWorkloads", "sts:GetCallerIdentity"], "path": "behavioral/launch-wizard/check_list_tags_for_resource_nonexistent_arn_not_found.py", "service": "launch-wizard"} {"check_id": "launch-wizard.list-workload-deployment-patterns-for-known-workload", "deployments": [], "key": "launch-wizard/list-workload-deployment-patterns-for-known-workload", "labels": ["axis:happy-path", "plane:control"], "operations": ["launch-wizard:ListWorkloadDeploymentPatterns", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_list_workload_deployment_patterns_for_known_workload.py", "service": "launch-wizard"} {"check_id": "launch-wizard.list-workload-deployment-patterns-matches-get-workload-deployment-pattern", "deployments": [], "key": "launch-wizard/list-workload-deployment-patterns-matches-get-workload-deployment-pattern", "labels": ["axis:happy-path", "plane:control"], "operations": ["launch-wizard:GetWorkloadDeploymentPattern", "launch-wizard:ListWorkloadDeploymentPatterns", "launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_list_workload_deployment_patterns_matches_get_workload_deployment_pattern.py", "service": "launch-wizard"} {"check_id": "launch-wizard.list-workloads-includes-known-workload", "deployments": [], "key": "launch-wizard/list-workloads-includes-known-workload", "labels": ["axis:happy-path", "plane:control"], "operations": ["launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_list_workloads_includes_known_workload.py", "service": "launch-wizard"} {"check_id": "launch-wizard.representation-list-workloads-nexttoken-opaque-round-trip", "deployments": [], "key": "launch-wizard/representation-list-workloads-nexttoken-opaque-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["launch-wizard:ListWorkloads"], "path": "behavioral/launch-wizard/check_representation_list_workloads_nexttoken_opaque_round_trip.py", "service": "launch-wizard"} {"check_id": "launch-wizard.tag-resource-exceeds-max-tags-rejected", "deployments": [], "key": "launch-wizard/tag-resource-exceeds-max-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/launch-wizard/check_tag_resource_exceeds_max_tags_rejected.py", "service": "launch-wizard"} {"check_id": "launch-wizard.untag-resource-exceeds-max-tagkeys-rejected", "deployments": [], "key": "launch-wizard/untag-resource-exceeds-max-tagkeys-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["launch-wizard:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/launch-wizard/check_untag_resource_exceeds_max_tagkeys_rejected.py", "service": "launch-wizard"} {"check_id": "lexv2-models.bot-locale-build-transitions-to-built", "deployments": [], "key": "lexv2-models/bot-locale-build-transitions-to-built", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:UpdateIntent"], "path": "behavioral/lexv2-models/check_bot_locale_build_transitions_to_built.py", "service": "lexv2-models"} {"check_id": "lexv2-models.bot-locale-export-download-serves-created-content", "deployments": [], "key": "lexv2-models/bot-locale-export-download-serves-created-content", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateExport", "lexv2-models:CreateIntent", "lexv2-models:DeleteBot", "lexv2-models:DeleteExport", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:DescribeExport"], "path": "behavioral/lexv2-models/check_bot_locale_export_download_serves_created_content.py", "service": "lexv2-models"} {"check_id": "lexv2-models.bot-version-snapshots-draft-intent", "deployments": [], "key": "lexv2-models/bot-version-snapshots-draft-intent", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateBotVersion", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:DescribeBotVersion", "lexv2-models:DescribeIntent", "lexv2-models:ListBotVersions", "lexv2-models:UpdateIntent"], "path": "behavioral/lexv2-models/check_bot_version_snapshots_draft_intent.py", "service": "lexv2-models"} {"check_id": "lexv2-models.build-rejects-locale-with-no-utterances", "deployments": [], "key": "lexv2-models/build-rejects-locale-with-no-utterances", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:DescribeIntent", "lexv2-models:UpdateIntent"], "path": "behavioral/lexv2-models/check_build_rejects_locale_with_no_utterances.py", "service": "lexv2-models"} {"check_id": "lexv2-models.build-rejects-required-slot-without-priority", "deployments": [], "key": "lexv2-models/build-rejects-required-slot-without-priority", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:DescribeIntent", "lexv2-models:UpdateIntent"], "path": "behavioral/lexv2-models/check_build_rejects_required_slot_without_priority.py", "service": "lexv2-models"} {"check_id": "lexv2-models.create-export-rejects-locale-of-nonexistent-bot", "deployments": [], "key": "lexv2-models/create-export-rejects-locale-of-nonexistent-bot", "labels": ["axis:rejection", "plane:control"], "operations": ["lexv2-models:CreateExport", "lexv2-models:ListExports"], "path": "behavioral/lexv2-models/check_create_export_rejects_locale_of_nonexistent_bot.py", "service": "lexv2-models"} {"check_id": "lexv2-models.create-slot-rejects-unknown-slot-type", "deployments": [], "key": "lexv2-models/create-slot-rejects-unknown-slot-type", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:DescribeSlot", "lexv2-models:ListSlots"], "path": "behavioral/lexv2-models/check_create_slot_rejects_unknown_slot_type.py", "service": "lexv2-models"} {"check_id": "lexv2-models.create-slot-type-rejects-duplicate-name", "deployments": [], "key": "lexv2-models/create-slot-type-rejects-duplicate-name", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:DescribeSlotType", "lexv2-models:ListSlotTypes"], "path": "behavioral/lexv2-models/check_create_slot_type_rejects_duplicate_name.py", "service": "lexv2-models"} {"check_id": "lexv2-models.delete-bot-locale-cascades-to-intents", "deployments": [], "key": "lexv2-models/delete-bot-locale-cascades-to-intents", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DeleteBotLocale", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:DescribeIntent", "lexv2-models:DescribeSlotType"], "path": "behavioral/lexv2-models/check_delete_bot_locale_cascades_to_intents.py", "service": "lexv2-models"} {"check_id": "lexv2-models__lexv2-runtime.recognize-text-elicits-then-resolves-slot-synonym", "deployments": [], "key": "lexv2-models__lexv2-runtime/recognize-text-elicits-then-resolves-slot-synonym", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:DeleteSession", "lexv2-runtime:GetSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-models__lexv2-runtime/check_recognize_text_elicits_then_resolves_slot_synonym.py", "service": "lexv2-models__lexv2-runtime"} {"check_id": "lexv2-models__lexv2-runtime.recognize-text-fills-slot-from-utterance", "deployments": [], "key": "lexv2-models__lexv2-runtime/recognize-text-fills-slot-from-utterance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:GetSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-models__lexv2-runtime/check_recognize_text_fills_slot_from_utterance.py", "service": "lexv2-models__lexv2-runtime"} {"check_id": "lexv2-models__lexv2-runtime.recognize-text-rejects-out-of-vocabulary-slot-value", "deployments": [], "key": "lexv2-models__lexv2-runtime/recognize-text-rejects-out-of-vocabulary-slot-value", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-models__lexv2-runtime/check_recognize_text_rejects_out_of_vocabulary_slot_value.py", "service": "lexv2-models__lexv2-runtime"} {"check_id": "lexv2-models__lexv2-runtime.unbuilt-bot-locale-recognize-text-is-rejected", "deployments": [], "key": "lexv2-models__lexv2-runtime/unbuilt-bot-locale-recognize-text-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:GetSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-models__lexv2-runtime/check_unbuilt_bot_locale_recognize_text_is_rejected.py", "service": "lexv2-models__lexv2-runtime"} {"check_id": "lexv2-runtime.deleted-session-state-is-gone-and-get-session-rejected", "deployments": [], "key": "lexv2-runtime/deleted-session-state-is-gone-and-get-session-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:DeleteSession", "lexv2-runtime:GetSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-runtime/check_deleted_session_state_is_gone_and_get_session_rejected.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.put-session-rejects-an-intent-the-locale-does-not-define", "deployments": [], "key": "lexv2-runtime/put-session-rejects-an-intent-the-locale-does-not-define", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:GetSession", "lexv2-runtime:PutSession"], "path": "behavioral/lexv2-runtime/check_put_session_rejects_an_intent_the_locale_does_not_define.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.put-session-seeds-dialog-state-for-the-next-turn", "deployments": [], "key": "lexv2-runtime/put-session-seeds-dialog-state-for-the-next-turn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:GetSession", "lexv2-runtime:PutSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-runtime/check_put_session_seeds_dialog_state_for_the_next_turn.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.recognize-text-elicits-missing-required-slot", "deployments": [], "key": "lexv2-runtime/recognize-text-elicits-missing-required-slot", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:GetSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-runtime/check_recognize_text_elicits_missing_required_slot.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.recognize-text-fills-slot-and-fulfills-intent", "deployments": [], "key": "lexv2-runtime/recognize-text-fills-slot-and-fulfills-intent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-runtime/check_recognize_text_fills_slot_and_fulfills_intent.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.recognize-text-rejects-an-unbuilt-locale", "deployments": [], "key": "lexv2-runtime/recognize-text-rejects-an-unbuilt-locale", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:GetSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-runtime/check_recognize_text_rejects_an_unbuilt_locale.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.recognize-text-rejects-an-unknown-bot-alias", "deployments": [], "key": "lexv2-runtime/recognize-text-rejects-an-unknown-bot-alias", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:GetSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-runtime/check_recognize_text_rejects_an_unknown_bot_alias.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.recognize-utterance-text-stream-agrees-with-recognize-text", "deployments": [], "key": "lexv2-runtime/recognize-utterance-text-stream-agrees-with-recognize-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:RecognizeText", "lexv2-runtime:RecognizeUtterance"], "path": "behavioral/lexv2-runtime/check_recognize_utterance_text_stream_agrees_with_recognize_text.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.session-state-persists-across-turns", "deployments": [], "key": "lexv2-runtime/session-state-persists-across-turns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:GetSession", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-runtime/check_session_state_persists_across_turns.py", "service": "lexv2-runtime"} {"check_id": "lexv2-runtime.unmatched-utterance-returns-fallback-intent", "deployments": [], "key": "lexv2-runtime/unmatched-utterance-returns-fallback-intent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lexv2-models:BuildBotLocale", "lexv2-models:CreateBot", "lexv2-models:CreateBotLocale", "lexv2-models:CreateIntent", "lexv2-models:CreateSlot", "lexv2-models:CreateSlotType", "lexv2-models:DeleteBot", "lexv2-models:DescribeBot", "lexv2-models:DescribeBotLocale", "lexv2-models:ListBotAliases", "lexv2-models:UpdateIntent", "lexv2-runtime:RecognizeText"], "path": "behavioral/lexv2-runtime/check_unmatched_utterance_returns_fallback_intent.py", "service": "lexv2-runtime"} {"check_id": "license-manager-linux-subscriptions.deregister-removes-subscription-provider", "deployments": [], "key": "license-manager-linux-subscriptions/deregister-removes-subscription-provider", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:DeregisterSubscriptionProvider", "license-manager-linux-subscriptions:GetRegisteredSubscriptionProvider", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders", "license-manager-linux-subscriptions:UpdateServiceSettings", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-linux-subscriptions/check_deregister_removes_subscription_provider.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.get-registered-subscription-provider-field-round-trip", "deployments": [], "key": "license-manager-linux-subscriptions/get-registered-subscription-provider-field-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetRegisteredSubscriptionProvider", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:UpdateServiceSettings", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-linux-subscriptions/check_get_registered_subscription_provider_field_round_trip.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.get-registered-subscription-provider-not-found", "deployments": [], "key": "license-manager-linux-subscriptions/get-registered-subscription-provider-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:DeregisterSubscriptionProvider", "license-manager-linux-subscriptions:GetRegisteredSubscriptionProvider", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:UpdateServiceSettings", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-linux-subscriptions/check_get_registered_subscription_provider_not_found.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.list-linux-subscription-instances-invalid-filter-operator-rejected", "deployments": [], "key": "license-manager-linux-subscriptions/list-linux-subscription-instances-invalid-filter-operator-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListLinuxSubscriptionInstances", "license-manager-linux-subscriptions:UpdateServiceSettings"], "path": "behavioral/license-manager-linux-subscriptions/check_list_linux_subscription_instances_invalid_filter_operator_rejected.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.list-linux-subscriptions-and-instances-basic-shape", "deployments": [], "key": "license-manager-linux-subscriptions/list-linux-subscriptions-and-instances-basic-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListLinuxSubscriptionInstances", "license-manager-linux-subscriptions:ListLinuxSubscriptions", "license-manager-linux-subscriptions:UpdateServiceSettings"], "path": "behavioral/license-manager-linux-subscriptions/check_list_linux_subscriptions_and_instances_basic_shape.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.list-registered-subscription-providers-maxresults-range-rejected", "deployments": [], "key": "license-manager-linux-subscriptions/list-registered-subscription-providers-maxresults-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders", "license-manager-linux-subscriptions:UpdateServiceSettings"], "path": "behavioral/license-manager-linux-subscriptions/check_list_registered_subscription_providers_maxresults_range_rejected.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.list-registered-subscription-providers-reflects-registration", "deployments": [], "key": "license-manager-linux-subscriptions/list-registered-subscription-providers-reflects-registration", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders", "license-manager-linux-subscriptions:UpdateServiceSettings"], "path": "behavioral/license-manager-linux-subscriptions/check_list_registered_subscription_providers_reflects_registration.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.register-duplicate-source-rejected", "deployments": [], "key": "license-manager-linux-subscriptions/register-duplicate-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders", "license-manager-linux-subscriptions:RegisterSubscriptionProvider", "license-manager-linux-subscriptions:UpdateServiceSettings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/license-manager-linux-subscriptions/check_register_duplicate_source_rejected.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.register-invalid-secret-arn-pattern-rejected", "deployments": [], "key": "license-manager-linux-subscriptions/register-invalid-secret-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders", "license-manager-linux-subscriptions:RegisterSubscriptionProvider", "license-manager-linux-subscriptions:UpdateServiceSettings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/license-manager-linux-subscriptions/check_register_invalid_secret_arn_pattern_rejected.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.register-subscription-provider-concurrent-race", "deployments": [], "key": "license-manager-linux-subscriptions/register-subscription-provider-concurrent-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders", "license-manager-linux-subscriptions:RegisterSubscriptionProvider", "license-manager-linux-subscriptions:UpdateServiceSettings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/license-manager-linux-subscriptions/check_register_subscription_provider_concurrent_race.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.register-subscription-provider-pending-status", "deployments": [], "key": "license-manager-linux-subscriptions/register-subscription-provider-pending-status", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:DeregisterSubscriptionProvider", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders", "license-manager-linux-subscriptions:RegisterSubscriptionProvider", "license-manager-linux-subscriptions:UpdateServiceSettings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/license-manager-linux-subscriptions/check_register_subscription_provider_pending_status.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.tag-resource-exceeds-limit-rejected", "deployments": [], "key": "license-manager-linux-subscriptions/tag-resource-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders", "license-manager-linux-subscriptions:RegisterSubscriptionProvider", "license-manager-linux-subscriptions:UpdateServiceSettings", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/license-manager-linux-subscriptions/check_tag_resource_exceeds_limit_rejected.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.tag-resource-list-untag-round-trip", "deployments": [], "key": "license-manager-linux-subscriptions/tag-resource-list-untag-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:ListTagsForResource", "license-manager-linux-subscriptions:TagResource", "license-manager-linux-subscriptions:UntagResource", "license-manager-linux-subscriptions:UpdateServiceSettings", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-linux-subscriptions/check_tag_resource_list_untag_round_trip.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.untag-resource-removes-specific-keys", "deployments": [], "key": "license-manager-linux-subscriptions/untag-resource-removes-specific-keys", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:UntagResource", "license-manager-linux-subscriptions:UpdateServiceSettings", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-linux-subscriptions/check_untag_resource_removes_specific_keys.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.update-service-settings-disable-transitions-to-successful", "deployments": [], "key": "license-manager-linux-subscriptions/update-service-settings-disable-transitions-to-successful", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:UpdateServiceSettings"], "path": "behavioral/license-manager-linux-subscriptions/check_update_service_settings_disable_transitions_to_successful.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-linux-subscriptions.update-service-settings-invalid-region-rejected", "deployments": [], "key": "license-manager-linux-subscriptions/update-service-settings-invalid-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-linux-subscriptions:GetServiceSettings", "license-manager-linux-subscriptions:UpdateServiceSettings"], "path": "behavioral/license-manager-linux-subscriptions/check_update_service_settings_invalid_region_rejected.py", "service": "license-manager-linux-subscriptions"} {"check_id": "license-manager-user-subscriptions.associate-user-authorization-precedes-shape-validation", "deployments": [], "key": "license-manager-user-subscriptions/associate-user-authorization-precedes-shape-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:AssociateUser", "license-manager-user-subscriptions:ListInstances"], "path": "behavioral/license-manager-user-subscriptions/check_associate_user_authorization_precedes_shape_validation.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.associate-user-instance-not-found", "deployments": [], "key": "license-manager-user-subscriptions/associate-user-instance-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:AssociateUser", "license-manager-user-subscriptions:ListInstances"], "path": "behavioral/license-manager-user-subscriptions/check_associate_user_instance_not_found.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.create-license-server-endpoint-provider-not-found", "deployments": [], "key": "license-manager-user-subscriptions/create-license-server-endpoint-provider-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:CreateLicenseServerEndpoint", "license-manager-user-subscriptions:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-user-subscriptions/check_create_license_server_endpoint_provider_not_found.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.delete-license-server-endpoint-not-found", "deployments": [], "key": "license-manager-user-subscriptions/delete-license-server-endpoint-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:DeleteLicenseServerEndpoint", "license-manager-user-subscriptions:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-user-subscriptions/check_delete_license_server_endpoint_not_found.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.deregister-identity-provider-not-found", "deployments": [], "key": "license-manager-user-subscriptions/deregister-identity-provider-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:DeregisterIdentityProvider", "license-manager-user-subscriptions:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-user-subscriptions/check_deregister_identity_provider_not_found.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.disassociate-user-ambiguous-identifiers-rejected", "deployments": [], "key": "license-manager-user-subscriptions/disassociate-user-ambiguous-identifiers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:DisassociateUser", "license-manager-user-subscriptions:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-user-subscriptions/check_disassociate_user_ambiguous_identifiers_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.list-identity-providers-response-shape", "deployments": [], "key": "license-manager-user-subscriptions/list-identity-providers-response-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListIdentityProviders", "license-manager-user-subscriptions:ListInstances"], "path": "behavioral/license-manager-user-subscriptions/check_list_identity_providers_response_shape.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.list-instances-bogus-filter-attribute-rejected", "deployments": [], "key": "license-manager-user-subscriptions/list-instances-bogus-filter-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances"], "path": "behavioral/license-manager-user-subscriptions/check_list_instances_bogus_filter_attribute_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.list-instances-missing-permission-rejected", "deployments": [], "key": "license-manager-user-subscriptions/list-instances-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateServiceLinkedRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "license-manager-user-subscriptions:ListInstances"], "path": "behavioral/license-manager-user-subscriptions/check_list_instances_missing_permission_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.list-instances-response-shape", "deployments": [], "key": "license-manager-user-subscriptions/list-instances-response-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances"], "path": "behavioral/license-manager-user-subscriptions/check_list_instances_response_shape.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.list-license-server-endpoints-max-results-out-of-range-rejected", "deployments": [], "key": "license-manager-user-subscriptions/list-license-server-endpoints-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances", "license-manager-user-subscriptions:ListLicenseServerEndpoints"], "path": "behavioral/license-manager-user-subscriptions/check_list_license_server_endpoints_max_results_out_of_range_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.list-tags-for-resource-malformed-arn-rejected", "deployments": [], "key": "license-manager-user-subscriptions/list-tags-for-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances", "license-manager-user-subscriptions:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-user-subscriptions/check_list_tags_for_resource_malformed_arn_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.register-identity-provider-directory-not-found", "deployments": [], "key": "license-manager-user-subscriptions/register-identity-provider-directory-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances", "license-manager-user-subscriptions:RegisterIdentityProvider"], "path": "behavioral/license-manager-user-subscriptions/check_register_identity_provider_directory_not_found.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.register-identity-provider-invalid-product-rejected", "deployments": [], "key": "license-manager-user-subscriptions/register-identity-provider-invalid-product-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances", "license-manager-user-subscriptions:RegisterIdentityProvider"], "path": "behavioral/license-manager-user-subscriptions/check_register_identity_provider_invalid_product_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.start-product-subscription-provider-not-registered", "deployments": [], "key": "license-manager-user-subscriptions/start-product-subscription-provider-not-registered", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances", "license-manager-user-subscriptions:StartProductSubscription"], "path": "behavioral/license-manager-user-subscriptions/check_start_product_subscription_provider_not_registered.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.stop-product-subscription-ambiguous-identifiers-rejected", "deployments": [], "key": "license-manager-user-subscriptions/stop-product-subscription-ambiguous-identifiers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances", "license-manager-user-subscriptions:StopProductSubscription", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-user-subscriptions/check_stop_product_subscription_ambiguous_identifiers_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.untag-resource-not-found-rejected", "deployments": [], "key": "license-manager-user-subscriptions/untag-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances", "license-manager-user-subscriptions:ListTagsForResource", "license-manager-user-subscriptions:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-user-subscriptions/check_untag_resource_not_found_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager-user-subscriptions.update-identity-provider-settings-overlapping-subnets-rejected", "deployments": [], "key": "license-manager-user-subscriptions/update-identity-provider-settings-overlapping-subnets-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager-user-subscriptions:ListInstances", "license-manager-user-subscriptions:UpdateIdentityProviderSettings", "sts:GetCallerIdentity"], "path": "behavioral/license-manager-user-subscriptions/check_update_identity_provider_settings_overlapping_subnets_rejected.py", "service": "license-manager-user-subscriptions"} {"check_id": "license-manager.checked-in-consumption-token-is-not-reusable", "deployments": [], "key": "license-manager/checked-in-consumption-token-is-not-reusable", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager:CheckInLicense", "license-manager:CheckoutLicense", "license-manager:CreateLicense", "license-manager:DeleteLicense", "license-manager:ExtendLicenseConsumption", "license-manager:GetLicense", "license-manager:GetLicenseUsage", "sts:GetCallerIdentity"], "path": "behavioral/license-manager/check_checked_in_consumption_token_is_not_reusable.py", "service": "license-manager"} {"check_id": "license-manager.checkout-of-undeclared-entitlement-name-rejected", "deployments": [], "key": "license-manager/checkout-of-undeclared-entitlement-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager:CheckInLicense", "license-manager:CheckoutLicense", "license-manager:CreateLicense", "license-manager:DeleteLicense", "license-manager:GetLicense", "license-manager:GetLicenseUsage", "sts:GetCallerIdentity"], "path": "behavioral/license-manager/check_checkout_of_undeclared_entitlement_name_rejected.py", "service": "license-manager"} {"check_id": "license-manager.checkout-past-entitlement-max-count-rejected", "deployments": [], "key": "license-manager/checkout-past-entitlement-max-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager:CheckInLicense", "license-manager:CheckoutLicense", "license-manager:CreateLicense", "license-manager:DeleteLicense", "license-manager:GetLicense", "license-manager:GetLicenseUsage", "sts:GetCallerIdentity"], "path": "behavioral/license-manager/check_checkout_past_entitlement_max_count_rejected.py", "service": "license-manager"} {"check_id": "license-manager.checkout-with-mismatched-entitlement-unit-rejected", "deployments": [], "key": "license-manager/checkout-with-mismatched-entitlement-unit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager:CheckInLicense", "license-manager:CheckoutLicense", "license-manager:CreateLicense", "license-manager:DeleteLicense", "license-manager:GetLicense", "license-manager:GetLicenseUsage", "sts:GetCallerIdentity"], "path": "behavioral/license-manager/check_checkout_with_mismatched_entitlement_unit_rejected.py", "service": "license-manager"} {"check_id": "license-manager.concurrent-checkouts-never-exceed-entitlement-max-count", "deployments": [], "key": "license-manager/concurrent-checkouts-never-exceed-entitlement-max-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager:CheckInLicense", "license-manager:CheckoutLicense", "license-manager:CreateLicense", "license-manager:DeleteLicense", "license-manager:GetLicense", "license-manager:GetLicenseUsage", "sts:GetCallerIdentity"], "path": "behavioral/license-manager/check_concurrent_checkouts_never_exceed_entitlement_max_count.py", "service": "license-manager"} {"check_id": "license-manager.entitlement-consumed-count-tracks-checkout-and-checkin", "deployments": [], "key": "license-manager/entitlement-consumed-count-tracks-checkout-and-checkin", "labels": ["axis:happy-path", "plane:control"], "operations": ["license-manager:CheckInLicense", "license-manager:CheckoutLicense", "license-manager:CreateLicense", "license-manager:DeleteLicense", "license-manager:GetLicense", "license-manager:GetLicenseUsage", "sts:GetCallerIdentity"], "path": "behavioral/license-manager/check_entitlement_consumed_count_tracks_checkout_and_checkin.py", "service": "license-manager"} {"check_id": "license-manager.overage-entitlement-allows-consumption-past-max-count", "deployments": [], "key": "license-manager/overage-entitlement-allows-consumption-past-max-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "license-manager:CheckInLicense", "license-manager:CheckoutLicense", "license-manager:CreateLicense", "license-manager:DeleteLicense", "license-manager:GetLicense", "license-manager:GetLicenseUsage", "sts:GetCallerIdentity"], "path": "behavioral/license-manager/check_overage_entitlement_allows_consumption_past_max_count.py", "service": "license-manager"} {"check_id": "lightsail.alarm-configuration-roundtrip-and-delete", "deployments": [], "key": "lightsail/alarm-configuration-roundtrip-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CreateInstances", "lightsail:DeleteAlarm", "lightsail:DeleteInstance", "lightsail:GetAlarms", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetInstanceState", "lightsail:GetRegions", "lightsail:PutAlarm"], "path": "behavioral/lightsail/check_alarm_configuration_roundtrip_and_delete.py", "service": "lightsail"} {"check_id": "lightsail.bucket-access-key-lifecycle", "deployments": [], "key": "lightsail/bucket-access-key-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CreateBucket", "lightsail:CreateBucketAccessKey", "lightsail:DeleteBucket", "lightsail:DeleteBucketAccessKey", "lightsail:GetBucketAccessKeys", "lightsail:GetBucketBundles", "s3:ListObjectsV2"], "path": "behavioral/lightsail/check_bucket_access_key_lifecycle.py", "service": "lightsail"} {"check_id": "lightsail.bucket-delete-nonempty-without-force-rejected", "deployments": [], "key": "lightsail/bucket-delete-nonempty-without-force-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["lightsail:CreateBucket", "lightsail:CreateBucketAccessKey", "lightsail:DeleteBucket", "lightsail:DeleteBucketAccessKey", "lightsail:GetBucketBundles", "lightsail:GetBuckets", "s3:DeleteObject", "s3:GetObject", "s3:PutObject"], "path": "behavioral/lightsail/check_bucket_delete_nonempty_without_force_rejected.py", "service": "lightsail"} {"check_id": "lightsail.bucket-object-put-get-roundtrip", "deployments": [], "key": "lightsail/bucket-object-put-get-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["lightsail:CreateBucket", "lightsail:CreateBucketAccessKey", "lightsail:DeleteBucket", "lightsail:DeleteBucketAccessKey", "lightsail:GetBucketBundles", "s3:DeleteObject", "s3:GetObject", "s3:PutObject"], "path": "behavioral/lightsail/check_bucket_object_put_get_roundtrip.py", "service": "lightsail"} {"check_id": "lightsail.concurrent-keypair-creation-duplicate-name-race", "deployments": [], "key": "lightsail/concurrent-keypair-creation-duplicate-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["lightsail:CreateKeyPair", "lightsail:DeleteKeyPair", "lightsail:GetKeyPair"], "path": "behavioral/lightsail/check_concurrent_keypair_creation_duplicate_name_race.py", "service": "lightsail"} {"check_id": "lightsail.container-image-registry-lifecycle", "deployments": [], "key": "lightsail/container-image-registry-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["lightsail:CreateContainerService", "lightsail:DeleteContainerImage", "lightsail:DeleteContainerService", "lightsail:GetContainerImages", "lightsail:RegisterContainerImage"], "path": "behavioral/lightsail/check_container_image_registry_lifecycle.py", "service": "lightsail"} {"check_id": "lightsail.container-service-deployment-reaches-running", "deployments": [], "key": "lightsail/container-service-deployment-reaches-running", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["lightsail:CreateContainerService", "lightsail:DeleteContainerService", "lightsail:GetContainerServices"], "path": "behavioral/lightsail/check_container_service_deployment_reaches_running.py", "service": "lightsail"} {"check_id": "lightsail.disk-attach-already-attached-rejected", "deployments": [], "key": "lightsail/disk-attach-already-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["lightsail:AttachDisk", "lightsail:CreateDisk", "lightsail:CreateInstances", "lightsail:DeleteDisk", "lightsail:DeleteInstance", "lightsail:DetachDisk", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetDisk", "lightsail:GetInstanceState", "lightsail:GetRegions", "lightsail:StopInstance"], "path": "behavioral/lightsail/check_disk_attach_already_attached_rejected.py", "service": "lightsail"} {"check_id": "lightsail.disk-attach-detach-lifecycle", "deployments": [], "key": "lightsail/disk-attach-detach-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:AttachDisk", "lightsail:CreateDisk", "lightsail:CreateInstances", "lightsail:DeleteDisk", "lightsail:DeleteInstance", "lightsail:DetachDisk", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetDisk", "lightsail:GetInstanceState", "lightsail:GetRegions", "lightsail:StopInstance"], "path": "behavioral/lightsail/check_disk_attach_detach_lifecycle.py", "service": "lightsail"} {"check_id": "lightsail.disk-delete-while-attached-rejected", "deployments": [], "key": "lightsail/disk-delete-while-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["lightsail:AttachDisk", "lightsail:CreateDisk", "lightsail:CreateInstances", "lightsail:DeleteDisk", "lightsail:DeleteInstance", "lightsail:DetachDisk", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetDisk", "lightsail:GetInstanceState", "lightsail:GetRegions", "lightsail:StopInstance"], "path": "behavioral/lightsail/check_disk_delete_while_attached_rejected.py", "service": "lightsail"} {"check_id": "lightsail.disk-detach-not-attached-rejected", "deployments": [], "key": "lightsail/disk-detach-not-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["lightsail:AttachDisk", "lightsail:CreateDisk", "lightsail:CreateInstances", "lightsail:DeleteDisk", "lightsail:DeleteInstance", "lightsail:DetachDisk", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetDisk", "lightsail:GetInstanceState", "lightsail:GetRegions", "lightsail:StopInstance"], "path": "behavioral/lightsail/check_disk_detach_not_attached_rejected.py", "service": "lightsail"} {"check_id": "lightsail.disk-snapshot-create-and-restore", "deployments": [], "key": "lightsail/disk-snapshot-create-and-restore", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CreateDisk", "lightsail:CreateDiskFromSnapshot", "lightsail:CreateDiskSnapshot", "lightsail:DeleteDisk", "lightsail:DeleteDiskSnapshot", "lightsail:GetDisk", "lightsail:GetDiskSnapshot", "lightsail:GetRegions"], "path": "behavioral/lightsail/check_disk_snapshot_create_and_restore.py", "service": "lightsail"} {"check_id": "lightsail.domain-entry-crud-lifecycle", "deployments": [], "key": "lightsail/domain-entry-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CreateDomain", "lightsail:CreateDomainEntry", "lightsail:DeleteDomain", "lightsail:DeleteDomainEntry", "lightsail:GetDomain", "lightsail:UpdateDomainEntry"], "path": "behavioral/lightsail/check_domain_entry_crud_lifecycle.py", "service": "lightsail"} {"check_id": "lightsail.instance-create-state-transition-running", "deployments": [], "key": "lightsail/instance-create-state-transition-running", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CreateInstances", "lightsail:DeleteInstance", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetInstance", "lightsail:GetInstanceState", "lightsail:GetRegions"], "path": "behavioral/lightsail/check_instance_create_state_transition_running.py", "service": "lightsail"} {"check_id": "lightsail.instance-metric-data-availability", "deployments": [], "key": "lightsail/instance-metric-data-availability", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["lightsail:CreateInstances", "lightsail:DeleteInstance", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetInstanceMetricData", "lightsail:GetInstanceState", "lightsail:GetRegions"], "path": "behavioral/lightsail/check_instance_metric_data_availability.py", "service": "lightsail"} {"check_id": "lightsail.instance-port-open-close-state", "deployments": [], "key": "lightsail/instance-port-open-close-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CloseInstancePublicPorts", "lightsail:CreateInstances", "lightsail:DeleteInstance", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetInstancePortStates", "lightsail:GetInstanceState", "lightsail:GetRegions", "lightsail:OpenInstancePublicPorts"], "path": "behavioral/lightsail/check_instance_port_open_close_state.py", "service": "lightsail"} {"check_id": "lightsail.instance-reboot-preserves-public-ip", "deployments": [], "key": "lightsail/instance-reboot-preserves-public-ip", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CreateInstances", "lightsail:DeleteInstance", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetInstance", "lightsail:GetInstanceState", "lightsail:GetOperationsForResource", "lightsail:GetRegions", "lightsail:RebootInstance"], "path": "behavioral/lightsail/check_instance_reboot_preserves_public_ip.py", "service": "lightsail"} {"check_id": "lightsail.instance-stop-start-cycle", "deployments": [], "key": "lightsail/instance-stop-start-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CreateInstances", "lightsail:DeleteInstance", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetInstanceState", "lightsail:GetRegions", "lightsail:StartInstance", "lightsail:StopInstance"], "path": "behavioral/lightsail/check_instance_stop_start_cycle.py", "service": "lightsail"} {"check_id": "lightsail.keypair-delete-fingerprint-mismatch-rejected", "deployments": [], "key": "lightsail/keypair-delete-fingerprint-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["lightsail:CreateKeyPair", "lightsail:DeleteKeyPair", "lightsail:GetKeyPair"], "path": "behavioral/lightsail/check_keypair_delete_fingerprint_mismatch_rejected.py", "service": "lightsail"} {"check_id": "lightsail.keypair-duplicate-name-rejected", "deployments": [], "key": "lightsail/keypair-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["lightsail:CreateKeyPair", "lightsail:DeleteKeyPair", "lightsail:GetKeyPair"], "path": "behavioral/lightsail/check_keypair_duplicate_name_rejected.py", "service": "lightsail"} {"check_id": "lightsail.load-balancer-provisioning-and-instance-attach", "deployments": [], "key": "lightsail/load-balancer-provisioning-and-instance-attach", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:AttachInstancesToLoadBalancer", "lightsail:CreateInstances", "lightsail:CreateLoadBalancer", "lightsail:DeleteInstance", "lightsail:DeleteLoadBalancer", "lightsail:DetachInstancesFromLoadBalancer", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetInstanceState", "lightsail:GetLoadBalancer", "lightsail:GetRegions"], "path": "behavioral/lightsail/check_load_balancer_provisioning_and_instance_attach.py", "service": "lightsail"} {"check_id": "lightsail.operation-status-reflects-async-completion", "deployments": [], "key": "lightsail/operation-status-reflects-async-completion", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:CreateKeyPair", "lightsail:DeleteKeyPair", "lightsail:GetKeyPair", "lightsail:GetOperation"], "path": "behavioral/lightsail/check_operation_status_reflects_async_completion.py", "service": "lightsail"} {"check_id": "lightsail.static-catalog-reads-are-not-hollow-200s", "deployments": [], "key": "lightsail/static-catalog-reads-are-not-hollow-200s", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetRegions"], "path": "behavioral/lightsail/check_static_catalog_reads_are_not_hollow_200s.py", "service": "lightsail"} {"check_id": "lightsail.static-ip-attach-detach-lifecycle", "deployments": [], "key": "lightsail/static-ip-attach-detach-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["lightsail:AllocateStaticIp", "lightsail:AttachStaticIp", "lightsail:CreateInstances", "lightsail:DeleteInstance", "lightsail:DetachStaticIp", "lightsail:GetBlueprints", "lightsail:GetBundles", "lightsail:GetInstance", "lightsail:GetInstanceState", "lightsail:GetRegions", "lightsail:GetStaticIp", "lightsail:ReleaseStaticIp"], "path": "behavioral/lightsail/check_static_ip_attach_detach_lifecycle.py", "service": "lightsail"} {"check_id": "location.batch-put-geofence-partial-failure-only-valid-persists", "deployments": [], "key": "location/batch-put-geofence-partial-failure-only-valid-persists", "labels": ["axis:rejection", "plane:control"], "operations": ["location:BatchPutGeofence", "location:CreateGeofenceCollection", "location:DeleteGeofenceCollection", "location:GetGeofence"], "path": "behavioral/location/check_batch_put_geofence_partial_failure_only_valid_persists.py", "service": "location"} {"check_id": "location.batch-update-device-position-partial-failure-only-valid-persists", "deployments": [], "key": "location/batch-update-device-position-partial-failure-only-valid-persists", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["location:BatchUpdateDevicePosition", "location:CreateTracker", "location:DeleteTracker", "location:GetDevicePosition"], "path": "behavioral/location/check_batch_update_device_position_partial_failure_only_valid_persists.py", "service": "location"} {"check_id": "location.device-position-history-pagination-respects-max-results", "deployments": [], "key": "location/device-position-history-pagination-respects-max-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["location:BatchUpdateDevicePosition", "location:CreateTracker", "location:DeleteTracker", "location:GetDevicePositionHistory"], "path": "behavioral/location/check_device_position_history_pagination_respects_max_results.py", "service": "location"} {"check_id": "location.device-position-history-rejects-inverted-time-window", "deployments": [], "key": "location/device-position-history-rejects-inverted-time-window", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["location:BatchUpdateDevicePosition", "location:CreateTracker", "location:DeleteTracker", "location:GetDevicePositionHistory"], "path": "behavioral/location/check_device_position_history_rejects_inverted_time_window.py", "service": "location"} {"check_id": "location.device-position-history-time-window-filters-results", "deployments": [], "key": "location/device-position-history-time-window-filters-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["location:BatchUpdateDevicePosition", "location:CreateTracker", "location:DeleteTracker", "location:GetDevicePositionHistory"], "path": "behavioral/location/check_device_position_history_time_window_filters_results.py", "service": "location"} {"check_id": "location.distance-based-position-filtering-suppresses-near-duplicate", "deployments": [], "key": "location/distance-based-position-filtering-suppresses-near-duplicate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["location:BatchUpdateDevicePosition", "location:CreateTracker", "location:DeleteTracker", "location:GetDevicePosition", "location:GetDevicePositionHistory"], "path": "behavioral/location/check_distance_based_position_filtering_suppresses_near_duplicate.py", "service": "location"} {"check_id": "location.get-map-sprites-rejects-unsupported-file-name", "deployments": [], "key": "location/get-map-sprites-rejects-unsupported-file-name", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["location:CreateMap", "location:DeleteMap", "location:GetMapSprites"], "path": "behavioral/location/check_get_map_sprites_rejects_unsupported_file_name.py", "service": "location"} {"check_id": "location.get-map-tile-enforces-per-style-zoom-bound", "deployments": [], "key": "location/get-map-tile-enforces-per-style-zoom-bound", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["location:CreateMap", "location:DeleteMap", "location:GetMapTile"], "path": "behavioral/location/check_get_map_tile_enforces_per_style_zoom_bound.py", "service": "location"} {"check_id": "location.get-place-id-is-scoped-to-data-source-not-index", "deployments": [], "key": "location/get-place-id-is-scoped-to-data-source-not-index", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["location:CreatePlaceIndex", "location:DeletePlaceIndex", "location:GetPlace", "location:SearchPlaceIndexForText"], "path": "behavioral/location/check_get_place_id_is_scoped_to_data_source_not_index.py", "service": "location"} {"check_id": "location.route-calculator-rejects-unsupported-data-source", "deployments": [], "key": "location/route-calculator-rejects-unsupported-data-source", "labels": ["axis:rejection", "plane:control"], "operations": ["location:CreateRouteCalculator", "location:DeleteRouteCalculator", "location:DescribeRouteCalculator"], "path": "behavioral/location/check_route_calculator_rejects_unsupported_data_source.py", "service": "location"} {"check_id": "location.tag-resource-merges-and-untag-resource-is-idempotent", "deployments": [], "key": "location/tag-resource-merges-and-untag-resource-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["location:CreateGeofenceCollection", "location:DeleteGeofenceCollection", "location:ListTagsForResource", "location:TagResource", "location:UntagResource"], "path": "behavioral/location/check_tag_resource_merges_and_untag_resource_is_idempotent.py", "service": "location"} {"check_id": "location.tracker-consumer-association-scopes-list-tracker-consumers", "deployments": [], "key": "location/tracker-consumer-association-scopes-list-tracker-consumers", "labels": ["axis:happy-path", "plane:control"], "operations": ["location:AssociateTrackerConsumer", "location:CreateGeofenceCollection", "location:CreateTracker", "location:DeleteGeofenceCollection", "location:DeleteTracker", "location:DisassociateTrackerConsumer", "location:ListTrackerConsumers"], "path": "behavioral/location/check_tracker_consumer_association_scopes_list_tracker_consumers.py", "service": "location"} {"check_id": "logs.access-denied-enforcement", "deployments": [], "key": "logs/access-denied-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_access_denied_enforcement.py", "service": "logs"} {"check_id": "logs.account-data-protection-policy-masks-a-new-log-group", "deployments": [], "key": "logs/account-data-protection-policy-masks-a-new-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DescribeAccountPolicies", "logs:GetLogEvents", "logs:PutAccountPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_account_data_protection_policy_masks_a_new_log_group.py", "service": "logs"} {"check_id": "logs.account-policy-enforced-globally-without-per-group-config", "deployments": [], "key": "logs/account-policy-enforced-globally-without-per-group-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DescribeAccountPolicies", "logs:DescribeIndexPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_account_policy_enforced_globally_without_per_group_config.py", "service": "logs"} {"check_id": "logs.account-policy-lifecycle", "deployments": [], "key": "logs/account-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_account_policy_lifecycle.py", "service": "logs"} {"check_id": "logs.account-policy-lifecycle-transitions", "deployments": [], "key": "logs/account-policy-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_account_policy_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.account-policy-limit-exceeded-enforced", "deployments": [], "key": "logs/account-policy-limit-exceeded-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_account_policy_limit_exceeded_enforced.py", "service": "logs"} {"check_id": "logs.account-policy-malformed-document-rejected", "deployments": [], "key": "logs/account-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_account_policy_malformed_document_rejected.py", "service": "logs"} {"check_id": "logs.associate-kms-key-cross-region-mismatch-rejected", "deployments": [], "key": "logs/associate-kms-key-cross-region-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/logs/check_associate_kms_key_cross_region_mismatch_rejected.py", "service": "logs"} {"check_id": "logs.associate-kms-key-invalid-key-arn-rejected", "deployments": [], "key": "logs/associate-kms-key-invalid-key-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_associate_kms_key_invalid_key_arn_rejected.py", "service": "logs"} {"check_id": "logs.associate-kms-key-malformed-arn-rejected", "deployments": [], "key": "logs/associate-kms-key-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_associate_kms_key_malformed_arn_rejected.py", "service": "logs"} {"check_id": "logs.associate-kms-key-nonexistent-group-fails", "deployments": [], "key": "logs/associate-kms-key-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_associate_kms_key_nonexistent_group_fails.py", "service": "logs"} {"check_id": "logs.associate-kms-key-nonexistent-log-group-fails", "deployments": [], "key": "logs/associate-kms-key-nonexistent-log-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_associate_kms_key_nonexistent_log_group_fails.py", "service": "logs"} {"check_id": "logs.associate-kms-key-then-disassociate", "deployments": [], "key": "logs/associate-kms-key-then-disassociate", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_associate_kms_key_then_disassociate.py", "service": "logs"} {"check_id": "logs.associate-kms-key-without-service-permission-rejected", "deployments": [], "key": "logs/associate-kms-key-without-service-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_associate_kms_key_without_service_permission_rejected.py", "service": "logs"} {"check_id": "logs.bearer-token-authentication-enable-mode", "deployments": [], "key": "logs/bearer-token-authentication-enable-mode", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutBearerTokenAuthentication"], "path": "behavioral/logs/check_bearer_token_authentication_enable_mode.py", "service": "logs"} {"check_id": "logs.bearer-token-authentication-lifecycle", "deployments": [], "key": "logs/bearer-token-authentication-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutBearerTokenAuthentication"], "path": "behavioral/logs/check_bearer_token_authentication_lifecycle.py", "service": "logs"} {"check_id": "logs.bearer-token-authentication-nonexistent-log-group-rejected", "deployments": [], "key": "logs/bearer-token-authentication-nonexistent-log-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutBearerTokenAuthentication"], "path": "behavioral/logs/check_bearer_token_authentication_nonexistent_log_group_rejected.py", "service": "logs"} {"check_id": "logs.cancel-completed-export-task-fails", "deployments": [], "key": "logs/cancel-completed-export-task-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_cancel_completed_export_task_fails.py", "service": "logs"} {"check_id": "logs.cancel-export-task-already-completed-fails", "deployments": [], "key": "logs/cancel-export-task-already-completed-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_cancel_export_task_already_completed_fails.py", "service": "logs"} {"check_id": "logs.cancel-export-task-terminal-state-rejected", "deployments": [], "key": "logs/cancel-export-task-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/logs/check_cancel_export_task_terminal_state_rejected.py", "service": "logs"} {"check_id": "logs.cancel-export-task-then-describe-shows-cancelled", "deployments": [], "key": "logs/cancel-export-task-then-describe-shows-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_cancel_export_task_then_describe_shows_cancelled.py", "service": "logs"} {"check_id": "logs.cancel-import-task-invalid-state-fails", "deployments": [], "key": "logs/cancel-import-task-invalid-state-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CancelImportTask", "logs:DescribeImportTasks"], "path": "behavioral/logs/check_cancel_import_task_invalid_state_fails.py", "service": "logs"} {"check_id": "logs.cmk-encrypted-group-insights-and-filter-return-plaintext", "deployments": [], "key": "logs/cmk-encrypted-group-insights-and-filter-return-plaintext", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_cmk_encrypted_group_insights_and_filter_return_plaintext.py", "service": "logs"} {"check_id": "logs.concurrent-create-log-group-exactly-one-succeeds", "deployments": [], "key": "logs/concurrent-create-log-group-exactly-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_concurrent_create_log_group_exactly_one_succeeds.py", "service": "logs"} {"check_id": "logs.concurrent-create-log-stream-exactly-one-wins", "deployments": [], "key": "logs/concurrent-create-log-stream-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogStreams"], "path": "behavioral/logs/check_concurrent_create_log_stream_exactly_one_wins.py", "service": "logs"} {"check_id": "logs.concurrent-create-scheduled-query-same-name-exactly-one-wins", "deployments": [], "key": "logs/concurrent-create-scheduled-query-same-name-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:ListScheduledQueries"], "path": "behavioral/logs/check_concurrent_create_scheduled_query_same_name_exactly_one_wins.py", "service": "logs"} {"check_id": "logs.concurrent-put-lookup-table-rows-last-writer-wins-deterministically", "deployments": [], "key": "logs/concurrent-put-lookup-table-rows-last-writer-wins-deterministically", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:GetLookupTable", "logs:UpdateLookupTable"], "path": "behavioral/logs/check_concurrent_put_lookup_table_rows_last_writer_wins_deterministically.py", "service": "logs"} {"check_id": "logs.configuration-templates-are-server-managed-static", "deployments": [], "key": "logs/configuration-templates-are-server-managed-static", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DescribeConfigurationTemplates"], "path": "behavioral/logs/check_configuration_templates_are_server_managed_static.py", "service": "logs"} {"check_id": "logs.conflict-exception-concurrent-state", "deployments": [], "key": "logs/conflict-exception-concurrent-state", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateDelivery", "logs:CreateImportTask", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:DescribeDeliveries", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:GetDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:GetScheduledQuery", "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy", "logs:PutDeliverySource", "logs:UpdateDeliveryConfiguration", "logs:UpdateScheduledQuery", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_conflict_exception_concurrent_state.py", "service": "logs"} {"check_id": "logs.create-delivery-duplicate-conflict-fails", "deployments": [], "key": "logs/create-delivery-duplicate-conflict-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_create_delivery_duplicate_conflict_fails.py", "service": "logs"} {"check_id": "logs.create-delivery-duplicate-pairing-is-idempotent", "deployments": [], "key": "logs/create-delivery-duplicate-pairing-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeDeliveries", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:UpdateDeliveryConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_create_delivery_duplicate_pairing_is_idempotent.py", "service": "logs"} {"check_id": "logs.create-delivery-lifecycle", "deployments": [], "key": "logs/create-delivery-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeConfigurationTemplates", "logs:DescribeDeliveries", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:PutLogGroupDeletionProtection", "logs:UpdateDeliveryConfiguration", "s3:CreateBucket", "s3:PutBucketTagging"], "path": "behavioral/logs/check_create_delivery_lifecycle.py", "service": "logs"} {"check_id": "logs.create-delivery-missing-iam-permission-denied", "deployments": [], "key": "logs/create-delivery-missing-iam-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateDelivery", "logs:DescribeDeliveries", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_create_delivery_missing_iam_permission_denied.py", "service": "logs"} {"check_id": "logs.create-delivery-nonexistent-source-fails", "deployments": [], "key": "logs/create-delivery-nonexistent-source-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeDeliveries", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/logs/check_create_delivery_nonexistent_source_fails.py", "service": "logs"} {"check_id": "logs.create-delivery-source-duplicate-name-conflict", "deployments": [], "key": "logs/create-delivery-source-duplicate-name-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteDeliverySource", "logs:DescribeDeliverySources", "logs:GetDeliverySource", "logs:ListTagsForResource", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_create_delivery_source_duplicate_name_conflict.py", "service": "logs"} {"check_id": "logs.create-export-task-lifecycle", "deployments": [], "key": "logs/create-export-task-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:DescribeLogGroups", "logs:PutLogEvents", "logs:PutLogGroupDeletionProtection", "s3:CreateBucket", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_create_export_task_lifecycle.py", "service": "logs"} {"check_id": "logs.create-export-task-nonexistent-group-fails", "deployments": [], "key": "logs/create-export-task-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:DescribeLogGroups", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/logs/check_create_export_task_nonexistent_group_fails.py", "service": "logs"} {"check_id": "logs.create-export-task-overlapping-window-conflict-rejected", "deployments": [], "key": "logs/create-export-task-overlapping-window-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:DescribeLogGroups", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/logs/check_create_export_task_overlapping_window_conflict_rejected.py", "service": "logs"} {"check_id": "logs.create-import-task-lifecycle", "deployments": [], "key": "logs/create-import-task-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CancelImportTask", "logs:CreateImportTask", "logs:DescribeImportTaskBatches", "logs:DescribeImportTasks", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_create_import_task_lifecycle.py", "service": "logs"} {"check_id": "logs.create-log-anomaly-detector-limit-exceeded-unreachable", "deployments": [], "key": "logs/create-log-anomaly-detector-limit-exceeded-unreachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogAnomalyDetector", "logs:ListLogAnomalyDetectors"], "path": "behavioral/logs/check_create_log_anomaly_detector_limit_exceeded_unreachable.py", "service": "logs"} {"check_id": "logs.create-log-group-duplicate-fails", "deployments": [], "key": "logs/create-log-group-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_create_log_group_duplicate_fails.py", "service": "logs"} {"check_id": "logs.create-log-group-invalid-name-rejected", "deployments": [], "key": "logs/create-log-group-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/logs/check_create_log_group_invalid_name_rejected.py", "service": "logs"} {"check_id": "logs.create-log-group-name-exceeds-length-limit-rejected", "deployments": [], "key": "logs/create-log-group-name-exceeds-length-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/logs/check_create_log_group_name_exceeds_length_limit_rejected.py", "service": "logs"} {"check_id": "logs.create-log-group-name-exceeds-max-length-rejected", "deployments": [], "key": "logs/create-log-group-name-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/logs/check_create_log_group_name_exceeds_max_length_rejected.py", "service": "logs"} {"check_id": "logs.create-log-group-visible-in-describe", "deployments": [], "key": "logs/create-log-group-visible-in-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_create_log_group_visible_in_describe.py", "service": "logs"} {"check_id": "logs.create-log-stream-duplicate-fails", "deployments": [], "key": "logs/create-log-stream-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteLogStream", "logs:DescribeLogStreams", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_create_log_stream_duplicate_fails.py", "service": "logs"} {"check_id": "logs.create-log-stream-invalid-name-rejected", "deployments": [], "key": "logs/create-log-stream-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_create_log_stream_invalid_name_rejected.py", "service": "logs"} {"check_id": "logs.create-log-stream-nonexistent-group-fails", "deployments": [], "key": "logs/create-log-stream-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_create_log_stream_nonexistent_group_fails.py", "service": "logs"} {"check_id": "logs.create-log-stream-visible-in-describe", "deployments": [], "key": "logs/create-log-stream-visible-in-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_create_log_stream_visible_in_describe.py", "service": "logs"} {"check_id": "logs.create-lookup-table-limit-exceeded-unreachable", "deployments": [], "key": "logs/create-lookup-table-limit-exceeded-unreachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:DescribeLookupTables", "logs:GetLookupTable"], "path": "behavioral/logs/check_create_lookup_table_limit_exceeded_unreachable.py", "service": "logs"} {"check_id": "logs.create-scheduled-query-duplicate-name-conflict-fails", "deployments": [], "key": "logs/create-scheduled-query-duplicate-name-conflict-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:GetScheduledQuery"], "path": "behavioral/logs/check_create_scheduled_query_duplicate_name_conflict_fails.py", "service": "logs"} {"check_id": "logs.create-scheduled-query-invalid-cron-expression-rejected", "deployments": [], "key": "logs/create-scheduled-query-invalid-cron-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:GetScheduledQuery"], "path": "behavioral/logs/check_create_scheduled_query_invalid_cron_expression_rejected.py", "service": "logs"} {"check_id": "logs.data-protection-audit-findings-delivered-to-the-findings-destination", "deployments": [], "key": "logs/data-protection-audit-findings-delivered-to-the-findings-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteDataProtectionPolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:PutDataProtectionPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_data_protection_audit_findings_delivered_to_the_findings_destination.py", "service": "logs"} {"check_id": "logs.data-protection-policy-large-document-byte-preserved", "deployments": [], "key": "logs/data-protection-policy-large-document-byte-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDataProtectionPolicy", "logs:DeleteLogGroup", "logs:GetDataProtectionPolicy", "logs:PutDataProtectionPolicy"], "path": "behavioral/logs/check_data_protection_policy_large_document_byte_preserved.py", "service": "logs"} {"check_id": "logs.data-protection-policy-lifecycle", "deployments": [], "key": "logs/data-protection-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDataProtectionPolicy", "logs:DeleteLogGroup", "logs:GetDataProtectionPolicy", "logs:PutDataProtectionPolicy"], "path": "behavioral/logs/check_data_protection_policy_lifecycle.py", "service": "logs"} {"check_id": "logs.data-protection-policy-masks-log-events", "deployments": [], "key": "logs/data-protection-policy-masks-log-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteDataProtectionPolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:PutDataProtectionPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_data_protection_policy_masks_log_events.py", "service": "logs"} {"check_id": "logs.data-protection-policy-masks-sensitive-data-server-side", "deployments": [], "key": "logs/data-protection-policy-masks-sensitive-data-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteDataProtectionPolicy", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutDataProtectionPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_data_protection_policy_masks_sensitive_data_server_side.py", "service": "logs"} {"check_id": "logs.deep-cwlogs-semantics-filter-log-events-stream-names-with-prefix-rejected", "deployments": [], "key": "logs/deep-cwlogs-semantics-filter-log-events-stream-names-with-prefix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deep_cwlogs_semantics_filter_log_events_stream_names_with_prefix_rejected.py", "service": "logs"} {"check_id": "logs.deep-cwlogs-semantics-filter-log-events-stream-prefix-scopes-and-merges-by-timestamp", "deployments": [], "key": "logs/deep-cwlogs-semantics-filter-log-events-stream-prefix-scopes-and-merges-by-timestamp", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deep_cwlogs_semantics_filter_log_events_stream_prefix_scopes_and_merges_by_timestamp.py", "service": "logs"} {"check_id": "logs.deep-cwlogs-semantics-put-log-events-mixed-window-batch-partially-accepted", "deployments": [], "key": "logs/deep-cwlogs-semantics-put-log-events-mixed-window-batch-partially-accepted", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deep_cwlogs_semantics_put_log_events_mixed_window_batch_partially_accepted.py", "service": "logs"} {"check_id": "logs.deep-cwlogs-semantics-put-log-events-surviving-span-over-24h-rejected", "deployments": [], "key": "logs/deep-cwlogs-semantics-put-log-events-surviving-span-over-24h-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deep_cwlogs_semantics_put_log_events_surviving_span_over_24h_rejected.py", "service": "logs"} {"check_id": "logs.deep-cwlogs-semantics-retention-zero-rejected-and-unset-retention-absent", "deployments": [], "key": "logs/deep-cwlogs-semantics-retention-zero-rejected-and-unset-retention-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteRetentionPolicy", "logs:DescribeLogGroups", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_deep_cwlogs_semantics_retention_zero_rejected_and_unset_retention_absent.py", "service": "logs"} {"check_id": "logs.deep-logs-1-logsql-cwli-query-string-as-sql-rejected", "deployments": [], "key": "logs/deep-logs-1-logsql-cwli-query-string-as-sql-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_deep_logs_1_logsql_cwli_query_string_as_sql_rejected.py", "service": "logs"} {"check_id": "logs.deep-logs-1-logsql-ppl-backticked-fields-where-stats-match-hand-computation", "deployments": [], "key": "logs/deep-logs-1-logsql-ppl-backticked-fields-where-stats-match-hand-computation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_deep_logs_1_logsql_ppl_backticked_fields_where_stats_match_hand_computation.py", "service": "logs"} {"check_id": "logs.deep-logs-1-logsql-sql-from-clause-overrides-log-group-identifiers", "deployments": [], "key": "logs/deep-logs-1-logsql-sql-from-clause-overrides-log-group-identifiers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_deep_logs_1_logsql_sql_from_clause_overrides_log_group_identifiers.py", "service": "logs"} {"check_id": "logs.deep-logs-1-logsql-sql-group-by-having-matches-hand-computation", "deployments": [], "key": "logs/deep-logs-1-logsql-sql-group-by-having-matches-hand-computation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_deep_logs_1_logsql_sql_group_by_having_matches_hand_computation.py", "service": "logs"} {"check_id": "logs.deep-logs-1-logsql-sql-having-on-aggregate-expression-rejected", "deployments": [], "key": "logs/deep-logs-1-logsql-sql-having-on-aggregate-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_deep_logs_1_logsql_sql_having_on_aggregate_expression_rejected.py", "service": "logs"} {"check_id": "logs.deep-logs-1-logsql-sql-ppl-across-standard-and-infrequent-access-rejected", "deployments": [], "key": "logs/deep-logs-1-logsql-sql-ppl-across-standard-and-infrequent-access-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_deep_logs_1_logsql_sql_ppl_across_standard_and_infrequent_access_rejected.py", "service": "logs"} {"check_id": "logs.deep-logs-1-logsql-sql-with-log-group-name-parameter-rejected", "deployments": [], "key": "logs/deep-logs-1-logsql-sql-with-log-group-name-parameter-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_deep_logs_1_logsql_sql_with_log_group_name_parameter_rejected.py", "service": "logs"} {"check_id": "logs.deep-logs-2-logcmk-disabled-after-association-withholds-reads", "deployments": [], "key": "logs/deep-logs-2-logcmk-disabled-after-association-withholds-reads", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_deep_logs_2_logcmk_disabled_after_association_withholds_reads.py", "service": "logs"} {"check_id": "logs.deep-logs-2-logcmk-disabled-key-associate-rejected", "deployments": [], "key": "logs/deep-logs-2-logcmk-disabled-key-associate-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_deep_logs_2_logcmk_disabled_key_associate_rejected.py", "service": "logs"} {"check_id": "logs.deep-logs-2-logcmk-encrypted-group-put-get-roundtrip", "deployments": [], "key": "logs/deep-logs-2-logcmk-encrypted-group-put-get-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_deep_logs_2_logcmk_encrypted_group_put_get_roundtrip.py", "service": "logs"} {"check_id": "logs.deep-logs-2-logcmk-events-bound-to-ingest-key", "deployments": [], "key": "logs/deep-logs-2-logcmk-events-bound-to-ingest-key", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_deep_logs_2_logcmk_events_bound_to_ingest_key.py", "service": "logs"} {"check_id": "logs.deep-logs-2-logcmk-key-policy-revoked-reads-withheld", "deployments": [], "key": "logs/deep-logs-2-logcmk-key-policy-revoked-reads-withheld", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_deep_logs_2_logcmk_key_policy_revoked_reads_withheld.py", "service": "logs"} {"check_id": "logs.deep-logs-2-logcmk-malformed-entity-rejected-events-kept", "deployments": [], "key": "logs/deep-logs-2-logcmk-malformed-entity-rejected-events-kept", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_deep_logs_2_logcmk_malformed_entity_rejected_events_kept.py", "service": "logs"} {"check_id": "logs.deep-logs-2-logcmk-query-result-key-gates-insights", "deployments": [], "key": "logs/deep-logs-2-logcmk-query-result-key-gates-insights", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_deep_logs_2_logcmk_query_result_key_gates_insights.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-metric-extraction-policy-enabled-status-rejected", "deployments": [], "key": "logs/deep-logs-3-logacct-metric-extraction-policy-enabled-status-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudwatch:GetMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_deep_logs_3_logacct_metric_extraction_policy_enabled_status_rejected.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-metric-extraction-policy-suppresses-emf-only-for-selected-group", "deployments": [], "key": "logs/deep-logs-3-logacct-metric-extraction-policy-suppresses-emf-only-for-selected-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_deep_logs_3_logacct_metric_extraction_policy_suppresses_emf_only_for_selected_group.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-put-transformer-vended-parser-not-first-rejected", "deployments": [], "key": "logs/deep-logs-3-logacct-put-transformer-vended-parser-not-first-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DeleteTransformer", "logs:GetLogEvents", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "logs:PutTransformer"], "path": "behavioral/logs/check_deep_logs_3_logacct_put_transformer_vended_parser_not_first_rejected.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-subscription-filter-policy-not-in-excludes-named-group", "deployments": [], "key": "logs/deep-logs-3-logacct-subscription-filter-policy-not-in-excludes-named-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DescribeSubscriptionFilters", "logs:PutAccountPolicy", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_deep_logs_3_logacct_subscription_filter_policy_not_in_excludes_named_group.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-transformer-csv-splits-quoted-columns-on-ingest", "deployments": [], "key": "logs/deep-logs-3-logacct-transformer-csv-splits-quoted-columns-on-ingest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DeleteTransformer", "logs:GetLogEvents", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "logs:PutTransformer"], "path": "behavioral/logs/check_deep_logs_3_logacct_transformer_csv_splits_quoted_columns_on_ingest.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-transformer-datetimeconverter-shifts-timezone-on-ingest", "deployments": [], "key": "logs/deep-logs-3-logacct-transformer-datetimeconverter-shifts-timezone-on-ingest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DeleteTransformer", "logs:GetLogEvents", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "logs:PutTransformer"], "path": "behavioral/logs/check_deep_logs_3_logacct_transformer_datetimeconverter_shifts_timezone_on_ingest.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-transformer-listtomap-builds-keyed-map-on-ingest", "deployments": [], "key": "logs/deep-logs-3-logacct-transformer-listtomap-builds-keyed-map-on-ingest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DeleteTransformer", "logs:GetLogEvents", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "logs:PutTransformer"], "path": "behavioral/logs/check_deep_logs_3_logacct_transformer_listtomap_builds_keyed_map_on_ingest.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-transformer-parsevpc-extracts-typed-flow-fields-on-ingest", "deployments": [], "key": "logs/deep-logs-3-logacct-transformer-parsevpc-extracts-typed-flow-fields-on-ingest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DeleteTransformer", "logs:GetLogEvents", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "logs:PutTransformer"], "path": "behavioral/logs/check_deep_logs_3_logacct_transformer_parsevpc_extracts_typed_flow_fields_on_ingest.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-transformer-policy-applies-to-new-group-and-group-transformer-overrides", "deployments": [], "key": "logs/deep-logs-3-logacct-transformer-policy-applies-to-new-group-and-group-transformer-overrides", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutAccountPolicy", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "logs:PutTransformer"], "path": "behavioral/logs/check_deep_logs_3_logacct_transformer_policy_applies_to_new_group_and_group_transformer_overrides.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-transformer-policy-overlapping-prefix-rejected", "deployments": [], "key": "logs/deep-logs-3-logacct-transformer-policy-overlapping-prefix-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteAccountPolicy", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy", "logs:PutLogEvents", "logs:PutSubscriptionFilter"], "path": "behavioral/logs/check_deep_logs_3_logacct_transformer_policy_overlapping_prefix_rejected.py", "service": "logs"} {"check_id": "logs.deep-logs-3-logacct-transformer-typeconverter-casts-fields-on-ingest", "deployments": [], "key": "logs/deep-logs-3-logacct-transformer-typeconverter-casts-fields-on-ingest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DeleteTransformer", "logs:GetLogEvents", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "logs:PutTransformer"], "path": "behavioral/logs/check_deep_logs_3_logacct_transformer_typeconverter_casts_fields_on_ingest.py", "service": "logs"} {"check_id": "logs.delete-account-policy-nonexistent-rejected", "deployments": [], "key": "logs/delete-account-policy-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_delete_account_policy_nonexistent_rejected.py", "service": "logs"} {"check_id": "logs.delete-data-protection-policy-unmasks-subsequent-events", "deployments": [], "key": "logs/delete-data-protection-policy-unmasks-subsequent-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteDataProtectionPolicy", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutDataProtectionPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_delete_data_protection_policy_unmasks_subsequent_events.py", "service": "logs"} {"check_id": "logs.delete-delivery-destination-in-use-conflict", "deployments": [], "key": "logs/delete-delivery-destination-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_delete_delivery_destination_in_use_conflict.py", "service": "logs"} {"check_id": "logs.delete-delivery-source-in-use-conflict", "deployments": [], "key": "logs/delete-delivery-source-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_delete_delivery_source_in_use_conflict.py", "service": "logs"} {"check_id": "logs.delete-delivery-source-in-use-conflict-fails", "deployments": [], "key": "logs/delete-delivery-source-in-use-conflict-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_delete_delivery_source_in_use_conflict_fails.py", "service": "logs"} {"check_id": "logs.delete-delivery-source-in-use-rejected", "deployments": [], "key": "logs/delete-delivery-source-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/logs/check_delete_delivery_source_in_use_rejected.py", "service": "logs"} {"check_id": "logs.delete-delivery-source-then-log-group-writes-unaffected", "deployments": [], "key": "logs/delete-delivery-source-then-log-group-writes-unaffected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliverySource", "logs:GetLogEvents", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_delete_delivery_source_then_log_group_writes_unaffected.py", "service": "logs"} {"check_id": "logs.delete-delivery-source-with-active-delivery-rejected", "deployments": [], "key": "logs/delete-delivery-source-with-active-delivery-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_delete_delivery_source_with_active_delivery_rejected.py", "service": "logs"} {"check_id": "logs.delete-index-policy-nonexistent-fails", "deployments": [], "key": "logs/delete-index-policy-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteIndexPolicy", "logs:DeleteLogGroup", "logs:DescribeIndexPolicies", "logs:PutIndexPolicy"], "path": "behavioral/logs/check_delete_index_policy_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.delete-integration-nonexistent-fails", "deployments": [], "key": "logs/delete-integration-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:PutRolePolicy", "logs:DeleteIntegration", "logs:GetIntegration", "logs:ListIntegrations", "logs:PutIntegration", "opensearchserverless:DeleteCollection", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_delete_integration_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.delete-integration-unknown-name-rejected", "deployments": [], "key": "logs/delete-integration-unknown-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteIntegration", "logs:GetIntegration", "logs:ListIntegrations"], "path": "behavioral/logs/check_delete_integration_unknown_name_rejected.py", "service": "logs"} {"check_id": "logs.delete-log-anomaly-detector-nonexistent-fails", "deployments": [], "key": "logs/delete-log-anomaly-detector-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogAnomalyDetector", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_delete_log_anomaly_detector_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.delete-log-group-removes-resource", "deployments": [], "key": "logs/delete-log-group-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_delete_log_group_removes_resource.py", "service": "logs"} {"check_id": "logs.delete-log-group-with-deletion-protection-rejected", "deployments": [], "key": "logs/delete-log-group-with-deletion-protection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_delete_log_group_with_deletion_protection_rejected.py", "service": "logs"} {"check_id": "logs.delete-log-stream-nonexistent-fails", "deployments": [], "key": "logs/delete-log-stream-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteLogStream", "logs:DescribeLogStreams", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_delete_log_stream_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.delete-log-stream-removes-resource", "deployments": [], "key": "logs/delete-log-stream-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteLogStream", "logs:DescribeLogStreams", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_delete_log_stream_removes_resource.py", "service": "logs"} {"check_id": "logs.delete-lookup-table-already-deleted-rejected", "deployments": [], "key": "logs/delete-lookup-table-already-deleted-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:GetLookupTable"], "path": "behavioral/logs/check_delete_lookup_table_already_deleted_rejected.py", "service": "logs"} {"check_id": "logs.delete-lookup-table-nonexistent-fails", "deployments": [], "key": "logs/delete-lookup-table-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:GetLookupTable"], "path": "behavioral/logs/check_delete_lookup_table_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.delete-metric-filter-removes-resource", "deployments": [], "key": "logs/delete-metric-filter-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogGroupDeletionProtection", "logs:PutMetricFilter"], "path": "behavioral/logs/check_delete_metric_filter_removes_resource.py", "service": "logs"} {"check_id": "logs.delete-metric-filter-stops-future-metric-emission", "deployments": [], "key": "logs/delete-metric-filter-stops-future-metric-emission", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeLogGroups", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_delete_metric_filter_stops_future_metric_emission.py", "service": "logs"} {"check_id": "logs.delete-nonexistent-account-policy-fails", "deployments": [], "key": "logs/delete-nonexistent-account-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_delete_nonexistent_account_policy_fails.py", "service": "logs"} {"check_id": "logs.delete-nonexistent-destination-fails", "deployments": [], "key": "logs/delete-nonexistent-destination-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination"], "path": "behavioral/logs/check_delete_nonexistent_destination_fails.py", "service": "logs"} {"check_id": "logs.delete-nonexistent-log-group-fails", "deployments": [], "key": "logs/delete-nonexistent-log-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/logs/check_delete_nonexistent_log_group_fails.py", "service": "logs"} {"check_id": "logs.delete-nonexistent-resource-policy-fails", "deployments": [], "key": "logs/delete-nonexistent-resource-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy"], "path": "behavioral/logs/check_delete_nonexistent_resource_policy_fails.py", "service": "logs"} {"check_id": "logs.delete-query-definition-removes-resource", "deployments": [], "key": "logs/delete-query-definition-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteQueryDefinition", "logs:DescribeQueryDefinitions", "logs:PutQueryDefinition"], "path": "behavioral/logs/check_delete_query_definition_removes_resource.py", "service": "logs"} {"check_id": "logs.delete-retention-policy-clears-value", "deployments": [], "key": "logs/delete-retention-policy-clears-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteRetentionPolicy", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_delete_retention_policy_clears_value.py", "service": "logs"} {"check_id": "logs.delete-scheduled-query-nonexistent-fails", "deployments": [], "key": "logs/delete-scheduled-query-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:GetScheduledQuery"], "path": "behavioral/logs/check_delete_scheduled_query_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.delete-subscription-filter-removes-resource", "deployments": [], "key": "logs/delete-subscription-filter-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_delete_subscription_filter_removes_resource.py", "service": "logs"} {"check_id": "logs.delete-syslog-configuration-active-listener-rejected", "deployments": [], "key": "logs/delete-syslog-configuration-active-listener-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSyslogConfiguration", "logs:DescribeLogGroups", "logs:ListSyslogConfigurations"], "path": "behavioral/logs/check_delete_syslog_configuration_active_listener_rejected.py", "service": "logs"} {"check_id": "logs.delete-transformer-nonexistent-fails", "deployments": [], "key": "logs/delete-transformer-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutTransformer"], "path": "behavioral/logs/check_delete_transformer_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.delete-transformer-then-log-events-no-longer-transformed", "deployments": [], "key": "logs/delete-transformer-then-log-events-no-longer-transformed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetLogRecord", "logs:GetQueryResults", "logs:PutLogEvents", "logs:PutTransformer", "logs:StartQuery"], "path": "behavioral/logs/check_delete_transformer_then_log_events_no_longer_transformed.py", "service": "logs"} {"check_id": "logs.deleted-log-stream-refuses-events-and-recreated-stream-starts-empty-beside-its-sibling", "deployments": [], "key": "logs/deleted-log-stream-refuses-events-and-recreated-stream-starts-empty-beside-its-sibling", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteLogStream", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deleted_log_stream_refuses_events_and_recreated_stream_starts_empty_beside_its_sibling.py", "service": "logs"} {"check_id": "logs.deletion-protected-log-group-delete-rejected", "deployments": [], "key": "logs/deletion-protected-log-group-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_deletion_protected_log_group_delete_rejected.py", "service": "logs"} {"check_id": "logs.delivery-destination-delete-blocked-by-dependent-delivery-rejected", "deployments": [], "key": "logs/delivery-destination-delete-blocked-by-dependent-delivery-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_delivery_destination_delete_blocked_by_dependent_delivery_rejected.py", "service": "logs"} {"check_id": "logs.delivery-destination-lifecycle", "deployments": [], "key": "logs/delivery-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDeliveryDestination", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:PutDeliveryDestination"], "path": "behavioral/logs/check_delivery_destination_lifecycle.py", "service": "logs"} {"check_id": "logs.delivery-destination-policy-lifecycle", "deployments": [], "key": "logs/delivery-destination-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_delivery_destination_policy_lifecycle.py", "service": "logs"} {"check_id": "logs.delivery-destination-policy-server-enforced-on-read", "deployments": [], "key": "logs/delivery-destination-policy-server-enforced-on-read", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:GetDeliveryDestinationPolicy", "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_delivery_destination_policy_server_enforced_on_read.py", "service": "logs"} {"check_id": "logs.delivery-full-chain-lifecycle", "deployments": [], "key": "logs/delivery-full-chain-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateDelivery", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DescribeConfigurationTemplates", "logs:DescribeDeliveries", "logs:GetDelivery", "logs:GetDeliveryDestination", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:UpdateDeliveryConfiguration", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_delivery_full_chain_lifecycle.py", "service": "logs"} {"check_id": "logs.delivery-full-lifecycle-transitions", "deployments": [], "key": "logs/delivery-full-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeDeliveries", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/logs/check_delivery_full_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.delivery-lifecycle-create-update-delete", "deployments": [], "key": "logs/delivery-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateDelivery", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:UpdateDeliveryConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/logs/check_delivery_lifecycle_create_update_delete.py", "service": "logs"} {"check_id": "logs.delivery-link-create-update-delete-lifecycle", "deployments": [], "key": "logs/delivery-link-create-update-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeDeliveries", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:UpdateDeliveryConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_delivery_link_create_update_delete_lifecycle.py", "service": "logs"} {"check_id": "logs.delivery-source-and-destination-lifecycle", "deployments": [], "key": "logs/delivery-source-and-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/logs/check_delivery_source_and_destination_lifecycle.py", "service": "logs"} {"check_id": "logs.delivery-source-conflict-different-resource-rejected", "deployments": [], "key": "logs/delivery-source-conflict-different-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteDeliverySource", "logs:GetDeliverySource", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_delivery_source_conflict_different_resource_rejected.py", "service": "logs"} {"check_id": "logs.delivery-source-destination-lifecycle", "deployments": [], "key": "logs/delivery-source-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:PutLogGroupDeletionProtection", "s3:CreateBucket", "s3:PutBucketTagging"], "path": "behavioral/logs/check_delivery_source_destination_lifecycle.py", "service": "logs"} {"check_id": "logs.delivery-source-lifecycle", "deployments": [], "key": "logs/delivery-source-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteDeliverySource", "logs:GetDeliverySource", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_delivery_source_lifecycle.py", "service": "logs"} {"check_id": "logs.deploy-log-group-cfn-data-protection-policy-masks-events", "deployments": [], "key": "logs/deploy-log-group-cfn-data-protection-policy-masks-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:GetDataProtectionPolicy", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deploy_log_group_cfn_data_protection_policy_masks_events.py", "service": "logs"} {"check_id": "logs.deploy-log-group-cfn-invalid-retention-rejected", "deployments": [], "key": "logs/deploy-log-group-cfn-invalid-retention-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_deploy_log_group_cfn_invalid_retention_rejected.py", "service": "logs"} {"check_id": "logs.deploy-log-group-cfn-rename-replaces-group-and-drops-events", "deployments": [], "key": "logs/deploy-log-group-cfn-rename-replaces-group-and-drops-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deploy_log_group_cfn_rename_replaces_group_and_drops_events.py", "service": "logs"} {"check_id": "logs.deploy-log-group-cfn-retain-policy-keeps-group-and-events", "deployments": [], "key": "logs/deploy-log-group-cfn-retain-policy-keeps-group-and-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deploy_log_group_cfn_retain_policy_keeps_group_and_events.py", "service": "logs"} {"check_id": "logs.deploy-log-group-cfn-then-put-events-succeeds", "deployments": [], "key": "logs/deploy-log-group-cfn-then-put-events-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deploy_log_group_cfn_then_put_events_succeeds.py", "service": "logs"} {"check_id": "logs.deploy-log-stream-cfn-into-missing-group-rejected", "deployments": [], "key": "logs/deploy-log-stream-cfn-into-missing-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deploy_log_stream_cfn_into_missing_group_rejected.py", "service": "logs"} {"check_id": "logs.deploy-logs-1-kms-log-group", "deployments": [], "key": "logs/deploy-logs-1-kms-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_deploy_logs_1_kms_log_group.py", "service": "logs"} {"check_id": "logs.deploy-metric-filter-cfn-then-emits-metric-datapoint", "deployments": [], "key": "logs/deploy-metric-filter-cfn-then-emits-metric-datapoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudwatch:GetMetricStatistics", "logs:DescribeMetricFilters", "logs:PutLogEvents"], "path": "behavioral/logs/check_deploy_metric_filter_cfn_then_emits_metric_datapoint.py", "service": "logs"} {"check_id": "logs.deploy-subscription-filter-cfn-then-forwards-to-destination", "deployments": [], "key": "logs/deploy-subscription-filter-cfn-then-forwards-to-destination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:DescribeSubscriptionFilters", "logs:PutLogEvents"], "path": "behavioral/logs/check_deploy_subscription_filter_cfn_then_forwards_to_destination.py", "service": "logs"} {"check_id": "logs.describe-configuration-templates-lists-defaults", "deployments": [], "key": "logs/describe-configuration-templates-lists-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DescribeConfigurationTemplates"], "path": "behavioral/logs/check_describe_configuration_templates_lists_defaults.py", "service": "logs"} {"check_id": "logs.describe-configuration-templates-returns-service-defaults", "deployments": [], "key": "logs/describe-configuration-templates-returns-service-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DescribeConfigurationTemplates"], "path": "behavioral/logs/check_describe_configuration_templates_returns_service_defaults.py", "service": "logs"} {"check_id": "logs.describe-field-indexes-reflects-policy", "deployments": [], "key": "logs/describe-field-indexes-reflects-policy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteIndexPolicy", "logs:DeleteLogGroup", "logs:DescribeFieldIndexes", "logs:PutIndexPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_describe_field_indexes_reflects_policy.py", "service": "logs"} {"check_id": "logs.describe-log-groups-pagination-no-duplicates", "deployments": [], "key": "logs/describe-log-groups-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_describe_log_groups_pagination_no_duplicates.py", "service": "logs"} {"check_id": "logs.describe-log-streams-order-by-last-event-time", "deployments": [], "key": "logs/describe-log-streams-order-by-last-event-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:PutLogEvents"], "path": "behavioral/logs/check_describe_log_streams_order_by_last_event_time.py", "service": "logs"} {"check_id": "logs.describe-log-streams-prefix-and-orderby-conflict-fails", "deployments": [], "key": "logs/describe-log-streams-prefix-and-orderby-conflict-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_describe_log_streams_prefix_and_orderby_conflict_fails.py", "service": "logs"} {"check_id": "logs.describe-metric-filters-multiple-filters-per-group-distinct", "deployments": [], "key": "logs/describe-metric-filters-multiple-filters-per-group-distinct", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_describe_metric_filters_multiple_filters_per_group_distinct.py", "service": "logs"} {"check_id": "logs.describe-metric-filters-name-prefix-filtering", "deployments": [], "key": "logs/describe-metric-filters-name-prefix-filtering", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:PutMetricFilter"], "path": "behavioral/logs/check_describe_metric_filters_name_prefix_filtering.py", "service": "logs"} {"check_id": "logs.describe-queries-lists-inflight-and-completed", "deployments": [], "key": "logs/describe-queries-lists-inflight-and-completed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_describe_queries_lists_inflight_and_completed.py", "service": "logs"} {"check_id": "logs.describe-queries-lists-running-and-completed", "deployments": [], "key": "logs/describe-queries-lists-running-and-completed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_describe_queries_lists_running_and_completed.py", "service": "logs"} {"check_id": "logs.describe-queries-lists-running-and-finished", "deployments": [], "key": "logs/describe-queries-lists-running-and-finished", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_describe_queries_lists_running_and_finished.py", "service": "logs"} {"check_id": "logs.describe-subscription-filters-nonexistent-group-fails", "deployments": [], "key": "logs/describe-subscription-filters-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeSubscriptionFilters"], "path": "behavioral/logs/check_describe_subscription_filters_nonexistent_group_fails.py", "service": "logs"} {"check_id": "logs.destination-lifecycle", "deployments": [], "key": "logs/destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination", "logs:PutDestinationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_destination_lifecycle.py", "service": "logs"} {"check_id": "logs.destination-lifecycle-create-describe-delete", "deployments": [], "key": "logs/destination-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination"], "path": "behavioral/logs/check_destination_lifecycle_create_describe_delete.py", "service": "logs"} {"check_id": "logs.destination-lifecycle-transitions", "deployments": [], "key": "logs/destination-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination", "logs:PutDestinationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_destination_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.destination-policy-enforces-cross-account-subscription", "deployments": [], "key": "logs/destination-policy-enforces-cross-account-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:CreateLogGroup", "logs:DeleteDestination", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeDestinations", "logs:DescribeSubscriptionFilters", "logs:PutDestination", "logs:PutDestinationPolicy", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_destination_policy_enforces_cross_account_subscription.py", "service": "logs"} {"check_id": "logs.disabled-cmk-reads-blocked-until-key-reenabled", "deployments": [], "key": "logs/disabled-cmk-reads-blocked-until-key-reenabled", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_disabled_cmk_reads_blocked_until_key_reenabled.py", "service": "logs"} {"check_id": "logs.disassociate-kms-key-nonexistent-log-group-fails", "deployments": [], "key": "logs/disassociate-kms-key-nonexistent-log-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DisassociateKmsKey"], "path": "behavioral/logs/check_disassociate_kms_key_nonexistent_log_group_fails.py", "service": "logs"} {"check_id": "logs.disassociate-kms-key-without-association-is-a-no-op", "deployments": [], "key": "logs/disassociate-kms-key-without-association-is-a-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey"], "path": "behavioral/logs/check_disassociate_kms_key_without_association_is_a_no_op.py", "service": "logs"} {"check_id": "logs.disassociate-source-not-associated-fails", "deployments": [], "key": "logs/disassociate-source-not-associated-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DisassociateSourceFromS3TableIntegration"], "path": "behavioral/logs/check_disassociate_source_not_associated_fails.py", "service": "logs"} {"check_id": "logs.disassociate-source-unknown-identifier-rejected", "deployments": [], "key": "logs/disassociate-source-unknown-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:AssociateSourceToS3TableIntegration", "logs:DisassociateSourceFromS3TableIntegration", "logs:ListSourcesForS3TableIntegration", "observabilityadmin:CreateS3TableIntegration", "observabilityadmin:DeleteS3TableIntegration", "observabilityadmin:GetS3TableIntegration", "observabilityadmin:ListS3TableIntegrations", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_disassociate_source_unknown_identifier_rejected.py", "service": "logs"} {"check_id": "logs.e2e-delivery-missing-source-rejected", "deployments": [], "key": "logs/e2e-delivery-missing-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeDeliveries", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:GetDeliveryDestination", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_e2e_delivery_missing_source_rejected.py", "service": "logs"} {"check_id": "logs.e2e-delivery-pipeline-log-flow", "deployments": [], "key": "logs/e2e-delivery-pipeline-log-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:GetDeliveryDestination", "logs:GetDeliverySource", "logs:GetLogEvents", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_e2e_delivery_pipeline_log_flow.py", "service": "logs"} {"check_id": "logs.e2e-export-task-produces-s3-object-with-log-content", "deployments": [], "key": "logs/e2e-export-task-produces-s3-object-with-log-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/logs/check_e2e_export_task_produces_s3_object_with_log_content.py", "service": "logs"} {"check_id": "logs.e2e-export-task-rejected-for-invalid-input", "deployments": [], "key": "logs/e2e-export-task-rejected-for-invalid-input", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_e2e_export_task_rejected_for_invalid_input.py", "service": "logs"} {"check_id": "logs.e2e-log-group-subscription-destination-delivery-flow", "deployments": [], "key": "logs/e2e-log-group-subscription-destination-delivery-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteDestination", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:PutDestination", "logs:PutDestinationPolicy", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_e2e_log_group_subscription_destination_delivery_flow.py", "service": "logs"} {"check_id": "logs.e2e-lookup-table-enriches-transformed-log-record", "deployments": [], "key": "logs/e2e-lookup-table-enriches-transformed-log-record", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:DescribeLookupTables", "logs:GetLookupTable", "logs:UpdateLookupTable", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_e2e_lookup_table_enriches_transformed_log_record.py", "service": "logs"} {"check_id": "logs.e2e-lookup-table-enrichment-flow", "deployments": [], "key": "logs/e2e-lookup-table-enrichment-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:CreateLookupTable", "logs:DeleteLogGroup", "logs:DeleteLookupTable", "logs:GetLookupTable", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_e2e_lookup_table_enrichment_flow.py", "service": "logs"} {"check_id": "logs.e2e-scheduled-query-history-contains-real-results", "deployments": [], "key": "logs/e2e-scheduled-query-history-contains-real-results", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:GetQueryResults", "logs:GetScheduledQuery", "logs:GetScheduledQueryHistory", "logs:PutLogEvents"], "path": "behavioral/logs/check_e2e_scheduled_query_history_contains_real_results.py", "service": "logs"} {"check_id": "logs.e2e-scheduled-query-to-results-flow", "deployments": [], "key": "logs/e2e-scheduled-query-to-results-flow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:DescribeLogGroups", "logs:GetQueryResults", "logs:GetScheduledQuery", "logs:GetScheduledQueryHistory", "logs:PutLogEvents"], "path": "behavioral/logs/check_e2e_scheduled_query_to_results_flow.py", "service": "logs"} {"check_id": "logs.e2e-subscription-filter-invalid-role-rejected", "deployments": [], "key": "logs/e2e-subscription-filter-invalid-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutSubscriptionFilter"], "path": "behavioral/logs/check_e2e_subscription_filter_invalid_role_rejected.py", "service": "logs"} {"check_id": "logs.embedded-metric-format-event-extracts-only-the-declared-metric", "deployments": [], "key": "logs/embedded-metric-format-event-extracts-only-the-declared-metric", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_embedded_metric_format_event_extracts_only_the_declared_metric.py", "service": "logs"} {"check_id": "logs.export-task-cancel-lifecycle", "deployments": [], "key": "logs/export-task-cancel-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/logs/check_export_task_cancel_lifecycle.py", "service": "logs"} {"check_id": "logs.export-task-cancel-ordering", "deployments": [], "key": "logs/export-task-cancel-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:DescribeLogGroups", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_export_task_cancel_ordering.py", "service": "logs"} {"check_id": "logs.export-task-cancel-terminal-state-rejected", "deployments": [], "key": "logs/export-task-cancel-terminal-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_export_task_cancel_terminal_state_rejected.py", "service": "logs"} {"check_id": "logs.export-task-cancel-transitions-to-cancelled", "deployments": [], "key": "logs/export-task-cancel-transitions-to-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_export_task_cancel_transitions_to_cancelled.py", "service": "logs"} {"check_id": "logs.export-task-honors-time-window-boundaries", "deployments": [], "key": "logs/export-task-honors-time-window-boundaries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:GetLogEvents", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_export_task_honors_time_window_boundaries.py", "service": "logs"} {"check_id": "logs.export-task-server-managed-completion", "deployments": [], "key": "logs/export-task-server-managed-completion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_export_task_server_managed_completion.py", "service": "logs"} {"check_id": "logs.export-task-time-range-window-respected", "deployments": [], "key": "logs/export-task-time-range-window-respected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:GetLogEvents", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_export_task_time_range_window_respected.py", "service": "logs"} {"check_id": "logs.export-task-unknown-id-semantics", "deployments": [], "key": "logs/export-task-unknown-id-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_export_task_unknown_id_semantics.py", "service": "logs"} {"check_id": "logs.field-index-policy-lifecycle", "deployments": [], "key": "logs/field-index-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteIndexPolicy", "logs:DeleteLogGroup", "logs:DescribeFieldIndexes", "logs:DescribeIndexPolicies", "logs:PutIndexPolicy", "logs:PutLogEvents"], "path": "behavioral/logs/check_field_index_policy_lifecycle.py", "service": "logs"} {"check_id": "logs.filter-log-events-bare-exists-selector-rejected", "deployments": [], "key": "logs/filter-log-events-bare-exists-selector-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:TestMetricFilter"], "path": "behavioral/logs/check_filter_log_events_bare_exists_selector_rejected.py", "service": "logs"} {"check_id": "logs.filter-log-events-cross-stream-chronological-ordering", "deployments": [], "key": "logs/filter-log-events-cross-stream-chronological-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_filter_log_events_cross_stream_chronological_ordering.py", "service": "logs"} {"check_id": "logs.filter-log-events-json-selector-existence-null-boolean-and-array-operators", "deployments": [], "key": "logs/filter-log-events-json-selector-existence-null-boolean-and-array-operators", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:TestMetricFilter"], "path": "behavioral/logs/check_filter_log_events_json_selector_existence_null_boolean_and_array_operators.py", "service": "logs"} {"check_id": "logs.filter-log-events-json-selector-grammar", "deployments": [], "key": "logs/filter-log-events-json-selector-grammar", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_filter_log_events_json_selector_grammar.py", "service": "logs"} {"check_id": "logs.filter-log-events-matches-pattern", "deployments": [], "key": "logs/filter-log-events-matches-pattern", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_filter_log_events_matches_pattern.py", "service": "logs"} {"check_id": "logs.filter-log-events-multi-stream-chronological-merge", "deployments": [], "key": "logs/filter-log-events-multi-stream-chronological-merge", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_filter_log_events_multi_stream_chronological_merge.py", "service": "logs"} {"check_id": "logs.filter-log-events-pattern-selects-exactly-the-matching-events", "deployments": [], "key": "logs/filter-log-events-pattern-selects-exactly-the-matching-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_filter_log_events_pattern_selects_exactly_the_matching_events.py", "service": "logs"} {"check_id": "logs.filter-log-events-unstructured-pattern-grammar", "deployments": [], "key": "logs/filter-log-events-unstructured-pattern-grammar", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_filter_log_events_unstructured_pattern_grammar.py", "service": "logs"} {"check_id": "logs.get-data-protection-policy-nonexistent-log-group-rejected", "deployments": [], "key": "logs/get-data-protection-policy-nonexistent-log-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDataProtectionPolicy", "logs:PutDataProtectionPolicy"], "path": "behavioral/logs/check_get_data_protection_policy_nonexistent_log_group_rejected.py", "service": "logs"} {"check_id": "logs.get-deleted-log-anomaly-detector-fails", "deployments": [], "key": "logs/get-deleted-log-anomaly-detector-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogAnomalyDetector"], "path": "behavioral/logs/check_get_deleted_log_anomaly_detector_fails.py", "service": "logs"} {"check_id": "logs.get-deleted-lookup-table-fails", "deployments": [], "key": "logs/get-deleted-lookup-table-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:GetLookupTable"], "path": "behavioral/logs/check_get_deleted_lookup_table_fails.py", "service": "logs"} {"check_id": "logs.get-delivery-destination-policy-nonexistent-fails", "deployments": [], "key": "logs/get-delivery-destination-policy-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:PutDeliveryDestination", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_get_delivery_destination_policy_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.get-delivery-destination-policy-returns-empty-when-unset", "deployments": [], "key": "logs/get-delivery-destination-policy-returns-empty-when-unset", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDeliveryDestination", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_get_delivery_destination_policy_returns_empty_when_unset.py", "service": "logs"} {"check_id": "logs.get-delivery-nonexistent-fails", "deployments": [], "key": "logs/get-delivery-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_get_delivery_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.get-delivery-reflects-actual-record-fields-after-events-flow", "deployments": [], "key": "logs/get-delivery-reflects-actual-record-fields-after-events-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateDelivery", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/logs/check_get_delivery_reflects_actual_record_fields_after_events_flow.py", "service": "logs"} {"check_id": "logs.get-integration-nonexistent-fails", "deployments": [], "key": "logs/get-integration-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:GetIntegration"], "path": "behavioral/logs/check_get_integration_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.get-integration-status-transitions-creating-to-active", "deployments": [], "key": "logs/get-integration-status-transitions-creating-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:DeleteIntegration", "logs:GetIntegration", "logs:ListIntegrations", "logs:PutIntegration"], "path": "behavioral/logs/check_get_integration_status_transitions_creating_to_active.py", "service": "logs"} {"check_id": "logs.get-log-anomaly-detector-nonexistent-fails", "deployments": [], "key": "logs/get-log-anomaly-detector-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogAnomalyDetector", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_get_log_anomaly_detector_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.get-log-events-forward-order", "deployments": [], "key": "logs/get-log-events-forward-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_get_log_events_forward_order.py", "service": "logs"} {"check_id": "logs.get-log-events-nonexistent-group-fails", "deployments": [], "key": "logs/get-log-events-nonexistent-group-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_get_log_events_nonexistent_group_fails.py", "service": "logs"} {"check_id": "logs.get-log-events-pagination-returns-each-event-exactly-once", "deployments": [], "key": "logs/get-log-events-pagination-returns-each-event-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_get_log_events_pagination_returns_each_event_exactly_once.py", "service": "logs"} {"check_id": "logs.get-log-events-pagination-token-exactness", "deployments": [], "key": "logs/get-log-events-pagination-token-exactness", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_get_log_events_pagination_token_exactness.py", "service": "logs"} {"check_id": "logs.get-log-fields-and-group-fields-return-schema", "deployments": [], "key": "logs/get-log-fields-and-group-fields-return-schema", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogFields", "logs:GetLogGroupFields", "logs:PutLogEvents", "logs:TagLogGroup"], "path": "behavioral/logs/check_get_log_fields_and_group_fields_return_schema.py", "service": "logs"} {"check_id": "logs.get-log-fields-nonexistent-group-succeeds", "deployments": [], "key": "logs/get-log-fields-nonexistent-group-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:GetLogFields"], "path": "behavioral/logs/check_get_log_fields_nonexistent_group_succeeds.py", "service": "logs"} {"check_id": "logs.get-log-group-fields-from-query-results", "deployments": [], "key": "logs/get-log-group-fields-from-query-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogGroupFields", "logs:PutLogEvents"], "path": "behavioral/logs/check_get_log_group_fields_from_query_results.py", "service": "logs"} {"check_id": "logs.get-log-object-access-denied-enforced", "deployments": [], "key": "logs/get-log-object-access-denied-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DescribeLogGroups", "logs:GetLogObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_get_log_object_access_denied_enforced.py", "service": "logs"} {"check_id": "logs.get-log-object-download-url-ttl", "deployments": [], "key": "logs/get-log-object-download-url-ttl", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogObject"], "path": "behavioral/logs/check_get_log_object_download_url_ttl.py", "service": "logs"} {"check_id": "logs.get-log-object-retrieves-event-payload", "deployments": [], "key": "logs/get-log-object-retrieves-event-payload", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:DescribeLogGroups", "logs:GetLogObject"], "path": "behavioral/logs/check_get_log_object_retrieves_event_payload.py", "service": "logs"} {"check_id": "logs.get-log-object-returns-raw-payload", "deployments": [], "key": "logs/get-log-object-returns-raw-payload", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:GetLogObject"], "path": "behavioral/logs/check_get_log_object_returns_raw_payload.py", "service": "logs"} {"check_id": "logs.get-log-object-unauthorized-rejected", "deployments": [], "key": "logs/get-log-object-unauthorized-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetLogObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_get_log_object_unauthorized_rejected.py", "service": "logs"} {"check_id": "logs.get-log-record-field-values-match-query-results-pointer", "deployments": [], "key": "logs/get-log-record-field-values-match-query-results-pointer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogRecord", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_get_log_record_field_values_match_query_results_pointer.py", "service": "logs"} {"check_id": "logs.get-log-record-from-query-result", "deployments": [], "key": "logs/get-log-record-from-query-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogRecord", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_get_log_record_from_query_result.py", "service": "logs"} {"check_id": "logs.get-log-record-returns-full-event", "deployments": [], "key": "logs/get-log-record-returns-full-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogRecord", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_get_log_record_returns_full_event.py", "service": "logs"} {"check_id": "logs.get-scheduled-query-history-orders-executions-by-actual-run-time", "deployments": [], "key": "logs/get-scheduled-query-history-orders-executions-by-actual-run-time", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:GetQueryResults", "logs:GetScheduledQueryHistory", "logs:PutLogEvents"], "path": "behavioral/logs/check_get_scheduled_query_history_orders_executions_by_actual_run_time.py", "service": "logs"} {"check_id": "logs.get-storage-tier-policy-access-denied-without-permission", "deployments": [], "key": "logs/get-storage-tier-policy-access-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:GetStorageTierPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_get_storage_tier_policy_access_denied_without_permission.py", "service": "logs"} {"check_id": "logs.get-storage-tier-policy-reflects-put-storage-tier-policy", "deployments": [], "key": "logs/get-storage-tier-policy-reflects-put-storage-tier-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:GetStorageTierPolicy", "logs:PutStorageTierPolicy"], "path": "behavioral/logs/check_get_storage_tier_policy_reflects_put_storage_tier_policy.py", "service": "logs"} {"check_id": "logs.index-policy-lifecycle", "deployments": [], "key": "logs/index-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteIndexPolicy", "logs:DeleteLogGroup", "logs:DescribeIndexPolicies", "logs:PutIndexPolicy"], "path": "behavioral/logs/check_index_policy_lifecycle.py", "service": "logs"} {"check_id": "logs.infrequent-access-log-group-class-restrictions", "deployments": [], "key": "logs/infrequent-access-log-group-class-restrictions", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:DescribeMetricFilters", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:GetQueryResults", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:StartLiveTail", "logs:StartQuery"], "path": "behavioral/logs/check_infrequent_access_log_group_class_restrictions.py", "service": "logs"} {"check_id": "logs.insights-stats-aggregation-and-statistics", "deployments": [], "key": "logs/insights-stats-aggregation-and-statistics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_insights_stats_aggregation_and_statistics.py", "service": "logs"} {"check_id": "logs.integration-lifecycle-transitions", "deployments": [], "key": "logs/integration-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:DeleteIntegration", "logs:GetIntegration", "logs:ListIntegrations", "logs:PutIntegration", "opensearchserverless:DeleteCollection"], "path": "behavioral/logs/check_integration_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.invalid-parameter-validation-on-create", "deployments": [], "key": "logs/invalid-parameter-validation-on-create", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteLogStream", "logs:DeleteRetentionPolicy", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:DisassociateKmsKey", "logs:PutLogEvents", "logs:PutRetentionPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_invalid_parameter_validation_on_create.py", "service": "logs"} {"check_id": "logs.kms-grant-scoped-to-another-log-group-rejected", "deployments": [], "key": "logs/kms-grant-scoped-to-another-log-group-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_kms_grant_scoped_to_another_log_group_rejected.py", "service": "logs"} {"check_id": "logs.kms-key-association-lifecycle", "deployments": [], "key": "logs/kms-key-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_kms_key_association_lifecycle.py", "service": "logs"} {"check_id": "logs.kms-key-association-lifecycle-transitions", "deployments": [], "key": "logs/kms-key-association-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:AssociateKmsKey", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DisassociateKmsKey", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_kms_key_association_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.limit-exceeded-triggers", "deployments": [], "key": "logs/limit-exceeded-triggers", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["logs:AssociateSourceToS3TableIntegration", "logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:CreateLookupTable", "logs:DeleteAccountPolicy", "logs:DeleteDataProtectionPolicy", "logs:DeleteDestination", "logs:DeleteIndexPolicy", "logs:DeleteIntegration", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DeleteLookupTable", "logs:DeleteMetricFilter", "logs:DeleteQueryDefinition", "logs:DeleteResourcePolicy", "logs:DescribeAccountPolicies", "logs:DescribeExportTasks", "logs:DescribeFieldIndexes", "logs:DescribeIndexPolicies", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:GetLogAnomalyDetector", "logs:GetLogEvents", "logs:GetLogGroupFields", "logs:GetLogRecord", "logs:GetQueryResults", "logs:PutAccountPolicy", "logs:PutDataProtectionPolicy", "logs:PutIndexPolicy", "logs:PutIntegration", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutQueryDefinition", "logs:PutResourcePolicy", "logs:PutSubscriptionFilter", "logs:PutTransformer", "logs:StartQuery", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_limit_exceeded_triggers.py", "service": "logs"} {"check_id": "logs.list-aggregate-log-group-summaries-cross-account", "deployments": [], "key": "logs/list-aggregate-log-group-summaries-cross-account", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:ListAggregateLogGroupSummaries", "logs:PutLogEvents"], "path": "behavioral/logs/check_list_aggregate_log_group_summaries_cross_account.py", "service": "logs"} {"check_id": "logs.list-aggregate-log-group-summaries-reflects-groups", "deployments": [], "key": "logs/list-aggregate-log-group-summaries-reflects-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:ListAggregateLogGroupSummaries", "logs:PutLogEvents"], "path": "behavioral/logs/check_list_aggregate_log_group_summaries_reflects_groups.py", "service": "logs"} {"check_id": "logs.list-anomalies-then-update-state", "deployments": [], "key": "logs/list-anomalies-then-update-state", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListAnomalies", "logs:UpdateAnomaly"], "path": "behavioral/logs/check_list_anomalies_then_update_state.py", "service": "logs"} {"check_id": "logs.list-integrations-reflects-creation-order-stable", "deployments": [], "key": "logs/list-integrations-reflects-creation-order-stable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:DeleteIntegration", "logs:GetIntegration", "logs:ListIntegrations", "logs:PutIntegration", "opensearchserverless:DeleteCollection"], "path": "behavioral/logs/check_list_integrations_reflects_creation_order_stable.py", "service": "logs"} {"check_id": "logs.list-log-anomaly-detectors-reflects-lifecycle-changes", "deployments": [], "key": "logs/list-log-anomaly-detectors-reflects-lifecycle-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogAnomalyDetector", "logs:ListLogAnomalyDetectors"], "path": "behavioral/logs/check_list_log_anomaly_detectors_reflects_lifecycle_changes.py", "service": "logs"} {"check_id": "logs.list-log-groups-for-query-scoped-results", "deployments": [], "key": "logs/list-log-groups-for-query-scoped-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:ListLogGroupsForQuery", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_list_log_groups_for_query_scoped_results.py", "service": "logs"} {"check_id": "logs.list-log-groups-for-query-scopes-to-query", "deployments": [], "key": "logs/list-log-groups-for-query-scopes-to-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:ListLogGroupsForQuery", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_list_log_groups_for_query_scopes_to_query.py", "service": "logs"} {"check_id": "logs.list-log-groups-paginates-all-groups", "deployments": [], "key": "logs/list-log-groups-paginates-all-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:ListLogGroups"], "path": "behavioral/logs/check_list_log_groups_paginates_all_groups.py", "service": "logs"} {"check_id": "logs.list-log-groups-reflects-created-group", "deployments": [], "key": "logs/list-log-groups-reflects-created-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListLogGroups"], "path": "behavioral/logs/check_list_log_groups_reflects_created_group.py", "service": "logs"} {"check_id": "logs.list-lookup-tables-reflects-create-and-delete", "deployments": [], "key": "logs/list-lookup-tables-reflects-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:DescribeLookupTables", "logs:GetLookupTable"], "path": "behavioral/logs/check_list_lookup_tables_reflects_create_and_delete.py", "service": "logs"} {"check_id": "logs.list-scheduled-queries-deterministic-ordering", "deployments": [], "key": "logs/list-scheduled-queries-deterministic-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:DescribeLogGroups", "logs:ListScheduledQueries"], "path": "behavioral/logs/check_list_scheduled_queries_deterministic_ordering.py", "service": "logs"} {"check_id": "logs.list-syslog-configurations-reflects-put-and-delete", "deployments": [], "key": "logs/list-syslog-configurations-reflects-put-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeVpcEndpoints", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSyslogConfiguration", "logs:DescribeLogGroups", "logs:ListSyslogConfigurations", "logs:PutSyslogConfiguration"], "path": "behavioral/logs/check_list_syslog_configurations_reflects_put_and_delete.py", "service": "logs"} {"check_id": "logs.list-validation-error-semantics", "deployments": [], "key": "logs/list-validation-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:ListAggregateLogGroupSummaries", "logs:ListLogGroupsForQuery"], "path": "behavioral/logs/check_list_validation_error_semantics.py", "service": "logs"} {"check_id": "logs.live-tail-excludes-pre-subscription-events-and-honours-the-filter", "deployments": [], "key": "logs/live-tail-excludes-pre-subscription-events-and-honours-the-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:StartLiveTail"], "path": "behavioral/logs/check_live_tail_excludes_pre_subscription_events_and_honours_the_filter.py", "service": "logs"} {"check_id": "logs.live-tail-session-behavior", "deployments": [], "key": "logs/live-tail-session-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:StartLiveTail", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_live_tail_session_behavior.py", "service": "logs"} {"check_id": "logs.log-anomaly-detector-lifecycle", "deployments": [], "key": "logs/log-anomaly-detector-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogAnomalyDetector", "logs:ListLogAnomalyDetectors", "logs:UpdateLogAnomalyDetector"], "path": "behavioral/logs/check_log_anomaly_detector_lifecycle.py", "service": "logs"} {"check_id": "logs.log-cwl-plumbing-live-tail-stream-names-scope-delivers-only-the-named-stream", "deployments": [], "key": "logs/log-cwl-plumbing-live-tail-stream-names-scope-delivers-only-the-named-stream", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:StartLiveTail", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_log_cwl_plumbing_live_tail_stream_names_scope_delivers_only_the_named_stream.py", "service": "logs"} {"check_id": "logs.log-cwl-plumbing-live-tail-stream-scope-rejected-across-two-log-groups", "deployments": [], "key": "logs/log-cwl-plumbing-live-tail-stream-scope-rejected-across-two-log-groups", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogEvents", "logs:StartLiveTail", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_log_cwl_plumbing_live_tail_stream_scope_rejected_across_two_log_groups.py", "service": "logs"} {"check_id": "logs.log-events-time-window-boundary-semantics", "deployments": [], "key": "logs/log-events-time-window-boundary-semantics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_log_events_time_window_boundary_semantics.py", "service": "logs"} {"check_id": "logs.log-fields-and-record-pointer-errors-rejected", "deployments": [], "key": "logs/log-fields-and-record-pointer-errors-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogFields", "logs:GetLogGroupFields", "logs:GetLogObject", "logs:GetLogRecord", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_log_fields_and_record_pointer_errors_rejected.py", "service": "logs"} {"check_id": "logs.log-group-listing-and-aggregate-summaries-visible", "deployments": [], "key": "logs/log-group-listing-and-aggregate-summaries-visible", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetQueryResults", "logs:ListAggregateLogGroupSummaries", "logs:ListLogGroups", "logs:ListLogGroupsForQuery", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_log_group_listing_and_aggregate_summaries_visible.py", "service": "logs"} {"check_id": "logs.logs-insights-get-query-results-paginates-cwli-results-into-disjoint-pages", "deployments": [], "key": "logs/logs-insights-get-query-results-paginates-cwli-results-into-disjoint-pages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_get_query_results_paginates_cwli_results_into_disjoint_pages.py", "service": "logs"} {"check_id": "logs.logs-insights-get-query-results-query-id-is-a-durable-snapshot-handle", "deployments": [], "key": "logs/logs-insights-get-query-results-query-id-is-a-durable-snapshot-handle", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogRecord", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_logs_insights_get_query_results_query_id_is_a_durable_snapshot_handle.py", "service": "logs"} {"check_id": "logs.logs-insights-get-query-results-row-entries-follow-the-projection", "deployments": [], "key": "logs/logs-insights-get-query-results-row-entries-follow-the-projection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_get_query_results_row_entries_follow_the_projection.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-both-log-group-selectors-rejected", "deployments": [], "key": "logs/logs-insights-semantics-both-log-group-selectors-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_logs_insights_semantics_both_log_group_selectors_rejected.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-fields-rename-and-reserved-fields", "deployments": [], "key": "logs/logs-insights-semantics-fields-rename-and-reserved-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_logs_insights_semantics_fields_rename_and_reserved_fields.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-filter-events-metric-filter-and-insights-agree", "deployments": [], "key": "logs/logs-insights-semantics-filter-events-metric-filter-and-insights-agree", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:GetQueryResults", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:StartQuery", "logs:TestMetricFilter"], "path": "behavioral/logs/check_logs_insights_semantics_filter_events_metric_filter_and_insights_agree.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-filter-operators-select-exact-sets", "deployments": [], "key": "logs/logs-insights-semantics-filter-operators-select-exact-sets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_semantics_filter_operators_select_exact_sets.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-multi-group-rows-attributed-via-log", "deployments": [], "key": "logs/logs-insights-semantics-multi-group-rows-attributed-via-log", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_logs_insights_semantics_multi_group_rows_attributed_via_log.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-no-matching-data-completes-with-empty-results", "deployments": [], "key": "logs/logs-insights-semantics-no-matching-data-completes-with-empty-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_semantics_no_matching_data_completes_with_empty_results.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-parse-glob-and-named-capture-extract-planted-values", "deployments": [], "key": "logs/logs-insights-semantics-parse-glob-and-named-capture-extract-planted-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_semantics_parse_glob_and_named_capture_extract_planted_values.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-semantic-error-rejected-at-start", "deployments": [], "key": "logs/logs-insights-semantics-semantic-error-rejected-at-start", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_logs_insights_semantics_semantic_error_rejected_at_start.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-sort-limit-dedup-display-arithmetic", "deployments": [], "key": "logs/logs-insights-semantics-sort-limit-dedup-display-arithmetic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_semantics_sort_limit_dedup_display_arithmetic.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-stats-aggregates-by-field-match-hand-computation", "deployments": [], "key": "logs/logs-insights-semantics-stats-aggregates-by-field-match-hand-computation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_semantics_stats_aggregates_by_field_match_hand_computation.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-stats-bin-one-minute-buckets-at-boundaries", "deployments": [], "key": "logs/logs-insights-semantics-stats-bin-one-minute-buckets-at-boundaries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_semantics_stats_bin_one_minute_buckets_at_boundaries.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-status-progression-and-record-statistics", "deployments": [], "key": "logs/logs-insights-semantics-status-progression-and-record-statistics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_semantics_status_progression_and_record_statistics.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-stop-running-query-reports-cancelled", "deployments": [], "key": "logs/logs-insights-semantics-stop-running-query-reports-cancelled", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_logs_insights_semantics_stop_running_query_reports_cancelled.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-syntax-error-rejected-at-start", "deployments": [], "key": "logs/logs-insights-semantics-syntax-error-rejected-at-start", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_logs_insights_semantics_syntax_error_rejected_at_start.py", "service": "logs"} {"check_id": "logs.logs-insights-semantics-unknown-log-group-rejected-at-start", "deployments": [], "key": "logs/logs-insights-semantics-unknown-log-group-rejected-at-start", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_logs_insights_semantics_unknown_log_group_rejected_at_start.py", "service": "logs"} {"check_id": "logs.logs-insights-start-query-limit-parameter-bounds-the-rows", "deployments": [], "key": "logs/logs-insights-start-query-limit-parameter-bounds-the-rows", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logs_insights_start_query_limit_parameter_bounds_the_rows.py", "service": "logs"} {"check_id": "logs.logs-lambda-emits-to-log-group", "deployments": [], "key": "logs/logs-lambda-emits-to-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:FilterLogEvents"], "path": "behavioral/logs/check_logs_lambda_emits_to_log_group.py", "service": "logs"} {"check_id": "logs.logs-metric-filter-increments-metric", "deployments": [], "key": "logs/logs-metric-filter-increments-metric", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_logs_metric_filter_increments_metric.py", "service": "logs"} {"check_id": "logs.logsquery-display-projects-only-the-named-fields", "deployments": [], "key": "logs/logsquery-display-projects-only-the-named-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_display_projects_only_the_named_fields.py", "service": "logs"} {"check_id": "logs.logsquery-limit-truncates-rows-while-recordsmatched-counts-all", "deployments": [], "key": "logs/logsquery-limit-truncates-rows-while-recordsmatched-counts-all", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_limit_truncates_rows_while_recordsmatched_counts_all.py", "service": "logs"} {"check_id": "logs.logsquery-parse-glob-extracts-fields-from-unstructured-lines", "deployments": [], "key": "logs/logsquery-parse-glob-extracts-fields-from-unstructured-lines", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_parse_glob_extracts_fields_from_unstructured_lines.py", "service": "logs"} {"check_id": "logs.logsquery-parse-then-numeric-aggregates-match-the-seeded-values", "deployments": [], "key": "logs/logsquery-parse-then-numeric-aggregates-match-the-seeded-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_parse_then_numeric_aggregates_match_the_seeded_values.py", "service": "logs"} {"check_id": "logs.logsquery-parse-with-an-unclosed-regex-group-rejected", "deployments": [], "key": "logs/logsquery-parse-with-an-unclosed-regex-group-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_parse_with_an_unclosed_regex_group_rejected.py", "service": "logs"} {"check_id": "logs.logsquery-redefining-a-parsed-field-rejected", "deployments": [], "key": "logs/logsquery-redefining-a-parsed-field-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_redefining_a_parsed_field_rejected.py", "service": "logs"} {"check_id": "logs.logsquery-sort-on-a-parsed-number-orders-numerically", "deployments": [], "key": "logs/logsquery-sort-on-a-parsed-number-orders-numerically", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_sort_on_a_parsed_number_orders_numerically.py", "service": "logs"} {"check_id": "logs.logsquery-stats-group-key-absent-for-events-without-the-field", "deployments": [], "key": "logs/logsquery-stats-group-key-absent-for-events-without-the-field", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_stats_group_key_absent_for_events_without_the_field.py", "service": "logs"} {"check_id": "logs.logsquery-time-window-excludes-events-outside-the-range", "deployments": [], "key": "logs/logsquery-time-window-excludes-events-outside-the-range", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_time_window_excludes_events_outside_the_range.py", "service": "logs"} {"check_id": "logs.logsquery-window-ending-before-group-creation-rejected", "deployments": [], "key": "logs/logsquery-window-ending-before-group-creation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_logsquery_window_ending_before_group_creation_rejected.py", "service": "logs"} {"check_id": "logs.lookup-table-duplicate-name-rejected", "deployments": [], "key": "logs/lookup-table-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:GetLookupTable"], "path": "behavioral/logs/check_lookup_table_duplicate_name_rejected.py", "service": "logs"} {"check_id": "logs.lookup-table-lifecycle", "deployments": [], "key": "logs/lookup-table-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:DescribeLookupTables", "logs:GetLookupTable", "logs:UpdateLookupTable"], "path": "behavioral/logs/check_lookup_table_lifecycle.py", "service": "logs"} {"check_id": "logs.lookup-table-numeric-value-precision-preserved", "deployments": [], "key": "logs/lookup-table-numeric-value-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:GetLookupTable"], "path": "behavioral/logs/check_lookup_table_numeric_value_precision_preserved.py", "service": "logs"} {"check_id": "logs.malformed-embedded-metric-format-event-counts-an-emf-parsing-error", "deployments": [], "key": "logs/malformed-embedded-metric-format-event-counts-an-emf-parsing-error", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_malformed_embedded_metric_format_event_counts_an_emf_parsing_error.py", "service": "logs"} {"check_id": "logs.malformed-query-rejected", "deployments": [], "key": "logs/malformed-query-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_malformed_query_rejected.py", "service": "logs"} {"check_id": "logs.metric-extraction-policy-overlapping-selection-rejected", "deployments": [], "key": "logs/metric-extraction-policy-overlapping-selection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_metric_extraction_policy_overlapping_selection_rejected.py", "service": "logs"} {"check_id": "logs.metric-filter-default-value-emits-a-zero-datapoint-where-an-absent-default-emits-none", "deployments": [], "key": "logs/metric-filter-default-value-emits-a-zero-datapoint-where-an-absent-default-emits-none", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_metric_filter_default_value_emits_a_zero_datapoint_where_an_absent_default_emits_none.py", "service": "logs"} {"check_id": "logs.metric-filter-extracts-exact-value-and-ignores-non-matching-events", "deployments": [], "key": "logs/metric-filter-extracts-exact-value-and-ignores-non-matching-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_metric_filter_extracts_exact_value_and_ignores_non_matching_events.py", "service": "logs"} {"check_id": "logs.metric-filter-unit-is-attached-to-the-emitted-datapoint", "deployments": [], "key": "logs/metric-filter-unit-is-attached-to-the-emitted-datapoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_metric_filter_unit_is_attached_to_the_emitted_datapoint.py", "service": "logs"} {"check_id": "logs.op-contract-create-log-stream", "deployments": [], "key": "logs/op-contract-create-log-stream", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams"], "path": "behavioral/logs/check_op_contract_create_log_stream.py", "service": "logs"} {"check_id": "logs.op-contract-delete-log-group", "deployments": [], "key": "logs/op-contract-delete-log-group", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_op_contract_delete_log_group.py", "service": "logs"} {"check_id": "logs.op-contract-delete-log-stream", "deployments": [], "key": "logs/op-contract-delete-log-stream", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteLogStream", "logs:DescribeLogStreams"], "path": "behavioral/logs/check_op_contract_delete_log_stream.py", "service": "logs"} {"check_id": "logs.op-contract-delete-metric-filter", "deployments": [], "key": "logs/op-contract-delete-metric-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutMetricFilter"], "path": "behavioral/logs/check_op_contract_delete_metric_filter.py", "service": "logs"} {"check_id": "logs.op-contract-delete-query-definition", "deployments": [], "key": "logs/op-contract-delete-query-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteQueryDefinition", "logs:DescribeQueryDefinitions", "logs:PutQueryDefinition"], "path": "behavioral/logs/check_op_contract_delete_query_definition.py", "service": "logs"} {"check_id": "logs.op-contract-deleteResourcePolicy", "deployments": [], "key": "logs/op-contract-deleteResourcePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy"], "path": "behavioral/logs/check_op_contract_delete_resource_policy.py", "service": "logs"} {"check_id": "logs.op-contract-delete-resource-policy-stale-revision-rejected", "deployments": [], "key": "logs/op-contract-delete-resource-policy-stale-revision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy"], "path": "behavioral/logs/check_op_contract_delete_resource_policy_stale_revision_rejected.py", "service": "logs"} {"check_id": "logs.op-contract-delete-retention-policy", "deployments": [], "key": "logs/op-contract-delete-retention-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteRetentionPolicy", "logs:DescribeLogGroups", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_op_contract_delete_retention_policy.py", "service": "logs"} {"check_id": "logs.op-contract-describeLogGroups", "deployments": [], "key": "logs/op-contract-describeLogGroups", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/logs/check_op_contract_describe_log_groups.py", "service": "logs"} {"check_id": "logs.op-contract-describe-log-groups-mutually-exclusive-filters-rejected", "deployments": [], "key": "logs/op-contract-describe-log-groups-mutually-exclusive-filters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/logs/check_op_contract_describe_log_groups_mutually_exclusive_filters_rejected.py", "service": "logs"} {"check_id": "logs.op-contract-describe-log-streams", "deployments": [], "key": "logs/op-contract-describe-log-streams", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogStreams"], "path": "behavioral/logs/check_op_contract_describe_log_streams.py", "service": "logs"} {"check_id": "logs.op-contract-describeMetricFilters", "deployments": [], "key": "logs/op-contract-describeMetricFilters", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:PutMetricFilter"], "path": "behavioral/logs/check_op_contract_describe_metric_filters.py", "service": "logs"} {"check_id": "logs.op-contract-describe-query-definitions", "deployments": [], "key": "logs/op-contract-describe-query-definitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteQueryDefinition", "logs:DescribeQueryDefinitions", "logs:PutQueryDefinition"], "path": "behavioral/logs/check_op_contract_describe_query_definitions.py", "service": "logs"} {"check_id": "logs.op-contract-describe-resource-policies", "deployments": [], "key": "logs/op-contract-describe-resource-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy"], "path": "behavioral/logs/check_op_contract_describe_resource_policies.py", "service": "logs"} {"check_id": "logs.op-contract-filter-log-events", "deployments": [], "key": "logs/op-contract-filter-log-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_op_contract_filter_log_events.py", "service": "logs"} {"check_id": "logs.op-contract-get-log-events", "deployments": [], "key": "logs/op-contract-get-log-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_op_contract_get_log_events.py", "service": "logs"} {"check_id": "logs.op-contract-listTagsForResource", "deployments": [], "key": "logs/op-contract-listTagsForResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:TagResource"], "path": "behavioral/logs/check_op_contract_list_tags_for_resource.py", "service": "logs"} {"check_id": "logs.op-contract-list-tags-log-group", "deployments": [], "key": "logs/op-contract-list-tags-log-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:ListTagsLogGroup", "logs:TagLogGroup"], "path": "behavioral/logs/check_op_contract_list_tags_log_group.py", "service": "logs"} {"check_id": "logs.op-contract-put-log-group-deletion-protection-blocks-delete-rejected", "deployments": [], "key": "logs/op-contract-put-log-group-deletion-protection-blocks-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_op_contract_put_log_group_deletion_protection_blocks_delete_rejected.py", "service": "logs"} {"check_id": "logs.op-contract-putMetricFilter", "deployments": [], "key": "logs/op-contract-putMetricFilter", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutMetricFilter"], "path": "behavioral/logs/check_op_contract_put_metric_filter.py", "service": "logs"} {"check_id": "logs.op-contract-putQueryDefinition", "deployments": [], "key": "logs/op-contract-putQueryDefinition", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteQueryDefinition", "logs:DescribeQueryDefinitions", "logs:PutQueryDefinition"], "path": "behavioral/logs/check_op_contract_put_query_definition.py", "service": "logs"} {"check_id": "logs.op-contract-putResourcePolicy", "deployments": [], "key": "logs/op-contract-putResourcePolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy"], "path": "behavioral/logs/check_op_contract_put_resource_policy.py", "service": "logs"} {"check_id": "logs.op-contract-putRetentionPolicy", "deployments": [], "key": "logs/op-contract-putRetentionPolicy", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteRetentionPolicy", "logs:DescribeLogGroups", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_op_contract_put_retention_policy.py", "service": "logs"} {"check_id": "logs.op-contract-stopQuery", "deployments": [], "key": "logs/op-contract-stopQuery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_op_contract_stop_query.py", "service": "logs"} {"check_id": "logs.op-contract-tagLogGroup", "deployments": [], "key": "logs/op-contract-tagLogGroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:ListTagsLogGroup", "logs:TagLogGroup"], "path": "behavioral/logs/check_op_contract_tag_log_group.py", "service": "logs"} {"check_id": "logs.op-contract-tagResource", "deployments": [], "key": "logs/op-contract-tagResource", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:ListTagsLogGroup", "logs:TagResource"], "path": "behavioral/logs/check_op_contract_tag_resource.py", "service": "logs"} {"check_id": "logs.op-contract-untagLogGroup", "deployments": [], "key": "logs/op-contract-untagLogGroup", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:ListTagsLogGroup", "logs:TagLogGroup", "logs:UntagLogGroup"], "path": "behavioral/logs/check_op_contract_untag_log_group.py", "service": "logs"} {"check_id": "logs.operations-on-deleted-log-group-fail", "deployments": [], "key": "logs/operations-on-deleted-log-group-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups"], "path": "behavioral/logs/check_operations_on_deleted_log_group_fail.py", "service": "logs"} {"check_id": "logs.out-of-order-cross-batch-writes-are-read-back-in-timestamp-order", "deployments": [], "key": "logs/out-of-order-cross-batch-writes-are-read-back-in-timestamp-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_out_of_order_cross_batch_writes_are_read_back_in_timestamp_order.py", "service": "logs"} {"check_id": "logs.put-account-policy-concurrent-update-no-corruption", "deployments": [], "key": "logs/put-account-policy-concurrent-update-no-corruption", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_put_account_policy_concurrent_update_no_corruption.py", "service": "logs"} {"check_id": "logs.put-account-policy-invalid-scope-fails", "deployments": [], "key": "logs/put-account-policy-invalid-scope-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_put_account_policy_invalid_scope_fails.py", "service": "logs"} {"check_id": "logs.put-account-policy-then-describe", "deployments": [], "key": "logs/put-account-policy-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteAccountPolicy", "logs:DescribeAccountPolicies", "logs:PutAccountPolicy"], "path": "behavioral/logs/check_put_account_policy_then_describe.py", "service": "logs"} {"check_id": "logs.put-bearer-token-authentication-enforced-server-side", "deployments": [], "key": "logs/put-bearer-token-authentication-enforced-server-side", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateServiceSpecificCredential", "iam:CreateUser", "iam:DeleteServiceSpecificCredential", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:PutBearerTokenAuthentication"], "path": "behavioral/logs/check_put_bearer_token_authentication_enforced_server_side.py", "service": "logs"} {"check_id": "logs.put-bearer-token-authentication-invalid-config-rejected", "deployments": [], "key": "logs/put-bearer-token-authentication-invalid-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutBearerTokenAuthentication"], "path": "behavioral/logs/check_put_bearer_token_authentication_invalid_config_rejected.py", "service": "logs"} {"check_id": "logs.put-bearer-token-authentication-invalid-operation-state", "deployments": [], "key": "logs/put-bearer-token-authentication-invalid-operation-state", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutBearerTokenAuthentication"], "path": "behavioral/logs/check_put_bearer_token_authentication_invalid_operation_state.py", "service": "logs"} {"check_id": "logs.put-bearer-token-authentication-invalid-operation-state-rejected", "deployments": [], "key": "logs/put-bearer-token-authentication-invalid-operation-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutBearerTokenAuthentication", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_bearer_token_authentication_invalid_operation_state_rejected.py", "service": "logs"} {"check_id": "logs.put-bearer-token-authentication-server-enforced", "deployments": [], "key": "logs/put-bearer-token-authentication-server-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutBearerTokenAuthentication"], "path": "behavioral/logs/check_put_bearer_token_authentication_server_enforced.py", "service": "logs"} {"check_id": "logs.put-data-protection-policy-roundtrip", "deployments": [], "key": "logs/put-data-protection-policy-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDataProtectionPolicy", "logs:DeleteLogGroup", "logs:GetDataProtectionPolicy", "logs:PutDataProtectionPolicy", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_put_data_protection_policy_roundtrip.py", "service": "logs"} {"check_id": "logs.put-delivery-destination-policy-lifecycle", "deployments": [], "key": "logs/put-delivery-destination-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy", "logs:PutLogGroupDeletionProtection", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_delivery_destination_policy_lifecycle.py", "service": "logs"} {"check_id": "logs.put-delivery-destination-policy-nonexistent-destination-fails", "deployments": [], "key": "logs/put-delivery-destination-policy-nonexistent-destination-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetDeliveryDestinationPolicy", "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_delivery_destination_policy_nonexistent_destination_fails.py", "service": "logs"} {"check_id": "logs.put-delivery-destination-policy-overwrite-last-write-wins", "deployments": [], "key": "logs/put-delivery-destination-policy-overwrite-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:GetDeliveryDestinationPolicy", "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_delivery_destination_policy_overwrite_last_write_wins.py", "service": "logs"} {"check_id": "logs.put-destination-invalid-target-arn-rejected", "deployments": [], "key": "logs/put-destination-invalid-target-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStreamSummary", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_destination_invalid_target_arn_rejected.py", "service": "logs"} {"check_id": "logs.put-destination-nonexistent-target-rejected", "deployments": [], "key": "logs/put-destination-nonexistent-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_destination_nonexistent_target_rejected.py", "service": "logs"} {"check_id": "logs.put-destination-policy-then-describe", "deployments": [], "key": "logs/put-destination-policy-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination", "logs:PutDestinationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_destination_policy_then_describe.py", "service": "logs"} {"check_id": "logs.put-destination-policy-wildcard-principal-rejected", "deployments": [], "key": "logs/put-destination-policy-wildcard-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination", "logs:PutDestinationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_destination_policy_wildcard_principal_rejected.py", "service": "logs"} {"check_id": "logs.put-destination-then-get", "deployments": [], "key": "logs/put-destination-then-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:DeleteDestination", "logs:DescribeDestinations", "logs:PutDestination", "logs:PutDestinationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_destination_then_get.py", "service": "logs"} {"check_id": "logs.put-index-policy-limit-exceeded-fails", "deployments": [], "key": "logs/put-index-policy-limit-exceeded-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteIndexPolicy", "logs:DeleteLogGroup", "logs:DescribeIndexPolicies", "logs:PutIndexPolicy"], "path": "behavioral/logs/check_put_index_policy_limit_exceeded_fails.py", "service": "logs"} {"check_id": "logs.put-index-policy-oversized-document-rejected", "deployments": [], "key": "logs/put-index-policy-oversized-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteIndexPolicy", "logs:DeleteLogGroup", "logs:DescribeIndexPolicies", "logs:PutIndexPolicy"], "path": "behavioral/logs/check_put_index_policy_oversized_document_rejected.py", "service": "logs"} {"check_id": "logs.put-index-policy-then-describe", "deployments": [], "key": "logs/put-index-policy-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteIndexPolicy", "logs:DeleteLogGroup", "logs:DescribeIndexPolicies", "logs:PutIndexPolicy", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_put_index_policy_then_describe.py", "service": "logs"} {"check_id": "logs.put-log-events-base64-binary-payload-round-trip", "deployments": [], "key": "logs/put-log-events-base64-binary-payload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_base64_binary_payload_round_trip.py", "service": "logs"} {"check_id": "logs.put-log-events-batch-contract-rejected", "deployments": [], "key": "logs/put-log-events-batch-contract-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_batch_contract_rejected.py", "service": "logs"} {"check_id": "logs.put-log-events-concurrent-writers-all-accepted", "deployments": [], "key": "logs/put-log-events-concurrent-writers-all-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_concurrent_writers_all_accepted.py", "service": "logs"} {"check_id": "logs.put-log-events-duplicate-detection", "deployments": [], "key": "logs/put-log-events-duplicate-detection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_duplicate_detection.py", "service": "logs"} {"check_id": "logs.put-log-events-emits-awslogs-incoming-metrics-for-the-log-group", "deployments": [], "key": "logs/put-log-events-emits-awslogs-incoming-metrics-for-the-log-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_emits_awslogs_incoming_metrics_for_the_log_group.py", "service": "logs"} {"check_id": "logs.put-log-events-empty-message-rejected", "deployments": [], "key": "logs/put-log-events-empty-message-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_empty_message_rejected.py", "service": "logs"} {"check_id": "logs.put-log-events-empty-string-vs-absent-field-distinct", "deployments": [], "key": "logs/put-log-events-empty-string-vs-absent-field-distinct", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_empty_string_vs_absent_field_distinct.py", "service": "logs"} {"check_id": "logs.put-log-events-future-timestamp-skew-rejected", "deployments": [], "key": "logs/put-log-events-future-timestamp-skew-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_future_timestamp_skew_rejected.py", "service": "logs"} {"check_id": "logs.put-log-events-invalid-sequence-token-accepted", "deployments": [], "key": "logs/put-log-events-invalid-sequence-token-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_invalid_sequence_token_accepted.py", "service": "logs"} {"check_id": "logs.put-log-events-message-exceeds-size-limit-rejected", "deployments": [], "key": "logs/put-log-events-message-exceeds-size-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_message_exceeds_size_limit_rejected.py", "service": "logs"} {"check_id": "logs.put-log-events-millisecond-timestamp-preserved", "deployments": [], "key": "logs/put-log-events-millisecond-timestamp-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_millisecond_timestamp_preserved.py", "service": "logs"} {"check_id": "logs.put-log-events-nonexistent-stream-fails", "deployments": [], "key": "logs/put-log-events-nonexistent-stream-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_put_log_events_nonexistent_stream_fails.py", "service": "logs"} {"check_id": "logs.put-log-events-older-than-retention-rejected-as-expired", "deployments": [], "key": "logs/put-log-events-older-than-retention-rejected-as-expired", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_put_log_events_older_than_retention_rejected_as_expired.py", "service": "logs"} {"check_id": "logs.put-log-events-oversized-batch-rejected", "deployments": [], "key": "logs/put-log-events-oversized-batch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_oversized_batch_rejected.py", "service": "logs"} {"check_id": "logs.put-log-events-rejects-out-of-window-events", "deployments": [], "key": "logs/put-log-events-rejects-out-of-window-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_rejects_out_of_window_events.py", "service": "logs"} {"check_id": "logs.put-log-events-sequence-token-ordering", "deployments": [], "key": "logs/put-log-events-sequence-token-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_sequence_token_ordering.py", "service": "logs"} {"check_id": "logs.put-log-events-stale-sequence-token-accepted", "deployments": [], "key": "logs/put-log-events-stale-sequence-token-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_stale_sequence_token_accepted.py", "service": "logs"} {"check_id": "logs.put-log-events-then-get-log-events-roundtrip", "deployments": [], "key": "logs/put-log-events-then-get-log-events-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_put_log_events_then_get_log_events_roundtrip.py", "service": "logs"} {"check_id": "logs.put-log-events-timestamp-millisecond-precision-preserved", "deployments": [], "key": "logs/put-log-events-timestamp-millisecond-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_timestamp_millisecond_precision_preserved.py", "service": "logs"} {"check_id": "logs.put-log-events-too-old-event-rejected", "deployments": [], "key": "logs/put-log-events-too-old-event-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_too_old_event_rejected.py", "service": "logs"} {"check_id": "logs.put-log-events-unicode-message-round-trip", "deployments": [], "key": "logs/put-log-events-unicode-message-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_log_events_unicode_message_round_trip.py", "service": "logs"} {"check_id": "logs.put-log-group-deletion-protection-blocks-delete", "deployments": [], "key": "logs/put-log-group-deletion-protection-blocks-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_put_log_group_deletion_protection_blocks_delete.py", "service": "logs"} {"check_id": "logs.put-lookup-table-malformed-schema-rejected", "deployments": [], "key": "logs/put-lookup-table-malformed-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:DescribeLookupTables"], "path": "behavioral/logs/check_put_lookup_table_malformed_schema_rejected.py", "service": "logs"} {"check_id": "logs.put-metric-filter-dimensions-preserved-in-metric-data", "deployments": [], "key": "logs/put-metric-filter-dimensions-preserved-in-metric-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_put_metric_filter_dimensions_preserved_in_metric_data.py", "service": "logs"} {"check_id": "logs.put-metric-filter-invalid-pattern-rejected", "deployments": [], "key": "logs/put-metric-filter-invalid-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutLogGroupDeletionProtection", "logs:PutMetricFilter"], "path": "behavioral/logs/check_put_metric_filter_invalid_pattern_rejected.py", "service": "logs"} {"check_id": "logs.put-metric-filter-matching-events-emits-datapoint", "deployments": [], "key": "logs/put-metric-filter-matching-events-emits-datapoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_put_metric_filter_matching_events_emits_datapoint.py", "service": "logs"} {"check_id": "logs.put-metric-filter-multiple-filters-independent-increments", "deployments": [], "key": "logs/put-metric-filter-multiple-filters-independent-increments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_put_metric_filter_multiple_filters_independent_increments.py", "service": "logs"} {"check_id": "logs.put-metric-filter-non-matching-events-no-datapoint", "deployments": [], "key": "logs/put-metric-filter-non-matching-events-no-datapoint", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudwatch:GetMetricStatistics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:PutLogEvents", "logs:PutMetricFilter"], "path": "behavioral/logs/check_put_metric_filter_non_matching_events_no_datapoint.py", "service": "logs"} {"check_id": "logs.put-metric-filter-nonexistent-group-fails", "deployments": [], "key": "logs/put-metric-filter-nonexistent-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutMetricFilter"], "path": "behavioral/logs/check_put_metric_filter_nonexistent_group_fails.py", "service": "logs"} {"check_id": "logs.put-metric-filter-nonexistent-log-group-rejected", "deployments": [], "key": "logs/put-metric-filter-nonexistent-log-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteMetricFilter", "logs:DescribeMetricFilters", "logs:PutMetricFilter"], "path": "behavioral/logs/check_put_metric_filter_nonexistent_log_group_rejected.py", "service": "logs"} {"check_id": "logs.put-metric-filter-then-describe", "deployments": [], "key": "logs/put-metric-filter-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:PutLogGroupDeletionProtection", "logs:PutMetricFilter"], "path": "behavioral/logs/check_put_metric_filter_then_describe.py", "service": "logs"} {"check_id": "logs.put-query-definition-then-describe", "deployments": [], "key": "logs/put-query-definition-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteQueryDefinition", "logs:DescribeQueryDefinitions", "logs:PutQueryDefinition"], "path": "behavioral/logs/check_put_query_definition_then_describe.py", "service": "logs"} {"check_id": "logs.put-resource-policy-then-describe", "deployments": [], "key": "logs/put-resource-policy-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy"], "path": "behavioral/logs/check_put_resource_policy_then_describe.py", "service": "logs"} {"check_id": "logs.put-retention-policy-invalid-value-fails", "deployments": [], "key": "logs/put-retention-policy-invalid-value-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_put_retention_policy_invalid_value_fails.py", "service": "logs"} {"check_id": "logs.put-retention-policy-invalid-value-rejected", "deployments": [], "key": "logs/put-retention-policy-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_put_retention_policy_invalid_value_rejected.py", "service": "logs"} {"check_id": "logs.put-retention-policy-updates-value", "deployments": [], "key": "logs/put-retention-policy-updates-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogGroupDeletionProtection", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_put_retention_policy_updates_value.py", "service": "logs"} {"check_id": "logs.put-storage-tier-policy-invalid-tier-rejected", "deployments": [], "key": "logs/put-storage-tier-policy-invalid-tier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:GetStorageTierPolicy", "logs:PutStorageTierPolicy"], "path": "behavioral/logs/check_put_storage_tier_policy_invalid_tier_rejected.py", "service": "logs"} {"check_id": "logs.put-storage-tier-policy-lifecycle", "deployments": [], "key": "logs/put-storage-tier-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:GetStorageTierPolicy", "logs:PutStorageTierPolicy"], "path": "behavioral/logs/check_put_storage_tier_policy_lifecycle.py", "service": "logs"} {"check_id": "logs.put-subscription-filter-bogus-destination-rejected", "deployments": [], "key": "logs/put-subscription-filter-bogus-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeSubscriptionFilters", "logs:PutLogGroupDeletionProtection", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_subscription_filter_bogus_destination_rejected.py", "service": "logs"} {"check_id": "logs.put-subscription-filter-exceeds-quota-rejected", "deployments": [], "key": "logs/put-subscription-filter-exceeds-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_subscription_filter_exceeds_quota_rejected.py", "service": "logs"} {"check_id": "logs.put-subscription-filter-invalid-destination-fails", "deployments": [], "key": "logs/put-subscription-filter-invalid-destination-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:RemovePermission", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutLogGroupDeletionProtection", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_subscription_filter_invalid_destination_fails.py", "service": "logs"} {"check_id": "logs.put-subscription-filter-then-describe", "deployments": [], "key": "logs/put-subscription-filter-then-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:PutRolePolicy", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutLogGroupDeletionProtection", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_put_subscription_filter_then_describe.py", "service": "logs"} {"check_id": "logs.put-to-deleted-log-group-rejected-and-recreated-group-does-not-resurrect-events", "deployments": [], "key": "logs/put-to-deleted-log-group-rejected-and-recreated-group-does-not-resurrect-events", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_put_to_deleted_log_group_rejected_and_recreated_group_does_not_resurrect_events.py", "service": "logs"} {"check_id": "logs.put-transformer-exceeds-processor-quota-rejected", "deployments": [], "key": "logs/put-transformer-exceeds-processor-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutTransformer"], "path": "behavioral/logs/check_put_transformer_exceeds_processor_quota_rejected.py", "service": "logs"} {"check_id": "logs.put-transformer-lifecycle", "deployments": [], "key": "logs/put-transformer-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutLogGroupDeletionProtection", "logs:PutTransformer", "logs:TestTransformer"], "path": "behavioral/logs/check_put_transformer_lifecycle.py", "service": "logs"} {"check_id": "logs.query-execution-polling-states", "deployments": [], "key": "logs/query-execution-polling-states", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_query_execution_polling_states.py", "service": "logs"} {"check_id": "logs.query-lifecycle-state-ordering", "deployments": [], "key": "logs/query-lifecycle-state-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_query_lifecycle_state_ordering.py", "service": "logs"} {"check_id": "logs.recreated-log-group-serves-only-its-own-new-events-across-streams", "deployments": [], "key": "logs/recreated-log-group-serves-only-its-own-new-events-across-streams", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:PutLogEvents"], "path": "behavioral/logs/check_recreated_log_group_serves_only_its_own_new_events_across_streams.py", "service": "logs"} {"check_id": "logs.resource-policy-revision-conflict-rejected", "deployments": [], "key": "logs/resource-policy-revision-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy"], "path": "behavioral/logs/check_resource_policy_revision_conflict_rejected.py", "service": "logs"} {"check_id": "logs.retention-policy-purges-events-past-ttl", "deployments": [], "key": "logs/retention-policy-purges-events-past-ttl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteRetentionPolicy", "logs:DescribeLogGroups", "logs:GetLogEvents", "logs:PutLogEvents", "logs:PutRetentionPolicy"], "path": "behavioral/logs/check_retention_policy_purges_events_past_ttl.py", "service": "logs"} {"check_id": "logs.s3-table-integration-associate-list-disassociate", "deployments": [], "key": "logs/s3-table-integration-associate-list-disassociate", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:AssociateSourceToS3TableIntegration", "logs:DisassociateSourceFromS3TableIntegration", "logs:ListSourcesForS3TableIntegration", "observabilityadmin:CreateS3TableIntegration", "observabilityadmin:DeleteS3TableIntegration", "observabilityadmin:GetS3TableIntegration"], "path": "behavioral/logs/check_s3_table_integration_associate_list_disassociate.py", "service": "logs"} {"check_id": "logs.s3-table-integration-lifecycle", "deployments": [], "key": "logs/s3-table-integration-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:AssociateSourceToS3TableIntegration", "logs:DisassociateSourceFromS3TableIntegration", "logs:ListSourcesForS3TableIntegration", "observabilityadmin:CreateS3TableIntegration", "observabilityadmin:DeleteS3TableIntegration", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_s3_table_integration_lifecycle.py", "service": "logs"} {"check_id": "logs.s3-table-integration-source-association-lifecycle", "deployments": [], "key": "logs/s3-table-integration-source-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:AssociateSourceToS3TableIntegration", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DisassociateSourceFromS3TableIntegration", "logs:ListSourcesForS3TableIntegration", "observabilityadmin:CreateS3TableIntegration", "observabilityadmin:DeleteS3TableIntegration", "observabilityadmin:GetS3TableIntegration"], "path": "behavioral/logs/check_s3_table_integration_source_association_lifecycle.py", "service": "logs"} {"check_id": "logs.s3-table-integration-source-lifecycle-transitions", "deployments": [], "key": "logs/s3-table-integration-source-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:AssociateSourceToS3TableIntegration", "logs:DisassociateSourceFromS3TableIntegration", "logs:ListSourcesForS3TableIntegration", "observabilityadmin:CreateS3TableIntegration", "observabilityadmin:DeleteS3TableIntegration", "observabilityadmin:GetS3TableIntegration"], "path": "behavioral/logs/check_s3_table_integration_source_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.scheduled-query-history-after-create", "deployments": [], "key": "logs/scheduled-query-history-after-create", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:GetScheduledQueryHistory", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_scheduled_query_history_after_create.py", "service": "logs"} {"check_id": "logs.scheduled-query-history-recorded", "deployments": [], "key": "logs/scheduled-query-history-recorded", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:DescribeLogGroups", "logs:GetScheduledQueryHistory", "logs:PutLogEvents"], "path": "behavioral/logs/check_scheduled_query_history_recorded.py", "service": "logs"} {"check_id": "logs.scheduled-query-history-returned-in-chronological-order", "deployments": [], "key": "logs/scheduled-query-history-returned-in-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:DescribeLogGroups", "logs:GetScheduledQueryHistory"], "path": "behavioral/logs/check_scheduled_query_history_returned_in_chronological_order.py", "service": "logs"} {"check_id": "logs.scheduled-query-lifecycle", "deployments": [], "key": "logs/scheduled-query-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:DescribeLogGroups", "logs:GetScheduledQuery"], "path": "behavioral/logs/check_scheduled_query_lifecycle.py", "service": "logs"} {"check_id": "logs.scheduled-query-lifecycle-transitions", "deployments": [], "key": "logs/scheduled-query-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:DescribeLogGroups", "logs:GetScheduledQuery", "logs:ListScheduledQueries", "logs:UpdateScheduledQuery"], "path": "behavioral/logs/check_scheduled_query_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.service-unavailable-throttling-semantics", "deployments": [], "key": "logs/service-unavailable-throttling-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DescribeConfigurationTemplates", "logs:DescribeDeliveries", "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources"], "path": "behavioral/logs/check_service_unavailable_throttling_semantics.py", "service": "logs"} {"check_id": "logs.start-live-tail-invalid-log-group-rejected", "deployments": [], "key": "logs/start-live-tail-invalid-log-group-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:StartLiveTail", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_start_live_tail_invalid_log_group_rejected.py", "service": "logs"} {"check_id": "logs.start-live-tail-mutually-exclusive-stream-filters-rejected", "deployments": [], "key": "logs/start-live-tail-mutually-exclusive-stream-filters-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:StartLiveTail"], "path": "behavioral/logs/check_start_live_tail_mutually_exclusive_stream_filters_rejected.py", "service": "logs"} {"check_id": "logs.start-live-tail-nonexistent-log-group-rejected", "deployments": [], "key": "logs/start-live-tail-nonexistent-log-group-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:StartLiveTail", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_start_live_tail_nonexistent_log_group_rejected.py", "service": "logs"} {"check_id": "logs.start-live-tail-session-idle-stays-open", "deployments": [], "key": "logs/start-live-tail-session-idle-stays-open", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:StartLiveTail"], "path": "behavioral/logs/check_start_live_tail_session_idle_stays_open.py", "service": "logs"} {"check_id": "logs.start-live-tail-streams-matching-events", "deployments": [], "key": "logs/start-live-tail-streams-matching-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogEvents", "logs:StartLiveTail"], "path": "behavioral/logs/check_start_live_tail_streams_matching_events.py", "service": "logs"} {"check_id": "logs.start-live-tail-streams-new-events", "deployments": [], "key": "logs/start-live-tail-streams-new-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:PutLogEvents", "logs:StartLiveTail"], "path": "behavioral/logs/check_start_live_tail_streams_new_events.py", "service": "logs"} {"check_id": "logs.start-query-end-time-before-start-time-rejected", "deployments": [], "key": "logs/start-query-end-time-before-start-time-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeQueries", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery"], "path": "behavioral/logs/check_start_query_end_time_before_start_time_rejected.py", "service": "logs"} {"check_id": "logs.stop-query-terminal-state-rejected", "deployments": [], "key": "logs/stop-query-terminal-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:GetQueryResults", "logs:PutLogEvents", "logs:StartQuery", "logs:StopQuery"], "path": "behavioral/logs/check_stop_query_terminal_state_rejected.py", "service": "logs"} {"check_id": "logs.storage-tier-policy-lifecycle", "deployments": [], "key": "logs/storage-tier-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:GetStorageTierPolicy", "logs:PutStorageTierPolicy"], "path": "behavioral/logs/check_storage_tier_policy_lifecycle.py", "service": "logs"} {"check_id": "logs.storage-tier-policy-lifecycle-transitions", "deployments": [], "key": "logs/storage-tier-policy-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:GetStorageTierPolicy", "logs:PutStorageTierPolicy"], "path": "behavioral/logs/check_storage_tier_policy_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.storage-tier-policy-put-get-reflects-setting", "deployments": [], "key": "logs/storage-tier-policy-put-get-reflects-setting", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:GetStorageTierPolicy", "logs:PutStorageTierPolicy"], "path": "behavioral/logs/check_storage_tier_policy_put_get_reflects_setting.py", "service": "logs"} {"check_id": "logs.storage-tier-policy-put-then-get", "deployments": [], "key": "logs/storage-tier-policy-put-then-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:GetStorageTierPolicy", "logs:PutStorageTierPolicy"], "path": "behavioral/logs/check_storage_tier_policy_put_then_get.py", "service": "logs"} {"check_id": "logs.subscription-filter-absent-on-fresh-group", "deployments": [], "key": "logs/subscription-filter-absent-on-fresh-group", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:DescribeSubscriptionFilters", "logs:PutLogGroupDeletionProtection"], "path": "behavioral/logs/check_subscription_filter_absent_on_fresh_group.py", "service": "logs"} {"check_id": "logs.subscription-filter-delivery-failure-counts-a-deliveryerrors-datapoint", "deployments": [], "key": "logs/subscription-filter-delivery-failure-counts-a-deliveryerrors-datapoint", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:FilterLogEvents", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_subscription_filter_delivery_failure_counts_a_deliveryerrors_datapoint.py", "service": "logs"} {"check_id": "logs.subscription-filter-forwardedlogevents-counts-only-the-matching-events", "deployments": [], "key": "logs/subscription-filter-forwardedlogevents-counts-only-the-matching-events", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:PutLogEvents", "logs:PutSubscriptionFilter"], "path": "behavioral/logs/check_subscription_filter_forwardedlogevents_counts_only_the_matching_events.py", "service": "logs"} {"check_id": "logs.subscription-filter-record-envelope-carries-owner-stream-and-only-matching-events", "deployments": [], "key": "logs/subscription-filter-record-envelope-carries-owner-stream-and-only-matching-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteSubscriptionFilter", "logs:PutLogEvents", "logs:PutSubscriptionFilter", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_subscription_filter_record_envelope_carries_owner_stream_and_only_matching_events.py", "service": "logs"} {"check_id": "logs.syslog-configuration-delete-nonexistent-rejected", "deployments": [], "key": "logs/syslog-configuration-delete-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcEndpoints", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSyslogConfiguration", "logs:DescribeLogGroups", "logs:ListSyslogConfigurations", "logs:PutSyslogConfiguration"], "path": "behavioral/logs/check_syslog_configuration_delete_nonexistent_rejected.py", "service": "logs"} {"check_id": "logs.syslog-configuration-lifecycle", "deployments": [], "key": "logs/syslog-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcEndpoints", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSyslogConfiguration", "logs:ListSyslogConfigurations", "logs:PutSyslogConfiguration"], "path": "behavioral/logs/check_syslog_configuration_lifecycle.py", "service": "logs"} {"check_id": "logs.syslog-configuration-lifecycle-transitions", "deployments": [], "key": "logs/syslog-configuration-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcEndpoints", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSyslogConfiguration", "logs:DescribeLogGroups", "logs:ListSyslogConfigurations", "logs:PutSyslogConfiguration"], "path": "behavioral/logs/check_syslog_configuration_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.syslog-configuration-put-list-delete-lifecycle", "deployments": [], "key": "logs/syslog-configuration-put-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpcEndpoint", "ec2:DeleteSecurityGroup", "ec2:DeleteVpcEndpoints", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteSyslogConfiguration", "logs:DescribeLogGroups", "logs:ListSyslogConfigurations", "logs:PutSyslogConfiguration"], "path": "behavioral/logs/check_syslog_configuration_put_list_delete_lifecycle.py", "service": "logs"} {"check_id": "logs.tag-log-group-reserved-aws-prefix-rejected", "deployments": [], "key": "logs/tag-log-group-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:ListTagsLogGroup", "logs:PutLogGroupDeletionProtection", "logs:TagLogGroup"], "path": "behavioral/logs/check_tag_log_group_reserved_aws_prefix_rejected.py", "service": "logs"} {"check_id": "logs.tag-log-group-then-list-tags", "deployments": [], "key": "logs/tag-log-group-then-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:ListTagsLogGroup", "logs:PutLogGroupDeletionProtection", "logs:TagLogGroup"], "path": "behavioral/logs/check_tag_log_group_then_list_tags.py", "service": "logs"} {"check_id": "logs.tag-nonexistent-log-group-fails", "deployments": [], "key": "logs/tag-nonexistent-log-group-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:ListTagsLogGroup", "logs:TagLogGroup"], "path": "behavioral/logs/check_tag_nonexistent_log_group_fails.py", "service": "logs"} {"check_id": "logs.tag-resource-arn-then-list", "deployments": [], "key": "logs/tag-resource-arn-then-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:PutLogGroupDeletionProtection", "logs:TagResource"], "path": "behavioral/logs/check_tag_resource_arn_then_list.py", "service": "logs"} {"check_id": "logs.tag-resource-exceeding-tag-limit-rejected", "deployments": [], "key": "logs/tag-resource-exceeding-tag-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:TagResource", "logs:UntagResource"], "path": "behavioral/logs/check_tag_resource_exceeding_tag_limit_rejected.py", "service": "logs"} {"check_id": "logs.tag-resource-unicode-value-preserved", "deployments": [], "key": "logs/tag-resource-unicode-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:TagResource", "logs:UntagResource"], "path": "behavioral/logs/check_tag_resource_unicode_value_preserved.py", "service": "logs"} {"check_id": "logs.tag-resource-unicode-value-round-trip", "deployments": [], "key": "logs/tag-resource-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:TagResource", "logs:UntagResource"], "path": "behavioral/logs/check_tag_resource_unicode_value_round_trip.py", "service": "logs"} {"check_id": "logs.test-metric-filter-dry-run-does-not-create-filter", "deployments": [], "key": "logs/test-metric-filter-dry-run-does-not-create-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:TestMetricFilter"], "path": "behavioral/logs/check_test_metric_filter_dry_run_does_not_create_filter.py", "service": "logs"} {"check_id": "logs.test-metric-filter-invalid-pattern-fails", "deployments": [], "key": "logs/test-metric-filter-invalid-pattern-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:TestMetricFilter"], "path": "behavioral/logs/check_test_metric_filter_invalid_pattern_fails.py", "service": "logs"} {"check_id": "logs.test-metric-filter-matches-sample-events", "deployments": [], "key": "logs/test-metric-filter-matches-sample-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:TestMetricFilter"], "path": "behavioral/logs/check_test_metric_filter_matches_sample_events.py", "service": "logs"} {"check_id": "logs.test-metric-filter-space-delimited-extraction", "deployments": [], "key": "logs/test-metric-filter-space-delimited-extraction", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeMetricFilters", "logs:PutMetricFilter", "logs:TestMetricFilter"], "path": "behavioral/logs/check_test_metric_filter_space_delimited_extraction.py", "service": "logs"} {"check_id": "logs.test-transformer-does-not-mutate-stored-logs", "deployments": [], "key": "logs/test-transformer-does-not-mutate-stored-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutTransformer", "logs:TestTransformer"], "path": "behavioral/logs/check_test_transformer_does_not_mutate_stored_logs.py", "service": "logs"} {"check_id": "logs.test-transformer-dry-run-does-not-mutate-stored-logs", "deployments": [], "key": "logs/test-transformer-dry-run-does-not-mutate-stored-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetLogEvents", "logs:PutLogEvents", "logs:PutTransformer", "logs:TestTransformer"], "path": "behavioral/logs/check_test_transformer_dry_run_does_not_mutate_stored_logs.py", "service": "logs"} {"check_id": "logs.test-transformer-dry-run-does-not-persist", "deployments": [], "key": "logs/test-transformer-dry-run-does-not-persist", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutTransformer", "logs:TestTransformer"], "path": "behavioral/logs/check_test_transformer_dry_run_does_not_persist.py", "service": "logs"} {"check_id": "logs.test-transformer-invalid-syntax-fails", "deployments": [], "key": "logs/test-transformer-invalid-syntax-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:GetTransformer", "logs:TestTransformer"], "path": "behavioral/logs/check_test_transformer_invalid_syntax_fails.py", "service": "logs"} {"check_id": "logs.transformer-lifecycle", "deployments": [], "key": "logs/transformer-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutTransformer"], "path": "behavioral/logs/check_transformer_lifecycle.py", "service": "logs"} {"check_id": "logs.transformer-lifecycle-put-get-delete", "deployments": [], "key": "logs/transformer-lifecycle-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:GetTransformer", "logs:PutTransformer"], "path": "behavioral/logs/check_transformer_lifecycle_put_get_delete.py", "service": "logs"} {"check_id": "logs.transformer-lifecycle-transitions", "deployments": [], "key": "logs/transformer-lifecycle-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:DescribeLogGroups", "logs:GetTransformer", "logs:PutTransformer", "logs:TestTransformer"], "path": "behavioral/logs/check_transformer_lifecycle_transitions.py", "service": "logs"} {"check_id": "logs.transformer-rewrites-ingested-events-preserving-the-raw-message", "deployments": [], "key": "logs/transformer-rewrites-ingested-events-preserving-the-raw-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DeleteTransformer", "logs:FilterLogEvents", "logs:GetLogRecord", "logs:GetQueryResults", "logs:GetTransformer", "logs:PutLogEvents", "logs:PutTransformer", "logs:StartQuery"], "path": "behavioral/logs/check_transformer_rewrites_ingested_events_preserving_the_raw_message.py", "service": "logs"} {"check_id": "logs.unmask-without-permission-denied-while-masked-read-still-served", "deployments": [], "key": "logs/unmask-without-permission-denied-while-masked-read-still-served", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteDataProtectionPolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:PutDataProtectionPolicy", "logs:PutLogEvents", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_unmask_without_permission_denied_while_masked_read_still_served.py", "service": "logs"} {"check_id": "logs.untag-log-group-removes-tag", "deployments": [], "key": "logs/untag-log-group-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:ListTagsLogGroup", "logs:PutLogGroupDeletionProtection", "logs:TagLogGroup", "logs:UntagLogGroup"], "path": "behavioral/logs/check_untag_log_group_removes_tag.py", "service": "logs"} {"check_id": "logs.untag-resource-arn-removes-tag", "deployments": [], "key": "logs/untag-resource-arn-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:TagResource", "logs:UntagResource"], "path": "behavioral/logs/check_untag_resource_arn_removes_tag.py", "service": "logs"} {"check_id": "logs.untag-resource-nonexistent-arn-fails", "deployments": [], "key": "logs/untag-resource-nonexistent-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListTagsForResource", "logs:TagResource", "logs:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_untag_resource_nonexistent_arn_fails.py", "service": "logs"} {"check_id": "logs.update-anomaly-nonexistent-fails", "deployments": [], "key": "logs/update-anomaly-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:ListAnomalies", "logs:UpdateAnomaly"], "path": "behavioral/logs/check_update_anomaly_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.update-delivery-configuration-changes-take-effect", "deployments": [], "key": "logs/update-delivery-configuration-changes-take-effect", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateDelivery", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DescribeDeliveries", "logs:GetDelivery", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "logs:UpdateDeliveryConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_update_delivery_configuration_changes_take_effect.py", "service": "logs"} {"check_id": "logs.update-log-anomaly-detector-and-list-anomalies", "deployments": [], "key": "logs/update-log-anomaly-detector-and-list-anomalies", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogAnomalyDetector", "logs:CreateLogGroup", "logs:DeleteLogAnomalyDetector", "logs:DeleteLogGroup", "logs:GetLogAnomalyDetector", "logs:ListAnomalies", "logs:PutLogGroupDeletionProtection", "logs:UpdateLogAnomalyDetector", "sts:GetCallerIdentity"], "path": "behavioral/logs/check_update_log_anomaly_detector_and_list_anomalies.py", "service": "logs"} {"check_id": "logs.update-lookup-table-nonexistent-fails", "deployments": [], "key": "logs/update-lookup-table-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:GetLookupTable", "logs:UpdateLookupTable"], "path": "behavioral/logs/check_update_lookup_table_nonexistent_fails.py", "service": "logs"} {"check_id": "logs.update-lookup-table-stale-version-write-is-accepted", "deployments": [], "key": "logs/update-lookup-table-stale-version-write-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLookupTable", "logs:DeleteLookupTable", "logs:GetLookupTable", "logs:UpdateLookupTable"], "path": "behavioral/logs/check_update_lookup_table_stale_version_write_is_accepted.py", "service": "logs"} {"check_id": "logs.update-scheduled-query-conflict-fails", "deployments": [], "key": "logs/update-scheduled-query-conflict-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:DescribeLogGroups", "logs:GetScheduledQuery", "logs:UpdateScheduledQuery"], "path": "behavioral/logs/check_update_scheduled_query_conflict_fails.py", "service": "logs"} {"check_id": "logs__opensearch.obs-opensearch-3-index-slow-and-application-logs-publish-to-their-own-log-groups", "deployments": [], "key": "logs__opensearch/obs-opensearch-3-index-slow-and-application-logs-publish-to-their-own-log-groups", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutResourcePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "opensearch:UpdateDomainConfig", "sts:GetCallerIdentity"], "path": "behavioral/logs__opensearch/check_obs_opensearch_3_index_slow_and_application_logs_publish_to_their_own_log_groups.py", "service": "logs__opensearch"} {"check_id": "logs__opensearch.opensearch-log-publishing-to-a-group-without-an-es-grant-is-rejected", "deployments": [], "key": "logs__opensearch/opensearch-log-publishing-to-a-group-without-an-es-grant-is-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/logs__opensearch/check_opensearch_log_publishing_to_a_group_without_an_es_grant_is_rejected.py", "service": "logs__opensearch"} {"check_id": "logs__opensearch.opensearch-search-slow-logs-reach-the-log-group-only-for-an-index-over-threshold", "deployments": [], "key": "logs__opensearch/opensearch-search-slow-logs-reach-the-log-group-only-for-an-index-over-threshold", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:DescribeResourcePolicies", "logs:FilterLogEvents", "logs:PutResourcePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:UpdateDomainConfig", "sts:GetCallerIdentity"], "path": "behavioral/logs__opensearch/check_opensearch_search_slow_logs_reach_the_log_group_only_for_an_index_over_threshold.py", "service": "logs__opensearch"} {"check_id": "logs__s3.export-task-objects-carry-the-destination-buckets-own-encryption", "deployments": [], "key": "logs__s3/export-task-objects-carry-the-destination-buckets-own-encryption", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:GetLogEvents", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketEncryption", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs__s3/check_export_task_objects_carry_the_destination_buckets_own_encryption.py", "service": "logs__s3"} {"check_id": "logs__s3.log-cwl-plumbing-export-objects-hold-exactly-the-streams-events-under-prefix", "deployments": [], "key": "logs__s3/log-cwl-plumbing-export-objects-hold-exactly-the-streams-events-under-prefix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/logs__s3/check_log_cwl_plumbing_export_objects_hold_exactly_the_streams_events_under_prefix.py", "service": "logs__s3"} {"check_id": "logs__s3.log-cwl-plumbing-second-concurrent-export-task-rejected", "deployments": [], "key": "logs__s3/log-cwl-plumbing-second-concurrent-export-task-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "logs:GetLogEvents", "logs:PutLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/logs__s3/check_log_cwl_plumbing_second_concurrent_export_task_rejected.py", "service": "logs__s3"} {"check_id": "logs__s3.xsvc-logs-3-s3-access-log-delivery-denied-without-destination-grant", "deployments": [], "key": "logs__s3/xsvc-logs-3-s3-access-log-delivery-denied-without-destination-grant", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteDelivery", "logs:DeleteDeliveryDestination", "logs:DeleteDeliverySource", "logs:DeleteLogGroup", "logs:DescribeDeliveries", "logs:DescribeResourcePolicies", "logs:PutDeliveryDestination", "logs:PutDeliverySource", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/logs__s3/check_xsvc_logs_3_s3_access_log_delivery_denied_without_destination_grant.py", "service": "logs__s3"} {"check_id": "logs__s3.xsvc-logs-3-scheduled-query-s3-object-rows-equal-seeded-events", "deployments": [], "key": "logs__s3/xsvc-logs-3-scheduled-query-s3-object-rows-equal-seeded-events", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:GetQueryResults", "logs:GetScheduledQueryHistory", "logs:PutLogEvents", "logs:StartQuery", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/logs__s3/check_xsvc_logs_3_scheduled_query_s3_object_rows_equal_seeded_events.py", "service": "logs__s3"} {"check_id": "logs__s3.xsvc-logs-3-scheduled-query-s3-put-denied-records-destination-error", "deployments": [], "key": "logs__s3/xsvc-logs-3-scheduled-query-s3-put-denied-records-destination-error", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:CreateScheduledQuery", "logs:DeleteLogGroup", "logs:DeleteScheduledQuery", "logs:GetQueryResults", "logs:GetScheduledQueryHistory", "logs:PutLogEvents", "logs:StartQuery", "logs:UpdateScheduledQuery", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/logs__s3/check_xsvc_logs_3_scheduled_query_s3_put_denied_records_destination_error.py", "service": "logs__s3"} {"check_id": "logs__s3__sts.create-export-task-bucket-missing-permission-rejected", "deployments": [], "key": "logs__s3__sts/create-export-task-bucket-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CancelExportTask", "logs:CreateExportTask", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/logs__s3__sts/check_create_export_task_bucket_missing_permission_rejected.py", "service": "logs__s3__sts"} {"check_id": "logs__stepfunctions.deep-sfn-3-express-async-history-rejected-logs-carry-events", "deployments": [], "key": "logs__stepfunctions/deep-sfn-3-express-async-history-rejected-logs-carry-events", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/logs__stepfunctions/check_deep_sfn_3_express_async_history_rejected_logs_carry_events.py", "service": "logs__stepfunctions"} {"check_id": "logs__stepfunctions.redrive-logs-executionredriven-and-second-executionfailed-across-levels", "deployments": [], "key": "logs__stepfunctions/redrive-logs-executionredriven-and-second-executionfailed-across-levels", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/logs__stepfunctions/check_redrive_logs_executionredriven_and_second_executionfailed_across_levels.py", "service": "logs__stepfunctions"} {"check_id": "logs__stepfunctions.redrive-of-succeeded-execution-rejected-no-executionredriven-logged", "deployments": [], "key": "logs__stepfunctions/redrive-of-succeeded-execution-rejected-no-executionredriven-logged", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/logs__stepfunctions/check_redrive_of_succeeded_execution_rejected_no_executionredriven_logged.py", "service": "logs__stepfunctions"} {"check_id": "logs__stepfunctions.xsvc-sfn-3-express-async-all-level-log-events-arrive-in-order-per-execution", "deployments": [], "key": "logs__stepfunctions/xsvc-sfn-3-express-async-all-level-log-events-arrive-in-order-per-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/logs__stepfunctions/check_xsvc_sfn_3_express_async_all_level_log_events_arrive_in_order_per_execution.py", "service": "logs__stepfunctions"} {"check_id": "logs__stepfunctions.xsvc-sfn-3-express-error-level-logs-only-the-run-through-a-fail-state", "deployments": [], "key": "logs__stepfunctions/xsvc-sfn-3-express-error-level-logs-only-the-run-through-a-fail-state", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution", "stepfunctions:UpdateStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/logs__stepfunctions/check_xsvc_sfn_3_express_error_level_logs_only_the_run_through_a_fail_state.py", "service": "logs__stepfunctions"} {"check_id": "logs__stepfunctions.xsvc-sfn-3-express-execution-history-api-rejected-while-logs-carry-it", "deployments": [], "key": "logs__stepfunctions/xsvc-sfn-3-express-execution-history-api-rejected-while-logs-carry-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/logs__stepfunctions/check_xsvc_sfn_3_express_execution_history_api_rejected_while_logs_carry_it.py", "service": "logs__stepfunctions"} {"check_id": "logs__stepfunctions.xsvc-sfn-3-express-include-execution-data-false-logs-same-events-without-payload", "deployments": [], "key": "logs__stepfunctions/xsvc-sfn-3-express-include-execution-data-false-logs-same-events-without-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/logs__stepfunctions/check_xsvc_sfn_3_express_include_execution_data_false_logs_same_events_without_payload.py", "service": "logs__stepfunctions"} {"check_id": "logs__stepfunctions.xsvc-sfn-express-execution-started-log-carries-version-and-alias-arns", "deployments": [], "key": "logs__stepfunctions/xsvc-sfn-express-execution-started-log-carries-version-and-alias-arns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/logs__stepfunctions/check_xsvc_sfn_express_execution_started_log_carries_version_and_alias_arns.py", "service": "logs__stepfunctions"} {"check_id": "macie2.allow-list-status-derivation-missing-object", "deployments": [], "key": "macie2/allow-list-status-derivation-missing-object", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:CreateAllowList", "macie2:DeleteAllowList", "macie2:EnableMacie", "macie2:GetAllowList", "macie2:GetMacieSession", "macie2:ListAllowLists", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/macie2/check_allow_list_status_derivation_missing_object.py", "service": "macie2"} {"check_id": "macie2.automated-discovery-configuration-enable-disable-cycle", "deployments": [], "key": "macie2/automated-discovery-configuration-enable-disable-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["macie2:EnableMacie", "macie2:GetAutomatedDiscoveryConfiguration", "macie2:GetMacieSession", "macie2:UpdateAutomatedDiscoveryConfiguration"], "path": "behavioral/macie2/check_automated_discovery_configuration_enable_disable_cycle.py", "service": "macie2"} {"check_id": "macie2.batch-update-automated-discovery-accounts-partial-failure", "deployments": [], "key": "macie2/batch-update-automated-discovery-accounts-partial-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:BatchUpdateAutomatedDiscoveryAccounts", "macie2:EnableMacie", "macie2:GetAutomatedDiscoveryConfiguration", "macie2:GetMacieSession", "macie2:ListAutomatedDiscoveryAccounts", "macie2:UpdateAutomatedDiscoveryConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/macie2/check_batch_update_automated_discovery_accounts_partial_failure.py", "service": "macie2"} {"check_id": "macie2.classification-export-configuration-round-trip", "deployments": [], "key": "macie2/classification-export-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "macie2:EnableMacie", "macie2:GetClassificationExportConfiguration", "macie2:GetMacieSession", "macie2:PutClassificationExportConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/macie2/check_classification_export_configuration_round_trip.py", "service": "macie2"} {"check_id": "macie2.classification-job-cancel-is-terminal", "deployments": [], "key": "macie2/classification-job-cancel-is-terminal", "labels": ["axis:happy-path", "plane:control"], "operations": ["macie2:CreateClassificationJob", "macie2:DescribeClassificationJob", "macie2:EnableMacie", "macie2:GetMacieSession", "macie2:UpdateClassificationJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/macie2/check_classification_job_cancel_is_terminal.py", "service": "macie2"} {"check_id": "macie2.classification-job-pause-resume-cycle", "deployments": [], "key": "macie2/classification-job-pause-resume-cycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["macie2:CreateClassificationJob", "macie2:DescribeClassificationJob", "macie2:EnableMacie", "macie2:GetMacieSession", "macie2:UpdateClassificationJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/macie2/check_classification_job_pause_resume_cycle.py", "service": "macie2"} {"check_id": "macie2.concurrent-custom-data-identifier-idempotent-creation", "deployments": [], "key": "macie2/concurrent-custom-data-identifier-idempotent-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["macie2:CreateCustomDataIdentifier", "macie2:DeleteCustomDataIdentifier", "macie2:EnableMacie", "macie2:GetMacieSession", "macie2:ListCustomDataIdentifiers"], "path": "behavioral/macie2/check_concurrent_custom_data_identifier_idempotent_creation.py", "service": "macie2"} {"check_id": "macie2.create-allow-list-mutually-exclusive-criteria-rejected", "deployments": [], "key": "macie2/create-allow-list-mutually-exclusive-criteria-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:CreateAllowList", "macie2:DeleteAllowList", "macie2:EnableMacie", "macie2:GetAllowList", "macie2:GetMacieSession", "macie2:ListAllowLists"], "path": "behavioral/macie2/check_create_allow_list_mutually_exclusive_criteria_rejected.py", "service": "macie2"} {"check_id": "macie2.create-member-self-account-rejected", "deployments": [], "key": "macie2/create-member-self-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:CreateMember", "macie2:DeleteMember", "macie2:EnableMacie", "macie2:GetMacieSession", "macie2:GetMember", "macie2:ListMembers", "sts:GetCallerIdentity"], "path": "behavioral/macie2/check_create_member_self_account_rejected.py", "service": "macie2"} {"check_id": "macie2.custom-data-identifier-invalid-regex-rejected", "deployments": [], "key": "macie2/custom-data-identifier-invalid-regex-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:CreateCustomDataIdentifier", "macie2:DeleteCustomDataIdentifier", "macie2:EnableMacie", "macie2:GetMacieSession", "macie2:ListCustomDataIdentifiers"], "path": "behavioral/macie2/check_custom_data_identifier_invalid_regex_rejected.py", "service": "macie2"} {"check_id": "macie2.custom-data-identifier-soft-delete-lifecycle", "deployments": [], "key": "macie2/custom-data-identifier-soft-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["macie2:CreateCustomDataIdentifier", "macie2:DeleteCustomDataIdentifier", "macie2:EnableMacie", "macie2:GetCustomDataIdentifier", "macie2:GetMacieSession", "macie2:ListCustomDataIdentifiers"], "path": "behavioral/macie2/check_custom_data_identifier_soft_delete_lifecycle.py", "service": "macie2"} {"check_id": "macie2.delete-allow-list-in-use-rejected", "deployments": [], "key": "macie2/delete-allow-list-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:CreateAllowList", "macie2:CreateClassificationJob", "macie2:DeleteAllowList", "macie2:DescribeClassificationJob", "macie2:EnableMacie", "macie2:GetAllowList", "macie2:GetMacieSession", "macie2:UpdateAllowList", "macie2:UpdateClassificationJob", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/macie2/check_delete_allow_list_in_use_rejected.py", "service": "macie2"} {"check_id": "macie2.finding-statistics-groupby-matches-list-findings-count", "deployments": [], "key": "macie2/finding-statistics-groupby-matches-list-findings-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["macie2:CreateSampleFindings", "macie2:EnableMacie", "macie2:GetFindingStatistics", "macie2:GetFindings", "macie2:GetMacieSession", "macie2:ListFindings"], "path": "behavioral/macie2/check_finding_statistics_groupby_matches_list_findings_count.py", "service": "macie2"} {"check_id": "macie2.findings-filter-delete-then-not-found", "deployments": [], "key": "macie2/findings-filter-delete-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:CreateFindingsFilter", "macie2:DeleteFindingsFilter", "macie2:EnableMacie", "macie2:GetFindingsFilter", "macie2:GetMacieSession", "macie2:UpdateFindingsFilter"], "path": "behavioral/macie2/check_findings_filter_delete_then_not_found.py", "service": "macie2"} {"check_id": "macie2.findings-publication-configuration-round-trip", "deployments": [], "key": "macie2/findings-publication-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["macie2:EnableMacie", "macie2:GetFindingsPublicationConfiguration", "macie2:GetMacieSession", "macie2:PutFindingsPublicationConfiguration"], "path": "behavioral/macie2/check_findings_publication_configuration_round_trip.py", "service": "macie2"} {"check_id": "macie2.get-custom-data-identifier-not-found", "deployments": [], "key": "macie2/get-custom-data-identifier-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:CreateCustomDataIdentifier", "macie2:DeleteCustomDataIdentifier", "macie2:EnableMacie", "macie2:GetCustomDataIdentifier", "macie2:GetMacieSession"], "path": "behavioral/macie2/check_get_custom_data_identifier_not_found.py", "service": "macie2"} {"check_id": "macie2.get-findings-batch-size-limit-rejected", "deployments": [], "key": "macie2/get-findings-batch-size-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["macie2:CreateSampleFindings", "macie2:EnableMacie", "macie2:GetFindings", "macie2:GetMacieSession", "macie2:ListFindings"], "path": "behavioral/macie2/check_get_findings_batch_size_limit_rejected.py", "service": "macie2"} {"check_id": "macie2.list-members-only-associated-filter-toggle", "deployments": [], "key": "macie2/list-members-only-associated-filter-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["macie2:CreateMember", "macie2:DeleteMember", "macie2:EnableMacie", "macie2:GetMacieSession", "macie2:GetMember", "macie2:ListMembers"], "path": "behavioral/macie2/check_list_members_only_associated_filter_toggle.py", "service": "macie2"} {"check_id": "macie2.member-relationship-status-created-then-removed", "deployments": [], "key": "macie2/member-relationship-status-created-then-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["macie2:CreateMember", "macie2:DeleteMember", "macie2:EnableMacie", "macie2:GetMacieSession", "macie2:GetMember", "macie2:ListMembers"], "path": "behavioral/macie2/check_member_relationship_status_created_then_removed.py", "service": "macie2"} {"check_id": "macie2.resume-cancelled-job-rejected", "deployments": [], "key": "macie2/resume-cancelled-job-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["macie2:CreateClassificationJob", "macie2:DescribeClassificationJob", "macie2:EnableMacie", "macie2:GetMacieSession", "macie2:UpdateClassificationJob", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/macie2/check_resume_cancelled_job_rejected.py", "service": "macie2"} {"check_id": "macie2.sample-findings-generation-and-retrieval", "deployments": [], "key": "macie2/sample-findings-generation-and-retrieval", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["macie2:CreateSampleFindings", "macie2:EnableMacie", "macie2:GetFindings", "macie2:GetMacieSession", "macie2:ListFindings"], "path": "behavioral/macie2/check_sample_findings_generation_and_retrieval.py", "service": "macie2"} {"check_id": "macie2.test-custom-data-identifier-match-count-roundtrip", "deployments": [], "key": "macie2/test-custom-data-identifier-match-count-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["macie2:EnableMacie", "macie2:GetMacieSession", "macie2:TestCustomDataIdentifier"], "path": "behavioral/macie2/check_test_custom_data_identifier_match_count_roundtrip.py", "service": "macie2"} {"check_id": "mailmanager.address-list-deletion-orphans-its-import-job", "deployments": [], "key": "mailmanager/address-list-deletion-orphans-its-import-job", "labels": ["axis:rejection", "plane:control"], "operations": ["mailmanager:CreateAddressList", "mailmanager:CreateAddressListImportJob", "mailmanager:DeleteAddressList", "mailmanager:GetAddressListImportJob", "mailmanager:ListAddressListImportJobs"], "path": "behavioral/mailmanager/check_address_list_deletion_orphans_its_import_job.py", "service": "mailmanager"} {"check_id": "mailmanager.address-normalization-lowercases-domain-preserves-local-part", "deployments": [], "key": "mailmanager/address-normalization-lowercases-domain-preserves-local-part", "labels": ["axis:happy-path", "plane:control"], "operations": ["mailmanager:CreateAddressList", "mailmanager:DeleteAddressList", "mailmanager:GetMemberOfAddressList", "mailmanager:ListMembersOfAddressList", "mailmanager:RegisterMemberToAddressList"], "path": "behavioral/mailmanager/check_address_normalization_lowercases_domain_preserves_local_part.py", "service": "mailmanager"} {"check_id": "mailmanager.address-prefix-filter-scopes-membership-listing", "deployments": [], "key": "mailmanager/address-prefix-filter-scopes-membership-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["mailmanager:CreateAddressList", "mailmanager:DeleteAddressList", "mailmanager:ListMembersOfAddressList", "mailmanager:RegisterMemberToAddressList"], "path": "behavioral/mailmanager/check_address_prefix_filter_scopes_membership_listing.py", "service": "mailmanager"} {"check_id": "mailmanager.archive-deletion-rejects-further-reads-of-its-completed-search", "deployments": [], "key": "mailmanager/archive-deletion-rejects-further-reads-of-its-completed-search", "labels": ["axis:rejection", "plane:control"], "operations": ["mailmanager:CreateArchive", "mailmanager:DeleteArchive", "mailmanager:GetArchiveSearch", "mailmanager:ListArchiveSearches", "mailmanager:StartArchiveSearch"], "path": "behavioral/mailmanager/check_archive_deletion_rejects_further_reads_of_its_completed_search.py", "service": "mailmanager"} {"check_id": "mailmanager.deregister-member-is-idempotent-for-unknown-and-removed-addresses", "deployments": [], "key": "mailmanager/deregister-member-is-idempotent-for-unknown-and-removed-addresses", "labels": ["axis:happy-path", "plane:control"], "operations": ["mailmanager:CreateAddressList", "mailmanager:DeleteAddressList", "mailmanager:DeregisterMemberFromAddressList", "mailmanager:GetMemberOfAddressList", "mailmanager:RegisterMemberToAddressList"], "path": "behavioral/mailmanager/check_deregister_member_is_idempotent_for_unknown_and_removed_addresses.py", "service": "mailmanager"} {"check_id": "mailmanager.member-lookup-requires-exact-post-normalization-casing", "deployments": [], "key": "mailmanager/member-lookup-requires-exact-post-normalization-casing", "labels": ["axis:rejection", "plane:control"], "operations": ["mailmanager:CreateAddressList", "mailmanager:DeleteAddressList", "mailmanager:GetMemberOfAddressList", "mailmanager:RegisterMemberToAddressList"], "path": "behavioral/mailmanager/check_member_lookup_requires_exact_post_normalization_casing.py", "service": "mailmanager"} {"check_id": "mailmanager.members-of-address-list-pagination-is-complete-and-unique", "deployments": [], "key": "mailmanager/members-of-address-list-pagination-is-complete-and-unique", "labels": ["axis:happy-path", "plane:control"], "operations": ["mailmanager:CreateAddressList", "mailmanager:DeleteAddressList", "mailmanager:ListMembersOfAddressList", "mailmanager:RegisterMemberToAddressList"], "path": "behavioral/mailmanager/check_members_of_address_list_pagination_is_complete_and_unique.py", "service": "mailmanager"} {"check_id": "mailmanager.multiple-sequential-archive-searches-are-each-tracked-independently", "deployments": [], "key": "mailmanager/multiple-sequential-archive-searches-are-each-tracked-independently", "labels": ["axis:happy-path", "plane:control"], "operations": ["mailmanager:CreateArchive", "mailmanager:DeleteArchive", "mailmanager:GetArchiveSearch", "mailmanager:GetArchiveSearchResults", "mailmanager:ListArchiveSearches", "mailmanager:StartArchiveSearch"], "path": "behavioral/mailmanager/check_multiple_sequential_archive_searches_are_each_tracked_independently.py", "service": "mailmanager"} {"check_id": "marketplace-agreement.accept-agreement-request-not-found", "deployments": [], "key": "marketplace-agreement/accept-agreement-request-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:AcceptAgreementRequest"], "path": "behavioral/marketplace-agreement/check_accept_agreement_request_not_found.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.batch-create-billing-adjustment-request-partial-failure-surfaced", "deployments": [], "key": "marketplace-agreement/batch-create-billing-adjustment-request-partial-failure-surfaced", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-agreement:BatchCreateBillingAdjustmentRequest", "marketplace-agreement:ListBillingAdjustmentRequests"], "path": "behavioral/marketplace-agreement/check_batch_create_billing_adjustment_request_partial_failure_surfaced.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.create-agreement-request-invalid-intent-rejected", "deployments": [], "key": "marketplace-agreement/create-agreement-request-invalid-intent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:CreateAgreementRequest"], "path": "behavioral/marketplace-agreement/check_create_agreement_request_invalid_intent_rejected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.describe-agreement-malformed-id-rejected", "deployments": [], "key": "marketplace-agreement/describe-agreement-malformed-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:DescribeAgreement"], "path": "behavioral/marketplace-agreement/check_describe_agreement_malformed_id_rejected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.describe-agreement-missing-permission-denied", "deployments": [], "key": "marketplace-agreement/describe-agreement-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "marketplace-agreement:DescribeAgreement", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-agreement/check_describe_agreement_missing_permission_denied.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.get-agreement-terms-for-active-agreement", "deployments": [], "key": "marketplace-agreement/get-agreement-terms-for-active-agreement", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-agreement:DescribeAgreement", "marketplace-agreement:GetAgreementTerms", "marketplace-agreement:SearchAgreements"], "path": "behavioral/marketplace-agreement/check_get_agreement_terms_for_active_agreement.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.list-agreement-cancellation-requests-invalid-party-type-rejected", "deployments": [], "key": "marketplace-agreement/list-agreement-cancellation-requests-invalid-party-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:ListAgreementCancellationRequests"], "path": "behavioral/marketplace-agreement/check_list_agreement_cancellation_requests_invalid_party_type_rejected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.list-agreement-cancellation-requests-maxresults-respected", "deployments": [], "key": "marketplace-agreement/list-agreement-cancellation-requests-maxresults-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-agreement:ListAgreementCancellationRequests"], "path": "behavioral/marketplace-agreement/check_list_agreement_cancellation_requests_maxresults_respected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.list-agreement-charges-empty-response-structure", "deployments": [], "key": "marketplace-agreement/list-agreement-charges-empty-response-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-agreement:ListAgreementCharges"], "path": "behavioral/marketplace-agreement/check_list_agreement_charges_empty_response_structure.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.list-agreement-payment-requests-maxresults-respected", "deployments": [], "key": "marketplace-agreement/list-agreement-payment-requests-maxresults-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-agreement:ListAgreementPaymentRequests"], "path": "behavioral/marketplace-agreement/check_list_agreement_payment_requests_maxresults_respected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.list-billing-adjustment-requests-invalid-date-range-rejected", "deployments": [], "key": "marketplace-agreement/list-billing-adjustment-requests-invalid-date-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:ListBillingAdjustmentRequests"], "path": "behavioral/marketplace-agreement/check_list_billing_adjustment_requests_invalid_date_range_rejected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.list-billing-adjustment-requests-status-filter-structure", "deployments": [], "key": "marketplace-agreement/list-billing-adjustment-requests-status-filter-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-agreement:ListBillingAdjustmentRequests"], "path": "behavioral/marketplace-agreement/check_list_billing_adjustment_requests_status_filter_structure.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.search-agreements-maxresults-respected", "deployments": [], "key": "marketplace-agreement/search-agreements-maxresults-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-agreement:SearchAgreements"], "path": "behavioral/marketplace-agreement/check_search_agreements_maxresults_respected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.search-agreements-sort-order-valid-field-accepted", "deployments": [], "key": "marketplace-agreement/search-agreements-sort-order-valid-field-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-agreement:SearchAgreements"], "path": "behavioral/marketplace-agreement/check_search_agreements_sort_order_valid_field_accepted.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.search-agreements-too-many-filters-rejected", "deployments": [], "key": "marketplace-agreement/search-agreements-too-many-filters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:SearchAgreements"], "path": "behavioral/marketplace-agreement/check_search_agreements_too_many_filters_rejected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.send-agreement-cancellation-request-invalid-reason-code-rejected", "deployments": [], "key": "marketplace-agreement/send-agreement-cancellation-request-invalid-reason-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:SendAgreementCancellationRequest"], "path": "behavioral/marketplace-agreement/check_send_agreement_cancellation_request_invalid_reason_code_rejected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.send-agreement-payment-request-name-too-short-rejected", "deployments": [], "key": "marketplace-agreement/send-agreement-payment-request-name-too-short-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:SendAgreementPaymentRequest"], "path": "behavioral/marketplace-agreement/check_send_agreement_payment_request_name_too_short_rejected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-agreement.update-purchase-orders-exceeds-max-entries-rejected", "deployments": [], "key": "marketplace-agreement/update-purchase-orders-exceeds-max-entries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-agreement:UpdatePurchaseOrders"], "path": "behavioral/marketplace-agreement/check_update_purchase_orders_exceeds_max_entries_rejected.py", "service": "marketplace-agreement"} {"check_id": "marketplace-catalog.batch-describe-entities-invalid-entity-id-pattern-rejected", "deployments": [], "key": "marketplace-catalog/batch-describe-entities-invalid-entity-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:BatchDescribeEntities"], "path": "behavioral/marketplace-catalog/check_batch_describe_entities_invalid_entity_id_pattern_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.batch-describe-entities-partial-errors", "deployments": [], "key": "marketplace-catalog/batch-describe-entities-partial-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:BatchDescribeEntities"], "path": "behavioral/marketplace-catalog/check_batch_describe_entities_partial_errors.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.cancel-change-set-not-found", "deployments": [], "key": "marketplace-catalog/cancel-change-set-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:CancelChangeSet", "marketplace-catalog:DescribeChangeSet", "marketplace-catalog:ListChangeSets"], "path": "behavioral/marketplace-catalog/check_cancel_change_set_not_found.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.concurrent-validation-isolation", "deployments": [], "key": "marketplace-catalog/concurrent-validation-isolation", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListChangeSets", "marketplace-catalog:TagResource"], "path": "behavioral/marketplace-catalog/check_concurrent_validation_isolation.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.delete-resource-policy-not-found", "deployments": [], "key": "marketplace-catalog/delete-resource-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:DeleteResourcePolicy", "marketplace-catalog:GetResourcePolicy", "marketplace-catalog:ListChangeSets", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-catalog/check_delete_resource_policy_not_found.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.describe-assessment-identifier-validation-boundary", "deployments": [], "key": "marketplace-catalog/describe-assessment-identifier-validation-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:DescribeAssessment"], "path": "behavioral/marketplace-catalog/check_describe_assessment_identifier_validation_boundary.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.describe-change-set-id-not-found", "deployments": [], "key": "marketplace-catalog/describe-change-set-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:DescribeChangeSet", "marketplace-catalog:ListChangeSets"], "path": "behavioral/marketplace-catalog/check_describe_change_set_id_not_found.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.describe-entity-id-not-found", "deployments": [], "key": "marketplace-catalog/describe-entity-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:DescribeEntity"], "path": "behavioral/marketplace-catalog/check_describe_entity_id_not_found.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.get-resource-policy-arn-validation-boundary", "deployments": [], "key": "marketplace-catalog/get-resource-policy-arn-validation-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:GetResourcePolicy", "marketplace-catalog:ListChangeSets"], "path": "behavioral/marketplace-catalog/check_get_resource_policy_arn_validation_boundary.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.list-assessments-invalid-catalog-pattern-rejected", "deployments": [], "key": "marketplace-catalog/list-assessments-invalid-catalog-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListAssessments"], "path": "behavioral/marketplace-catalog/check_list_assessments_invalid_catalog_pattern_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.list-change-sets-filter-by-status-success", "deployments": [], "key": "marketplace-catalog/list-change-sets-filter-by-status-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-catalog:ListChangeSets"], "path": "behavioral/marketplace-catalog/check_list_change_sets_filter_by_status_success.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.list-change-sets-invalid-next-token-rejected", "deployments": [], "key": "marketplace-catalog/list-change-sets-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListChangeSets"], "path": "behavioral/marketplace-catalog/check_list_change_sets_invalid_next_token_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.list-entities-filter-by-entity-id-success", "deployments": [], "key": "marketplace-catalog/list-entities-filter-by-entity-id-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-catalog:ListEntities"], "path": "behavioral/marketplace-catalog/check_list_entities_filter_by_entity_id_success.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.list-entities-invalid-entity-type-pattern-rejected", "deployments": [], "key": "marketplace-catalog/list-entities-invalid-entity-type-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListEntities"], "path": "behavioral/marketplace-catalog/check_list_entities_invalid_entity_type_pattern_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.list-entities-unsupported-entity-type-not-found", "deployments": [], "key": "marketplace-catalog/list-entities-unsupported-entity-type-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListEntities"], "path": "behavioral/marketplace-catalog/check_list_entities_unsupported_entity_type_not_found.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.list-tags-for-resource-arn-validation-boundary", "deployments": [], "key": "marketplace-catalog/list-tags-for-resource-arn-validation-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListChangeSets", "marketplace-catalog:ListTagsForResource"], "path": "behavioral/marketplace-catalog/check_list_tags_for_resource_arn_validation_boundary.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.put-resource-policy-arn-validation-boundary", "deployments": [], "key": "marketplace-catalog/put-resource-policy-arn-validation-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:GetResourcePolicy", "marketplace-catalog:ListChangeSets", "marketplace-catalog:PutResourcePolicy"], "path": "behavioral/marketplace-catalog/check_put_resource_policy_arn_validation_boundary.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.resource-arn-wrong-service-namespace-rejected", "deployments": [], "key": "marketplace-catalog/resource-arn-wrong-service-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:GetResourcePolicy"], "path": "behavioral/marketplace-catalog/check_resource_arn_wrong_service_namespace_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.start-change-set-duplicate-change-type-rejected", "deployments": [], "key": "marketplace-catalog/start-change-set-duplicate-change-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListChangeSets", "marketplace-catalog:StartChangeSet"], "path": "behavioral/marketplace-catalog/check_start_change_set_duplicate_change_type_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.start-change-set-entity-identifier-pattern-rejected", "deployments": [], "key": "marketplace-catalog/start-change-set-entity-identifier-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:StartChangeSet"], "path": "behavioral/marketplace-catalog/check_start_change_set_entity_identifier_pattern_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.start-change-set-entity-not-found", "deployments": [], "key": "marketplace-catalog/start-change-set-entity-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListChangeSets", "marketplace-catalog:StartChangeSet"], "path": "behavioral/marketplace-catalog/check_start_change_set_entity_not_found.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.start-change-set-invalid-change-set-name-rejected", "deployments": [], "key": "marketplace-catalog/start-change-set-invalid-change-set-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:StartChangeSet"], "path": "behavioral/marketplace-catalog/check_start_change_set_invalid_change_set_name_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.start-change-set-invalid-client-request-token-rejected", "deployments": [], "key": "marketplace-catalog/start-change-set-invalid-client-request-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:StartChangeSet"], "path": "behavioral/marketplace-catalog/check_start_change_set_invalid_client_request_token_rejected.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.tag-resource-not-found", "deployments": [], "key": "marketplace-catalog/tag-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListChangeSets", "marketplace-catalog:ListTagsForResource", "marketplace-catalog:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-catalog/check_tag_resource_not_found.py", "service": "marketplace-catalog"} {"check_id": "marketplace-catalog.untag-resource-not-found", "deployments": [], "key": "marketplace-catalog/untag-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-catalog:ListChangeSets", "marketplace-catalog:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-catalog/check_untag_resource_not_found.py", "service": "marketplace-catalog"} {"check_id": "marketplace-deployment.list-tags-for-resource-nonexistent-arn-not-found", "deployments": [], "key": "marketplace-deployment/list-tags-for-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-deployment:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-deployment/check_list_tags_for_resource_nonexistent_arn_not_found.py", "service": "marketplace-deployment"} {"check_id": "marketplace-deployment.put-deployment-parameter-catalog-validation-rejected", "deployments": [], "key": "marketplace-deployment/put-deployment-parameter-catalog-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-deployment:PutDeploymentParameter"], "path": "behavioral/marketplace-deployment/check_put_deployment_parameter_catalog_validation_rejected.py", "service": "marketplace-deployment"} {"check_id": "marketplace-deployment.put-deployment-parameter-name-pattern-violation-rejected", "deployments": [], "key": "marketplace-deployment/put-deployment-parameter-name-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-deployment:PutDeploymentParameter"], "path": "behavioral/marketplace-deployment/check_put_deployment_parameter_name_pattern_violation_rejected.py", "service": "marketplace-deployment"} {"check_id": "marketplace-deployment.put-deployment-parameter-nonexistent-agreement-not-found", "deployments": [], "key": "marketplace-deployment/put-deployment-parameter-nonexistent-agreement-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-deployment:PutDeploymentParameter"], "path": "behavioral/marketplace-deployment/check_put_deployment_parameter_nonexistent_agreement_not_found.py", "service": "marketplace-deployment"} {"check_id": "marketplace-deployment.put-deployment-parameter-secret-string-too-long-rejected", "deployments": [], "key": "marketplace-deployment/put-deployment-parameter-secret-string-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-deployment:PutDeploymentParameter"], "path": "behavioral/marketplace-deployment/check_put_deployment_parameter_secret_string_too_long_rejected.py", "service": "marketplace-deployment"} {"check_id": "marketplace-deployment.put-deployment-parameter-tags-exceed-max-rejected", "deployments": [], "key": "marketplace-deployment/put-deployment-parameter-tags-exceed-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-deployment:PutDeploymentParameter"], "path": "behavioral/marketplace-deployment/check_put_deployment_parameter_tags_exceed_max_rejected.py", "service": "marketplace-deployment"} {"check_id": "marketplace-discovery.concurrent-get-listing-calls-consistent", "deployments": [], "key": "marketplace-discovery/concurrent-get-listing-calls-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_concurrent_get_listing_calls_consistent.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.concurrent-search-listings-consistent-totals", "deployments": [], "key": "marketplace-discovery/concurrent-search-listings-consistent-totals", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_concurrent_search_listings_consistent_totals.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.discovery-catalog-full-browse-workflow", "deployments": [], "key": "marketplace-discovery/discovery-catalog-full-browse-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:GetOffer", "marketplace-discovery:GetOfferTerms", "marketplace-discovery:GetProduct", "marketplace-discovery:ListFulfillmentOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_discovery_catalog_full_browse_workflow.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-concurrent-reads-consistent", "deployments": [], "key": "marketplace-discovery/get-listing-concurrent-reads-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_concurrent_reads_consistent.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-denied-principal-rejected", "deployments": [], "key": "marketplace-discovery/get-listing-denied-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_denied_principal_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-denied-without-permission-rejected", "deployments": [], "key": "marketplace-discovery/get-listing-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_denied_without_permission_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-id-length-exceeded-rejected", "deployments": [], "key": "marketplace-discovery/get-listing-id-length-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_id_length_exceeded_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-invalid-id-pattern-rejected", "deployments": [], "key": "marketplace-discovery/get-listing-invalid-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_invalid_id_pattern_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-malformed-id-pattern-rejected", "deployments": [], "key": "marketplace-discovery/get-listing-malformed-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetListing"], "path": "behavioral/marketplace-discovery/check_get_listing_malformed_id_pattern_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-matches-search-summary-fields", "deployments": [], "key": "marketplace-discovery/get-listing-matches-search-summary-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_matches_search_summary_fields.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-nonexistent-id-not-found", "deployments": [], "key": "marketplace-discovery/get-listing-nonexistent-id-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_nonexistent_id_not_found.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-not-found-error", "deployments": [], "key": "marketplace-discovery/get-listing-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_not_found_error.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-not-found-rejected", "deployments": [], "key": "marketplace-discovery/get-listing-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_not_found_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-listing-round-trip-from-search", "deployments": [], "key": "marketplace-discovery/get-listing-round-trip-from-search", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_listing_round_trip_from_search.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-access-denied-without-permission-rejected", "deployments": [], "key": "marketplace-discovery/get-offer-access-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "marketplace-discovery:GetOffer", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_access_denied_without_permission_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-badges-reflect-purchase-option-badges", "deployments": [], "key": "marketplace-discovery/get-offer-badges-reflect-purchase-option-badges", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetOffer", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_badges_reflect_purchase_option_badges.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-matches-purchase-option-summary", "deployments": [], "key": "marketplace-discovery/get-offer-matches-purchase-option-summary", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetOffer", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_matches_purchase_option_summary.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-each-term-has-single-variant", "deployments": [], "key": "marketplace-discovery/get-offer-terms-each-term-has-single-variant", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:GetOfferTerms", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_each_term_has_single_variant.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-for-discovered-offer", "deployments": [], "key": "marketplace-discovery/get-offer-terms-for-discovered-offer", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetOfferTerms", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_for_discovered_offer.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-max-results-exceeded-rejected", "deployments": [], "key": "marketplace-discovery/get-offer-terms-max-results-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetOfferTerms", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_max_results_exceeded_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-max-results-out-of-range-rejected", "deployments": [], "key": "marketplace-discovery/get-offer-terms-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetOfferTerms", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_max_results_out_of_range_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-maxresults-respected", "deployments": [], "key": "marketplace-discovery/get-offer-terms-maxresults-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:GetOfferTerms", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_maxresults_respected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-maxresults-upper-bound-rejected", "deployments": [], "key": "marketplace-discovery/get-offer-terms-maxresults-upper-bound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:GetOfferTerms", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_maxresults_upper_bound_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-pagination-matches-unpaginated-set", "deployments": [], "key": "marketplace-discovery/get-offer-terms-pagination-matches-unpaginated-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:GetOfferTerms", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_pagination_matches_unpaginated_set.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-pagination-respects-max-results", "deployments": [], "key": "marketplace-discovery/get-offer-terms-pagination-respects-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:GetOfferTerms", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_pagination_respects_max_results.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-terms-structural-union-single-field", "deployments": [], "key": "marketplace-discovery/get-offer-terms-structural-union-single-field", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetOfferTerms", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_terms_structural_union_single_field.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-offer-via-purchase-options", "deployments": [], "key": "marketplace-discovery/get-offer-via-purchase-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetOffer", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_offer_via_purchase_options.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-product-deployed-on-aws-enum-membership", "deployments": [], "key": "marketplace-discovery/get-product-deployed-on-aws-enum-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetProduct", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_product_deployed_on_aws_enum_membership.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-product-deployed-on-aws-matches-filter", "deployments": [], "key": "marketplace-discovery/get-product-deployed-on-aws-matches-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetProduct", "marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_product_deployed_on_aws_matches_filter.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-product-deployed-on-aws-valid-enum", "deployments": [], "key": "marketplace-discovery/get-product-deployed-on-aws-valid-enum", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetProduct", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_product_deployed_on_aws_valid_enum.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-product-fulfillment-consistency-with-list-fulfillment-options", "deployments": [], "key": "marketplace-discovery/get-product-fulfillment-consistency-with-list-fulfillment-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetProduct", "marketplace-discovery:ListFulfillmentOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_product_fulfillment_consistency_with_list_fulfillment_options.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.get-product-matches-listing-associated-entity", "deployments": [], "key": "marketplace-discovery/get-product-matches-listing-associated-entity", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetProduct", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_get_product_matches_listing_associated_entity.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-fulfillment-options-for-discovered-product", "deployments": [], "key": "marketplace-discovery/list-fulfillment-options-for-discovered-product", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:ListFulfillmentOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_fulfillment_options_for_discovered_product.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-fulfillment-options-matches-product-summary-types", "deployments": [], "key": "marketplace-discovery/list-fulfillment-options-matches-product-summary-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetProduct", "marketplace-discovery:ListFulfillmentOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_fulfillment_options_matches_product_summary_types.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-fulfillment-options-matches-product-types", "deployments": [], "key": "marketplace-discovery/list-fulfillment-options-matches-product-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetProduct", "marketplace-discovery:ListFulfillmentOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_fulfillment_options_matches_product_types.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-fulfillment-options-maxresults-respected", "deployments": [], "key": "marketplace-discovery/list-fulfillment-options-maxresults-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:ListFulfillmentOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_fulfillment_options_maxresults_respected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-fulfillment-options-pagination-respects-max-results", "deployments": [], "key": "marketplace-discovery/list-fulfillment-options-pagination-respects-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:ListFulfillmentOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_fulfillment_options_pagination_respects_max_results.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-fulfillment-options-structural-union-single-field", "deployments": [], "key": "marketplace-discovery/list-fulfillment-options-structural-union-single-field", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:ListFulfillmentOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_fulfillment_options_structural_union_single_field.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-purchase-options-filter-by-product-id", "deployments": [], "key": "marketplace-discovery/list-purchase-options-filter-by-product-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_purchase_options_filter_by_product_id.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-purchase-options-filter-by-purchase-option-type", "deployments": [], "key": "marketplace-discovery/list-purchase-options-filter-by-purchase-option-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_purchase_options_filter_by_purchase_option_type.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-purchase-options-filtered-by-product-id", "deployments": [], "key": "marketplace-discovery/list-purchase-options-filtered-by-product-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_purchase_options_filtered_by_product_id.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-purchase-options-invalid-filter-type-rejected", "deployments": [], "key": "marketplace-discovery/list-purchase-options-invalid-filter-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_purchase_options_invalid_filter_type_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.list-purchase-options-then-get-offer-consistency", "deployments": [], "key": "marketplace-discovery/list-purchase-options-then-get-offer-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetOffer", "marketplace-discovery:ListPurchaseOptions", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_list_purchase_options_then_get_offer_consistency.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-facets-category-counts-consistent-with-search-listings", "deployments": [], "key": "marketplace-discovery/search-facets-category-counts-consistent-with-search-listings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_facets_category_counts_consistent_with_search_listings.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-facets-category-present-with-counts", "deployments": [], "key": "marketplace-discovery/search-facets-category-present-with-counts", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchFacets"], "path": "behavioral/marketplace-discovery/check_search_facets_category_present_with_counts.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-facets-count-matches-filtered-search-total", "deployments": [], "key": "marketplace-discovery/search-facets-count-matches-filtered-search-total", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_facets_count_matches_filtered_search_total.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-facets-facet-types-scoped-to-request", "deployments": [], "key": "marketplace-discovery/search-facets-facet-types-scoped-to-request", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets"], "path": "behavioral/marketplace-discovery/check_search_facets_facet_types_scoped_to_request.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-facets-filter-matches-search-listings-total", "deployments": [], "key": "marketplace-discovery/search-facets-filter-matches-search-listings-total", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_facets_filter_matches_search_listings_total.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-facets-invalid-facet-type-rejected", "deployments": [], "key": "marketplace-discovery/search-facets-invalid-facet-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets"], "path": "behavioral/marketplace-discovery/check_search_facets_invalid_facet_type_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-facets-returns-requested-facet-types-only", "deployments": [], "key": "marketplace-discovery/search-facets-returns-requested-facet-types-only", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets"], "path": "behavioral/marketplace-discovery/check_search_facets_returns_requested_facet_types_only.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-facets-total-results-matches-search-listings", "deployments": [], "key": "marketplace-discovery/search-facets-total-results-matches-search-listings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_facets_total_results_matches_search_listings.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-basic-success", "deployments": [], "key": "marketplace-discovery/search-listings-basic-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_basic_success.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-category-filter-monotonic-reduction", "deployments": [], "key": "marketplace-discovery/search-listings-category-filter-monotonic-reduction", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_category_filter_monotonic_reduction.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-category-filter-narrows-results", "deployments": [], "key": "marketplace-discovery/search-listings-category-filter-narrows-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_category_filter_narrows_results.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-default-sortorder-matches-explicit-descending", "deployments": [], "key": "marketplace-discovery/search-listings-default-sortorder-matches-explicit-descending", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_default_sortorder_matches_explicit_descending.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-default-structure", "deployments": [], "key": "marketplace-discovery/search-listings-default-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_default_structure.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-finds-listing-by-exact-name", "deployments": [], "key": "marketplace-discovery/search-listings-finds-listing-by-exact-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_finds_listing_by_exact_name.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-max-results-and-next-token-consistency", "deployments": [], "key": "marketplace-discovery/search-listings-max-results-and-next-token-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_max_results_and_next_token_consistency.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-max-results-exceeds-limit-rejected", "deployments": [], "key": "marketplace-discovery/search-listings-max-results-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_max_results_exceeds_limit_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-maxresults-below-minimum-rejected", "deployments": [], "key": "marketplace-discovery/search-listings-maxresults-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_maxresults_below_minimum_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-maxresults-respected", "deployments": [], "key": "marketplace-discovery/search-listings-maxresults-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_maxresults_respected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-maxresults-returns-exact-page-size", "deployments": [], "key": "marketplace-discovery/search-listings-maxresults-returns-exact-page-size", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_maxresults_returns_exact_page_size.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-nonexistent-category-returns-empty", "deployments": [], "key": "marketplace-discovery/search-listings-nonexistent-category-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_nonexistent_category_returns_empty.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-pagination-disjoint-ids", "deployments": [], "key": "marketplace-discovery/search-listings-pagination-disjoint-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_pagination_disjoint_ids.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-pagination-no-duplicate-across-pages", "deployments": [], "key": "marketplace-discovery/search-listings-pagination-no-duplicate-across-pages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_pagination_no_duplicate_across_pages.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-pagination-no-duplicate-ids", "deployments": [], "key": "marketplace-discovery/search-listings-pagination-no-duplicate-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_pagination_no_duplicate_ids.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-pagination-no-duplicate-listing-ids", "deployments": [], "key": "marketplace-discovery/search-listings-pagination-no-duplicate-listing-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_pagination_no_duplicate_listing_ids.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-pricing-model-filter-matches", "deployments": [], "key": "marketplace-discovery/search-listings-pricing-model-filter-matches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_pricing_model_filter_matches.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-pricing-model-filter-matches-results", "deployments": [], "key": "marketplace-discovery/search-listings-pricing-model-filter-matches-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_pricing_model_filter_matches_results.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-rating-filter-multiple-values-rejected", "deployments": [], "key": "marketplace-discovery/search-listings-rating-filter-multiple-values-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_rating_filter_multiple_values_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-rating-filter-out-of-range-rejected", "deployments": [], "key": "marketplace-discovery/search-listings-rating-filter-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_rating_filter_out_of_range_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-returns-nonempty-catalog", "deployments": [], "key": "marketplace-discovery/search-listings-returns-nonempty-catalog", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_returns_nonempty_catalog.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-searchtext-finds-source-listing", "deployments": [], "key": "marketplace-discovery/search-listings-searchtext-finds-source-listing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_searchtext_finds_source_listing.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-searchtext-too-long-rejected", "deployments": [], "key": "marketplace-discovery/search-listings-searchtext-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_searchtext_too_long_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-sort-by-rating-descending-order", "deployments": [], "key": "marketplace-discovery/search-listings-sort-by-rating-descending-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_sort_by_rating_descending_order.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-then-get-listing-field-consistency", "deployments": [], "key": "marketplace-discovery/search-listings-then-get-listing-field-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["marketplace-discovery:GetListing", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_then_get_listing_field_consistency.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-too-many-filters-rejected", "deployments": [], "key": "marketplace-discovery/search-listings-too-many-filters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_too_many_filters_rejected.py", "service": "marketplace-discovery"} {"check_id": "marketplace-discovery.search-listings-totalresults-stable-across-sort-order", "deployments": [], "key": "marketplace-discovery/search-listings-totalresults-stable-across-sort-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["marketplace-discovery:SearchFacets", "marketplace-discovery:SearchListings"], "path": "behavioral/marketplace-discovery/check_search_listings_totalresults_stable_across_sort_order.py", "service": "marketplace-discovery"} {"check_id": "marketplace-reporting.agreement-dashboard-embed-success", "deployments": [], "key": "marketplace-reporting/agreement-dashboard-embed-success", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_agreement_dashboard_embed_success.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.concurrent-calls-yield-unique-embed-urls", "deployments": [], "key": "marketplace-reporting/concurrent-calls-yield-unique-embed-urls", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_concurrent_calls_yield_unique_embed_urls.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.dashboard-account-id-wrong-digit-count-rejected", "deployments": [], "key": "marketplace-reporting/dashboard-account-id-wrong-digit-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_dashboard_account_id_wrong_digit_count_rejected.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.dashboard-arn-pattern-mismatch-rejected", "deployments": [], "key": "marketplace-reporting/dashboard-arn-pattern-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_dashboard_arn_pattern_mismatch_rejected.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.dashboard-arn-trailing-extra-segment-rejected", "deployments": [], "key": "marketplace-reporting/dashboard-arn-trailing-extra-segment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_dashboard_arn_trailing_extra_segment_rejected.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.dashboard-disallowed-resource-path-rejected", "deployments": [], "key": "marketplace-reporting/dashboard-disallowed-resource-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_dashboard_disallowed_resource_path_rejected.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.dashboard-identifier-wrong-partition-rejected", "deployments": [], "key": "marketplace-reporting/dashboard-identifier-wrong-partition-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_dashboard_identifier_wrong_partition_rejected.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.embed-url-distinct-across-repeated-calls", "deployments": [], "key": "marketplace-reporting/embed-url-distinct-across-repeated-calls", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_embed_url_distinct_across_repeated_calls.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.embed-url-is-valid-https-endpoint", "deployments": [], "key": "marketplace-reporting/embed-url-is-valid-https-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_embed_url_is_valid_https_endpoint.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.embedding-domain-disallowed-scheme-rejected", "deployments": [], "key": "marketplace-reporting/embedding-domain-disallowed-scheme-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_embedding_domain_disallowed_scheme_rejected.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.embedding-domain-missing-tld-rejected", "deployments": [], "key": "marketplace-reporting/embedding-domain-missing-tld-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_embedding_domain_missing_tld_rejected.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.embedding-domain-uppercase-scheme-rejected", "deployments": [], "key": "marketplace-reporting/embedding-domain-uppercase-scheme-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_embedding_domain_uppercase_scheme_rejected.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.embedding-domain-with-path-and-query-accepted", "deployments": [], "key": "marketplace-reporting/embedding-domain-with-path-and-query-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_embedding_domain_with_path_and_query_accepted.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.embedding-domains-echoed-in-order", "deployments": [], "key": "marketplace-reporting/embedding-domains-echoed-in-order", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_embedding_domains_echoed_in_order.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.localhost-embedding-domain-accepted", "deployments": [], "key": "marketplace-reporting/localhost-embedding-domain-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_localhost_embedding_domain_accepted.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.sequential-different-dashboards-do-not-leak-identifiers", "deployments": [], "key": "marketplace-reporting/sequential-different-dashboards-do-not-leak-identifiers", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_sequential_different_dashboards_do_not_leak_identifiers.py", "service": "marketplace-reporting"} {"check_id": "marketplace-reporting.wildcard-subdomain-embedding-domain-accepted", "deployments": [], "key": "marketplace-reporting/wildcard-subdomain-embedding-domain-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["marketplace-reporting:GetBuyerDashboard", "sts:GetCallerIdentity"], "path": "behavioral/marketplace-reporting/check_wildcard_subdomain_embedding_domain_accepted.py", "service": "marketplace-reporting"} {"check_id": "mediaconnect.add-remove-flow-output-round-trip", "deployments": [], "key": "mediaconnect/add-remove-flow-output-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:AddFlowOutputs", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:RemoveFlowOutput", "mediaconnect:UpdateFlowOutput"], "path": "behavioral/mediaconnect/check_add_remove_flow_output_round_trip.py", "service": "mediaconnect"} {"check_id": "mediaconnect.add-remove-flow-source-round-trip", "deployments": [], "key": "mediaconnect/add-remove-flow-source-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:AddFlowSources", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:RemoveFlowSource", "mediaconnect:UpdateFlow", "mediaconnect:UpdateFlowSource"], "path": "behavioral/mediaconnect/check_add_remove_flow_source_round_trip.py", "service": "mediaconnect"} {"check_id": "mediaconnect.batch-get-router-input-arn-limit-exceeded-rejected", "deployments": [], "key": "mediaconnect/batch-get-router-input-arn-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconnect:BatchGetRouterInput", "mediaconnect:CreateRouterInput", "mediaconnect:CreateRouterNetworkInterface", "mediaconnect:DeleteRouterInput", "mediaconnect:DeleteRouterNetworkInterface", "mediaconnect:GetRouterInput", "mediaconnect:GetRouterNetworkInterface", "sts:GetCallerIdentity"], "path": "behavioral/mediaconnect/check_batch_get_router_input_arn_limit_exceeded_rejected.py", "service": "mediaconnect"} {"check_id": "mediaconnect.bridge-add-remove-source-and-output", "deployments": [], "key": "mediaconnect/bridge-add-remove-source-and-output", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:AddBridgeSources", "mediaconnect:CreateBridge", "mediaconnect:CreateGateway", "mediaconnect:DeleteBridge", "mediaconnect:DeleteGateway", "mediaconnect:DescribeBridge", "mediaconnect:DescribeGateway", "mediaconnect:ListGateways", "mediaconnect:RemoveBridgeSource", "mediaconnect:TagResource", "mediaconnect:UpdateBridge"], "path": "behavioral/mediaconnect/check_bridge_add_remove_source_and_output.py", "service": "mediaconnect"} {"check_id": "mediaconnect.bridge-create-and-delete-lifecycle", "deployments": [], "key": "mediaconnect/bridge-create-and-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateBridge", "mediaconnect:CreateGateway", "mediaconnect:DeleteBridge", "mediaconnect:DeleteGateway", "mediaconnect:DescribeBridge", "mediaconnect:DescribeGateway", "mediaconnect:ListGateways", "mediaconnect:UpdateBridge"], "path": "behavioral/mediaconnect/check_bridge_create_and_delete_lifecycle.py", "service": "mediaconnect"} {"check_id": "mediaconnect.cloudwatch-alarm-state-transition-for-flow-metric", "deployments": [], "key": "mediaconnect/cloudwatch-alarm-state-transition-for-flow-metric", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow"], "path": "behavioral/mediaconnect/check_cloudwatch_alarm_state_transition_for_flow_metric.py", "service": "mediaconnect"} {"check_id": "mediaconnect.concurrent-gateway-create-same-name-single-winner", "deployments": [], "key": "mediaconnect/concurrent-gateway-create-same-name-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateGateway", "mediaconnect:DeleteGateway", "mediaconnect:ListGateways", "mediaconnect:TagResource"], "path": "behavioral/mediaconnect/check_concurrent_gateway_create_same_name_single_winner.py", "service": "mediaconnect"} {"check_id": "mediaconnect.create-gateway-duplicate-name-allowed", "deployments": [], "key": "mediaconnect/create-gateway-duplicate-name-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateGateway", "mediaconnect:DeleteGateway", "mediaconnect:DescribeGateway", "mediaconnect:ListGateways"], "path": "behavioral/mediaconnect/check_create_gateway_duplicate_name_allowed.py", "service": "mediaconnect"} {"check_id": "mediaconnect.delete-active-flow-rejected", "deployments": [], "key": "mediaconnect/delete-active-flow-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:StartFlow", "mediaconnect:StopFlow", "mediaconnect:TagResource"], "path": "behavioral/mediaconnect/check_delete_active_flow_rejected.py", "service": "mediaconnect"} {"check_id": "mediaconnect.describe-flow-not-found", "deployments": [], "key": "mediaconnect/describe-flow-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow"], "path": "behavioral/mediaconnect/check_describe_flow_not_found.py", "service": "mediaconnect"} {"check_id": "mediaconnect.describe-flow-source-metadata-not-yet-available", "deployments": [], "key": "mediaconnect/describe-flow-source-metadata-not-yet-available", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:DescribeFlowSourceMetadata", "mediaconnect:StartFlow", "mediaconnect:StopFlow"], "path": "behavioral/mediaconnect/check_describe_flow_source_metadata_not_yet_available.py", "service": "mediaconnect"} {"check_id": "mediaconnect.eventbridge-missing-queue-policy-blocks-delivery", "deployments": [], "key": "mediaconnect/eventbridge-missing-queue-policy-blocks-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:StartFlow", "mediaconnect:StopFlow", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/mediaconnect/check_eventbridge_missing_queue_policy_blocks_delivery.py", "service": "mediaconnect"} {"check_id": "mediaconnect.flow-entitlement-status-toggle", "deployments": [], "key": "mediaconnect/flow-entitlement-status-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:GrantFlowEntitlements", "mediaconnect:UpdateFlowEntitlement", "sts:GetCallerIdentity"], "path": "behavioral/mediaconnect/check_flow_entitlement_status_toggle.py", "service": "mediaconnect"} {"check_id": "mediaconnect.flow-media-stream-lifecycle", "deployments": [], "key": "mediaconnect/flow-media-stream-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:AddFlowMediaStreams", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:RemoveFlowMediaStream", "mediaconnect:UpdateFlowMediaStream"], "path": "behavioral/mediaconnect/check_flow_media_stream_lifecycle.py", "service": "mediaconnect"} {"check_id": "mediaconnect.flow-output-status-toggle", "deployments": [], "key": "mediaconnect/flow-output-status-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:AddFlowOutputs", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:UpdateFlowOutput"], "path": "behavioral/mediaconnect/check_flow_output_status_toggle.py", "service": "mediaconnect"} {"check_id": "mediaconnect.flow-start-stop-lifecycle", "deployments": [], "key": "mediaconnect/flow-start-stop-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:StartFlow", "mediaconnect:StopFlow"], "path": "behavioral/mediaconnect/check_flow_start_stop_lifecycle.py", "service": "mediaconnect"} {"check_id": "mediaconnect.flow-state-change-eventbridge-pattern-match-delivers", "deployments": [], "key": "mediaconnect/flow-state-change-eventbridge-pattern-match-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:StartFlow", "mediaconnect:StopFlow", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/mediaconnect/check_flow_state_change_eventbridge_pattern_match_delivers.py", "service": "mediaconnect"} {"check_id": "mediaconnect.flow-state-change-eventbridge-pattern-mismatch-no-delivery", "deployments": [], "key": "mediaconnect/flow-state-change-eventbridge-pattern-mismatch-no-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:StartFlow", "mediaconnect:StopFlow", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/mediaconnect/check_flow_state_change_eventbridge_pattern_mismatch_no_delivery.py", "service": "mediaconnect"} {"check_id": "mediaconnect.grant-and-revoke-flow-entitlement", "deployments": [], "key": "mediaconnect/grant-and-revoke-flow-entitlement", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:GrantFlowEntitlements", "mediaconnect:RevokeFlowEntitlement", "sts:GetCallerIdentity"], "path": "behavioral/mediaconnect/check_grant_and_revoke_flow_entitlement.py", "service": "mediaconnect"} {"check_id": "mediaconnect.list-flows-pagination", "deployments": [], "key": "mediaconnect/list-flows-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:ListFlows"], "path": "behavioral/mediaconnect/check_list_flows_pagination.py", "service": "mediaconnect"} {"check_id": "mediaconnect.native-media-ingest-udp-round-trip", "deployments": [], "key": "mediaconnect/native-media-ingest-udp-round-trip", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:ListFlows", "mediaconnect:StartFlow", "mediaconnect:StopFlow"], "path": "behavioral/mediaconnect/check_native_media_ingest_udp_round_trip.py", "service": "mediaconnect"} {"check_id": "mediaconnect.remove-only-flow-source-rejected", "deployments": [], "key": "mediaconnect/remove-only-flow-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconnect:AddFlowSources", "mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:RemoveFlowSource", "mediaconnect:UpdateFlow"], "path": "behavioral/mediaconnect/check_remove_only_flow_source_rejected.py", "service": "mediaconnect"} {"check_id": "mediaconnect.router-input-lifecycle", "deployments": [], "key": "mediaconnect/router-input-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateRouterInput", "mediaconnect:CreateRouterNetworkInterface", "mediaconnect:DeleteRouterInput", "mediaconnect:DeleteRouterNetworkInterface", "mediaconnect:GetRouterInput", "mediaconnect:GetRouterNetworkInterface", "mediaconnect:StartRouterInput", "mediaconnect:StopRouterInput"], "path": "behavioral/mediaconnect/check_router_input_lifecycle.py", "service": "mediaconnect"} {"check_id": "mediaconnect.router-output-lifecycle", "deployments": [], "key": "mediaconnect/router-output-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateRouterNetworkInterface", "mediaconnect:CreateRouterOutput", "mediaconnect:DeleteRouterNetworkInterface", "mediaconnect:DeleteRouterOutput", "mediaconnect:GetRouterNetworkInterface", "mediaconnect:GetRouterOutput", "mediaconnect:StartRouterOutput", "mediaconnect:StopRouterOutput"], "path": "behavioral/mediaconnect/check_router_output_lifecycle.py", "service": "mediaconnect"} {"check_id": "mediaconnect.start-flow-missing-source-rejected", "deployments": [], "key": "mediaconnect/start-flow-missing-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:ListFlows", "mediaconnect:StartFlow", "mediaconnect:StopFlow"], "path": "behavioral/mediaconnect/check_start_flow_missing_source_rejected.py", "service": "mediaconnect"} {"check_id": "mediaconnect.tag-resource-round-trip", "deployments": [], "key": "mediaconnect/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateFlow", "mediaconnect:DeleteFlow", "mediaconnect:DescribeFlow", "mediaconnect:ListTagsForResource", "mediaconnect:TagResource", "mediaconnect:UntagResource"], "path": "behavioral/mediaconnect/check_tag_resource_round_trip.py", "service": "mediaconnect"} {"check_id": "mediaconnect.take-router-input-routes-and-unroutes", "deployments": [], "key": "mediaconnect/take-router-input-routes-and-unroutes", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconnect:CreateRouterInput", "mediaconnect:CreateRouterNetworkInterface", "mediaconnect:CreateRouterOutput", "mediaconnect:DeleteRouterInput", "mediaconnect:DeleteRouterNetworkInterface", "mediaconnect:DeleteRouterOutput", "mediaconnect:GetRouterInput", "mediaconnect:GetRouterNetworkInterface", "mediaconnect:GetRouterOutput", "mediaconnect:TakeRouterInput"], "path": "behavioral/mediaconnect/check_take_router_input_routes_and_unroutes.py", "service": "mediaconnect"} {"check_id": "mediaconnect.take-router-input-routing-scope-mismatch-rejected", "deployments": [], "key": "mediaconnect/take-router-input-routing-scope-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconnect:CreateRouterInput", "mediaconnect:CreateRouterNetworkInterface", "mediaconnect:CreateRouterOutput", "mediaconnect:DeleteRouterInput", "mediaconnect:DeleteRouterNetworkInterface", "mediaconnect:DeleteRouterOutput", "mediaconnect:GetRouterNetworkInterface", "mediaconnect:GetRouterOutput", "mediaconnect:TakeRouterInput"], "path": "behavioral/mediaconnect/check_take_router_input_routing_scope_mismatch_rejected.py", "service": "mediaconnect"} {"check_id": "mediaconvert.cancel-already-canceled-job-conflict-rejected", "deployments": [], "key": "mediaconvert/cancel-already-canceled-job-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob"], "path": "behavioral/mediaconvert/check_cancel_already_canceled_job_conflict_rejected.py", "service": "mediaconvert"} {"check_id": "mediaconvert.cancel-job-transitions-to-canceled", "deployments": [], "key": "mediaconvert/cancel-job-transitions-to-canceled", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob"], "path": "behavioral/mediaconvert/check_cancel_job_transitions_to_canceled.py", "service": "mediaconvert"} {"check_id": "mediaconvert.concurrent-create-queue-same-name-race", "deployments": [], "key": "mediaconvert/concurrent-create-queue-same-name-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetQueue", "mediaconvert:ListQueues"], "path": "behavioral/mediaconvert/check_concurrent_create_queue_same_name_race.py", "service": "mediaconvert"} {"check_id": "mediaconvert.concurrent-job-submission-unique-ids", "deployments": [], "key": "mediaconvert/concurrent-job-submission-unique-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:ListJobs"], "path": "behavioral/mediaconvert/check_concurrent_job_submission_unique_ids.py", "service": "mediaconvert"} {"check_id": "mediaconvert.create-job-from-template-inherits-output-settings", "deployments": [], "key": "mediaconvert/create-job-from-template-inherits-output-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateJobTemplate", "mediaconvert:CreateQueue", "mediaconvert:DeleteJobTemplate", "mediaconvert:DeleteQueue", "mediaconvert:GetJob"], "path": "behavioral/mediaconvert/check_create_job_from_template_inherits_output_settings.py", "service": "mediaconvert"} {"check_id": "mediaconvert.create-job-nonexistent-queue-rejected", "deployments": [], "key": "mediaconvert/create-job-nonexistent-queue-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob", "mediaconvert:ListJobs", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/mediaconvert/check_create_job_nonexistent_queue_rejected.py", "service": "mediaconvert"} {"check_id": "mediaconvert.create-job-preserves-user-metadata-and-hop-destinations", "deployments": [], "key": "mediaconvert/create-job-preserves-user-metadata-and-hop-destinations", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob"], "path": "behavioral/mediaconvert/check_create_job_preserves_user_metadata_and_hop_destinations.py", "service": "mediaconvert"} {"check_id": "mediaconvert.create-job-transcodes-source-clip-to-complete-output", "deployments": [], "key": "mediaconvert/create-job-transcodes-source-clip-to-complete-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:PutObject"], "path": "behavioral/mediaconvert/check_create_job_transcodes_source_clip_to_complete_output.py", "service": "mediaconvert"} {"check_id": "mediaconvert.create-job-unassumable-role-forbidden", "deployments": [], "key": "mediaconvert/create-job-unassumable-role-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob", "mediaconvert:ListJobs"], "path": "behavioral/mediaconvert/check_create_job_unassumable_role_forbidden.py", "service": "mediaconvert"} {"check_id": "mediaconvert.delete-default-queue-rejected", "deployments": [], "key": "mediaconvert/delete-default-queue-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetQueue", "mediaconvert:UpdateQueue"], "path": "behavioral/mediaconvert/check_delete_default_queue_rejected.py", "service": "mediaconvert"} {"check_id": "mediaconvert.delete-queue-with-active-job-conflict-rejected", "deployments": [], "key": "mediaconvert/delete-queue-with-active-job-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob", "mediaconvert:GetQueue"], "path": "behavioral/mediaconvert/check_delete_queue_with_active_job_conflict_rejected.py", "service": "mediaconvert"} {"check_id": "mediaconvert.describe-endpoints-returns-stable-url", "deployments": [], "key": "mediaconvert/describe-endpoints-returns-stable-url", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconvert:DescribeEndpoints"], "path": "behavioral/mediaconvert/check_describe_endpoints_returns_stable_url.py", "service": "mediaconvert"} {"check_id": "mediaconvert.eventbridge-delivery-blocked-without-queue-policy-rejected", "deployments": [], "key": "mediaconvert/eventbridge-delivery-blocked-without-queue-policy-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/mediaconvert/check_eventbridge_delivery_blocked_without_queue_policy_rejected.py", "service": "mediaconvert"} {"check_id": "mediaconvert.job-canceled-event-delivered-via-eventbridge", "deployments": [], "key": "mediaconvert/job-canceled-event-delivered-via-eventbridge", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/mediaconvert/check_job_canceled_event_delivered_via_eventbridge.py", "service": "mediaconvert"} {"check_id": "mediaconvert.job-progresses-to-error-on-missing-input", "deployments": [], "key": "mediaconvert/job-progresses-to-error-on-missing-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob"], "path": "behavioral/mediaconvert/check_job_progresses_to_error_on_missing_input.py", "service": "mediaconvert"} {"check_id": "mediaconvert.job-template-update-reflects-in-get", "deployments": [], "key": "mediaconvert/job-template-update-reflects-in-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconvert:CreateJobTemplate", "mediaconvert:DeleteJobTemplate", "mediaconvert:GetJobTemplate", "mediaconvert:UpdateJobTemplate"], "path": "behavioral/mediaconvert/check_job_template_update_reflects_in_get.py", "service": "mediaconvert"} {"check_id": "mediaconvert.jobs-query-lifecycle-to-complete", "deployments": [], "key": "mediaconvert/jobs-query-lifecycle-to-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJobsQueryResults", "mediaconvert:StartJobsQuery"], "path": "behavioral/mediaconvert/check_jobs_query_lifecycle_to_complete.py", "service": "mediaconvert"} {"check_id": "mediaconvert.list-jobs-filters-by-status", "deployments": [], "key": "mediaconvert/list-jobs-filters-by-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob", "mediaconvert:ListJobs"], "path": "behavioral/mediaconvert/check_list_jobs_filters_by_status.py", "service": "mediaconvert"} {"check_id": "mediaconvert.policy-put-get-delete-lifecycle", "deployments": [], "key": "mediaconvert/policy-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconvert:DeletePolicy", "mediaconvert:GetPolicy", "mediaconvert:PutPolicy"], "path": "behavioral/mediaconvert/check_policy_put_get_delete_lifecycle.py", "service": "mediaconvert"} {"check_id": "mediaconvert.preset-update-reflects-in-get", "deployments": [], "key": "mediaconvert/preset-update-reflects-in-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconvert:CreatePreset", "mediaconvert:DeletePreset", "mediaconvert:GetPreset", "mediaconvert:UpdatePreset"], "path": "behavioral/mediaconvert/check_preset_update_reflects_in_get.py", "service": "mediaconvert"} {"check_id": "mediaconvert.queue-create-get-delete-lifecycle", "deployments": [], "key": "mediaconvert/queue-create-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetQueue", "mediaconvert:UpdateQueue"], "path": "behavioral/mediaconvert/check_queue_create_get_delete_lifecycle.py", "service": "mediaconvert"} {"check_id": "mediaconvert.queue-pause-blocks-then-unpause-allows-job-progress", "deployments": [], "key": "mediaconvert/queue-pause-blocks-then-unpause-allows-job-progress", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mediaconvert:CancelJob", "mediaconvert:CreateJob", "mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetJob", "mediaconvert:UpdateQueue"], "path": "behavioral/mediaconvert/check_queue_pause_blocks_then_unpause_allows_job_progress.py", "service": "mediaconvert"} {"check_id": "mediaconvert.tag-resource-roundtrip-and-untag", "deployments": [], "key": "mediaconvert/tag-resource-roundtrip-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:ListTagsForResource", "mediaconvert:TagResource", "mediaconvert:UntagResource"], "path": "behavioral/mediaconvert/check_tag_resource_roundtrip_and_untag.py", "service": "mediaconvert"} {"check_id": "mediaconvert.update-queue-invalid-status-rejected", "deployments": [], "key": "mediaconvert/update-queue-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconvert:CreateQueue", "mediaconvert:DeleteQueue", "mediaconvert:GetQueue", "mediaconvert:UpdateQueue"], "path": "behavioral/mediaconvert/check_update_queue_invalid_status_rejected.py", "service": "mediaconvert"} {"check_id": "mediaconvert.update-system-job-template-conflict-rejected", "deployments": [], "key": "mediaconvert/update-system-job-template-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediaconvert:CreateJobTemplate", "mediaconvert:DeleteJobTemplate", "mediaconvert:GetJobTemplate", "mediaconvert:ListJobTemplates", "mediaconvert:UpdateJobTemplate"], "path": "behavioral/mediaconvert/check_update_system_job_template_conflict_rejected.py", "service": "mediaconvert"} {"check_id": "medialive.batch-delete-partial-failure", "deployments": [], "key": "medialive/batch-delete-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "medialive:BatchDelete", "medialive:CreateChannel", "medialive:CreateInput", "medialive:DeleteChannel", "medialive:DeleteInput", "medialive:DescribeChannel", "medialive:DescribeInput", "medialive:StopChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/medialive/check_batch_delete_partial_failure.py", "service": "medialive"} {"check_id": "medialive.channel-schedule-actions-lifecycle", "deployments": [], "key": "medialive/channel-schedule-actions-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "medialive:BatchUpdateSchedule", "medialive:CreateChannel", "medialive:CreateInput", "medialive:DeleteChannel", "medialive:DeleteInput", "medialive:DescribeChannel", "medialive:DescribeInput", "medialive:DescribeSchedule", "medialive:StopChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/medialive/check_channel_schedule_actions_lifecycle.py", "service": "medialive"} {"check_id": "medialive.cloudwatch-alarm-template-group-hierarchy-crud", "deployments": [], "key": "medialive/cloudwatch-alarm-template-group-hierarchy-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["medialive:CreateCloudWatchAlarmTemplate", "medialive:CreateCloudWatchAlarmTemplateGroup", "medialive:DeleteCloudWatchAlarmTemplate", "medialive:DeleteCloudWatchAlarmTemplateGroup", "medialive:GetCloudWatchAlarmTemplate", "medialive:GetCloudWatchAlarmTemplateGroup", "medialive:UpdateCloudWatchAlarmTemplate", "medialive:UpdateCloudWatchAlarmTemplateGroup"], "path": "behavioral/medialive/check_cloudwatch_alarm_template_group_hierarchy_crud.py", "service": "medialive"} {"check_id": "medialive.delete-input-attached-to-channel-rejected", "deployments": [], "key": "medialive/delete-input-attached-to-channel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "medialive:CreateChannel", "medialive:CreateInput", "medialive:DeleteChannel", "medialive:DeleteInput", "medialive:DescribeChannel", "medialive:DescribeInput", "medialive:StopChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/medialive/check_delete_input_attached_to_channel_rejected.py", "service": "medialive"} {"check_id": "medialive.describe-channel-not-found", "deployments": [], "key": "medialive/describe-channel-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "medialive:CreateChannel", "medialive:CreateInput", "medialive:DeleteChannel", "medialive:DeleteInput", "medialive:DescribeChannel", "medialive:DescribeInput", "medialive:StopChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/medialive/check_describe_channel_not_found.py", "service": "medialive"} {"check_id": "medialive.eventbridge-rule-template-duplicate-name-rejected", "deployments": [], "key": "medialive/eventbridge-rule-template-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["medialive:CreateEventBridgeRuleTemplate", "medialive:CreateEventBridgeRuleTemplateGroup", "medialive:DeleteEventBridgeRuleTemplate", "medialive:DeleteEventBridgeRuleTemplateGroup", "medialive:ListEventBridgeRuleTemplates", "sts:GetCallerIdentity"], "path": "behavioral/medialive/check_eventbridge_rule_template_duplicate_name_rejected.py", "service": "medialive"} {"check_id": "medialive.eventbridge-rule-template-group-hierarchy-crud", "deployments": [], "key": "medialive/eventbridge-rule-template-group-hierarchy-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["medialive:CreateEventBridgeRuleTemplate", "medialive:CreateEventBridgeRuleTemplateGroup", "medialive:DeleteEventBridgeRuleTemplate", "medialive:DeleteEventBridgeRuleTemplateGroup", "medialive:GetEventBridgeRuleTemplate", "medialive:GetEventBridgeRuleTemplateGroup", "medialive:UpdateEventBridgeRuleTemplate", "sts:GetCallerIdentity"], "path": "behavioral/medialive/check_eventbridge_rule_template_group_hierarchy_crud.py", "service": "medialive"} {"check_id": "medialive.input-lifecycle-url-pull", "deployments": [], "key": "medialive/input-lifecycle-url-pull", "labels": ["axis:happy-path", "plane:control"], "operations": ["medialive:CreateInput", "medialive:DeleteInput", "medialive:DescribeInput", "medialive:UpdateInput"], "path": "behavioral/medialive/check_input_lifecycle_url_pull.py", "service": "medialive"} {"check_id": "medialive.input-security-group-invalid-cidr-rejected", "deployments": [], "key": "medialive/input-security-group-invalid-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["medialive:CreateInputSecurityGroup", "medialive:DeleteInputSecurityGroup", "medialive:DescribeInputSecurityGroup", "medialive:ListInputSecurityGroups"], "path": "behavioral/medialive/check_input_security_group_invalid_cidr_rejected.py", "service": "medialive"} {"check_id": "medialive.input-security-group-lifecycle", "deployments": [], "key": "medialive/input-security-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["medialive:CreateInputSecurityGroup", "medialive:DeleteInputSecurityGroup", "medialive:DescribeInputSecurityGroup", "medialive:ListInputSecurityGroups", "medialive:UpdateInputSecurityGroup"], "path": "behavioral/medialive/check_input_security_group_lifecycle.py", "service": "medialive"} {"check_id": "medialive.mp4-file-channel-delivers-encoded-segments-to-s3", "deployments": [], "key": "medialive/mp4-file-channel-delivers-encoded-segments-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medialive:CreateChannel", "medialive:CreateInput", "medialive:DeleteChannel", "medialive:DeleteInput", "medialive:DescribeChannel", "medialive:DescribeInput", "medialive:StartChannel", "medialive:StopChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/medialive/check_mp4_file_channel_delivers_encoded_segments_to_s3.py", "service": "medialive"} {"check_id": "medialive.multiplex-program-name-race-exactly-one-wins", "deployments": [], "key": "medialive/multiplex-program-name-race-exactly-one-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "medialive:CreateMultiplex", "medialive:CreateMultiplexProgram", "medialive:DeleteMultiplex", "medialive:DeleteMultiplexProgram", "medialive:DescribeMultiplex", "medialive:DescribeMultiplexProgram", "medialive:ListMultiplexPrograms"], "path": "behavioral/medialive/check_multiplex_program_name_race_exactly_one_wins.py", "service": "medialive"} {"check_id": "medialive.multiplex-program-settings-update", "deployments": [], "key": "medialive/multiplex-program-settings-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "medialive:CreateMultiplex", "medialive:CreateMultiplexProgram", "medialive:DeleteMultiplex", "medialive:DeleteMultiplexProgram", "medialive:DescribeMultiplexProgram", "medialive:UpdateMultiplexProgram"], "path": "behavioral/medialive/check_multiplex_program_settings_update.py", "service": "medialive"} {"check_id": "medialive.multiplex-start-stop-lifecycle", "deployments": [], "key": "medialive/multiplex-start-stop-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "medialive:CreateMultiplex", "medialive:CreateMultiplexProgram", "medialive:DeleteMultiplex", "medialive:DeleteMultiplexProgram", "medialive:DescribeMultiplex", "medialive:StartMultiplex", "medialive:StopMultiplex"], "path": "behavioral/medialive/check_multiplex_start_stop_lifecycle.py", "service": "medialive"} {"check_id": "medialive.multiplex-start-without-programs-rejected", "deployments": [], "key": "medialive/multiplex-start-without-programs-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "medialive:CreateMultiplex", "medialive:DeleteMultiplex", "medialive:DescribeMultiplex", "medialive:ListMultiplexes", "medialive:StartMultiplex", "medialive:StopMultiplex"], "path": "behavioral/medialive/check_multiplex_start_without_programs_rejected.py", "service": "medialive"} {"check_id": "medialive.sdi-source-lifecycle-crud", "deployments": [], "key": "medialive/sdi-source-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["medialive:CreateSdiSource", "medialive:DeleteSdiSource", "medialive:DescribeSdiSource", "medialive:UpdateSdiSource"], "path": "behavioral/medialive/check_sdi_source_lifecycle_crud.py", "service": "medialive"} {"check_id": "medialive.signal-map-create-completes", "deployments": [], "key": "medialive/signal-map-create-completes", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "medialive:CreateChannel", "medialive:CreateInput", "medialive:CreateSignalMap", "medialive:DeleteChannel", "medialive:DeleteInput", "medialive:DeleteSignalMap", "medialive:DescribeChannel", "medialive:DescribeInput", "medialive:GetSignalMap", "medialive:StopChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/medialive/check_signal_map_create_completes.py", "service": "medialive"} {"check_id": "medialive.signal-map-invalid-entry-point-rejected", "deployments": [], "key": "medialive/signal-map-invalid-entry-point-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "medialive:CreateChannel", "medialive:CreateInput", "medialive:CreateSignalMap", "medialive:DeleteChannel", "medialive:DeleteInput", "medialive:DeleteSignalMap", "medialive:DescribeChannel", "medialive:DescribeInput", "medialive:GetSignalMap", "medialive:ListSignalMaps", "medialive:StopChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/medialive/check_signal_map_invalid_entry_point_rejected.py", "service": "medialive"} {"check_id": "medialive.standard-channel-class-rejects-single-pipeline-class-input", "deployments": [], "key": "medialive/standard-channel-class-rejects-single-pipeline-class-input", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "medialive:CreateChannel", "medialive:CreateInput", "medialive:DeleteChannel", "medialive:DeleteInput", "medialive:DescribeChannel", "medialive:DescribeInput", "medialive:StopChannel", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/medialive/check_standard_channel_class_rejects_single_pipeline_class_input.py", "service": "medialive"} {"check_id": "medialive.tags-lifecycle-roundtrip", "deployments": [], "key": "medialive/tags-lifecycle-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["medialive:CreateInputSecurityGroup", "medialive:CreateTags", "medialive:DeleteInputSecurityGroup", "medialive:DeleteTags", "medialive:ListTagsForResource"], "path": "behavioral/medialive/check_tags_lifecycle_roundtrip.py", "service": "medialive"} {"check_id": "mediapackage-vod.asset-egress-endpoints-match-packaging-configurations", "deployments": [], "key": "mediapackage-vod/asset-egress-endpoints-match-packaging-configurations", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribeAsset", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_asset_egress_endpoints_match_packaging_configurations.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.asset-egress-hls-manifest-native-http-round-trip", "deployments": [], "key": "mediapackage-vod/asset-egress-hls-manifest-native-http-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribeAsset", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_asset_egress_hls_manifest_native_http_round_trip.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.asset-zero-packaging-configurations-yields-no-endpoints", "deployments": [], "key": "mediapackage-vod/asset-zero-packaging-configurations-yields-no-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribeAsset", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_asset_zero_packaging_configurations_yields_no_endpoints.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.concurrent-packaging-configuration-duplicate-id-contention", "deployments": [], "key": "mediapackage-vod/concurrent-packaging-configuration-duplicate-id-contention", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingConfiguration"], "path": "behavioral/mediapackage-vod/check_concurrent_packaging_configuration_duplicate_id_contention.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.configure-logs-egress-access-logs-persists", "deployments": [], "key": "mediapackage-vod/configure-logs-egress-access-logs-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "mediapackage-vod:ConfigureLogs", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingGroup"], "path": "behavioral/mediapackage-vod/check_configure_logs_egress_access_logs_persists.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.create-asset-duplicate-id-rejected", "deployments": [], "key": "mediapackage-vod/create-asset-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribeAsset", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_create_asset_duplicate_id_rejected.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.create-asset-nonexistent-packaging-group-not-found", "deployments": [], "key": "mediapackage-vod/create-asset-nonexistent-packaging-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribeAsset", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_create_asset_nonexistent_packaging_group_not_found.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.create-packaging-group-missing-permission-rejected", "deployments": [], "key": "mediapackage-vod/create-packaging-group-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingGroup", "sts:AssumeRole"], "path": "behavioral/mediapackage-vod/check_create_packaging_group_missing_permission_rejected.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.delete-asset-state-transition", "deployments": [], "key": "mediapackage-vod/delete-asset-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribeAsset", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_delete_asset_state_transition.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.delete-packaging-configuration-state-transition", "deployments": [], "key": "mediapackage-vod/delete-packaging-configuration-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingConfiguration"], "path": "behavioral/mediapackage-vod/check_delete_packaging_configuration_state_transition.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.delete-packaging-group-with-attached-asset-rejected", "deployments": [], "key": "mediapackage-vod/delete-packaging-group-with-attached-asset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribeAsset", "mediapackage-vod:DescribePackagingGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_delete_packaging_group_with_attached_asset_rejected.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.delete-packaging-group-with-dependent-configs-rejected", "deployments": [], "key": "mediapackage-vod/delete-packaging-group-with-dependent-configs-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingConfiguration", "mediapackage-vod:DescribePackagingGroup"], "path": "behavioral/mediapackage-vod/check_delete_packaging_group_with_dependent_configs_rejected.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.list-assets-filtered-by-packaging-group", "deployments": [], "key": "mediapackage-vod/list-assets-filtered-by-packaging-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:ListAssets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_list_assets_filtered_by_packaging_group.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.list-assets-invalid-next-token-rejected", "deployments": [], "key": "mediapackage-vod/list-assets-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:ListAssets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_list_assets_invalid_next_token_rejected.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.list-packaging-configurations-pagination-no-duplicates", "deployments": [], "key": "mediapackage-vod/list-packaging-configurations-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:ListPackagingConfigurations"], "path": "behavioral/mediapackage-vod/check_list_packaging_configurations_pagination_no_duplicates.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.packaging-configuration-dash-round-trip", "deployments": [], "key": "mediapackage-vod/packaging-configuration-dash-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingConfiguration"], "path": "behavioral/mediapackage-vod/check_packaging_configuration_dash_round_trip.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.packaging-configuration-hls-round-trip", "deployments": [], "key": "mediapackage-vod/packaging-configuration-hls-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingConfiguration"], "path": "behavioral/mediapackage-vod/check_packaging_configuration_hls_round_trip.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.packaging-configuration-mss-round-trip", "deployments": [], "key": "mediapackage-vod/packaging-configuration-mss-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingConfiguration", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingConfiguration", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingConfiguration"], "path": "behavioral/mediapackage-vod/check_packaging_configuration_mss_round_trip.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.packaging-group-approximate-asset-count-tracks-assets", "deployments": [], "key": "mediapackage-vod/packaging-group-approximate-asset-count-tracks-assets", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreateAsset", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeleteAsset", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribeAsset", "mediapackage-vod:DescribePackagingGroup", "mediapackage-vod:ListPackagingGroups", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mediapackage-vod/check_packaging_group_approximate_asset_count_tracks_assets.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.packaging-group-lifecycle", "deployments": [], "key": "mediapackage-vod/packaging-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingGroup", "mediapackage-vod:ListPackagingGroups"], "path": "behavioral/mediapackage-vod/check_packaging_group_lifecycle.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.tag-untag-list-tags-round-trip", "deployments": [], "key": "mediapackage-vod/tag-untag-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:ListTagsForResource", "mediapackage-vod:TagResource", "mediapackage-vod:UntagResource"], "path": "behavioral/mediapackage-vod/check_tag_untag_list_tags_round_trip.py", "service": "mediapackage-vod"} {"check_id": "mediapackage-vod.update-packaging-group-authorization-persists", "deployments": [], "key": "mediapackage-vod/update-packaging-group-authorization-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage-vod:CreatePackagingGroup", "mediapackage-vod:DeletePackagingGroup", "mediapackage-vod:DescribePackagingGroup", "mediapackage-vod:UpdatePackagingGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/mediapackage-vod/check_update_packaging_group_authorization_persists.py", "service": "mediapackage-vod"} {"check_id": "mediapackage.channel-credentials-unique-across-channels", "deployments": [], "key": "mediapackage/channel-credentials-unique-across-channels", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_channel_credentials_unique_across_channels.py", "service": "mediapackage"} {"check_id": "mediapackage.concurrent-channel-creation-same-id-single-winner", "deployments": [], "key": "mediapackage/concurrent-channel-creation-same-id-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_concurrent_channel_creation_same_id_single_winner.py", "service": "mediapackage"} {"check_id": "mediapackage.concurrent-create-origin-endpoint-duplicate-id-race", "deployments": [], "key": "mediapackage/concurrent-create-origin-endpoint-duplicate-id-race", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_concurrent_create_origin_endpoint_duplicate_id_race.py", "service": "mediapackage"} {"check_id": "mediapackage.concurrent-duplicate-channel-create-race", "deployments": [], "key": "mediapackage/concurrent-duplicate-channel-create-race", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:ListChannels"], "path": "behavioral/mediapackage/check_concurrent_duplicate_channel_create_race.py", "service": "mediapackage"} {"check_id": "mediapackage.configure-logs-nonexistent-channel-not-found", "deployments": [], "key": "mediapackage/configure-logs-nonexistent-channel-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:ConfigureLogs", "mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_configure_logs_nonexistent_channel_not_found.py", "service": "mediapackage"} {"check_id": "mediapackage.configure-logs-sets-custom-log-group-names", "deployments": [], "key": "mediapackage/configure-logs-sets-custom-log-group-names", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:ConfigureLogs", "mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_configure_logs_sets_custom_log_group_names.py", "service": "mediapackage"} {"check_id": "mediapackage.configure-logs-sets-log-group-names", "deployments": [], "key": "mediapackage/configure-logs-sets-log-group-names", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:ConfigureLogs", "mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_configure_logs_sets_log_group_names.py", "service": "mediapackage"} {"check_id": "mediapackage.create-channel-duplicate-id-rejected", "deployments": [], "key": "mediapackage/create-channel-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_create_channel_duplicate_id_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.create-channel-generates-ingest-credentials", "deployments": [], "key": "mediapackage/create-channel-generates-ingest-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_create_channel_generates_ingest_credentials.py", "service": "mediapackage"} {"check_id": "mediapackage.create-channel-generates-unique-ingest-credentials", "deployments": [], "key": "mediapackage/create-channel-generates-unique-ingest-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_create_channel_generates_unique_ingest_credentials.py", "service": "mediapackage"} {"check_id": "mediapackage.create-harvest-job-invalid-time-range-rejected", "deployments": [], "key": "mediapackage/create-harvest-job-invalid-time-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage:CreateChannel", "mediapackage:CreateHarvestJob", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeHarvestJob", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/mediapackage/check_create_harvest_job_invalid_time_range_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.create-harvest-job-unassumable-role-forbidden", "deployments": [], "key": "mediapackage/create-harvest-job-unassumable-role-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage:CreateChannel", "mediapackage:CreateHarvestJob", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeHarvestJob", "mediapackage:ListHarvestJobs", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/mediapackage/check_create_harvest_job_unassumable_role_forbidden.py", "service": "mediapackage"} {"check_id": "mediapackage.create-origin-endpoint-cmaf-segment-prefix-defaults-to-channel-id", "deployments": [], "key": "mediapackage/create-origin-endpoint-cmaf-segment-prefix-defaults-to-channel-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_create_origin_endpoint_cmaf_segment_prefix_defaults_to_channel_id.py", "service": "mediapackage"} {"check_id": "mediapackage.create-origin-endpoint-dash-package-config-persists", "deployments": [], "key": "mediapackage/create-origin-endpoint-dash-package-config-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_create_origin_endpoint_dash_package_config_persists.py", "service": "mediapackage"} {"check_id": "mediapackage.create-origin-endpoint-default-origination-is-allow", "deployments": [], "key": "mediapackage/create-origin-endpoint-default-origination-is-allow", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_create_origin_endpoint_default_origination_is_allow.py", "service": "mediapackage"} {"check_id": "mediapackage.create-origin-endpoint-missing-channel-rejected", "deployments": [], "key": "mediapackage/create-origin-endpoint-missing-channel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_create_origin_endpoint_missing_channel_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.create-origin-endpoint-nonexistent-channel-rejected", "deployments": [], "key": "mediapackage/create-origin-endpoint-nonexistent-channel-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint", "mediapackage:ListOriginEndpoints"], "path": "behavioral/mediapackage/check_create_origin_endpoint_nonexistent_channel_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.create-origin-endpoint-startover-and-time-delay-persist", "deployments": [], "key": "mediapackage/create-origin-endpoint-startover-and-time-delay-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_create_origin_endpoint_startover_and_time_delay_persist.py", "service": "mediapackage"} {"check_id": "mediapackage.delete-channel-removes-from-list", "deployments": [], "key": "mediapackage/delete-channel-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:ListChannels"], "path": "behavioral/mediapackage/check_delete_channel_removes_from_list.py", "service": "mediapackage"} {"check_id": "mediapackage.delete-channel-with-endpoints-rejected", "deployments": [], "key": "mediapackage/delete-channel-with-endpoints-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeChannel", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_delete_channel_with_endpoints_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.delete-channel-with-origin-endpoint-rejected", "deployments": [], "key": "mediapackage/delete-channel-with-origin-endpoint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_delete_channel_with_origin_endpoint_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.delete-origin-endpoint-removes-effect", "deployments": [], "key": "mediapackage/delete-origin-endpoint-removes-effect", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint", "mediapackage:ListOriginEndpoints"], "path": "behavioral/mediapackage/check_delete_origin_endpoint_removes_effect.py", "service": "mediapackage"} {"check_id": "mediapackage.delete-origin-endpoint-removes-it-from-list", "deployments": [], "key": "mediapackage/delete-origin-endpoint-removes-it-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint", "mediapackage:ListOriginEndpoints", "mediapackage:UpdateOriginEndpoint"], "path": "behavioral/mediapackage/check_delete_origin_endpoint_removes_it_from_list.py", "service": "mediapackage"} {"check_id": "mediapackage.delete-origin-endpoint-twice-second-call-not-found", "deployments": [], "key": "mediapackage/delete-origin-endpoint-twice-second-call-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint", "mediapackage:ListOriginEndpoints"], "path": "behavioral/mediapackage/check_delete_origin_endpoint_twice_second_call_not_found.py", "service": "mediapackage"} {"check_id": "mediapackage.describe-channel-not-found-rejected", "deployments": [], "key": "mediapackage/describe-channel-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_describe_channel_not_found_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.describe-nonexistent-channel-not-found", "deployments": [], "key": "mediapackage/describe-nonexistent-channel-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_describe_nonexistent_channel_not_found.py", "service": "mediapackage"} {"check_id": "mediapackage.harvest-job-list-filters-reflect-status", "deployments": [], "key": "mediapackage/harvest-job-list-filters-reflect-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage:CreateChannel", "mediapackage:CreateHarvestJob", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeHarvestJob", "mediapackage:ListHarvestJobs", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/mediapackage/check_harvest_job_list_filters_reflect_status.py", "service": "mediapackage"} {"check_id": "mediapackage.harvest-job-provisioning-end-to-end-workflow", "deployments": [], "key": "mediapackage/harvest-job-provisioning-end-to-end-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mediapackage:CreateChannel", "mediapackage:CreateHarvestJob", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeHarvestJob", "mediapackage:ListHarvestJobs", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/mediapackage/check_harvest_job_provisioning_end_to_end_workflow.py", "service": "mediapackage"} {"check_id": "mediapackage.hls-package-ad-markers-config-persists", "deployments": [], "key": "mediapackage/hls-package-ad-markers-config-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint", "mediapackage:UpdateOriginEndpoint"], "path": "behavioral/mediapackage/check_hls_package_ad_markers_config_persists.py", "service": "mediapackage"} {"check_id": "mediapackage.ingest-endpoint-webdav-basic-auth-scheme-refused", "deployments": [], "key": "mediapackage/ingest-endpoint-webdav-basic-auth-scheme-refused", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel"], "path": "behavioral/mediapackage/check_ingest_endpoint_webdav_basic_auth_scheme_refused.py", "service": "mediapackage"} {"check_id": "mediapackage.ingest-endpoint-wrong-credentials-rejected", "deployments": [], "key": "mediapackage/ingest-endpoint-wrong-credentials-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeChannel"], "path": "behavioral/mediapackage/check_ingest_endpoint_wrong_credentials_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.list-channels-pagination-max-results", "deployments": [], "key": "mediapackage/list-channels-pagination-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:ListChannels"], "path": "behavioral/mediapackage/check_list_channels_pagination_max_results.py", "service": "mediapackage"} {"check_id": "mediapackage.list-channels-pagination-round-trip", "deployments": [], "key": "mediapackage/list-channels-pagination-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:ListChannels"], "path": "behavioral/mediapackage/check_list_channels_pagination_round_trip.py", "service": "mediapackage"} {"check_id": "mediapackage.list-origin-endpoints-filtered-by-channel-id", "deployments": [], "key": "mediapackage/list-origin-endpoints-filtered-by-channel-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:ListOriginEndpoints"], "path": "behavioral/mediapackage/check_list_origin_endpoints_filtered_by_channel_id.py", "service": "mediapackage"} {"check_id": "mediapackage.list-origin-endpoints-malformed-next-token-rejected", "deployments": [], "key": "mediapackage/list-origin-endpoints-malformed-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:ListOriginEndpoints"], "path": "behavioral/mediapackage/check_list_origin_endpoints_malformed_next_token_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.list-origin-endpoints-pagination", "deployments": [], "key": "mediapackage/list-origin-endpoints-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:ListOriginEndpoints"], "path": "behavioral/mediapackage/check_list_origin_endpoints_pagination.py", "service": "mediapackage"} {"check_id": "mediapackage.list-tags-for-resource-reflects-origin-endpoint-tags", "deployments": [], "key": "mediapackage/list-tags-for-resource-reflects-origin-endpoint-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:ListTagsForResource"], "path": "behavioral/mediapackage/check_list_tags_for_resource_reflects_origin_endpoint_tags.py", "service": "mediapackage"} {"check_id": "mediapackage.list-tags-for-resource-returns-tags-set-at-creation", "deployments": [], "key": "mediapackage/list-tags-for-resource-returns-tags-set-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:ListTagsForResource"], "path": "behavioral/mediapackage/check_list_tags_for_resource_returns_tags_set_at_creation.py", "service": "mediapackage"} {"check_id": "mediapackage.native-ingest-endpoint-requires-basic-auth", "deployments": [], "key": "mediapackage/native-ingest-endpoint-requires-basic-auth", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel"], "path": "behavioral/mediapackage/check_native_ingest_endpoint_requires_basic_auth.py", "service": "mediapackage"} {"check_id": "mediapackage.origin-endpoint-manifest-404-before-ingest", "deployments": [], "key": "mediapackage/origin-endpoint-manifest-404-before-ingest", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint"], "path": "behavioral/mediapackage/check_origin_endpoint_manifest_404_before_ingest.py", "service": "mediapackage"} {"check_id": "mediapackage.origin-endpoint-origination-deny-blocks-playback", "deployments": [], "key": "mediapackage/origin-endpoint-origination-deny-blocks-playback", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint", "mediapackage:UpdateOriginEndpoint"], "path": "behavioral/mediapackage/check_origin_endpoint_origination_deny_blocks_playback.py", "service": "mediapackage"} {"check_id": "mediapackage.origin-endpoint-startover-window-negative-rejected", "deployments": [], "key": "mediapackage/origin-endpoint-startover-window-negative-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_origin_endpoint_startover_window_negative_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.origin-endpoint-url-contains-manifest-name", "deployments": [], "key": "mediapackage/origin-endpoint-url-contains-manifest-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_origin_endpoint_url_contains_manifest_name.py", "service": "mediapackage"} {"check_id": "mediapackage.origin-endpoint-url-reflects-custom-manifest-name", "deployments": [], "key": "mediapackage/origin-endpoint-url-reflects-custom-manifest-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint"], "path": "behavioral/mediapackage/check_origin_endpoint_url_reflects_custom_manifest_name.py", "service": "mediapackage"} {"check_id": "mediapackage.origin-endpoint-whitelist-blocks-non-whitelisted-ip", "deployments": [], "key": "mediapackage/origin-endpoint-whitelist-blocks-non-whitelisted-ip", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint", "mediapackage:UpdateOriginEndpoint"], "path": "behavioral/mediapackage/check_origin_endpoint_whitelist_blocks_non_whitelisted_ip.py", "service": "mediapackage"} {"check_id": "mediapackage.rotate-channel-credentials-nonexistent-channel-not-found", "deployments": [], "key": "mediapackage/rotate-channel-credentials-nonexistent-channel-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:RotateChannelCredentials"], "path": "behavioral/mediapackage/check_rotate_channel_credentials_nonexistent_channel_not_found.py", "service": "mediapackage"} {"check_id": "mediapackage.rotate-channel-credentials-regenerates-credentials", "deployments": [], "key": "mediapackage/rotate-channel-credentials-regenerates-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:RotateChannelCredentials"], "path": "behavioral/mediapackage/check_rotate_channel_credentials_regenerates_credentials.py", "service": "mediapackage"} {"check_id": "mediapackage.rotate-channel-credentials-rotates-first-endpoint-only", "deployments": [], "key": "mediapackage/rotate-channel-credentials-rotates-first-endpoint-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:RotateChannelCredentials"], "path": "behavioral/mediapackage/check_rotate_channel_credentials_rotates_first_endpoint_only.py", "service": "mediapackage"} {"check_id": "mediapackage.rotate-ingest-endpoint-credentials-changes-credentials", "deployments": [], "key": "mediapackage/rotate-ingest-endpoint-credentials-changes-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:RotateIngestEndpointCredentials"], "path": "behavioral/mediapackage/check_rotate_ingest_endpoint_credentials_changes_credentials.py", "service": "mediapackage"} {"check_id": "mediapackage.rotate-ingest-endpoint-credentials-invalid-endpoint-id-rejected", "deployments": [], "key": "mediapackage/rotate-ingest-endpoint-credentials-invalid-endpoint-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:RotateIngestEndpointCredentials"], "path": "behavioral/mediapackage/check_rotate_ingest_endpoint_credentials_invalid_endpoint_id_rejected.py", "service": "mediapackage"} {"check_id": "mediapackage.rotate-ingest-endpoint-credentials-targets-endpoint", "deployments": [], "key": "mediapackage/rotate-ingest-endpoint-credentials-targets-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:RotateIngestEndpointCredentials"], "path": "behavioral/mediapackage/check_rotate_ingest_endpoint_credentials_targets_endpoint.py", "service": "mediapackage"} {"check_id": "mediapackage.rotate-ingest-endpoint-credentials-targets-single-endpoint", "deployments": [], "key": "mediapackage/rotate-ingest-endpoint-credentials-targets-single-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:RotateIngestEndpointCredentials"], "path": "behavioral/mediapackage/check_rotate_ingest_endpoint_credentials_targets_single_endpoint.py", "service": "mediapackage"} {"check_id": "mediapackage.tag-and-untag-resource-round-trip", "deployments": [], "key": "mediapackage/tag-and-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:ListTagsForResource", "mediapackage:TagResource", "mediapackage:UntagResource"], "path": "behavioral/mediapackage/check_tag_and_untag_resource_round_trip.py", "service": "mediapackage"} {"check_id": "mediapackage.tag-resource-persists-tags", "deployments": [], "key": "mediapackage/tag-resource-persists-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:ListTagsForResource", "mediapackage:TagResource"], "path": "behavioral/mediapackage/check_tag_resource_persists_tags.py", "service": "mediapackage"} {"check_id": "mediapackage.untag-resource-removes-only-specified-key", "deployments": [], "key": "mediapackage/untag-resource-removes-only-specified-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:ListTagsForResource", "mediapackage:UntagResource"], "path": "behavioral/mediapackage/check_untag_resource_removes_only_specified_key.py", "service": "mediapackage"} {"check_id": "mediapackage.update-channel-description-persists", "deployments": [], "key": "mediapackage/update-channel-description-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:UpdateChannel"], "path": "behavioral/mediapackage/check_update_channel_description_persists.py", "service": "mediapackage"} {"check_id": "mediapackage.update-channel-persists-description", "deployments": [], "key": "mediapackage/update-channel-persists-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:DeleteChannel", "mediapackage:DescribeChannel", "mediapackage:ListChannels", "mediapackage:UpdateChannel"], "path": "behavioral/mediapackage/check_update_channel_persists_description.py", "service": "mediapackage"} {"check_id": "mediapackage.update-origin-endpoint-toggles-origination", "deployments": [], "key": "mediapackage/update-origin-endpoint-toggles-origination", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackage:CreateChannel", "mediapackage:CreateOriginEndpoint", "mediapackage:DeleteChannel", "mediapackage:DeleteOriginEndpoint", "mediapackage:DescribeOriginEndpoint", "mediapackage:UpdateOriginEndpoint"], "path": "behavioral/mediapackage/check_update_origin_endpoint_toggles_origination.py", "service": "mediapackage"} {"check_id": "mediapackagev2.cancel-harvest-job-transitions-to-cancelled", "deployments": [], "key": "mediapackagev2/cancel-harvest-job-transitions-to-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_cancel_harvest_job_transitions_to_cancelled.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.cancel-harvest-job-unknown-job-name-not-found", "deployments": [], "key": "mediapackagev2/cancel-harvest-job-unknown-job-name-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:ListHarvestJobs", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_cancel_harvest_job_unknown_job_name_not_found.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.cancel-harvest-job-unknown-job-name-not-found-v2", "deployments": [], "key": "mediapackagev2/cancel-harvest-job-unknown-job-name-not-found-v2", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:ListHarvestJobs", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_cancel_harvest_job_unknown_job_name_not_found_v2.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.channel-creation-populates-ingest-endpoints", "deployments": [], "key": "mediapackagev2/channel-creation-populates-ingest-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_channel_creation_populates_ingest_endpoints.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.channel-group-channel-creation-ingest-endpoints", "deployments": [], "key": "mediapackagev2/channel-group-channel-creation-ingest-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel"], "path": "behavioral/mediapackagev2/check_channel_group_channel_creation_ingest_endpoints.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.channel-group-duplicate-name-rejected", "deployments": [], "key": "mediapackagev2/channel-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_channel_group_duplicate_name_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.channel-group-idempotent-token-mismatch-rejected", "deployments": [], "key": "mediapackagev2/channel-group-idempotent-token-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_channel_group_idempotent_token_mismatch_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.channel-policy-lifecycle-put-get-delete", "deployments": [], "key": "mediapackagev2/channel-policy-lifecycle-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteChannelPolicy", "mediapackagev2:GetChannelPolicy", "mediapackagev2:PutChannelPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_channel_policy_lifecycle_put_get_delete.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.channel-policy-lifecycle-round-trip", "deployments": [], "key": "mediapackagev2/channel-policy-lifecycle-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteChannelPolicy", "mediapackagev2:GetChannelPolicy", "mediapackagev2:PutChannelPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_channel_policy_lifecycle_round_trip.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.cmaf-ingest-native-protocol-round-trip", "deployments": [], "key": "mediapackagev2/cmaf-ingest-native-protocol-round-trip", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup"], "path": "behavioral/mediapackagev2/check_cmaf_ingest_native_protocol_round_trip.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.concurrent-channel-group-create-race", "deployments": [], "key": "mediapackagev2/concurrent-channel-group-create-race", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_concurrent_channel_group_create_race.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-channel-duplicate-name-conflict-rejected", "deployments": [], "key": "mediapackagev2/create-channel-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel"], "path": "behavioral/mediapackagev2/check_create_channel_duplicate_name_conflict_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-channel-group-idempotent-retry-same-params-succeeds", "deployments": [], "key": "mediapackagev2/create-channel-group-idempotent-retry-same-params-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_create_channel_group_idempotent_retry_same_params_succeeds.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-channel-group-populates-egress-domain", "deployments": [], "key": "mediapackagev2/create-channel-group-populates-egress-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_create_channel_group_populates_egress_domain.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-channel-idempotent-token-mismatch-rejected", "deployments": [], "key": "mediapackagev2/create-channel-idempotent-token-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel"], "path": "behavioral/mediapackagev2/check_create_channel_idempotent_token_mismatch_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-channel-invalid-locking-mode-combo-rejected", "deployments": [], "key": "mediapackagev2/create-channel-invalid-locking-mode-combo-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel"], "path": "behavioral/mediapackagev2/check_create_channel_invalid_locking_mode_combo_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-channel-missing-channel-group-not-found", "deployments": [], "key": "mediapackagev2/create-channel-missing-channel-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel"], "path": "behavioral/mediapackagev2/check_create_channel_missing_channel_group_not_found.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-channel-nonexistent-channel-group-not-found", "deployments": [], "key": "mediapackagev2/create-channel-nonexistent-channel-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel"], "path": "behavioral/mediapackagev2/check_create_channel_nonexistent_channel_group_not_found.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-harvest-job-end-time-before-start-time-rejected", "deployments": [], "key": "mediapackagev2/create-harvest-job-end-time-before-start-time-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:ListHarvestJobs", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_create_harvest_job_end_time_before_start_time_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-harvest-job-reflects-in-get-and-list", "deployments": [], "key": "mediapackagev2/create-harvest-job-reflects-in-get-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:ListHarvestJobs", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_create_harvest_job_reflects_in_get_and_list.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-origin-endpoint-container-manifest-mismatch-rejected", "deployments": [], "key": "mediapackagev2/create-origin-endpoint-container-manifest-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint"], "path": "behavioral/mediapackagev2/check_create_origin_endpoint_container_manifest_mismatch_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-origin-endpoint-multiple-hls-manifests-url-uniqueness", "deployments": [], "key": "mediapackagev2/create-origin-endpoint-multiple-hls-manifests-url-uniqueness", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint"], "path": "behavioral/mediapackagev2/check_create_origin_endpoint_multiple_hls_manifests_url_uniqueness.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.create-origin-endpoint-num-manifests-low-rejected", "deployments": [], "key": "mediapackagev2/create-origin-endpoint-num-manifests-low-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint"], "path": "behavioral/mediapackagev2/check_create_origin_endpoint_num_manifests_low_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.delete-channel-conflict-when-origin-endpoint-exists", "deployments": [], "key": "mediapackagev2/delete-channel-conflict-when-origin-endpoint-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetChannel", "mediapackagev2:GetOriginEndpoint"], "path": "behavioral/mediapackagev2/check_delete_channel_conflict_when_origin_endpoint_exists.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.delete-channel-group-in-use-rejected", "deployments": [], "key": "mediapackagev2/delete-channel-group-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_delete_channel_group_in_use_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.delete-channel-policy-idempotent-when-no-policy-exists", "deployments": [], "key": "mediapackagev2/delete-channel-policy-idempotent-when-no-policy-exists", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteChannelPolicy", "mediapackagev2:GetChannelPolicy", "mediapackagev2:PutChannelPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_delete_channel_policy_idempotent_when_no_policy_exists.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.delete-origin-endpoint-policy-idempotent-when-no-policy-exists", "deployments": [], "key": "mediapackagev2/delete-origin-endpoint-policy-idempotent-when-no-policy-exists", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:DeleteOriginEndpointPolicy", "mediapackagev2:GetOriginEndpointPolicy", "mediapackagev2:PutOriginEndpointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_delete_origin_endpoint_policy_idempotent_when_no_policy_exists.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.get-channel-group-nonexistent-not-found", "deployments": [], "key": "mediapackagev2/get-channel-group-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_get_channel_group_nonexistent_not_found.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.get-channel-policy-not-found-when-never-attached", "deployments": [], "key": "mediapackagev2/get-channel-policy-not-found-when-never-attached", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteChannelPolicy", "mediapackagev2:GetChannelPolicy", "mediapackagev2:PutChannelPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_get_channel_policy_not_found_when_never_attached.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.get-origin-endpoint-not-found-after-delete", "deployments": [], "key": "mediapackagev2/get-origin-endpoint-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetChannel", "mediapackagev2:GetOriginEndpoint", "mediapackagev2:ListOriginEndpoints"], "path": "behavioral/mediapackagev2/check_get_origin_endpoint_not_found_after_delete.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.harvest-job-cancel-transitions-to-cancelled", "deployments": [], "key": "mediapackagev2/harvest-job-cancel-transitions-to-cancelled", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_harvest_job_cancel_transitions_to_cancelled.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.harvest-job-created-in-queued-status", "deployments": [], "key": "mediapackagev2/harvest-job-created-in-queued-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_harvest_job_created_in_queued_status.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.harvest-job-end-time-before-start-time-rejected", "deployments": [], "key": "mediapackagev2/harvest-job-end-time-before-start-time-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_harvest_job_end_time_before_start_time_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.hierarchical-delete-blocked-by-dependents-rejected", "deployments": [], "key": "mediapackagev2/hierarchical-delete-blocked-by-dependents-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetChannel", "mediapackagev2:GetChannelGroup"], "path": "behavioral/mediapackagev2/check_hierarchical_delete_blocked_by_dependents_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.list-channel-groups-pagination-invalid-token-rejected", "deployments": [], "key": "mediapackagev2/list-channel-groups-pagination-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:ListChannelGroups"], "path": "behavioral/mediapackagev2/check_list_channel_groups_pagination_invalid_token_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.list-channels-reflects-lifecycle", "deployments": [], "key": "mediapackagev2/list-channels-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel", "mediapackagev2:ListChannels", "mediapackagev2:UpdateChannel"], "path": "behavioral/mediapackagev2/check_list_channels_reflects_lifecycle.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.list-harvest-jobs-filters-by-status", "deployments": [], "key": "mediapackagev2/list-harvest-jobs-filters-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:ListHarvestJobs", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_list_harvest_jobs_filters_by_status.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.list-harvest-jobs-status-filter", "deployments": [], "key": "mediapackagev2/list-harvest-jobs-status-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CancelHarvestJob", "mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateHarvestJob", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetHarvestJob", "mediapackagev2:ListHarvestJobs", "mediapackagev2:PutOriginEndpointPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_list_harvest_jobs_status_filter.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.list-origin-endpoints-max-results-out-of-range-rejected", "deployments": [], "key": "mediapackagev2/list-origin-endpoints-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:ListOriginEndpoints"], "path": "behavioral/mediapackagev2/check_list_origin_endpoints_max_results_out_of_range_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.list-origin-endpoints-reflects-created-endpoints", "deployments": [], "key": "mediapackagev2/list-origin-endpoints-reflects-created-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:ListOriginEndpoints"], "path": "behavioral/mediapackagev2/check_list_origin_endpoints_reflects_created_endpoints.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.list-origin-endpoints-reflects-lifecycle", "deployments": [], "key": "mediapackagev2/list-origin-endpoints-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:ListOriginEndpoints"], "path": "behavioral/mediapackagev2/check_list_origin_endpoints_reflects_lifecycle.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.list-tags-for-resource-invalid-arn-rejected", "deployments": [], "key": "mediapackagev2/list-tags-for-resource-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:ListTagsForResource"], "path": "behavioral/mediapackagev2/check_list_tags_for_resource_invalid_arn_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.origin-endpoint-container-manifest-mismatch-rejected", "deployments": [], "key": "mediapackagev2/origin-endpoint-container-manifest-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint", "mediapackagev2:ListOriginEndpoints"], "path": "behavioral/mediapackagev2/check_origin_endpoint_container_manifest_mismatch_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.origin-endpoint-container-type-immutable-rejected", "deployments": [], "key": "mediapackagev2/origin-endpoint-container-type-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint", "mediapackagev2:UpdateOriginEndpoint"], "path": "behavioral/mediapackagev2/check_origin_endpoint_container_type_immutable_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.origin-endpoint-manifest-url-data-plane-reachable", "deployments": [], "key": "mediapackagev2/origin-endpoint-manifest-url-data-plane-reachable", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:PutOriginEndpointPolicy"], "path": "behavioral/mediapackagev2/check_origin_endpoint_manifest_url_data_plane_reachable.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.origin-endpoint-policy-lifecycle-put-get-delete", "deployments": [], "key": "mediapackagev2/origin-endpoint-policy-lifecycle-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:DeleteOriginEndpointPolicy", "mediapackagev2:GetOriginEndpointPolicy", "mediapackagev2:PutOriginEndpointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_origin_endpoint_policy_lifecycle_put_get_delete.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.origin-endpoint-policy-lifecycle-round-trip", "deployments": [], "key": "mediapackagev2/origin-endpoint-policy-lifecycle-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:DeleteOriginEndpointPolicy", "mediapackagev2:GetOriginEndpointPolicy", "mediapackagev2:PutOriginEndpointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_origin_endpoint_policy_lifecycle_round_trip.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.put-channel-policy-invalid-json-rejected", "deployments": [], "key": "mediapackagev2/put-channel-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteChannelPolicy", "mediapackagev2:GetChannelPolicy", "mediapackagev2:PutChannelPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_put_channel_policy_invalid_json_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.put-channel-policy-resource-not-found-missing-channel", "deployments": [], "key": "mediapackagev2/put-channel-policy-resource-not-found-missing-channel", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteChannelPolicy", "mediapackagev2:GetChannelPolicy", "mediapackagev2:PutChannelPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_put_channel_policy_resource_not_found_missing_channel.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.put-origin-endpoint-policy-invalid-policy-rejected", "deployments": [], "key": "mediapackagev2/put-origin-endpoint-policy-invalid-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpointPolicy", "mediapackagev2:PutOriginEndpointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_put_origin_endpoint_policy_invalid_policy_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.reset-channel-state-updates-reset-at", "deployments": [], "key": "mediapackagev2/reset-channel-state-updates-reset-at", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel", "mediapackagev2:ResetChannelState"], "path": "behavioral/mediapackagev2/check_reset_channel_state_updates_reset_at.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.reset-origin-endpoint-state-updates-reset-at", "deployments": [], "key": "mediapackagev2/reset-origin-endpoint-state-updates-reset-at", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint", "mediapackagev2:ResetOriginEndpointState"], "path": "behavioral/mediapackagev2/check_reset_origin_endpoint_state_updates_reset_at.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "mediapackagev2/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup", "mediapackagev2:ListTagsForResource", "mediapackagev2:TagResource"], "path": "behavioral/mediapackagev2/check_tag_resource_and_list_tags_round_trip.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "mediapackagev2/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:ListTagsForResource", "mediapackagev2:TagResource", "mediapackagev2:UntagResource"], "path": "behavioral/mediapackagev2/check_tag_resource_and_list_tags_roundtrip.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.tag-resource-nonexistent-resource-arn-rejected", "deployments": [], "key": "mediapackagev2/tag-resource-nonexistent-resource-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:ListTagsForResource", "mediapackagev2:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/mediapackagev2/check_tag_resource_nonexistent_resource_arn_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.untag-resource-removes-tag", "deployments": [], "key": "mediapackagev2/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:ListTagsForResource", "mediapackagev2:UntagResource"], "path": "behavioral/mediapackagev2/check_untag_resource_removes_tag.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.untag-resource-unknown-key-is-noop", "deployments": [], "key": "mediapackagev2/untag-resource-unknown-key-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:ListTagsForResource", "mediapackagev2:UntagResource"], "path": "behavioral/mediapackagev2/check_untag_resource_unknown_key_is_noop.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-channel-etag-optimistic-lock-concurrency", "deployments": [], "key": "mediapackagev2/update-channel-etag-optimistic-lock-concurrency", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel", "mediapackagev2:UpdateChannel"], "path": "behavioral/mediapackagev2/check_update_channel_etag_optimistic_lock_concurrency.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-channel-group-concurrent-racers-single-winner", "deployments": [], "key": "mediapackagev2/update-channel-group-concurrent-racers-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup", "mediapackagev2:UpdateChannelGroup"], "path": "behavioral/mediapackagev2/check_update_channel_group_concurrent_racers_single_winner.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-channel-group-description-etag-rotates", "deployments": [], "key": "mediapackagev2/update-channel-group-description-etag-rotates", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup", "mediapackagev2:UpdateChannelGroup"], "path": "behavioral/mediapackagev2/check_update_channel_group_description_etag_rotates.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-channel-group-etag-changes-after-update", "deployments": [], "key": "mediapackagev2/update-channel-group-etag-changes-after-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup", "mediapackagev2:UpdateChannelGroup"], "path": "behavioral/mediapackagev2/check_update_channel_group_etag_changes_after_update.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-channel-group-stale-etag-conflict-rejected", "deployments": [], "key": "mediapackagev2/update-channel-group-stale-etag-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannelGroup", "mediapackagev2:UpdateChannelGroup"], "path": "behavioral/mediapackagev2/check_update_channel_group_stale_etag_conflict_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-channel-stale-etag-rejected", "deployments": [], "key": "mediapackagev2/update-channel-stale-etag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:GetChannel", "mediapackagev2:UpdateChannel"], "path": "behavioral/mediapackagev2/check_update_channel_stale_etag_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-origin-endpoint-container-type-immutable-rejected", "deployments": [], "key": "mediapackagev2/update-origin-endpoint-container-type-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint", "mediapackagev2:UpdateOriginEndpoint"], "path": "behavioral/mediapackagev2/check_update_origin_endpoint_container_type_immutable_rejected.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-origin-endpoint-manifest-change-persists", "deployments": [], "key": "mediapackagev2/update-origin-endpoint-manifest-change-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint", "mediapackagev2:UpdateOriginEndpoint"], "path": "behavioral/mediapackagev2/check_update_origin_endpoint_manifest_change_persists.py", "service": "mediapackagev2"} {"check_id": "mediapackagev2.update-origin-endpoint-startover-window-persists", "deployments": [], "key": "mediapackagev2/update-origin-endpoint-startover-window-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediapackagev2:CreateChannel", "mediapackagev2:CreateChannelGroup", "mediapackagev2:CreateOriginEndpoint", "mediapackagev2:DeleteChannel", "mediapackagev2:DeleteChannelGroup", "mediapackagev2:DeleteOriginEndpoint", "mediapackagev2:GetOriginEndpoint", "mediapackagev2:UpdateOriginEndpoint"], "path": "behavioral/mediapackagev2/check_update_origin_endpoint_startover_window_persists.py", "service": "mediapackagev2"} {"check_id": "mediatailor.configure-logs-rejects-invalid-percent-leaves-state-unchanged", "deployments": [], "key": "mediatailor/configure-logs-rejects-invalid-percent-leaves-state-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["mediatailor:ConfigureLogsForPlaybackConfiguration", "mediatailor:DeletePlaybackConfiguration", "mediatailor:GetPlaybackConfiguration", "mediatailor:PutPlaybackConfiguration"], "path": "behavioral/mediatailor/check_configure_logs_rejects_invalid_percent_leaves_state_unchanged.py", "service": "mediatailor"} {"check_id": "mediatailor.create-channel-duplicate-name-rejected-without-mutating-existing", "deployments": [], "key": "mediatailor/create-channel-duplicate-name-rejected-without-mutating-existing", "labels": ["axis:rejection", "plane:control"], "operations": ["mediatailor:CreateChannel", "mediatailor:DeleteChannel", "mediatailor:DescribeChannel"], "path": "behavioral/mediatailor/check_create_channel_duplicate_name_rejected_without_mutating_existing.py", "service": "mediatailor"} {"check_id": "mediatailor.delete-channel-is-idempotent-and-removes-resource-for-dependent-ops", "deployments": [], "key": "mediatailor/delete-channel-is-idempotent-and-removes-resource-for-dependent-ops", "labels": ["axis:rejection", "plane:control"], "operations": ["mediatailor:ConfigureLogsForChannel", "mediatailor:CreateChannel", "mediatailor:DeleteChannel", "mediatailor:DescribeChannel", "mediatailor:GetChannelSchedule", "mediatailor:ListAlerts", "mediatailor:StartChannel"], "path": "behavioral/mediatailor/check_delete_channel_is_idempotent_and_removes_resource_for_dependent_ops.py", "service": "mediatailor"} {"check_id": "mediatailor.start-stop-channel-transitions-state-and-is-idempotent", "deployments": [], "key": "mediatailor/start-stop-channel-transitions-state-and-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediatailor:CreateChannel", "mediatailor:DeleteChannel", "mediatailor:DescribeChannel", "mediatailor:StartChannel", "mediatailor:StopChannel"], "path": "behavioral/mediatailor/check_start_stop_channel_transitions_state_and_is_idempotent.py", "service": "mediatailor"} {"check_id": "mediatailor.tag-apis-reject-deleted-channel-arn-with-distinct-message", "deployments": [], "key": "mediatailor/tag-apis-reject-deleted-channel-arn-with-distinct-message", "labels": ["axis:rejection", "plane:control"], "operations": ["mediatailor:CreateChannel", "mediatailor:DeleteChannel", "mediatailor:GetChannelSchedule", "mediatailor:ListTagsForResource", "mediatailor:TagResource", "mediatailor:UntagResource"], "path": "behavioral/mediatailor/check_tag_apis_reject_deleted_channel_arn_with_distinct_message.py", "service": "mediatailor"} {"check_id": "mediatailor.tag-propagates-to-list-tags-and-describe-channel", "deployments": [], "key": "mediatailor/tag-propagates-to-list-tags-and-describe-channel", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediatailor:CreateChannel", "mediatailor:DeleteChannel", "mediatailor:DescribeChannel", "mediatailor:ListTagsForResource", "mediatailor:TagResource", "mediatailor:UntagResource"], "path": "behavioral/mediatailor/check_tag_propagates_to_list_tags_and_describe_channel.py", "service": "mediatailor"} {"check_id": "mediatailor.untag-unknown-key-is-idempotent-and-preserves-other-tags", "deployments": [], "key": "mediatailor/untag-unknown-key-is-idempotent-and-preserves-other-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["mediatailor:CreateChannel", "mediatailor:DeleteChannel", "mediatailor:ListTagsForResource", "mediatailor:TagResource", "mediatailor:UntagResource"], "path": "behavioral/mediatailor/check_untag_unknown_key_is_idempotent_and_preserves_other_tags.py", "service": "mediatailor"} {"check_id": "medical-imaging.copy-image-set-creates-active-copy-with-matching-metadata", "deployments": [], "key": "medical-imaging/copy-image-set-creates-active-copy-with-matching-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CopyImageSet", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:DeleteImageSet", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:GetImageSet", "medical-imaging:GetImageSetMetadata", "medical-imaging:SearchImageSets", "medical-imaging:StartDICOMImportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/medical-imaging/check_copy_image_set_creates_active_copy_with_matching_metadata.py", "service": "medical-imaging"} {"check_id": "medical-imaging.create-datastore-client-token-idempotent", "deployments": [], "key": "medical-imaging/create-datastore-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDatastore", "medical-imaging:ListDatastores"], "path": "behavioral/medical-imaging/check_create_datastore_client_token_idempotent.py", "service": "medical-imaging"} {"check_id": "medical-imaging.create-datastore-reaches-active", "deployments": [], "key": "medical-imaging/create-datastore-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDatastore"], "path": "behavioral/medical-imaging/check_create_datastore_reaches_active.py", "service": "medical-imaging"} {"check_id": "medical-imaging.delete-datastore-conflicts-with-active-import-job", "deployments": [], "key": "medical-imaging/delete-datastore-conflicts-with-active-import-job", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:StartDICOMImportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/medical-imaging/check_delete_datastore_conflicts_with_active_import_job.py", "service": "medical-imaging"} {"check_id": "medical-imaging.delete-datastore-removes-resource", "deployments": [], "key": "medical-imaging/delete-datastore-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDatastore"], "path": "behavioral/medical-imaging/check_delete_datastore_removes_resource.py", "service": "medical-imaging"} {"check_id": "medical-imaging.dicom-import-job-invalid-role-reaches-failed", "deployments": [], "key": "medical-imaging/dicom-import-job-invalid-role-reaches-failed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDatastore", "medical-imaging:ListDICOMImportJobs", "medical-imaging:StartDICOMImportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/medical-imaging/check_dicom_import_job_invalid_role_reaches_failed.py", "service": "medical-imaging"} {"check_id": "medical-imaging.dicom-import-job-success-creates-active-image-set", "deployments": [], "key": "medical-imaging/dicom-import-job-success-creates-active-image-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:DeleteImageSet", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:GetImageFrame", "medical-imaging:GetImageSet", "medical-imaging:GetImageSetMetadata", "medical-imaging:SearchImageSets", "medical-imaging:StartDICOMImportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/medical-imaging/check_dicom_import_job_success_creates_active_image_set.py", "service": "medical-imaging"} {"check_id": "medical-imaging.get-datastore-malformed-id-validation-rejected", "deployments": [], "key": "medical-imaging/get-datastore-malformed-id-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDatastore"], "path": "behavioral/medical-imaging/check_get_datastore_malformed_id_validation_rejected.py", "service": "medical-imaging"} {"check_id": "medical-imaging.get-datastore-nonexistent-not-found", "deployments": [], "key": "medical-imaging/get-datastore-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDatastore"], "path": "behavioral/medical-imaging/check_get_datastore_nonexistent_not_found.py", "service": "medical-imaging"} {"check_id": "medical-imaging.get-dicom-import-job-reflects-submitted-properties", "deployments": [], "key": "medical-imaging/get-dicom-import-job-reflects-submitted-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:StartDICOMImportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/medical-imaging/check_get_dicom_import_job_reflects_submitted_properties.py", "service": "medical-imaging"} {"check_id": "medical-imaging.list-datastores-maxresults-out-of-range-rejected", "deployments": [], "key": "medical-imaging/list-datastores-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["medical-imaging:ListDatastores"], "path": "behavioral/medical-imaging/check_list_datastores_maxresults_out_of_range_rejected.py", "service": "medical-imaging"} {"check_id": "medical-imaging.list-dicom-import-jobs-includes-submitted-job", "deployments": [], "key": "medical-imaging/list-dicom-import-jobs-includes-submitted-job", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:ListDICOMImportJobs", "medical-imaging:StartDICOMImportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/medical-imaging/check_list_dicom_import_jobs_includes_submitted_job.py", "service": "medical-imaging"} {"check_id": "medical-imaging.search-image-sets-empty-datastore-returns-empty", "deployments": [], "key": "medical-imaging/search-image-sets-empty-datastore-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDatastore", "medical-imaging:SearchImageSets"], "path": "behavioral/medical-imaging/check_search_image_sets_empty_datastore_returns_empty.py", "service": "medical-imaging"} {"check_id": "medical-imaging.start-dicom-import-job-client-token-idempotent", "deployments": [], "key": "medical-imaging/start-dicom-import-job-client-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:ListDICOMImportJobs", "medical-imaging:StartDICOMImportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/medical-imaging/check_start_dicom_import_job_client_token_idempotent.py", "service": "medical-imaging"} {"check_id": "medical-imaging.start-dicom-import-job-on-creating-datastore-conflict-rejected", "deployments": [], "key": "medical-imaging/start-dicom-import-job-on-creating-datastore-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:ListDICOMImportJobs", "medical-imaging:StartDICOMImportJob", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/medical-imaging/check_start_dicom_import_job_on_creating_datastore_conflict_rejected.py", "service": "medical-imaging"} {"check_id": "medical-imaging.tag-resource-list-untag-roundtrip", "deployments": [], "key": "medical-imaging/tag-resource-list-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:GetDatastore", "medical-imaging:ListTagsForResource", "medical-imaging:TagResource", "medical-imaging:UntagResource"], "path": "behavioral/medical-imaging/check_tag_resource_list_untag_roundtrip.py", "service": "medical-imaging"} {"check_id": "medical-imaging.update-image-set-metadata-concurrent-conflict", "deployments": [], "key": "medical-imaging/update-image-set-metadata-concurrent-conflict", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:DeleteImageSet", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:GetImageSet", "medical-imaging:GetImageSetMetadata", "medical-imaging:SearchImageSets", "medical-imaging:StartDICOMImportJob", "medical-imaging:UpdateImageSetMetadata", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/medical-imaging/check_update_image_set_metadata_concurrent_conflict.py", "service": "medical-imaging"} {"check_id": "medical-imaging.update-image-set-metadata-updates-patient-name", "deployments": [], "key": "medical-imaging/update-image-set-metadata-updates-patient-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "medical-imaging:CreateDatastore", "medical-imaging:DeleteDatastore", "medical-imaging:DeleteImageSet", "medical-imaging:GetDICOMImportJob", "medical-imaging:GetDatastore", "medical-imaging:GetImageSet", "medical-imaging:GetImageSetMetadata", "medical-imaging:SearchImageSets", "medical-imaging:StartDICOMImportJob", "medical-imaging:UpdateImageSetMetadata", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/medical-imaging/check_update_image_set_metadata_updates_patient_name.py", "service": "medical-imaging"} {"check_id": "memorydb.acl-membership-reflected-on-users", "deployments": [], "key": "memorydb/acl-membership-reflected-on-users", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeUsers", "memorydb:UpdateACL"], "path": "behavioral/memorydb/check_acl_membership_reflected_on_users.py", "service": "memorydb"} {"check_id": "memorydb.acl-membership-updates-rejected", "deployments": [], "key": "memorydb/acl-membership-updates-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:UpdateACL"], "path": "behavioral/memorydb/check_acl_membership_updates_rejected.py", "service": "memorydb"} {"check_id": "memorydb.default-user-and-open-access-acl-immutable", "deployments": [], "key": "memorydb/default-user-and-open-access-acl-immutable", "labels": ["axis:rejection", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeUsers", "memorydb:UpdateACL", "memorydb:UpdateUser"], "path": "behavioral/memorydb/check_default_user_and_open_access_acl_immutable.py", "service": "memorydb"} {"check_id": "memorydb.delete-user-leaves-every-acl", "deployments": [], "key": "memorydb/delete-user-leaves-every-acl", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeUsers"], "path": "behavioral/memorydb/check_delete_user_leaves_every_acl.py", "service": "memorydb"} {"check_id": "memorydb.describe-users-pages-cover-every-user", "deployments": [], "key": "memorydb/describe-users-pages-cover-every-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteUser", "memorydb:DescribeUsers"], "path": "behavioral/memorydb/check_describe_users_pages_cover_every_user.py", "service": "memorydb"} {"check_id": "memorydb.events-record-user-and-acl-lifecycle", "deployments": [], "key": "memorydb/events-record-user-and-acl-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeEvents", "memorydb:DescribeUsers", "memorydb:UpdateACL", "memorydb:UpdateUser"], "path": "behavioral/memorydb/check_events_record_user_and_acl_lifecycle.py", "service": "memorydb"} {"check_id": "memorydb.parameter-group-families-follow-engine-versions", "deployments": [], "key": "memorydb/parameter-group-families-follow-engine-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateParameterGroup", "memorydb:DeleteParameterGroup", "memorydb:DescribeEngineVersions", "memorydb:DescribeParameters"], "path": "behavioral/memorydb/check_parameter_group_families_follow_engine_versions.py", "service": "memorydb"} {"check_id": "memorydb.parameter-update-and-reset-roundtrip", "deployments": [], "key": "memorydb/parameter-update-and-reset-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateParameterGroup", "memorydb:DeleteParameterGroup", "memorydb:DescribeParameters", "memorydb:ResetParameterGroup", "memorydb:UpdateParameterGroup"], "path": "behavioral/memorydb/check_parameter_update_and_reset_roundtrip.py", "service": "memorydb"} {"check_id": "memorydb.parameter-value-rejections-leave-group-unchanged", "deployments": [], "key": "memorydb/parameter-value-rejections-leave-group-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["memorydb:CreateParameterGroup", "memorydb:DeleteParameterGroup", "memorydb:DescribeParameters", "memorydb:UpdateParameterGroup"], "path": "behavioral/memorydb/check_parameter_value_rejections_leave_group_unchanged.py", "service": "memorydb"} {"check_id": "memorydb.redis-engine-rejects-a-valkey-only-engine-version", "deployments": [], "key": "memorydb/redis-engine-rejects-a-valkey-only-engine-version", "labels": ["axis:rejection", "plane:control"], "operations": ["memorydb:CreateCluster", "memorydb:DeleteCluster", "memorydb:DescribeClusters", "memorydb:DescribeEngineVersions"], "path": "behavioral/memorydb/check_redis_engine_rejects_a_valkey_only_engine_version.py", "service": "memorydb"} {"check_id": "memorydb.redis-oss-cluster-identifies-as-redis-over-the-wire", "deployments": [], "key": "memorydb/redis-oss-cluster-identifies-as-redis-over-the-wire", "labels": ["axis:happy-path", "dp:native", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "memorydb:CreateACL", "memorydb:CreateCluster", "memorydb:CreateSubnetGroup", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteCluster", "memorydb:DeleteSubnetGroup", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeClusters"], "path": "behavioral/memorydb/check_redis_oss_cluster_identifies_as_redis_over_the_wire.py", "service": "memorydb"} {"check_id": "memorydb.resource-name-rules-rejected", "deployments": [], "key": "memorydb/resource-name-rules-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeUsers"], "path": "behavioral/memorydb/check_resource_name_rules_rejected.py", "service": "memorydb"} {"check_id": "memorydb.resource-names-fold-to-lowercase", "deployments": [], "key": "memorydb/resource-names-fold-to-lowercase", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateParameterGroup", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteParameterGroup", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeParameterGroups", "memorydb:DescribeUsers"], "path": "behavioral/memorydb/check_resource_names_fold_to_lowercase.py", "service": "memorydb"} {"check_id": "memorydb.subnet-group-update-replaces-subnet-set", "deployments": [], "key": "memorydb/subnet-group-update-replaces-subnet-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateSubnetGroup", "memorydb:DeleteSubnetGroup", "memorydb:DescribeSubnetGroups", "memorydb:UpdateSubnetGroup"], "path": "behavioral/memorydb/check_subnet_group_update_replaces_subnet_set.py", "service": "memorydb"} {"check_id": "memorydb.tag-mutations-merge-and-are-atomic", "deployments": [], "key": "memorydb/tag-mutations-merge-and-are-atomic", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateParameterGroup", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteParameterGroup", "memorydb:DeleteUser", "memorydb:ListTags", "memorydb:TagResource", "memorydb:UntagResource"], "path": "behavioral/memorydb/check_tag_mutations_merge_and_are_atomic.py", "service": "memorydb"} {"check_id": "memorydb.tls-disabled-cluster-with-a-custom-acl-rejected", "deployments": [], "key": "memorydb/tls-disabled-cluster-with-a-custom-acl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["memorydb:CreateACL", "memorydb:CreateCluster", "memorydb:CreateSubnetGroup", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteCluster", "memorydb:DeleteSubnetGroup", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeClusters"], "path": "behavioral/memorydb/check_tls_disabled_cluster_with_a_custom_acl_rejected.py", "service": "memorydb"} {"check_id": "memorydb.user-password-count-and-auth-mode-transitions", "deployments": [], "key": "memorydb/user-password-count-and-auth-mode-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateUser", "memorydb:DeleteUser", "memorydb:DescribeUsers", "memorydb:UpdateUser"], "path": "behavioral/memorydb/check_user_password_count_and_auth_mode_transitions.py", "service": "memorydb"} {"check_id": "memorydb.user-password-punctuation-accepted", "deployments": [], "key": "memorydb/user-password-punctuation-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["memorydb:CreateUser", "memorydb:DeleteUser", "memorydb:DescribeUsers"], "path": "behavioral/memorydb/check_user_password_punctuation_accepted.py", "service": "memorydb"} {"check_id": "memorydb.user-password-rules-rejected", "deployments": [], "key": "memorydb/user-password-rules-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["memorydb:CreateUser", "memorydb:DeleteUser", "memorydb:DescribeUsers"], "path": "behavioral/memorydb/check_user_password_rules_rejected.py", "service": "memorydb"} {"check_id": "memorydb.valkey-cluster-serves-acl-enforced-resp-over-tls-and-runs-its-lifecycle", "deployments": [], "key": "memorydb/valkey-cluster-serves-acl-enforced-resp-over-tls-and-runs-its-lifecycle", "labels": ["axis:happy-path", "dp:native", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "memorydb:CreateACL", "memorydb:CreateCluster", "memorydb:CreateSnapshot", "memorydb:CreateSubnetGroup", "memorydb:CreateUser", "memorydb:DeleteACL", "memorydb:DeleteCluster", "memorydb:DeleteSnapshot", "memorydb:DeleteSubnetGroup", "memorydb:DeleteUser", "memorydb:DescribeACLs", "memorydb:DescribeClusters", "memorydb:DescribeSnapshots", "memorydb:FailoverShard", "memorydb:UpdateCluster"], "path": "behavioral/memorydb/check_valkey_cluster_serves_acl_enforced_resp_over_tls_and_runs_its_lifecycle.py", "service": "memorydb"} {"check_id": "mgn.account-initialization-gate-rejected", "deployments": [], "key": "mgn/account-initialization-gate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mgn:CreateApplication", "mgn:CreateWave", "mgn:DeleteLaunchConfigurationTemplate", "mgn:DescribeSourceServers", "mgn:ListNetworkMigrationDefinitions"], "path": "behavioral/mgn/check_account_initialization_gate_rejected.py", "service": "mgn"} {"check_id": "mgn.concurrent-idempotent-delete-replication-configuration-template", "deployments": [], "key": "mgn/concurrent-idempotent-delete-replication-configuration-template", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "mgn:CreateReplicationConfigurationTemplate", "mgn:DeleteReplicationConfigurationTemplate", "mgn:DescribeReplicationConfigurationTemplates", "mgn:InitializeService"], "path": "behavioral/mgn/check_concurrent_idempotent_delete_replication_configuration_template.py", "service": "mgn"} {"check_id": "mgn.create-connector-invalid-ssm-instance-id-pattern-rejected", "deployments": [], "key": "mgn/create-connector-invalid-ssm-instance-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mgn:CreateConnector", "mgn:DeleteConnector", "mgn:ListConnectors"], "path": "behavioral/mgn/check_create_connector_invalid_ssm_instance_id_pattern_rejected.py", "service": "mgn"} {"check_id": "mgn.create-launch-configuration-template-access-denied-rejected", "deployments": [], "key": "mgn/create-launch-configuration-template-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreatePolicy", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeletePolicy", "iam:DeleteUser", "iam:DetachUserPolicy", "mgn:DeleteLaunchConfigurationTemplate", "mgn:DescribeLaunchConfigurationTemplates"], "path": "behavioral/mgn/check_create_launch_configuration_template_access_denied_rejected.py", "service": "mgn"} {"check_id": "mgn.delete-nonexistent-replication-configuration-template-rejected", "deployments": [], "key": "mgn/delete-nonexistent-replication-configuration-template-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "mgn:CreateReplicationConfigurationTemplate", "mgn:DeleteReplicationConfigurationTemplate", "mgn:DescribeReplicationConfigurationTemplates", "mgn:InitializeService"], "path": "behavioral/mgn/check_delete_nonexistent_replication_configuration_template_rejected.py", "service": "mgn"} {"check_id": "mgn.get-network-migration-definition-nonexistent-rejected", "deployments": [], "key": "mgn/get-network-migration-definition-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:GetNetworkMigrationDefinition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_get_network_migration_definition_nonexistent_rejected.py", "service": "mgn"} {"check_id": "mgn.native-replication-agent-protocol-skipped", "deployments": [], "key": "mgn/native-replication-agent-protocol-skipped", "labels": ["axis:happy-path", "plane:control"], "operations": ["mgn:DescribeSourceServers"], "path": "behavioral/mgn/check_native_replication_agent_protocol_skipped.py", "service": "mgn"} {"check_id": "mgn.network-migration-definition-create-update-delete-roundtrip", "deployments": [], "key": "mgn/network-migration-definition-create-update-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:GetNetworkMigrationDefinition", "mgn:ListNetworkMigrationDefinitions", "mgn:UpdateNetworkMigrationDefinition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_network_migration_definition_create_update_delete_roundtrip.py", "service": "mgn"} {"check_id": "mgn.network-migration-definition-list-pagination-and-filter", "deployments": [], "key": "mgn/network-migration-definition-list-pagination-and-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:ListNetworkMigrationDefinitions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_network_migration_definition_list_pagination_and_filter.py", "service": "mgn"} {"check_id": "mgn.network-migration-definition-partial-update-preserves-other-fields", "deployments": [], "key": "mgn/network-migration-definition-partial-update-preserves-other-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:GetNetworkMigrationDefinition", "mgn:UpdateNetworkMigrationDefinition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_network_migration_definition_partial_update_preserves_other_fields.py", "service": "mgn"} {"check_id": "mgn.network-migration-definition-tag-round-trip", "deployments": [], "key": "mgn/network-migration-definition-tag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:ListTagsForResource", "mgn:TagResource", "mgn:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_network_migration_definition_tag_round_trip.py", "service": "mgn"} {"check_id": "mgn.network-migration-definition-validation-rejected", "deployments": [], "key": "mgn/network-migration-definition-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:GetNetworkMigrationDefinition", "mgn:ListNetworkMigrationDefinitions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_network_migration_definition_validation_rejected.py", "service": "mgn"} {"check_id": "mgn.network-migration-mapping-and-analysis-without-execution-rejected", "deployments": [], "key": "mgn/network-migration-mapping-and-analysis-without-execution-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:ListNetworkMigrationExecutions", "mgn:ListNetworkMigrationMappings", "mgn:StartNetworkMigrationAnalysis", "mgn:StartNetworkMigrationMapping", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_network_migration_mapping_and_analysis_without_execution_rejected.py", "service": "mgn"} {"check_id": "mgn.replication-configuration-template-access-denied-rejected", "deployments": [], "key": "mgn/replication-configuration-template-access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "mgn:DeleteReplicationConfigurationTemplate", "mgn:DescribeReplicationConfigurationTemplates", "mgn:InitializeService"], "path": "behavioral/mgn/check_replication_configuration_template_access_denied_rejected.py", "service": "mgn"} {"check_id": "mgn.replication-configuration-template-create-update", "deployments": [], "key": "mgn/replication-configuration-template-create-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "kms:DescribeKey", "mgn:CreateReplicationConfigurationTemplate", "mgn:DeleteReplicationConfigurationTemplate", "mgn:DescribeReplicationConfigurationTemplates", "mgn:InitializeService", "mgn:UpdateReplicationConfigurationTemplate"], "path": "behavioral/mgn/check_replication_configuration_template_create_update.py", "service": "mgn"} {"check_id": "mgn.replication-configuration-template-delete-removes-from-list", "deployments": [], "key": "mgn/replication-configuration-template-delete-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "mgn:CreateReplicationConfigurationTemplate", "mgn:DeleteReplicationConfigurationTemplate", "mgn:DescribeReplicationConfigurationTemplates", "mgn:InitializeService"], "path": "behavioral/mgn/check_replication_configuration_template_delete_removes_from_list.py", "service": "mgn"} {"check_id": "mgn.replication-configuration-template-filter-excludes-nonmatching", "deployments": [], "key": "mgn/replication-configuration-template-filter-excludes-nonmatching", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "mgn:CreateReplicationConfigurationTemplate", "mgn:DeleteReplicationConfigurationTemplate", "mgn:DescribeReplicationConfigurationTemplates", "mgn:InitializeService"], "path": "behavioral/mgn/check_replication_configuration_template_filter_excludes_nonmatching.py", "service": "mgn"} {"check_id": "mgn.tag-resource-round-trip", "deployments": [], "key": "mgn/tag-resource-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["mgn:ListTagsForResource", "mgn:TagResource", "mgn:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_tag_resource_round_trip.py", "service": "mgn"} {"check_id": "mgn.update-application-fields-persist", "deployments": [], "key": "mgn/update-application-fields-persist", "labels": ["axis:rejection", "plane:control"], "operations": ["mgn:ListApplications", "mgn:UpdateApplication"], "path": "behavioral/mgn/check_update_application_fields_persist.py", "service": "mgn"} {"check_id": "mgn.update-network-migration-definition-blank-name-rejected", "deployments": [], "key": "mgn/update-network-migration-definition-blank-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:GetNetworkMigrationDefinition", "mgn:UpdateNetworkMigrationDefinition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_update_network_migration_definition_blank_name_rejected.py", "service": "mgn"} {"check_id": "mgn.update-network-migration-definition-full-overwrite", "deployments": [], "key": "mgn/update-network-migration-definition-full-overwrite", "labels": ["axis:happy-path", "plane:control"], "operations": ["mgn:CreateNetworkMigrationDefinition", "mgn:DeleteNetworkMigrationDefinition", "mgn:GetNetworkMigrationDefinition", "mgn:UpdateNetworkMigrationDefinition", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mgn/check_update_network_migration_definition_full_overwrite.py", "service": "mgn"} {"check_id": "mpa.approval-team-fails-validation-for-unknown-approver", "deployments": [], "key": "mpa/approval-team-fails-validation-for-unknown-approver", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:GetPolicyVersion", "mpa:GetResourcePolicy", "mpa:ListPolicies", "mpa:ListResourcePolicies", "mpa:ListTagsForResource"], "path": "behavioral/mpa/check_approval_team_fails_validation_for_unknown_approver.py", "service": "mpa"} {"check_id": "mpa.concurrent-create-same-name-exactly-one-wins", "deployments": [], "key": "mpa/concurrent-create-same-name-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:CreateApprovalTeam", "mpa:DeleteInactiveApprovalTeamVersion", "mpa:GetPolicyVersion", "mpa:ListApprovalTeams", "mpa:ListPolicies", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_concurrent_create_same_name_exactly_one_wins.py", "service": "mpa"} {"check_id": "mpa.create-approval-team-duplicate-name-conflict-rejected", "deployments": [], "key": "mpa/create-approval-team-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:CreateApprovalTeam", "mpa:DeleteInactiveApprovalTeamVersion", "mpa:GetPolicyVersion", "mpa:ListApprovalTeams", "mpa:ListPolicies", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_create_approval_team_duplicate_name_conflict_rejected.py", "service": "mpa"} {"check_id": "mpa.create-approval-team-idempotent-client-token", "deployments": [], "key": "mpa/create-approval-team-idempotent-client-token", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:ListPolicies", "mpa:ListPolicyVersions"], "path": "behavioral/mpa/check_create_approval_team_idempotent_client_token.py", "service": "mpa"} {"check_id": "mpa.create-approval-team-invalid-name-pattern-rejected", "deployments": [], "key": "mpa/create-approval-team-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:CreateApprovalTeam", "mpa:DeleteInactiveApprovalTeamVersion", "mpa:ListApprovalTeams", "mpa:ListPolicies", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_create_approval_team_invalid_name_pattern_rejected.py", "service": "mpa"} {"check_id": "mpa.create-approval-team-missing-permission-rejected", "deployments": [], "key": "mpa/create-approval-team-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:CreateApprovalTeam", "mpa:DeleteInactiveApprovalTeamVersion", "mpa:ListApprovalTeams", "mpa:ListPolicies", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_create_approval_team_missing_permission_rejected.py", "service": "mpa"} {"check_id": "mpa.create-identity-source-invalid-instance-arn-pattern-rejected", "deployments": [], "key": "mpa/create-identity-source-invalid-instance-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:CreateIdentitySource", "mpa:DeleteIdentitySource", "mpa:ListIdentitySources"], "path": "behavioral/mpa/check_create_identity_source_invalid_instance_arn_pattern_rejected.py", "service": "mpa"} {"check_id": "mpa.delete-inactive-approval-team-version-nonexistent-is-noop", "deployments": [], "key": "mpa/delete-inactive-approval-team-version-nonexistent-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["mpa:DeleteInactiveApprovalTeamVersion", "mpa:GetApprovalTeam", "mpa:GetPolicyVersion", "mpa:ListPolicies", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_delete_inactive_approval_team_version_nonexistent_is_noop.py", "service": "mpa"} {"check_id": "mpa.get-approval-team-not-found-unknown-arn", "deployments": [], "key": "mpa/get-approval-team-not-found-unknown-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:GetApprovalTeam", "mpa:GetPolicyVersion", "mpa:ListPolicies", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_get_approval_team_not_found_unknown_arn.py", "service": "mpa"} {"check_id": "mpa.get-policy-version-malformed-arn-rejected", "deployments": [], "key": "mpa/get-policy-version-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:GetPolicyVersion", "mpa:ListPolicies"], "path": "behavioral/mpa/check_get_policy_version_malformed_arn_rejected.py", "service": "mpa"} {"check_id": "mpa.get-resource-policy-invalid-policy-name-rejected", "deployments": [], "key": "mpa/get-resource-policy-invalid-policy-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:GetPolicyVersion", "mpa:GetResourcePolicy", "mpa:ListPolicies", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_get_resource_policy_invalid_policy_name_rejected.py", "service": "mpa"} {"check_id": "mpa.identity-source-error-on-nonexistent-sso-instance", "deployments": [], "key": "mpa/identity-source-error-on-nonexistent-sso-instance", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:DeleteIdentitySource", "mpa:GetIdentitySource", "mpa:ListIdentitySources", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_identity_source_error_on_nonexistent_sso_instance.py", "service": "mpa"} {"check_id": "mpa.list-approval-teams-max-results-out-of-range-rejected", "deployments": [], "key": "mpa/list-approval-teams-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:ListApprovalTeams"], "path": "behavioral/mpa/check_list_approval_teams_max_results_out_of_range_rejected.py", "service": "mpa"} {"check_id": "mpa.list-approval-teams-pagination-traverses-created-teams", "deployments": [], "key": "mpa/list-approval-teams-pagination-traverses-created-teams", "labels": ["axis:happy-path", "plane:control"], "operations": ["mpa:ListPolicies"], "path": "behavioral/mpa/check_list_approval_teams_pagination_traverses_created_teams.py", "service": "mpa"} {"check_id": "mpa.min-approvals-exceeds-approver-count-rejected", "deployments": [], "key": "mpa/min-approvals-exceeds-approver-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:CreateApprovalTeam", "mpa:DeleteInactiveApprovalTeamVersion", "mpa:GetPolicyVersion", "mpa:ListApprovalTeams", "mpa:ListPolicies", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_min_approvals_exceeds_approver_count_rejected.py", "service": "mpa"} {"check_id": "mpa.policy-catalog-round-trip", "deployments": [], "key": "mpa/policy-catalog-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mpa:GetPolicyVersion", "mpa:ListPolicies", "mpa:ListPolicyVersions"], "path": "behavioral/mpa/check_policy_catalog_round_trip.py", "service": "mpa"} {"check_id": "mpa.start-active-approval-team-deletion-when-not-active-rejected", "deployments": [], "key": "mpa/start-active-approval-team-deletion-when-not-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:GetPolicyVersion", "mpa:ListPolicies", "mpa:StartActiveApprovalTeamDeletion", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_start_active_approval_team_deletion_when_not_active_rejected.py", "service": "mpa"} {"check_id": "mpa.tag-resource-exceeds-limit-rejected", "deployments": [], "key": "mpa/tag-resource-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:GetPolicyVersion", "mpa:ListPolicies", "mpa:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_tag_resource_exceeds_limit_rejected.py", "service": "mpa"} {"check_id": "mpa.tag-resource-round-trip-on-approval-team", "deployments": [], "key": "mpa/tag-resource-round-trip-on-approval-team", "labels": ["axis:rejection", "plane:control"], "operations": ["mpa:GetPolicyVersion", "mpa:ListPolicies", "mpa:ListTagsForResource", "mpa:TagResource", "mpa:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/mpa/check_tag_resource_round_trip_on_approval_team.py", "service": "mpa"} {"check_id": "mq.create-broker-lifecycle-reaches-running", "deployments": [], "key": "mq/create-broker-lifecycle-reaches-running", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "mq:CreateBroker", "mq:DeleteBroker", "mq:DescribeBroker", "mq:ListBrokers"], "path": "behavioral/mq/check_create_broker_lifecycle_reaches_running.py", "service": "mq"} {"check_id": "mq.create-configuration-duplicate-name-conflict-rejected", "deployments": [], "key": "mq/create-configuration-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:DeleteConfiguration", "mq:DescribeConfiguration", "mq:ListConfigurations", "mq:UpdateConfiguration"], "path": "behavioral/mq/check_create_configuration_duplicate_name_conflict_rejected.py", "service": "mq"} {"check_id": "mq.create-configuration-invalid-name-rejected", "deployments": [], "key": "mq/create-configuration-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:DeleteConfiguration", "mq:DescribeConfiguration", "mq:ListConfigurations"], "path": "behavioral/mq/check_create_configuration_invalid_name_rejected.py", "service": "mq"} {"check_id": "mq.create-configuration-starts-at-revision-one", "deployments": [], "key": "mq/create-configuration-starts-at-revision-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:DeleteConfiguration", "mq:DescribeConfiguration"], "path": "behavioral/mq/check_create_configuration_starts_at_revision_one.py", "service": "mq"} {"check_id": "mq.create-tags-nonexistent-resource-rejected", "deployments": [], "key": "mq/create-tags-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:CreateTags", "mq:DeleteConfiguration", "mq:ListTags", "sts:GetCallerIdentity"], "path": "behavioral/mq/check_create_tags_nonexistent_resource_rejected.py", "service": "mq"} {"check_id": "mq.create-tags-upsert-overwrites-existing-value", "deployments": [], "key": "mq/create-tags-upsert-overwrites-existing-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:CreateTags", "mq:DeleteConfiguration", "mq:ListTags"], "path": "behavioral/mq/check_create_tags_upsert_overwrites_existing_value.py", "service": "mq"} {"check_id": "mq.create-user-weak-password-rejected", "deployments": [], "key": "mq/create-user-weak-password-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "mq:CreateBroker", "mq:CreateUser", "mq:DeleteBroker", "mq:DescribeBroker", "mq:DescribeUser"], "path": "behavioral/mq/check_create_user_weak_password_rejected.py", "service": "mq"} {"check_id": "mq.delete-broker-removes-it", "deployments": [], "key": "mq/delete-broker-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "mq:CreateBroker", "mq:DeleteBroker", "mq:DescribeBroker", "mq:ListBrokers", "mq:RebootBroker"], "path": "behavioral/mq/check_delete_broker_removes_it.py", "service": "mq"} {"check_id": "mq.delete-configuration-removes-it", "deployments": [], "key": "mq/delete-configuration-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:DeleteConfiguration", "mq:DescribeConfiguration", "mq:ListConfigurations", "mq:UpdateConfiguration"], "path": "behavioral/mq/check_delete_configuration_removes_it.py", "service": "mq"} {"check_id": "mq.delete-user-last-admin-accepted", "deployments": [], "key": "mq/delete-user-last-admin-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "mq:CreateBroker", "mq:DeleteBroker", "mq:DeleteUser", "mq:DescribeBroker", "mq:DescribeUser", "mq:RebootBroker"], "path": "behavioral/mq/check_delete_user_last_admin_accepted.py", "service": "mq"} {"check_id": "mq.describe-broker-engine-types-lists-both-engines", "deployments": [], "key": "mq/describe-broker-engine-types-lists-both-engines", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:DescribeBrokerEngineTypes"], "path": "behavioral/mq/check_describe_broker_engine_types_lists_both_engines.py", "service": "mq"} {"check_id": "mq.describe-broker-instance-options-filtered-by-engine", "deployments": [], "key": "mq/describe-broker-instance-options-filtered-by-engine", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:DescribeBrokerInstanceOptions"], "path": "behavioral/mq/check_describe_broker_instance_options_filtered_by_engine.py", "service": "mq"} {"check_id": "mq.describe-configuration-revision-data-roundtrip", "deployments": [], "key": "mq/describe-configuration-revision-data-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:DeleteConfiguration", "mq:DescribeConfigurationRevision", "mq:UpdateConfiguration"], "path": "behavioral/mq/check_describe_configuration_revision_data_roundtrip.py", "service": "mq"} {"check_id": "mq.list-configuration-revisions-reflects-updates", "deployments": [], "key": "mq/list-configuration-revisions-reflects-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:DeleteConfiguration", "mq:DescribeConfiguration", "mq:ListConfigurationRevisions", "mq:UpdateConfiguration"], "path": "behavioral/mq/check_list_configuration_revisions_reflects_updates.py", "service": "mq"} {"check_id": "mq.promote-non-replica-broker-rejected", "deployments": [], "key": "mq/promote-non-replica-broker-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "mq:CreateBroker", "mq:CreateUser", "mq:DeleteBroker", "mq:DescribeBroker", "mq:DescribeUser", "mq:Promote"], "path": "behavioral/mq/check_promote_non_replica_broker_rejected.py", "service": "mq"} {"check_id": "mq.reboot-broker-applies-pending-user-change", "deployments": [], "key": "mq/reboot-broker-applies-pending-user-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "mq:CreateBroker", "mq:CreateUser", "mq:DeleteBroker", "mq:DescribeBroker", "mq:DescribeUser", "mq:RebootBroker"], "path": "behavioral/mq/check_reboot_broker_applies_pending_user_change.py", "service": "mq"} {"check_id": "mq.reboot-broker-wrong-state-rejected", "deployments": [], "key": "mq/reboot-broker-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "mq:CreateBroker", "mq:DeleteBroker", "mq:DescribeBroker", "mq:RebootBroker"], "path": "behavioral/mq/check_reboot_broker_wrong_state_rejected.py", "service": "mq"} {"check_id": "mq.tags-create-list-delete-roundtrip-on-configuration", "deployments": [], "key": "mq/tags-create-list-delete-roundtrip-on-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:CreateTags", "mq:DeleteConfiguration", "mq:DeleteTags", "mq:ListTags"], "path": "behavioral/mq/check_tags_create_list_delete_roundtrip_on_configuration.py", "service": "mq"} {"check_id": "mq.update-configuration-increments-revision", "deployments": [], "key": "mq/update-configuration-increments-revision", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:DeleteConfiguration", "mq:DescribeConfiguration", "mq:ListConfigurationRevisions", "mq:UpdateConfiguration"], "path": "behavioral/mq/check_update_configuration_increments_revision.py", "service": "mq"} {"check_id": "mq.update-configuration-revision-concurrency", "deployments": [], "key": "mq/update-configuration-revision-concurrency", "labels": ["axis:happy-path", "plane:control"], "operations": ["mq:CreateConfiguration", "mq:DeleteConfiguration", "mq:DescribeConfiguration", "mq:ListConfigurationRevisions", "mq:UpdateConfiguration"], "path": "behavioral/mq/check_update_configuration_revision_concurrency.py", "service": "mq"} {"check_id": "mwaa-serverless.create-workflow-duplicate-name-conflict-rejected", "deployments": [], "key": "mwaa-serverless/create-workflow-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_create_workflow_duplicate_name_conflict_rejected.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.create-workflow-duplicate-name-race-exactly-one-wins", "deployments": [], "key": "mwaa-serverless/create-workflow-duplicate-name-race-exactly-one-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "mwaa-serverless:ListWorkflows", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_create_workflow_duplicate_name_race_exactly_one_wins.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.create-workflow-get-workflow-round-trip", "deployments": [], "key": "mwaa-serverless/create-workflow-get-workflow-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_create_workflow_get_workflow_round_trip.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.create-workflow-invalid-engine-version-rejected", "deployments": [], "key": "mwaa-serverless/create-workflow-invalid-engine-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "mwaa-serverless:ListWorkflows", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_create_workflow_invalid_engine_version_rejected.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.create-workflow-invalid-role-arn-pattern-rejected", "deployments": [], "key": "mwaa-serverless/create-workflow-invalid-role-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "mwaa-serverless:ListWorkflows", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_create_workflow_invalid_role_arn_pattern_rejected.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.create-workflow-untrusted-execution-role-access-denied-rejected", "deployments": [], "key": "mwaa-serverless/create-workflow-untrusted-execution-role-access-denied-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "mwaa-serverless:ListWorkflowRuns", "mwaa-serverless:StartWorkflowRun", "mwaa-serverless:StopWorkflowRun", "mwaa-serverless:UpdateWorkflow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_create_workflow_untrusted_execution_role_access_denied_rejected.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.delete-workflow-removes-resource", "deployments": [], "key": "mwaa-serverless/delete-workflow-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_delete_workflow_removes_resource.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.get-workflow-nonexistent-arn-not-found-rejected", "deployments": [], "key": "mwaa-serverless/get-workflow-nonexistent-arn-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/mwaa-serverless/check_get_workflow_nonexistent_arn_not_found_rejected.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.list-task-instances-for-never-started-run-returns-empty", "deployments": [], "key": "mwaa-serverless/list-task-instances-for-never-started-run-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:ListTaskInstances", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_list_task_instances_for_never_started_run_returns_empty.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.list-workflow-runs-reflects-multiple-runs", "deployments": [], "key": "mwaa-serverless/list-workflow-runs-reflects-multiple-runs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflowRun", "mwaa-serverless:ListWorkflowRuns", "mwaa-serverless:StartWorkflowRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_list_workflow_runs_reflects_multiple_runs.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.list-workflow-runs-returns-empty-for-new-workflow", "deployments": [], "key": "mwaa-serverless/list-workflow-runs-returns-empty-for-new-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:ListWorkflowRuns", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_list_workflow_runs_returns_empty_for_new_workflow.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.list-workflow-versions-reflects-update-history", "deployments": [], "key": "mwaa-serverless/list-workflow-versions-reflects-update-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:ListWorkflowVersions", "mwaa-serverless:UpdateWorkflow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_list_workflow_versions_reflects_update_history.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.list-workflows-max-results-out-of-range-rejected", "deployments": [], "key": "mwaa-serverless/list-workflows-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mwaa-serverless:ListWorkflows"], "path": "behavioral/mwaa-serverless/check_list_workflows_max_results_out_of_range_rejected.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.list-workflows-reflects-create-and-delete", "deployments": [], "key": "mwaa-serverless/list-workflows-reflects-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:ListWorkflows", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_list_workflows_reflects_create_and_delete.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.start-workflow-run-nonexistent-workflow-version-not-found-rejected", "deployments": [], "key": "mwaa-serverless/start-workflow-run-nonexistent-workflow-version-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflowRun", "mwaa-serverless:ListWorkflowRuns", "mwaa-serverless:StartWorkflowRun", "mwaa-serverless:StopWorkflowRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_start_workflow_run_nonexistent_workflow_version_not_found_rejected.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.stop-workflow-run-transitions-to-stopped", "deployments": [], "key": "mwaa-serverless/stop-workflow-run-transitions-to-stopped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflowRun", "mwaa-serverless:StartWorkflowRun", "mwaa-serverless:StopWorkflowRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_stop_workflow_run_transitions_to_stopped.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "mwaa-serverless/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:ListTagsForResource", "mwaa-serverless:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_tag_resource_and_list_tags_round_trip.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.untag-resource-removes-specific-tag", "deployments": [], "key": "mwaa-serverless/untag-resource-removes-specific-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:ListTagsForResource", "mwaa-serverless:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_untag_resource_removes_specific_tag.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.update-workflow-creates-new-version-flips-latest", "deployments": [], "key": "mwaa-serverless/update-workflow-creates-new-version-flips-latest", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "mwaa-serverless:ListWorkflowVersions", "mwaa-serverless:UpdateWorkflow", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_update_workflow_creates_new_version_flips_latest.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.workflow-definition-snapshotted-at-creation-unaffected-by-s3-overwrite", "deployments": [], "key": "mwaa-serverless/workflow-definition-snapshotted-at-creation-unaffected-by-s3-overwrite", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflow", "mwaa-serverless:GetWorkflowRun", "mwaa-serverless:StartWorkflowRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_workflow_definition_snapshotted_at_creation_unaffected_by_s3_overwrite.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.workflow-run-failure-records-error-message", "deployments": [], "key": "mwaa-serverless/workflow-run-failure-records-error-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetTaskInstance", "mwaa-serverless:GetWorkflowRun", "mwaa-serverless:StartWorkflowRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_workflow_run_failure_records_error_message.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.workflow-run-status-progresses-through-lifecycle-states", "deployments": [], "key": "mwaa-serverless/workflow-run-status-progresses-through-lifecycle-states", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetWorkflowRun", "mwaa-serverless:StartWorkflowRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_workflow_run_status_progresses_through_lifecycle_states.py", "service": "mwaa-serverless"} {"check_id": "mwaa-serverless.workflow-run-success-end-to-end", "deployments": [], "key": "mwaa-serverless/workflow-run-success-end-to-end", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "logs:GetLogEvents", "mwaa-serverless:CreateWorkflow", "mwaa-serverless:DeleteWorkflow", "mwaa-serverless:GetTaskInstance", "mwaa-serverless:GetWorkflow", "mwaa-serverless:GetWorkflowRun", "mwaa-serverless:ListTaskInstances", "mwaa-serverless:StartWorkflowRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/mwaa-serverless/check_workflow_run_success_end_to_end.py", "service": "mwaa-serverless"} {"check_id": "mwaa.cli-token-native-airflow-cli-round-trip", "deployments": [], "key": "mwaa/cli-token-native-airflow-cli-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "mwaa:CreateCliToken", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mwaa/check_cli_token_native_airflow_cli_round_trip.py", "service": "mwaa"} {"check_id": "mwaa.concurrent-create-environment-same-name-single-winner", "deployments": [], "key": "mwaa/concurrent-create-environment-same-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mwaa/check_concurrent_create_environment_same_name_single_winner.py", "service": "mwaa"} {"check_id": "mwaa.create-cli-token-nonexistent-environment-not-found", "deployments": [], "key": "mwaa/create-cli-token-nonexistent-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa:CreateCliToken", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mwaa/check_create_cli_token_nonexistent_environment_not_found.py", "service": "mwaa"} {"check_id": "mwaa.create-environment-invalid-execution-role-arn-rejected", "deployments": [], "key": "mwaa/create-environment-invalid-execution-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mwaa:CreateEnvironment", "mwaa:GetEnvironment", "mwaa:ListEnvironments"], "path": "behavioral/mwaa/check_create_environment_invalid_execution_role_arn_rejected.py", "service": "mwaa"} {"check_id": "mwaa.create-environment-lifecycle-reaches-available", "deployments": [], "key": "mwaa/create-environment-lifecycle-reaches-available", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mwaa/check_create_environment_lifecycle_reaches_available.py", "service": "mwaa"} {"check_id": "mwaa.create-environment-max-workers-less-than-min-workers-rejected", "deployments": [], "key": "mwaa/create-environment-max-workers-less-than-min-workers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "mwaa:CreateEnvironment", "mwaa:GetEnvironment", "mwaa:ListEnvironments"], "path": "behavioral/mwaa/check_create_environment_max_workers_less_than_min_workers_rejected.py", "service": "mwaa"} {"check_id": "mwaa.create-environment-schedulers-exceeds-max-rejected", "deployments": [], "key": "mwaa/create-environment-schedulers-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "mwaa:CreateEnvironment", "mwaa:GetEnvironment", "mwaa:ListEnvironments"], "path": "behavioral/mwaa/check_create_environment_schedulers_exceeds_max_rejected.py", "service": "mwaa"} {"check_id": "mwaa.create-web-login-token-nonexistent-environment-not-found", "deployments": [], "key": "mwaa/create-web-login-token-nonexistent-environment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mwaa:CreateWebLoginToken", "mwaa:ListEnvironments"], "path": "behavioral/mwaa/check_create_web_login_token_nonexistent_environment_not_found.py", "service": "mwaa"} {"check_id": "mwaa.delete-environment-lifecycle-reaches-deleted", "deployments": [], "key": "mwaa/delete-environment-lifecycle-reaches-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mwaa/check_delete_environment_lifecycle_reaches_deleted.py", "service": "mwaa"} {"check_id": "mwaa.get-environment-nonexistent-not-found", "deployments": [], "key": "mwaa/get-environment-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mwaa:GetEnvironment", "mwaa:ListEnvironments"], "path": "behavioral/mwaa/check_get_environment_nonexistent_not_found.py", "service": "mwaa"} {"check_id": "mwaa.invoke-rest-api-lists-dags-success", "deployments": [], "key": "mwaa/invoke-rest-api-lists-dags-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "mwaa:InvokeRestApi", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mwaa/check_invoke_rest_api_lists_dags_success.py", "service": "mwaa"} {"check_id": "mwaa.invoke-rest-api-nonexistent-environment-not-found", "deployments": [], "key": "mwaa/invoke-rest-api-nonexistent-environment-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["mwaa:InvokeRestApi"], "path": "behavioral/mwaa/check_invoke_rest_api_nonexistent_environment_not_found.py", "service": "mwaa"} {"check_id": "mwaa.list-environments-max-results-out-of-range-rejected", "deployments": [], "key": "mwaa/list-environments-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["mwaa:ListEnvironments"], "path": "behavioral/mwaa/check_list_environments_max_results_out_of_range_rejected.py", "service": "mwaa"} {"check_id": "mwaa.list-environments-max-results-respected", "deployments": [], "key": "mwaa/list-environments-max-results-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["mwaa:ListEnvironments"], "path": "behavioral/mwaa/check_list_environments_max_results_respected.py", "service": "mwaa"} {"check_id": "mwaa.tag-and-untag-environment-round-trip", "deployments": [], "key": "mwaa/tag-and-untag-environment-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "mwaa:ListTagsForResource", "mwaa:TagResource", "mwaa:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mwaa/check_tag_and_untag_environment_round_trip.py", "service": "mwaa"} {"check_id": "mwaa.tag-resource-nonexistent-arn-not-found", "deployments": [], "key": "mwaa/tag-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mwaa:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/mwaa/check_tag_resource_nonexistent_arn_not_found.py", "service": "mwaa"} {"check_id": "mwaa.update-environment-during-creation-rejected", "deployments": [], "key": "mwaa/update-environment-during-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "mwaa:UpdateEnvironment", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/mwaa/check_update_environment_during_creation_rejected.py", "service": "mwaa"} {"check_id": "mwaa.update-environment-nonexistent-not-found", "deployments": [], "key": "mwaa/update-environment-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["mwaa:ListEnvironments", "mwaa:UpdateEnvironment"], "path": "behavioral/mwaa/check_update_environment_nonexistent_not_found.py", "service": "mwaa"} {"check_id": "mwaa.update-environment-scales-workers-lifecycle", "deployments": [], "key": "mwaa/update-environment-scales-workers-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteNatGateway", "ec2:DescribeAvailabilityZones", "ec2:DescribeNatGateways", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:ReleaseAddress", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "mwaa:CreateEnvironment", "mwaa:DeleteEnvironment", "mwaa:GetEnvironment", "mwaa:UpdateEnvironment", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/mwaa/check_update_environment_scales_workers_lifecycle.py", "service": "mwaa"} {"check_id": "neptune-graph.concurrent-merge-no-duplicate-node", "deployments": [], "key": "neptune-graph/concurrent-merge-no-duplicate-node", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:ExecuteQuery", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_concurrent_merge_no_duplicate_node.py", "service": "neptune-graph"} {"check_id": "neptune-graph.create-graph-invalid-name-rejected", "deployments": [], "key": "neptune-graph/create-graph-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:ListGraphs", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_create_graph_invalid_name_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.create-graph-kms-encryption-reflects-key", "deployments": [], "key": "neptune-graph/create-graph-kms-encryption-reflects-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_create_graph_kms_encryption_reflects_key.py", "service": "neptune-graph"} {"check_id": "neptune-graph.create-graph-provisioned-memory-out-of-range-rejected", "deployments": [], "key": "neptune-graph/create-graph-provisioned-memory-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:ListGraphs", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_create_graph_provisioned_memory_out_of_range_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.create-graph-replica-count-out-of-range-rejected", "deployments": [], "key": "neptune-graph/create-graph-replica-count-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:ListGraphs", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_create_graph_replica_count_out_of_range_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.create-graph-snapshot-duplicate-name-conflict-rejected", "deployments": [], "key": "neptune-graph/create-graph-snapshot-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:CreateGraphSnapshot", "neptune-graph:DeleteGraph", "neptune-graph:DeleteGraphSnapshot", "neptune-graph:GetGraph", "neptune-graph:GetGraphSnapshot", "neptune-graph:ListGraphSnapshots", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_create_graph_snapshot_duplicate_name_conflict_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.create-graph-snapshot-of-graph-in-creating-state-conflict-rejected", "deployments": [], "key": "neptune-graph/create-graph-snapshot-of-graph-in-creating-state-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:CreateGraphSnapshot", "neptune-graph:DeleteGraph", "neptune-graph:DeleteGraphSnapshot", "neptune-graph:GetGraph", "neptune-graph:GetGraphSnapshot", "neptune-graph:ListGraphSnapshots", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_create_graph_snapshot_of_graph_in_creating_state_conflict_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.get-graph-invalid-identifier-pattern-rejected", "deployments": [], "key": "neptune-graph/get-graph-invalid-identifier-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:GetGraph", "neptune-graph:ListGraphs"], "path": "behavioral/neptune-graph/check_get_graph_invalid_identifier_pattern_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.graph-create-available-transition", "deployments": [], "key": "neptune-graph/graph-create-available-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_graph_create_available_transition.py", "service": "neptune-graph"} {"check_id": "neptune-graph.import-export-task-nonexistent-not-found", "deployments": [], "key": "neptune-graph/import-export-task-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CancelExportTask", "neptune-graph:CancelImportTask", "neptune-graph:GetExportTask", "neptune-graph:GetImportTask"], "path": "behavioral/neptune-graph/check_import_export_task_nonexistent_not_found.py", "service": "neptune-graph"} {"check_id": "neptune-graph.import-task-invalid-role-arn-rejected", "deployments": [], "key": "neptune-graph/import-task-invalid-role-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "neptune-graph:StartImportTask", "sts:GetCallerIdentity"], "path": "behavioral/neptune-graph/check_import_task_invalid_role_arn_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.list-graph-snapshots-reflects-created-snapshot", "deployments": [], "key": "neptune-graph/list-graph-snapshots-reflects-created-snapshot", "labels": ["axis:happy-path", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:CreateGraphSnapshot", "neptune-graph:DeleteGraph", "neptune-graph:DeleteGraphSnapshot", "neptune-graph:GetGraph", "neptune-graph:GetGraphSnapshot", "neptune-graph:ListGraphSnapshots", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_list_graph_snapshots_reflects_created_snapshot.py", "service": "neptune-graph"} {"check_id": "neptune-graph.list-tags-for-resource-reflects-tags-set-at-create-time", "deployments": [], "key": "neptune-graph/list-tags-for-resource-reflects-tags-set-at-create-time", "labels": ["axis:happy-path", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:ListTagsForResource", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_list_tags_for_resource_reflects_tags_set_at_create_time.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-concurrent-create-same-name-one-wins", "deployments": [], "key": "neptune-graph/neptune-graph-concurrent-create-same-name-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_concurrent_create_same_name_one_wins.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-create-graph-duplicate-name-conflict-rejected", "deployments": [], "key": "neptune-graph/neptune-graph-create-graph-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_create_graph_duplicate_name_conflict_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-delete-graph-deletion-protection-rejected", "deployments": [], "key": "neptune-graph/neptune-graph-delete-graph-deletion-protection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_delete_graph_deletion_protection_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-delete-lifecycle", "deployments": [], "key": "neptune-graph/neptune-graph-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_delete_lifecycle.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-execute-query-during-graph-creation-conflict", "deployments": [], "key": "neptune-graph/neptune-graph-execute-query-during-graph-creation-conflict", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:ExecuteQuery", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_execute_query_during_graph_creation_conflict.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-execute-query-missing-permission-denied-rejected", "deployments": [], "key": "neptune-graph/neptune-graph-execute-query-missing-permission-denied-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys", "neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:ExecuteQuery", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_execute_query_missing_permission_denied_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-get-graph-nonexistent-not-found", "deployments": [], "key": "neptune-graph/neptune-graph-get-graph-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_get_graph_nonexistent_not_found.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-list-graphs-pagination-token", "deployments": [], "key": "neptune-graph/neptune-graph-list-graphs-pagination-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:ListGraphs", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_list_graphs_pagination_token.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-start-graph-wrong-status-rejected", "deployments": [], "key": "neptune-graph/neptune-graph-start-graph-wrong-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:StartGraph", "neptune-graph:StopGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_start_graph_wrong_status_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-stop-start-lifecycle", "deployments": [], "key": "neptune-graph/neptune-graph-stop-start-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:StartGraph", "neptune-graph:StopGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_stop_start_lifecycle.py", "service": "neptune-graph"} {"check_id": "neptune-graph.neptune-graph-tag-resource-lifecycle-roundtrip", "deployments": [], "key": "neptune-graph/neptune-graph-tag-resource-lifecycle-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:ListTagsForResource", "neptune-graph:TagResource", "neptune-graph:UntagResource", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_neptune_graph_tag_resource_lifecycle_roundtrip.py", "service": "neptune-graph"} {"check_id": "neptune-graph.private-graph-endpoint-lifecycle", "deployments": [], "key": "neptune-graph/private-graph-endpoint-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "neptune-graph:CreateGraph", "neptune-graph:CreatePrivateGraphEndpoint", "neptune-graph:DeleteGraph", "neptune-graph:DeletePrivateGraphEndpoint", "neptune-graph:GetGraph", "neptune-graph:GetPrivateGraphEndpoint", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_private_graph_endpoint_lifecycle.py", "service": "neptune-graph"} {"check_id": "neptune-graph.stopped-graph-query-rejected", "deployments": [], "key": "neptune-graph/stopped-graph-query-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:ExecuteQuery", "neptune-graph:GetGraph", "neptune-graph:StartGraph", "neptune-graph:StopGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_stopped_graph_query_rejected.py", "service": "neptune-graph"} {"check_id": "neptune-graph.update-graph-provisioned-memory", "deployments": [], "key": "neptune-graph/update-graph-provisioned-memory", "labels": ["axis:happy-path", "plane:control"], "operations": ["neptune-graph:CreateGraph", "neptune-graph:DeleteGraph", "neptune-graph:GetGraph", "neptune-graph:UpdateGraph"], "path": "behavioral/neptune-graph/check_update_graph_provisioned_memory.py", "service": "neptune-graph"} {"check_id": "neptune.cluster-parameter-group-rejects-out-of-range-value", "deployments": [], "key": "neptune/cluster-parameter-group-rejects-out-of-range-value", "labels": ["axis:rejection", "plane:control"], "operations": ["neptune:CreateDBClusterParameterGroup", "neptune:DeleteDBClusterParameterGroup", "neptune:DescribeDBClusterParameters", "neptune:ModifyDBClusterParameterGroup"], "path": "behavioral/neptune/check_cluster_parameter_group_rejects_out_of_range_value.py", "service": "neptune"} {"check_id": "network-firewall.associate-disassociate-subnets-updates-mapping", "deployments": [], "key": "network-firewall/associate-disassociate-subnets-updates-mapping", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_associate_disassociate_subnets_updates_mapping.py", "service": "network-firewall"} {"check_id": "network-firewall.associate-firewall-policy-updates-reference", "deployments": [], "key": "network-firewall/associate-firewall-policy-updates-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_associate_firewall_policy_updates_reference.py", "service": "network-firewall"} {"check_id": "network-firewall.concurrent-update-token-race-single-winner", "deployments": [], "key": "network-firewall/concurrent-update-token-race-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_concurrent_update_token_race_single_winner.py", "service": "network-firewall"} {"check_id": "network-firewall.delete-protected-firewall-rejected", "deployments": [], "key": "network-firewall/delete-protected-firewall-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_delete_protected_firewall_rejected.py", "service": "network-firewall"} {"check_id": "network-firewall.describe-firewall-not-found-rejected", "deployments": [], "key": "network-firewall/describe-firewall-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:ListFirewalls"], "path": "behavioral/network-firewall/check_describe_firewall_not_found_rejected.py", "service": "network-firewall"} {"check_id": "network-firewall.disassociate-last-subnet-rejected", "deployments": [], "key": "network-firewall/disassociate-last-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_disassociate_last_subnet_rejected.py", "service": "network-firewall"} {"check_id": "network-firewall.encryption-configuration-defaults-to-aws-owned-key", "deployments": [], "key": "network-firewall/encryption-configuration-defaults-to-aws-owned-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-firewall:CreateRuleGroup", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeRuleGroup"], "path": "behavioral/network-firewall/check_encryption_configuration_defaults_to_aws_owned_key.py", "service": "network-firewall"} {"check_id": "network-firewall.firewall-deletion-removes-resource", "deployments": [], "key": "network-firewall/firewall-deletion-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_firewall_deletion_removes_resource.py", "service": "network-firewall"} {"check_id": "network-firewall.firewall-policy-update-replaces-rule-group-reference", "deployments": [], "key": "network-firewall/firewall-policy-update-replaces-rule-group-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-firewall:CreateFirewallPolicy", "network-firewall:CreateRuleGroup", "network-firewall:DeleteFirewallPolicy", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeFirewallPolicy", "network-firewall:DescribeRuleGroup", "network-firewall:UpdateFirewallPolicy"], "path": "behavioral/network-firewall/check_firewall_policy_update_replaces_rule_group_reference.py", "service": "network-firewall"} {"check_id": "network-firewall.firewall-provisioning-to-ready-transition", "deployments": [], "key": "network-firewall/firewall-provisioning-to-ready-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_firewall_provisioning_to_ready_transition.py", "service": "network-firewall"} {"check_id": "network-firewall.flow-flush-operation-completes", "deployments": [], "key": "network-firewall/flow-flush-operation-completes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_flow_flush_operation_completes.py", "service": "network-firewall"} {"check_id": "network-firewall.list-rule-groups-pagination-reflects-created", "deployments": [], "key": "network-firewall/list-rule-groups-pagination-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-firewall:CreateRuleGroup", "network-firewall:DeleteRuleGroup", "network-firewall:ListRuleGroups"], "path": "behavioral/network-firewall/check_list_rule_groups_pagination_reflects_created.py", "service": "network-firewall"} {"check_id": "network-firewall.logging-configuration-s3-permission-denied-rejected", "deployments": [], "key": "network-firewall/logging-configuration-s3-permission-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:DescribeLoggingConfiguration", "network-firewall:UpdateFirewallDeleteProtection", "network-firewall:UpdateLoggingConfiguration", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/network-firewall/check_logging_configuration_s3_permission_denied_rejected.py", "service": "network-firewall"} {"check_id": "network-firewall.resource-policy-missing-required-action-rejected", "deployments": [], "key": "network-firewall/resource-policy-missing-required-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewallPolicy", "network-firewall:DeleteResourcePolicy", "network-firewall:DescribeResourcePolicy", "network-firewall:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/network-firewall/check_resource_policy_missing_required_action_rejected.py", "service": "network-firewall"} {"check_id": "network-firewall.resource-policy-put-describe-delete-roundtrip", "deployments": [], "key": "network-firewall/resource-policy-put-describe-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewallPolicy", "network-firewall:DeleteResourcePolicy", "network-firewall:DescribeResourcePolicy", "network-firewall:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/network-firewall/check_resource_policy_put_describe_delete_roundtrip.py", "service": "network-firewall"} {"check_id": "network-firewall.rule-group-capacity-tracked-on-create", "deployments": [], "key": "network-firewall/rule-group-capacity-tracked-on-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-firewall:CreateRuleGroup", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeRuleGroup"], "path": "behavioral/network-firewall/check_rule_group_capacity_tracked_on_create.py", "service": "network-firewall"} {"check_id": "network-firewall.rule-group-referenced-by-policy-delete-rejected", "deployments": [], "key": "network-firewall/rule-group-referenced-by-policy-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["network-firewall:CreateFirewallPolicy", "network-firewall:CreateRuleGroup", "network-firewall:DeleteFirewallPolicy", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeRuleGroup"], "path": "behavioral/network-firewall/check_rule_group_referenced_by_policy_delete_rejected.py", "service": "network-firewall"} {"check_id": "network-firewall.rule-group-update-persists-new-rules", "deployments": [], "key": "network-firewall/rule-group-update-persists-new-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-firewall:CreateRuleGroup", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeRuleGroup", "network-firewall:UpdateRuleGroup"], "path": "behavioral/network-firewall/check_rule_group_update_persists_new_rules.py", "service": "network-firewall"} {"check_id": "network-firewall.stateful-rule-drops-matching-traffic-allows-other", "deployments": [], "key": "network-firewall/stateful-rule-drops-matching-traffic-allows-other", "labels": ["axis:negative-delivery", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstances", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ec2:DisassociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:CreateRuleGroup", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection", "ssm:GetParameter"], "path": "behavioral/network-firewall/check_stateful_rule_drops_matching_traffic_allows_other.py", "service": "network-firewall"} {"check_id": "network-firewall.subnet-change-protection-blocks-associate-rejected", "deployments": [], "key": "network-firewall/subnet-change-protection-blocks-associate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "network-firewall:CreateFirewall", "network-firewall:CreateFirewallPolicy", "network-firewall:DeleteFirewall", "network-firewall:DeleteFirewallPolicy", "network-firewall:DescribeFirewall", "network-firewall:UpdateFirewallDeleteProtection"], "path": "behavioral/network-firewall/check_subnet_change_protection_blocks_associate_rejected.py", "service": "network-firewall"} {"check_id": "network-firewall.tag-and-untag-resource-roundtrip", "deployments": [], "key": "network-firewall/tag-and-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-firewall:CreateRuleGroup", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeRuleGroup", "network-firewall:ListTagsForResource", "network-firewall:TagResource", "network-firewall:UntagResource"], "path": "behavioral/network-firewall/check_tag_and_untag_resource_roundtrip.py", "service": "network-firewall"} {"check_id": "network-firewall.update-rule-group-exceeds-capacity-rejected", "deployments": [], "key": "network-firewall/update-rule-group-exceeds-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["network-firewall:CreateRuleGroup", "network-firewall:DeleteRuleGroup", "network-firewall:DescribeRuleGroup", "network-firewall:UpdateRuleGroup"], "path": "behavioral/network-firewall/check_update_rule_group_exceeds_capacity_rejected.py", "service": "network-firewall"} {"check_id": "network-security-manager.delete-rule-blocked-while-associated-with-policy", "deployments": [], "key": "network-security-manager/delete-rule-blocked-while-associated-with-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["network-security-manager:CreatePolicy", "network-security-manager:CreateRule", "network-security-manager:DeletePolicy", "network-security-manager:DeleteRule", "network-security-manager:GetRule"], "path": "behavioral/network-security-manager/check_delete_rule_blocked_while_associated_with_policy.py", "service": "network-security-manager"} {"check_id": "network-security-manager.delete-rule-blocked-while-associated-with-template", "deployments": [], "key": "network-security-manager/delete-rule-blocked-while-associated-with-template", "labels": ["axis:rejection", "plane:control"], "operations": ["network-security-manager:CreateRule", "network-security-manager:CreateTemplate", "network-security-manager:DeleteRule", "network-security-manager:DeleteTemplate", "network-security-manager:GetRule"], "path": "behavioral/network-security-manager/check_delete_rule_blocked_while_associated_with_template.py", "service": "network-security-manager"} {"check_id": "network-security-manager.duplicate-rule-names-coexist-as-distinct-resources", "deployments": [], "key": "network-security-manager/duplicate-rule-names-coexist-as-distinct-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-security-manager:CreateRule", "network-security-manager:DeleteRule", "network-security-manager:GetRule", "network-security-manager:ListRules", "network-security-manager:UpdateRule"], "path": "behavioral/network-security-manager/check_duplicate_rule_names_coexist_as_distinct_resources.py", "service": "network-security-manager"} {"check_id": "network-security-manager.policy-snapshot-priority-tracks-live-policy-while-configuration-freezes", "deployments": [], "key": "network-security-manager/policy-snapshot-priority-tracks-live-policy-while-configuration-freezes", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-security-manager:CreatePolicy", "network-security-manager:CreatePolicySnapshot", "network-security-manager:CreateRule", "network-security-manager:DeletePolicy", "network-security-manager:DeleteRule", "network-security-manager:GetPolicy", "network-security-manager:UpdatePolicy"], "path": "behavioral/network-security-manager/check_policy_snapshot_priority_tracks_live_policy_while_configuration_freezes.py", "service": "network-security-manager"} {"check_id": "network-security-manager.rule-snapshot-preserves-version-after-live-rule-is-updated", "deployments": [], "key": "network-security-manager/rule-snapshot-preserves-version-after-live-rule-is-updated", "labels": ["axis:happy-path", "plane:control"], "operations": ["network-security-manager:CreateRule", "network-security-manager:CreateRuleSnapshot", "network-security-manager:DeleteRule", "network-security-manager:GetRule", "network-security-manager:UpdateRule"], "path": "behavioral/network-security-manager/check_rule_snapshot_preserves_version_after_live_rule_is_updated.py", "service": "network-security-manager"} {"check_id": "network-security-manager.update-rule-rejects-all-prior-update-tokens-after-new-version", "deployments": [], "key": "network-security-manager/update-rule-rejects-all-prior-update-tokens-after-new-version", "labels": ["axis:rejection", "plane:control"], "operations": ["network-security-manager:CreateRule", "network-security-manager:DeleteRule", "network-security-manager:GetRule", "network-security-manager:UpdateRule"], "path": "behavioral/network-security-manager/check_update_rule_rejects_all_prior_update_tokens_after_new_version.py", "service": "network-security-manager"} {"check_id": "networkflowmonitor.concurrent-create-monitor-same-name-exactly-one-wins", "deployments": [], "key": "networkflowmonitor/concurrent-create-monitor-same-name-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListMonitors", "networkflowmonitor:ListScopes", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_concurrent_create_monitor_same_name_exactly_one_wins.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.concurrent-create-scope-same-target-one-wins", "deployments": [], "key": "networkflowmonitor/concurrent-create-scope-same-target-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_concurrent_create_scope_same_target_one_wins.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.create-monitor-duplicate-name-rejected", "deployments": [], "key": "networkflowmonitor/create-monitor-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_create_monitor_duplicate_name_rejected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.delete-monitor-removes-resource", "deployments": [], "key": "networkflowmonitor/delete-monitor-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_delete_monitor_removes_resource.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.delete-scope-removes-scope", "deployments": [], "key": "networkflowmonitor/delete-scope-removes-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListMonitors", "networkflowmonitor:ListScopes", "networkflowmonitor:UpdateScope", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_delete_scope_removes_scope.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.delete-scope-with-referencing-monitor-rejected", "deployments": [], "key": "networkflowmonitor/delete-scope-with-referencing-monitor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListMonitors", "networkflowmonitor:ListScopes", "networkflowmonitor:UpdateScope", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_delete_scope_with_referencing_monitor_rejected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.get-monitor-nonexistent-rejected", "deployments": [], "key": "networkflowmonitor/get-monitor-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_get_monitor_nonexistent_rejected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.list-monitors-filter-by-status", "deployments": [], "key": "networkflowmonitor/list-monitors-filter-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListMonitors", "networkflowmonitor:ListScopes", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_list_monitors_filter_by_status.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.list-monitors-invalid-next-token-rejected", "deployments": [], "key": "networkflowmonitor/list-monitors-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetScope", "networkflowmonitor:ListMonitors", "networkflowmonitor:ListScopes", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_list_monitors_invalid_next_token_rejected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.list-scopes-reflects-created-scope", "deployments": [], "key": "networkflowmonitor/list-scopes-reflects-created-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:UpdateScope", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_list_scopes_reflects_created_scope.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.monitor-lifecycle-pending-to-active", "deployments": [], "key": "networkflowmonitor/monitor-lifecycle-pending-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_monitor_lifecycle_pending_to_active.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.monitor-tags-set-at-creation", "deployments": [], "key": "networkflowmonitor/monitor-tags-set-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_monitor_tags_set_at_creation.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.query-monitor-top-contributors-lifecycle-terminal", "deployments": [], "key": "networkflowmonitor/query-monitor-top-contributors-lifecycle-terminal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetQueryResultsMonitorTopContributors", "networkflowmonitor:GetQueryStatusMonitorTopContributors", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:StartQueryMonitorTopContributors", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_query_monitor_top_contributors_lifecycle_terminal.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.query-workload-insights-top-contributors-lifecycle-terminal", "deployments": [], "key": "networkflowmonitor/query-workload-insights-top-contributors-lifecycle-terminal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetQueryResultsWorkloadInsightsTopContributors", "networkflowmonitor:GetQueryStatusWorkloadInsightsTopContributors", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:StartQueryWorkloadInsightsTopContributors", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_query_workload_insights_top_contributors_lifecycle_terminal.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.scope-lifecycle-in-progress-to-succeeded", "deployments": [], "key": "networkflowmonitor/scope-lifecycle-in-progress-to-succeeded", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:UpdateScope", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_scope_lifecycle_in_progress_to_succeeded.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.scope-tags-set-at-creation", "deployments": [], "key": "networkflowmonitor/scope-tags-set-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:ListTagsForResource", "networkflowmonitor:TagResource", "networkflowmonitor:UpdateScope", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_scope_tags_set_at_creation.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.start-query-invalid-time-range-rejected", "deployments": [], "key": "networkflowmonitor/start-query-invalid-time-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetQueryStatusMonitorTopContributors", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:StartQueryMonitorTopContributors", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_start_query_invalid_time_range_rejected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.stop-query-on-completed-rejected", "deployments": [], "key": "networkflowmonitor/stop-query-on-completed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetQueryStatusMonitorTopContributors", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:StartQueryMonitorTopContributors", "networkflowmonitor:StopQueryMonitorTopContributors", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_stop_query_on_completed_rejected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.stop-query-succeeds-and-reaches-terminal", "deployments": [], "key": "networkflowmonitor/stop-query-succeeds-and-reaches-terminal", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetQueryStatusMonitorTopContributors", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:StartQueryMonitorTopContributors", "networkflowmonitor:StopQueryMonitorTopContributors", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_stop_query_succeeds_and_reaches_terminal.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.tag-and-untag-resource-round-trip", "deployments": [], "key": "networkflowmonitor/tag-and-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:ListTagsForResource", "networkflowmonitor:TagResource", "networkflowmonitor:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_tag_and_untag_resource_round_trip.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.update-monitor-add-remote-resource-reflected", "deployments": [], "key": "networkflowmonitor/update-monitor-add-remote-resource-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:UpdateMonitor", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_update_monitor_add_remote_resource_reflected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.update-monitor-overlapping-add-remove-rejected", "deployments": [], "key": "networkflowmonitor/update-monitor-overlapping-add-remove-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:DeleteMonitor", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:UpdateMonitor", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_update_monitor_overlapping_add_remove_rejected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.update-scope-add-target-reflected", "deployments": [], "key": "networkflowmonitor/update-scope-add-target-reflected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:UpdateScope", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_update_scope_add_target_reflected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.update-scope-remove-target-reflected", "deployments": [], "key": "networkflowmonitor/update-scope-remove-target-reflected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:UpdateScope", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_update_scope_remove_target_reflected.py", "service": "networkflowmonitor"} {"check_id": "networkflowmonitor.workload-insights-data-query-lifecycle", "deployments": [], "key": "networkflowmonitor/workload-insights-data-query-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["networkflowmonitor:CreateScope", "networkflowmonitor:DeleteScope", "networkflowmonitor:GetQueryResultsWorkloadInsightsTopContributorsData", "networkflowmonitor:GetQueryStatusWorkloadInsightsTopContributorsData", "networkflowmonitor:GetScope", "networkflowmonitor:ListScopes", "networkflowmonitor:StartQueryWorkloadInsightsTopContributorsData", "sts:GetCallerIdentity"], "path": "behavioral/networkflowmonitor/check_workload_insights_data_query_lifecycle.py", "service": "networkflowmonitor"} {"check_id": "networkmanager.associate-link-duplicate-is-an-idempotent-no-op", "deployments": [], "key": "networkmanager/associate-link-duplicate-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:AssociateLink", "networkmanager:CreateDevice", "networkmanager:CreateGlobalNetwork", "networkmanager:CreateLink", "networkmanager:CreateSite", "networkmanager:DeleteDevice", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteLink", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:DisassociateLink", "networkmanager:GetDevices", "networkmanager:GetLinkAssociations", "networkmanager:GetLinks", "networkmanager:GetSites"], "path": "behavioral/networkmanager/check_associate_link_duplicate_is_an_idempotent_no_op.py", "service": "networkmanager"} {"check_id": "networkmanager.associate-link-state-transition-and-listing", "deployments": [], "key": "networkmanager/associate-link-state-transition-and-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:AssociateLink", "networkmanager:CreateDevice", "networkmanager:CreateGlobalNetwork", "networkmanager:CreateLink", "networkmanager:CreateSite", "networkmanager:DeleteDevice", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteLink", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:DisassociateLink", "networkmanager:GetDevices", "networkmanager:GetLinkAssociations", "networkmanager:GetLinks", "networkmanager:GetSites"], "path": "behavioral/networkmanager/check_associate_link_state_transition_and_listing.py", "service": "networkmanager"} {"check_id": "networkmanager.connection-same-device-rejected", "deployments": [], "key": "networkmanager/connection-same-device-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateConnection", "networkmanager:CreateDevice", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteConnection", "networkmanager:DeleteDevice", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetConnections", "networkmanager:GetDevices"], "path": "behavioral/networkmanager/check_connection_same_device_rejected.py", "service": "networkmanager"} {"check_id": "networkmanager.core-network-policy-create-execute-reaches-live", "deployments": [], "key": "networkmanager/core-network-policy-create-execute-reaches-live", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateCoreNetwork", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteCoreNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:ExecuteCoreNetworkChangeSet", "networkmanager:GetCoreNetwork", "networkmanager:GetCoreNetworkPolicy", "networkmanager:PutCoreNetworkPolicy"], "path": "behavioral/networkmanager/check_core_network_policy_create_execute_reaches_live.py", "service": "networkmanager"} {"check_id": "networkmanager.core-network-policy-second-version-listed", "deployments": [], "key": "networkmanager/core-network-policy-second-version-listed", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateCoreNetwork", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteCoreNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:ExecuteCoreNetworkChangeSet", "networkmanager:GetCoreNetwork", "networkmanager:GetCoreNetworkPolicy", "networkmanager:ListCoreNetworkPolicyVersions", "networkmanager:PutCoreNetworkPolicy"], "path": "behavioral/networkmanager/check_core_network_policy_second_version_listed.py", "service": "networkmanager"} {"check_id": "networkmanager.create-connection-cross-global-network-device-rejected", "deployments": [], "key": "networkmanager/create-connection-cross-global-network-device-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateConnection", "networkmanager:CreateDevice", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteConnection", "networkmanager:DeleteDevice", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetConnections", "networkmanager:GetDevices"], "path": "behavioral/networkmanager/check_create_connection_cross_global_network_device_rejected.py", "service": "networkmanager"} {"check_id": "networkmanager.create-site-with-tags-reflected-in-list-tags", "deployments": [], "key": "networkmanager/create-site-with-tags-reflected-in-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateGlobalNetwork", "networkmanager:CreateSite", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetSites", "networkmanager:ListTagsForResource"], "path": "behavioral/networkmanager/check_create_site_with_tags_reflected_in_list_tags.py", "service": "networkmanager"} {"check_id": "networkmanager.delete-global-network-blocked-until-core-network-removed", "deployments": [], "key": "networkmanager/delete-global-network-blocked-until-core-network-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateCoreNetwork", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteCoreNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetCoreNetwork"], "path": "behavioral/networkmanager/check_delete_global_network_blocked_until_core_network_removed.py", "service": "networkmanager"} {"check_id": "networkmanager.delete-live-policy-version-rejected", "deployments": [], "key": "networkmanager/delete-live-policy-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateCoreNetwork", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteCoreNetwork", "networkmanager:DeleteCoreNetworkPolicyVersion", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:ExecuteCoreNetworkChangeSet", "networkmanager:GetCoreNetwork", "networkmanager:GetCoreNetworkPolicy", "networkmanager:ListCoreNetworkPolicyVersions", "networkmanager:PutCoreNetworkPolicy"], "path": "behavioral/networkmanager/check_delete_live_policy_version_rejected.py", "service": "networkmanager"} {"check_id": "networkmanager.delete-site-blocked-until-device-removed", "deployments": [], "key": "networkmanager/delete-site-blocked-until-device-removed", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateDevice", "networkmanager:CreateGlobalNetwork", "networkmanager:CreateSite", "networkmanager:DeleteDevice", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetDevices", "networkmanager:GetSites", "networkmanager:TagResource"], "path": "behavioral/networkmanager/check_delete_site_blocked_until_device_removed.py", "service": "networkmanager"} {"check_id": "networkmanager.describe-global-networks-filters-by-id", "deployments": [], "key": "networkmanager/describe-global-networks-filters-by-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateGlobalNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks"], "path": "behavioral/networkmanager/check_describe_global_networks_filters_by_id.py", "service": "networkmanager"} {"check_id": "networkmanager.device-reflects-site-assignment", "deployments": [], "key": "networkmanager/device-reflects-site-assignment", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateDevice", "networkmanager:CreateGlobalNetwork", "networkmanager:CreateSite", "networkmanager:DeleteDevice", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetDevices", "networkmanager:GetSites"], "path": "behavioral/networkmanager/check_device_reflects_site_assignment.py", "service": "networkmanager"} {"check_id": "networkmanager.execute-change-set-already-executed-rejected", "deployments": [], "key": "networkmanager/execute-change-set-already-executed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateCoreNetwork", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteCoreNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:ExecuteCoreNetworkChangeSet", "networkmanager:GetCoreNetwork", "networkmanager:GetCoreNetworkPolicy", "networkmanager:PutCoreNetworkPolicy"], "path": "behavioral/networkmanager/check_execute_change_set_already_executed_rejected.py", "service": "networkmanager"} {"check_id": "networkmanager.get-network-resource-counts-invalid-filter-validation", "deployments": [], "key": "networkmanager/get-network-resource-counts-invalid-filter-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateGlobalNetwork", "networkmanager:CreateSite", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetNetworkResourceCounts", "networkmanager:GetSites"], "path": "behavioral/networkmanager/check_get_network_resource_counts_invalid_filter_validation.py", "service": "networkmanager"} {"check_id": "networkmanager.get-network-resource-counts-reflects-resources", "deployments": [], "key": "networkmanager/get-network-resource-counts-reflects-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateDevice", "networkmanager:CreateGlobalNetwork", "networkmanager:CreateLink", "networkmanager:CreateSite", "networkmanager:DeleteDevice", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteLink", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetDevices", "networkmanager:GetLinks", "networkmanager:GetNetworkResourceCounts", "networkmanager:GetSites"], "path": "behavioral/networkmanager/check_get_network_resource_counts_reflects_resources.py", "service": "networkmanager"} {"check_id": "networkmanager.global-network-lifecycle-delete-transition", "deployments": [], "key": "networkmanager/global-network-lifecycle-delete-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateGlobalNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:UpdateGlobalNetwork"], "path": "behavioral/networkmanager/check_global_network_lifecycle_delete_transition.py", "service": "networkmanager"} {"check_id": "networkmanager.link-delete-blocked-until-disassociated", "deployments": [], "key": "networkmanager/link-delete-blocked-until-disassociated", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:AssociateLink", "networkmanager:CreateDevice", "networkmanager:CreateGlobalNetwork", "networkmanager:CreateLink", "networkmanager:CreateSite", "networkmanager:DeleteDevice", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteLink", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:DisassociateLink", "networkmanager:GetDevices", "networkmanager:GetLinkAssociations", "networkmanager:GetLinks", "networkmanager:GetSites"], "path": "behavioral/networkmanager/check_link_delete_blocked_until_disassociated.py", "service": "networkmanager"} {"check_id": "networkmanager.link-reflects-bandwidth-configuration", "deployments": [], "key": "networkmanager/link-reflects-bandwidth-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateGlobalNetwork", "networkmanager:CreateLink", "networkmanager:CreateSite", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteLink", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetLinks", "networkmanager:GetSites"], "path": "behavioral/networkmanager/check_link_reflects_bandwidth_configuration.py", "service": "networkmanager"} {"check_id": "networkmanager.put-core-network-policy-optimistic-lock-concurrent", "deployments": [], "key": "networkmanager/put-core-network-policy-optimistic-lock-concurrent", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateCoreNetwork", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteCoreNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetCoreNetwork", "networkmanager:GetCoreNetworkPolicy", "networkmanager:ListCoreNetworkPolicyVersions", "networkmanager:PutCoreNetworkPolicy"], "path": "behavioral/networkmanager/check_put_core_network_policy_optimistic_lock_concurrent.py", "service": "networkmanager"} {"check_id": "networkmanager.resource-policy-put-get-delete-lifecycle", "deployments": [], "key": "networkmanager/resource-policy-put-get-delete-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateCoreNetwork", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteCoreNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteResourcePolicy", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetCoreNetwork", "networkmanager:GetResourcePolicy", "networkmanager:PutResourcePolicy"], "path": "behavioral/networkmanager/check_resource_policy_put_get_delete_lifecycle.py", "service": "networkmanager"} {"check_id": "networkmanager.restore-core-network-policy-version-lifecycle", "deployments": [], "key": "networkmanager/restore-core-network-policy-version-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateCoreNetwork", "networkmanager:CreateGlobalNetwork", "networkmanager:DeleteCoreNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:ExecuteCoreNetworkChangeSet", "networkmanager:GetCoreNetwork", "networkmanager:GetCoreNetworkPolicy", "networkmanager:ListCoreNetworkPolicyVersions", "networkmanager:PutCoreNetworkPolicy", "networkmanager:RestoreCoreNetworkPolicyVersion"], "path": "behavioral/networkmanager/check_restore_core_network_policy_version_lifecycle.py", "service": "networkmanager"} {"check_id": "networkmanager.site-lifecycle-state-transition", "deployments": [], "key": "networkmanager/site-lifecycle-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateGlobalNetwork", "networkmanager:CreateSite", "networkmanager:DeleteGlobalNetwork", "networkmanager:DeleteSite", "networkmanager:DescribeGlobalNetworks", "networkmanager:GetSites", "networkmanager:TagResource"], "path": "behavioral/networkmanager/check_site_lifecycle_state_transition.py", "service": "networkmanager"} {"check_id": "networkmanager.tag-resource-reserved-prefix-rejected", "deployments": [], "key": "networkmanager/tag-resource-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmanager:CreateGlobalNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:ListTagsForResource", "networkmanager:TagResource"], "path": "behavioral/networkmanager/check_tag_resource_reserved_prefix_rejected.py", "service": "networkmanager"} {"check_id": "networkmanager.tag-untag-resource-round-trip", "deployments": [], "key": "networkmanager/tag-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmanager:CreateGlobalNetwork", "networkmanager:DeleteGlobalNetwork", "networkmanager:DescribeGlobalNetworks", "networkmanager:ListTagsForResource", "networkmanager:TagResource", "networkmanager:UntagResource"], "path": "behavioral/networkmanager/check_tag_untag_resource_round_trip.py", "service": "networkmanager"} {"check_id": "networkmonitor.access-denied-without-permission-rejected", "deployments": [], "key": "networkmonitor/access-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_access_denied_without_permission_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.concurrent-duplicate-monitor-creation-exactly-one-wins", "deployments": [], "key": "networkmonitor/concurrent-duplicate-monitor-creation-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:ListMonitors"], "path": "behavioral/networkmonitor/check_concurrent_duplicate_monitor_creation_exactly_one_wins.py", "service": "networkmonitor"} {"check_id": "networkmonitor.concurrent-tag-writes-converge", "deployments": [], "key": "networkmonitor/concurrent-tag-writes-converge", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:ListTagsForResource", "networkmonitor:TagResource"], "path": "behavioral/networkmonitor/check_concurrent_tag_writes_converge.py", "service": "networkmonitor"} {"check_id": "networkmonitor.create-monitor-duplicate-name-conflict-rejected", "deployments": [], "key": "networkmonitor/create-monitor-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor"], "path": "behavioral/networkmonitor/check_create_monitor_duplicate_name_conflict_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.create-monitor-initial-state-pending", "deployments": [], "key": "networkmonitor/create-monitor-initial-state-pending", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor"], "path": "behavioral/networkmonitor/check_create_monitor_initial_state_pending.py", "service": "networkmonitor"} {"check_id": "networkmonitor.create-monitor-invalid-name-pattern-rejected", "deployments": [], "key": "networkmonitor/create-monitor-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:ListMonitors"], "path": "behavioral/networkmonitor/check_create_monitor_invalid_name_pattern_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.create-monitor-with-embedded-probe-reflects-in-get-monitor", "deployments": [], "key": "networkmonitor/create-monitor-with-embedded-probe-reflects-in-get-monitor", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_create_monitor_with_embedded_probe_reflects_in_get_monitor.py", "service": "networkmonitor"} {"check_id": "networkmonitor.create-monitor-with-embedded-probes", "deployments": [], "key": "networkmonitor/create-monitor-with-embedded-probes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_create_monitor_with_embedded_probes.py", "service": "networkmonitor"} {"check_id": "networkmonitor.create-probe-nonexistent-monitor-not-found", "deployments": [], "key": "networkmonitor/create-probe-nonexistent-monitor-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_create_probe_nonexistent_monitor_not_found.py", "service": "networkmonitor"} {"check_id": "networkmonitor.create-probe-tcp-missing-port-rejected", "deployments": [], "key": "networkmonitor/create-probe-tcp-missing-port-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_create_probe_tcp_missing_port_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.delete-monitor-not-found", "deployments": [], "key": "networkmonitor/delete-monitor-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor"], "path": "behavioral/networkmonitor/check_delete_monitor_not_found.py", "service": "networkmonitor"} {"check_id": "networkmonitor.delete-monitor-removes-from-list-monitors", "deployments": [], "key": "networkmonitor/delete-monitor-removes-from-list-monitors", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor", "networkmonitor:ListMonitors", "networkmonitor:UpdateMonitor"], "path": "behavioral/networkmonitor/check_delete_monitor_removes_from_list_monitors.py", "service": "networkmonitor"} {"check_id": "networkmonitor.delete-monitor-with-active-probe-rejected", "deployments": [], "key": "networkmonitor/delete-monitor-with-active-probe-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_delete_monitor_with_active_probe_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.delete-probe-becomes-unreachable", "deployments": [], "key": "networkmonitor/delete-probe-becomes-unreachable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "networkmonitor:UpdateProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_delete_probe_becomes_unreachable.py", "service": "networkmonitor"} {"check_id": "networkmonitor.delete-probe-while-pending-rejected", "deployments": [], "key": "networkmonitor/delete-probe-while-pending-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_delete_probe_while_pending_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.get-monitor-not-found", "deployments": [], "key": "networkmonitor/get-monitor-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor"], "path": "behavioral/networkmonitor/check_get_monitor_not_found.py", "service": "networkmonitor"} {"check_id": "networkmonitor.get-probe-not-found", "deployments": [], "key": "networkmonitor/get-probe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_get_probe_not_found.py", "service": "networkmonitor"} {"check_id": "networkmonitor.list-monitors-max-results-validation-error", "deployments": [], "key": "networkmonitor/list-monitors-max-results-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:ListMonitors"], "path": "behavioral/networkmonitor/check_list_monitors_max_results_validation_error.py", "service": "networkmonitor"} {"check_id": "networkmonitor.list-monitors-pagination", "deployments": [], "key": "networkmonitor/list-monitors-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:ListMonitors"], "path": "behavioral/networkmonitor/check_list_monitors_pagination.py", "service": "networkmonitor"} {"check_id": "networkmonitor.list-monitors-state-filter", "deployments": [], "key": "networkmonitor/list-monitors-state-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor", "networkmonitor:ListMonitors"], "path": "behavioral/networkmonitor/check_list_monitors_state_filter.py", "service": "networkmonitor"} {"check_id": "networkmonitor.list-tags-for-resource-probe-tags", "deployments": [], "key": "networkmonitor/list-tags-for-resource-probe-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_list_tags_for_resource_probe_tags.py", "service": "networkmonitor"} {"check_id": "networkmonitor.missing-iam-permission-create-monitor-rejected", "deployments": [], "key": "networkmonitor/missing-iam-permission-create-monitor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_missing_iam_permission_create_monitor_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.monitor-aggregation-period-below-minimum-rejected", "deployments": [], "key": "networkmonitor/monitor-aggregation-period-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor", "networkmonitor:ListMonitors"], "path": "behavioral/networkmonitor/check_monitor_aggregation_period_below_minimum_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.monitor-aggregation-period-default-sixty", "deployments": [], "key": "networkmonitor/monitor-aggregation-period-default-sixty", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor"], "path": "behavioral/networkmonitor/check_monitor_aggregation_period_default_sixty.py", "service": "networkmonitor"} {"check_id": "networkmonitor.monitor-name-length-boundary-rejected", "deployments": [], "key": "networkmonitor/monitor-name-length-boundary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor"], "path": "behavioral/networkmonitor/check_monitor_name_length_boundary_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.monitor-reaches-active-without-probes", "deployments": [], "key": "networkmonitor/monitor-reaches-active-without-probes", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_monitor_reaches_active_without_probes.py", "service": "networkmonitor"} {"check_id": "networkmonitor.probe-id-pattern-validation-error", "deployments": [], "key": "networkmonitor/probe-id-pattern-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetProbe"], "path": "behavioral/networkmonitor/check_probe_id_pattern_validation_error.py", "service": "networkmonitor"} {"check_id": "networkmonitor.probe-invalid-source-arn-rejected", "deployments": [], "key": "networkmonitor/probe-invalid-source-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_probe_invalid_source_arn_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.probe-modified-at-updates-on-change", "deployments": [], "key": "networkmonitor/probe-modified-at-updates-on-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "networkmonitor:UpdateProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_probe_modified_at_updates_on_change.py", "service": "networkmonitor"} {"check_id": "networkmonitor.probe-native-round-trip-metrics", "deployments": [], "key": "networkmonitor/probe-unanswered-destination-reports-full-packet-loss", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "ec2:AllocateAddress", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteRouteTable", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ReleaseAddress", "networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_probe_unanswered_destination_reports_full_packet_loss.py", "service": "networkmonitor"} {"check_id": "networkmonitor.probes-per-subnet-quota-exceeded-rejected", "deployments": [], "key": "networkmonitor/probes-per-subnet-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetMonitor", "networkmonitor:GetProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_probes_per_subnet_quota_exceeded_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.tag-operations-nonexistent-arn-not-found", "deployments": [], "key": "networkmonitor/tag-operations-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:ListTagsForResource", "networkmonitor:TagResource", "networkmonitor:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_tag_operations_nonexistent_arn_not_found.py", "service": "networkmonitor"} {"check_id": "networkmonitor.tag-resource-round-trip", "deployments": [], "key": "networkmonitor/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:ListTagsForResource", "networkmonitor:TagResource"], "path": "behavioral/networkmonitor/check_tag_resource_round_trip.py", "service": "networkmonitor"} {"check_id": "networkmonitor.untag-resource-removes-tag", "deployments": [], "key": "networkmonitor/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:ListTagsForResource", "networkmonitor:UntagResource"], "path": "behavioral/networkmonitor/check_untag_resource_removes_tag.py", "service": "networkmonitor"} {"check_id": "networkmonitor.update-monitor-aggregation-period-persists", "deployments": [], "key": "networkmonitor/update-monitor-aggregation-period-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor", "networkmonitor:UpdateMonitor"], "path": "behavioral/networkmonitor/check_update_monitor_aggregation_period_persists.py", "service": "networkmonitor"} {"check_id": "networkmonitor.update-monitor-invalid-aggregation-period-rejected", "deployments": [], "key": "networkmonitor/update-monitor-invalid-aggregation-period-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor", "networkmonitor:UpdateMonitor"], "path": "behavioral/networkmonitor/check_update_monitor_invalid_aggregation_period_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.update-monitor-not-found", "deployments": [], "key": "networkmonitor/update-monitor-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["networkmonitor:CreateMonitor", "networkmonitor:DeleteMonitor", "networkmonitor:GetMonitor", "networkmonitor:UpdateMonitor"], "path": "behavioral/networkmonitor/check_update_monitor_not_found.py", "service": "networkmonitor"} {"check_id": "networkmonitor.update-probe-deactivate-reactivate-state", "deployments": [], "key": "networkmonitor/update-probe-deactivate-reactivate-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "networkmonitor:UpdateProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_update_probe_deactivate_reactivate_state.py", "service": "networkmonitor"} {"check_id": "networkmonitor.update-probe-invalid-state-value-rejected", "deployments": [], "key": "networkmonitor/update-probe-invalid-state-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "networkmonitor:UpdateProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_update_probe_invalid_state_value_rejected.py", "service": "networkmonitor"} {"check_id": "networkmonitor.update-probe-persists-packet-size", "deployments": [], "key": "networkmonitor/update-probe-persists-packet-size", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "networkmonitor:UpdateProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_update_probe_persists_packet_size.py", "service": "networkmonitor"} {"check_id": "networkmonitor.update-probe-tcp-missing-port-rejected", "deployments": [], "key": "networkmonitor/update-probe-tcp-missing-port-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "networkmonitor:CreateMonitor", "networkmonitor:CreateProbe", "networkmonitor:DeleteMonitor", "networkmonitor:DeleteProbe", "networkmonitor:GetProbe", "networkmonitor:UpdateProbe", "sts:GetCallerIdentity"], "path": "behavioral/networkmonitor/check_update_probe_tcp_missing_port_rejected.py", "service": "networkmonitor"} {"check_id": "notifications.associate-channel-duplicate-association-is-idempotent", "deployments": [], "key": "notifications/associate-channel-duplicate-association-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:AssociateChannel", "notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:DisassociateChannel", "notifications:ListChannels", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact"], "path": "behavioral/notifications/check_associate_channel_duplicate_association_is_idempotent.py", "service": "notifications"} {"check_id": "notifications.associate-channel-invalid-arn-pattern-rejected", "deployments": [], "key": "notifications/associate-channel-invalid-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:AssociateChannel", "notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:DisassociateChannel", "notifications:ListChannels", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact"], "path": "behavioral/notifications/check_associate_channel_invalid_arn_pattern_rejected.py", "service": "notifications"} {"check_id": "notifications.associate-channel-then-list-channels-shows-association", "deployments": [], "key": "notifications/associate-channel-then-list-channels-shows-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:AssociateChannel", "notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:DisassociateChannel", "notifications:ListChannels", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact"], "path": "behavioral/notifications/check_associate_channel_then_list_channels_shows_association.py", "service": "notifications"} {"check_id": "notifications.cloudwatch-alarm-state-change-delivers-notification-event", "deployments": [], "key": "notifications/cloudwatch-alarm-state-change-delivers-notification-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:GetEventRule", "notifications:GetNotificationEvent", "notifications:ListNotificationEvents", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_cloudwatch_alarm_state_change_delivers_notification_event.py", "service": "notifications"} {"check_id": "notifications.concurrent-associate-channel-exactly-one-wins", "deployments": [], "key": "notifications/concurrent-associate-channel-exactly-one-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:AssociateChannel", "notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:DisassociateChannel", "notifications:ListChannels", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact"], "path": "behavioral/notifications/check_concurrent_associate_channel_exactly_one_wins.py", "service": "notifications"} {"check_id": "notifications.concurrent-event-rule-creation-yields-distinct-rules", "deployments": [], "key": "notifications/concurrent-event-rule-creation-yields-distinct-rules", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:ListEventRules", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_concurrent_event_rule_creation_yields_distinct_rules.py", "service": "notifications"} {"check_id": "notifications.create-event-rule-invalid-source-pattern-rejected", "deployments": [], "key": "notifications/create-event-rule-invalid-source-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:ListEventRules", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_create_event_rule_invalid_source_pattern_rejected.py", "service": "notifications"} {"check_id": "notifications.create-event-rule-nonexistent-configuration-not-found", "deployments": [], "key": "notifications/create-event-rule-nonexistent-configuration-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:ListEventRules", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "sts:GetCallerIdentity"], "path": "behavioral/notifications/check_create_event_rule_nonexistent_configuration_not_found.py", "service": "notifications"} {"check_id": "notifications.create-notification-configuration-invalid-name-pattern-rejected", "deployments": [], "key": "notifications/create-notification-configuration-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:GetNotificationConfiguration", "notifications:ListNotificationConfigurations", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_create_notification_configuration_invalid_name_pattern_rejected.py", "service": "notifications"} {"check_id": "notifications.delete-event-rule-removes-it", "deployments": [], "key": "notifications/delete-event-rule-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:GetEventRule", "notifications:ListEventRules", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notifications:UpdateEventRule"], "path": "behavioral/notifications/check_delete_event_rule_removes_it.py", "service": "notifications"} {"check_id": "notifications.disassociate-channel-not-associated-rejected", "deployments": [], "key": "notifications/disassociate-channel-not-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:AssociateChannel", "notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:DisassociateChannel", "notifications:ListChannels", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact"], "path": "behavioral/notifications/check_disassociate_channel_not_associated_rejected.py", "service": "notifications"} {"check_id": "notifications.disassociate-channel-removes-association-and-allows-reassociation", "deployments": [], "key": "notifications/disassociate-channel-removes-association-and-allows-reassociation", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:AssociateChannel", "notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:DisassociateChannel", "notifications:ListChannels", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact"], "path": "behavioral/notifications/check_disassociate_channel_removes_association_and_allows_reassociation.py", "service": "notifications"} {"check_id": "notifications.event-rule-creating-transitions-to-active", "deployments": [], "key": "notifications/event-rule-creating-transitions-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:GetEventRule", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_event_rule_creating_transitions_to_active.py", "service": "notifications"} {"check_id": "notifications.event-rule-update-regions-persisted", "deployments": [], "key": "notifications/event-rule-update-regions-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:GetEventRule", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notifications:UpdateEventRule"], "path": "behavioral/notifications/check_event_rule_update_regions_persisted.py", "service": "notifications"} {"check_id": "notifications.get-event-rule-not-found", "deployments": [], "key": "notifications/get-event-rule-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:GetEventRule", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notifications:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/notifications/check_get_event_rule_not_found.py", "service": "notifications"} {"check_id": "notifications.get-managed-notification-configuration-matches-list-entry", "deployments": [], "key": "notifications/get-managed-notification-configuration-matches-list-entry", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:GetManagedNotificationConfiguration", "notifications:ListManagedNotificationConfigurations"], "path": "behavioral/notifications/check_get_managed_notification_configuration_matches_list_entry.py", "service": "notifications"} {"check_id": "notifications.get-notification-configuration-invalid-arn-validation", "deployments": [], "key": "notifications/get-notification-configuration-invalid-arn-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:GetNotificationConfiguration", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_get_notification_configuration_invalid_arn_validation.py", "service": "notifications"} {"check_id": "notifications.get-notifications-access-for-organization-reports-status", "deployments": [], "key": "notifications/get-notifications-access-for-organization-reports-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:GetNotificationsAccessForOrganization", "notifications:ListNotificationConfigurations"], "path": "behavioral/notifications/check_get_notifications_access_for_organization_reports_status.py", "service": "notifications"} {"check_id": "notifications.list-event-rules-reflects-created-rule", "deployments": [], "key": "notifications/list-event-rules-reflects-created-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:CreateEventRule", "notifications:CreateNotificationConfiguration", "notifications:DeleteEventRule", "notifications:DeleteNotificationConfiguration", "notifications:ListEventRules", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_list_event_rules_reflects_created_rule.py", "service": "notifications"} {"check_id": "notifications.list-notification-configurations-filters-by-status", "deployments": [], "key": "notifications/list-notification-configurations-filters-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:ListNotificationConfigurations", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_list_notification_configurations_filters_by_status.py", "service": "notifications"} {"check_id": "notifications.list-notification-hubs-maxresults-out-of-range-rejected", "deployments": [], "key": "notifications/list-notification-hubs-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:ListNotificationHubs"], "path": "behavioral/notifications/check_list_notification_hubs_maxresults_out_of_range_rejected.py", "service": "notifications"} {"check_id": "notifications.notification-configuration-lifecycle-create-active-delete", "deployments": [], "key": "notifications/notification-configuration-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:GetNotificationConfiguration", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_notification_configuration_lifecycle_create_active_delete.py", "service": "notifications"} {"check_id": "notifications.notification-hub-register-active-deregister-removes-it", "deployments": [], "key": "notifications/notification-hub-register-active-deregister-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:DeregisterNotificationHub", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub"], "path": "behavioral/notifications/check_notification_hub_register_active_deregister_removes_it.py", "service": "notifications"} {"check_id": "notifications.tag-resource-exceeds-max-tags-rejected", "deployments": [], "key": "notifications/tag-resource-exceeds-max-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:ListNotificationHubs", "notifications:ListTagsForResource", "notifications:RegisterNotificationHub", "notifications:TagResource"], "path": "behavioral/notifications/check_tag_resource_exceeds_max_tags_rejected.py", "service": "notifications"} {"check_id": "notifications.tag-resource-list-tags-untag-roundtrip", "deployments": [], "key": "notifications/tag-resource-list-tags-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:ListNotificationHubs", "notifications:ListTagsForResource", "notifications:RegisterNotificationHub", "notifications:TagResource", "notifications:UntagResource"], "path": "behavioral/notifications/check_tag_resource_list_tags_untag_roundtrip.py", "service": "notifications"} {"check_id": "notifications.update-notification-configuration-changes-description", "deployments": [], "key": "notifications/update-notification-configuration-changes-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["notifications:CreateNotificationConfiguration", "notifications:DeleteNotificationConfiguration", "notifications:GetNotificationConfiguration", "notifications:ListNotificationHubs", "notifications:RegisterNotificationHub", "notifications:UpdateNotificationConfiguration"], "path": "behavioral/notifications/check_update_notification_configuration_changes_description.py", "service": "notifications"} {"check_id": "notificationscontacts.activate-without-pending-code-rejected", "deployments": [], "key": "notificationscontacts/activate-without-pending-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notificationscontacts:ActivateEmailContact", "notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact", "notificationscontacts:SendActivationCode", "notificationscontacts:TagResource"], "path": "behavioral/notificationscontacts/check_activate_without_pending_code_rejected.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.activate-wrong-code-state-conflict-rejected", "deployments": [], "key": "notificationscontacts/activate-wrong-code-state-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notificationscontacts:ActivateEmailContact", "notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact", "notificationscontacts:SendActivationCode"], "path": "behavioral/notificationscontacts/check_activate_wrong_code_state_conflict_rejected.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.concurrent-contact-creation-no-lost-writes", "deployments": [], "key": "notificationscontacts/concurrent-contact-creation-no-lost-writes", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListEmailContacts"], "path": "behavioral/notificationscontacts/check_concurrent_contact_creation_no_lost_writes.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.concurrent-tagging-distinct-keys-preserved", "deployments": [], "key": "notificationscontacts/concurrent-tagging-distinct-keys-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListTagsForResource", "notificationscontacts:TagResource"], "path": "behavioral/notificationscontacts/check_concurrent_tagging_distinct_keys_preserved.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.create-email-contact-invalid-email-rejected", "deployments": [], "key": "notificationscontacts/create-email-contact-invalid-email-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact", "notificationscontacts:ListEmailContacts"], "path": "behavioral/notificationscontacts/check_create_email_contact_invalid_email_rejected.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.create-email-contact-name-length-exceeded-rejected", "deployments": [], "key": "notificationscontacts/create-email-contact-name-length-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact", "notificationscontacts:ListEmailContacts"], "path": "behavioral/notificationscontacts/check_create_email_contact_name_length_exceeded_rejected.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.create-email-contact-returns-valid-arn", "deployments": [], "key": "notificationscontacts/create-email-contact-returns-valid-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact"], "path": "behavioral/notificationscontacts/check_create_email_contact_returns_valid_arn.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.create-email-contact-with-tags-at-creation", "deployments": [], "key": "notificationscontacts/create-email-contact-with-tags-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListTagsForResource"], "path": "behavioral/notificationscontacts/check_create_email_contact_with_tags_at_creation.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.delete-email-contact-removes-resource", "deployments": [], "key": "notificationscontacts/delete-email-contact-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact"], "path": "behavioral/notificationscontacts/check_delete_email_contact_removes_resource.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.delete-nonexistent-contact-not-found", "deployments": [], "key": "notificationscontacts/delete-nonexistent-contact-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact", "sts:GetCallerIdentity"], "path": "behavioral/notificationscontacts/check_delete_nonexistent_contact_not_found.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.email-contact-identity-stable-after-tag-operations", "deployments": [], "key": "notificationscontacts/email-contact-identity-stable-after-tag-operations", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact", "notificationscontacts:TagResource", "notificationscontacts:UntagResource"], "path": "behavioral/notificationscontacts/check_email_contact_identity_stable_after_tag_operations.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.get-email-contact-matches-created-fields", "deployments": [], "key": "notificationscontacts/get-email-contact-matches-created-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact"], "path": "behavioral/notificationscontacts/check_get_email_contact_matches_created_fields.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.list-email-contacts-pagination-completeness", "deployments": [], "key": "notificationscontacts/list-email-contacts-pagination-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListEmailContacts"], "path": "behavioral/notificationscontacts/check_list_email_contacts_pagination_completeness.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.list-email-contacts-reflects-deletion", "deployments": [], "key": "notificationscontacts/list-email-contacts-reflects-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListEmailContacts"], "path": "behavioral/notificationscontacts/check_list_email_contacts_reflects_deletion.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.list-tags-for-resource-empty-when-untagged", "deployments": [], "key": "notificationscontacts/list-tags-for-resource-empty-when-untagged", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListTagsForResource"], "path": "behavioral/notificationscontacts/check_list_tags_for_resource_empty_when_untagged.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.new-email-contact-starts-inactive", "deployments": [], "key": "notificationscontacts/new-email-contact-starts-inactive", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:GetEmailContact"], "path": "behavioral/notificationscontacts/check_new_email_contact_starts_inactive.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.tag-resource-exceeds-max-entries-rejected", "deployments": [], "key": "notificationscontacts/tag-resource-exceeds-max-entries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListTagsForResource", "notificationscontacts:TagResource"], "path": "behavioral/notificationscontacts/check_tag_resource_exceeds_max_entries_rejected.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.tag-resource-then-list-tags-roundtrip", "deployments": [], "key": "notificationscontacts/tag-resource-then-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListTagsForResource", "notificationscontacts:TagResource"], "path": "behavioral/notificationscontacts/check_tag_resource_then_list_tags_roundtrip.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.untag-resource-nonexistent-key-noop", "deployments": [], "key": "notificationscontacts/untag-resource-nonexistent-key-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListTagsForResource", "notificationscontacts:TagResource", "notificationscontacts:UntagResource"], "path": "behavioral/notificationscontacts/check_untag_resource_nonexistent_key_noop.py", "service": "notificationscontacts"} {"check_id": "notificationscontacts.untag-resource-removes-specific-tag", "deployments": [], "key": "notificationscontacts/untag-resource-removes-specific-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["notificationscontacts:CreateEmailContact", "notificationscontacts:DeleteEmailContact", "notificationscontacts:ListTagsForResource", "notificationscontacts:TagResource", "notificationscontacts:UntagResource"], "path": "behavioral/notificationscontacts/check_untag_resource_removes_specific_tag.py", "service": "notificationscontacts"} {"check_id": "nova-act.access-denied-without-permission-rejected", "deployments": [], "key": "nova-act/access-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "nova-act:CreateWorkflowDefinition", "nova-act:DeleteWorkflowDefinition", "nova-act:GetWorkflowDefinition", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/nova-act/check_access_denied_without_permission_rejected.py", "service": "nova-act"} {"check_id": "nova-act.act-create-initial-status-running", "deployments": [], "key": "nova-act/act-create-initial-status-running", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateAct", "nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListActs", "nova-act:ListModels"], "path": "behavioral/nova-act/check_act_create_initial_status_running.py", "service": "nova-act"} {"check_id": "nova-act.act-update-lifecycle-running-to-succeeded", "deployments": [], "key": "nova-act/act-update-lifecycle-running-to-succeeded", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateAct", "nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListActs", "nova-act:ListModels", "nova-act:UpdateAct"], "path": "behavioral/nova-act/check_act_update_lifecycle_running_to_succeeded.py", "service": "nova-act"} {"check_id": "nova-act.concurrent-create-workflow-definition-same-name-race", "deployments": [], "key": "nova-act/concurrent-create-workflow-definition-same-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:DeleteWorkflowDefinition", "nova-act:ListWorkflowDefinitions"], "path": "behavioral/nova-act/check_concurrent_create_workflow_definition_same_name_race.py", "service": "nova-act"} {"check_id": "nova-act.concurrent-update-workflow-run-terminal-status-race", "deployments": [], "key": "nova-act/concurrent-update-workflow-run-terminal-status-race", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:GetWorkflowRun", "nova-act:ListModels", "nova-act:UpdateWorkflowRun"], "path": "behavioral/nova-act/check_concurrent_update_workflow_run_terminal_status_race.py", "service": "nova-act"} {"check_id": "nova-act.create-session-idempotent-same-token", "deployments": [], "key": "nova-act/create-session-idempotent-same-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListModels", "nova-act:ListSessions"], "path": "behavioral/nova-act/check_create_session_idempotent_same_token.py", "service": "nova-act"} {"check_id": "nova-act.create-workflow-definition-duplicate-name-rejected", "deployments": [], "key": "nova-act/create-workflow-definition-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:DeleteWorkflowDefinition", "nova-act:GetWorkflowDefinition"], "path": "behavioral/nova-act/check_create_workflow_definition_duplicate_name_rejected.py", "service": "nova-act"} {"check_id": "nova-act.create-workflow-definition-idempotent-same-token", "deployments": [], "key": "nova-act/create-workflow-definition-idempotent-same-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:DeleteWorkflowDefinition", "nova-act:GetWorkflowDefinition"], "path": "behavioral/nova-act/check_create_workflow_definition_idempotent_same_token.py", "service": "nova-act"} {"check_id": "nova-act.create-workflow-definition-invalid-name-pattern-rejected", "deployments": [], "key": "nova-act/create-workflow-definition-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:DeleteWorkflowDefinition", "nova-act:GetWorkflowDefinition", "nova-act:ListWorkflowDefinitions"], "path": "behavioral/nova-act/check_create_workflow_definition_invalid_name_pattern_rejected.py", "service": "nova-act"} {"check_id": "nova-act.delete-workflow-definition-with-active-run-rejected", "deployments": [], "key": "nova-act/delete-workflow-definition-with-active-run-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:GetWorkflowDefinition", "nova-act:GetWorkflowRun", "nova-act:ListModels", "nova-act:ListWorkflowDefinitions"], "path": "behavioral/nova-act/check_delete_workflow_definition_with_active_run_rejected.py", "service": "nova-act"} {"check_id": "nova-act.get-workflow-definition-not-found", "deployments": [], "key": "nova-act/get-workflow-definition-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:DeleteWorkflowDefinition", "nova-act:GetWorkflowDefinition"], "path": "behavioral/nova-act/check_get_workflow_definition_not_found.py", "service": "nova-act"} {"check_id": "nova-act.invoke-act-step-call-id-mismatch-rejected", "deployments": [], "key": "nova-act/invoke-act-step-call-id-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["nova-act:CreateAct", "nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:InvokeActStep", "nova-act:ListModels"], "path": "behavioral/nova-act/check_invoke_act_step_call_id_mismatch_rejected.py", "service": "nova-act"} {"check_id": "nova-act.list-acts-filters-by-session-id", "deployments": [], "key": "nova-act/list-acts-filters-by-session-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateAct", "nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListActs", "nova-act:ListModels"], "path": "behavioral/nova-act/check_list_acts_filters_by_session_id.py", "service": "nova-act"} {"check_id": "nova-act.list-models-returns-supported-models", "deployments": [], "key": "nova-act/list-models-returns-supported-models", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:ListModels"], "path": "behavioral/nova-act/check_list_models_returns_supported_models.py", "service": "nova-act"} {"check_id": "nova-act.list-workflow-definitions-pagination-maxresults", "deployments": [], "key": "nova-act/list-workflow-definitions-pagination-maxresults", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:DeleteWorkflowDefinition", "nova-act:ListWorkflowDefinitions"], "path": "behavioral/nova-act/check_list_workflow_definitions_pagination_maxresults.py", "service": "nova-act"} {"check_id": "nova-act.list-workflow-runs-reflects-status-transition", "deployments": [], "key": "nova-act/list-workflow-runs-reflects-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListModels", "nova-act:ListWorkflowRuns", "nova-act:UpdateWorkflowRun"], "path": "behavioral/nova-act/check_list_workflow_runs_reflects_status_transition.py", "service": "nova-act"} {"check_id": "nova-act.session-create-and-list-under-workflow-run", "deployments": [], "key": "nova-act/session-create-and-list-under-workflow-run", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListModels", "nova-act:ListSessions"], "path": "behavioral/nova-act/check_session_create_and_list_under_workflow_run.py", "service": "nova-act"} {"check_id": "nova-act.session-cross-workflow-run-isolation-rejected", "deployments": [], "key": "nova-act/session-cross-workflow-run-isolation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateAct", "nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListActs", "nova-act:ListModels", "nova-act:ListSessions"], "path": "behavioral/nova-act/check_session_cross_workflow_run_isolation_rejected.py", "service": "nova-act"} {"check_id": "nova-act.update-act-after-terminal-status-rejected", "deployments": [], "key": "nova-act/update-act-after-terminal-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateAct", "nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListActs", "nova-act:ListModels", "nova-act:UpdateAct"], "path": "behavioral/nova-act/check_update_act_after_terminal_status_rejected.py", "service": "nova-act"} {"check_id": "nova-act.update-act-invalid-status-enum-rejected", "deployments": [], "key": "nova-act/update-act-invalid-status-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["nova-act:CreateAct", "nova-act:CreateSession", "nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:ListActs", "nova-act:ListModels", "nova-act:UpdateAct"], "path": "behavioral/nova-act/check_update_act_invalid_status_enum_rejected.py", "service": "nova-act"} {"check_id": "nova-act.workflow-definition-delete-transitions-to-deleting", "deployments": [], "key": "nova-act/workflow-definition-delete-transitions-to-deleting", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:DeleteWorkflowDefinition", "nova-act:GetWorkflowDefinition"], "path": "behavioral/nova-act/check_workflow_definition_delete_transitions_to_deleting.py", "service": "nova-act"} {"check_id": "nova-act.workflow-run-update-to-succeeded-sets-ended-at", "deployments": [], "key": "nova-act/workflow-run-update-to-succeeded-sets-ended-at", "labels": ["axis:happy-path", "plane:control"], "operations": ["nova-act:CreateWorkflowDefinition", "nova-act:CreateWorkflowRun", "nova-act:DeleteWorkflowDefinition", "nova-act:DeleteWorkflowRun", "nova-act:GetWorkflowRun", "nova-act:ListModels", "nova-act:UpdateWorkflowRun"], "path": "behavioral/nova-act/check_workflow_run_update_to_succeeded_sets_ended_at.py", "service": "nova-act"} {"check_id": "oam.concurrent-delete-sink-race", "deployments": [], "key": "oam/concurrent-delete-sink-race", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSink"], "path": "behavioral/oam/check_concurrent_delete_sink_race.py", "service": "oam"} {"check_id": "oam.create-link-duplicate-already-linked-conflict-rejected", "deployments": [], "key": "oam/create-link-duplicate-already-linked-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateLink", "oam:CreateSink", "oam:DeleteSink", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_create_link_duplicate_already_linked_conflict_rejected.py", "service": "oam"} {"check_id": "oam.create-link-invalid-resource-type-effect-absent", "deployments": [], "key": "oam/create-link-invalid-resource-type-effect-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateLink", "oam:CreateSink", "oam:DeleteSink", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_create_link_invalid_resource_type_effect_absent.py", "service": "oam"} {"check_id": "oam.create-link-invalid-sink-identifier-effect-absent", "deployments": [], "key": "oam/create-link-invalid-sink-identifier-effect-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateLink", "oam:CreateSink", "oam:DeleteSink", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_create_link_invalid_sink_identifier_effect_absent.py", "service": "oam"} {"check_id": "oam.create-link-same-account-sink-rejected-regardless-of-link-configuration", "deployments": [], "key": "oam/create-link-same-account-sink-rejected-regardless-of-link-configuration", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateLink", "oam:CreateSink", "oam:DeleteSink", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_create_link_same_account_sink_rejected_regardless_of_link_configuration.py", "service": "oam"} {"check_id": "oam.create-sink-duplicate-name-conflict-effect-absent", "deployments": [], "key": "oam/create-sink-duplicate-name-conflict-effect-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSink"], "path": "behavioral/oam/check_create_sink_duplicate_name_conflict_effect_absent.py", "service": "oam"} {"check_id": "oam.create-sink-invalid-name-pattern-effect-absent", "deployments": [], "key": "oam/create-sink-invalid-name-pattern-effect-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSink"], "path": "behavioral/oam/check_create_sink_invalid_name_pattern_effect_absent.py", "service": "oam"} {"check_id": "oam.delete-link-twice-not-found-after-deletion", "deployments": [], "key": "oam/delete-link-twice-not-found-after-deletion", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteLink", "oam:DeleteSink", "oam:ListLinks", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_delete_link_twice_not_found_after_deletion.py", "service": "oam"} {"check_id": "oam.delete-sink-with-attached-link-conflict-rejected", "deployments": [], "key": "oam/delete-sink-with-attached-link-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSink", "oam:GetSinkPolicy", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_delete_sink_with_attached_link_conflict_rejected.py", "service": "oam"} {"check_id": "oam.get-sink-include-tags-tracks-tag-and-untag", "deployments": [], "key": "oam/get-sink-include-tags-tracks-tag-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSink", "oam:ListTagsForResource", "oam:TagResource", "oam:UntagResource"], "path": "behavioral/oam/check_get_sink_include_tags_tracks_tag_and_untag.py", "service": "oam"} {"check_id": "oam.get-sink-policy-absent-before-put", "deployments": [], "key": "oam/get-sink-policy-absent-before-put", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSinkPolicy", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_get_sink_policy_absent_before_put.py", "service": "oam"} {"check_id": "oam.link-create-with-sink-policy-full-lifecycle", "deployments": [], "key": "oam/link-create-with-sink-policy-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSink", "oam:GetSinkPolicy", "oam:ListTagsForResource", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_link_create_with_sink_policy_full_lifecycle.py", "service": "oam"} {"check_id": "oam.link-visible-in-attached-links-and-removed-after-delete", "deployments": [], "key": "oam/link-visible-in-attached-links-and-removed-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:ListAttachedLinks", "oam:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_link_visible_in_attached_links_and_removed_after_delete.py", "service": "oam"} {"check_id": "oam.list-tags-for-resource-reflects-tag-and-untag", "deployments": [], "key": "oam/list-tags-for-resource-reflects-tag-and-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:ListTagsForResource", "oam:TagResource", "oam:UntagResource"], "path": "behavioral/oam/check_list_tags_for_resource_reflects_tag_and_untag.py", "service": "oam"} {"check_id": "oam.put-sink-policy-invalid-json-effect-absent", "deployments": [], "key": "oam/put-sink-policy-invalid-json-effect-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSinkPolicy", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_put_sink_policy_invalid_json_effect_absent.py", "service": "oam"} {"check_id": "oam.put-sink-policy-round-trip", "deployments": [], "key": "oam/put-sink-policy-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSinkPolicy", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_put_sink_policy_round_trip.py", "service": "oam"} {"check_id": "oam.put-sink-policy-wildcard-principal-rejected", "deployments": [], "key": "oam/put-sink-policy-wildcard-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSinkPolicy", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_put_sink_policy_wildcard_principal_rejected.py", "service": "oam"} {"check_id": "oam.sink-create-get-list-delete-lifecycle", "deployments": [], "key": "oam/sink-create-get-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSink", "oam:PutSinkPolicy", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_sink_create_get_list_delete_lifecycle.py", "service": "oam"} {"check_id": "oam.tag-resource-invalid-arn-effect-absent", "deployments": [], "key": "oam/tag-resource-invalid-arn-effect-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:ListTagsForResource", "oam:TagResource"], "path": "behavioral/oam/check_tag_resource_invalid_arn_effect_absent.py", "service": "oam"} {"check_id": "oam.tag-resource-reserved-aws-prefix-rejected", "deployments": [], "key": "oam/tag-resource-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:GetSink", "oam:ListTagsForResource", "oam:TagResource", "oam:UntagResource"], "path": "behavioral/oam/check_tag_resource_reserved_aws_prefix_rejected.py", "service": "oam"} {"check_id": "oam.tag-resource-too-many-tags-rejected", "deployments": [], "key": "oam/tag-resource-too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteSink", "oam:ListTagsForResource", "oam:TagResource", "oam:UntagResource"], "path": "behavioral/oam/check_tag_resource_too_many_tags_rejected.py", "service": "oam"} {"check_id": "oam.update-link-nonexistent-rejected", "deployments": [], "key": "oam/update-link-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:CreateSink", "oam:DeleteLink", "oam:DeleteSink", "oam:GetLink", "oam:GetSink", "oam:TagResource", "oam:UpdateLink", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_update_link_nonexistent_rejected.py", "service": "oam"} {"check_id": "oam.update-link-resource-types-replaces-not-merges", "deployments": [], "key": "oam/update-link-resource-types-replaces-not-merges", "labels": ["axis:rejection", "plane:control"], "operations": ["oam:UpdateLink", "sts:GetCallerIdentity"], "path": "behavioral/oam/check_update_link_resource_types_replaces_not_merges.py", "service": "oam"} {"check_id": "observabilityadmin.centralization-rule-for-organization-lifecycle", "deployments": [], "key": "observabilityadmin/centralization-rule-for-organization-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["observabilityadmin:CreateCentralizationRuleForOrganization", "observabilityadmin:DeleteCentralizationRuleForOrganization", "observabilityadmin:GetCentralizationRuleForOrganization", "observabilityadmin:ListCentralizationRulesForOrganization", "observabilityadmin:ListTelemetryPipelines"], "path": "behavioral/observabilityadmin/check_centralization_rule_for_organization_lifecycle.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.get-telemetry-rule-not-found", "deployments": [], "key": "observabilityadmin/get-telemetry-rule-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "observabilityadmin:CreateTelemetryRule", "observabilityadmin:DeleteTelemetryRule", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:GetTelemetryRule", "observabilityadmin:StartTelemetryEvaluation"], "path": "behavioral/observabilityadmin/check_get_telemetry_rule_not_found.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.list-resource-telemetry-resource-type-filter-invariant", "deployments": [], "key": "observabilityadmin/list-resource-telemetry-resource-type-filter-invariant", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeNetworkInterfaces", "ec2:RunInstances", "ec2:TerminateInstances", "iam:CreateServiceLinkedRole", "iam:GetRole", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:ListResourceTelemetry", "observabilityadmin:StartTelemetryEvaluation", "observabilityadmin:StopTelemetryEvaluation", "ssm:GetParameter"], "path": "behavioral/observabilityadmin/check_list_resource_telemetry_resource_type_filter_invariant.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.list-telemetry-pipelines-pagination", "deployments": [], "key": "observabilityadmin/list-telemetry-pipelines-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "observabilityadmin:CreateTelemetryPipeline", "observabilityadmin:DeleteTelemetryPipeline", "observabilityadmin:ListTelemetryPipelines"], "path": "behavioral/observabilityadmin/check_list_telemetry_pipelines_pagination.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.list-telemetry-rules-name-prefix-filter", "deployments": [], "key": "observabilityadmin/list-telemetry-rules-name-prefix-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["observabilityadmin:CreateTelemetryRule", "observabilityadmin:DeleteTelemetryRule", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:ListTelemetryRules", "observabilityadmin:StartTelemetryEvaluation"], "path": "behavioral/observabilityadmin/check_list_telemetry_rules_name_prefix_filter.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-enrichment-double-stop-is-an-idempotent-no-op", "deployments": [], "key": "observabilityadmin/telemetry-enrichment-double-stop-is-an-idempotent-no-op", "labels": ["axis:happy-path", "plane:control"], "operations": ["observabilityadmin:GetTelemetryEnrichmentStatus", "observabilityadmin:StartTelemetryEnrichment", "observabilityadmin:StopTelemetryEnrichment"], "path": "behavioral/observabilityadmin/check_telemetry_enrichment_double_stop_is_an_idempotent_no_op.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-evaluation-start-stop-lifecycle", "deployments": [], "key": "observabilityadmin/telemetry-evaluation-start-stop-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:StartTelemetryEvaluation", "observabilityadmin:StopTelemetryEvaluation"], "path": "behavioral/observabilityadmin/check_telemetry_evaluation_start_stop_lifecycle.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-pipeline-create-active-transition", "deployments": [], "key": "observabilityadmin/telemetry-pipeline-create-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "observabilityadmin:CreateTelemetryPipeline", "observabilityadmin:DeleteTelemetryPipeline", "observabilityadmin:GetTelemetryPipeline"], "path": "behavioral/observabilityadmin/check_telemetry_pipeline_create_active_transition.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-pipeline-source-type-immutable-update-rejected", "deployments": [], "key": "observabilityadmin/telemetry-pipeline-source-type-immutable-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "observabilityadmin:CreateTelemetryPipeline", "observabilityadmin:DeleteTelemetryPipeline", "observabilityadmin:GetTelemetryPipeline", "observabilityadmin:UpdateTelemetryPipeline"], "path": "behavioral/observabilityadmin/check_telemetry_pipeline_source_type_immutable_update_rejected.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-rule-concurrent-update-conflict", "deployments": [], "key": "observabilityadmin/telemetry-rule-concurrent-update-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["observabilityadmin:CreateTelemetryRule", "observabilityadmin:DeleteTelemetryRule", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:GetTelemetryRule", "observabilityadmin:StartTelemetryEvaluation", "observabilityadmin:StopTelemetryEvaluation", "observabilityadmin:UpdateTelemetryRule"], "path": "behavioral/observabilityadmin/check_telemetry_rule_concurrent_update_conflict.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-rule-create-get-delete-lifecycle", "deployments": [], "key": "observabilityadmin/telemetry-rule-create-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "observabilityadmin:CreateTelemetryRule", "observabilityadmin:DeleteTelemetryRule", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:GetTelemetryRule", "observabilityadmin:StartTelemetryEvaluation"], "path": "behavioral/observabilityadmin/check_telemetry_rule_create_get_delete_lifecycle.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-rule-duplicate-name-conflict-rejected", "deployments": [], "key": "observabilityadmin/telemetry-rule-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["observabilityadmin:CreateTelemetryRule", "observabilityadmin:DeleteTelemetryRule", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:GetTelemetryRule", "observabilityadmin:StartTelemetryEvaluation", "observabilityadmin:StopTelemetryEvaluation"], "path": "behavioral/observabilityadmin/check_telemetry_rule_duplicate_name_conflict_rejected.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-rule-invalid-resource-type-enum-rejected", "deployments": [], "key": "observabilityadmin/telemetry-rule-invalid-resource-type-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["observabilityadmin:CreateTelemetryRule", "observabilityadmin:DeleteTelemetryRule", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:GetTelemetryRule", "observabilityadmin:StartTelemetryEvaluation"], "path": "behavioral/observabilityadmin/check_telemetry_rule_invalid_resource_type_enum_rejected.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-rule-regions-allregions-mutually-exclusive-rejected", "deployments": [], "key": "observabilityadmin/telemetry-rule-regions-allregions-mutually-exclusive-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["observabilityadmin:CreateTelemetryRule", "observabilityadmin:DeleteTelemetryRule", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:GetTelemetryRule", "observabilityadmin:StartTelemetryEvaluation"], "path": "behavioral/observabilityadmin/check_telemetry_rule_regions_allregions_mutually_exclusive_rejected.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.telemetry-rule-update-persists-configuration", "deployments": [], "key": "observabilityadmin/telemetry-rule-update-persists-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["observabilityadmin:CreateTelemetryRule", "observabilityadmin:DeleteTelemetryRule", "observabilityadmin:GetTelemetryEvaluationStatus", "observabilityadmin:GetTelemetryRule", "observabilityadmin:StartTelemetryEvaluation", "observabilityadmin:UpdateTelemetryRule"], "path": "behavioral/observabilityadmin/check_telemetry_rule_update_persists_configuration.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.test-telemetry-pipeline-batch-records-independent-results", "deployments": [], "key": "observabilityadmin/test-telemetry-pipeline-batch-records-independent-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["observabilityadmin:TestTelemetryPipeline"], "path": "behavioral/observabilityadmin/check_test_telemetry_pipeline_batch_records_independent_results.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.test-telemetry-pipeline-csv-processor-transforms-record", "deployments": [], "key": "observabilityadmin/test-telemetry-pipeline-csv-processor-transforms-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["observabilityadmin:TestTelemetryPipeline"], "path": "behavioral/observabilityadmin/check_test_telemetry_pipeline_csv_processor_transforms_record.py", "service": "observabilityadmin"} {"check_id": "observabilityadmin.validate-telemetry-pipeline-configuration-malformed-yaml-rejected", "deployments": [], "key": "observabilityadmin/validate-telemetry-pipeline-configuration-malformed-yaml-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["observabilityadmin:ValidateTelemetryPipelineConfiguration"], "path": "behavioral/observabilityadmin/check_validate_telemetry_pipeline_configuration_malformed_yaml_rejected.py", "service": "observabilityadmin"} {"check_id": "omics.abort-multipart-read-set-upload-removes-from-list", "deployments": [], "key": "omics/abort-multipart-read-set-upload-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:AbortMultipartReadSetUpload", "omics:CreateMultipartReadSetUpload", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:ListMultipartReadSetUploads", "omics:UploadReadSetPart"], "path": "behavioral/omics/check_abort_multipart_read_set_upload_removes_from_list.py", "service": "omics"} {"check_id": "omics.batch-delete-read-set-partial-failure", "deployments": [], "key": "omics/batch-delete-read-set-partial-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["omics:BatchDeleteReadSet", "omics:CompleteMultipartReadSetUpload", "omics:CreateMultipartReadSetUpload", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:GetReadSetMetadata", "omics:ListReadSets", "omics:UploadReadSetPart"], "path": "behavioral/omics/check_batch_delete_read_set_partial_failure.py", "service": "omics"} {"check_id": "omics.create-run-group-concurrent-same-request-id-idempotent", "deployments": [], "key": "omics/create-run-group-concurrent-same-request-id-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateRunGroup", "omics:DeleteRunGroup", "omics:GetRunGroup", "omics:ListRunGroups"], "path": "behavioral/omics/check_create_run_group_concurrent_same_request_id_idempotent.py", "service": "omics"} {"check_id": "omics.create-share-lifecycle-reaches-pending-then-deleted", "deployments": [], "key": "omics/create-share-lifecycle-reaches-pending-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateShare", "omics:CreateWorkflow", "omics:DeleteShare", "omics:DeleteWorkflow", "omics:GetShare", "omics:GetWorkflow"], "path": "behavioral/omics/check_create_share_lifecycle_reaches_pending_then_deleted.py", "service": "omics"} {"check_id": "omics.create-workflow-duplicate-request-id-idempotent", "deployments": [], "key": "omics/create-workflow-duplicate-request-id-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateWorkflow", "omics:DeleteWorkflow", "omics:ListWorkflows"], "path": "behavioral/omics/check_create_workflow_duplicate_request_id_idempotent.py", "service": "omics"} {"check_id": "omics.create-workflow-duplicate-request-id-ignores-differing-params", "deployments": [], "key": "omics/create-workflow-duplicate-request-id-ignores-differing-params", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateWorkflow", "omics:DeleteWorkflow", "omics:GetWorkflow", "omics:ListWorkflows"], "path": "behavioral/omics/check_create_workflow_duplicate_request_id_ignores_differing_params.py", "service": "omics"} {"check_id": "omics.create-workflow-version-missing-workflow-not-found-rejected", "deployments": [], "key": "omics/create-workflow-version-missing-workflow-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["omics:CreateWorkflow", "omics:CreateWorkflowVersion", "omics:DeleteWorkflow", "omics:DeleteWorkflowVersion", "omics:GetWorkflow", "omics:GetWorkflowVersion", "omics:ListWorkflowVersions"], "path": "behavioral/omics/check_create_workflow_version_missing_workflow_not_found_rejected.py", "service": "omics"} {"check_id": "omics.delete-sequence-store-with-active-read-set-conflict-rejected", "deployments": [], "key": "omics/delete-sequence-store-with-active-read-set-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["omics:BatchDeleteReadSet", "omics:CompleteMultipartReadSetUpload", "omics:CreateMultipartReadSetUpload", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:GetReadSetMetadata", "omics:GetSequenceStore", "omics:ListReadSets", "omics:UploadReadSetPart"], "path": "behavioral/omics/check_delete_sequence_store_with_active_read_set_conflict_rejected.py", "service": "omics"} {"check_id": "omics.delete-workflow-with-version-conflict-rejected", "deployments": [], "key": "omics/delete-workflow-with-version-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["omics:CreateWorkflow", "omics:CreateWorkflowVersion", "omics:DeleteWorkflow", "omics:DeleteWorkflowVersion", "omics:GetWorkflow", "omics:GetWorkflowVersion", "omics:ListWorkflowVersions"], "path": "behavioral/omics/check_delete_workflow_with_version_conflict_rejected.py", "service": "omics"} {"check_id": "omics.deploy-run-group-via-cloudformation-reaches-create-complete", "deployments": [], "key": "omics/deploy-run-group-via-cloudformation-reaches-create-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "omics:GetRunGroup"], "path": "behavioral/omics/check_deploy_run_group_via_cloudformation_reaches_create_complete.py", "service": "omics"} {"check_id": "omics.get-read-set-range-not-satisfiable-rejected", "deployments": [], "key": "omics/get-read-set-range-not-satisfiable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["omics:BatchDeleteReadSet", "omics:CompleteMultipartReadSetUpload", "omics:CreateMultipartReadSetUpload", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:GetReadSet", "omics:GetReadSetMetadata", "omics:UploadReadSetPart"], "path": "behavioral/omics/check_get_read_set_range_not_satisfiable_rejected.py", "service": "omics"} {"check_id": "omics.list-multipart-read-set-uploads-reflects-created-upload", "deployments": [], "key": "omics/list-multipart-read-set-uploads-reflects-created-upload", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:AbortMultipartReadSetUpload", "omics:CreateMultipartReadSetUpload", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:ListMultipartReadSetUploads"], "path": "behavioral/omics/check_list_multipart_read_set_uploads_reflects_created_upload.py", "service": "omics"} {"check_id": "omics.list-read-set-upload-parts-reflects-uploaded-parts", "deployments": [], "key": "omics/list-read-set-upload-parts-reflects-uploaded-parts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["omics:AbortMultipartReadSetUpload", "omics:CreateMultipartReadSetUpload", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:ListReadSetUploadParts", "omics:UploadReadSetPart"], "path": "behavioral/omics/check_list_read_set_upload_parts_reflects_uploaded_parts.py", "service": "omics"} {"check_id": "omics.list-read-sets-excludes-deleted-read-set", "deployments": [], "key": "omics/list-read-sets-excludes-deleted-read-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["omics:BatchDeleteReadSet", "omics:CompleteMultipartReadSetUpload", "omics:CreateMultipartReadSetUpload", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:GetReadSetMetadata", "omics:ListReadSets", "omics:UploadReadSetPart"], "path": "behavioral/omics/check_list_read_sets_excludes_deleted_read_set.py", "service": "omics"} {"check_id": "omics.multipart-read-set-upload-round-trip", "deployments": [], "key": "omics/multipart-read-set-upload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["omics:BatchDeleteReadSet", "omics:CompleteMultipartReadSetUpload", "omics:CreateMultipartReadSetUpload", "omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:GetReadSet", "omics:GetReadSetMetadata", "omics:UploadReadSetPart"], "path": "behavioral/omics/check_multipart_read_set_upload_round_trip.py", "service": "omics"} {"check_id": "omics.run-cache-creation-reaches-active", "deployments": [], "key": "omics/run-cache-creation-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateRunCache", "omics:DeleteRunCache", "omics:GetRunCache", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/omics/check_run_cache_creation_reaches_active.py", "service": "omics"} {"check_id": "omics.run-group-update-persists-max-cpus", "deployments": [], "key": "omics/run-group-update-persists-max-cpus", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateRunGroup", "omics:DeleteRunGroup", "omics:GetRunGroup", "omics:UpdateRunGroup"], "path": "behavioral/omics/check_run_group_update_persists_max_cpus.py", "service": "omics"} {"check_id": "omics.sequence-store-creation-reaches-active", "deployments": [], "key": "omics/sequence-store-creation-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateSequenceStore", "omics:DeleteSequenceStore", "omics:GetSequenceStore"], "path": "behavioral/omics/check_sequence_store_creation_reaches_active.py", "service": "omics"} {"check_id": "omics.start-run-missing-workflow-not-found-rejected", "deployments": [], "key": "omics/start-run-missing-workflow-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "omics:CancelRun", "omics:CreateWorkflow", "omics:DeleteWorkflow", "omics:GetWorkflow", "omics:ListRuns", "omics:StartRun", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/omics/check_start_run_missing_workflow_not_found_rejected.py", "service": "omics"} {"check_id": "omics.tag-and-untag-resource-round-trip", "deployments": [], "key": "omics/tag-and-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateRunGroup", "omics:DeleteRunGroup", "omics:GetRunGroup", "omics:ListTagsForResource", "omics:TagResource", "omics:UntagResource"], "path": "behavioral/omics/check_tag_and_untag_resource_round_trip.py", "service": "omics"} {"check_id": "omics.workflow-creation-reaches-active", "deployments": [], "key": "omics/workflow-creation-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateWorkflow", "omics:DeleteWorkflow", "omics:GetWorkflow"], "path": "behavioral/omics/check_workflow_creation_reaches_active.py", "service": "omics"} {"check_id": "omics.workflow-version-creation-reaches-active", "deployments": [], "key": "omics/workflow-version-creation-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["omics:CreateWorkflow", "omics:CreateWorkflowVersion", "omics:DeleteWorkflow", "omics:DeleteWorkflowVersion", "omics:GetWorkflow", "omics:GetWorkflowVersion"], "path": "behavioral/omics/check_workflow_version_creation_reaches_active.py", "service": "omics"} {"check_id": "opensearch.access-denied-precedes-not-found", "deployments": [], "key": "opensearch/access-denied-precedes-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DescribeDataSourceAttachment", "opensearch:GetMigration", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_access_denied_precedes_not_found.py", "service": "opensearch"} {"check_id": "opensearch.access-policy-denies-data-plane-index-path", "deployments": [], "key": "opensearch/access-policy-denies-data-plane-index-path", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "opensearch:UpdateDomainConfig", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_access_policy_denies_data_plane_index_path.py", "service": "opensearch"} {"check_id": "opensearch.application-config-unicode-round-trip", "deployments": [], "key": "opensearch/application-config-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:UpdateApplication"], "path": "behavioral/opensearch/check_application_config_unicode_round_trip.py", "service": "opensearch"} {"check_id": "opensearch.application-duplicate-name-conflict-rejected", "deployments": [], "key": "opensearch/application-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication"], "path": "behavioral/opensearch/check_application_duplicate_name_conflict_rejected.py", "service": "opensearch"} {"check_id": "opensearch.application-lifecycle-create-update-delete", "deployments": [], "key": "opensearch/application-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListApplications", "opensearch:UpdateApplication", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_application_lifecycle_create_update_delete.py", "service": "opensearch"} {"check_id": "opensearch.application-name-invalid-pattern-rejected", "deployments": [], "key": "opensearch/application-name-invalid-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListApplications"], "path": "behavioral/opensearch/check_application_name_invalid_pattern_rejected.py", "service": "opensearch"} {"check_id": "opensearch.application-ops-on-missing-application", "deployments": [], "key": "opensearch/application-ops-on-missing-application", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:UpdateApplication"], "path": "behavioral/opensearch/check_application_ops_on_missing_application.py", "service": "opensearch"} {"check_id": "opensearch.application-tagging-lifecycle", "deployments": [], "key": "opensearch/application-tagging-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddTags", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListApplications", "opensearch:ListTags", "opensearch:RemoveTags", "opensearch:UpdateApplication", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_application_tagging_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.associate-dissociate-packages-concurrent-race-conflict", "deployments": [], "key": "opensearch/associate-dissociate-packages-concurrent-race-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/opensearch/check_associate_dissociate_packages_concurrent_race_conflict.py", "service": "opensearch"} {"check_id": "opensearch.associate-package-nonexistent-domain-rejected", "deployments": [], "key": "opensearch/associate-package-nonexistent-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackage", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackage", "opensearch:ListDomainsForPackage", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_associate_package_nonexistent_domain_rejected.py", "service": "opensearch"} {"check_id": "opensearch.associate-packages-batch-duplicate-name-collapsed", "deployments": [], "key": "opensearch/associate-packages-batch-duplicate-name-collapsed", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/opensearch/check_associate_packages_batch_duplicate_name_collapsed.py", "service": "opensearch"} {"check_id": "opensearch.associate-packages-duplicate-in-batch-conflict-rejected", "deployments": [], "key": "opensearch/associate-packages-duplicate-in-batch-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackage", "opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackage", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_associate_packages_duplicate_in_batch_conflict_rejected.py", "service": "opensearch"} {"check_id": "opensearch.attach-data-source-accepts-nonexistent-arn-without-attaching", "deployments": [], "key": "opensearch/attach-data-source-accepts-nonexistent-arn-without-attaching", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_attach_data_source_accepts_nonexistent_arn_without_attaching.py", "service": "opensearch"} {"check_id": "opensearch.attach-data-source-duplicate-attachment-idempotent", "deployments": [], "key": "opensearch/attach-data-source-duplicate-attachment-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_attach_data_source_duplicate_attachment_idempotent.py", "service": "opensearch"} {"check_id": "opensearch.attach-data-source-duplicate-attachment-reuses-attachment-id", "deployments": [], "key": "opensearch/attach-data-source-duplicate-attachment-reuses-attachment-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DetachDataSource", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_attach_data_source_duplicate_attachment_reuses_attachment_id.py", "service": "opensearch"} {"check_id": "opensearch.attach_data_source_duplicate_rejected", "deployments": [], "key": "opensearch/attach_data_source_duplicate_rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_attach_data_source_duplicate_rejected.py", "service": "opensearch"} {"check_id": "opensearch.attach-data-source-inactive-domain-state", "deployments": [], "key": "opensearch/attach-data-source-inactive-domain-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource"], "path": "behavioral/opensearch/check_attach_data_source_inactive_domain_state.py", "service": "opensearch"} {"check_id": "opensearch.attach-data-source-nonexistent-resource-rejected", "deployments": [], "key": "opensearch/attach-data-source-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DescribeDataSourceAttachment", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_attach_data_source_nonexistent_resource_rejected.py", "service": "opensearch"} {"check_id": "opensearch.attach-data-source-without-permission-denied", "deployments": [], "key": "opensearch/attach-data-source-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DetachDataSource", "opensearch:ListDataSourceAttachments", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_attach_data_source_without_permission_denied.py", "service": "opensearch"} {"check_id": "opensearch.attach-detach-data-source-concurrent-race-conflict", "deployments": [], "key": "opensearch/attach-detach-data-source-concurrent-race-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:GetApplication"], "path": "behavioral/opensearch/check_attach_detach_data_source_concurrent_race_conflict.py", "service": "opensearch"} {"check_id": "opensearch.attach-detach-data-source-race-converges-consistent", "deployments": [], "key": "opensearch/attach-detach-data-source-race-converges-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_attach_detach_data_source_race_converges_consistent.py", "service": "opensearch"} {"check_id": "opensearch.bm25-relevance-ordering-and-explain-score-arithmetic", "deployments": [], "key": "opensearch/bm25-relevance-ordering-and-explain-score-arithmetic", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_bm25_relevance_ordering_and_explain_score_arithmetic.py", "service": "opensearch"} {"check_id": "opensearch.bulk-index-partial-failure-item-errors-rejected", "deployments": [], "key": "opensearch/bulk-index-partial-failure-item-errors-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_bulk_index_partial_failure_item_errors_rejected.py", "service": "opensearch"} {"check_id": "opensearch.capability-duplicate-registration-is-idempotent", "deployments": [], "key": "opensearch/capability-duplicate-registration-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DeregisterCapability", "opensearch:GetApplication", "opensearch:GetCapability", "opensearch:RegisterCapability"], "path": "behavioral/opensearch/check_capability_duplicate_registration_is_idempotent.py", "service": "opensearch"} {"check_id": "opensearch.capability-invalid-name-rejected", "deployments": [], "key": "opensearch/capability-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DeregisterCapability", "opensearch:GetApplication", "opensearch:GetCapability", "opensearch:RegisterCapability"], "path": "behavioral/opensearch/check_capability_invalid_name_rejected.py", "service": "opensearch"} {"check_id": "opensearch.capability-lifecycle", "deployments": [], "key": "opensearch/capability-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DeregisterCapability", "opensearch:GetApplication", "opensearch:GetCapability", "opensearch:RegisterCapability"], "path": "behavioral/opensearch/check_capability_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.capability-payload-round-trip", "deployments": [], "key": "opensearch/capability-payload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DeregisterCapability", "opensearch:GetApplication", "opensearch:GetCapability", "opensearch:RegisterCapability"], "path": "behavioral/opensearch/check_capability_payload_round_trip.py", "service": "opensearch"} {"check_id": "opensearch.capability-registration-lifecycle", "deployments": [], "key": "opensearch/capability-registration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DeregisterCapability", "opensearch:GetApplication", "opensearch:GetCapability", "opensearch:RegisterCapability"], "path": "behavioral/opensearch/check_capability_registration_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.closed-index-search-rejected-and-reopen-restores-documents", "deployments": [], "key": "opensearch/closed-index-search-rejected-and-reopen-restores-documents", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain"], "path": "behavioral/opensearch/check_closed_index_search_rejected_and_reopen_restores_documents.py", "service": "opensearch"} {"check_id": "opensearch.closed-point-in-time-reader-rejected", "deployments": [], "key": "opensearch/closed-point-in-time-reader-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_closed_point_in_time_reader_rejected.py", "service": "opensearch"} {"check_id": "opensearch.cluster-health-and-shard-allocation-match-domain-config", "deployments": [], "key": "opensearch/cluster-health-and-shard-allocation-match-domain-config", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_cluster_health_and_shard_allocation_match_domain_config.py", "service": "opensearch"} {"check_id": "opensearch.cluster-settings-flat-form-only-and-auto-create-index-false-refuses-implicit-index", "deployments": [], "key": "opensearch/cluster-settings-flat-form-only-and-auto-create-index-false-refuses-implicit-index", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_cluster_settings_flat_form_only_and_auto_create_index_false_refuses_implicit_index.py", "service": "opensearch"} {"check_id": "opensearch.cluster-settings-put-is-refused-for-a-non-allowlisted-property", "deployments": [], "key": "opensearch/cluster-settings-put-is-refused-for-a-non-allowlisted-property", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_cluster_settings_put_is_refused_for_a_non_allowlisted_property.py", "service": "opensearch"} {"check_id": "opensearch.compatible-versions-and-upgrade-status-consistency", "deployments": [], "key": "opensearch/compatible-versions-and-upgrade-status-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetCompatibleVersions", "opensearch:GetUpgradeHistory", "opensearch:GetUpgradeStatus", "opensearch:ListVersions", "opensearch:UpgradeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_compatible_versions_and_upgrade_status_consistency.py", "service": "opensearch"} {"check_id": "opensearch.concurrency-associate-dissociate-package-race", "deployments": [], "key": "opensearch/concurrency-associate-dissociate-package-race", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_concurrency_associate_dissociate_package_race.py", "service": "opensearch"} {"check_id": "opensearch.concurrency-attach-detach-data-source-race", "deployments": [], "key": "opensearch/concurrency-attach-detach-data-source-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_concurrency_attach_detach_data_source_race.py", "service": "opensearch"} {"check_id": "opensearch.concurrency-update-vpc-endpoint-nonexistent-id-rejected", "deployments": [], "key": "opensearch/concurrency-update-vpc-endpoint-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:ListVpcEndpoints", "opensearch:UpdateVpcEndpoint"], "path": "behavioral/opensearch/check_concurrency_update_vpc_endpoint_nonexistent_id_rejected.py", "service": "opensearch"} {"check_id": "opensearch.concurrency-update-vpc-endpoint-optimistic-lock", "deployments": [], "key": "opensearch/concurrency-update-vpc-endpoint-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "iam:CreateServiceLinkedRole", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:UpdateVpcEndpoint"], "path": "behavioral/opensearch/check_concurrency_update_vpc_endpoint_optimistic_lock.py", "service": "opensearch"} {"check_id": "opensearch.concurrent-associate-dissociate-packages-race-consistency", "deployments": [], "key": "opensearch/concurrent-associate-dissociate-packages-race-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_concurrent_associate_dissociate_packages_race_consistency.py", "service": "opensearch"} {"check_id": "opensearch.concurrent-attach-data-source-same-source-collapses", "deployments": [], "key": "opensearch/concurrent-attach-data-source-same-source-collapses", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_concurrent_attach_data_source_same_source_collapses.py", "service": "opensearch"} {"check_id": "opensearch.concurrent-conditional-writes-elect-exactly-one-winner", "deployments": [], "key": "opensearch/concurrent-conditional-writes-elect-exactly-one-winner", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_concurrent_conditional_writes_elect_exactly_one_winner.py", "service": "opensearch"} {"check_id": "opensearch.concurrent-create-domain-same-name-collapses", "deployments": [], "key": "opensearch/concurrent-create-domain-same-name-collapses", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:ListDomainNames"], "path": "behavioral/opensearch/check_concurrent_create_domain_same_name_collapses.py", "service": "opensearch"} {"check_id": "opensearch.concurrent-detach-data-source-race-idempotent", "deployments": [], "key": "opensearch/concurrent-detach-data-source-race-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_concurrent_detach_data_source_race_idempotent.py", "service": "opensearch"} {"check_id": "opensearch.concurrent-start-migration-independent-domains", "deployments": [], "key": "opensearch/concurrent-start-migration-independent-domains", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:ListMigrations", "opensearch:StartMigration"], "path": "behavioral/opensearch/check_concurrent_start_migration_independent_domains.py", "service": "opensearch"} {"check_id": "opensearch.conflict-precedence-package-association", "deployments": [], "key": "opensearch/conflict-precedence-package-association", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackage", "opensearch:ListPackagesForDomain", "opensearch:ListVersions", "opensearch:StartServiceSoftwareUpdate", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/opensearch/check_conflict_precedence_package_association.py", "service": "opensearch"} {"check_id": "opensearch.connection-ops-on-missing-connection", "deployments": [], "key": "opensearch/connection-ops-on-missing-connection", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AcceptInboundConnection", "opensearch:CreateDomain", "opensearch:CreateOutboundConnection", "opensearch:DeleteDomain", "opensearch:DeleteInboundConnection", "opensearch:DeleteOutboundConnection", "opensearch:DescribeDomain", "opensearch:DescribeInboundConnections", "opensearch:DescribeOutboundConnections", "opensearch:RejectInboundConnection", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_connection_ops_on_missing_connection.py", "service": "opensearch"} {"check_id": "opensearch.create-domain-invalid-name-pattern-rejected", "deployments": [], "key": "opensearch/create-domain-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:ListDomainNames", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_create_domain_invalid_name_pattern_rejected.py", "service": "opensearch"} {"check_id": "opensearch.create-package-duplicate-name-rejected", "deployments": [], "key": "opensearch/create-package-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/opensearch/check_create_package_duplicate_name_rejected.py", "service": "opensearch"} {"check_id": "opensearch.custom-analyzer-token-stream-drives-search-match", "deployments": [], "key": "opensearch/custom-analyzer-token-stream-drives-search-match", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_custom_analyzer_token_stream_drives_search_match.py", "service": "opensearch"} {"check_id": "opensearch.data-plane-list-data-source-attachments-completeness", "deployments": [], "key": "opensearch/data-plane-list-data-source-attachments-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DetachDataSource", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_data_plane_list_data_source_attachments_completeness.py", "service": "opensearch"} {"check_id": "opensearch.data-plane-vpc-endpoints-for-domain-listing-accuracy", "deployments": [], "key": "opensearch/data-plane-vpc-endpoints-for-domain-listing-accuracy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "iam:CreateServiceLinkedRole", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:ListVpcEndpointsForDomain"], "path": "behavioral/opensearch/check_data_plane_vpc_endpoints_for_domain_listing_accuracy.py", "service": "opensearch"} {"check_id": "opensearch.data-source-attachment-lifecycle", "deployments": [], "key": "opensearch/data-source-attachment-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DeleteApplication", "opensearch:DeleteDomain"], "path": "behavioral/opensearch/check_data_source_attachment_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.data-source-attachment-listing-creation-order", "deployments": [], "key": "opensearch/data-source-attachment-listing-creation-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DetachDataSource", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_data_source_attachment_listing_creation_order.py", "service": "opensearch"} {"check_id": "opensearch.data-source-config-binary-blob-round-trip", "deployments": [], "key": "opensearch/data-source-config-binary-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddDataSource", "opensearch:CreateDomain", "opensearch:DeleteDataSource", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetDataSource", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_data_source_config_binary_blob_round_trip.py", "service": "opensearch"} {"check_id": "opensearch.data-source-config-json-blob-round-trip", "deployments": [], "key": "opensearch/data-source-config-json-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddDataSource", "opensearch:CreateDomain", "opensearch:DeleteDataSource", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetDataSource", "opensearch:UpdateDataSource", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_data_source_config_json_blob_round_trip.py", "service": "opensearch"} {"check_id": "opensearch.data-source-lifecycle", "deployments": [], "key": "opensearch/data-source-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "opensearch:AddDataSource", "opensearch:CreateDomain", "opensearch:DeleteDataSource", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetDataSource", "opensearch:ListDataSources", "opensearch:UpdateDataSource"], "path": "behavioral/opensearch/check_data_source_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.data-source-lifecycle-add-update-delete", "deployments": [], "key": "opensearch/data-source-lifecycle-add-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "opensearch:AddDataSource", "opensearch:CreateDomain", "opensearch:DeleteDataSource", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetDataSource", "opensearch:ListDataSources", "opensearch:UpdateDataSource"], "path": "behavioral/opensearch/check_data_source_lifecycle_add_update_delete.py", "service": "opensearch"} {"check_id": "opensearch.data-source-ops-on-missing-domain", "deployments": [], "key": "opensearch/data-source-ops-on-missing-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDataSource", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetDataSource", "opensearch:ListDataSources"], "path": "behavioral/opensearch/check_data_source_ops_on_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.data-source-reattachment-after-detach-lifecycle", "deployments": [], "key": "opensearch/data-source-reattachment-after-detach-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_data_source_reattachment_after_detach_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.default-application-setting-lifecycle", "deployments": [], "key": "opensearch/default-application-setting-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:GetDefaultApplicationSetting", "opensearch:PutDefaultApplicationSetting"], "path": "behavioral/opensearch/check_default_application_setting_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.default-application-setting-managed", "deployments": [], "key": "opensearch/default-application-setting-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:GetDefaultApplicationSetting", "opensearch:PutDefaultApplicationSetting", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_default_application_setting_managed.py", "service": "opensearch"} {"check_id": "opensearch.delete-package-while-associated-rejected", "deployments": [], "key": "opensearch/delete-package-while-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:ListDomainsForPackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_delete_package_while_associated_rejected.py", "service": "opensearch"} {"check_id": "opensearch.dependency-failure-on-update-index", "deployments": [], "key": "opensearch/dependency-failure-on-update-index", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListVersions", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_dependency_failure_on_update_index.py", "service": "opensearch"} {"check_id": "opensearch.deploy-domain-cfn-access-policy-enforced", "deployments": [], "key": "opensearch/deploy-domain-cfn-access-policy-enforced", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_deploy_domain_cfn_access_policy_enforced.py", "service": "opensearch"} {"check_id": "opensearch.deploy-domain-cfn-index-operations-behave", "deployments": [], "key": "opensearch/deploy-domain-cfn-index-operations-behave", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_deploy_domain_cfn_index_operations_behave.py", "service": "opensearch"} {"check_id": "opensearch.deploy-opensearch-3-fgac-secret-master-basic-auth", "deployments": [], "key": "opensearch/deploy-opensearch-3-fgac-secret-master-basic-auth", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:GetTemplate", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/opensearch/check_deploy_opensearch_3_fgac_secret_master_basic_auth.py", "service": "opensearch"} {"check_id": "opensearch.deploy-opensearch-domain-cfn-behavioral", "deployments": [], "key": "opensearch/deploy-opensearch-domain-cfn-behavioral", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:CreateIndex", "opensearch:DescribeDomain", "opensearch:GetIndex"], "path": "behavioral/opensearch/check_deploy_opensearch_domain_cfn_behavioral.py", "service": "opensearch"} {"check_id": "opensearch.deploy-vpc-endpoint-cfn-policy-enforced", "deployments": [], "key": "opensearch/deploy-vpc-endpoint-cfn-policy-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearch:AuthorizeVpcEndpointAccess", "opensearch:CreateVpcEndpoint", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:ListVpcEndpointAccess", "opensearch:RevokeVpcEndpointAccess", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_deploy_vpc_endpoint_cfn_policy_enforced.py", "service": "opensearch"} {"check_id": "opensearch.describe-data-source-attachment-disabled-when-feature-off", "deployments": [], "key": "opensearch/describe-data-source-attachment-disabled-when-feature-off", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:GetApplication", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_describe_data_source_attachment_disabled_when_feature_off.py", "service": "opensearch"} {"check_id": "opensearch.describe-data-source-attachment-not-found-vs-malformed-id-distinct", "deployments": [], "key": "opensearch/describe-data-source-attachment-not-found-vs-malformed-id-distinct", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DescribeDataSourceAttachment", "opensearch:GetApplication", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_describe_data_source_attachment_not_found_vs_malformed_id_distinct.py", "service": "opensearch"} {"check_id": "opensearch.describe-domain-auto-tunes-missing-domain-not-found", "deployments": [], "key": "opensearch/describe-domain-auto-tunes-missing-domain-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainAutoTunes", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_describe_domain_auto_tunes_missing_domain_not_found.py", "service": "opensearch"} {"check_id": "opensearch.describe-domains-empty-and-unknown-semantics", "deployments": [], "key": "opensearch/describe-domains-empty-and-unknown-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DescribeDomains"], "path": "behavioral/opensearch/check_describe_domains_empty_and_unknown_semantics.py", "service": "opensearch"} {"check_id": "opensearch.detach-data-source-not-attached-rejected", "deployments": [], "key": "opensearch/detach-data-source-not-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_detach_data_source_not_attached_rejected.py", "service": "opensearch"} {"check_id": "opensearch.direct-query-data-source-lifecycle", "deployments": [], "key": "opensearch/direct-query-data-source-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "opensearch:AddDirectQueryDataSource", "opensearch:DeleteDirectQueryDataSource", "opensearch:GetDirectQueryDataSource", "opensearch:ListDirectQueryDataSources", "opensearch:UpdateDirectQueryDataSource", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_direct_query_data_source_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.direct-query-data-source-numeric-precision-preserved", "deployments": [], "key": "opensearch/direct-query-data-source-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddDirectQueryDataSource", "opensearch:DeleteDirectQueryDataSource", "opensearch:GetDirectQueryDataSource", "opensearch:UpdateDirectQueryDataSource", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_direct_query_data_source_numeric_precision_preserved.py", "service": "opensearch"} {"check_id": "opensearch.direct-query-data-source-timestamp-precision-round-trip", "deployments": [], "key": "opensearch/direct-query-data-source-timestamp-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddDirectQueryDataSource", "opensearch:DeleteDirectQueryDataSource", "opensearch:GetDirectQueryDataSource", "opensearch:UpdateDirectQueryDataSource", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_direct_query_data_source_timestamp_precision_round_trip.py", "service": "opensearch"} {"check_id": "opensearch.disabled-operation-feature-off-unreachable", "deployments": [], "key": "opensearch/disabled-operation-feature-off-unreachable", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListMigrations", "opensearch:UpdateVpcEndpoint", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_disabled_operation_feature_off_unreachable.py", "service": "opensearch"} {"check_id": "opensearch.disabled-operation-gating-across-readonly-apis", "deployments": [], "key": "opensearch/disabled-operation-gating-across-readonly-apis", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DescribeDomainNodes", "opensearch:DescribeDryRunProgress", "opensearch:GetDomainMaintenanceStatus", "opensearch:ListDomainMaintenances", "opensearch:ListVpcEndpointsForDomain", "opensearch:StartDomainMaintenance", "opensearch:UpdateDomainConfig", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_disabled_operation_gating_across_readonly_apis.py", "service": "opensearch"} {"check_id": "opensearch.disabled-refresh-interval-hides-document-from-search-until-refresh", "deployments": [], "key": "opensearch/disabled-refresh-interval-hides-document-from-search-until-refresh", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_disabled_refresh_interval_hides_document_from_search_until_refresh.py", "service": "opensearch"} {"check_id": "opensearch.dissociate-packages-not-associated-rejected", "deployments": [], "key": "opensearch/dissociate-packages-not-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/opensearch/check_dissociate_packages_not_associated_rejected.py", "service": "opensearch"} {"check_id": "opensearch.document-optimistic-concurrency-version-conflict-rejected", "deployments": [], "key": "opensearch/document-optimistic-concurrency-version-conflict-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_document_optimistic_concurrency_version_conflict_rejected.py", "service": "opensearch"} {"check_id": "opensearch.domain-auto-tune-reporting", "deployments": [], "key": "opensearch/domain-auto-tune-reporting", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainAutoTunes"], "path": "behavioral/opensearch/check_domain_auto_tune_reporting.py", "service": "opensearch"} {"check_id": "opensearch.domain-config-change-lifecycle", "deployments": [], "key": "opensearch/domain-config-change-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CancelDomainConfigChange", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainChangeProgress", "opensearch:DescribeDomainConfig", "opensearch:UpdateDomainConfig"], "path": "behavioral/opensearch/check_domain_config_change_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.domain-config-ops-on-missing-domain", "deployments": [], "key": "opensearch/domain-config-ops-on-missing-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CancelDomainConfigChange", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "opensearch:ListDomainNames", "opensearch:UpdateDomainConfig"], "path": "behavioral/opensearch/check_domain_config_ops_on_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.domain-control-plane-lifecycle", "deployments": [], "key": "opensearch/domain-control-plane-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddTags", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListDomainNames", "opensearch:ListTags", "opensearch:UpdateDomainConfig"], "path": "behavioral/opensearch/check_domain_control_plane_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.domain-full-descriptor-consistency", "deployments": [], "key": "opensearch/domain-full-descriptor-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainChangeProgress", "opensearch:DescribeDomainConfig", "opensearch:DescribeDomainHealth", "opensearch:DescribeDomainNodes", "opensearch:DescribeDomains", "opensearch:ListDomainNames", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_domain_full_descriptor_consistency.py", "service": "opensearch"} {"check_id": "opensearch.domain-health-reporting", "deployments": [], "key": "opensearch/domain-health-reporting", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainHealth", "opensearch:DescribeDomainNodes"], "path": "behavioral/opensearch/check_domain_health_reporting.py", "service": "opensearch"} {"check_id": "opensearch.domain-lifecycle-create-active-delete", "deployments": [], "key": "opensearch/domain-lifecycle-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddTags", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "opensearch:DescribeDomains", "opensearch:GetCompatibleVersions", "opensearch:ListDomainNames", "opensearch:ListTags", "opensearch:RemoveTags"], "path": "behavioral/opensearch/check_domain_lifecycle_create_active_delete.py", "service": "opensearch"} {"check_id": "opensearch.domain-maintenance-lifecycle", "deployments": [], "key": "opensearch/domain-maintenance-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DeleteDomain"], "path": "behavioral/opensearch/check_domain_maintenance_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.domain-maintenance-status-window-expiry", "deployments": [], "key": "opensearch/domain-maintenance-status-window-expiry", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainNodes", "opensearch:GetDomainMaintenanceStatus", "opensearch:ListDomainMaintenances", "opensearch:StartDomainMaintenance", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_domain_maintenance_status_window_expiry.py", "service": "opensearch"} {"check_id": "opensearch.domain-observability-ops-on-missing-domain", "deployments": [], "key": "opensearch/domain-observability-ops-on-missing-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:DescribeDomainChangeProgress", "opensearch:DescribeDomainHealth", "opensearch:DescribeDomainNodes"], "path": "behavioral/opensearch/check_domain_observability_ops_on_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.domain-upgrade-invalid-target-version-rejected", "deployments": [], "key": "opensearch/domain-upgrade-invalid-target-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AddTags", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetCompatibleVersions", "opensearch:GetUpgradeHistory", "opensearch:GetUpgradeStatus", "opensearch:UpgradeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_domain_upgrade_invalid_target_version_rejected.py", "service": "opensearch"} {"check_id": "opensearch.domain-upgrade-lifecycle", "deployments": [], "key": "opensearch/domain-upgrade-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddTags", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetCompatibleVersions", "opensearch:GetUpgradeHistory", "opensearch:GetUpgradeStatus", "opensearch:UpgradeDomain"], "path": "behavioral/opensearch/check_domain_upgrade_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.dry-run-progress-reporting", "deployments": [], "key": "opensearch/dry-run-progress-reporting", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "opensearch:DescribeDryRunProgress", "opensearch:UpdateDomainConfig"], "path": "behavioral/opensearch/check_dry_run_progress_reporting.py", "service": "opensearch"} {"check_id": "opensearch.dry-run-progress-ttl-expiration-requires-retrigger", "deployments": [], "key": "opensearch/dry-run-progress-ttl-expiration-requires-retrigger", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDryRunProgress", "opensearch:UpdateDomainConfig"], "path": "behavioral/opensearch/check_dry_run_progress_ttl_expiration_requires_retrigger.py", "service": "opensearch"} {"check_id": "opensearch.dry-run-progress-ttl-expiry-after-completion", "deployments": [], "key": "opensearch/dry-run-progress-ttl-expiry-after-completion", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "opensearch:DescribeDryRunProgress", "opensearch:UpdateDomainConfig"], "path": "behavioral/opensearch/check_dry_run_progress_ttl_expiry_after_completion.py", "service": "opensearch"} {"check_id": "opensearch.e2e-data-source-attach-ingest-detach-flow", "deployments": [], "key": "opensearch/e2e-data-source-attach-ingest-detach-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_e2e_data_source_attach_ingest_detach_flow.py", "service": "opensearch"} {"check_id": "opensearch.e2e-data-source-attachment-consumption-flow", "deployments": [], "key": "opensearch/e2e-data-source-attachment-consumption-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_e2e_data_source_attachment_consumption_flow.py", "service": "opensearch"} {"check_id": "opensearch.e2e-data-source-attachment-ingest-search-detach", "deployments": [], "key": "opensearch/e2e-data-source-attachment-ingest-search-detach", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_e2e_data_source_attachment_ingest_search_detach.py", "service": "opensearch"} {"check_id": "opensearch.e2e-data-source-attachment-query-detach-flow", "deployments": [], "key": "opensearch/e2e-data-source-attachment-query-detach-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_e2e_data_source_attachment_query_detach_flow.py", "service": "opensearch"} {"check_id": "opensearch.e2e-migration-flow-status-progression", "deployments": [], "key": "opensearch/e2e-migration-flow-status-progression", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:GetMigration", "opensearch:ListMigrations", "opensearch:StartMigration", "opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_e2e_migration_flow_status_progression.py", "service": "opensearch"} {"check_id": "opensearch.e2e-migration-full-lifecycle-flow", "deployments": [], "key": "opensearch/e2e-migration-full-lifecycle-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:GetMigration", "opensearch:ListMigrations", "opensearch:StartMigration", "opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_e2e_migration_full_lifecycle_flow.py", "service": "opensearch"} {"check_id": "opensearch.e2e-migration-lifecycle-domain-state-consequence", "deployments": [], "key": "opensearch/e2e-migration-lifecycle-domain-state-consequence", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DescribeDomain", "opensearch:GetApplication", "opensearch:GetMigration", "opensearch:ListMigrations", "opensearch:StartMigration", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_e2e_migration_lifecycle_domain_state_consequence.py", "service": "opensearch"} {"check_id": "opensearch.e2e-migration-start-monitor-flow", "deployments": [], "key": "opensearch/e2e-migration-start-monitor-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:GetMigration", "opensearch:ListMigrations", "opensearch:StartMigration", "opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_e2e_migration_start_monitor_flow.py", "service": "opensearch"} {"check_id": "opensearch.e2e-package-association-enables-index-analyzer", "deployments": [], "key": "opensearch/e2e-package-association-enables-index-analyzer", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:GetIndex", "opensearch:GetPackageVersionHistory", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_e2e_package_association_enables_index_analyzer.py", "service": "opensearch"} {"check_id": "opensearch.e2e-package-association-index-effect-flow", "deployments": [], "key": "opensearch/e2e-package-association-index-effect-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:GetIndex", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_e2e_package_association_index_effect_flow.py", "service": "opensearch"} {"check_id": "opensearch.e2e-package-association-index-effect-teardown", "deployments": [], "key": "opensearch/e2e-package-association-index-effect-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:GetIndex", "opensearch:ListDomainsForPackage", "opensearch:ListPackagesForDomain", "opensearch:UpdateIndex", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_e2e_package_association_index_effect_teardown.py", "service": "opensearch"} {"check_id": "opensearch.e2e-package-association-search-flow", "deployments": [], "key": "opensearch/e2e-package-association-search-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["opensearch:AssociatePackage", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackage", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_e2e_package_association_search_flow.py", "service": "opensearch"} {"check_id": "opensearch.e2e-package-version-update-domain-propagation", "deployments": [], "key": "opensearch/e2e-package-version-update-domain-propagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:ListDomainsForPackage", "opensearch:ListPackagesForDomain", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_e2e_package_version_update_domain_propagation.py", "service": "opensearch"} {"check_id": "opensearch.fgac-document-level-security-hides-document-from-results-and-get", "deployments": [], "key": "opensearch/fgac-document-level-security-hides-document-from-results-and-get", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_fgac_document_level_security_hides_document_from_results_and_get.py", "service": "opensearch"} {"check_id": "opensearch.fgac-field-level-security-hides-field-from-hit-and-from-query", "deployments": [], "key": "opensearch/fgac-field-level-security-hides-field-from-hit-and-from-query", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_fgac_field_level_security_hides_field_from_hit_and_from_query.py", "service": "opensearch"} {"check_id": "opensearch.fgac-role-mapping-denies-unmapped-index-for-internal-user", "deployments": [], "key": "opensearch/fgac-role-mapping-denies-unmapped-index-for-internal-user", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_fgac_role_mapping_denies_unmapped_index_for_internal_user.py", "service": "opensearch"} {"check_id": "opensearch.get-compatible-versions-account-and-missing-domain", "deployments": [], "key": "opensearch/get-compatible-versions-account-and-missing-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:GetCompatibleVersions"], "path": "behavioral/opensearch/check_get_compatible_versions_account_and_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.get-migration-cross-account-access-denied-not-not-found", "deployments": [], "key": "opensearch/get-migration-cross-account-access-denied-not-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:GetMigration"], "path": "behavioral/opensearch/check_get_migration_cross_account_access_denied_not_not_found.py", "service": "opensearch"} {"check_id": "opensearch.get-migration-malformed-id-error-semantics", "deployments": [], "key": "opensearch/get-migration-malformed-id-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:GetMigration", "opensearch:ListDomainNames"], "path": "behavioral/opensearch/check_get_migration_malformed_id_error_semantics.py", "service": "opensearch"} {"check_id": "opensearch.get-migration-unknown-id-error-code", "deployments": [], "key": "opensearch/get-migration-unknown-id-error-code", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:GetMigration", "opensearch:ListDomainNames"], "path": "behavioral/opensearch/check_get_migration_unknown_id_error_code.py", "service": "opensearch"} {"check_id": "opensearch.get-migration-unknown-id-error-shape", "deployments": [], "key": "opensearch/get-migration-unknown-id-error-shape", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:GetMigration", "opensearch:ListDomainNames"], "path": "behavioral/opensearch/check_get_migration_unknown_id_error_shape.py", "service": "opensearch"} {"check_id": "opensearch.get-migration-without-permission-denied", "deployments": [], "key": "opensearch/get-migration-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetMigration", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_get_migration_without_permission_denied.py", "service": "opensearch"} {"check_id": "opensearch.get-package-version-history-access-denied-cross-account", "deployments": [], "key": "opensearch/get-package-version-history-access-denied-cross-account", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_get_package_version_history_access_denied_cross_account.py", "service": "opensearch"} {"check_id": "opensearch.get-package-version-history-cross-account-access-denied", "deployments": [], "key": "opensearch/get-package-version-history-cross-account-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_get_package_version_history_cross_account_access_denied.py", "service": "opensearch"} {"check_id": "opensearch.get-package-version-history-cross-account-denied", "deployments": [], "key": "opensearch/get-package-version-history-cross-account-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_get_package_version_history_cross_account_denied.py", "service": "opensearch"} {"check_id": "opensearch.inbound-connection-lifecycle", "deployments": [], "key": "opensearch/inbound-connection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AcceptInboundConnection", "opensearch:CreateDomain", "opensearch:CreateOutboundConnection", "opensearch:DeleteDomain", "opensearch:DeleteInboundConnection", "opensearch:DeleteOutboundConnection", "opensearch:DescribeDomain", "opensearch:DescribeInboundConnections", "opensearch:DescribeOutboundConnections", "opensearch:RejectInboundConnection", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_inbound_connection_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.inbound-outbound-connection-accept-reject-lifecycle", "deployments": [], "key": "opensearch/inbound-outbound-connection-accept-reject-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AcceptInboundConnection", "opensearch:CreateOutboundConnection", "opensearch:DeleteDomain", "opensearch:DeleteInboundConnection", "opensearch:DeleteOutboundConnection", "opensearch:DescribeDomains", "opensearch:DescribeInboundConnections", "opensearch:DescribeOutboundConnections", "opensearch:RejectInboundConnection", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_inbound_outbound_connection_accept_reject_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.index-invalid-name-rejected", "deployments": [], "key": "opensearch/index-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:ListVersions", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_index_invalid_name_rejected.py", "service": "opensearch"} {"check_id": "opensearch.index-lifecycle", "deployments": [], "key": "opensearch/index-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:ListVersions", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_index_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.index-mapping-conflict-rejected", "deployments": [], "key": "opensearch/index-mapping-conflict-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_index_mapping_conflict_rejected.py", "service": "opensearch"} {"check_id": "opensearch.index-ops-on-missing-domain", "deployments": [], "key": "opensearch/index-ops-on-missing-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateIndex", "opensearch:DeleteIndex", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_index_ops_on_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.index-settings-unicode-analyzer-rejected", "deployments": [], "key": "opensearch/index-settings-unicode-analyzer-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_index_settings_unicode_analyzer_rejected.py", "service": "opensearch"} {"check_id": "opensearch.index-update-schema-semantics", "deployments": [], "key": "opensearch/index-update-schema-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:ListVersions", "opensearch:UpdateIndex", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_index_update_schema_semantics.py", "service": "opensearch"} {"check_id": "opensearch.ingest-pipeline-rewrites-stored-source-and-simulate-predicts-it", "deployments": [], "key": "opensearch/ingest-pipeline-rewrites-stored-source-and-simulate-predicts-it", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_ingest_pipeline_rewrites_stored_source_and_simulate_predicts_it.py", "service": "opensearch"} {"check_id": "opensearch.insight-lifecycle-and-feedback", "deployments": [], "key": "opensearch/insight-lifecycle-and-feedback", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DescribeInsightDetails", "opensearch:InsightFeedback", "opensearch:ListInsights", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_insight_lifecycle_and_feedback.py", "service": "opensearch"} {"check_id": "opensearch.insights-management", "deployments": [], "key": "opensearch/insights-management", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeInsightDetails", "opensearch:ListInsights"], "path": "behavioral/opensearch/check_insights_management.py", "service": "opensearch"} {"check_id": "opensearch.instance-catalog-enum-semantics", "deployments": [], "key": "opensearch/instance-catalog-enum-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DescribeInstanceTypeLimits", "opensearch:ListInstanceTypeDetails", "opensearch:ListVersions"], "path": "behavioral/opensearch/check_instance_catalog_enum_semantics.py", "service": "opensearch"} {"check_id": "opensearch.instance-type-catalog-consistency", "deployments": [], "key": "opensearch/instance-type-catalog-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DescribeInstanceTypeLimits", "opensearch:ListInstanceTypeDetails"], "path": "behavioral/opensearch/check_instance_type_catalog_consistency.py", "service": "opensearch"} {"check_id": "opensearch.ism-policy-transition-sets-read-only-and-unmet-condition-stays-writable", "deployments": [], "key": "opensearch/ism-policy-transition-sets-read-only-and-unmet-condition-stays-writable", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_ism_policy_transition_sets_read_only_and_unmet_condition_stays_writable.py", "service": "opensearch"} {"check_id": "opensearch.knn-vector-query-nearest-neighbour-ordering", "deployments": [], "key": "opensearch/knn-vector-query-nearest-neighbour-ordering", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_knn_vector_query_nearest_neighbour_ordering.py", "service": "opensearch"} {"check_id": "opensearch.list-data-source-attachments-disabled-when-feature-off", "deployments": [], "key": "opensearch/list-data-source-attachments-disabled-when-feature-off", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_list_data_source_attachments_disabled_when_feature_off.py", "service": "opensearch"} {"check_id": "opensearch.list-data-source-attachments-stable-creation-ordering", "deployments": [], "key": "opensearch/list-data-source-attachments-stable-creation-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_list_data_source_attachments_stable_creation_ordering.py", "service": "opensearch"} {"check_id": "opensearch.list-migrations-disabled-operation-unsupported-config", "deployments": [], "key": "opensearch/list-migrations-disabled-operation-unsupported-config", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListMigrations"], "path": "behavioral/opensearch/check_list_migrations_disabled_operation_unsupported_config.py", "service": "opensearch"} {"check_id": "opensearch.list-migrations-most-recent-first-ordering", "deployments": [], "key": "opensearch/list-migrations-most-recent-first-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DeleteApplication", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_list_migrations_most_recent_first_ordering.py", "service": "opensearch"} {"check_id": "opensearch.list-tags-nonexistent-arn-not-found", "deployments": [], "key": "opensearch/list-tags-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AddTags", "opensearch:ListTags", "opensearch:RemoveTags", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_list_tags_nonexistent_arn_not_found.py", "service": "opensearch"} {"check_id": "opensearch.list-vpc-endpoints-for-domain-missing-domain-returns-empty", "deployments": [], "key": "opensearch/list-vpc-endpoints-for-domain-missing-domain-returns-empty", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:DescribeDomain", "opensearch:ListDomainNames", "opensearch:ListVpcEndpointsForDomain"], "path": "behavioral/opensearch/check_list_vpc_endpoints_for_domain_missing_domain_returns_empty.py", "service": "opensearch"} {"check_id": "opensearch.managed-domain-strips-index-blocks-write-but-honours-read-only", "deployments": [], "key": "opensearch/managed-domain-strips-index-blocks-write-but-honours-read-only", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_managed_domain_strips_index_blocks_write_but_honours_read_only.py", "service": "opensearch"} {"check_id": "opensearch.migration-listing-recency-ordering", "deployments": [], "key": "opensearch/migration-listing-recency-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DescribeDataSourceAttachment", "opensearch:DetachDataSource", "opensearch:GetMigration", "opensearch:ListMigrations", "opensearch:StartMigration", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_migration_listing_recency_ordering.py", "service": "opensearch"} {"check_id": "opensearch.migration-progress-visibility-poll-window", "deployments": [], "key": "opensearch/migration-progress-visibility-poll-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DeleteApplication", "opensearch:GetApplication", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_migration_progress_visibility_poll_window.py", "service": "opensearch"} {"check_id": "opensearch.msearch-responses-are-positional-and-isolate-a-failing-slot", "deployments": [], "key": "opensearch/msearch-responses-are-positional-and-isolate-a-failing-slot", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_msearch_responses_are_positional_and_isolate_a_failing_slot.py", "service": "opensearch"} {"check_id": "opensearch.nested-mapping-isolates-sub-documents-from-flattened-object-matching", "deployments": [], "key": "opensearch/nested-mapping-isolates-sub-documents-from-flattened-object-matching", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_nested_mapping_isolates_sub_documents_from_flattened_object_matching.py", "service": "opensearch"} {"check_id": "opensearch.nodes-apis-redact-service-internals-while-reporting-the-configured-topology", "deployments": [], "key": "opensearch/nodes-apis-redact-service-internals-while-reporting-the-configured-topology", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_nodes_apis_redact_service_internals_while_reporting_the_configured_topology.py", "service": "opensearch"} {"check_id": "opensearch.off-peak-window-and-software-update-options", "deployments": [], "key": "opensearch/off-peak-window-and-software-update-options", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "opensearch:DescribeDomains", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_off_peak_window_and_software_update_options.py", "service": "opensearch"} {"check_id": "opensearch.opensearch-native-search-roundtrip", "deployments": [], "key": "opensearch/opensearch-native-search-roundtrip", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_opensearch_native_search_roundtrip.py", "service": "opensearch"} {"check_id": "opensearch.ordering-data-source-attachment-listing-order", "deployments": [], "key": "opensearch/ordering-data-source-attachment-listing-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_ordering_data_source_attachment_listing_order.py", "service": "opensearch"} {"check_id": "opensearch.ordering-package-version-history-sequence", "deployments": [], "key": "opensearch/ordering-package-version-history-sequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/opensearch/check_ordering_package_version_history_sequence.py", "service": "opensearch"} {"check_id": "opensearch.ordering-upgrade-history-chronological-sequence", "deployments": [], "key": "opensearch/ordering-upgrade-history-chronological-sequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetCompatibleVersions", "opensearch:GetUpgradeHistory", "opensearch:GetUpgradeStatus", "opensearch:UpgradeDomain"], "path": "behavioral/opensearch/check_ordering_upgrade_history_chronological_sequence.py", "service": "opensearch"} {"check_id": "opensearch.os-index-document-search-roundtrip", "deployments": [], "key": "opensearch/os-index-document-search-roundtrip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain"], "path": "behavioral/opensearch/check_os_index_document_search_roundtrip.py", "service": "opensearch"} {"check_id": "opensearch.osc-deep-opensearch-1-over-replicated-index-yellow-then-green", "deployments": [], "key": "opensearch/osc-deep-opensearch-1-over-replicated-index-yellow-then-green", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osc_deep_opensearch_1_over_replicated_index_yellow_then_green.py", "service": "opensearch"} {"check_id": "opensearch.osc-immutable-number-of-shards-update-rejected", "deployments": [], "key": "opensearch/osc-immutable-number-of-shards-update-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osc_immutable_number_of_shards_update_rejected.py", "service": "opensearch"} {"check_id": "opensearch.osm-fgac-role-pattern-read-outside-pattern-denied", "deployments": [], "key": "opensearch/osm-fgac-role-pattern-read-outside-pattern-denied", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osm_fgac_role_pattern_read_outside_pattern_denied.py", "service": "opensearch"} {"check_id": "opensearch.osm-integer-field-mapping-conflict-rejected", "deployments": [], "key": "opensearch/osm-integer-field-mapping-conflict-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osm_integer_field_mapping_conflict_rejected.py", "service": "opensearch"} {"check_id": "opensearch.osm-refresh-gates-search-while-get-by-id-is-realtime", "deployments": [], "key": "opensearch/osm-refresh-gates-search-while-get-by-id-is-realtime", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osm_refresh_gates_search_while_get_by_id_is_realtime.py", "service": "opensearch"} {"check_id": "opensearch.osq-deep-opensearch-2-async-delete-by-query-task-completes-with-exact-subset", "deployments": [], "key": "opensearch/osq-deep-opensearch-2-async-delete-by-query-task-completes-with-exact-subset", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osq_deep_opensearch_2_async_delete_by_query_task_completes_with_exact_subset.py", "service": "opensearch"} {"check_id": "opensearch.osq-deep-opensearch-2-custom-routing-selects-the-shard-for-get-and-search", "deployments": [], "key": "opensearch/osq-deep-opensearch-2-custom-routing-selects-the-shard-for-get-and-search", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osq_deep_opensearch_2_custom_routing_selects_the_shard_for_get_and_search.py", "service": "opensearch"} {"check_id": "opensearch.osq-deep-opensearch-2-highlight-wraps-matched-term-on-text-but-not-keyword-sibling", "deployments": [], "key": "opensearch/osq-deep-opensearch-2-highlight-wraps-matched-term-on-text-but-not-keyword-sibling", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osq_deep_opensearch_2_highlight_wraps_matched_term_on_text_but_not_keyword_sibling.py", "service": "opensearch"} {"check_id": "opensearch.osq-deep-opensearch-2-template-priority-composition-and-equal-priority-overlap-rejected", "deployments": [], "key": "opensearch/osq-deep-opensearch-2-template-priority-composition-and-equal-priority-overlap-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osq_deep_opensearch_2_template_priority_composition_and_equal_priority_overlap_rejected.py", "service": "opensearch"} {"check_id": "opensearch.osq-deep-paging-past-result-window-rejected", "deployments": [], "key": "opensearch/osq-deep-paging-past-result-window-rejected", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osq_deep_paging_past_result_window_rejected.py", "service": "opensearch"} {"check_id": "opensearch.osq-terms-aggregation-and-sorted-pagination", "deployments": [], "key": "opensearch/osq-terms-aggregation-and-sorted-pagination", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osq_terms_aggregation_and_sorted_pagination.py", "service": "opensearch"} {"check_id": "opensearch.osx-deep-opensearch-3-blue-green-scale-out-data-continuity", "deployments": [], "key": "opensearch/osx-deep-opensearch-3-blue-green-scale-out-data-continuity", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osx_deep_opensearch_3_blue_green_scale_out_data_continuity.py", "service": "opensearch"} {"check_id": "opensearch.osx-deep-opensearch-3-cross-cluster-search-propagation", "deployments": [], "key": "opensearch/osx-deep-opensearch-3-cross-cluster-search-propagation", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["opensearch:AcceptInboundConnection", "opensearch:CreateDomain", "opensearch:CreateOutboundConnection", "opensearch:DeleteDomain", "opensearch:DeleteOutboundConnection", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_osx_deep_opensearch_3_cross_cluster_search_propagation.py", "service": "opensearch"} {"check_id": "opensearch.outbound-connection-lifecycle", "deployments": [], "key": "opensearch/outbound-connection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddTags", "opensearch:CreateDomain", "opensearch:CreateOutboundConnection", "opensearch:DeleteDomain", "opensearch:DeleteOutboundConnection", "opensearch:DescribeDomain", "opensearch:DescribeOutboundConnections", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_outbound_connection_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.outbound-connection-validation", "deployments": [], "key": "opensearch/outbound-connection-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateOutboundConnection", "opensearch:DeleteOutboundConnection", "opensearch:DescribeOutboundConnections", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_outbound_connection_validation.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-access-policy-rejected", "deployments": [], "key": "opensearch/overly-permissive-access-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:ListDomainNames", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_access_policy_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-attach-data-source-cross-account-rejected", "deployments": [], "key": "opensearch/overly-permissive-attach-data-source-cross-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:DescribeDataSourceAttachment", "opensearch:DescribeDomain", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments"], "path": "behavioral/opensearch/check_overly_permissive_attach_data_source_cross_account_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-attach-data-source-missing-role-rejected", "deployments": [], "key": "opensearch/overly-permissive-attach-data-source-missing-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DescribeDataSourceAttachment", "opensearch:DetachDataSource", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_attach_data_source_missing_role_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-attach-data-source-unsupported-type-rejected", "deployments": [], "key": "opensearch/overly-permissive-attach-data-source-unsupported-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_attach_data_source_unsupported_type_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-cluster-config-rules", "deployments": [], "key": "opensearch/overly-permissive-cluster-config-rules", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:ListDomainNames"], "path": "behavioral/opensearch/check_overly_permissive_cluster_config_rules.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-data-source-attach-unauthorized-role-rejected", "deployments": [], "key": "opensearch/overly-permissive-data-source-attach-unauthorized-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DescribeDataSourceAttachment", "opensearch:GetApplication", "opensearch:ListDataSourceAttachments", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_data_source_attach_unauthorized_role_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-domain-endpoint-options-rules", "deployments": [], "key": "opensearch/overly-permissive-domain-endpoint-options-rules", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_domain_endpoint_options_rules.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-domain-name-rules", "deployments": [], "key": "opensearch/overly-permissive-domain-name-rules", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListDomainNames"], "path": "behavioral/opensearch/check_overly_permissive_domain_name_rules.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-engine-version-rejected", "deployments": [], "key": "opensearch/overly-permissive-engine-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:ListDomainNames"], "path": "behavioral/opensearch/check_overly_permissive_engine_version_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-fgac-requires-encryption-and-https", "deployments": [], "key": "opensearch/overly-permissive-fgac-requires-encryption-and-https", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_fgac_requires_encryption_and_https.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-index-mapping-type-change-rejected", "deployments": [], "key": "opensearch/overly-permissive-index-mapping-type-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_overly_permissive_index_mapping_type_change_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-invalid-instance-type-for-engine", "deployments": [], "key": "opensearch/overly-permissive-invalid-instance-type-for-engine", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:ListDomainNames"], "path": "behavioral/opensearch/check_overly_permissive_invalid_instance_type_for_engine.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-migration-invalid-source-endpoint-rejected", "deployments": [], "key": "opensearch/overly-permissive-migration-invalid-source-endpoint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListMigrations", "opensearch:StartMigration", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_migration_invalid_source_endpoint_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-package-missing-and-bad-source", "deployments": [], "key": "opensearch/overly-permissive-package-missing-and-bad-source", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:ListDomainsForPackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_overly_permissive_package_missing_and_bad_source.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-scheduled-action-invalid-type-rejected", "deployments": [], "key": "opensearch/overly-permissive-scheduled-action-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListScheduledActions", "opensearch:UpdateScheduledAction", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_scheduled_action_invalid_type_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-storage-tier-dependency-rules", "deployments": [], "key": "opensearch/overly-permissive-storage-tier-dependency-rules", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_storage_tier_dependency_rules.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-update-index-disabled-feature-blocked", "deployments": [], "key": "opensearch/overly-permissive-update-index-disabled-feature-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_overly_permissive_update_index_disabled_feature_blocked.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-update-index-invalid-mapping-rejected", "deployments": [], "key": "opensearch/overly-permissive-update-index-invalid-mapping-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_overly_permissive_update_index_invalid_mapping_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-vpc-endpoint-update-invalid-security-group-rejected", "deployments": [], "key": "opensearch/overly-permissive-vpc-endpoint-update-invalid-security-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:UpdateVpcEndpoint"], "path": "behavioral/opensearch/check_overly_permissive_vpc_endpoint_update_invalid_security_group_rejected.py", "service": "opensearch"} {"check_id": "opensearch.overly-permissive-vpc-endpoint-update-malformed-sg-rejected", "deployments": [], "key": "opensearch/overly-permissive-vpc-endpoint-update-malformed-sg-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:UpdateVpcEndpoint", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_overly_permissive_vpc_endpoint_update_malformed_sg_rejected.py", "service": "opensearch"} {"check_id": "opensearch.package-association-batch-lifecycle", "deployments": [], "key": "opensearch/package-association-batch-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DeleteDomain", "opensearch:DeletePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/opensearch/check_package_association_batch_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.package-association-lifecycle", "deployments": [], "key": "opensearch/package-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AssociatePackage", "opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackage", "opensearch:DissociatePackages", "opensearch:ListDomainsForPackage", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_package_association_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.package-association-ops-on-missing-domain", "deployments": [], "key": "opensearch/package-association-ops-on-missing-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackage", "opensearch:DescribePackages", "opensearch:DissociatePackage", "opensearch:ListPackagesForDomain"], "path": "behavioral/opensearch/check_package_association_ops_on_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.package-catalog-listing-consistency", "deployments": [], "key": "opensearch/package-catalog-listing-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:AddTags", "opensearch:AssociatePackage", "opensearch:CreateDomain", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackage", "opensearch:ListDomainsForPackage", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_package_catalog_listing_consistency.py", "service": "opensearch"} {"check_id": "opensearch.package-dissociation-blocks-dependent-index-creation-rejected", "deployments": [], "key": "opensearch/package-dissociation-blocks-dependent-index-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:GetIndex", "opensearch:ListPackagesForDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_package_dissociation_blocks_dependent_index_creation_rejected.py", "service": "opensearch"} {"check_id": "opensearch.package-lifecycle-create-delete", "deployments": [], "key": "opensearch/package-lifecycle-create-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:DissociatePackage", "opensearch:GetPackageVersionHistory", "opensearch:ListDomainsForPackage", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_package_lifecycle_create_delete.py", "service": "opensearch"} {"check_id": "opensearch.package-scope-invalid-account-rejected", "deployments": [], "key": "opensearch/package-scope-invalid-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:UpdatePackageScope", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/opensearch/check_package_scope_invalid_account_rejected.py", "service": "opensearch"} {"check_id": "opensearch.package-scope-update-semantics", "deployments": [], "key": "opensearch/package-scope-update-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:UpdatePackageScope", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_package_scope_update_semantics.py", "service": "opensearch"} {"check_id": "opensearch.package-version-history-chronological-ordering", "deployments": [], "key": "opensearch/package-version-history-chronological-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_package_version_history_chronological_ordering.py", "service": "opensearch"} {"check_id": "opensearch.package-version-history-monotonic-ordering", "deployments": [], "key": "opensearch/package-version-history-monotonic-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/opensearch/check_package_version_history_monotonic_ordering.py", "service": "opensearch"} {"check_id": "opensearch.package-version-history-retention-window", "deployments": [], "key": "opensearch/package-version-history-retention-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_package_version_history_retention_window.py", "service": "opensearch"} {"check_id": "opensearch.point-in-time-search-after-walk-isolated-from-concurrent-indexing", "deployments": [], "key": "opensearch/point-in-time-search-after-walk-isolated-from-concurrent-indexing", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_point_in_time_search_after_walk_isolated_from_concurrent_indexing.py", "service": "opensearch"} {"check_id": "opensearch.query-dsl-malformed-queries-rejected-with-parse-errors", "deployments": [], "key": "opensearch/query-dsl-malformed-queries-rejected-with-parse-errors", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_query_dsl_malformed_queries_rejected_with_parse_errors.py", "service": "opensearch"} {"check_id": "opensearch.reindex-into-keyword-mapping-preserves-documents-and-enables-term-match", "deployments": [], "key": "opensearch/reindex-into-keyword-mapping-preserves-documents-and-enables-term-match", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_reindex_into_keyword_mapping_preserves_documents_and_enables_term_match.py", "service": "opensearch"} {"check_id": "opensearch.representation-default-application-setting-empty-vs-absent-preserved", "deployments": [], "key": "opensearch/representation-default-application-setting-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:GetDefaultApplicationSetting", "opensearch:PutDefaultApplicationSetting"], "path": "behavioral/opensearch/check_representation_default_application_setting_empty_vs_absent_preserved.py", "service": "opensearch"} {"check_id": "opensearch.representation-direct-query-datasource-config-blob-round-trip", "deployments": [], "key": "opensearch/representation-direct-query-datasource-config-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "opensearch:AddDirectQueryDataSource", "opensearch:DeleteDirectQueryDataSource", "opensearch:GetDirectQueryDataSource", "opensearch:UpdateDirectQueryDataSource", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_representation_direct_query_datasource_config_blob_round_trip.py", "service": "opensearch"} {"check_id": "opensearch.representation-migration-timestamp-precision-preserved", "deployments": [], "key": "opensearch/representation-migration-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DeleteApplication", "opensearch:GetApplication", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_representation_migration_timestamp_precision_preserved.py", "service": "opensearch"} {"check_id": "opensearch.representation-package-version-numeric-size-precision-preserved", "deployments": [], "key": "opensearch/representation-package-version-numeric-size-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_representation_package_version_numeric_size_precision_preserved.py", "service": "opensearch"} {"check_id": "opensearch.representation-unicode-application-name-persists", "deployments": [], "key": "opensearch/representation-unicode-application-name-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListTags"], "path": "behavioral/opensearch/check_representation_unicode_application_name_persists.py", "service": "opensearch"} {"check_id": "opensearch.reserved-instance-offerings-readonly-semantics", "deployments": [], "key": "opensearch/reserved-instance-offerings-readonly-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:DescribeReservedInstanceOfferings", "opensearch:DescribeReservedInstances"], "path": "behavioral/opensearch/check_reserved_instance_offerings_readonly_semantics.py", "service": "opensearch"} {"check_id": "opensearch.reserved-instance-purchase-and-list", "deployments": [], "key": "opensearch/reserved-instance-purchase-and-list", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:DescribeReservedInstances", "opensearch:PurchaseReservedInstanceOffering"], "path": "behavioral/opensearch/check_reserved_instance_purchase_and_list.py", "service": "opensearch"} {"check_id": "opensearch.restore-over-open-index-rejected", "deployments": [], "key": "opensearch/restore-over-open-index-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_restore_over_open_index_rejected.py", "service": "opensearch"} {"check_id": "opensearch.rollback-service-software-disabled-without-active-update", "deployments": [], "key": "opensearch/rollback-service-software-disabled-without-active-update", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:RollbackServiceSoftwareUpdate", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_rollback_service_software_disabled_without_active_update.py", "service": "opensearch"} {"check_id": "opensearch.rollback-service-software-disabled-without-in-progress-update", "deployments": [], "key": "opensearch/rollback-service-software-disabled-without-in-progress-update", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:RollbackServiceSoftwareUpdate", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_rollback_service_software_disabled_without_in_progress_update.py", "service": "opensearch"} {"check_id": "opensearch.rollback-service-software-update-no-update-in-progress-error", "deployments": [], "key": "opensearch/rollback-service-software-update-no-update-in-progress-error", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListTags", "opensearch:RollbackServiceSoftwareUpdate"], "path": "behavioral/opensearch/check_rollback_service_software_update_no_update_in_progress_error.py", "service": "opensearch"} {"check_id": "opensearch.rollback-service-software-update-no-update-in-progress-rejected", "deployments": [], "key": "opensearch/rollback-service-software-update-no-update-in-progress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:RollbackServiceSoftwareUpdate"], "path": "behavioral/opensearch/check_rollback_service_software_update_no_update_in_progress_rejected.py", "service": "opensearch"} {"check_id": "opensearch.scheduled-action-and-maintenance-ops-on-missing-domain", "deployments": [], "key": "opensearch/scheduled-action-and-maintenance-ops-on-missing-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:ListDomainMaintenances", "opensearch:ListScheduledActions"], "path": "behavioral/opensearch/check_scheduled_action_and_maintenance_ops_on_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.scheduled-action-listing", "deployments": [], "key": "opensearch/scheduled-action-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListScheduledActions"], "path": "behavioral/opensearch/check_scheduled_action_listing.py", "service": "opensearch"} {"check_id": "opensearch.scroll-pagination-returns-each-document-exactly-once", "deployments": [], "key": "opensearch/scroll-pagination-returns-each-document-exactly-once", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_scroll_pagination_returns_each_document_exactly_once.py", "service": "opensearch"} {"check_id": "opensearch.search-aggregation-query-bucket-ordering", "deployments": [], "key": "opensearch/search-aggregation-query-bucket-ordering", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_search_aggregation_query_bucket_ordering.py", "service": "opensearch"} {"check_id": "opensearch.search-sort-missing-last-multi-value-mode-and-exact-long-order", "deployments": [], "key": "opensearch/search-sort-missing-last-multi-value-mode-and-exact-long-order", "labels": ["axis:happy-path", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_search_sort_missing_last_multi_value_mode_and_exact_long_order.py", "service": "opensearch"} {"check_id": "opensearch.search-uri-query-exists-multi-match-and-date-field", "deployments": [], "key": "opensearch/search-uri-query-exists-multi-match-and-date-field", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain"], "path": "behavioral/opensearch/check_search_uri_query_exists_multi_match_and_date_field.py", "service": "opensearch"} {"check_id": "opensearch.server-side-service-software-rollback-window-enforced-rejected", "deployments": [], "key": "opensearch/server-side-service-software-rollback-window-enforced-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDomainConfig", "opensearch:RollbackServiceSoftwareUpdate"], "path": "behavioral/opensearch/check_server_side_service_software_rollback_window_enforced_rejected.py", "service": "opensearch"} {"check_id": "opensearch.service-software-ops-on-missing-domain", "deployments": [], "key": "opensearch/service-software-ops-on-missing-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CancelServiceSoftwareUpdate", "opensearch:GetUpgradeHistory", "opensearch:GetUpgradeStatus", "opensearch:StartServiceSoftwareUpdate"], "path": "behavioral/opensearch/check_service_software_ops_on_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.service-software-rollback-and-domain-upgrade", "deployments": [], "key": "opensearch/service-software-rollback-and-domain-upgrade", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetCompatibleVersions", "opensearch:ListVersions", "opensearch:RollbackServiceSoftwareUpdate", "opensearch:StartServiceSoftwareUpdate", "opensearch:UpgradeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_service_software_rollback_and_domain_upgrade.py", "service": "opensearch"} {"check_id": "opensearch.service-software-update-lifecycle", "deployments": [], "key": "opensearch/service-software-update-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CancelServiceSoftwareUpdate", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:RollbackServiceSoftwareUpdate", "opensearch:StartServiceSoftwareUpdate"], "path": "behavioral/opensearch/check_service_software_update_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.snapshot-restore-index-round-trip", "deployments": [], "key": "opensearch/snapshot-restore-index-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_snapshot_restore_index_round_trip.py", "service": "opensearch"} {"check_id": "opensearch.sorting-and-aggregating-a-text-field-rejected-while-its-keyword-subfield-serves-both", "deployments": [], "key": "opensearch/sorting-and-aggregating-a-text-field-rejected-while-its-keyword-subfield-serves-both", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_sorting_and_aggregating_a_text_field_rejected_while_its_keyword_subfield_serves_both.py", "service": "opensearch"} {"check_id": "opensearch.start-migration-invalid-source-version-rejected", "deployments": [], "key": "opensearch/start-migration-invalid-source-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:CreateDomain", "opensearch:DeleteApplication", "opensearch:DeleteDomain", "opensearch:GetApplication", "opensearch:ListMigrations", "opensearch:StartMigration"], "path": "behavioral/opensearch/check_start_migration_invalid_source_version_rejected.py", "service": "opensearch"} {"check_id": "opensearch.start-migration-invalid-workspace-type-rejected", "deployments": [], "key": "opensearch/start-migration-invalid-workspace-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AttachDataSource", "opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:DescribeDataSourceAttachment", "opensearch:GetApplication", "opensearch:ListMigrations", "opensearch:StartMigration", "opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy"], "path": "behavioral/opensearch/check_start_migration_invalid_workspace_type_rejected.py", "service": "opensearch"} {"check_id": "opensearch.start-migration-nonexistent-application-rejected", "deployments": [], "key": "opensearch/start-migration-nonexistent-application-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateApplication", "opensearch:DeleteApplication", "opensearch:GetApplication", "opensearch:ListMigrations", "opensearch:StartMigration", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_start_migration_nonexistent_application_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-by-query-script-touches-exactly-the-matched-documents", "deployments": [], "key": "opensearch/update-by-query-script-touches-exactly-the-matched-documents", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_update_by_query_script_touches_exactly_the_matched_documents.py", "service": "opensearch"} {"check_id": "opensearch.update-index-dependency-failure-on-broken-mapping-rejected", "deployments": [], "key": "opensearch/update-index-dependency-failure-on-broken-mapping-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_update_index_dependency_failure_on_broken_mapping_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-index-dependency-failure-on-unavailable-package", "deployments": [], "key": "opensearch/update-index-dependency-failure-on-unavailable-package", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AssociatePackages", "opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:CreatePackage", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DeletePackage", "opensearch:DescribeDomain", "opensearch:DescribePackages", "opensearch:DissociatePackages", "opensearch:GetIndex", "opensearch:ListPackagesForDomain", "opensearch:UpdateIndex", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_update_index_dependency_failure_on_unavailable_package.py", "service": "opensearch"} {"check_id": "opensearch.update-index-insufficient-permission-denied", "deployments": [], "key": "opensearch/update-index-insufficient-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_update_index_insufficient_permission_denied.py", "service": "opensearch"} {"check_id": "opensearch.update-index-invalid-mapping-dependency-failure-rejected", "deployments": [], "key": "opensearch/update-index-invalid-mapping-dependency-failure-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_update_index_invalid_mapping_dependency_failure_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-index-malformed-mapping-rejected", "deployments": [], "key": "opensearch/update-index-malformed-mapping-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_update_index_malformed_mapping_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-index-malformed-settings-rejected", "deployments": [], "key": "opensearch/update-index-malformed-settings-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex"], "path": "behavioral/opensearch/check_update_index_malformed_settings_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-index-optimistic-lock-conflicting-mapping-writes", "deployments": [], "key": "opensearch/update-index-optimistic-lock-conflicting-mapping-writes", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:CreateIndex", "opensearch:DeleteDomain", "opensearch:DeleteIndex", "opensearch:DescribeDomain", "opensearch:GetIndex", "opensearch:UpdateIndex", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_update_index_optimistic_lock_conflicting_mapping_writes.py", "service": "opensearch"} {"check_id": "opensearch.update-package-concurrent-version-bump-serialized", "deployments": [], "key": "opensearch/update-package-concurrent-version-bump-serialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:GetPackageVersionHistory", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject"], "path": "behavioral/opensearch/check_update_package_concurrent_version_bump_serialized.py", "service": "opensearch"} {"check_id": "opensearch.update-package-invalid-version-format-base-exception", "deployments": [], "key": "opensearch/update-package-invalid-version-format-base-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreatePackage", "opensearch:DeletePackage", "opensearch:DescribePackages", "opensearch:UpdatePackage", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/opensearch/check_update_package_invalid_version_format_base_exception.py", "service": "opensearch"} {"check_id": "opensearch.update-scheduled-action-conflicting-window-rejected", "deployments": [], "key": "opensearch/update-scheduled-action-conflicting-window-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListScheduledActions", "opensearch:UpdateScheduledAction"], "path": "behavioral/opensearch/check_update_scheduled_action_conflicting_window_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-vpc-endpoint-concurrent-config-race-conflict", "deployments": [], "key": "opensearch/update-vpc-endpoint-concurrent-config-race-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:UpdateVpcEndpoint"], "path": "behavioral/opensearch/check_update_vpc_endpoint_concurrent_config_race_conflict.py", "service": "opensearch"} {"check_id": "opensearch.update-vpc-endpoint-conflict-on-concurrent-modify-rejected", "deployments": [], "key": "opensearch/update-vpc-endpoint-conflict-on-concurrent-modify-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:CreateServiceLinkedRole", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:UpdateVpcEndpoint", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_update_vpc_endpoint_conflict_on_concurrent_modify_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-vpc-endpoint-invalid-subnet-rejected", "deployments": [], "key": "opensearch/update-vpc-endpoint-invalid-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:UpdateVpcEndpoint"], "path": "behavioral/opensearch/check_update_vpc_endpoint_invalid_subnet_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-vpc-endpoint-out-of-range-config-rejected", "deployments": [], "key": "opensearch/update-vpc-endpoint-out-of-range-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:CreateServiceLinkedRole", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:UpdateVpcEndpoint", "service-quotas:GetServiceQuota"], "path": "behavioral/opensearch/check_update_vpc_endpoint_out_of_range_config_rejected.py", "service": "opensearch"} {"check_id": "opensearch.update-vpc-endpoint-out-of-range-subnet-rejected", "deployments": [], "key": "opensearch/update-vpc-endpoint-out-of-range-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:UpdateVpcEndpoint"], "path": "behavioral/opensearch/check_update_vpc_endpoint_out_of_range_subnet_rejected.py", "service": "opensearch"} {"check_id": "opensearch.upgrade-domain-incompatible-version-rejected", "deployments": [], "key": "opensearch/upgrade-domain-incompatible-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetCompatibleVersions", "opensearch:UpgradeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_upgrade_domain_incompatible_version_rejected.py", "service": "opensearch"} {"check_id": "opensearch.upgrade-domain-server-managed-progress-tracking", "deployments": [], "key": "opensearch/upgrade-domain-server-managed-progress-tracking", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:GetCompatibleVersions", "opensearch:GetUpgradeHistory", "opensearch:GetUpgradeStatus", "opensearch:UpgradeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_upgrade_domain_server_managed_progress_tracking.py", "service": "opensearch"} {"check_id": "opensearch.version-catalog-listing", "deployments": [], "key": "opensearch/version-catalog-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListVersions"], "path": "behavioral/opensearch/check_version_catalog_listing.py", "service": "opensearch"} {"check_id": "opensearch.visibility-timeout-ttl-dry-run-progress-expiry", "deployments": [], "key": "opensearch/visibility-timeout-ttl-dry-run-progress-expiry", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeDryRunProgress", "opensearch:UpdateDomainConfig"], "path": "behavioral/opensearch/check_visibility_timeout_ttl_dry_run_progress_expiry.py", "service": "opensearch"} {"check_id": "opensearch.visibility-timeout-ttl-service-software-rollback-window-accepted", "deployments": [], "key": "opensearch/visibility-timeout-ttl-service-software-rollback-window-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:RollbackServiceSoftwareUpdate", "opensearch:UpdateDomainConfig"], "path": "behavioral/opensearch/check_visibility_timeout_ttl_service_software_rollback_window_accepted.py", "service": "opensearch"} {"check_id": "opensearch.vpc-endpoint-access-authorize-revoke-listing", "deployments": [], "key": "opensearch/vpc-endpoint-access-authorize-revoke-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "opensearch:AuthorizeVpcEndpointAccess", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:ListVpcEndpointAccess", "opensearch:ListVpcEndpoints", "opensearch:RevokeVpcEndpointAccess", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_vpc_endpoint_access_authorize_revoke_listing.py", "service": "opensearch"} {"check_id": "opensearch.vpc-endpoint-access-lifecycle", "deployments": [], "key": "opensearch/vpc-endpoint-access-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:CreateServiceLinkedRole", "opensearch:AuthorizeVpcEndpointAccess", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListVpcEndpointAccess", "opensearch:RevokeVpcEndpointAccess"], "path": "behavioral/opensearch/check_vpc_endpoint_access_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.vpc-endpoint-access-ops-on-missing-domain", "deployments": [], "key": "opensearch/vpc-endpoint-access-ops-on-missing-domain", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearch:AuthorizeVpcEndpointAccess", "opensearch:ListVpcEndpointAccess", "opensearch:RevokeVpcEndpointAccess", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_vpc_endpoint_access_ops_on_missing_domain.py", "service": "opensearch"} {"check_id": "opensearch.vpc-endpoint-error-semantics", "deployments": [], "key": "opensearch/vpc-endpoint-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "opensearch:CreateVpcEndpoint", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeVpcEndpoints", "opensearch:ListVpcEndpoints", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_vpc_endpoint_error_semantics.py", "service": "opensearch"} {"check_id": "opensearch.vpc-endpoint-lifecycle", "deployments": [], "key": "opensearch/vpc-endpoint-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "opensearch:CreateDomain", "opensearch:CreateVpcEndpoint", "opensearch:DeleteDomain", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:ListVpcEndpoints", "opensearch:ListVpcEndpointsForDomain", "opensearch:UpdateVpcEndpoint"], "path": "behavioral/opensearch/check_vpc_endpoint_lifecycle.py", "service": "opensearch"} {"check_id": "opensearch.vpc-endpoint-list-and-delete-lifecycle-observed", "deployments": [], "key": "opensearch/vpc-endpoint-list-and-delete-lifecycle-observed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "iam:CreateServiceLinkedRole", "opensearch:CreateVpcEndpoint", "opensearch:DeleteVpcEndpoint", "opensearch:DescribeDomain", "opensearch:DescribeVpcEndpoints", "opensearch:ListVpcEndpointsForDomain"], "path": "behavioral/opensearch/check_vpc_endpoint_list_and_delete_lifecycle_observed.py", "service": "opensearch"} {"check_id": "opensearch.vpc-endpoint-revoke-unauthorized-principal-rejected", "deployments": [], "key": "opensearch/vpc-endpoint-revoke-unauthorized-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "opensearch:AuthorizeVpcEndpointAccess", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "opensearch:ListVpcEndpointAccess", "opensearch:RevokeVpcEndpointAccess", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_vpc_endpoint_revoke_unauthorized_principal_rejected.py", "service": "opensearch"} {"check_id": "opensearch.vpc-endpoint-update-and-domain-listing", "deployments": [], "key": "opensearch/vpc-endpoint-update-and-domain-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeNetworkInterfaces"], "path": "behavioral/opensearch/check_vpc_endpoint_update_and_domain_listing.py", "service": "opensearch"} {"check_id": "opensearch.write-alias-rollover-routes-new-writes-to-new-backing-index", "deployments": [], "key": "opensearch/write-alias-rollover-routes-new-writes-to-new-backing-index", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sts:GetCallerIdentity"], "path": "behavioral/opensearch/check_write_alias_rollover_routes_new_writes_to_new_backing_index.py", "service": "opensearch"} {"check_id": "opensearch__s3.snapshot-writes-objects-under-the-declared-base-path-and-delete-removes-them", "deployments": [], "key": "opensearch__s3/snapshot-writes-objects-under-the-declared-base-path-and-delete-removes-them", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/opensearch__s3/check_snapshot_writes_objects_under_the_declared_base_path_and_delete_removes_them.py", "service": "opensearch__s3"} {"check_id": "opensearch__sns__sqs.alerting-monitor-trigger-publishes-the-rendered-count-to-sns-and-withholds-it-when-false", "deployments": [], "key": "opensearch__sns__sqs/alerting-monitor-trigger-publishes-the-rendered-count-to-sns-and-withholds-it-when-false", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "opensearch:CreateDomain", "opensearch:DeleteDomain", "opensearch:DescribeDomain", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/opensearch__sns__sqs/check_alerting_monitor_trigger_publishes_the_rendered_count_to_sns_and_withholds_it_when_false.py", "service": "opensearch__sns__sqs"} {"check_id": "opensearchserverless.access-policy-empty-principal-malformed-rejected", "deployments": [], "key": "opensearchserverless/access-policy-empty-principal-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateAccessPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:GetAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_access_policy_empty_principal_malformed_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.access-policy-json-document-byte-preservation", "deployments": [], "key": "opensearchserverless/access-policy-json-document-byte-preservation", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:CreateAccessPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:GetAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_access_policy_json_document_byte_preservation.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.access-policy-lifecycle-transitions", "deployments": [], "key": "opensearchserverless/access-policy-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:CreateAccessPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:GetAccessPolicy", "opensearchserverless:ListAccessPolicies", "opensearchserverless:UpdateAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_access_policy_lifecycle_transitions.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.batchget-collection-group-partial-not-found-error", "deployments": [], "key": "opensearchserverless/batchget-collection-group-partial-not-found-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollectionGroup", "opensearchserverless:CreateCollectionGroup", "opensearchserverless:DeleteCollectionGroup"], "path": "behavioral/opensearchserverless/check_batchget_collection_group_partial_not_found_error.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.batchget-collection-partial-not-found-returns-per-item-error", "deployments": [], "key": "opensearchserverless/batchget-collection-partial-not-found-returns-per-item-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy"], "path": "behavioral/opensearchserverless/check_batchget_collection_partial_not_found_returns_per_item_error.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.batchget-lifecycle-policy-partial-not-found-error", "deployments": [], "key": "opensearchserverless/batchget-lifecycle-policy-partial-not-found-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetLifecyclePolicy", "opensearchserverless:CreateLifecyclePolicy", "opensearchserverless:DeleteLifecyclePolicy", "opensearchserverless:UpdateLifecyclePolicy"], "path": "behavioral/opensearchserverless/check_batchget_lifecycle_policy_partial_not_found_error.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.batchget-vpc-endpoint-partial-not-found-error", "deployments": [], "key": "opensearchserverless/batchget-vpc-endpoint-partial-not-found-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetVpcEndpoint", "opensearchserverless:CreateVpcEndpoint", "opensearchserverless:DeleteVpcEndpoint"], "path": "behavioral/opensearchserverless/check_batchget_vpc_endpoint_partial_not_found_error.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.collection-deletion-grace-period-before-purge", "deployments": [], "key": "opensearchserverless/collection-deletion-grace-period-before-purge", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection", "opensearchserverless:ListCollections"], "path": "behavioral/opensearchserverless/check_collection_deletion_grace_period_before_purge.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.collection-endpoint-requires-aoss-sigv4-service-name", "deployments": [], "key": "opensearchserverless/collection-endpoint-requires-aoss-sigv4-service-name", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_collection_endpoint_requires_aoss_sigv4_service_name.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.collection-group-lifecycle-transitions", "deployments": [], "key": "opensearchserverless/collection-group-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollectionGroup", "opensearchserverless:CreateCollectionGroup", "opensearchserverless:DeleteCollectionGroup"], "path": "behavioral/opensearchserverless/check_collection_group_lifecycle_transitions.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.collection-lifecycle-transitions", "deployments": [], "key": "opensearchserverless/collection-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection", "opensearchserverless:ListCollections"], "path": "behavioral/opensearchserverless/check_collection_lifecycle_transitions.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.concurrent-create-collection-same-name-single-winner", "deployments": [], "key": "opensearchserverless/concurrent-create-collection-same-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy"], "path": "behavioral/opensearchserverless/check_concurrent_create_collection_same_name_single_winner.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.create-access-policy-idempotent-clienttoken", "deployments": [], "key": "opensearchserverless/create-access-policy-idempotent-clienttoken", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:CreateAccessPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:GetAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_create_access_policy_idempotent_clienttoken.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.create-collection-duplicate-name-conflict-rejected", "deployments": [], "key": "opensearchserverless/create-collection-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection"], "path": "behavioral/opensearchserverless/check_create_collection_duplicate_name_conflict_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.create-collection-idempotent-clienttoken", "deployments": [], "key": "opensearchserverless/create-collection-idempotent-clienttoken", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy"], "path": "behavioral/opensearchserverless/check_create_collection_idempotent_clienttoken.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.create-collection-malformed-name-validation-rejected", "deployments": [], "key": "opensearchserverless/create-collection-malformed-name-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:ListCollections"], "path": "behavioral/opensearchserverless/check_create_collection_malformed_name_validation_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.create-collection-without-encryption-config-or-policy-rejected", "deployments": [], "key": "opensearchserverless/create-collection-without-encryption-config-or-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:ListCollections"], "path": "behavioral/opensearchserverless/check_create_collection_without_encryption_config_or_policy_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.create-index-nonexistent-collection-rejected", "deployments": [], "key": "opensearchserverless/create-index-nonexistent-collection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteIndex", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetIndex", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_create_index_nonexistent_collection_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.create-security-config-quota-exceeded-rejected", "deployments": [], "key": "opensearchserverless/create-security-config-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateSecurityConfig", "opensearchserverless:DeleteSecurityConfig", "opensearchserverless:GetSecurityConfig", "opensearchserverless:ListSecurityConfigs"], "path": "behavioral/opensearchserverless/check_create_security_config_quota_exceeded_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.create-security-policy-idempotent-clienttoken", "deployments": [], "key": "opensearchserverless/create-security-policy-idempotent-clienttoken", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetSecurityPolicy"], "path": "behavioral/opensearchserverless/check_create_security_policy_idempotent_clienttoken.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.delete-collection-deletion-protection-rejected", "deployments": [], "key": "opensearchserverless/delete-collection-deletion-protection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection", "opensearchserverless:UpdateCollection"], "path": "behavioral/opensearchserverless/check_delete_collection_deletion_protection_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.delete-collection-group-nonempty-rejected", "deployments": [], "key": "opensearchserverless/delete-collection-group-nonempty-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:BatchGetCollectionGroup", "opensearchserverless:CreateCollection", "opensearchserverless:CreateCollectionGroup", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteCollectionGroup", "opensearchserverless:UpdateCollectionGroup"], "path": "behavioral/opensearchserverless/check_delete_collection_group_nonempty_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.delete-collection-group-with-collections-blocked", "deployments": [], "key": "opensearchserverless/delete-collection-group-with-collections-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:BatchGetCollectionGroup", "opensearchserverless:CreateCollection", "opensearchserverless:CreateCollectionGroup", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteCollectionGroup", "opensearchserverless:DeleteSecurityPolicy"], "path": "behavioral/opensearchserverless/check_delete_collection_group_with_collections_blocked.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.delete-collection-while-creating-rejected", "deployments": [], "key": "opensearchserverless/delete-collection-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection"], "path": "behavioral/opensearchserverless/check_delete_collection_while_creating_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.delete-collection-with-active-index-cascades", "deployments": [], "key": "opensearchserverless/delete-collection-with-active-index-cascades", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetIndex"], "path": "behavioral/opensearchserverless/check_delete_collection_with_active_index_cascades.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.delete-nonexistent-access-policy-resourcenotfound", "deployments": [], "key": "opensearchserverless/delete-nonexistent-access-policy-resourcenotfound", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateAccessPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:GetAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_delete_nonexistent_access_policy_resourcenotfound.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.deleted-collection-cascades-to-indexes", "deployments": [], "key": "opensearchserverless/deleted-collection-cascades-to-indexes", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetIndex", "opensearchserverless:ListCollections", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_deleted_collection_cascades_to_indexes.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.deploy-collection-cfn-becomes-active", "deployments": [], "key": "opensearchserverless/deploy-collection-cfn-becomes-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearchserverless:BatchGetCollection"], "path": "behavioral/opensearchserverless/check_deploy_collection_cfn_becomes_active.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.deploy-security-policy-cfn-enforced", "deployments": [], "key": "opensearchserverless/deploy-security-policy-cfn-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "opensearchserverless:BatchGetCollection", "opensearchserverless:GetSecurityPolicy"], "path": "behavioral/opensearchserverless/check_deploy_security_policy_cfn_enforced.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.deploy-vpc-endpoint-cfn-becomes-available", "deployments": [], "key": "opensearchserverless/deploy-vpc-endpoint-cfn-becomes-available", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "opensearchserverless:BatchGetVpcEndpoint"], "path": "behavioral/opensearchserverless/check_deploy_vpc_endpoint_cfn_becomes_available.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.e2e-collection-index-lifecycle-teardown", "deployments": [], "key": "opensearchserverless/e2e-collection-index-lifecycle-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:BatchGetEffectiveLifecyclePolicy", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateLifecyclePolicy", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteLifecyclePolicy", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetIndex", "opensearchserverless:ListCollections", "opensearchserverless:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_e2e_collection_index_lifecycle_teardown.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.get-nonexistent-security-config-resourcenotfound", "deployments": [], "key": "opensearchserverless/get-nonexistent-security-config-resourcenotfound", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateSecurityConfig", "opensearchserverless:DeleteSecurityConfig", "opensearchserverless:GetSecurityConfig", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_get_nonexistent_security_config_resourcenotfound.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.get-policies-stats-counts-track-policy-lifecycle", "deployments": [], "key": "opensearchserverless/get-policies-stats-counts-track-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetPoliciesStats", "opensearchserverless:GetSecurityPolicy"], "path": "behavioral/opensearchserverless/check_get_policies_stats_counts_track_policy_lifecycle.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.index-lifecycle-transitions", "deployments": [], "key": "opensearchserverless/index-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteIndex", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetIndex", "opensearchserverless:UpdateIndex", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_index_lifecycle_transitions.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.index-mapping-json-round-trip", "deployments": [], "key": "opensearchserverless/index-mapping-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetIndex", "opensearchserverless:UpdateIndex", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_index_mapping_json_round_trip.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.lifecycle-policy-lifecycle-transitions", "deployments": [], "key": "opensearchserverless/lifecycle-policy-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetLifecyclePolicy", "opensearchserverless:CreateLifecyclePolicy", "opensearchserverless:DeleteLifecyclePolicy", "opensearchserverless:UpdateLifecyclePolicy"], "path": "behavioral/opensearchserverless/check_lifecycle_policy_lifecycle_transitions.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.lifecycle-policy-retention-window-enforced", "deployments": [], "key": "opensearchserverless/lifecycle-policy-retention-window-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:BatchGetEffectiveLifecyclePolicy", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateLifecyclePolicy", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteLifecyclePolicy", "opensearchserverless:DeleteSecurityPolicy"], "path": "behavioral/opensearchserverless/check_lifecycle_policy_retention_window_enforced.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.numeric-precision-ocu-capacity-preserved", "deployments": [], "key": "opensearchserverless/numeric-precision-ocu-capacity-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:GetAccountSettings", "opensearchserverless:UpdateAccountSettings"], "path": "behavioral/opensearchserverless/check_numeric_precision_ocu_capacity_preserved.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.security-config-lifecycle-transitions", "deployments": [], "key": "opensearchserverless/security-config-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:CreateSecurityConfig", "opensearchserverless:DeleteSecurityConfig", "opensearchserverless:GetSecurityConfig", "opensearchserverless:UpdateSecurityConfig"], "path": "behavioral/opensearchserverless/check_security_config_lifecycle_transitions.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.security-policy-lifecycle-transitions", "deployments": [], "key": "opensearchserverless/security-policy-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetSecurityPolicy", "opensearchserverless:ListSecurityPolicies", "opensearchserverless:UpdateSecurityPolicy"], "path": "behavioral/opensearchserverless/check_security_policy_lifecycle_transitions.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.server-side-account-capacity-limit-enforced", "deployments": [], "key": "opensearchserverless/server-side-account-capacity-limit-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetAccountSettings", "opensearchserverless:UpdateAccountSettings"], "path": "behavioral/opensearchserverless/check_server_side_account_capacity_limit_enforced.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.server-side-default-encryption-enforced-without-policy", "deployments": [], "key": "opensearchserverless/server-side-default-encryption-enforced-without-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetSecurityPolicy"], "path": "behavioral/opensearchserverless/check_server_side_default_encryption_enforced_without_policy.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.server-side-lifecycle-policy-auto-applied", "deployments": [], "key": "opensearchserverless/server-side-lifecycle-policy-auto-applied", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:BatchGetEffectiveLifecyclePolicy", "opensearchserverless:CreateAccessPolicy", "opensearchserverless:CreateCollection", "opensearchserverless:CreateIndex", "opensearchserverless:CreateLifecyclePolicy", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteLifecyclePolicy", "opensearchserverless:DeleteSecurityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_server_side_lifecycle_policy_auto_applied.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.tag-resource-on-missing-resource-not-found-rejected", "deployments": [], "key": "opensearchserverless/tag-resource-on-missing-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateCollectionGroup", "opensearchserverless:DeleteCollectionGroup", "opensearchserverless:ListTagsForResource", "opensearchserverless:TagResource"], "path": "behavioral/opensearchserverless/check_tag_resource_on_missing_resource_not_found_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.tag-unicode-value-round-trip", "deployments": [], "key": "opensearchserverless/tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:CreateCollectionGroup", "opensearchserverless:DeleteCollectionGroup", "opensearchserverless:ListTagsForResource", "opensearchserverless:TagResource"], "path": "behavioral/opensearchserverless/check_tag_unicode_value_round_trip.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.untag-resource-after-delete-blocked", "deployments": [], "key": "opensearchserverless/untag-resource-after-delete-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteCollection", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:ListTagsForResource", "opensearchserverless:UntagResource"], "path": "behavioral/opensearchserverless/check_untag_resource_after_delete_blocked.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.update-access-policy-concurrent-version-conflict", "deployments": [], "key": "opensearchserverless/update-access-policy-concurrent-version-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateAccessPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:GetAccessPolicy", "opensearchserverless:UpdateAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_update_access_policy_concurrent_version_conflict.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.update-access-policy-optimistic-lock-stale-version-rejected", "deployments": [], "key": "opensearchserverless/update-access-policy-optimistic-lock-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateAccessPolicy", "opensearchserverless:DeleteAccessPolicy", "opensearchserverless:GetAccessPolicy", "opensearchserverless:UpdateAccessPolicy", "sts:GetCallerIdentity"], "path": "behavioral/opensearchserverless/check_update_access_policy_optimistic_lock_stale_version_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.update-account-settings-out-of-range-rejected", "deployments": [], "key": "opensearchserverless/update-account-settings-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:GetAccountSettings", "opensearchserverless:UpdateAccountSettings"], "path": "behavioral/opensearchserverless/check_update_account_settings_out_of_range_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.update-collection-concurrent-modification-resolves-consistently", "deployments": [], "key": "opensearchserverless/update-collection-concurrent-modification-resolves-consistently", "labels": ["axis:happy-path", "plane:control"], "operations": ["opensearchserverless:BatchGetCollection", "opensearchserverless:CreateCollection", "opensearchserverless:DeleteCollection", "opensearchserverless:UpdateCollection"], "path": "behavioral/opensearchserverless/check_update_collection_concurrent_modification_resolves_consistently.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.update-collection-group-capacity-limits-validated", "deployments": [], "key": "opensearchserverless/update-collection-group-capacity-limits-validated", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetCollectionGroup", "opensearchserverless:CreateCollectionGroup", "opensearchserverless:DeleteCollectionGroup", "opensearchserverless:UpdateCollectionGroup"], "path": "behavioral/opensearchserverless/check_update_collection_group_capacity_limits_validated.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.update-lifecycle-policy-optimistic-lock-stale-version-rejected", "deployments": [], "key": "opensearchserverless/update-lifecycle-policy-optimistic-lock-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:BatchGetLifecyclePolicy", "opensearchserverless:CreateLifecyclePolicy", "opensearchserverless:DeleteLifecyclePolicy", "opensearchserverless:UpdateLifecyclePolicy"], "path": "behavioral/opensearchserverless/check_update_lifecycle_policy_optimistic_lock_stale_version_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.update-security-config-optimistic-lock-stale-version-rejected", "deployments": [], "key": "opensearchserverless/update-security-config-optimistic-lock-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateSecurityConfig", "opensearchserverless:DeleteSecurityConfig", "opensearchserverless:GetSecurityConfig", "opensearchserverless:UpdateSecurityConfig"], "path": "behavioral/opensearchserverless/check_update_security_config_optimistic_lock_stale_version_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.update-security-policy-optimistic-lock-stale-version-rejected", "deployments": [], "key": "opensearchserverless/update-security-policy-optimistic-lock-stale-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["opensearchserverless:CreateSecurityPolicy", "opensearchserverless:DeleteSecurityPolicy", "opensearchserverless:GetSecurityPolicy", "opensearchserverless:UpdateSecurityPolicy"], "path": "behavioral/opensearchserverless/check_update_security_policy_optimistic_lock_stale_version_rejected.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.vpc-endpoint-deletion-transition-window", "deployments": [], "key": "opensearchserverless/vpc-endpoint-deletion-transition-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "opensearchserverless:BatchGetVpcEndpoint", "opensearchserverless:CreateVpcEndpoint", "opensearchserverless:DeleteVpcEndpoint"], "path": "behavioral/opensearchserverless/check_vpc_endpoint_deletion_transition_window.py", "service": "opensearchserverless"} {"check_id": "opensearchserverless.vpc-endpoint-lifecycle-transitions", "deployments": [], "key": "opensearchserverless/vpc-endpoint-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:ModifyVpcAttribute", "opensearchserverless:BatchGetVpcEndpoint", "opensearchserverless:CreateVpcEndpoint", "opensearchserverless:DeleteVpcEndpoint", "opensearchserverless:UpdateVpcEndpoint"], "path": "behavioral/opensearchserverless/check_vpc_endpoint_lifecycle_transitions.py", "service": "opensearchserverless"} {"check_id": "osis.concurrent-start-pipeline-exactly-one-succeeds", "deployments": [], "key": "osis/concurrent-start-pipeline-exactly-one-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "osis:StartPipeline", "osis:StopPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_concurrent_start_pipeline_exactly_one_succeeds.py", "service": "osis"} {"check_id": "osis.create-pipeline-duplicate-name-rejected", "deployments": [], "key": "osis/create-pipeline-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_create_pipeline_duplicate_name_rejected.py", "service": "osis"} {"check_id": "osis.create-pipeline-endpoint-invalid-vpc-options-rejected", "deployments": [], "key": "osis/create-pipeline-endpoint-invalid-vpc-options-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "osis:CreatePipelineEndpoint", "osis:ListPipelineEndpoints", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_create_pipeline_endpoint_invalid_vpc_options_rejected.py", "service": "osis"} {"check_id": "osis.create-pipeline-min-greater-than-max-units-rejected", "deployments": [], "key": "osis/create-pipeline-min-greater-than-max-units-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_create_pipeline_min_greater_than_max_units_rejected.py", "service": "osis"} {"check_id": "osis.create-pipeline-reaches-active-state", "deployments": [], "key": "osis/create-pipeline-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_create_pipeline_reaches_active_state.py", "service": "osis"} {"check_id": "osis.delete-pipeline-not-found", "deployments": [], "key": "osis/delete-pipeline-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["osis:DeletePipeline"], "path": "behavioral/osis/check_delete_pipeline_not_found.py", "service": "osis"} {"check_id": "osis.delete-pipeline-removes-resource", "deployments": [], "key": "osis/delete-pipeline-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "osis:ListPipelines", "osis:StartPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_delete_pipeline_removes_resource.py", "service": "osis"} {"check_id": "osis.get-pipeline-blueprint-format-yaml-vs-json", "deployments": [], "key": "osis/get-pipeline-blueprint-format-yaml-vs-json", "labels": ["axis:happy-path", "plane:control"], "operations": ["osis:GetPipelineBlueprint", "osis:ListPipelineBlueprints"], "path": "behavioral/osis/check_get_pipeline_blueprint_format_yaml_vs_json.py", "service": "osis"} {"check_id": "osis.get-pipeline-blueprint-matches-list", "deployments": [], "key": "osis/get-pipeline-blueprint-matches-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["osis:GetPipelineBlueprint", "osis:ListPipelineBlueprints"], "path": "behavioral/osis/check_get_pipeline_blueprint_matches_list.py", "service": "osis"} {"check_id": "osis.get-pipeline-not-found", "deployments": [], "key": "osis/get-pipeline-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["osis:GetPipeline"], "path": "behavioral/osis/check_get_pipeline_not_found.py", "service": "osis"} {"check_id": "osis.list-pipeline-blueprints-nonempty", "deployments": [], "key": "osis/list-pipeline-blueprints-nonempty", "labels": ["axis:happy-path", "plane:control"], "operations": ["osis:ListPipelineBlueprints"], "path": "behavioral/osis/check_list_pipeline_blueprints_nonempty.py", "service": "osis"} {"check_id": "osis.native-protocol-http-ingest-round-trip", "deployments": [], "key": "osis/native-protocol-http-ingest-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_native_protocol_http_ingest_round_trip.py", "service": "osis"} {"check_id": "osis.put-resource-policy-invalid-json-rejected", "deployments": [], "key": "osis/put-resource-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "osis:GetResourcePolicy", "osis:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_put_resource_policy_invalid_json_rejected.py", "service": "osis"} {"check_id": "osis.resource-policy-lifecycle-round-trip", "deployments": [], "key": "osis/resource-policy-lifecycle-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:DeleteResourcePolicy", "osis:GetPipeline", "osis:GetResourcePolicy", "osis:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_resource_policy_lifecycle_round_trip.py", "service": "osis"} {"check_id": "osis.start-pipeline-when-already-active-rejected", "deployments": [], "key": "osis/start-pipeline-when-already-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "osis:StartPipeline", "osis:StopPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_start_pipeline_when_already_active_rejected.py", "service": "osis"} {"check_id": "osis.stop-start-pipeline-transitions", "deployments": [], "key": "osis/stop-start-pipeline-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "osis:StartPipeline", "osis:StopPipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_stop_start_pipeline_transitions.py", "service": "osis"} {"check_id": "osis.tag-resource-reserved-prefix-rejected", "deployments": [], "key": "osis/tag-resource-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "osis:ListTagsForResource", "osis:TagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_tag_resource_reserved_prefix_rejected.py", "service": "osis"} {"check_id": "osis.untag-resource-removes-tag", "deployments": [], "key": "osis/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "osis:ListTagsForResource", "osis:TagResource", "osis:UntagResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_untag_resource_removes_tag.py", "service": "osis"} {"check_id": "osis.update-pipeline-scales-units", "deployments": [], "key": "osis/update-pipeline-scales-units", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "osis:CreatePipeline", "osis:DeletePipeline", "osis:GetPipeline", "osis:UpdatePipeline", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_update_pipeline_scales_units.py", "service": "osis"} {"check_id": "osis.validate-pipeline-accepts-valid-config", "deployments": [], "key": "osis/validate-pipeline-accepts-valid-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["osis:ValidatePipeline"], "path": "behavioral/osis/check_validate_pipeline_accepts_valid_config.py", "service": "osis"} {"check_id": "osis.validate-pipeline-missing-permission-rejected", "deployments": [], "key": "osis/validate-pipeline-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "osis:ValidatePipeline", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/osis/check_validate_pipeline_missing_permission_rejected.py", "service": "osis"} {"check_id": "osis.validate-pipeline-reports-errors-for-invalid-config", "deployments": [], "key": "osis/validate-pipeline-reports-errors-for-invalid-config", "labels": ["axis:rejection", "plane:control"], "operations": ["osis:ValidatePipeline"], "path": "behavioral/osis/check_validate_pipeline_reports_errors_for_invalid_config.py", "service": "osis"} {"check_id": "outposts.concurrent-delete-site-exactly-one-succeeds", "deployments": [], "key": "outposts/concurrent-delete-site-exactly-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSite"], "path": "behavioral/outposts/check_concurrent_delete_site_exactly_one_succeeds.py", "service": "outposts"} {"check_id": "outposts.create-order-then-cancel-transitions-to-cancelled", "deployments": [], "key": "outposts/create-order-then-cancel-transitions-to-cancelled", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "outposts:CancelOrder", "outposts:CreateOrder", "outposts:CreateOutpost", "outposts:CreateSite", "outposts:DeleteOutpost", "outposts:DeleteSite", "outposts:ListCatalogItems", "outposts:ListOrders"], "path": "behavioral/outposts/check_create_order_then_cancel_transitions_to_cancelled.py", "service": "outposts"} {"check_id": "outposts.create-quote-returns-created-status", "deployments": [], "key": "outposts/create-quote-returns-created-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateQuote", "outposts:DeleteQuote", "outposts:GetQuote"], "path": "behavioral/outposts/check_create_quote_returns_created_status.py", "service": "outposts"} {"check_id": "outposts.create-site-full-roundtrip", "deployments": [], "key": "outposts/create-site-full-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSite", "outposts:GetSiteAddress"], "path": "behavioral/outposts/check_create_site_full_roundtrip.py", "service": "outposts"} {"check_id": "outposts.create-site-invalid-country-code-rejected", "deployments": [], "key": "outposts/create-site-invalid-country-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSite", "outposts:ListSites"], "path": "behavioral/outposts/check_create_site_invalid_country_code_rejected.py", "service": "outposts"} {"check_id": "outposts.decommission-rejected-for-non-active-lifecycle-status", "deployments": [], "key": "outposts/decommission-rejected-for-non-active-lifecycle-status", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "outposts:CreateOutpost", "outposts:CreateSite", "outposts:DeleteOutpost", "outposts:DeleteSite", "outposts:GetOutpost", "outposts:StartOutpostDecommission"], "path": "behavioral/outposts/check_decommission_rejected_for_non_active_lifecycle_status.py", "service": "outposts"} {"check_id": "outposts.delete-quote-removes-it", "deployments": [], "key": "outposts/delete-quote-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["outposts:CreateQuote", "outposts:DeleteQuote", "outposts:GetQuote"], "path": "behavioral/outposts/check_delete_quote_removes_it.py", "service": "outposts"} {"check_id": "outposts.delete-site-conflict-with-linked-outpost-rejected", "deployments": [], "key": "outposts/delete-site-conflict-with-linked-outpost-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "outposts:CreateOutpost", "outposts:CreateSite", "outposts:DeleteOutpost", "outposts:DeleteSite", "outposts:GetOutpost", "outposts:GetSite"], "path": "behavioral/outposts/check_delete_site_conflict_with_linked_outpost_rejected.py", "service": "outposts"} {"check_id": "outposts.get-catalog-item-matches-list-catalog-items", "deployments": [], "key": "outposts/get-catalog-item-matches-list-catalog-items", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:GetCatalogItem", "outposts:ListCatalogItems"], "path": "behavioral/outposts/check_get_catalog_item_matches_list_catalog_items.py", "service": "outposts"} {"check_id": "outposts.get-quote-matches-created-quote", "deployments": [], "key": "outposts/get-quote-matches-created-quote", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateQuote", "outposts:DeleteQuote", "outposts:GetQuote"], "path": "behavioral/outposts/check_get_quote_matches_created_quote.py", "service": "outposts"} {"check_id": "outposts.get-site-nonexistent-id-rejected", "deployments": [], "key": "outposts/get-site-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSite"], "path": "behavioral/outposts/check_get_site_nonexistent_id_rejected.py", "service": "outposts"} {"check_id": "outposts.list-outposts-includes-created-outpost", "deployments": [], "key": "outposts/list-outposts-includes-created-outpost", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "outposts:CreateOutpost", "outposts:CreateSite", "outposts:DeleteOutpost", "outposts:DeleteSite"], "path": "behavioral/outposts/check_list_outposts_includes_created_outpost.py", "service": "outposts"} {"check_id": "outposts.list-quotes-includes-created-quote", "deployments": [], "key": "outposts/list-quotes-includes-created-quote", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateQuote", "outposts:DeleteQuote", "outposts:ListQuotes"], "path": "behavioral/outposts/check_list_quotes_includes_created_quote.py", "service": "outposts"} {"check_id": "outposts.list-sites-includes-created-site", "deployments": [], "key": "outposts/list-sites-includes-created-site", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSite"], "path": "behavioral/outposts/check_list_sites_includes_created_site.py", "service": "outposts"} {"check_id": "outposts.site-address-not-configured-rejected", "deployments": [], "key": "outposts/site-address-not-configured-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSiteAddress", "outposts:UpdateSiteAddress"], "path": "behavioral/outposts/check_site_address_not_configured_rejected.py", "service": "outposts"} {"check_id": "outposts.site-to-outpost-to-quote-e2e-lifecycle", "deployments": [], "key": "outposts/site-to-outpost-to-quote-e2e-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "outposts:CreateOutpost", "outposts:CreateQuote", "outposts:CreateSite", "outposts:DeleteOutpost", "outposts:DeleteQuote", "outposts:DeleteSite", "outposts:GetOutpost", "outposts:GetQuote", "outposts:GetSite", "outposts:ListOutposts"], "path": "behavioral/outposts/check_site_to_outpost_to_quote_e2e_lifecycle.py", "service": "outposts"} {"check_id": "outposts.start-capacity-task-invalid-instance-type-rejected", "deployments": [], "key": "outposts/start-capacity-task-invalid-instance-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "outposts:CreateOutpost", "outposts:CreateSite", "outposts:DeleteOutpost", "outposts:DeleteSite", "outposts:ListCapacityTasks", "outposts:StartCapacityTask"], "path": "behavioral/outposts/check_start_capacity_task_invalid_instance_type_rejected.py", "service": "outposts"} {"check_id": "outposts.tag-resource-nonexistent-site-rejected", "deployments": [], "key": "outposts/tag-resource-nonexistent-site-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:ListTagsForResource", "outposts:TagResource"], "path": "behavioral/outposts/check_tag_resource_nonexistent_site_rejected.py", "service": "outposts"} {"check_id": "outposts.tag-resource-site-roundtrip", "deployments": [], "key": "outposts/tag-resource-site-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:ListTagsForResource", "outposts:TagResource"], "path": "behavioral/outposts/check_tag_resource_site_roundtrip.py", "service": "outposts"} {"check_id": "outposts.untag-resource-removes-tag", "deployments": [], "key": "outposts/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:ListTagsForResource", "outposts:UntagResource"], "path": "behavioral/outposts/check_untag_resource_removes_tag.py", "service": "outposts"} {"check_id": "outposts.update-outpost-name-persists", "deployments": [], "key": "outposts/update-outpost-name-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "outposts:CreateOutpost", "outposts:CreateSite", "outposts:DeleteOutpost", "outposts:DeleteSite", "outposts:GetOutpost", "outposts:UpdateOutpost"], "path": "behavioral/outposts/check_update_outpost_name_persists.py", "service": "outposts"} {"check_id": "outposts.update-quote-capacities-persists", "deployments": [], "key": "outposts/update-quote-capacities-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateQuote", "outposts:DeleteQuote", "outposts:GetQuote", "outposts:UpdateQuote"], "path": "behavioral/outposts/check_update_quote_capacities_persists.py", "service": "outposts"} {"check_id": "outposts.update-site-address-persists", "deployments": [], "key": "outposts/update-site-address-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSite", "outposts:GetSiteAddress", "outposts:UpdateSiteAddress"], "path": "behavioral/outposts/check_update_site_address_persists.py", "service": "outposts"} {"check_id": "outposts.update-site-name-persists", "deployments": [], "key": "outposts/update-site-name-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSite", "outposts:UpdateSite"], "path": "behavioral/outposts/check_update_site_name_persists.py", "service": "outposts"} {"check_id": "outposts.update-site-rack-physical-properties-persists", "deployments": [], "key": "outposts/update-site-rack-physical-properties-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:CreateSite", "outposts:DeleteSite", "outposts:GetSite", "outposts:UpdateSiteRackPhysicalProperties"], "path": "behavioral/outposts/check_update_site_rack_physical_properties_persists.py", "service": "outposts"} {"check_id": "partnercentral-account.connection-preferences-defaults", "deployments": [], "key": "partnercentral-account/connection-preferences-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["partnercentral-account:GetConnectionPreferences"], "path": "behavioral/partnercentral-account/check_connection_preferences_defaults.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.list-connection-invitations-filter-structure", "deployments": [], "key": "partnercentral-account/list-connection-invitations-filter-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["partnercentral-account:CreateConnectionInvitation", "partnercentral-account:ListConnectionInvitations", "partnercentral-account:ListPartners"], "path": "behavioral/partnercentral-account/check_list_connection_invitations_filter_structure.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.list-connection-invitations-invalid-status-filter-rejected", "deployments": [], "key": "partnercentral-account/list-connection-invitations-invalid-status-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:ListConnectionInvitations"], "path": "behavioral/partnercentral-account/check_list_connection_invitations_invalid_status_filter_rejected.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.list-partners-and-connections-smoke", "deployments": [], "key": "partnercentral-account/list-partners-and-connections-smoke", "labels": ["axis:happy-path", "plane:control"], "operations": ["partnercentral-account:ListConnections", "partnercentral-account:ListPartners"], "path": "behavioral/partnercentral-account/check_list_partners_and_connections_smoke.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.missing-permission-denied-get-connection-preferences", "deployments": [], "key": "partnercentral-account/missing-permission-denied-get-connection-preferences", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "partnercentral-account:GetConnectionPreferences", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/partnercentral-account/check_missing_permission_denied_get_connection_preferences.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.partner-profile-reflects-completed-update-task", "deployments": [], "key": "partnercentral-account/partner-profile-reflects-completed-update-task", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:CreatePartner", "partnercentral-account:ListPartners"], "path": "behavioral/partnercentral-account/check_partner_profile_reflects_completed_update_task.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.resource-not-found-error-semantics", "deployments": [], "key": "partnercentral-account/resource-not-found-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:AcceptConnectionInvitation", "partnercentral-account:CancelConnection", "partnercentral-account:CancelConnectionInvitation", "partnercentral-account:CancelProfileUpdateTask", "partnercentral-account:DisassociateAwsTrainingCertificationEmailDomain", "partnercentral-account:GetAllianceLeadContact", "partnercentral-account:GetConnection", "partnercentral-account:GetConnectionInvitation", "partnercentral-account:GetConnectionPreferences", "partnercentral-account:GetPartner", "partnercentral-account:GetProfileUpdateTask", "partnercentral-account:GetProfileVisibility", "partnercentral-account:GetQualificationsAssociationDetails", "partnercentral-account:GetQualificationsAssociationTask", "partnercentral-account:GetQualificationsDisassociationTask", "partnercentral-account:GetVerification", "partnercentral-account:PutAllianceLeadContact", "partnercentral-account:RejectConnectionInvitation"], "path": "behavioral/partnercentral-account/check_resource_not_found_error_semantics.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.send-email-verification-code-malformed-email-rejected", "deployments": [], "key": "partnercentral-account/send-email-verification-code-malformed-email-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:SendEmailVerificationCode"], "path": "behavioral/partnercentral-account/check_send_email_verification_code_malformed_email_rejected.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.start-verification-invalid-country-code-rejected", "deployments": [], "key": "partnercentral-account/start-verification-invalid-country-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:GetConnectionPreferences", "partnercentral-account:GetVerification", "partnercentral-account:StartVerification"], "path": "behavioral/partnercentral-account/check_start_verification_invalid_country_code_rejected.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.tag-connection-preferences-round-trip", "deployments": [], "key": "partnercentral-account/tag-connection-preferences-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:GetConnectionPreferences", "partnercentral-account:ListTagsForResource", "partnercentral-account:TagResource", "partnercentral-account:UntagResource"], "path": "behavioral/partnercentral-account/check_tag_connection_preferences_round_trip.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.tag-resource-nonexistent-arn-rejected", "deployments": [], "key": "partnercentral-account/tag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:ListPartners", "partnercentral-account:ListTagsForResource", "partnercentral-account:TagResource", "partnercentral-account:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/partnercentral-account/check_tag_resource_nonexistent_arn_rejected.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.update-connection-preferences-concurrent-writers", "deployments": [], "key": "partnercentral-account/update-connection-preferences-concurrent-writers", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:GetConnectionPreferences", "partnercentral-account:UpdateConnectionPreferences"], "path": "behavioral/partnercentral-account/check_update_connection_preferences_concurrent_writers.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.update-connection-preferences-excluded-participants-persist", "deployments": [], "key": "partnercentral-account/update-connection-preferences-excluded-participants-persist", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:GetConnectionPreferences", "partnercentral-account:UpdateConnectionPreferences"], "path": "behavioral/partnercentral-account/check_update_connection_preferences_excluded_participants_persist.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.update-connection-preferences-invalid-access-type-rejected", "deployments": [], "key": "partnercentral-account/update-connection-preferences-invalid-access-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:GetConnectionPreferences", "partnercentral-account:UpdateConnectionPreferences"], "path": "behavioral/partnercentral-account/check_update_connection_preferences_invalid_access_type_rejected.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.update-connection-preferences-round-trip", "deployments": [], "key": "partnercentral-account/update-connection-preferences-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["partnercentral-account:GetConnectionPreferences", "partnercentral-account:UpdateConnectionPreferences"], "path": "behavioral/partnercentral-account/check_update_connection_preferences_round_trip.py", "service": "partnercentral-account"} {"check_id": "partnercentral-account.update-connection-preferences-stale-revision-rejected", "deployments": [], "key": "partnercentral-account/update-connection-preferences-stale-revision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-account:GetConnectionPreferences", "partnercentral-account:UpdateConnectionPreferences"], "path": "behavioral/partnercentral-account/check_update_connection_preferences_stale_revision_rejected.py", "service": "partnercentral-account"} {"check_id": "partnercentral-benefits.amend-benefit-application-malformed-identifier-rejected", "deployments": [], "key": "partnercentral-benefits/amend-benefit-application-malformed-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:AmendBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_amend_benefit_application_malformed_identifier_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.associate-benefit-application-resource-malformed-arn-rejected", "deployments": [], "key": "partnercentral-benefits/associate-benefit-application-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:AssociateBenefitApplicationResource"], "path": "behavioral/partnercentral-benefits/check_associate_benefit_application_resource_malformed_arn_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.cancel-benefit-application-transitions-to-canceled", "deployments": [], "key": "partnercentral-benefits/cancel-benefit-application-transitions-to-canceled", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:CancelBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_cancel_benefit_application_transitions_to_canceled.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.create-benefit-application-invalid-catalog-enum-rejected", "deployments": [], "key": "partnercentral-benefits/create-benefit-application-invalid-catalog-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:CreateBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_create_benefit_application_invalid_catalog_enum_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.create-benefit-application-requires-active-partner-benefit-rejected", "deployments": [], "key": "partnercentral-benefits/create-benefit-application-requires-active-partner-benefit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:CreateBenefitApplication", "partnercentral-benefits:ListBenefitApplications"], "path": "behavioral/partnercentral-benefits/check_create_benefit_application_requires_active_partner_benefit_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.create-benefit-application-starts-pending-submission-blocked-by-entitlement-gate", "deployments": [], "key": "partnercentral-benefits/create-benefit-application-starts-pending-submission-blocked-by-entitlement-gate", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:CreateBenefitApplication", "partnercentral-benefits:GetBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_create_benefit_application_starts_pending_submission_blocked_by_entitlement_gate.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.disassociate-benefit-application-resource-malformed-arn-rejected", "deployments": [], "key": "partnercentral-benefits/disassociate-benefit-application-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:DisassociateBenefitApplicationResource"], "path": "behavioral/partnercentral-benefits/check_disassociate_benefit_application_resource_malformed_arn_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.get-benefit-allocation-malformed-identifier-rejected", "deployments": [], "key": "partnercentral-benefits/get-benefit-allocation-malformed-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:GetBenefitAllocation"], "path": "behavioral/partnercentral-benefits/check_get_benefit_allocation_malformed_identifier_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.get-benefit-application-malformed-identifier-rejected", "deployments": [], "key": "partnercentral-benefits/get-benefit-application-malformed-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:GetBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_get_benefit_application_malformed_identifier_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.list-benefit-applications-invalid-next-token-rejected", "deployments": [], "key": "partnercentral-benefits/list-benefit-applications-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:ListBenefitApplications"], "path": "behavioral/partnercentral-benefits/check_list_benefit_applications_invalid_next_token_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.list-benefits-max-results-out-of-range-rejected", "deployments": [], "key": "partnercentral-benefits/list-benefits-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:ListBenefits"], "path": "behavioral/partnercentral-benefits/check_list_benefits_max_results_out_of_range_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.list-benefits-requires-active-partner-benefit-rejected", "deployments": [], "key": "partnercentral-benefits/list-benefits-requires-active-partner-benefit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:ListBenefits"], "path": "behavioral/partnercentral-benefits/check_list_benefits_requires_active_partner_benefit_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.recall-benefit-application-malformed-identifier-rejected", "deployments": [], "key": "partnercentral-benefits/recall-benefit-application-malformed-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:RecallBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_recall_benefit_application_malformed_identifier_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.recall-benefit-application-requires-active-partner-benefit-rejected", "deployments": [], "key": "partnercentral-benefits/recall-benefit-application-requires-active-partner-benefit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:GetBenefitApplication", "partnercentral-benefits:RecallBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_recall_benefit_application_requires_active_partner_benefit_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.submit-benefit-application-malformed-identifier-rejected", "deployments": [], "key": "partnercentral-benefits/submit-benefit-application-malformed-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:SubmitBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_submit_benefit_application_malformed_identifier_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.submit-benefit-application-twice-rejected", "deployments": [], "key": "partnercentral-benefits/submit-benefit-application-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:GetBenefitApplication", "partnercentral-benefits:SubmitBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_submit_benefit_application_twice_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.tag-resource-malformed-arn-rejected", "deployments": [], "key": "partnercentral-benefits/tag-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:TagResource"], "path": "behavioral/partnercentral-benefits/check_tag_resource_malformed_arn_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.untag-resource-malformed-arn-rejected", "deployments": [], "key": "partnercentral-benefits/untag-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:UntagResource"], "path": "behavioral/partnercentral-benefits/check_untag_resource_malformed_arn_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.update-benefit-application-after-submission-rejected", "deployments": [], "key": "partnercentral-benefits/update-benefit-application-after-submission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:CreateBenefitApplication", "partnercentral-benefits:ListBenefitApplications", "partnercentral-benefits:ListTagsForResource", "partnercentral-benefits:UpdateBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_update_benefit_application_after_submission_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-benefits.update-benefit-application-malformed-identifier-rejected", "deployments": [], "key": "partnercentral-benefits/update-benefit-application-malformed-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-benefits:UpdateBenefitApplication"], "path": "behavioral/partnercentral-benefits/check_update_benefit_application_malformed_identifier_rejected.py", "service": "partnercentral-benefits"} {"check_id": "partnercentral-channel.cancel-channel-handshake-nonexistent-error", "deployments": [], "key": "partnercentral-channel/cancel-channel-handshake-nonexistent-error", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:CancelChannelHandshake", "partnercentral-channel:ListChannelHandshakes", "sts:GetCallerIdentity"], "path": "behavioral/partnercentral-channel/check_cancel_channel_handshake_nonexistent_error.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.concurrent-create-program-management-account-all-denied", "deployments": [], "key": "partnercentral-channel/concurrent-create-program-management-account-all-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:CreateProgramManagementAccount", "partnercentral-channel:ListChannelHandshakes", "partnercentral-channel:ListProgramManagementAccounts"], "path": "behavioral/partnercentral-channel/check_concurrent_create_program_management_account_all_denied.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.create-channel-handshake-access-denied-without-partner-benefit", "deployments": [], "key": "partnercentral-channel/create-channel-handshake-access-denied-without-partner-benefit", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:CreateChannelHandshake", "partnercentral-channel:ListChannelHandshakes"], "path": "behavioral/partnercentral-channel/check_create_channel_handshake_access_denied_without_partner_benefit.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.create-program-management-account-access-denied-without-partner-benefit", "deployments": [], "key": "partnercentral-channel/create-program-management-account-access-denied-without-partner-benefit", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:CreateProgramManagementAccount", "partnercentral-channel:ListChannelHandshakes"], "path": "behavioral/partnercentral-channel/check_create_program_management_account_access_denied_without_partner_benefit.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.create-relationship-access-denied-for-nonexistent-pma", "deployments": [], "key": "partnercentral-channel/create-relationship-access-denied-for-nonexistent-pma", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:CreateRelationship", "partnercentral-channel:ListRelationships"], "path": "behavioral/partnercentral-channel/check_create_relationship_access_denied_for_nonexistent_pma.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.create-relationship-invalid-sector-enum-validation-order", "deployments": [], "key": "partnercentral-channel/create-relationship-invalid-sector-enum-validation-order", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:CreateRelationship"], "path": "behavioral/partnercentral-channel/check_create_relationship_invalid_sector_enum_validation_order.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.delete-program-management-account-nonexistent-error", "deployments": [], "key": "partnercentral-channel/delete-program-management-account-nonexistent-error", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:DeleteProgramManagementAccount", "partnercentral-channel:ListProgramManagementAccounts"], "path": "behavioral/partnercentral-channel/check_delete_program_management_account_nonexistent_error.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.delete-relationship-nonexistent-error", "deployments": [], "key": "partnercentral-channel/delete-relationship-nonexistent-error", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:DeleteRelationship"], "path": "behavioral/partnercentral-channel/check_delete_relationship_nonexistent_error.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.get-relationship-nonexistent-access-denied", "deployments": [], "key": "partnercentral-channel/get-relationship-nonexistent-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:GetRelationship"], "path": "behavioral/partnercentral-channel/check_get_relationship_nonexistent_access_denied.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.list-channel-handshakes-maxresults-out-of-range-rejected", "deployments": [], "key": "partnercentral-channel/list-channel-handshakes-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:ListChannelHandshakes"], "path": "behavioral/partnercentral-channel/check_list_channel_handshakes_maxresults_out_of_range_rejected.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.list-channel-handshakes-succeeds-without-partner-benefit", "deployments": [], "key": "partnercentral-channel/list-channel-handshakes-succeeds-without-partner-benefit", "labels": ["axis:happy-path", "plane:control"], "operations": ["partnercentral-channel:ListChannelHandshakes"], "path": "behavioral/partnercentral-channel/check_list_channel_handshakes_succeeds_without_partner_benefit.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.list-program-management-accounts-validation-precedes-access-denied", "deployments": [], "key": "partnercentral-channel/list-program-management-accounts-validation-precedes-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:ListProgramManagementAccounts"], "path": "behavioral/partnercentral-channel/check_list_program_management_accounts_validation_precedes_access_denied.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.list-relationships-access-denied-without-partner-benefit", "deployments": [], "key": "partnercentral-channel/list-relationships-access-denied-without-partner-benefit", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:ListRelationships"], "path": "behavioral/partnercentral-channel/check_list_relationships_access_denied_without_partner_benefit.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.list-relationships-validation-precedes-access-denied", "deployments": [], "key": "partnercentral-channel/list-relationships-validation-precedes-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:ListRelationships"], "path": "behavioral/partnercentral-channel/check_list_relationships_validation_precedes_access_denied.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.list-tags-for-resource-well-formed-arn-access-denied-vs-malformed-validation", "deployments": [], "key": "partnercentral-channel/list-tags-for-resource-well-formed-arn-access-denied-vs-malformed-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:ListChannelHandshakes", "partnercentral-channel:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/partnercentral-channel/check_list_tags_for_resource_well_formed_arn_access_denied_vs_malformed_validation.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.reject-channel-handshake-nonexistent-error", "deployments": [], "key": "partnercentral-channel/reject-channel-handshake-nonexistent-error", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:ListChannelHandshakes", "partnercentral-channel:RejectChannelHandshake"], "path": "behavioral/partnercentral-channel/check_reject_channel_handshake_nonexistent_error.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.relationship-create-duplicate-submission-access-denied-without-partner-benefit", "deployments": [], "key": "partnercentral-channel/relationship-create-duplicate-submission-access-denied-without-partner-benefit", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:CreateRelationship", "partnercentral-channel:ListRelationships", "sts:GetCallerIdentity"], "path": "behavioral/partnercentral-channel/check_relationship_create_duplicate_submission_access_denied_without_partner_benefit.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.untag-resource-malformed-arn-validation-error", "deployments": [], "key": "partnercentral-channel/untag-resource-malformed-arn-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/partnercentral-channel/check_untag_resource_malformed_arn_validation_error.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.update-program-management-account-nonexistent-error", "deployments": [], "key": "partnercentral-channel/update-program-management-account-nonexistent-error", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:UpdateProgramManagementAccount"], "path": "behavioral/partnercentral-channel/check_update_program_management_account_nonexistent_error.py", "service": "partnercentral-channel"} {"check_id": "partnercentral-channel.update-relationship-nonexistent-error", "deployments": [], "key": "partnercentral-channel/update-relationship-nonexistent-error", "labels": ["axis:rejection", "plane:control"], "operations": ["partnercentral-channel:GetRelationship", "partnercentral-channel:UpdateRelationship"], "path": "behavioral/partnercentral-channel/check_update_relationship_nonexistent_error.py", "service": "partnercentral-channel"} {"check_id": "payment-cryptography-data.concurrent-generate-mac-same-key-no-cross-talk", "deployments": [], "key": "payment-cryptography-data/concurrent-generate-mac-same-key-no-cross-talk", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateMac", "payment-cryptography-data:VerifyMac", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_concurrent_generate_mac_same_key_no_cross_talk.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.decrypt-data-ciphertext-wrong-length-rejected", "deployments": [], "key": "payment-cryptography-data/decrypt-data-ciphertext-wrong-length-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:DecryptData", "payment-cryptography-data:EncryptData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_decrypt_data_ciphertext_wrong_length_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.e2e-card-issuance-transaction-settlement-pipeline", "deployments": [], "key": "payment-cryptography-data/e2e-card-issuance-transaction-settlement-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:DecryptData", "payment-cryptography-data:EncryptData", "payment-cryptography-data:GenerateCardValidationData", "payment-cryptography-data:GenerateMac", "payment-cryptography-data:GeneratePinData", "payment-cryptography-data:ReEncryptData", "payment-cryptography-data:VerifyCardValidationData", "payment-cryptography-data:VerifyMac", "payment-cryptography-data:VerifyPinData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_e2e_card_issuance_transaction_settlement_pipeline.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.encrypt-data-ecb-mode-deterministic-ciphertext", "deployments": [], "key": "payment-cryptography-data/encrypt-data-ecb-mode-deterministic-ciphertext", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:DecryptData", "payment-cryptography-data:EncryptData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_encrypt_data_ecb_mode_deterministic_ciphertext.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.encrypt-data-invalid-hex-plaintext-rejected", "deployments": [], "key": "payment-cryptography-data/encrypt-data-invalid-hex-plaintext-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:EncryptData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_encrypt_data_invalid_hex_plaintext_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.encrypt-data-key-not-found-rejected", "deployments": [], "key": "payment-cryptography-data/encrypt-data-key-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:EncryptData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "sts:GetCallerIdentity"], "path": "behavioral/payment-cryptography-data/check_encrypt_data_key_not_found_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.encrypt-data-response-key-metadata-matches-control-plane", "deployments": [], "key": "payment-cryptography-data/encrypt-data-response-key-metadata-matches-control-plane", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:EncryptData", "payment-cryptography:CreateAlias", "payment-cryptography:CreateKey", "payment-cryptography:DeleteAlias", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey"], "path": "behavioral/payment-cryptography-data/check_encrypt_data_response_key_metadata_matches_control_plane.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.encrypt-decrypt-symmetric-cbc-roundtrip", "deployments": [], "key": "payment-cryptography-data/encrypt-decrypt-symmetric-cbc-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:DecryptData", "payment-cryptography-data:EncryptData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_encrypt_decrypt_symmetric_cbc_roundtrip.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.generate-card-validation-data-deterministic-same-inputs", "deployments": [], "key": "payment-cryptography-data/generate-card-validation-data-deterministic-same-inputs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateCardValidationData", "payment-cryptography-data:VerifyCardValidationData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_generate_card_validation_data_deterministic_same_inputs.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.generate-card-validation-data-missing-permission-rejected", "deployments": [], "key": "payment-cryptography-data/generate-card-validation-data-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "payment-cryptography-data:GenerateCardValidationData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/payment-cryptography-data/check_generate_card_validation_data_missing_permission_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.generate-mac-key-usage-mismatch-rejected", "deployments": [], "key": "payment-cryptography-data/generate-mac-key-usage-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateMac", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_generate_mac_key_usage_mismatch_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.generate-verify-auth-request-cryptogram-roundtrip", "deployments": [], "key": "payment-cryptography-data/generate-verify-auth-request-cryptogram-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateAuthRequestCryptogram", "payment-cryptography-data:VerifyAuthRequestCryptogram", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_generate_verify_auth_request_cryptogram_roundtrip.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.generate-verify-card-validation-data-cvv2-roundtrip", "deployments": [], "key": "payment-cryptography-data/generate-verify-card-validation-data-cvv2-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateCardValidationData", "payment-cryptography-data:VerifyCardValidationData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_generate_verify_card_validation_data_cvv2_roundtrip.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.generate-verify-card-validation-data-cvv-roundtrip", "deployments": [], "key": "payment-cryptography-data/generate-verify-card-validation-data-cvv-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateCardValidationData", "payment-cryptography-data:VerifyCardValidationData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_generate_verify_card_validation_data_cvv_roundtrip.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.generate-verify-mac-hmac-roundtrip", "deployments": [], "key": "payment-cryptography-data/generate-verify-mac-hmac-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateMac", "payment-cryptography-data:VerifyMac", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_generate_verify_mac_hmac_roundtrip.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.generate-verify-pin-data-visa-pvv-roundtrip", "deployments": [], "key": "payment-cryptography-data/generate-verify-pin-data-visa-pvv-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GeneratePinData", "payment-cryptography-data:VerifyPinData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_generate_verify_pin_data_visa_pvv_roundtrip.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.translate-pin-data-iso-format-roundtrip", "deployments": [], "key": "payment-cryptography-data/translate-pin-data-iso-format-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GeneratePinData", "payment-cryptography-data:TranslatePinData", "payment-cryptography-data:VerifyPinData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_translate_pin_data_iso_format_roundtrip.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.verify-auth-request-cryptogram-tampered-rejected", "deployments": [], "key": "payment-cryptography-data/verify-auth-request-cryptogram-tampered-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateAuthRequestCryptogram", "payment-cryptography-data:VerifyAuthRequestCryptogram", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_verify_auth_request_cryptogram_tampered_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.verify-card-validation-data-wrong-value-rejected", "deployments": [], "key": "payment-cryptography-data/verify-card-validation-data-wrong-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateCardValidationData", "payment-cryptography-data:VerifyCardValidationData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_verify_card_validation_data_wrong_value_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.verify-mac-wrong-message-rejected", "deployments": [], "key": "payment-cryptography-data/verify-mac-wrong-message-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GenerateMac", "payment-cryptography-data:VerifyMac", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_verify_mac_wrong_message_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography-data.verify-pin-data-wrong-pin-rejected", "deployments": [], "key": "payment-cryptography-data/verify-pin-data-wrong-pin-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["payment-cryptography-data:GeneratePinData", "payment-cryptography-data:VerifyPinData", "payment-cryptography:CreateKey", "payment-cryptography:DeleteKey"], "path": "behavioral/payment-cryptography-data/check_verify_pin_data_wrong_pin_rejected.py", "service": "payment-cryptography-data"} {"check_id": "payment-cryptography.alias-lifecycle-create-update-delete", "deployments": [], "key": "payment-cryptography/alias-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateAlias", "payment-cryptography:CreateKey", "payment-cryptography:DeleteAlias", "payment-cryptography:DeleteKey", "payment-cryptography:GetAlias", "payment-cryptography:UpdateAlias"], "path": "behavioral/payment-cryptography/check_alias_lifecycle_create_update_delete.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.concurrent-create-alias-same-name-exactly-one-wins", "deployments": [], "key": "payment-cryptography/concurrent-create-alias-same-name-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["payment-cryptography:CreateAlias", "payment-cryptography:CreateKey", "payment-cryptography:DeleteAlias", "payment-cryptography:DeleteKey", "payment-cryptography:GetAlias"], "path": "behavioral/payment-cryptography/check_concurrent_create_alias_same_name_exactly_one_wins.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.create-alias-duplicate-name-conflict-rejected", "deployments": [], "key": "payment-cryptography/create-alias-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["payment-cryptography:CreateAlias", "payment-cryptography:CreateKey", "payment-cryptography:DeleteAlias", "payment-cryptography:DeleteKey", "payment-cryptography:GetAlias"], "path": "behavioral/payment-cryptography/check_create_alias_duplicate_name_conflict_rejected.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.create-key-invalid-attribute-combo-rejected", "deployments": [], "key": "payment-cryptography/create-key-invalid-attribute-combo-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey"], "path": "behavioral/payment-cryptography/check_create_key_invalid_attribute_combo_rejected.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.create-key-reaches-create-complete-state", "deployments": [], "key": "payment-cryptography/create-key-reaches-create-complete-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey"], "path": "behavioral/payment-cryptography/check_create_key_reaches_create_complete_state.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.default-replication-regions-enable-disable-roundtrip", "deployments": [], "key": "payment-cryptography/default-replication-regions-enable-disable-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:DisableDefaultKeyReplicationRegions", "payment-cryptography:EnableDefaultKeyReplicationRegions", "payment-cryptography:GetDefaultKeyReplicationRegions"], "path": "behavioral/payment-cryptography/check_default_replication_regions_enable_disable_roundtrip.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.delete-key-conflict-when-already-pending-rejected", "deployments": [], "key": "payment-cryptography/delete-key-conflict-when-already-pending-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey", "payment-cryptography:RestoreKey"], "path": "behavioral/payment-cryptography/check_delete_key_conflict_when_already_pending_rejected.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.delete-key-schedule-and-restore-lifecycle", "deployments": [], "key": "payment-cryptography/delete-key-schedule-and-restore-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey", "payment-cryptography:RestoreKey"], "path": "behavioral/payment-cryptography/check_delete_key_schedule_and_restore_lifecycle.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.export-import-tr31-key-roundtrip", "deployments": [], "key": "payment-cryptography/export-import-tr31-key-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:ExportKey", "payment-cryptography:GetKey", "payment-cryptography:ImportKey"], "path": "behavioral/payment-cryptography/check_export_import_tr31_key_roundtrip.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.export-key-not-exportable-rejected", "deployments": [], "key": "payment-cryptography/export-key-not-exportable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:ExportKey", "payment-cryptography:GetKey", "payment-cryptography:ImportKey"], "path": "behavioral/payment-cryptography/check_export_key_not_exportable_rejected.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.get-certificate-signing-request-success", "deployments": [], "key": "payment-cryptography/get-certificate-signing-request-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetCertificateSigningRequest", "payment-cryptography:GetPublicKeyCertificate"], "path": "behavioral/payment-cryptography/check_get_certificate_signing_request_success.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.get-key-not-found", "deployments": [], "key": "payment-cryptography/get-key-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey"], "path": "behavioral/payment-cryptography/check_get_key_not_found.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.get-parameters-for-export-token-reuse-semantics", "deployments": [], "key": "payment-cryptography/get-parameters-for-export-token-reuse-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:GetParametersForExport"], "path": "behavioral/payment-cryptography/check_get_parameters_for_export_token_reuse_semantics.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.get-public-key-certificate-for-asymmetric-key-success", "deployments": [], "key": "payment-cryptography/get-public-key-certificate-for-asymmetric-key-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey", "payment-cryptography:GetPublicKeyCertificate", "sts:GetCallerIdentity"], "path": "behavioral/payment-cryptography/check_get_public_key_certificate_for_asymmetric_key_success.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.import-key-corrupted-wrapped-block-rejected", "deployments": [], "key": "payment-cryptography/import-key-corrupted-wrapped-block-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:ExportKey", "payment-cryptography:GetKey", "payment-cryptography:ImportKey", "payment-cryptography:ListKeys"], "path": "behavioral/payment-cryptography/check_import_key_corrupted_wrapped_block_rejected.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.key-replication-regions-add-remove-state-transition", "deployments": [], "key": "payment-cryptography/key-replication-regions-add-remove-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey", "payment-cryptography:RemoveKeyReplicationRegions"], "path": "behavioral/payment-cryptography/check_key_replication_regions_add_remove_state_transition.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.list-keys-state-filter-reflects-deletion", "deployments": [], "key": "payment-cryptography/list-keys-state-filter-reflects-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:ListKeys"], "path": "behavioral/payment-cryptography/check_list_keys_state_filter_reflects_deletion.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.put-resource-policy-public-principal-rejected", "deployments": [], "key": "payment-cryptography/put-resource-policy-public-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:DeleteResourcePolicy", "payment-cryptography:GetResourcePolicy", "payment-cryptography:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/payment-cryptography/check_put_resource_policy_public_principal_rejected.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.resource-policy-put-get-delete-roundtrip", "deployments": [], "key": "payment-cryptography/resource-policy-put-get-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:DeleteResourcePolicy", "payment-cryptography:GetResourcePolicy", "payment-cryptography:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/payment-cryptography/check_resource_policy_put_get_delete_roundtrip.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.start-stop-key-usage-toggles-enabled", "deployments": [], "key": "payment-cryptography/start-stop-key-usage-toggles-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:GetKey", "payment-cryptography:StartKeyUsage", "payment-cryptography:StopKeyUsage"], "path": "behavioral/payment-cryptography/check_start_stop_key_usage_toggles_enabled.py", "service": "payment-cryptography"} {"check_id": "payment-cryptography.tag-untag-resource-roundtrip", "deployments": [], "key": "payment-cryptography/tag-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["payment-cryptography:CreateKey", "payment-cryptography:DeleteKey", "payment-cryptography:ListTagsForResource", "payment-cryptography:TagResource", "payment-cryptography:UntagResource"], "path": "behavioral/payment-cryptography/check_tag_untag_resource_roundtrip.py", "service": "payment-cryptography"} {"check_id": "pca-connector-ad.create-connector-empty-security-group-list-rejected", "deployments": [], "key": "pca-connector-ad/create-connector-empty-security-group-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateConnector", "pca-connector-ad:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_connector_empty_security_group_list_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-connector-invalid-certificate-authority-arn-pattern-rejected", "deployments": [], "key": "pca-connector-ad/create-connector-invalid-certificate-authority-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateConnector", "pca-connector-ad:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_connector_invalid_certificate_authority_arn_pattern_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-connector-invalid-directory-id-pattern-rejected", "deployments": [], "key": "pca-connector-ad/create-connector-invalid-directory-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateConnector", "pca-connector-ad:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_connector_invalid_directory_id_pattern_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-connector-missing-iam-permission-rejected", "deployments": [], "key": "pca-connector-ad/create-connector-missing-iam-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-ad:CreateConnector", "pca-connector-ad:ListConnectors", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_connector_missing_iam_permission_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-directory-registration-invalid-directory-id-pattern-rejected", "deployments": [], "key": "pca-connector-ad/create-directory-registration-invalid-directory-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateDirectoryRegistration", "pca-connector-ad:ListDirectoryRegistrations"], "path": "behavioral/pca-connector-ad/check_create_directory_registration_invalid_directory_id_pattern_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-service-principal-name-arn-type-mismatch-rejected", "deployments": [], "key": "pca-connector-ad/create-service-principal-name-arn-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateServicePrincipalName", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_service_principal_name_arn_type_mismatch_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-template-group-access-control-entry-invalid-access-rights-enum-rejected", "deployments": [], "key": "pca-connector-ad/create-template-group-access-control-entry-invalid-access-rights-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateTemplateGroupAccessControlEntry", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_template_group_access_control_entry_invalid_access_rights_enum_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-template-group-access-control-entry-invalid-sid-pattern-rejected", "deployments": [], "key": "pca-connector-ad/create-template-group-access-control-entry-invalid-sid-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateTemplateGroupAccessControlEntry", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_template_group_access_control_entry_invalid_sid_pattern_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-template-invalid-name-characters-rejected", "deployments": [], "key": "pca-connector-ad/create-template-invalid-name-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateTemplate", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_template_invalid_name_characters_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.create-template-nonexistent-connector-not-found", "deployments": [], "key": "pca-connector-ad/create-template-nonexistent-connector-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:CreateTemplate", "pca-connector-ad:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_create_template_nonexistent_connector_not_found.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.delete-connector-not-found", "deployments": [], "key": "pca-connector-ad/delete-connector-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["pca-connector-ad:DeleteConnector", "pca-connector-ad:GetConnector", "pca-connector-ad:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_delete_connector_not_found.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.get-connector-not-found", "deployments": [], "key": "pca-connector-ad/get-connector-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:GetConnector", "pca-connector-ad:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_get_connector_not_found.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.list-connectors-malformed-next-token-rejected", "deployments": [], "key": "pca-connector-ad/list-connectors-malformed-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:ListConnectors"], "path": "behavioral/pca-connector-ad/check_list_connectors_malformed_next_token_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.list-connectors-max-results-out-of-range-rejected", "deployments": [], "key": "pca-connector-ad/list-connectors-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:ListConnectors"], "path": "behavioral/pca-connector-ad/check_list_connectors_max_results_out_of_range_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-ad.untag-resource-malformed-resource-arn-rejected", "deployments": [], "key": "pca-connector-ad/untag-resource-malformed-resource-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-ad:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-ad/check_untag_resource_malformed_resource_arn_rejected.py", "service": "pca-connector-ad"} {"check_id": "pca-connector-scep.challenge-arn-wrong-resource-type-rejected", "deployments": [], "key": "pca-connector-scep/challenge-arn-wrong-resource-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-scep:GetChallengeMetadata", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_challenge_arn_wrong_resource_type_rejected.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.challenge-metadata-excludes-sensitive-password", "deployments": [], "key": "pca-connector-scep/challenge-metadata-excludes-sensitive-password", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetChallengeMetadata", "pca-connector-scep:GetChallengePassword", "pca-connector-scep:GetConnector", "pca-connector-scep:ListChallengeMetadata", "pca-connector-scep:ListConnectors", "ram:CreateResourceShare", "ram:DeleteResourceShare", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_challenge_metadata_excludes_sensitive_password.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.connector-creating-to-active-transition", "deployments": [], "key": "pca-connector-scep/connector-creating-to-active-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListConnectors", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_connector_creating_to_active_transition.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.connector-failed-transition-invalid-ca-state", "deployments": [], "key": "pca-connector-scep/connector-failed-transition-invalid-ca-state", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:ListConnectors"], "path": "behavioral/pca-connector-scep/check_connector_failed_transition_invalid_ca_state.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.create-challenge-concurrent-same-client-token-dedup", "deployments": [], "key": "pca-connector-scep/create-challenge-concurrent-same-client-token-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListChallengeMetadata", "pca-connector-scep:ListConnectors", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShareAssociations", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_create_challenge_concurrent_same_client_token_dedup.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.create-challenge-different-client-token-creates-distinct", "deployments": [], "key": "pca-connector-scep/create-challenge-different-client-token-creates-distinct", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListChallengeMetadata", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShares", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_create_challenge_different_client_token_creates_distinct.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.create-challenge-idempotent-client-token", "deployments": [], "key": "pca-connector-scep/create-challenge-idempotent-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListChallengeMetadata", "pca-connector-scep:ListConnectors", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShares", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_create_challenge_idempotent_client_token.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.create-challenge-on-inactive-connector-rejected", "deployments": [], "key": "pca-connector-scep/create-challenge-on-inactive-connector-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListChallengeMetadata", "pca-connector-scep:ListConnectors", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_create_challenge_on_inactive_connector_rejected.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.create-challenge-returns-password-and-metadata", "deployments": [], "key": "pca-connector-scep/create-challenge-returns-password-and-metadata", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetChallengeMetadata", "pca-connector-scep:GetChallengePassword", "pca-connector-scep:GetConnector", "pca-connector-scep:ListConnectors", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShareAssociations", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_create_challenge_returns_password_and_metadata.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.create-connector-ca-not-found-rejected", "deployments": [], "key": "pca-connector-scep/create-connector-ca-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListConnectors", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_create_connector_ca_not_found_rejected.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.delete-challenge-removes-password", "deployments": [], "key": "pca-connector-scep/delete-challenge-removes-password", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteChallenge", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetChallengeMetadata", "pca-connector-scep:GetChallengePassword", "pca-connector-scep:GetConnector", "pca-connector-scep:ListChallengeMetadata", "pca-connector-scep:ListConnectors", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShares", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_delete_challenge_removes_password.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.delete-connector-cascades-challenges", "deployments": [], "key": "pca-connector-scep/delete-connector-cascades-challenges", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteChallenge", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetChallengeMetadata", "pca-connector-scep:GetChallengePassword", "pca-connector-scep:GetConnector", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShares", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_delete_connector_cascades_challenges.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.delete-connector-twice-rejected", "deployments": [], "key": "pca-connector-scep/delete-connector-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector"], "path": "behavioral/pca-connector-scep/check_delete_connector_twice_rejected.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.list-challenge-metadata-pagination", "deployments": [], "key": "pca-connector-scep/list-challenge-metadata-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListChallengeMetadata", "pca-connector-scep:ListConnectors", "ram:CreateResourceShare", "ram:DeleteResourceShare", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_list_challenge_metadata_pagination.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.list-connectors-includes-created-connector", "deployments": [], "key": "pca-connector-scep/list-connectors-includes-created-connector", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListConnectors"], "path": "behavioral/pca-connector-scep/check_list_connectors_includes_created_connector.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.list-connectors-max-results-out-of-range-rejected", "deployments": [], "key": "pca-connector-scep/list-connectors-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pca-connector-scep:ListConnectors"], "path": "behavioral/pca-connector-scep/check_list_connectors_max_results_out_of_range_rejected.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.scep-get-cacert-native-protocol-roundtrip", "deployments": [], "key": "pca-connector-scep/scep-get-cacert-native-protocol-roundtrip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListConnectors", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShares", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_scep_get_cacert_native_protocol_roundtrip.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.tag-challenge-resource", "deployments": [], "key": "pca-connector-scep/tag-challenge-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pca-connector-scep:CreateChallenge", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:GetConnector", "pca-connector-scep:ListConnectors", "pca-connector-scep:ListTagsForResource", "pca-connector-scep:TagResource", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShareAssociations", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/pca-connector-scep/check_tag_challenge_resource.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.tag-resource-exceeds-max-tags-rejected", "deployments": [], "key": "pca-connector-scep/tag-resource-exceeds-max-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:ListTagsForResource", "pca-connector-scep:TagResource"], "path": "behavioral/pca-connector-scep/check_tag_resource_exceeds_max_tags_rejected.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.tag-resource-then-list-tags", "deployments": [], "key": "pca-connector-scep/tag-resource-then-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:ListTagsForResource", "pca-connector-scep:TagResource"], "path": "behavioral/pca-connector-scep/check_tag_resource_then_list_tags.py", "service": "pca-connector-scep"} {"check_id": "pca-connector-scep.untag-resource-removes-tag", "deployments": [], "key": "pca-connector-scep/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm-pca:CreateCertificateAuthority", "acm-pca:DeleteCertificateAuthority", "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:ImportCertificateAuthorityCertificate", "acm-pca:IssueCertificate", "acm-pca:UpdateCertificateAuthority", "pca-connector-scep:CreateConnector", "pca-connector-scep:DeleteConnector", "pca-connector-scep:ListTagsForResource", "pca-connector-scep:TagResource", "pca-connector-scep:UntagResource"], "path": "behavioral/pca-connector-scep/check_untag_resource_removes_tag.py", "service": "pca-connector-scep"} {"check_id": "pcs.cluster-create-active-delete-state-transition-lifecycle", "deployments": [], "key": "pcs/cluster-create-active-delete-state-transition-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "pcs:CreateCluster", "pcs:DeleteCluster", "pcs:GetCluster", "pcs:ListClusters"], "path": "behavioral/pcs/check_cluster_create_active_delete_state_transition_lifecycle.py", "service": "pcs"} {"check_id": "pcs.cluster-tag-round-trip-and-tag-quota-exceeded-rejected", "deployments": [], "key": "pcs/cluster-tag-round-trip-and-tag-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "pcs:CreateCluster", "pcs:DeleteCluster", "pcs:GetCluster", "pcs:ListTagsForResource", "pcs:TagResource", "pcs:UntagResource"], "path": "behavioral/pcs/check_cluster_tag_round_trip_and_tag_quota_exceeded_rejected.py", "service": "pcs"} {"check_id": "pcs.compute-node-group-and-queue-lifecycle", "deployments": [], "key": "pcs/compute-node-group-and-queue-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "pcs:CreateCluster", "pcs:CreateComputeNodeGroup", "pcs:CreateQueue", "pcs:DeleteCluster", "pcs:DeleteComputeNodeGroup", "pcs:DeleteQueue", "pcs:GetCluster", "pcs:GetComputeNodeGroup", "pcs:GetQueue", "pcs:ListComputeNodeGroups", "pcs:ListQueues", "ssm:GetParameter"], "path": "behavioral/pcs/check_compute_node_group_and_queue_lifecycle.py", "service": "pcs"} {"check_id": "pcs.create-cluster-duplicate-name-conflict-rejected", "deployments": [], "key": "pcs/create-cluster-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "pcs:CreateCluster", "pcs:DeleteCluster", "pcs:GetCluster", "pcs:ListClusters", "pcs:UpdateCluster"], "path": "behavioral/pcs/check_create_cluster_duplicate_name_conflict_rejected.py", "service": "pcs"} {"check_id": "pcs.create-cluster-invalid-scheduler-version-rejected", "deployments": [], "key": "pcs/create-cluster-invalid-scheduler-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "pcs:CreateCluster", "pcs:ListClusters"], "path": "behavioral/pcs/check_create_cluster_invalid_scheduler_version_rejected.py", "service": "pcs"} {"check_id": "pcs.create-cluster-reserved-name-prefix-rejected", "deployments": [], "key": "pcs/create-cluster-reserved-name-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "pcs:CreateCluster", "pcs:ListClusters"], "path": "behavioral/pcs/check_create_cluster_reserved_name_prefix_rejected.py", "service": "pcs"} {"check_id": "pcs.create-compute-node-group-nonexistent-cluster-not-found", "deployments": [], "key": "pcs/create-compute-node-group-nonexistent-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["pcs:CreateComputeNodeGroup", "pcs:DeleteComputeNodeGroup", "pcs:GetComputeNodeGroup", "pcs:ListClusters", "pcs:ListComputeNodeGroups", "sts:GetCallerIdentity"], "path": "behavioral/pcs/check_create_compute_node_group_nonexistent_cluster_not_found.py", "service": "pcs"} {"check_id": "pcs.create-queue-nonexistent-cluster-not-found", "deployments": [], "key": "pcs/create-queue-nonexistent-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["pcs:CreateQueue", "pcs:ListClusters", "pcs:ListQueues"], "path": "behavioral/pcs/check_create_queue_nonexistent_cluster_not_found.py", "service": "pcs"} {"check_id": "pcs.delete-dependents-out-of-order-conflict-rejected", "deployments": [], "key": "pcs/delete-dependents-out-of-order-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateLaunchTemplate", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "pcs:CreateCluster", "pcs:CreateComputeNodeGroup", "pcs:CreateQueue", "pcs:DeleteCluster", "pcs:DeleteComputeNodeGroup", "pcs:DeleteQueue", "pcs:GetCluster", "pcs:GetComputeNodeGroup", "pcs:GetQueue", "pcs:ListComputeNodeGroups", "pcs:ListQueues", "ssm:GetParameter", "ssm:GetParametersByPath"], "path": "behavioral/pcs/check_delete_dependents_out_of_order_conflict_rejected.py", "service": "pcs"} {"check_id": "pcs.get-cluster-nonexistent-not-found", "deployments": [], "key": "pcs/get-cluster-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["pcs:GetCluster", "pcs:ListClusters"], "path": "behavioral/pcs/check_get_cluster_nonexistent_not_found.py", "service": "pcs"} {"check_id": "pcs.list-tags-for-resource-nonexistent-not-found", "deployments": [], "key": "pcs/list-tags-for-resource-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["pcs:ListClusters", "pcs:ListTagsForResource", "pcs:TagResource", "pcs:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/pcs/check_list_tags_for_resource_nonexistent_not_found.py", "service": "pcs"} {"check_id": "pcs.register-compute-node-group-instance-bad-bootstrap-rejected", "deployments": [], "key": "pcs/register-compute-node-group-instance-bad-bootstrap-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pcs:ListClusters", "pcs:RegisterComputeNodeGroupInstance"], "path": "behavioral/pcs/check_register_compute_node_group_instance_bad_bootstrap_rejected.py", "service": "pcs"} {"check_id": "pcs.update-cluster-invalid-scheduler-version-rejected", "deployments": [], "key": "pcs/update-cluster-invalid-scheduler-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "pcs:CreateCluster", "pcs:DeleteCluster", "pcs:GetCluster", "pcs:UpdateCluster"], "path": "behavioral/pcs/check_update_cluster_invalid_scheduler_version_rejected.py", "service": "pcs"} {"check_id": "personalize-events.put-action-interactions-max-batch-ten-success", "deployments": [], "key": "personalize-events/put-action-interactions-max-batch-ten-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["personalize-events:PutActionInteractions", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_action_interactions_max_batch_ten_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-action-interactions-multiple-event-types-success", "deployments": [], "key": "personalize-events/put-action-interactions-multiple-event-types-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["personalize-events:PutActionInteractions", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_action_interactions_multiple_event_types_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-action-interactions-optional-fields-success", "deployments": [], "key": "personalize-events/put-action-interactions-optional-fields-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["personalize-events:PutActionInteractions", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_action_interactions_optional_fields_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-action-interactions-reserved-property-keyword-rejected", "deployments": [], "key": "personalize-events/put-action-interactions-reserved-property-keyword-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-events:PutActionInteractions", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_action_interactions_reserved_property_keyword_rejected.py", "service": "personalize-events"} {"check_id": "personalize-events.put-action-interactions-tracker-not-found-rejected", "deployments": [], "key": "personalize-events/put-action-interactions-tracker-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-events:PutActionInteractions", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_action_interactions_tracker_not_found_rejected.py", "service": "personalize-events"} {"check_id": "personalize-events.put-actions-success", "deployments": [], "key": "personalize-events/put-actions-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["personalize-events:PutActions", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_actions_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-actions-wrong-dataset-type-rejected", "deployments": [], "key": "personalize-events/put-actions-wrong-dataset-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-events:PutActions", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_actions_wrong_dataset_type_rejected.py", "service": "personalize-events"} {"check_id": "personalize-events.put-events-concurrent-writes-all-succeed", "deployments": [], "key": "personalize-events/put-events-concurrent-writes-all-succeed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["personalize-events:PutEvents", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateEventTracker", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeEventTracker", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_events_concurrent_writes_all_succeed.py", "service": "personalize-events"} {"check_id": "personalize-events.put-events-max-batch-ten-events-success", "deployments": [], "key": "personalize-events/put-events-max-batch-ten-events-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["personalize-events:PutEvents", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateEventTracker", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeEventTracker", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_events_max_batch_ten_events_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-events-minimal-fields-success", "deployments": [], "key": "personalize-events/put-events-minimal-fields-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "personalize-events:PutEvents", "personalize:CreateDataset", "personalize:CreateDatasetExportJob", "personalize:CreateDatasetGroup", "personalize:CreateEventTracker", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetExportJob", "personalize:DescribeDatasetGroup", "personalize:DescribeEventTracker", "personalize:ListDatasetGroups", "personalize:ListDatasets", "personalize:ListSchemas", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/personalize-events/check_put_events_minimal_fields_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-events-nonexistent-tracking-id-rejected", "deployments": [], "key": "personalize-events/put-events-nonexistent-tracking-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-events:PutEvents", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateEventTracker", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeEventTracker", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_events_nonexistent_tracking_id_rejected.py", "service": "personalize-events"} {"check_id": "personalize-events.put-events-optional-fields-round-trip-success", "deployments": [], "key": "personalize-events/put-events-optional-fields-round-trip-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["personalize-events:PutEvents", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateEventTracker", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeEventTracker", "personalize:ListDatasetGroups", "personalize:ListDatasets", "personalize:ListSchemas"], "path": "behavioral/personalize-events/check_put_events_optional_fields_round_trip_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-events-reserved-property-keyword-rejected", "deployments": [], "key": "personalize-events/put-events-reserved-property-keyword-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-events:PutEvents", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateEventTracker", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeEventTracker", "personalize:ListDatasetGroups", "personalize:ListDatasets"], "path": "behavioral/personalize-events/check_put_events_reserved_property_keyword_rejected.py", "service": "personalize-events"} {"check_id": "personalize-events.put-items-dataset-not-found-rejected", "deployments": [], "key": "personalize-events/put-items-dataset-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-events:PutItems", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets", "sts:GetCallerIdentity"], "path": "behavioral/personalize-events/check_put_items_dataset_not_found_rejected.py", "service": "personalize-events"} {"check_id": "personalize-events.put-items-max-batch-ten-items-success", "deployments": [], "key": "personalize-events/put-items-max-batch-ten-items-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "personalize-events:PutItems", "personalize:CreateDataset", "personalize:CreateDatasetExportJob", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DeleteDataset", "personalize:DeleteDatasetGroup", "personalize:DeleteSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetExportJob", "personalize:DescribeDatasetGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/personalize-events/check_put_items_max_batch_ten_items_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-items-property-update-reflected-in-export", "deployments": [], "key": "personalize-events/put-items-property-update-reflected-in-export", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "personalize-events:PutItems", "personalize:CreateDataset", "personalize:CreateDatasetExportJob", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DeleteDataset", "personalize:DeleteDatasetGroup", "personalize:DeleteSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetExportJob", "personalize:DescribeDatasetGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/personalize-events/check_put_items_property_update_reflected_in_export.py", "service": "personalize-events"} {"check_id": "personalize-events.put-items-success", "deployments": [], "key": "personalize-events/put-items-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "personalize-events:PutItems", "personalize:CreateDataset", "personalize:CreateDatasetExportJob", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetExportJob", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/personalize-events/check_put_items_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-users-max-batch-ten-users-success", "deployments": [], "key": "personalize-events/put-users-max-batch-ten-users-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "personalize-events:PutUsers", "personalize:CreateDataset", "personalize:CreateDatasetExportJob", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetExportJob", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/personalize-events/check_put_users_max_batch_ten_users_success.py", "service": "personalize-events"} {"check_id": "personalize-events.put-users-success", "deployments": [], "key": "personalize-events/put-users-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "personalize-events:PutUsers", "personalize:CreateDataset", "personalize:CreateDatasetExportJob", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetExportJob", "personalize:DescribeDatasetGroup", "personalize:ListDatasetGroups", "personalize:ListDatasets", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/personalize-events/check_put_users_success.py", "service": "personalize-events"} {"check_id": "personalize-runtime.get-action-recommendations-malformed-campaign-arn-rejected", "deployments": [], "key": "personalize-runtime/get-action-recommendations-malformed-campaign-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetActionRecommendations", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_action_recommendations_malformed_campaign_arn_rejected.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-action-recommendations-missing-campaign-rejected", "deployments": [], "key": "personalize-runtime/get-action-recommendations-missing-campaign-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetActionRecommendations", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_action_recommendations_missing_campaign_rejected.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-action-recommendations-nonexistent-campaign-not-found", "deployments": [], "key": "personalize-runtime/get-action-recommendations-nonexistent-campaign-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetActionRecommendations", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_action_recommendations_nonexistent_campaign_not_found.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-action-recommendations-wrong-resource-type-arn-not-found", "deployments": [], "key": "personalize-runtime/get-action-recommendations-wrong-resource-type-arn-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetActionRecommendations", "personalize:CreateSchema", "personalize:DeleteSchema", "personalize:DescribeSchema", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_action_recommendations_wrong_resource_type_arn_not_found.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-personalized-ranking-malformed-campaign-arn-rejected", "deployments": [], "key": "personalize-runtime/get-personalized-ranking-malformed-campaign-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetPersonalizedRanking", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_personalized_ranking_malformed_campaign_arn_rejected.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-personalized-ranking-nonexistent-campaign-not-found", "deployments": [], "key": "personalize-runtime/get-personalized-ranking-nonexistent-campaign-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetPersonalizedRanking", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_personalized_ranking_nonexistent_campaign_not_found.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-personalized-ranking-round-trip", "deployments": [], "key": "personalize-runtime/get-personalized-ranking-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "personalize-runtime:GetPersonalizedRanking", "personalize:CreateCampaign", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateDatasetImportJob", "personalize:CreateSchema", "personalize:CreateSolution", "personalize:CreateSolutionVersion", "personalize:DeleteCampaign", "personalize:DeleteDataset", "personalize:DeleteDatasetGroup", "personalize:DeleteSchema", "personalize:DeleteSolution", "personalize:DescribeCampaign", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeDatasetImportJob", "personalize:DescribeSchema", "personalize:DescribeSolution", "personalize:DescribeSolutionVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/personalize-runtime/check_get_personalized_ranking_round_trip.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-recommendations-cross-account-campaign-arn-not-found", "deployments": [], "key": "personalize-runtime/get-recommendations-cross-account-campaign-arn-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetRecommendations", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_recommendations_cross_account_campaign_arn_not_found.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-recommendations-malformed-campaign-arn-rejected", "deployments": [], "key": "personalize-runtime/get-recommendations-malformed-campaign-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetRecommendations", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_recommendations_malformed_campaign_arn_rejected.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-recommendations-missing-campaign-and-recommender-rejected", "deployments": [], "key": "personalize-runtime/get-recommendations-missing-campaign-and-recommender-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetRecommendations", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_recommendations_missing_campaign_and_recommender_rejected.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-recommendations-missing-iam-permission-denied", "deployments": [], "key": "personalize-runtime/get-recommendations-missing-iam-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "personalize-runtime:GetRecommendations", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_recommendations_missing_iam_permission_denied.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-recommendations-nonexistent-campaign-not-found", "deployments": [], "key": "personalize-runtime/get-recommendations-nonexistent-campaign-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetRecommendations", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_recommendations_nonexistent_campaign_not_found.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.get-recommendations-wrong-resource-type-arn-not-found", "deployments": [], "key": "personalize-runtime/get-recommendations-wrong-resource-type-arn-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["personalize-runtime:GetRecommendations", "personalize:CreateSchema", "personalize:DeleteSchema", "personalize:DescribeSchema", "sts:GetCallerIdentity"], "path": "behavioral/personalize-runtime/check_get_recommendations_wrong_resource_type_arn_not_found.py", "service": "personalize-runtime"} {"check_id": "personalize-runtime.recommendations-recipe-type-mismatch-rejected", "deployments": [], "key": "personalize-runtime/recommendations-recipe-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "personalize-runtime:GetActionRecommendations", "personalize-runtime:GetPersonalizedRanking", "personalize-runtime:GetRecommendations", "personalize:CreateCampaign", "personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateDatasetImportJob", "personalize:CreateSchema", "personalize:CreateSolution", "personalize:CreateSolutionVersion", "personalize:DeleteCampaign", "personalize:DeleteDataset", "personalize:DeleteDatasetGroup", "personalize:DeleteSchema", "personalize:DeleteSolution", "personalize:DescribeCampaign", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeDatasetImportJob", "personalize:DescribeSchema", "personalize:DescribeSolution", "personalize:DescribeSolutionVersion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/personalize-runtime/check_recommendations_recipe_type_mismatch_rejected.py", "service": "personalize-runtime"} {"check_id": "personalize.dataset-group-delete-blocked-while-dataset-active", "deployments": [], "key": "personalize/dataset-group-delete-blocked-while-dataset-active", "labels": ["axis:rejection", "plane:control"], "operations": ["personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DeleteDataset", "personalize:DeleteDatasetGroup", "personalize:DeleteSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup"], "path": "behavioral/personalize/check_dataset_group_delete_blocked_while_dataset_active.py", "service": "personalize"} {"check_id": "personalize.schema-delete-blocked-while-dataset-references-it", "deployments": [], "key": "personalize/schema-delete-blocked-while-dataset-references-it", "labels": ["axis:rejection", "plane:control"], "operations": ["personalize:CreateDataset", "personalize:CreateDatasetGroup", "personalize:CreateSchema", "personalize:DeleteDataset", "personalize:DeleteDatasetGroup", "personalize:DeleteSchema", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeSchema"], "path": "behavioral/personalize/check_schema_delete_blocked_while_dataset_references_it.py", "service": "personalize"} {"check_id": "pi.concurrent-create-analysis-reports-get-unique-ids", "deployments": [], "key": "pi/concurrent-create-analysis-reports-get-unique-ids", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:CreatePerformanceAnalysisReport", "pi:DeletePerformanceAnalysisReport", "pi:ListPerformanceAnalysisReports", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_concurrent_create_analysis_reports_get_unique_ids.py", "service": "pi"} {"check_id": "pi.create-analysis-report-reaches-succeeded", "deployments": [], "key": "pi/create-analysis-report-reaches-succeeded", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:CreatePerformanceAnalysisReport", "pi:DeletePerformanceAnalysisReport", "pi:GetPerformanceAnalysisReport", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_create_analysis_report_reaches_succeeded.py", "service": "pi"} {"check_id": "pi.cross-service-type-mismatch-rejected", "deployments": [], "key": "pi/cross-service-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:GetResourceMetadata", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_cross_service_type_mismatch_rejected.py", "service": "pi"} {"check_id": "pi.delete-analysis-report-malformed-id-rejected", "deployments": [], "key": "pi/delete-analysis-report-malformed-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:DeletePerformanceAnalysisReport", "pi:ListPerformanceAnalysisReports", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_delete_analysis_report_malformed_id_rejected.py", "service": "pi"} {"check_id": "pi.delete-nonexistent-analysis-report-id-rejected", "deployments": [], "key": "pi/delete-nonexistent-analysis-report-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pi:CreatePerformanceAnalysisReport", "pi:DeletePerformanceAnalysisReport", "pi:ListPerformanceAnalysisReports", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/pi/check_delete_nonexistent_analysis_report_id_rejected.py", "service": "pi"} {"check_id": "pi.describe-dimension-keys-start-after-end-rejected", "deployments": [], "key": "pi/describe-dimension-keys-start-after-end-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:DescribeDimensionKeys", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_describe_dimension_keys_start_after_end_rejected.py", "service": "pi"} {"check_id": "pi.get-performance-analysis-report-fields-match-request", "deployments": [], "key": "pi/get-performance-analysis-report-fields-match-request", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:GetPerformanceAnalysisReport", "pi:ListPerformanceAnalysisReports", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_get_performance_analysis_report_fields_match_request.py", "service": "pi"} {"check_id": "pi.get-resource-metadata-reflects-sql-digest-feature", "deployments": [], "key": "pi/get-resource-metadata-reflects-sql-digest-feature", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:GetResourceMetadata", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_get_resource_metadata_reflects_sql_digest_feature.py", "service": "pi"} {"check_id": "pi.get-resource-metrics-aligns-a-window-inside-collected-history-to-the-period", "deployments": [], "key": "pi/get-resource-metrics-aligns-a-window-inside-collected-history-to-the-period", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:GetResourceMetrics", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_get_resource_metrics_aligns_a_window_inside_collected_history_to_the_period.py", "service": "pi"} {"check_id": "pi.get-resource-metrics-metric-without-aggregate-suffix-rejected", "deployments": [], "key": "pi/get-resource-metrics-metric-without-aggregate-suffix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:GetResourceMetrics", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_get_resource_metrics_metric_without_aggregate_suffix_rejected.py", "service": "pi"} {"check_id": "pi.get-resource-metrics-returns-full-datapoint-series", "deployments": [], "key": "pi/get-resource-metrics-returns-full-datapoint-series", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["pi:GetResourceMetrics", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/pi/check_get_resource_metrics_returns_full_datapoint_series.py", "service": "pi"} {"check_id": "pi.list-available-resource-dimensions-for-db-load", "deployments": [], "key": "pi/list-available-resource-dimensions-for-db-load", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:ListAvailableResourceDimensions", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_list_available_resource_dimensions_for_db_load.py", "service": "pi"} {"check_id": "pi.list-available-resource-metrics-includes-db-load", "deployments": [], "key": "pi/list-available-resource-metrics-includes-db-load", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:GetResourceMetrics", "pi:ListAvailableResourceMetrics", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_list_available_resource_metrics_includes_db_load.py", "service": "pi"} {"check_id": "pi.list-performance-analysis-reports-pagination", "deployments": [], "key": "pi/list-performance-analysis-reports-pagination", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:ListPerformanceAnalysisReports", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_list_performance_analysis_reports_pagination.py", "service": "pi"} {"check_id": "pi.list-reports-shows-running-status-immediately-after-create", "deployments": [], "key": "pi/list-reports-shows-running-status-immediately-after-create", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:ListPerformanceAnalysisReports", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/pi/check_list_reports_shows_running_status_immediately_after_create.py", "service": "pi"} {"check_id": "pi.missing-permission-get-resource-metrics-denied", "deployments": [], "key": "pi/missing-permission-get-resource-metrics-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys", "pi:GetResourceMetrics", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups", "sts:GetCallerIdentity"], "path": "behavioral/pi/check_missing_permission_get_resource_metrics_denied.py", "service": "pi"} {"check_id": "pi.tag-resource-reserved-prefix-key-rejected", "deployments": [], "key": "pi/tag-resource-reserved-prefix-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:ListAvailableResourceMetrics", "pi:TagResource", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups", "sts:GetCallerIdentity"], "path": "behavioral/pi/check_tag_resource_reserved_prefix_key_rejected.py", "service": "pi"} {"check_id": "pi.tag-resource-visible-in-list-tags-for-report", "deployments": [], "key": "pi/tag-resource-visible-in-list-tags-for-report", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:ListTagsForResource", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups", "sts:GetCallerIdentity"], "path": "behavioral/pi/check_tag_resource_visible_in_list_tags_for_report.py", "service": "pi"} {"check_id": "pi.untag-resource-removes-tag-for-report", "deployments": [], "key": "pi/untag-resource-removes-tag-for-report", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "pi:ListPerformanceAnalysisReports", "pi:UntagResource", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups", "sts:GetCallerIdentity"], "path": "behavioral/pi/check_untag_resource_removes_tag_for_report.py", "service": "pi"} {"check_id": "pinpoint-sms-voice-v2.concurrent-create-configuration-set-same-name-one-winner", "deployments": [], "key": "pinpoint-sms-voice-v2/concurrent-create-configuration-set-same-name-one-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice-v2:CreateConfigurationSet", "pinpoint-sms-voice-v2:DeleteConfigurationSet", "pinpoint-sms-voice-v2:DescribeConfigurationSets"], "path": "behavioral/pinpoint-sms-voice-v2/check_concurrent_create_configuration_set_same_name_one_winner.py", "service": "pinpoint-sms-voice-v2"} {"check_id": "pinpoint-sms-voice-v2.configuration-set-client-token-idempotency-holds-under-concurrent-create", "deployments": [], "key": "pinpoint-sms-voice-v2/configuration-set-client-token-idempotency-holds-under-concurrent-create", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice-v2:CreateConfigurationSet", "pinpoint-sms-voice-v2:DeleteConfigurationSet", "pinpoint-sms-voice-v2:DescribeConfigurationSets"], "path": "behavioral/pinpoint-sms-voice-v2/check_configuration_set_client_token_idempotency_holds_under_concurrent_create.py", "service": "pinpoint-sms-voice-v2"} {"check_id": "pinpoint-sms-voice-v2.delete-configuration-set-cascades-event-destinations", "deployments": [], "key": "pinpoint-sms-voice-v2/delete-configuration-set-cascades-event-destinations", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint-sms-voice-v2:CreateConfigurationSet", "pinpoint-sms-voice-v2:CreateEventDestination", "pinpoint-sms-voice-v2:DeleteConfigurationSet", "pinpoint-sms-voice-v2:DeleteEventDestination", "pinpoint-sms-voice-v2:DescribeConfigurationSets", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/pinpoint-sms-voice-v2/check_delete_configuration_set_cascades_event_destinations.py", "service": "pinpoint-sms-voice-v2"} {"check_id": "pinpoint-sms-voice-v2.deleting-configuration-set-eventually-clears-protect-configuration-association", "deployments": [], "key": "pinpoint-sms-voice-v2/deleting-configuration-set-eventually-clears-protect-configuration-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint-sms-voice-v2:AssociateProtectConfiguration", "pinpoint-sms-voice-v2:CreateConfigurationSet", "pinpoint-sms-voice-v2:CreateProtectConfiguration", "pinpoint-sms-voice-v2:DeleteConfigurationSet", "pinpoint-sms-voice-v2:DeleteProtectConfiguration", "pinpoint-sms-voice-v2:DescribeProtectConfigurations"], "path": "behavioral/pinpoint-sms-voice-v2/check_deleting_configuration_set_eventually_clears_protect_configuration_association.py", "service": "pinpoint-sms-voice-v2"} {"check_id": "pinpoint-sms-voice-v2.multiple-event-destinations-accumulate-and-shrink", "deployments": [], "key": "pinpoint-sms-voice-v2/multiple-event-destinations-accumulate-and-shrink", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint-sms-voice-v2:CreateConfigurationSet", "pinpoint-sms-voice-v2:CreateEventDestination", "pinpoint-sms-voice-v2:DeleteConfigurationSet", "pinpoint-sms-voice-v2:DeleteEventDestination", "pinpoint-sms-voice-v2:DescribeConfigurationSets", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/pinpoint-sms-voice-v2/check_multiple_event_destinations_accumulate_and_shrink.py", "service": "pinpoint-sms-voice-v2"} {"check_id": "pinpoint-sms-voice-v2.protect-configuration-association-independent-of-event-destinations", "deployments": [], "key": "pinpoint-sms-voice-v2/protect-configuration-association-independent-of-event-destinations", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint-sms-voice-v2:AssociateProtectConfiguration", "pinpoint-sms-voice-v2:CreateConfigurationSet", "pinpoint-sms-voice-v2:CreateEventDestination", "pinpoint-sms-voice-v2:CreateProtectConfiguration", "pinpoint-sms-voice-v2:DeleteConfigurationSet", "pinpoint-sms-voice-v2:DeleteEventDestination", "pinpoint-sms-voice-v2:DeleteProtectConfiguration", "pinpoint-sms-voice-v2:DescribeConfigurationSets", "pinpoint-sms-voice-v2:DisassociateProtectConfiguration", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/pinpoint-sms-voice-v2/check_protect_configuration_association_independent_of_event_destinations.py", "service": "pinpoint-sms-voice-v2"} {"check_id": "pinpoint-sms-voice-v2.protect-configuration-country-rule-set-update-scoped-to-one-country", "deployments": [], "key": "pinpoint-sms-voice-v2/protect-configuration-country-rule-set-update-scoped-to-one-country", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint-sms-voice-v2:CreateProtectConfiguration", "pinpoint-sms-voice-v2:DeleteProtectConfiguration", "pinpoint-sms-voice-v2:GetProtectConfigurationCountryRuleSet", "pinpoint-sms-voice-v2:UpdateProtectConfigurationCountryRuleSet"], "path": "behavioral/pinpoint-sms-voice-v2/check_protect_configuration_country_rule_set_update_scoped_to_one_country.py", "service": "pinpoint-sms-voice-v2"} {"check_id": "pinpoint-sms-voice-v2.update-protect-configuration-country-rule-set-invalid-country-code-denied", "deployments": [], "key": "pinpoint-sms-voice-v2/update-protect-configuration-country-rule-set-invalid-country-code-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice-v2:CreateProtectConfiguration", "pinpoint-sms-voice-v2:DeleteProtectConfiguration", "pinpoint-sms-voice-v2:GetProtectConfigurationCountryRuleSet", "pinpoint-sms-voice-v2:UpdateProtectConfigurationCountryRuleSet"], "path": "behavioral/pinpoint-sms-voice-v2/check_update_protect_configuration_country_rule_set_invalid_country_code_denied.py", "service": "pinpoint-sms-voice-v2"} {"check_id": "pinpoint-sms-voice.concurrent-create-configuration-set-denied-consistently", "deployments": [], "key": "pinpoint-sms-voice/concurrent-create-configuration-set-denied-consistently", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:CreateConfigurationSet", "pinpoint-sms-voice:DeleteConfigurationSet", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_concurrent_create_configuration_set_denied_consistently.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.create-configuration-set-denied", "deployments": [], "key": "pinpoint-sms-voice/create-configuration-set-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:CreateConfigurationSet", "pinpoint-sms-voice:DeleteConfigurationSet", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_create_configuration_set_denied.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.create-configuration-set-invalid-name-validated-before-denied", "deployments": [], "key": "pinpoint-sms-voice/create-configuration-set-invalid-name-validated-before-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:CreateConfigurationSet", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_create_configuration_set_invalid_name_validated_before_denied.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.create-event-destination-denied-across-destination-types", "deployments": [], "key": "pinpoint-sms-voice/create-event-destination-denied-across-destination-types", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:CreateConfigurationSetEventDestination", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_create_event_destination_denied_across_destination_types.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.create-event-destination-on-nonexistent-configset-denied", "deployments": [], "key": "pinpoint-sms-voice/create-event-destination-on-nonexistent-configset-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:CreateConfigurationSetEventDestination", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_create_event_destination_on_nonexistent_configset_denied.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.delete-configuration-set-event-destination-nonexistent-denied", "deployments": [], "key": "pinpoint-sms-voice/delete-configuration-set-event-destination-nonexistent-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:DeleteConfigurationSetEventDestination", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_delete_configuration_set_event_destination_nonexistent_denied.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.delete-configuration-set-nonexistent-denied", "deployments": [], "key": "pinpoint-sms-voice/delete-configuration-set-nonexistent-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:DeleteConfigurationSet", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_delete_configuration_set_nonexistent_denied.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.get-configuration-set-event-destinations-empty-name-validation", "deployments": [], "key": "pinpoint-sms-voice/get-configuration-set-event-destinations-empty-name-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:GetConfigurationSetEventDestinations"], "path": "behavioral/pinpoint-sms-voice/check_get_configuration_set_event_destinations_empty_name_validation.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.get-configuration-set-event-destinations-nonexistent-configset-error", "deployments": [], "key": "pinpoint-sms-voice/get-configuration-set-event-destinations-nonexistent-configset-error", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:GetConfigurationSetEventDestinations", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_get_configuration_set_event_destinations_nonexistent_configset_error.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.list-configuration-sets-garbage-next-token-rejected", "deployments": [], "key": "pinpoint-sms-voice/list-configuration-sets-garbage-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_list_configuration_sets_garbage_next_token_rejected.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.list-configuration-sets-invalid-page-size-rejected", "deployments": [], "key": "pinpoint-sms-voice/list-configuration-sets-invalid-page-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_list_configuration_sets_invalid_page_size_rejected.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.list-configuration-sets-pagination-no-duplicates", "deployments": [], "key": "pinpoint-sms-voice/list-configuration-sets-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint-sms-voice:CreateConfigurationSet", "pinpoint-sms-voice:DeleteConfigurationSet", "pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_list_configuration_sets_pagination_no_duplicates.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.list-configuration-sets-returns-valid-shape", "deployments": [], "key": "pinpoint-sms-voice/list-configuration-sets-returns-valid-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint-sms-voice:ListConfigurationSets"], "path": "behavioral/pinpoint-sms-voice/check_list_configuration_sets_returns_valid_shape.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.send-voice-message-invalid-phone-number-format-rejected", "deployments": [], "key": "pinpoint-sms-voice/send-voice-message-invalid-phone-number-format-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["pinpoint-sms-voice:ListConfigurationSets", "pinpoint-sms-voice:SendVoiceMessage"], "path": "behavioral/pinpoint-sms-voice/check_send_voice_message_invalid_phone_number_format_rejected.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.send-voice-message-mutually-exclusive-content-rejected", "deployments": [], "key": "pinpoint-sms-voice/send-voice-message-mutually-exclusive-content-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["pinpoint-sms-voice:SendVoiceMessage"], "path": "behavioral/pinpoint-sms-voice/check_send_voice_message_mutually_exclusive_content_rejected.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.update-configuration-set-event-destination-invalid-payload-still-denied", "deployments": [], "key": "pinpoint-sms-voice/update-configuration-set-event-destination-invalid-payload-still-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:GetConfigurationSetEventDestinations", "pinpoint-sms-voice:UpdateConfigurationSetEventDestination"], "path": "behavioral/pinpoint-sms-voice/check_update_configuration_set_event_destination_invalid_payload_still_denied.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint-sms-voice.update-configuration-set-event-destination-nonexistent-denied", "deployments": [], "key": "pinpoint-sms-voice/update-configuration-set-event-destination-nonexistent-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint-sms-voice:ListConfigurationSets", "pinpoint-sms-voice:UpdateConfigurationSetEventDestination"], "path": "behavioral/pinpoint-sms-voice/check_update_configuration_set_event_destination_nonexistent_denied.py", "service": "pinpoint-sms-voice"} {"check_id": "pinpoint.create-app-allows-duplicate-names-with-distinct-ids", "deployments": [], "key": "pinpoint/create-app-allows-duplicate-names-with-distinct-ids", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint:CreateApp", "pinpoint:DeleteApp", "pinpoint:GetApps"], "path": "behavioral/pinpoint/check_create_app_allows_duplicate_names_with_distinct_ids.py", "service": "pinpoint"} {"check_id": "pinpoint.delete-app-cascades-channel-configuration", "deployments": [], "key": "pinpoint/delete-app-cascades-channel-configuration", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint:CreateApp", "pinpoint:DeleteApp", "pinpoint:GetApp", "pinpoint:GetBaiduChannel", "pinpoint:UpdateBaiduChannel"], "path": "behavioral/pinpoint/check_delete_app_cascades_channel_configuration.py", "service": "pinpoint"} {"check_id": "pinpoint.otp-verify-rejects-code-for-unsent-reference", "deployments": [], "key": "pinpoint/otp-verify-rejects-code-for-unsent-reference", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["pinpoint:CreateApp", "pinpoint:DeleteApp", "pinpoint:SendOTPMessage", "pinpoint:VerifyOTPMessage"], "path": "behavioral/pinpoint/check_otp_verify_rejects_code_for_unsent_reference.py", "service": "pinpoint"} {"check_id": "pinpoint.push-channel-state-transition-changes-send-messages-outcome", "deployments": [], "key": "pinpoint/push-channel-state-transition-changes-send-messages-outcome", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["pinpoint:CreateApp", "pinpoint:DeleteApp", "pinpoint:DeleteBaiduChannel", "pinpoint:GetBaiduChannel", "pinpoint:SendMessages", "pinpoint:UpdateBaiduChannel"], "path": "behavioral/pinpoint/check_push_channel_state_transition_changes_send_messages_outcome.py", "service": "pinpoint"} {"check_id": "pinpoint.push-template-active-version-tracks-separately-from-latest", "deployments": [], "key": "pinpoint/push-template-active-version-tracks-separately-from-latest", "labels": ["axis:happy-path", "plane:control"], "operations": ["pinpoint:CreatePushTemplate", "pinpoint:DeletePushTemplate", "pinpoint:GetPushTemplate", "pinpoint:ListTemplateVersions", "pinpoint:UpdatePushTemplate", "pinpoint:UpdateTemplateActiveVersion"], "path": "behavioral/pinpoint/check_push_template_active_version_tracks_separately_from_latest.py", "service": "pinpoint"} {"check_id": "pinpoint.push-template-stale-version-update-rejected", "deployments": [], "key": "pinpoint/push-template-stale-version-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pinpoint:CreatePushTemplate", "pinpoint:DeletePushTemplate", "pinpoint:GetPushTemplate", "pinpoint:UpdatePushTemplate"], "path": "behavioral/pinpoint/check_push_template_stale_version_update_rejected.py", "service": "pinpoint"} {"check_id": "pipes.concurrent-start-pipe-single-winner", "deployments": [], "key": "pipes/concurrent-start-pipe-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_concurrent_start_pipe_single_winner.py", "service": "pipes"} {"check_id": "pipes.concurrent-start-requests-single-transition", "deployments": [], "key": "pipes/concurrent-start-requests-single-transition", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_concurrent_start_requests_single_transition.py", "service": "pipes"} {"check_id": "pipes.concurrent-start-stop-race-resolves-deterministically", "deployments": [], "key": "pipes/concurrent-start-stop-race-resolves-deterministically", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_concurrent_start_stop_race_resolves_deterministically.py", "service": "pipes"} {"check_id": "pipes.concurrent-update-pipe-no-corruption", "deployments": [], "key": "pipes/concurrent-update-pipe-no-corruption", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_concurrent_update_pipe_no_corruption.py", "service": "pipes"} {"check_id": "pipes.create-pipe-batch-size-above-sqs-target-cap-rejected", "deployments": [], "key": "pipes/create-pipe-batch-size-above-sqs-target-cap-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_create_pipe_batch_size_above_sqs_target_cap_rejected.py", "service": "pipes"} {"check_id": "pipes.create-pipe-duplicate-name-rejected", "deployments": [], "key": "pipes/create-pipe-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_create_pipe_duplicate_name_rejected.py", "service": "pipes"} {"check_id": "pipes.create-pipe-malformed-input-template-json-rejected", "deployments": [], "key": "pipes/create-pipe-malformed-input-template-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_create_pipe_malformed_input_template_json_rejected.py", "service": "pipes"} {"check_id": "pipes.create-pipe-malformed-source-arn-rejected", "deployments": [], "key": "pipes/create-pipe-malformed-source-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_create_pipe_malformed_source_arn_rejected.py", "service": "pipes"} {"check_id": "pipes.create-pipe-missing-source-queue-rejected", "deployments": [], "key": "pipes/create-pipe-missing-source-queue-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_create_pipe_missing_source_queue_rejected.py", "service": "pipes"} {"check_id": "pipes.create-pipe-name-outside-the-allowed-characters-rejected", "deployments": [], "key": "pipes/create-pipe-name-outside-the-allowed-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_create_pipe_name_outside_the_allowed_characters_rejected.py", "service": "pipes"} {"check_id": "pipes.create-pipe-unassumable-role-rejected", "deployments": [], "key": "pipes/create-pipe-unassumable-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_create_pipe_unassumable_role_rejected.py", "service": "pipes"} {"check_id": "pipes.create-pipe-without-desired-state-starts-running-and-delivers", "deployments": [], "key": "pipes/create-pipe-without-desired-state-starts-running-and-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_create_pipe_without_desired_state_starts_running_and_delivers.py", "service": "pipes"} {"check_id": "pipes.default-target-payload-is-the-sqs-source-record", "deployments": [], "key": "pipes/default-target-payload-is-the-sqs-source-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_default_target_payload_is_the_sqs_source_record.py", "service": "pipes"} {"check_id": "pipes.delete-pipe-while-running-transitions-through-deleting", "deployments": [], "key": "pipes/delete-pipe-while-running-transitions-through-deleting", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_delete_pipe_while_running_transitions_through_deleting.py", "service": "pipes"} {"check_id": "pipes.delete-running-pipe-auto-stops", "deployments": [], "key": "pipes/delete-running-pipe-auto-stops", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_delete_running_pipe_auto_stops.py", "service": "pipes"} {"check_id": "pipes.deleted-pipe-name-is-reusable-and-the-new-pipe-delivers", "deployments": [], "key": "pipes/deleted-pipe-name-is-reusable-and-the-new-pipe-delivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_deleted_pipe_name_is_reusable_and_the_new_pipe_delivers.py", "service": "pipes"} {"check_id": "pipes.deploy-cfn-pipe-filter-update-in-place-changes-which-records-reach-the-target", "deployments": [], "key": "pipes/deploy-cfn-pipe-filter-update-in-place-changes-which-records-reach-the-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "pipes:DescribePipe", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_deploy_cfn_pipe_filter_update_in_place_changes_which_records_reach_the_target.py", "service": "pipes"} {"check_id": "pipes.deploy-cfn-pipe-update-to-a-role-without-source-read-fails-and-rolls-back-to-the-working-pipe", "deployments": [], "key": "pipes/deploy-cfn-pipe-update-to-a-role-without-source-read-fails-and-rolls-back-to-the-working-pipe", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "pipes:DescribePipe", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_deploy_cfn_pipe_update_to_a_role_without_source_read_fails_and_rolls_back_to_the_working_pipe.py", "service": "pipes"} {"check_id": "pipes.deploy-cfn-pipe-whose-role-cannot-read-its-source-fails-the-stack-and-rolls-back", "deployments": [], "key": "pipes/deploy-cfn-pipe-whose-role-cannot-read-its-source-fails-the-stack-and-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "pipes:DescribePipe", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_deploy_cfn_pipe_whose_role_cannot_read_its_source_fails_the_stack_and_rolls_back.py", "service": "pipes"} {"check_id": "pipes.deploy-cloudformation-pipe-routes-message", "deployments": [], "key": "pipes/deploy-cloudformation-pipe-routes-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_deploy_cloudformation_pipe_routes_message.py", "service": "pipes"} {"check_id": "pipes.deploy-pipe-cloudformation-moves-message", "deployments": [], "key": "pipes/deploy-pipe-cloudformation-moves-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pipes:DescribePipe", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_deploy_pipe_cloudformation_moves_message.py", "service": "pipes"} {"check_id": "pipes.deploy-pipe-via-cloudformation-behaves", "deployments": [], "key": "pipes/deploy-pipe-via-cloudformation-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "pipes:DescribePipe", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_deploy_pipe_via_cloudformation_behaves.py", "service": "pipes"} {"check_id": "pipes.description-max-length-exceeded-rejected", "deployments": [], "key": "pipes/description-max-length-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_description_max_length_exceeded_rejected.py", "service": "pipes"} {"check_id": "pipes.desired-state-persists-through-list-pipes", "deployments": [], "key": "pipes/desired-state-persists-through-list-pipes", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_desired_state_persists_through_list_pipes.py", "service": "pipes"} {"check_id": "pipes.e2e-message-flows-source-to-target", "deployments": [], "key": "pipes/e2e-message-flows-source-to-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_e2e_message_flows_source_to_target.py", "service": "pipes"} {"check_id": "pipes.e2e-pipe-delivers-message-source-to-target", "deployments": [], "key": "pipes/e2e-pipe-delivers-message-source-to-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_e2e_pipe_delivers_message_source_to_target.py", "service": "pipes"} {"check_id": "pipes.e2e-pipe-filter-drops-nonmatching-events", "deployments": [], "key": "pipes/e2e-pipe-filter-drops-nonmatching-events", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_e2e_pipe_filter_drops_nonmatching_events.py", "service": "pipes"} {"check_id": "pipes.e2e-pipe-source-to-target-delivery-and-cleanup", "deployments": [], "key": "pipes/e2e-pipe-source-to-target-delivery-and-cleanup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRoles", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_e2e_pipe_source_to_target_delivery_and_cleanup.py", "service": "pipes"} {"check_id": "pipes.empty-vs-absent-description-distinguished", "deployments": [], "key": "pipes/empty-vs-absent-description-distinguished", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_empty_vs_absent_description_distinguished.py", "service": "pipes"} {"check_id": "pipes.enrichment-input-template-json-round-trip", "deployments": [], "key": "pipes/enrichment-input-template-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_enrichment_input_template_json_round_trip.py", "service": "pipes"} {"check_id": "pipes.event-bus-target-publishes-record-with-detail-type-and-source", "deployments": [], "key": "pipes/event-bus-target-publishes-record-with-detail-type-and-source", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/pipes/check_event_bus_target_publishes_record_with_detail_type_and_source.py", "service": "pipes"} {"check_id": "pipes.failed-target-delivery-message-redelivered-after-visibility-timeout", "deployments": [], "key": "pipes/failed-target-delivery-message-redelivered-after-visibility-timeout", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_failed_target_delivery_message_redelivered_after_visibility_timeout.py", "service": "pipes"} {"check_id": "pipes.fifo-source-preserves-message-order", "deployments": [], "key": "pipes/fifo-source-preserves-message-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_fifo_source_preserves_message_order.py", "service": "pipes"} {"check_id": "pipes.filter-comparison-operators-gate-delivery-one-clause-at-a-time", "deployments": [], "key": "pipes/filter-comparison-operators-gate-delivery-one-clause-at-a-time", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/pipes/check_filter_comparison_operators_gate_delivery_one_clause_at_a_time.py", "service": "pipes"} {"check_id": "pipes.filter-criteria-multiple-filters-are-ored-not-anded", "deployments": [], "key": "pipes/filter-criteria-multiple-filters-are-ored-not-anded", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/pipes/check_filter_criteria_multiple_filters_are_ored_not_anded.py", "service": "pipes"} {"check_id": "pipes.filter-criteria-nested-json-preserved", "deployments": [], "key": "pipes/filter-criteria-nested-json-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_filter_criteria_nested_json_preserved.py", "service": "pipes"} {"check_id": "pipes.filter-json-body-pattern-drops-plain-string-message-metadata-pattern-delivers-it", "deployments": [], "key": "pipes/filter-json-body-pattern-drops-plain-string-message-metadata-pattern-delivers-it", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/pipes/check_filter_json_body_pattern_drops_plain_string_message_metadata_pattern_delivers_it.py", "service": "pipes"} {"check_id": "pipes.filter-plain-string-body-pattern-drops-a-valid-json-body-of-identical-text", "deployments": [], "key": "pipes/filter-plain-string-body-pattern-drops-a-valid-json-body-of-identical-text", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/pipes/check_filter_plain_string_body_pattern_drops_a_valid_json_body_of_identical_text.py", "service": "pipes"} {"check_id": "pipes.input-template-renders-record-fields-at-target", "deployments": [], "key": "pipes/input-template-renders-record-fields-at-target", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_input_template_renders_record_fields_at_target.py", "service": "pipes"} {"check_id": "pipes.input-template-unresolved-path-empty-string-and-whole-event-json", "deployments": [], "key": "pipes/input-template-unresolved-path-empty-string-and-whole-event-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_input_template_unresolved_path_empty_string_and_whole_event_json.py", "service": "pipes"} {"check_id": "pipes.list-pipes-limit-pages-visit-every-pipe-once", "deployments": [], "key": "pipes/list-pipes-limit-pages-visit-every-pipe-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_list_pipes_limit_pages_visit_every_pipe_once.py", "service": "pipes"} {"check_id": "pipes.list-pipes-state-and-arn-prefix-filters-select-exactly", "deployments": [], "key": "pipes/list-pipes-state-and-arn-prefix-filters-select-exactly", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_list_pipes_state_and_arn_prefix_filters_select_exactly.py", "service": "pipes"} {"check_id": "pipes.list-tags-for-nonexistent-pipe-not-found", "deployments": [], "key": "pipes/list-tags-for-nonexistent-pipe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_list_tags_for_nonexistent_pipe_not_found.py", "service": "pipes"} {"check_id": "pipes.list-tags-for-resource-nonexistent-pipe-not-found", "deployments": [], "key": "pipes/list-tags-for-resource-nonexistent-pipe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/pipes/check_list_tags_for_resource_nonexistent_pipe_not_found.py", "service": "pipes"} {"check_id": "pipes.pipe-batching-window-delays-delivery", "deployments": [], "key": "pipes/pipe-batching-window-delays-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_pipe_batching_window_delays_delivery.py", "service": "pipes"} {"check_id": "pipes.pipe-creation-timestamp-precision-preserved", "deployments": [], "key": "pipes/pipe-creation-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_pipe_creation_timestamp_precision_preserved.py", "service": "pipes"} {"check_id": "pipes.pipe-description-empty-normalized-to-absent", "deployments": [], "key": "pipes/pipe-description-empty-normalized-to-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_pipe_description_empty_normalized_to_absent.py", "service": "pipes"} {"check_id": "pipes.pipe-description-unicode-round-trip", "deployments": [], "key": "pipes/pipe-description-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_pipe_description_unicode_round_trip.py", "service": "pipes"} {"check_id": "pipes.pipe-filter-blocks-nonmatching-events", "deployments": [], "key": "pipes/pipe-filter-blocks-nonmatching-events", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_pipe_filter_blocks_nonmatching_events.py", "service": "pipes"} {"check_id": "pipes.pipe-preserves-fifo-message-ordering", "deployments": [], "key": "pipes/pipe-preserves-fifo-message-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_pipe_preserves_fifo_message_ordering.py", "service": "pipes"} {"check_id": "pipes.pipe-server-side-polling-without-client-action", "deployments": [], "key": "pipes/pipe-server-side-polling-without-client-action", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_pipe_server_side_polling_without_client_action.py", "service": "pipes"} {"check_id": "pipes.pipe-tags-from-create-and-tag-ops-agree-in-describe-and-list-tags", "deployments": [], "key": "pipes/pipe-tags-from-create-and-tag-ops-agree-in-describe-and-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "pipes:UntagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_pipe_tags_from_create_and_tag_ops_agree_in_describe_and_list_tags.py", "service": "pipes"} {"check_id": "pipes.pipe-target-denied-records-are-redriven-to-the-source-dead-letter-queue", "deployments": [], "key": "pipes/pipe-target-denied-records-are-redriven-to-the-source-dead-letter-queue", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_pipe_target_denied_records_are_redriven_to_the_source_dead_letter_queue.py", "service": "pipes"} {"check_id": "pipes.pipe-target-permission-missing-delivery-rejected", "deployments": [], "key": "pipes/pipe-target-permission-missing-delivery-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_pipe_target_permission_missing_delivery_rejected.py", "service": "pipes"} {"check_id": "pipes.pipes-create-pipe-duplicate-name-rejected-without-overwriting", "deployments": [], "key": "pipes/pipes-create-pipe-duplicate-name-rejected-without-overwriting", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_pipes_create_pipe_duplicate_name_rejected_without_overwriting.py", "service": "pipes"} {"check_id": "pipes.sqs-source-batch-window-delays-processing", "deployments": [], "key": "pipes/sqs-source-batch-window-delays-processing", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_sqs_source_batch_window_delays_processing.py", "service": "pipes"} {"check_id": "pipes.sqs-source-visibility-timeout-enforced", "deployments": [], "key": "pipes/sqs-source-visibility-timeout-enforced", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_sqs_source_visibility_timeout_enforced.py", "service": "pipes"} {"check_id": "pipes.start-already-running-pipe-is-idempotent-noop", "deployments": [], "key": "pipes/start-already-running-pipe-is-idempotent-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_start_already_running_pipe_is_idempotent_noop.py", "service": "pipes"} {"check_id": "pipes.start-nonexistent-pipe-not-found", "deployments": [], "key": "pipes/start-nonexistent-pipe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_start_nonexistent_pipe_not_found.py", "service": "pipes"} {"check_id": "pipes.start-pipe-already-running-succeeds-idempotently", "deployments": [], "key": "pipes/start-pipe-already-running-succeeds-idempotently", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_start_pipe_already_running_succeeds_idempotently.py", "service": "pipes"} {"check_id": "pipes.start-pipe-nonexistent-not-found", "deployments": [], "key": "pipes/start-pipe-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_start_pipe_nonexistent_not_found.py", "service": "pipes"} {"check_id": "pipes.start-pipe-transitions-to-running", "deployments": [], "key": "pipes/start-pipe-transitions-to-running", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_start_pipe_transitions_to_running.py", "service": "pipes"} {"check_id": "pipes.start-pipe-with-insufficient-role-permissions-blocked", "deployments": [], "key": "pipes/start-pipe-with-insufficient-role-permissions-blocked", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_start_pipe_with_insufficient_role_permissions_blocked.py", "service": "pipes"} {"check_id": "pipes.start-pipe-without-execution-role-permission-denied", "deployments": [], "key": "pipes/start-pipe-without-execution-role-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_start_pipe_without_execution_role_permission_denied.py", "service": "pipes"} {"check_id": "pipes.start-running-pipe-conflict-rejected", "deployments": [], "key": "pipes/start-running-pipe-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_start_running_pipe_conflict_rejected.py", "service": "pipes"} {"check_id": "pipes.stop-already-stopped-pipe-is-idempotent-noop", "deployments": [], "key": "pipes/stop-already-stopped-pipe-is-idempotent-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_stop_already_stopped_pipe_is_idempotent_noop.py", "service": "pipes"} {"check_id": "pipes.stop-nonexistent-pipe-not-found", "deployments": [], "key": "pipes/stop-nonexistent-pipe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_stop_nonexistent_pipe_not_found.py", "service": "pipes"} {"check_id": "pipes.stop-pipe-already-stopped-succeeds-idempotently", "deployments": [], "key": "pipes/stop-pipe-already-stopped-succeeds-idempotently", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_stop_pipe_already_stopped_succeeds_idempotently.py", "service": "pipes"} {"check_id": "pipes.stop-pipe-nonexistent-not-found", "deployments": [], "key": "pipes/stop-pipe-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_stop_pipe_nonexistent_not_found.py", "service": "pipes"} {"check_id": "pipes.stop-pipe-transitions-to-stopped", "deployments": [], "key": "pipes/stop-pipe-transitions-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_stop_pipe_transitions_to_stopped.py", "service": "pipes"} {"check_id": "pipes.stop-stopped-pipe-conflict-rejected", "deployments": [], "key": "pipes/stop-stopped-pipe-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_stop_stopped_pipe_conflict_rejected.py", "service": "pipes"} {"check_id": "pipes.stopped-pipe-halts-message-delivery-server-enforced", "deployments": [], "key": "pipes/stopped-pipe-halts-message-delivery-server-enforced", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "pipes:StopPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_stopped_pipe_halts_message_delivery_server_enforced.py", "service": "pipes"} {"check_id": "pipes.tag-empty-value-vs-absent-preserved", "deployments": [], "key": "pipes/tag-empty-value-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:ListTagsForResource", "pipes:TagResource", "pipes:UntagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_empty_value_vs_absent_preserved.py", "service": "pipes"} {"check_id": "pipes.tag-operations-on-deleted-pipe-rejected", "deployments": [], "key": "pipes/tag-operations-on-deleted-pipe-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "pipes:UntagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_operations_on_deleted_pipe_rejected.py", "service": "pipes"} {"check_id": "pipes.tag-resource-exceeding-max-tags-rejected", "deployments": [], "key": "pipes/tag-resource-exceeding-max-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_resource_exceeding_max_tags_rejected.py", "service": "pipes"} {"check_id": "pipes.tag-resource-invalid-key-rejected", "deployments": [], "key": "pipes/tag-resource-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_resource_invalid_key_rejected.py", "service": "pipes"} {"check_id": "pipes.tag-resource-invalid-key-validation-rejected", "deployments": [], "key": "pipes/tag-resource-invalid-key-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_resource_invalid_key_validation_rejected.py", "service": "pipes"} {"check_id": "pipes.tag-resource-nonexistent-pipe-not-found", "deployments": [], "key": "pipes/tag-resource-nonexistent-pipe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/pipes/check_tag_resource_nonexistent_pipe_not_found.py", "service": "pipes"} {"check_id": "pipes.tag-resource-on-non-pipe-arn-rejected", "deployments": [], "key": "pipes/tag-resource-on-non-pipe-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_resource_on_non_pipe_arn_rejected.py", "service": "pipes"} {"check_id": "pipes.tag-resource-with-aws-reserved-prefix-rejected", "deployments": [], "key": "pipes/tag-resource-with-aws-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_resource_with_aws_reserved_prefix_rejected.py", "service": "pipes"} {"check_id": "pipes.tag-value-unicode-preserved", "deployments": [], "key": "pipes/tag-value-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_value_unicode_preserved.py", "service": "pipes"} {"check_id": "pipes.tag-value-unicode-round-trip", "deployments": [], "key": "pipes/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:ListTagsForResource", "pipes:TagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_tag_value_unicode_round_trip.py", "service": "pipes"} {"check_id": "pipes.untag-nonexistent-tag-key-idempotent-noop", "deployments": [], "key": "pipes/untag-nonexistent-tag-key-idempotent-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:UntagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_untag_nonexistent_tag_key_idempotent_noop.py", "service": "pipes"} {"check_id": "pipes.untag-resource-malformed-empty-key-rejected", "deployments": [], "key": "pipes/untag-resource-malformed-empty-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:UntagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_untag_resource_malformed_empty_key_rejected.py", "service": "pipes"} {"check_id": "pipes.untag-resource-malformed-key-validation-rejected", "deployments": [], "key": "pipes/untag-resource-malformed-key-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "pipes:UntagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_untag_resource_malformed_key_validation_rejected.py", "service": "pipes"} {"check_id": "pipes.untag-resource-nonexistent-pipe-not-found", "deployments": [], "key": "pipes/untag-resource-nonexistent-pipe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListTagsForResource", "pipes:TagResource", "pipes:UntagResource", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/pipes/check_untag_resource_nonexistent_pipe_not_found.py", "service": "pipes"} {"check_id": "pipes.update-pipe-desired-state-halts-then-resumes-delivery", "deployments": [], "key": "pipes/update-pipe-desired-state-halts-then-resumes-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_update_pipe_desired_state_halts_then_resumes_delivery.py", "service": "pipes"} {"check_id": "pipes.update-pipe-filter-criteria-takes-effect-on-a-running-pipe-and-reverts", "deployments": [], "key": "pipes/update-pipe-filter-criteria-takes-effect-on-a-running-pipe-and-reverts", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/pipes/check_update_pipe_filter_criteria_takes_effect_on_a_running_pipe_and_reverts.py", "service": "pipes"} {"check_id": "pipes.update-pipe-role-arn-switches-the-execution-role-and-delivery-continues", "deployments": [], "key": "pipes/update-pipe-role-arn-switches-the-execution-role-and-delivery-continues", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_update_pipe_role_arn_switches_the_execution_role_and_delivery_continues.py", "service": "pipes"} {"check_id": "pipes.update-pipe-source-arn-immutable-rejected", "deployments": [], "key": "pipes/update-pipe-source-arn-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_update_pipe_source_arn_immutable_rejected.py", "service": "pipes"} {"check_id": "pipes.update-pipe-source-type-mismatch-rejected", "deployments": [], "key": "pipes/update-pipe-source-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_update_pipe_source_type_mismatch_rejected.py", "service": "pipes"} {"check_id": "pipes.update-pipe-target-redirects-delivery-to-the-new-queue", "deployments": [], "key": "pipes/update-pipe-target-redirects-delivery-to-the-new-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes/check_update_pipe_target_redirects_delivery_to_the_new_queue.py", "service": "pipes"} {"check_id": "pipes.update-pipe-unknown-name-rejected-not-created", "deployments": [], "key": "pipes/update-pipe-unknown-name-rejected-not-created", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_update_pipe_unknown_name_rejected_not_created.py", "service": "pipes"} {"check_id": "pipes.update-pipe-while-creating-rejected", "deployments": [], "key": "pipes/update-pipe-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_update_pipe_while_creating_rejected.py", "service": "pipes"} {"check_id": "pipes.update-pipe-while-running-preserves-desired-state", "deployments": [], "key": "pipes/update-pipe-while-running-preserves-desired-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_update_pipe_while_running_preserves_desired_state.py", "service": "pipes"} {"check_id": "pipes.update-pipe-wrong-source-type-parameters-rejected", "deployments": [], "key": "pipes/update-pipe-wrong-source-type-parameters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:UpdatePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/pipes/check_update_pipe_wrong_source_type_parameters_rejected.py", "service": "pipes"} {"check_id": "pipes__sqs.pipe-filter-criteria-non-matching-not-delivered", "deployments": [], "key": "pipes__sqs/pipe-filter-criteria-non-matching-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes__sqs/check_pipe_filter_criteria_non_matching_not_delivered.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs.pipes-create-pipe-fifo-target-without-message-group-id-rejected", "deployments": [], "key": "pipes__sqs/pipes-create-pipe-fifo-target-without-message-group-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes__sqs/check_pipes_create_pipe_fifo_target_without_message_group_id_rejected.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs.pipes-create-pipe-scalar-filter-pattern-rejected", "deployments": [], "key": "pipes__sqs/pipes-create-pipe-scalar-filter-pattern-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes__sqs/check_pipes_create_pipe_scalar_filter_pattern_rejected.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs.pipes-create-pipe-sqs-batch-size-above-ten-rejected", "deployments": [], "key": "pipes__sqs/pipes-create-pipe-sqs-batch-size-above-ten-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:ListPipes", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes__sqs/check_pipes_create_pipe_sqs_batch_size_above_ten_rejected.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs.pipes-fifo-target-dynamic-path-group-id-resolves-from-the-source-record", "deployments": [], "key": "pipes__sqs/pipes-fifo-target-dynamic-path-group-id-resolves-from-the-source-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/pipes__sqs/check_pipes_fifo_target_dynamic_path_group_id_resolves_from_the_source_record.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs.pipes-input-template-renders-source-fields-into-target-body", "deployments": [], "key": "pipes__sqs/pipes-input-template-renders-source-fields-into-target-body", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes__sqs/check_pipes_input_template_renders_source_fields_into_target_body.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs.pipes-restart-after-stop-delivers-the-whole-backlog-without-loss", "deployments": [], "key": "pipes__sqs/pipes-restart-after-stop-delivers-the-whole-backlog-without-loss", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "pipes:StartPipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes__sqs/check_pipes_restart_after_stop_delivers_the_whole_backlog_without_loss.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs.pipes-sqs-target-receives-one-message-per-record-under-batching", "deployments": [], "key": "pipes__sqs/pipes-sqs-target-receives-one-message-per-record-under-batching", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/pipes__sqs/check_pipes_sqs_target_receives_one_message_per_record_under_batching.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs.pipes-trace-log-configuration-records-the-message-payload", "deployments": [], "key": "pipes__sqs/pipes-trace-log-configuration-records-the-message-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/pipes__sqs/check_pipes_trace_log_configuration_records_the_message_payload.py", "service": "pipes__sqs"} {"check_id": "pipes__sqs__stepfunctions.pipes-enrichment-empty-array-response-suppresses-the-target-invocation", "deployments": [], "key": "pipes__sqs__stepfunctions/pipes-enrichment-empty-array-response-suppresses-the-target-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/pipes__sqs__stepfunctions/check_pipes_enrichment_empty_array_response_suppresses_the_target_invocation.py", "service": "pipes__sqs__stepfunctions"} {"check_id": "pipes__sqs__stepfunctions.pipes-enrichment-standard-state-machine-rejected-express-accepted", "deployments": [], "key": "pipes__sqs__stepfunctions/pipes-enrichment-standard-state-machine-rejected-express-accepted", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/pipes__sqs__stepfunctions/check_pipes_enrichment_standard_state_machine_rejected_express_accepted.py", "service": "pipes__sqs__stepfunctions"} {"check_id": "pipes__sqs__stepfunctions.pipes-sqs-source-starts-sfn-target-execution", "deployments": [], "key": "pipes__sqs__stepfunctions/pipes-sqs-source-starts-sfn-target-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "pipes:CreatePipe", "pipes:DeletePipe", "pipes:DescribePipe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StopExecution"], "path": "behavioral/pipes__sqs__stepfunctions/check_pipes_sqs_source_starts_sfn_target_execution.py", "service": "pipes__sqs__stepfunctions"} {"check_id": "polly.concurrent-lexicon-overwrite-atomicity", "deployments": [], "key": "polly/concurrent-lexicon-overwrite-atomicity", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:PutLexicon"], "path": "behavioral/polly/check_concurrent_lexicon_overwrite_atomicity.py", "service": "polly"} {"check_id": "polly.concurrent-put-lexicon-distinct-names-all-persist", "deployments": [], "key": "polly/concurrent-put-lexicon-distinct-names-all-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:PutLexicon"], "path": "behavioral/polly/check_concurrent_put_lexicon_distinct_names_all_persist.py", "service": "polly"} {"check_id": "polly.delete-lexicon-removes-from-list", "deployments": [], "key": "polly/delete-lexicon-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:ListLexicons", "polly:PutLexicon"], "path": "behavioral/polly/check_delete_lexicon_removes_from_list.py", "service": "polly"} {"check_id": "polly.describe-voices-contains-known-voice", "deployments": [], "key": "polly/describe-voices-contains-known-voice", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DescribeVoices"], "path": "behavioral/polly/check_describe_voices_contains_known_voice.py", "service": "polly"} {"check_id": "polly.describe-voices-invalid-next-token-rejected", "deployments": [], "key": "polly/describe-voices-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DescribeVoices"], "path": "behavioral/polly/check_describe_voices_invalid_next_token_rejected.py", "service": "polly"} {"check_id": "polly.describe-voices-language-filter", "deployments": [], "key": "polly/describe-voices-language-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DescribeVoices"], "path": "behavioral/polly/check_describe_voices_language_filter.py", "service": "polly"} {"check_id": "polly.describe-voices-schema-and-filter", "deployments": [], "key": "polly/describe-voices-schema-and-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DescribeVoices"], "path": "behavioral/polly/check_describe_voices_schema_and_filter.py", "service": "polly"} {"check_id": "polly.get-lexicon-not-found-after-delete", "deployments": [], "key": "polly/get-lexicon-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:ListLexicons", "polly:PutLexicon"], "path": "behavioral/polly/check_get_lexicon_not_found_after_delete.py", "service": "polly"} {"check_id": "polly.get-lexicon-not-found-error-code", "deployments": [], "key": "polly/get-lexicon-not-found-error-code", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:PutLexicon"], "path": "behavioral/polly/check_get_lexicon_not_found_error_code.py", "service": "polly"} {"check_id": "polly.get-speech-synthesis-task-invalid-id-format-rejected", "deployments": [], "key": "polly/get-speech-synthesis-task-invalid-id-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:GetSpeechSynthesisTask", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/polly/check_get_speech_synthesis_task_invalid_id_format_rejected.py", "service": "polly"} {"check_id": "polly.get-speech-synthesis-task-not-found-rejected", "deployments": [], "key": "polly/get-speech-synthesis-task-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:GetSpeechSynthesisTask", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_get_speech_synthesis_task_not_found_rejected.py", "service": "polly"} {"check_id": "polly.lexicon-overwrite-replaces-content", "deployments": [], "key": "polly/lexicon-overwrite-replaces-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:ListLexicons", "polly:PutLexicon"], "path": "behavioral/polly/check_lexicon_overwrite_replaces_content.py", "service": "polly"} {"check_id": "polly.list-lexicons-invalid-next-token-error", "deployments": [], "key": "polly/list-lexicons-invalid-next-token-error", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:ListLexicons", "polly:PutLexicon"], "path": "behavioral/polly/check_list_lexicons_invalid_next_token_error.py", "service": "polly"} {"check_id": "polly.list-lexicons-reflects-created", "deployments": [], "key": "polly/list-lexicons-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:ListLexicons", "polly:PutLexicon"], "path": "behavioral/polly/check_list_lexicons_reflects_created.py", "service": "polly"} {"check_id": "polly.list-speech-synthesis-tasks-ordered-by-creation-time-descending", "deployments": [], "key": "polly/list-speech-synthesis-tasks-ordered-by-creation-time-descending", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:ListSpeechSynthesisTasks", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_list_speech_synthesis_tasks_ordered_by_creation_time_descending.py", "service": "polly"} {"check_id": "polly.list-speech-synthesis-tasks-status-filter", "deployments": [], "key": "polly/list-speech-synthesis-tasks-status-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:ListSpeechSynthesisTasks", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/polly/check_list_speech_synthesis_tasks_status_filter.py", "service": "polly"} {"check_id": "polly.max-lexicons-number-exceeded-rejected", "deployments": [], "key": "polly/max-lexicons-number-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:ListLexicons", "polly:PutLexicon"], "path": "behavioral/polly/check_max_lexicons_number_exceeded_rejected.py", "service": "polly"} {"check_id": "polly.put-get-delete-lexicon-lifecycle", "deployments": [], "key": "polly/put-get-delete-lexicon-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:ListLexicons", "polly:PutLexicon"], "path": "behavioral/polly/check_put_get_delete_lexicon_lifecycle.py", "service": "polly"} {"check_id": "polly.put-get-lexicon-round-trip", "deployments": [], "key": "polly/put-get-lexicon-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:PutLexicon"], "path": "behavioral/polly/check_put_get_lexicon_round_trip.py", "service": "polly"} {"check_id": "polly.put-lexicon-invalid-pls-xml-rejected", "deployments": [], "key": "polly/put-lexicon-invalid-pls-xml-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:ListLexicons", "polly:PutLexicon"], "path": "behavioral/polly/check_put_lexicon_invalid_pls_xml_rejected.py", "service": "polly"} {"check_id": "polly.put-lexicon-max-lexeme-length-exceeded-rejected", "deployments": [], "key": "polly/put-lexicon-max-lexeme-length-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:PutLexicon"], "path": "behavioral/polly/check_put_lexicon_max_lexeme_length_exceeded_rejected.py", "service": "polly"} {"check_id": "polly.put-lexicon-size-exceeded-rejected", "deployments": [], "key": "polly/put-lexicon-size-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:PutLexicon"], "path": "behavioral/polly/check_put_lexicon_size_exceeded_rejected.py", "service": "polly"} {"check_id": "polly.put-lexicon-unsupported-alphabet-error", "deployments": [], "key": "polly/put-lexicon-unsupported-alphabet-error", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:PutLexicon"], "path": "behavioral/polly/check_put_lexicon_unsupported_alphabet_error.py", "service": "polly"} {"check_id": "polly.put-lexicon-unsupported-language-error", "deployments": [], "key": "polly/put-lexicon-unsupported-language-error", "labels": ["axis:rejection", "plane:control"], "operations": ["polly:DeleteLexicon", "polly:GetLexicon", "polly:PutLexicon"], "path": "behavioral/polly/check_put_lexicon_unsupported_language_error.py", "service": "polly"} {"check_id": "polly.speech-synthesis-task-completes-and-uploads-to-s3", "deployments": [], "key": "polly/speech-synthesis-task-completes-and-uploads-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_speech_synthesis_task_completes_and_uploads_to_s3.py", "service": "polly"} {"check_id": "polly.speech-synthesis-task-sns-notification-on-completion", "deployments": [], "key": "polly/speech-synthesis-task-sns-notification-on-completion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/polly/check_speech_synthesis_task_sns_notification_on_completion.py", "service": "polly"} {"check_id": "polly.start-speech-synthesis-task-invalid-s3-bucket-rejected", "deployments": [], "key": "polly/start-speech-synthesis-task-invalid-s3-bucket-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:ListSpeechSynthesisTasks", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_start_speech_synthesis_task_invalid_s3_bucket_rejected.py", "service": "polly"} {"check_id": "polly.start-speech-synthesis-task-invalid-sns-topic-arn-error", "deployments": [], "key": "polly/start-speech-synthesis-task-invalid-sns-topic-arn-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_start_speech_synthesis_task_invalid_sns_topic_arn_error.py", "service": "polly"} {"check_id": "polly.start-speech-synthesis-task-json-speech-marks-to-s3", "deployments": [], "key": "polly/start-speech-synthesis-task-json-speech-marks-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_start_speech_synthesis_task_json_speech_marks_to_s3.py", "service": "polly"} {"check_id": "polly.start-speech-synthesis-task-lexicon-not-found-error", "deployments": [], "key": "polly/start-speech-synthesis-task-lexicon-not-found-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_start_speech_synthesis_task_lexicon_not_found_error.py", "service": "polly"} {"check_id": "polly.start-speech-synthesis-task-marks-rejected-for-mp3-format", "deployments": [], "key": "polly/start-speech-synthesis-task-marks-rejected-for-mp3-format", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_start_speech_synthesis_task_marks_rejected_for_mp3_format.py", "service": "polly"} {"check_id": "polly.start-speech-synthesis-task-output-s3-key-prefix-applied", "deployments": [], "key": "polly/start-speech-synthesis-task-output-s3-key-prefix-applied", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_start_speech_synthesis_task_output_s3_key_prefix_applied.py", "service": "polly"} {"check_id": "polly.start-speech-synthesis-task-text-length-exceeded-rejected", "deployments": [], "key": "polly/start-speech-synthesis-task-text-length-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:GetSpeechSynthesisTask", "polly:ListSpeechSynthesisTasks", "polly:StartSpeechSynthesisTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/polly/check_start_speech_synthesis_task_text_length_exceeded_rejected.py", "service": "polly"} {"check_id": "polly.synthesize-speech-basic-audio-roundtrip", "deployments": [], "key": "polly/synthesize-speech-basic-audio-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_basic_audio_roundtrip.py", "service": "polly"} {"check_id": "polly.synthesize-speech-engine-not-supported-rejected", "deployments": [], "key": "polly/synthesize-speech-engine-not-supported-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_engine_not_supported_rejected.py", "service": "polly"} {"check_id": "polly.synthesize-speech-invalid-sample-rate-error", "deployments": [], "key": "polly/synthesize-speech-invalid-sample-rate-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_invalid_sample_rate_error.py", "service": "polly"} {"check_id": "polly.synthesize-speech-invalid-ssml-error", "deployments": [], "key": "polly/synthesize-speech-invalid-ssml-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_invalid_ssml_error.py", "service": "polly"} {"check_id": "polly.synthesize-speech-language-not-supported-error", "deployments": [], "key": "polly/synthesize-speech-language-not-supported-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_language_not_supported_error.py", "service": "polly"} {"check_id": "polly.synthesize-speech-lexicon-not-found-rejected", "deployments": [], "key": "polly/synthesize-speech-lexicon-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:DeleteLexicon", "polly:PutLexicon", "polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_lexicon_not_found_rejected.py", "service": "polly"} {"check_id": "polly.synthesize-speech-lexicon-pronunciation-changes-audio", "deployments": [], "key": "polly/synthesize-speech-lexicon-pronunciation-changes-audio", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:DeleteLexicon", "polly:PutLexicon", "polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_lexicon_pronunciation_changes_audio.py", "service": "polly"} {"check_id": "polly.synthesize-speech-marks-not-supported-for-format-rejected", "deployments": [], "key": "polly/synthesize-speech-marks-not-supported-for-format-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_marks_not_supported_for_format_rejected.py", "service": "polly"} {"check_id": "polly.synthesize-speech-mulaw-alaw-output-formats", "deployments": [], "key": "polly/synthesize-speech-mulaw-alaw-output-formats", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_mulaw_alaw_output_formats.py", "service": "polly"} {"check_id": "polly.synthesize-speech-multiple-lexicons-combined", "deployments": [], "key": "polly/synthesize-speech-multiple-lexicons-combined", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:DeleteLexicon", "polly:PutLexicon", "polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_multiple_lexicons_combined.py", "service": "polly"} {"check_id": "polly.synthesize-speech-output-format-content-types", "deployments": [], "key": "polly/synthesize-speech-output-format-content-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_output_format_content_types.py", "service": "polly"} {"check_id": "polly.synthesize-speech-pcm-output-format", "deployments": [], "key": "polly/synthesize-speech-pcm-output-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_pcm_output_format.py", "service": "polly"} {"check_id": "polly.synthesize-speech-request-characters-excludes-ssml-tags", "deployments": [], "key": "polly/synthesize-speech-request-characters-excludes-ssml-tags", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_request_characters_excludes_ssml_tags.py", "service": "polly"} {"check_id": "polly.synthesize-speech-speech-marks-json-roundtrip", "deployments": [], "key": "polly/synthesize-speech-speech-marks-json-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_speech_marks_json_roundtrip.py", "service": "polly"} {"check_id": "polly.synthesize-speech-ssml-marks-not-supported-for-text-type-error", "deployments": [], "key": "polly/synthesize-speech-ssml-marks-not-supported-for-text-type-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_ssml_marks_not_supported_for_text_type_error.py", "service": "polly"} {"check_id": "polly.synthesize-speech-ssml-neural-round-trip", "deployments": [], "key": "polly/synthesize-speech-ssml-neural-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_ssml_neural_round_trip.py", "service": "polly"} {"check_id": "polly.synthesize-speech-ssml-prosody-roundtrip", "deployments": [], "key": "polly/synthesize-speech-ssml-prosody-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_ssml_prosody_roundtrip.py", "service": "polly"} {"check_id": "polly.synthesize-speech-text-length-exceeded-rejected", "deployments": [], "key": "polly/synthesize-speech-text-length-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_text_length_exceeded_rejected.py", "service": "polly"} {"check_id": "polly.synthesize-speech-viseme-marks-with-ssml", "deployments": [], "key": "polly/synthesize-speech-viseme-marks-with-ssml", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/polly/check_synthesize_speech_viseme_marks_with_ssml.py", "service": "polly"} {"check_id": "pricing-plan-manager.create-subscription-rejections-leave-no-subscription", "deployments": [], "key": "pricing-plan-manager/create-subscription-rejections-leave-no-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["pricing-plan-manager:CreateSubscription", "pricing-plan-manager:ListSubscriptions"], "path": "behavioral/pricing-plan-manager/check_create_subscription_rejections_leave_no_subscription.py", "service": "pricing-plan-manager"} {"check_id": "pricing-plan-manager.mutations-on-nonexistent-subscription-rejected-consistently", "deployments": [], "key": "pricing-plan-manager/mutations-on-nonexistent-subscription-rejected-consistently", "labels": ["axis:rejection", "plane:control"], "operations": ["pricing-plan-manager:AssociateResourcesToSubscription", "pricing-plan-manager:CancelSubscription", "pricing-plan-manager:CancelSubscriptionChange", "pricing-plan-manager:DisassociateResourcesFromSubscription", "pricing-plan-manager:GetSubscription", "pricing-plan-manager:ListSubscriptions"], "path": "behavioral/pricing-plan-manager/check_mutations_on_nonexistent_subscription_rejected_consistently.py", "service": "pricing-plan-manager"} {"check_id": "pricing.concurrent-identical-reads-return-consistent-results", "deployments": [], "key": "pricing/concurrent-identical-reads-return-consistent-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:DescribeServices"], "path": "behavioral/pricing/check_concurrent_identical_reads_return_consistent_results.py", "service": "pricing"} {"check_id": "pricing.describe-services-ec2-attribute-names-present", "deployments": [], "key": "pricing/describe-services-ec2-attribute-names-present", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:DescribeServices"], "path": "behavioral/pricing/check_describe_services_ec2_attribute_names_present.py", "service": "pricing"} {"check_id": "pricing.describe-services-pagination-no-duplicates", "deployments": [], "key": "pricing/describe-services-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:DescribeServices"], "path": "behavioral/pricing/check_describe_services_pagination_no_duplicates.py", "service": "pricing"} {"check_id": "pricing.get-attribute-values-ec2-location-known-region-present", "deployments": [], "key": "pricing/get-attribute-values-ec2-location-known-region-present", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:GetAttributeValues"], "path": "behavioral/pricing/check_get_attribute_values_ec2_location_known_region_present.py", "service": "pricing"} {"check_id": "pricing.get-attribute-values-no-duplicate-values", "deployments": [], "key": "pricing/get-attribute-values-no-duplicate-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:GetAttributeValues"], "path": "behavioral/pricing/check_get_attribute_values_no_duplicate_values.py", "service": "pricing"} {"check_id": "pricing.get-attribute-values-pagination-respects-max-results", "deployments": [], "key": "pricing/get-attribute-values-pagination-respects-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:GetAttributeValues"], "path": "behavioral/pricing/check_get_attribute_values_pagination_respects_max_results.py", "service": "pricing"} {"check_id": "pricing.get-price-list-file-url-malformed-arn-invalid-parameter-rejected", "deployments": [], "key": "pricing/get-price-list-file-url-malformed-arn-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pricing:GetPriceListFileUrl", "pricing:ListPriceLists"], "path": "behavioral/pricing/check_get_price_list_file_url_malformed_arn_invalid_parameter_rejected.py", "service": "pricing"} {"check_id": "pricing.get-price-list-file-url-native-download-round-trip", "deployments": [], "key": "pricing/get-price-list-file-url-native-download-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["pricing:GetPriceListFileUrl", "pricing:ListPriceLists"], "path": "behavioral/pricing/check_get_price_list_file_url_native_download_round_trip.py", "service": "pricing"} {"check_id": "pricing.get-price-list-file-url-nonexistent-arn-resource-not-found-rejected", "deployments": [], "key": "pricing/get-price-list-file-url-nonexistent-arn-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pricing:GetPriceListFileUrl", "pricing:ListPriceLists"], "path": "behavioral/pricing/check_get_price_list_file_url_nonexistent_arn_resource_not_found_rejected.py", "service": "pricing"} {"check_id": "pricing.get-products-any-of-filter-matches-provided-values", "deployments": [], "key": "pricing/get-products-any-of-filter-matches-provided-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:GetProducts"], "path": "behavioral/pricing/check_get_products_any_of_filter_matches_provided_values.py", "service": "pricing"} {"check_id": "pricing.get-products-contains-filter-matches-substring-not-exact", "deployments": [], "key": "pricing/get-products-contains-filter-matches-substring-not-exact", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:GetProducts"], "path": "behavioral/pricing/check_get_products_contains_filter_matches_substring_not_exact.py", "service": "pricing"} {"check_id": "pricing.get-products-none-of-filter-excludes-value", "deployments": [], "key": "pricing/get-products-none-of-filter-excludes-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:GetProducts"], "path": "behavioral/pricing/check_get_products_none_of_filter_excludes_value.py", "service": "pricing"} {"check_id": "pricing.get-products-pricing-terms-include-ondemand-and-reserved", "deployments": [], "key": "pricing/get-products-pricing-terms-include-ondemand-and-reserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:GetProducts"], "path": "behavioral/pricing/check_get_products_pricing_terms_include_ondemand_and_reserved.py", "service": "pricing"} {"check_id": "pricing.get-products-term-match-filters-return-single-matching-product", "deployments": [], "key": "pricing/get-products-term-match-filters-return-single-matching-product", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:GetProducts"], "path": "behavioral/pricing/check_get_products_term_match_filters_return_single_matching_product.py", "service": "pricing"} {"check_id": "pricing.invalid-next-token-rejected", "deployments": [], "key": "pricing/invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pricing:DescribeServices"], "path": "behavioral/pricing/check_invalid_next_token_rejected.py", "service": "pricing"} {"check_id": "pricing.list-price-lists-arn-stable-across-identical-queries", "deployments": [], "key": "pricing/list-price-lists-arn-stable-across-identical-queries", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:ListPriceLists"], "path": "behavioral/pricing/check_list_price_lists_arn_stable_across_identical_queries.py", "service": "pricing"} {"check_id": "pricing.list-price-lists-malformed-currency-pattern-invalid-parameter-rejected", "deployments": [], "key": "pricing/list-price-lists-malformed-currency-pattern-invalid-parameter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pricing:ListPriceLists"], "path": "behavioral/pricing/check_list_price_lists_malformed_currency_pattern_invalid_parameter_rejected.py", "service": "pricing"} {"check_id": "pricing.list-price-lists-max-results-respected", "deployments": [], "key": "pricing/list-price-lists-max-results-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:ListPriceLists"], "path": "behavioral/pricing/check_list_price_lists_max_results_respected.py", "service": "pricing"} {"check_id": "pricing.list-price-lists-region-code-filter-narrows-results", "deployments": [], "key": "pricing/list-price-lists-region-code-filter-narrows-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:ListPriceLists"], "path": "behavioral/pricing/check_list_price_lists_region_code_filter_narrows_results.py", "service": "pricing"} {"check_id": "pricing.list-price-lists-returns-arn-and-supported-file-formats", "deployments": [], "key": "pricing/list-price-lists-returns-arn-and-supported-file-formats", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:ListPriceLists"], "path": "behavioral/pricing/check_list_price_lists_returns_arn_and_supported_file_formats.py", "service": "pricing"} {"check_id": "pricing.list-price-lists-unsupported-currency-resource-not-found-rejected", "deployments": [], "key": "pricing/list-price-lists-unsupported-currency-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["pricing:ListPriceLists"], "path": "behavioral/pricing/check_list_price_lists_unsupported_currency_resource_not_found_rejected.py", "service": "pricing"} {"check_id": "pricing.unknown-service-code-returns-empty-services", "deployments": [], "key": "pricing/unknown-service-code-returns-empty-services", "labels": ["axis:happy-path", "plane:control"], "operations": ["pricing:DescribeServices"], "path": "behavioral/pricing/check_unknown_service_code_returns_empty_services.py", "service": "pricing"} {"check_id": "qconnect.activate-nonexistent-template-version-rejected", "deployments": [], "key": "qconnect/activate-nonexistent-template-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["qconnect:ActivateMessageTemplate", "qconnect:CreateKnowledgeBase", "qconnect:CreateMessageTemplate", "qconnect:CreateMessageTemplateVersion", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteMessageTemplate", "qconnect:GetKnowledgeBase", "qconnect:GetMessageTemplate", "qconnect:ListMessageTemplateVersions"], "path": "behavioral/qconnect/check_activate_nonexistent_template_version_rejected.py", "service": "qconnect"} {"check_id": "qconnect.ai-agent-version-immutable-after-update", "deployments": [], "key": "qconnect/ai-agent-version-immutable-after-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateAIAgent", "qconnect:CreateAIAgentVersion", "qconnect:CreateAssistant", "qconnect:DeleteAIAgent", "qconnect:DeleteAIAgentVersion", "qconnect:DeleteAssistant", "qconnect:GetAIAgent", "qconnect:GetAssistant", "qconnect:UpdateAIAgent"], "path": "behavioral/qconnect/check_ai_agent_version_immutable_after_update.py", "service": "qconnect"} {"check_id": "qconnect.ai-agent-version-monotonic-numbering", "deployments": [], "key": "qconnect/ai-agent-version-monotonic-numbering", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateAIAgent", "qconnect:CreateAIAgentVersion", "qconnect:CreateAssistant", "qconnect:DeleteAIAgent", "qconnect:DeleteAIAgentVersion", "qconnect:DeleteAssistant", "qconnect:GetAIAgent", "qconnect:GetAssistant", "qconnect:ListAIAgentVersions", "qconnect:UpdateAIAgent"], "path": "behavioral/qconnect/check_ai_agent_version_monotonic_numbering.py", "service": "qconnect"} {"check_id": "qconnect.ai-agent-visibility-status-transition", "deployments": [], "key": "qconnect/ai-agent-visibility-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateAIAgent", "qconnect:CreateAssistant", "qconnect:DeleteAIAgent", "qconnect:DeleteAssistant", "qconnect:GetAIAgent", "qconnect:GetAssistant", "qconnect:UpdateAIAgent"], "path": "behavioral/qconnect/check_ai_agent_visibility_status_transition.py", "service": "qconnect"} {"check_id": "qconnect.ai-guardrail-create-active-delete-lifecycle", "deployments": [], "key": "qconnect/ai-guardrail-create-active-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateAIGuardrail", "qconnect:CreateAssistant", "qconnect:DeleteAIGuardrail", "qconnect:DeleteAssistant", "qconnect:GetAIGuardrail", "qconnect:GetAssistant"], "path": "behavioral/qconnect/check_ai_guardrail_create_active_delete_lifecycle.py", "service": "qconnect"} {"check_id": "qconnect.ai-prompt-version-concurrent-creation-race", "deployments": [], "key": "qconnect/ai-prompt-version-concurrent-creation-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateAIPrompt", "qconnect:CreateAIPromptVersion", "qconnect:CreateAssistant", "qconnect:DeleteAIPrompt", "qconnect:DeleteAIPromptVersion", "qconnect:DeleteAssistant", "qconnect:GetAssistant", "qconnect:ListAIPromptVersions", "qconnect:UpdateAIPrompt"], "path": "behavioral/qconnect/check_ai_prompt_version_concurrent_creation_race.py", "service": "qconnect"} {"check_id": "qconnect.assistant-create-active-delete-lifecycle", "deployments": [], "key": "qconnect/assistant-create-active-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateAssistant", "qconnect:DeleteAssistant", "qconnect:GetAssistant", "qconnect:TagResource"], "path": "behavioral/qconnect/check_assistant_create_active_delete_lifecycle.py", "service": "qconnect"} {"check_id": "qconnect.content-search-finds-created", "deployments": [], "key": "qconnect/content-search-finds-created", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["qconnect:CreateContent", "qconnect:CreateKnowledgeBase", "qconnect:DeleteContent", "qconnect:DeleteKnowledgeBase", "qconnect:GetContent", "qconnect:GetKnowledgeBase", "qconnect:SearchContent", "qconnect:StartContentUpload"], "path": "behavioral/qconnect/check_content_search_finds_created.py", "service": "qconnect"} {"check_id": "qconnect.content-update-stale-revision-rejected", "deployments": [], "key": "qconnect/content-update-stale-revision-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["qconnect:CreateContent", "qconnect:CreateKnowledgeBase", "qconnect:DeleteContent", "qconnect:DeleteKnowledgeBase", "qconnect:GetContent", "qconnect:GetKnowledgeBase", "qconnect:StartContentUpload", "qconnect:UpdateContent"], "path": "behavioral/qconnect/check_content_update_stale_revision_rejected.py", "service": "qconnect"} {"check_id": "qconnect.content-upload-create-get-lifecycle", "deployments": [], "key": "qconnect/content-upload-create-get-lifecycle", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["qconnect:CreateContent", "qconnect:CreateKnowledgeBase", "qconnect:DeleteContent", "qconnect:DeleteKnowledgeBase", "qconnect:GetContent", "qconnect:GetKnowledgeBase", "qconnect:StartContentUpload"], "path": "behavioral/qconnect/check_content_upload_create_get_lifecycle.py", "service": "qconnect"} {"check_id": "qconnect.deactivate-inactive-template-version-rejected", "deployments": [], "key": "qconnect/deactivate-inactive-template-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["qconnect:ActivateMessageTemplate", "qconnect:CreateKnowledgeBase", "qconnect:CreateMessageTemplate", "qconnect:CreateMessageTemplateVersion", "qconnect:DeactivateMessageTemplate", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteMessageTemplate", "qconnect:GetKnowledgeBase", "qconnect:GetMessageTemplate"], "path": "behavioral/qconnect/check_deactivate_inactive_template_version_rejected.py", "service": "qconnect"} {"check_id": "qconnect.delete-knowledge-base-with-active-association-succeeds", "deployments": [], "key": "qconnect/delete-knowledge-base-with-active-association-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateAssistant", "qconnect:CreateAssistantAssociation", "qconnect:CreateKnowledgeBase", "qconnect:DeleteAssistant", "qconnect:DeleteAssistantAssociation", "qconnect:DeleteKnowledgeBase", "qconnect:GetAssistant", "qconnect:GetKnowledgeBase"], "path": "behavioral/qconnect/check_delete_knowledge_base_with_active_association_succeeds.py", "service": "qconnect"} {"check_id": "qconnect.delete-referenced-ai-agent-version-succeeds", "deployments": [], "key": "qconnect/delete-referenced-ai-agent-version-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateAIAgent", "qconnect:CreateAIAgentVersion", "qconnect:CreateAssistant", "qconnect:DeleteAIAgent", "qconnect:DeleteAIAgentVersion", "qconnect:DeleteAssistant", "qconnect:GetAIAgent", "qconnect:GetAssistant", "qconnect:ListAIAgentVersions", "qconnect:RemoveAssistantAIAgent", "qconnect:UpdateAIAgent", "qconnect:UpdateAssistantAIAgent"], "path": "behavioral/qconnect/check_delete_referenced_ai_agent_version_succeeds.py", "service": "qconnect"} {"check_id": "qconnect.duplicate-assistant-association-rejected", "deployments": [], "key": "qconnect/duplicate-assistant-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["qconnect:CreateAssistant", "qconnect:CreateAssistantAssociation", "qconnect:CreateKnowledgeBase", "qconnect:DeleteAssistant", "qconnect:DeleteAssistantAssociation", "qconnect:DeleteKnowledgeBase", "qconnect:GetAssistant", "qconnect:GetKnowledgeBase", "qconnect:ListAssistantAssociations"], "path": "behavioral/qconnect/check_duplicate_assistant_association_rejected.py", "service": "qconnect"} {"check_id": "qconnect.get-content-cross-knowledge-base-isolation-rejected", "deployments": [], "key": "qconnect/get-content-cross-knowledge-base-isolation-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["qconnect:CreateContent", "qconnect:CreateKnowledgeBase", "qconnect:DeleteContent", "qconnect:DeleteKnowledgeBase", "qconnect:GetContent", "qconnect:GetKnowledgeBase", "qconnect:StartContentUpload"], "path": "behavioral/qconnect/check_get_content_cross_knowledge_base_isolation_rejected.py", "service": "qconnect"} {"check_id": "qconnect.knowledge-base-custom-lifecycle", "deployments": [], "key": "qconnect/knowledge-base-custom-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateKnowledgeBase", "qconnect:DeleteKnowledgeBase", "qconnect:GetKnowledgeBase"], "path": "behavioral/qconnect/check_knowledge_base_custom_lifecycle.py", "service": "qconnect"} {"check_id": "qconnect.message-template-attachment-round-trip", "deployments": [], "key": "qconnect/message-template-attachment-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateKnowledgeBase", "qconnect:CreateMessageTemplate", "qconnect:CreateMessageTemplateAttachment", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteMessageTemplate", "qconnect:DeleteMessageTemplateAttachment", "qconnect:GetKnowledgeBase", "qconnect:GetMessageTemplate"], "path": "behavioral/qconnect/check_message_template_attachment_round_trip.py", "service": "qconnect"} {"check_id": "qconnect.message-template-version-activate-deactivate", "deployments": [], "key": "qconnect/message-template-version-activate-deactivate", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:ActivateMessageTemplate", "qconnect:CreateKnowledgeBase", "qconnect:CreateMessageTemplate", "qconnect:CreateMessageTemplateVersion", "qconnect:DeactivateMessageTemplate", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteMessageTemplate", "qconnect:GetKnowledgeBase", "qconnect:GetMessageTemplate"], "path": "behavioral/qconnect/check_message_template_version_activate_deactivate.py", "service": "qconnect"} {"check_id": "qconnect.quick-response-create-get-lifecycle", "deployments": [], "key": "qconnect/quick-response-create-get-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateKnowledgeBase", "qconnect:CreateQuickResponse", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteQuickResponse", "qconnect:GetKnowledgeBase", "qconnect:GetQuickResponse"], "path": "behavioral/qconnect/check_quick_response_create_get_lifecycle.py", "service": "qconnect"} {"check_id": "qconnect.quick-response-duplicate-name-rejected", "deployments": [], "key": "qconnect/quick-response-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["qconnect:CreateKnowledgeBase", "qconnect:CreateQuickResponse", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteQuickResponse", "qconnect:GetKnowledgeBase", "qconnect:GetQuickResponse", "qconnect:ListQuickResponses"], "path": "behavioral/qconnect/check_quick_response_duplicate_name_rejected.py", "service": "qconnect"} {"check_id": "qconnect.quick-response-search-finds-created", "deployments": [], "key": "qconnect/quick-response-search-finds-created", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["qconnect:CreateKnowledgeBase", "qconnect:CreateQuickResponse", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteQuickResponse", "qconnect:GetKnowledgeBase", "qconnect:GetQuickResponse", "qconnect:SearchQuickResponses"], "path": "behavioral/qconnect/check_quick_response_search_finds_created.py", "service": "qconnect"} {"check_id": "qconnect.render-message-template-returns-content-verbatim", "deployments": [], "key": "qconnect/render-message-template-returns-content-verbatim", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["qconnect:CreateKnowledgeBase", "qconnect:CreateMessageTemplate", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteMessageTemplate", "qconnect:GetKnowledgeBase", "qconnect:RenderMessageTemplate"], "path": "behavioral/qconnect/check_render_message_template_returns_content_verbatim.py", "service": "qconnect"} {"check_id": "qconnect.tag-resource-untag-resource-round-trip", "deployments": [], "key": "qconnect/tag-resource-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["qconnect:CreateKnowledgeBase", "qconnect:DeleteKnowledgeBase", "qconnect:GetKnowledgeBase", "qconnect:ListTagsForResource", "qconnect:TagResource", "qconnect:UntagResource"], "path": "behavioral/qconnect/check_tag_resource_untag_resource_round_trip.py", "service": "qconnect"} {"check_id": "qconnect.too-many-tags-rejected", "deployments": [], "key": "qconnect/too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["qconnect:CreateAssistant", "qconnect:DeleteAssistant", "qconnect:GetAssistant", "qconnect:ListTagsForResource", "qconnect:TagResource", "qconnect:UntagResource"], "path": "behavioral/qconnect/check_too_many_tags_rejected.py", "service": "qconnect"} {"check_id": "qconnect.update-activated-message-template-version-rejected", "deployments": [], "key": "qconnect/update-activated-message-template-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["qconnect:ActivateMessageTemplate", "qconnect:CreateKnowledgeBase", "qconnect:CreateMessageTemplate", "qconnect:CreateMessageTemplateVersion", "qconnect:DeleteKnowledgeBase", "qconnect:DeleteMessageTemplate", "qconnect:GetKnowledgeBase", "qconnect:GetMessageTemplate", "qconnect:UpdateMessageTemplate"], "path": "behavioral/qconnect/check_update_activated_message_template_version_rejected.py", "service": "qconnect"} {"check_id": "quicksight.custom-sql-dataset-column-schema-round-trip", "deployments": [], "key": "quicksight/custom-sql-dataset-column-schema-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSet", "quicksight:CreateDataSource", "quicksight:DeleteDataSet", "quicksight:DeleteDataSource", "quicksight:DescribeAccountSubscription", "quicksight:DescribeDataSet", "quicksight:DescribeDataSource", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_custom_sql_dataset_column_schema_round_trip.py", "service": "quicksight"} {"check_id": "quicksight.dataset-direct-query-import-mode-skips-ingestion", "deployments": [], "key": "quicksight/dataset-direct-query-import-mode-skips-ingestion", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSet", "quicksight:CreateDataSource", "quicksight:DeleteDataSet", "quicksight:DeleteDataSource", "quicksight:DescribeAccountSubscription", "quicksight:DescribeDataSet", "quicksight:DescribeDataSource", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_dataset_direct_query_import_mode_skips_ingestion.py", "service": "quicksight"} {"check_id": "quicksight.dataset-permissions-grant-revoke-round-trip", "deployments": [], "key": "quicksight/dataset-permissions-grant-revoke-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSet", "quicksight:CreateDataSource", "quicksight:CreateGroup", "quicksight:DeleteDataSet", "quicksight:DeleteDataSource", "quicksight:DeleteGroup", "quicksight:DescribeAccountSubscription", "quicksight:DescribeDataSetPermissions", "quicksight:DescribeDataSource", "quicksight:UpdateDataSetPermissions", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_dataset_permissions_grant_revoke_round_trip.py", "service": "quicksight"} {"check_id": "quicksight.dataset-spice-ingestion-fails-deterministically-on-invalid-source", "deployments": [], "key": "quicksight/dataset-spice-ingestion-fails-deterministically-on-invalid-source", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSet", "quicksight:CreateDataSource", "quicksight:DeleteDataSet", "quicksight:DeleteDataSource", "quicksight:DescribeAccountSubscription", "quicksight:DescribeDataSource", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_dataset_spice_ingestion_fails_deterministically_on_invalid_source.py", "service": "quicksight"} {"check_id": "quicksight.datasource-lifecycle-create-update-delete", "deployments": [], "key": "quicksight/datasource-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSource", "quicksight:DeleteDataSource", "quicksight:DescribeAccountSubscription", "quicksight:DescribeDataSource", "quicksight:UpdateDataSource", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_datasource_lifecycle_create_update_delete.py", "service": "quicksight"} {"check_id": "quicksight.delete-namespace-blocked-by-nonempty-precondition", "deployments": [], "key": "quicksight/delete-namespace-blocked-by-nonempty-precondition", "labels": ["axis:rejection", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateNamespace", "quicksight:DeleteNamespace", "quicksight:DescribeAccountSubscription", "quicksight:DescribeNamespace", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_delete_namespace_blocked_by_nonempty_precondition.py", "service": "quicksight"} {"check_id": "quicksight.duplicate-namespace-creation-rejected", "deployments": [], "key": "quicksight/duplicate-namespace-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateNamespace", "quicksight:DeleteNamespace", "quicksight:DescribeAccountSubscription", "quicksight:DescribeNamespace", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_duplicate_namespace_creation_rejected.py", "service": "quicksight"} {"check_id": "quicksight.folder-membership-add-remove-reflected-in-listing", "deployments": [], "key": "quicksight/folder-membership-add-remove-reflected-in-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSource", "quicksight:CreateFolder", "quicksight:CreateFolderMembership", "quicksight:DeleteDataSource", "quicksight:DeleteFolder", "quicksight:DeleteFolderMembership", "quicksight:DescribeAccountSubscription", "quicksight:ListFolderMembers", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_folder_membership_add_remove_reflected_in_listing.py", "service": "quicksight"} {"check_id": "quicksight.group-membership-add-remove-reflected-in-listing", "deployments": [], "key": "quicksight/group-membership-add-remove-reflected-in-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "quicksight:CreateAccountSubscription", "quicksight:CreateGroup", "quicksight:CreateGroupMembership", "quicksight:DeleteGroup", "quicksight:DeleteGroupMembership", "quicksight:DeleteUser", "quicksight:DescribeAccountSubscription", "quicksight:ListGroupMemberships", "quicksight:RegisterUser", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_group_membership_add_remove_reflected_in_listing.py", "service": "quicksight"} {"check_id": "quicksight.iam-policy-assignment-concurrent-creation-contention", "deployments": [], "key": "quicksight/iam-policy-assignment-concurrent-creation-contention", "labels": ["axis:happy-path", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateIAMPolicyAssignment", "quicksight:DeleteIAMPolicyAssignment", "quicksight:DescribeAccountSubscription", "quicksight:DescribeIAMPolicyAssignment", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_iam_policy_assignment_concurrent_creation_contention.py", "service": "quicksight"} {"check_id": "quicksight.iam-policy-assignment-status-transitions", "deployments": [], "key": "quicksight/iam-policy-assignment-status-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateIAMPolicyAssignment", "quicksight:DeleteIAMPolicyAssignment", "quicksight:DescribeAccountSubscription", "quicksight:DescribeIAMPolicyAssignment", "quicksight:UpdateIAMPolicyAssignment", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_iam_policy_assignment_status_transitions.py", "service": "quicksight"} {"check_id": "quicksight.namespace-creation-reaches-created-state", "deployments": [], "key": "quicksight/namespace-creation-reaches-created-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateNamespace", "quicksight:DeleteNamespace", "quicksight:DescribeAccountSubscription", "quicksight:DescribeNamespace", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_namespace_creation_reaches_created_state.py", "service": "quicksight"} {"check_id": "quicksight.refresh-schedule-quota-exceeded-rejected", "deployments": [], "key": "quicksight/refresh-schedule-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSet", "quicksight:CreateDataSource", "quicksight:CreateRefreshSchedule", "quicksight:DeleteDataSet", "quicksight:DeleteDataSource", "quicksight:DeleteRefreshSchedule", "quicksight:DescribeAccountSubscription", "quicksight:DescribeDataSource", "quicksight:ListRefreshSchedules", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_refresh_schedule_quota_exceeded_rejected.py", "service": "quicksight"} {"check_id": "quicksight.register-user-quicksight-identity-lifecycle", "deployments": [], "key": "quicksight/register-user-quicksight-identity-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "iam:GetUser", "quicksight:CreateAccountSubscription", "quicksight:DeleteUser", "quicksight:DescribeAccountSubscription", "quicksight:DescribeUser", "quicksight:RegisterUser", "quicksight:UpdateUser", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_register_user_quicksight_identity_lifecycle.py", "service": "quicksight"} {"check_id": "quicksight.role-membership-group-lifecycle", "deployments": [], "key": "quicksight/role-membership-group-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateGroup", "quicksight:CreateRoleMembership", "quicksight:DeleteGroup", "quicksight:DescribeAccountSubscription", "quicksight:DescribeGroup", "quicksight:ListRoleMemberships", "quicksight:UpdateGroup", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_role_membership_group_lifecycle.py", "service": "quicksight"} {"check_id": "quicksight.search-datasets-by-name-finds-created-dataset", "deployments": [], "key": "quicksight/search-datasets-by-name-finds-created-dataset", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSet", "quicksight:CreateDataSource", "quicksight:DeleteDataSet", "quicksight:DeleteDataSource", "quicksight:DescribeAccountSubscription", "quicksight:DescribeDataSet", "quicksight:SearchDataSets", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_search_datasets_by_name_finds_created_dataset.py", "service": "quicksight"} {"check_id": "quicksight.theme-alias-nonexistent-version-rejected", "deployments": [], "key": "quicksight/theme-alias-nonexistent-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateTheme", "quicksight:CreateThemeAlias", "quicksight:DeleteTheme", "quicksight:DescribeAccountSubscription", "quicksight:DescribeTheme", "quicksight:DescribeThemeAlias", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_theme_alias_nonexistent_version_rejected.py", "service": "quicksight"} {"check_id": "quicksight.theme-creation-reaches-successful-state", "deployments": [], "key": "quicksight/theme-creation-reaches-successful-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateTheme", "quicksight:CreateThemeAlias", "quicksight:DeleteTheme", "quicksight:DescribeAccountSubscription", "quicksight:DescribeTheme", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_theme_creation_reaches_successful_state.py", "service": "quicksight"} {"check_id": "quicksight.theme-permissions-grant-revoke-round-trip", "deployments": [], "key": "quicksight/theme-permissions-grant-revoke-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["quicksight:CreateAccountSubscription", "quicksight:CreateGroup", "quicksight:CreateTheme", "quicksight:DeleteGroup", "quicksight:DeleteTheme", "quicksight:DescribeAccountSubscription", "quicksight:DescribeTheme", "quicksight:DescribeThemePermissions", "quicksight:UpdateThemePermissions", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_theme_permissions_grant_revoke_round_trip.py", "service": "quicksight"} {"check_id": "quicksight.topic-creation-dataset-association-reflected", "deployments": [], "key": "quicksight/topic-creation-dataset-association-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "quicksight:CreateAccountSubscription", "quicksight:CreateDataSet", "quicksight:CreateDataSource", "quicksight:CreateTopic", "quicksight:DeleteDataSet", "quicksight:DeleteDataSource", "quicksight:DeleteTopic", "quicksight:DescribeAccountSubscription", "quicksight:DescribeDataSource", "quicksight:DescribeTopic", "sts:GetCallerIdentity"], "path": "behavioral/quicksight/check_topic_creation_dataset_association_reflected.py", "service": "quicksight"} {"check_id": "ram.associate-resource-share-permission-replaces-managed-default", "deployments": [], "key": "ram/associate-resource-share-permission-replaces-managed-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "ram:AssociateResourceSharePermission", "ram:CreatePermission", "ram:CreateResourceShare", "ram:DeletePermission", "ram:DeleteResourceShare", "ram:GetResourceShareAssociations", "ram:ListPermissionAssociations", "ram:ListResourceSharePermissions"], "path": "behavioral/ram/check_associate_resource_share_permission_replaces_managed_default.py", "service": "ram"} {"check_id": "ram.create-permission-version-disallowed-action-rejected", "deployments": [], "key": "ram/create-permission-version-disallowed-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ram:CreatePermission", "ram:CreatePermissionVersion", "ram:DeletePermission", "ram:ListPermissionVersions"], "path": "behavioral/ram/check_create_permission_version_disallowed_action_rejected.py", "service": "ram"} {"check_id": "ram.create-resource-share-client-token-mismatch-rejected", "deployments": [], "key": "ram/create-resource-share-client-token-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShares"], "path": "behavioral/ram/check_create_resource_share_client_token_mismatch_rejected.py", "service": "ram"} {"check_id": "ram.customer-managed-permission-resource-type-restriction-rejected", "deployments": [], "key": "ram/customer-managed-permission-resource-type-restriction-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ram:CreatePermission", "ram:DeletePermission", "ram:GetPermission", "ram:ListPermissions"], "path": "behavioral/ram/check_customer_managed_permission_resource_type_restriction_rejected.py", "service": "ram"} {"check_id": "ram.disassociate-last-permission-from-share-rejected", "deployments": [], "key": "ram/disassociate-last-permission-from-share-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["codebuild:CreateProject", "codebuild:DeleteProject", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "ram:AssociateResourceSharePermission", "ram:CreatePermission", "ram:CreateResourceShare", "ram:DeletePermission", "ram:DeleteResourceShare", "ram:DisassociateResourceSharePermission", "ram:GetResourceShareAssociations", "ram:ListResourceSharePermissions"], "path": "behavioral/ram/check_disassociate_last_permission_from_share_rejected.py", "service": "ram"} {"check_id": "ram.disassociate-resource-share-removes-association-not-resource", "deployments": [], "key": "ram/disassociate-resource-share-removes-association-not-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeSubnets", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:DisassociateResourceShare", "ram:GetResourceShareAssociations"], "path": "behavioral/ram/check_disassociate_resource_share_removes_association_not_resource.py", "service": "ram"} {"check_id": "ram.list-pending-invitation-resources-unknown-invitation-rejected", "deployments": [], "key": "ram/list-pending-invitation-resources-unknown-invitation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShareInvitations", "ram:ListPendingInvitationResources"], "path": "behavioral/ram/check_list_pending_invitation_resources_unknown_invitation_rejected.py", "service": "ram"} {"check_id": "ram.permission-version-lifecycle-and-default-propagation", "deployments": [], "key": "ram/permission-version-lifecycle-and-default-propagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ram:CreatePermission", "ram:CreatePermissionVersion", "ram:CreateResourceShare", "ram:DeletePermission", "ram:DeletePermissionVersion", "ram:DeleteResourceShare", "ram:GetPermission", "ram:ListPermissionVersions", "ram:ListReplacePermissionAssociationsWork", "ram:ListResourceSharePermissions", "ram:ReplacePermissionAssociations"], "path": "behavioral/ram/check_permission_version_lifecycle_and_default_propagation.py", "service": "ram"} {"check_id": "ram.prefix-list-resource-share-association", "deployments": [], "key": "ram/prefix-list-resource-share-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateManagedPrefixList", "ec2:DeleteManagedPrefixList", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShareAssociations", "ram:ListResourceSharePermissions"], "path": "behavioral/ram/check_prefix_list_resource_share_association.py", "service": "ram"} {"check_id": "ram.resource-share-no-principals-activates-without-invitation", "deployments": [], "key": "ram/resource-share-no-principals-activates-without-invitation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShareAssociations", "ram:GetResourceShareInvitations"], "path": "behavioral/ram/check_resource_share_no_principals_activates_without_invitation.py", "service": "ram"} {"check_id": "ram.resource-share-without-external-principal-has-no-resource-policy", "deployments": [], "key": "ram/resource-share-without-external-principal-has-no-resource-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourcePolicies", "ram:GetResourceShareAssociations"], "path": "behavioral/ram/check_resource_share_without_external_principal_has_no_resource_policy.py", "service": "ram"} {"check_id": "ram.update-resource-share-name-persists-via-get-resource-shares", "deployments": [], "key": "ram/update-resource-share-name-persists-via-get-resource-shares", "labels": ["axis:happy-path", "plane:control"], "operations": ["ram:CreateResourceShare", "ram:DeleteResourceShare", "ram:GetResourceShares", "ram:UpdateResourceShare"], "path": "behavioral/ram/check_update_resource_share_name_persists_via_get_resource_shares.py", "service": "ram"} {"check_id": "rbin.concurrent-lock-attempts-single-winner", "deployments": [], "key": "rbin/concurrent-lock-attempts-single-winner", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:LockRule", "rbin:UnlockRule"], "path": "behavioral/rbin/check_concurrent_lock_attempts_single_winner.py", "service": "rbin"} {"check_id": "rbin.create-rule-basic-lifecycle", "deployments": [], "key": "rbin/create-rule-basic-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/rbin/check_create_rule_basic_lifecycle.py", "service": "rbin"} {"check_id": "rbin.create-rule-retention-period-out-of-range-rejected", "deployments": [], "key": "rbin/create-rule-retention-period-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:ListRules"], "path": "behavioral/rbin/check_create_rule_retention_period_out_of_range_rejected.py", "service": "rbin"} {"check_id": "rbin.create-rule-tag-quota-exceeded-rejected", "deployments": [], "key": "rbin/create-rule-tag-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:ListRules", "rbin:ListTagsForResource"], "path": "behavioral/rbin/check_create_rule_tag_quota_exceeded_rejected.py", "service": "rbin"} {"check_id": "rbin.create-rule-with-lock-configuration-locks-immediately", "deployments": [], "key": "rbin/create-rule-with-lock-configuration-locks-immediately", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:UnlockRule"], "path": "behavioral/rbin/check_create_rule_with_lock_configuration_locks_immediately.py", "service": "rbin"} {"check_id": "rbin.create-rule-with-resource-tags-scopes-tag-level-rule", "deployments": [], "key": "rbin/create-rule-with-resource-tags-scopes-tag-level-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/rbin/check_create_rule_with_resource_tags_scopes_tag_level_rule.py", "service": "rbin"} {"check_id": "rbin.delete-rule-nonexistent-not-found", "deployments": [], "key": "rbin/delete-rule-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/rbin/check_delete_rule_nonexistent_not_found.py", "service": "rbin"} {"check_id": "rbin.delete-rule-removes-from-list", "deployments": [], "key": "rbin/delete-rule-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:ListRules"], "path": "behavioral/rbin/check_delete_rule_removes_from_list.py", "service": "rbin"} {"check_id": "rbin.ebs-snapshot-retained-in-recycle-bin-on-delete", "deployments": [], "key": "rbin/ebs-snapshot-retained-in-recycle-bin-on-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSnapshot", "ec2:CreateVolume", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:ListSnapshotsInRecycleBin", "ec2:RestoreSnapshotFromRecycleBin", "rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/rbin/check_ebs_snapshot_retained_in_recycle_bin_on_delete.py", "service": "rbin"} {"check_id": "rbin.get-rule-invalid-identifier-pattern-rejected", "deployments": [], "key": "rbin/get-rule-invalid-identifier-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule"], "path": "behavioral/rbin/check_get_rule_invalid_identifier_pattern_rejected.py", "service": "rbin"} {"check_id": "rbin.list-rules-filters-by-resource-type", "deployments": [], "key": "rbin/list-rules-filters-by-resource-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:ListRules"], "path": "behavioral/rbin/check_list_rules_filters_by_resource_type.py", "service": "rbin"} {"check_id": "rbin.list-rules-pagination-with-max-results", "deployments": [], "key": "rbin/list-rules-pagination-with-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:ListRules"], "path": "behavioral/rbin/check_list_rules_pagination_with_max_results.py", "service": "rbin"} {"check_id": "rbin.lock-and-unlock-rule-transitions", "deployments": [], "key": "rbin/lock-and-unlock-rule-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:GetRule", "rbin:LockRule", "rbin:UnlockRule"], "path": "behavioral/rbin/check_lock_and_unlock_rule_transitions.py", "service": "rbin"} {"check_id": "rbin.lock-rule-unlock-delay-out-of-range-rejected", "deployments": [], "key": "rbin/lock-rule-unlock-delay-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:LockRule", "rbin:UnlockRule"], "path": "behavioral/rbin/check_lock_rule_unlock_delay_out_of_range_rejected.py", "service": "rbin"} {"check_id": "rbin.lock-state-transition-guards-rejected", "deployments": [], "key": "rbin/lock-state-transition-guards-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:LockRule", "rbin:UnlockRule"], "path": "behavioral/rbin/check_lock_state_transition_guards_rejected.py", "service": "rbin"} {"check_id": "rbin.locked-rule-blocks-mutation-and-deletion", "deployments": [], "key": "rbin/locked-rule-blocks-mutation-and-deletion", "labels": ["axis:rejection", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:LockRule", "rbin:UnlockRule", "rbin:UpdateRule"], "path": "behavioral/rbin/check_locked_rule_blocks_mutation_and_deletion.py", "service": "rbin"} {"check_id": "rbin.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "rbin/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:ListTagsForResource", "rbin:TagResource"], "path": "behavioral/rbin/check_tag_resource_and_list_tags_roundtrip.py", "service": "rbin"} {"check_id": "rbin.untag-resource-removes-tag", "deployments": [], "key": "rbin/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:ListTagsForResource", "rbin:TagResource", "rbin:UntagResource"], "path": "behavioral/rbin/check_untag_resource_removes_tag.py", "service": "rbin"} {"check_id": "rbin.update-rule-retention-period-persists", "deployments": [], "key": "rbin/update-rule-retention-period-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["rbin:CreateRule", "rbin:DeleteRule", "rbin:GetRule", "rbin:UpdateRule"], "path": "behavioral/rbin/check_update_rule_retention_period_persists.py", "service": "rbin"} {"check_id": "rds-data.aggregate-join-and-window-results-are-computed-by-the-engine", "deployments": [], "key": "rds-data/aggregate-join-and-window-results-are-computed-by-the-engine", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "sts:GetCallerIdentity"], "path": "behavioral/rds-data/check_aggregate_join_and_window_results_are_computed_by_the_engine.py", "service": "rds-data"} {"check_id": "rds-data.batch-execute-statement-atomic-rollback-on-constraint-violation", "deployments": [], "key": "rds-data/batch-execute-statement-atomic-rollback-on-constraint-violation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_batch_execute_statement_atomic_rollback_on_constraint_violation.py", "service": "rds-data"} {"check_id": "rds-data.batch-execute-statement-generated-fields-per-row", "deployments": [], "key": "rds-data/batch-execute-statement-generated-fields-per-row", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_batch_execute_statement_generated_fields_per_row.py", "service": "rds-data"} {"check_id": "rds-data.batch-execute-statement-multi-row-insert", "deployments": [], "key": "rds-data/batch-execute-statement-multi-row-insert", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_batch_execute_statement_multi_row_insert.py", "service": "rds-data"} {"check_id": "rds-data.batch-execute-statement-rejects-whole-batch-on-one-failure", "deployments": [], "key": "rds-data/batch-execute-statement-rejects-whole-batch-on-one-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_batch_execute_statement_rejects_whole_batch_on_one_failure.py", "service": "rds-data"} {"check_id": "rds-data.begin-commit-transaction-persists-data", "deployments": [], "key": "rds-data/begin-commit-transaction-persists-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_begin_commit_transaction_persists_data.py", "service": "rds-data"} {"check_id": "rds-data.begin-rollback-transaction-discards-data", "deployments": [], "key": "rds-data/begin-rollback-transaction-discards-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_begin_rollback_transaction_discards_data.py", "service": "rds-data"} {"check_id": "rds-data.commit-transaction-twice-rejected", "deployments": [], "key": "rds-data/commit-transaction-twice-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_commit_transaction_twice_rejected.py", "service": "rds-data"} {"check_id": "rds-data.continue-after-timeout-preserves-ddl-past-the-call-timeout", "deployments": [], "key": "rds-data/continue-after-timeout-preserves-ddl-past-the-call-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "sts:GetCallerIdentity"], "path": "behavioral/rds-data/check_continue_after_timeout_preserves_ddl_past_the_call_timeout.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-basic-crud", "deployments": [], "key": "rds-data/execute-statement-basic-crud", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_execute_statement_basic_crud.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-database-parameter-switches-schema", "deployments": [], "key": "rds-data/execute-statement-database-parameter-switches-schema", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_execute_statement_database_parameter_switches_schema.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-fabricated-transaction-id-rejected", "deployments": [], "key": "rds-data/execute-statement-fabricated-transaction-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_execute_statement_fabricated_transaction_id_rejected.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-failure-aborts-transaction-and-rollback-discards-writes", "deployments": [], "key": "rds-data/execute-statement-failure-aborts-transaction-and-rollback-discards-writes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_execute_statement_failure_aborts_transaction_and_rollback_discards_writes.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-format-records-as-json", "deployments": [], "key": "rds-data/execute-statement-format-records-as-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_execute_statement_format_records_as_json.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-generated-fields-autoincrement", "deployments": [], "key": "rds-data/execute-statement-generated-fields-autoincrement", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_execute_statement_generated_fields_autoincrement.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-http-endpoint-disabled-rejected", "deployments": [], "key": "rds-data/execute-statement-http-endpoint-disabled-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_execute_statement_http_endpoint_disabled_rejected.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-result-metadata-nullable-flags", "deployments": [], "key": "rds-data/execute-statement-result-metadata-nullable-flags", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_execute_statement_result_metadata_nullable_flags.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-typed-values-roundtrip", "deployments": [], "key": "rds-data/execute-statement-typed-values-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_execute_statement_typed_values_roundtrip.py", "service": "rds-data"} {"check_id": "rds-data.execute-statement-unassociated-secret-rejected", "deployments": [], "key": "rds-data/execute-statement-unassociated-secret-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds-data/check_execute_statement_unassociated_secret_rejected.py", "service": "rds-data"} {"check_id": "rds-data.formatted-json-records-match-column-records", "deployments": [], "key": "rds-data/formatted-json-records-match-column-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_formatted_json_records_match_column_records.py", "service": "rds-data"} {"check_id": "rds-data.missing-iam-permission-access-denied-rejected", "deployments": [], "key": "rds-data/missing-iam-permission-access-denied-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_missing_iam_permission_access_denied_rejected.py", "service": "rds-data"} {"check_id": "rds-data.named-parameters-bind-literally-and-reject-unbound-placeholders", "deployments": [], "key": "rds-data/named-parameters-bind-literally-and-reject-unbound-placeholders", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_named_parameters_bind_literally_and_reject_unbound_placeholders.py", "service": "rds-data"} {"check_id": "rds-data.parallel-concurrent-updates-no-lost-updates", "deployments": [], "key": "rds-data/parallel-concurrent-updates-no-lost-updates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_parallel_concurrent_updates_no_lost_updates.py", "service": "rds-data"} {"check_id": "rds-data.rds-data-batch-execute-statement-in-transaction-discarded-by-rollback-and-persisted-by-commit", "deployments": [], "key": "rds-data/rds-data-batch-execute-statement-in-transaction-discarded-by-rollback-and-persisted-by-commit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:BatchExecuteStatement", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_rds_data_batch_execute_statement_in_transaction_discarded_by_rollback_and_persisted_by_commit.py", "service": "rds-data"} {"check_id": "rds-data.rds-data-batch-update-delete-and-returning-report-empty-update-results", "deployments": [], "key": "rds-data/rds-data-batch-update-delete-and-returning-report-empty-update-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_rds_data_batch_update_delete_and_returning_report_empty_update_results.py", "service": "rds-data"} {"check_id": "rds-data.rds-data-column-metadata-members-and-result-set-options-under-json", "deployments": [], "key": "rds-data/rds-data-column-metadata-members-and-result-set-options-under-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_rds_data_column_metadata_members_and_result_set_options_under_json.py", "service": "rds-data"} {"check_id": "rds-data.rds-data-concurrent-transactions-independent-and-dead-transaction-ids-refuse-apart", "deployments": [], "key": "rds-data/rds-data-concurrent-transactions-independent-and-dead-transaction-ids-refuse-apart", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:BatchExecuteStatement", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_rds_data_concurrent_transactions_independent_and_dead_transaction_ids_refuse_apart.py", "service": "rds-data"} {"check_id": "rds-data.rds-data-own-cluster-execute-statement-lifecycle", "deployments": [], "key": "rds-data/rds-data-own-cluster-execute-statement-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:ModifyDBCluster"], "path": "behavioral/rds-data/check_rds_data_own_cluster_execute_statement_lifecycle.py", "service": "rds-data"} {"check_id": "rds-data.rds-data-rollback-transaction-on-terminal-transaction-rejected-and-state-kept", "deployments": [], "key": "rds-data/rds-data-rollback-transaction-on-terminal-transaction-rejected-and-state-kept", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_rds_data_rollback_transaction_on_terminal_transaction_rejected_and_state_kept.py", "service": "rds-data"} {"check_id": "rds-data.rds-data-type-hint-is-required-for-engine-typed-parameters", "deployments": [], "key": "rds-data/rds-data-type-hint-is-required-for-engine-typed-parameters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_rds_data_type_hint_is_required_for_engine_typed_parameters.py", "service": "rds-data"} {"check_id": "rds-data.rds-data-unsupported-result-refusal-arrives-after-the-row-is-committed", "deployments": [], "key": "rds-data/rds-data-unsupported-result-refusal-arrives-after-the-row-is-committed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_rds_data_unsupported_result_refusal_arrives_after_the_row_is_committed.py", "service": "rds-data"} {"check_id": "rds-data.rejects-bad-resource-secret-and-database-with-distinct-codes", "deployments": [], "key": "rds-data/rejects-bad-resource-secret-and-database-with-distinct-codes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_rejects_bad_resource_secret_and_database_with_distinct_codes.py", "service": "rds-data"} {"check_id": "rds-data.transaction-expires-after-idle-timeout", "deployments": [], "key": "rds-data/transaction-expires-after-idle-timeout", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_transaction_expires_after_idle_timeout.py", "service": "rds-data"} {"check_id": "rds-data.transaction-multiple-statements-same-transaction", "deployments": [], "key": "rds-data/transaction-multiple-statements-same-transaction", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_transaction_multiple_statements_same_transaction.py", "service": "rds-data"} {"check_id": "rds-data.transaction-uncommitted-write-isolation", "deployments": [], "key": "rds-data/transaction-uncommitted-write-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds-data/check_transaction_uncommitted_write_isolation.py", "service": "rds-data"} {"check_id": "rds-data.typed-value-round-trip", "deployments": [], "key": "rds-data/typed-value-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds-data/check_typed_value_round_trip.py", "service": "rds-data"} {"check_id": "rds.add-list-tags", "deployments": [], "key": "rds/add-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddTagsToResource", "rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups", "rds:ListTagsForResource"], "path": "behavioral/rds/check_add_list_tags.py", "service": "rds"} {"check_id": "rds.add-role-to-cluster-contract", "deployments": [], "key": "rds/add-role-to-cluster-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "rds:AddRoleToDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_add_role_to_cluster_contract.py", "service": "rds"} {"check_id": "rds.add-role-to-cluster-quota-exceeded-rejected", "deployments": [], "key": "rds/add-role-to-cluster-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:RemoveRoleFromDBCluster"], "path": "behavioral/rds/check_add_role_to_cluster_quota_exceeded_rejected.py", "service": "rds"} {"check_id": "rds.add-role-to-instance-contract", "deployments": [], "key": "rds/add-role-to-instance-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_add_role_to_instance_contract.py", "service": "rds"} {"check_id": "rds.add-role-to-instance-quota-exceeded-rejected", "deployments": [], "key": "rds/add-role-to-instance-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds/check_add_role_to_instance_quota_exceeded_rejected.py", "service": "rds"} {"check_id": "rds.add-role-without-iam-trust-denied", "deployments": [], "key": "rds/add-role-without-iam-trust-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "rds:AddRoleToDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_add_role_without_iam_trust_denied.py", "service": "rds"} {"check_id": "rds.add-source-identifier-to-subscription", "deployments": [], "key": "rds/add-source-identifier-to-subscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddSourceIdentifierToSubscription", "rds:CreateDBParameterGroup", "rds:CreateEventSubscription", "rds:DeleteDBParameterGroup", "rds:DeleteEventSubscription", "rds:DescribeDBEngineVersions", "rds:DescribeEventSubscriptions", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/rds/check_add_source_identifier_to_subscription.py", "service": "rds"} {"check_id": "rds.apply-pending-maintenance-action", "deployments": [], "key": "rds/apply-pending-maintenance-action", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:ApplyPendingMaintenanceAction", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_apply_pending_maintenance_action.py", "service": "rds"} {"check_id": "rds.aurora-cluster-writer-and-reader-endpoints-share-cluster-domain", "deployments": [], "key": "rds/aurora-cluster-writer-and-reader-endpoints-share-cluster-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterEndpoints", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_aurora_cluster_writer_and_reader_endpoints_share_cluster_domain.py", "service": "rds"} {"check_id": "rds.authorize-security-group-ingress", "deployments": [], "key": "rds/authorize-security-group-ingress", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:AuthorizeDBSecurityGroupIngress", "rds:CreateDBSecurityGroup", "rds:DeleteDBSecurityGroup", "rds:DescribeDBSecurityGroups"], "path": "behavioral/rds/check_authorize_security_group_ingress.py", "service": "rds"} {"check_id": "rds.automated-backup-arn-param-malformed-rejected", "deployments": [], "key": "rds/automated-backup-arn-param-malformed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DeleteDBInstanceAutomatedBackup", "rds:DescribeDBInstanceAutomatedBackups"], "path": "behavioral/rds/check_automated_backup_arn_param_malformed_rejected.py", "service": "rds"} {"check_id": "rds.automated-backup-retention-window-enforced", "deployments": [], "key": "rds/automated-backup-retention-window-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstanceAutomatedBackups", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_automated_backup_retention_window_enforced.py", "service": "rds"} {"check_id": "rds.automated-backup-retention-zero-disables-visibility", "deployments": [], "key": "rds/automated-backup-retention-zero-disables-visibility", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstanceAutomatedBackups", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_automated_backup_retention_zero_disables_visibility.py", "service": "rds"} {"check_id": "rds.automated-snapshot-listed-by-snapshot-type-for-instance-with-retention", "deployments": [], "key": "rds/automated-snapshot-listed-by-snapshot-type-for-instance-with-retention", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeOrderableDBInstanceOptions"], "path": "behavioral/rds/check_automated_snapshot_listed_by_snapshot_type_for_instance_with_retention.py", "service": "rds"} {"check_id": "rds.backtrack-cluster-contract", "deployments": [], "key": "rds/backtrack-cluster-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:BacktrackDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_backtrack_cluster_contract.py", "service": "rds"} {"check_id": "rds.backtrack-cluster-wrong-state-rejected", "deployments": [], "key": "rds/backtrack-cluster-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:BacktrackDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterBacktracks", "rds:DescribeDBClusters", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_backtrack_cluster_wrong_state_rejected.py", "service": "rds"} {"check_id": "rds.blue-green-deployment-lifecycle", "deployments": [], "key": "rds/blue-green-deployment-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateBlueGreenDeployment", "rds:CreateDBCluster", "rds:CreateDBClusterParameterGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteBlueGreenDeployment", "rds:DeleteDBCluster", "rds:DeleteDBClusterParameterGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeBlueGreenDeployments", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:ModifyDBClusterParameterGroup", "rds:RebootDBInstance", "rds:SwitchoverBlueGreenDeployment"], "path": "behavioral/rds/check_blue_green_deployment_lifecycle.py", "service": "rds"} {"check_id": "rds.ca-certificate-identifier-round-trip", "deployments": [], "key": "rds/ca-certificate-identifier-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeCertificates", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_ca_certificate_identifier_round_trip.py", "service": "rds"} {"check_id": "rds.cancel-export-task-contract", "deployments": [], "key": "rds/cancel-export-task-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CancelExportTask", "rds:DescribeExportTasks"], "path": "behavioral/rds/check_cancel_export_task_contract.py", "service": "rds"} {"check_id": "rds.cluster-automated-backup-retention-window-boundary", "deployments": [], "key": "rds/cluster-automated-backup-retention-window-boundary", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterAutomatedBackups", "rds:DescribeDBClusters", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_cluster_automated_backup_retention_window_boundary.py", "service": "rds"} {"check_id": "rds.cluster-deletion-protection-delete-rejected", "deployments": [], "key": "rds/cluster-deletion-protection-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_cluster_deletion_protection_delete_rejected.py", "service": "rds"} {"check_id": "rds.cluster-endpoint-duplicate-name-rejected", "deployments": [], "key": "rds/cluster-endpoint-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterEndpoint", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterEndpoint", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterEndpoints", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_cluster_endpoint_duplicate_name_rejected.py", "service": "rds"} {"check_id": "rds.cluster-endpoint-lifecycle", "deployments": [], "key": "rds/cluster-endpoint-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBClusterEndpoint", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterEndpoint", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterEndpoints", "rds:DescribeDBClusters", "rds:ModifyDBClusterEndpoint"], "path": "behavioral/rds/check_cluster_endpoint_lifecycle.py", "service": "rds"} {"check_id": "rds.cluster-endpoint-static-members-round-trip", "deployments": [], "key": "rds/cluster-endpoint-static-members-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterEndpoint", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterEndpoint", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterEndpoints", "rds:DescribeDBClusters", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_cluster_endpoint_static_members_round_trip.py", "service": "rds"} {"check_id": "rds.cluster-failover", "deployments": [], "key": "rds/cluster-failover", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:FailoverDBCluster"], "path": "behavioral/rds/check_cluster_failover.py", "service": "rds"} {"check_id": "rds.cluster-iam-role-association-lifecycle", "deployments": [], "key": "rds/cluster-iam-role-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBCluster", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBCluster"], "path": "behavioral/rds/check_cluster_iam_role_association_lifecycle.py", "service": "rds"} {"check_id": "rds.cluster-lifecycle", "deployments": [], "key": "rds/cluster-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_cluster_lifecycle.py", "service": "rds"} {"check_id": "rds.cluster-maintenance-window-day-names-read-back-lower-case", "deployments": [], "key": "rds/cluster-maintenance-window-day-names-read-back-lower-case", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_cluster_maintenance_window_day_names_read_back_lower_case.py", "service": "rds"} {"check_id": "rds.cluster-parameter-group-reset-with-pending-change-rejected", "deployments": [], "key": "rds/cluster-parameter-group-reset-with-pending-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameters", "rds:ModifyDBClusterParameterGroup", "rds:ResetDBClusterParameterGroup"], "path": "behavioral/rds/check_cluster_parameter_group_reset_with_pending_change_rejected.py", "service": "rds"} {"check_id": "rds.cluster-parameter-numeric-precision-round-trip", "deployments": [], "key": "rds/cluster-parameter-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameters", "rds:DescribeDBEngineVersions", "rds:DescribeEngineDefaultClusterParameters", "rds:ModifyDBClusterParameterGroup"], "path": "behavioral/rds/check_cluster_parameter_numeric_precision_round_trip.py", "service": "rds"} {"check_id": "rds.cluster-read-replica-promotion", "deployments": [], "key": "rds/cluster-read-replica-promotion", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBClusterParameterGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterParameterGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:ModifyDBClusterParameterGroup", "rds:PromoteReadReplicaDBCluster"], "path": "behavioral/rds/check_cluster_read_replica_promotion.py", "service": "rds"} {"check_id": "rds.cluster-snapshot-delete-lifecycle", "deployments": [], "key": "rds/cluster-snapshot-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_cluster_snapshot_delete_lifecycle.py", "service": "rds"} {"check_id": "rds.cluster-snapshot-lifecycle-and-sharing", "deployments": [], "key": "rds/cluster-snapshot-lifecycle-and-sharing", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CopyDBClusterSnapshot", "rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshotAttributes", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:ModifyDBClusterSnapshotAttribute"], "path": "behavioral/rds/check_cluster_snapshot_lifecycle_and_sharing.py", "service": "rds"} {"check_id": "rds.cluster-snapshot-restore", "deployments": [], "key": "rds/cluster-snapshot-restore", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:RestoreDBClusterFromSnapshot"], "path": "behavioral/rds/check_cluster_snapshot_restore.py", "service": "rds"} {"check_id": "rds.cluster-snapshot-restore-share-over-quota-rejected", "deployments": [], "key": "rds/cluster-snapshot-restore-share-over-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshotAttributes", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:ModifyDBClusterSnapshotAttribute"], "path": "behavioral/rds/check_cluster_snapshot_restore_share_over_quota_rejected.py", "service": "rds"} {"check_id": "rds.cluster-start-stop-reboot-failover-transitions", "deployments": [], "key": "rds/cluster-start-stop-reboot-failover-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:FailoverDBCluster", "rds:RebootDBCluster", "rds:StartDBCluster", "rds:StopDBCluster"], "path": "behavioral/rds/check_cluster_start_stop_reboot_failover_transitions.py", "service": "rds"} {"check_id": "rds.concurrent-add-role-to-instance-duplicate-race", "deployments": [], "key": "rds/concurrent-add-role-to-instance-duplicate-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance"], "path": "behavioral/rds/check_concurrent_add_role_to_instance_duplicate_race.py", "service": "rds"} {"check_id": "rds.concurrent-authorize-ingress-duplicate-rule-single-winner", "deployments": [], "key": "rds/concurrent-authorize-ingress-duplicate-rule-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteVpc", "ec2:DescribeVpcs", "rds:AuthorizeDBSecurityGroupIngress", "rds:CreateDBParameterGroup", "rds:CreateDBSecurityGroup", "rds:DeleteDBParameterGroup", "rds:DeleteDBSecurityGroup", "rds:DescribeDBParameterGroups", "rds:DescribeDBSecurityGroups"], "path": "behavioral/rds/check_concurrent_authorize_ingress_duplicate_rule_single_winner.py", "service": "rds"} {"check_id": "rds.concurrent-create-cluster-endpoint-duplicate-name-race", "deployments": [], "key": "rds/concurrent-create-cluster-endpoint-duplicate-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterEndpoint", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterEndpoint", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterEndpoints", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_concurrent_create_cluster_endpoint_duplicate_name_race.py", "service": "rds"} {"check_id": "rds.concurrent-create-db-proxy-duplicate-name-single-winner", "deployments": [], "key": "rds/concurrent-create-db-proxy-duplicate-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_concurrent_create_db_proxy_duplicate_name_single_winner.py", "service": "rds"} {"check_id": "rds.concurrent-create-duplicate-instance", "deployments": [], "key": "rds/concurrent-create-duplicate-instance", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_concurrent_create_duplicate_instance.py", "service": "rds"} {"check_id": "rds.concurrent-create-same-snapshot-name-conflict", "deployments": [], "key": "rds/concurrent-create-same-snapshot-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_concurrent_create_same_snapshot_name_conflict.py", "service": "rds"} {"check_id": "rds.concurrent-delete-parameter-group", "deployments": [], "key": "rds/concurrent-delete-parameter-group", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_concurrent_delete_parameter_group.py", "service": "rds"} {"check_id": "rds.concurrent-delete-security-group", "deployments": [], "key": "rds/concurrent-delete-security-group", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBSecurityGroup", "rds:DeleteDBSecurityGroup", "rds:DescribeDBSecurityGroups"], "path": "behavioral/rds/check_concurrent_delete_security_group.py", "service": "rds"} {"check_id": "rds.concurrent-failover-requests-single-execution", "deployments": [], "key": "rds/concurrent-failover-requests-single-execution", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:FailoverDBCluster"], "path": "behavioral/rds/check_concurrent_failover_requests_single_execution.py", "service": "rds"} {"check_id": "rds.concurrent-failover-requests-single-winner", "deployments": [], "key": "rds/concurrent-failover-requests-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:FailoverDBCluster"], "path": "behavioral/rds/check_concurrent_failover_requests_single_winner.py", "service": "rds"} {"check_id": "rds.concurrent-modify-cluster-parameter-group-last-write-wins", "deployments": [], "key": "rds/concurrent-modify-cluster-parameter-group-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameters", "rds:DescribeDBEngineVersions", "rds:ModifyDBClusterParameterGroup"], "path": "behavioral/rds/check_concurrent_modify_cluster_parameter_group_last_write_wins.py", "service": "rds"} {"check_id": "rds.concurrent-modify-cluster-parameter-group-last-writer-wins", "deployments": [], "key": "rds/concurrent-modify-cluster-parameter-group-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameters", "rds:ModifyDBClusterParameterGroup"], "path": "behavioral/rds/check_concurrent_modify_cluster_parameter_group_last_writer_wins.py", "service": "rds"} {"check_id": "rds.concurrent-modify-db-cluster-conflicting-state-rejected", "deployments": [], "key": "rds/concurrent-modify-db-cluster-conflicting-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_concurrent_modify_db_cluster_conflicting_state_rejected.py", "service": "rds"} {"check_id": "rds.concurrent-modify-instance-storage-and-class-conflict", "deployments": [], "key": "rds/concurrent-modify-instance-storage-and-class-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_concurrent_modify_instance_storage_and_class_conflict.py", "service": "rds"} {"check_id": "rds.concurrent-tag-writes-converge", "deployments": [], "key": "rds/concurrent-tag-writes-converge", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddTagsToResource", "rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups", "rds:ListTagsForResource"], "path": "behavioral/rds/check_concurrent_tag_writes_converge.py", "service": "rds"} {"check_id": "rds.copy-cluster-parameter-group", "deployments": [], "key": "rds/copy-cluster-parameter-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CopyDBClusterParameterGroup", "rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameterGroups", "rds:DescribeDBClusterParameters", "rds:DescribeDBEngineVersions", "rds:ModifyDBClusterParameterGroup"], "path": "behavioral/rds/check_copy_cluster_parameter_group.py", "service": "rds"} {"check_id": "rds.copy-cluster-snapshot-contract", "deployments": [], "key": "rds/copy-cluster-snapshot-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CopyDBClusterSnapshot", "rds:DescribeDBClusterSnapshots"], "path": "behavioral/rds/check_copy_cluster_snapshot_contract.py", "service": "rds"} {"check_id": "rds.copy-db-cluster-snapshot-round-trip", "deployments": [], "key": "rds/copy-db-cluster-snapshot-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CopyDBClusterSnapshot", "rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_copy_db_cluster_snapshot_round_trip.py", "service": "rds"} {"check_id": "rds.copy-db-snapshot-round-trip", "deployments": [], "key": "rds/copy-db-snapshot-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CopyDBSnapshot", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_copy_db_snapshot_round_trip.py", "service": "rds"} {"check_id": "rds.copy-option-group", "deployments": [], "key": "rds/copy-option-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CopyOptionGroup", "rds:CreateOptionGroup", "rds:DeleteOptionGroup", "rds:DescribeDBEngineVersions", "rds:DescribeOptionGroups"], "path": "behavioral/rds/check_copy_option_group.py", "service": "rds"} {"check_id": "rds.copy-option-group-round-trip", "deployments": [], "key": "rds/copy-option-group-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CopyOptionGroup", "rds:CreateOptionGroup", "rds:DeleteOptionGroup", "rds:DescribeOptionGroups", "rds:ModifyOptionGroup"], "path": "behavioral/rds/check_copy_option_group_round_trip.py", "service": "rds"} {"check_id": "rds.copy-parameter-group", "deployments": [], "key": "rds/copy-parameter-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CopyDBParameterGroup", "rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_copy_parameter_group.py", "service": "rds"} {"check_id": "rds.copy-snapshot-contract", "deployments": [], "key": "rds/copy-snapshot-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CopyDBSnapshot"], "path": "behavioral/rds/check_copy_snapshot_contract.py", "service": "rds"} {"check_id": "rds.create-blue-green-deployment-contract", "deployments": [], "key": "rds/create-blue-green-deployment-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateBlueGreenDeployment", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_create_blue_green_deployment_contract.py", "service": "rds"} {"check_id": "rds.create-cluster-backup-retention-out-of-range-rejected", "deployments": [], "key": "rds/create-cluster-backup-retention-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_create_cluster_backup_retention_out_of_range_rejected.py", "service": "rds"} {"check_id": "rds.create-cluster-conflicting-engine-mode-rejected", "deployments": [], "key": "rds/create-cluster-conflicting-engine-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_create_cluster_conflicting_engine_mode_rejected.py", "service": "rds"} {"check_id": "rds.create-custom-engine-version-contract", "deployments": [], "key": "rds/create-custom-engine-version-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateCustomDBEngineVersion", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_create_custom_engine_version_contract.py", "service": "rds"} {"check_id": "rds.create-db-instance-az-not-in-subnet-group-rejected", "deployments": [], "key": "rds/create-db-instance-az-not-in-subnet-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_db_instance_az_not_in_subnet_group_rejected.py", "service": "rds"} {"check_id": "rds.create-db-parameter-group-duplicate-name-rejected", "deployments": [], "key": "rds/create-db-parameter-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_create_db_parameter_group_duplicate_name_rejected.py", "service": "rds"} {"check_id": "rds.create-db-parameter-group-unknown-family-rejected", "deployments": [], "key": "rds/create-db-parameter-group-unknown-family-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_create_db_parameter_group_unknown_family_rejected.py", "service": "rds"} {"check_id": "rds.create-db-proxy-invalid-subnet-rejected", "deployments": [], "key": "rds/create-db-proxy-invalid-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:ModifyDBProxy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_create_db_proxy_invalid_subnet_rejected.py", "service": "rds"} {"check_id": "rds.create-db-subnet-group-single-az-rejected", "deployments": [], "key": "rds/create-db-subnet-group-single-az-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_create_db_subnet_group_single_az_rejected.py", "service": "rds"} {"check_id": "rds.create-describe-option-group", "deployments": [], "key": "rds/create-describe-option-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateOptionGroup", "rds:DeleteOptionGroup", "rds:DescribeOptionGroups"], "path": "behavioral/rds/check_create_describe_option_group.py", "service": "rds"} {"check_id": "rds.create-describe-parameter-group", "deployments": [], "key": "rds/create-describe-parameter-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_create_describe_parameter_group.py", "service": "rds"} {"check_id": "rds.create-duplicate-instance", "deployments": [], "key": "rds/create-duplicate-instance", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RebootDBInstance"], "path": "behavioral/rds/check_create_duplicate_instance.py", "service": "rds"} {"check_id": "rds.create-instance-invalid-class", "deployments": [], "key": "rds/create-instance-invalid-class", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_instance_invalid_class.py", "service": "rds"} {"check_id": "rds.create-instance-invalid-engine", "deployments": [], "key": "rds/create-instance-invalid-engine", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_instance_invalid_engine.py", "service": "rds"} {"check_id": "rds.create-instance-invalid-vpc-security-group-id-rejected", "deployments": [], "key": "rds/create-instance-invalid-vpc-security-group-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_instance_invalid_vpc_security_group_id_rejected.py", "service": "rds"} {"check_id": "rds.create-instance-malformed-storage-type-rejected", "deployments": [], "key": "rds/create-instance-malformed-storage-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_instance_malformed_storage_type_rejected.py", "service": "rds"} {"check_id": "rds.create-instance-missing-authorization-rejected", "deployments": [], "key": "rds/create-instance-missing-authorization-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBParameterGroup", "rds:CreateDBSecurityGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBParameterGroup", "rds:DeleteDBSecurityGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBParameterGroups", "rds:DescribeDBSecurityGroups"], "path": "behavioral/rds/check_create_instance_missing_authorization_rejected.py", "service": "rds"} {"check_id": "rds.create-instance-nonexistent-option-group-rejected", "deployments": [], "key": "rds/create-instance-nonexistent-option-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:CreateOptionGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DeleteOptionGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_instance_nonexistent_option_group_rejected.py", "service": "rds"} {"check_id": "rds.create-instance-validation-rejected", "deployments": [], "key": "rds/create-instance-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_instance_validation_rejected.py", "service": "rds"} {"check_id": "rds.create-instance-with-parameter-group-of-another-engine-family-rejected", "deployments": [], "key": "rds/create-instance-with-parameter-group-of-another-engine-family-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBParameterGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBParameterGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions"], "path": "behavioral/rds/check_create_instance_with_parameter_group_of_another_engine_family_rejected.py", "service": "rds"} {"check_id": "rds.create-integration-boundaries", "deployments": [], "key": "rds/create-integration-boundaries", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateIntegration", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_create_integration_boundaries.py", "service": "rds"} {"check_id": "rds.create-read-replica-cross-engine-family-rejected", "deployments": [], "key": "rds/create-read-replica-cross-engine-family-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBInstanceReadReplica", "rds:CreateDBSubnetGroup", "rds:CreateOptionGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DeleteOptionGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_read_replica_cross_engine_family_rejected.py", "service": "rds"} {"check_id": "rds.create-read-replica-cross-engine-mismatch-rejected", "deployments": [], "key": "rds/create-read-replica-cross-engine-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBInstanceReadReplica", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_create_read_replica_cross_engine_mismatch_rejected.py", "service": "rds"} {"check_id": "rds.create-shard-group-on-non-limitless-cluster-rejected", "deployments": [], "key": "rds/create-shard-group-on-non-limitless-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBShardGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:DescribeDBShardGroups"], "path": "behavioral/rds/check_create_shard_group_on_non_limitless_cluster_rejected.py", "service": "rds"} {"check_id": "rds.create-shard-group-wrong-cluster-state-rejected", "deployments": [], "key": "rds/create-shard-group-wrong-cluster-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "rds:CreateDBCluster", "rds:CreateDBShardGroup", "rds:DeleteDBCluster", "rds:DeleteDBShardGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBShardGroups", "rds:StartDBCluster", "rds:StopDBCluster"], "path": "behavioral/rds/check_create_shard_group_wrong_cluster_state_rejected.py", "service": "rds"} {"check_id": "rds.create-subnet-group-requires-subnets", "deployments": [], "key": "rds/create-subnet-group-requires-subnets", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_create_subnet_group_requires_subnets.py", "service": "rds"} {"check_id": "rds.create-tenant-database-boundary", "deployments": [], "key": "rds/create-tenant-database-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateTenantDatabase"], "path": "behavioral/rds/check_create_tenant_database_boundary.py", "service": "rds"} {"check_id": "rds.custom-engine-version-lifecycle", "deployments": [], "key": "rds/custom-engine-version-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateCustomDBEngineVersion", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_custom_engine_version_lifecycle.py", "service": "rds"} {"check_id": "rds.custom-engine-version-manifest-round-trip", "deployments": [], "key": "rds/custom-engine-version-manifest-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateCustomDBEngineVersion", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_custom_engine_version_manifest_round_trip.py", "service": "rds"} {"check_id": "rds.data-api-transaction-rollback-isolation", "deployments": [], "key": "rds/data-api-transaction-rollback-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_data_api_transaction_rollback_isolation.py", "service": "rds"} {"check_id": "rds.db-cluster-modify-while-creating-rejected", "deployments": [], "key": "rds/db-cluster-modify-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_db_cluster_modify_while_creating_rejected.py", "service": "rds"} {"check_id": "rds.db-instance-name-scoped-by-signed-region", "deployments": [], "key": "rds/db-instance-name-scoped-by-signed-region", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_db_instance_name_scoped_by_signed_region.py", "service": "rds"} {"check_id": "rds.db-instance-refuses-operations-while-creating", "deployments": [], "key": "rds/db-instance-refuses-operations-while-creating", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBLogFiles", "rds:DownloadDBLogFilePortion", "rds:ModifyDBInstance", "rds:RestoreDBInstanceToPointInTime", "rds:StopDBInstance"], "path": "behavioral/rds/check_db_instance_refuses_operations_while_creating.py", "service": "rds"} {"check_id": "rds.db-proxy-dual-network-type-rejects-non-dual-stack-subnet", "deployments": [], "key": "rds/db-proxy-dual-network-type-rejects-non-dual-stack-subnet", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_db_proxy_dual_network_type_rejects_non_dual_stack_subnet.py", "service": "rds"} {"check_id": "rds.db-proxy-endpoint-lifecycle", "deployments": [], "key": "rds/db-proxy-endpoint-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBCluster", "rds:CreateDBProxy", "rds:CreateDBProxyEndpoint", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBProxy", "rds:DeleteDBProxyEndpoint", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBProxies", "rds:DescribeDBProxyEndpoints", "rds:ModifyDBProxyEndpoint", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_db_proxy_endpoint_lifecycle.py", "service": "rds"} {"check_id": "rds.db-proxy-modify-while-creating-rejected", "deployments": [], "key": "rds/db-proxy-modify-while-creating-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:ModifyDBProxy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_db_proxy_modify_while_creating_rejected.py", "service": "rds"} {"check_id": "rds.db-proxy-name-scoped-by-signed-region", "deployments": [], "key": "rds/db-proxy-name-scoped-by-signed-region", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_db_proxy_name_scoped_by_signed_region.py", "service": "rds"} {"check_id": "rds.db-proxy-tls-required-server-enforced", "deployments": [], "key": "rds/db-proxy-tls-required-server-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:ModifyDBProxy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_db_proxy_tls_required_server_enforced.py", "service": "rds"} {"check_id": "rds.db-security-group-ingress-lifecycle", "deployments": [], "key": "rds/db-security-group-ingress-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AuthorizeDBSecurityGroupIngress", "rds:CreateDBSecurityGroup", "rds:DeleteDBSecurityGroup", "rds:DescribeDBSecurityGroups", "rds:RevokeDBSecurityGroupIngress"], "path": "behavioral/rds/check_db_security_group_ingress_lifecycle.py", "service": "rds"} {"check_id": "rds.db-shard-group-lifecycle", "deployments": [], "key": "rds/db-shard-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "rds:CreateDBCluster", "rds:CreateDBShardGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBShardGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBShardGroups", "rds:ModifyDBShardGroup", "rds:RebootDBShardGroup"], "path": "behavioral/rds/check_db_shard_group_lifecycle.py", "service": "rds"} {"check_id": "rds.db-subnet-group-insufficient-azs-rejected", "deployments": [], "key": "rds/db-subnet-group-insufficient-azs-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups", "rds:ModifyDBSubnetGroup"], "path": "behavioral/rds/check_db_subnet_group_insufficient_azs_rejected.py", "service": "rds"} {"check_id": "rds.decrease-allocated-storage-rejected", "deployments": [], "key": "rds/decrease-allocated-storage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_decrease_allocated_storage_rejected.py", "service": "rds"} {"check_id": "rds.delete-automated-backup-by-arn", "deployments": [], "key": "rds/delete-automated-backup-by-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBInstanceAutomatedBackup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstanceAutomatedBackups", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_delete_automated_backup_by_arn.py", "service": "rds"} {"check_id": "rds.delete-blue-green-deployment-boundaries", "deployments": [], "key": "rds/delete-blue-green-deployment-boundaries", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DeleteBlueGreenDeployment"], "path": "behavioral/rds/check_delete_blue_green_deployment_boundaries.py", "service": "rds"} {"check_id": "rds.delete-cluster-automated-backup-boundary", "deployments": [], "key": "rds/delete-cluster-automated-backup-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterAutomatedBackup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterAutomatedBackups", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_delete_cluster_automated_backup_boundary.py", "service": "rds"} {"check_id": "rds.delete-cluster-conflicting-snapshot-name-rejected", "deployments": [], "key": "rds/delete-cluster-conflicting-snapshot-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_delete_cluster_conflicting_snapshot_name_rejected.py", "service": "rds"} {"check_id": "rds.delete-cluster-deletion-protection-blocked", "deployments": [], "key": "rds/delete-cluster-deletion-protection-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_delete_cluster_deletion_protection_blocked.py", "service": "rds"} {"check_id": "rds.delete-cluster-final-snapshot-name-conflict-error", "deployments": [], "key": "rds/delete-cluster-final-snapshot-name-conflict-error", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_delete_cluster_final_snapshot_name_conflict_error.py", "service": "rds"} {"check_id": "rds.delete-cluster-parameter-group", "deployments": [], "key": "rds/delete-cluster-parameter-group", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameterGroups", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_delete_cluster_parameter_group.py", "service": "rds"} {"check_id": "rds.delete-cluster-parameter-group-in-use", "deployments": [], "key": "rds/delete-cluster-parameter-group-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterParameterGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterParameterGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterParameterGroups", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_delete_cluster_parameter_group_in_use.py", "service": "rds"} {"check_id": "rds.delete-cluster-with-members", "deployments": [], "key": "rds/delete-cluster-with-members", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_delete_cluster_with_members.py", "service": "rds"} {"check_id": "rds.delete-custom-engine-version-boundary", "deployments": [], "key": "rds/delete-custom-engine-version-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DeleteCustomDBEngineVersion", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_delete_custom_engine_version_boundary.py", "service": "rds"} {"check_id": "rds.delete-db-proxy-with-dependent-endpoint-cascades", "deployments": [], "key": "rds/delete-db-proxy-with-dependent-endpoint-cascades", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:CreateDBProxyEndpoint", "rds:DeleteDBProxy", "rds:DeleteDBProxyEndpoint", "rds:DescribeDBProxies", "rds:DescribeDBProxyEndpoints", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_delete_db_proxy_with_dependent_endpoint_cascades.py", "service": "rds"} {"check_id": "rds.delete-default-parameter-group-rejected", "deployments": [], "key": "rds/delete-default-parameter-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_delete_default_parameter_group_rejected.py", "service": "rds"} {"check_id": "rds.delete-deletion-protected-cluster-without-disable-rejected", "deployments": [], "key": "rds/delete-deletion-protected-cluster-without-disable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_delete_deletion_protected_cluster_without_disable_rejected.py", "service": "rds"} {"check_id": "rds.delete-global-cluster-with-member", "deployments": [], "key": "rds/delete-global-cluster-with-member", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:CreateGlobalCluster", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DeleteGlobalCluster", "rds:DescribeDBClusters", "rds:DescribeGlobalClusters", "rds:ModifyGlobalCluster", "rds:RemoveFromGlobalCluster", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_delete_global_cluster_with_member.py", "service": "rds"} {"check_id": "rds.delete-instance-conflicting-snapshot-flags-rejected", "deployments": [], "key": "rds/delete-instance-conflicting-snapshot-flags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_delete_instance_conflicting_snapshot_flags_rejected.py", "service": "rds"} {"check_id": "rds.delete-instance-deletion-protection", "deployments": [], "key": "rds/delete-instance-deletion-protection", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_delete_instance_deletion_protection.py", "service": "rds"} {"check_id": "rds.delete-instance-final-snapshot-name-conflict-error", "deployments": [], "key": "rds/delete-instance-final-snapshot-name-conflict-error", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_delete_instance_final_snapshot_name_conflict_error.py", "service": "rds"} {"check_id": "rds.delete-integration-boundary", "deployments": [], "key": "rds/delete-integration-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DeleteIntegration"], "path": "behavioral/rds/check_delete_integration_boundary.py", "service": "rds"} {"check_id": "rds.delete-nonexistent-instance", "deployments": [], "key": "rds/delete-nonexistent-instance", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_delete_nonexistent_instance.py", "service": "rds"} {"check_id": "rds.delete-nonexistent-option-group", "deployments": [], "key": "rds/delete-nonexistent-option-group", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateOptionGroup", "rds:DeleteOptionGroup"], "path": "behavioral/rds/check_delete_nonexistent_option_group.py", "service": "rds"} {"check_id": "rds.delete-nonexistent-parameter-group", "deployments": [], "key": "rds/delete-nonexistent-parameter-group", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_delete_nonexistent_parameter_group.py", "service": "rds"} {"check_id": "rds.delete-nonexistent-snapshot", "deployments": [], "key": "rds/delete-nonexistent-snapshot", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_delete_nonexistent_snapshot.py", "service": "rds"} {"check_id": "rds.delete-nonexistent-subnet-group", "deployments": [], "key": "rds/delete-nonexistent-subnet-group", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_delete_nonexistent_subnet_group.py", "service": "rds"} {"check_id": "rds.delete-option-group", "deployments": [], "key": "rds/delete-option-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateOptionGroup", "rds:DeleteOptionGroup", "rds:DescribeOptionGroups"], "path": "behavioral/rds/check_delete_option_group.py", "service": "rds"} {"check_id": "rds.delete-parameter-group", "deployments": [], "key": "rds/delete-parameter-group", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups", "rds:ModifyDBParameterGroup"], "path": "behavioral/rds/check_delete_parameter_group.py", "service": "rds"} {"check_id": "rds.delete-parameter-group-in-use", "deployments": [], "key": "rds/delete-parameter-group-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBParameterGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBParameterGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_delete_parameter_group_in_use.py", "service": "rds"} {"check_id": "rds.delete-shard-group-boundary", "deployments": [], "key": "rds/delete-shard-group-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DeleteDBShardGroup", "rds:DescribeDBShardGroups"], "path": "behavioral/rds/check_delete_shard_group_boundary.py", "service": "rds"} {"check_id": "rds.delete-subnet-group-in-use", "deployments": [], "key": "rds/delete-subnet-group-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups", "rds:ModifyDBSubnetGroup"], "path": "behavioral/rds/check_delete_subnet_group_in_use.py", "service": "rds"} {"check_id": "rds.delete-tenant-database-boundary", "deployments": [], "key": "rds/delete-tenant-database-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DeleteTenantDatabase", "rds:DescribeDBInstances", "rds:DescribeTenantDatabases"], "path": "behavioral/rds/check_delete_tenant_database_boundary.py", "service": "rds"} {"check_id": "rds.delete-without-final-snapshot-identifier-rejected", "deployments": [], "key": "rds/delete-without-final-snapshot-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_delete_without_final_snapshot_identifier_rejected.py", "service": "rds"} {"check_id": "rds.deletion-protection-server-enforced-gate", "deployments": [], "key": "rds/deletion-protection-server-enforced-gate", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_deletion_protection_server_enforced_gate.py", "service": "rds"} {"check_id": "rds.deploy-cfn-param-group-out-of-range-update-rejected-rolls-back", "deployments": [], "key": "rds/deploy-cfn-param-group-out-of-range-update-rejected-rolls-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameters", "rds:DescribeEngineDefaultParameters", "rds:ModifyDBParameterGroup"], "path": "behavioral/rds/check_deploy_cfn_param_group_out_of_range_update_rejected_rolls_back.py", "service": "rds"} {"check_id": "rds.deploy-cfn-stack-deletion-tears-down-resource", "deployments": [], "key": "rds/deploy-cfn-stack-deletion-tears-down-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RebootDBInstance"], "path": "behavioral/rds/check_deploy_cfn_stack_deletion_tears_down_resource.py", "service": "rds"} {"check_id": "rds.deploy-cfn-stack-update-modifies-live-parameter-group", "deployments": [], "key": "rds/deploy-cfn-stack-update-modifies-live-parameter-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBParameters", "rds:DescribeEngineDefaultParameters"], "path": "behavioral/rds/check_deploy_cfn_stack_update_modifies_live_parameter_group.py", "service": "rds"} {"check_id": "rds.deploy-cfn-subnet-group-drives-instance-placement", "deployments": [], "key": "rds/deploy-cfn-subnet-group-drives-instance-placement", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_deploy_cfn_subnet_group_drives_instance_placement.py", "service": "rds"} {"check_id": "rds.deploy-db-cluster-cfn-behaves", "deployments": [], "key": "rds/deploy-db-cluster-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_deploy_db_cluster_cfn_behaves.py", "service": "rds"} {"check_id": "rds.deploy-db-cluster-cfn-parameter-group-enforcement", "deployments": [], "key": "rds/deploy-db-cluster-cfn-parameter-group-enforcement", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:DescribeDBClusterParameters", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_deploy_db_cluster_cfn_parameter_group_enforcement.py", "service": "rds"} {"check_id": "rds.deploy-db-instance-cfn-behaves", "deployments": [], "key": "rds/deploy-db-instance-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_deploy_db_instance_cfn_behaves.py", "service": "rds"} {"check_id": "rds.deploy-db-subnet-group-cfn-instance-placement", "deployments": [], "key": "rds/deploy-db-subnet-group-cfn-instance-placement", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_deploy_db_subnet_group_cfn_instance_placement.py", "service": "rds"} {"check_id": "rds.deploy-rds-1-protected-stack-delete-blocked-then-snapshot-retain-honored", "deployments": [], "key": "rds/deploy-rds-1-protected-stack-delete-blocked-then-snapshot-retain-honored", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "ec2:DescribeAvailabilityZones", "rds:DeleteDBParameterGroup", "rds:DeleteDBSnapshot", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBParameterGroups", "rds:DescribeDBParameters", "rds:DescribeDBSnapshots", "rds:DescribeOrderableDBInstanceOptions", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_deploy_rds_1_protected_stack_delete_blocked_then_snapshot_retain_honored.py", "service": "rds"} {"check_id": "rds.deploy-rds-cluster-cfn-behavioral", "deployments": [], "key": "rds/deploy-rds-cluster-cfn-behavioral", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_deploy_rds_cluster_cfn_behavioral.py", "service": "rds"} {"check_id": "rds.deploy-rds-instance-cfn-parameter-group-effective", "deployments": [], "key": "rds/deploy-rds-instance-cfn-parameter-group-effective", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBParameters"], "path": "behavioral/rds/check_deploy_rds_instance_cfn_parameter_group_effective.py", "service": "rds"} {"check_id": "rds.deploy-rds-proxy-cfn-routes-to-target", "deployments": [], "key": "rds/deploy-rds-proxy-cfn-routes-to-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBProxyTargetGroups", "rds:DescribeDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_deploy_rds_proxy_cfn_routes_to_target.py", "service": "rds"} {"check_id": "rds.deploy-rds-subnet-group-cfn-az-coverage", "deployments": [], "key": "rds/deploy-rds-subnet-group-cfn-az-coverage", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_deploy_rds_subnet_group_cfn_az_coverage.py", "service": "rds"} {"check_id": "rds.deregister-proxy-target-not-registered-rejected", "deployments": [], "key": "rds/deregister-proxy-target-not-registered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBCluster", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DeregisterDBProxyTargets", "rds:DescribeDBClusters", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_deregister_proxy_target_not_registered_rejected.py", "service": "rds"} {"check_id": "rds.deregister-proxy-targets", "deployments": [], "key": "rds/deregister-proxy-targets", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "rds:CreateDBInstance", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DeregisterDBProxyTargets", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_deregister_proxy_targets.py", "service": "rds"} {"check_id": "rds.describe-account-attributes", "deployments": [], "key": "rds/describe-account-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeAccountAttributes", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_describe_account_attributes.py", "service": "rds"} {"check_id": "rds.describe-blue-green-deployments", "deployments": [], "key": "rds/describe-blue-green-deployments", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DescribeBlueGreenDeployments"], "path": "behavioral/rds/check_describe_blue_green_deployments.py", "service": "rds"} {"check_id": "rds.describe-certificates", "deployments": [], "key": "rds/describe-certificates", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeCertificates"], "path": "behavioral/rds/check_describe_certificates.py", "service": "rds"} {"check_id": "rds.describe-cluster-automated-backups", "deployments": [], "key": "rds/describe-cluster-automated-backups", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterAutomatedBackups", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_describe_cluster_automated_backups.py", "service": "rds"} {"check_id": "rds.describe-cluster-backtracks", "deployments": [], "key": "rds/describe-cluster-backtracks", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterBacktracks", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_describe_cluster_backtracks.py", "service": "rds"} {"check_id": "rds.describe-cluster-backtracks-chronological-order", "deployments": [], "key": "rds/describe-cluster-backtracks-chronological-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:BacktrackDBCluster", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterBacktracks", "rds:DescribeDBClusters", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_describe_cluster_backtracks_chronological_order.py", "service": "rds"} {"check_id": "rds.describe-cluster-endpoints", "deployments": [], "key": "rds/describe-cluster-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterEndpoints", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_describe_cluster_endpoints.py", "service": "rds"} {"check_id": "rds.describe-cluster-parameter-groups", "deployments": [], "key": "rds/describe-cluster-parameter-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameterGroups", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_describe_cluster_parameter_groups.py", "service": "rds"} {"check_id": "rds.describe-cluster-parameters", "deployments": [], "key": "rds/describe-cluster-parameters", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameters", "rds:DescribeDBEngineVersions", "rds:DescribeEngineDefaultClusterParameters"], "path": "behavioral/rds/check_describe_cluster_parameters.py", "service": "rds"} {"check_id": "rds.describe-cluster-snapshot-attributes", "deployments": [], "key": "rds/describe-cluster-snapshot-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshotAttributes", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_describe_cluster_snapshot_attributes.py", "service": "rds"} {"check_id": "rds.describe-cluster-snapshots", "deployments": [], "key": "rds/describe-cluster-snapshots", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_describe_cluster_snapshots.py", "service": "rds"} {"check_id": "rds.describe-clusters-empty-filter", "deployments": [], "key": "rds/describe-clusters-empty-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_describe_clusters_empty_filter.py", "service": "rds"} {"check_id": "rds.describe-clusters-with-cluster", "deployments": [], "key": "rds/describe-clusters-with-cluster", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_describe_clusters_with_cluster.py", "service": "rds"} {"check_id": "rds.describe-db-log-files", "deployments": [], "key": "rds/describe-db-log-files", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBLogFiles"], "path": "behavioral/rds/check_describe_db_log_files.py", "service": "rds"} {"check_id": "rds.describe-db-log-files-chronological-order", "deployments": [], "key": "rds/describe-db-log-files-chronological-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBLogFiles"], "path": "behavioral/rds/check_describe_db_log_files_chronological_order.py", "service": "rds"} {"check_id": "rds.describe-db-proxies-contract", "deployments": [], "key": "rds/describe-db-proxies-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DescribeDBProxies"], "path": "behavioral/rds/check_describe_db_proxies_contract.py", "service": "rds"} {"check_id": "rds.describe-db-proxy-targets-registration-order-preserved", "deployments": [], "key": "rds/describe-db-proxy-targets-registration-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_describe_db_proxy_targets_registration_order_preserved.py", "service": "rds"} {"check_id": "rds.describe-db-recommendations", "deployments": [], "key": "rds/describe-db-recommendations", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeDBRecommendations"], "path": "behavioral/rds/check_describe_db_recommendations.py", "service": "rds"} {"check_id": "rds.describe-engine-default-cluster-parameters", "deployments": [], "key": "rds/describe-engine-default-cluster-parameters", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeDBEngineVersions", "rds:DescribeEngineDefaultClusterParameters"], "path": "behavioral/rds/check_describe_engine_default_cluster_parameters.py", "service": "rds"} {"check_id": "rds.describe-engine-default-parameters", "deployments": [], "key": "rds/describe-engine-default-parameters", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeDBEngineVersions", "rds:DescribeEngineDefaultParameters"], "path": "behavioral/rds/check_describe_engine_default_parameters.py", "service": "rds"} {"check_id": "rds.describe-engine-versions-aurora", "deployments": [], "key": "rds/describe-engine-versions-aurora", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_describe_engine_versions_aurora.py", "service": "rds"} {"check_id": "rds.describe-engine-versions-mysql", "deployments": [], "key": "rds/describe-engine-versions-mysql", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_describe_engine_versions_mysql.py", "service": "rds"} {"check_id": "rds.describe-engine-versions-nonexistent", "deployments": [], "key": "rds/describe-engine-versions-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_describe_engine_versions_nonexistent.py", "service": "rds"} {"check_id": "rds.describe-event-categories", "deployments": [], "key": "rds/describe-event-categories", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeEventCategories"], "path": "behavioral/rds/check_describe_event_categories.py", "service": "rds"} {"check_id": "rds.describe-event-subscriptions-deleted-name-not-found", "deployments": [], "key": "rds/describe-event-subscriptions-deleted-name-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateEventSubscription", "rds:DeleteEventSubscription", "rds:DescribeEventSubscriptions", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/rds/check_describe_event_subscriptions_deleted_name_not_found.py", "service": "rds"} {"check_id": "rds.describe-events-contract", "deployments": [], "key": "rds/describe-events-contract", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeEvents"], "path": "behavioral/rds/check_describe_events_contract.py", "service": "rds"} {"check_id": "rds.describe-events-empty", "deployments": [], "key": "rds/describe-events-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeEvents"], "path": "behavioral/rds/check_describe_events_empty.py", "service": "rds"} {"check_id": "rds.describe-events-source-type-filter", "deployments": [], "key": "rds/describe-events-source-type-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeEvents"], "path": "behavioral/rds/check_describe_events_source_type_filter.py", "service": "rds"} {"check_id": "rds.describe-export-tasks", "deployments": [], "key": "rds/describe-export-tasks", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeExportTasks"], "path": "behavioral/rds/check_describe_export_tasks.py", "service": "rds"} {"check_id": "rds.describe-instance-automated-backups", "deployments": [], "key": "rds/describe-instance-automated-backups", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstanceAutomatedBackups", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_describe_instance_automated_backups.py", "service": "rds"} {"check_id": "rds.describe-instances-empty-filter", "deployments": [], "key": "rds/describe-instances-empty-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_describe_instances_empty_filter.py", "service": "rds"} {"check_id": "rds.describe-major-engine-versions", "deployments": [], "key": "rds/describe-major-engine-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeDBMajorEngineVersions"], "path": "behavioral/rds/check_describe_major_engine_versions.py", "service": "rds"} {"check_id": "rds.describe-nonexistent-cluster", "deployments": [], "key": "rds/describe-nonexistent-cluster", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_describe_nonexistent_cluster.py", "service": "rds"} {"check_id": "rds.describe-nonexistent-instance", "deployments": [], "key": "rds/describe-nonexistent-instance", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_describe_nonexistent_instance.py", "service": "rds"} {"check_id": "rds.describe-nonexistent-snapshot", "deployments": [], "key": "rds/describe-nonexistent-snapshot", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_describe_nonexistent_snapshot.py", "service": "rds"} {"check_id": "rds.describe-nonexistent-subnet-group", "deployments": [], "key": "rds/describe-nonexistent-subnet-group", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_describe_nonexistent_subnet_group.py", "service": "rds"} {"check_id": "rds.describe-option-groups-list-all", "deployments": [], "key": "rds/describe-option-groups-list-all", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeOptionGroups"], "path": "behavioral/rds/check_describe_option_groups_list_all.py", "service": "rds"} {"check_id": "rds.describe-orderable-instance-options", "deployments": [], "key": "rds/describe-orderable-instance-options", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeOrderableDBInstanceOptions"], "path": "behavioral/rds/check_describe_orderable_instance_options.py", "service": "rds"} {"check_id": "rds.describe-parameter-groups-list-all", "deployments": [], "key": "rds/describe-parameter-groups-list-all", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_describe_parameter_groups_list_all.py", "service": "rds"} {"check_id": "rds.describe-parameters-pagination", "deployments": [], "key": "rds/describe-parameters-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameters"], "path": "behavioral/rds/check_describe_parameters_pagination.py", "service": "rds"} {"check_id": "rds.describe-pending-maintenance", "deployments": [], "key": "rds/describe-pending-maintenance", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribePendingMaintenanceActions"], "path": "behavioral/rds/check_describe_pending_maintenance.py", "service": "rds"} {"check_id": "rds.describe-proxy-endpoints", "deployments": [], "key": "rds/describe-proxy-endpoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:DescribeDBProxyEndpoints", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_describe_proxy_endpoints.py", "service": "rds"} {"check_id": "rds.describe-proxy-target-groups", "deployments": [], "key": "rds/describe-proxy-target-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargetGroups", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_describe_proxy_target_groups.py", "service": "rds"} {"check_id": "rds.describe-proxy-targets", "deployments": [], "key": "rds/describe-proxy-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_describe_proxy_targets.py", "service": "rds"} {"check_id": "rds.describe-security-groups", "deployments": [], "key": "rds/describe-security-groups", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DescribeDBSecurityGroups"], "path": "behavioral/rds/check_describe_security_groups.py", "service": "rds"} {"check_id": "rds.describe-shard-groups", "deployments": [], "key": "rds/describe-shard-groups", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:DescribeDBShardGroups"], "path": "behavioral/rds/check_describe_shard_groups.py", "service": "rds"} {"check_id": "rds.describe-snapshot-attributes", "deployments": [], "key": "rds/describe-snapshot-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshotAttributes", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_describe_snapshot_attributes.py", "service": "rds"} {"check_id": "rds.describe-snapshot-tenant-databases", "deployments": [], "key": "rds/describe-snapshot-tenant-databases", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshotTenantDatabases", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_describe_snapshot_tenant_databases.py", "service": "rds"} {"check_id": "rds.describe-snapshots-empty-filter", "deployments": [], "key": "rds/describe-snapshots-empty-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_describe_snapshots_empty_filter.py", "service": "rds"} {"check_id": "rds.duplicate-cluster-identifier-creation-rejected", "deployments": [], "key": "rds/duplicate-cluster-identifier-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters"], "path": "behavioral/rds/check_duplicate_cluster_identifier_creation_rejected.py", "service": "rds"} {"check_id": "rds.e2e-activity-stream-start-stop-delivery-target", "deployments": [], "key": "rds/e2e-activity-stream-start-stop-delivery-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kinesis:AddTagsToStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:StartActivityStream", "rds:StopActivityStream"], "path": "behavioral/rds/check_e2e_activity_stream_start_stop_delivery_target.py", "service": "rds"} {"check_id": "rds.e2e-activity-stream-start-stop-flow", "deployments": [], "key": "rds/e2e-activity-stream-start-stop-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "kinesis:DescribeStream", "kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:StartActivityStream", "rds:StopActivityStream"], "path": "behavioral/rds/check_e2e_activity_stream_start_stop_flow.py", "service": "rds"} {"check_id": "rds.e2e-certificate-rotation-consequence-flow", "deployments": [], "key": "rds/e2e-certificate-rotation-consequence-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeCertificates", "rds:DescribeDBInstances", "rds:ModifyDBInstance", "rds:RebootDBInstance"], "path": "behavioral/rds/check_e2e_certificate_rotation_consequence_flow.py", "service": "rds"} {"check_id": "rds.e2e-cluster-failover-endpoint-repoints", "deployments": [], "key": "rds/e2e-cluster-failover-endpoint-repoints", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:FailoverDBCluster"], "path": "behavioral/rds/check_e2e_cluster_failover_endpoint_repoints.py", "service": "rds"} {"check_id": "rds.e2e-http-data-api-toggle-flow", "deployments": [], "key": "rds/e2e-http-data-api-toggle-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DisableHttpEndpoint", "rds:EnableHttpEndpoint"], "path": "behavioral/rds/check_e2e_http_data_api_toggle_flow.py", "service": "rds"} {"check_id": "rds.e2e-instance-lifecycle", "deployments": [], "key": "rds/e2e-instance-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance", "rds:StartDBInstance", "rds:StopDBInstance"], "path": "behavioral/rds/check_e2e_instance_lifecycle.py", "service": "rds"} {"check_id": "rds.e2e-parameter-group-instance", "deployments": [], "key": "rds/e2e-parameter-group-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBParameterGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBParameterGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBParameterGroup"], "path": "behavioral/rds/check_e2e_parameter_group_instance.py", "service": "rds"} {"check_id": "rds.e2e-proxy-target-becomes-routable", "deployments": [], "key": "rds/e2e-proxy-target-becomes-routable", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBInstance", "rds:CreateDBProxy", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBProxy", "rds:DeleteDBSubnetGroup", "rds:DeregisterDBProxyTargets", "rds:DescribeDBInstances", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:RegisterDBProxyTargets", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_e2e_proxy_target_becomes_routable.py", "service": "rds"} {"check_id": "rds.e2e-read-replica-topology-consistency-flow", "deployments": [], "key": "rds/e2e-read-replica-topology-consistency-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBInstanceReadReplica", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_e2e_read_replica_topology_consistency_flow.py", "service": "rds"} {"check_id": "rds.e2e-shard-group-provision-and-teardown-flow", "deployments": [], "key": "rds/e2e-shard-group-provision-and-teardown-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "rds:CreateDBCluster", "rds:CreateDBShardGroup", "rds:DeleteDBCluster", "rds:DeleteDBShardGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBShardGroups"], "path": "behavioral/rds/check_e2e_shard_group_provision_and_teardown_flow.py", "service": "rds"} {"check_id": "rds.empty-vs-absent-tag-distinction", "deployments": [], "key": "rds/empty-vs-absent-tag-distinction", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddTagsToResource", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ListTagsForResource", "rds:RemoveTagsFromResource"], "path": "behavioral/rds/check_empty_vs_absent_tag_distinction.py", "service": "rds"} {"check_id": "rds.engine-lifecycle-support-disabled-value-round-trip", "deployments": [], "key": "rds/engine-lifecycle-support-disabled-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_engine_lifecycle_support_disabled_value_round_trip.py", "service": "rds"} {"check_id": "rds.engine-version-catalog-newest-minor-reaches-shipped-floor-and-names-major-family", "deployments": [], "key": "rds/engine-version-catalog-newest-minor-reaches-shipped-floor-and-names-major-family", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_engine_version_catalog_newest_minor_reaches_shipped_floor_and_names_major_family.py", "service": "rds"} {"check_id": "rds.enhanced-monitoring-publishes-os-metric-documents-at-its-interval", "deployments": [], "key": "rds/enhanced-monitoring-publishes-os-metric-documents-at-its-interval", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "logs:DeleteLogStream", "logs:DescribeLogStreams", "logs:FilterLogEvents", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "rds:ModifyDBInstance", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_enhanced_monitoring_publishes_os_metric_documents_at_its_interval.py", "service": "rds"} {"check_id": "rds.event-subscription-lifecycle", "deployments": [], "key": "rds/event-subscription-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateEventSubscription", "rds:DeleteEventSubscription", "rds:DescribeEventSubscriptions", "rds:ModifyEventSubscription", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/rds/check_event_subscription_lifecycle.py", "service": "rds"} {"check_id": "rds.event-subscription-source-management", "deployments": [], "key": "rds/event-subscription-source-management", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddSourceIdentifierToSubscription", "rds:CreateDBParameterGroup", "rds:CreateEventSubscription", "rds:DeleteDBParameterGroup", "rds:DeleteEventSubscription", "rds:DescribeEventSubscriptions", "rds:ModifyEventSubscription", "rds:RemoveSourceIdentifierFromSubscription", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/rds/check_event_subscription_source_management.py", "service": "rds"} {"check_id": "rds.export-task-lifecycle", "deployments": [], "key": "rds/export-task-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/rds/check_export_task_lifecycle.py", "service": "rds"} {"check_id": "rds.failover-cluster-with-no-db-instances-rejected", "deployments": [], "key": "rds/failover-cluster-with-no-db-instances-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:FailoverDBCluster", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_failover_cluster_with_no_db_instances_rejected.py", "service": "rds"} {"check_id": "rds.global-cluster-delete-with-member-rejected", "deployments": [], "key": "rds/global-cluster-delete-with-member-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:CreateGlobalCluster", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DeleteGlobalCluster", "rds:DescribeDBClusters", "rds:DescribeGlobalClusters", "rds:ModifyGlobalCluster", "rds:RemoveFromGlobalCluster"], "path": "behavioral/rds/check_global_cluster_delete_with_member_rejected.py", "service": "rds"} {"check_id": "rds.global-cluster-failover-and-switchover-rejected", "deployments": [], "key": "rds/global-cluster-failover-and-switchover-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:CreateGlobalCluster", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DeleteGlobalCluster", "rds:DescribeDBClusters", "rds:DescribeGlobalClusters", "rds:FailoverGlobalCluster", "rds:RemoveFromGlobalCluster", "rds:SwitchoverGlobalCluster"], "path": "behavioral/rds/check_global_cluster_failover_and_switchover_rejected.py", "service": "rds"} {"check_id": "rds.global-cluster-lifecycle", "deployments": [], "key": "rds/global-cluster-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateGlobalCluster", "rds:DeleteGlobalCluster", "rds:DescribeGlobalClusters", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_global_cluster_lifecycle.py", "service": "rds"} {"check_id": "rds.global-cluster-membership-lifecycle", "deployments": [], "key": "rds/global-cluster-membership-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:CreateGlobalCluster", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DeleteGlobalCluster", "rds:DescribeDBClusters", "rds:DescribeGlobalClusters", "rds:ModifyGlobalCluster", "rds:RemoveFromGlobalCluster"], "path": "behavioral/rds/check_global_cluster_membership_lifecycle.py", "service": "rds"} {"check_id": "rds.instance-automated-backup-lifecycle", "deployments": [], "key": "rds/instance-automated-backup-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBInstanceAutomatedBackup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstanceAutomatedBackups", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_instance_automated_backup_lifecycle.py", "service": "rds"} {"check_id": "rds.instance-empty-vs-absent-tag-list-preserved", "deployments": [], "key": "rds/instance-empty-vs-absent-tag-list-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_instance_empty_vs_absent_tag_list_preserved.py", "service": "rds"} {"check_id": "rds.instance-iam-role-association-lifecycle", "deployments": [], "key": "rds/instance-iam-role-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance"], "path": "behavioral/rds/check_instance_iam_role_association_lifecycle.py", "service": "rds"} {"check_id": "rds.instance-reboot", "deployments": [], "key": "rds/instance-reboot", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RebootDBInstance"], "path": "behavioral/rds/check_instance_reboot.py", "service": "rds"} {"check_id": "rds.instance-stop-start", "deployments": [], "key": "rds/instance-stop-start", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:StopDBInstance"], "path": "behavioral/rds/check_instance_stop_start.py", "service": "rds"} {"check_id": "rds.integration-lifecycle", "deployments": [], "key": "rds/integration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBClusterParameterGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:CreateIntegration", "rds:DeleteDBCluster", "rds:DeleteDBClusterParameterGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DeleteIntegration", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeIntegrations", "rds:ModifyDBClusterParameterGroup", "rds:ModifyIntegration", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_integration_lifecycle.py", "service": "rds"} {"check_id": "rds.log-file-access-on-not-ready-instance-error", "deployments": [], "key": "rds/log-file-access-on-not-ready-instance-error", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBLogFiles", "rds:DownloadDBLogFilePortion"], "path": "behavioral/rds/check_log_file_access_on_not_ready_instance_error.py", "service": "rds"} {"check_id": "rds.log-file-base64-blob-integrity", "deployments": [], "key": "rds/log-file-base64-blob-integrity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBLogFiles", "rds:DownloadDBLogFilePortion"], "path": "behavioral/rds/check_log_file_base64_blob_integrity.py", "service": "rds"} {"check_id": "rds.maintenance-window-controls-pending-change-application", "deployments": [], "key": "rds/maintenance-window-controls-pending-change-application", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_maintenance_window_controls_pending_change_application.py", "service": "rds"} {"check_id": "rds.master-username-case-preservation-round-trip", "deployments": [], "key": "rds/master-username-case-preservation-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_master_username_case_preservation_round_trip.py", "service": "rds"} {"check_id": "rds.master-username-case-preserved-round-trip", "deployments": [], "key": "rds/master-username-case-preserved-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_master_username_case_preserved_round_trip.py", "service": "rds"} {"check_id": "rds.master-username-length-boundary-postgres", "deployments": [], "key": "rds/master-username-length-boundary-postgres", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_master_username_length_boundary_postgres.py", "service": "rds"} {"check_id": "rds.modify-apply-immediately-false-pending-modified-values", "deployments": [], "key": "rds/modify-apply-immediately-false-pending-modified-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_modify_apply_immediately_false_pending_modified_values.py", "service": "rds"} {"check_id": "rds.modify-apply-immediately-true-clears-a-prior-deferred-class-change", "deployments": [], "key": "rds/modify-apply-immediately-true-clears-a-prior-deferred-class-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_modify_apply_immediately_true_clears_a_prior_deferred_class_change.py", "service": "rds"} {"check_id": "rds.modify-cluster-capacity-invalid-value-rejected", "deployments": [], "key": "rds/modify-cluster-capacity-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBParameterGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBParameterGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_modify_cluster_capacity_invalid_value_rejected.py", "service": "rds"} {"check_id": "rds.modify-cluster-capacity-out-of-range-rejected", "deployments": [], "key": "rds/modify-cluster-capacity-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_modify_cluster_capacity_out_of_range_rejected.py", "service": "rds"} {"check_id": "rds.modify-cluster-endpoint-empty-membership-rejected", "deployments": [], "key": "rds/modify-cluster-endpoint-empty-membership-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBClusterEndpoint", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterEndpoint", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterEndpoints", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:ModifyDBClusterEndpoint"], "path": "behavioral/rds/check_modify_cluster_endpoint_empty_membership_rejected.py", "service": "rds"} {"check_id": "rds.modify-cluster-parameter-invalid-value-rejected", "deployments": [], "key": "rds/modify-cluster-parameter-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameters", "rds:DescribeDBEngineVersions", "rds:ModifyDBClusterParameterGroup"], "path": "behavioral/rds/check_modify_cluster_parameter_invalid_value_rejected.py", "service": "rds"} {"check_id": "rds.modify-cluster-parameters", "deployments": [], "key": "rds/modify-cluster-parameters", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBClusterParameterGroup", "rds:DeleteDBClusterParameterGroup", "rds:DescribeDBClusterParameters", "rds:DescribeDBEngineVersions", "rds:ModifyDBClusterParameterGroup"], "path": "behavioral/rds/check_modify_cluster_parameters.py", "service": "rds"} {"check_id": "rds.modify-current-capacity-out-of-range-error", "deployments": [], "key": "rds/modify-current-capacity-out-of-range-error", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds/check_modify_current_capacity_out_of_range_error.py", "service": "rds"} {"check_id": "rds.modify-db-parameter-group-invalid-value-rejected", "deployments": [], "key": "rds/modify-db-parameter-group-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups", "rds:DescribeDBParameters", "rds:ModifyDBParameterGroup"], "path": "behavioral/rds/check_modify_db_parameter_group_invalid_value_rejected.py", "service": "rds"} {"check_id": "rds.modify-instance-apply-immediately", "deployments": [], "key": "rds/modify-instance-apply-immediately", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_modify_instance_apply_immediately.py", "service": "rds"} {"check_id": "rds.modify-instance-during-deletion-rejected", "deployments": [], "key": "rds/modify-instance-during-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_modify_instance_during_deletion_rejected.py", "service": "rds"} {"check_id": "rds.modify-instance-engine-family-change-rejected", "deployments": [], "key": "rds/modify-instance-engine-family-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_modify_instance_engine_family_change_rejected.py", "service": "rds"} {"check_id": "rds.modify-instance-weak-master-password-rejected", "deployments": [], "key": "rds/modify-instance-weak-master-password-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_modify_instance_weak_master_password_rejected.py", "service": "rds"} {"check_id": "rds.modify-nonexistent-parameter-group", "deployments": [], "key": "rds/modify-nonexistent-parameter-group", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups", "rds:DescribeDBParameters", "rds:ModifyDBParameterGroup"], "path": "behavioral/rds/check_modify_nonexistent_parameter_group.py", "service": "rds"} {"check_id": "rds.modify-option-group-empty", "deployments": [], "key": "rds/modify-option-group-empty", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateOptionGroup", "rds:DeleteOptionGroup", "rds:DescribeOptionGroups", "rds:ModifyOptionGroup"], "path": "behavioral/rds/check_modify_option_group_empty.py", "service": "rds"} {"check_id": "rds.modify-parameter-group", "deployments": [], "key": "rds/modify-parameter-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups", "rds:DescribeDBParameters", "rds:ModifyDBParameterGroup"], "path": "behavioral/rds/check_modify_parameter_group.py", "service": "rds"} {"check_id": "rds.modify-storage-decrease-rejected", "deployments": [], "key": "rds/modify-storage-decrease-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_modify_storage_decrease_rejected.py", "service": "rds"} {"check_id": "rds.multi-az-standby-auto-failover-on-primary-failure", "deployments": [], "key": "rds/multi-az-standby-auto-failover-on-primary-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RebootDBInstance"], "path": "behavioral/rds/check_multi_az_standby_auto_failover_on_primary_failure.py", "service": "rds"} {"check_id": "rds.numeric-iops-storage-precision-round-trip", "deployments": [], "key": "rds/numeric-iops-storage-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_numeric_iops_storage_precision_round_trip.py", "service": "rds"} {"check_id": "rds.option-group-duplicate-error", "deployments": [], "key": "rds/option-group-duplicate-error", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateOptionGroup", "rds:DeleteOptionGroup", "rds:DescribeOptionGroups"], "path": "behavioral/rds/check_option_group_duplicate_error.py", "service": "rds"} {"check_id": "rds.parameter-group-duplicate-error", "deployments": [], "key": "rds/parameter-group-duplicate-error", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_parameter_group_duplicate_error.py", "service": "rds"} {"check_id": "rds.parameter-group-empty-vs-absent-description-preserved", "deployments": [], "key": "rds/parameter-group-empty-vs-absent-description-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameterGroups"], "path": "behavioral/rds/check_parameter_group_empty_vs_absent_description_preserved.py", "service": "rds"} {"check_id": "rds.parameter-numeric-precision-round-trip", "deployments": [], "key": "rds/parameter-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBParameters", "rds:ModifyDBParameterGroup"], "path": "behavioral/rds/check_parameter_numeric_precision_round_trip.py", "service": "rds"} {"check_id": "rds.performance-insights-retention-value-enforced", "deployments": [], "key": "rds/performance-insights-retention-value-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds/check_performance_insights_retention_value_enforced.py", "service": "rds"} {"check_id": "rds.promote-non-replica-instance-rejected", "deployments": [], "key": "rds/promote-non-replica-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:PromoteReadReplica"], "path": "behavioral/rds/check_promote_non_replica_instance_rejected.py", "service": "rds"} {"check_id": "rds.promote-read-replica-non-replica-rejected", "deployments": [], "key": "rds/promote-read-replica-non-replica-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:PromoteReadReplica"], "path": "behavioral/rds/check_promote_read_replica_non_replica_rejected.py", "service": "rds"} {"check_id": "rds.proxy-auth-secret-arn-preserved-across-modify", "deployments": [], "key": "rds/proxy-auth-secret-arn-preserved-across-modify", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:ModifyDBProxy", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_proxy_auth_secret_arn_preserved_across_modify.py", "service": "rds"} {"check_id": "rds.proxy-endpoint-lifecycle", "deployments": [], "key": "rds/proxy-endpoint-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:CreateDBProxyEndpoint", "rds:DeleteDBProxy", "rds:DeleteDBProxyEndpoint", "rds:DescribeDBProxies", "rds:DescribeDBProxyEndpoints", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_proxy_endpoint_lifecycle.py", "service": "rds"} {"check_id": "rds.proxy-tls-requirement-server-side-enforced", "deployments": [], "key": "rds/proxy-tls-requirement-server-side-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBProxy", "rds:DeleteDBProxy", "rds:DescribeDBProxies", "rds:ModifyDBProxy", "rds:ModifyDBProxyTargetGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds/check_proxy_tls_requirement_server_side_enforced.py", "service": "rds"} {"check_id": "rds.rds-max-allocated-storage-echoes-and-refuses-a-threshold-under-ten-percent-above", "deployments": [], "key": "rds/rds-max-allocated-storage-echoes-and-refuses-a-threshold-under-ten-percent-above", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_rds_max_allocated_storage_echoes_and_refuses_a_threshold_under_ten_percent_above.py", "service": "rds"} {"check_id": "rds.rds-subnet-group-with-instance", "deployments": [], "key": "rds/rds-subnet-group-with-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_rds_subnet_group_with_instance.py", "service": "rds"} {"check_id": "rds.read-replica-cluster-promote", "deployments": [], "key": "rds/read-replica-cluster-promote", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:PromoteReadReplicaDBCluster"], "path": "behavioral/rds/check_read_replica_cluster_promote.py", "service": "rds"} {"check_id": "rds.read-replica-promote", "deployments": [], "key": "rds/read-replica-promote", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBInstanceReadReplica", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:PromoteReadReplica"], "path": "behavioral/rds/check_read_replica_promote.py", "service": "rds"} {"check_id": "rds.read-replica-promote-and-switchover", "deployments": [], "key": "rds/read-replica-promote-and-switchover", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBInstanceReadReplica", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups", "rds:PromoteReadReplica", "rds:SwitchoverReadReplica"], "path": "behavioral/rds/check_read_replica_promote_and_switchover.py", "service": "rds"} {"check_id": "rds.read-replica-promote-lifecycle", "deployments": [], "key": "rds/read-replica-promote-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBInstanceReadReplica", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:ModifyDBInstance", "rds:PromoteReadReplica", "rds:SwitchoverReadReplica"], "path": "behavioral/rds/check_read_replica_promote_lifecycle.py", "service": "rds"} {"check_id": "rds.read-replica-requires-source-backups", "deployments": [], "key": "rds/read-replica-requires-source-backups", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBInstanceReadReplica", "rds:DeleteDBInstance", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_read_replica_requires_source_backups.py", "service": "rds"} {"check_id": "rds.reboot-force-failover-requires-multi-az-rejected", "deployments": [], "key": "rds/reboot-force-failover-requires-multi-az-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RebootDBInstance"], "path": "behavioral/rds/check_reboot_force_failover_requires_multi_az_rejected.py", "service": "rds"} {"check_id": "rds.reboot-instance-before-available-rejected", "deployments": [], "key": "rds/reboot-instance-before-available-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RebootDBInstance"], "path": "behavioral/rds/check_reboot_instance_before_available_rejected.py", "service": "rds"} {"check_id": "rds.remove-tags", "deployments": [], "key": "rds/remove-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddTagsToResource", "rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups", "rds:ListTagsForResource", "rds:RemoveTagsFromResource"], "path": "behavioral/rds/check_remove_tags.py", "service": "rds"} {"check_id": "rds.reset-parameter-group", "deployments": [], "key": "rds/reset-parameter-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameters", "rds:ModifyDBParameterGroup", "rds:ResetDBParameterGroup"], "path": "behavioral/rds/check_reset_parameter_group.py", "service": "rds"} {"check_id": "rds.restore-instance-mismatched-engine-version-rejected", "deployments": [], "key": "rds/restore-instance-mismatched-engine-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:RestoreDBInstanceFromDBSnapshot"], "path": "behavioral/rds/check_restore_instance_mismatched_engine_version_rejected.py", "service": "rds"} {"check_id": "rds.security-group-ingress-lifecycle", "deployments": [], "key": "rds/security-group-ingress-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AuthorizeDBSecurityGroupIngress", "rds:CreateDBSecurityGroup", "rds:DeleteDBSecurityGroup", "rds:DescribeDBSecurityGroups"], "path": "behavioral/rds/check_security_group_ingress_lifecycle.py", "service": "rds"} {"check_id": "rds.security-group-lifecycle", "deployments": [], "key": "rds/security-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBSecurityGroup", "rds:DeleteDBSecurityGroup", "rds:DescribeDBSecurityGroups"], "path": "behavioral/rds/check_security_group_lifecycle.py", "service": "rds"} {"check_id": "rds.security-group-not-supported-in-vpc-blocked", "deployments": [], "key": "rds/security-group-not-supported-in-vpc-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBParameterGroup", "rds:CreateDBSecurityGroup", "rds:CreateDBSubnetGroup", "rds:DeleteDBParameterGroup", "rds:DeleteDBSecurityGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBParameterGroups", "rds:DescribeDBSecurityGroups"], "path": "behavioral/rds/check_security_group_not_supported_in_vpc_blocked.py", "service": "rds"} {"check_id": "rds.serverless-v2-capacity-auto-adjusts-within-bounds", "deployments": [], "key": "rds/serverless-v2-capacity-auto-adjusts-within-bounds", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_serverless_v2_capacity_auto_adjusts_within_bounds.py", "service": "rds"} {"check_id": "rds.serverless-v2-capacity-modify-current-capacity-rejected", "deployments": [], "key": "rds/serverless-v2-capacity-modify-current-capacity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:ModifyCurrentDBClusterCapacity", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_serverless_v2_capacity_modify_current_capacity_rejected.py", "service": "rds"} {"check_id": "rds.serverless-v2-scaling-bounds-echoed-and-inverted-range-refused", "deployments": [], "key": "rds/serverless-v2-scaling-bounds-echoed-and-inverted-range-refused", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:ModifyDBCluster"], "path": "behavioral/rds/check_serverless_v2_scaling_bounds_echoed_and_inverted_range_refused.py", "service": "rds"} {"check_id": "rds.snapshot-create-time-timestamp-precision-preserved", "deployments": [], "key": "rds/snapshot-create-time-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_snapshot_create_time_timestamp_precision_preserved.py", "service": "rds"} {"check_id": "rds.snapshot-creation-timestamp-preserved-through-copy", "deployments": [], "key": "rds/snapshot-creation-timestamp-preserved-through-copy", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CopyDBSnapshot", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_snapshot_creation_timestamp_preserved_through_copy.py", "service": "rds"} {"check_id": "rds.snapshot-timestamp-precision-round-trip", "deployments": [], "key": "rds/snapshot-timestamp-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots"], "path": "behavioral/rds/check_snapshot_timestamp_precision_round_trip.py", "service": "rds"} {"check_id": "rds.stop-db-instance-double-stop-and-modify-while-stopped-rejected", "deployments": [], "key": "rds/stop-db-instance-double-stop-and-modify-while-stopped-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance", "rds:StartDBInstance", "rds:StopDBInstance"], "path": "behavioral/rds/check_stop_db_instance_double_stop_and_modify_while_stopped_rejected.py", "service": "rds"} {"check_id": "rds.storage-autoscaling-triggers-on-usage-threshold", "deployments": [], "key": "rds/storage-autoscaling-triggers-on-usage-threshold", "labels": ["axis:happy-path", "dp:native", "plane:data", "timing:real-time"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ModifyDBInstance"], "path": "behavioral/rds/check_storage_autoscaling_triggers_on_usage_threshold.py", "service": "rds"} {"check_id": "rds.subnet-group-insufficient-azs", "deployments": [], "key": "rds/subnet-group-insufficient-azs", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_subnet_group_insufficient_azs.py", "service": "rds"} {"check_id": "rds.subnet-group-vpc-and-arn-round-trip", "deployments": [], "key": "rds/subnet-group-vpc-and-arn-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds/check_subnet_group_vpc_and_arn_round_trip.py", "service": "rds"} {"check_id": "rds.tag-key-reserved-aws-prefix-rejected", "deployments": [], "key": "rds/tag-key-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rds:AddTagsToResource", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:ListTagsForResource"], "path": "behavioral/rds/check_tag_key_reserved_aws_prefix_rejected.py", "service": "rds"} {"check_id": "rds.tag-unicode-value-round-trip", "deployments": [], "key": "rds/tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddTagsToResource", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:ListTagsForResource"], "path": "behavioral/rds/check_tag_unicode_value_round_trip.py", "service": "rds"} {"check_id": "rds.tags-on-option-group", "deployments": [], "key": "rds/tags-on-option-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddTagsToResource", "rds:CreateOptionGroup", "rds:DeleteOptionGroup", "rds:DescribeOptionGroups", "rds:ListTagsForResource"], "path": "behavioral/rds/check_tags_on_option_group.py", "service": "rds"} {"check_id": "rds.tags-overwrite", "deployments": [], "key": "rds/tags-overwrite", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:AddTagsToResource", "rds:CreateDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:DescribeDBParameterGroups", "rds:ListTagsForResource"], "path": "behavioral/rds/check_tags_overwrite.py", "service": "rds"} {"check_id": "rds.tenant-database-lifecycle", "deployments": [], "key": "rds/tenant-database-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:CreateTenantDatabase", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DeleteTenantDatabase", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeTenantDatabases", "rds:ModifyTenantDatabase"], "path": "behavioral/rds/check_tenant_database_lifecycle.py", "service": "rds"} {"check_id": "rds.valid-db-instance-modifications-bound-what-modify-accepts", "deployments": [], "key": "rds/valid-db-instance-modifications-bound-what-modify-accepts", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "rds:DescribeValidDBInstanceModifications", "rds:ModifyDBInstance", "sts:GetCallerIdentity"], "path": "behavioral/rds/check_valid_db_instance_modifications_bound_what_modify_accepts.py", "service": "rds"} {"check_id": "rds__rds-data.date-type-hint-rejects-unparseable-date-format", "deployments": [], "key": "rds__rds-data/date-type-hint-rejects-unparseable-date-format", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds__rds-data/check_date_type_hint_rejects_unparseable_date_format.py", "service": "rds__rds-data"} {"check_id": "rds__rds-data.ddl-inside-a-data-api-transaction-implicitly-commits-past-a-rollback", "deployments": [], "key": "rds__rds-data/ddl-inside-a-data-api-transaction-implicitly-commits-past-a-rollback", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:BeginTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds__rds-data/check_ddl_inside_a_data_api_transaction_implicitly_commits_past_a_rollback.py", "service": "rds__rds-data"} {"check_id": "rds__rds-data.execute-statement-round-trip-against-a-provisioned-writer-instance", "deployments": [], "key": "rds__rds-data/execute-statement-round-trip-against-a-provisioned-writer-instance", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions"], "path": "behavioral/rds__rds-data/check_execute_statement_round_trip_against_a_provisioned_writer_instance.py", "service": "rds__rds-data"} {"check_id": "rds__rds-data.self-join-duplicate-column-names-refused-under-json-but-aliasing-one-side-succeeds", "deployments": [], "key": "rds__rds-data/self-join-duplicate-column-names-refused-under-json-but-aliasing-one-side-succeeds", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances"], "path": "behavioral/rds__rds-data/check_self_join_duplicate_column_names_refused_under_json_but_aliasing_one_side_succeeds.py", "service": "rds__rds-data"} {"check_id": "rds__rds-data__secretsmanager.execute-statement-with-another-clusters-transaction-id-rejected", "deployments": [], "key": "rds__rds-data__secretsmanager/execute-statement-with-another-clusters-transaction-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction", "rds:CreateDBCluster", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups"], "path": "behavioral/rds__rds-data__secretsmanager/check_execute_statement_with_another_clusters_transaction_id_rejected.py", "service": "rds__rds-data__secretsmanager"} {"check_id": "rds__s3.aurora-restore-from-s3-missing-manifest-rejected", "deployments": [], "key": "rds__s3/aurora-restore-from-s3-missing-manifest-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RestoreDBInstanceFromS3", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_aurora_restore_from_s3_missing_manifest_rejected.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-cluster-inline-s3-import-role-negative", "deployments": [], "key": "rds__s3/cfn-deploy-rds-cluster-inline-s3-import-role-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:DescribeDBClusters"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_cluster_inline_s3_import_role_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-cluster-missing-iam-trust-negative", "deployments": [], "key": "rds__s3/cfn-deploy-rds-cluster-missing-iam-trust-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:AddRoleToDBCluster", "rds:DescribeDBClusters", "rds:RemoveRoleFromDBCluster"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_cluster_missing_iam_trust_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-cluster-s3-export-role-positive", "deployments": [], "key": "rds__s3/cfn-deploy-rds-cluster-s3-export-role-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:AddRoleToDBCluster", "rds:CreateDBClusterSnapshot", "rds:DeleteDBClusterSnapshot", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_cluster_s3_export_role_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-instance-nonexistent-role-arn-negative", "deployments": [], "key": "rds__s3/cfn-deploy-rds-instance-nonexistent-role-arn-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_instance_nonexistent_role_arn_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-instance-with-s3-import-role-positive", "deployments": [], "key": "rds__s3/cfn-deploy-rds-instance-with-s3-import-role-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeDBInstances"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_instance_with_s3_import_role_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-missing-s3-export-role-negative", "deployments": [], "key": "rds__s3/cfn-deploy-rds-missing-s3-export-role-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:DeleteDBSnapshot", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_missing_s3_export_role_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-role-trust-wrong-principal-negative", "deployments": [], "key": "rds__s3/cfn-deploy-rds-role-trust-wrong-principal-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:DescribeDBInstances"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_role_trust_wrong_principal_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-s3-export-bucket-missing-negative", "deployments": [], "key": "rds__s3/cfn-deploy-rds-s3-export-bucket-missing-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CancelExportTask", "rds:CreateDBSnapshot", "rds:DeleteDBSnapshot", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_s3_export_bucket_missing_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-s3-export-role-stack-positive", "deployments": [], "key": "rds__s3/cfn-deploy-rds-s3-export-role-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:DeleteDBSnapshot", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_s3_export_role_stack_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-s3-role-missing-trust-policy-negative", "deployments": [], "key": "rds__s3/cfn-deploy-rds-s3-role-missing-trust-policy-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:DescribeDBInstances"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_s3_role_missing_trust_policy_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-deploy-rds-s3-role-policy-wrong-bucket-arn-negative", "deployments": [], "key": "rds__s3/cfn-deploy-rds-s3-role-policy-wrong-bucket-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:CreateDBClusterSnapshot", "rds:DeleteDBClusterSnapshot", "rds:DescribeDBClusterSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cfn_deploy_rds_s3_role_policy_wrong_bucket_arn_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-rds-associated-roles-field-populated-positive", "deployments": [], "key": "rds__s3/cfn-rds-associated-roles-field-populated-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds__s3/check_cfn_rds_associated_roles_field_populated_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-rds-cluster-parameter-group-s3-role-arn-positive", "deployments": [], "key": "rds__s3/cfn-rds-cluster-parameter-group-s3-role-arn-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeDBClusterParameters"], "path": "behavioral/rds__s3/check_cfn_rds_cluster_parameter_group_s3_role_arn_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-rds-iam-role-trust-policy-export-rds-positive", "deployments": [], "key": "rds__s3/cfn-rds-iam-role-trust-policy-export-rds-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iam:GetRolePolicy"], "path": "behavioral/rds__s3/check_cfn_rds_iam_role_trust_policy_export_rds_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-rds-instance-iam-role-association-arn-resolution", "deployments": [], "key": "rds__s3/cfn-rds-instance-iam-role-association-arn-resolution", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:DescribeDBInstances"], "path": "behavioral/rds__s3/check_cfn_rds_instance_iam_role_association_arn_resolution.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-stack-update-rds-add-s3-role-positive", "deployments": [], "key": "rds__s3/cfn-stack-update-rds-add-s3-role-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:CreateDBSnapshot", "rds:DeleteDBSnapshot", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cfn_stack_update_rds_add_s3_role_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-stack-update-rds-cluster-add-s3-role-positive", "deployments": [], "key": "rds__s3/cfn-stack-update-rds-cluster-add-s3-role-positive", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions"], "path": "behavioral/rds__s3/check_cfn_stack_update_rds_cluster_add_s3_role_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cfn-update-stack-add-s3-export-role-positive", "deployments": [], "key": "rds__s3/cfn-update-stack-add-s3-export-role-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds__s3/check_cfn_update_stack_add_s3_export_role_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-add-role-to-cluster-then-verify-sdk", "deployments": [], "key": "rds__s3/cli-rds-add-role-to-cluster-then-verify-sdk", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/rds__s3/check_cli_rds_add_role_to_cluster_then_verify_sdk.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-associate-role-s3-import-workflow", "deployments": [], "key": "rds__s3/cli-rds-associate-role-s3-import-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cli_rds_associate_role_s3_import_workflow.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-create-export-task-verify-s3-sdk", "deployments": [], "key": "rds__s3/cli-rds-create-export-task-verify-s3-sdk", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cli_rds_create_export_task_verify_s3_sdk.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-create-snapshot-export-to-s3-workflow", "deployments": [], "key": "rds__s3/cli-rds-create-snapshot-export-to-s3-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cli_rds_create_snapshot_export_to_s3_workflow.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-describe-export-tasks-source-arn-resolution", "deployments": [], "key": "rds__s3/cli-rds-describe-export-tasks-source-arn-resolution", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cli_rds_describe_export_tasks_source_arn_resolution.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-describe-export-tasks-status-poll", "deployments": [], "key": "rds__s3/cli-rds-describe-export-tasks-status-poll", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_cli_rds_describe_export_tasks_status_poll.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-describe-export-tasks-status-progression", "deployments": [], "key": "rds__s3/cli-rds-describe-export-tasks-status-progression", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_cli_rds_describe_export_tasks_status_progression.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-export-invalid-bucket-name-negative", "deployments": [], "key": "rds__s3/cli-rds-export-invalid-bucket-name-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_cli_rds_export_invalid_bucket_name_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-export-missing-permission-negative", "deployments": [], "key": "rds__s3/cli-rds-export-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_cli_rds_export_missing_permission_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-export-task-missing-role-arn-negative", "deployments": [], "key": "rds__s3/cli-rds-export-task-missing-role-arn-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_cli_rds_export_task_missing_role_arn_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-export-task-missing-role-negative", "deployments": [], "key": "rds__s3/cli-rds-export-task-missing-role-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_cli_rds_export_task_missing_role_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-export-task-missing-s3-bucket-policy-negative", "deployments": [], "key": "rds__s3/cli-rds-export-task-missing-s3-bucket-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_cli_rds_export_task_missing_s3_bucket_policy_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-export-task-s3-object-listing-verify", "deployments": [], "key": "rds__s3/cli-rds-export-task-s3-object-listing-verify", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds__s3/check_cli_rds_export_task_s3_object_listing_verify.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-list-export-tasks-shows-s3-target", "deployments": [], "key": "rds__s3/cli-rds-list-export-tasks-shows-s3-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_cli_rds_list_export_tasks_shows_s3_target.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-s3-bucket-policy-blocks-export-negative", "deployments": [], "key": "rds__s3/cli-rds-s3-bucket-policy-blocks-export-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/rds__s3/check_cli_rds_s3_bucket_policy_blocks_export_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-s3-import-role-attach-workflow", "deployments": [], "key": "rds__s3/cli-rds-s3-import-role-attach-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/rds__s3/check_cli_rds_s3_import_role_attach_workflow.py", "service": "rds__s3"} {"check_id": "rds__s3.cli-rds-start-export-task-workflow", "deployments": [], "key": "rds__s3/cli-rds-start-export-task-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_cli_rds_start_export_task_workflow.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-cfn-outputs-rds-endpoint-s3-bucket-arn-resolution", "deployments": [], "key": "rds__s3/deploy-cfn-outputs-rds-endpoint-s3-bucket-arn-resolution", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "s3:HeadBucket"], "path": "behavioral/rds__s3/check_deploy_cfn_outputs_rds_endpoint_s3_bucket_arn_resolution.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-cfn-rds-export-task-custom-resource-positive", "deployments": [], "key": "rds__s3/deploy-cfn-rds-export-task-custom-resource-positive", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_cfn_rds_export_task_custom_resource_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-cfn-rds-instance-with-s3-import-role-positive", "deployments": [], "key": "rds__s3/deploy-cfn-rds-instance-with-s3-import-role-positive", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeVpcs", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/rds__s3/check_deploy_cfn_rds_instance_with_s3_import_role_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-cfn-rds-s3-bucket-policy-restricts-export-negative", "deployments": [], "key": "rds__s3/deploy-cfn-rds-s3-bucket-policy-restricts-export-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_cfn_rds_s3_bucket_policy_restricts_export_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-cfn-rds-s3-export-role-missing-trust-negative", "deployments": [], "key": "rds__s3/deploy-cfn-rds-s3-export-role-missing-trust-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_cfn_rds_s3_export_role_missing_trust_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-cfn-rds-s3-export-role-stack-positive", "deployments": [], "key": "rds__s3/deploy-cfn-rds-s3-export-role-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_cfn_rds_s3_export_role_stack_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-cfn-rds-s3-role-wrong-service-principal-negative", "deployments": [], "key": "rds__s3/deploy-cfn-rds-s3-role-wrong-service-principal-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_cfn_rds_s3_role_wrong_service_principal_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-aurora-s3-import-extension-positive", "deployments": [], "key": "rds__s3/deploy-rds-aurora-s3-import-extension-positive", "labels": ["axis:happy-path", "dp:api", "dp:native", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/rds__s3/check_deploy_rds_aurora_s3_import_extension_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-cluster-s3-export-cross-resource-reference-positive", "deployments": [], "key": "rds__s3/deploy-rds-cluster-s3-export-cross-resource-reference-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:GetRolePolicy", "rds:CancelExportTask", "rds:CreateDBClusterSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_rds_cluster_s3_export_cross_resource_reference_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-export-task-role-stack-positive", "deployments": [], "key": "rds__s3/deploy-rds-export-task-role-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetRole", "kms:DescribeKey", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_rds_export_task_role_stack_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-instance-s3-import-role-association-positive", "deployments": [], "key": "rds__s3/deploy-rds-instance-s3-import-role-association-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds__s3/check_deploy_rds_instance_s3_import_role_association_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-parameter-group-s3-integration-positive", "deployments": [], "key": "rds__s3/deploy-rds-parameter-group-s3-integration-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:GetRolePolicy", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOptionGroups"], "path": "behavioral/rds__s3/check_deploy_rds_parameter_group_s3_integration_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-role-trust-s3-service-mismatch-negative", "deployments": [], "key": "rds__s3/deploy-rds-role-trust-s3-service-mismatch-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "rds:CreateDBSubnetGroup", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances"], "path": "behavioral/rds__s3/check_deploy_rds_role_trust_s3_service_mismatch_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-s3-export-role-stack-positive", "deployments": [], "key": "rds__s3/deploy-rds-s3-export-role-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_rds_s3_export_role_stack_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-s3-export-stack-missing-role-negative", "deployments": [], "key": "rds__s3/deploy-rds-s3-export-stack-missing-role-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_rds_s3_export_stack_missing_role_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-rds-s3-export-wrong-trust-policy-negative", "deployments": [], "key": "rds__s3/deploy-rds-s3-export-wrong-trust-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_rds_s3_export_wrong_trust_policy_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.deploy-s3-bucket-policy-grants-rds-export-negative", "deployments": [], "key": "rds__s3/deploy-s3-bucket-policy-grants-rds-export-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "iam:GetRole", "kms:DescribeKey", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_deploy_s3_bucket_policy_grants_rds_export_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.iam-role-trust-policy-rds-s3-positive", "deployments": [], "key": "rds__s3/iam-role-trust-policy-rds-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_iam_role_trust_policy_rds_s3_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.iam-role-trust-s3-service-for-rds-integration-positive", "deployments": [], "key": "rds__s3/iam-role-trust-s3-service-for-rds-integration-positive", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/rds__s3/check_iam_role_trust_s3_service_for_rds_integration_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-add-role-s3-export-feature-positive", "deployments": [], "key": "rds__s3/rds-add-role-s3-export-feature-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/rds__s3/check_rds_add_role_s3_export_feature_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-add-role-s3-import-feature-positive", "deployments": [], "key": "rds__s3/rds-add-role-s3-import-feature-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/rds__s3/check_rds_add_role_s3_import_feature_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-associate-iam-role-for-s3-export-positive", "deployments": [], "key": "rds__s3/rds-associate-iam-role-for-s3-export-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_associate_iam_role_for_s3_export_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-associate-iam-role-for-s3-import-positive", "deployments": [], "key": "rds__s3/rds-associate-iam-role-for-s3-import-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_associate_iam_role_for_s3_import_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-associate-role-missing-trust-policy-negative", "deployments": [], "key": "rds__s3/rds-associate-role-missing-trust-policy-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:UpdateAssumeRolePolicy", "rds:AddRoleToDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:RemoveRoleFromDBCluster"], "path": "behavioral/rds__s3/check_rds_associate_role_missing_trust_policy_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-associate-role-wrong-feature-name-negative", "deployments": [], "key": "rds__s3/rds-associate-role-wrong-feature-name-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBCluster", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_associate_role_wrong_feature_name_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-describe-export-tasks-resolves-s3-destination", "deployments": [], "key": "rds__s3/rds-describe-export-tasks-resolves-s3-destination", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_describe_export_tasks_resolves_s3_destination.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-manifest-file-format-positive", "deployments": [], "key": "rds__s3/rds-export-manifest-file-format-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_export_manifest_file_format_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-manifest-format-preserved", "deployments": [], "key": "rds__s3/rds-export-manifest-format-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_rds_export_manifest_format_preserved.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-manifest-json-format-preserved", "deployments": [], "key": "rds__s3/rds-export-manifest-json-format-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds__s3/check_rds_export_manifest_json_format_preserved.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-snapshot-s3-key-prefix-positive", "deployments": [], "key": "rds__s3/rds-export-snapshot-s3-key-prefix-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_export_snapshot_s3_key_prefix_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-snapshot-to-s3-positive", "deployments": [], "key": "rds__s3/rds-export-snapshot-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_export_snapshot_to_s3_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-arn-resolution", "deployments": [], "key": "rds__s3/rds-export-task-arn-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_rds_export_task_arn_resolution.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-bucket-policy-deny-negative", "deployments": [], "key": "rds__s3/rds-export-task-bucket-policy-deny-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/rds__s3/check_rds_export_task_bucket_policy_deny_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-creates-s3-objects-positive", "deployments": [], "key": "rds__s3/rds-export-task-creates-s3-objects-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds-data:ExecuteStatement", "rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds__s3/check_rds_export_task_creates_s3_objects_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-cross-region-bucket-rejected", "deployments": [], "key": "rds__s3/rds-export-task-cross-region-bucket-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_cross_region_bucket_rejected.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-kms-key-missing-permission-negative", "deployments": [], "key": "rds__s3/rds-export-task-kms-key-missing-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_kms_key_missing_permission_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-missing-iam-role-negative", "deployments": [], "key": "rds__s3/rds-export-task-missing-iam-role-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_missing_iam_role_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-missing-s3-permission-negative", "deployments": [], "key": "rds__s3/rds-export-task-missing-s3-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_export_task_missing_s3_permission_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-nonexistent-bucket-negative", "deployments": [], "key": "rds__s3/rds-export-task-nonexistent-bucket-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_nonexistent_bucket_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-nonexistent-bucket-rejected", "deployments": [], "key": "rds__s3/rds-export-task-nonexistent-bucket-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_nonexistent_bucket_rejected.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-object-key-collision-negative", "deployments": [], "key": "rds__s3/rds-export-task-object-key-collision-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_object_key_collision_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-role-trust-missing-negative", "deployments": [], "key": "rds__s3/rds-export-task-role-trust-missing-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_role_trust_missing_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-role-trust-wrong-service-principal-negative", "deployments": [], "key": "rds__s3/rds-export-task-role-trust-wrong-service-principal-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_export_task_role_trust_wrong_service_principal_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-role-trusts-export-service-positive", "deployments": [], "key": "rds__s3/rds-export-task-role-trusts-export-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_role_trusts_export_service_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-role-wrong-trust-principal-rejected", "deployments": [], "key": "rds__s3/rds-export-task-role-wrong-trust-principal-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_role_wrong_trust_principal_rejected.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-s3-bucket-policy-denies-negative", "deployments": [], "key": "rds__s3/rds-export-task-s3-bucket-policy-denies-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_rds_export_task_s3_bucket_policy_denies_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-s3-bucket-policy-denies-write-negative", "deployments": [], "key": "rds__s3/rds-export-task-s3-bucket-policy-denies-write-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_export_task_s3_bucket_policy_denies_write_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-s3-bucket-policy-deny-negative", "deployments": [], "key": "rds__s3/rds-export-task-s3-bucket-policy-deny-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/rds__s3/check_rds_export_task_s3_bucket_policy_deny_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-status-transitions-visible-via-describe", "deployments": [], "key": "rds__s3/rds-export-task-status-transitions-visible-via-describe", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_status_transitions_visible_via_describe.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-wrong-bucket-name-negative", "deployments": [], "key": "rds__s3/rds-export-task-wrong-bucket-name-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_wrong_bucket_name_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-export-task-wrong-bucket-negative", "deployments": [], "key": "rds__s3/rds-export-task-wrong-bucket-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_export_task_wrong_bucket_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-iam-role-trust-s3-service-positive", "deployments": [], "key": "rds__s3/rds-iam-role-trust-s3-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_iam_role_trust_s3_service_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-iam-role-trust-wrong-principal-negative", "deployments": [], "key": "rds__s3/rds-iam-role-trust-wrong-principal-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_iam_role_trust_wrong_principal_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-instance-multiple-roles-different-features-positive", "deployments": [], "key": "rds__s3/rds-instance-multiple-roles-different-features-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_instance_multiple_roles_different_features_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-postgres-aws-s3-extension-missing-permission-negative", "deployments": [], "key": "rds__s3/rds-postgres-aws-s3-extension-missing-permission-negative", "labels": ["axis:rejection", "dp:native", "plane:data"], "operations": ["ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/rds__s3/check_rds_postgres_aws_s3_extension_missing_permission_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-remove-iam-role-association-stops-s3-access-negative", "deployments": [], "key": "rds__s3/rds-remove-iam-role-association-stops-s3-access-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_remove_iam_role_association_stops_s3_access_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-remove-role-unassociated-feature-name-not-found", "deployments": [], "key": "rds__s3/rds-remove-role-unassociated-feature-name-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/rds__s3/check_rds_remove_role_unassociated_feature_name_not_found.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-restore-db-cluster-from-s3-engine-mismatch-negative", "deployments": [], "key": "rds__s3/rds-restore-db-cluster-from-s3-engine-mismatch-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:RestoreDBClusterFromS3", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/rds__s3/check_rds_restore_db_cluster_from_s3_engine_mismatch_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-restore-db-cluster-from-s3-missing-bucket-negative", "deployments": [], "key": "rds__s3/rds-restore-db-cluster-from-s3-missing-bucket-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "rds:CreateDBCluster", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:RestoreDBClusterFromS3"], "path": "behavioral/rds__s3/check_rds_restore_db_cluster_from_s3_missing_bucket_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-restore-db-cluster-from-s3-role-missing-listbucket-negative", "deployments": [], "key": "rds__s3/rds-restore-db-cluster-from-s3-role-missing-listbucket-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusters", "rds:RestoreDBClusterFromS3", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/rds__s3/check_rds_restore_db_cluster_from_s3_role_missing_listbucket_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-s3-export-kms-key-mismatch-negative", "deployments": [], "key": "rds__s3/rds-s3-export-kms-key-mismatch-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_s3_export_kms_key_mismatch_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-s3-export-manifest-content-positive", "deployments": [], "key": "rds__s3/rds-s3-export-manifest-content-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_s3_export_manifest_content_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-s3-export-task-status-transitions", "deployments": [], "key": "rds__s3/rds-s3-export-task-status-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_s3_export_task_status_transitions.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-s3-import-role-association-positive", "deployments": [], "key": "rds__s3/rds-s3-import-role-association-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_s3_import_role_association_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-s3-import-role-missing-trust-negative", "deployments": [], "key": "rds__s3/rds-s3-import-role-missing-trust-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rds:AddRoleToDBInstance", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:RemoveRoleFromDBInstance", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_s3_import_role_missing_trust_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-missing-iam-role-negative", "deployments": [], "key": "rds__s3/rds-snapshot-export-missing-iam-role-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_rds_snapshot_export_missing_iam_role_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-missing-s3-permission-negative", "deployments": [], "key": "rds__s3/rds-snapshot-export-missing-s3-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_snapshot_export_missing_s3_permission_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-nonexistent-bucket-negative", "deployments": [], "key": "rds__s3/rds-snapshot-export-nonexistent-bucket-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_snapshot_export_nonexistent_bucket_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-role-missing-export-trust-negative", "deployments": [], "key": "rds__s3/rds-snapshot-export-role-missing-export-trust-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_snapshot_export_role_missing_export_trust_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-task-creates-s3-objects", "deployments": [], "key": "rds__s3/rds-snapshot-export-task-creates-s3-objects", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_snapshot_export_task_creates_s3_objects.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-task-manifest-file-in-s3", "deployments": [], "key": "rds__s3/rds-snapshot-export-task-manifest-file-in-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds-data:ExecuteStatement", "rds:CancelExportTask", "rds:CreateDBCluster", "rds:CreateDBClusterSnapshot", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBCluster", "rds:DeleteDBClusterSnapshot", "rds:DeleteDBInstance", "rds:DeleteDBSubnetGroup", "rds:DescribeDBClusterSnapshots", "rds:DescribeDBClusters", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/rds__s3/check_rds_snapshot_export_task_manifest_file_in_s3.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-task-missing-s3-put-permission-negative", "deployments": [], "key": "rds__s3/rds-snapshot-export-task-missing-s3-put-permission-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_snapshot_export_task_missing_s3_put_permission_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-task-respects-s3-prefix", "deployments": [], "key": "rds__s3/rds-snapshot-export-task-respects-s3-prefix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_snapshot_export_task_respects_s3_prefix.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-task-status-completes-positive", "deployments": [], "key": "rds__s3/rds-snapshot-export-task-status-completes-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_snapshot_export_task_status_completes_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-task-writes-to-s3-positive", "deployments": [], "key": "rds__s3/rds-snapshot-export-task-writes-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2"], "path": "behavioral/rds__s3/check_rds_snapshot_export_task_writes_to_s3_positive.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-task-wrong-bucket-arn-negative", "deployments": [], "key": "rds__s3/rds-snapshot-export-task-wrong-bucket-arn-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CancelExportTask", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/rds__s3/check_rds_snapshot_export_task_wrong_bucket_arn_negative.py", "service": "rds__s3"} {"check_id": "rds__s3.rds-snapshot-export-to-s3-positive", "deployments": [], "key": "rds__s3/rds-snapshot-export-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "rds:CreateDBInstance", "rds:CreateDBSnapshot", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance", "rds:DeleteDBSnapshot", "rds:DeleteDBSubnetGroup", "rds:DescribeDBInstances", "rds:DescribeDBSnapshots", "rds:DescribeExportTasks", "rds:StartExportTask", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/rds__s3/check_rds_snapshot_export_to_s3_positive.py", "service": "rds__s3"} {"check_id": "redshift-data.absent-database-fails-async-while-absent-workgroup-is-rejected", "deployments": [], "key": "redshift-data/absent-database-fails-async-while-absent-workgroup-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:ListDatabases", "redshift-data:ListStatements", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_absent_database_fails_async_while_absent_workgroup_is_rejected.py", "service": "redshift-data"} {"check_id": "redshift-data.batch-execute-statement-substatements", "deployments": [], "key": "redshift-data/batch-execute-statement-substatements", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_batch_execute_statement_substatements.py", "service": "redshift-data"} {"check_id": "redshift-data.batch-execute-statement-transaction-rollback-on-failure", "deployments": [], "key": "redshift-data/batch-execute-statement-transaction-rollback-on-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_batch_execute_statement_transaction_rollback_on_failure.py", "service": "redshift-data"} {"check_id": "redshift-data.cancel-running-statement-aborts-and-terminal-cancel-rejected", "deployments": [], "key": "redshift-data/cancel-running-statement-aborts-and-terminal-cancel-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_cancel_running_statement_aborts_and_terminal_cancel_rejected.py", "service": "redshift-data"} {"check_id": "redshift-data.cancel-statement-running-then-finished-rejected", "deployments": [], "key": "redshift-data/cancel-statement-running-then-finished-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_cancel_statement_running_then_finished_rejected.py", "service": "redshift-data"} {"check_id": "redshift-data.catalogue-reflects-created-table-and-absent-table-over-permissive", "deployments": [], "key": "redshift-data/catalogue-reflects-created-table-and-absent-table-over-permissive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:DescribeTable", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:ListDatabases", "redshift-data:ListSchemas", "redshift-data:ListTables", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_catalogue_reflects_created_table_and_absent_table_over_permissive.py", "service": "redshift-data"} {"check_id": "redshift-data.client-token-reuse-silently-ignores-the-new-sql-over-permissive", "deployments": [], "key": "redshift-data/client-token-reuse-silently-ignores-the-new-sql-over-permissive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_client_token_reuse_silently_ignores_the_new_sql_over_permissive.py", "service": "redshift-data"} {"check_id": "redshift-data.concurrent-inserts-no-lost-writes", "deployments": [], "key": "redshift-data/concurrent-inserts-no-lost-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_concurrent_inserts_no_lost_writes.py", "service": "redshift-data"} {"check_id": "redshift-data.describe-statement-invalid-id-and-wait-time-rejected", "deployments": [], "key": "redshift-data/describe-statement-invalid-id-and-wait-time-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_describe_statement_invalid_id_and_wait_time_rejected.py", "service": "redshift-data"} {"check_id": "redshift-data.execute-statement-failed-status-error-populated", "deployments": [], "key": "redshift-data/execute-statement-failed-status-error-populated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_execute_statement_failed_status_error_populated.py", "service": "redshift-data"} {"check_id": "redshift-data.execute-statement-invalid-target-combination-rejected", "deployments": [], "key": "redshift-data/execute-statement-invalid-target-combination-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:ListStatements", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_execute_statement_invalid_target_combination_rejected.py", "service": "redshift-data"} {"check_id": "redshift-data.execute-statement-lifecycle-transitions", "deployments": [], "key": "redshift-data/execute-statement-lifecycle-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_execute_statement_lifecycle_transitions.py", "service": "redshift-data"} {"check_id": "redshift-data.execute-statement-nonexistent-workgroup-not-found", "deployments": [], "key": "redshift-data/execute-statement-nonexistent-workgroup-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:ListStatements", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_execute_statement_nonexistent_workgroup_not_found.py", "service": "redshift-data"} {"check_id": "redshift-data.execute-statement-query-parameters-binding", "deployments": [], "key": "redshift-data/execute-statement-query-parameters-binding", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_execute_statement_query_parameters_binding.py", "service": "redshift-data"} {"check_id": "redshift-data.execute-statement-sql-roundtrip", "deployments": [], "key": "redshift-data/execute-statement-sql-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_execute_statement_sql_roundtrip.py", "service": "redshift-data"} {"check_id": "redshift-data.get-statement-result-no-result-set-rejected", "deployments": [], "key": "redshift-data/get-statement-result-no-result-set-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_get_statement_result_no_result_set_rejected.py", "service": "redshift-data"} {"check_id": "redshift-data.get-statement-result-pagination", "deployments": [], "key": "redshift-data/get-statement-result-pagination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_get_statement_result_pagination.py", "service": "redshift-data"} {"check_id": "redshift-data.get-statement-result-v2-csv-roundtrip", "deployments": [], "key": "redshift-data/get-statement-result-v2-csv-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResultV2", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_get_statement_result_v2_csv_roundtrip.py", "service": "redshift-data"} {"check_id": "redshift-data.json-and-csv-result-readers-are-mutually-exclusive", "deployments": [], "key": "redshift-data/json-and-csv-result-readers-are-mutually-exclusive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:GetStatementResultV2", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_json_and_csv_result_readers_are_mutually_exclusive.py", "service": "redshift-data"} {"check_id": "redshift-data.list-databases-schemas-tables-roundtrip", "deployments": [], "key": "redshift-data/list-databases-schemas-tables-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:DescribeTable", "redshift-data:ExecuteStatement", "redshift-data:ListDatabases", "redshift-data:ListSchemas", "redshift-data:ListTables", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_list_databases_schemas_tables_roundtrip.py", "service": "redshift-data"} {"check_id": "redshift-data.list-sessions-conflicting-filters-rejected", "deployments": [], "key": "redshift-data/list-sessions-conflicting-filters-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:ListSessions", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_list_sessions_conflicting_filters_rejected.py", "service": "redshift-data"} {"check_id": "redshift-data.list-statements-status-filter-lifecycle", "deployments": [], "key": "redshift-data/list-statements-status-filter-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:ListStatements", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_list_statements_status_filter_lifecycle.py", "service": "redshift-data"} {"check_id": "redshift-data.session-persistence-across-statements", "deployments": [], "key": "redshift-data/session-persistence-across-statements", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:ListSessions", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_session_persistence_across_statements.py", "service": "redshift-data"} {"check_id": "redshift-data.sql-named-parameters-bind-and-mismatched-parameters-rejected", "deployments": [], "key": "redshift-data/sql-named-parameters-bind-and-mismatched-parameters-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetWorkgroup"], "path": "behavioral/redshift-data/check_sql_named_parameters_bind_and_mismatched_parameters_rejected.py", "service": "redshift-data"} {"check_id": "redshift-data__redshift-serverless.snapshot-restores-into-new-namespace-with-data", "deployments": [], "key": "redshift-data__redshift-serverless/snapshot-restores-into-new-namespace-with-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateSnapshot", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteSnapshot", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:RestoreFromSnapshot"], "path": "behavioral/redshift-data__redshift-serverless/check_snapshot_restores_into_new_namespace_with_data.py", "service": "redshift-data__redshift-serverless"} {"check_id": "redshift-serverless.namespace-delete-rejected-while-workgroup-attached", "deployments": [], "key": "redshift-serverless/namespace-delete-rejected-while-workgroup-attached", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace"], "path": "behavioral/redshift-serverless/check_namespace_delete_rejected_while_workgroup_attached.py", "service": "redshift-serverless"} {"check_id": "redshift-serverless.namespace-tags-at-create-round-trip-and-missing-arn", "deployments": [], "key": "redshift-serverless/namespace-tags-at-create-round-trip-and-missing-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:DeleteNamespace", "redshift-serverless:GetNamespace", "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource", "redshift-serverless:UntagResource"], "path": "behavioral/redshift-serverless/check_namespace_tags_at_create_round_trip_and_missing_arn.py", "service": "redshift-serverless"} {"check_id": "redshift-serverless.snapshot-of-workgroupless-namespace-rejected", "deployments": [], "key": "redshift-serverless/snapshot-of-workgroupless-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:CreateSnapshot", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteSnapshot", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:ListSnapshots"], "path": "behavioral/redshift-serverless/check_snapshot_of_workgroupless_namespace_rejected.py", "service": "redshift-serverless"} {"check_id": "redshift-serverless.usage-limit-on-absent-workgroup-arn-rejected", "deployments": [], "key": "redshift-serverless/usage-limit-on-absent-workgroup-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:CreateUsageLimit", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteUsageLimit", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:ListUsageLimits"], "path": "behavioral/redshift-serverless/check_usage_limit_on_absent_workgroup_arn_rejected.py", "service": "redshift-serverless"} {"check_id": "redshift-serverless.usage-limit-survives-workgroup-provisioning", "deployments": [], "key": "redshift-serverless/usage-limit-survives-workgroup-provisioning", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:CreateUsageLimit", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteUsageLimit", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetUsageLimit", "redshift-serverless:ListUsageLimits", "redshift-serverless:UpdateUsageLimit"], "path": "behavioral/redshift-serverless/check_usage_limit_survives_workgroup_provisioning.py", "service": "redshift-serverless"} {"check_id": "redshift.aqua-configuration-modify-input-ignored", "deployments": [], "key": "redshift/aqua-configuration-modify-input-ignored", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyAquaConfiguration"], "path": "behavioral/redshift/check_aqua_configuration_modify_input_ignored.py", "service": "redshift"} {"check_id": "redshift.aqua-configuration-modify-transition", "deployments": [], "key": "redshift/aqua-configuration-modify-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:ModifyAquaConfiguration"], "path": "behavioral/redshift/check_aqua_configuration_modify_transition.py", "service": "redshift"} {"check_id": "redshift.authentication-profile-invalid-content-fails", "deployments": [], "key": "redshift/authentication-profile-invalid-content-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateAuthenticationProfile", "redshift:DeleteAuthenticationProfile", "redshift:DescribeAuthenticationProfiles"], "path": "behavioral/redshift/check_authentication_profile_invalid_content_fails.py", "service": "redshift"} {"check_id": "redshift.authentication-profile-lifecycle", "deployments": [], "key": "redshift/authentication-profile-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateAuthenticationProfile", "redshift:DeleteAuthenticationProfile", "redshift:DescribeAuthenticationProfiles", "redshift:ModifyAuthenticationProfile"], "path": "behavioral/redshift/check_authentication_profile_lifecycle.py", "service": "redshift"} {"check_id": "redshift.catalog-describes-and-pagination", "deployments": [], "key": "redshift/catalog-describes-and-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:DescribeAccountAttributes", "redshift:DescribeClusterTracks", "redshift:DescribeClusterVersions", "redshift:DescribeEventCategories", "redshift:DescribeEvents", "redshift:DescribeOrderableClusterOptions", "redshift:ListRecommendations"], "path": "behavioral/redshift/check_catalog_describes_and_pagination.py", "service": "redshift"} {"check_id": "redshift.cluster-already-exists-fault", "deployments": [], "key": "redshift/cluster-already-exists-fault", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_cluster_already_exists_fault.py", "service": "redshift"} {"check_id": "redshift.cluster-concurrent-modify-state-conflict-blocked", "deployments": [], "key": "redshift/cluster-concurrent-modify-state-conflict-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:ModifyCluster", "redshift:ModifyClusterDbRevision"], "path": "behavioral/redshift/check_cluster_concurrent_modify_state_conflict_blocked.py", "service": "redshift"} {"check_id": "redshift.cluster-db-revision-already-latest-blocked", "deployments": [], "key": "redshift/cluster-db-revision-already-latest-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyClusterDbRevision"], "path": "behavioral/redshift/check_cluster_db_revision_already_latest_blocked.py", "service": "redshift"} {"check_id": "redshift.cluster-db-revision-already-latest-fault", "deployments": [], "key": "redshift/cluster-db-revision-already-latest-fault", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:CreateTags", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:DescribeTags", "redshift:ModifyClusterDbRevision", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_cluster_db_revision_already_latest_fault.py", "service": "redshift"} {"check_id": "redshift.cluster-db-revision-modify-transition", "deployments": [], "key": "redshift/cluster-db-revision-modify-transition", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:CreateTags", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeTags", "redshift:ModifyClusterDbRevision", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_cluster_db_revision_modify_transition.py", "service": "redshift"} {"check_id": "redshift.cluster-scoped-ops-not-found-semantics", "deployments": [], "key": "redshift/cluster-scoped-ops-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CancelResize", "redshift:CreateUsageLimit", "redshift:DeleteCluster", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", "redshift:DescribeResize", "redshift:DescribeTableRestoreStatus", "redshift:DisableLogging", "redshift:GetClusterCredentials", "redshift:GetClusterCredentialsWithIAM", "redshift:ModifyCluster", "redshift:ModifyClusterIamRoles", "redshift:ModifyClusterMaintenance", "redshift:ModifyClusterSnapshotSchedule", "redshift:PauseCluster", "redshift:RebootCluster", "redshift:ResizeCluster", "redshift:ResumeCluster", "redshift:RotateEncryptionKey"], "path": "behavioral/redshift/check_cluster_scoped_ops_not_found_semantics.py", "service": "redshift"} {"check_id": "redshift.cluster-scoped-triaged-ops-not-found-semantics", "deployments": [], "key": "redshift/cluster-scoped-triaged-ops-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:FailoverPrimaryCompute", "redshift:GetClusterCredentialsWithIAM", "redshift:GetIdentityCenterAuthToken", "redshift:ModifyClusterDbRevision"], "path": "behavioral/redshift/check_cluster_scoped_triaged_ops_not_found_semantics.py", "service": "redshift"} {"check_id": "redshift.cluster-security-group-ops-semantics", "deployments": [], "key": "redshift/cluster-security-group-ops-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:AuthorizeClusterSecurityGroupIngress", "redshift:CreateClusterSecurityGroup", "redshift:DeleteClusterSecurityGroup", "redshift:DescribeClusterSecurityGroups", "redshift:DescribeClusters", "redshift:RevokeClusterSecurityGroupIngress"], "path": "behavioral/redshift/check_cluster_security_group_ops_semantics.py", "service": "redshift"} {"check_id": "redshift.concurrency-integration-conflict-operation", "deployments": [], "key": "redshift/concurrency-integration-conflict-operation", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:PutResourcePolicy", "dynamodb:UpdateContinuousBackups", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift-serverless:UpdateWorkgroup", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DeleteResourcePolicy", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_concurrency_integration_conflict_operation.py", "service": "redshift"} {"check_id": "redshift.concurrency-qev2-idc-application-race", "deployments": [], "key": "redshift/concurrency-qev2-idc-application-race", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateQev2IdcApplication", "redshift:DeleteQev2IdcApplication", "redshift:DescribeQev2IdcApplications", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_concurrency_qev2_idc_application_race.py", "service": "redshift"} {"check_id": "redshift.concurrent-create-parameter-group-single-winner", "deployments": [], "key": "redshift/concurrent-create-parameter-group-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameterGroups", "redshift:DescribeClusterParameters"], "path": "behavioral/redshift/check_concurrent_create_parameter_group_single_winner.py", "service": "redshift"} {"check_id": "redshift.create-cluster-availability-fields-and-iam-roles-attach-detach-nonexistent-role-accepted", "deployments": [], "key": "redshift/create-cluster-availability-fields-and-iam-roles-attach-detach-nonexistent-role-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyClusterIamRoles"], "path": "behavioral/redshift/check_create_cluster_availability_fields_and_iam_roles_attach_detach_nonexistent_role_accepted.py", "service": "redshift"} {"check_id": "redshift.create-cluster-available-fields", "deployments": [], "key": "redshift/create-cluster-available-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeResize", "redshift:DescribeStorage"], "path": "behavioral/redshift/check_create_cluster_available_fields.py", "service": "redshift"} {"check_id": "redshift.create-redshift-idc-application-dependent-service-rejected", "deployments": [], "key": "redshift/create-redshift-idc-application-dependent-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateRedshiftIdcApplication", "redshift:DescribeRedshiftIdcApplications", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_create_redshift_idc_application_dependent_service_rejected.py", "service": "redshift"} {"check_id": "redshift.create-snapshot-copy-grant-invalid-kms-key-rejected", "deployments": [], "key": "redshift/create-snapshot-copy-grant-invalid-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "redshift:CreateSnapshotCopyGrant", "redshift:DeleteSnapshotCopyGrant", "redshift:DescribeSnapshotCopyGrants"], "path": "behavioral/redshift/check_create_snapshot_copy_grant_invalid_kms_key_rejected.py", "service": "redshift"} {"check_id": "redshift.custom-domain-and-partner-ops-semantics", "deployments": [], "key": "redshift/custom-domain-and-partner-ops-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:AddPartner", "redshift:CreateCustomDomainAssociation", "redshift:DeleteCustomDomainAssociation", "redshift:DeletePartner", "redshift:DescribeCustomDomainAssociations", "redshift:DescribePartners", "redshift:ModifyCustomDomainAssociation", "redshift:UpdatePartnerStatus", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_custom_domain_and_partner_ops_semantics.py", "service": "redshift"} {"check_id": "redshift.data-api-batch-auto-commit-mode-keeps-the-writes-a-transaction-would-roll-back", "deployments": [], "key": "redshift/data-api-batch-auto-commit-mode-keeps-the-writes-a-transaction-would-roll-back", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_data_api_batch_auto_commit_mode_keeps_the_writes_a_transaction_would_roll_back.py", "service": "redshift"} {"check_id": "redshift.data-api-batch-execute-statement-substatement-ordering", "deployments": [], "key": "redshift/data-api-batch-execute-statement-substatement-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_data_api_batch_execute_statement_substatement_ordering.py", "service": "redshift"} {"check_id": "redshift.data-api-batch-partial-failure-rolls-back-whole-batch", "deployments": [], "key": "redshift/data-api-batch-partial-failure-rolls-back-whole-batch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_data_api_batch_partial_failure_rolls_back_whole_batch.py", "service": "redshift"} {"check_id": "redshift.data-api-execute-statement-typed-result-roundtrip", "deployments": [], "key": "redshift/data-api-execute-statement-typed-result-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements", "redshift-data:ListTables", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters"], "path": "behavioral/redshift/check_data_api_execute_statement_typed_result_roundtrip.py", "service": "redshift"} {"check_id": "redshift.data-api-session-transaction-hides-uncommitted-rows-from-a-second-session", "deployments": [], "key": "redshift/data-api-session-transaction-hides-uncommitted-rows-from-a-second-session", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:ListSessions", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_data_api_session_transaction_hides_uncommitted_rows_from_a_second_session.py", "service": "redshift"} {"check_id": "redshift.data-api-sql-failure-surfaces-as-async-failed-status", "deployments": [], "key": "redshift/data-api-sql-failure-surfaces-as-async-failed-status", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_data_api_sql_failure_surfaces_as_async_failed_status.py", "service": "redshift"} {"check_id": "redshift.data-api-statement-id-and-target-validation-rejected", "deployments": [], "key": "redshift/data-api-statement-id-and-target-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements"], "path": "behavioral/redshift/check_data_api_statement_id_and_target_validation_rejected.py", "service": "redshift"} {"check_id": "redshift.data-api-statement-result-is-a-snapshot-reread-without-rerunning", "deployments": [], "key": "redshift/data-api-statement-result-is-a-snapshot-reread-without-rerunning", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:DescribeTable", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_data_api_statement_result_is_a_snapshot_reread_without_rerunning.py", "service": "redshift"} {"check_id": "redshift.data-api-temporal-types-round-trip-and-the-engine-computes-their-span", "deployments": [], "key": "redshift/data-api-temporal-types-round-trip-and-the-engine-computes-their-span", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:DescribeTable", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_data_api_temporal_types_round_trip_and_the_engine_computes_their_span.py", "service": "redshift"} {"check_id": "redshift.data-api-wait-time-seconds-returns-a-terminal-status-without-a-poll", "deployments": [], "key": "redshift/data-api-wait-time-seconds-returns-a-terminal-status-without-a-poll", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_data_api_wait_time_seconds_returns_a_terminal_status_without_a_poll.py", "service": "redshift"} {"check_id": "redshift.datashare-ops-not-found-semantics", "deployments": [], "key": "redshift/datashare-ops-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:AssociateDataShareConsumer", "redshift:AuthorizeDataShare", "redshift:DeauthorizeDataShare", "redshift:DescribeDataShares", "redshift:DescribeDataSharesForConsumer", "redshift:DescribeDataSharesForProducer", "redshift:DisassociateDataShareConsumer", "redshift:RejectDataShare", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_datashare_ops_not_found_semantics.py", "service": "redshift"} {"check_id": "redshift.delete-cluster-lifecycle", "deployments": [], "key": "redshift/delete-cluster-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:RebootCluster"], "path": "behavioral/redshift/check_delete_cluster_lifecycle.py", "service": "redshift"} {"check_id": "redshift.delete-cluster-without-snapshot-decision-fails", "deployments": [], "key": "redshift/delete-cluster-without-snapshot-decision-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_delete_cluster_without_snapshot_decision_fails.py", "service": "redshift"} {"check_id": "redshift.deploy-cluster-cfn-connectivity", "deployments": [], "key": "redshift/deploy-cluster-cfn-connectivity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetClusterCredentials"], "path": "behavioral/redshift/check_deploy_cluster_cfn_connectivity.py", "service": "redshift"} {"check_id": "redshift.deploy-cluster-cfn-live-connectivity", "deployments": [], "key": "redshift/deploy-cluster-cfn-live-connectivity", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetClusterCredentials"], "path": "behavioral/redshift/check_deploy_cluster_cfn_live_connectivity.py", "service": "redshift"} {"check_id": "redshift.deregister-namespace-unregistered-accepted-nonexistent-cluster-rejected", "deployments": [], "key": "redshift/deregister-namespace-unregistered-accepted-nonexistent-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeregisterNamespace", "redshift:DescribeClusters", "redshift:RegisterNamespace", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_deregister_namespace_unregistered_accepted_nonexistent_cluster_rejected.py", "service": "redshift"} {"check_id": "redshift.describe-maxrecords-boundary-fails", "deployments": [], "key": "redshift/describe-maxrecords-boundary-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DescribeClusterParameterGroups", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters"], "path": "behavioral/redshift/check_describe_maxrecords_boundary_fails.py", "service": "redshift"} {"check_id": "redshift.e2e-idc-application-auth-token-flow", "deployments": [], "key": "redshift/e2e-idc-application-auth-token-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateRedshiftIdcApplication", "redshift:DeleteRedshiftIdcApplication", "redshift:DescribeClusters", "redshift:DescribeRedshiftIdcApplications", "redshift:GetIdentityCenterAuthToken", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_e2e_idc_application_auth_token_flow.py", "service": "redshift"} {"check_id": "redshift.e2e-integration-zero-etl-lifecycle-flow", "deployments": [], "key": "redshift/e2e-integration-zero-etl-lifecycle-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:PutResourcePolicy", "dynamodb:UpdateContinuousBackups", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DescribeInboundIntegrations", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_e2e_integration_zero_etl_lifecycle_flow.py", "service": "redshift"} {"check_id": "redshift.e2e-namespace-registration-cluster-visibility-flow", "deployments": [], "key": "redshift/e2e-namespace-registration-cluster-visibility-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DeregisterNamespace", "redshift:DescribeClusters", "redshift:RegisterNamespace", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_e2e_namespace_registration_cluster_visibility_flow.py", "service": "redshift"} {"check_id": "redshift.e2e-resource-policy-access-enforcement-flow", "deployments": [], "key": "redshift/e2e-resource-policy-access-enforcement-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSnapshot", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSnapshot", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_e2e_resource_policy_access_enforcement_flow.py", "service": "redshift"} {"check_id": "redshift.e2e-resource-policy-cross-account-snapshot-share-flow", "deployments": [], "key": "redshift/e2e-resource-policy-cross-account-snapshot-share-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:AuthorizeSnapshotAccess", "redshift:CreateCluster", "redshift:CreateClusterSnapshot", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSnapshot", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "redshift:RevokeSnapshotAccess", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_e2e_resource_policy_cross_account_snapshot_share_flow.py", "service": "redshift"} {"check_id": "redshift.enable-logging-bucket-and-policy-errors", "deployments": [], "key": "redshift/enable-logging-bucket-and-policy-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", "redshift:DisableLogging", "redshift:EnableLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_enable_logging_bucket_and_policy_errors.py", "service": "redshift"} {"check_id": "redshift.enable-logging-bucket-policy-validation", "deployments": [], "key": "redshift/enable-logging-bucket-policy-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", "redshift:DisableLogging", "redshift:EnableLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging"], "path": "behavioral/redshift/check_enable_logging_bucket_policy_validation.py", "service": "redshift"} {"check_id": "redshift.enable-logging-insufficient-bucket-policy-denied", "deployments": [], "key": "redshift/enable-logging-insufficient-bucket-policy-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", "redshift:DisableLogging", "redshift:EnableLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_enable_logging_insufficient_bucket_policy_denied.py", "service": "redshift"} {"check_id": "redshift.enable-logging-precondition-errors", "deployments": [], "key": "redshift/enable-logging-precondition-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", "redshift:DescribeOrderableClusterOptions", "redshift:DisableLogging", "redshift:EnableLogging", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_enable_logging_precondition_errors.py", "service": "redshift"} {"check_id": "redshift.enable-logging-server-side-delivery-enforced", "deployments": [], "key": "redshift/enable-logging-server-side-delivery-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DescribeLogGroups", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", "redshift:DisableLogging", "redshift:EnableLogging"], "path": "behavioral/redshift/check_enable_logging_server_side_delivery_enforced.py", "service": "redshift"} {"check_id": "redshift.endpoint-access-ops-not-found-semantics", "deployments": [], "key": "redshift/endpoint-access-ops-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:AuthorizeEndpointAccess", "redshift:CreateEndpointAccess", "redshift:DeleteEndpointAccess", "redshift:DescribeEndpointAccess", "redshift:DescribeEndpointAuthorization", "redshift:ModifyEndpointAccess", "redshift:RevokeEndpointAccess"], "path": "behavioral/redshift/check_endpoint_access_ops_not_found_semantics.py", "service": "redshift"} {"check_id": "redshift.event-subscription-missing-topic-fails", "deployments": [], "key": "redshift/event-subscription-missing-topic-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateEventSubscription", "redshift:DeleteEventSubscription", "redshift:DescribeEventSubscriptions", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_event_subscription_missing_topic_fails.py", "service": "redshift"} {"check_id": "redshift.event-subscription-ops-semantics", "deployments": [], "key": "redshift/event-subscription-ops-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateEventSubscription", "redshift:DeleteEventSubscription", "redshift:DescribeEventSubscriptions", "redshift:ModifyEventSubscription", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/redshift/check_event_subscription_ops_semantics.py", "service": "redshift"} {"check_id": "redshift.failover-primary-compute-non-multiaz-rejected", "deployments": [], "key": "redshift/failover-primary-compute-non-multiaz-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:FailoverPrimaryCompute", "redshift:ModifyCluster"], "path": "behavioral/redshift/check_failover_primary_compute_non_multiaz_rejected.py", "service": "redshift"} {"check_id": "redshift.failover-primary-compute-transition", "deployments": [], "key": "redshift/failover-primary-compute-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSnapshot", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSnapshot", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:FailoverPrimaryCompute"], "path": "behavioral/redshift/check_failover_primary_compute_transition.py", "service": "redshift"} {"check_id": "redshift.failover-primary-compute-unauthorized-blocked", "deployments": [], "key": "redshift/failover-primary-compute-unauthorized-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "redshift:FailoverPrimaryCompute"], "path": "behavioral/redshift/check_failover_primary_compute_unauthorized_blocked.py", "service": "redshift"} {"check_id": "redshift.failover-primary-compute-unauthorized-denied", "deployments": [], "key": "redshift/failover-primary-compute-unauthorized-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "redshift:FailoverPrimaryCompute"], "path": "behavioral/redshift/check_failover_primary_compute_unauthorized_denied.py", "service": "redshift"} {"check_id": "redshift.get-cluster-credentials-autocreate-creates-db-user", "deployments": [], "key": "redshift/get-cluster-credentials-autocreate-creates-db-user", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetClusterCredentials"], "path": "behavioral/redshift/check_get_cluster_credentials_autocreate_creates_db_user.py", "service": "redshift"} {"check_id": "redshift.get-cluster-credentials-duration-seconds-out-of-range-rejected", "deployments": [], "key": "redshift/get-cluster-credentials-duration-seconds-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetClusterCredentials", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_get_cluster_credentials_duration_seconds_out_of_range_rejected.py", "service": "redshift"} {"check_id": "redshift.get-cluster-credentials-iam-token-ttl", "deployments": [], "key": "redshift/get-cluster-credentials-iam-token-ttl", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetClusterCredentials", "redshift:GetClusterCredentialsWithIAM"], "path": "behavioral/redshift/check_get_cluster_credentials_iam_token_ttl.py", "service": "redshift"} {"check_id": "redshift.get-cluster-credentials-with-iam-federated-access", "deployments": [], "key": "redshift/get-cluster-credentials-with-iam-federated-access", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetClusterCredentials", "redshift:GetClusterCredentialsWithIAM", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_get_cluster_credentials_with_iam_federated_access.py", "service": "redshift"} {"check_id": "redshift.get-cluster-credentials-with-iam-returns-usable-credentials", "deployments": [], "key": "redshift/get-cluster-credentials-with-iam-returns-usable-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:GetClusterCredentialsWithIAM"], "path": "behavioral/redshift/check_get_cluster_credentials_with_iam_returns_usable_credentials.py", "service": "redshift"} {"check_id": "redshift.get-cluster-credentials-with-iam-unsupported-rejected", "deployments": [], "key": "redshift/get-cluster-credentials-with-iam-unsupported-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetClusterCredentialsWithIAM"], "path": "behavioral/redshift/check_get_cluster_credentials_with_iam_unsupported_rejected.py", "service": "redshift"} {"check_id": "redshift.get-identity-center-auth-token-issuance", "deployments": [], "key": "redshift/get-identity-center-auth-token-issuance", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DescribeClusters", "redshift:GetIdentityCenterAuthToken"], "path": "behavioral/redshift/check_get_identity_center_auth_token_issuance.py", "service": "redshift"} {"check_id": "redshift.get-identity-center-auth-token-parameter-errors", "deployments": [], "key": "redshift/get-identity-center-auth-token-parameter-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetIdentityCenterAuthToken"], "path": "behavioral/redshift/check_get_identity_center_auth_token_parameter_errors.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-certificate-text-preserved", "deployments": [], "key": "redshift/hsm-configuration-certificate-text-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_certificate_text_preserved.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-create-delete-lifecycle", "deployments": [], "key": "redshift/hsm-configuration-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_create_delete_lifecycle.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-duplicate-and-quota-errors", "deployments": [], "key": "redshift/hsm-configuration-duplicate-and-quota-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_duplicate_and_quota_errors.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-duplicate-create-rejected", "deployments": [], "key": "redshift/hsm-configuration-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_duplicate_create_rejected.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-duplicate-identifier-rejected", "deployments": [], "key": "redshift/hsm-configuration-duplicate-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_duplicate_identifier_rejected.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-duplicate-name-rejected", "deployments": [], "key": "redshift/hsm-configuration-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_duplicate_name_rejected.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-duplicate-rejected", "deployments": [], "key": "redshift/hsm-configuration-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_duplicate_rejected.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-error-semantics", "deployments": [], "key": "redshift/hsm-configuration-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_error_semantics.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-lifecycle", "deployments": [], "key": "redshift/hsm-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_lifecycle.py", "service": "redshift"} {"check_id": "redshift.hsm-configuration-quota-exceeded-blocked", "deployments": [], "key": "redshift/hsm-configuration-quota-exceeded-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateHsmConfiguration", "redshift:DeleteHsmConfiguration", "redshift:DescribeHsmConfigurations"], "path": "behavioral/redshift/check_hsm_configuration_quota_exceeded_blocked.py", "service": "redshift"} {"check_id": "redshift.idc-and-integration-ops-semantics", "deployments": [], "key": "redshift/idc-and-integration-ops-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DeleteIntegration", "redshift:DeleteRedshiftIdcApplication", "redshift:DescribeInboundIntegrations", "redshift:DescribeIntegrations", "redshift:DescribeRedshiftIdcApplications", "redshift:ModifyIntegration", "redshift:ModifyRedshiftIdcApplication", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_idc_and_integration_ops_semantics.py", "service": "redshift"} {"check_id": "redshift.identity-center-auth-token-ttl", "deployments": [], "key": "redshift/identity-center-auth-token-ttl", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetIdentityCenterAuthToken"], "path": "behavioral/redshift/check_identity_center_auth_token_ttl.py", "service": "redshift"} {"check_id": "redshift.integration-concurrent-conflict-operation-blocked", "deployments": [], "key": "redshift/integration-concurrent-conflict-operation-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeTable", "dynamodb:PutResourcePolicy", "dynamodb:UpdateContinuousBackups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DeleteResourcePolicy", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_integration_concurrent_conflict_operation_blocked.py", "service": "redshift"} {"check_id": "redshift.integration-conflict-and-quota-errors", "deployments": [], "key": "redshift/integration-conflict-and-quota-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DeleteResourcePolicy", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_integration_conflict_and_quota_errors.py", "service": "redshift"} {"check_id": "redshift.integration-create-delete-lifecycle", "deployments": [], "key": "redshift/integration-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutResourcePolicy", "dynamodb:UpdateContinuousBackups", "redshift:CreateCluster", "redshift:CreateClusterParameterGroup", "redshift:CreateClusterSubnetGroup", "redshift:CreateIntegration", "redshift:DeleteCluster", "redshift:DeleteClusterParameterGroup", "redshift:DeleteClusterSubnetGroup", "redshift:DeleteIntegration", "redshift:DeleteResourcePolicy", "redshift:DescribeClusters", "redshift:DescribeInboundIntegrations", "redshift:DescribeIntegrations", "redshift:ModifyClusterParameterGroup", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_integration_create_delete_lifecycle.py", "service": "redshift"} {"check_id": "redshift.integration-description-empty-vs-absent-preserved", "deployments": [], "key": "redshift/integration-description-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DeleteResourcePolicy", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_integration_description_empty_vs_absent_preserved.py", "service": "redshift"} {"check_id": "redshift.integration-duplicate-create-rejected", "deployments": [], "key": "redshift/integration-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift-serverless:UpdateWorkgroup", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DeleteResourcePolicy", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_integration_duplicate_create_rejected.py", "service": "redshift"} {"check_id": "redshift.integration-error-semantics", "deployments": [], "key": "redshift/integration-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutResourcePolicy", "dynamodb:UpdateContinuousBackups", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "redshift-serverless:CreateNamespace", "redshift-serverless:DeleteNamespace", "redshift-serverless:GetNamespace", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_integration_error_semantics.py", "service": "redshift"} {"check_id": "redshift.integration-lifecycle-state-transitions", "deployments": [], "key": "redshift/integration-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift-serverless:UpdateWorkgroup", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DeleteResourcePolicy", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_integration_lifecycle_state_transitions.py", "service": "redshift"} {"check_id": "redshift.lakehouse-configuration-idc-application-not-exists-rejected", "deployments": [], "key": "redshift/lakehouse-configuration-idc-application-not-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:ModifyLakehouseConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_lakehouse_configuration_idc_application_not_exists_rejected.py", "service": "redshift"} {"check_id": "redshift.lakehouse-configuration-server-enforced-policy", "deployments": [], "key": "redshift/lakehouse-configuration-server-enforced-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:ModifyLakehouseConfiguration"], "path": "behavioral/redshift/check_lakehouse_configuration_server_enforced_policy.py", "service": "redshift"} {"check_id": "redshift.modify-aqua-configuration-unsupported-rejected", "deployments": [], "key": "redshift/modify-aqua-configuration-unsupported-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DescribeClusterVersions", "redshift:DescribeClusters", "redshift:ModifyAquaConfiguration"], "path": "behavioral/redshift/check_modify_aqua_configuration_unsupported_rejected.py", "service": "redshift"} {"check_id": "redshift.modify-cluster-db-revision-already-latest-rejected", "deployments": [], "key": "redshift/modify-cluster-db-revision-already-latest-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:CreateTags", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeleteTags", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:DescribeTags", "redshift:ModifyClusterDbRevision", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_modify_cluster_db_revision_already_latest_rejected.py", "service": "redshift"} {"check_id": "redshift.modify-cluster-db-revision-latest-blocked", "deployments": [], "key": "redshift/modify-cluster-db-revision-latest-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:ModifyClusterDbRevision"], "path": "behavioral/redshift/check_modify_cluster_db_revision_latest_blocked.py", "service": "redshift"} {"check_id": "redshift.modify-cluster-rename", "deployments": [], "key": "redshift/modify-cluster-rename", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyCluster"], "path": "behavioral/redshift/check_modify_cluster_rename.py", "service": "redshift"} {"check_id": "redshift.modify-lakehouse-configuration-dependent-service-errors", "deployments": [], "key": "redshift/modify-lakehouse-configuration-dependent-service-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyLakehouseConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_modify_lakehouse_configuration_dependent_service_errors.py", "service": "redshift"} {"check_id": "redshift.namespace-deregister-invalid-namespace-blocked", "deployments": [], "key": "redshift/namespace-deregister-invalid-namespace-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeregisterNamespace", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:RegisterNamespace", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_namespace_deregister_invalid_namespace_blocked.py", "service": "redshift"} {"check_id": "redshift.namespace-error-semantics", "deployments": [], "key": "redshift/namespace-error-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeregisterNamespace", "redshift:DescribeClusters", "redshift:RegisterNamespace", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_namespace_error_semantics.py", "service": "redshift"} {"check_id": "redshift.namespace-invalid-state-and-namespace-errors", "deployments": [], "key": "redshift/namespace-invalid-state-and-namespace-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeregisterNamespace", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:RegisterNamespace", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_namespace_invalid_state_and_namespace_errors.py", "service": "redshift"} {"check_id": "redshift.namespace-register-deregister-lifecycle", "deployments": [], "key": "redshift/namespace-register-deregister-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeregisterNamespace", "redshift:DescribeClusters", "redshift:RegisterNamespace", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_namespace_register_deregister_lifecycle.py", "service": "redshift"} {"check_id": "redshift.namespace-register-wrong-state-blocked", "deployments": [], "key": "redshift/namespace-register-wrong-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeregisterNamespace", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:RegisterNamespace", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_namespace_register_wrong_state_blocked.py", "service": "redshift"} {"check_id": "redshift.ordering-modify-cluster-db-revision-sequential", "deployments": [], "key": "redshift/ordering-modify-cluster-db-revision-sequential", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:CreateTags", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeleteTags", "redshift:DescribeClusterDbRevisions", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeTags", "redshift:ModifyClusterDbRevision", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_ordering_modify_cluster_db_revision_sequential.py", "service": "redshift"} {"check_id": "redshift.parameter-group-delete-default-fails", "deployments": [], "key": "redshift/parameter-group-delete-default-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterParameterGroup", "redshift:DeleteCluster", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameterGroups", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_parameter_group_delete_default_fails.py", "service": "redshift"} {"check_id": "redshift.parameter-group-duplicate-fails", "deployments": [], "key": "redshift/parameter-group-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameterGroups"], "path": "behavioral/redshift/check_parameter_group_duplicate_fails.py", "service": "redshift"} {"check_id": "redshift.parameter-group-known-parameter-value-validation", "deployments": [], "key": "redshift/parameter-group-known-parameter-value-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameters", "redshift:ModifyClusterParameterGroup", "redshift:ResetClusterParameterGroup"], "path": "behavioral/redshift/check_parameter_group_known_parameter_value_validation.py", "service": "redshift"} {"check_id": "redshift.parameter-group-lifecycle", "deployments": [], "key": "redshift/parameter-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameterGroups", "redshift:DescribeClusterParameters", "redshift:DescribeDefaultClusterParameters", "redshift:ModifyClusterParameterGroup", "redshift:ResetClusterParameterGroup"], "path": "behavioral/redshift/check_parameter_group_lifecycle.py", "service": "redshift"} {"check_id": "redshift.parameter-group-numeric-precision-preserved", "deployments": [], "key": "redshift/parameter-group-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameters", "redshift:ModifyClusterParameterGroup"], "path": "behavioral/redshift/check_parameter_group_numeric_precision_preserved.py", "service": "redshift"} {"check_id": "redshift.parameter-group-unknown-parameter-fails", "deployments": [], "key": "redshift/parameter-group-unknown-parameter-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameters", "redshift:ModifyClusterParameterGroup"], "path": "behavioral/redshift/check_parameter_group_unknown_parameter_fails.py", "service": "redshift"} {"check_id": "redshift.pause-creating-cluster-fails", "deployments": [], "key": "redshift/pause-creating-cluster-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:PauseCluster"], "path": "behavioral/redshift/check_pause_creating_cluster_fails.py", "service": "redshift"} {"check_id": "redshift.purchase-reserved-node-offering-duplicate-rejected", "deployments": [], "key": "redshift/purchase-reserved-node-offering-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DescribeReservedNodeOfferings", "redshift:DescribeReservedNodes", "redshift:PurchaseReservedNodeOffering"], "path": "behavioral/redshift/check_purchase_reserved_node_offering_duplicate_rejected.py", "service": "redshift"} {"check_id": "redshift.purchase-reserved-node-offering-invalid-id-rejected", "deployments": [], "key": "redshift/purchase-reserved-node-offering-invalid-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DescribeReservedNodeOfferings", "redshift:DescribeReservedNodes", "redshift:PurchaseReservedNodeOffering"], "path": "behavioral/redshift/check_purchase_reserved_node_offering_invalid_id_rejected.py", "service": "redshift"} {"check_id": "redshift.purchase-reserved-node-offering-not-found-rejected", "deployments": [], "key": "redshift/purchase-reserved-node-offering-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DescribeReservedNodeOfferings", "redshift:DescribeReservedNodes", "redshift:PurchaseReservedNodeOffering"], "path": "behavioral/redshift/check_purchase_reserved_node_offering_not_found_rejected.py", "service": "redshift"} {"check_id": "redshift.put-resource-policy-invalid-json-rejected", "deployments": [], "key": "redshift/put-resource-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeleteResourcePolicy", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_put_resource_policy_invalid_json_rejected.py", "service": "redshift"} {"check_id": "redshift.put-resource-policy-malformed-policy-rejected", "deployments": [], "key": "redshift/put-resource-policy-malformed-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeleteResourcePolicy", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_put_resource_policy_malformed_policy_rejected.py", "service": "redshift"} {"check_id": "redshift.qev2-idc-application-concurrent-modify-conflict", "deployments": [], "key": "redshift/qev2-idc-application-concurrent-modify-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateQev2IdcApplication", "redshift:DeleteQev2IdcApplication", "redshift:DescribeQev2IdcApplications", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_qev2_idc_application_concurrent_modify_conflict.py", "service": "redshift"} {"check_id": "redshift.qev2-idc-application-delete-nonexistent-rejected", "deployments": [], "key": "redshift/qev2-idc-application-delete-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DeleteQev2IdcApplication", "redshift:DescribeQev2IdcApplications", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_qev2_idc_application_delete_nonexistent_rejected.py", "service": "redshift"} {"check_id": "redshift.qev2-idc-application-duplicate-create-rejected", "deployments": [], "key": "redshift/qev2-idc-application-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateQev2IdcApplication", "redshift:DeleteQev2IdcApplication", "redshift:DescribeQev2IdcApplications", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_qev2_idc_application_duplicate_create_rejected.py", "service": "redshift"} {"check_id": "redshift.qev2-idc-application-full-lifecycle", "deployments": [], "key": "redshift/qev2-idc-application-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateQev2IdcApplication", "redshift:DeleteQev2IdcApplication", "redshift:DescribeQev2IdcApplications", "redshift:ModifyQev2IdcApplication", "sso-admin:CreateInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_qev2_idc_application_full_lifecycle.py", "service": "redshift"} {"check_id": "redshift.qev2-idc-application-lifecycle", "deployments": [], "key": "redshift/qev2-idc-application-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateQev2IdcApplication", "redshift:DeleteQev2IdcApplication", "redshift:DescribeQev2IdcApplications", "redshift:ModifyQev2IdcApplication", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_qev2_idc_application_lifecycle.py", "service": "redshift"} {"check_id": "redshift.qev2-idc-application-not-exists-errors", "deployments": [], "key": "redshift/qev2-idc-application-not-exists-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DeleteQev2IdcApplication", "redshift:DescribeQev2IdcApplications", "redshift:ModifyQev2IdcApplication", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_qev2_idc_application_not_exists_errors.py", "service": "redshift"} {"check_id": "redshift.qev2-idc-application-not-found-semantics", "deployments": [], "key": "redshift/qev2-idc-application-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DeleteRedshiftIdcApplication", "redshift:DescribeRedshiftIdcApplications", "redshift:ModifyRedshiftIdcApplication", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_qev2_idc_application_not_found_semantics.py", "service": "redshift"} {"check_id": "redshift.rdapi-batch-substatements-are-individually-reportable", "deployments": [], "key": "redshift/rdapi-batch-substatements-are-individually-reportable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_rdapi_batch_substatements_are_individually_reportable.py", "service": "redshift"} {"check_id": "redshift.rdapi-cancelled-statement-aborts-and-second-cancel-rejected", "deployments": [], "key": "redshift/rdapi-cancelled-statement-aborts-and-second-cancel-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_rdapi_cancelled_statement_aborts_and_second_cancel_rejected.py", "service": "redshift"} {"check_id": "redshift.rdapi-copy-from-s3-loads-object-rows-and-session-reports-count", "deployments": [], "key": "redshift/rdapi-copy-from-s3-loads-object-rows-and-session-reports-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/redshift/check_rdapi_copy_from_s3_loads_object_rows_and_session_reports_count.py", "service": "redshift"} {"check_id": "redshift.rdapi-copy-malformed-row-rejected-and-recorded-in-stl-load-errors", "deployments": [], "key": "redshift/rdapi-copy-malformed-row-rejected-and-recorded-in-stl-load-errors", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/redshift/check_rdapi_copy_malformed_row_rejected_and_recorded_in_stl_load_errors.py", "service": "redshift"} {"check_id": "redshift.rdapi-failed-statement-reports-error-and-result-read-rejected", "deployments": [], "key": "redshift/rdapi-failed-statement-reports-error-and-result-read-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_rdapi_failed_statement_reports_error_and_result_read_rejected.py", "service": "redshift"} {"check_id": "redshift.rdapi-statement-result-set-rows-and-column-metadata", "deployments": [], "key": "redshift/rdapi-statement-result-set-rows-and-column-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_rdapi_statement_result_set_rows_and_column_metadata.py", "service": "redshift"} {"check_id": "redshift.reboot-cluster-transition", "deployments": [], "key": "redshift/reboot-cluster-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:RebootCluster"], "path": "behavioral/redshift/check_reboot_cluster_transition.py", "service": "redshift"} {"check_id": "redshift.redshift-analyze-compression-picks-a-non-raw-encoding-visible-in-the-catalog", "deployments": [], "key": "redshift/redshift-analyze-compression-picks-a-non-raw-encoding-visible-in-the-catalog", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_redshift_analyze_compression_picks_a_non_raw_encoding_visible_in_the_catalog.py", "service": "redshift"} {"check_id": "redshift.redshift-copy-exceeding-maxerror-fails-and-leaves-the-table-empty", "deployments": [], "key": "redshift/redshift-copy-exceeding-maxerror-fails-and-leaves-the-table-empty", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/redshift/check_redshift_copy_exceeding_maxerror_fails_and_leaves_the_table_empty.py", "service": "redshift"} {"check_id": "redshift.redshift-copy-from-s3-loads-rows-and-records-the-one-bad-row-in-stl-load-errors", "deployments": [], "key": "redshift/redshift-copy-from-s3-loads-rows-and-records-the-one-bad-row-in-stl-load-errors", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/redshift/check_redshift_copy_from_s3_loads_rows_and_records_the_one_bad_row_in_stl_load_errors.py", "service": "redshift"} {"check_id": "redshift.redshift-copy-with-a-role-lacking-s3-read-fails-and-leaves-the-table-empty", "deployments": [], "key": "redshift/redshift-copy-with-a-role-lacking-s3-read-fails-and-leaves-the-table-empty", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/redshift/check_redshift_copy_with_a_role_lacking_s3_read_fails_and_leaves_the_table_empty.py", "service": "redshift"} {"check_id": "redshift.redshift-distribution-and-sort-keys-are-materialised-in-the-cluster-catalog", "deployments": [], "key": "redshift/redshift-distribution-and-sort-keys-are-materialised-in-the-cluster-catalog", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_redshift_distribution_and_sort_keys_are_materialised_in_the_cluster_catalog.py", "service": "redshift"} {"check_id": "redshift.redshift-idc-application-create-lifecycle", "deployments": [], "key": "redshift/redshift-idc-application-create-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "redshift:CreateRedshiftIdcApplication", "redshift:DeleteRedshiftIdcApplication", "redshift:DescribeRedshiftIdcApplications", "redshift:ModifyRedshiftIdcApplication", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_redshift_idc_application_create_lifecycle.py", "service": "redshift"} {"check_id": "redshift.redshift-idc-application-creation-state", "deployments": [], "key": "redshift/redshift-idc-application-creation-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "redshift:CreateRedshiftIdcApplication", "redshift:DeleteRedshiftIdcApplication", "redshift:DescribeRedshiftIdcApplications", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_redshift_idc_application_creation_state.py", "service": "redshift"} {"check_id": "redshift.redshift-idc-application-invalid-tag-rejected", "deployments": [], "key": "redshift/redshift-idc-application-invalid-tag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "redshift:CreateRedshiftIdcApplication", "redshift:DeleteRedshiftIdcApplication", "redshift:DescribeRedshiftIdcApplications", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_redshift_idc_application_invalid_tag_rejected.py", "service": "redshift"} {"check_id": "redshift.redshift-idc-application-lifecycle", "deployments": [], "key": "redshift/redshift-idc-application-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "redshift:CreateRedshiftIdcApplication", "redshift:DeleteRedshiftIdcApplication", "redshift:DescribeRedshiftIdcApplications", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/redshift/check_redshift_idc_application_lifecycle.py", "service": "redshift"} {"check_id": "redshift.redshift-spectrum-external-table-returns-rows-from-s3-without-loading-them", "deployments": [], "key": "redshift/redshift-spectrum-external-table-returns-rows-from-s3-without-loading-them", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["glue:DeleteDatabase", "glue:GetTable", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/redshift/check_redshift_spectrum_external_table_returns_rows_from_s3_without_loading_them.py", "service": "redshift"} {"check_id": "redshift.redshift-two-concurrent-transactions-on-the-same-row-serialize-to-one-winner", "deployments": [], "key": "redshift/redshift-two-concurrent-transactions-on-the-same-row-serialize-to-one-winner", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions"], "path": "behavioral/redshift/check_redshift_two_concurrent_transactions_on_the_same_row_serialize_to_one_winner.py", "service": "redshift"} {"check_id": "redshift.redshift-unload-writes-the-table-to-s3-and-the-manifest-parts-reassemble-it", "deployments": [], "key": "redshift/redshift-unload-writes-the-table-to-s3-and-the-manifest-parts-reassemble-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/redshift/check_redshift_unload_writes_the_table_to_s3_and_the_manifest_parts_reassemble_it.py", "service": "redshift"} {"check_id": "redshift.redshift-wlm-queue-assignment-is-observable-in-the-cluster-system-tables", "deployments": [], "key": "redshift/redshift-wlm-queue-assignment-is-observable-in-the-cluster-system-tables", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:CreateClusterParameterGroup", "redshift:DeleteCluster", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameters", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyClusterParameterGroup"], "path": "behavioral/redshift/check_redshift_wlm_queue_assignment_is_observable_in_the_cluster_system_tables.py", "service": "redshift"} {"check_id": "redshift.reference-data-catalog-cross-op-agreement", "deployments": [], "key": "redshift/reference-data-catalog-cross-op-agreement", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:DeleteClusterParameterGroup", "redshift:DescribeDefaultClusterParameters"], "path": "behavioral/redshift/check_reference_data_catalog_cross_op_agreement.py", "service": "redshift"} {"check_id": "redshift.register-namespace-invalid-state-rejected", "deployments": [], "key": "redshift/register-namespace-invalid-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeregisterNamespace", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:RegisterNamespace", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_register_namespace_invalid_state_rejected.py", "service": "redshift"} {"check_id": "redshift.reserved-node-exchange-configuration-options-scope", "deployments": [], "key": "redshift/reserved-node-exchange-configuration-options-scope", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeResize", "redshift:GetReservedNodeExchangeConfigurationOptions"], "path": "behavioral/redshift/check_reserved_node_exchange_configuration_options_scope.py", "service": "redshift"} {"check_id": "redshift.reserved-node-exchange-offering-consistency", "deployments": [], "key": "redshift/reserved-node-exchange-offering-consistency", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeReservedNodes", "redshift:GetReservedNodeExchangeConfigurationOptions", "redshift:GetReservedNodeExchangeOfferings"], "path": "behavioral/redshift/check_reserved_node_exchange_offering_consistency.py", "service": "redshift"} {"check_id": "redshift.reserved-node-exchange-offerings-and-config-options", "deployments": [], "key": "redshift/reserved-node-exchange-offerings-and-config-options", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DescribeReservedNodeOfferings", "redshift:GetReservedNodeExchangeConfigurationOptions", "redshift:GetReservedNodeExchangeOfferings"], "path": "behavioral/redshift/check_reserved_node_exchange_offerings_and_config_options.py", "service": "redshift"} {"check_id": "redshift.reserved-node-offering-not-found-rejected", "deployments": [], "key": "redshift/reserved-node-offering-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DescribeReservedNodeOfferings", "redshift:DescribeReservedNodes", "redshift:PurchaseReservedNodeOffering"], "path": "behavioral/redshift/check_reserved_node_offering_not_found_rejected.py", "service": "redshift"} {"check_id": "redshift.reserved-node-read-and-exchange-semantics", "deployments": [], "key": "redshift/reserved-node-read-and-exchange-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:AcceptReservedNodeExchange", "redshift:DescribeReservedNodeExchangeStatus", "redshift:DescribeReservedNodeOfferings", "redshift:DescribeReservedNodes", "redshift:GetReservedNodeExchangeConfigurationOptions", "redshift:GetReservedNodeExchangeOfferings"], "path": "behavioral/redshift/check_reserved_node_read_and_exchange_semantics.py", "service": "redshift"} {"check_id": "redshift.resource-policy-document-unicode-round-trip", "deployments": [], "key": "redshift/resource-policy-document-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:DeleteNamespace", "redshift-serverless:GetNamespace", "redshift:DeleteResourcePolicy", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_resource_policy_document_unicode_round_trip.py", "service": "redshift"} {"check_id": "redshift.resource-policy-json-document-byte-equality", "deployments": [], "key": "redshift/resource-policy-json-document-byte-equality", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:DeleteNamespace", "redshift-serverless:GetNamespace", "redshift:DeleteResourcePolicy", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_resource_policy_json_document_byte_equality.py", "service": "redshift"} {"check_id": "redshift.resource-policy-malformed-json-rejected", "deployments": [], "key": "redshift/resource-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:DeleteNamespace", "redshift-serverless:GetNamespace", "redshift:DeleteResourcePolicy", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy"], "path": "behavioral/redshift/check_resource_policy_malformed_json_rejected.py", "service": "redshift"} {"check_id": "redshift.resource-policy-ops-semantics", "deployments": [], "key": "redshift/resource-policy-ops-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:DeleteResourcePolicy", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_resource_policy_ops_semantics.py", "service": "redshift"} {"check_id": "redshift.resource-policy-overwrite-replaces-prior-document", "deployments": [], "key": "redshift/resource-policy-overwrite-replaces-prior-document", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:DeleteNamespace", "redshift:DeleteResourcePolicy", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_resource_policy_overwrite_replaces_prior_document.py", "service": "redshift"} {"check_id": "redshift.resource-policy-put-get-delete-lifecycle", "deployments": [], "key": "redshift/resource-policy-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:DeleteNamespace", "redshift:DeleteResourcePolicy", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_resource_policy_put_get_delete_lifecycle.py", "service": "redshift"} {"check_id": "redshift.resource-policy-put-get-delete-round-trip", "deployments": [], "key": "redshift/resource-policy-put-get-delete-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift-serverless:CreateNamespace", "redshift-serverless:DeleteNamespace", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeleteResourcePolicy", "redshift:DescribeClusters", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_resource_policy_put_get_delete_round_trip.py", "service": "redshift"} {"check_id": "redshift.resource-policy-unicode-round-trip", "deployments": [], "key": "redshift/resource-policy-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DeleteResourcePolicy", "redshift:DescribeClusters", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_resource_policy_unicode_round_trip.py", "service": "redshift"} {"check_id": "redshift.resume-non-paused-cluster-fails", "deployments": [], "key": "redshift/resume-non-paused-cluster-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateClusterSnapshot", "redshift:DeleteCluster", "redshift:DeleteClusterSnapshot", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:PauseCluster", "redshift:ResumeCluster"], "path": "behavioral/redshift/check_resume_non_paused_cluster_fails.py", "service": "redshift"} {"check_id": "redshift.scheduled-action-ops-semantics", "deployments": [], "key": "redshift/scheduled-action-ops-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateScheduledAction", "redshift:DeleteScheduledAction", "redshift:DescribeScheduledActions", "redshift:ModifyScheduledAction", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_scheduled_action_ops_semantics.py", "service": "redshift"} {"check_id": "redshift.server-side-resource-policy-enforcement", "deployments": [], "key": "redshift/server-side-resource-policy-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutResourcePolicy", "dynamodb:UpdateContinuousBackups", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:GetWorkgroup", "redshift-serverless:UpdateWorkgroup", "redshift:CreateIntegration", "redshift:DeleteIntegration", "redshift:DeleteResourcePolicy", "redshift:DescribeIntegrations", "redshift:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_server_side_resource_policy_enforcement.py", "service": "redshift"} {"check_id": "redshift.snapshot-copy-grant-lifecycle", "deployments": [], "key": "redshift/snapshot-copy-grant-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateSnapshotCopyGrant", "redshift:DeleteSnapshotCopyGrant", "redshift:DescribeSnapshotCopyGrants"], "path": "behavioral/redshift/check_snapshot_copy_grant_lifecycle.py", "service": "redshift"} {"check_id": "redshift.snapshot-copy-ops-not-found-semantics", "deployments": [], "key": "redshift/snapshot-copy-ops-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:DisableSnapshotCopy", "redshift:EnableSnapshotCopy", "redshift:ModifySnapshotCopyRetentionPeriod"], "path": "behavioral/redshift/check_snapshot_copy_ops_not_found_semantics.py", "service": "redshift"} {"check_id": "redshift.snapshot-create-delete-lifecycle", "deployments": [], "key": "redshift/snapshot-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "redshift:BatchModifyClusterSnapshots", "redshift:CreateCluster", "redshift:CreateClusterSnapshot", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSnapshot", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyClusterSnapshot"], "path": "behavioral/redshift/check_snapshot_create_delete_lifecycle.py", "service": "redshift"} {"check_id": "redshift.snapshot-duplicate-and-ungranted-revoke-fail", "deployments": [], "key": "redshift/snapshot-duplicate-and-ungranted-revoke-fail", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:AuthorizeSnapshotAccess", "redshift:CreateCluster", "redshift:CreateClusterSnapshot", "redshift:DeleteCluster", "redshift:DeleteClusterSnapshot", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:RevokeSnapshotAccess"], "path": "behavioral/redshift/check_snapshot_duplicate_and_ungranted_revoke_fail.py", "service": "redshift"} {"check_id": "redshift.snapshot-restore-preserves-table-data", "deployments": [], "key": "redshift/snapshot-restore-preserves-table-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:CreateClusterSnapshot", "redshift:CreateTags", "redshift:DeleteCluster", "redshift:DeleteClusterSnapshot", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:RestoreFromClusterSnapshot", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_snapshot_restore_preserves_table_data.py", "service": "redshift"} {"check_id": "redshift.snapshot-schedule-invalid-definition-fails", "deployments": [], "key": "redshift/snapshot-schedule-invalid-definition-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateSnapshotSchedule", "redshift:DeleteSnapshotSchedule", "redshift:DescribeSnapshotSchedules"], "path": "behavioral/redshift/check_snapshot_schedule_invalid_definition_fails.py", "service": "redshift"} {"check_id": "redshift.snapshot-schedule-lifecycle", "deployments": [], "key": "redshift/snapshot-schedule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateSnapshotSchedule", "redshift:DeleteSnapshotSchedule", "redshift:DescribeSnapshotSchedules", "redshift:ModifySnapshotSchedule"], "path": "behavioral/redshift/check_snapshot_schedule_lifecycle.py", "service": "redshift"} {"check_id": "redshift.snapshot-scoped-ops-not-found-semantics", "deployments": [], "key": "redshift/snapshot-scoped-ops-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:AuthorizeSnapshotAccess", "redshift:CopyClusterSnapshot", "redshift:DeleteClusterSnapshot", "redshift:DescribeClusterSnapshots", "redshift:DescribeNodeConfigurationOptions", "redshift:ModifyClusterSnapshot", "redshift:RestoreFromClusterSnapshot", "redshift:RestoreTableFromClusterSnapshot", "redshift:RevokeSnapshotAccess"], "path": "behavioral/redshift/check_snapshot_scoped_ops_not_found_semantics.py", "service": "redshift"} {"check_id": "redshift.snapshot-share-and-copy", "deployments": [], "key": "redshift/snapshot-share-and-copy", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "redshift:AuthorizeSnapshotAccess", "redshift:BatchDeleteClusterSnapshots", "redshift:CopyClusterSnapshot", "redshift:CreateCluster", "redshift:CreateClusterSnapshot", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSnapshot", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:RevokeSnapshotAccess"], "path": "behavioral/redshift/check_snapshot_share_and_copy.py", "service": "redshift"} {"check_id": "redshift.static-parameter-change-needs-a-reboot-before-the-engine-sees-it", "deployments": [], "key": "redshift/static-parameter-change-needs-a-reboot-before-the-engine-sees-it", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["redshift-data:DescribeStatement", "redshift-data:DescribeTable", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult", "redshift:CreateCluster", "redshift:CreateClusterParameterGroup", "redshift:DeleteCluster", "redshift:DeleteClusterParameterGroup", "redshift:DescribeClusterParameters", "redshift:DescribeClusterVersions", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyClusterParameterGroup", "redshift:RebootCluster", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_static_parameter_change_needs_a_reboot_before_the_engine_sees_it.py", "service": "redshift"} {"check_id": "redshift.subnet-group-duplicate-fails", "deployments": [], "key": "redshift/subnet-group-duplicate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "redshift:CreateClusterSubnetGroup", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterSubnetGroups"], "path": "behavioral/redshift/check_subnet_group_duplicate_fails.py", "service": "redshift"} {"check_id": "redshift.subnet-group-invalid-subnet-fails", "deployments": [], "key": "redshift/subnet-group-invalid-subnet-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "redshift:CreateClusterSubnetGroup", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterSubnetGroups"], "path": "behavioral/redshift/check_subnet_group_invalid_subnet_fails.py", "service": "redshift"} {"check_id": "redshift.subnet-group-lifecycle", "deployments": [], "key": "redshift/subnet-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "redshift:CreateClusterSubnetGroup", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusterSubnetGroups", "redshift:ModifyClusterSubnetGroup"], "path": "behavioral/redshift/check_subnet_group_lifecycle.py", "service": "redshift"} {"check_id": "redshift.tags-lifecycle", "deployments": [], "key": "redshift/tags-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:CreateTags", "redshift:DeleteClusterParameterGroup", "redshift:DeleteTags", "redshift:DescribeTags", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_tags_lifecycle.py", "service": "redshift"} {"check_id": "redshift.tags-unicode-value-round-trip", "deployments": [], "key": "redshift/tags-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:CreateTags", "redshift:DeleteClusterParameterGroup", "redshift:DescribeTags", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_tags_unicode_value_round_trip.py", "service": "redshift"} {"check_id": "redshift.tags-unknown-resource-fails", "deployments": [], "key": "redshift/tags-unknown-resource-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["redshift:CreateClusterParameterGroup", "redshift:CreateTags", "redshift:DeleteClusterParameterGroup", "redshift:DescribeTags", "sts:GetCallerIdentity"], "path": "behavioral/redshift/check_tags_unknown_resource_fails.py", "service": "redshift"} {"check_id": "redshift.usage-limit-lifecycle", "deployments": [], "key": "redshift/usage-limit-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:CreateUsageLimit", "redshift:DeleteCluster", "redshift:DeleteUsageLimit", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeUsageLimits", "redshift:ModifyUsageLimit"], "path": "behavioral/redshift/check_usage_limit_lifecycle.py", "service": "redshift"} {"check_id": "redshift__secretsmanager.managed-admin-password-creates-a-rotatable-secret-that-cannot-be-deleted", "deployments": [], "key": "redshift__secretsmanager/managed-admin-password-creates-a-rotatable-secret-that-cannot-be-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "redshift:ModifyCluster", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecrets", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/redshift__secretsmanager/check_managed_admin_password_creates_a_rotatable_secret_that_cannot_be_deleted.py", "service": "redshift__secretsmanager"} {"check_id": "redshift__sqs.cfn-deploy-eventbridge-rule-wrong-arn-negative", "deployments": [], "key": "redshift__sqs/cfn-deploy-eventbridge-rule-wrong-arn-negative", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_cfn_deploy_eventbridge_rule_wrong_arn_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-deploy-missing-sqs-queue-policy-negative", "deployments": [], "key": "redshift__sqs/cfn-deploy-missing-sqs-queue-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cfn_deploy_missing_sqs_queue_policy_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-deploy-redshift-eventbridge-sqs-stack-positive", "deployments": [], "key": "redshift__sqs/cfn-deploy-redshift-eventbridge-sqs-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cfn_deploy_redshift_eventbridge_sqs_stack_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-deploy-redshift-serverless-workgroup-sqs-notification-positive", "deployments": [], "key": "redshift__sqs/cfn-deploy-redshift-serverless-workgroup-sqs-notification-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cfn_deploy_redshift_serverless_workgroup_sqs_notification_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-deploy-redshift-sqs-missing-permission-negative", "deployments": [], "key": "redshift__sqs/cfn-deploy-redshift-sqs-missing-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "lambda:Invoke", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cfn_deploy_redshift_sqs_missing_permission_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-deploy-redshift-sqs-queue-policy-negative", "deployments": [], "key": "redshift__sqs/cfn-deploy-redshift-sqs-queue-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cfn_deploy_redshift_sqs_queue_policy_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-deploy-redshift-sqs-role-trust-positive", "deployments": [], "key": "redshift__sqs/cfn-deploy-redshift-sqs-role-trust-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:PutEvents", "iam:GetRole", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cfn_deploy_redshift_sqs_role_trust_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-iam-role-trust-sqs-principal-positive", "deployments": [], "key": "redshift__sqs/cfn-iam-role-trust-sqs-principal-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_cfn_iam_role_trust_sqs_principal_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-redshift-cluster-event-sqs-queue-arn-resolution-positive", "deployments": [], "key": "redshift__sqs/cfn-redshift-cluster-event-sqs-queue-arn-resolution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "events:ListTargetsByRule", "events:PutEvents", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cfn_redshift_cluster_event_sqs_queue_arn_resolution_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cfn-stack-update-redshift-event-categories-positive", "deployments": [], "key": "redshift__sqs/cfn-stack-update-redshift-event-categories-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "events:PutEvents", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cfn_stack_update_redshift_event_categories_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cli-eventbridge-put-rule-wrong-target-arn-negative", "deployments": [], "key": "redshift__sqs/cli-eventbridge-put-rule-wrong-target-arn-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_cli_eventbridge_put_rule_wrong_target_arn_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cli-redshift-data-execute-statement-eventbridge-sqs-notify", "deployments": [], "key": "redshift__sqs/cli-redshift-data-execute-statement-eventbridge-sqs-notify", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_cli_redshift_data_execute_statement_eventbridge_sqs_notify.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cli-redshift-data-failed-statement-error-event-to-sqs-positive", "deployments": [], "key": "redshift__sqs/cli-redshift-data-failed-statement-error-event-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_cli_redshift_data_failed_statement_error_event_to_sqs_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cli-redshift-describe-clusters-forward-to-sqs", "deployments": [], "key": "redshift__sqs/cli-redshift-describe-clusters-forward-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cli_redshift_describe_clusters_forward_to_sqs.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cli-redshift-event-subscription-sqs-poll", "deployments": [], "key": "redshift__sqs/cli-redshift-event-subscription-sqs-poll", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift:DeleteClusterParameterGroup", "redshift:DeleteEventSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_cli_redshift_event_subscription_sqs_poll.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cli-redshift-sqs-missing-queue-negative", "deployments": [], "key": "redshift__sqs/cli-redshift-sqs-missing-queue-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage"], "path": "behavioral/redshift__sqs/check_cli_redshift_sqs_missing_queue_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cli-sqs-purge-queue-then-no-stale-redshift-event-negative", "deployments": [], "key": "redshift__sqs/cli-sqs-purge-queue-then-no-stale-redshift-event-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_cli_sqs_purge_queue_then_no_stale_redshift_event_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.cli-sqs-receive-redshift-completion-message-positive", "deployments": [], "key": "redshift__sqs/cli-sqs-receive-redshift-completion-message-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "redshift:CreateCluster", "redshift:CreateClusterSubnetGroup", "redshift:DeleteCluster", "redshift:DeleteClusterSubnetGroup", "redshift:DescribeClusters", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_cli_sqs_receive_redshift_completion_message_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.data-api-with-event-emits-a-real-statement-event-and-the-default-emits-none", "deployments": [], "key": "redshift__sqs/data-api-with-event-emits-a-real-statement-event-and-the-default-emits-none", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:DescribeClusters", "redshift:DescribeOrderableClusterOptions", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_data_api_with_event_emits_a_real_statement_event_and_the_default_emits_none.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.eventbridge-redshift-event-pattern-mismatch-no-delivery-negative", "deployments": [], "key": "redshift__sqs/eventbridge-redshift-event-pattern-mismatch-no-delivery-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_eventbridge_redshift_event_pattern_mismatch_no_delivery_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.eventbridge-rule-disabled-no-delivery-negative", "deployments": [], "key": "redshift__sqs/eventbridge-rule-disabled-no-delivery-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_eventbridge_rule_disabled_no_delivery_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.eventbridge-rule-event-pattern-mismatch-redshift-negative", "deployments": [], "key": "redshift__sqs/eventbridge-rule-event-pattern-mismatch-redshift-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_eventbridge_rule_event_pattern_mismatch_redshift_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.eventbridge-rule-missing-sqs-queue-policy-negative", "deployments": [], "key": "redshift__sqs/eventbridge-rule-missing-sqs-queue-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_eventbridge_rule_missing_sqs_queue_policy_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.eventbridge-rule-missing-sqs-resource-policy-negative", "deployments": [], "key": "redshift__sqs/eventbridge-rule-missing-sqs-resource-policy-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_eventbridge_rule_missing_sqs_resource_policy_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.iam-role-trust-policy-sqs-service-principal-positive", "deployments": [], "key": "redshift__sqs/iam-role-trust-policy-sqs-service-principal-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:SimulatePrincipalPolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_iam_role_trust_policy_sqs_service_principal_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.iam-role-trust-policy-wrong-principal-negative", "deployments": [], "key": "redshift__sqs/iam-role-trust-policy-wrong-principal-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_iam_role_trust_policy_wrong_principal_negative.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.iam-role-trust-sqs-service-principal-positive", "deployments": [], "key": "redshift__sqs/iam-role-trust-sqs-service-principal-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_iam_role_trust_sqs_service_principal_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.redshift-cluster-event-rule-sqs-target-positive", "deployments": [], "key": "redshift__sqs/redshift-cluster-event-rule-sqs-target-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_redshift_cluster_event_rule_sqs_target_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.redshift-cluster-status-event-to-sqs-positive", "deployments": [], "key": "redshift__sqs/redshift-cluster-status-event-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_redshift_cluster_status_event_to_sqs_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.redshift-data-api-statement-completion-event-sqs-positive", "deployments": [], "key": "redshift__sqs/redshift-data-api-statement-completion-event-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_redshift_data_api_statement_completion_event_sqs_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.redshift-data-api-statement-status-change-to-sqs-positive", "deployments": [], "key": "redshift__sqs/redshift-data-api-statement-status-change-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_redshift_data_api_statement_status_change_to_sqs_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.redshift-multiple-event-categories-filtered-to-sqs-positive", "deployments": [], "key": "redshift__sqs/redshift-multiple-event-categories-filtered-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_redshift_multiple_event_categories_filtered_to_sqs_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.redshift-parameter-group-event-sqs-notification-positive", "deployments": [], "key": "redshift__sqs/redshift-parameter-group-event-sqs-notification-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_redshift_parameter_group_event_sqs_notification_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.redshift-snapshot-event-eventbridge-sqs-positive", "deployments": [], "key": "redshift__sqs/redshift-snapshot-event-eventbridge-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_redshift_snapshot_event_eventbridge_sqs_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.redshift-snapshot-event-to-sqs-positive", "deployments": [], "key": "redshift__sqs/redshift-snapshot-event-to-sqs-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_redshift_snapshot_event_to_sqs_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.sdk-redshift-describe-events-to-sqs-manual-forward", "deployments": [], "key": "redshift__sqs/sdk-redshift-describe-events-to-sqs-manual-forward", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["redshift:DescribeEventCategories", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/redshift__sqs/check_sdk_redshift_describe_events_to_sqs_manual_forward.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.sqs-dead-letter-queue-captures-failed-eventbridge-delivery-positive", "deployments": [], "key": "redshift__sqs/sqs-dead-letter-queue-captures-failed-eventbridge-delivery-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:TagResource", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_sqs_dead_letter_queue_captures_failed_eventbridge_delivery_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.sqs-dlq-for-redshift-event-rule-positive", "deployments": [], "key": "redshift__sqs/sqs-dlq-for-redshift-event-rule-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_sqs_dlq_for_redshift_event_rule_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.sqs-queue-policy-allows-events-service-principal-positive", "deployments": [], "key": "redshift__sqs/sqs-queue-policy-allows-events-service-principal-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/redshift__sqs/check_sqs_queue_policy_allows_events_service_principal_positive.py", "service": "redshift__sqs"} {"check_id": "redshift__sqs.sqs-queue-policy-wrong-source-arn-condition-negative", "deployments": [], "key": "redshift__sqs/sqs-queue-policy-wrong-source-arn-condition-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["events:DeleteRule", "events:PutEvents", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/redshift__sqs/check_sqs_queue_policy_wrong_source_arn_condition_negative.py", "service": "redshift__sqs"} {"check_id": "rekognition.associate-faces-unknown-face-id-partial-failure", "deployments": [], "key": "rekognition/associate-faces-unknown-face-id-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["rekognition:AssociateFaces", "rekognition:CreateCollection", "rekognition:CreateUser", "rekognition:DeleteCollection", "rekognition:ListFaces"], "path": "behavioral/rekognition/check_associate_faces_unknown_face_id_partial_failure.py", "service": "rekognition"} {"check_id": "rekognition.collection-lifecycle-create-describe-delete", "deployments": [], "key": "rekognition/collection-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:DescribeCollection"], "path": "behavioral/rekognition/check_collection_lifecycle_create_describe_delete.py", "service": "rekognition"} {"check_id": "rekognition.compare-faces-match-then-no-face-rejected", "deployments": ["behavioral/rekognition/deployments/face.jpg"], "key": "rekognition/compare-faces-match-then-no-face-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rekognition:CompareFaces"], "path": "behavioral/rekognition/check_compare_faces_match_then_no_face_rejected.py", "service": "rekognition"} {"check_id": "rekognition.concurrent-create-collection-same-id-race", "deployments": [], "key": "rekognition/concurrent-create-collection-same-id-race", "labels": ["axis:rejection", "plane:control"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:DescribeCollection", "rekognition:TagResource"], "path": "behavioral/rekognition/check_concurrent_create_collection_same_id_race.py", "service": "rekognition"} {"check_id": "rekognition.create-collection-duplicate-id-rejected", "deployments": [], "key": "rekognition/create-collection-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:DescribeCollection"], "path": "behavioral/rekognition/check_create_collection_duplicate_id_rejected.py", "service": "rekognition"} {"check_id": "rekognition.create-user-associate-disassociate-faces-and-search-users", "deployments": ["behavioral/rekognition/deployments/face.jpg"], "key": "rekognition/create-user-associate-disassociate-faces-and-search-users", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:AssociateFaces", "rekognition:CreateCollection", "rekognition:CreateUser", "rekognition:DeleteCollection", "rekognition:DescribeCollection", "rekognition:DisassociateFaces", "rekognition:IndexFaces", "rekognition:ListFaces", "rekognition:ListUsers", "rekognition:SearchUsersByImage"], "path": "behavioral/rekognition/check_create_user_associate_disassociate_faces_and_search_users.py", "service": "rekognition"} {"check_id": "rekognition.create-user-idempotent-token-mismatch-rejected", "deployments": [], "key": "rekognition/create-user-idempotent-token-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rekognition:CreateCollection", "rekognition:CreateUser", "rekognition:DeleteCollection", "rekognition:ListUsers"], "path": "behavioral/rekognition/check_create_user_idempotent_token_mismatch_rejected.py", "service": "rekognition"} {"check_id": "rekognition.delete-faces-partial-failure-and-state", "deployments": ["behavioral/rekognition/deployments/face.jpg"], "key": "rekognition/delete-faces-partial-failure-and-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:DeleteFaces", "rekognition:DescribeCollection", "rekognition:IndexFaces", "rekognition:ListFaces"], "path": "behavioral/rekognition/check_delete_faces_partial_failure_and_state.py", "service": "rekognition"} {"check_id": "rekognition.delete-project-policy-wrong-revision-rejected", "deployments": [], "key": "rekognition/delete-project-policy-wrong-revision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rekognition:CreateProject", "rekognition:DeleteProject", "rekognition:DeleteProjectPolicy", "rekognition:ListProjectPolicies", "rekognition:PutProjectPolicy", "sts:GetCallerIdentity"], "path": "behavioral/rekognition/check_delete_project_policy_wrong_revision_rejected.py", "service": "rekognition"} {"check_id": "rekognition.delete-user-removes-user", "deployments": [], "key": "rekognition/delete-user-removes-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["rekognition:CreateCollection", "rekognition:CreateUser", "rekognition:DeleteCollection", "rekognition:DeleteUser", "rekognition:ListUsers"], "path": "behavioral/rekognition/check_delete_user_removes_user.py", "service": "rekognition"} {"check_id": "rekognition.detect-faces-no-face-image-returns-empty", "deployments": ["behavioral/rekognition/deployments/face.jpg"], "key": "rekognition/detect-faces-no-face-image-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:DetectFaces"], "path": "behavioral/rekognition/check_detect_faces_no_face_image_returns_empty.py", "service": "rekognition"} {"check_id": "rekognition.detect-moderation-labels-safe-image-returns-empty", "deployments": [], "key": "rekognition/detect-moderation-labels-safe-image-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:DetectModerationLabels"], "path": "behavioral/rekognition/check_detect_moderation_labels_safe_image_returns_empty.py", "service": "rekognition"} {"check_id": "rekognition.detect-protective-equipment-no-person-returns-empty", "deployments": ["behavioral/rekognition/deployments/face.jpg"], "key": "rekognition/detect-protective-equipment-no-person-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:DetectProtectiveEquipment"], "path": "behavioral/rekognition/check_detect_protective_equipment_no_person_returns_empty.py", "service": "rekognition"} {"check_id": "rekognition.index-faces-no-face-image-returns-empty", "deployments": [], "key": "rekognition/index-faces-no-face-image-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:DescribeCollection", "rekognition:IndexFaces"], "path": "behavioral/rekognition/check_index_faces_no_face_image_returns_empty.py", "service": "rekognition"} {"check_id": "rekognition.index-faces-success-face-record", "deployments": ["behavioral/rekognition/deployments/face.jpg"], "key": "rekognition/index-faces-success-face-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:DescribeCollection", "rekognition:IndexFaces"], "path": "behavioral/rekognition/check_index_faces_success_face_record.py", "service": "rekognition"} {"check_id": "rekognition.list-collections-reflects-created-and-deleted", "deployments": [], "key": "rekognition/list-collections-reflects-created-and-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:ListCollections"], "path": "behavioral/rekognition/check_list_collections_reflects_created_and_deleted.py", "service": "rekognition"} {"check_id": "rekognition.list-faces-empty-collection-returns-model-version", "deployments": [], "key": "rekognition/list-faces-empty-collection-returns-model-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:ListFaces"], "path": "behavioral/rekognition/check_list_faces_empty_collection_returns_model_version.py", "service": "rekognition"} {"check_id": "rekognition.project-lifecycle-create-list-delete", "deployments": [], "key": "rekognition/project-lifecycle-create-list-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["rekognition:CreateProject", "rekognition:DeleteProject", "rekognition:DescribeProjects"], "path": "behavioral/rekognition/check_project_lifecycle_create_list_delete.py", "service": "rekognition"} {"check_id": "rekognition.put-project-policy-malformed-document-rejected", "deployments": [], "key": "rekognition/put-project-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rekognition:CreateProject", "rekognition:DeleteProject", "rekognition:ListProjectPolicies", "rekognition:PutProjectPolicy", "sts:GetCallerIdentity"], "path": "behavioral/rekognition/check_put_project_policy_malformed_document_rejected.py", "service": "rekognition"} {"check_id": "rekognition.recognize-celebrities-no-face-returns-empty", "deployments": ["behavioral/rekognition/deployments/face.jpg"], "key": "rekognition/recognize-celebrities-no-face-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:RecognizeCelebrities"], "path": "behavioral/rekognition/check_recognize_celebrities_no_face_returns_empty.py", "service": "rekognition"} {"check_id": "rekognition.search-faces-round-trip-by-id-and-image", "deployments": ["behavioral/rekognition/deployments/face.jpg"], "key": "rekognition/search-faces-round-trip-by-id-and-image", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:IndexFaces", "rekognition:SearchFaces", "rekognition:SearchFacesByImage"], "path": "behavioral/rekognition/check_search_faces_round_trip_by_id_and_image.py", "service": "rekognition"} {"check_id": "rekognition.start-face-detection-invalid-s3-object-rejected", "deployments": [], "key": "rekognition/start-face-detection-invalid-s3-object-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rekognition:StartFaceDetection", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/rekognition/check_start_face_detection_invalid_s3_object_rejected.py", "service": "rekognition"} {"check_id": "rekognition.start-label-detection-job-reaches-terminal-state", "deployments": ["behavioral/rekognition/deployments/face.mp4"], "key": "rekognition/start-label-detection-job-reaches-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rekognition:GetLabelDetection", "rekognition:StartLabelDetection", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/rekognition/check_start_label_detection_job_reaches_terminal_state.py", "service": "rekognition"} {"check_id": "rekognition.tag-untag-resource-round-trip", "deployments": [], "key": "rekognition/tag-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rekognition:CreateCollection", "rekognition:DeleteCollection", "rekognition:ListTagsForResource", "rekognition:TagResource", "rekognition:UntagResource"], "path": "behavioral/rekognition/check_tag_untag_resource_round_trip.py", "service": "rekognition"} {"check_id": "resiliencehub.app-without-mapped-resources-rejects-publish", "deployments": [], "key": "resiliencehub/app-without-mapped-resources-rejects-publish", "labels": ["axis:rejection", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:ListAppVersions", "resiliencehub:PublishAppVersion", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/resiliencehub/check_app_without_mapped_resources_rejects_publish.py", "service": "resiliencehub"} {"check_id": "resiliencehub.assessment-grades-app-against-policy-targets", "deployments": [], "key": "resiliencehub/assessment-grades-app-against-policy-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:DescribeAppAssessment", "resiliencehub:DescribeAppVersionResourcesResolutionStatus", "resiliencehub:PublishAppVersion", "resiliencehub:ResolveAppVersionResources", "resiliencehub:StartAppAssessment", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/resiliencehub/check_assessment_grades_app_against_policy_targets.py", "service": "resiliencehub"} {"check_id": "resiliencehub.assessment-produces-policy-compliance-verdict", "deployments": [], "key": "resiliencehub/assessment-produces-policy-compliance-verdict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteAppAssessment", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:DescribeApp", "resiliencehub:DescribeAppAssessment", "resiliencehub:ListAppAssessments", "resiliencehub:PublishAppVersion", "resiliencehub:StartAppAssessment", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/resiliencehub/check_assessment_produces_policy_compliance_verdict.py", "service": "resiliencehub"} {"check_id": "resiliencehub.assessment-verdict-propagates-to-app-record", "deployments": [], "key": "resiliencehub/assessment-verdict-propagates-to-app-record", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:DescribeApp", "resiliencehub:DescribeAppAssessment", "resiliencehub:DescribeAppVersionResourcesResolutionStatus", "resiliencehub:PublishAppVersion", "resiliencehub:ResolveAppVersionResources", "resiliencehub:StartAppAssessment", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/resiliencehub/check_assessment_verdict_propagates_to_app_record.py", "service": "resiliencehub"} {"check_id": "resiliencehub.draft-app-version-assessment-rejected", "deployments": [], "key": "resiliencehub/draft-app-version-assessment-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteAppAssessment", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:DescribeAppAssessment", "resiliencehub:ListAppAssessments", "resiliencehub:PublishAppVersion", "resiliencehub:StartAppAssessment", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/resiliencehub/check_draft_app_version_assessment_rejected.py", "service": "resiliencehub"} {"check_id": "resiliencehub.draft-version-assessment-rejected", "deployments": [], "key": "resiliencehub/draft-version-assessment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:DescribeAppVersionResourcesResolutionStatus", "resiliencehub:PublishAppVersion", "resiliencehub:ResolveAppVersionResources", "resiliencehub:StartAppAssessment", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/resiliencehub/check_draft_version_assessment_rejected.py", "service": "resiliencehub"} {"check_id": "resiliencehub.policy-delete-blocked-while-app-associated", "deployments": [], "key": "resiliencehub/policy-delete-blocked-while-app-associated", "labels": ["axis:rejection", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:DescribeApp", "resiliencehub:DescribeResiliencyPolicy"], "path": "behavioral/resiliencehub/check_policy_delete_blocked_while_app_associated.py", "service": "resiliencehub"} {"check_id": "resiliencehub.policy-deletion-blocked-while-attached-to-app", "deployments": [], "key": "resiliencehub/policy-deletion-blocked-while-attached-to-app", "labels": ["axis:rejection", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:DescribeApp", "resiliencehub:DescribeResiliencyPolicy", "resiliencehub:UpdateApp"], "path": "behavioral/resiliencehub/check_policy_deletion_blocked_while_attached_to_app.py", "service": "resiliencehub"} {"check_id": "resiliencehub.publish-of-empty-app-template-rejected", "deployments": [], "key": "resiliencehub/publish-of-empty-app-template-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:DeleteApp", "resiliencehub:DescribeAppVersionResourcesResolutionStatus", "resiliencehub:PublishAppVersion", "resiliencehub:ResolveAppVersionResources", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/resiliencehub/check_publish_of_empty_app_template_rejected.py", "service": "resiliencehub"} {"check_id": "resiliencehub.published-app-version-freezes-resource-mapping", "deployments": [], "key": "resiliencehub/published-app-version-freezes-resource-mapping", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:CreateResiliencyPolicy", "resiliencehub:DeleteApp", "resiliencehub:DeleteAppVersionResource", "resiliencehub:DeleteResiliencyPolicy", "resiliencehub:DescribeAppVersionResourcesResolutionStatus", "resiliencehub:DescribeAppVersionTemplate", "resiliencehub:ListAppVersionResources", "resiliencehub:ListAppVersions", "resiliencehub:PublishAppVersion", "resiliencehub:ResolveAppVersionResources", "s3:CreateBucket", "s3:DeleteBucket"], "path": "behavioral/resiliencehub/check_published_app_version_freezes_resource_mapping.py", "service": "resiliencehub"} {"check_id": "resiliencehub.published-version-freezes-resource-mapping", "deployments": [], "key": "resiliencehub/published-version-freezes-resource-mapping", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehub:CreateApp", "resiliencehub:CreateAppVersionAppComponent", "resiliencehub:CreateAppVersionResource", "resiliencehub:DeleteApp", "resiliencehub:DescribeAppVersionResourcesResolutionStatus", "resiliencehub:DescribeAppVersionTemplate", "resiliencehub:PublishAppVersion", "resiliencehub:ResolveAppVersionResources", "s3:CreateBucket", "s3:DeleteBucket", "sts:GetCallerIdentity"], "path": "behavioral/resiliencehub/check_published_version_freezes_resource_mapping.py", "service": "resiliencehub"} {"check_id": "resiliencehubv2.assertion-gone-after-delete-while-sibling-stays", "deployments": [], "key": "resiliencehubv2/assertion-gone-after-delete-while-sibling-stays", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateAssertion", "resiliencehubv2:CreateService", "resiliencehubv2:DeleteAssertion", "resiliencehubv2:DeleteService", "resiliencehubv2:ListAssertions", "resiliencehubv2:UpdateAssertion"], "path": "behavioral/resiliencehubv2/check_assertion_gone_after_delete_while_sibling_stays.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.assertion-lifecycle-is-recorded-in-service-events", "deployments": [], "key": "resiliencehubv2/assertion-lifecycle-is-recorded-in-service-events", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateAssertion", "resiliencehubv2:CreateService", "resiliencehubv2:DeleteAssertion", "resiliencehubv2:DeleteService", "resiliencehubv2:ListServiceEvents", "resiliencehubv2:UpdateAssertion"], "path": "behavioral/resiliencehubv2/check_assertion_lifecycle_is_recorded_in_service_events.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.associate-service-rejects-unknown-system", "deployments": [], "key": "resiliencehubv2/associate-service-rejects-unknown-system", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateSystem", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetService", "resiliencehubv2:UpdateService"], "path": "behavioral/resiliencehubv2/check_associate_service_rejects_unknown_system.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.associate-service-rejects-unknown-user-journey", "deployments": [], "key": "resiliencehubv2/associate-service-rejects-unknown-user-journey", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateSystem", "resiliencehubv2:CreateUserJourney", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetService", "resiliencehubv2:ListServices", "resiliencehubv2:UpdateService"], "path": "behavioral/resiliencehubv2/check_associate_service_rejects_unknown_user_journey.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.availability-slo-target-rejects-values-outside-the-allowed-set", "deployments": [], "key": "resiliencehubv2/availability-slo-target-rejects-values-outside-the-allowed-set", "labels": ["axis:rejection", "plane:control"], "operations": ["resiliencehubv2:CreatePolicy", "resiliencehubv2:DeletePolicy", "resiliencehubv2:GetPolicy", "resiliencehubv2:ListPolicies", "resiliencehubv2:UpdatePolicy"], "path": "behavioral/resiliencehubv2/check_availability_slo_target_rejects_values_outside_the_allowed_set.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.create-policy-client-token-replays-and-guards-the-original-request", "deployments": [], "key": "resiliencehubv2/create-policy-client-token-replays-and-guards-the-original-request", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehubv2:CreatePolicy", "resiliencehubv2:DeletePolicy", "resiliencehubv2:GetPolicy", "resiliencehubv2:ListPolicies"], "path": "behavioral/resiliencehubv2/check_create_policy_client_token_replays_and_guards_the_original_request.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.create-policy-rejects-duplicate-name-until-deleted", "deployments": [], "key": "resiliencehubv2/create-policy-rejects-duplicate-name-until-deleted", "labels": ["axis:rejection", "plane:control"], "operations": ["resiliencehubv2:CreatePolicy", "resiliencehubv2:DeletePolicy", "resiliencehubv2:GetPolicy"], "path": "behavioral/resiliencehubv2/check_create_policy_rejects_duplicate_name_until_deleted.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.create-service-rejects-duplicate-name-until-deleted", "deployments": [], "key": "resiliencehubv2/create-service-rejects-duplicate-name-until-deleted", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:DeleteService", "resiliencehubv2:GetService"], "path": "behavioral/resiliencehubv2/check_create_service_rejects_duplicate_name_until_deleted.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.create-service-rejects-invoker-role-that-trusts-another-principal", "deployments": [], "key": "resiliencehubv2/create-service-rejects-invoker-role-that-trusts-another-principal", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:DeleteService", "resiliencehubv2:ListServices"], "path": "behavioral/resiliencehubv2/check_create_service_rejects_invoker_role_that_trusts_another_principal.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.create-system-same-client-token-is-idempotent", "deployments": [], "key": "resiliencehubv2/create-system-same-client-token-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehubv2:CreateSystem", "resiliencehubv2:DeleteSystem", "resiliencehubv2:ListSystems"], "path": "behavioral/resiliencehubv2/check_create_system_same_client_token_is_idempotent.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.create-system-token-reuse-with-different-params-conflicts", "deployments": [], "key": "resiliencehubv2/create-system-token-reuse-with-different-params-conflicts", "labels": ["axis:rejection", "plane:control"], "operations": ["resiliencehubv2:CreateSystem", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetSystem", "resiliencehubv2:ListSystems"], "path": "behavioral/resiliencehubv2/check_create_system_token_reuse_with_different_params_conflicts.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.create-test-rejects-unknown-template", "deployments": [], "key": "resiliencehubv2/create-test-rejects-unknown-template", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateTest", "resiliencehubv2:DeleteService", "resiliencehubv2:GetTestTemplate", "resiliencehubv2:ListTests"], "path": "behavioral/resiliencehubv2/check_create_test_rejects_unknown_template.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.delete-service-cascades-to-child-resources", "deployments": [], "key": "resiliencehubv2/delete-service-cascades-to-child-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateAssertion", "resiliencehubv2:CreateInputSource", "resiliencehubv2:CreateService", "resiliencehubv2:CreateServiceFunction", "resiliencehubv2:DeleteInputSource", "resiliencehubv2:DeleteService", "resiliencehubv2:GetService", "resiliencehubv2:ListAssertions", "resiliencehubv2:ListInputSources", "resiliencehubv2:ListServiceFunctions"], "path": "behavioral/resiliencehubv2/check_delete_service_cascades_to_child_resources.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.delete-system-rejected-while-a-service-is-associated", "deployments": [], "key": "resiliencehubv2/delete-system-rejected-while-a-service-is-associated", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateSystem", "resiliencehubv2:CreateUserJourney", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetSystem", "resiliencehubv2:ListServices", "resiliencehubv2:ListUserJourneys", "resiliencehubv2:UpdateService"], "path": "behavioral/resiliencehubv2/check_delete_system_rejected_while_a_service_is_associated.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.delete-system-removes-its-user-journeys", "deployments": [], "key": "resiliencehubv2/delete-system-removes-its-user-journeys", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehubv2:CreateSystem", "resiliencehubv2:CreateUserJourney", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetUserJourney", "resiliencehubv2:ListUserJourneys"], "path": "behavioral/resiliencehubv2/check_delete_system_removes_its_user_journeys.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.deleting-referenced-policy-clears-service-effective-policy-values", "deployments": [], "key": "resiliencehubv2/deleting-referenced-policy-clears-service-effective-policy-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteService", "resiliencehubv2:GetPolicy", "resiliencehubv2:GetService"], "path": "behavioral/resiliencehubv2/check_deleting_referenced_policy_clears_service_effective_policy_values.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.deleting-the-associated-service-releases-the-system", "deployments": [], "key": "resiliencehubv2/deleting-the-associated-service-releases-the-system", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateSystem", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetSystem", "resiliencehubv2:ListServices", "resiliencehubv2:UpdateService"], "path": "behavioral/resiliencehubv2/check_deleting_the_associated_service_releases_the_system.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.effective-policy-values-take-the-strictest-target-across-service-and-journey-policies", "deployments": [], "key": "resiliencehubv2/effective-policy-values-take-the-strictest-target-across-service-and-journey-policies", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:CreateSystem", "resiliencehubv2:CreateUserJourney", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetPolicy", "resiliencehubv2:GetService", "resiliencehubv2:UpdateService"], "path": "behavioral/resiliencehubv2/check_effective_policy_values_take_the_strictest_target_across_service_and_journey_policies.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.function-resources-rejected-for-undiscovered-resource", "deployments": [], "key": "resiliencehubv2/function-resources-rejected-for-undiscovered-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateServiceFunction", "resiliencehubv2:CreateServiceFunctionResources", "resiliencehubv2:DeleteService", "resiliencehubv2:ListResources", "resiliencehubv2:ListServiceFunctions"], "path": "behavioral/resiliencehubv2/check_function_resources_rejected_for_undiscovered_resource.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.input-sources-with-identical-tags-are-distinct-and-deleted-individually", "deployments": [], "key": "resiliencehubv2/input-sources-with-identical-tags-are-distinct-and-deleted-individually", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateInputSource", "resiliencehubv2:CreateService", "resiliencehubv2:DeleteInputSource", "resiliencehubv2:DeleteService", "resiliencehubv2:ListInputSources"], "path": "behavioral/resiliencehubv2/check_input_sources_with_identical_tags_are_distinct_and_deleted_individually.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.multi-region-template-rejected-for-a-single-region-service", "deployments": [], "key": "resiliencehubv2/multi-region-template-rejected-for-a-single-region-service", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateTest", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteTest", "resiliencehubv2:ListTests"], "path": "behavioral/resiliencehubv2/check_multi_region_template_rejected_for_a_single_region_service.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.one-test-per-template-per-service", "deployments": [], "key": "resiliencehubv2/one-test-per-template-per-service", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateTest", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteTest", "resiliencehubv2:GetTest", "resiliencehubv2:ListTests"], "path": "behavioral/resiliencehubv2/check_one_test_per_template_per_service.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.policy-reassignment-moves-the-associated-service-count", "deployments": [], "key": "resiliencehubv2/policy-reassignment-moves-the-associated-service-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteService", "resiliencehubv2:GetPolicy", "resiliencehubv2:GetService", "resiliencehubv2:ListServices", "resiliencehubv2:UpdateService"], "path": "behavioral/resiliencehubv2/check_policy_reassignment_moves_the_associated_service_count.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.policy-update-propagates-to-referencing-service-effective-values", "deployments": [], "key": "resiliencehubv2/policy-update-propagates-to-referencing-service-effective-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteService", "resiliencehubv2:GetPolicy", "resiliencehubv2:GetService", "resiliencehubv2:UpdatePolicy"], "path": "behavioral/resiliencehubv2/check_policy_update_propagates_to_referencing_service_effective_values.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.service-events-type-filter-and-pages-partition-the-log", "deployments": [], "key": "resiliencehubv2/service-events-type-filter-and-pages-partition-the-log", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateAssertion", "resiliencehubv2:CreateService", "resiliencehubv2:CreateServiceFunction", "resiliencehubv2:DeleteService", "resiliencehubv2:ListServiceEvents"], "path": "behavioral/resiliencehubv2/check_service_events_type_filter_and_pages_partition_the_log.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.service-function-update-changes-only-the-named-fields", "deployments": [], "key": "resiliencehubv2/service-function-update-changes-only-the-named-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateServiceFunction", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteServiceFunction", "resiliencehubv2:ListServiceFunctions", "resiliencehubv2:UpdateServiceFunction"], "path": "behavioral/resiliencehubv2/check_service_function_update_changes_only_the_named_fields.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.stop-condition-with-source-none-rejects-a-value", "deployments": [], "key": "resiliencehubv2/stop-condition-with-source-none-rejects-a-value", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateTest", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteTest", "resiliencehubv2:GetTest", "resiliencehubv2:UpdateTest"], "path": "behavioral/resiliencehubv2/check_stop_condition_with_source_none_rejects_a_value.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.system-association-without-journey-carries-no-journey-policy", "deployments": [], "key": "resiliencehubv2/system-association-without-journey-carries-no-journey-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:CreateSystem", "resiliencehubv2:CreateUserJourney", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetService", "resiliencehubv2:ListServices", "resiliencehubv2:UpdateService"], "path": "behavioral/resiliencehubv2/check_system_association_without_journey_carries_no_journey_policy.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.tags-added-and-removed-are-reflected-on-policy-and-system", "deployments": [], "key": "resiliencehubv2/tags-added-and-removed-are-reflected-on-policy-and-system", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateSystem", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetPolicy", "resiliencehubv2:GetSystem", "resiliencehubv2:ListTagsForResource", "resiliencehubv2:TagResource", "resiliencehubv2:UntagResource"], "path": "behavioral/resiliencehubv2/check_tags_added_and_removed_are_reflected_on_policy_and_system.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.test-creation-requires-multi-az-rto-on-services-policy", "deployments": [], "key": "resiliencehubv2/test-creation-requires-multi-az-rto-on-services-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:CreateTest", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteTest", "resiliencehubv2:GetPolicy", "resiliencehubv2:ListTests", "resiliencehubv2:UpdatePolicy"], "path": "behavioral/resiliencehubv2/check_test_creation_requires_multi_az_rto_on_services_policy.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.test-parameters-rejected-when-they-break-the-template-contract", "deployments": [], "key": "resiliencehubv2/test-parameters-rejected-when-they-break-the-template-contract", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateTest", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteTest", "resiliencehubv2:GetTest", "resiliencehubv2:UpdateTest"], "path": "behavioral/resiliencehubv2/check_test_parameters_rejected_when_they_break_the_template_contract.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.update-test-replaces-the-parameter-map", "deployments": [], "key": "resiliencehubv2/update-test-replaces-the-parameter-map", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreateService", "resiliencehubv2:CreateTest", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteTest", "resiliencehubv2:GetTest", "resiliencehubv2:UpdateTest"], "path": "behavioral/resiliencehubv2/check_update_test_replaces_the_parameter_map.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.user-journey-lifecycle-is-recorded-in-system-events", "deployments": [], "key": "resiliencehubv2/user-journey-lifecycle-is-recorded-in-system-events", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateSystem", "resiliencehubv2:CreateUserJourney", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteSystem", "resiliencehubv2:DeleteUserJourney", "resiliencehubv2:ListSystemEvents", "resiliencehubv2:UpdateUserJourney"], "path": "behavioral/resiliencehubv2/check_user_journey_lifecycle_is_recorded_in_system_events.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.user-journey-names-repeat-within-a-system-as-distinct-journeys", "deployments": [], "key": "resiliencehubv2/user-journey-names-repeat-within-a-system-as-distinct-journeys", "labels": ["axis:happy-path", "plane:control"], "operations": ["resiliencehubv2:CreateSystem", "resiliencehubv2:CreateUserJourney", "resiliencehubv2:DeleteSystem", "resiliencehubv2:DeleteUserJourney", "resiliencehubv2:GetUserJourney", "resiliencehubv2:ListUserJourneys"], "path": "behavioral/resiliencehubv2/check_user_journey_names_repeat_within_a_system_as_distinct_journeys.py", "service": "resiliencehubv2"} {"check_id": "resiliencehubv2.user-journey-policy-change-propagates-to-associated-service", "deployments": [], "key": "resiliencehubv2/user-journey-policy-change-propagates-to-associated-service", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "resiliencehubv2:CreatePolicy", "resiliencehubv2:CreateService", "resiliencehubv2:CreateSystem", "resiliencehubv2:CreateUserJourney", "resiliencehubv2:DeletePolicy", "resiliencehubv2:DeleteService", "resiliencehubv2:DeleteSystem", "resiliencehubv2:GetService", "resiliencehubv2:UpdateService", "resiliencehubv2:UpdateUserJourney"], "path": "behavioral/resiliencehubv2/check_user_journey_policy_change_propagates_to_associated_service.py", "service": "resiliencehubv2"} {"check_id": "resource-explorer-2.batch-get-view-partial-errors", "deployments": [], "key": "resource-explorer-2/batch-get-view-partial-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-explorer-2:BatchGetView", "resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "sts:GetCallerIdentity"], "path": "behavioral/resource-explorer-2/check_batch_get_view_partial_errors.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.concurrent-create-index-single-winner", "deployments": [], "key": "resource-explorer-2/concurrent-create-index-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:DeleteIndex", "resource-explorer-2:GetIndex"], "path": "behavioral/resource-explorer-2/check_concurrent_create_index_single_winner.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.create-index-conflict-when-exists-rejected", "deployments": [], "key": "resource-explorer-2/create-index-conflict-when-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:DeleteIndex", "resource-explorer-2:GetIndex"], "path": "behavioral/resource-explorer-2/check_create_index_conflict_when_exists_rejected.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.create-index-reaches-active-state", "deployments": [], "key": "resource-explorer-2/create-index-reaches-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:DeleteIndex", "resource-explorer-2:GetIndex"], "path": "behavioral/resource-explorer-2/check_create_index_reaches_active_state.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.create-view-invalid-name-pattern-rejected", "deployments": [], "key": "resource-explorer-2/create-view-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:GetView", "resource-explorer-2:ListViews"], "path": "behavioral/resource-explorer-2/check_create_view_invalid_name_pattern_rejected.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.default-view-association-overwrites-previous", "deployments": [], "key": "resource-explorer-2/default-view-association-overwrites-previous", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:AssociateDefaultView", "resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:DisassociateDefaultView", "resource-explorer-2:GetDefaultView", "resource-explorer-2:GetIndex"], "path": "behavioral/resource-explorer-2/check_default_view_association_overwrites_previous.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.delete-default-view-clears-default-pointer", "deployments": [], "key": "resource-explorer-2/delete-default-view-clears-default-pointer", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:AssociateDefaultView", "resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetDefaultView", "resource-explorer-2:GetIndex", "resource-explorer-2:GetView"], "path": "behavioral/resource-explorer-2/check_delete_default_view_clears_default_pointer.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.delete-index-nonexistent-arn-rejected", "deployments": [], "key": "resource-explorer-2/delete-index-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:DeleteIndex", "resource-explorer-2:GetIndex", "sts:GetCallerIdentity"], "path": "behavioral/resource-explorer-2/check_delete_index_nonexistent_arn_rejected.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.delete-index-transitions-to-not-found", "deployments": [], "key": "resource-explorer-2/delete-index-transitions-to-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:DeleteIndex", "resource-explorer-2:GetIndex"], "path": "behavioral/resource-explorer-2/check_delete_index_transitions_to_not_found.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.disassociate-default-view-when-none-set-is-noop", "deployments": [], "key": "resource-explorer-2/disassociate-default-view-when-none-set-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:AssociateDefaultView", "resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:DisassociateDefaultView", "resource-explorer-2:GetDefaultView", "resource-explorer-2:GetIndex"], "path": "behavioral/resource-explorer-2/check_disassociate_default_view_when_none_set_is_noop.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.list-resources-without-view-or-default-succeeds", "deployments": [], "key": "resource-explorer-2/list-resources-without-view-or-default-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:AssociateDefaultView", "resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:DisassociateDefaultView", "resource-explorer-2:GetDefaultView", "resource-explorer-2:GetIndex", "resource-explorer-2:ListResources"], "path": "behavioral/resource-explorer-2/check_list_resources_without_view_or_default_succeeds.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.resource-explorer-setup-async-task-completes", "deployments": [], "key": "resource-explorer-2/resource-explorer-setup-async-task-completes", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateResourceExplorerSetup", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:GetResourceExplorerSetup", "resource-explorer-2:GetView", "resource-explorer-2:TagResource"], "path": "behavioral/resource-explorer-2/check_resource_explorer_setup_async_task_completes.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.search-explicit-view-overrides-default", "deployments": [], "key": "resource-explorer-2/search-explicit-view-overrides-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:AssociateDefaultView", "resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:DisassociateDefaultView", "resource-explorer-2:GetDefaultView", "resource-explorer-2:GetIndex", "resource-explorer-2:Search"], "path": "behavioral/resource-explorer-2/check_search_explicit_view_overrides_default.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.search-filtered-view-returns-deterministic-empty", "deployments": [], "key": "resource-explorer-2/search-filtered-view-returns-deterministic-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:Search"], "path": "behavioral/resource-explorer-2/check_search_filtered_view_returns_deterministic_empty.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.search-tag-filter-without-tag-view-rejected", "deployments": [], "key": "resource-explorer-2/search-tag-filter-without-tag-view-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:GetView", "resource-explorer-2:Search", "resource-explorer-2:UpdateView"], "path": "behavioral/resource-explorer-2/check_search_tag_filter_without_tag_view_rejected.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.tag-resource-view-round-trip", "deployments": [], "key": "resource-explorer-2/tag-resource-view-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:ListTagsForResource", "resource-explorer-2:TagResource", "resource-explorer-2:UntagResource"], "path": "behavioral/resource-explorer-2/check_tag_resource_view_round_trip.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.update-index-type-toggles-local-aggregator", "deployments": [], "key": "resource-explorer-2/update-index-type-toggles-local-aggregator", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:DeleteIndex", "resource-explorer-2:GetIndex", "resource-explorer-2:UpdateIndexType"], "path": "behavioral/resource-explorer-2/check_update_index_type_toggles_local_aggregator.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.view-create-get-list-delete-lifecycle", "deployments": [], "key": "resource-explorer-2/view-create-get-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:GetView", "resource-explorer-2:ListViews"], "path": "behavioral/resource-explorer-2/check_view_create_get_list_delete_lifecycle.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.view-included-properties-reflected-in-get", "deployments": [], "key": "resource-explorer-2/view-included-properties-reflected-in-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:GetView", "resource-explorer-2:UpdateView"], "path": "behavioral/resource-explorer-2/check_view_included_properties_reflected_in_get.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.view-name-conflict-rejected", "deployments": [], "key": "resource-explorer-2/view-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:GetView"], "path": "behavioral/resource-explorer-2/check_view_name_conflict_rejected.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2.view-update-filter-string-persists", "deployments": [], "key": "resource-explorer-2/view-update-filter-string-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:GetView", "resource-explorer-2:UpdateView"], "path": "behavioral/resource-explorer-2/check_view_update_filter_string_persists.py", "service": "resource-explorer-2"} {"check_id": "resource-explorer-2__sns__sqs.tag-resource-rejects-foreign-service-arn", "deployments": [], "key": "resource-explorer-2__sns__sqs/tag-resource-rejects-foreign-service-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:ListTagsForResource", "resource-explorer-2:TagResource", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource"], "path": "behavioral/resource-explorer-2__sns__sqs/check_tag_resource_rejects_foreign_service_arn.py", "service": "resource-explorer-2__sns__sqs"} {"check_id": "resource-explorer-2__sns__sqs.view-filter-string-scopes-search-results", "deployments": [], "key": "resource-explorer-2__sns__sqs/view-filter-string-scopes-search-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-explorer-2:CreateIndex", "resource-explorer-2:CreateView", "resource-explorer-2:DeleteIndex", "resource-explorer-2:DeleteView", "resource-explorer-2:GetIndex", "resource-explorer-2:ListResources", "sns:CreateTopic", "sns:DeleteTopic", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resource-explorer-2__sns__sqs/check_view_filter_string_scopes_search_results.py", "service": "resource-explorer-2__sns__sqs"} {"check_id": "resource-groups.cloudformation-stack-query-group-membership", "deployments": [], "key": "resource-groups/cloudformation-stack-query-group-membership", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:ListGroupResources"], "path": "behavioral/resource-groups/check_cloudformation_stack_query_group_membership.py", "service": "resource-groups"} {"check_id": "resource-groups.concurrent-tag-merge-all-keys-persist", "deployments": [], "key": "resource-groups/concurrent-tag-merge-all-keys-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetTags", "resource-groups:Tag"], "path": "behavioral/resource-groups/check_concurrent_tag_merge_all_keys_persist.py", "service": "resource-groups"} {"check_id": "resource-groups.create-group-cloudformation-query-missing-stack-identifier-rejected", "deployments": [], "key": "resource-groups/create-group-cloudformation-query-missing-stack-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroup", "resource-groups:GetGroupQuery"], "path": "behavioral/resource-groups/check_create_group_cloudformation_query_missing_stack_identifier_rejected.py", "service": "resource-groups"} {"check_id": "resource-groups.create-group-mutually-exclusive-query-and-configuration-rejected", "deployments": [], "key": "resource-groups/create-group-mutually-exclusive-query-and-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroup"], "path": "behavioral/resource-groups/check_create_group_mutually_exclusive_query_and_configuration_rejected.py", "service": "resource-groups"} {"check_id": "resource-groups.create-group-query-success", "deployments": [], "key": "resource-groups/create-group-query-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroupQuery"], "path": "behavioral/resource-groups/check_create_group_query_success.py", "service": "resource-groups"} {"check_id": "resource-groups.create-group-reserved-name-prefix-rejected", "deployments": [], "key": "resource-groups/create-group-reserved-name-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroup"], "path": "behavioral/resource-groups/check_create_group_reserved_name_prefix_rejected.py", "service": "resource-groups"} {"check_id": "resource-groups.delete-group-query-becomes-not-found", "deployments": [], "key": "resource-groups/delete-group-query-becomes-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroup", "resource-groups:GetGroupQuery"], "path": "behavioral/resource-groups/check_delete_group_query_becomes_not_found.py", "service": "resource-groups"} {"check_id": "resource-groups.get-group-not-found-after-delete", "deployments": [], "key": "resource-groups/get-group-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroup"], "path": "behavioral/resource-groups/check_get_group_not_found_after_delete.py", "service": "resource-groups"} {"check_id": "resource-groups.group-resources-query-based-group-rejected", "deployments": [], "key": "resource-groups/group-resources-query-based-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroupQuery", "resource-groups:GroupResources", "resource-groups:ListGroupResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resource-groups/check_group_resources_query_based_group_rejected.py", "service": "resource-groups"} {"check_id": "resource-groups.list-group-resources-reflects-tag-query-membership", "deployments": [], "key": "resource-groups/list-group-resources-reflects-tag-query-membership", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:ListGroupResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resource-groups/check_list_group_resources_reflects_tag_query_membership.py", "service": "resource-groups"} {"check_id": "resource-groups.list-group-resources-type-filter-mismatch-rejected", "deployments": [], "key": "resource-groups/list-group-resources-type-filter-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:ListGroupResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resource-groups/check_list_group_resources_type_filter_mismatch_rejected.py", "service": "resource-groups"} {"check_id": "resource-groups.list-groups-filter-by-resource-type", "deployments": [], "key": "resource-groups/list-groups-filter-by-resource-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroup", "resource-groups:ListGroups"], "path": "behavioral/resource-groups/check_list_groups_filter_by_resource_type.py", "service": "resource-groups"} {"check_id": "resource-groups.search-resources-no-match-returns-empty", "deployments": [], "key": "resource-groups/search-resources-no-match-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resource-groups:SearchResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resource-groups/check_search_resources_no_match_returns_empty.py", "service": "resource-groups"} {"check_id": "resource-groups.search-resources-tag-filter-matches-tagged-resource", "deployments": [], "key": "resource-groups/search-resources-tag-filter-matches-tagged-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resource-groups:SearchResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resource-groups/check_search_resources_tag_filter_matches_tagged_resource.py", "service": "resource-groups"} {"check_id": "resource-groups.search-resources-type-filter-restricts-results", "deployments": [], "key": "resource-groups/search-resources-type-filter-restricts-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resource-groups:SearchResources", "sns:CreateTopic", "sns:DeleteTopic", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resource-groups/check_search_resources_type_filter_restricts_results.py", "service": "resource-groups"} {"check_id": "resource-groups.tag-merges-with-existing-tags", "deployments": [], "key": "resource-groups/tag-merges-with-existing-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetTags", "resource-groups:Tag"], "path": "behavioral/resource-groups/check_tag_merges_with_existing_tags.py", "service": "resource-groups"} {"check_id": "resource-groups.untag-removes-specified-keys", "deployments": [], "key": "resource-groups/untag-removes-specified-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroup", "resource-groups:GetTags", "resource-groups:Untag"], "path": "behavioral/resource-groups/check_untag_removes_specified_keys.py", "service": "resource-groups"} {"check_id": "resource-groups.update-group-fields-persist", "deployments": [], "key": "resource-groups/update-group-fields-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroup", "resource-groups:GetGroupQuery", "resource-groups:UpdateGroup"], "path": "behavioral/resource-groups/check_update_group_fields_persist.py", "service": "resource-groups"} {"check_id": "resource-groups.update-group-query-changes-membership", "deployments": [], "key": "resource-groups/update-group-query-changes-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroupQuery", "resource-groups:ListGroupResources", "resource-groups:UpdateGroupQuery", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resource-groups/check_update_group_query_changes_membership.py", "service": "resource-groups"} {"check_id": "resource-groups.update-group-query-not-found-after-delete", "deployments": [], "key": "resource-groups/update-group-query-not-found-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["resource-groups:CreateGroup", "resource-groups:DeleteGroup", "resource-groups:GetGroupQuery", "resource-groups:UpdateGroupQuery"], "path": "behavioral/resource-groups/check_update_group_query_not_found_after_delete.py", "service": "resource-groups"} {"check_id": "resourcegroupstaggingapi.get-resources-invalid-pagination-token-rejected", "deployments": [], "key": "resourcegroupstaggingapi/get-resources-invalid-pagination-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:GetTagValues", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_get_resources_invalid_pagination_token_rejected.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.get-resources-out-of-range-page-size-rejected", "deployments": [], "key": "resourcegroupstaggingapi/get-resources-out-of-range-page-size-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_get_resources_out_of_range_page_size_rejected.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.get-resources-pagination-covers-every-tagged-resource", "deployments": [], "key": "resourcegroupstaggingapi/get-resources-pagination-covers-every-tagged-resource", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_get_resources_pagination_covers_every_tagged_resource.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.resource-type-filter-narrows-tag-query", "deployments": [], "key": "resourcegroupstaggingapi/resource-type-filter-narrows-tag-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sns:CreateTopic", "sns:DeleteTopic", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_resource_type_filter_narrows_tag_query.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.tag-filter-finds-resources-across-two-services", "deployments": [], "key": "resourcegroupstaggingapi/tag-filter-finds-resources-across-two-services", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sns:CreateTopic", "sns:DeleteTopic", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_tag_filter_finds_resources_across_two_services.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.tag-filter-value-list-matches-any-listed-value", "deployments": [], "key": "resourcegroupstaggingapi/tag-filter-value-list-matches-any-listed-value", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sns:CreateTopic", "sns:DeleteTopic", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_tag_filter_value_list_matches_any_listed_value.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.tag-keys-and-values-summaries-reflect-tag-changes", "deployments": [], "key": "resourcegroupstaggingapi/tag-keys-and-values-summaries-reflect-tag-changes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:GetTagKeys", "resourcegroupstaggingapi:GetTagValues", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_tag_keys_and_values_summaries_reflect_tag_changes.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.tag-resources-cross-region-arn-rejected", "deployments": [], "key": "resourcegroupstaggingapi/tag-resources-cross-region-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/resourcegroupstaggingapi/check_tag_resources_cross_region_arn_rejected.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.tag-resources-malformed-arn-rejected", "deployments": [], "key": "resourcegroupstaggingapi/tag-resources-malformed-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_tag_resources_malformed_arn_rejected.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.tag-resources-nonexistent-queue-rejected-per-resource", "deployments": [], "key": "resourcegroupstaggingapi/tag-resources-nonexistent-queue-rejected-per-resource", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/resourcegroupstaggingapi/check_tag_resources_nonexistent_queue_rejected_per_resource.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.tag-resources-system-tag-prefix-rejected", "deployments": [], "key": "resourcegroupstaggingapi/tag-resources-system-tag-prefix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_tag_resources_system_tag_prefix_rejected.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.tag-value-overwrite-replaces-previous-value", "deployments": [], "key": "resourcegroupstaggingapi/tag-value-overwrite-replaces-previous-value", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:GetTagValues", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_tag_value_overwrite_replaces_previous_value.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi.untag-removes-resource-from-tag-query", "deployments": [], "key": "resourcegroupstaggingapi/untag-removes-resource-from-tag-query", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["resourcegroupstaggingapi:GetResources", "resourcegroupstaggingapi:TagResources", "resourcegroupstaggingapi:UntagResources", "sns:CreateTopic", "sns:DeleteTopic", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/resourcegroupstaggingapi/check_untag_removes_resource_from_tag_query.py", "service": "resourcegroupstaggingapi"} {"check_id": "resourcegroupstaggingapi__secretsmanager.secret-tags-visible-and-force-deleted-secret-leaves-the-index", "deployments": [], "key": "resourcegroupstaggingapi__secretsmanager/secret-tags-visible-and-force-deleted-secret-leaves-the-index", "labels": ["axis:happy-path", "plane:control"], "operations": ["resourcegroupstaggingapi:GetResources", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/resourcegroupstaggingapi__secretsmanager/check_secret_tags_visible_and_force_deleted_secret_leaves_the_index.py", "service": "resourcegroupstaggingapi__secretsmanager"} {"check_id": "resourcegroupstaggingapi__secretsmanager.tag-resources-nonexistent-secret-rejected-per-resource", "deployments": [], "key": "resourcegroupstaggingapi__secretsmanager/tag-resources-nonexistent-secret-rejected-per-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["resourcegroupstaggingapi:TagResources", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "sts:GetCallerIdentity"], "path": "behavioral/resourcegroupstaggingapi__secretsmanager/check_tag_resources_nonexistent_secret_rejected_per_resource.py", "service": "resourcegroupstaggingapi__secretsmanager"} {"check_id": "resourcegroupstaggingapi__stepfunctions.state-machine-tags-visible-through-get-resources", "deployments": [], "key": "resourcegroupstaggingapi__stepfunctions/state-machine-tags-visible-through-get-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "resourcegroupstaggingapi:GetResources", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:TagResource"], "path": "behavioral/resourcegroupstaggingapi__stepfunctions/check_state_machine_tags_visible_through_get_resources.py", "service": "resourcegroupstaggingapi__stepfunctions"} {"check_id": "resourcegroupstaggingapi__stepfunctions.tag-resources-nonexistent-state-machine-rejected-per-resource", "deployments": [], "key": "resourcegroupstaggingapi__stepfunctions/tag-resources-nonexistent-state-machine-rejected-per-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "resourcegroupstaggingapi:TagResources", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListTagsForResource"], "path": "behavioral/resourcegroupstaggingapi__stepfunctions/check_tag_resources_nonexistent_state_machine_rejected_per_resource.py", "service": "resourcegroupstaggingapi__stepfunctions"} {"check_id": "rolesanywhere.access-denied-without-permission-rejected", "deployments": [], "key": "rolesanywhere/access-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:ListProfiles", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_access_denied_without_permission_rejected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.concurrent-tag-resource-merge-no-lost-writes", "deployments": [], "key": "rolesanywhere/concurrent-tag-resource-merge-no-lost-writes", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:ListTagsForResource", "rolesanywhere:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_concurrent_tag_resource_merge_no_lost_writes.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.create-profile-defaults-reflect-documented-values", "deployments": [], "key": "rolesanywhere/create-profile-defaults-reflect-documented-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:GetProfile", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_create_profile_defaults_reflect_documented_values.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.create-profile-duration-out-of-range-rejected", "deployments": [], "key": "rolesanywhere/create-profile-duration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:GetProfile", "rolesanywhere:ListProfiles", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_create_profile_duration_out_of_range_rejected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.create-profile-role-arns-exceed-max-rejected", "deployments": [], "key": "rolesanywhere/create-profile-role-arns-exceed-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:GetProfile", "rolesanywhere:ListProfiles", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_create_profile_role_arns_exceed_max_rejected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.create-session-disabled-profile-rejected", "deployments": [], "key": "rolesanywhere/create-session-disabled-profile-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "rolesanywhere:CreateProfile", "rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteProfile", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:DisableProfile", "rolesanywhere:EnableProfile", "rolesanywhere:GetProfile"], "path": "behavioral/rolesanywhere/check_create_session_disabled_profile_rejected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.create-session-native-x509-round-trip", "deployments": [], "key": "rolesanywhere/create-session-native-x509-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "rolesanywhere:CreateProfile", "rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteProfile", "rolesanywhere:DeleteTrustAnchor", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_create_session_native_x509_round_trip.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.create-trust-anchor-malformed-certificate-rejected", "deployments": [], "key": "rolesanywhere/create-trust-anchor-malformed-certificate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:GetTrustAnchor", "rolesanywhere:ListTrustAnchors"], "path": "behavioral/rolesanywhere/check_create_trust_anchor_malformed_certificate_rejected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.crl-disable-enable-transition", "deployments": [], "key": "rolesanywhere/crl-disable-enable-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteCrl", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:DisableCrl", "rolesanywhere:EnableCrl", "rolesanywhere:GetCrl", "rolesanywhere:ImportCrl"], "path": "behavioral/rolesanywhere/check_crl_disable_enable_transition.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.get-trust-anchor-malformed-id-validation-rejected", "deployments": [], "key": "rolesanywhere/get-trust-anchor-malformed-id-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:GetTrustAnchor"], "path": "behavioral/rolesanywhere/check_get_trust_anchor_malformed_id_validation_rejected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.get-trust-anchor-nonexistent-not-found", "deployments": [], "key": "rolesanywhere/get-trust-anchor-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:GetTrustAnchor"], "path": "behavioral/rolesanywhere/check_get_trust_anchor_nonexistent_not_found.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.import-crl-reflects-data-and-trust-anchor-link", "deployments": [], "key": "rolesanywhere/import-crl-reflects-data-and-trust-anchor-link", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteCrl", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:GetCrl", "rolesanywhere:ImportCrl"], "path": "behavioral/rolesanywhere/check_import_crl_reflects_data_and_trust_anchor_link.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.list-crls-reflects-membership-across-trust-anchors", "deployments": [], "key": "rolesanywhere/list-crls-reflects-membership-across-trust-anchors", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteCrl", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:ImportCrl", "rolesanywhere:ListCrls"], "path": "behavioral/rolesanywhere/check_list_crls_reflects_membership_across_trust_anchors.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.list-profiles-pagination-completeness", "deployments": [], "key": "rolesanywhere/list-profiles-pagination-completeness", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:ListProfiles", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_list_profiles_pagination_completeness.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.profile-delete-removes-resource", "deployments": [], "key": "rolesanywhere/profile-delete-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:EnableProfile", "rolesanywhere:GetProfile", "rolesanywhere:ListProfiles", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_profile_delete_removes_resource.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.profile-disable-enable-transition", "deployments": [], "key": "rolesanywhere/profile-disable-enable-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:DisableProfile", "rolesanywhere:EnableProfile", "rolesanywhere:GetProfile", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_profile_disable_enable_transition.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.put-and-delete-attribute-mapping", "deployments": [], "key": "rolesanywhere/put-and-delete-attribute-mapping", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteAttributeMapping", "rolesanywhere:DeleteProfile", "rolesanywhere:GetProfile", "rolesanywhere:PutAttributeMapping", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_put_and_delete_attribute_mapping.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.put-and-reset-notification-settings", "deployments": [], "key": "rolesanywhere/put-and-reset-notification-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:GetTrustAnchor", "rolesanywhere:PutNotificationSettings", "rolesanywhere:ResetNotificationSettings", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_put_and_reset_notification_settings.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.put-attribute-mapping-invalid-specifier-rejected", "deployments": [], "key": "rolesanywhere/put-attribute-mapping-invalid-specifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:GetProfile", "rolesanywhere:PutAttributeMapping", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_put_attribute_mapping_invalid_specifier_rejected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.tag-and-untag-resource-roundtrip", "deployments": [], "key": "rolesanywhere/tag-and-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:ListTagsForResource", "rolesanywhere:TagResource", "rolesanywhere:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_tag_and_untag_resource_roundtrip.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.tag-resource-exceeds-tag-limit-rejected", "deployments": [], "key": "rolesanywhere/tag-resource-exceeds-tag-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:ListTagsForResource", "rolesanywhere:TagResource", "rolesanywhere:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_tag_resource_exceeds_tag_limit_rejected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.trust-anchor-delete-removes-resource", "deployments": [], "key": "rolesanywhere/trust-anchor-delete-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:EnableTrustAnchor", "rolesanywhere:GetTrustAnchor", "rolesanywhere:ListTrustAnchors"], "path": "behavioral/rolesanywhere/check_trust_anchor_delete_removes_resource.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.trust-anchor-disable-enable-transition", "deployments": [], "key": "rolesanywhere/trust-anchor-disable-enable-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:DisableTrustAnchor", "rolesanywhere:EnableTrustAnchor", "rolesanywhere:GetTrustAnchor"], "path": "behavioral/rolesanywhere/check_trust_anchor_disable_enable_transition.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.update-crl-replaces-data", "deployments": [], "key": "rolesanywhere/update-crl-replaces-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteCrl", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:GetCrl", "rolesanywhere:ImportCrl", "rolesanywhere:UpdateCrl"], "path": "behavioral/rolesanywhere/check_update_crl_replaces_data.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.update-profile-mutates-fields-enabled-unaffected", "deployments": [], "key": "rolesanywhere/update-profile-mutates-fields-enabled-unaffected", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateProfile", "rolesanywhere:DeleteProfile", "rolesanywhere:DisableProfile", "rolesanywhere:GetProfile", "rolesanywhere:UpdateProfile", "sts:GetCallerIdentity"], "path": "behavioral/rolesanywhere/check_update_profile_mutates_fields_enabled_unaffected.py", "service": "rolesanywhere"} {"check_id": "rolesanywhere.update-trust-anchor-replaces-source", "deployments": [], "key": "rolesanywhere/update-trust-anchor-replaces-source", "labels": ["axis:happy-path", "plane:control"], "operations": ["rolesanywhere:CreateTrustAnchor", "rolesanywhere:DeleteTrustAnchor", "rolesanywhere:GetTrustAnchor", "rolesanywhere:UpdateTrustAnchor"], "path": "behavioral/rolesanywhere/check_update_trust_anchor_replaces_source.py", "service": "rolesanywhere"} {"check_id": "route53-recovery-cluster.access-denied-missing-permission-rejected", "deployments": [], "key": "route53-recovery-cluster/access-denied-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "sts:AssumeRole"], "path": "behavioral/route53-recovery-cluster/check_access_denied_missing_permission_rejected.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.assertion-rule-blocks-violating-update-rejected", "deployments": [], "key": "route53-recovery-cluster/assertion-rule-blocks-violating-update-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:CreateSafetyRule", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DeleteSafetyRule", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:DescribeSafetyRule", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_assertion_rule_blocks_violating_update_rejected.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.batch-update-service-limit-exceeded-rejected", "deployments": [], "key": "route53-recovery-cluster/batch-update-service-limit-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlStates", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_batch_update_service_limit_exceeded_rejected.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.concurrent-updates-same-routing-control-no-corruption", "deployments": [], "key": "route53-recovery-cluster/concurrent-updates-same-routing-control-no-corruption", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_concurrent_updates_same_routing_control_no_corruption.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.gating-rule-blocks-target-until-gate-open", "deployments": [], "key": "route53-recovery-cluster/gating-rule-blocks-target-until-gate-open", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:CreateSafetyRule", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DeleteSafetyRule", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:DescribeSafetyRule", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_gating_rule_blocks_target_until_gate_open.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.list-routing-controls-nonexistent-control-panel-not-found", "deployments": [], "key": "route53-recovery-cluster/list-routing-controls-nonexistent-control-panel-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:ListRoutingControls", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "sts:GetCallerIdentity"], "path": "behavioral/route53-recovery-cluster/check_list_routing_controls_nonexistent_control_panel_not_found.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.list-routing-controls-pagination-next-token", "deployments": [], "key": "route53-recovery-cluster/list-routing-controls-pagination-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-cluster:ListRoutingControls", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_list_routing_controls_pagination_next_token.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.list-routing-controls-reflects-current-state", "deployments": [], "key": "route53-recovery-cluster/list-routing-controls-reflects-current-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:ListRoutingControls", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "sts:GetCallerIdentity"], "path": "behavioral/route53-recovery-cluster/check_list_routing_controls_reflects_current_state.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.resource-not-found-nonexistent-routing-control", "deployments": [], "key": "route53-recovery-cluster/resource-not-found-nonexistent-routing-control", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_resource_not_found_nonexistent_routing_control.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.routing-control-independent-state-isolation", "deployments": [], "key": "route53-recovery-cluster/routing-control-independent-state-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_routing_control_independent_state_isolation.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.routing-control-state-toggle-round-trip", "deployments": [], "key": "route53-recovery-cluster/routing-control-state-toggle-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:ListRoutingControls", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_routing_control_state_toggle_round_trip.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.routing-controls-scoped-to-control-panel", "deployments": [], "key": "route53-recovery-cluster/routing-controls-scoped-to-control-panel", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-cluster:ListRoutingControls", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_routing_controls_scoped_to_control_panel.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.safety-rule-override-bypasses-assertion-conflict", "deployments": [], "key": "route53-recovery-cluster/safety-rule-override-bypasses-assertion-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:CreateSafetyRule", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DeleteSafetyRule", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:DescribeSafetyRule", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_safety_rule_override_bypasses_assertion_conflict.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.update-routing-control-state-idempotent-same-state-no-conflict", "deployments": [], "key": "route53-recovery-cluster/update-routing-control-state-idempotent-same-state-no-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_update_routing_control_state_idempotent_same_state_no_conflict.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.update-routing-control-states-batch-atomic-multi-control", "deployments": [], "key": "route53-recovery-cluster/update-routing-control-states-batch-atomic-multi-control", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlStates", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_update_routing_control_states_batch_atomic_multi_control.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.update-routing-control-states-preserves-unspecified-controls-state", "deployments": [], "key": "route53-recovery-cluster/update-routing-control-states-preserves-unspecified-controls-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlStates", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_update_routing_control_states_preserves_unspecified_controls_state.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-cluster.validation-exception-malformed-routing-control-arn-rejected", "deployments": [], "key": "route53-recovery-cluster/validation-exception-malformed-routing-control-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-cluster/check_validation_exception_malformed_routing_control_arn_rejected.py", "service": "route53-recovery-cluster"} {"check_id": "route53-recovery-control-config.cluster-and-routing-control-reach-deployed-status", "deployments": [], "key": "route53-recovery-control-config/cluster-and-routing-control-reach-deployed-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListControlPanels"], "path": "behavioral/route53-recovery-control-config/check_cluster_and_routing_control_reach_deployed_status.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.concurrent-duplicate-routing-control-name-single-winner", "deployments": [], "key": "route53-recovery-control-config/concurrent-duplicate-routing-control-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-control-config/check_concurrent_duplicate_routing_control_name_single_winner.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.control-panel-routing-control-count-tracks-creation", "deployments": [], "key": "route53-recovery-control-config/control-panel-routing-control-count-tracks-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeControlPanel", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-control-config/check_control_panel_routing_control_count_tracks_creation.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.create-cluster-duplicate-name-accepted", "deployments": [], "key": "route53-recovery-control-config/create-cluster-duplicate-name-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListTagsForResource", "route53-recovery-control-config:TagResource"], "path": "behavioral/route53-recovery-control-config/check_create_cluster_duplicate_name_accepted.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.create-cluster-invalid-name-pattern-rejected", "deployments": [], "key": "route53-recovery-control-config/create-cluster-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:ListClusters"], "path": "behavioral/route53-recovery-control-config/check_create_cluster_invalid_name_pattern_rejected.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.create-control-panel-nonexistent-cluster-not-found", "deployments": [], "key": "route53-recovery-control-config/create-control-panel-nonexistent-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeControlPanel", "route53-recovery-control-config:ListControlPanels", "sts:GetCallerIdentity"], "path": "behavioral/route53-recovery-control-config/check_create_control_panel_nonexistent_cluster_not_found.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.create-safety-rule-both-rule-types-rejected", "deployments": [], "key": "route53-recovery-control-config/create-safety-rule-both-rule-types-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:CreateSafetyRule", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DeleteSafetyRule", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "route53-recovery-control-config:ListSafetyRules"], "path": "behavioral/route53-recovery-control-config/check_create_safety_rule_both_rule_types_rejected.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.delete-cluster-with-dependents-rejected", "deployments": [], "key": "route53-recovery-control-config/delete-cluster-with-dependents-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeControlPanel", "route53-recovery-control-config:DescribeRoutingControl"], "path": "behavioral/route53-recovery-control-config/check_delete_cluster_with_dependents_rejected.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.describe-cluster-nonexistent-not-found", "deployments": [], "key": "route53-recovery-control-config/describe-cluster-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "sts:GetCallerIdentity"], "path": "behavioral/route53-recovery-control-config/check_describe_cluster_nonexistent_not_found.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.gating-rule-controls-and-rule-config-persist", "deployments": [], "key": "route53-recovery-control-config/gating-rule-controls-and-rule-config-persist", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:CreateSafetyRule", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DeleteSafetyRule", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:DescribeSafetyRule", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-control-config/check_gating_rule_controls_and_rule_config_persist.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.get-resource-policy-without-attached-policy-not-found", "deployments": [], "key": "route53-recovery-control-config/get-resource-policy-without-attached-policy-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:GetResourcePolicy", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-control-config/check_get_resource_policy_without_attached_policy_not_found.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.list-associated-health-checks-empty-for-new-control", "deployments": [], "key": "route53-recovery-control-config/list-associated-health-checks-empty-for-new-control", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListAssociatedRoute53HealthChecks", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "route53:CreateHealthCheck", "route53:DeleteHealthCheck"], "path": "behavioral/route53-recovery-control-config/check_list_associated_health_checks_empty_for_new_control.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.list-routing-controls-pagination-covers-all-items", "deployments": [], "key": "route53-recovery-control-config/list-routing-controls-pagination-covers-all-items", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-control-config/check_list_routing_controls_pagination_covers_all_items.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.list-safety-rules-returns-mixed-assertion-and-gating", "deployments": [], "key": "route53-recovery-control-config/list-safety-rules-returns-mixed-assertion-and-gating", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:CreateSafetyRule", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DeleteSafetyRule", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "route53-recovery-control-config:ListSafetyRules"], "path": "behavioral/route53-recovery-control-config/check_list_safety_rules_returns_mixed_assertion_and_gating.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.routing-control-state-toggle-via-recovery-cluster-data-plane", "deployments": [], "key": "route53-recovery-control-config/routing-control-state-toggle-via-recovery-cluster-data-plane", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls"], "path": "behavioral/route53-recovery-control-config/check_routing_control_state_toggle_via_recovery_cluster_data_plane.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.safety-rule-threshold-exceeds-controls-rejected", "deployments": [], "key": "route53-recovery-control-config/safety-rule-threshold-exceeds-controls-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["route53-recovery-cluster:GetRoutingControlState", "route53-recovery-cluster:UpdateRoutingControlState", "route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:CreateSafetyRule", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DeleteSafetyRule", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeControlPanel", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:DescribeSafetyRule", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "route53-recovery-control-config:ListSafetyRules"], "path": "behavioral/route53-recovery-control-config/check_safety_rule_threshold_exceeds_controls_rejected.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.tag-resource-round-trip", "deployments": [], "key": "route53-recovery-control-config/tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "route53-recovery-control-config:ListTagsForResource", "route53-recovery-control-config:TagResource", "route53-recovery-control-config:UntagResource"], "path": "behavioral/route53-recovery-control-config/check_tag_resource_round_trip.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.update-cluster-network-type-round-trip", "deployments": [], "key": "route53-recovery-control-config/update-cluster-network-type-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:UpdateCluster"], "path": "behavioral/route53-recovery-control-config/check_update_cluster_network_type_round_trip.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.update-control-panel-name-persists", "deployments": [], "key": "route53-recovery-control-config/update-control-panel-name-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeControlPanel", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "route53-recovery-control-config:UpdateControlPanel"], "path": "behavioral/route53-recovery-control-config/check_update_control_panel_name_persists.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.update-routing-control-name-persists", "deployments": [], "key": "route53-recovery-control-config/update-routing-control-name-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "route53-recovery-control-config:UpdateRoutingControl"], "path": "behavioral/route53-recovery-control-config/check_update_routing_control_name_persists.py", "service": "route53-recovery-control-config"} {"check_id": "route53-recovery-control-config.update-safety-rule-wait-period-persists", "deployments": [], "key": "route53-recovery-control-config/update-safety-rule-wait-period-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53-recovery-control-config:CreateCluster", "route53-recovery-control-config:CreateControlPanel", "route53-recovery-control-config:CreateRoutingControl", "route53-recovery-control-config:CreateSafetyRule", "route53-recovery-control-config:DeleteCluster", "route53-recovery-control-config:DeleteControlPanel", "route53-recovery-control-config:DeleteRoutingControl", "route53-recovery-control-config:DeleteSafetyRule", "route53-recovery-control-config:DescribeCluster", "route53-recovery-control-config:DescribeRoutingControl", "route53-recovery-control-config:DescribeSafetyRule", "route53-recovery-control-config:ListClusters", "route53-recovery-control-config:ListControlPanels", "route53-recovery-control-config:ListRoutingControls", "route53-recovery-control-config:UpdateSafetyRule"], "path": "behavioral/route53-recovery-control-config/check_update_safety_rule_wait_period_persists.py", "service": "route53-recovery-control-config"} {"check_id": "route53.associate-vpc-conflicting-domain-rejected", "deployments": [], "key": "route53/associate-vpc-conflicting-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListHostedZonesByVPC"], "path": "behavioral/route53/check_associate_vpc_conflicting_domain_rejected.py", "service": "route53"} {"check_id": "route53.associate-vpc-without-authorization-rejected", "deployments": [], "key": "route53/associate-vpc-without-authorization-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHostedZone", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_associate_vpc_without_authorization_rejected.py", "service": "route53"} {"check_id": "route53.checker-ip-ranges-returns-valid-cidr-set", "deployments": [], "key": "route53/checker-ip-ranges-returns-valid-cidr-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:GetCheckerIpRanges"], "path": "behavioral/route53/check_checker_ip_ranges_returns_valid_cidr_set.py", "service": "route53"} {"check_id": "route53.checker-ip-ranges-stable-server-managed-list", "deployments": [], "key": "route53/checker-ip-ranges-stable-server-managed-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:GetCheckerIpRanges"], "path": "behavioral/route53/check_checker_ip_ranges_stable_server_managed_list.py", "service": "route53"} {"check_id": "route53.checker-ip-ranges-stable-server-side-list", "deployments": [], "key": "route53/checker-ip-ranges-stable-server-side-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:GetCheckerIpRanges"], "path": "behavioral/route53/check_checker_ip_ranges_stable_server_side_list.py", "service": "route53"} {"check_id": "route53.cidr-collection-lifecycle", "deployments": [], "key": "route53/cidr-collection-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeCidrCollection", "route53:CreateCidrCollection", "route53:DeleteCidrCollection", "route53:ListCidrBlocks", "route53:ListCidrCollections"], "path": "behavioral/route53/check_cidr_collection_lifecycle.py", "service": "route53"} {"check_id": "route53.cidr-locations-listed-after-block-creation", "deployments": [], "key": "route53/cidr-locations-listed-after-block-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeCidrCollection", "route53:CreateCidrCollection", "route53:DeleteCidrCollection", "route53:ListCidrBlocks", "route53:ListCidrLocations"], "path": "behavioral/route53/check_cidr_locations_listed_after_block_creation.py", "service": "route53"} {"check_id": "route53.cidr-locations-unknown-collection-rejected", "deployments": [], "key": "route53/cidr-locations-unknown-collection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:CreateCidrCollection", "route53:DeleteCidrCollection", "route53:ListCidrLocations"], "path": "behavioral/route53/check_cidr_locations_unknown_collection_rejected.py", "service": "route53"} {"check_id": "route53.create-ksk-malformed-key-argument-rejected", "deployments": [], "key": "route53/create-ksk-malformed-key-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetChange", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_create_ksk_malformed_key_argument_rejected.py", "service": "route53"} {"check_id": "route53.delegation-set-in-use-blocks-delete", "deployments": [], "key": "route53/delegation-set-in-use-blocks-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:CreateReusableDelegationSet", "route53:DeleteHostedZone", "route53:DeleteReusableDelegationSet", "route53:GetHostedZone", "route53:GetReusableDelegationSet", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_delegation_set_in_use_blocks_delete.py", "service": "route53"} {"check_id": "route53.delete-active-ksk-blocked", "deployments": [], "key": "route53/delete-active-ksk-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_delete_active_ksk_blocked.py", "service": "route53"} {"check_id": "route53.delete-vpc-association-authorization-revokes-future-association", "deployments": [], "key": "route53/delete-vpc-association-authorization-revokes-future-association", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:ListVPCAssociationAuthorizations"], "path": "behavioral/route53/check_delete_vpc_association_authorization_revokes_future_association.py", "service": "route53"} {"check_id": "route53.deploy-health-check-cfn-status-behavior", "deployments": [], "key": "route53/deploy-health-check-cfn-status-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "route53:GetHealthCheck", "route53:GetHealthCheckStatus"], "path": "behavioral/route53/check_deploy_health_check_cfn_status_behavior.py", "service": "route53"} {"check_id": "route53.deploy-hosted-zone-cfn-record-resolves", "deployments": [], "key": "route53/deploy-hosted-zone-cfn-record-resolves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53:TestDNSAnswer"], "path": "behavioral/route53/check_deploy_hosted_zone_cfn_record_resolves.py", "service": "route53"} {"check_id": "route53.deploy-hosted-zone-cfn-resolves-record", "deployments": [], "key": "route53/deploy-hosted-zone-cfn-resolves-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53:TestDNSAnswer"], "path": "behavioral/route53/check_deploy_hosted_zone_cfn_resolves_record.py", "service": "route53"} {"check_id": "route53.deploy-hosted-zone-recordset-resolves-via-cfn", "deployments": [], "key": "route53/deploy-hosted-zone-recordset-resolves-via-cfn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53:GetHostedZone", "route53:TestDNSAnswer"], "path": "behavioral/route53/check_deploy_hosted_zone_recordset_resolves_via_cfn.py", "service": "route53"} {"check_id": "route53.disable-dnssec-not-enabled-rejected", "deployments": [], "key": "route53/disable-dnssec-not-enabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_disable_dnssec_not_enabled_rejected.py", "service": "route53"} {"check_id": "route53.disassociate-last-vpc-association-rejected", "deployments": [], "key": "route53/disassociate-last-vpc-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:DisassociateVPCFromHostedZone", "route53:ListHostedZonesByVPC"], "path": "behavioral/route53/check_disassociate_last_vpc_association_rejected.py", "service": "route53"} {"check_id": "route53.disassociate-last-vpc-from-private-zone-rejected", "deployments": [], "key": "route53/disassociate-last-vpc-from-private-zone-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:DisassociateVPCFromHostedZone", "route53:ListHostedZonesByVPC"], "path": "behavioral/route53/check_disassociate_last_vpc_from_private_zone_rejected.py", "service": "route53"} {"check_id": "route53.dnssec-disable-without-enabled-not-found", "deployments": [], "key": "route53/dnssec-disable-without-enabled-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:DisableHostedZoneDNSSEC", "route53:GetDNSSEC"], "path": "behavioral/route53/check_dnssec_disable_without_enabled_not_found.py", "service": "route53"} {"check_id": "route53.dnssec-disable-without-signing-rejected", "deployments": [], "key": "route53/dnssec-disable-without-signing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_dnssec_disable_without_signing_rejected.py", "service": "route53"} {"check_id": "route53.dnssec-enable-disable-state-reflected-in-getdnssec", "deployments": [], "key": "route53/dnssec-enable-disable-state-reflected-in-getdnssec", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_dnssec_enable_disable_state_reflected_in_getdnssec.py", "service": "route53"} {"check_id": "route53.dnssec-enable-disable-zone-lifecycle", "deployments": [], "key": "route53/dnssec-enable-disable-zone-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetChange", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_dnssec_enable_disable_zone_lifecycle.py", "service": "route53"} {"check_id": "route53.dnssec-enable-without-active-ksk-rejected", "deployments": [], "key": "route53/dnssec-enable-without-active-ksk-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ActivateKeySigningKey", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetChange", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_dnssec_enable_without_active_ksk_rejected.py", "service": "route53"} {"check_id": "route53.dnssec-status-unsigned-zone", "deployments": [], "key": "route53/dnssec-status-unsigned-zone", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetChange", "route53:GetDNSSEC", "route53:ListResourceRecordSets", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_dnssec_status_unsigned_zone.py", "service": "route53"} {"check_id": "route53.ds-record-base64-round-trip", "deployments": [], "key": "route53/ds-record-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetChange", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_ds_record_base64_round_trip.py", "service": "route53"} {"check_id": "route53.e2e-cross-account-vpc-association-flow", "deployments": [], "key": "route53/e2e-cross-account-vpc-association-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:DisassociateVPCFromHostedZone", "route53:ListHostedZonesByVPC", "route53:ListVPCAssociationAuthorizations"], "path": "behavioral/route53/check_e2e_cross_account_vpc_association_flow.py", "service": "route53"} {"check_id": "route53.e2e-cross-account-vpc-authorization-then-association-consequence", "deployments": [], "key": "route53/e2e-cross-account-vpc-authorization-then-association-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:DisassociateVPCFromHostedZone", "route53:GetChange", "route53:ListHostedZonesByVPC", "route53:ListVPCAssociationAuthorizations"], "path": "behavioral/route53/check_e2e_cross_account_vpc_authorization_then_association_consequence.py", "service": "route53"} {"check_id": "route53.e2e-dnssec-enable-verify-disable-teardown", "deployments": [], "key": "route53/e2e-dnssec-enable-verify-disable-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ActivateKeySigningKey", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetChange", "route53:GetDNSSEC", "route53:GetHostedZone", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_e2e_dnssec_enable_verify_disable_teardown.py", "service": "route53"} {"check_id": "route53.e2e-dnssec-sign-activate-resolve-and-teardown", "deployments": [], "key": "route53/e2e-dnssec-sign-activate-resolve-and-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ActivateKeySigningKey", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetChange", "route53:GetDNSSEC", "route53:GetHostedZone", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_e2e_dnssec_sign_activate_resolve_and_teardown.py", "service": "route53"} {"check_id": "route53.e2e-dnssec-signing-full-flow", "deployments": [], "key": "route53/e2e-dnssec-signing-full-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ActivateKeySigningKey", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetDNSSEC", "route53:GetHostedZone", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_e2e_dnssec_signing_full_flow.py", "service": "route53"} {"check_id": "route53.geolocation-catalog-and-unknown-location", "deployments": [], "key": "route53/geolocation-catalog-and-unknown-location", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:GetGeoLocation", "route53:ListGeoLocations"], "path": "behavioral/route53/check_geolocation_catalog_and_unknown_location.py", "service": "route53"} {"check_id": "route53.get-change-not-found", "deployments": [], "key": "route53/get-change-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_get_change_not_found.py", "service": "route53"} {"check_id": "route53.get-change-state-transition", "deployments": [], "key": "route53/get-change-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_get_change_state_transition.py", "service": "route53"} {"check_id": "route53.health-check-concurrent-update-race", "deployments": [], "key": "route53/health-check-concurrent-update-race", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:GetHealthCheck", "route53:UpdateHealthCheck"], "path": "behavioral/route53/check_health_check_concurrent_update_race.py", "service": "route53"} {"check_id": "route53.health-check-delete-allowed-while-referenced", "deployments": [], "key": "route53/health-check-delete-allowed-while-referenced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHealthCheck", "route53:CreateHostedZone", "route53:DeleteHealthCheck", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHealthCheck", "route53:ListResourceRecordSets", "route53:UpdateHealthCheck"], "path": "behavioral/route53/check_health_check_delete_allowed_while_referenced.py", "service": "route53"} {"check_id": "route53.health-check-failure-threshold-delays-status-flip", "deployments": [], "key": "route53/health-check-failure-threshold-delays-status-flip", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "route53:CreateHealthCheck", "route53:DeleteHealthCheck"], "path": "behavioral/route53/check_health_check_failure_threshold_delays_status_flip.py", "service": "route53"} {"check_id": "route53.health-check-inventory-and-status", "deployments": [], "key": "route53/health-check-inventory-and-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:GetHealthCheck", "route53:GetHealthCheckCount", "route53:GetHealthCheckLastFailureReason", "route53:GetHealthCheckStatus", "route53:ListHealthChecks"], "path": "behavioral/route53/check_health_check_inventory_and_status.py", "service": "route53"} {"check_id": "route53.health-check-lifecycle", "deployments": [], "key": "route53/health-check-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:GetHealthCheck", "route53:UpdateHealthCheck"], "path": "behavioral/route53/check_health_check_lifecycle.py", "service": "route53"} {"check_id": "route53.health-check-lifecycle-version-increment", "deployments": [], "key": "route53/health-check-lifecycle-version-increment", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:GetHealthCheck", "route53:UpdateHealthCheck"], "path": "behavioral/route53/check_health_check_lifecycle_version_increment.py", "service": "route53"} {"check_id": "route53.health-check-str-match-searchstring-governs-the-reported-health", "deployments": [], "key": "route53/health-check-str-match-searchstring-governs-the-reported-health", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:GetCheckerIpRanges", "route53:GetHealthCheck", "route53:GetHealthCheckStatus", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject"], "path": "behavioral/route53/check_health_check_str_match_searchstring_governs_the_reported_health.py", "service": "route53"} {"check_id": "route53.health-check-tags", "deployments": [], "key": "route53/health-check-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:ListTagsForResource", "route53:ListTagsForResources"], "path": "behavioral/route53/check_health_check_tags.py", "service": "route53"} {"check_id": "route53.health-check-version-mismatch-rejected", "deployments": [], "key": "route53/health-check-version-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:GetHealthCheck", "route53:UpdateHealthCheck"], "path": "behavioral/route53/check_health_check_version_mismatch_rejected.py", "service": "route53"} {"check_id": "route53.hosted-zone-create-lifecycle-insync", "deployments": [], "key": "route53/hosted-zone-create-lifecycle-insync", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_hosted_zone_create_lifecycle_insync.py", "service": "route53"} {"check_id": "route53.hosted-zone-inventory-and-comment-update", "deployments": [], "key": "route53/hosted-zone-inventory-and-comment-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:GetHostedZoneCount", "route53:ListHostedZones", "route53:ListHostedZonesByName", "route53:ListResourceRecordSets", "route53:UpdateHostedZoneComment"], "path": "behavioral/route53/check_hosted_zone_inventory_and_comment_update.py", "service": "route53"} {"check_id": "route53.key-signing-key-in-use-deactivation-rejected", "deployments": [], "key": "route53/key-signing-key-in-use-deactivation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetChange", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_key_signing_key_in_use_deactivation_rejected.py", "service": "route53"} {"check_id": "route53.ksk-activate-already-active-is-idempotent", "deployments": [], "key": "route53/ksk-activate-already-active-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "route53:ActivateKeySigningKey", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_ksk_activate_already_active_is_idempotent.py", "service": "route53"} {"check_id": "route53.ksk-concurrent-activate-race", "deployments": [], "key": "route53/ksk-concurrent-activate-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ActivateKeySigningKey", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_ksk_concurrent_activate_race.py", "service": "route53"} {"check_id": "route53.ksk-concurrent-activation-race", "deployments": [], "key": "route53/ksk-concurrent-activation-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "route53:ActivateKeySigningKey", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_ksk_concurrent_activation_race.py", "service": "route53"} {"check_id": "route53.ksk-deactivate-last-active-key-rejected", "deployments": [], "key": "route53/ksk-deactivate-last-active-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:DisableHostedZoneDNSSEC", "route53:EnableHostedZoneDNSSEC", "route53:GetChange", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_ksk_deactivate_last_active_key_rejected.py", "service": "route53"} {"check_id": "route53.ksk-ds-record-digest-recomputes-from-the-kms-public-key", "deployments": [], "key": "route53/ksk-ds-record-digest-recomputes-from-the-kms-public-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetChange", "route53:GetDNSSEC", "route53:GetHostedZone", "route53:ListResourceRecordSets", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_ksk_ds_record_digest_recomputes_from_the_kms_public_key.py", "service": "route53"} {"check_id": "route53.ksk-lifecycle-create-activate-deactivate-delete", "deployments": [], "key": "route53/ksk-lifecycle-create-activate-deactivate-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:ScheduleKeyDeletion", "route53:ActivateKeySigningKey", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeactivateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_ksk_lifecycle_create_activate_deactivate_delete.py", "service": "route53"} {"check_id": "route53.ksk-public-key-material-round-trip", "deployments": [], "key": "route53/ksk-public-key-material-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "route53:CreateHostedZone", "route53:CreateKeySigningKey", "route53:DeleteHostedZone", "route53:DeleteKeySigningKey", "route53:GetChange", "route53:GetDNSSEC", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_ksk_public_key_material_round_trip.py", "service": "route53"} {"check_id": "route53.limits-reported-for-account-zone-and-delegation-set", "deployments": [], "key": "route53/limits-reported-for-account-zone-and-delegation-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHealthCheck", "route53:CreateHostedZone", "route53:CreateReusableDelegationSet", "route53:DeleteHealthCheck", "route53:DeleteHostedZone", "route53:DeleteReusableDelegationSet", "route53:GetAccountLimit", "route53:GetHostedZoneLimit", "route53:GetReusableDelegationSetLimit", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_limits_reported_for_account_zone_and_delegation_set.py", "service": "route53"} {"check_id": "route53.list-cidr-locations-unknown-collection-rejected", "deployments": [], "key": "route53/list-cidr-locations-unknown-collection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:CreateCidrCollection", "route53:DeleteCidrCollection", "route53:ListCidrLocations"], "path": "behavioral/route53/check_list_cidr_locations_unknown_collection_rejected.py", "service": "route53"} {"check_id": "route53.list-hosted-zones-by-vpc-invalid-pagination-token-rejected", "deployments": [], "key": "route53/list-hosted-zones-by-vpc-invalid-pagination-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListHostedZonesByVPC"], "path": "behavioral/route53/check_list_hosted_zones_by_vpc_invalid_pagination_token_rejected.py", "service": "route53"} {"check_id": "route53.list-hosted-zones-by-vpc-reflects-association", "deployments": [], "key": "route53/list-hosted-zones-by-vpc-reflects-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:DisassociateVPCFromHostedZone", "route53:GetChange", "route53:ListHostedZonesByVPC"], "path": "behavioral/route53/check_list_hosted_zones_by_vpc_reflects_association.py", "service": "route53"} {"check_id": "route53.list-hosted-zones-by-vpc-reflects-associations", "deployments": [], "key": "route53/list-hosted-zones-by-vpc-reflects-associations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:DisassociateVPCFromHostedZone", "route53:ListHostedZonesByVPC"], "path": "behavioral/route53/check_list_hosted_zones_by_vpc_reflects_associations.py", "service": "route53"} {"check_id": "route53.list-hosted-zones-by-vpc-returns-associated-zones-only", "deployments": [], "key": "route53/list-hosted-zones-by-vpc-returns-associated-zones-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:DisassociateVPCFromHostedZone", "route53:GetChange", "route53:ListHostedZonesByVPC"], "path": "behavioral/route53/check_list_hosted_zones_by_vpc_returns_associated_zones_only.py", "service": "route53"} {"check_id": "route53.list-hosted-zones-private-type-filter-lists-only-private-zones", "deployments": [], "key": "route53/list-hosted-zones-private-type-filter-lists-only-private-zones", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListHostedZones"], "path": "behavioral/route53/check_list_hosted_zones_private_type_filter_lists_only_private_zones.py", "service": "route53"} {"check_id": "route53.list-tags-for-resources-batch-matches-individual", "deployments": [], "key": "route53/list-tags-for-resources-batch-matches-individual", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:ListTagsForResource", "route53:ListTagsForResources"], "path": "behavioral/route53/check_list_tags_for_resources_batch_matches_individual.py", "service": "route53"} {"check_id": "route53.list-tags-for-resources-batch-order-preserved", "deployments": [], "key": "route53/list-tags-for-resources-batch-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListTagsForResources"], "path": "behavioral/route53/check_list_tags_for_resources_batch_order_preserved.py", "service": "route53"} {"check_id": "route53.list-tags-for-resources-batch-unicode-round-trip", "deployments": [], "key": "route53/list-tags-for-resources-batch-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:ListTagsForResources"], "path": "behavioral/route53/check_list_tags_for_resources_batch_unicode_round_trip.py", "service": "route53"} {"check_id": "route53.list-tags-for-resources-mixed-types-rejected", "deployments": [], "key": "route53/list-tags-for-resources-mixed-types-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:ListTagsForResource", "route53:ListTagsForResources"], "path": "behavioral/route53/check_list_tags_for_resources_mixed_types_rejected.py", "service": "route53"} {"check_id": "route53.list-tags-for-resources-mixed-valid-invalid-fails-whole-batch", "deployments": [], "key": "route53/list-tags-for-resources-mixed-valid-invalid-fails-whole-batch", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListTagsForResources"], "path": "behavioral/route53/check_list_tags_for_resources_mixed_valid_invalid_fails_whole_batch.py", "service": "route53"} {"check_id": "route53.list-vpc-association-authorizations-invalid-token-rejected", "deployments": [], "key": "route53/list-vpc-association-authorizations-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:ListVPCAssociationAuthorizations"], "path": "behavioral/route53/check_list_vpc_association_authorizations_invalid_token_rejected.py", "service": "route53"} {"check_id": "route53.op-delete-apex-soa-rejected", "deployments": [], "key": "route53/op-delete-apex-soa-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_op_delete_apex_soa_rejected.py", "service": "route53"} {"check_id": "route53.op-malformed-traffic-policy-document-rejected", "deployments": [], "key": "route53/op-malformed-traffic-policy-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:CreateTrafficPolicy", "route53:DeleteTrafficPolicy", "route53:GetTrafficPolicy"], "path": "behavioral/route53/check_op_malformed_traffic_policy_document_rejected.py", "service": "route53"} {"check_id": "route53.op-rrset-malformed-ip-rejected", "deployments": [], "key": "route53/op-rrset-malformed-ip-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_op_rrset_malformed_ip_rejected.py", "service": "route53"} {"check_id": "route53.op-rrset-name-outside-zone-rejected", "deployments": [], "key": "route53/op-rrset-name-outside-zone-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_op_rrset_name_outside_zone_rejected.py", "service": "route53"} {"check_id": "route53.op-weighted-rrset-without-set-identifier-rejected", "deployments": [], "key": "route53/op-weighted-rrset-without-set-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_op_weighted_rrset_without_set_identifier_rejected.py", "service": "route53"} {"check_id": "route53.overly-permissive-associate-vpc-with-public-zone", "deployments": [], "key": "route53/overly-permissive-associate-vpc-with-public-zone", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:AssociateVPCWithHostedZone", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_overly_permissive_associate_vpc_with_public_zone.py", "service": "route53"} {"check_id": "route53.overly-permissive-change-batch-delete-nonexistent", "deployments": [], "key": "route53/overly-permissive-change-batch-delete-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_overly_permissive_change_batch_delete_nonexistent.py", "service": "route53"} {"check_id": "route53.overly-permissive-delete-non-empty-hosted-zone", "deployments": [], "key": "route53/overly-permissive-delete-non-empty-hosted-zone", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_overly_permissive_delete_non_empty_hosted_zone.py", "service": "route53"} {"check_id": "route53.overly-permissive-disassociate-last-vpc", "deployments": [], "key": "route53/overly-permissive-disassociate-last-vpc", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:AssociateVPCWithHostedZone", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:DisassociateVPCFromHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_overly_permissive_disassociate_last_vpc.py", "service": "route53"} {"check_id": "route53.overly-permissive-hosted-zone-caller-reference-replay", "deployments": [], "key": "route53/overly-permissive-hosted-zone-caller-reference-replay", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_overly_permissive_hosted_zone_caller_reference_replay.py", "service": "route53"} {"check_id": "route53.overly-permissive-hosted-zone-duplicate-caller-reference", "deployments": [], "key": "route53/overly-permissive-hosted-zone-duplicate-caller-reference", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListHostedZonesByName", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_overly_permissive_hosted_zone_duplicate_caller_reference.py", "service": "route53"} {"check_id": "route53.overly-permissive-query-logging-missing-log-group", "deployments": [], "key": "route53/overly-permissive-query-logging-missing-log-group", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:DescribeLogGroups", "logs:PutResourcePolicy", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:CreateQueryLoggingConfig", "route53:DeleteHostedZone", "route53:DeleteQueryLoggingConfig", "route53:ListQueryLoggingConfigs", "route53:ListResourceRecordSets", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_overly_permissive_query_logging_missing_log_group.py", "service": "route53"} {"check_id": "route53.private-zone-multi-vpc-association", "deployments": [], "key": "route53/private-zone-multi-vpc-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:AssociateVPCWithHostedZone", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:DisassociateVPCFromHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_private_zone_multi_vpc_association.py", "service": "route53"} {"check_id": "route53.query-logging-unknown-config-id-rejected", "deployments": [], "key": "route53/query-logging-unknown-config-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "route53:CreateHostedZone", "route53:CreateQueryLoggingConfig", "route53:DeleteHostedZone", "route53:DeleteQueryLoggingConfig", "route53:GetQueryLoggingConfig", "sts:GetCallerIdentity"], "path": "behavioral/route53/check_query_logging_unknown_config_id_rejected.py", "service": "route53"} {"check_id": "route53.reusable-delegation-set-lifecycle", "deployments": [], "key": "route53/reusable-delegation-set-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:CreateReusableDelegationSet", "route53:DeleteReusableDelegationSet", "route53:GetReusableDelegationSet", "route53:ListReusableDelegationSets"], "path": "behavioral/route53/check_reusable_delegation_set_lifecycle.py", "service": "route53"} {"check_id": "route53.route53-geolocation-routing-is-evaluated-against-the-edns0-client-subnet", "deployments": [], "key": "route53/route53-geolocation-routing-is-evaluated-against-the-edns0-client-subnet", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:TestDNSAnswer"], "path": "behavioral/route53/check_route53_geolocation_routing_is_evaluated_against_the_edns0_client_subnet.py", "service": "route53"} {"check_id": "route53.rrset-alias-excludes-ttl-and-resource-records", "deployments": [], "key": "route53/rrset-alias-excludes-ttl-and-resource-records", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_alias_excludes_ttl_and_resource_records.py", "service": "route53"} {"check_id": "route53.rrset-atomic-batch-delete-and-create", "deployments": [], "key": "route53/rrset-atomic-batch-delete-and-create", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_atomic_batch_delete_and_create.py", "service": "route53"} {"check_id": "route53.rrset-change-batch-all-or-nothing-on-partial-failure", "deployments": [], "key": "route53/rrset-change-batch-all-or-nothing-on-partial-failure", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_change_batch_all_or_nothing_on_partial_failure.py", "service": "route53"} {"check_id": "route53.rrset-cname-at-zone-apex-rejected", "deployments": [], "key": "route53/rrset-cname-at-zone-apex-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_cname_at_zone_apex_rejected.py", "service": "route53"} {"check_id": "route53.rrset-cname-conflicts-with-same-name-record", "deployments": [], "key": "route53/rrset-cname-conflicts-with-same-name-record", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_cname_conflicts_with_same_name_record.py", "service": "route53"} {"check_id": "route53.rrset-create-and-list", "deployments": [], "key": "route53/rrset-create-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_create_and_list.py", "service": "route53"} {"check_id": "route53.rrset-delete-removes-only-target", "deployments": [], "key": "route53/rrset-delete-removes-only-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_delete_removes_only_target.py", "service": "route53"} {"check_id": "route53.rrset-latency-requires-region-and-set-identifier", "deployments": [], "key": "route53/rrset-latency-requires-region-and-set-identifier", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_latency_requires_region_and_set_identifier.py", "service": "route53"} {"check_id": "route53.rrset-listing-is-reverse-label-sorted", "deployments": [], "key": "route53/rrset-listing-is-reverse-label-sorted", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_listing_is_reverse_label_sorted.py", "service": "route53"} {"check_id": "route53.rrset-strict-match-delete-requires-exact-values", "deployments": [], "key": "route53/rrset-strict-match-delete-requires-exact-values", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_strict_match_delete_requires_exact_values.py", "service": "route53"} {"check_id": "route53.rrset-upsert-replaces-value", "deployments": [], "key": "route53/rrset-upsert-replaces-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_upsert_replaces_value.py", "service": "route53"} {"check_id": "route53.rrset-weighted-siblings-require-distinct-set-identifiers", "deployments": [], "key": "route53/rrset-weighted-siblings-require-distinct-set-identifiers", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_weighted_siblings_require_distinct_set_identifiers.py", "service": "route53"} {"check_id": "route53.rrset-wildcard-name-returned-octal-escaped", "deployments": [], "key": "route53/rrset-wildcard-name-returned-octal-escaped", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_rrset_wildcard_name_returned_octal_escaped.py", "service": "route53"} {"check_id": "route53.tags-add-list-change-remove", "deployments": [], "key": "route53/tags-add-list-change-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets", "route53:ListTagsForResource", "route53:ListTagsForResources"], "path": "behavioral/route53/check_tags_add_list_change_remove.py", "service": "route53"} {"check_id": "route53.tags-for-resource-hosted-zone", "deployments": [], "key": "route53/tags-for-resource-hosted-zone", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ListResourceRecordSets", "route53:ListTagsForResource"], "path": "behavioral/route53/check_tags_for_resource_hosted_zone.py", "service": "route53"} {"check_id": "route53.test-dns-answer-evaluates-weighted-routing", "deployments": [], "key": "route53/test-dns-answer-evaluates-weighted-routing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:TestDNSAnswer"], "path": "behavioral/route53/check_test_dns_answer_evaluates_weighted_routing.py", "service": "route53"} {"check_id": "route53.test-dns-answer-invalid-record-type-rejected", "deployments": [], "key": "route53/test-dns-answer-invalid-record-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets", "route53:TestDNSAnswer"], "path": "behavioral/route53/check_test_dns_answer_invalid_record_type_rejected.py", "service": "route53"} {"check_id": "route53.test-dns-answer-resolves-record", "deployments": [], "key": "route53/test-dns-answer-resolves-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets", "route53:TestDNSAnswer"], "path": "behavioral/route53/check_test_dns_answer_resolves_record.py", "service": "route53"} {"check_id": "route53.traffic-policy-instance-inventory-and-update", "deployments": [], "key": "route53/traffic-policy-instance-inventory-and-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:CreateTrafficPolicy", "route53:CreateTrafficPolicyInstance", "route53:DeleteHostedZone", "route53:DeleteTrafficPolicy", "route53:DeleteTrafficPolicyInstance", "route53:GetTrafficPolicyInstance", "route53:GetTrafficPolicyInstanceCount", "route53:ListResourceRecordSets", "route53:ListTrafficPolicyInstances", "route53:ListTrafficPolicyInstancesByHostedZone", "route53:ListTrafficPolicyInstancesByPolicy", "route53:UpdateTrafficPolicyInstance"], "path": "behavioral/route53/check_traffic_policy_instance_inventory_and_update.py", "service": "route53"} {"check_id": "route53.traffic-policy-instance-lifecycle", "deployments": [], "key": "route53/traffic-policy-instance-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:CreateTrafficPolicy", "route53:CreateTrafficPolicyInstance", "route53:DeleteHostedZone", "route53:DeleteTrafficPolicy", "route53:DeleteTrafficPolicyInstance", "route53:GetTrafficPolicyInstance", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_traffic_policy_instance_lifecycle.py", "service": "route53"} {"check_id": "route53.traffic-policy-metadata-and-comment-update", "deployments": [], "key": "route53/traffic-policy-metadata-and-comment-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:CreateTrafficPolicy", "route53:DeleteTrafficPolicy", "route53:GetTrafficPolicy", "route53:ListTrafficPolicies", "route53:UpdateTrafficPolicyComment"], "path": "behavioral/route53/check_traffic_policy_metadata_and_comment_update.py", "service": "route53"} {"check_id": "route53.traffic-policy-version-lifecycle", "deployments": [], "key": "route53/traffic-policy-version-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:CreateTrafficPolicy", "route53:CreateTrafficPolicyVersion", "route53:DeleteTrafficPolicy", "route53:GetTrafficPolicy", "route53:ListTrafficPolicyVersions", "route53:UpdateTrafficPolicyComment"], "path": "behavioral/route53/check_traffic_policy_version_lifecycle.py", "service": "route53"} {"check_id": "route53.txt-record-escaped-value-round-trip", "deployments": [], "key": "route53/txt-record-escaped-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_txt_record_escaped_value_round_trip.py", "service": "route53"} {"check_id": "route53.txt-record-unquoted-value-with-spaces-rejected", "deployments": [], "key": "route53/txt-record-unquoted-value-with-spaces-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:ListResourceRecordSets"], "path": "behavioral/route53/check_txt_record_unquoted_value_with_spaces_rejected.py", "service": "route53"} {"check_id": "route53.update-hosted-zone-comment", "deployments": [], "key": "route53/update-hosted-zone-comment", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:UpdateHostedZoneComment"], "path": "behavioral/route53/check_update_hosted_zone_comment.py", "service": "route53"} {"check_id": "route53.update-hosted-zone-features-limits-exceeded-rejected", "deployments": [], "key": "route53/update-hosted-zone-features-limits-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:UpdateHostedZoneFeatures"], "path": "behavioral/route53/check_update_hosted_zone_features_limits_exceeded_rejected.py", "service": "route53"} {"check_id": "route53.update-hosted-zone-features-persists-and-enforced", "deployments": [], "key": "route53/update-hosted-zone-features-persists-and-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHostedZone", "route53:UpdateHostedZoneFeatures"], "path": "behavioral/route53/check_update_hosted_zone_features_persists_and_enforced.py", "service": "route53"} {"check_id": "route53.update-hosted-zone-features-value-round-trip", "deployments": [], "key": "route53/update-hosted-zone-features-value-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHostedZone", "route53:UpdateHostedZoneFeatures"], "path": "behavioral/route53/check_update_hosted_zone_features_value_round_trip.py", "service": "route53"} {"check_id": "route53.vpc-association-authorization-lifecycle", "deployments": [], "key": "route53/vpc-association-authorization-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:ModifyVpcAttribute", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:ListResourceRecordSets", "route53:ListVPCAssociationAuthorizations"], "path": "behavioral/route53/check_vpc_association_authorization_lifecycle.py", "service": "route53"} {"check_id": "route53.vpc-association-authorization-listing-pagination", "deployments": [], "key": "route53/vpc-association-authorization-listing-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:GetChange", "route53:ListVPCAssociationAuthorizations"], "path": "behavioral/route53/check_vpc_association_authorization_listing_pagination.py", "service": "route53"} {"check_id": "route53.vpc-association-authorization-required-before-cross-account-associate", "deployments": [], "key": "route53/vpc-association-authorization-required-before-cross-account-associate", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:AssociateVPCWithHostedZone", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:GetChange", "route53:GetHostedZone", "route53:ListVPCAssociationAuthorizations"], "path": "behavioral/route53/check_vpc_association_authorization_required_before_cross_account_associate.py", "service": "route53"} {"check_id": "route53.vpc-association-requires-authorization-denied", "deployments": [], "key": "route53/vpc-association-requires-authorization-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53:CreateHostedZone", "route53:CreateVPCAssociationAuthorization", "route53:DeleteHostedZone", "route53:DeleteVPCAssociationAuthorization", "route53:ListVPCAssociationAuthorizations"], "path": "behavioral/route53/check_vpc_association_requires_authorization_denied.py", "service": "route53"} {"check_id": "route53domains.domain-name-case-insensitive-across-availability-and-transferability", "deployments": [], "key": "route53domains/domain-name-case-insensitive-across-availability-and-transferability", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53domains:CheckDomainAvailability", "route53domains:CheckDomainTransferability"], "path": "behavioral/route53domains/check_domain_name_case_insensitive_across_availability_and_transferability.py", "service": "route53domains"} {"check_id": "route53domains.domain-scoped-operations-require-domain-in-account", "deployments": [], "key": "route53domains/domain-scoped-operations-require-domain-in-account", "labels": ["axis:rejection", "plane:control"], "operations": ["route53domains:CheckDomainAvailability", "route53domains:DeleteDomain", "route53domains:DisableDomainTransferLock", "route53domains:GetContactReachabilityStatus", "route53domains:GetDomainDetail", "route53domains:ListTagsForDomain"], "path": "behavioral/route53domains/check_domain_scoped_operations_require_domain_in_account.py", "service": "route53domains"} {"check_id": "route53domains.domain-suggestions-match-availability", "deployments": [], "key": "route53domains/domain-suggestions-match-availability", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53domains:CheckDomainAvailability", "route53domains:GetDomainSuggestions"], "path": "behavioral/route53domains/check_domain_suggestions_match_availability.py", "service": "route53domains"} {"check_id": "route53domains.transferability-agrees-with-availability-for-unregistered-domain", "deployments": [], "key": "route53domains/transferability-agrees-with-availability-for-unregistered-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53domains:CheckDomainAvailability", "route53domains:CheckDomainTransferability"], "path": "behavioral/route53domains/check_transferability_agrees_with_availability_for_unregistered_domain.py", "service": "route53domains"} {"check_id": "route53domains.unsupported-tld-rejected-consistently-across-surfaces", "deployments": [], "key": "route53domains/unsupported-tld-rejected-consistently-across-surfaces", "labels": ["axis:rejection", "plane:control"], "operations": ["route53domains:CheckDomainAvailability", "route53domains:CheckDomainTransferability", "route53domains:ListPrices"], "path": "behavioral/route53domains/check_unsupported_tld_rejected_consistently_across_surfaces.py", "service": "route53domains"} {"check_id": "route53globalresolver.create-dns-view-validates-shape-before-checking-global-resolver-existence", "deployments": [], "key": "route53globalresolver/create-dns-view-validates-shape-before-checking-global-resolver-existence", "labels": ["axis:rejection", "plane:control"], "operations": ["route53globalresolver:CreateDNSView", "route53globalresolver:ListGlobalResolvers"], "path": "behavioral/route53globalresolver/check_create_dns_view_validates_shape_before_checking_global_resolver_existence.py", "service": "route53globalresolver"} {"check_id": "route53globalresolver.create-firewall-domain-list-idempotency-token-does-not-mask-rejection", "deployments": [], "key": "route53globalresolver/create-firewall-domain-list-idempotency-token-does-not-mask-rejection", "labels": ["axis:rejection", "plane:control"], "operations": ["route53globalresolver:CreateFirewallDomainList"], "path": "behavioral/route53globalresolver/check_create_firewall_domain_list_idempotency_token_does_not_mask_rejection.py", "service": "route53globalresolver"} {"check_id": "route53globalresolver.create-firewall-rule-layers-field-validation-ahead-of-dns-view-lookup", "deployments": [], "key": "route53globalresolver/create-firewall-rule-layers-field-validation-ahead-of-dns-view-lookup", "labels": ["axis:rejection", "plane:control"], "operations": ["route53globalresolver:CreateFirewallRule", "route53globalresolver:ListAccessSources"], "path": "behavioral/route53globalresolver/check_create_firewall_rule_layers_field_validation_ahead_of_dns_view_lookup.py", "service": "route53globalresolver"} {"check_id": "route53globalresolver.failed-firewall-domain-list-create-leaves-no-trace", "deployments": [], "key": "route53globalresolver/failed-firewall-domain-list-create-leaves-no-trace", "labels": ["axis:rejection", "plane:control"], "operations": ["route53globalresolver:CreateFirewallDomainList", "route53globalresolver:ListFirewallDomainLists"], "path": "behavioral/route53globalresolver/check_failed_firewall_domain_list_create_leaves_no_trace.py", "service": "route53globalresolver"} {"check_id": "route53globalresolver.tag-resource-family-denies-a-non-arn-resource-before-validating-its-shape", "deployments": [], "key": "route53globalresolver/tag-resource-family-denies-a-non-arn-resource-before-validating-its-shape", "labels": ["axis:rejection", "plane:control"], "operations": ["route53globalresolver:ListGlobalResolvers", "route53globalresolver:ListTagsForResource", "route53globalresolver:TagResource", "route53globalresolver:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/route53globalresolver/check_tag_resource_family_denies_a_non_arn_resource_before_validating_its_shape.py", "service": "route53globalresolver"} {"check_id": "route53profiles.associate-profile-duplicate-vpc-rejected", "deployments": [], "key": "route53profiles/associate-profile-duplicate-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53profiles:AssociateProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateProfile", "route53profiles:GetProfile", "route53profiles:GetProfileAssociation", "route53profiles:ListProfileAssociations"], "path": "behavioral/route53profiles/check_associate_profile_duplicate_vpc_rejected.py", "service": "route53profiles"} {"check_id": "route53profiles.associate-profile-with-vpc-lifecycle", "deployments": [], "key": "route53profiles/associate-profile-with-vpc-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53profiles:AssociateProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateProfile", "route53profiles:GetProfile", "route53profiles:GetProfileAssociation", "route53profiles:ListProfileAssociations"], "path": "behavioral/route53profiles/check_associate_profile_with_vpc_lifecycle.py", "service": "route53profiles"} {"check_id": "route53profiles.associate-resource-firewall-rule-group-lifecycle", "deployments": [], "key": "route53profiles/associate-resource-firewall-rule-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:AssociateResourceToProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:GetProfileResourceAssociation", "route53profiles:ListProfileResourceAssociations", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup"], "path": "behavioral/route53profiles/check_associate_resource_firewall_rule_group_lifecycle.py", "service": "route53profiles"} {"check_id": "route53profiles.associate-resource-invalid-firewall-priority-rejected", "deployments": [], "key": "route53profiles/associate-resource-invalid-firewall-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53profiles:AssociateResourceToProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:GetProfile", "route53profiles:GetProfileResourceAssociation", "route53profiles:ListProfileResourceAssociations", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup"], "path": "behavioral/route53profiles/check_associate_resource_invalid_firewall_priority_rejected.py", "service": "route53profiles"} {"check_id": "route53profiles.associate-resource-unsupported-arn-rejected", "deployments": [], "key": "route53profiles/associate-resource-unsupported-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53profiles:AssociateResourceToProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:GetProfile", "route53profiles:ListProfileResourceAssociations"], "path": "behavioral/route53profiles/check_associate_resource_unsupported_arn_rejected.py", "service": "route53profiles"} {"check_id": "route53profiles.concurrent-associate-profile-same-vpc-race", "deployments": [], "key": "route53profiles/concurrent-associate-profile-same-vpc-race", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53profiles:AssociateProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateProfile", "route53profiles:ListProfileAssociations"], "path": "behavioral/route53profiles/check_concurrent_associate_profile_same_vpc_race.py", "service": "route53profiles"} {"check_id": "route53profiles.create-profile-idempotent-client-token", "deployments": [], "key": "route53profiles/create-profile-idempotent-client-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:ListProfiles"], "path": "behavioral/route53profiles/check_create_profile_idempotent_client_token.py", "service": "route53profiles"} {"check_id": "route53profiles.create-profile-lifecycle", "deployments": [], "key": "route53profiles/create-profile-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:GetProfile"], "path": "behavioral/route53profiles/check_create_profile_lifecycle.py", "service": "route53profiles"} {"check_id": "route53profiles.delete-profile-lifecycle", "deployments": [], "key": "route53profiles/delete-profile-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:GetProfile", "route53profiles:ListProfiles"], "path": "behavioral/route53profiles/check_delete_profile_lifecycle.py", "service": "route53profiles"} {"check_id": "route53profiles.delete-profile-with-active-association-rejected", "deployments": [], "key": "route53profiles/delete-profile-with-active-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53profiles:AssociateProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateProfile", "route53profiles:GetProfile", "route53profiles:ListProfileAssociations"], "path": "behavioral/route53profiles/check_delete_profile_with_active_association_rejected.py", "service": "route53profiles"} {"check_id": "route53profiles.disassociate-profile-removes-association", "deployments": [], "key": "route53profiles/disassociate-profile-removes-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53profiles:AssociateProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateProfile", "route53profiles:GetProfile", "route53profiles:GetProfileAssociation", "route53profiles:ListProfileAssociations"], "path": "behavioral/route53profiles/check_disassociate_profile_removes_association.py", "service": "route53profiles"} {"check_id": "route53profiles.disassociate-resource-from-profile-removes-it", "deployments": [], "key": "route53profiles/disassociate-resource-from-profile-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:AssociateResourceToProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:GetProfile", "route53profiles:GetProfileResourceAssociation", "route53profiles:ListProfileResourceAssociations", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup"], "path": "behavioral/route53profiles/check_disassociate_resource_from_profile_removes_it.py", "service": "route53profiles"} {"check_id": "route53profiles.dns-firewall-resolution-native-protocol-vpc-only", "deployments": [], "key": "route53profiles/dns-firewall-resolution-native-protocol-vpc-only", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "route53profiles:AssociateProfile", "route53profiles:AssociateResourceToProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:GetProfile", "route53profiles:GetProfileAssociation", "route53profiles:GetProfileResourceAssociation", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53profiles/check_dns_firewall_resolution_native_protocol_vpc_only.py", "service": "route53profiles"} {"check_id": "route53profiles.get-profile-nonexistent-not-found", "deployments": [], "key": "route53profiles/get-profile-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:GetProfile"], "path": "behavioral/route53profiles/check_get_profile_nonexistent_not_found.py", "service": "route53profiles"} {"check_id": "route53profiles.list-profile-associations-reflects-state", "deployments": [], "key": "route53profiles/list-profile-associations-reflects-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53profiles:AssociateProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateProfile", "route53profiles:GetProfile", "route53profiles:GetProfileAssociation", "route53profiles:ListProfileAssociations"], "path": "behavioral/route53profiles/check_list_profile_associations_reflects_state.py", "service": "route53profiles"} {"check_id": "route53profiles.list-profile-resource-associations-filter-by-type", "deployments": [], "key": "route53profiles/list-profile-resource-associations-filter-by-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:AssociateResourceToProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:GetProfile", "route53profiles:GetProfileResourceAssociation", "route53profiles:ListProfileResourceAssociations", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup"], "path": "behavioral/route53profiles/check_list_profile_resource_associations_filter_by_type.py", "service": "route53profiles"} {"check_id": "route53profiles.tag-resource-and-list-tags", "deployments": [], "key": "route53profiles/tag-resource-and-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:GetProfile", "route53profiles:ListTagsForResource", "route53profiles:TagResource"], "path": "behavioral/route53profiles/check_tag_resource_and_list_tags.py", "service": "route53profiles"} {"check_id": "route53profiles.untag-resource-removes-tag", "deployments": [], "key": "route53profiles/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:GetProfile", "route53profiles:ListTagsForResource", "route53profiles:TagResource", "route53profiles:UntagResource"], "path": "behavioral/route53profiles/check_untag_resource_removes_tag.py", "service": "route53profiles"} {"check_id": "route53profiles.update-profile-resource-association-name", "deployments": [], "key": "route53profiles/update-profile-resource-association-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53profiles:AssociateResourceToProfile", "route53profiles:CreateProfile", "route53profiles:DeleteProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:GetProfile", "route53profiles:GetProfileResourceAssociation", "route53profiles:UpdateProfileResourceAssociation", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup"], "path": "behavioral/route53profiles/check_update_profile_resource_association_name.py", "service": "route53profiles"} {"check_id": "route53resolver.associate-disassociate-query-log-config", "deployments": [], "key": "route53resolver/associate-disassociate-query-log-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "logs:CreateLogGroup", "logs:DeleteLogGroup", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation"], "path": "behavioral/route53resolver/check_associate_disassociate_query_log_config.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-disassociate-resolver-endpoint-ip-address", "deployments": [], "key": "route53resolver/associate-disassociate-resolver-endpoint-ip-address", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "route53resolver:AssociateResolverEndpointIpAddress", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:DisassociateResolverEndpointIpAddress", "route53resolver:GetResolverEndpoint", "route53resolver:ListResolverEndpointIpAddresses", "route53resolver:UpdateResolverEndpoint"], "path": "behavioral/route53resolver/check_associate_disassociate_resolver_endpoint_ip_address.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-firewall-rule-group-duplicate-priority-conflict", "deployments": [], "key": "route53resolver/associate-firewall-rule-group-duplicate-priority-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRuleGroupAssociations", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_associate_firewall_rule_group_duplicate_priority_conflict.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-firewall-rule-group-priority-below-floor-rejected", "deployments": [], "key": "route53resolver/associate-firewall-rule-group-priority-below-floor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRuleGroupAssociations"], "path": "behavioral/route53resolver/check_associate_firewall_rule_group_priority_below_floor_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-resolver-query-log-config-duplicate-rejected", "deployments": [], "key": "route53resolver/associate-resolver-query-log-config-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:ListResolverQueryLogConfigAssociations"], "path": "behavioral/route53resolver/check_associate_resolver_query_log_config_duplicate_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-resolver-query-log-config-nonexistent-rejected", "deployments": [], "key": "route53resolver/associate-resolver-query-log-config-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:ListResolverQueryLogConfigAssociations"], "path": "behavioral/route53resolver/check_associate_resolver_query_log_config_nonexistent_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-resolver-query-log-config-vpc-already-associated-rejected", "deployments": [], "key": "route53resolver/associate-resolver-query-log-config-vpc-already-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "logs:CreateLogGroup", "logs:DeleteLogGroup", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:ListResolverQueryLogConfigAssociations", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_associate_resolver_query_log_config_vpc_already_associated_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-resolver-rule-duplicate", "deployments": [], "key": "route53resolver/associate-resolver-rule-duplicate", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverRule", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_associate_resolver_rule_duplicate.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-resolver-rule-duplicate-vpc-rejected", "deployments": [], "key": "route53resolver/associate-resolver-rule-duplicate-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVpcs", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverRule", "route53resolver:GetResolverRuleAssociation", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_associate_resolver_rule_duplicate_vpc_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.associate-resolver-rule-invalid-vpc-rejected", "deployments": [], "key": "route53resolver/associate-resolver-rule-invalid-vpc-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRuleAssociation", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_associate_resolver_rule_invalid_vpc_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.batch-create-firewall-rule-partial-failure", "deployments": [], "key": "route53resolver/batch-create-firewall-rule-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:BatchCreateFirewallRule", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_batch_create_firewall_rule_partial_failure.py", "service": "route53resolver"} {"check_id": "route53resolver.batch-delete-firewall-rule-removes-targeted-rules", "deployments": [], "key": "route53resolver/batch-delete-firewall-rule-removes-targeted-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:BatchDeleteFirewallRule", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_batch_delete_firewall_rule_removes_targeted_rules.py", "service": "route53resolver"} {"check_id": "route53resolver.batch-update-and-delete-firewall-rule", "deployments": [], "key": "route53resolver/batch-update-and-delete-firewall-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:BatchDeleteFirewallRule", "route53resolver:BatchUpdateFirewallRule", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_batch_update_and_delete_firewall_rule.py", "service": "route53resolver"} {"check_id": "route53resolver.batch-update-firewall-rule-limit-exceeded-rejected", "deployments": [], "key": "route53resolver/batch-update-firewall-rule-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:BatchUpdateFirewallRule", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallRules", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_batch_update_firewall_rule_limit_exceeded_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.concurrent-associate-firewall-rule-group-priority-conflict", "deployments": [], "key": "route53resolver/concurrent-associate-firewall-rule-group-priority-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:ListFirewallRuleGroupAssociations"], "path": "behavioral/route53resolver/check_concurrent_associate_firewall_rule_group_priority_conflict.py", "service": "route53resolver"} {"check_id": "route53resolver.concurrent-firewall-rule-group-association-update-race", "deployments": [], "key": "route53resolver/concurrent-firewall-rule-group-association-update-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_concurrent_firewall_rule_group_association_update_race.py", "service": "route53resolver"} {"check_id": "route53resolver.concurrent-firewall-rule-priority-race", "deployments": [], "key": "route53resolver/concurrent-firewall-rule-priority-race", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_concurrent_firewall_rule_priority_race.py", "service": "route53resolver"} {"check_id": "route53resolver.concurrent-resolver-rule-association-same-vpc-race", "deployments": [], "key": "route53resolver/concurrent-resolver-rule-association-same-vpc-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_concurrent_resolver_rule_association_same_vpc_race.py", "service": "route53resolver"} {"check_id": "route53resolver.concurrent-update-outpost-resolver-optimistic-lock", "deployments": [], "key": "route53resolver/concurrent-update-outpost-resolver-optimistic-lock", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_concurrent_update_outpost_resolver_optimistic_lock.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-domain-list-name-over-max-length-rejected", "deployments": [], "key": "route53resolver/create-firewall-domain-list-name-over-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomainLists"], "path": "behavioral/route53resolver/check_create_firewall_domain_list_name_over_max_length_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-domain-list-starts-complete", "deployments": [], "key": "route53resolver/create-firewall-domain-list-starts-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomainLists"], "path": "behavioral/route53resolver/check_create_firewall_domain_list_starts_complete.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-rule-block-without-response-rejected", "deployments": [], "key": "route53resolver/create-firewall-rule-block-without-response-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_create_firewall_rule_block_without_response_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-rule-duplicate-priority-rejected", "deployments": [], "key": "route53resolver/create-firewall-rule-duplicate-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_create_firewall_rule_duplicate_priority_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-rule-group-all-digit-name-rejected", "deployments": [], "key": "route53resolver/create-firewall-rule-group-all-digit-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroup", "route53resolver:ListFirewallRuleGroups"], "path": "behavioral/route53resolver/check_create_firewall_rule_group_all_digit_name_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-rule-group-and-rule-lifecycle", "deployments": [], "key": "route53resolver/create-firewall-rule-group-and-rule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:GetFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_create_firewall_rule_group_and_rule_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-rule-invalid-group-not-found", "deployments": [], "key": "route53resolver/create-firewall-rule-invalid-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:GetFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_create_firewall_rule_invalid_group_not_found.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-rule-override-without-block-override-rejected", "deployments": [], "key": "route53resolver/create-firewall-rule-override-without-block-override-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_create_firewall_rule_override_without_block_override_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.create-firewall-rule-qtype-does-not-scope-priority-uniqueness", "deployments": [], "key": "route53resolver/create-firewall-rule-qtype-does-not-scope-priority-uniqueness", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRule", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_create_firewall_rule_qtype_does_not_scope_priority_uniqueness.py", "service": "route53resolver"} {"check_id": "route53resolver.create-forward-resolver-rule-requires-endpoint-and-targets", "deployments": [], "key": "route53resolver/create-forward-resolver-rule-requires-endpoint-and-targets", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:GetResolverRule", "route53resolver:ListResolverRules"], "path": "behavioral/route53resolver/check_create_forward_resolver_rule_requires_endpoint_and_targets.py", "service": "route53resolver"} {"check_id": "route53resolver.create-outpost-resolver-invalid-instance-count-rejected", "deployments": [], "key": "route53resolver/create-outpost-resolver-invalid-instance-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateOutpostResolver", "route53resolver:ListOutpostResolvers", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_create_outpost_resolver_invalid_instance_count_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.create-resolver-endpoint-nonexistent-subnet-rejected", "deployments": [], "key": "route53resolver/create-resolver-endpoint-nonexistent-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:GetResolverEndpoint", "route53resolver:ListResolverEndpoints"], "path": "behavioral/route53resolver/check_create_resolver_endpoint_nonexistent_subnet_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.create-resolver-rule-duplicate-creator-request-id", "deployments": [], "key": "route53resolver/create-resolver-rule-duplicate-creator-request-id", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverRule"], "path": "behavioral/route53resolver/check_create_resolver_rule_duplicate_creator_request_id.py", "service": "route53resolver"} {"check_id": "route53resolver.create-resolver-rule-system-forbids-target-ips-rejected", "deployments": [], "key": "route53resolver/create-resolver-rule-system-forbids-target-ips-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:GetResolverRule", "route53resolver:ListResolverRules"], "path": "behavioral/route53resolver/check_create_resolver_rule_system_forbids_target_ips_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.creator-request-id-idempotency-token-preserved", "deployments": [], "key": "route53resolver/creator-request-id-idempotency-token-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverRule"], "path": "behavioral/route53resolver/check_creator_request_id_idempotency_token_preserved.py", "service": "route53resolver"} {"check_id": "route53resolver.delete-firewall-domain-list-conflict-when-referenced", "deployments": [], "key": "route53resolver/delete-firewall-domain-list-conflict-when-referenced", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:GetFirewallDomainList"], "path": "behavioral/route53resolver/check_delete_firewall_domain_list_conflict_when_referenced.py", "service": "route53resolver"} {"check_id": "route53resolver.delete-firewall-rule-group-active-association-rejected", "deployments": [], "key": "route53resolver/delete-firewall-rule-group-active-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_delete_firewall_rule_group_active_association_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.delete-firewall-rule-group-with-vpc-association-conflict", "deployments": [], "key": "route53resolver/delete-firewall-rule-group-with-vpc-association-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_delete_firewall_rule_group_with_vpc_association_conflict.py", "service": "route53resolver"} {"check_id": "route53resolver.delete-resolver-rule-in-use-rejected", "deployments": [], "key": "route53resolver/delete-resolver-rule-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverRule", "route53resolver:ListResolverRuleAssociations", "route53resolver:ListResolverRules", "route53resolver:UpdateResolverRule"], "path": "behavioral/route53resolver/check_delete_resolver_rule_in_use_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.deploy-firewall-domain-list-cfn-blocks-domain", "deployments": [], "key": "route53resolver/deploy-firewall-domain-list-cfn-blocks-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53resolver:GetFirewallDomainList", "route53resolver:GetFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallDomains", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_deploy_firewall_domain_list_cfn_blocks_domain.py", "service": "route53resolver"} {"check_id": "route53resolver.deploy-firewall-rule-group-cfn-association-active", "deployments": [], "key": "route53resolver/deploy-firewall-rule-group-cfn-association-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRuleGroupAssociations", "route53resolver:ListFirewallRules", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_deploy_firewall_rule_group_cfn_association_active.py", "service": "route53resolver"} {"check_id": "route53resolver.deploy-firewall-rule-group-cfn-enforced-blocking", "deployments": [], "key": "route53resolver/deploy-firewall-rule-group-cfn-enforced-blocking", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRules"], "path": "behavioral/route53resolver/check_deploy_firewall_rule_group_cfn_enforced_blocking.py", "service": "route53resolver"} {"check_id": "route53resolver.deploy-resolver-endpoint-cfn-behaves", "deployments": [], "key": "route53resolver/deploy-resolver-endpoint-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRuleAssociation"], "path": "behavioral/route53resolver/check_deploy_resolver_endpoint_cfn_behaves.py", "service": "route53resolver"} {"check_id": "route53resolver.deploy-resolver-rule-cfn-forwards-queries", "deployments": [], "key": "route53resolver/deploy-resolver-rule-cfn-forwards-queries", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "route53resolver:GetResolverRule", "route53resolver:GetResolverRuleAssociation"], "path": "behavioral/route53resolver/check_deploy_resolver_rule_cfn_forwards_queries.py", "service": "route53resolver"} {"check_id": "route53resolver.deploy-resolver-rule-cfn-then-associates-successfully", "deployments": [], "key": "route53resolver/deploy-resolver-rule-cfn-then-associates-successfully", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRule", "route53resolver:GetResolverRuleAssociation"], "path": "behavioral/route53resolver/check_deploy_resolver_rule_cfn_then_associates_successfully.py", "service": "route53resolver"} {"check_id": "route53resolver.disassociate-firewall-rule-group-nonexistent-association-rejected", "deployments": [], "key": "route53resolver/disassociate-firewall-rule-group-nonexistent-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_disassociate_firewall_rule_group_nonexistent_association_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.disassociate-ip-below-minimum", "deployments": [], "key": "route53resolver/disassociate-ip-below-minimum", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:AssociateResolverEndpointIpAddress", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:DisassociateResolverEndpointIpAddress", "route53resolver:GetResolverEndpoint", "route53resolver:ListResolverEndpointIpAddresses"], "path": "behavioral/route53resolver/check_disassociate_ip_below_minimum.py", "service": "route53resolver"} {"check_id": "route53resolver.disassociate-rejected-when-mutation-protection-enabled", "deployments": [], "key": "route53resolver/disassociate-rejected-when-mutation-protection-enabled", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_disassociate_rejected_when_mutation_protection_enabled.py", "service": "route53resolver"} {"check_id": "route53resolver.disassociate-resolver-rule-not-associated-invalid-request", "deployments": [], "key": "route53resolver/disassociate-resolver-rule-not-associated-invalid-request", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRuleAssociation"], "path": "behavioral/route53resolver/check_disassociate_resolver_rule_not_associated_invalid_request.py", "service": "route53resolver"} {"check_id": "route53resolver.e2e-firewall-domain-block-full-lifecycle", "deployments": [], "key": "route53resolver/e2e-firewall-domain-block-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallDomainList", "route53resolver:GetFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ImportFirewallDomains", "route53resolver:ListFirewallRules", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject"], "path": "behavioral/route53resolver/check_e2e_firewall_domain_block_full_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.e2e-firewall-domain-blocklist-lifecycle-flow", "deployments": [], "key": "route53resolver/e2e-firewall-domain-blocklist-lifecycle-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallDomainList", "route53resolver:GetFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallDomainLists", "route53resolver:ListFirewallDomains", "route53resolver:ListFirewallRuleGroupAssociations", "route53resolver:ListFirewallRuleGroups", "route53resolver:ListFirewallRules", "route53resolver:UpdateFirewallDomains", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_e2e_firewall_domain_blocklist_lifecycle_flow.py", "service": "route53resolver"} {"check_id": "route53resolver.e2e-firewall-domain-import-block-consequence", "deployments": [], "key": "route53resolver/e2e-firewall-domain-import-block-consequence", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallDomainList", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ImportFirewallDomains", "route53resolver:ListFirewallDomains", "route53resolver:ListFirewallRuleGroupAssociations", "route53resolver:ListFirewallRules", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_e2e_firewall_domain_import_block_consequence.py", "service": "route53resolver"} {"check_id": "route53resolver.e2e-outpost-resolver-full-lifecycle", "deployments": [], "key": "route53resolver/e2e-outpost-resolver-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["outposts:ListOutposts", "route53resolver:CreateOutpostResolver", "route53resolver:DeleteOutpostResolver", "route53resolver:GetOutpostResolver", "route53resolver:ListOutpostResolvers", "route53resolver:UpdateOutpostResolver"], "path": "behavioral/route53resolver/check_e2e_outpost_resolver_full_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.e2e-resolver-endpoint-rule-association-query-flow", "deployments": [], "key": "route53resolver/e2e-resolver-endpoint-rule-association-query-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRule", "route53resolver:GetResolverRuleAssociation"], "path": "behavioral/route53resolver/check_e2e_resolver_endpoint_rule_association_query_flow.py", "service": "route53resolver"} {"check_id": "route53resolver.e2e-resolver-rule-forward-and-query-log-flow", "deployments": [], "key": "route53resolver/e2e-resolver-rule-forward-and-query-log-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:GetResolverRuleAssociation", "route53resolver:ListResolverQueryLogConfigAssociations", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_e2e_resolver_rule_forward_and_query_log_flow.py", "service": "route53resolver"} {"check_id": "route53resolver.e2e-resolver-rule-forwarding-lifecycle-flow", "deployments": [], "key": "route53resolver/e2e-resolver-rule-forwarding-lifecycle-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRule", "route53resolver:GetResolverRuleAssociation"], "path": "behavioral/route53resolver/check_e2e_resolver_rule_forwarding_lifecycle_flow.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-association-mutation-protection-blocks-disassociate-rejected", "deployments": [], "key": "route53resolver/firewall-association-mutation-protection-blocks-disassociate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRuleGroupAssociations", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_firewall_association_mutation_protection_blocks_disassociate_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-association-mutation-protection-priority-change-rejected", "deployments": [], "key": "route53resolver/firewall-association-mutation-protection-priority-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_firewall_association_mutation_protection_priority_change_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-block-response-arms-serve-three-distinct-answers", "deployments": [], "key": "route53resolver/firewall-block-response-arms-serve-three-distinct-answers", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallDomains", "route53resolver:UpdateFirewallRule"], "path": "behavioral/route53resolver/check_firewall_block_response_arms_serve_three_distinct_answers.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-config-fail-open-update", "deployments": [], "key": "route53resolver/firewall-config-fail-open-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:GetFirewallConfig", "route53resolver:UpdateFirewallConfig"], "path": "behavioral/route53resolver/check_firewall_config_fail_open_update.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-domain-case-normalization-preserved", "deployments": [], "key": "route53resolver/firewall-domain-case-normalization-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomains", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_firewall_domain_case_normalization_preserved.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-domain-list-all-numeric-name-rejected", "deployments": [], "key": "route53resolver/firewall-domain-list-all-numeric-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomainLists"], "path": "behavioral/route53resolver/check_firewall_domain_list_all_numeric_name_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-domain-list-aws-managed-immutable", "deployments": [], "key": "route53resolver/firewall-domain-list-aws-managed-immutable", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomainLists", "route53resolver:ListFirewallDomains", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_firewall_domain_list_aws_managed_immutable.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-domain-unicode-round-trip", "deployments": [], "key": "route53resolver/firewall-domain-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomains", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_firewall_domain_unicode_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-domain-unicode-wildcard-round-trip", "deployments": [], "key": "route53resolver/firewall-domain-unicode-wildcard-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomains", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_firewall_domain_unicode_wildcard_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-rule-group-association-lifecycle", "deployments": [], "key": "route53resolver/firewall-rule-group-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRuleGroupAssociations"], "path": "behavioral/route53resolver/check_firewall_rule_group_association_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-rule-group-association-lifecycle-complete-to-deleted", "deployments": [], "key": "route53resolver/firewall-rule-group-association-lifecycle-complete-to-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRuleGroupAssociations"], "path": "behavioral/route53resolver/check_firewall_rule_group_association_lifecycle_complete_to_deleted.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-rule-group-association-priority-decides-the-live-answer", "deployments": [], "key": "route53resolver/firewall-rule-group-association-priority-decides-the-live-answer", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallDomains", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_firewall_rule_group_association_priority_decides_the_live_answer.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-rule-group-association-state-transition", "deployments": [], "key": "route53resolver/firewall-rule-group-association-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRuleGroupAssociations"], "path": "behavioral/route53resolver/check_firewall_rule_group_association_state_transition.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-rule-group-disassociate-mutation-protection-rejected", "deployments": [], "key": "route53resolver/firewall-rule-group-disassociate-mutation-protection-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallRuleGroupAssociations", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_firewall_rule_group_disassociate_mutation_protection_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-rule-group-policy-lifecycle", "deployments": [], "key": "route53resolver/firewall-rule-group-policy-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupPolicy", "route53resolver:PutFirewallRuleGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_firewall_rule_group_policy_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-rule-override-ttl-numeric-precision-round-trip", "deployments": [], "key": "route53resolver/firewall-rule-override-ttl-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_firewall_rule_override_ttl_numeric_precision_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.firewall-rule-qtype-scopes-the-block-to-that-query-type", "deployments": [], "key": "route53resolver/firewall-rule-qtype-scopes-the-block-to-that-query-type", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_firewall_rule_qtype_scopes_the_block_to_that_query_type.py", "service": "route53resolver"} {"check_id": "route53resolver.forward-rule-diverts-only-the-matched-domain-and-disassociation-restores-it", "deployments": [], "key": "route53resolver/forward-rule-diverts-only-the-matched-domain-and-disassociation-restores-it", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53:ChangeResourceRecordSets", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRule", "route53resolver:GetResolverRuleAssociation", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_forward_rule_diverts_only_the_matched_domain_and_disassociation_restores_it.py", "service": "route53resolver"} {"check_id": "route53resolver.get-firewall-domain-list-not-found", "deployments": [], "key": "route53resolver/get-firewall-domain-list-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList"], "path": "behavioral/route53resolver/check_get_firewall_domain_list_not_found.py", "service": "route53resolver"} {"check_id": "route53resolver.get-firewall-rule-group-association-not-found", "deployments": [], "key": "route53resolver/get-firewall-rule-group-association-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_get_firewall_rule_group_association_not_found.py", "service": "route53resolver"} {"check_id": "route53resolver.get-firewall-rule-group-policy-not-found", "deployments": [], "key": "route53resolver/get-firewall-rule-group-policy-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_get_firewall_rule_group_policy_not_found.py", "service": "route53resolver"} {"check_id": "route53resolver.get-outpost-resolver-not-found", "deployments": [], "key": "route53resolver/get-outpost-resolver-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:GetOutpostResolver"], "path": "behavioral/route53resolver/check_get_outpost_resolver_not_found.py", "service": "route53resolver"} {"check_id": "route53resolver.get-outpost-resolver-not-found-after-delete", "deployments": [], "key": "route53resolver/get-outpost-resolver-not-found-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:DeleteOutpostResolver", "route53resolver:GetOutpostResolver", "route53resolver:ListOutpostResolvers"], "path": "behavioral/route53resolver/check_get_outpost_resolver_not_found_after_delete.py", "service": "route53resolver"} {"check_id": "route53resolver.get-resolver-endpoint-invalid-id-format-rejected", "deployments": [], "key": "route53resolver/get-resolver-endpoint-invalid-id-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:GetResolverEndpoint"], "path": "behavioral/route53resolver/check_get_resolver_endpoint_invalid_id_format_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.get-resolver-query-log-config-association-invalid-parameter", "deployments": [], "key": "route53resolver/get-resolver-query-log-config-association-invalid-parameter", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation"], "path": "behavioral/route53resolver/check_get_resolver_query_log_config_association_invalid_parameter.py", "service": "route53resolver"} {"check_id": "route53resolver.get-resolver-rule-policy-without-policy", "deployments": [], "key": "route53resolver/get-resolver-rule-policy-without-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverRulePolicy"], "path": "behavioral/route53resolver/check_get_resolver_rule_policy_without_policy.py", "service": "route53resolver"} {"check_id": "route53resolver.import-firewall-domains-conflict-while-in-progress", "deployments": [], "key": "route53resolver/import-firewall-domains-conflict-while-in-progress", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ImportFirewallDomains", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/route53resolver/check_import_firewall_domains_conflict_while_in_progress.py", "service": "route53resolver"} {"check_id": "route53resolver.import-firewall-domains-conflict-while-in-progress-rejected", "deployments": [], "key": "route53resolver/import-firewall-domains-conflict-while-in-progress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ImportFirewallDomains", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/route53resolver/check_import_firewall_domains_conflict_while_in_progress_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.import-firewall-domains-invalid-s3-uri-rejected", "deployments": [], "key": "route53resolver/import-firewall-domains-invalid-s3-uri-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ImportFirewallDomains", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/route53resolver/check_import_firewall_domains_invalid_s3_uri_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.list-firewall-domains-pagination-no-duplicates", "deployments": [], "key": "route53resolver/list-firewall-domains-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:ListFirewallDomains", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_list_firewall_domains_pagination_no_duplicates.py", "service": "route53resolver"} {"check_id": "route53resolver.list-firewall-rules-priority-ordering", "deployments": [], "key": "route53resolver/list-firewall-rules-priority-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:ListFirewallRules", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_list_firewall_rules_priority_ordering.py", "service": "route53resolver"} {"check_id": "route53resolver.list-resolver-configs-invalid-next-token-rejected", "deployments": [], "key": "route53resolver/list-resolver-configs-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:ListFirewallDomainLists", "route53resolver:ListResolverConfigs"], "path": "behavioral/route53resolver/check_list_resolver_configs_invalid_next_token_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.list-resolver-endpoints-invalid-next-token-rejected", "deployments": [], "key": "route53resolver/list-resolver-endpoints-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:ListResolverEndpoints"], "path": "behavioral/route53resolver/check_list_resolver_endpoints_invalid_next_token_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.list-resolver-query-log-config-associations-invalid-filter-rejected", "deployments": [], "key": "route53resolver/list-resolver-query-log-config-associations-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:ListResolverQueryLogConfigAssociations"], "path": "behavioral/route53resolver/check_list_resolver_query_log_config_associations_invalid_filter_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.list-resolver-rule-associations-stable-ordering", "deployments": [], "key": "route53resolver/list-resolver-rule-associations-stable-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_list_resolver_rule_associations_stable_ordering.py", "service": "route53resolver"} {"check_id": "route53resolver.mutation-protection-blocks-disassociate", "deployments": [], "key": "route53resolver/mutation-protection-blocks-disassociate", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_mutation_protection_blocks_disassociate.py", "service": "route53resolver"} {"check_id": "route53resolver.outpost-resolver-lifecycle-creating-to-active-to-deleted", "deployments": [], "key": "route53resolver/outpost-resolver-lifecycle-creating-to-active-to-deleted", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateOutpostResolver", "route53resolver:ListOutpostResolvers", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_outpost_resolver_lifecycle_creating_to_active_to_deleted.py", "service": "route53resolver"} {"check_id": "route53resolver.put-firewall-rule-group-policy-self-share-rejected", "deployments": [], "key": "route53resolver/put-firewall-rule-group-policy-self-share-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupPolicy", "route53resolver:PutFirewallRuleGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_put_firewall_rule_group_policy_self_share_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.put-resolver-query-log-config-policy-invalid-policy-rejected", "deployments": [], "key": "route53resolver/put-resolver-query-log-config-policy-invalid-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigPolicy", "route53resolver:PutResolverQueryLogConfigPolicy", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_put_resolver_query_log_config_policy_invalid_policy_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.query-log-config-association-state-transition", "deployments": [], "key": "route53resolver/query-log-config-association-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:ListResolverQueryLogConfigAssociations", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_query_log_config_association_state_transition.py", "service": "route53resolver"} {"check_id": "route53resolver.query-log-config-association-status-transition-delay", "deployments": [], "key": "route53resolver/query-log-config-association-status-transition-delay", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:ListResolverQueryLogConfigAssociations"], "path": "behavioral/route53resolver/check_query_log_config_association_status_transition_delay.py", "service": "route53resolver"} {"check_id": "route53resolver.query-log-config-destination-arn-round-trip", "deployments": [], "key": "route53resolver/query-log-config-destination-arn-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_query_log_config_destination_arn_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-config-autodefined-reverse", "deployments": [], "key": "route53resolver/resolver-config-autodefined-reverse", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "route53resolver:GetResolverConfig", "route53resolver:ListResolverConfigs", "route53resolver:UpdateResolverConfig"], "path": "behavioral/route53resolver/check_resolver_config_autodefined_reverse.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-dnssec-config-lifecycle", "deployments": [], "key": "route53resolver/resolver-dnssec-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "route53resolver:GetResolverDnssecConfig", "route53resolver:ListResolverDnssecConfigs", "route53resolver:UpdateResolverDnssecConfig"], "path": "behavioral/route53resolver/check_resolver_dnssec_config_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-endpoint-ip-address-association", "deployments": [], "key": "route53resolver/resolver-endpoint-ip-address-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "route53resolver:AssociateResolverEndpointIpAddress", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:DisassociateResolverEndpointIpAddress", "route53resolver:GetResolverEndpoint", "route53resolver:ListResolverEndpointIpAddresses"], "path": "behavioral/route53resolver/check_resolver_endpoint_ip_address_association.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-endpoint-ip-addresses-are-exactly-the-enis-ec2-reports", "deployments": [], "key": "route53resolver/resolver-endpoint-ip-addresses-are-exactly-the-enis-ec2-reports", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:ModifyVpcAttribute", "route53resolver:AssociateResolverEndpointIpAddress", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:DisassociateResolverEndpointIpAddress", "route53resolver:GetResolverEndpoint", "route53resolver:ListResolverEndpointIpAddresses"], "path": "behavioral/route53resolver/check_resolver_endpoint_ip_addresses_are_exactly_the_enis_ec2_reports.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-endpoint-lifecycle-creating-to-operational", "deployments": [], "key": "route53resolver/resolver-endpoint-lifecycle-creating-to-operational", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "route53resolver:CreateResolverEndpoint", "route53resolver:DeleteResolverEndpoint", "route53resolver:GetResolverEndpoint", "route53resolver:ListResolverEndpointIpAddresses", "route53resolver:ListResolverEndpoints", "route53resolver:UpdateResolverEndpoint"], "path": "behavioral/route53resolver/check_resolver_endpoint_lifecycle_creating_to_operational.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-query-log-config-association-status-transitions", "deployments": [], "key": "route53resolver/resolver-query-log-config-association-status-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation"], "path": "behavioral/route53resolver/check_resolver_query_log_config_association_status_transitions.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-query-log-config-bad-destination-rejected", "deployments": [], "key": "route53resolver/resolver-query-log-config-bad-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig", "route53resolver:ListResolverQueryLogConfigs", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_resolver_query_log_config_bad_destination_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-query-log-config-destination-arn-preserved", "deployments": [], "key": "route53resolver/resolver-query-log-config-destination-arn-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig", "route53resolver:ListResolverQueryLogConfigs"], "path": "behavioral/route53resolver/check_resolver_query_log_config_destination_arn_preserved.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-query-log-config-lifecycle", "deployments": [], "key": "route53resolver/resolver-query-log-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig"], "path": "behavioral/route53resolver/check_resolver_query_log_config_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-query-log-config-timestamp-precision-preserved", "deployments": [], "key": "route53resolver/resolver-query-log-config-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfig", "route53resolver:ListResolverQueryLogConfigs"], "path": "behavioral/route53resolver/check_resolver_query_log_config_timestamp_precision_preserved.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-rule-association-gone-after-disassociate", "deployments": [], "key": "route53resolver/resolver-rule-association-gone-after-disassociate", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverRuleAssociation"], "path": "behavioral/route53resolver/check_resolver_rule_association_gone_after_disassociate.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-rule-association-state-transition", "deployments": [], "key": "route53resolver/resolver-rule-association-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRuleAssociation", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_resolver_rule_association_state_transition.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-rule-domain-name-trailing-dot-normalized", "deployments": [], "key": "route53resolver/resolver-rule-domain-name-trailing-dot-normalized", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:GetResolverRule", "route53resolver:ListResolverRules"], "path": "behavioral/route53resolver/check_resolver_rule_domain_name_trailing_dot_normalized.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-rule-system-lifecycle-and-association", "deployments": [], "key": "route53resolver/resolver-rule-system-lifecycle-and-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverRule", "route53resolver:GetResolverRuleAssociation", "route53resolver:ListResolverRuleAssociations"], "path": "behavioral/route53resolver/check_resolver_rule_system_lifecycle_and_association.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-rule-target-ip-list-order-preserved", "deployments": [], "key": "route53resolver/resolver-rule-target-ip-list-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRule", "route53resolver:UpdateResolverRule"], "path": "behavioral/route53resolver/check_resolver_rule_target_ip_list_order_preserved.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-rule-target-ip-port-precision-round-trip", "deployments": [], "key": "route53resolver/resolver-rule-target-ip-port-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRule"], "path": "behavioral/route53resolver/check_resolver_rule_target_ip_port_precision_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.resolver-rule-target-ip-port-round-trip", "deployments": [], "key": "route53resolver/resolver-rule-target-ip-port-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRule"], "path": "behavioral/route53resolver/check_resolver_rule_target_ip_port_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.server-side-firewall-config-auto-created-on-vpc-association", "deployments": [], "key": "route53resolver/server-side-firewall-config-auto-created-on-vpc-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallConfig", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:ListFirewallConfigs"], "path": "behavioral/route53resolver/check_server_side_firewall_config_auto_created_on_vpc_association.py", "service": "route53resolver"} {"check_id": "route53resolver.server-side-resolver-query-log-config-policy-enforced", "deployments": [], "key": "route53resolver/server-side-resolver-query-log-config-policy-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "route53resolver:AssociateResolverQueryLogConfig", "route53resolver:CreateResolverQueryLogConfig", "route53resolver:DeleteResolverQueryLogConfig", "route53resolver:DisassociateResolverQueryLogConfig", "route53resolver:GetResolverQueryLogConfigAssociation", "route53resolver:GetResolverQueryLogConfigPolicy", "route53resolver:PutResolverQueryLogConfigPolicy", "sts:GetCallerIdentity"], "path": "behavioral/route53resolver/check_server_side_resolver_query_log_config_policy_enforced.py", "service": "route53resolver"} {"check_id": "route53resolver.system-resolver-rule-and-policy", "deployments": [], "key": "route53resolver/system-resolver-rule-and-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverRule", "route53resolver:GetResolverRulePolicy", "route53resolver:ListResolverRules", "route53resolver:PutResolverRulePolicy"], "path": "behavioral/route53resolver/check_system_resolver_rule_and_policy.py", "service": "route53resolver"} {"check_id": "route53resolver.system-rule-overrides-the-forward-rule-for-the-subdomain", "deployments": [], "key": "route53resolver/system-rule-overrides-the-forward-rule-for-the-subdomain", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:ModifyVpcAttribute", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "route53resolver:AssociateResolverRule", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:DisassociateResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:GetResolverRuleAssociation"], "path": "behavioral/route53resolver/check_system_rule_overrides_the_forward_rule_for_the_subdomain.py", "service": "route53resolver"} {"check_id": "route53resolver.tag-resource-arn-not-found", "deployments": [], "key": "route53resolver/tag-resource-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:ListTagsForResource", "route53resolver:TagResource"], "path": "behavioral/route53resolver/check_tag_resource_arn_not_found.py", "service": "route53resolver"} {"check_id": "route53resolver.tag-resource-oversized-key-rejected", "deployments": [], "key": "route53resolver/tag-resource-oversized-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:ListTagsForResource", "route53resolver:TagResource"], "path": "behavioral/route53resolver/check_tag_resource_oversized_key_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.tag-untag-resource-lifecycle", "deployments": [], "key": "route53resolver/tag-untag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListTagsForResource", "route53resolver:TagResource", "route53resolver:UntagResource"], "path": "behavioral/route53resolver/check_tag_untag_resource_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.tag-value-unicode-and-empty-round-trip", "deployments": [], "key": "route53resolver/tag-value-unicode-and-empty-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:ListTagsForResource", "route53resolver:TagResource"], "path": "behavioral/route53resolver/check_tag_value_unicode_and_empty_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.tag-value-unicode-round-trip", "deployments": [], "key": "route53resolver/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListTagsForResource", "route53resolver:TagResource"], "path": "behavioral/route53resolver/check_tag_value_unicode_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.unicode-resolver-rule-name-round-trip", "deployments": [], "key": "route53resolver/unicode-resolver-rule-name-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverRule", "route53resolver:ListResolverRules"], "path": "behavioral/route53resolver/check_unicode_resolver_rule_name_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.unicode-tag-value-round-trip", "deployments": [], "key": "route53resolver/unicode-tag-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:CreateResolverEndpoint", "route53resolver:CreateResolverRule", "route53resolver:DeleteResolverEndpoint", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverEndpoint", "route53resolver:ListTagsForResource", "route53resolver:TagResource"], "path": "behavioral/route53resolver/check_unicode_tag_value_round_trip.py", "service": "route53resolver"} {"check_id": "route53resolver.update-firewall-domains-add-remove-lifecycle", "deployments": [], "key": "route53resolver/update-firewall-domains-add-remove-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomains", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_update_firewall_domains_add_remove_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.update-firewall-domains-nonexistent-list", "deployments": [], "key": "route53resolver/update-firewall-domains-nonexistent-list", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:DeleteFirewallDomainList", "route53resolver:ListFirewallDomains", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_update_firewall_domains_nonexistent_list.py", "service": "route53resolver"} {"check_id": "route53resolver.update-firewall-domains-replace-replaces-whole-set", "deployments": [], "key": "route53resolver/update-firewall-domains-replace-replaces-whole-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallDomains", "route53resolver:UpdateFirewallDomains"], "path": "behavioral/route53resolver/check_update_firewall_domains_replace_replaces_whole_set.py", "service": "route53resolver"} {"check_id": "route53resolver.update-firewall-rule-group-association-invalid-priority-rejected", "deployments": [], "key": "route53resolver/update-firewall-rule-group-association-invalid-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_update_firewall_rule_group_association_invalid_priority_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.update-firewall-rule-group-association-mutation-protected", "deployments": [], "key": "route53resolver/update-firewall-rule-group-association-mutation-protected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_update_firewall_rule_group_association_mutation_protected.py", "service": "route53resolver"} {"check_id": "route53resolver.update-firewall-rule-group-association-priority", "deployments": [], "key": "route53resolver/update-firewall-rule-group-association-priority", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "route53resolver:AssociateFirewallRuleGroup", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:DisassociateFirewallRuleGroup", "route53resolver:GetFirewallRuleGroupAssociation", "route53resolver:UpdateFirewallRuleGroupAssociation"], "path": "behavioral/route53resolver/check_update_firewall_rule_group_association_priority.py", "service": "route53resolver"} {"check_id": "route53resolver.update-firewall-rule-invalid-action-rejected", "deployments": [], "key": "route53resolver/update-firewall-rule-invalid-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53resolver:CreateFirewallDomainList", "route53resolver:CreateFirewallRule", "route53resolver:CreateFirewallRuleGroup", "route53resolver:DeleteFirewallDomainList", "route53resolver:DeleteFirewallRule", "route53resolver:DeleteFirewallRuleGroup", "route53resolver:GetFirewallDomainList", "route53resolver:ListFirewallRules", "route53resolver:UpdateFirewallDomains", "route53resolver:UpdateFirewallRule"], "path": "behavioral/route53resolver/check_update_firewall_rule_invalid_action_rejected.py", "service": "route53resolver"} {"check_id": "route53resolver.update-resolver-config-toggle-lifecycle", "deployments": [], "key": "route53resolver/update-resolver-config-toggle-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "route53resolver:GetResolverConfig", "route53resolver:ListResolverConfigs", "route53resolver:UpdateResolverConfig"], "path": "behavioral/route53resolver/check_update_resolver_config_toggle_lifecycle.py", "service": "route53resolver"} {"check_id": "route53resolver.update-resolver-rule-name", "deployments": [], "key": "route53resolver/update-resolver-rule-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53resolver:CreateResolverRule", "route53resolver:DeleteResolverRule", "route53resolver:GetResolverRule", "route53resolver:UpdateResolverRule"], "path": "behavioral/route53resolver/check_update_resolver_rule_name.py", "service": "route53resolver"} {"check_id": "rtbfabric.associate-and-disassociate-certificate-lifecycle", "deployments": [], "key": "rtbfabric/associate-and-disassociate-certificate-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:ImportCertificate", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "rtbfabric:AssociateCertificate", "rtbfabric:CreateResponderGateway", "rtbfabric:DeleteResponderGateway", "rtbfabric:GetResponderGateway", "rtbfabric:ListResponderGateways", "sts:GetCallerIdentity"], "path": "behavioral/rtbfabric/check_associate_and_disassociate_certificate_lifecycle.py", "service": "rtbfabric"} {"check_id": "rtbfabric.create-requester-gateway-invalid-vpc-pattern-rejected", "deployments": [], "key": "rtbfabric/create-requester-gateway-invalid-vpc-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "rtbfabric:CreateRequesterGateway", "rtbfabric:DeleteRequesterGateway", "rtbfabric:GetRequesterGateway", "rtbfabric:ListRequesterGateways"], "path": "behavioral/rtbfabric/check_create_requester_gateway_invalid_vpc_pattern_rejected.py", "service": "rtbfabric"} {"check_id": "rtbfabric.get-link-routing-rule-not-found", "deployments": [], "key": "rtbfabric/get-link-routing-rule-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["rtbfabric:GetLinkRoutingRule"], "path": "behavioral/rtbfabric/check_get_link_routing_rule_not_found.py", "service": "rtbfabric"} {"check_id": "rtbfabric.get-requester-gateway-not-found", "deployments": [], "key": "rtbfabric/get-requester-gateway-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "rtbfabric:CreateRequesterGateway", "rtbfabric:DeleteRequesterGateway", "rtbfabric:GetRequesterGateway"], "path": "behavioral/rtbfabric/check_get_requester_gateway_not_found.py", "service": "rtbfabric"} {"check_id": "rtbfabric.link-reject-terminal-state-blocks-accept-rejected", "deployments": [], "key": "rtbfabric/link-reject-terminal-state-blocks-accept-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rtbfabric:AcceptLink", "rtbfabric:CreateLink", "rtbfabric:CreateRequesterGateway", "rtbfabric:CreateResponderGateway", "rtbfabric:DeleteLink", "rtbfabric:DeleteRequesterGateway", "rtbfabric:DeleteResponderGateway", "rtbfabric:GetLink", "rtbfabric:GetRequesterGateway", "rtbfabric:GetResponderGateway", "rtbfabric:RejectLink"], "path": "behavioral/rtbfabric/check_link_reject_terminal_state_blocks_accept_rejected.py", "service": "rtbfabric"} {"check_id": "rtbfabric.list-requester-gateways-invalid-max-results-rejected", "deployments": [], "key": "rtbfabric/list-requester-gateways-invalid-max-results-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rtbfabric:ListRequesterGateways"], "path": "behavioral/rtbfabric/check_list_requester_gateways_invalid_max_results_rejected.py", "service": "rtbfabric"} {"check_id": "rtbfabric.list-tags-for-resource-nonexistent-resource-not-found", "deployments": [], "key": "rtbfabric/list-tags-for-resource-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["rtbfabric:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/rtbfabric/check_list_tags_for_resource_nonexistent_resource_not_found.py", "service": "rtbfabric"} {"check_id": "rtbfabric.requester-gateway-lifecycle-reaches-active", "deployments": [], "key": "rtbfabric/requester-gateway-lifecycle-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rtbfabric:CreateRequesterGateway", "rtbfabric:DeleteRequesterGateway", "rtbfabric:GetRequesterGateway"], "path": "behavioral/rtbfabric/check_requester_gateway_lifecycle_reaches_active.py", "service": "rtbfabric"} {"check_id": "rtbfabric.responder-gateway-lifecycle-reaches-active", "deployments": [], "key": "rtbfabric/responder-gateway-lifecycle-reaches-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rtbfabric:CreateResponderGateway", "rtbfabric:DeleteResponderGateway", "rtbfabric:GetResponderGateway"], "path": "behavioral/rtbfabric/check_responder_gateway_lifecycle_reaches_active.py", "service": "rtbfabric"} {"check_id": "rtbfabric.tag-and-untag-resource-round-trip", "deployments": [], "key": "rtbfabric/tag-and-untag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "rtbfabric:CreateRequesterGateway", "rtbfabric:DeleteRequesterGateway", "rtbfabric:ListTagsForResource", "rtbfabric:TagResource", "rtbfabric:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/rtbfabric/check_tag_and_untag_resource_round_trip.py", "service": "rtbfabric"} {"check_id": "rum.app-monitor-empty-vs-absent-domain-list-preserved", "deployments": [], "key": "rum/app-monitor-empty-vs-absent-domain-list-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor"], "path": "behavioral/rum/check_app_monitor_empty_vs_absent_domain_list_preserved.py", "service": "rum"} {"check_id": "rum.batch-create-metric-definition-duplicate-name-conflict", "deployments": [], "key": "rum/batch-create-metric-definition-duplicate-name-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_batch_create_metric_definition_duplicate_name_conflict.py", "service": "rum"} {"check_id": "rum.batch-create-metric-definition-duplicate-rejected", "deployments": [], "key": "rum/batch-create-metric-definition-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_batch_create_metric_definition_duplicate_rejected.py", "service": "rum"} {"check_id": "rum.batch-create-metric-definitions-malformed-namespace-rejected", "deployments": [], "key": "rum/batch-create-metric-definitions-malformed-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_batch_create_metric_definitions_malformed_namespace_rejected.py", "service": "rum"} {"check_id": "rum.batch-delete-metric-definition-removes-it", "deployments": [], "key": "rum/batch-delete-metric-definition-removes-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_batch_delete_metric_definition_removes_it.py", "service": "rum"} {"check_id": "rum.batch-delete-metric-definitions-missing-permission-denied", "deployments": [], "key": "rum/batch-delete-metric-definitions-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_batch_delete_metric_definitions_missing_permission_denied.py", "service": "rum"} {"check_id": "rum.batch-delete-metric-definitions-partial-errors", "deployments": [], "key": "rum/batch-delete-metric-definitions-partial-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:PutRumMetricsDestination", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_batch_delete_metric_definitions_partial_errors.py", "service": "rum"} {"check_id": "rum.batch-get-metric-definitions-unknown-destination-rejected", "deployments": [], "key": "rum/batch-get-metric-definitions-unknown-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_batch_get_metric_definitions_unknown_destination_rejected.py", "service": "rum"} {"check_id": "rum.batch-get-rum-metric-definitions-invalid-destination-rejected", "deployments": [], "key": "rum/batch-get-rum-metric-definitions-invalid-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_batch_get_rum_metric_definitions_invalid_destination_rejected.py", "service": "rum"} {"check_id": "rum.create-app-monitor-duplicate-name-conflict", "deployments": [], "key": "rum/create-app-monitor-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_create_app_monitor_duplicate_name_conflict.py", "service": "rum"} {"check_id": "rum.create-app-monitor-duplicate-name-conflict-blocked", "deployments": [], "key": "rum/create-app-monitor-duplicate-name-conflict-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor"], "path": "behavioral/rum/check_create_app_monitor_duplicate_name_conflict_blocked.py", "service": "rum"} {"check_id": "rum.create-app-monitor-duplicate-name-conflict-rejected", "deployments": [], "key": "rum/create-app-monitor-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor"], "path": "behavioral/rum/check_create_app_monitor_duplicate_name_conflict_rejected.py", "service": "rum"} {"check_id": "rum.create-app-monitor-malformed-domain-rejected", "deployments": [], "key": "rum/create-app-monitor-malformed-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor"], "path": "behavioral/rum/check_create_app_monitor_malformed_domain_rejected.py", "service": "rum"} {"check_id": "rum.delete-app-monitor-twice-rejected", "deployments": [], "key": "rum/delete-app-monitor-twice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor"], "path": "behavioral/rum/check_delete_app_monitor_twice_rejected.py", "service": "rum"} {"check_id": "rum.delete-app-monitor-with-active-metric-destination-cleans-up", "deployments": [], "key": "rum/delete-app-monitor-with-active-metric-destination-cleans-up", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_delete_app_monitor_with_active_metric_destination_cleans_up.py", "service": "rum"} {"check_id": "rum.delete-app-monitor-wrong-state-after-delete-rejected", "deployments": [], "key": "rum/delete-app-monitor-wrong-state-after-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor"], "path": "behavioral/rum/check_delete_app_monitor_wrong_state_after_delete_rejected.py", "service": "rum"} {"check_id": "rum.delete-metrics-destination-then-list-empty", "deployments": [], "key": "rum/delete-metrics-destination-then-list-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_delete_metrics_destination_then_list_empty.py", "service": "rum"} {"check_id": "rum.delete-resource-policy-nonexistent-rejected", "deployments": [], "key": "rum/delete-resource-policy-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_delete_resource_policy_nonexistent_rejected.py", "service": "rum"} {"check_id": "rum.delete-resource-policy-then-get-rejected", "deployments": [], "key": "rum/delete-resource-policy-then-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_delete_resource_policy_then_get_rejected.py", "service": "rum"} {"check_id": "rum.delete-resource-policy-without-existing-conflict", "deployments": [], "key": "rum/delete-resource-policy-without-existing-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_delete_resource_policy_without_existing_conflict.py", "service": "rum"} {"check_id": "rum.delete-rum-metrics-destination-unknown-conflict", "deployments": [], "key": "rum/delete-rum-metrics-destination-unknown-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_delete_rum_metrics_destination_unknown_conflict.py", "service": "rum"} {"check_id": "rum.deploy-app-monitor-cfn-behaves", "deployments": [], "key": "rum/deploy-app-monitor-cfn-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rum:GetAppMonitor", "rum:PutRumEvents"], "path": "behavioral/rum/check_deploy_app_monitor_cfn_behaves.py", "service": "rum"} {"check_id": "rum.deploy-app-monitor-cfn-stack-behaves", "deployments": [], "key": "rum/deploy-app-monitor-cfn-stack-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rum:GetAppMonitor", "rum:GetAppMonitorData", "rum:PutRumEvents"], "path": "behavioral/rum/check_deploy_app_monitor_cfn_stack_behaves.py", "service": "rum"} {"check_id": "rum.deploy-app-monitor-cfn-tags-propagate", "deployments": [], "key": "rum/deploy-app-monitor-cfn-tags-propagate", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rum:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_deploy_app_monitor_cfn_tags_propagate.py", "service": "rum"} {"check_id": "rum.deploy-app-monitor-via-cloudformation-then-behaves", "deployments": [], "key": "rum/deploy-app-monitor-via-cloudformation-then-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "rum:GetAppMonitor", "rum:GetAppMonitorData", "rum:PutRumEvents"], "path": "behavioral/rum/check_deploy_app_monitor_via_cloudformation_then_behaves.py", "service": "rum"} {"check_id": "rum.duplicate-app-monitor-name-conflict-rejected", "deployments": [], "key": "rum/duplicate-app-monitor-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor"], "path": "behavioral/rum/check_duplicate_app_monitor_name_conflict_rejected.py", "service": "rum"} {"check_id": "rum.e2e-app-monitor-lifecycle-with-metrics-and-events", "deployments": [], "key": "rum/e2e-app-monitor-lifecycle-with-metrics-and-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:GetAppMonitor", "rum:GetAppMonitorData", "rum:ListRumMetricsDestinations", "rum:PutRumEvents", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_e2e_app_monitor_lifecycle_with_metrics_and_events.py", "service": "rum"} {"check_id": "rum.e2e-app-monitor-lifecycle-with-policy-and-events", "deployments": [], "key": "rum/e2e-app-monitor-lifecycle-with-policy-and-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetAppMonitor", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "rum:PutRumEvents", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_e2e_app_monitor_lifecycle_with_policy_and_events.py", "service": "rum"} {"check_id": "rum.e2e-app-monitor-metric-pipeline", "deployments": [], "key": "rum/e2e-app-monitor-metric-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:GetAppMonitor", "rum:ListRumMetricsDestinations", "rum:PutRumEvents", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_e2e_app_monitor_metric_pipeline.py", "service": "rum"} {"check_id": "rum.e2e-put-rum-events-after-delete-rejected", "deployments": [], "key": "rum/e2e-put-rum-events-after-delete-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "rum:PutRumEvents"], "path": "behavioral/rum/check_e2e_put_rum_events_after_delete_rejected.py", "service": "rum"} {"check_id": "rum.e2e-resource-policy-access-lifecycle", "deployments": [], "key": "rum/e2e-resource-policy-access-lifecycle", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:PutResourcePolicy", "rum:PutRumEvents", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_e2e_resource_policy_access_lifecycle.py", "service": "rum"} {"check_id": "rum.get-app-monitor-deleted-or-unknown-name-not-found", "deployments": [], "key": "rum/get-app-monitor-deleted-or-unknown-name-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "rum:PutRumEvents"], "path": "behavioral/rum/check_get_app_monitor_deleted_or_unknown_name_not_found.py", "service": "rum"} {"check_id": "rum.get-resource-policy-missing-policy-conflict", "deployments": [], "key": "rum/get-resource-policy-missing-policy-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_get_resource_policy_missing_policy_conflict.py", "service": "rum"} {"check_id": "rum.get-resource-policy-unknown-app-monitor-denied", "deployments": [], "key": "rum/get-resource-policy-unknown-app-monitor-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_get_resource_policy_unknown_app_monitor_denied.py", "service": "rum"} {"check_id": "rum.list-tags-for-deleted-app-monitor-rejected", "deployments": [], "key": "rum/list-tags-for-deleted-app-monitor-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "rum:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_list_tags_for_deleted_app_monitor_rejected.py", "service": "rum"} {"check_id": "rum.list-tags-for-resource-unknown-arn-rejected", "deployments": [], "key": "rum/list-tags-for-resource-unknown-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_list_tags_for_resource_unknown_arn_rejected.py", "service": "rum"} {"check_id": "rum.metric-definition-unicode-name-round-trip", "deployments": [], "key": "rum/metric-definition-unicode-name-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_metric_definition_unicode_name_round_trip.py", "service": "rum"} {"check_id": "rum.put-metrics-destination-invalid-arn-rejected", "deployments": [], "key": "rum/put-metrics-destination-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_put_metrics_destination_invalid_arn_rejected.py", "service": "rum"} {"check_id": "rum.put-resource-policy-concurrent-revision-conflict", "deployments": [], "key": "rum/put-resource-policy-concurrent-revision-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_put_resource_policy_concurrent_revision_conflict.py", "service": "rum"} {"check_id": "rum.put-resource-policy-malformed-document-rejected", "deployments": [], "key": "rum/put-resource-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_put_resource_policy_malformed_document_rejected.py", "service": "rum"} {"check_id": "rum.put-resource-policy-stale-revision-conflict", "deployments": [], "key": "rum/put-resource-policy-stale-revision-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_put_resource_policy_stale_revision_conflict.py", "service": "rum"} {"check_id": "rum.put-resource-policy-then-get-reflects", "deployments": [], "key": "rum/put-resource-policy-then-get-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_put_resource_policy_then_get_reflects.py", "service": "rum"} {"check_id": "rum.put-rum-events-missing-permission-denied", "deployments": [], "key": "rum/put-rum-events-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:PutResourcePolicy", "rum:PutRumEvents", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_put_rum_events_missing_permission_denied.py", "service": "rum"} {"check_id": "rum.put-rum-events-payload-timestamp-preserved", "deployments": [], "key": "rum/put-rum-events-payload-timestamp-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitorData", "rum:PutRumEvents"], "path": "behavioral/rum/check_put_rum_events_payload_timestamp_preserved.py", "service": "rum"} {"check_id": "rum.put-rum-events-unknown-app-monitor-rejected", "deployments": [], "key": "rum/put-rum-events-unknown-app-monitor-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListAppMonitors", "rum:PutRumEvents"], "path": "behavioral/rum/check_put_rum_events_unknown_app_monitor_rejected.py", "service": "rum"} {"check_id": "rum.put-rum-metrics-destination-access-denied", "deployments": [], "key": "rum/put-rum-metrics-destination-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination", "sts:AssumeRole"], "path": "behavioral/rum/check_put_rum_metrics_destination_access_denied.py", "service": "rum"} {"check_id": "rum.representation-app-monitor-domain-list-empty-vs-absent", "deployments": [], "key": "rum/representation-app-monitor-domain-list-empty-vs-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor"], "path": "behavioral/rum/check_representation_app_monitor_domain_list_empty_vs_absent.py", "service": "rum"} {"check_id": "rum.representation-metric-definition-numeric-precision-preserved", "deployments": [], "key": "rum/representation-metric-definition-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_representation_metric_definition_numeric_precision_preserved.py", "service": "rum"} {"check_id": "rum.representation-resource-policy-json-round-trip", "deployments": [], "key": "rum/representation-resource-policy-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_representation_resource_policy_json_round_trip.py", "service": "rum"} {"check_id": "rum.representation-tag-unicode-value-round-trip", "deployments": [], "key": "rum/representation-tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_representation_tag_unicode_value_round_trip.py", "service": "rum"} {"check_id": "rum.resource-policy-document-byte-equality-round-trip", "deployments": [], "key": "rum/resource-policy-document-byte-equality-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_resource_policy_document_byte_equality_round_trip.py", "service": "rum"} {"check_id": "rum.resource-policy-enforced-on-put-rum-events", "deployments": [], "key": "rum/resource-policy-enforced-on-put-rum-events", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:PutResourcePolicy", "rum:PutRumEvents", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_resource_policy_enforced_on_put_rum_events.py", "service": "rum"} {"check_id": "rum.resource-policy-malformed-document-rejected", "deployments": [], "key": "rum/resource-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_resource_policy_malformed_document_rejected.py", "service": "rum"} {"check_id": "rum.resource-policy-put-get-delete-lifecycle", "deployments": [], "key": "rum/resource-policy-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_resource_policy_put_get_delete_lifecycle.py", "service": "rum"} {"check_id": "rum.resource-policy-revision-mismatch-rejected", "deployments": [], "key": "rum/resource-policy-revision-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_resource_policy_revision_mismatch_rejected.py", "service": "rum"} {"check_id": "rum.server-side-cw-log-enablement-enforced", "deployments": [], "key": "rum/server-side-cw-log-enablement-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:DescribeLogGroups", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "rum:GetAppMonitorData", "rum:PutRumEvents", "rum:UpdateAppMonitor"], "path": "behavioral/rum/check_server_side_cw_log_enablement_enforced.py", "service": "rum"} {"check_id": "rum.server-side-delete-resource-policy-idempotent-enforcement", "deployments": [], "key": "rum/server-side-delete-resource-policy-idempotent-enforcement", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_server_side_delete_resource_policy_idempotent_enforcement.py", "service": "rum"} {"check_id": "rum.stale-policy-revision-delete-rejected", "deployments": [], "key": "rum/stale-policy-revision-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteResourcePolicy", "rum:GetResourcePolicy", "rum:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_stale_policy_revision_delete_rejected.py", "service": "rum"} {"check_id": "rum.tag-resource-invalid-key-format-rejected", "deployments": [], "key": "rum/tag-resource-invalid-key-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_tag_resource_invalid_key_format_rejected.py", "service": "rum"} {"check_id": "rum.tag-resource-invalid-key-rejected", "deployments": [], "key": "rum/tag-resource-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_tag_resource_invalid_key_rejected.py", "service": "rum"} {"check_id": "rum.tag-resource-unicode-value-round-trip", "deployments": [], "key": "rum/tag-resource-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_tag_resource_unicode_value_round_trip.py", "service": "rum"} {"check_id": "rum.tag-value-unicode-and-empty-string-preserved", "deployments": [], "key": "rum/tag-value-unicode-and-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_tag_value_unicode_and_empty_string_preserved.py", "service": "rum"} {"check_id": "rum.telemetry-batch-create-metric-definitions-then-get-reflects", "deployments": [], "key": "rum/telemetry-batch-create-metric-definitions-then-get-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_batch_create_metric_definitions_then_get_reflects.py", "service": "rum"} {"check_id": "rum.telemetry-batch-create-partial-failure-isolated", "deployments": [], "key": "rum/telemetry-batch-create-partial-failure-isolated", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_batch_create_partial_failure_isolated.py", "service": "rum"} {"check_id": "rum.telemetry-batch-create-then-get-definitions", "deployments": [], "key": "rum/telemetry-batch-create-then-get-definitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_batch_create_then_get_definitions.py", "service": "rum"} {"check_id": "rum.telemetry-batch-delete-definitions-removed", "deployments": [], "key": "rum/telemetry-batch-delete-definitions-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_batch_delete_definitions_removed.py", "service": "rum"} {"check_id": "rum.telemetry-batch-delete-metric-definitions-removes-definition", "deployments": [], "key": "rum/telemetry-batch-delete-metric-definitions-removes-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_batch_delete_metric_definitions_removes_definition.py", "service": "rum"} {"check_id": "rum.telemetry-delete-destination-removes-from-list", "deployments": [], "key": "rum/telemetry-delete-destination-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_delete_destination_removes_from_list.py", "service": "rum"} {"check_id": "rum.telemetry-delete-metrics-destination-removes-from-list", "deployments": [], "key": "rum/telemetry-delete-metrics-destination-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_delete_metrics_destination_removes_from_list.py", "service": "rum"} {"check_id": "rum.telemetry-put-destination-then-list-reflects", "deployments": [], "key": "rum/telemetry-put-destination-then-list-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_put_destination_then_list_reflects.py", "service": "rum"} {"check_id": "rum.telemetry-put-metrics-destination-then-list-reflects", "deployments": [], "key": "rum/telemetry-put-metrics-destination-then-list-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination"], "path": "behavioral/rum/check_telemetry_put_metrics_destination_then_list_reflects.py", "service": "rum"} {"check_id": "rum.telemetry-update-metric-definition-persists-change", "deployments": [], "key": "rum/telemetry-update-metric-definition-persists-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:ListRumMetricsDestinations", "rum:PutRumMetricsDestination", "rum:UpdateRumMetricDefinition"], "path": "behavioral/rum/check_telemetry_update_metric_definition_persists_change.py", "service": "rum"} {"check_id": "rum.untag-resource-removes-exact-key", "deployments": [], "key": "rum/untag-resource-removes-exact-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "rum:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_untag_resource_removes_exact_key.py", "service": "rum"} {"check_id": "rum.untag-resource-unknown-key-noop-not-error", "deployments": [], "key": "rum/untag-resource-unknown-key-noop-not-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "rum:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_untag_resource_unknown_key_noop_not_error.py", "service": "rum"} {"check_id": "rum.untag-resource-unknown-resource-rejected", "deployments": [], "key": "rum/untag-resource-unknown-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:ListTagsForResource", "rum:TagResource", "rum:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_untag_resource_unknown_resource_rejected.py", "service": "rum"} {"check_id": "rum.update-app-monitor-cw-log-role-denied", "deployments": [], "key": "rum/update-app-monitor-cw-log-role-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "rum:UpdateAppMonitor", "sts:AssumeRole"], "path": "behavioral/rum/check_update_app_monitor_cw_log_role_denied.py", "service": "rum"} {"check_id": "rum.update-app-monitor-on-deleted-resource-blocked", "deployments": [], "key": "rum/update-app-monitor-on-deleted-resource-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "rum:UpdateAppMonitor"], "path": "behavioral/rum/check_update_app_monitor_on_deleted_resource_blocked.py", "service": "rum"} {"check_id": "rum.update-app-monitor-unknown-id-rejected", "deployments": [], "key": "rum/update-app-monitor-unknown-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:GetAppMonitor", "rum:UpdateAppMonitor", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_update_app_monitor_unknown_id_rejected.py", "service": "rum"} {"check_id": "rum.update-metric-definition-changes-filter-persists", "deployments": [], "key": "rum/update-metric-definition-changes-filter-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination", "rum:UpdateRumMetricDefinition"], "path": "behavioral/rum/check_update_metric_definition_changes_filter_persists.py", "service": "rum"} {"check_id": "rum.update-metric-definition-concurrent-modification-conflict", "deployments": [], "key": "rum/update-metric-definition-concurrent-modification-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:DeleteRumMetricsDestination", "rum:PutRumMetricsDestination", "rum:UpdateRumMetricDefinition"], "path": "behavioral/rum/check_update_metric_definition_concurrent_modification_conflict.py", "service": "rum"} {"check_id": "rum.update-rum-metric-definition-concurrent-conflict", "deployments": [], "key": "rum/update-rum-metric-definition-concurrent-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", "rum:CreateAppMonitor", "rum:DeleteAppMonitor", "rum:PutRumMetricsDestination", "rum:UpdateRumMetricDefinition", "sts:GetCallerIdentity"], "path": "behavioral/rum/check_update_rum_metric_definition_concurrent_conflict.py", "service": "rum"} {"check_id": "s3.50-bucket-fanout-object-isolation-and-negative-space", "deployments": [], "key": "s3/50-bucket-fanout-object-isolation-and-negative-space", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_50_bucket_fanout_object_isolation_and_negative_space.py", "service": "s3"} {"check_id": "s3.abac-policy-enforcement", "deployments": [], "key": "s3/abac-policy-enforcement", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketAbac", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketAbac", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_abac_policy_enforcement.py", "service": "s3"} {"check_id": "s3.abort-multipart-nosuchupload-after-complete", "deployments": [], "key": "s3/abort-multipart-nosuchupload-after-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:UploadPart"], "path": "behavioral/s3/check_abort_multipart_nosuchupload_after_complete.py", "service": "s3"} {"check_id": "s3.acl-disabled-bucket-rejects-put-object-acl", "deployments": [], "key": "s3/acl-disabled-bucket-rejects-put-object-acl", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketAcl", "s3:GetObjectAcl", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketAcl", "s3:PutObject", "s3:PutObjectAcl", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_acl_disabled_bucket_rejects_put_object_acl.py", "service": "s3"} {"check_id": "s3.annotation-name-validation-rejected", "deployments": [], "key": "s3/annotation-name-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectAnnotation", "s3:ListObjectAnnotations", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_annotation_name_validation_rejected.py", "service": "s3"} {"check_id": "s3.bucket-abac-invalid-status-rejected", "deployments": [], "key": "s3/bucket-abac-invalid-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketAbac", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketAbac"], "path": "behavioral/s3/check_bucket_abac_invalid_status_rejected.py", "service": "s3"} {"check_id": "s3.bucket-abac-roundtrip", "deployments": [], "key": "s3/bucket-abac-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketAbac", "s3:ListObjectVersions", "s3:PutBucketAbac"], "path": "behavioral/s3/check_bucket_abac_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-accelerate-configuration-roundtrip", "deployments": [], "key": "s3/bucket-accelerate-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketAccelerateConfiguration", "s3:ListObjectVersions", "s3:PutBucketAccelerateConfiguration"], "path": "behavioral/s3/check_bucket_accelerate_configuration_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-acl-conflicting-grants-rejected", "deployments": [], "key": "s3/bucket-acl-conflicting-grants-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketAcl", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketAcl"], "path": "behavioral/s3/check_bucket_acl_conflicting_grants_rejected.py", "service": "s3"} {"check_id": "s3.bucket-acl-owner-full-control-default", "deployments": [], "key": "s3/bucket-acl-owner-full-control-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketAcl", "s3:GetBucketOwnershipControls", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/s3/check_bucket_acl_owner_full_control_default.py", "service": "s3"} {"check_id": "s3.bucket-acl-public-grant-blocked-by-public-access-block-rejected", "deployments": [], "key": "s3/bucket-acl-public-grant-blocked-by-public-access-block-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:DeletePublicAccessBlock", "s3:GetBucketAcl", "s3:ListObjectVersions", "s3:PutBucketAcl", "s3:PutBucketOwnershipControls", "s3:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_bucket_acl_public_grant_blocked_by_public_access_block_rejected.py", "service": "s3"} {"check_id": "s3.bucket-acl-put-get-roundtrip", "deployments": [], "key": "s3/bucket-acl-put-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketAcl", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutBucketAcl", "s3:PutBucketOwnershipControls"], "path": "behavioral/s3/check_bucket_acl_put_get_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-acl-roundtrip", "deployments": [], "key": "s3/bucket-acl-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketAcl", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketAcl"], "path": "behavioral/s3/check_bucket_acl_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-acl-write-blocked-by-ownership-enforced", "deployments": [], "key": "s3/bucket-acl-write-blocked-by-ownership-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketAcl", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketAcl", "s3:PutBucketOwnershipControls", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_bucket_acl_write_blocked_by_ownership_enforced.py", "service": "s3"} {"check_id": "s3.bucket-analytics-configuration-lifecycle", "deployments": [], "key": "s3/bucket-analytics-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketAnalyticsConfiguration", "s3:DeleteObjects", "s3:GetBucketAnalyticsConfiguration", "s3:ListBucketAnalyticsConfigurations", "s3:ListObjectVersions", "s3:PutBucketAnalyticsConfiguration"], "path": "behavioral/s3/check_bucket_analytics_configuration_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-analytics-configuration-roundtrip", "deployments": [], "key": "s3/bucket-analytics-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketAnalyticsConfiguration", "s3:DeleteObject", "s3:GetBucketAnalyticsConfiguration", "s3:ListBucketAnalyticsConfigurations", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketAnalyticsConfiguration", "s3:PutBucketTagging"], "path": "behavioral/s3/check_bucket_analytics_configuration_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-create-delete", "deployments": [], "key": "s3/bucket-create-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_bucket_create_delete.py", "service": "s3"} {"check_id": "s3.bucket-default-retention-derives-the-retain-until-date-and-blocks-the-delete", "deployments": [], "key": "s3/bucket-default-retention-derives-the-retain-until-date-and-blocks-the-delete", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectLockConfiguration", "s3:GetObjectRetention", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectLockConfiguration", "s3:PutObjectRetention"], "path": "behavioral/s3/check_bucket_default_retention_derives_the_retain_until_date_and_blocks_the_delete.py", "service": "s3"} {"check_id": "s3.bucket-encryption-config-lifecycle", "deployments": [], "key": "s3/bucket-encryption-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketEncryption", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketEncryption", "s3:PutBucketTagging"], "path": "behavioral/s3/check_bucket_encryption_config_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-encryption-lifecycle", "deployments": [], "key": "s3/bucket-encryption-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketEncryption", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:ListObjectVersions", "s3:PutBucketEncryption"], "path": "behavioral/s3/check_bucket_encryption_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-holding-more-than-sixty-four-mib-reads-back-every-object", "deployments": [], "key": "s3/bucket-holding-more-than-sixty-four-mib-reads-back-every-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_bucket_holding_more_than_sixty_four_mib_reads_back_every_object.py", "service": "s3"} {"check_id": "s3.bucket-intelligent-tiering-archive-tier-minimum-days-rejected", "deployments": [], "key": "s3/bucket-intelligent-tiering-archive-tier-minimum-days-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketIntelligentTieringConfiguration", "s3:DeleteObject", "s3:GetBucketIntelligentTieringConfiguration", "s3:ListBucketIntelligentTieringConfigurations", "s3:ListObjectVersions", "s3:PutBucketIntelligentTieringConfiguration"], "path": "behavioral/s3/check_bucket_intelligent_tiering_archive_tier_minimum_days_rejected.py", "service": "s3"} {"check_id": "s3.bucket-intelligent-tiering-configuration-lifecycle", "deployments": [], "key": "s3/bucket-intelligent-tiering-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketIntelligentTieringConfiguration", "s3:GetBucketIntelligentTieringConfiguration", "s3:ListBucketIntelligentTieringConfigurations", "s3:PutBucketIntelligentTieringConfiguration", "s3:PutBucketTagging"], "path": "behavioral/s3/check_bucket_intelligent_tiering_configuration_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-intelligent-tiering-filtered-configs-replace-not-duplicate", "deployments": [], "key": "s3/bucket-intelligent-tiering-filtered-configs-replace-not-duplicate", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketIntelligentTieringConfiguration", "s3:DeleteObject", "s3:GetBucketIntelligentTieringConfiguration", "s3:ListBucketIntelligentTieringConfigurations", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketIntelligentTieringConfiguration"], "path": "behavioral/s3/check_bucket_intelligent_tiering_filtered_configs_replace_not_duplicate.py", "service": "s3"} {"check_id": "s3.bucket-intelligent-tiering-roundtrip", "deployments": [], "key": "s3/bucket-intelligent-tiering-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketIntelligentTieringConfiguration", "s3:DeleteObject", "s3:GetBucketIntelligentTieringConfiguration", "s3:ListBucketIntelligentTieringConfigurations", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketIntelligentTieringConfiguration", "s3:PutBucketTagging"], "path": "behavioral/s3/check_bucket_intelligent_tiering_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-inventory-configuration-lifecycle", "deployments": [], "key": "s3/bucket-inventory-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketInventoryConfiguration", "s3:GetBucketInventoryConfiguration", "s3:ListBucketInventoryConfigurations", "s3:PutBucketInventoryConfiguration", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_bucket_inventory_configuration_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-inventory-configuration-roundtrip", "deployments": [], "key": "s3/bucket-inventory-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketInventoryConfiguration", "s3:DeleteObject", "s3:GetBucketInventoryConfiguration", "s3:ListBucketInventoryConfigurations", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketInventoryConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_bucket_inventory_configuration_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-logging-config-roundtrip", "deployments": [], "key": "s3/bucket-logging-config-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketAcl", "s3:GetBucketLogging", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketAcl", "s3:PutBucketLogging", "s3:PutBucketTagging"], "path": "behavioral/s3/check_bucket_logging_config_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-logging-roundtrip", "deployments": [], "key": "s3/bucket-logging-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketAcl", "s3:GetBucketLogging", "s3:ListObjectVersions", "s3:PutBucketAcl", "s3:PutBucketLogging", "s3:PutBucketOwnershipControls"], "path": "behavioral/s3/check_bucket_logging_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-metadata-annotation-table-update", "deployments": [], "key": "s3/bucket-metadata-annotation-table-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:GetBucketMetadataConfiguration", "s3:PutBucketTagging", "s3:UpdateBucketMetadataAnnotationTableConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_bucket_metadata_annotation_table_update.py", "service": "s3"} {"check_id": "s3.bucket-metadata-configuration-duplicate-create-rejected", "deployments": [], "key": "s3/bucket-metadata-configuration-duplicate-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:DeleteObjects", "s3:GetBucketMetadataConfiguration", "s3:ListObjectsV2", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_bucket_metadata_configuration_duplicate_create_rejected.py", "service": "s3"} {"check_id": "s3.bucket-metadata-configuration-lifecycle", "deployments": [], "key": "s3/bucket-metadata-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_bucket_metadata_configuration_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-metadata-configuration-roundtrip", "deployments": [], "key": "s3/bucket-metadata-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:DeleteObject", "s3:GetBucketMetadataConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_bucket_metadata_configuration_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-metadata-inventory-table-update", "deployments": [], "key": "s3/bucket-metadata-inventory-table-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:GetBucketMetadataConfiguration", "s3:UpdateBucketMetadataInventoryTableConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_bucket_metadata_inventory_table_update.py", "service": "s3"} {"check_id": "s3.bucket-metadata-journal-table-update", "deployments": [], "key": "s3/bucket-metadata-journal-table-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:GetBucketMetadataConfiguration", "s3:UpdateBucketMetadataJournalTableConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_bucket_metadata_journal_table_update.py", "service": "s3"} {"check_id": "s3.bucket-metadata-table-configuration-lifecycle", "deployments": [], "key": "s3/bucket-metadata-table-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_bucket_metadata_table_configuration_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-metadata-table-update-roundtrip", "deployments": [], "key": "s3/bucket-metadata-table-update-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:DeleteObject", "s3:GetBucketMetadataConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UpdateBucketMetadataAnnotationTableConfiguration", "s3:UpdateBucketMetadataInventoryTableConfiguration", "s3:UpdateBucketMetadataJournalTableConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_bucket_metadata_table_update_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-metadata-table-updates-refused-while-journal-creating", "deployments": [], "key": "s3/bucket-metadata-table-updates-refused-while-journal-creating", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3:UpdateBucketMetadataAnnotationTableConfiguration", "s3:UpdateBucketMetadataInventoryTableConfiguration", "s3:UpdateBucketMetadataJournalTableConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_bucket_metadata_table_updates_refused_while_journal_creating.py", "service": "s3"} {"check_id": "s3.bucket-metrics-configuration-delete-reflected-in-list-then-get-rejected", "deployments": [], "key": "s3/bucket-metrics-configuration-delete-reflected-in-list-then-get-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:GetBucketMetricsConfiguration", "s3:ListBucketMetricsConfigurations", "s3:PutBucketMetricsConfiguration"], "path": "behavioral/s3/check_bucket_metrics_configuration_delete_reflected_in_list_then_get_rejected.py", "service": "s3"} {"check_id": "s3.bucket-metrics-configuration-filter-prefix-and-tag-combo", "deployments": [], "key": "s3/bucket-metrics-configuration-filter-prefix-and-tag-combo", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:GetBucketMetricsConfiguration", "s3:PutBucketMetricsConfiguration"], "path": "behavioral/s3/check_bucket_metrics_configuration_filter_prefix_and_tag_combo.py", "service": "s3"} {"check_id": "s3.bucket-metrics-configuration-multi-filter-listing", "deployments": [], "key": "s3/bucket-metrics-configuration-multi-filter-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:ListBucketMetricsConfigurations", "s3:PutBucketMetricsConfiguration", "s3:PutBucketTagging"], "path": "behavioral/s3/check_bucket_metrics_configuration_multi_filter_listing.py", "service": "s3"} {"check_id": "s3.bucket-ownership-controls-invalid-value-rejected", "deployments": [], "key": "s3/bucket-ownership-controls-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketOwnershipControls", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls"], "path": "behavioral/s3/check_bucket_ownership_controls_invalid_value_rejected.py", "service": "s3"} {"check_id": "s3.bucket-ownership-controls-lifecycle", "deployments": [], "key": "s3/bucket-ownership-controls-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketOwnershipControls", "s3:DeleteObjects", "s3:GetBucketOwnershipControls", "s3:ListObjectVersions", "s3:PutBucketOwnershipControls"], "path": "behavioral/s3/check_bucket_ownership_controls_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-ownership-controls-roundtrip", "deployments": [], "key": "s3/bucket-ownership-controls-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketOwnershipControls", "s3:DeleteObject", "s3:GetBucketOwnershipControls", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls"], "path": "behavioral/s3/check_bucket_ownership_controls_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-policy-deny-enforcement", "deployments": [], "key": "s3/bucket-policy-deny-enforcement", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_bucket_policy_deny_enforcement.py", "service": "s3"} {"check_id": "s3.bucket-policy-roundtrip", "deployments": [], "key": "s3/bucket-policy-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy"], "path": "behavioral/s3/check_bucket_policy_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-policy-status-reflects-policy", "deployments": [], "key": "s3/bucket-policy-status-reflects-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:DeletePublicAccessBlock", "s3:GetBucketPolicyStatus", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_bucket_policy_status_reflects_policy.py", "service": "s3"} {"check_id": "s3.bucket-replication-config-lifecycle", "deployments": [], "key": "s3/bucket-replication-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:DeleteObjects", "s3:GetBucketReplication", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_bucket_replication_config_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-replication-configuration-lifecycle", "deployments": [], "key": "s3/bucket-replication-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:DeleteObjects", "s3:GetBucketReplication", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_bucket_replication_configuration_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-replication-destination-validation-rejected", "deployments": [], "key": "s3/bucket-replication-destination-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:DeleteObjects", "s3:GetBucketReplication", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_bucket_replication_destination_validation_rejected.py", "service": "s3"} {"check_id": "s3.bucket-replication-lifecycle", "deployments": [], "key": "s3/bucket-replication-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:GetBucketReplication", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_bucket_replication_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-replication-requires-versioning-rejected", "deployments": [], "key": "s3/bucket-replication-requires-versioning-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketReplication", "s3:ListObjectVersions", "s3:PutBucketReplication", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_bucket_replication_requires_versioning_rejected.py", "service": "s3"} {"check_id": "s3.bucket-replication-roundtrip", "deployments": [], "key": "s3/bucket-replication-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketReplication", "s3:DeleteObject", "s3:GetBucketReplication", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_bucket_replication_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-request-payment-roundtrip", "deployments": [], "key": "s3/bucket-request-payment-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketRequestPayment", "s3:ListObjectVersions", "s3:PutBucketRequestPayment"], "path": "behavioral/s3/check_bucket_request_payment_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-subresource-deletes-leave-bucket-and-objects-intact", "deployments": [], "key": "s3/bucket-subresource-deletes-leave-bucket-and-objects-intact", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketCors", "s3:DeleteBucketMetricsConfiguration", "s3:DeleteBucketPolicy", "s3:DeleteBucketReplication", "s3:DeleteBucketTagging", "s3:DeleteBucketWebsite", "s3:DeleteObject", "s3:GetBucketCors", "s3:GetBucketMetricsConfiguration", "s3:GetBucketPolicy", "s3:GetBucketReplication", "s3:GetBucketTagging", "s3:GetBucketWebsite", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketCors", "s3:PutBucketMetricsConfiguration", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject"], "path": "behavioral/s3/check_bucket_subresource_deletes_leave_bucket_and_objects_intact.py", "service": "s3"} {"check_id": "s3.bucket-tagging-roundtrip", "deployments": [], "key": "s3/bucket-tagging-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketTagging", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_bucket_tagging_roundtrip.py", "service": "s3"} {"check_id": "s3.bucket-website-config-lifecycle", "deployments": [], "key": "s3/bucket-website-config-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketWebsite", "s3:DeleteObjects", "s3:GetBucketWebsite", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketWebsite"], "path": "behavioral/s3/check_bucket_website_config_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-website-configuration-lifecycle", "deployments": [], "key": "s3/bucket-website-configuration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketWebsite", "s3:DeleteObjects", "s3:GetBucketWebsite", "s3:ListObjectVersions", "s3:PutBucketWebsite"], "path": "behavioral/s3/check_bucket_website_configuration_lifecycle.py", "service": "s3"} {"check_id": "s3.bucket-website-roundtrip", "deployments": [], "key": "s3/bucket-website-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketWebsite", "s3:DeleteObject", "s3:GetBucketWebsite", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketWebsite"], "path": "behavioral/s3/check_bucket_website_roundtrip.py", "service": "s3"} {"check_id": "s3.checksum-crc32", "deployments": [], "key": "s3/checksum-crc32", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_checksum_crc32.py", "service": "s3"} {"check_id": "s3.checksum-sha256", "deployments": [], "key": "s3/checksum-sha256", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_checksum_sha256.py", "service": "s3"} {"check_id": "s3.cli-create-sdk-read-s3", "deployments": [], "key": "s3/cli-create-sdk-read-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/s3/check_cli_create_sdk_read_s3.py", "service": "s3"} {"check_id": "s3.cli-s3-cp-large-file-multipart-checksum-defaults", "deployments": [], "key": "s3/cli-s3-cp-large-file-multipart-checksum-defaults", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectAttributes", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions"], "path": "behavioral/s3/check_cli_s3_cp_large_file_multipart_checksum_defaults.py", "service": "s3"} {"check_id": "s3.cli-s3-cp-large-file-multipart-etag-shape", "deployments": [], "key": "s3/cli-s3-cp-large-file-multipart-etag-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectAttributes", "s3:HeadObject", "s3:ListObjectVersions"], "path": "behavioral/s3/check_cli_s3_cp_large_file_multipart_etag_shape.py", "service": "s3"} {"check_id": "s3.cli-s3-get-nonexistent-key-error", "deployments": [], "key": "s3/cli-s3-get-nonexistent-key-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_cli_s3_get_nonexistent_key_error.py", "service": "s3"} {"check_id": "s3.cli-s3-put-get-roundtrip", "deployments": [], "key": "s3/cli-s3-put-get-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/s3/check_cli_s3_put_get_roundtrip.py", "service": "s3"} {"check_id": "s3.cli-script-s3-sync-workflow", "deployments": [], "key": "s3/cli-script-s3-sync-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/s3/check_cli_script_s3_sync_workflow.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-complete-multipart-if-none-match-rejected-when-key-appears-mid-upload", "deployments": [], "key": "s3/conc-s3-conditional-writes-complete-multipart-if-none-match-rejected-when-key-appears-mid-upload", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_conc_s3_conditional_writes_complete_multipart_if_none_match_rejected_when_key_appears_mid_upload.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-complete-multipart-stale-if-match-rejected", "deployments": [], "key": "s3/conc-s3-conditional-writes-complete-multipart-stale-if-match-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_conc_s3_conditional_writes_complete_multipart_stale_if_match_rejected.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-concurrent-multipart-completions-exactly-one-wins", "deployments": [], "key": "s3/conc-s3-conditional-writes-concurrent-multipart-completions-exactly-one-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_conc_s3_conditional_writes_concurrent_multipart_completions_exactly_one_wins.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-get-during-overwrite-returns-a-whole-version", "deployments": [], "key": "s3/conc-s3-conditional-writes-get-during-overwrite-returns-a-whole-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_conc_s3_conditional_writes_get_during_overwrite_returns_a_whole_version.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-if-match-on-absent-key-rejected-and-nothing-created", "deployments": [], "key": "s3/conc-s3-conditional-writes-if-match-on-absent-key-rejected-and-nothing-created", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_conc_s3_conditional_writes_if_match_on_absent_key_rejected_and_nothing_created.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-if-match-over-delete-marker-rejected", "deployments": [], "key": "s3/conc-s3-conditional-writes-if-match-over-delete-marker-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_conc_s3_conditional_writes_if_match_over_delete_marker_rejected.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-lock-stale-holder-release-rejected", "deployments": [], "key": "s3/conc-s3-conditional-writes-lock-stale-holder-release-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_conc_s3_conditional_writes_lock_stale_holder_release_rejected.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-optimistic-counter-loses-no-increment", "deployments": [], "key": "s3/conc-s3-conditional-writes-optimistic-counter-loses-no-increment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_conc_s3_conditional_writes_optimistic_counter_loses_no_increment.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-read-after-conditional-overwrite-every-read-path-is-current", "deployments": [], "key": "s3/conc-s3-conditional-writes-read-after-conditional-overwrite-every-read-path-is-current", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectAttributes", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_conc_s3_conditional_writes_read_after_conditional_overwrite_every_read_path_is_current.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-unconditional-concurrent-puts-leave-exactly-one-whole-body", "deployments": [], "key": "s3/conc-s3-conditional-writes-unconditional-concurrent-puts-leave-exactly-one-whole-body", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_conc_s3_conditional_writes_unconditional_concurrent_puts_leave_exactly_one_whole_body.py", "service": "s3"} {"check_id": "s3.conc-s3-conditional-writes-versioned-noncurrent-etag-if-match-rejected", "deployments": [], "key": "s3/conc-s3-conditional-writes-versioned-noncurrent-etag-if-match-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_conc_s3_conditional_writes_versioned_noncurrent_etag_if_match_rejected.py", "service": "s3"} {"check_id": "s3.concurrent-conditional-create-exactly-one-wins", "deployments": [], "key": "s3/concurrent-conditional-create-exactly-one-wins", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_concurrent_conditional_create_exactly_one_wins.py", "service": "s3"} {"check_id": "s3.concurrent-multipart-completion-race", "deployments": [], "key": "s3/concurrent-multipart-completion-race", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_concurrent_multipart_completion_race.py", "service": "s3"} {"check_id": "s3.concurrent-put-if-none-match-exactly-one-wins", "deployments": [], "key": "s3/concurrent-put-if-none-match-exactly-one-wins", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:GetObject", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_concurrent_put_if_none_match_exactly_one_wins.py", "service": "s3"} {"check_id": "s3.concurrent-versioned-puts-no-lost-writes", "deployments": [], "key": "s3/concurrent-versioned-puts-no-lost-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_concurrent_versioned_puts_no_lost_writes.py", "service": "s3"} {"check_id": "s3.content-encoding-preserved", "deployments": [], "key": "s3/content-encoding-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_content_encoding_preserved.py", "service": "s3"} {"check_id": "s3.content-type-preserved", "deployments": [], "key": "s3/content-type-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_content_type_preserved.py", "service": "s3"} {"check_id": "s3.copy-object-and-ranged-get-return-exact-source-bytes-then-batch-delete-removes-both", "deployments": [], "key": "s3/copy-object-and-ranged-get-return-exact-source-bytes-then-batch-delete-removes-both", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_and_ranged_get_return_exact_source_bytes_then_batch_delete_removes_both.py", "service": "s3"} {"check_id": "s3.copy-object-annotation-exclude-directive-skips-default-copies", "deployments": [], "key": "s3/copy-object-annotation-exclude-directive-skips-default-copies", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAnnotation", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_copy_object_annotation_exclude_directive_skips_default_copies.py", "service": "s3"} {"check_id": "s3.copy-object-cross-bucket", "deployments": [], "key": "s3/copy-object-cross-bucket", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_cross_bucket.py", "service": "s3"} {"check_id": "s3.copy-object-from-specific-version-source", "deployments": [], "key": "s3/copy-object-from-specific-version-source", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_from_specific_version_source.py", "service": "s3"} {"check_id": "s3.copy-object-glacier-not-in-active-tier-error", "deployments": [], "key": "s3/copy-object-glacier-not-in-active-tier-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_glacier_not_in_active_tier_error.py", "service": "s3"} {"check_id": "s3.copy-object-glacier-source-error", "deployments": [], "key": "s3/copy-object-glacier-source-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_glacier_source_error.py", "service": "s3"} {"check_id": "s3.copy-object-if-match-on-the-destination-refuses-a-stale-etag", "deployments": [], "key": "s3/copy-object-if-match-on-the-destination-refuses-a-stale-etag", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_if_match_on_the_destination_refuses_a_stale_etag.py", "service": "s3"} {"check_id": "s3.copy-object-into-directory-bucket-rejects-source-tags-and-destination-ssec", "deployments": [], "key": "s3/copy-object-into-directory-bucket-rejects-source-tags-and-destination-ssec", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_into_directory_bucket_rejects_source_tags_and_destination_ssec.py", "service": "s3"} {"check_id": "s3.copy-object-metadata-copy", "deployments": [], "key": "s3/copy-object-metadata-copy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_metadata_copy.py", "service": "s3"} {"check_id": "s3.copy-object-metadata-replace", "deployments": [], "key": "s3/copy-object-metadata-replace", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_metadata_replace.py", "service": "s3"} {"check_id": "s3.copy-object-missing-source-permission-denied", "deployments": [], "key": "s3/copy-object-missing-source-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_copy_object_missing_source_permission_denied.py", "service": "s3"} {"check_id": "s3.copy-object-not-in-active-tier-rejected", "deployments": [], "key": "s3/copy-object-not-in-active-tier-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_not_in_active_tier_rejected.py", "service": "s3"} {"check_id": "s3.copy-object-same-bucket", "deployments": [], "key": "s3/copy-object-same-bucket", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_same_bucket.py", "service": "s3"} {"check_id": "s3.copy-object-source-if-match-mismatch-rejected", "deployments": [], "key": "s3/copy-object-source-if-match-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_source_if_match_mismatch_rejected.py", "service": "s3"} {"check_id": "s3.copy-object-to-itself-no-change-rejected", "deployments": [], "key": "s3/copy-object-to-itself-no-change-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_copy_object_to_itself_no_change_rejected.py", "service": "s3"} {"check_id": "s3.copy-object-under-if-none-match-policy", "deployments": [], "key": "s3/copy-object-under-if-none-match-policy", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_copy_object_under_if_none_match_policy.py", "service": "s3"} {"check_id": "s3.cors-configuration-roundtrip", "deployments": [], "key": "s3/cors-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketCors", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketCors"], "path": "behavioral/s3/check_cors_configuration_roundtrip.py", "service": "s3"} {"check_id": "s3.cors-delete", "deployments": [], "key": "s3/cors-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketCors", "s3:DeleteObject", "s3:GetBucketCors", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketCors"], "path": "behavioral/s3/check_cors_delete.py", "service": "s3"} {"check_id": "s3.cors-preflight-allowed-origin-returns-rule-headers", "deployments": [], "key": "s3/cors-preflight-allowed-origin-returns-rule-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_cors_preflight_allowed_origin_returns_rule_headers.py", "service": "s3"} {"check_id": "s3.cors-preflight-disallowed-method-rejected-allowed-method-passes", "deployments": [], "key": "s3/cors-preflight-disallowed-method-rejected-allowed-method-passes", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_cors_preflight_disallowed_method_rejected_allowed_method_passes.py", "service": "s3"} {"check_id": "s3.cors-preflight-disallowed-origin-rejected-allowed-origin-passes", "deployments": [], "key": "s3/cors-preflight-disallowed-origin-rejected-allowed-origin-passes", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_cors_preflight_disallowed_origin_rejected_allowed_origin_passes.py", "service": "s3"} {"check_id": "s3.cors-preflight-on-bucket-without-cors-configuration-rejected", "deployments": [], "key": "s3/cors-preflight-on-bucket-without-cors-configuration-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketCors", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_cors_preflight_on_bucket_without_cors_configuration_rejected.py", "service": "s3"} {"check_id": "s3.cors-preflight-refused-after-delete-bucket-cors", "deployments": [], "key": "s3/cors-preflight-refused-after-delete-bucket-cors", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketCors", "s3:DeleteObject", "s3:GetBucketCors", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_cors_preflight_refused_after_delete_bucket_cors.py", "service": "s3"} {"check_id": "s3.cors-presigned-put-and-get-with-origin-carry-allow-origin", "deployments": [], "key": "s3/cors-presigned-put-and-get-with-origin-carry-allow-origin", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketTagging"], "path": "behavioral/s3/check_cors_presigned_put_and_get_with_origin_carry_allow_origin.py", "service": "s3"} {"check_id": "s3.cors-presigned-with-origin-without-cors-config-no-cors-headers", "deployments": [], "key": "s3/cors-presigned-with-origin-without-cors-config-no-cors-headers", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_cors_presigned_with_origin_without_cors_config_no_cors_headers.py", "service": "s3"} {"check_id": "s3.create-bucket-invalid-name-rejected", "deployments": [], "key": "s3/create-bucket-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_create_bucket_invalid_name_rejected.py", "service": "s3"} {"check_id": "s3.create-bucket-invalid-name-variants-rejected", "deployments": [], "key": "s3/create-bucket-invalid-name-variants-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions"], "path": "behavioral/s3/check_create_bucket_invalid_name_variants_rejected.py", "service": "s3"} {"check_id": "s3.create-bucket-metadata-table-configuration-name-conflict-rejected", "deployments": [], "key": "s3/create-bucket-metadata-table-configuration-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_create_bucket_metadata_table_configuration_name_conflict_rejected.py", "service": "s3"} {"check_id": "s3.create-bucket-reserved-prefix-or-suffix-rejected", "deployments": [], "key": "s3/create-bucket-reserved-prefix-or-suffix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/s3/check_create_bucket_reserved_prefix_or_suffix_rejected.py", "service": "s3"} {"check_id": "s3.create-session-express-zone", "deployments": [], "key": "s3/create-session-express-zone", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_create_session_express_zone.py", "service": "s3"} {"check_id": "s3.create-session-no-such-bucket", "deployments": [], "key": "s3/create-session-no-such-bucket", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListDirectoryBuckets", "s3:ListObjectsV2"], "path": "behavioral/s3/check_create_session_no_such_bucket.py", "service": "s3"} {"check_id": "s3.create-session-nosuchbucket", "deployments": [], "key": "s3/create-session-nosuchbucket", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket"], "path": "behavioral/s3/check_create_session_nosuchbucket.py", "service": "s3"} {"check_id": "s3.create-session-roundtrip", "deployments": [], "key": "s3/create-session-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_create_session_roundtrip.py", "service": "s3"} {"check_id": "s3.create-session-token-ttl", "deployments": [], "key": "s3/create-session-token-ttl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_create_session_token_ttl.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-compliance-lock-extends-and-overwrites-but-weakening-rejected", "deployments": [], "key": "s3/deep-s3-immutability-compliance-lock-extends-and-overwrites-but-weakening-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectRetention", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention"], "path": "behavioral/s3/check_deep_s3_immutability_compliance_lock_extends_and_overwrites_but_weakening_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-composite-sha256-checksum-reports-parts", "deployments": [], "key": "s3/deep-s3-immutability-composite-sha256-checksum-reports-parts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectAttributes", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_deep_s3_immutability_composite_sha256_checksum_reports_parts.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-copy-metadata-directive-replace-drops-unrestated", "deployments": [], "key": "s3/deep-s3-immutability-copy-metadata-directive-replace-drops-unrestated", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_immutability_copy_metadata_directive_replace_drops_unrestated.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-copy-tagging-directive-independent-of-metadata", "deployments": [], "key": "s3/deep-s3-immutability-copy-tagging-directive-independent-of-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectTagging", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_immutability_copy_tagging_directive_independent_of_metadata.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-copy-unknown-tagging-directive-rejected", "deployments": [], "key": "s3/deep-s3-immutability-copy-unknown-tagging-directive-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectTagging", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_immutability_copy_unknown_tagging_directive_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-governance-bypass-without-permission-denied", "deployments": [], "key": "s3/deep-s3-immutability-governance-bypass-without-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_deep_s3_immutability_governance_bypass_without_permission_denied.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-legal-hold-blocks-bypass-independent-of-retention-rejected", "deployments": [], "key": "s3/deep-s3-immutability-legal-hold-blocks-bypass-independent-of-retention-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention"], "path": "behavioral/s3/check_deep_s3_immutability_legal_hold_blocks_bypass_independent_of_retention_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-multipart-etag-is-md5-of-part-md5s", "deployments": [], "key": "s3/deep-s3-immutability-multipart-etag-is-md5-of-part-md5s", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_deep_s3_immutability_multipart_etag_is_md5_of_part_md5s.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-requester-pays-anonymous-with-payer-header-rejected", "deployments": [], "key": "s3/deep-s3-immutability-requester-pays-anonymous-with-payer-header-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetBucketRequestPayment", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketRequestPayment", "s3:PutBucketTagging", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_deep_s3_immutability_requester_pays_anonymous_with_payer_header_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-immutability-upload-part-wrong-sha256-rejected-slot-stays-empty", "deployments": [], "key": "s3/deep-s3-immutability-upload-part-wrong-sha256-rejected-slot-stays-empty", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_deep_s3_immutability_upload_part_wrong_sha256_rejected_slot_stays_empty.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-copy-in-place-to-deep-archive-closes-reads", "deployments": [], "key": "s3/deep-s3-storage-class-copy-in-place-to-deep-archive-closes-reads", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_storage_class_copy_in_place_to_deep_archive_closes_reads.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-deep-archive-expedited-restore-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-deep-archive-expedited-restore-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_deep_s3_storage_class_deep_archive_expedited_restore_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-deep-archive-get-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-deep-archive-get-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_storage_class_deep_archive_get_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-express-onezone-class-put-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-express-onezone-class-put-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_storage_class_express_onezone_class_put_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-glacier-ir-restore-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-glacier-ir-restore-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_deep_s3_storage_class_glacier_ir_restore_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-lifecycle-transition-colder-before-warmer-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-lifecycle-transition-colder-before-warmer-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_deep_s3_storage_class_lifecycle_transition_colder_before_warmer_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-lifecycle-transition-glacier-to-deep-archive-gap-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-lifecycle-transition-glacier-to-deep-archive-gap-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_deep_s3_storage_class_lifecycle_transition_glacier_to_deep_archive_gap_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-lifecycle-transition-ia-to-glacier-gap-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-lifecycle-transition-ia-to-glacier-gap-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_deep_s3_storage_class_lifecycle_transition_ia_to_glacier_gap_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-lifecycle-transition-invalid-target-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-lifecycle-transition-invalid-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_deep_s3_storage_class_lifecycle_transition_invalid_target_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-multipart-class-complete-after-abort-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-multipart-class-complete-after-abort-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_deep_s3_storage_class_multipart_class_complete_after_abort_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-noncurrent-expiration-zero-days-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-noncurrent-expiration-zero-days-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_deep_s3_storage_class_noncurrent_expiration_zero_days_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-onezone-ia-intelligent-tiering-direct-put", "deployments": [], "key": "s3/deep-s3-storage-class-onezone-ia-intelligent-tiering-direct-put", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_storage_class_onezone_ia_intelligent_tiering_direct_put.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-outposts-class-put-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-outposts-class-put-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_storage_class_outposts_class_put_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-restore-tier-downgrade-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-restore-tier-downgrade-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_deep_s3_storage_class_restore_tier_downgrade_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-restore-zero-days-rejected", "deployments": [], "key": "s3/deep-s3-storage-class-restore-zero-days-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_deep_s3_storage_class_restore_zero_days_rejected.py", "service": "s3"} {"check_id": "s3.deep-s3-storage-class-versioned-expiration-rule-targets-current-version", "deployments": [], "key": "s3/deep-s3-storage-class-versioned-expiration-rule-targets-current-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_deep_s3_storage_class_versioned_expiration_rule_targets_current_version.py", "service": "s3"} {"check_id": "s3.delete-bucket-holding-only-a-delete-marker-rejected-bucket-not-empty", "deployments": [], "key": "s3/delete-bucket-holding-only-a-delete-marker-rejected-bucket-not-empty", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_delete_bucket_holding_only_a_delete_marker_rejected_bucket_not_empty.py", "service": "s3"} {"check_id": "s3.delete-bucket-with-metadata-table-configuration-blocked", "deployments": [], "key": "s3/delete-bucket-with-metadata-table-configuration-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_delete_bucket_with_metadata_table_configuration_blocked.py", "service": "s3"} {"check_id": "s3.delete-nonempty-bucket-rejected-across-20-bucket-fanout", "deployments": [], "key": "s3/delete-nonempty-bucket-rejected-across-20-bucket-fanout", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_delete_nonempty_bucket_rejected_across_20_bucket_fanout.py", "service": "s3"} {"check_id": "s3.delete-object-annotation-error-paths", "deployments": [], "key": "s3/delete-object-annotation-error-paths", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectAnnotation", "s3:GetObjectAnnotation", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_delete_object_annotation_error_paths.py", "service": "s3"} {"check_id": "s3.delete-object-annotation-missing-rejected", "deployments": [], "key": "s3/delete-object-annotation-missing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectAnnotation", "s3:GetObjectAnnotation", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_delete_object_annotation_missing_rejected.py", "service": "s3"} {"check_id": "s3.delete-object-nonexistent-idempotent", "deployments": [], "key": "s3/delete-object-nonexistent-idempotent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/s3/check_delete_object_nonexistent_idempotent.py", "service": "s3"} {"check_id": "s3.delete-object-policy-requires-if-match-header", "deployments": [], "key": "s3/delete-object-policy-requires-if-match-header", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_delete_object_policy_requires_if_match_header.py", "service": "s3"} {"check_id": "s3.delete-object-under-legal-hold-rejected", "deployments": [], "key": "s3/delete-object-under-legal-hold-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectLegalHold", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold"], "path": "behavioral/s3/check_delete_object_under_legal_hold_rejected.py", "service": "s3"} {"check_id": "s3.delete-object-under-retention-rejected", "deployments": [], "key": "s3/delete-object-under-retention-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectRetention"], "path": "behavioral/s3/check_delete_object_under_retention_rejected.py", "service": "s3"} {"check_id": "s3.delete-objects-conditional-etag-mismatch-survives", "deployments": [], "key": "s3/delete-objects-conditional-etag-mismatch-survives", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_delete_objects_conditional_etag_mismatch_survives.py", "service": "s3"} {"check_id": "s3.delete-objects-empty-list-rejected", "deployments": [], "key": "s3/delete-objects-empty-list-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_delete_objects_empty_list_rejected.py", "service": "s3"} {"check_id": "s3.delete-objects-exceeds-max-keys-rejected", "deployments": [], "key": "s3/delete-objects-exceeds-max-keys-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_delete_objects_exceeds_max_keys_rejected.py", "service": "s3"} {"check_id": "s3.delete-objects-partial-failure", "deployments": [], "key": "s3/delete-objects-partial-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_delete_objects_partial_failure.py", "service": "s3"} {"check_id": "s3.delete-objects-quiet-mode", "deployments": [], "key": "s3/delete-objects-quiet-mode", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_delete_objects_quiet_mode.py", "service": "s3"} {"check_id": "s3.delete-objects-that-misses-one-key-leaves-delete-bucket-refused", "deployments": [], "key": "s3/delete-objects-that-misses-one-key-leaves-delete-bucket-refused", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_delete_objects_that_misses_one_key_leaves_delete_bucket_refused.py", "service": "s3"} {"check_id": "s3.deleting-the-only-object-under-a-nested-prefix-removes-its-implied-directories", "deployments": [], "key": "s3/deleting-the-only-object-under-a-nested-prefix-removes-its-implied-directories", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_deleting_the_only_object_under_a_nested_prefix_removes_its_implied_directories.py", "service": "s3"} {"check_id": "s3.deploy-s3-1-bucket-update-versioning-policy-rename", "deployments": [], "key": "s3/deploy-s3-1-bucket-update-versioning-policy-rename", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "sts:AssumeRole"], "path": "behavioral/s3/check_deploy_s3_1_bucket_update_versioning_policy_rename.py", "service": "s3"} {"check_id": "s3.deploy-s3-1-rename-onto-owned-bucket-rejected", "deployments": [], "key": "s3/deploy-s3-1-rename-onto-owned-bucket-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketTagging", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_deploy_s3_1_rename_onto_owned_bucket_rejected.py", "service": "s3"} {"check_id": "s3.deploy-s3-bucket-default-encryption-applied", "deployments": [], "key": "s3/deploy-s3-bucket-default-encryption-applied", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetBucketEncryption", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_deploy_s3_bucket_default_encryption_applied.py", "service": "s3"} {"check_id": "s3.deploy-s3-bucket-public-access-block-enforced-rejected", "deployments": [], "key": "s3/deploy-s3-bucket-public-access-block-enforced-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObjectAcl", "s3:GetPublicAccessBlock", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectAcl", "s3:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_deploy_s3_bucket_public_access_block_enforced_rejected.py", "service": "s3"} {"check_id": "s3.deploy-s3-bucket-versioning-behavior", "deployments": [], "key": "s3/deploy-s3-bucket-versioning-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_deploy_s3_bucket_versioning_behavior.py", "service": "s3"} {"check_id": "s3.directory-bucket-multipart-complete-etag-is-not-an-md5-composite", "deployments": [], "key": "s3/directory-bucket-multipart-complete-etag-is-not-an-md5-composite", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_directory_bucket_multipart_complete_etag_is_not_an_md5_composite.py", "service": "s3"} {"check_id": "s3.directory-bucket-rejects-object-tagging-versioning-notification-and-replication", "deployments": [], "key": "s3/directory-bucket-rejects-object-tagging-versioning-notification-and-replication", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketNotificationConfiguration", "s3:GetBucketVersioning", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_directory_bucket_rejects_object_tagging_versioning_notification_and_replication.py", "service": "s3"} {"check_id": "s3.directory-buckets-listing", "deployments": [], "key": "s3/directory-buckets-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListBuckets", "s3:ListDirectoryBuckets", "s3:ListObjectsV2"], "path": "behavioral/s3/check_directory_buckets_listing.py", "service": "s3"} {"check_id": "s3.e2e-log-rotation-pattern", "deployments": [], "key": "s3/e2e-log-rotation-pattern", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_e2e_log_rotation_pattern.py", "service": "s3"} {"check_id": "s3.e2e-website-deployment", "deployments": [], "key": "s3/e2e-website-deployment", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_e2e_website_deployment.py", "service": "s3"} {"check_id": "s3.empty-and-odd-sized-objects-under-unicode-keys-round-trip-with-md5-etags", "deployments": [], "key": "s3/empty-and-odd-sized-objects-under-unicode-keys-round-trip-with-md5-etags", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_empty_and_odd_sized_objects_under_unicode_keys_round_trip_with_md5_etags.py", "service": "s3"} {"check_id": "s3.encryption-enforcement-reject-unencrypted", "deployments": [], "key": "s3/encryption-enforcement-reject-unencrypted", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketEncryption", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_encryption_enforcement_reject_unencrypted.py", "service": "s3"} {"check_id": "s3.error-bucket-already-owned", "deployments": [], "key": "s3/error-bucket-already-owned", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/s3/check_error_bucket_already_owned.py", "service": "s3"} {"check_id": "s3.error-bucket-not-empty", "deployments": [], "key": "s3/error-bucket-not-empty", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_error_bucket_not_empty.py", "service": "s3"} {"check_id": "s3.error-invalid-bucket-name", "deployments": [], "key": "s3/error-invalid-bucket-name", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/s3/check_error_invalid_bucket_name.py", "service": "s3"} {"check_id": "s3.error-no-such-bucket", "deployments": [], "key": "s3/error-no-such-bucket", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutObject"], "path": "behavioral/s3/check_error_no_such_bucket.py", "service": "s3"} {"check_id": "s3.error-no-such-key", "deployments": [], "key": "s3/error-no-such-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_error_no_such_key.py", "service": "s3"} {"check_id": "s3.etag-is-md5-for-single-put", "deployments": [], "key": "s3/etag-is-md5-for-single-put", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_etag_is_md5_for_single_put.py", "service": "s3"} {"check_id": "s3.expected-bucket-owner-mismatch-rejected", "deployments": [], "key": "s3/expected-bucket-owner-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_expected_bucket_owner_mismatch_rejected.py", "service": "s3"} {"check_id": "s3.get-bucket-replication-not-configured-rejected", "deployments": [], "key": "s3/get-bucket-replication-not-configured-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketReplication", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_get_bucket_replication_not_configured_rejected.py", "service": "s3"} {"check_id": "s3.get-bucket-versioning-unset-fresh", "deployments": [], "key": "s3/get-bucket-versioning-unset-fresh", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_get_bucket_versioning_unset_fresh.py", "service": "s3"} {"check_id": "s3.get-bucket-website-not-configured-rejected", "deployments": [], "key": "s3/get-bucket-website-not-configured-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketWebsite", "s3:DeleteObject", "s3:GetBucketWebsite", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketWebsite"], "path": "behavioral/s3/check_get_bucket_website_not_configured_rejected.py", "service": "s3"} {"check_id": "s3.get-glacier-object-without-restore-rejected", "deployments": [], "key": "s3/get-glacier-object-without-restore-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_get_glacier_object_without_restore_rejected.py", "service": "s3"} {"check_id": "s3.get-object-acl-no-such-key", "deployments": [], "key": "s3/get-object-acl-no-such-key", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAcl", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_get_object_acl_no_such_key.py", "service": "s3"} {"check_id": "s3.get-object-annotation-nosuchannotation", "deployments": [], "key": "s3/get-object-annotation-nosuchannotation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAnnotation", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_get_object_annotation_nosuchannotation.py", "service": "s3"} {"check_id": "s3.get-object-attributes-invalid-attribute-name-rejected", "deployments": [], "key": "s3/get-object-attributes-invalid-attribute-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAttributes", "s3:PutObject"], "path": "behavioral/s3/check_get_object_attributes_invalid_attribute_name_rejected.py", "service": "s3"} {"check_id": "s3.get-object-attributes-no-such-key", "deployments": [], "key": "s3/get-object-attributes-no-such-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAttributes", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_get_object_attributes_no_such_key.py", "service": "s3"} {"check_id": "s3.get-object-attributes-nosuchkey", "deployments": [], "key": "s3/get-object-attributes-nosuchkey", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAttributes", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_get_object_attributes_nosuchkey.py", "service": "s3"} {"check_id": "s3.get-object-attributes-size-etag", "deployments": [], "key": "s3/get-object-attributes-size-etag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAttributes", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_get_object_attributes_size_etag.py", "service": "s3"} {"check_id": "s3.get-object-invalid-object-state-glacier", "deployments": [], "key": "s3/get-object-invalid-object-state-glacier", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_get_object_invalid_object_state_glacier.py", "service": "s3"} {"check_id": "s3.get-object-invalid-state-archived", "deployments": [], "key": "s3/get-object-invalid-state-archived", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_get_object_invalid_state_archived.py", "service": "s3"} {"check_id": "s3.get-object-nonexistent-version-errors", "deployments": [], "key": "s3/get-object-nonexistent-version-errors", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_get_object_nonexistent_version_errors.py", "service": "s3"} {"check_id": "s3.get-object-part-number-reads-single-part", "deployments": [], "key": "s3/get-object-part-number-reads-single-part", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_get_object_part_number_reads_single_part.py", "service": "s3"} {"check_id": "s3.get-object-torrent", "deployments": [], "key": "s3/get-object-torrent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectTorrent", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_get_object_torrent.py", "service": "s3"} {"check_id": "s3.get-object-torrent-unsupported-rejected", "deployments": [], "key": "s3/get-object-torrent-unsupported-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:GetObjectTorrent", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_get_object_torrent_unsupported_rejected.py", "service": "s3"} {"check_id": "s3.head-object-metadata", "deployments": [], "key": "s3/head-object-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_head_object_metadata.py", "service": "s3"} {"check_id": "s3.head-object-on-delete-marker-rejected", "deployments": [], "key": "s3/head-object-on-delete-marker-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_head_object_on_delete_marker_rejected.py", "service": "s3"} {"check_id": "s3.identity-policy-s3-prefix-condition-scopes-listbucket-and-getobject-to-a-home-prefix", "deployments": [], "key": "s3/identity-policy-s3-prefix-condition-scopes-listbucket-and-getobject-to-a-home-prefix", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_identity_policy_s3_prefix_condition_scopes_listbucket_and_getobject_to_a_home_prefix.py", "service": "s3"} {"check_id": "s3.if-match-failure", "deployments": [], "key": "s3/if-match-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_if_match_failure.py", "service": "s3"} {"check_id": "s3.if-match-success", "deployments": [], "key": "s3/if-match-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_if_match_success.py", "service": "s3"} {"check_id": "s3.if-modified-since", "deployments": [], "key": "s3/if-modified-since", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_if_modified_since.py", "service": "s3"} {"check_id": "s3.if-none-match", "deployments": [], "key": "s3/if-none-match", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_if_none_match.py", "service": "s3"} {"check_id": "s3.lifecycle-abort-incomplete-multipart", "deployments": [], "key": "s3/lifecycle-abort-incomplete-multipart", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_lifecycle_abort_incomplete_multipart.py", "service": "s3"} {"check_id": "s3.lifecycle-abort-incomplete-multipart-invalid-days-rejected", "deployments": [], "key": "s3/lifecycle-abort-incomplete-multipart-invalid-days-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_lifecycle_abort_incomplete_multipart_invalid_days_rejected.py", "service": "s3"} {"check_id": "s3.lifecycle-expiration-ttl", "deployments": [], "key": "s3/lifecycle-expiration-ttl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketLifecycleConfiguration", "s3:PutObject"], "path": "behavioral/s3/check_lifecycle_expiration_ttl.py", "service": "s3"} {"check_id": "s3.lifecycle-rule-delete", "deployments": [], "key": "s3/lifecycle-rule-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketLifecycle", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_lifecycle_rule_delete.py", "service": "s3"} {"check_id": "s3.lifecycle-rule-roundtrip", "deployments": [], "key": "s3/lifecycle-rule-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_lifecycle_rule_roundtrip.py", "service": "s3"} {"check_id": "s3.lifecycle-transition-server-side", "deployments": [], "key": "s3/lifecycle-transition-server-side", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketLifecycleConfiguration", "s3:PutObject"], "path": "behavioral/s3/check_lifecycle_transition_server_side.py", "service": "s3"} {"check_id": "s3.list-directory-buckets-isolation", "deployments": [], "key": "s3/list-directory-buckets-isolation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "s3:CreateBucket", "s3:DeleteBucket", "s3:ListBuckets", "s3:ListDirectoryBuckets", "s3:ListObjectsV2"], "path": "behavioral/s3/check_list_directory_buckets_isolation.py", "service": "s3"} {"check_id": "s3.list-directory-buckets-rejects-regular-bucket-ops", "deployments": [], "key": "s3/list-directory-buckets-rejects-regular-bucket-ops", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListBuckets", "s3:ListDirectoryBuckets", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/s3/check_list_directory_buckets_rejects_regular_bucket_ops.py", "service": "s3"} {"check_id": "s3.list-multipart-uploads-paginates-and-groups-common-prefixes", "deployments": [], "key": "s3/list-multipart-uploads-paginates-and-groups-common-prefixes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:ListMultipartUploads", "s3:PutBucketTagging"], "path": "behavioral/s3/check_list_multipart_uploads_paginates_and_groups_common_prefixes.py", "service": "s3"} {"check_id": "s3.list-object-annotations-invalid-prefix", "deployments": [], "key": "s3/list-object-annotations-invalid-prefix", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectAnnotations", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_list_object_annotations_invalid_prefix.py", "service": "s3"} {"check_id": "s3.list-object-versions", "deployments": [], "key": "s3/list-object-versions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_list_object_versions.py", "service": "s3"} {"check_id": "s3.list-object-versions-pages-one-key-written-more-than-one-thousand-times", "deployments": [], "key": "s3/list-object-versions-pages-one-key-written-more-than-one-thousand-times", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_list_object_versions_pages_one_key_written_more_than_one_thousand_times.py", "service": "s3"} {"check_id": "s3.list-object-versions-pagination-markers", "deployments": [], "key": "s3/list-object-versions-pagination-markers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_list_object_versions_pagination_markers.py", "service": "s3"} {"check_id": "s3.list-objects-nosuchbucket", "deployments": [], "key": "s3/list-objects-nosuchbucket", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:ListBuckets", "s3:ListObjects"], "path": "behavioral/s3/check_list_objects_nosuchbucket.py", "service": "s3"} {"check_id": "s3.list-objects-v1-basic-listing", "deployments": [], "key": "s3/list-objects-v1-basic-listing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListBuckets", "s3:ListObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_list_objects_v1_basic_listing.py", "service": "s3"} {"check_id": "s3.list-objects-v1-marker-pagination", "deployments": [], "key": "s3/list-objects-v1-marker-pagination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_list_objects_v1_marker_pagination.py", "service": "s3"} {"check_id": "s3.list-objects-v2-basic", "deployments": [], "key": "s3/list-objects-v2-basic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_list_objects_v2_basic.py", "service": "s3"} {"check_id": "s3.list-objects-v2-byte-order-and-delimiter-paging", "deployments": [], "key": "s3/list-objects-v2-byte-order-and-delimiter-paging", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_list_objects_v2_byte_order_and_delimiter_paging.py", "service": "s3"} {"check_id": "s3.list-objects-v2-default-page-holds-one-thousand-keys-of-a-larger-bucket", "deployments": [], "key": "s3/list-objects-v2-default-page-holds-one-thousand-keys-of-a-larger-bucket", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_list_objects_v2_default_page_holds_one_thousand_keys_of_a_larger_bucket.py", "service": "s3"} {"check_id": "s3.list-objects-v2-delimiter", "deployments": [], "key": "s3/list-objects-v2-delimiter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_list_objects_v2_delimiter.py", "service": "s3"} {"check_id": "s3.list-objects-v2-is-exact-on-the-first-read-after-a-bulk-delete", "deployments": [], "key": "s3/list-objects-v2-is-exact-on-the-first-read-after-a-bulk-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_list_objects_v2_is_exact_on_the_first_read_after_a_bulk_delete.py", "service": "s3"} {"check_id": "s3.list-objects-v2-prefix", "deployments": [], "key": "s3/list-objects-v2-prefix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_list_objects_v2_prefix.py", "service": "s3"} {"check_id": "s3.list-parts-max-parts-pagination-returns-each-part-once", "deployments": [], "key": "s3/list-parts-max-parts-pagination-returns-each-part-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:ListParts", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_list_parts_max_parts_pagination_returns_each_part_once.py", "service": "s3"} {"check_id": "s3.metadata-table-configuration-create-active-status", "deployments": [], "key": "s3/metadata-table-configuration-create-active-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_metadata_table_configuration_create_active_status.py", "service": "s3"} {"check_id": "s3.metadata-table-configuration-delete-removes-table", "deployments": [], "key": "s3/metadata-table-configuration-delete-removes-table", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3:UpdateBucketMetadataJournalTableConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_metadata_table_configuration_delete_removes_table.py", "service": "s3"} {"check_id": "s3.metadata-table-configuration-duplicate-create-rejected", "deployments": [], "key": "s3/metadata-table-configuration-duplicate-create-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:DeleteObject", "s3:GetBucketMetadataConfiguration", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_metadata_table_configuration_duplicate_create_rejected.py", "service": "s3"} {"check_id": "s3.metadata-table-configuration-get-without-create-rejected", "deployments": [], "key": "s3/metadata-table-configuration-get-without-create-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_metadata_table_configuration_get_without_create_rejected.py", "service": "s3"} {"check_id": "s3.metadata-table-configuration-invalid-schema-rejected", "deployments": [], "key": "s3/metadata-table-configuration-invalid-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables"], "path": "behavioral/s3/check_metadata_table_configuration_invalid_schema_rejected.py", "service": "s3"} {"check_id": "s3.metadata-table-server-managed-updates", "deployments": [], "key": "s3/metadata-table-server-managed-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:CreateBucketMetadataConfiguration", "s3:DeleteBucket", "s3:DeleteBucketMetadataConfiguration", "s3:GetBucketMetadataConfiguration", "s3:UpdateBucketMetadataAnnotationTableConfiguration", "s3:UpdateBucketMetadataInventoryTableConfiguration", "s3:UpdateBucketMetadataJournalTableConfiguration", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:ListTables", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_metadata_table_server_managed_updates.py", "service": "s3"} {"check_id": "s3.multipart-abort", "deployments": [], "key": "s3/multipart-abort", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_abort.py", "service": "s3"} {"check_id": "s3.multipart-abort-no-such-upload-rejected", "deployments": [], "key": "s3/multipart-abort-no-such-upload-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts"], "path": "behavioral/s3/check_multipart_abort_no_such_upload_rejected.py", "service": "s3"} {"check_id": "s3.multipart-complete-invalid-part-etag-rejected", "deployments": [], "key": "s3/multipart-complete-invalid-part-etag-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_complete_invalid_part_etag_rejected.py", "service": "s3"} {"check_id": "s3.multipart-complete-out-of-order-rejected", "deployments": [], "key": "s3/multipart-complete-out-of-order-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_complete_out_of_order_rejected.py", "service": "s3"} {"check_id": "s3.multipart-complete-part-ordering-enforced", "deployments": [], "key": "s3/multipart-complete-part-ordering-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_complete_part_ordering_enforced.py", "service": "s3"} {"check_id": "s3.multipart-complete-part-too-small-rejected", "deployments": [], "key": "s3/multipart-complete-part-too-small-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_complete_part_too_small_rejected.py", "service": "s3"} {"check_id": "s3.multipart-etag-format", "deployments": [], "key": "s3/multipart-etag-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_etag_format.py", "service": "s3"} {"check_id": "s3.multipart-list-parts", "deployments": [], "key": "s3/multipart-list-parts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_list_parts.py", "service": "s3"} {"check_id": "s3.multipart-list-parts-after-abort-rejected", "deployments": [], "key": "s3/multipart-list-parts-after-abort-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_list_parts_after_abort_rejected.py", "service": "s3"} {"check_id": "s3.multipart-list-uploads-then-abort-nonexistent", "deployments": [], "key": "s3/multipart-list-uploads-then-abort-nonexistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListMultipartUploads", "s3:ListObjectVersions"], "path": "behavioral/s3/check_multipart_list_uploads_then_abort_nonexistent.py", "service": "s3"} {"check_id": "s3.multipart-part-number-ordering", "deployments": [], "key": "s3/multipart-part-number-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_part_number_ordering.py", "service": "s3"} {"check_id": "s3.multipart-upload-and-presigned-get-round-trip", "deployments": [], "key": "s3/multipart-upload-and-presigned-get-round-trip", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_upload_and_presigned_get_round_trip.py", "service": "s3"} {"check_id": "s3.multipart-upload-complete", "deployments": [], "key": "s3/multipart-upload-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_upload_complete.py", "service": "s3"} {"check_id": "s3.multipart-upload-complete-wrong-part-order-rejected", "deployments": [], "key": "s3/multipart-upload-complete-wrong-part-order-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_upload_complete_wrong_part_order_rejected.py", "service": "s3"} {"check_id": "s3.multipart-upload-concurrent-part-overwrite", "deployments": [], "key": "s3/multipart-upload-concurrent-part-overwrite", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_upload_concurrent_part_overwrite.py", "service": "s3"} {"check_id": "s3.multipart-upload-part-invalid-number-rejected", "deployments": [], "key": "s3/multipart-upload-part-invalid-number-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_upload_part_invalid_number_rejected.py", "service": "s3"} {"check_id": "s3.multipart-upload-visible-in-list-until-complete", "deployments": [], "key": "s3/multipart-upload-visible-in-list-until-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListParts", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_upload_visible_in_list_until_complete.py", "service": "s3"} {"check_id": "s3.multipart-upload-with-sparse-part-numbers-uploaded-in-reverse-round-trips", "deployments": [], "key": "s3/multipart-upload-with-sparse-part-numbers-uploaded-in-reverse-round-trips", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:ListParts", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_multipart_upload_with_sparse_part_numbers_uploaded_in_reverse_round_trips.py", "service": "s3"} {"check_id": "s3.notification-fifo-destination-rejected", "deployments": [], "key": "s3/notification-fifo-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sqs:TagQueue"], "path": "behavioral/s3/check_notification_fifo_destination_rejected.py", "service": "s3"} {"check_id": "s3.notification-filter-non-matching-key-not-delivered", "deployments": [], "key": "s3/notification-filter-non-matching-key-not-delivered", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3/check_notification_filter_non_matching_key_not_delivered.py", "service": "s3"} {"check_id": "s3.notification-invalid-destination-rejected", "deployments": [], "key": "s3/notification-invalid-destination-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sqs:TagQueue"], "path": "behavioral/s3/check_notification_invalid_destination_rejected.py", "service": "s3"} {"check_id": "s3.notification-sqs-test-event-format", "deployments": [], "key": "s3/notification-sqs-test-event-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue"], "path": "behavioral/s3/check_notification_sqs_test_event_format.py", "service": "s3"} {"check_id": "s3.notification-to-sqs", "deployments": [], "key": "s3/notification-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3/check_notification_to_sqs.py", "service": "s3"} {"check_id": "s3.object-acl-canned-roundtrip", "deployments": [], "key": "s3/object-acl-canned-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAcl", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutObject", "s3:PutObjectAcl", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_object_acl_canned_roundtrip.py", "service": "s3"} {"check_id": "s3.object-acl-lifecycle-nonexistent-key", "deployments": [], "key": "s3/object-acl-lifecycle-nonexistent-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectAcl", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectAcl"], "path": "behavioral/s3/check_object_acl_lifecycle_nonexistent_key.py", "service": "s3"} {"check_id": "s3.object-acl-lifecycle-nosuchkey", "deployments": [], "key": "s3/object-acl-lifecycle-nosuchkey", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObjectAcl", "s3:ListObjectVersions", "s3:PutBucketOwnershipControls", "s3:PutObject", "s3:PutObjectAcl"], "path": "behavioral/s3/check_object_acl_lifecycle_nosuchkey.py", "service": "s3"} {"check_id": "s3.object-annotation-crud-lifecycle", "deployments": [], "key": "s3/object-annotation-crud-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjectAnnotation", "s3:DeleteObjects", "s3:GetObjectAnnotation", "s3:ListObjectAnnotations", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_object_annotation_crud_lifecycle.py", "service": "s3"} {"check_id": "s3.object-annotation-full-crud-lifecycle", "deployments": [], "key": "s3/object-annotation-full-crud-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectAnnotation", "s3:GetObjectAnnotation", "s3:ListObjectAnnotations", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_object_annotation_full_crud_lifecycle.py", "service": "s3"} {"check_id": "s3.object-annotation-name-too-long-rejected", "deployments": [], "key": "s3/object-annotation-name-too-long-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectAnnotations", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_object_annotation_name_too_long_rejected.py", "service": "s3"} {"check_id": "s3.object-annotation-not-found-errors", "deployments": [], "key": "s3/object-annotation-not-found-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAnnotation", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_object_annotation_not_found_errors.py", "service": "s3"} {"check_id": "s3.object-annotation-reserved-prefix-rejected", "deployments": [], "key": "s3/object-annotation-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectAnnotation", "s3:GetObjectAnnotation", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_object_annotation_reserved_prefix_rejected.py", "service": "s3"} {"check_id": "s3.object-annotation-roundtrip", "deployments": [], "key": "s3/object-annotation-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectAnnotation", "s3:GetObjectAnnotation", "s3:ListObjectAnnotations", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_object_annotation_roundtrip.py", "service": "s3"} {"check_id": "s3.object-annotation-validation-errors-rejected", "deployments": [], "key": "s3/object-annotation-validation-errors-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAnnotation", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_object_annotation_validation_errors_rejected.py", "service": "s3"} {"check_id": "s3.object-attributes-reflects-state", "deployments": [], "key": "s3/object-attributes-reflects-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAttributes", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_object_attributes_reflects_state.py", "service": "s3"} {"check_id": "s3.object-attributes-returns-metadata", "deployments": [], "key": "s3/object-attributes-returns-metadata", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectAttributes", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_object_attributes_returns_metadata.py", "service": "s3"} {"check_id": "s3.object-key-1024-bytes-boundary-rejected", "deployments": [], "key": "s3/object-key-1024-bytes-boundary-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_object_key_1024_bytes_boundary_rejected.py", "service": "s3"} {"check_id": "s3.object-legal-hold-blocks-delete", "deployments": [], "key": "s3/object-legal-hold-blocks-delete", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold"], "path": "behavioral/s3/check_object_legal_hold_blocks_delete.py", "service": "s3"} {"check_id": "s3.object-legal-hold-lifecycle", "deployments": [], "key": "s3/object-legal-hold-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:GetObjectLegalHold", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectLegalHold"], "path": "behavioral/s3/check_object_legal_hold_lifecycle.py", "service": "s3"} {"check_id": "s3.object-legal-hold-requires-object-lock-rejected", "deployments": [], "key": "s3/object-legal-hold-requires-object-lock-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObjectLegalHold", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold"], "path": "behavioral/s3/check_object_legal_hold_requires_object_lock_rejected.py", "service": "s3"} {"check_id": "s3.object-legal-hold-roundtrip", "deployments": [], "key": "s3/object-legal-hold-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectLegalHold", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold"], "path": "behavioral/s3/check_object_legal_hold_roundtrip.py", "service": "s3"} {"check_id": "s3.object-lock-configuration-roundtrip", "deployments": [], "key": "s3/object-lock-configuration-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectLockConfiguration", "s3:ListObjectVersions", "s3:PutObjectLockConfiguration"], "path": "behavioral/s3/check_object_lock_configuration_roundtrip.py", "service": "s3"} {"check_id": "s3.object-lock-enable-on-versioned-bucket", "deployments": [], "key": "s3/object-lock-enable-on-versioned-bucket", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectLockConfiguration", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectLockConfiguration"], "path": "behavioral/s3/check_object_lock_enable_on_versioned_bucket.py", "service": "s3"} {"check_id": "s3.object-lock-event-hold-requires-mode-duration-and-floor-date-rejected", "deployments": [], "key": "s3/object-lock-event-hold-requires-mode-duration-and-floor-date-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:GetObjectRetention", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_lock_event_hold_requires_mode_duration_and_floor_date_rejected.py", "service": "s3"} {"check_id": "s3.object-lock-ops-require-lock-enabled-bucket", "deployments": [], "key": "s3/object-lock-ops-require-lock-enabled-bucket", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_lock_ops_require_lock_enabled_bucket.py", "service": "s3"} {"check_id": "s3.object-lock-requires-versioning-rejected", "deployments": [], "key": "s3/object-lock-requires-versioning-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObjectLockConfiguration", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObjectLockConfiguration"], "path": "behavioral/s3/check_object_lock_requires_versioning_rejected.py", "service": "s3"} {"check_id": "s3.object-lock-subresource-puts-leave-the-object-body-and-versions-intact", "deployments": [], "key": "s3/object-lock-subresource-puts-leave-the-object-body-and-versions-intact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_lock_subresource_puts_leave_the_object_body_and_versions_intact.py", "service": "s3"} {"check_id": "s3.object-metadata-unicode-value-round-trip", "deployments": [], "key": "s3/object-metadata-unicode-value-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:PutObject"], "path": "behavioral/s3/check_object_metadata_unicode_value_round_trip.py", "service": "s3"} {"check_id": "s3.object-ownership-enforced-blocks-object-acl", "deployments": [], "key": "s3/object-ownership-enforced-blocks-object-acl", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectAcl", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutObject", "s3:PutObjectAcl", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_object_ownership_enforced_blocks_object_acl.py", "service": "s3"} {"check_id": "s3.object-put-get-delete", "deployments": [], "key": "s3/object-put-get-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListBuckets", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_object_put_get_delete.py", "service": "s3"} {"check_id": "s3.object-retention-compliance-cannot-shorten", "deployments": [], "key": "s3/object-retention-compliance-cannot-shorten", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_retention_compliance_cannot_shorten.py", "service": "s3"} {"check_id": "s3.object-retention-governance-blocks-delete", "deployments": [], "key": "s3/object-retention-governance-blocks-delete", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_retention_governance_blocks_delete.py", "service": "s3"} {"check_id": "s3.object-retention-governance-bypass-delete", "deployments": [], "key": "s3/object-retention-governance-bypass-delete", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_retention_governance_bypass_delete.py", "service": "s3"} {"check_id": "s3.object-retention-lifecycle", "deployments": [], "key": "s3/object-retention-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_retention_lifecycle.py", "service": "s3"} {"check_id": "s3.object-retention-roundtrip", "deployments": [], "key": "s3/object-retention-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_retention_roundtrip.py", "service": "s3"} {"check_id": "s3.object-retention-shorten-governance-without-bypass-rejected", "deployments": [], "key": "s3/object-retention-shorten-governance-without-bypass-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_retention_shorten_governance_without_bypass_rejected.py", "service": "s3"} {"check_id": "s3.object-retention-until-date-enforces-window", "deployments": [], "key": "s3/object-retention-until-date-enforces-window", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectRetention"], "path": "behavioral/s3/check_object_retention_until_date_enforces_window.py", "service": "s3"} {"check_id": "s3.object-storage-class-reflected", "deployments": [], "key": "s3/object-storage-class-reflected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_object_storage_class_reflected.py", "service": "s3"} {"check_id": "s3.object-system-metadata-roundtrip", "deployments": [], "key": "s3/object-system-metadata-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_object_system_metadata_roundtrip.py", "service": "s3"} {"check_id": "s3.object-tagging-delete", "deployments": [], "key": "s3/object-tagging-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectTagging", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_object_tagging_delete.py", "service": "s3"} {"check_id": "s3.object-tagging-exceeds-limit-rejected", "deployments": [], "key": "s3/object-tagging-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_object_tagging_exceeds_limit_rejected.py", "service": "s3"} {"check_id": "s3.object-tagging-roundtrip", "deployments": [], "key": "s3/object-tagging-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_object_tagging_roundtrip.py", "service": "s3"} {"check_id": "s3.object-torrent-retrieval", "deployments": [], "key": "s3/object-torrent-retrieval", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:GetObjectTorrent", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_object_torrent_retrieval.py", "service": "s3"} {"check_id": "s3.object-user-metadata-keys-lowercased", "deployments": [], "key": "s3/object-user-metadata-keys-lowercased", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_object_user_metadata_keys_lowercased.py", "service": "s3"} {"check_id": "s3.objects-totalling-over-128-mib-across-three-buckets-all-read-back", "deployments": [], "key": "s3/objects-totalling-over-128-mib-across-three-buckets-all-read-back", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_objects_totalling_over_128_mib_across_three_buckets_all_read_back.py", "service": "s3"} {"check_id": "s3.op-contract-delete-bucket", "deployments": [], "key": "s3/op-contract-delete-bucket", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject"], "path": "behavioral/s3/check_op_contract_delete_bucket.py", "service": "s3"} {"check_id": "s3.op-contract-delete-bucket-cors", "deployments": [], "key": "s3/op-contract-delete-bucket-cors", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketCors", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketCors", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketCors"], "path": "behavioral/s3/check_op_contract_delete_bucket_cors.py", "service": "s3"} {"check_id": "s3.op-contract-delete-bucket-lifecycle", "deployments": [], "key": "s3/op-contract-delete-bucket-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketLifecycle", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_op_contract_delete_bucket_lifecycle.py", "service": "s3"} {"check_id": "s3.op-contract-delete-bucket-metrics-configuration", "deployments": [], "key": "s3/op-contract-delete-bucket-metrics-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketMetricsConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketMetricsConfiguration", "s3:PutBucketTagging"], "path": "behavioral/s3/check_op_contract_delete_bucket_metrics_configuration.py", "service": "s3"} {"check_id": "s3.op-contract-delete-bucket-policy", "deployments": [], "key": "s3/op-contract-delete-bucket-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_op_contract_delete_bucket_policy.py", "service": "s3"} {"check_id": "s3.op-contract-delete-bucket-tagging", "deployments": [], "key": "s3/op-contract-delete-bucket-tagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketTagging", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketTagging", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/s3/check_op_contract_delete_bucket_tagging.py", "service": "s3"} {"check_id": "s3.op-contract-delete-object-tagging", "deployments": [], "key": "s3/op-contract-delete-object-tagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectTagging", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_op_contract_delete_object_tagging.py", "service": "s3"} {"check_id": "s3.op-contract-delete-objects", "deployments": [], "key": "s3/op-contract-delete-objects", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectRetention"], "path": "behavioral/s3/check_op_contract_delete_objects.py", "service": "s3"} {"check_id": "s3.op-contract-delete-public-access-block", "deployments": [], "key": "s3/op-contract-delete-public-access-block", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:DeletePublicAccessBlock", "s3:GetPublicAccessBlock", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_op_contract_delete_public_access_block.py", "service": "s3"} {"check_id": "s3.op-contract-get-bucket-cors", "deployments": [], "key": "s3/op-contract-get-bucket-cors", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketCors", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketCors", "s3:PutBucketTagging"], "path": "behavioral/s3/check_op_contract_get_bucket_cors.py", "service": "s3"} {"check_id": "s3.op-contract-get-bucket-lifecycle-configuration", "deployments": [], "key": "s3/op-contract-get-bucket-lifecycle-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration", "s3:PutBucketTagging"], "path": "behavioral/s3/check_op_contract_get_bucket_lifecycle_configuration.py", "service": "s3"} {"check_id": "s3.op-contract-get-bucket-location", "deployments": [], "key": "s3/op-contract-get-bucket-location", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketLocation", "s3:ListMultipartUploads", "s3:ListObjectVersions"], "path": "behavioral/s3/check_op_contract_get_bucket_location.py", "service": "s3"} {"check_id": "s3.op-contract-get-bucket-metrics-configuration", "deployments": [], "key": "s3/op-contract-get-bucket-metrics-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketMetricsConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketMetricsConfiguration", "s3:PutBucketTagging"], "path": "behavioral/s3/check_op_contract_get_bucket_metrics_configuration.py", "service": "s3"} {"check_id": "s3.op-contract-get-bucket-notification-configuration", "deployments": [], "key": "s3/op-contract-get-bucket-notification-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration"], "path": "behavioral/s3/check_op_contract_get_bucket_notification_configuration.py", "service": "s3"} {"check_id": "s3.op-contract-get-bucket-policy", "deployments": [], "key": "s3/op-contract-get-bucket-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_op_contract_get_bucket_policy.py", "service": "s3"} {"check_id": "s3.op-contract-getBucketTagging", "deployments": [], "key": "s3/op-contract-getBucketTagging", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketTagging", "s3:DeleteObjects", "s3:GetBucketTagging", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/s3/check_op_contract_get_bucket_tagging.py", "service": "s3"} {"check_id": "s3.op-contract-getBucketVersioning", "deployments": [], "key": "s3/op-contract-getBucketVersioning", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_op_contract_get_bucket_versioning.py", "service": "s3"} {"check_id": "s3.op-contract-getObjectTagging", "deployments": [], "key": "s3/op-contract-getObjectTagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_op_contract_get_object_tagging.py", "service": "s3"} {"check_id": "s3.op-contract-getPublicAccessBlock", "deployments": [], "key": "s3/op-contract-getPublicAccessBlock", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:DeletePublicAccessBlock", "s3:GetPublicAccessBlock", "s3:ListObjectVersions", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_op_contract_get_public_access_block.py", "service": "s3"} {"check_id": "s3.op-contract-headBucket", "deployments": [], "key": "s3/op-contract-headBucket", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions"], "path": "behavioral/s3/check_op_contract_head_bucket.py", "service": "s3"} {"check_id": "s3.op-contract-listBucketMetricsConfigurations", "deployments": [], "key": "s3/op-contract-listBucketMetricsConfigurations", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:DeleteObjects", "s3:ListBucketMetricsConfigurations", "s3:ListObjectVersions", "s3:PutBucketMetricsConfiguration"], "path": "behavioral/s3/check_op_contract_list_bucket_metrics_configurations.py", "service": "s3"} {"check_id": "s3.op-contract-listObjectVersions", "deployments": [], "key": "s3/op-contract-listObjectVersions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_op_contract_list_object_versions.py", "service": "s3"} {"check_id": "s3.op-contract-listObjectsV2", "deployments": [], "key": "s3/op-contract-listObjectsV2", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_op_contract_list_objects_v2.py", "service": "s3"} {"check_id": "s3.op-contract-putBucketCors", "deployments": [], "key": "s3/op-contract-putBucketCors", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketCors", "s3:DeleteObjects", "s3:GetBucketCors", "s3:ListObjectVersions", "s3:PutBucketCors"], "path": "behavioral/s3/check_op_contract_put_bucket_cors.py", "service": "s3"} {"check_id": "s3.op-contract-putBucketLifecycleConfiguration", "deployments": [], "key": "s3/op-contract-putBucketLifecycleConfiguration", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketLifecycle", "s3:DeleteObjects", "s3:GetBucketLifecycleConfiguration", "s3:ListObjectVersions", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_op_contract_put_bucket_lifecycle_configuration.py", "service": "s3"} {"check_id": "s3.op-contract-putBucketMetricsConfiguration", "deployments": [], "key": "s3/op-contract-putBucketMetricsConfiguration", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:DeleteObjects", "s3:GetBucketMetricsConfiguration", "s3:ListObjectVersions", "s3:PutBucketMetricsConfiguration"], "path": "behavioral/s3/check_op_contract_put_bucket_metrics_configuration.py", "service": "s3"} {"check_id": "s3.op-contract-putBucketNotificationConfiguration", "deployments": [], "key": "s3/op-contract-putBucketNotificationConfiguration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_op_contract_put_bucket_notification_configuration.py", "service": "s3"} {"check_id": "s3.op-contract-put-bucket-tagging-invalid-tag-rejected", "deployments": [], "key": "s3/op-contract-put-bucket-tagging-invalid-tag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketTagging", "s3:DeleteObjects", "s3:GetBucketTagging", "s3:ListObjectVersions", "s3:PutBucketTagging"], "path": "behavioral/s3/check_op_contract_put_bucket_tagging_invalid_tag_rejected.py", "service": "s3"} {"check_id": "s3.op-contract-putBucketVersioning", "deployments": [], "key": "s3/op-contract-putBucketVersioning", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketVersioning", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_op_contract_put_bucket_versioning.py", "service": "s3"} {"check_id": "s3.op-contract-put-object-tagging-invalid-tag-rejected", "deployments": [], "key": "s3/op-contract-put-object-tagging-invalid-tag-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_op_contract_put_object_tagging_invalid_tag_rejected.py", "service": "s3"} {"check_id": "s3.op-contract-uploadPartCopy", "deployments": [], "key": "s3/op-contract-uploadPartCopy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListParts", "s3:PutObject", "s3:UploadPart", "s3:UploadPartCopy"], "path": "behavioral/s3/check_op_contract_upload_part_copy.py", "service": "s3"} {"check_id": "s3.post-object-form-upload-enforces-its-policy-conditions", "deployments": [], "key": "s3/post-object-form-upload-enforces-its-policy-conditions", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_post_object_form_upload_enforces_its_policy_conditions.py", "service": "s3"} {"check_id": "s3.presigned-get", "deployments": [], "key": "s3/presigned-get", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_presigned_get.py", "service": "s3"} {"check_id": "s3.presigned-post-expired-policy-rejected-and-writes-nothing", "deployments": [], "key": "s3/presigned-post-expired-policy-rejected-and-writes-nothing", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_presigned_post_expired_policy_rejected_and_writes_nothing.py", "service": "s3"} {"check_id": "s3.presigned-post-form-upload-substitutes-filename-and-matches-content-type", "deployments": [], "key": "s3/presigned-post-form-upload-substitutes-filename-and-matches-content-type", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_presigned_post_form_upload_substitutes_filename_and_matches_content_type.py", "service": "s3"} {"check_id": "s3.presigned-put", "deployments": [], "key": "s3/presigned-put", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/s3/check_presigned_put.py", "service": "s3"} {"check_id": "s3.presigned-put-requires-every-signed-header-and-refuses-an-over-week-expiry", "deployments": [], "key": "s3/presigned-put-requires-every-signed-header-and-refuses-an-over-week-expiry", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_presigned_put_requires_every_signed_header_and_refuses_an_over_week_expiry.py", "service": "s3"} {"check_id": "s3.presigned-upload-part-urls-assemble-a-multipart-object-read-by-presigned-ranged-get", "deployments": [], "key": "s3/presigned-upload-part-urls-assemble-a-multipart-object-read-by-presigned-ranged-get", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:ListParts", "s3:PutBucketTagging"], "path": "behavioral/s3/check_presigned_upload_part_urls_assemble_a_multipart_object_read_by_presigned_ranged_get.py", "service": "s3"} {"check_id": "s3.public-access-block", "deployments": [], "key": "s3/public-access-block", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetPublicAccessBlock", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_public_access_block.py", "service": "s3"} {"check_id": "s3.public-access-block-blocks-public-acl", "deployments": [], "key": "s3/public-access-block-blocks-public-acl", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketAcl", "s3:ListObjectsV2", "s3:PutBucketAcl", "s3:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_public_access_block_blocks_public_acl.py", "service": "s3"} {"check_id": "s3.public-access-block-rejects-public-policy", "deployments": [], "key": "s3/public-access-block-rejects-public-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_public_access_block_rejects_public_policy.py", "service": "s3"} {"check_id": "s3.public-access-block-state-machine", "deployments": [], "key": "s3/public-access-block-state-machine", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeletePublicAccessBlock", "s3:GetPublicAccessBlock", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_public_access_block_state_machine.py", "service": "s3"} {"check_id": "s3.put-bucket-metrics-configuration-invalid-id-rejected", "deployments": [], "key": "s3/put-bucket-metrics-configuration-invalid-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketMetricsConfiguration", "s3:GetBucketMetricsConfiguration", "s3:PutBucketMetricsConfiguration"], "path": "behavioral/s3/check_put_bucket_metrics_configuration_invalid_id_rejected.py", "service": "s3"} {"check_id": "s3.put-get-roundtrip-binary", "deployments": [], "key": "s3/put-get-roundtrip-binary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_put_get_roundtrip_binary.py", "service": "s3"} {"check_id": "s3.put-object-acl-no-such-key", "deployments": [], "key": "s3/put-object-acl-no-such-key", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketOwnershipControls", "s3:PutObject", "s3:PutObjectAcl"], "path": "behavioral/s3/check_put_object_acl_no_such_key.py", "service": "s3"} {"check_id": "s3.put-object-annotation-limits", "deployments": [], "key": "s3/put-object-annotation-limits", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectAnnotation", "s3:GetObjectAnnotation", "s3:ListMultipartUploads", "s3:ListObjectAnnotations", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectAnnotation"], "path": "behavioral/s3/check_put_object_annotation_limits.py", "service": "s3"} {"check_id": "s3.put-object-append-conditional-offset-contention", "deployments": [], "key": "s3/put-object-append-conditional-offset-contention", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_append_conditional_offset_contention.py", "service": "s3"} {"check_id": "s3.put-object-append-write-offset-rejected", "deployments": [], "key": "s3/put-object-append-write-offset-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_append_write_offset_rejected.py", "service": "s3"} {"check_id": "s3.put-object-bad-content-md5-rejected", "deployments": [], "key": "s3/put-object-bad-content-md5-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_bad_content_md5_rejected.py", "service": "s3"} {"check_id": "s3.put-object-conditional-write-optimistic-lock", "deployments": [], "key": "s3/put-object-conditional-write-optimistic-lock", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_conditional_write_optimistic_lock.py", "service": "s3"} {"check_id": "s3.put-object-encryption-type-mismatch", "deployments": [], "key": "s3/put-object-encryption-type-mismatch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_put_object_encryption_type_mismatch.py", "service": "s3"} {"check_id": "s3.put-object-encryption-type-mismatch-rejected", "deployments": [], "key": "s3/put-object-encryption-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_encryption_type_mismatch_rejected.py", "service": "s3"} {"check_id": "s3.put-object-if-match-conditional", "deployments": [], "key": "s3/put-object-if-match-conditional", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_if_match_conditional.py", "service": "s3"} {"check_id": "s3.put-object-if-match-matches-an-etag-restored-by-rewriting-identical-bytes", "deployments": [], "key": "s3/put-object-if-match-matches-an-etag-restored-by-rewriting-identical-bytes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_put_object_if_match_matches_an_etag_restored_by_rewriting_identical_bytes.py", "service": "s3"} {"check_id": "s3.put-object-if-match-refuses-a-composite-etag-replaced-by-another-multipart-upload", "deployments": [], "key": "s3/put-object-if-match-refuses-a-composite-etag-replaced-by-another-multipart-upload", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_put_object_if_match_refuses_a_composite_etag_replaced_by_another_multipart_upload.py", "service": "s3"} {"check_id": "s3.put-object-if-match-takes-a-multipart-etag-and-refuses-it-once-stale", "deployments": [], "key": "s3/put-object-if-match-takes-a-multipart-etag-and-refuses-it-once-stale", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_put_object_if_match_takes_a_multipart_etag_and_refuses_it_once_stale.py", "service": "s3"} {"check_id": "s3.put-object-if-none-match-precondition", "deployments": [], "key": "s3/put-object-if-none-match-precondition", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_if_none_match_precondition.py", "service": "s3"} {"check_id": "s3.put-object-invalid-request-rejected", "deployments": [], "key": "s3/put-object-invalid-request-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_invalid_request_rejected.py", "service": "s3"} {"check_id": "s3.put-object-invalid-write-offset", "deployments": [], "key": "s3/put-object-invalid-write-offset", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_invalid_write_offset.py", "service": "s3"} {"check_id": "s3.put-object-invalid-write-offset-rejected", "deployments": [], "key": "s3/put-object-invalid-write-offset-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_put_object_invalid_write_offset_rejected.py", "service": "s3"} {"check_id": "s3.put-object-policy-requires-if-none-match-header", "deployments": [], "key": "s3/put-object-policy-requires-if-none-match-header", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_put_object_policy_requires_if_none_match_header.py", "service": "s3"} {"check_id": "s3.put-object-sha1-checksum-round-trip-and-bad-digest-rejected", "deployments": [], "key": "s3/put-object-sha1-checksum-round-trip-and-bad-digest-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_put_object_sha1_checksum_round_trip_and_bad_digest_rejected.py", "service": "s3"} {"check_id": "s3.put-object-sse-kms-encryption-context-round-trips-then-malformed-rejected", "deployments": [], "key": "s3/put-object-sse-kms-encryption-context-round-trips-then-malformed-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_put_object_sse_kms_encryption_context_round_trips_then_malformed_rejected.py", "service": "s3"} {"check_id": "s3.range-read-byte-range", "deployments": [], "key": "s3/range-read-byte-range", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_range_read_byte_range.py", "service": "s3"} {"check_id": "s3.range-read-middle", "deployments": [], "key": "s3/range-read-middle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_range_read_middle.py", "service": "s3"} {"check_id": "s3.range-read-open-end", "deployments": [], "key": "s3/range-read-open-end", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_range_read_open_end.py", "service": "s3"} {"check_id": "s3.range-read-suffix", "deployments": [], "key": "s3/range-read-suffix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_range_read_suffix.py", "service": "s3"} {"check_id": "s3.range-read-unsatisfiable-rejected", "deployments": [], "key": "s3/range-read-unsatisfiable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_range_read_unsatisfiable_rejected.py", "service": "s3"} {"check_id": "s3.rename-object-concurrent-idempotency", "deployments": [], "key": "s3/rename-object-concurrent-idempotency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject", "s3:RenameObject"], "path": "behavioral/s3/check_rename_object_concurrent_idempotency.py", "service": "s3"} {"check_id": "s3.rename-object-destination-exists-rejected", "deployments": [], "key": "s3/rename-object-destination-exists-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "s3:RenameObject"], "path": "behavioral/s3/check_rename_object_destination_exists_rejected.py", "service": "s3"} {"check_id": "s3.rename-object-idempotency-mismatch", "deployments": [], "key": "s3/rename-object-idempotency-mismatch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "s3:RenameObject"], "path": "behavioral/s3/check_rename_object_idempotency_mismatch.py", "service": "s3"} {"check_id": "s3.rename-object-idempotency-token", "deployments": [], "key": "s3/rename-object-idempotency-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject", "s3:RenameObject"], "path": "behavioral/s3/check_rename_object_idempotency_token.py", "service": "s3"} {"check_id": "s3.rename-object-idempotency-token-mismatch", "deployments": [], "key": "s3/rename-object-idempotency-token-mismatch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "s3:RenameObject"], "path": "behavioral/s3/check_rename_object_idempotency_token_mismatch.py", "service": "s3"} {"check_id": "s3.rename-object-lifecycle", "deployments": [], "key": "s3/rename-object-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject", "s3:RenameObject"], "path": "behavioral/s3/check_rename_object_lifecycle.py", "service": "s3"} {"check_id": "s3.rename-object-source-if-none-match-precondition-rejected", "deployments": [], "key": "s3/rename-object-source-if-none-match-precondition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:CreateBucket", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "s3:RenameObject"], "path": "behavioral/s3/check_rename_object_source_if_none_match_precondition_rejected.py", "service": "s3"} {"check_id": "s3.rename-object-state-transition", "deployments": [], "key": "s3/rename-object-state-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "s3:RenameObject"], "path": "behavioral/s3/check_rename_object_state_transition.py", "service": "s3"} {"check_id": "s3.replication-covers-the-eligible-prefix-only-and-withholds-the-delete-marker", "deployments": [], "key": "s3/replication-covers-the-eligible-prefix-only-and-withholds-the-delete-marker", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketReplication", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_replication_covers_the_eligible_prefix_only_and_withholds_the_delete_marker.py", "service": "s3"} {"check_id": "s3.replication-server-side-execution", "deployments": [], "key": "s3/replication-server-side-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketReplication", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_replication_server_side_execution.py", "service": "s3"} {"check_id": "s3.requester-pays-enforcement", "deployments": [], "key": "s3/requester-pays-enforcement", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetBucketRequestPayment", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketRequestPayment", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_requester_pays_enforcement.py", "service": "s3"} {"check_id": "s3.restore-archived-object-active-tier-error", "deployments": [], "key": "s3/restore-archived-object-active-tier-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_restore_archived_object_active_tier_error.py", "service": "s3"} {"check_id": "s3.restore-object-duplicate-in-progress-rejected", "deployments": [], "key": "s3/restore-object-duplicate-in-progress-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_restore_object_duplicate_in_progress_rejected.py", "service": "s3"} {"check_id": "s3.restore-object-glacier-transition", "deployments": [], "key": "s3/restore-object-glacier-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_restore_object_glacier_transition.py", "service": "s3"} {"check_id": "s3.restore-object-on-standard-rejected", "deployments": [], "key": "s3/restore-object-on-standard-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_restore_object_on_standard_rejected.py", "service": "s3"} {"check_id": "s3.restore-object-server-side-tier-transition", "deployments": [], "key": "s3/restore-object-server-side-tier-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_restore_object_server_side_tier_transition.py", "service": "s3"} {"check_id": "s3.restore-object-temporary-availability-window", "deployments": [], "key": "s3/restore-object-temporary-availability-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_restore_object_temporary_availability_window.py", "service": "s3"} {"check_id": "s3.restore-object-ttl-expiry-reverts", "deployments": [], "key": "s3/restore-object-ttl-expiry-reverts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "s3:RestoreObject"], "path": "behavioral/s3/check_restore_object_ttl_expiry_reverts.py", "service": "s3"} {"check_id": "s3.s3-chunked-upload-missing-decoded-content-length-rejected-object-absent", "deployments": [], "key": "s3/s3-chunked-upload-missing-decoded-content-length-rejected-object-absent", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_s3_chunked_upload_missing_decoded_content_length_rejected_object_absent.py", "service": "s3"} {"check_id": "s3.s3-chunked-upload-trailer-checksum-mismatch-rejected-object-absent", "deployments": [], "key": "s3/s3-chunked-upload-trailer-checksum-mismatch-rejected-object-absent", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_s3_chunked_upload_trailer_checksum_mismatch_rejected_object_absent.py", "service": "s3"} {"check_id": "s3.s3-chunked-upload-trailer-checksum-stores-object-and-checksum", "deployments": [], "key": "s3/s3-chunked-upload-trailer-checksum-stores-object-and-checksum", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_s3_chunked_upload_trailer_checksum_stores_object_and_checksum.py", "service": "s3"} {"check_id": "s3.s3-chunked-upload-trailer-name-mismatch-rejected-object-absent", "deployments": [], "key": "s3/s3-chunked-upload-trailer-name-mismatch-rejected-object-absent", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_s3_chunked_upload_trailer_name_mismatch_rejected_object_absent.py", "service": "s3"} {"check_id": "s3.s3-chunked-upload-wrong-chunk-signature-rejected-object-absent", "deployments": [], "key": "s3/s3-chunked-upload-wrong-chunk-signature-rejected-object-absent", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_s3_chunked_upload_wrong_chunk_signature_rejected_object_absent.py", "service": "s3"} {"check_id": "s3.s3-complete-multipart-with-a-wrong-full-object-checksum-is-rejected-and-no-object-exists", "deployments": [], "key": "s3/s3-complete-multipart-with-a-wrong-full-object-checksum-is-rejected-and-no-object-exists", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_s3_complete_multipart_with_a_wrong_full_object_checksum_is_rejected_and_no_object_exists.py", "service": "s3"} {"check_id": "s3.s3-concurrent-copy-while-the-source-is-being-deleted-never-yields-a-partial-object", "deployments": [], "key": "s3/s3-concurrent-copy-while-the-source-is-being-deleted-never-yields-a-partial-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3_concurrent_copy_while_the_source_is_being_deleted_never_yields_a_partial_object.py", "service": "s3"} {"check_id": "s3.s3-conditional-precedence-and-lifecycle-headers-copy", "deployments": [], "key": "s3/s3-conditional-precedence-and-lifecycle-headers-copy", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3_conditional_precedence_and_lifecycle_headers_copy.py", "service": "s3"} {"check_id": "s3.s3-conditional-precedence-and-lifecycle-headers-get", "deployments": [], "key": "s3/s3-conditional-precedence-and-lifecycle-headers-get", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3_conditional_precedence_and_lifecycle_headers_get.py", "service": "s3"} {"check_id": "s3.s3-conditional-precedence-and-lifecycle-headers-lifecycle-mpu", "deployments": [], "key": "s3/s3-conditional-precedence-and-lifecycle-headers-lifecycle-mpu", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLifecycleConfiguration", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:PutBucketLifecycleConfiguration", "s3:UploadPart"], "path": "behavioral/s3/check_s3_conditional_precedence_and_lifecycle_headers_lifecycle_mpu.py", "service": "s3"} {"check_id": "s3.s3-conditional-precedence-and-lifecycle-headers-mpu-parts", "deployments": [], "key": "s3/s3-conditional-precedence-and-lifecycle-headers-mpu-parts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_s3_conditional_precedence_and_lifecycle_headers_mpu_parts.py", "service": "s3"} {"check_id": "s3.s3-delete-marker-hides-the-object-while-the-version-still-returns-its-bytes", "deployments": [], "key": "s3/s3-delete-marker-hides-the-object-while-the-version-still-returns-its-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_s3_delete_marker_hides_the_object_while_the_version_still_returns_its_bytes.py", "service": "s3"} {"check_id": "s3.s3-delete-object-tagging-clears-only-the-addressed-version-tag-set", "deployments": [], "key": "s3/s3-delete-object-tagging-clears-only-the-addressed-version-tag-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjectTagging", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetObjectTagging", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_s3_delete_object_tagging_clears_only_the_addressed_version_tag_set.py", "service": "s3"} {"check_id": "s3.s3-delete-object-with-a-stale-if-match-etag-is-refused-and-the-object-survives", "deployments": [], "key": "s3/s3-delete-object-with-a-stale-if-match-etag-is-refused-and-the-object-survives", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3_delete_object_with_a_stale_if_match_etag_is_refused_and_the_object_survives.py", "service": "s3"} {"check_id": "s3.s3-delete-objects-batch", "deployments": [], "key": "s3/s3-delete-objects-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3_delete_objects_batch.py", "service": "s3"} {"check_id": "s3.s3-delete-objects-reports-every-requested-key-version-pair-exactly-once", "deployments": [], "key": "s3/s3-delete-objects-reports-every-requested-key-version-pair-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_s3_delete_objects_reports_every_requested_key_version_pair_exactly_once.py", "service": "s3"} {"check_id": "s3.s3-express-append-produces-the-exact-concatenation-of-three-offset-writes", "deployments": [], "key": "s3/s3-express-append-produces-the-exact-concatenation-of-three-offset-writes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeAvailabilityZones", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3_express_append_produces_the_exact_concatenation_of_three_offset_writes.py", "service": "s3"} {"check_id": "s3.s3-full-object-crc64nvme-over-multipart-equals-the-whole-object-checksum", "deployments": [], "key": "s3/s3-full-object-crc64nvme-over-multipart-equals-the-whole-object-checksum", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectAttributes", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_s3_full_object_crc64nvme_over_multipart_equals_the_whole_object_checksum.py", "service": "s3"} {"check_id": "s3.s3-if-none-match-star-put-is-atomic-across-a-delete-marker", "deployments": [], "key": "s3/s3-if-none-match-star-put-is-atomic-across-a-delete-marker", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_s3_if_none_match_star_put_is_atomic_across_a_delete_marker.py", "service": "s3"} {"check_id": "s3.s3-lcp-rejects-inverted-or-equal-object-size-range", "deployments": [], "key": "s3/s3-lcp-rejects-inverted-or-equal-object-size-range", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:GetBucketLifecycleConfiguration", "s3:PutBucketLifecycleConfiguration"], "path": "behavioral/s3/check_s3_lcp_rejects_inverted_or_equal_object_size_range.py", "service": "s3"} {"check_id": "s3.s3-object-lock-compliance-cannot-be-bypassed-while-governance-can", "deployments": [], "key": "s3/s3-object-lock-compliance-cannot-be-bypassed-while-governance-can", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetObjectLockConfiguration", "s3:GetObjectRetention", "s3:ListObjectVersions", "s3:PutObject", "s3:PutObjectRetention"], "path": "behavioral/s3/check_s3_object_lock_compliance_cannot_be_bypassed_while_governance_can.py", "service": "s3"} {"check_id": "s3.s3-put-object-with-a-deliberately-wrong-crc32-is-rejected-and-the-key-is-absent", "deployments": [], "key": "s3/s3-put-object-with-a-deliberately-wrong-crc32-is-rejected-and-the-key-is-absent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3_put_object_with_a_deliberately_wrong_crc32_is_rejected_and_the_key_is_absent.py", "service": "s3"} {"check_id": "s3.s3-refused-conditional-gets-create-no-version-and-leave-the-object-intact", "deployments": [], "key": "s3/s3-refused-conditional-gets-create-no-version-and-leave-the-object-intact", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_s3_refused_conditional_gets_create_no_version_and_leave_the_object_intact.py", "service": "s3"} {"check_id": "s3.s3-sse-kms-object-is-unreadable-while-its-cmk-is-disabled-and-readable-again-after", "deployments": [], "key": "s3/s3-sse-kms-object-is-unreadable-while-its-cmk-is-disabled-and-readable-again-after", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3_sse_kms_object_is_unreadable_while_its_cmk_is_disabled_and_readable_again_after.py", "service": "s3"} {"check_id": "s3.s3-ssec-and-endpoint-enforcement-secure-transport-deny-policy-refuses-plaintext-http-and-allows-https", "deployments": [], "key": "s3/s3-ssec-and-endpoint-enforcement-secure-transport-deny-policy-refuses-plaintext-http-and-allows-https", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3_ssec_and_endpoint_enforcement_secure_transport_deny_policy_refuses_plaintext_http_and_allows_https.py", "service": "s3"} {"check_id": "s3.s3-ssec-and-endpoint-enforcement-ssec-copy-to-sse-s3-without-the-copy-source-key-rejected", "deployments": [], "key": "s3/s3-ssec-and-endpoint-enforcement-ssec-copy-to-sse-s3-without-the-copy-source-key-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketEncryption", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3_ssec_and_endpoint_enforcement_ssec_copy_to_sse_s3_without_the_copy_source_key_rejected.py", "service": "s3"} {"check_id": "s3.s3-ssec-and-endpoint-enforcement-ssec-multipart-upload-round-trips-only-with-the-customer-key", "deployments": [], "key": "s3/s3-ssec-and-endpoint-enforcement-ssec-multipart-upload-round-trips-only-with-the-customer-key", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListParts", "s3:PutBucketEncryption", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_s3_ssec_and_endpoint_enforcement_ssec_multipart_upload_round_trips_only_with_the_customer_key.py", "service": "s3"} {"check_id": "s3.s3-ssec-and-endpoint-enforcement-ssec-request-over-plain-http-rejected", "deployments": [], "key": "s3/s3-ssec-and-endpoint-enforcement-ssec-request-over-plain-http-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketEncryption", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3_ssec_and_endpoint_enforcement_ssec_request_over_plain_http_rejected.py", "service": "s3"} {"check_id": "s3.s3-ssec-and-endpoint-enforcement-ssec-upload-part-copy-rekeys-an-ssec-source-into-a-multipart-object", "deployments": [], "key": "s3/s3-ssec-and-endpoint-enforcement-ssec-upload-part-copy-rekeys-an-ssec-source-into-a-multipart-object", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListParts", "s3:PutBucketEncryption", "s3:PutBucketTagging", "s3:PutObject", "s3:UploadPartCopy"], "path": "behavioral/s3/check_s3_ssec_and_endpoint_enforcement_ssec_upload_part_copy_rekeys_an_ssec_source_into_a_multipart_object.py", "service": "s3"} {"check_id": "s3.s3-ssec-and-endpoint-enforcement-website-endpoint-serving-an-ssec-object-rejected", "deployments": [], "key": "s3/s3-ssec-and-endpoint-enforcement-website-endpoint-serving-an-ssec-object-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketEncryption", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_s3_ssec_and_endpoint_enforcement_website_endpoint_serving_an_ssec_object_rejected.py", "service": "s3"} {"check_id": "s3.s3-ssec-and-endpoint-enforcement-website-redirect-location-answers-301-while-rest-serves-the-body", "deployments": [], "key": "s3/s3-ssec-and-endpoint-enforcement-website-redirect-location-answers-301-while-rest-serves-the-body", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_s3_ssec_and_endpoint_enforcement_website_redirect_location_answers_301_while_rest_serves_the_body.py", "service": "s3"} {"check_id": "s3.s3-ssec-and-endpoint-enforcement-website-routing-rule-on-404-redirects-missing-keys", "deployments": [], "key": "s3/s3-ssec-and-endpoint-enforcement-website-routing-rule-on-404-redirects-missing-keys", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketWebsite", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_s3_ssec_and_endpoint_enforcement_website_routing_rule_on_404_redirects_missing_keys.py", "service": "s3"} {"check_id": "s3.s3-strong-read-after-write", "deployments": [], "key": "s3/s3-strong-read-after-write", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3_strong_read_after_write.py", "service": "s3"} {"check_id": "s3.s3-website-hosting-bare-folder-path-redirects-to-trailing-slash", "deployments": [], "key": "s3/s3-website-hosting-bare-folder-path-redirects-to-trailing-slash", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_s3_website_hosting_bare_folder_path_redirects_to_trailing_slash.py", "service": "s3"} {"check_id": "s3.s3-website-hosting-missing-key-with-no-error-document-is-rejected-with-the-default-error-page", "deployments": [], "key": "s3/s3-website-hosting-missing-key-with-no-error-document-is-rejected-with-the-default-error-page", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetBucketWebsite", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_s3_website_hosting_missing_key_with_no_error_document_is_rejected_with_the_default_error_page.py", "service": "s3"} {"check_id": "s3.s3-website-hosting-redirect-all-requests-to-answers-301-to-the-target-host", "deployments": [], "key": "s3/s3-website-hosting-redirect-all-requests-to-answers-301-to-the-target-host", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_s3_website_hosting_redirect_all_requests_to_answers_301_to_the_target_host.py", "service": "s3"} {"check_id": "s3.s3checksum-copy-object-computes-the-requested-algorithm-from-the-bytes", "deployments": [], "key": "s3/s3checksum-copy-object-computes-the-requested-algorithm-from-the-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectAttributes", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3checksum_copy_object_computes_the_requested_algorithm_from_the_bytes.py", "service": "s3"} {"check_id": "s3.s3checksum-crc32c-mismatch-rejected-and-no-object-lands", "deployments": [], "key": "s3/s3checksum-crc32c-mismatch-rejected-and-no-object-lands", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3checksum_crc32c_mismatch_rejected_and_no_object_lands.py", "service": "s3"} {"check_id": "s3.s3checksum-digest-is-a-property-of-the-bytes-in-a-derived-second-region", "deployments": [], "key": "s3/s3checksum-digest-is-a-property-of-the-bytes-in-a-derived-second-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLocation", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3checksum_digest_is_a_property_of_the_bytes_in_a_derived_second_region.py", "service": "s3"} {"check_id": "s3.s3checksum-incompatible-algorithm-and-type-pairs-rejected", "deployments": [], "key": "s3/s3checksum-incompatible-algorithm-and-type-pairs-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_s3checksum_incompatible_algorithm_and_type_pairs_rejected.py", "service": "s3"} {"check_id": "s3.s3checksum-malformed-header-rejected-as-invalid-request-not-baddigest", "deployments": [], "key": "s3/s3checksum-malformed-header-rejected-as-invalid-request-not-baddigest", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3checksum_malformed_header_rejected_as_invalid_request_not_baddigest.py", "service": "s3"} {"check_id": "s3.s3checksum-part-scoped-read-returns-the-part-digest-not-the-composite", "deployments": [], "key": "s3/s3checksum-part-scoped-read-returns-the-part-digest-not-the-composite", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_s3checksum_part_scoped_read_returns_the_part_digest_not_the_composite.py", "service": "s3"} {"check_id": "s3.s3checksum-presigned-put-query-crc32-mismatch-then-match", "deployments": [], "key": "s3/s3checksum-presigned-put-query-crc32-mismatch-then-match", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_s3checksum_presigned_put_query_crc32_mismatch_then_match.py", "service": "s3"} {"check_id": "s3.s3checksum-presigned-put-query-malformed-base64-rejected", "deployments": [], "key": "s3/s3checksum-presigned-put-query-malformed-base64-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_s3checksum_presigned_put_query_malformed_base64_rejected.py", "service": "s3"} {"check_id": "s3.s3checksum-presigned-put-query-sha256-mismatch-then-match", "deployments": [], "key": "s3/s3checksum-presigned-put-query-sha256-mismatch-then-match", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_s3checksum_presigned_put_query_sha256_mismatch_then_match.py", "service": "s3"} {"check_id": "s3.s3checksum-sha256-mismatch-refuses-the-overwrite-and-the-stored-bytes-survive", "deployments": [], "key": "s3/s3checksum-sha256-mismatch-refuses-the-overwrite-and-the-stored-bytes-survive", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_s3checksum_sha256_mismatch_refuses_the_overwrite_and_the_stored_bytes_survive.py", "service": "s3"} {"check_id": "s3.s3checksum-upload-part-mismatch-rejected-and-the-part-is-absent", "deployments": [], "key": "s3/s3checksum-upload-part-mismatch-rejected-and-the-part-is-absent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:ListParts", "s3:PutBucketTagging", "s3:UploadPart"], "path": "behavioral/s3/check_s3checksum_upload_part_mismatch_rejected_and_the_part_is_absent.py", "service": "s3"} {"check_id": "s3.s3crr-a-version-delete-is-never-replicated-even-with-marker-replication-enabled", "deployments": [], "key": "s3/s3crr-a-version-delete-is-never-replicated-even-with-marker-replication-enabled", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketReplication", "s3:GetBucketVersioning", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_s3crr_a_version_delete_is_never_replicated_even_with_marker_replication_enabled.py", "service": "s3"} {"check_id": "s3.s3crr-a-write-to-the-replica-never-propagates-back-to-the-source", "deployments": [], "key": "s3/s3crr-a-write-to-the-replica-never-propagates-back-to-the-source", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketReplication", "s3:GetBucketVersioning", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_s3crr_a_write_to_the_replica_never_propagates_back_to_the_source.py", "service": "s3"} {"check_id": "s3.s3crr-delete-marker-replicates-only-where-marker-replication-is-enabled", "deployments": [], "key": "s3/s3crr-delete-marker-replicates-only-where-marker-replication-is-enabled", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketReplication", "s3:GetBucketVersioning", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_s3crr_delete_marker_replicates_only_where_marker_replication_is_enabled.py", "service": "s3"} {"check_id": "s3.s3crr-new-object-replicates-byte-identical-to-a-derived-peer-region", "deployments": [], "key": "s3/s3crr-new-object-replicates-byte-identical-to-a-derived-peer-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLocation", "s3:GetBucketReplication", "s3:GetBucketVersioning", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_s3crr_new_object_replicates_byte_identical_to_a_derived_peer_region.py", "service": "s3"} {"check_id": "s3.s3crr-object-written-before-the-rule-is-never-backfilled", "deployments": [], "key": "s3/s3crr-object-written-before-the-rule-is-never-backfilled", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketReplication", "s3:GetBucketVersioning", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_s3crr_object_written_before_the_rule_is_never_backfilled.py", "service": "s3"} {"check_id": "s3.s3crr-replication-fails-visibly-when-the-role-cannot-write-the-destination", "deployments": [], "key": "s3/s3crr-replication-fails-visibly-when-the-role-cannot-write-the-destination", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ec2:DescribeRegions", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketReplication", "s3:GetBucketVersioning", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketReplication", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_s3crr_replication_fails_visibly_when_the_role_cannot_write_the_destination.py", "service": "s3"} {"check_id": "s3.s3unicode-a-nul-byte-in-an-object-key-is-rejected", "deployments": [], "key": "s3/s3unicode-a-nul-byte-in-an-object-key-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_a_nul_byte_in_an_object_key_is_rejected.py", "service": "s3"} {"check_id": "s3.s3unicode-astral-emoji-key-and-opaque-body-are-byte-exact", "deployments": [], "key": "s3/s3unicode-astral-emoji-key-and-opaque-body-are-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_astral_emoji_key_and_opaque_body_are_byte_exact.py", "service": "s3"} {"check_id": "s3.s3unicode-carriage-return-in-a-key-survives-the-list-xml-byte-exact", "deployments": [], "key": "s3/s3unicode-carriage-return-in-a-key-survives-the-list-xml-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_carriage_return_in_a_key_survives_the_list_xml_byte_exact.py", "service": "s3"} {"check_id": "s3.s3unicode-combining-marks-in-a-key-are-not-normalised", "deployments": [], "key": "s3/s3unicode-combining-marks-in-a-key-are-not-normalised", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_combining_marks_in_a_key_are_not_normalised.py", "service": "s3"} {"check_id": "s3.s3unicode-copy-source-with-plus-and-percent-resolves-literally", "deployments": [], "key": "s3/s3unicode-copy-source-with-plus-and-percent-resolves-literally", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_copy_source_with_plus_and_percent_resolves_literally.py", "service": "s3"} {"check_id": "s3.s3unicode-delete-objects-xml-rejects-a-control-char-a-put-key-accepts", "deployments": [], "key": "s3/s3unicode-delete-objects-xml-rejects-a-control-char-a-put-key-accepts", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_delete_objects_xml_rejects_a_control_char_a_put_key_accepts.py", "service": "s3"} {"check_id": "s3.s3unicode-leading-and-trailing-spaces-in-a-key-are-preserved", "deployments": [], "key": "s3/s3unicode-leading-and-trailing-spaces-in-a-key-are-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_leading_and_trailing_spaces_in_a_key_are_preserved.py", "service": "s3"} {"check_id": "s3.s3unicode-list-objects-url-encoding-is-form-encoded-not-rfc3986", "deployments": [], "key": "s3/s3unicode-list-objects-url-encoding-is-form-encoded-not-rfc3986", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_list_objects_url_encoding_is_form_encoded_not_rfc3986.py", "service": "s3"} {"check_id": "s3.s3unicode-list-objects-with-an-unsupported-encoding-type-is-rejected", "deployments": [], "key": "s3/s3unicode-list-objects-with-an-unsupported-encoding-type-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_list_objects_with_an_unsupported_encoding_type_is_rejected.py", "service": "s3"} {"check_id": "s3.s3unicode-object-tag-value-with-an-astral-emoji-rejected", "deployments": [], "key": "s3/s3unicode-object-tag-value-with-an-astral-emoji-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:PutObjectTagging"], "path": "behavioral/s3/check_s3unicode_object_tag_value_with_an_astral_emoji_rejected.py", "service": "s3"} {"check_id": "s3.s3unicode-rfc3986-reserved-chars-in-a-key-are-literal", "deployments": [], "key": "s3/s3unicode-rfc3986-reserved-chars-in-a-key-are-literal", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3unicode_rfc3986_reserved_chars_in_a_key_are_literal.py", "service": "s3"} {"check_id": "s3.s3x-s3express-session-and-listing-cross-bucket-token-denied", "deployments": [], "key": "s3/s3x-s3express-session-and-listing-cross-bucket-token-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3x_s3express_session_and_listing_cross_bucket_token_denied.py", "service": "s3"} {"check_id": "s3.s3x-s3express-session-and-listing-expired-token-denied", "deployments": [], "key": "s3/s3x-s3express-session-and-listing-expired-token-denied", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3x_s3express_session_and_listing_expired_token_denied.py", "service": "s3"} {"check_id": "s3.s3x-s3express-session-and-listing-inflight-mpu-prefix-listed", "deployments": [], "key": "s3/s3x-s3express-session-and-listing-inflight-mpu-prefix-listed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject", "s3:UploadPart"], "path": "behavioral/s3/check_s3x_s3express_session_and_listing_inflight_mpu_prefix_listed.py", "service": "s3"} {"check_id": "s3.s3x-s3express-session-and-listing-non-slash-delimiter-rejected", "deployments": [], "key": "s3/s3x-s3express-session-and-listing-non-slash-delimiter-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3x_s3express_session_and_listing_non_slash_delimiter_rejected.py", "service": "s3"} {"check_id": "s3.s3x-s3express-session-and-listing-readonly-session-put-denied", "deployments": [], "key": "s3/s3x-s3express-session-and-listing-readonly-session-put-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2"], "path": "behavioral/s3/check_s3x_s3express_session_and_listing_readonly_session_put_denied.py", "service": "s3"} {"check_id": "s3.s3x-s3express-session-and-listing-readwrite-session-round-trip", "deployments": [], "key": "s3/s3x-s3express-session-and-listing-readwrite-session-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:CreateSession", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2"], "path": "behavioral/s3/check_s3x_s3express_session_and_listing_readwrite_session_round_trip.py", "service": "s3"} {"check_id": "s3.s3x-s3express-session-and-listing-start-after-rejected", "deployments": [], "key": "s3/s3x-s3express-session-and-listing-start-after-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3x_s3express_session_and_listing_start_after_rejected.py", "service": "s3"} {"check_id": "s3.s3x-s3express-session-and-listing-unterminated-prefix-rejected", "deployments": [], "key": "s3/s3x-s3express-session-and-listing-unterminated-prefix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_s3x_s3express_session_and_listing_unterminated_prefix_rejected.py", "service": "s3"} {"check_id": "s3.secure-transport-policy-plain-http-denied", "deployments": [], "key": "s3/secure-transport-policy-plain-http-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_secure_transport_policy_plain_http_denied.py", "service": "s3"} {"check_id": "s3.select-object-content-permission-denied", "deployments": [], "key": "s3/select-object-content-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_select_object_content_permission_denied.py", "service": "s3"} {"check_id": "s3.sigv4skew-cross-region-credential-scope-rejected", "deployments": [], "key": "s3/sigv4skew-cross-region-credential-scope-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeRegions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_sigv4skew_cross_region_credential_scope_rejected.py", "service": "s3"} {"check_id": "s3.sigv4skew-future-dated-put-outside-window-rejected", "deployments": [], "key": "s3/sigv4skew-future-dated-put-outside-window-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/s3/check_sigv4skew_future_dated_put_outside_window_rejected.py", "service": "s3"} {"check_id": "s3.sigv4skew-past-dated-put-outside-window-rejected", "deployments": [], "key": "s3/sigv4skew-past-dated-put-outside-window-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_sigv4skew_past_dated_put_outside_window_rejected.py", "service": "s3"} {"check_id": "s3.sigv4skew-presigned-get-altered-expires-param-rejected", "deployments": [], "key": "s3/sigv4skew-presigned-get-altered-expires-param-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_sigv4skew_presigned_get_altered_expires_param_rejected.py", "service": "s3"} {"check_id": "s3.sigv4skew-presigned-get-date-shifted-one-second-rejected", "deployments": [], "key": "s3/sigv4skew-presigned-get-date-shifted-one-second-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_sigv4skew_presigned_get_date_shifted_one_second_rejected.py", "service": "s3"} {"check_id": "s3.sigv4skew-presigned-get-refusal-names-its-expiry-window", "deployments": [], "key": "s3/sigv4skew-presigned-get-refusal-names-its-expiry-window", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_sigv4skew_presigned_get_refusal_names_its_expiry_window.py", "service": "s3"} {"check_id": "s3.sigv4skew-presigned-put-after-expiry-writes-no-object-rejected", "deployments": [], "key": "s3/sigv4skew-presigned-put-after-expiry-writes-no-object-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2"], "path": "behavioral/s3/check_sigv4skew_presigned_put_after_expiry_writes_no_object_rejected.py", "service": "s3"} {"check_id": "s3.sigv4skew-window-enforced-in-derived-second-region-rejected", "deployments": [], "key": "s3/sigv4skew-window-enforced-in-derived-second-region-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["ec2:DescribeRegions", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3/check_sigv4skew_window_enforced_in_derived_second_region_rejected.py", "service": "s3"} {"check_id": "s3.sse-c-wrong-customer-key-rejected", "deployments": [], "key": "s3/sse-c-wrong-customer-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_sse_c_wrong_customer_key_rejected.py", "service": "s3"} {"check_id": "s3.sse-kms", "deployments": [], "key": "s3/sse-kms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_sse_kms.py", "service": "s3"} {"check_id": "s3.sse-s3-default", "deployments": [], "key": "s3/sse-s3-default", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_sse_s3_default.py", "service": "s3"} {"check_id": "s3.sse-s3-explicit", "deployments": [], "key": "s3/sse-s3-explicit", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketEncryption", "s3:PutObject"], "path": "behavioral/s3/check_sse_s3_explicit.py", "service": "s3"} {"check_id": "s3.ssec-head-object-requires-the-matching-customer-key", "deployments": [], "key": "s3/ssec-head-object-requires-the-matching-customer-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketEncryption", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketEncryption", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_ssec_head_object_requires_the_matching_customer_key.py", "service": "s3"} {"check_id": "s3.storage-class-reduced-redundancy", "deployments": [], "key": "s3/storage-class-reduced-redundancy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/s3/check_storage_class_reduced_redundancy.py", "service": "s3"} {"check_id": "s3.storage-class-standard", "deployments": [], "key": "s3/storage-class-standard", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject"], "path": "behavioral/s3/check_storage_class_standard.py", "service": "s3"} {"check_id": "s3.update-object-encryption-error-paths", "deployments": [], "key": "s3/update-object-encryption-error-paths", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutObject", "s3:UpdateObjectEncryption"], "path": "behavioral/s3/check_update_object_encryption_error_paths.py", "service": "s3"} {"check_id": "s3.update-object-encryption-error-preconditions", "deployments": [], "key": "s3/update-object-encryption-error-preconditions", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:Encrypt", "kms:GenerateDataKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "s3:UpdateObjectEncryption", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_update_object_encryption_error_preconditions.py", "service": "s3"} {"check_id": "s3.update-object-encryption-errors", "deployments": [], "key": "s3/update-object-encryption-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3:UpdateObjectEncryption", "sts:GetCallerIdentity"], "path": "behavioral/s3/check_update_object_encryption_errors.py", "service": "s3"} {"check_id": "s3.upload-part-copy-source-if-match-takes-a-composite-etag-and-refuses-it-once-stale", "deployments": [], "key": "s3/upload-part-copy-source-if-match-takes-a-composite-etag-and-refuses-it-once-stale", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListParts", "s3:PutBucketTagging", "s3:PutObject", "s3:UploadPart", "s3:UploadPartCopy"], "path": "behavioral/s3/check_upload_part_copy_source_if_match_takes_a_composite_etag_and_refuses_it_once_stale.py", "service": "s3"} {"check_id": "s3.upload-part-of-twenty-mib-completes-and-reads-back-exactly", "deployments": [], "key": "s3/upload-part-of-twenty-mib-completes-and-reads-back-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploads", "s3:ListObjectsV2", "s3:UploadPart"], "path": "behavioral/s3/check_upload_part_of_twenty_mib_completes_and_reads_back_exactly.py", "service": "s3"} {"check_id": "s3.versioning-delete-marker", "deployments": [], "key": "s3/versioning-delete-marker", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_versioning_delete_marker.py", "service": "s3"} {"check_id": "s3.versioning-enable", "deployments": [], "key": "s3/versioning-enable", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning"], "path": "behavioral/s3/check_versioning_enable.py", "service": "s3"} {"check_id": "s3.versioning-get-specific-version", "deployments": [], "key": "s3/versioning-get-specific-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_versioning_get_specific_version.py", "service": "s3"} {"check_id": "s3.versioning-produces-version-ids", "deployments": [], "key": "s3/versioning-produces-version-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_versioning_produces_version_ids.py", "service": "s3"} {"check_id": "s3.versioning-suspended-null-version", "deployments": [], "key": "s3/versioning-suspended-null-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3/check_versioning_suspended_null_version.py", "service": "s3"} {"check_id": "s3.website-endpoint-serves-index-and-error-documents-and-refuses-writes", "deployments": [], "key": "s3/website-endpoint-serves-index-and-error-documents-and-refuses-writes", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketWebsite", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketWebsite", "s3:PutObject", "s3:PutPublicAccessBlock"], "path": "behavioral/s3/check_website_endpoint_serves_index_and_error_documents_and_refuses_writes.py", "service": "s3"} {"check_id": "s3__s3control.xsvc-s3-bucket-tags-visible-through-s3control-generic-tagging", "deployments": [], "key": "s3__s3control/xsvc-s3-bucket-tags-visible-through-s3control-generic-tagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "s3control:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/s3__s3control/check_xsvc_s3_bucket_tags_visible_through_s3control_generic_tagging.py", "service": "s3__s3control"} {"check_id": "s3__s3control.xsvc-s3control-tag-resource-visible-through-s3-get-bucket-tagging", "deployments": [], "key": "s3__s3control/xsvc-s3control-tag-resource-visible-through-s3-get-bucket-tagging", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:GetBucketTagging", "s3control:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/s3__s3control/check_xsvc_s3control_tag_resource_visible_through_s3_get_bucket_tagging.py", "service": "s3__s3control"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-endpoint-config-s3-kms-negative", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-endpoint-config-s3-kms-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DeleteProcessingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_endpoint_config_s3_kms_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-endpoint-config-stack-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-endpoint-config-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteAction", "sagemaker:DeleteAssociation", "sagemaker:DeleteContext", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DeleteTrainingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:ListActions", "sagemaker:ListAssociations", "sagemaker:ListContexts", "sagemaker:ListTrialComponents", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_endpoint_config_stack_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-endpoint-missing-s3-policy-negative", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-endpoint-missing-s3-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:ListModels"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_endpoint_missing_s3_policy_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-execution-role-trust-policy-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-execution-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_execution_role_trust_policy_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-execution-role-trusts-s3-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-execution-role-trusts-s3-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "iam:SimulatePrincipalPolicy", "s3:DeleteObject", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_execution_role_trusts_s3_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-missing-s3-bucket-policy-negative", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-missing-s3-bucket-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_missing_s3_bucket_policy_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-model-s3-artifact-arn-resolution", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-model-s3-artifact-arn-resolution", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:GetObject", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_model_s3_artifact_arn_resolution.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-model-s3-artifact-reference-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-model-s3-artifact-reference-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_model_s3_artifact_reference_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-model-s3-artifact-stack-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-model-s3-artifact-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_model_s3_artifact_stack_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-notebook-instance-s3-bucket-access-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-notebook-instance-s3-bucket-access-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_notebook_instance_s3_bucket_access_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-notebook-instance-s3-role-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-notebook-instance-s3-role-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:DescribeNotebookInstance", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_notebook_instance_s3_role_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-notebook-instance-with-s3-role", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-notebook-instance-with-s3-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_notebook_instance_with_s3_role.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-role-missing-s3-trust-negative", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-role-missing-s3-trust-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_role_missing_s3_trust_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-role-without-s3-trust-negative", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-role-without-s3-trust-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_role_without_s3_trust_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-training-job-resource-s3-output-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-training-job-resource-s3-output-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_training_job_resource_s3_output_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-training-job-stack-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-training-job-stack-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_training_job_stack_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-deploy-sagemaker-training-job-stack-s3-data-positive", "deployments": [], "key": "s3__sagemaker/cfn-deploy-sagemaker-training-job-stack-s3-data-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cfn_deploy_sagemaker_training_job_stack_s3_data_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cfn-stack-update-sagemaker-model-data-url-positive", "deployments": [], "key": "s3__sagemaker/cfn-stack-update-sagemaker-model-data-url-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_cfn_stack_update_sagemaker_model_data_url_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-s3-upload-then-sagemaker-processing-job-workflow", "deployments": [], "key": "s3__sagemaker/cli-s3-upload-then-sagemaker-processing-job-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DescribeProcessingJob"], "path": "behavioral/s3__sagemaker/check_cli_s3_upload_then_sagemaker_processing_job_workflow.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-batch-transform-s3-workflow", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-batch-transform-s3-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DeleteModel", "sagemaker:DescribeTransformJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_batch_transform_s3_workflow.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-create-model-s3-artifact-workflow", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-create-model-s3-artifact-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_create_model_s3_artifact_workflow.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-create-training-job-monitor-s3-artifact", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-create-training-job-monitor-s3-artifact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_create_training_job_monitor_s3_artifact.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-create-training-job-s3-input-workflow", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-create-training-job-s3-input-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_create_training_job_s3_input_workflow.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-create-training-job-s3-roundtrip", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-create-training-job-s3-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DescribeTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_create_training_job_s3_roundtrip.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-create-training-job-s3-workflow", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-create-training-job-s3-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_create_training_job_s3_workflow.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-describe-training-job-artifact-location", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-describe-training-job-artifact-location", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_describe_training_job_artifact_location.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-describe-training-job-s3-output-verification", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-describe-training-job-s3-output-verification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_describe_training_job_s3_output_verification.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-describe-training-job-status-transitions", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-describe-training-job-status-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_describe_training_job_status_transitions.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-describe-training-job-verify-s3-output", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-describe-training-job-verify-s3-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_describe_training_job_verify_s3_output.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-invalid-s3-input-uri-negative", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-invalid-s3-input-uri-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DescribeTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_invalid_s3_input_uri_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-list-s3-output-objects-after-job", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-list-s3-output-objects-after-job", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_list_s3_output_objects_after_job.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-missing-role-permission-negative", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-missing-role-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:DescribeTrainingJob", "sagemaker:ListTrainingJobs", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_missing_role_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-processing-job-s3-output-verify", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-processing-job-s3-output-verify", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sagemaker:DescribeProcessingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_processing_job_s3_output_verify.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-training-job-missing-role-permission-negative", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-training-job-missing-role-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_training_job_missing_role_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-training-job-missing-s3-permission-error", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-training-job-missing-s3-permission-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DescribeTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_training_job_missing_s3_permission_error.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.cli-sagemaker-training-job-missing-s3-permission-negative", "deployments": [], "key": "s3__sagemaker/cli-sagemaker-training-job-missing-s3-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_cli_sagemaker_training_job_missing_s3_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.deploy-cfn-sagemaker-bucket-policy-denies-role-negative", "deployments": [], "key": "s3__sagemaker/deploy-cfn-sagemaker-bucket-policy-denies-role-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObject", "s3:GetObject", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3__sagemaker/check_deploy_cfn_sagemaker_bucket_policy_denies_role_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.deploy-cfn-sagemaker-execution-role-trust-policy-positive", "deployments": [], "key": "s3__sagemaker/deploy-cfn-sagemaker-execution-role-trust-policy-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:GetRole", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_deploy_cfn_sagemaker_execution_role_trust_policy_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.deploy-cfn-sagemaker-model-s3-artifact-reference-positive", "deployments": [], "key": "s3__sagemaker/deploy-cfn-sagemaker-model-s3-artifact-reference-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_deploy_cfn_sagemaker_model_s3_artifact_reference_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.deploy-cfn-sagemaker-notebook-instance-role-s3-access-positive", "deployments": [], "key": "s3__sagemaker/deploy-cfn-sagemaker-notebook-instance-role-s3-access-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3__sagemaker/check_deploy_cfn_sagemaker_notebook_instance_role_s3_access_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.deploy-cfn-sagemaker-role-missing-s3-permission-negative", "deployments": [], "key": "s3__sagemaker/deploy-cfn-sagemaker-role-missing-s3-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_deploy_cfn_sagemaker_role_missing_s3_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.deploy-cfn-sagemaker-training-job-s3-bucket-wiring-positive", "deployments": [], "key": "s3__sagemaker/deploy-cfn-sagemaker-training-job-s3-bucket-wiring-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_deploy_cfn_sagemaker_training_job_s3_bucket_wiring_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.iam-role-missing-sagemaker-trust-blocks-training-job-negative", "deployments": [], "key": "s3__sagemaker/iam-role-missing-sagemaker-trust-blocks-training-job-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_iam_role_missing_sagemaker_trust_blocks_training_job_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-autopilot-job-writes-candidates-to-s3", "deployments": [], "key": "s3__sagemaker/sagemaker-autopilot-job-writes-candidates-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateAutoMLJobV2", "sagemaker:DescribeAutoMLJobV2", "sagemaker:StopAutoMLJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_autopilot_job_writes_candidates_to_s3.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-and-realtime-endpoint-agree-on-every-row", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-and-realtime-endpoint-agree-on-every-row", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_and_realtime_endpoint_agree_on_every_row.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-invalid-s3-uri-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-invalid-s3-uri-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTransformJob", "sagemaker:ListTransformJobs", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_invalid_s3_uri_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-missing-role-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-missing-role-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_missing_role_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-missing-s3-read-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-missing-s3-read-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_missing_s3_read_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-nonexistent-s3-input-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-nonexistent-s3-input-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListTransformJobs"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_nonexistent_s3_input_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-output-missing-s3-write-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-output-missing-s3-write-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_output_missing_s3_write_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-reads-s3-input", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-reads-s3-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_reads_s3_input.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-reads-s3-input-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-reads-s3-input-positive", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTransformJob", "sagemaker:ListTransformJobs", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_reads_s3_input_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-s3-input-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-s3-input-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_s3_input_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-s3-output-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-s3-output-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_s3_output_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-writes-output-s3-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-writes-output-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTransformJob", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_writes_output_s3_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-writes-s3-output", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-writes-s3-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_writes_s3_output.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-batch-transform-writes-s3-output-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-batch-transform-writes-s3-output-positive", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeTransformJob", "sagemaker:ListTransformJobs", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_batch_transform_writes_s3_output_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-create-model-invalid-s3-artifact-path-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-create-model-invalid-s3-artifact-path-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_sagemaker_create_model_invalid_s3_artifact_path_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-create-model-missing-s3-artifact-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-create-model-missing-s3-artifact-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel", "sagemaker:ListModels"], "path": "behavioral/s3__sagemaker/check_sagemaker_create_model_missing_s3_artifact_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-create-model-nonexistent-s3-artifact-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-create-model-nonexistent-s3-artifact-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteModel", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_create_model_nonexistent_s3_artifact_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-create-model-references-s3-artifact-url-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-create-model-references-s3-artifact-url-positive", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_sagemaker_create_model_references_s3_artifact_url_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-create-model-references-s3-model-artifact", "deployments": [], "key": "s3__sagemaker/sagemaker-create-model-references-s3-model-artifact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel", "sagemaker:ListModels"], "path": "behavioral/s3__sagemaker/check_sagemaker_create_model_references_s3_model_artifact.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-create-role-trusts-sagemaker-service-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-create-role-trusts-sagemaker-service-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_create_role_trusts_sagemaker_service_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-endpoint-config-model-data-url-resolution", "deployments": [], "key": "s3__sagemaker/sagemaker-endpoint-config-model-data-url-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_endpoint_config_model_data_url_resolution.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-endpoint-config-s3-model-data-resolution-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-endpoint-config-s3-model-data-resolution-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_endpoint_config_s3_model_data_resolution_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-endpoint-data-capture-missing-s3-write-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-endpoint-data-capture-missing-s3-write-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint"], "path": "behavioral/s3__sagemaker/check_sagemaker_endpoint_data_capture_missing_s3_write_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-endpoint-data-capture-s3-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-endpoint-data-capture-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint"], "path": "behavioral/s3__sagemaker/check_sagemaker_endpoint_data_capture_s3_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-endpoint-deploy-from-a-deleted-model-artifact-fails-with-an-s3-failure-reason", "deployments": [], "key": "s3__sagemaker/sagemaker-endpoint-deploy-from-a-deleted-model-artifact-fails-with-an-s3-failure-reason", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_endpoint_deploy_from_a_deleted_model_artifact_fails_with_an_s3_failure_reason.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-endpoint-invocation-output-captured-to-s3", "deployments": [], "key": "s3__sagemaker/sagemaker-endpoint-invocation-output-captured-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_endpoint_invocation_output_captured_to_s3.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-execution-role-s3-bucket-policy-denies-access-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-execution-role-s3-bucket-policy-denies-access-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_execution_role_s3_bucket_policy_denies_access_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-execution-role-trust-policy-missing-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-execution-role-trust-policy-missing-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_execution_role_trust_policy_missing_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-execution-role-trust-policy-missing-principal-rejected", "deployments": [], "key": "s3__sagemaker/sagemaker-execution-role-trust-policy-missing-principal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_execution_role_trust_policy_missing_principal_rejected.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-execution-role-trust-policy-sagemaker-service", "deployments": [], "key": "s3__sagemaker/sagemaker-execution-role-trust-policy-sagemaker-service", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_execution_role_trust_policy_sagemaker_service.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-feature-store-offline-store-missing-s3-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-feature-store-offline-store-missing-s3-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/s3__sagemaker/check_sagemaker_feature_store_offline_store_missing_s3_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-feature-store-offline-store-writes-to-s3", "deployments": [], "key": "s3__sagemaker/sagemaker-feature-store-offline-store-writes-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker-featurestore-runtime:DeleteRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/s3__sagemaker/check_sagemaker_feature_store_offline_store_writes_to_s3.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-hyperparameter-tuning-job-s3-artifacts-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-hyperparameter-tuning-job-s3-artifacts-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:DescribeHyperParameterTuningJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopHyperParameterTuningJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_hyperparameter_tuning_job_s3_artifacts_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-model-artifact-s3-key-not-found-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-model-artifact-s3-key-not-found-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModel", "sagemaker:CreateTransformJob", "sagemaker:DeleteModel", "sagemaker:DescribeModel", "sagemaker:DescribeTransformJob", "sagemaker:StopTransformJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_model_artifact_s3_key_not_found_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-model-artifact-s3-uri-resolution-arn", "deployments": [], "key": "s3__sagemaker/sagemaker-model-artifact-s3-uri-resolution-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_model_artifact_s3_uri_resolution_arn.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-model-creation-cross-account-bucket-policy-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-model-creation-cross-account-bucket-policy-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint"], "path": "behavioral/s3__sagemaker/check_sagemaker_model_creation_cross_account_bucket_policy_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-model-creation-references-s3-model-data-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-model-creation-references-s3-model-data-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_model_creation_references_s3_model_data_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-model-creation-s3-modeldata-missing-object-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-model-creation-s3-modeldata-missing-object-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeModel"], "path": "behavioral/s3__sagemaker/check_sagemaker_model_creation_s3_modeldata_missing_object_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-model-package-s3-artifact-registry-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-model-package-s3-artifact-registry-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sts:GetCallerIdentity"], "path": "behavioral/s3__sagemaker/check_sagemaker_model_package_s3_artifact_registry_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-model-package-s3-artifact-validation", "deployments": [], "key": "s3__sagemaker/sagemaker-model-package-s3-artifact-validation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:ListModelPackages"], "path": "behavioral/s3__sagemaker/check_sagemaker_model_package_s3_artifact_validation.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-kms-encrypted-output-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-kms-encrypted-output-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_kms_encrypted_output_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-kms-encrypted-s3-output-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-kms-encrypted-s3-output-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_kms_encrypted_s3_output_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-missing-s3-list-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-missing-s3-list-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_missing_s3_list_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-missing-s3-putobject-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-missing-s3-putobject-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_missing_s3_putobject_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-missing-s3-write-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-missing-s3-write-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_missing_s3_write_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-output-data-format-preserved", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-output-data-format-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_output_data_format_preserved.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-reads-s3-input", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-reads-s3-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_reads_s3_input.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-reads-s3-input-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-reads-s3-input-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_reads_s3_input_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-s3-bucket-policy-denies-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-s3-bucket-policy-denies-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_s3_bucket_policy_denies_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-s3-data-distribution-type-preserved", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-s3-data-distribution-type-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_s3_data_distribution_type_preserved.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-s3-input-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-s3-input-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_s3_input_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-s3-output-bucket-policy-blocks-write-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-s3-output-bucket-policy-blocks-write-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_s3_output_bucket_policy_blocks_write_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-s3-output-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-s3-output-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_s3_output_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-writes-output-to-s3-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-writes-output-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_writes_output_to_s3_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-writes-s3-output", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-writes-s3-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_writes_s3_output.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-processing-job-writes-s3-output-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-processing-job-writes-s3-output-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob", "sagemaker:StopProcessingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_processing_job_writes_s3_output_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-trained-model-artifact-is-a-real-loadable-archive-at-the-uri-it-reports", "deployments": [], "key": "s3__sagemaker/sagemaker-trained-model-artifact-is-a-real-loadable-archive-at-the-uri-it-reports", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_trained_model_artifact_is_a_real_loadable_archive_at_the_uri_it_reports.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-input-s3-uri-validation-rejected", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-input-s3-uri-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_input_s3_uri_validation_rejected.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-invalid-s3-uri-error-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-invalid-s3-uri-error-negative", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_invalid_s3_uri_error_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-missing-s3-getobject-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-missing-s3-getobject-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_missing_s3_getobject_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-missing-s3-putobject-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-missing-s3-putobject-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_missing_s3_putobject_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-missing-s3-read-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-missing-s3-read-permission-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_missing_s3_read_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-missing-s3-write-permission-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-missing-s3-write-permission-negative", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_missing_s3_write_permission_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-multiple-channels-s3-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-multiple-channels-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_multiple_channels_s3_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-output-path-nonexistent-bucket-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-output-path-nonexistent-bucket-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_output_path_nonexistent_bucket_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-reads-s3-input-channel", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-reads-s3-input-channel", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_reads_s3_input_channel.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-reads-s3-input-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-reads-s3-input-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_reads_s3_input_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-role-without-s3-trust-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-role-without-s3-trust-negative", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:ListTrainingJobs", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_role_without_s3_trust_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-s3-bucket-policy-blocks-access-negative", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-s3-bucket-policy-blocks-access-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_s3_bucket_policy_blocks_access_negative.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-s3-checkpoint-config-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-s3-checkpoint-config-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_s3_checkpoint_config_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-s3-input-data-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-s3-input-data-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_s3_input_data_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-s3-input-manifest-format-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-s3-input-manifest-format-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_s3_input_manifest_format_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-s3-output-artifacts-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-s3-output-artifacts-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_s3_output_artifacts_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-s3-output-path-versioning", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-s3-output-path-versioning", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_s3_output_path_versioning.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-writes-model-artifact-to-s3", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-writes-model-artifact-to-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_writes_model_artifact_to_s3.py", "service": "s3__sagemaker"} {"check_id": "s3__sagemaker.sagemaker-training-job-writes-model-artifact-to-s3-positive", "deployments": [], "key": "s3__sagemaker/sagemaker-training-job-writes-model-artifact-to-s3-positive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/s3__sagemaker/check_sagemaker_training_job_writes_model_artifact_to_s3_positive.py", "service": "s3__sagemaker"} {"check_id": "s3__ses__sesv2.inbound-message-carries-authentication-and-scan-headers", "deployments": [], "key": "s3__ses__sesv2/inbound-message-carries-authentication-and-scan-headers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:SetActiveReceiptRuleSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail"], "path": "behavioral/s3__ses__sesv2/check_inbound_message_carries_authentication_and_scan_headers.py", "service": "s3__ses__sesv2"} {"check_id": "s3__ses__sesv2.mail-to-a-verified-domain-is-received-into-s3-by-a-receipt-rule", "deployments": [], "key": "s3__ses__sesv2/mail-to-a-verified-domain-is-received-into-s3-by-a-receipt-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:SetActiveReceiptRuleSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail"], "path": "behavioral/s3__ses__sesv2/check_mail_to_a_verified_domain_is_received_into_s3_by_a_receipt_rule.py", "service": "s3__ses__sesv2"} {"check_id": "s3__ses__sesv2.raw-multipart-attachment-arrives-byte-exact", "deployments": [], "key": "s3__ses__sesv2/raw-multipart-attachment-arrives-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:SendRawEmail", "ses:SetActiveReceiptRuleSet", "sesv2:GetEmailIdentity"], "path": "behavioral/s3__ses__sesv2/check_raw_multipart_attachment_arrives_byte_exact.py", "service": "s3__ses__sesv2"} {"check_id": "s3__ses__sesv2.s3-action-object-key-prefix-and-kms-encryption", "deployments": [], "key": "s3__ses__sesv2/s3-action-object-key-prefix-and-kms-encryption", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:EnableKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "route53:ListHostedZones", "route53:ListTagsForResource", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketPolicy", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:SetActiveReceiptRuleSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail"], "path": "behavioral/s3__ses__sesv2/check_s3_action_object_key_prefix_and_kms_encryption.py", "service": "s3__ses__sesv2"} {"check_id": "s3__simpledbv2.export-domain-to-s3-contains-written-items", "deployments": [], "key": "s3__simpledbv2/export-domain-to-s3-contains-written-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "sdb:CreateDomain", "sdb:DeleteDomain", "sdb:PutAttributes", "simpledbv2:GetExport", "simpledbv2:StartDomainExport"], "path": "behavioral/s3__simpledbv2/check_export_domain_to_s3_contains_written_items.py", "service": "s3__simpledbv2"} {"check_id": "s3__simpledbv2.repeated-client-token-with-different-params-rejected", "deployments": [], "key": "s3__simpledbv2/repeated-client-token-with-different-params-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sdb:CreateDomain", "sdb:DeleteDomain", "sdb:PutAttributes", "simpledbv2:GetExport", "simpledbv2:ListExports", "simpledbv2:StartDomainExport"], "path": "behavioral/s3__simpledbv2/check_repeated_client_token_with_different_params_rejected.py", "service": "s3__simpledbv2"} {"check_id": "s3__sns__sqs.s3-notification-without-topic-policy-rejected", "deployments": [], "key": "s3__sns__sqs/s3-notification-without-topic-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes"], "path": "behavioral/s3__sns__sqs/check_s3_notification_without_topic_policy_rejected.py", "service": "s3__sns__sqs"} {"check_id": "s3__sns__sqs.s3-object-created-notifies-sns", "deployments": [], "key": "s3__sns__sqs/s3-object-created-notifies-sns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListBuckets", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sns__sqs/check_s3_object_created_notifies_sns.py", "service": "s3__sns__sqs"} {"check_id": "s3__sqs.a-denied-put-creates-no-object-and-emits-no-notification", "deployments": [], "key": "s3__sqs/a-denied-put-creates-no-object-and-emits-no-notification", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetBucketPolicy", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketNotificationConfiguration", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/s3__sqs/check_a_denied_put_creates_no_object_and_emits_no_notification.py", "service": "s3__sqs"} {"check_id": "s3__sqs.an-aborted-multipart-upload-emits-no-object-created-notification", "deployments": [], "key": "s3__sqs/an-aborted-multipart-upload-emits-no-object-created-notification", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:ListParts", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:UploadPart", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/s3__sqs/check_an_aborted_multipart_upload_emits_no_object_created_notification.py", "service": "s3__sqs"} {"check_id": "s3__sqs.deploy-s3-3-drift-versioning-suspended-out-of-band", "deployments": [], "key": "s3__sqs/deploy-s3-3-drift-versioning-suspended-out-of-band", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackDrift", "s3:DeleteObjects", "s3:GetBucketVersioning", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject"], "path": "behavioral/s3__sqs/check_deploy_s3_3_drift_versioning_suspended_out_of_band.py", "service": "s3__sqs"} {"check_id": "s3__sqs.deploy-s3-3-notification-nonexistent-queue-rollback-rejected", "deployments": [], "key": "s3__sqs/deploy-s3-3-notification-nonexistent-queue-rollback-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/s3__sqs/check_deploy_s3_3_notification_nonexistent_queue_rollback_rejected.py", "service": "s3__sqs"} {"check_id": "s3__sqs.deploy-s3-3-notification-queue-without-policy-rollback-rejected", "deployments": [], "key": "s3__sqs/deploy-s3-3-notification-queue-without-policy-rollback-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "s3:DeleteObjects", "s3:HeadBucket", "s3:ListObjectVersions", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/s3__sqs/check_deploy_s3_3_notification_queue_without_policy_rollback_rejected.py", "service": "s3__sqs"} {"check_id": "s3__sqs.inline-tagging-and-canned-acl-on-write-withhold-tagging-and-acl-events", "deployments": [], "key": "s3__sqs/inline-tagging-and-canned-acl-on-write-withhold-tagging-and-acl-events", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_inline_tagging_and_canned_acl_on_write_withhold_tagging_and_acl_events.py", "service": "s3__sqs"} {"check_id": "s3__sqs.notification-destination-validation-rejects-unresolvable-queue", "deployments": [], "key": "s3__sqs/notification-destination-validation-rejects-unresolvable-queue", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_notification_destination_validation_rejects_unresolvable_queue.py", "service": "s3__sqs"} {"check_id": "s3__sqs.object-acl-put-event-reaches-only-its-queue", "deployments": [], "key": "s3__sqs/object-acl-put-event-reaches-only-its-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetObjectAcl", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectAcl", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_object_acl_put_event_reaches_only_its_queue.py", "service": "s3__sqs"} {"check_id": "s3__sqs.object-created-copy-event-reaches-only-its-queue", "deployments": [], "key": "s3__sqs/object-created-copy-event-reaches-only-its-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CopyObject", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_object_created_copy_event_reaches_only_its_queue.py", "service": "s3__sqs"} {"check_id": "s3__sqs.object-tagging-delete-event-reaches-only-its-queue", "deployments": [], "key": "s3__sqs/object-tagging-delete-event-reaches-only-its-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjectTagging", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_object_tagging_delete_event_reaches_only_its_queue.py", "service": "s3__sqs"} {"check_id": "s3__sqs.object-tagging-put-event-reaches-only-its-queue", "deployments": [], "key": "s3__sqs/object-tagging-put-event-reaches-only-its-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_object_tagging_put_event_reaches_only_its_queue.py", "service": "s3__sqs"} {"check_id": "s3__sqs.overlapping-object-tagging-wildcard-configuration-rejected", "deployments": [], "key": "s3__sqs/overlapping-object-tagging-wildcard-configuration-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "s3:PutObjectTagging", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_overlapping_object_tagging_wildcard_configuration_rejected.py", "service": "s3__sqs"} {"check_id": "s3__sqs.s3-notification-disjoint-prefix-routes-only-matching-queue", "deployments": [], "key": "s3__sqs/s3-notification-disjoint-prefix-routes-only-matching-queue", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_s3_notification_disjoint_prefix_routes_only_matching_queue.py", "service": "s3__sqs"} {"check_id": "s3__sqs.s3-object-created-put-subscription-withholds-the-multipart-completion-event", "deployments": [], "key": "s3__sqs/s3-object-created-put-subscription-withholds-the-multipart-completion-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:AbortMultipartUpload", "s3:CompleteMultipartUpload", "s3:CreateBucket", "s3:CreateMultipartUpload", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadObject", "s3:ListMultipartUploads", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutObject", "s3:UploadPart", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_s3_object_created_put_subscription_withholds_the_multipart_completion_event.py", "service": "s3__sqs"} {"check_id": "s3__sqs.s3-object-removed-delete-subscription-withholds-the-delete-marker-event", "deployments": [], "key": "s3__sqs/s3-object-removed-delete-subscription-withholds-the-delete-marker-event", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/s3__sqs/check_s3_object_removed_delete_subscription_withholds_the_delete_marker_event.py", "service": "s3__sqs"} {"check_id": "s3__sqs.s3-sequencer-is-the-only-total-order-over-one-key", "deployments": [], "key": "s3__sqs/s3-sequencer-is-the-only-total-order-over-one-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:DeleteObjects", "s3:GetBucketNotificationConfiguration", "s3:HeadObject", "s3:ListObjectVersions", "s3:PutBucketNotificationConfiguration", "s3:PutBucketVersioning", "s3:PutObject", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/s3__sqs/check_s3_sequencer_is_the_only_total_order_over_one_key.py", "service": "s3__sqs"} {"check_id": "s3__stepfunctions.sfn-aws-sdk-s3-getobject-result-over-256kib-rejected", "deployments": [], "key": "s3__stepfunctions/sfn-aws-sdk-s3-getobject-result-over-256kib-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/s3__stepfunctions/check_sfn_aws_sdk_s3_getobject_result_over_256kib_rejected.py", "service": "s3__stepfunctions"} {"check_id": "s3__stepfunctions.sfn-aws-sdk-s3-streaming-round-trip-then-getobject-after-delete-caught", "deployments": [], "key": "s3__stepfunctions/sfn-aws-sdk-s3-streaming-round-trip-then-getobject-after-delete-caught", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/s3__stepfunctions/check_sfn_aws_sdk_s3_streaming_round_trip_then_getobject_after_delete_caught.py", "service": "s3__stepfunctions"} {"check_id": "s3__stepfunctions.sfn-distributed-map-over-real-s3-objects-writes-a-result-manifest", "deployments": [], "key": "s3__stepfunctions/sfn-distributed-map-over-real-s3-objects-writes-a-result-manifest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/s3__stepfunctions/check_sfn_distributed_map_over_real_s3_objects_writes_a_result_manifest.py", "service": "s3__stepfunctions"} {"check_id": "s3__stepfunctions.sfn-distributed-map-without-start-execution-permission-fails-with-zero-children", "deployments": [], "key": "s3__stepfunctions/sfn-distributed-map-without-start-execution-permission-fails-with-zero-children", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListExecutions", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/s3__stepfunctions/check_sfn_distributed_map_without_start_execution_permission_fails_with_zero_children.py", "service": "s3__stepfunctions"} {"check_id": "s3__stepfunctions.sfn-redrive-of-a-partly-failed-map-run-reruns-only-the-failed-items", "deployments": [], "key": "s3__stepfunctions/sfn-redrive-of-a-partly-failed-map-run-reruns-only-the-failed-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListExecutions", "stepfunctions:ListMapRuns", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/s3__stepfunctions/check_sfn_redrive_of_a_partly_failed_map_run_reruns_only_the_failed_items.py", "service": "s3__stepfunctions"} {"check_id": "s3control.access-grants-get-data-access-returns-scoped-credentials", "deployments": [], "key": "s3control/access-grants-get-data-access-returns-scoped-credentials", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateAccessGrant", "s3control:CreateAccessGrantsInstance", "s3control:CreateAccessGrantsLocation", "s3control:DeleteAccessGrant", "s3control:DeleteAccessGrantsInstance", "s3control:DeleteAccessGrantsLocation", "s3control:GetAccessGrant", "s3control:GetAccessGrantsInstance", "s3control:GetDataAccess", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_grants_get_data_access_returns_scoped_credentials.py", "service": "s3control"} {"check_id": "s3control.access-grants-get-data-access-ungranted-prefix-rejected", "deployments": [], "key": "s3control/access-grants-get-data-access-ungranted-prefix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateAccessGrant", "s3control:CreateAccessGrantsInstance", "s3control:CreateAccessGrantsLocation", "s3control:DeleteAccessGrant", "s3control:DeleteAccessGrantsInstance", "s3control:DeleteAccessGrantsLocation", "s3control:GetAccessGrantsInstance", "s3control:GetDataAccess", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_grants_get_data_access_ungranted_prefix_rejected.py", "service": "s3control"} {"check_id": "s3control.access-grants-location-and-resource-policy-lifecycle", "deployments": [], "key": "s3control/access-grants-location-and-resource-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3control:CreateAccessGrant", "s3control:CreateAccessGrantsInstance", "s3control:CreateAccessGrantsLocation", "s3control:DeleteAccessGrant", "s3control:DeleteAccessGrantsInstance", "s3control:DeleteAccessGrantsInstanceResourcePolicy", "s3control:DeleteAccessGrantsLocation", "s3control:GetAccessGrant", "s3control:GetAccessGrantsInstance", "s3control:GetAccessGrantsInstanceResourcePolicy", "s3control:GetAccessGrantsLocation", "s3control:PutAccessGrantsInstanceResourcePolicy", "s3control:UpdateAccessGrantsLocation", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_grants_location_and_resource_policy_lifecycle.py", "service": "s3control"} {"check_id": "s3control.access-grants-operations-require-instance-rejected", "deployments": [], "key": "s3control/access-grants-operations-require-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3control:CreateAccessGrantsInstance", "s3control:DeleteAccessGrantsInstance", "s3control:DissociateAccessGrantsIdentityCenter", "s3control:GetAccessGrantsInstance", "s3control:ListAccessGrants", "s3control:ListAccessGrantsLocations", "s3control:ListCallerAccessGrants", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_grants_operations_require_instance_rejected.py", "service": "s3control"} {"check_id": "s3control.access-point-alias-and-endpoints-survive-policy-churn", "deployments": [], "key": "s3control/access-point-alias-and-endpoints-survive-policy-churn", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:GetAccessPoint", "s3control:ListAccessPoints", "s3control:PutAccessPointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_alias_and_endpoints_survive_policy_churn.py", "service": "s3control"} {"check_id": "s3control.access-point-delete-severs-data-path-and-keeps-objects", "deployments": [], "key": "s3control/access-point-delete-severs-data-path-and-keeps-objects", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:GetAccessPoint", "s3control:ListAccessPoints"], "path": "behavioral/s3control/check_access_point_delete_severs_data_path_and_keeps_objects.py", "service": "s3control"} {"check_id": "s3control.access-point-list-scopes-to-requested-bucket", "deployments": [], "key": "s3control/access-point-list-scopes-to-requested-bucket", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:GetAccessPoint", "s3control:ListAccessPoints", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_list_scopes_to_requested_bucket.py", "service": "s3control"} {"check_id": "s3control.access-point-name-collision-rejected", "deployments": [], "key": "s3control/access-point-name-collision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:GetAccessPoint", "s3control:ListAccessPoints", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_name_collision_rejected.py", "service": "s3control"} {"check_id": "s3control.access-point-on-nonexistent-bucket-rejected", "deployments": [], "key": "s3control/access-point-on-nonexistent-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:GetAccessPoint", "s3control:ListAccessPoints", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_on_nonexistent_bucket_rejected.py", "service": "s3control"} {"check_id": "s3control.access-point-policy-status-derives-ispublic", "deployments": [], "key": "s3control/access-point-policy-status-derives-ispublic", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutPublicAccessBlock", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:GetAccessPointPolicy", "s3control:GetAccessPointPolicyStatus", "s3control:PutAccessPointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_policy_status_derives_ispublic.py", "service": "s3control"} {"check_id": "s3control.access-point-prefix-scoped-policy-denies-object-outside-prefix-rejected", "deployments": [], "key": "s3control/access-point-prefix-scoped-policy-denies-object-outside-prefix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:GetAccessPointPolicy", "s3control:PutAccessPointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_prefix_scoped_policy_denies_object_outside_prefix_rejected.py", "service": "s3control"} {"check_id": "s3control.access-point-public-policy-blocked-by-own-block-public-policy-rejected", "deployments": [], "key": "s3control/access-point-public-policy-blocked-by-own-block-public-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutPublicAccessBlock", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:GetAccessPoint", "s3control:GetAccessPointPolicy", "s3control:GetAccessPointPolicyStatus", "s3control:PutAccessPointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_public_policy_blocked_by_own_block_public_policy_rejected.py", "service": "s3control"} {"check_id": "s3control.access-point-scope-does-not-answer-for-general-purpose-access-point-rejected", "deployments": [], "key": "s3control/access-point-scope-does-not-answer-for-general-purpose-access-point-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:DeleteAccessPointScope", "s3control:GetAccessPoint", "s3control:GetAccessPointPolicy", "s3control:GetAccessPointScope", "s3control:ListAccessPoints", "s3control:ListAccessPointsForDirectoryBuckets", "s3control:PutAccessPointPolicy", "s3control:PutAccessPointScope", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_scope_does_not_answer_for_general_purpose_access_point_rejected.py", "service": "s3control"} {"check_id": "s3control.access-point-vpc-origin-denies-internet-read-rejected", "deployments": [], "key": "s3control/access-point-vpc-origin-denies-internet-read-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeVpcs", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutObject", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:GetAccessPoint", "s3control:PutAccessPointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_access_point_vpc_origin_denies_internet_read_rejected.py", "service": "s3control"} {"check_id": "s3control.account-public-access-block-blocks-public-access-point-policy-rejected", "deployments": [], "key": "s3control/account-public-access-block-blocks-public-access-point-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutPublicAccessBlock", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:DeletePublicAccessBlock", "s3control:GetAccessPoint", "s3control:GetAccessPointPolicy", "s3control:GetAccessPointPolicyStatus", "s3control:GetPublicAccessBlock", "s3control:PutAccessPointPolicy", "s3control:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_account_public_access_block_blocks_public_access_point_policy_rejected.py", "service": "s3control"} {"check_id": "s3control.account-public-access-block-blocks-public-bucket-policy-rejected", "deployments": [], "key": "s3control/account-public-access-block-blocks-public-bucket-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutPublicAccessBlock", "s3control:DeletePublicAccessBlock", "s3control:GetPublicAccessBlock", "s3control:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_account_public_access_block_blocks_public_bucket_policy_rejected.py", "service": "s3control"} {"check_id": "s3control.account-public-access-block-restrict-denies-anonymous-object-read-rejected", "deployments": [], "key": "s3control/account-public-access-block-restrict-denies-anonymous-object-read-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutObject", "s3:PutPublicAccessBlock", "s3control:DeletePublicAccessBlock", "s3control:GetPublicAccessBlock", "s3control:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_account_public_access_block_restrict_denies_anonymous_object_read_rejected.py", "service": "s3control"} {"check_id": "s3control.batch-job-completion-report-accounts-for-mixed-task-outcomes", "deployments": [], "key": "s3control/batch-job-completion-report-accounts-for-mixed-task-outcomes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:GetObjectTagging", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_batch_job_completion_report_accounts_for_mixed_task_outcomes.py", "service": "s3control"} {"check_id": "s3control.batch-job-describe-and-tagging-bogus-id-rejected", "deployments": [], "key": "s3control/batch-job-describe-and-tagging-bogus-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:GetJobTagging", "s3control:UpdateJobPriority", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_batch_job_describe_and_tagging_bogus_id_rejected.py", "service": "s3control"} {"check_id": "s3control.batch-job-lifecycle-priority-and-cancel", "deployments": [], "key": "s3control/batch-job-lifecycle-priority-and-cancel", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:ListJobs", "s3control:UpdateJobPriority", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_batch_job_lifecycle_priority_and_cancel.py", "service": "s3control"} {"check_id": "s3control.batch-job-runs-to-completion-and-tags-objects", "deployments": [], "key": "s3control/batch-job-runs-to-completion-and-tags-objects", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_batch_job_runs_to_completion_and_tags_objects.py", "service": "s3control"} {"check_id": "s3control.batch-job-tagging-lifecycle-independent-of-job", "deployments": [], "key": "s3control/batch-job-tagging-lifecycle-independent-of-job", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateJob", "s3control:DeleteJobTagging", "s3control:DescribeJob", "s3control:GetJobTagging", "s3control:PutJobTagging", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_batch_job_tagging_lifecycle_independent_of_job.py", "service": "s3control"} {"check_id": "s3control.bucket-policy-delegating-to-access-point-denies-direct-path-rejected", "deployments": [], "key": "s3control/bucket-policy-delegating-to-access-point-denies-direct-path-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutObject", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:GetAccessPoint", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_bucket_policy_delegating_to_access_point_denies_direct_path_rejected.py", "service": "s3control"} {"check_id": "s3control.directory-bucket-access-point-listing-excludes-general-purpose", "deployments": [], "key": "s3control/directory-bucket-access-point-listing-excludes-general-purpose", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:GetAccessPoint", "s3control:ListAccessPoints", "s3control:ListAccessPointsForDirectoryBuckets", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_directory_bucket_access_point_listing_excludes_general_purpose.py", "service": "s3control"} {"check_id": "s3control.multi-region-access-point-create-and-delete-are-async-operations", "deployments": [], "key": "s3control/multi-region-access-point-create-and-delete-are-async-operations", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3control:CreateMultiRegionAccessPoint", "s3control:DeleteMultiRegionAccessPoint", "s3control:DescribeMultiRegionAccessPointOperation", "s3control:GetMultiRegionAccessPoint"], "path": "behavioral/s3control/check_multi_region_access_point_create_and_delete_are_async_operations.py", "service": "s3control"} {"check_id": "s3control.multi-region-access-point-duplicate-name-create-races-rejected", "deployments": [], "key": "s3control/multi-region-access-point-duplicate-name-create-races-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3control:CreateMultiRegionAccessPoint", "s3control:DeleteMultiRegionAccessPoint", "s3control:DescribeMultiRegionAccessPointOperation", "s3control:GetMultiRegionAccessPoint", "s3control:ListMultiRegionAccessPoints"], "path": "behavioral/s3control/check_multi_region_access_point_duplicate_name_create_races_rejected.py", "service": "s3control"} {"check_id": "s3control.public-access-block-absence-is-distinct-from-all-false", "deployments": [], "key": "s3control/public-access-block-absence-is-distinct-from-all-false", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3control:DeletePublicAccessBlock", "s3control:GetPublicAccessBlock", "s3control:PutPublicAccessBlock", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_public_access_block_absence_is_distinct_from_all_false.py", "service": "s3control"} {"check_id": "s3control.s3c-access-point-policy-explicit-deny-overrides-bucket-allow-rejected", "deployments": [], "key": "s3control/s3c-access-point-policy-explicit-deny-overrides-bucket-allow-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutObject", "s3control:CreateAccessPoint", "s3control:DeleteAccessPoint", "s3control:DeleteAccessPointPolicy", "s3control:GetAccessPointPolicy", "s3control:PutAccessPointPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_s3c_access_point_policy_explicit_deny_overrides_bucket_allow_rejected.py", "service": "s3control"} {"check_id": "s3control.s3c-batch-copy-job-copies-manifest-objects-and-leaves-the-rest", "deployments": [], "key": "s3control/s3c-batch-copy-job-copies-manifest-objects-and-leaves-the-rest", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_s3c_batch_copy_job_copies_manifest_objects_and_leaves_the_rest.py", "service": "s3control"} {"check_id": "s3control.s3c-batch-generated-manifest-filter-limits-job-to-matching-objects", "deployments": [], "key": "s3control/s3c-batch-generated-manifest-filter-limits-job-to-matching-objects", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:GetObjectTagging", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutObject", "s3control:CreateJob", "s3control:DescribeJob", "s3control:UpdateJobStatus", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_s3c_batch_generated_manifest_filter_limits_job_to_matching_objects.py", "service": "s3control"} {"check_id": "s3control.storage-lens-configuration-put-replaces-whole-document", "deployments": [], "key": "s3control/storage-lens-configuration-put-replaces-whole-document", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3control:DeleteStorageLensConfiguration", "s3control:GetStorageLensConfiguration", "s3control:ListStorageLensConfigurations", "s3control:PutStorageLensConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_storage_lens_configuration_put_replaces_whole_document.py", "service": "s3control"} {"check_id": "s3control.storage-lens-configuration-roundtrip-and-tagging-independent", "deployments": [], "key": "s3control/storage-lens-configuration-roundtrip-and-tagging-independent", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3control:DeleteStorageLensConfiguration", "s3control:DeleteStorageLensConfigurationTagging", "s3control:GetStorageLensConfiguration", "s3control:GetStorageLensConfigurationTagging", "s3control:ListStorageLensConfigurations", "s3control:PutStorageLensConfiguration", "s3control:PutStorageLensConfigurationTagging", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_storage_lens_configuration_roundtrip_and_tagging_independent.py", "service": "s3control"} {"check_id": "s3control.storage-lens-group-update-and-arn-tagging-roundtrip", "deployments": [], "key": "s3control/storage-lens-group-update-and-arn-tagging-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3control:CreateStorageLensGroup", "s3control:DeleteStorageLensGroup", "s3control:GetStorageLensGroup", "s3control:ListTagsForResource", "s3control:TagResource", "s3control:UntagResource", "s3control:UpdateStorageLensGroup", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_storage_lens_group_update_and_arn_tagging_roundtrip.py", "service": "s3control"} {"check_id": "s3control.tag-resource-upserts-existing-bucket-tags", "deployments": [], "key": "s3control/tag-resource-upserts-existing-bucket-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "s3control:ListTagsForResource", "s3control:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_tag_resource_upserts_existing_bucket_tags.py", "service": "s3control"} {"check_id": "s3control.untag-resource-removes-specific-bucket-tag-keys", "deployments": [], "key": "s3control/untag-resource-removes-specific-bucket-tag-keys", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3control:ListTagsForResource", "s3control:TagResource", "s3control:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/s3control/check_untag_resource_removes_specific_bucket_tag_keys.py", "service": "s3control"} {"check_id": "s3files.access-point-lifecycle-creating-to-available-then-deleted", "deployments": [], "key": "s3files/access-point-lifecycle-creating-to-available-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateAccessPoint", "s3files:CreateFileSystem", "s3files:DeleteAccessPoint", "s3files:DeleteFileSystem", "s3files:GetAccessPoint", "s3files:GetFileSystem", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_access_point_lifecycle_creating_to_available_then_deleted.py", "service": "s3files"} {"check_id": "s3files.concurrent-synchronization-config-updates-optimistic-lock", "deployments": [], "key": "s3files/concurrent-synchronization-config-updates-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:GetSynchronizationConfiguration", "s3files:PutSynchronizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_concurrent_synchronization_config_updates_optimistic_lock.py", "service": "s3files"} {"check_id": "s3files.create-access-point-invalid-root-directory-path-rejected", "deployments": [], "key": "s3files/create-access-point-invalid-root-directory-path-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateAccessPoint", "s3files:CreateFileSystem", "s3files:DeleteAccessPoint", "s3files:DeleteFileSystem", "s3files:GetAccessPoint", "s3files:GetFileSystem", "s3files:ListAccessPoints", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_create_access_point_invalid_root_directory_path_rejected.py", "service": "s3files"} {"check_id": "s3files.create-access-point-unknown-file-system-not-found", "deployments": [], "key": "s3files/create-access-point-unknown-file-system-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateAccessPoint", "s3files:CreateFileSystem", "s3files:DeleteAccessPoint", "s3files:DeleteFileSystem", "s3files:GetAccessPoint", "s3files:GetFileSystem", "s3files:ListAccessPoints", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_create_access_point_unknown_file_system_not_found.py", "service": "s3files"} {"check_id": "s3files.create-file-system-token-reuse-different-params-rejected", "deployments": [], "key": "s3files/create-file-system-token-reuse-different-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:ListFileSystems", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_create_file_system_token_reuse_different_params_rejected.py", "service": "s3files"} {"check_id": "s3files.create-file-system-unknown-bucket-not-found", "deployments": [], "key": "s3files/create-file-system-unknown-bucket-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:ListFileSystems", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_create_file_system_unknown_bucket_not_found.py", "service": "s3files"} {"check_id": "s3files.create-file-system-unknown-role-not-found", "deployments": [], "key": "s3files/create-file-system-unknown-role-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_create_file_system_unknown_role_not_found.py", "service": "s3files"} {"check_id": "s3files.create-mount-target-duplicate-az-conflict-rejected", "deployments": [], "key": "s3files/create-mount-target-duplicate-az-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:CreateMountTarget", "s3files:DeleteFileSystem", "s3files:DeleteMountTarget", "s3files:GetFileSystem", "s3files:GetMountTarget", "s3files:ListMountTargets", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_create_mount_target_duplicate_az_conflict_rejected.py", "service": "s3files"} {"check_id": "s3files.delete-file-system-transitions-to-deleted", "deployments": [], "key": "s3files/delete-file-system-transitions-to-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateAccessPoint", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_delete_file_system_transitions_to_deleted.py", "service": "s3files"} {"check_id": "s3files.delete-file-system-with-mount-target-conflict-rejected", "deployments": [], "key": "s3files/delete-file-system-with-mount-target-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:CreateMountTarget", "s3files:DeleteFileSystem", "s3files:DeleteMountTarget", "s3files:GetFileSystem", "s3files:GetMountTarget", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_delete_file_system_with_mount_target_conflict_rejected.py", "service": "s3files"} {"check_id": "s3files.delete-mount-target-frees-availability-zone-for-recreation", "deployments": [], "key": "s3files/delete-mount-target-frees-availability-zone-for-recreation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:CreateMountTarget", "s3files:DeleteFileSystem", "s3files:DeleteMountTarget", "s3files:GetFileSystem", "s3files:GetMountTarget", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_delete_mount_target_frees_availability_zone_for_recreation.py", "service": "s3files"} {"check_id": "s3files.file-system-lifecycle-creating-to-available", "deployments": [], "key": "s3files/file-system-lifecycle-creating-to-available", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_file_system_lifecycle_creating_to_available.py", "service": "s3files"} {"check_id": "s3files.file-system-policy-round-trip", "deployments": [], "key": "s3files/file-system-policy-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:DeleteFileSystemPolicy", "s3files:GetFileSystem", "s3files:GetFileSystemPolicy", "s3files:PutFileSystemPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_file_system_policy_round_trip.py", "service": "s3files"} {"check_id": "s3files.get-file-system-policy-not-found-when-absent", "deployments": [], "key": "s3files/get-file-system-policy-not-found-when-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:DeleteFileSystemPolicy", "s3files:GetFileSystem", "s3files:GetFileSystemPolicy", "s3files:PutFileSystemPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_get_file_system_policy_not_found_when_absent.py", "service": "s3files"} {"check_id": "s3files.list-access-points-filters-by-file-system", "deployments": [], "key": "s3files/list-access-points-filters-by-file-system", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateAccessPoint", "s3files:CreateFileSystem", "s3files:DeleteAccessPoint", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:ListAccessPoints", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_list_access_points_filters_by_file_system.py", "service": "s3files"} {"check_id": "s3files.list-file-systems-filters-by-bucket", "deployments": [], "key": "s3files/list-file-systems-filters-by-bucket", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:ListFileSystems", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_list_file_systems_filters_by_bucket.py", "service": "s3files"} {"check_id": "s3files.list-mount-targets-filters-by-file-system", "deployments": [], "key": "s3files/list-mount-targets-filters-by-file-system", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:CreateMountTarget", "s3files:DeleteFileSystem", "s3files:DeleteMountTarget", "s3files:GetFileSystem", "s3files:GetMountTarget", "s3files:ListMountTargets", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_list_mount_targets_filters_by_file_system.py", "service": "s3files"} {"check_id": "s3files.mount-target-lifecycle-creating-to-available-then-deleted", "deployments": [], "key": "s3files/mount-target-lifecycle-creating-to-available-then-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:CreateMountTarget", "s3files:DeleteFileSystem", "s3files:DeleteMountTarget", "s3files:GetFileSystem", "s3files:GetMountTarget", "s3files:UpdateMountTarget", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_mount_target_lifecycle_creating_to_available_then_deleted.py", "service": "s3files"} {"check_id": "s3files.put-synchronization-configuration-multiple-expiration-rules-rejected", "deployments": [], "key": "s3files/put-synchronization-configuration-multiple-expiration-rules-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:GetSynchronizationConfiguration", "s3files:PutSynchronizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_put_synchronization_configuration_multiple_expiration_rules_rejected.py", "service": "s3files"} {"check_id": "s3files.put-synchronization-configuration-stale-version-conflict-rejected", "deployments": [], "key": "s3files/put-synchronization-configuration-stale-version-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:GetSynchronizationConfiguration", "s3files:PutSynchronizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_put_synchronization_configuration_stale_version_conflict_rejected.py", "service": "s3files"} {"check_id": "s3files.synchronization-configuration-round-trip", "deployments": [], "key": "s3files/synchronization-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:GetSynchronizationConfiguration", "s3files:PutSynchronizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_synchronization_configuration_round_trip.py", "service": "s3files"} {"check_id": "s3files.tag-list-untag-round-trip", "deployments": [], "key": "s3files/tag-list-untag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:DeleteFileSystem", "s3files:GetFileSystem", "s3files:ListTagsForResource", "s3files:TagResource", "s3files:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_tag_list_untag_round_trip.py", "service": "s3files"} {"check_id": "s3files.update-mount-target-security-groups-persisted", "deployments": [], "key": "s3files/update-mount-target-security-groups-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3files:CreateFileSystem", "s3files:CreateMountTarget", "s3files:DeleteFileSystem", "s3files:DeleteMountTarget", "s3files:GetFileSystem", "s3files:GetMountTarget", "s3files:UpdateMountTarget", "sts:GetCallerIdentity"], "path": "behavioral/s3files/check_update_mount_target_security_groups_persisted.py", "service": "s3files"} {"check_id": "s3outposts.create-endpoint-customer-owned-ip-pool-without-access-type-rejected", "deployments": [], "key": "s3outposts/create-endpoint-customer-owned-ip-pool-without-access-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:CreateEndpoint", "s3outposts:ListEndpoints"], "path": "behavioral/s3outposts/check_create_endpoint_customer_owned_ip_pool_without_access_type_rejected.py", "service": "s3outposts"} {"check_id": "s3outposts.create-endpoint-invalid-outpost-id-format-validation-error", "deployments": [], "key": "s3outposts/create-endpoint-invalid-outpost-id-format-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:CreateEndpoint"], "path": "behavioral/s3outposts/check_create_endpoint_invalid_outpost_id_format_validation_error.py", "service": "s3outposts"} {"check_id": "s3outposts.create-endpoint-invalid-security-group-id-format-validation-error", "deployments": [], "key": "s3outposts/create-endpoint-invalid-security-group-id-format-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:CreateEndpoint"], "path": "behavioral/s3outposts/check_create_endpoint_invalid_security_group_id_format_validation_error.py", "service": "s3outposts"} {"check_id": "s3outposts.create-endpoint-invalid-subnet-id-format-validation-error", "deployments": [], "key": "s3outposts/create-endpoint-invalid-subnet-id-format-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:CreateEndpoint"], "path": "behavioral/s3outposts/check_create_endpoint_invalid_subnet_id_format_validation_error.py", "service": "s3outposts"} {"check_id": "s3outposts.create-endpoint-nonexistent-outpost-returns-not-found", "deployments": [], "key": "s3outposts/create-endpoint-nonexistent-outpost-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:CreateEndpoint", "s3outposts:ListEndpoints"], "path": "behavioral/s3outposts/check_create_endpoint_nonexistent_outpost_returns_not_found.py", "service": "s3outposts"} {"check_id": "s3outposts.delete-endpoint-invalid-endpoint-id-format-validation-error", "deployments": [], "key": "s3outposts/delete-endpoint-invalid-endpoint-id-format-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:DeleteEndpoint"], "path": "behavioral/s3outposts/check_delete_endpoint_invalid_endpoint_id_format_validation_error.py", "service": "s3outposts"} {"check_id": "s3outposts.delete-endpoint-nonexistent-endpoint-returns-not-found", "deployments": [], "key": "s3outposts/delete-endpoint-nonexistent-endpoint-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:DeleteEndpoint"], "path": "behavioral/s3outposts/check_delete_endpoint_nonexistent_endpoint_returns_not_found.py", "service": "s3outposts"} {"check_id": "s3outposts.list-endpoints-invalid-next-token-format-validation-error", "deployments": [], "key": "s3outposts/list-endpoints-invalid-next-token-format-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:ListEndpoints"], "path": "behavioral/s3outposts/check_list_endpoints_invalid_next_token_format_validation_error.py", "service": "s3outposts"} {"check_id": "s3outposts.list-endpoints-maxresults-over-limit-rejected", "deployments": [], "key": "s3outposts/list-endpoints-maxresults-over-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:ListEndpoints"], "path": "behavioral/s3outposts/check_list_endpoints_maxresults_over_limit_rejected.py", "service": "s3outposts"} {"check_id": "s3outposts.list-endpoints-pagination-token-absent", "deployments": [], "key": "s3outposts/list-endpoints-pagination-token-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3outposts:ListEndpoints"], "path": "behavioral/s3outposts/check_list_endpoints_pagination_token_absent.py", "service": "s3outposts"} {"check_id": "s3outposts.list-endpoints-response-shape", "deployments": [], "key": "s3outposts/list-endpoints-response-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3outposts:ListEndpoints"], "path": "behavioral/s3outposts/check_list_endpoints_response_shape.py", "service": "s3outposts"} {"check_id": "s3outposts.list-outposts-with-s3-response-shape", "deployments": [], "key": "s3outposts/list-outposts-with-s3-response-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3outposts:ListOutpostsWithS3"], "path": "behavioral/s3outposts/check_list_outposts_with_s3_response_shape.py", "service": "s3outposts"} {"check_id": "s3outposts.list-shared-endpoints-invalid-outpost-id-format-validation-error", "deployments": [], "key": "s3outposts/list-shared-endpoints-invalid-outpost-id-format-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["s3outposts:ListSharedEndpoints"], "path": "behavioral/s3outposts/check_list_shared_endpoints_invalid_outpost_id_format_validation_error.py", "service": "s3outposts"} {"check_id": "s3tables.concurrent-put-table-bucket-encryption-conflict-detected", "deployments": [], "key": "s3tables/concurrent-put-table-bucket-encryption-conflict-detected", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_concurrent_put_table_bucket_encryption_conflict_detected.py", "service": "s3tables"} {"check_id": "s3tables.concurrent-put-table-bucket-metrics-configuration-conflict", "deployments": [], "key": "s3tables/concurrent-put-table-bucket-metrics-configuration-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_concurrent_put_table_bucket_metrics_configuration_conflict.py", "service": "s3tables"} {"check_id": "s3tables.concurrent-put-table-bucket-metrics-configuration-last-writer-wins", "deployments": [], "key": "s3tables/concurrent-put-table-bucket-metrics-configuration-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_concurrent_put_table_bucket_metrics_configuration_last_writer_wins.py", "service": "s3tables"} {"check_id": "s3tables.concurrent-put-table-bucket-replication-conflict", "deployments": [], "key": "s3tables/concurrent-put-table-bucket-replication-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_concurrent_put_table_bucket_replication_conflict.py", "service": "s3tables"} {"check_id": "s3tables.concurrent-put-table-replication-conflict", "deployments": [], "key": "s3tables/concurrent-put-table-replication-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_concurrent_put_table_replication_conflict.py", "service": "s3tables"} {"check_id": "s3tables.concurrent-put-table-replication-conflict-detected", "deployments": [], "key": "s3tables/concurrent-put-table-replication-conflict-detected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_concurrent_put_table_replication_conflict_detected.py", "service": "s3tables"} {"check_id": "s3tables.concurrent-tag-untag-resource-consistent", "deployments": [], "key": "s3tables/concurrent-tag-untag-resource-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource", "s3tables:UntagResource"], "path": "behavioral/s3tables/check_concurrent_tag_untag_resource_consistent.py", "service": "s3tables"} {"check_id": "s3tables.create-table-in-nonexistent-namespace-rejected", "deployments": [], "key": "s3tables/create-table-in-nonexistent-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:ListTables"], "path": "behavioral/s3tables/check_create_table_in_nonexistent_namespace_rejected.py", "service": "s3tables"} {"check_id": "s3tables.create-table-invalid-format-rejected", "deployments": [], "key": "s3tables/create-table-invalid-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable"], "path": "behavioral/s3tables/check_create_table_invalid_format_rejected.py", "service": "s3tables"} {"check_id": "s3tables.cross-account-get-table-bucket-encryption-denied", "deployments": [], "key": "s3tables/cross-account-get-table-bucket-encryption-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_cross_account_get_table_bucket_encryption_denied.py", "service": "s3tables"} {"check_id": "s3tables.default-table-bucket-encryption-applied-without-explicit-put", "deployments": [], "key": "s3tables/default-table-bucket-encryption-applied-without-explicit-put", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption"], "path": "behavioral/s3tables/check_default_table_bucket_encryption_applied_without_explicit_put.py", "service": "s3tables"} {"check_id": "s3tables.delete-namespace-with-tables-rejected", "deployments": [], "key": "s3tables/delete-namespace-with-tables-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetNamespace", "s3tables:GetTable"], "path": "behavioral/s3tables/check_delete_namespace_with_tables_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-encryption-nonexistent-conflict", "deployments": [], "key": "s3tables/delete-table-bucket-encryption-nonexistent-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_delete_table_bucket_encryption_nonexistent_conflict.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-encryption-then-get-reverts-to-aes256-default", "deployments": [], "key": "s3tables/delete-table-bucket-encryption-then-get-reverts-to-aes256-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_delete_table_bucket_encryption_then_get_reverts_to_aes256_default.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-encryption-with-active-tables-succeeds", "deployments": [], "key": "s3tables/delete-table-bucket-encryption-with-active-tables-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:GetTableEncryption", "s3tables:PutTableBucketEncryption", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_delete_table_bucket_encryption_with_active_tables_succeeds.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-encryption-without-config-rejected", "deployments": [], "key": "s3tables/delete-table-bucket-encryption-without-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_delete_table_bucket_encryption_without_config_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-metrics-configuration-conflict-allowed", "deployments": [], "key": "s3tables/delete-table-bucket-metrics-configuration-conflict-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_delete_table_bucket_metrics_configuration_conflict_allowed.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-metrics-configuration-then-get-rejected", "deployments": [], "key": "s3tables/delete-table-bucket-metrics-configuration-then-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_delete_table_bucket_metrics_configuration_then_get_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-metrics-configuration-when-absent-rejected", "deployments": [], "key": "s3tables/delete-table-bucket-metrics-configuration-when-absent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_delete_table_bucket_metrics_configuration_when_absent_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-metrics-configuration-without-put-rejected", "deployments": [], "key": "s3tables/delete-table-bucket-metrics-configuration-without-put-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_delete_table_bucket_metrics_configuration_without_put_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-replication-then-get-rejected", "deployments": [], "key": "s3tables/delete-table-bucket-replication-then-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_delete_table_bucket_replication_then_get_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-bucket-replication-without-config-rejected", "deployments": [], "key": "s3tables/delete-table-bucket-replication-without-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucket", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_delete_table_bucket_replication_without_config_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-replication-stale-version-token-rejected", "deployments": [], "key": "s3tables/delete-table-replication-stale-version-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_delete_table_replication_stale_version_token_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-replication-then-get-rejected", "deployments": [], "key": "s3tables/delete-table-replication-then-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_delete_table_replication_then_get_rejected.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-replication-without-permission-denied", "deployments": [], "key": "s3tables/delete-table-replication-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication", "sts:AssumeRole"], "path": "behavioral/s3tables/check_delete_table_replication_without_permission_denied.py", "service": "s3tables"} {"check_id": "s3tables.delete-table-stale-version-token-rejected", "deployments": [], "key": "s3tables/delete-table-stale-version-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable"], "path": "behavioral/s3tables/check_delete_table_stale_version_token_rejected.py", "service": "s3tables"} {"check_id": "s3tables.deploy-table-bucket-cfn-enforces-policy", "deployments": [], "key": "s3tables/deploy-table-bucket-cfn-enforces-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucketPolicy", "s3tables:GetTable", "s3tables:GetTableBucket", "s3tables:GetTableBucketPolicy", "s3tables:PutTableBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_deploy_table_bucket_cfn_enforces_policy.py", "service": "s3tables"} {"check_id": "s3tables.deploy-table-bucket-then-create-namespace-and-table", "deployments": [], "key": "s3tables/deploy-table-bucket-then-create-namespace-and-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:GetTable", "s3tables:GetTableBucket"], "path": "behavioral/s3tables/check_deploy_table_bucket_then_create_namespace_and_table.py", "service": "s3tables"} {"check_id": "s3tables.deploy-table-bucket-via-cloudformation-behaves", "deployments": [], "key": "s3tables/deploy-table-bucket-via-cloudformation-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3tables:CreateTable", "s3tables:DeleteTable", "s3tables:GetTable"], "path": "behavioral/s3tables/check_deploy_table_bucket_via_cloudformation_behaves.py", "service": "s3tables"} {"check_id": "s3tables.deploy-table-bucket-via-cloudformation-then-behaves", "deployments": [], "key": "s3tables/deploy-table-bucket-via-cloudformation-then-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:GetTableBucket", "s3tables:ListTables", "s3tables:TagResource"], "path": "behavioral/s3tables/check_deploy_table_bucket_via_cloudformation_then_behaves.py", "service": "s3tables"} {"check_id": "s3tables.deploy-table-via-cloudformation-then-policy-enforced", "deployments": [], "key": "s3tables/deploy-table-via-cloudformation-then-policy-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3tables:DeleteTablePolicy", "s3tables:GetTable", "s3tables:GetTablePolicy", "s3tables:ListTables", "s3tables:PutTablePolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_deploy_table_via_cloudformation_then_policy_enforced.py", "service": "s3tables"} {"check_id": "s3tables.e2e-bucket-namespace-table-replicate-tag-teardown", "deployments": [], "key": "s3tables/e2e-bucket-namespace-table-replicate-tag-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetNamespace", "s3tables:GetTable", "s3tables:GetTableBucket", "s3tables:GetTableReplication", "s3tables:GetTableReplicationStatus", "s3tables:ListNamespaces", "s3tables:ListTables", "s3tables:ListTagsForResource", "s3tables:PutTableReplication", "s3tables:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_e2e_bucket_namespace_table_replicate_tag_teardown.py", "service": "s3tables"} {"check_id": "s3tables.e2e-table-bucket-replication-and-tagging-flow", "deployments": [], "key": "s3tables/e2e-table-bucket-replication-and-tagging-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:GetTableBucketReplication", "s3tables:GetTableReplicationStatus", "s3tables:ListNamespaces", "s3tables:ListTables", "s3tables:ListTagsForResource", "s3tables:PutTableBucketEncryption", "s3tables:PutTableBucketReplication", "s3tables:TagResource"], "path": "behavioral/s3tables/check_e2e_table_bucket_replication_and_tagging_flow.py", "service": "s3tables"} {"check_id": "s3tables.e2e-table-bucket-replication-lifecycle", "deployments": [], "key": "s3tables/e2e-table-bucket-replication-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:DeleteTableReplication", "s3tables:GetTable", "s3tables:GetTableReplication", "s3tables:GetTableReplicationStatus", "s3tables:PutTableBucketReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_e2e_table_bucket_replication_lifecycle.py", "service": "s3tables"} {"check_id": "s3tables.e2e-table-lifecycle-with-encryption-and-replication", "deployments": [], "key": "s3tables/e2e-table-lifecycle-with-encryption-and-replication", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:DeleteTableBucketReplication", "s3tables:GetNamespace", "s3tables:GetTable", "s3tables:GetTableBucket", "s3tables:GetTableBucketReplication", "s3tables:GetTableReplicationStatus", "s3tables:PutTableBucketEncryption", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_e2e_table_lifecycle_with_encryption_and_replication.py", "service": "s3tables"} {"check_id": "s3tables.e2e-table-record-expiration-flow", "deployments": [], "key": "s3tables/e2e-table-record-expiration-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationJobStatus", "s3tables:PutTableRecordExpirationConfiguration", "s3tables:TagResource"], "path": "behavioral/s3tables/check_e2e_table_record_expiration_flow.py", "service": "s3tables"} {"check_id": "s3tables.e2e-tagging-lifecycle-across-resources", "deployments": [], "key": "s3tables/e2e-tagging-lifecycle-across-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource", "s3tables:UntagResource"], "path": "behavioral/s3tables/check_e2e_tagging_lifecycle_across_resources.py", "service": "s3tables"} {"check_id": "s3tables.encryption-kms-key-arn-round-trip", "deployments": [], "key": "s3tables/encryption-kms-key-arn-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_encryption_kms_key_arn_round_trip.py", "service": "s3tables"} {"check_id": "s3tables.forbidden-cross-account-get-table-encryption-denied", "deployments": [], "key": "s3tables/forbidden-cross-account-get-table-encryption-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableEncryption", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_forbidden_cross_account_get_table_encryption_denied.py", "service": "s3tables"} {"check_id": "s3tables.get-table-bucket-encryption-unset-rejected", "deployments": [], "key": "s3tables/get-table-bucket-encryption-unset-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption"], "path": "behavioral/s3tables/check_get_table_bucket_encryption_unset_rejected.py", "service": "s3tables"} {"check_id": "s3tables.get-table-bucket-encryption-without-permission-denied", "deployments": [], "key": "s3tables/get-table-bucket-encryption-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_get_table_bucket_encryption_without_permission_denied.py", "service": "s3tables"} {"check_id": "s3tables.get-table-bucket-metrics-configuration-not-configured-rejected", "deployments": [], "key": "s3tables/get-table-bucket-metrics-configuration-not-configured-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_get_table_bucket_metrics_configuration_not_configured_rejected.py", "service": "s3tables"} {"check_id": "s3tables.get-table-bucket-metrics-configuration-without-put-rejected", "deployments": [], "key": "s3tables/get-table-bucket-metrics-configuration-without-put-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_get_table_bucket_metrics_configuration_without_put_rejected.py", "service": "s3tables"} {"check_id": "s3tables.get-table-bucket-replication-on-unreplicated-bucket-rejected", "deployments": [], "key": "s3tables/get-table-bucket-replication-on-unreplicated-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_get_table_bucket_replication_on_unreplicated_bucket_rejected.py", "service": "s3tables"} {"check_id": "s3tables.get-table-maintenance-job-status-after-config", "deployments": [], "key": "s3tables/get-table-maintenance-job-status-after-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableMaintenanceConfiguration", "s3tables:GetTableMaintenanceJobStatus", "s3tables:PutTableMaintenanceConfiguration"], "path": "behavioral/s3tables/check_get_table_maintenance_job_status_after_config.py", "service": "s3tables"} {"check_id": "s3tables.get-table-record-expiration-job-status-after-put", "deployments": [], "key": "s3tables/get-table-record-expiration-job-status-after-put", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationJobStatus", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_get_table_record_expiration_job_status_after_put.py", "service": "s3tables"} {"check_id": "s3tables.get-table-replication-status-reflects-enabled-replication", "deployments": [], "key": "s3tables/get-table-replication-status-reflects-enabled-replication", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableReplicationStatus", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_get_table_replication_status_reflects_enabled_replication.py", "service": "s3tables"} {"check_id": "s3tables.metrics-configuration-disabled-by-default", "deployments": [], "key": "s3tables/metrics-configuration-disabled-by-default", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_metrics_configuration_disabled_by_default.py", "service": "s3tables"} {"check_id": "s3tables.metrics-configuration-put-get-delete", "deployments": [], "key": "s3tables/metrics-configuration-put-get-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_metrics_configuration_put_get_delete.py", "service": "s3tables"} {"check_id": "s3tables.put-and-get-table-bucket-encryption", "deployments": [], "key": "s3tables/put-and-get-table-bucket-encryption", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_put_and_get_table_bucket_encryption.py", "service": "s3tables"} {"check_id": "s3tables.put-and-get-table-bucket-metrics-configuration", "deployments": [], "key": "s3tables/put-and-get-table-bucket-metrics-configuration", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_put_and_get_table_bucket_metrics_configuration.py", "service": "s3tables"} {"check_id": "s3tables.put-and-get-table-bucket-metrics-configuration-reflects-settings", "deployments": [], "key": "s3tables/put-and-get-table-bucket-metrics-configuration-reflects-settings", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_put_and_get_table_bucket_metrics_configuration_reflects_settings.py", "service": "s3tables"} {"check_id": "s3tables.put-and-get-table-bucket-replication", "deployments": [], "key": "s3tables/put-and-get-table-bucket-replication", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_put_and_get_table_bucket_replication.py", "service": "s3tables"} {"check_id": "s3tables.put-and-get-table-bucket-storage-class", "deployments": [], "key": "s3tables/put-and-get-table-bucket-storage-class", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketStorageClass", "s3tables:PutTableBucketStorageClass"], "path": "behavioral/s3tables/check_put_and_get_table_bucket_storage_class.py", "service": "s3tables"} {"check_id": "s3tables.put-and-get-table-replication", "deployments": [], "key": "s3tables/put-and-get-table-replication", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_put_and_get_table_replication.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-encryption-invalid-algorithm-rejected", "deployments": [], "key": "s3tables/put-table-bucket-encryption-invalid-algorithm-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_put_table_bucket_encryption_invalid_algorithm_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-encryption-invalid-kms-key-rejected", "deployments": [], "key": "s3tables/put-table-bucket-encryption-invalid-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_put_table_bucket_encryption_invalid_kms_key_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-encryption-kms-missing-key-rejected", "deployments": [], "key": "s3tables/put-table-bucket-encryption-kms-missing-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_put_table_bucket_encryption_kms_missing_key_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-encryption-lifecycle", "deployments": [], "key": "s3tables/put-table-bucket-encryption-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_put_table_bucket_encryption_lifecycle.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-encryption-then-delete-then-get-reverts-to-default", "deployments": [], "key": "s3tables/put-table-bucket-encryption-then-delete-then-get-reverts-to-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketEncryption", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_put_table_bucket_encryption_then_delete_then_get_reverts_to_default.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-encryption-with-unsupported-kms-key-rejected", "deployments": [], "key": "s3tables/put-table-bucket-encryption-with-unsupported-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_put_table_bucket_encryption_with_unsupported_kms_key_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-encryption-without-permission-denied", "deployments": [], "key": "s3tables/put-table-bucket-encryption-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:ListTableBuckets", "s3tables:PutTableBucketEncryption", "sts:AssumeRole"], "path": "behavioral/s3tables/check_put_table_bucket_encryption_without_permission_denied.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-replication-concurrent-version-token-conflict", "deployments": [], "key": "s3tables/put-table-bucket-replication-concurrent-version-token-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_put_table_bucket_replication_concurrent_version_token_conflict.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-replication-conflicting-concurrent-updates", "deployments": [], "key": "s3tables/put-table-bucket-replication-conflicting-concurrent-updates", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_put_table_bucket_replication_conflicting_concurrent_updates.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-replication-conflicting-state-rejected", "deployments": [], "key": "s3tables/put-table-bucket-replication-conflicting-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_put_table_bucket_replication_conflicting_state_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-replication-lifecycle", "deployments": [], "key": "s3tables/put-table-bucket-replication-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_put_table_bucket_replication_lifecycle.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-replication-malformed-config-rejected", "deployments": [], "key": "s3tables/put-table-bucket-replication-malformed-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_put_table_bucket_replication_malformed_config_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-replication-then-delete-then-get-rejected", "deployments": [], "key": "s3tables/put-table-bucket-replication-then-delete-then-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketReplication", "s3tables:GetTableBucketReplication", "s3tables:PutTableBucketReplication"], "path": "behavioral/s3tables/check_put_table_bucket_replication_then_delete_then_get_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-storage-class-conflicting-active-tables-blocked", "deployments": [], "key": "s3tables/put-table-bucket-storage-class-conflicting-active-tables-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketStorageClass", "s3tables:PutTableBucketStorageClass"], "path": "behavioral/s3tables/check_put_table_bucket_storage_class_conflicting_active_tables_blocked.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-storage-class-invalid-value-rejected", "deployments": [], "key": "s3tables/put-table-bucket-storage-class-invalid-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketStorageClass", "s3tables:PutTableBucketStorageClass"], "path": "behavioral/s3tables/check_put_table_bucket_storage_class_invalid_value_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-bucket-storage-class-then-get-reflects-change", "deployments": [], "key": "s3tables/put-table-bucket-storage-class-then-get-reflects-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketStorageClass", "s3tables:PutTableBucketStorageClass"], "path": "behavioral/s3tables/check_put_table_bucket_storage_class_then_get_reflects_change.py", "service": "s3tables"} {"check_id": "s3tables.put-table-record-expiration-configuration-out-of-range-rejected", "deployments": [], "key": "s3tables/put-table-record-expiration-configuration-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_put_table_record_expiration_configuration_out_of_range_rejected.py", "service": "s3tables"} {"check_id": "s3tables.put-table-record-expiration-configuration-rejected-for-customer-table", "deployments": [], "key": "s3tables/put-table-record-expiration-configuration-rejected-for-customer-table", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_put_table_record_expiration_configuration_rejected_for_customer_table.py", "service": "s3tables"} {"check_id": "s3tables.put-table-replication-conflict-on-already-replicating-table", "deployments": [], "key": "s3tables/put-table-replication-conflict-on-already-replicating-table", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_put_table_replication_conflict_on_already_replicating_table.py", "service": "s3tables"} {"check_id": "s3tables.put-table-replication-cross-account-without-permission-denied", "deployments": [], "key": "s3tables/put-table-replication-cross-account-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:GetTableReplicationStatus", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_put_table_replication_cross_account_without_permission_denied.py", "service": "s3tables"} {"check_id": "s3tables.put-table-replication-lifecycle", "deployments": [], "key": "s3tables/put-table-replication-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_put_table_replication_lifecycle.py", "service": "s3tables"} {"check_id": "s3tables.put-table-replication-then-delete-then-get-rejected", "deployments": [], "key": "s3tables/put-table-replication-then-delete-then-get-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_put_table_replication_then_delete_then_get_rejected.py", "service": "s3tables"} {"check_id": "s3tables.record-expiration-configuration-rejected-for-standard-table", "deployments": [], "key": "s3tables/record-expiration-configuration-rejected-for-standard-table", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_record_expiration_configuration_rejected_for_standard_table.py", "service": "s3tables"} {"check_id": "s3tables.record-expiration-days-precision-preserved", "deployments": [], "key": "s3tables/record-expiration-days-precision-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_record_expiration_days_precision_preserved.py", "service": "s3tables"} {"check_id": "s3tables.record-expiration-invalid-days-rejected", "deployments": [], "key": "s3tables/record-expiration-invalid-days-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_record_expiration_invalid_days_rejected.py", "service": "s3tables"} {"check_id": "s3tables.record-expiration-job-status-transitions", "deployments": [], "key": "s3tables/record-expiration-job-status-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:GetTableRecordExpirationJobStatus", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_record_expiration_job_status_transitions.py", "service": "s3tables"} {"check_id": "s3tables.replication-status-reflects-propagation", "deployments": [], "key": "s3tables/replication-status-reflects-propagation", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableReplication", "s3tables:GetTableReplicationStatus", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_replication_status_reflects_propagation.py", "service": "s3tables"} {"check_id": "s3tables.server-side-bucket-encryption-inherited-by-table", "deployments": [], "key": "s3tables/server-side-bucket-encryption-inherited-by-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableEncryption", "s3tables:PutTableBucketEncryption"], "path": "behavioral/s3tables/check_server_side_bucket_encryption_inherited_by_table.py", "service": "s3tables"} {"check_id": "s3tables.server-side-storage-class-inherited-by-table", "deployments": [], "key": "s3tables/server-side-storage-class-inherited-by-table", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketStorageClass", "s3tables:GetTableStorageClass", "s3tables:PutTableBucketStorageClass"], "path": "behavioral/s3tables/check_server_side_storage_class_inherited_by_table.py", "service": "s3tables"} {"check_id": "s3tables.table-bucket-encryption-kms-key-arn-round-trip", "deployments": [], "key": "s3tables/table-bucket-encryption-kms-key-arn-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:PutTableBucketEncryption", "sts:GetCallerIdentity"], "path": "behavioral/s3tables/check_table_bucket_encryption_kms_key_arn_round_trip.py", "service": "s3tables"} {"check_id": "s3tables.table-bucket-metrics-configuration-toggle-server-enforced", "deployments": [], "key": "s3tables/table-bucket-metrics-configuration-toggle-server-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_table_bucket_metrics_configuration_toggle_server_enforced.py", "service": "s3tables"} {"check_id": "s3tables.table-bucket-tags-unicode-round-trip", "deployments": [], "key": "s3tables/table-bucket-tags-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource"], "path": "behavioral/s3tables/check_table_bucket_tags_unicode_round_trip.py", "service": "s3tables"} {"check_id": "s3tables.table-inherits-bucket-storage-class", "deployments": [], "key": "s3tables/table-inherits-bucket-storage-class", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketStorageClass", "s3tables:GetTableStorageClass", "s3tables:PutTableBucketStorageClass"], "path": "behavioral/s3tables/check_table_inherits_bucket_storage_class.py", "service": "s3tables"} {"check_id": "s3tables.table-inherits-bucket-storage-class-by-default", "deployments": [], "key": "s3tables/table-inherits-bucket-storage-class-by-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableBucketStorageClass", "s3tables:GetTableStorageClass", "s3tables:PutTableBucketStorageClass"], "path": "behavioral/s3tables/check_table_inherits_bucket_storage_class_by_default.py", "service": "s3tables"} {"check_id": "s3tables.table-maintenance-job-status-progresses-to-complete", "deployments": [], "key": "s3tables/table-maintenance-job-status-progresses-to-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableMaintenanceJobStatus", "s3tables:PutTableMaintenanceConfiguration"], "path": "behavioral/s3tables/check_table_maintenance_job_status_progresses_to_complete.py", "service": "s3tables"} {"check_id": "s3tables.table-maintenance-job-status-reflects-execution", "deployments": [], "key": "s3tables/table-maintenance-job-status-reflects-execution", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableMaintenanceConfiguration", "s3tables:GetTableMaintenanceJobStatus", "s3tables:PutTableMaintenanceConfiguration"], "path": "behavioral/s3tables/check_table_maintenance_job_status_reflects_execution.py", "service": "s3tables"} {"check_id": "s3tables.table-record-expiration-configuration-round-trip", "deployments": [], "key": "s3tables/table-record-expiration-configuration-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:PutTableRecordExpirationConfiguration", "s3tables:TagResource"], "path": "behavioral/s3tables/check_table_record_expiration_configuration_round_trip.py", "service": "s3tables"} {"check_id": "s3tables.table-record-expiration-invalid-days-rejected", "deployments": [], "key": "s3tables/table-record-expiration-invalid-days-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_table_record_expiration_invalid_days_rejected.py", "service": "s3tables"} {"check_id": "s3tables.table-record-expiration-job-status-progresses", "deployments": [], "key": "s3tables/table-record-expiration-job-status-progresses", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableRecordExpirationJobStatus", "s3tables:PutTableMaintenanceConfiguration", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_table_record_expiration_job_status_progresses.py", "service": "s3tables"} {"check_id": "s3tables.table-record-expiration-job-status-transitions", "deployments": [], "key": "s3tables/table-record-expiration-job-status-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:GetTableRecordExpirationJobStatus", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_table_record_expiration_job_status_transitions.py", "service": "s3tables"} {"check_id": "s3tables.table-record-expiration-rejected-for-user-created-table", "deployments": [], "key": "s3tables/table-record-expiration-rejected-for-user-created-table", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTable", "s3tables:GetTableRecordExpirationConfiguration", "s3tables:PutTableRecordExpirationConfiguration"], "path": "behavioral/s3tables/check_table_record_expiration_rejected_for_user_created_table.py", "service": "s3tables"} {"check_id": "s3tables.table-replication-status-reflects-pending-then-complete", "deployments": [], "key": "s3tables/table-replication-status-reflects-pending-then-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:DeleteTableReplication", "s3tables:GetTableReplication", "s3tables:GetTableReplicationStatus", "s3tables:ListNamespaces", "s3tables:ListTables", "s3tables:PutTableReplication"], "path": "behavioral/s3tables/check_table_replication_status_reflects_pending_then_complete.py", "service": "s3tables"} {"check_id": "s3tables.table-storage-class-inherits-bucket-storage-class", "deployments": [], "key": "s3tables/table-storage-class-inherits-bucket-storage-class", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:GetTableStorageClass", "s3tables:PutTableBucketStorageClass"], "path": "behavioral/s3tables/check_table_storage_class_inherits_bucket_storage_class.py", "service": "s3tables"} {"check_id": "s3tables.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "s3tables/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource"], "path": "behavioral/s3tables/check_tag_resource_and_list_tags_round_trip.py", "service": "s3tables"} {"check_id": "s3tables.tag-resource-invalid-key-rejected", "deployments": [], "key": "s3tables/tag-resource-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource"], "path": "behavioral/s3tables/check_tag_resource_invalid_key_rejected.py", "service": "s3tables"} {"check_id": "s3tables.tag-resource-malformed-key-rejected", "deployments": [], "key": "s3tables/tag-resource-malformed-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource"], "path": "behavioral/s3tables/check_tag_resource_malformed_key_rejected.py", "service": "s3tables"} {"check_id": "s3tables.tag-resource-on-deleted-table-rejected", "deployments": [], "key": "s3tables/tag-resource-on-deleted-table-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:CreateTableBucket", "s3tables:DeleteNamespace", "s3tables:DeleteTable", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource"], "path": "behavioral/s3tables/check_tag_resource_on_deleted_table_rejected.py", "service": "s3tables"} {"check_id": "s3tables.tag-resource-reserved-prefix-denied", "deployments": [], "key": "s3tables/tag-resource-reserved-prefix-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource", "s3tables:UntagResource"], "path": "behavioral/s3tables/check_tag_resource_reserved_prefix_denied.py", "service": "s3tables"} {"check_id": "s3tables.tag-resource-unicode-round-trip", "deployments": [], "key": "s3tables/tag-resource-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource", "s3tables:UntagResource"], "path": "behavioral/s3tables/check_tag_resource_unicode_round_trip.py", "service": "s3tables"} {"check_id": "s3tables.telemetry-metrics-configuration-put-get-delete", "deployments": [], "key": "s3tables/telemetry-metrics-configuration-put-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:DeleteTableBucketMetricsConfiguration", "s3tables:GetTableBucketMetricsConfiguration", "s3tables:PutTableBucketMetricsConfiguration"], "path": "behavioral/s3tables/check_telemetry_metrics_configuration_put_get_delete.py", "service": "s3tables"} {"check_id": "s3tables.unicode-tag-value-round-trip", "deployments": [], "key": "s3tables/unicode-tag-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource"], "path": "behavioral/s3tables/check_unicode_tag_value_round_trip.py", "service": "s3tables"} {"check_id": "s3tables.untag-resource-malformed-tag-key-rejected", "deployments": [], "key": "s3tables/untag-resource-malformed-tag-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource", "s3tables:UntagResource"], "path": "behavioral/s3tables/check_untag_resource_malformed_tag_key_rejected.py", "service": "s3tables"} {"check_id": "s3tables.untag-resource-nonexistent-tag-is-noop", "deployments": [], "key": "s3tables/untag-resource-nonexistent-tag-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource", "s3tables:UntagResource"], "path": "behavioral/s3tables/check_untag_resource_nonexistent_tag_is_noop.py", "service": "s3tables"} {"check_id": "s3tables.untag-resource-nonexistent-tag-key-noop", "deployments": [], "key": "s3tables/untag-resource-nonexistent-tag-key-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource", "s3tables:UntagResource"], "path": "behavioral/s3tables/check_untag_resource_nonexistent_tag_key_noop.py", "service": "s3tables"} {"check_id": "s3tables.untag-resource-then-list-tags-empty", "deployments": [], "key": "s3tables/untag-resource-then-list-tags-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3tables:CreateTableBucket", "s3tables:DeleteTableBucket", "s3tables:ListTagsForResource", "s3tables:TagResource", "s3tables:UntagResource"], "path": "behavioral/s3tables/check_untag_resource_then_list_tags_empty.py", "service": "s3tables"} {"check_id": "s3vectors.concurrent-put-vectors-same-key-last-write-wins", "deployments": [], "key": "s3vectors/concurrent-put-vectors-same-key-last-write-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_concurrent_put_vectors_same_key_last_write_wins.py", "service": "s3vectors"} {"check_id": "s3vectors.create-index-duplicate-name-rejected", "deployments": [], "key": "s3vectors/create-index-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex"], "path": "behavioral/s3vectors/check_create_index_duplicate_name_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.delete-vector-bucket-policy-idempotent-not-found", "deployments": [], "key": "s3vectors/delete-vector-bucket-policy-idempotent-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_delete_vector_bucket_policy_idempotent_not_found.py", "service": "s3vectors"} {"check_id": "s3vectors.delete-vector-bucket-policy-missing-is-noop", "deployments": [], "key": "s3vectors/delete-vector-bucket-policy-missing-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy"], "path": "behavioral/s3vectors/check_delete_vector_bucket_policy_missing_is_noop.py", "service": "s3vectors"} {"check_id": "s3vectors.delete-vector-bucket-policy-removes-it", "deployments": [], "key": "s3vectors/delete-vector-bucket-policy-removes-it", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectorBucket", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_delete_vector_bucket_policy_removes_it.py", "service": "s3vectors"} {"check_id": "s3vectors.delete-vector-bucket-policy-then-get-404", "deployments": [], "key": "s3vectors/delete-vector-bucket-policy-then-get-404", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_delete_vector_bucket_policy_then_get_404.py", "service": "s3vectors"} {"check_id": "s3vectors.delete-vector-bucket-with-index-conflict-rejected", "deployments": [], "key": "s3vectors/delete-vector-bucket-with-index-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket"], "path": "behavioral/s3vectors/check_delete_vector_bucket_with_index_conflict_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.delete-vector-bucket-with-indexes-rejected", "deployments": [], "key": "s3vectors/delete-vector-bucket-with-indexes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:GetVectorBucket"], "path": "behavioral/s3vectors/check_delete_vector_bucket_with_indexes_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.deleted-vector-key-reusable-and-deleted-index-refuses-writes", "deployments": [], "key": "s3vectors/deleted-vector-key-reusable-and-deleted-index-refuses-writes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:GetVectors", "s3vectors:ListVectors", "s3vectors:PutVectors", "s3vectors:QueryVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_deleted_vector_key_reusable_and_deleted_index_refuses_writes.py", "service": "s3vectors"} {"check_id": "s3vectors.deploy-vector-bucket-and-index-behaves-via-cloudformation", "deployments": [], "key": "s3vectors/deploy-vector-bucket-and-index-behaves-via-cloudformation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3vectors:GetIndex", "s3vectors:PutVectors", "s3vectors:QueryVectors"], "path": "behavioral/s3vectors/check_deploy_vector_bucket_and_index_behaves_via_cloudformation.py", "service": "s3vectors"} {"check_id": "s3vectors.deploy-vector-bucket-cloudformation-behaves", "deployments": [], "key": "s3vectors/deploy-vector-bucket-cloudformation-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "s3vectors:PutVectors", "s3vectors:QueryVectors"], "path": "behavioral/s3vectors/check_deploy_vector_bucket_cloudformation_behaves.py", "service": "s3vectors"} {"check_id": "s3vectors.e2e-put-query-delete-removes-from-results", "deployments": [], "key": "s3vectors/e2e-put-query-delete-removes-from-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:PutVectors", "s3vectors:QueryVectors"], "path": "behavioral/s3vectors/check_e2e_put_query_delete_removes_from_results.py", "service": "s3vectors"} {"check_id": "s3vectors.e2e-vector-lifecycle-flow", "deployments": [], "key": "s3vectors/e2e-vector-lifecycle-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:GetVectorBucket", "s3vectors:GetVectors", "s3vectors:ListVectors", "s3vectors:PutVectors", "s3vectors:QueryVectors"], "path": "behavioral/s3vectors/check_e2e_vector_lifecycle_flow.py", "service": "s3vectors"} {"check_id": "s3vectors.get-vector-bucket-policy-missing-not-found", "deployments": [], "key": "s3vectors/get-vector-bucket-policy-missing-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_get_vector_bucket_policy_missing_not_found.py", "service": "s3vectors"} {"check_id": "s3vectors.get-vector-bucket-policy-missing-rejected", "deployments": [], "key": "s3vectors/get-vector-bucket-policy-missing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy"], "path": "behavioral/s3vectors/check_get_vector_bucket_policy_missing_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.list-tags-for-deleted-resource-not-found", "deployments": [], "key": "s3vectors/list-tags-for-deleted-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource"], "path": "behavioral/s3vectors/check_list_tags_for_deleted_resource_not_found.py", "service": "s3vectors"} {"check_id": "s3vectors.list-vectors-access-denied-without-permission", "deployments": [], "key": "s3vectors/list-vectors-access-denied-without-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:ListVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_list_vectors_access_denied_without_permission.py", "service": "s3vectors"} {"check_id": "s3vectors.list-vectors-insufficient-permission-denied", "deployments": [], "key": "s3vectors/list-vectors-insufficient-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:ListIndexes", "s3vectors:ListVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_list_vectors_insufficient_permission_denied.py", "service": "s3vectors"} {"check_id": "s3vectors.list-vectors-nonexistent-index-not-found", "deployments": [], "key": "s3vectors/list-vectors-nonexistent-index-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:ListVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_list_vectors_nonexistent_index_not_found.py", "service": "s3vectors"} {"check_id": "s3vectors.list-vectors-pagination-order-is-stable", "deployments": [], "key": "s3vectors/list-vectors-pagination-order-is-stable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:ListVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_list_vectors_pagination_order_is_stable.py", "service": "s3vectors"} {"check_id": "s3vectors.list-vectors-parallel-segments-partition-the-index", "deployments": [], "key": "s3vectors/list-vectors-parallel-segments-partition-the-index", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:ListVectors", "s3vectors:PutVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_list_vectors_parallel_segments_partition_the_index.py", "service": "s3vectors"} {"check_id": "s3vectors.non-filterable-metadata-exempt-from-filterable-size-limit", "deployments": [], "key": "s3vectors/non-filterable-metadata-exempt-from-filterable-size-limit", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:GetIndex", "s3vectors:GetVectors", "s3vectors:ListVectors", "s3vectors:PutVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_non_filterable_metadata_exempt_from_filterable_size_limit.py", "service": "s3vectors"} {"check_id": "s3vectors.put-vector-bucket-policy-lifecycle", "deployments": [], "key": "s3vectors/put-vector-bucket-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_put_vector_bucket_policy_lifecycle.py", "service": "s3vectors"} {"check_id": "s3vectors.put-vector-bucket-policy-malformed-json-rejected", "deployments": [], "key": "s3vectors/put-vector-bucket-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy"], "path": "behavioral/s3vectors/check_put_vector_bucket_policy_malformed_json_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.put-vector-bucket-policy-overwrite-replaces-not-merges", "deployments": [], "key": "s3vectors/put-vector-bucket-policy-overwrite-replaces-not-merges", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_put_vector_bucket_policy_overwrite_replaces_not_merges.py", "service": "s3vectors"} {"check_id": "s3vectors.put-vector-bucket-policy-then-get-echoes", "deployments": [], "key": "s3vectors/put-vector-bucket-policy-then-get-echoes", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_put_vector_bucket_policy_then_get_echoes.py", "service": "s3vectors"} {"check_id": "s3vectors.put-vectors-concurrent-upsert-same-key-converges", "deployments": [], "key": "s3vectors/put-vectors-concurrent-upsert-same-key-converges", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_put_vectors_concurrent_upsert_same_key_converges.py", "service": "s3vectors"} {"check_id": "s3vectors.put-vectors-dimension-mismatch-rejected", "deployments": [], "key": "s3vectors/put-vectors-dimension-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_put_vectors_dimension_mismatch_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.put-vectors-zero-vector-rejected-for-cosine-only", "deployments": [], "key": "s3vectors/put-vectors-zero-vector-rejected-for-cosine-only", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:GetVectors", "s3vectors:ListVectors", "s3vectors:PutVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_put_vectors_zero_vector_rejected_for_cosine_only.py", "service": "s3vectors"} {"check_id": "s3vectors.query-vectors-distance-metric-decides-the-ranking", "deployments": [], "key": "s3vectors/query-vectors-distance-metric-decides-the-ranking", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:GetIndex", "s3vectors:PutVectors", "s3vectors:QueryVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_query_vectors_distance_metric_decides_the_ranking.py", "service": "s3vectors"} {"check_id": "s3vectors.query-vectors-metadata-filter-operator-table", "deployments": [], "key": "s3vectors/query-vectors-metadata-filter-operator-table", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:PutVectors", "s3vectors:QueryVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_query_vectors_metadata_filter_operator_table.py", "service": "s3vectors"} {"check_id": "s3vectors.query-vectors-pagination-preserves-distance-order-across-pages", "deployments": [], "key": "s3vectors/query-vectors-pagination-preserves-distance-order-across-pages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:ListVectors", "s3vectors:PutVectors", "s3vectors:QueryVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_query_vectors_pagination_preserves_distance_order_across_pages.py", "service": "s3vectors"} {"check_id": "s3vectors.query-vectors-reranks-when-a-nearer-vector-is-inserted", "deployments": [], "key": "s3vectors/query-vectors-reranks-when-a-nearer-vector-is-inserted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:PutVectors", "s3vectors:QueryVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_query_vectors_reranks_when_a_nearer_vector_is_inserted.py", "service": "s3vectors"} {"check_id": "s3vectors.tag-resource-conflict-under-concurrent-updates", "deployments": [], "key": "s3vectors/tag-resource-conflict-under-concurrent-updates", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource", "s3vectors:UntagResource"], "path": "behavioral/s3vectors/check_tag_resource_conflict_under_concurrent_updates.py", "service": "s3vectors"} {"check_id": "s3vectors.tag-resource-during-delete-conflict", "deployments": [], "key": "s3vectors/tag-resource-during-delete-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource"], "path": "behavioral/s3vectors/check_tag_resource_during_delete_conflict.py", "service": "s3vectors"} {"check_id": "s3vectors.tag-resource-invalid-key-rejected", "deployments": [], "key": "s3vectors/tag-resource-invalid-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource"], "path": "behavioral/s3vectors/check_tag_resource_invalid_key_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.tag-resource-nonexistent-bucket-rejected", "deployments": [], "key": "s3vectors/tag-resource-nonexistent-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource"], "path": "behavioral/s3vectors/check_tag_resource_nonexistent_bucket_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.tag-resource-nonexistent-resource-not-found", "deployments": [], "key": "s3vectors/tag-resource-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource"], "path": "behavioral/s3vectors/check_tag_resource_nonexistent_resource_not_found.py", "service": "s3vectors"} {"check_id": "s3vectors.tag-resource-then-list-reflects", "deployments": [], "key": "s3vectors/tag-resource-then-list-reflects", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource"], "path": "behavioral/s3vectors/check_tag_resource_then_list_reflects.py", "service": "s3vectors"} {"check_id": "s3vectors.tag-value-empty-string-preserved", "deployments": [], "key": "s3vectors/tag-value-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource"], "path": "behavioral/s3vectors/check_tag_value_empty_string_preserved.py", "service": "s3vectors"} {"check_id": "s3vectors.tag-value-unicode-round-trip", "deployments": [], "key": "s3vectors/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource", "s3vectors:UntagResource"], "path": "behavioral/s3vectors/check_tag_value_unicode_round_trip.py", "service": "s3vectors"} {"check_id": "s3vectors.untag-resource-missing-resource-not-found", "deployments": [], "key": "s3vectors/untag-resource-missing-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource", "s3vectors:UntagResource"], "path": "behavioral/s3vectors/check_untag_resource_missing_resource_not_found.py", "service": "s3vectors"} {"check_id": "s3vectors.untag-resource-nonexistent-bucket-rejected", "deployments": [], "key": "s3vectors/untag-resource-nonexistent-bucket-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource", "s3vectors:UntagResource"], "path": "behavioral/s3vectors/check_untag_resource_nonexistent_bucket_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.untag-resource-removes-tag", "deployments": [], "key": "s3vectors/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource", "s3vectors:UntagResource"], "path": "behavioral/s3vectors/check_untag_resource_removes_tag.py", "service": "s3vectors"} {"check_id": "s3vectors.untag-resource-removes-tag-from-list", "deployments": [], "key": "s3vectors/untag-resource-removes-tag-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:ListTagsForResource", "s3vectors:TagResource", "s3vectors:UntagResource"], "path": "behavioral/s3vectors/check_untag_resource_removes_tag_from_list.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-bucket-policy-document-round-trip", "deployments": [], "key": "s3vectors/vector-bucket-policy-document-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_vector_bucket_policy_document_round_trip.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-bucket-policy-enforced-denies-list-vectors-rejected", "deployments": [], "key": "s3vectors/vector-bucket-policy-enforced-denies-list-vectors-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetIndex", "s3vectors:ListVectors", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_vector_bucket_policy_enforced_denies_list_vectors_rejected.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-bucket-policy-enforced-on-access-denied", "deployments": [], "key": "s3vectors/vector-bucket-policy-enforced-on-access-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectors", "s3vectors:ListVectors", "s3vectors:PutVectorBucketPolicy", "s3vectors:PutVectors", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_vector_bucket_policy_enforced_on_access_denied.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-bucket-policy-round-trip", "deployments": [], "key": "s3vectors/vector-bucket-policy-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3vectors:CreateVectorBucket", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectorBucketPolicy", "s3vectors:GetVectorBucketPolicy", "s3vectors:PutVectorBucketPolicy", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors/check_vector_bucket_policy_round_trip.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-embedding-float-precision-preserved", "deployments": [], "key": "s3vectors/vector-embedding-float-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_vector_embedding_float_precision_preserved.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-float-precision-round-trip", "deployments": [], "key": "s3vectors/vector-float-precision-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_vector_float_precision_round_trip.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-metadata-empty-vs-absent-preserved", "deployments": [], "key": "s3vectors/vector-metadata-empty-vs-absent-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_vector_metadata_empty_vs_absent_preserved.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-metadata-unicode-and-precision-round-trip", "deployments": [], "key": "s3vectors/vector-metadata-unicode-and-precision-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_vector_metadata_unicode_and_precision_round_trip.py", "service": "s3vectors"} {"check_id": "s3vectors.vector-metadata-unicode-round-trip", "deployments": [], "key": "s3vectors/vector-metadata-unicode-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:GetVectors", "s3vectors:PutVectors"], "path": "behavioral/s3vectors/check_vector_metadata_unicode_round_trip.py", "service": "s3vectors"} {"check_id": "s3vectors__sts.list-vectors-return-data-requires-getvectors-permission", "deployments": [], "key": "s3vectors__sts/list-vectors-return-data-requires-getvectors-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:ListVectors", "s3vectors:PutVectors", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors__sts/check_list_vectors_return_data_requires_getvectors_permission.py", "service": "s3vectors__sts"} {"check_id": "s3vectors__sts.query-vectors-return-metadata-requires-getvectors-permission", "deployments": [], "key": "s3vectors__sts/query-vectors-return-metadata-requires-getvectors-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3vectors:CreateIndex", "s3vectors:CreateVectorBucket", "s3vectors:DeleteIndex", "s3vectors:DeleteVectorBucket", "s3vectors:DeleteVectors", "s3vectors:GetIndex", "s3vectors:PutVectors", "s3vectors:QueryVectors", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/s3vectors__sts/check_query_vectors_return_metadata_requires_getvectors_permission.py", "service": "s3vectors__sts"} {"check_id": "sagemaker-featurestore-runtime.batch-get-record-across-multiple-feature-groups", "deployments": [], "key": "sagemaker-featurestore-runtime/batch-get-record-across-multiple-feature-groups", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:BatchGetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_batch_get_record_across_multiple_feature_groups.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.batch-get-record-feature-names-filter-limits-returned-features", "deployments": [], "key": "sagemaker-featurestore-runtime/batch-get-record-feature-names-filter-limits-returned-features", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:BatchGetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_batch_get_record_feature_names_filter_limits_returned_features.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.batch-get-record-missing-identifier-omitted-from-records", "deployments": [], "key": "sagemaker-featurestore-runtime/batch-get-record-missing-identifier-omitted-from-records", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:BatchGetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_batch_get_record_missing_identifier_omitted_from_records.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.batch-get-record-too-many-identifiers-rejected", "deployments": [], "key": "sagemaker-featurestore-runtime/batch-get-record-too-many-identifiers-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:BatchGetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_batch_get_record_too_many_identifiers_rejected.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.batch-write-record-bulk-ingestion-round-trip", "deployments": [], "key": "sagemaker-featurestore-runtime/batch-write-record-bulk-ingestion-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:BatchWriteRecord", "sagemaker-featurestore-runtime:GetRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_batch_write_record_bulk_ingestion_round_trip.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.batch-write-record-partial-failure-reports-per-entry-error", "deployments": [], "key": "sagemaker-featurestore-runtime/batch-write-record-partial-failure-reports-per-entry-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:BatchWriteRecord", "sagemaker-featurestore-runtime:GetRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_batch_write_record_partial_failure_reports_per_entry_error.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.concurrent-put-record-last-writer-wins-by-event-time", "deployments": [], "key": "sagemaker-featurestore-runtime/concurrent-put-record-last-writer-wins-by-event-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_concurrent_put_record_last_writer_wins_by_event_time.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.delete-record-hard-delete-removes-from-list-even-with-flag", "deployments": [], "key": "sagemaker-featurestore-runtime/delete-record-hard-delete-removes-from-list-even-with-flag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:DeleteRecord", "sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:ListRecords", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_delete_record_hard_delete_removes_from_list_even_with_flag.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.delete-record-harddelete-stale-event-time-rejected", "deployments": [], "key": "sagemaker-featurestore-runtime/delete-record-harddelete-stale-event-time-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:DeleteRecord", "sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_delete_record_harddelete_stale_event_time_rejected.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.delete-record-soft-delete-hides-record-from-get-and-list", "deployments": [], "key": "sagemaker-featurestore-runtime/delete-record-soft-delete-hides-record-from-get-and-list", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:DeleteRecord", "sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:ListRecords", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_delete_record_soft_delete_hides_record_from_get_and_list.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.delete-record-soft-deleted-record-visible-with-include-flag", "deployments": [], "key": "sagemaker-featurestore-runtime/delete-record-soft-deleted-record-visible-with-include-flag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:DeleteRecord", "sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:ListRecords", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_delete_record_soft_deleted_record_visible_with_include_flag.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.delete-record-softdelete-noop-when-event-time-not-later", "deployments": [], "key": "sagemaker-featurestore-runtime/delete-record-softdelete-noop-when-event-time-not-later", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:DeleteRecord", "sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_delete_record_softdelete_noop_when_event_time_not_later.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.get-record-expiration-time-response-disabled-by-default", "deployments": [], "key": "sagemaker-featurestore-runtime/get-record-expiration-time-response-disabled-by-default", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_get_record_expiration_time_response_disabled_by_default.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.get-record-nonexistent-feature-group-rejected", "deployments": [], "key": "sagemaker-featurestore-runtime/get-record-nonexistent-feature-group-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_get_record_nonexistent_feature_group_rejected.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.list-records-max-results-out-of-range-rejected", "deployments": [], "key": "sagemaker-featurestore-runtime/list-records-max-results-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:ListRecords", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_list_records_max_results_out_of_range_rejected.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.list-records-pagination-collects-all-via-next-token", "deployments": [], "key": "sagemaker-featurestore-runtime/list-records-pagination-collects-all-via-next-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:ListRecords", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_list_records_pagination_collects_all_via_next_token.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.list-records-returns-all-put-identifiers", "deployments": [], "key": "sagemaker-featurestore-runtime/list-records-returns-all-put-identifiers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:ListRecords", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_list_records_returns_all_put_identifiers.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.put-record-full-overwrite-drops-omitted-features", "deployments": [], "key": "sagemaker-featurestore-runtime/put-record-full-overwrite-drops-omitted-features", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_put_record_full_overwrite_drops_omitted_features.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.put-record-get-record-round-trip", "deployments": [], "key": "sagemaker-featurestore-runtime/put-record-get-record-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_put_record_get_record_round_trip.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.put-record-historic-event-time-leaves-online-store-unaffected", "deployments": [], "key": "sagemaker-featurestore-runtime/put-record-historic-event-time-leaves-online-store-unaffected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_put_record_historic_event_time_leaves_online_store_unaffected.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.put-record-nonexistent-feature-group-validation-rejected", "deployments": [], "key": "sagemaker-featurestore-runtime/put-record-nonexistent-feature-group-validation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_put_record_nonexistent_feature_group_validation_rejected.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.put-record-ttl-duration-sets-expires-at", "deployments": [], "key": "sagemaker-featurestore-runtime/put-record-ttl-duration-sets-expires-at", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_put_record_ttl_duration_sets_expires_at.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.update-record-conflict-stale-event-time-rejected", "deployments": [], "key": "sagemaker-featurestore-runtime/update-record-conflict-stale-event-time-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker-featurestore-runtime:UpdateRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_update_record_conflict_stale_event_time_rejected.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.update-record-event-time-omitted-preserves-existing-event-time", "deployments": [], "key": "sagemaker-featurestore-runtime/update-record-event-time-omitted-preserves-existing-event-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker-featurestore-runtime:UpdateRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_update_record_event_time_omitted_preserves_existing_event_time.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.update-record-missing-record-resource-not-found", "deployments": [], "key": "sagemaker-featurestore-runtime/update-record-missing-record-resource-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker-featurestore-runtime:UpdateRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_update_record_missing_record_resource_not_found.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.update-record-partial-update-preserves-other-features", "deployments": [], "key": "sagemaker-featurestore-runtime/update-record-partial-update-preserves-other-features", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker-featurestore-runtime:UpdateRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_update_record_partial_update_preserves_other_features.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-featurestore-runtime.update-record-ttl-without-event-time-rejected", "deployments": [], "key": "sagemaker-featurestore-runtime/update-record-ttl-without-event-time-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker-featurestore-runtime:UpdateRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker-featurestore-runtime/check_update_record_ttl_without_event_time_rejected.py", "service": "sagemaker-featurestore-runtime"} {"check_id": "sagemaker-metrics.batch-get-metrics-malformed-resource-arn-rejected", "deployments": [], "key": "sagemaker-metrics/batch-get-metrics-malformed-resource-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_get_metrics_malformed_resource_arn_rejected.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-get-metrics-mismatched-axis-period-rejected", "deployments": [], "key": "sagemaker-metrics/batch-get-metrics-mismatched-axis-period-rejected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_get_metrics_mismatched_axis_period_rejected.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-get-metrics-unknown-metric-name-empty-not-error", "deployments": [], "key": "sagemaker-metrics/batch-get-metrics-unknown-metric-name-empty-not-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_get_metrics_unknown_metric_name_empty_not_error.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-empty-range-no-data-complete", "deployments": [], "key": "sagemaker-metrics/batch-metrics-empty-range-no-data-complete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_empty_range_no_data_complete.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-iteration-number-ordering", "deployments": [], "key": "sagemaker-metrics/batch-metrics-iteration-number-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_iteration_number_ordering.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-max-batch-size-boundary", "deployments": [], "key": "sagemaker-metrics/batch-metrics-max-batch-size-boundary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_max_batch_size_boundary.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-multi-query-index-alignment", "deployments": [], "key": "sagemaker-metrics/batch-metrics-multi-query-index-alignment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_multi_query_index_alignment.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-round-trip-basic", "deployments": [], "key": "sagemaker-metrics/batch-metrics-round-trip-basic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_round_trip_basic.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-stat-count-aggregation", "deployments": [], "key": "sagemaker-metrics/batch-metrics-stat-count-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_stat_count_aggregation.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-stat-last-latest-timestamp", "deployments": [], "key": "sagemaker-metrics/batch-metrics-stat-last-latest-timestamp", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_stat_last_latest_timestamp.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-stat-max-aggregation", "deployments": [], "key": "sagemaker-metrics/batch-metrics-stat-max-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_stat_max_aggregation.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-stat-min-aggregation", "deployments": [], "key": "sagemaker-metrics/batch-metrics-stat-min-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_stat_min_aggregation.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-step-optional-timestamp-axis", "deployments": [], "key": "sagemaker-metrics/batch-metrics-step-optional-timestamp-axis", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_step_optional_timestamp_axis.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-timestamp-axis-multi-point-ordering", "deployments": [], "key": "sagemaker-metrics/batch-metrics-timestamp-axis-multi-point-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_timestamp_axis_multi_point_ordering.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-training-loop-e2e", "deployments": [], "key": "sagemaker-metrics/batch-metrics-training-loop-e2e", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_training_loop_e2e.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-metrics-trial-component-isolation", "deployments": [], "key": "sagemaker-metrics/batch-metrics-trial-component-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_metrics_trial_component_isolation.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-put-metrics-concurrent-same-point-conflict", "deployments": [], "key": "sagemaker-metrics/batch-put-metrics-concurrent-same-point-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_put_metrics_concurrent_same_point_conflict.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-put-metrics-invalid-value-rejected", "deployments": [], "key": "sagemaker-metrics/batch-put-metrics-invalid-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent"], "path": "behavioral/sagemaker-metrics/check_batch_put_metrics_invalid_value_rejected.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-metrics.batch-put-metrics-missing-iam-permission-rejected", "deployments": [], "key": "sagemaker-metrics/batch-put-metrics-missing-iam-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker-metrics:BatchGetMetrics", "sagemaker-metrics:BatchPutMetrics", "sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent", "sts:AssumeRole"], "path": "behavioral/sagemaker-metrics/check_batch_put_metrics_missing_iam_permission_rejected.py", "service": "sagemaker-metrics"} {"check_id": "sagemaker-runtime.async-invoke-rejects-neither-and-both-input-sources", "deployments": [], "key": "sagemaker-runtime/async-invoke-rejects-neither-and-both-input-sources", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-runtime:InvokeEndpointAsync"], "path": "behavioral/sagemaker-runtime/check_async_invoke_rejects_neither_and_both_input_sources.py", "service": "sagemaker-runtime"} {"check_id": "sagemaker-runtime.invoke-endpoint-async-missing-input-failure-location-rejected", "deployments": [], "key": "sagemaker-runtime/invoke-endpoint-async-missing-input-failure-location-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-runtime:InvokeEndpointAsync"], "path": "behavioral/sagemaker-runtime/check_invoke_endpoint_async_missing_input_failure_location_rejected.py", "service": "sagemaker-runtime"} {"check_id": "sagemaker-runtime.invoke-endpoint-missing-permission-rejected", "deployments": [], "key": "sagemaker-runtime/invoke-endpoint-missing-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sagemaker-runtime:InvokeEndpoint", "sts:AssumeRole"], "path": "behavioral/sagemaker-runtime/check_invoke_endpoint_missing_permission_rejected.py", "service": "sagemaker-runtime"} {"check_id": "sagemaker-runtime.invoke-endpoint-new-session-not-established-when-unsupported", "deployments": [], "key": "sagemaker-runtime/invoke-endpoint-new-session-not-established-when-unsupported", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-runtime:InvokeEndpointWithResponseStream"], "path": "behavioral/sagemaker-runtime/check_invoke_endpoint_new_session_not_established_when_unsupported.py", "service": "sagemaker-runtime"} {"check_id": "sagemaker-runtime.invoke-endpoint-oversized-custom-attributes-rejected", "deployments": [], "key": "sagemaker-runtime/invoke-endpoint-oversized-custom-attributes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-runtime:InvokeEndpoint"], "path": "behavioral/sagemaker-runtime/check_invoke_endpoint_oversized_custom_attributes_rejected.py", "service": "sagemaker-runtime"} {"check_id": "sagemaker-runtime.invoke-nonexistent-endpoint-rejected", "deployments": [], "key": "sagemaker-runtime/invoke-nonexistent-endpoint-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-runtime:InvokeEndpoint"], "path": "behavioral/sagemaker-runtime/check_invoke_nonexistent_endpoint_rejected.py", "service": "sagemaker-runtime"} {"check_id": "sagemaker-runtime.new-session-sentinel-is-operation-scoped", "deployments": [], "key": "sagemaker-runtime/new-session-sentinel-is-operation-scoped", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-runtime:InvokeEndpoint", "sagemaker-runtime:InvokeEndpointWithResponseStream"], "path": "behavioral/sagemaker-runtime/check_new_session_sentinel_is_operation_scoped.py", "service": "sagemaker-runtime"} {"check_id": "sagemaker-runtime.rejects-malformed-fields-before-endpoint-lookup", "deployments": [], "key": "sagemaker-runtime/rejects-malformed-fields-before-endpoint-lookup", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemaker-runtime:InvokeEndpoint"], "path": "behavioral/sagemaker-runtime/check_rejects_malformed_fields_before_endpoint_lookup.py", "service": "sagemaker-runtime"} {"check_id": "sagemaker.action-create-delete-lifecycle", "deployments": [], "key": "sagemaker/action-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAction", "sagemaker:DeleteAction", "sagemaker:DescribeAction"], "path": "behavioral/sagemaker/check_action_create_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.action-create-describe-delete", "deployments": [], "key": "sagemaker/action-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAction", "sagemaker:DeleteAction", "sagemaker:DescribeAction", "sagemaker:UpdateAction"], "path": "behavioral/sagemaker/check_action_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.action-create-describe-delete-lifecycle", "deployments": [], "key": "sagemaker/action-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAction", "sagemaker:DeleteAction", "sagemaker:DescribeAction"], "path": "behavioral/sagemaker/check_action_create_describe_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.action-lifecycle-create-describe-delete", "deployments": [], "key": "sagemaker/action-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAction", "sagemaker:DeleteAction", "sagemaker:DescribeAction"], "path": "behavioral/sagemaker/check_action_lifecycle_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.action-lifecycle-transitions", "deployments": [], "key": "sagemaker/action-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAction", "sagemaker:DeleteAction", "sagemaker:DescribeAction", "sagemaker:UpdateAction"], "path": "behavioral/sagemaker/check_action_lifecycle_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.add-association-missing-source-not-found", "deployments": [], "key": "sagemaker/add-association-missing-source-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AddAssociation", "sagemaker:CreateArtifact", "sagemaker:CreateContext", "sagemaker:DeleteArtifact", "sagemaker:DeleteAssociation", "sagemaker:DeleteContext", "sagemaker:ListAssociations", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_add_association_missing_source_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.add-association-nonexistent-entities-not-found", "deployments": [], "key": "sagemaker/add-association-nonexistent-entities-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AddAssociation", "sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DeleteAssociation", "sagemaker:ListAssociations", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_add_association_nonexistent_entities_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.add-association-nonexistent-resource-not-found", "deployments": [], "key": "sagemaker/add-association-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AddAssociation", "sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DeleteAssociation", "sagemaker:ListAssociations"], "path": "behavioral/sagemaker/check_add_association_nonexistent_resource_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.add-association-self-reference-rejected", "deployments": [], "key": "sagemaker/add-association-self-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AddAssociation", "sagemaker:CreateArtifact", "sagemaker:CreateContext", "sagemaker:DeleteArtifact", "sagemaker:DeleteAssociation", "sagemaker:DeleteContext", "sagemaker:ListAssociations"], "path": "behavioral/sagemaker/check_add_association_self_reference_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.add-association-source-not-found", "deployments": [], "key": "sagemaker/add-association-source-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AddAssociation", "sagemaker:CreateAction", "sagemaker:CreateArtifact", "sagemaker:DeleteAction", "sagemaker:DeleteArtifact", "sagemaker:DeleteAssociation", "sagemaker:DescribeAction", "sagemaker:ListAssociations", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_add_association_source_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.add-tags-and-list-tags", "deployments": [], "key": "sagemaker/add-tags-and-list-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AddTags", "sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:ListTags"], "path": "behavioral/sagemaker/check_add_tags_and_list_tags.py", "service": "sagemaker"} {"check_id": "sagemaker.add-tags-aws-prefixed-key-denied", "deployments": [], "key": "sagemaker/add-tags-aws-prefixed-key-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AddTags", "sagemaker:CreateContext", "sagemaker:DeleteContext", "sagemaker:ListTags"], "path": "behavioral/sagemaker/check_add_tags_aws_prefixed_key_denied.py", "service": "sagemaker"} {"check_id": "sagemaker.add-tags-overwrites-existing-key", "deployments": [], "key": "sagemaker/add-tags-overwrites-existing-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AddTags", "sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:ListTags"], "path": "behavioral/sagemaker/check_add_tags_overwrites_existing_key.py", "service": "sagemaker"} {"check_id": "sagemaker.ai-benchmark-job-create-delete-lifecycle", "deployments": [], "key": "sagemaker/ai-benchmark-job-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateAIBenchmarkJob", "sagemaker:CreateAIWorkloadConfig", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteAIBenchmarkJob", "sagemaker:DeleteAIWorkloadConfig", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeAIBenchmarkJob", "sagemaker:DescribeEndpoint", "sagemaker:StopAIBenchmarkJob"], "path": "behavioral/sagemaker/check_ai_benchmark_job_create_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.ai-recommendation-job-create-delete-lifecycle", "deployments": [], "key": "sagemaker/ai-recommendation-job-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateAIRecommendationJob", "sagemaker:CreateAIWorkloadConfig", "sagemaker:DeleteAIRecommendationJob", "sagemaker:DeleteAIWorkloadConfig", "sagemaker:DescribeAIRecommendationJob", "sagemaker:StopAIRecommendationJob"], "path": "behavioral/sagemaker/check_ai_recommendation_job_create_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.ai-workload-config-create-delete-lifecycle", "deployments": [], "key": "sagemaker/ai-workload-config-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAIWorkloadConfig", "sagemaker:DeleteAIWorkloadConfig", "sagemaker:DescribeAIWorkloadConfig"], "path": "behavioral/sagemaker/check_ai_workload_config_create_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.algorithm-create-delete-lifecycle", "deployments": [], "key": "sagemaker/algorithm-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAlgorithm", "sagemaker:DeleteAlgorithm", "sagemaker:DescribeAlgorithm"], "path": "behavioral/sagemaker/check_algorithm_create_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.algorithm-create-describe-delete", "deployments": [], "key": "sagemaker/algorithm-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAlgorithm", "sagemaker:DeleteAlgorithm", "sagemaker:DescribeAlgorithm"], "path": "behavioral/sagemaker/check_algorithm_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.algorithm-delete-allowed-while-referenced", "deployments": [], "key": "sagemaker/algorithm-delete-allowed-while-referenced", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateAlgorithm", "sagemaker:CreateTrainingJob", "sagemaker:DeleteAlgorithm", "sagemaker:DescribeAlgorithm", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_algorithm_delete_allowed_while_referenced.py", "service": "sagemaker"} {"check_id": "sagemaker.algorithm-delete-in-use-by-model-package-accepted", "deployments": [], "key": "sagemaker/algorithm-delete-in-use-by-model-package-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sagemaker:CreateAlgorithm", "sagemaker:CreateModelPackage", "sagemaker:DeleteAlgorithm", "sagemaker:DeleteModelPackage", "sagemaker:DescribeAlgorithm", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_algorithm_delete_in_use_by_model_package_accepted.py", "service": "sagemaker"} {"check_id": "sagemaker.algorithm-delete-while-referenced-by-model-package-succeeds", "deployments": [], "key": "sagemaker/algorithm-delete-while-referenced-by-model-package-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sagemaker:CreateAlgorithm", "sagemaker:CreateModelPackage", "sagemaker:DeleteAlgorithm", "sagemaker:DeleteModelPackage", "sagemaker:DescribeAlgorithm", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_algorithm_delete_while_referenced_by_model_package_succeeds.py", "service": "sagemaker"} {"check_id": "sagemaker.algorithm-lifecycle-create-describe-delete", "deployments": [], "key": "sagemaker/algorithm-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AddTags", "sagemaker:CreateAlgorithm", "sagemaker:DeleteAlgorithm", "sagemaker:DescribeAlgorithm"], "path": "behavioral/sagemaker/check_algorithm_lifecycle_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.algorithm-lifecycle-delete-when-unused", "deployments": [], "key": "sagemaker/algorithm-lifecycle-delete-when-unused", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAlgorithm", "sagemaker:DeleteAlgorithm", "sagemaker:DescribeAlgorithm"], "path": "behavioral/sagemaker/check_algorithm_lifecycle_delete_when_unused.py", "service": "sagemaker"} {"check_id": "sagemaker.app-create-delete-lifecycle", "deployments": [], "key": "sagemaker/app-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateApp", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteApp", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_app_create_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.app-lifecycle-in-service-to-deleted", "deployments": [], "key": "sagemaker/app-lifecycle-in-service-to-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateApp", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteApp", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_app_lifecycle_in_service_to_deleted.py", "service": "sagemaker"} {"check_id": "sagemaker.app-lifecycle-state-transitions", "deployments": [], "key": "sagemaker/app-lifecycle-state-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateApp", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteApp", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_app_lifecycle_state_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.artifact-create-describe-delete", "deployments": [], "key": "sagemaker/artifact-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeArtifact", "sagemaker:UpdateArtifact"], "path": "behavioral/sagemaker/check_artifact_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.artifact-describe-after-delete-rejected", "deployments": [], "key": "sagemaker/artifact-describe-after-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeArtifact", "sagemaker:ListArtifacts", "sagemaker:UpdateArtifact"], "path": "behavioral/sagemaker/check_artifact_describe_after_delete_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.artifact-empty-vs-absent-property-preserved", "deployments": [], "key": "sagemaker/artifact-empty-vs-absent-property-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeArtifact", "sagemaker:ListArtifacts"], "path": "behavioral/sagemaker/check_artifact_empty_vs_absent_property_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.artifact-lifecycle-create-describe-delete", "deployments": [], "key": "sagemaker/artifact-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeArtifact", "sagemaker:UpdateArtifact"], "path": "behavioral/sagemaker/check_artifact_lifecycle_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.artifact-lifecycle-transitions", "deployments": [], "key": "sagemaker/artifact-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeArtifact", "sagemaker:UpdateArtifact"], "path": "behavioral/sagemaker/check_artifact_lifecycle_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.artifact-source-uri-binary-safe-round-trip", "deployments": [], "key": "sagemaker/artifact-source-uri-binary-safe-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeArtifact"], "path": "behavioral/sagemaker/check_artifact_source_uri_binary_safe_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.artifact-source-uri-empty-vs-absent-preserved", "deployments": [], "key": "sagemaker/artifact-source-uri-empty-vs-absent-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeArtifact", "sagemaker:ListArtifacts"], "path": "behavioral/sagemaker/check_artifact_source_uri_empty_vs_absent_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.associate-trial-component-concurrent-limit-enforcement", "deployments": [], "key": "sagemaker/associate-trial-component-concurrent-limit-enforcement", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_associate_trial_component_concurrent_limit_enforcement.py", "service": "sagemaker"} {"check_id": "sagemaker.associate-trial-component-nonexistent-trial-rejected", "deployments": [], "key": "sagemaker/associate-trial-component-nonexistent-trial-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrial", "sagemaker:DescribeTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_associate_trial_component_nonexistent_trial_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.associate-trial-component-not-found", "deployments": [], "key": "sagemaker/associate-trial-component-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrial", "sagemaker:DescribeTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_associate_trial_component_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.attach-cluster-node-volume-cluster-not-found", "deployments": [], "key": "sagemaker/attach-cluster-node-volume-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "sagemaker:AttachClusterNodeVolume", "sagemaker:DescribeCluster", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_attach_cluster_node_volume_cluster_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.attach-cluster-node-volume-missing-node-not-found", "deployments": [], "key": "sagemaker/attach-cluster-node-volume-missing-node-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "sagemaker:AttachClusterNodeVolume", "sagemaker:DescribeClusterNode", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_attach_cluster_node_volume_missing_node_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.attach-cluster-node-volume-nonexistent-node-not-found-rejected", "deployments": [], "key": "sagemaker/attach-cluster-node-volume-nonexistent-node-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AttachClusterNodeVolume", "sagemaker:DescribeClusterNode", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_attach_cluster_node_volume_nonexistent_node_not_found_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.attach-cluster-node-volume-nonexistent-node-rejected", "deployments": [], "key": "sagemaker/attach-cluster-node-volume-nonexistent-node-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:AttachClusterNodeVolume", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sagemaker:ListClusterNodes"], "path": "behavioral/sagemaker/check_attach_cluster_node_volume_nonexistent_node_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.attach-cluster-node-volume-unknown-node-not-found", "deployments": [], "key": "sagemaker/attach-cluster-node-volume-unknown-node-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVolume", "ec2:DeleteVolume", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:AttachClusterNodeVolume", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_attach_cluster_node_volume_unknown_node_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.attach-cluster-node-volume-unknown-node-rejected", "deployments": [], "key": "sagemaker/attach-cluster-node-volume-unknown-node-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVolume", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVolume", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:AttachClusterNodeVolume", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sagemaker:ListClusterNodes"], "path": "behavioral/sagemaker/check_attach_cluster_node_volume_unknown_node_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.automl-job-server-side-orchestration-progress", "deployments": [], "key": "sagemaker/automl-job-server-side-orchestration-progress", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateAutoMLJobV2", "sagemaker:DescribeAutoMLJobV2", "sagemaker:StopAutoMLJob"], "path": "behavioral/sagemaker/check_automl_job_server_side_orchestration_progress.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-add-cluster-nodes-cluster-not-found", "deployments": [], "key": "sagemaker/batch-add-cluster-nodes-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:BatchAddClusterNodes", "sagemaker:DescribeCluster", "sagemaker:ListClusters"], "path": "behavioral/sagemaker/check_batch_add_cluster_nodes_cluster_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-add-cluster-nodes-dedup-by-request-token", "deployments": [], "key": "sagemaker/batch-add-cluster-nodes-dedup-by-request-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster"], "path": "behavioral/sagemaker/check_batch_add_cluster_nodes_dedup_by_request_token.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-add-cluster-nodes-exceeding-limit-rejected", "deployments": [], "key": "sagemaker/batch-add-cluster-nodes-exceeding-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:BatchAddClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:ListClusters", "service-quotas:GetServiceQuota"], "path": "behavioral/sagemaker/check_batch_add_cluster_nodes_exceeding_limit_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-add-cluster-nodes-exceeds-limit-blocked", "deployments": [], "key": "sagemaker/batch-add-cluster-nodes-exceeds-limit-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:BatchAddClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:ListClusterNodes", "sagemaker:ListClusters", "service-quotas:GetServiceQuota"], "path": "behavioral/sagemaker/check_batch_add_cluster_nodes_exceeds_limit_blocked.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-add-cluster-nodes-limit-exceeded-blocked", "deployments": [], "key": "sagemaker/batch-add-cluster-nodes-limit-exceeded-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:BatchAddClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:ListClusters", "service-quotas:GetServiceQuota"], "path": "behavioral/sagemaker/check_batch_add_cluster_nodes_limit_exceeded_blocked.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-add-cluster-nodes-limit-exceeded-rejected", "deployments": [], "key": "sagemaker/batch-add-cluster-nodes-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:BatchAddClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster"], "path": "behavioral/sagemaker/check_batch_add_cluster_nodes_limit_exceeded_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-add-cluster-nodes-missing-cluster-not-found", "deployments": [], "key": "sagemaker/batch-add-cluster-nodes-missing-cluster-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:BatchAddClusterNodes", "sagemaker:DescribeCluster", "sagemaker:ListClusters"], "path": "behavioral/sagemaker/check_batch_add_cluster_nodes_missing_cluster_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-add-cluster-nodes-wrong-state-rejected", "deployments": [], "key": "sagemaker/batch-add-cluster-nodes-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:BatchAddClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster"], "path": "behavioral/sagemaker/check_batch_add_cluster_nodes_wrong_state_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-delete-cluster-nodes-not-found", "deployments": [], "key": "sagemaker/batch-delete-cluster-nodes-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:BatchDeleteClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:ListClusterNodes"], "path": "behavioral/sagemaker/check_batch_delete_cluster_nodes_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-delete-cluster-nodes-partial-not-found", "deployments": [], "key": "sagemaker/batch-delete-cluster-nodes-partial-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode"], "path": "behavioral/sagemaker/check_batch_delete_cluster_nodes_partial_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-describe-model-package-matches-individual-creates", "deployments": [], "key": "sagemaker/batch-describe-model-package-matches-individual-creates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:BatchDescribeModelPackage", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_batch_describe_model_package_matches_individual_creates.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-replace-cluster-nodes-preserves-node-identity-order", "deployments": [], "key": "sagemaker/batch-replace-cluster-nodes-preserves-node-identity-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:BatchReplaceClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:ListClusterNodes"], "path": "behavioral/sagemaker/check_batch_replace_cluster_nodes_preserves_node_identity_order.py", "service": "sagemaker"} {"check_id": "sagemaker.batch-replace-cluster-nodes-stale-reference-rejected", "deployments": [], "key": "sagemaker/batch-replace-cluster-nodes-stale-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes", "sagemaker:BatchReplaceClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sagemaker:ListClusterNodes"], "path": "behavioral/sagemaker/check_batch_replace_cluster_nodes_stale_reference_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.cluster-node-add-and-cluster-delete-lifecycle", "deployments": [], "key": "sagemaker/cluster-node-add-and-cluster-delete-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sagemaker:ListClusterNodes"], "path": "behavioral/sagemaker/check_cluster_node_add_and_cluster_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.cluster-node-batch-add-delete-lifecycle", "deployments": [], "key": "sagemaker/cluster-node-batch-add-delete-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes", "sagemaker:DescribeCluster", "sagemaker:ListClusters"], "path": "behavioral/sagemaker/check_cluster_node_batch_add_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.cluster-node-batch-lifecycle", "deployments": [], "key": "sagemaker/cluster-node-batch-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes", "sagemaker:BatchRebootClusterNodes", "sagemaker:BatchReplaceClusterNodes", "sagemaker:DescribeCluster", "sagemaker:ListClusters"], "path": "behavioral/sagemaker/check_cluster_node_batch_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.code-repository-create-describe-delete", "deployments": [], "key": "sagemaker/code-repository-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateCodeRepository", "sagemaker:DeleteCodeRepository", "sagemaker:DescribeCodeRepository", "sagemaker:UpdateCodeRepository"], "path": "behavioral/sagemaker/check_code_repository_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.concurrent-create-endpoint-same-name-one-wins", "deployments": [], "key": "sagemaker/concurrent-create-endpoint-same-name-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DescribeEndpoint", "sagemaker:ListEndpoints"], "path": "behavioral/sagemaker/check_concurrent_create_endpoint_same_name_one_wins.py", "service": "sagemaker"} {"check_id": "sagemaker.concurrent-put-model-package-group-policy-last-writer-wins", "deployments": [], "key": "sagemaker/concurrent-put-model-package-group-policy-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_concurrent_put_model_package_group_policy_last_writer_wins.py", "service": "sagemaker"} {"check_id": "sagemaker.context-create-describe-delete", "deployments": [], "key": "sagemaker/context-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateContext", "sagemaker:DeleteContext", "sagemaker:DescribeContext", "sagemaker:UpdateContext"], "path": "behavioral/sagemaker/check_context_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.context-lifecycle-create-describe-delete", "deployments": [], "key": "sagemaker/context-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateContext", "sagemaker:DeleteContext", "sagemaker:DescribeContext"], "path": "behavioral/sagemaker/check_context_lifecycle_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.context-lifecycle-transitions", "deployments": [], "key": "sagemaker/context-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateContext", "sagemaker:DeleteContext", "sagemaker:DescribeContext", "sagemaker:UpdateContext"], "path": "behavioral/sagemaker/check_context_lifecycle_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.create-action-delete-lifecycle", "deployments": [], "key": "sagemaker/create-action-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAction", "sagemaker:DeleteAction", "sagemaker:DescribeAction"], "path": "behavioral/sagemaker/check_create_action_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.create-ai-benchmark-job-lifecycle", "deployments": [], "key": "sagemaker/create-ai-benchmark-job-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateAIBenchmarkJob", "sagemaker:CreateAIWorkloadConfig", "sagemaker:DeleteAIWorkloadConfig", "sagemaker:DescribeAIBenchmarkJob"], "path": "behavioral/sagemaker/check_create_ai_benchmark_job_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.create-app-already-running-resource-in-use", "deployments": [], "key": "sagemaker/create-app-already-running-resource-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateApp", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteApp", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile", "sagemaker:ListApps"], "path": "behavioral/sagemaker/check_create_app_already_running_resource_in_use.py", "service": "sagemaker"} {"check_id": "sagemaker.create-app-image-config-duplicate-name-rejected", "deployments": [], "key": "sagemaker/create-app-image-config-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateAppImageConfig", "sagemaker:DeleteAppImageConfig", "sagemaker:DescribeAppImageConfig"], "path": "behavioral/sagemaker/check_create_app_image_config_duplicate_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-app-lifecycle-transitions", "deployments": [], "key": "sagemaker/create-app-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sagemaker:CreateApp", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteApp", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_create_app_lifecycle_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.create-cluster-out-of-range-node-count-rejected", "deployments": [], "key": "sagemaker/create-cluster-out-of-range-node-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster"], "path": "behavioral/sagemaker/check_create_cluster_out_of_range_node_count_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-cluster-scheduler-config-duplicate-name-conflict-rejected", "deployments": [], "key": "sagemaker/create-cluster-scheduler-config-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateClusterSchedulerConfig", "sagemaker:ListClusterSchedulerConfigs", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_cluster_scheduler_config_duplicate_name_conflict_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-cluster-scheduler-config-nonexistent-cluster-rejected", "deployments": [], "key": "sagemaker/create-cluster-scheduler-config-nonexistent-cluster-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateClusterSchedulerConfig", "sagemaker:ListClusterSchedulerConfigs", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_cluster_scheduler_config_nonexistent_cluster_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-compute-quota-duplicate-name-conflict", "deployments": [], "key": "sagemaker/create-compute-quota-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateComputeQuota", "sagemaker:DescribeComputeQuota", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_compute_quota_duplicate_name_conflict.py", "service": "sagemaker"} {"check_id": "sagemaker.create-compute-quota-negative-limit-rejected", "deployments": [], "key": "sagemaker/create-compute-quota-negative-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateComputeQuota", "sagemaker:ListComputeQuotas", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_compute_quota_negative_limit_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-domain-duplicate-name-rejected", "deployments": [], "key": "sagemaker/create-domain-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateDomain", "sagemaker:DeleteDomain", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:UpdateDomain"], "path": "behavioral/sagemaker/check_create_domain_duplicate_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-domain-invalid-vpc-config-rejected", "deployments": [], "key": "sagemaker/create-domain-invalid-vpc-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateDomain", "sagemaker:DeleteDomain", "sagemaker:DescribeDomain", "sagemaker:ListDomains"], "path": "behavioral/sagemaker/check_create_domain_invalid_vpc_config_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-domain-malformed-domain-name-rejected", "deployments": [], "key": "sagemaker/create-domain-malformed-domain-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateDomain", "sagemaker:DeleteDomain", "sagemaker:DescribeDomain", "sagemaker:ListDomains"], "path": "behavioral/sagemaker/check_create_domain_malformed_domain_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-domain-malformed-subnet-rejected", "deployments": [], "key": "sagemaker/create-domain-malformed-subnet-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sagemaker:CreateDomain", "sagemaker:DeleteDomain", "sagemaker:DescribeDomain", "sagemaker:ListDomains"], "path": "behavioral/sagemaker/check_create_domain_malformed_subnet_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-domain-malformed-vpc-config-rejected", "deployments": [], "key": "sagemaker/create-domain-malformed-vpc-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sagemaker:CreateDomain", "sagemaker:DeleteDomain", "sagemaker:DescribeDomain", "sagemaker:ListDomains"], "path": "behavioral/sagemaker/check_create_domain_malformed_vpc_config_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-endpoint-concurrent-duplicate-name-race", "deployments": [], "key": "sagemaker/create-endpoint-concurrent-duplicate-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint"], "path": "behavioral/sagemaker/check_create_endpoint_concurrent_duplicate_name_race.py", "service": "sagemaker"} {"check_id": "sagemaker.create-endpoint-config-invalid-instance-type-rejected", "deployments": [], "key": "sagemaker/create-endpoint-config-invalid-instance-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpointConfig"], "path": "behavioral/sagemaker/check_create_endpoint_config_invalid_instance_type_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-endpoint-config-malformed-instance-type-rejected", "deployments": [], "key": "sagemaker/create-endpoint-config-malformed-instance-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpointConfig", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_endpoint_config_malformed_instance_type_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-endpoint-config-missing-model-rejected", "deployments": [], "key": "sagemaker/create-endpoint-config-missing-model-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpointConfig"], "path": "behavioral/sagemaker/check_create_endpoint_config_missing_model_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-endpoint-malformed-config-name-rejected", "deployments": [], "key": "sagemaker/create-endpoint-malformed-config-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint"], "path": "behavioral/sagemaker/check_create_endpoint_malformed_config_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-endpoint-nonexistent-config-rejected", "deployments": [], "key": "sagemaker/create-endpoint-nonexistent-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint"], "path": "behavioral/sagemaker/check_create_endpoint_nonexistent_config_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-endpoint-referencing-deleting-config-wrong-state-rejected", "deployments": [], "key": "sagemaker/create-endpoint-referencing-deleting-config-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:ListEndpoints"], "path": "behavioral/sagemaker/check_create_endpoint_referencing_deleting_config_wrong_state_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-experiment-duplicate-name-fails", "deployments": [], "key": "sagemaker/create-experiment-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:DescribeExperiment"], "path": "behavioral/sagemaker/check_create_experiment_duplicate_name_fails.py", "service": "sagemaker"} {"check_id": "sagemaker.create-experiment-malformed-name-fails", "deployments": [], "key": "sagemaker/create-experiment-malformed-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment"], "path": "behavioral/sagemaker/check_create_experiment_malformed_name_fails.py", "service": "sagemaker"} {"check_id": "sagemaker.create-feature-group-duplicate-name-rejected", "deployments": [], "key": "sagemaker/create-feature-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker/check_create_feature_group_duplicate_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-feature-group-malformed-schema-rejected", "deployments": [], "key": "sagemaker/create-feature-group-malformed-schema-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker/check_create_feature_group_malformed_schema_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-hub-content-reference-missing-hub-not-found", "deployments": [], "key": "sagemaker/create-hub-content-reference-missing-hub-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateHub", "sagemaker:CreateHubContentReference", "sagemaker:DeleteHub", "sagemaker:DescribeHub"], "path": "behavioral/sagemaker/check_create_hub_content_reference_missing_hub_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-hub-content-reference-nonexistent-hub-rejected", "deployments": [], "key": "sagemaker/create-hub-content-reference-nonexistent-hub-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateHub", "sagemaker:CreateHubContentReference", "sagemaker:DeleteHub", "sagemaker:DeleteHubContentReference", "sagemaker:DescribeHub", "sagemaker:ListHubContents"], "path": "behavioral/sagemaker/check_create_hub_content_reference_nonexistent_hub_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-hub-content-reference-not-found", "deployments": [], "key": "sagemaker/create-hub-content-reference-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateHub", "sagemaker:CreateHubContentReference", "sagemaker:DeleteHub", "sagemaker:DeleteHubContentReference", "sagemaker:DescribeHub", "sagemaker:ListHubContents"], "path": "behavioral/sagemaker/check_create_hub_content_reference_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-hub-content-reference-permission-denied", "deployments": [], "key": "sagemaker/create-hub-content-reference-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateHub", "sagemaker:CreateHubContentReference", "sagemaker:DeleteHub", "sagemaker:DeleteHubContentReference", "sagemaker:DescribeHub", "sagemaker:ListHubContents", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_hub_content_reference_permission_denied.py", "service": "sagemaker"} {"check_id": "sagemaker.create-hub-content-reference-source-not-found", "deployments": [], "key": "sagemaker/create-hub-content-reference-source-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateHub", "sagemaker:CreateHubContentReference", "sagemaker:DeleteHub", "sagemaker:DeleteHubContentReference", "sagemaker:DescribeHub", "sagemaker:ListHubContents"], "path": "behavioral/sagemaker/check_create_hub_content_reference_source_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-hyper-parameter-tuning-job-out-of-range-rejected", "deployments": [], "key": "sagemaker/create-hyper-parameter-tuning-job-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:DescribeHyperParameterTuningJob", "sagemaker:StopHyperParameterTuningJob", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_hyper_parameter_tuning_job_out_of_range_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-hyperparameter-tuning-job-resource-limit-exceeded-rejected", "deployments": [], "key": "sagemaker/create-hyperparameter-tuning-job-resource-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:DescribeHyperParameterTuningJob", "sagemaker:StopHyperParameterTuningJob"], "path": "behavioral/sagemaker/check_create_hyperparameter_tuning_job_resource_limit_exceeded_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-image-version-missing-base-image-rejected", "deployments": [], "key": "sagemaker/create-image-version-missing-base-image-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateImage", "sagemaker:CreateImageVersion", "sagemaker:DeleteImage", "sagemaker:DeleteImageVersion", "sagemaker:DescribeImage", "sagemaker:DescribeImageVersion"], "path": "behavioral/sagemaker/check_create_image_version_missing_base_image_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-image-version-nonexistent-image-not-found-rejected", "deployments": [], "key": "sagemaker/create-image-version-nonexistent-image-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateImage", "sagemaker:CreateImageVersion", "sagemaker:DeleteImage", "sagemaker:DeleteImageVersion", "sagemaker:DescribeImage", "sagemaker:DescribeImageVersion", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_image_version_nonexistent_image_not_found_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-card-duplicate-name-conflict", "deployments": [], "key": "sagemaker/create-model-card-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCard"], "path": "behavioral/sagemaker/check_create_model_card_duplicate_name_conflict.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-card-duplicate-name-conflict-rejected", "deployments": [], "key": "sagemaker/create-model-card-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCard"], "path": "behavioral/sagemaker/check_create_model_card_duplicate_name_conflict_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-card-export-job-card-not-found", "deployments": [], "key": "sagemaker/create-model-card-export-job-card-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateModelCard", "sagemaker:CreateModelCardExportJob", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCardExportJob"], "path": "behavioral/sagemaker/check_create_model_card_export_job_card_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-card-export-job-missing-card", "deployments": [], "key": "sagemaker/create-model-card-export-job-missing-card", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:CreateModelCardExportJob", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCardExportJob", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_model_card_export_job_missing_card.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-card-export-job-missing-card-not-found", "deployments": [], "key": "sagemaker/create-model-card-export-job-missing-card-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:CreateModelCardExportJob", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCardExportJob", "sagemaker:ListModelCardExportJobs"], "path": "behavioral/sagemaker/check_create_model_card_export_job_missing_card_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-card-export-job-missing-model-card-not-found-rejected", "deployments": [], "key": "sagemaker/create-model-card-export-job-missing-model-card-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:CreateModelCardExportJob", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCardExportJob", "sagemaker:ListModelCardExportJobs"], "path": "behavioral/sagemaker/check_create_model_card_export_job_missing_model_card_not_found_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-card-export-job-not-found", "deployments": [], "key": "sagemaker/create-model-card-export-job-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateModelCard", "sagemaker:CreateModelCardExportJob", "sagemaker:DeleteModelCard", "sagemaker:ListModelCardExportJobs"], "path": "behavioral/sagemaker/check_create_model_card_export_job_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-malformed-container-image-rejected", "deployments": [], "key": "sagemaker/create-model-malformed-container-image-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/sagemaker/check_create_model_malformed_container_image_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-malformed-image-uri-rejected", "deployments": [], "key": "sagemaker/create-model-malformed-image-uri-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/sagemaker/check_create_model_malformed_image_uri_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-package-client-token-replay-no-second-version", "deployments": [], "key": "sagemaker/create-model-package-client-token-replay-no-second-version", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:ListModelPackages"], "path": "behavioral/sagemaker/check_create_model_package_client_token_replay_no_second_version.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-package-concurrent-version-assignment", "deployments": [], "key": "sagemaker/create-model-package-concurrent-version-assignment", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:ListModelPackages"], "path": "behavioral/sagemaker/check_create_model_package_concurrent_version_assignment.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-package-duplicate-name-conflict", "deployments": [], "key": "sagemaker/create-model-package-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:CreateModelPackage", "sagemaker:DeleteModelPackage", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_create_model_package_duplicate_name_conflict.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-package-duplicate-name-version-conflict-rejected", "deployments": [], "key": "sagemaker/create-model-package-duplicate-name-version-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:CreateModelPackage", "sagemaker:DeleteModelPackage", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_create_model_package_duplicate_name_version_conflict_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-package-duplicate-version-conflict", "deployments": [], "key": "sagemaker/create-model-package-duplicate-version-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_create_model_package_duplicate_version_conflict.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-package-duplicate-version-rejected", "deployments": [], "key": "sagemaker/create-model-package-duplicate-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:DeleteModelPackage", "sagemaker:DescribeModelPackage", "sagemaker:ListModelPackages", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_model_package_duplicate_version_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-model-package-malformed-image-uri-rejected", "deployments": [], "key": "sagemaker/create-model-package-malformed-image-uri-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:CreateModelPackage", "sagemaker:DeleteModelPackage", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_create_model_package_malformed_image_uri_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-notebook-instance-nonexistent-role-arn-accepted-then-fails", "deployments": [], "key": "sagemaker/create-notebook-instance-nonexistent-role-arn-accepted-then-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sagemaker:CreateNotebookInstance", "sagemaker:DeleteNotebookInstance", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_notebook_instance_nonexistent_role_arn_accepted_then_fails.py", "service": "sagemaker"} {"check_id": "sagemaker.create-partner-app-presigned-url-app-not-found", "deployments": [], "key": "sagemaker/create-partner-app-presigned-url-app-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreatePartnerAppPresignedUrl", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_partner_app_presigned_url_app_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-partner-app-presigned-url-missing-app", "deployments": [], "key": "sagemaker/create-partner-app-presigned-url-missing-app", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreatePartnerAppPresignedUrl", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_partner_app_presigned_url_missing_app.py", "service": "sagemaker"} {"check_id": "sagemaker.create-pipeline-cyclic-dependson-rejected", "deployments": [], "key": "sagemaker/create-pipeline-cyclic-dependson-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sagemaker:CreatePipeline", "sagemaker:DeletePipeline", "sagemaker:DescribePipeline", "sagemaker:ListPipelines"], "path": "behavioral/sagemaker/check_create_pipeline_cyclic_dependson_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-pipeline-missing-dependency-not-found", "deployments": [], "key": "sagemaker/create-pipeline-missing-dependency-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sagemaker:CreatePipeline", "sagemaker:DeletePipeline", "sagemaker:DescribePipeline", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_pipeline_missing_dependency_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-pipeline-missing-role-not-found", "deployments": [], "key": "sagemaker/create-pipeline-missing-role-not-found", "labels": ["axis:negative-delivery", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreatePipeline", "sagemaker:DeletePipeline", "sagemaker:DescribePipelineExecution", "sagemaker:ListPipelineExecutionSteps", "sagemaker:StartPipelineExecution", "sagemaker:StopPipelineExecution", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_pipeline_missing_role_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.create-training-job-invalid-instance-count-rejected", "deployments": [], "key": "sagemaker/create-training-job-invalid-instance-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_create_training_job_invalid_instance_count_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-training-job-invalid-instance-type-rejected", "deployments": [], "key": "sagemaker/create-training-job-invalid-instance-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_create_training_job_invalid_instance_type_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-training-job-invalid-role-arn-denied", "deployments": [], "key": "sagemaker/create-training-job-invalid-role-arn-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_create_training_job_invalid_role_arn_denied.py", "service": "sagemaker"} {"check_id": "sagemaker.create-training-job-negative-instance-count-rejected", "deployments": [], "key": "sagemaker/create-training-job-negative-instance-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:ListTrainingJobs", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_create_training_job_negative_instance_count_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-training-job-out-of-range-instance-count-rejected", "deployments": [], "key": "sagemaker/create-training-job-out-of-range-instance-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_create_training_job_out_of_range_instance_count_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-training-job-out-of-range-volume-size-rejected", "deployments": [], "key": "sagemaker/create-training-job-out-of-range-volume-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_create_training_job_out_of_range_volume_size_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-trial-missing-experiment-rejected", "deployments": [], "key": "sagemaker/create-trial-missing-experiment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DescribeTrial"], "path": "behavioral/sagemaker/check_create_trial_missing_experiment_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-trial-nonexistent-experiment-rejected", "deployments": [], "key": "sagemaker/create-trial-nonexistent-experiment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DescribeTrial"], "path": "behavioral/sagemaker/check_create_trial_nonexistent_experiment_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-user-profile-duplicate-name-denied", "deployments": [], "key": "sagemaker/create-user-profile-duplicate-name-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile", "sagemaker:ListUserProfiles"], "path": "behavioral/sagemaker/check_create_user_profile_duplicate_name_denied.py", "service": "sagemaker"} {"check_id": "sagemaker.create-user-profile-duplicate-name-rejected", "deployments": [], "key": "sagemaker/create-user-profile-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile", "sagemaker:ListUserProfiles"], "path": "behavioral/sagemaker/check_create_user_profile_duplicate_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.create-user-profile-missing-domain-rejected", "deployments": [], "key": "sagemaker/create-user-profile-missing-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_create_user_profile_missing_domain_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-ai-workload-config-idempotent-not-found-rejected", "deployments": [], "key": "sagemaker/delete-ai-workload-config-idempotent-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateAIWorkloadConfig", "sagemaker:DeleteAIWorkloadConfig", "sagemaker:DescribeAIWorkloadConfig"], "path": "behavioral/sagemaker/check_delete_ai_workload_config_idempotent_not_found_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-ai-workload-config-in-use-blocks-delete", "deployments": [], "key": "sagemaker/delete-ai-workload-config-in-use-blocks-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateAIWorkloadConfig", "sagemaker:DeleteAIWorkloadConfig", "sagemaker:DescribeAIWorkloadConfig"], "path": "behavioral/sagemaker/check_delete_ai_workload_config_in_use_blocks_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-algorithm-conflict-while-referenced", "deployments": [], "key": "sagemaker/delete-algorithm-conflict-while-referenced", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sagemaker:CreateAlgorithm", "sagemaker:CreateModelPackage", "sagemaker:DeleteAlgorithm", "sagemaker:DeleteModelPackage", "sagemaker:DescribeAlgorithm", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_delete_algorithm_conflict_while_referenced.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-algorithm-conflict-while-referenced-accepted", "deployments": [], "key": "sagemaker/delete-algorithm-conflict-while-referenced-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateAlgorithm", "sagemaker:CreateTrainingJob", "sagemaker:DeleteAlgorithm", "sagemaker:DescribeAlgorithm", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_delete_algorithm_conflict_while_referenced_accepted.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-algorithm-in-use-conflict", "deployments": [], "key": "sagemaker/delete-algorithm-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sagemaker:CreateAlgorithm", "sagemaker:CreateModelPackage", "sagemaker:DeleteAlgorithm", "sagemaker:DeleteModelPackage", "sagemaker:DescribeAlgorithm"], "path": "behavioral/sagemaker/check_delete_algorithm_in_use_conflict.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-algorithm-in-use-conflict-accepted", "deployments": [], "key": "sagemaker/delete-algorithm-in-use-conflict-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateAlgorithm", "sagemaker:CreateModelPackage", "sagemaker:DeleteAlgorithm", "sagemaker:DeleteModelPackage", "sagemaker:DescribeAlgorithm", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_delete_algorithm_in_use_conflict_accepted.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-algorithm-in-use-rejected", "deployments": [], "key": "sagemaker/delete-algorithm-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateAlgorithm", "sagemaker:DeleteAlgorithm", "sagemaker:DescribeAlgorithm"], "path": "behavioral/sagemaker/check_delete_algorithm_in_use_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-app-already-deleted-wrong-state-rejected", "deployments": [], "key": "sagemaker/delete-app-already-deleted-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateApp", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteApp", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_delete_app_already_deleted_wrong_state_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-app-double-delete-rejected", "deployments": [], "key": "sagemaker/delete-app-double-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateApp", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteApp", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_delete_app_double_delete_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-app-not-found", "deployments": [], "key": "sagemaker/delete-app-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:DeleteApp", "sagemaker:DescribeApp"], "path": "behavioral/sagemaker/check_delete_app_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-image-with-versions-accepted", "deployments": [], "key": "sagemaker/delete-image-with-versions-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateImage", "sagemaker:CreateImageVersion", "sagemaker:DeleteImage", "sagemaker:DeleteImageVersion", "sagemaker:DescribeImage", "sagemaker:DescribeImageVersion", "sagemaker:ListImages", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_delete_image_with_versions_accepted.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-model-package-group-policy-removes-policy", "deployments": [], "key": "sagemaker/delete-model-package-group-policy-removes-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_delete_model_package_group_policy_removes_policy.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-model-package-group-policy-then-get-not-found", "deployments": [], "key": "sagemaker/delete-model-package-group-policy-then-get-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_delete_model_package_group_policy_then_get_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-model-package-group-with-packages-conflict-rejected", "deployments": [], "key": "sagemaker/delete-model-package-group-with-packages-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:DescribeModelPackageGroup", "sagemaker:ListModelPackages"], "path": "behavioral/sagemaker/check_delete_model_package_group_with_packages_conflict_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-model-package-group-with-packages-rejected", "deployments": [], "key": "sagemaker/delete-model-package-group-with-packages-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackageGroup", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_delete_model_package_group_with_packages_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-model-package-group-with-versions-conflicts", "deployments": [], "key": "sagemaker/delete-model-package-group-with-versions-conflicts", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:DescribeModelPackageGroup", "sagemaker:ListModelPackageGroups", "sagemaker:ListModelPackages"], "path": "behavioral/sagemaker/check_delete_model_package_group_with_versions_conflicts.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-model-package-group-with-versions-rejected", "deployments": [], "key": "sagemaker/delete-model-package-group-with-versions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:DescribeModelPackageGroup", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_delete_model_package_group_with_versions_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.delete-tags-removes-key", "deployments": [], "key": "sagemaker/delete-tags-removes-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AddTags", "sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:DeleteTags", "sagemaker:ListTags"], "path": "behavioral/sagemaker/check_delete_tags_removes_key.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-domain-cfn-presigned-url-works", "deployments": [], "key": "sagemaker/deploy-domain-cfn-presigned-url-works", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain"], "path": "behavioral/sagemaker/check_deploy_domain_cfn_presigned_url_works.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-endpoint-cfn-invoke-succeeds", "deployments": [], "key": "sagemaker/deploy-endpoint-cfn-invoke-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_deploy_endpoint_cfn_invoke_succeeds.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-endpoint-cfn-serves-config", "deployments": [], "key": "sagemaker/deploy-endpoint-cfn-serves-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob", "sagemaker:UpdateEndpoint"], "path": "behavioral/sagemaker/check_deploy_endpoint_cfn_serves_config.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-endpoint-cfn-serves-inference-component", "deployments": [], "key": "sagemaker/deploy-endpoint-cfn-serves-inference-component", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "logs:DescribeLogStreams", "logs:GetLogEvents", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateInferenceComponent", "sagemaker:DeleteInferenceComponent", "sagemaker:DescribeEndpoint", "sagemaker:DescribeInferenceComponent"], "path": "behavioral/sagemaker/check_deploy_endpoint_cfn_serves_inference_component.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-endpoint-cfn-then-invoke-succeeds", "deployments": [], "key": "sagemaker/deploy-endpoint-cfn-then-invoke-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_deploy_endpoint_cfn_then_invoke_succeeds.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-endpoint-stack-reaches-inservice-and-serves", "deployments": [], "key": "sagemaker/deploy-endpoint-stack-reaches-inservice-and-serves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_deploy_endpoint_stack_reaches_inservice_and_serves.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-model-endpoint-cfn-serves-inference", "deployments": [], "key": "sagemaker/deploy-model-endpoint-cfn-serves-inference", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_deploy_model_endpoint_cfn_serves_inference.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-model-package-group-policy-cfn-enforced", "deployments": [], "key": "sagemaker/deploy-model-package-group-policy-cfn-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:GetModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_deploy_model_package_group_policy_cfn_enforced.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-notebook-instance-cfn-behaves", "deployments": [], "key": "sagemaker/deploy-notebook-instance-cfn-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance"], "path": "behavioral/sagemaker/check_deploy_notebook_instance_cfn_behaves.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-notebook-instance-cfn-invalid-role-rejected", "deployments": [], "key": "sagemaker/deploy-notebook-instance-cfn-invalid-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:DescribeNotebookInstance"], "path": "behavioral/sagemaker/check_deploy_notebook_instance_cfn_invalid_role_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-notebook-instance-cfn-presigned-url-succeeds", "deployments": [], "key": "sagemaker/deploy-notebook-instance-cfn-presigned-url-succeeds", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance"], "path": "behavioral/sagemaker/check_deploy_notebook_instance_cfn_presigned_url_succeeds.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-notebook-instance-cfn-presigned-url-works", "deployments": [], "key": "sagemaker/deploy-notebook-instance-cfn-presigned-url-works", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance"], "path": "behavioral/sagemaker/check_deploy_notebook_instance_cfn_presigned_url_works.py", "service": "sagemaker"} {"check_id": "sagemaker.deploy-notebook-instance-cloudformation-presigned-url-accessible", "deployments": [], "key": "sagemaker/deploy-notebook-instance-cloudformation-presigned-url-accessible", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance"], "path": "behavioral/sagemaker/check_deploy_notebook_instance_cloudformation_presigned_url_accessible.py", "service": "sagemaker"} {"check_id": "sagemaker.describe-code-repository-not-found", "deployments": [], "key": "sagemaker/describe-code-repository-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:DescribeCodeRepository"], "path": "behavioral/sagemaker/check_describe_code_repository_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.describe-experiment-not-found", "deployments": [], "key": "sagemaker/describe-experiment-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:DescribeExperiment"], "path": "behavioral/sagemaker/check_describe_experiment_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.domain-create-describe-delete-lifecycle", "deployments": [], "key": "sagemaker/domain-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "efs:DeleteFileSystem", "efs:DeleteMountTarget", "efs:DescribeFileSystems", "efs:DescribeMountTargets", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sagemaker:CreateDomain", "sagemaker:DeleteDomain", "sagemaker:DescribeDomain"], "path": "behavioral/sagemaker/check_domain_create_describe_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.domain-delete-with-active-user-profile-rejected", "deployments": [], "key": "sagemaker/domain-delete-with-active-user-profile-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_domain_delete_with_active_user_profile_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.domain-lifecycle-transitions", "deployments": [], "key": "sagemaker/domain-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateDomain", "sagemaker:DeleteDomain", "sagemaker:DescribeDomain"], "path": "behavioral/sagemaker/check_domain_lifecycle_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.domain-pending-refuses-user-profile-space-and-presigned-url", "deployments": [], "key": "sagemaker/domain-pending-refuses-user-profile-space-and-presigned-url", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateDomain", "sagemaker:CreatePresignedDomainUrl", "sagemaker:CreateSpace", "sagemaker:CreateUserProfile", "sagemaker:DeleteDomain", "sagemaker:DeleteSpace", "sagemaker:DeleteUserProfile", "sagemaker:DescribeDomain", "sagemaker:DescribeSpace", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_domain_pending_refuses_user_profile_space_and_presigned_url.py", "service": "sagemaker"} {"check_id": "sagemaker.domain-user-profile-app-teardown-cascade", "deployments": [], "key": "sagemaker/domain-user-profile-app-teardown-cascade", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateApp", "sagemaker:CreateDomain", "sagemaker:CreateUserProfile", "sagemaker:DeleteApp", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile", "sagemaker:ListApps"], "path": "behavioral/sagemaker/check_domain_user_profile_app_teardown_cascade.py", "service": "sagemaker"} {"check_id": "sagemaker.duplicate-model-card-creation-rejected", "deployments": [], "key": "sagemaker/duplicate-model-card-creation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCard"], "path": "behavioral/sagemaker/check_duplicate_model_card_creation_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-ai-workload-config-delete-succeeds-while-benchmark-job-references-it", "deployments": [], "key": "sagemaker/e2e-ai-workload-config-delete-succeeds-while-benchmark-job-references-it", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateAIBenchmarkJob", "sagemaker:CreateAIWorkloadConfig", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteAIBenchmarkJob", "sagemaker:DeleteAIWorkloadConfig", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeAIBenchmarkJob", "sagemaker:DescribeAIWorkloadConfig", "sagemaker:DescribeEndpoint", "sagemaker:StopAIBenchmarkJob"], "path": "behavioral/sagemaker/check_e2e_ai_workload_config_delete_succeeds_while_benchmark_job_references_it.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-cluster-node-delete-then-reboot-fails", "deployments": [], "key": "sagemaker/e2e-cluster-node-delete-then-reboot-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes", "sagemaker:BatchRebootClusterNodes", "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode"], "path": "behavioral/sagemaker/check_e2e_cluster_node_delete_then_reboot_fails.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-endpoint-create-invoke-scale-teardown", "deployments": [], "key": "sagemaker/e2e-endpoint-create-invoke-scale-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_e2e_endpoint_create_invoke_scale_teardown.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-experiment-trial-component-association-tracks-run", "deployments": [], "key": "sagemaker/e2e-experiment-trial-component-association-tracks-run", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeExperiment", "sagemaker:DescribeTrial", "sagemaker:DescribeTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_e2e_experiment_trial_component_association_tracks_run.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-experiment-trial-training-job-metrics-flow", "deployments": [], "key": "sagemaker/e2e-experiment-trial-training-job-metrics-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateExperiment", "sagemaker:CreateTrainingJob", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrainingJob", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_e2e_experiment_trial_training_job_metrics_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-model-package-approval-to-endpoint-deploy-flow", "deployments": [], "key": "sagemaker/e2e-model-package-approval-to-endpoint-deploy-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeModel", "sagemaker:DescribeModelPackageGroup", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_e2e_model_package_approval_to_endpoint_deploy_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-model-package-group-policy-controls-access-lifecycle", "deployments": [], "key": "sagemaker/e2e-model-package-group-policy-controls-access-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:BatchDescribeModelPackage", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_e2e_model_package_group_policy_controls_access_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-model-package-group-policy-full-flow", "deployments": [], "key": "sagemaker/e2e-model-package-group-policy-full-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:DescribeModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_e2e_model_package_group_policy_full_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-model-package-to-endpoint-serving-flow", "deployments": [], "key": "sagemaker/e2e-model-package-to-endpoint-serving-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateModelPackage", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DeleteModelPackage", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:DescribeModelPackage", "sagemaker:DescribeTrainingJob"], "path": "behavioral/sagemaker/check_e2e_model_package_to_endpoint_serving_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-training-job-artifact-propagates-through-model-to-endpoint", "deployments": [], "key": "sagemaker/e2e-training-job-artifact-propagates-through-model-to-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_e2e_training_job_artifact_propagates_through_model_to_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-training-job-to-served-endpoint", "deployments": [], "key": "sagemaker/e2e-training-job-to-served-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_e2e_training_job_to_served_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-training-to-endpoint-inference-flow", "deployments": [], "key": "sagemaker/e2e-training-to-endpoint-inference-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "s3:CreateBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:DescribeTrainingJob"], "path": "behavioral/sagemaker/check_e2e_training_to_endpoint_inference_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-trial-component-association-lineage-flow", "deployments": [], "key": "sagemaker/e2e-trial-component-association-lineage-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeExperiment", "sagemaker:DescribeTrial", "sagemaker:DescribeTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_e2e_trial_component_association_lineage_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.e2e-trial-component-association-nonexistent-trial-rejected", "deployments": [], "key": "sagemaker/e2e-trial-component-association-nonexistent-trial-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_e2e_trial_component_association_nonexistent_trial_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.endpoint-config-create-describe-delete", "deployments": [], "key": "sagemaker/endpoint-config-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpointConfig"], "path": "behavioral/sagemaker/check_endpoint_config_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.endpoint-config-endpoint-full-lifecycle", "deployments": [], "key": "sagemaker/endpoint-config-endpoint-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig"], "path": "behavioral/sagemaker/check_endpoint_config_endpoint_full_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.endpoint-config-variant-weight-numeric-precision-preserved", "deployments": [], "key": "sagemaker/endpoint-config-variant-weight-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpointConfig"], "path": "behavioral/sagemaker/check_endpoint_config_variant_weight_numeric_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.endpoint-lifecycle-config-to-inservice-to-delete", "deployments": [], "key": "sagemaker/endpoint-lifecycle-config-to-inservice-to-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_endpoint_lifecycle_config_to_inservice_to_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.endpoint-lifecycle-creating-to-inservice-to-gone", "deployments": [], "key": "sagemaker/endpoint-lifecycle-creating-to-inservice-to-gone", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_endpoint_lifecycle_creating_to_inservice_to_gone.py", "service": "sagemaker"} {"check_id": "sagemaker.endpoint-managed-inservice-transition", "deployments": [], "key": "sagemaker/endpoint-managed-inservice-transition", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_endpoint_managed_inservice_transition.py", "service": "sagemaker"} {"check_id": "sagemaker.endpoint-resource-limit-enforced-server-side", "deployments": [], "key": "sagemaker/endpoint-resource-limit-enforced-server-side", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:ListEndpoints"], "path": "behavioral/sagemaker/check_endpoint_resource_limit_enforced_server_side.py", "service": "sagemaker"} {"check_id": "sagemaker.experiment-create-describe-delete", "deployments": [], "key": "sagemaker/experiment-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:DescribeExperiment"], "path": "behavioral/sagemaker/check_experiment_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.experiment-trial-component-association-flow", "deployments": [], "key": "sagemaker/experiment-trial-component-association-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeExperiment", "sagemaker:DescribeTrial", "sagemaker:DescribeTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_experiment_trial_component_association_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.feature-group-create-active-delete", "deployments": [], "key": "sagemaker/feature-group-create-active-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup", "sagemaker:UpdateFeatureGroup"], "path": "behavioral/sagemaker/check_feature_group_create_active_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.feature-group-create-active-delete-lifecycle", "deployments": [], "key": "sagemaker/feature-group-create-active-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker/check_feature_group_create_active_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.feature-group-create-describe-delete", "deployments": [], "key": "sagemaker/feature-group-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker/check_feature_group_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.feature-group-create-to-deleted-state", "deployments": [], "key": "sagemaker/feature-group-create-to-deleted-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup", "sagemaker:UpdateFeatureGroup"], "path": "behavioral/sagemaker/check_feature_group_create_to_deleted_state.py", "service": "sagemaker"} {"check_id": "sagemaker.feature-group-duplicate-name-rejected", "deployments": [], "key": "sagemaker/feature-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker/check_feature_group_duplicate_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.feature-group-empty-vs-absent-field-distinction-preserved", "deployments": [], "key": "sagemaker/feature-group-empty-vs-absent-field-distinction-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:ListTags"], "path": "behavioral/sagemaker/check_feature_group_empty_vs_absent_field_distinction_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.feature-group-event-timestamp-preserved", "deployments": [], "key": "sagemaker/feature-group-event-timestamp-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker/check_feature_group_event_timestamp_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.feature-group-offline-store-permission-denied-create-failed-rejected", "deployments": [], "key": "sagemaker/feature-group-offline-store-permission-denied-create-failed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker/check_feature_group_offline_store_permission_denied_create_failed_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.get-lineage-group-policy-absent-by-default", "deployments": [], "key": "sagemaker/get-lineage-group-policy-absent-by-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeLineageGroup", "sagemaker:GetLineageGroupPolicy", "sagemaker:ListLineageGroups"], "path": "behavioral/sagemaker/check_get_lineage_group_policy_absent_by_default.py", "service": "sagemaker"} {"check_id": "sagemaker.get-lineage-group-policy-missing", "deployments": [], "key": "sagemaker/get-lineage-group-policy-missing", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeLineageGroup", "sagemaker:GetLineageGroupPolicy", "sagemaker:ListLineageGroups"], "path": "behavioral/sagemaker/check_get_lineage_group_policy_missing.py", "service": "sagemaker"} {"check_id": "sagemaker.get-lineage-group-policy-missing-not-found", "deployments": [], "key": "sagemaker/get-lineage-group-policy-missing-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateContext", "sagemaker:DeleteContext", "sagemaker:DescribeLineageGroup", "sagemaker:GetLineageGroupPolicy"], "path": "behavioral/sagemaker/check_get_lineage_group_policy_missing_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.get-lineage-group-policy-not-found", "deployments": [], "key": "sagemaker/get-lineage-group-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeLineageGroup", "sagemaker:GetLineageGroupPolicy", "sagemaker:ListLineageGroups"], "path": "behavioral/sagemaker/check_get_lineage_group_policy_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.get-lineage-group-policy-not-found-without-policy", "deployments": [], "key": "sagemaker/get-lineage-group-policy-not-found-without-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeLineageGroup", "sagemaker:GetLineageGroupPolicy", "sagemaker:ListLineageGroups"], "path": "behavioral/sagemaker/check_get_lineage_group_policy_not_found_without_policy.py", "service": "sagemaker"} {"check_id": "sagemaker.get-model-package-group-policy-missing", "deployments": [], "key": "sagemaker/get-model-package-group-policy-missing", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy"], "path": "behavioral/sagemaker/check_get_model_package_group_policy_missing.py", "service": "sagemaker"} {"check_id": "sagemaker.get-sagemaker-servicecatalog-portfolio-status-consistent-read", "deployments": [], "key": "sagemaker/get-sagemaker-servicecatalog-portfolio-status-consistent-read", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_get_sagemaker_servicecatalog_portfolio_status_consistent_read.py", "service": "sagemaker"} {"check_id": "sagemaker.get-sagemaker-servicecatalog-portfolio-status-idempotent-read", "deployments": [], "key": "sagemaker/get-sagemaker-servicecatalog-portfolio-status-idempotent-read", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_get_sagemaker_servicecatalog_portfolio_status_idempotent_read.py", "service": "sagemaker"} {"check_id": "sagemaker.get-sagemaker-servicecatalog-portfolio-status-reflects-enablement", "deployments": [], "key": "sagemaker/get-sagemaker-servicecatalog-portfolio-status-reflects-enablement", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:DisableSagemakerServicecatalogPortfolio", "sagemaker:EnableSagemakerServicecatalogPortfolio", "sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_get_sagemaker_servicecatalog_portfolio_status_reflects_enablement.py", "service": "sagemaker"} {"check_id": "sagemaker.get-sagemaker-servicecatalog-portfolio-status-valid-enum", "deployments": [], "key": "sagemaker/get-sagemaker-servicecatalog-portfolio-status-valid-enum", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:DisableSagemakerServicecatalogPortfolio", "sagemaker:EnableSagemakerServicecatalogPortfolio", "sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_get_sagemaker_servicecatalog_portfolio_status_valid_enum.py", "service": "sagemaker"} {"check_id": "sagemaker.get-scaling-configuration-recommendation-endpoint-not-found", "deployments": [], "key": "sagemaker/get-scaling-configuration-recommendation-endpoint-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:DescribeInferenceRecommendationsJob", "sagemaker:GetScalingConfigurationRecommendation", "sagemaker:ListInferenceRecommendationsJobs"], "path": "behavioral/sagemaker/check_get_scaling_configuration_recommendation_endpoint_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.get-scaling-configuration-recommendation-for-valid-endpoint", "deployments": [], "key": "sagemaker/get-scaling-configuration-recommendation-for-valid-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:DescribeInferenceRecommendationsJob", "sagemaker:GetScalingConfigurationRecommendation", "sagemaker:ListInferenceRecommendationsJobs"], "path": "behavioral/sagemaker/check_get_scaling_configuration_recommendation_for_valid_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.get-scaling-configuration-recommendation-matches-endpoint", "deployments": [], "key": "sagemaker/get-scaling-configuration-recommendation-matches-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:GetScalingConfigurationRecommendation", "sagemaker:ListInferenceRecommendationsJobs"], "path": "behavioral/sagemaker/check_get_scaling_configuration_recommendation_matches_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.get-scaling-configuration-recommendation-not-found", "deployments": [], "key": "sagemaker/get-scaling-configuration-recommendation-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:GetScalingConfigurationRecommendation"], "path": "behavioral/sagemaker/check_get_scaling_configuration_recommendation_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.get-scaling-configuration-recommendation-not-found-for-missing-endpoint", "deployments": [], "key": "sagemaker/get-scaling-configuration-recommendation-not-found-for-missing-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:DescribeInferenceRecommendationsJob", "sagemaker:GetScalingConfigurationRecommendation", "sagemaker:ListInferenceRecommendationsJobs"], "path": "behavioral/sagemaker/check_get_scaling_configuration_recommendation_not_found_for_missing_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.get-scaling-configuration-recommendation-references-endpoint", "deployments": [], "key": "sagemaker/get-scaling-configuration-recommendation-references-endpoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateInferenceRecommendationsJob", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeInferenceRecommendationsJob", "sagemaker:DescribeTrainingJob", "sagemaker:GetScalingConfigurationRecommendation", "sagemaker:ListInferenceRecommendationsJobSteps", "sagemaker:StopInferenceRecommendationsJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_get_scaling_configuration_recommendation_references_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.get-scaling-configuration-recommendation-unknown-endpoint-not-found", "deployments": [], "key": "sagemaker/get-scaling-configuration-recommendation-unknown-endpoint-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:DescribeInferenceRecommendationsJob", "sagemaker:GetScalingConfigurationRecommendation", "sagemaker:ListInferenceRecommendationsJobs"], "path": "behavioral/sagemaker/check_get_scaling_configuration_recommendation_unknown_endpoint_not_found.py", "service": "sagemaker"} {"check_id": "sagemaker.get-search-suggestions-matches-created-resource", "deployments": [], "key": "sagemaker/get-search-suggestions-matches-created-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:GetSearchSuggestions"], "path": "behavioral/sagemaker/check_get_search_suggestions_matches_created_resource.py", "service": "sagemaker"} {"check_id": "sagemaker.get-search-suggestions-matches-resource-schema", "deployments": [], "key": "sagemaker/get-search-suggestions-matches-resource-schema", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:GetSearchSuggestions"], "path": "behavioral/sagemaker/check_get_search_suggestions_matches_resource_schema.py", "service": "sagemaker"} {"check_id": "sagemaker.get-search-suggestions-reflects-created-resource", "deployments": [], "key": "sagemaker/get-search-suggestions-reflects-created-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:GetSearchSuggestions"], "path": "behavioral/sagemaker/check_get_search_suggestions_reflects_created_resource.py", "service": "sagemaker"} {"check_id": "sagemaker.get-search-suggestions-reflects-existing-resources", "deployments": [], "key": "sagemaker/get-search-suggestions-reflects-existing-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrainingJob", "sagemaker:GetSearchSuggestions", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_get_search_suggestions_reflects_existing_resources.py", "service": "sagemaker"} {"check_id": "sagemaker.get-search-suggestions-returns-results-for-existing-resource", "deployments": [], "key": "sagemaker/get-search-suggestions-returns-results-for-existing-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:GetSearchSuggestions"], "path": "behavioral/sagemaker/check_get_search_suggestions_returns_results_for_existing_resource.py", "service": "sagemaker"} {"check_id": "sagemaker.hub-create-describe-delete", "deployments": [], "key": "sagemaker/hub-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateHub", "sagemaker:DeleteHub", "sagemaker:DescribeHub"], "path": "behavioral/sagemaker/check_hub_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.hyperparameter-tuning-job-managed-best-job-population", "deployments": [], "key": "sagemaker/hyperparameter-tuning-job-managed-best-job-population", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:DeleteHyperParameterTuningJob", "sagemaker:DescribeHyperParameterTuningJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopHyperParameterTuningJob"], "path": "behavioral/sagemaker/check_hyperparameter_tuning_job_managed_best_job_population.py", "service": "sagemaker"} {"check_id": "sagemaker.image-delete-with-active-version-accepted", "deployments": [], "key": "sagemaker/image-delete-with-active-version-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateImage", "sagemaker:CreateImageVersion", "sagemaker:DeleteImage", "sagemaker:DeleteImageVersion", "sagemaker:DescribeImage", "sagemaker:DescribeImageVersion", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_image_delete_with_active_version_accepted.py", "service": "sagemaker"} {"check_id": "sagemaker.image-version-create-describe-delete", "deployments": [], "key": "sagemaker/image-version-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateImage", "sagemaker:CreateImageVersion", "sagemaker:DeleteImage", "sagemaker:DeleteImageVersion", "sagemaker:DescribeImage", "sagemaker:DescribeImageVersion", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_image_version_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.inference-component-requires-inservice-endpoint-accepted", "deployments": [], "key": "sagemaker/inference-component-requires-inservice-endpoint-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateInferenceComponent", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteInferenceComponent", "sagemaker:DescribeEndpoint", "sagemaker:DescribeInferenceComponent"], "path": "behavioral/sagemaker/check_inference_component_requires_inservice_endpoint_accepted.py", "service": "sagemaker"} {"check_id": "sagemaker.lineage-entity-association-lifecycle", "deployments": [], "key": "sagemaker/lineage-entity-association-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AddAssociation", "sagemaker:CreateAction", "sagemaker:CreateArtifact", "sagemaker:CreateContext", "sagemaker:DeleteAction", "sagemaker:DeleteArtifact", "sagemaker:DeleteAssociation", "sagemaker:DeleteContext", "sagemaker:DescribeAction", "sagemaker:ListAssociations"], "path": "behavioral/sagemaker/check_lineage_entity_association_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.list-code-repositories-next-token-pagination-exact", "deployments": [], "key": "sagemaker/list-code-repositories-next-token-pagination-exact", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateCodeRepository", "sagemaker:DeleteCodeRepository", "sagemaker:ListCodeRepositories"], "path": "behavioral/sagemaker/check_list_code_repositories_next_token_pagination_exact.py", "service": "sagemaker"} {"check_id": "sagemaker.list-code-repositories-reflects-created", "deployments": [], "key": "sagemaker/list-code-repositories-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateCodeRepository", "sagemaker:DeleteCodeRepository", "sagemaker:ListCodeRepositories"], "path": "behavioral/sagemaker/check_list_code_repositories_reflects_created.py", "service": "sagemaker"} {"check_id": "sagemaker.max-runtime-in-seconds-stops-the-job-and-a-twin-inside-the-limit-completes", "deployments": [], "key": "sagemaker/max-runtime-in-seconds-stops-the-job-and-a-twin-inside-the-limit-completes", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:ListTrainingJobs", "sagemaker:StopTrainingJob", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_max_runtime_in_seconds_stops_the_job_and_a_twin_inside_the_limit_completes.py", "service": "sagemaker"} {"check_id": "sagemaker.missing-permission-describe-artifact-rejected", "deployments": [], "key": "sagemaker/missing-permission-describe-artifact-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateArtifact", "sagemaker:DeleteArtifact", "sagemaker:DescribeArtifact", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_missing_permission_describe_artifact_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-card-archived-update-rejected", "deployments": [], "key": "sagemaker/model-card-archived-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCard", "sagemaker:UpdateModelCard"], "path": "behavioral/sagemaker/check_model_card_archived_update_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-card-create-describe-delete", "deployments": [], "key": "sagemaker/model-card-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCard", "sagemaker:UpdateModelCard"], "path": "behavioral/sagemaker/check_model_card_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.model-card-lifecycle-transitions", "deployments": [], "key": "sagemaker/model-card-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCard", "sagemaker:UpdateModelCard"], "path": "behavioral/sagemaker/check_model_card_lifecycle_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.model-card-unicode-content-round-trip", "deployments": [], "key": "sagemaker/model-card-unicode-content-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCard"], "path": "behavioral/sagemaker/check_model_card_unicode_content_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.model-card-unicode-content-roundtrip", "deployments": [], "key": "sagemaker/model-card-unicode-content-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelCard", "sagemaker:DeleteModelCard", "sagemaker:DescribeModelCard"], "path": "behavioral/sagemaker/check_model_card_unicode_content_roundtrip.py", "service": "sagemaker"} {"check_id": "sagemaker.model-create-describe-delete", "deployments": [], "key": "sagemaker/model-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/sagemaker/check_model_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.model-create-describe-delete-404", "deployments": [], "key": "sagemaker/model-create-describe-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel", "sagemaker:ListModels"], "path": "behavioral/sagemaker/check_model_create_describe_delete_404.py", "service": "sagemaker"} {"check_id": "sagemaker.model-create-describe-delete-lifecycle", "deployments": [], "key": "sagemaker/model-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/sagemaker/check_model_create_describe_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.model-create-duplicate-name-rejected", "deployments": [], "key": "sagemaker/model-create-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateModel", "sagemaker:DeleteModel", "sagemaker:DescribeModel"], "path": "behavioral/sagemaker/check_model_create_duplicate_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-endpoint-config-update-flow", "deployments": [], "key": "sagemaker/model-endpoint-config-update-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob", "sagemaker:UpdateEndpoint"], "path": "behavioral/sagemaker/check_model_endpoint_config_update_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-approval-status-transitions", "deployments": [], "key": "sagemaker/model-package-approval-status-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:ListModelPackages", "sagemaker:UpdateModelPackage"], "path": "behavioral/sagemaker/check_model_package_approval_status_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-description-unicode-preserved", "deployments": [], "key": "sagemaker/model-package-description-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:BatchDescribeModelPackage", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup"], "path": "behavioral/sagemaker/check_model_package_description_unicode_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-empty-vs-absent-fields-preserved", "deployments": [], "key": "sagemaker/model-package-empty-vs-absent-fields-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:BatchDescribeModelPackage", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_model_package_empty_vs_absent_fields_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-create-describe-delete", "deployments": [], "key": "sagemaker/model-package-group-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackageGroup"], "path": "behavioral/sagemaker/check_model_package_group_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-delete-while-nonempty-rejected", "deployments": [], "key": "sagemaker/model-package-group-delete-while-nonempty-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackageGroup"], "path": "behavioral/sagemaker/check_model_package_group_delete_while_nonempty_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-delete-with-active-package-rejected", "deployments": [], "key": "sagemaker/model-package-group-delete-with-active-package-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:DescribeModelPackageGroup"], "path": "behavioral/sagemaker/check_model_package_group_delete_with_active_package_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-deletion-with-packages-rejected", "deployments": [], "key": "sagemaker/model-package-group-deletion-with-packages-rejected", "labels": ["axis:rejection", "dp:native", "plane:control", "plane:data"], "operations": ["ecr:CreateRepository", "ecr:DeleteRepository", "ecr:GetAuthorizationToken", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteContext", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackageGroup", "sagemaker:ListContexts"], "path": "behavioral/sagemaker/check_model_package_group_deletion_with_packages_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-deletion-with-versions-rejected", "deployments": [], "key": "sagemaker/model-package-group-deletion-with-versions-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackageGroup", "sagemaker:ListModelPackages"], "path": "behavioral/sagemaker/check_model_package_group_deletion_with_versions_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-byte-roundtrip", "deployments": [], "key": "sagemaker/model-package-group-policy-byte-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_byte_roundtrip.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-concurrent-put-last-write-wins", "deployments": [], "key": "sagemaker/model-package-group-policy-concurrent-put-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_concurrent_put_last_write_wins.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-concurrent-put-last-writer-wins", "deployments": [], "key": "sagemaker/model-package-group-policy-concurrent-put-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_concurrent_put_last_writer_wins.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-document-json-byte-equality", "deployments": [], "key": "sagemaker/model-package-group-policy-document-json-byte-equality", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:DescribeModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_document_json_byte_equality.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-embedded-blob-preserved", "deployments": [], "key": "sagemaker/model-package-group-policy-embedded-blob-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteContext", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:ListContexts", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_embedded_blob_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-invalid-json-rejected", "deployments": [], "key": "sagemaker/model-package-group-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_invalid_json_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-json-round-trip", "deployments": [], "key": "sagemaker/model-package-group-policy-json-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_json_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-malformed-document-rejected", "deployments": [], "key": "sagemaker/model-package-group-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_malformed_document_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-put-get-delete-consistency", "deployments": [], "key": "sagemaker/model-package-group-policy-put-get-delete-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_put_get_delete_consistency.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-put-get-delete-flow", "deployments": [], "key": "sagemaker/model-package-group-policy-put-get-delete-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_put_get_delete_flow.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-put-get-delete-round-trip", "deployments": [], "key": "sagemaker/model-package-group-policy-put-get-delete-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:DescribeModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_put_get_delete_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-round-trip-byte-equality", "deployments": [], "key": "sagemaker/model-package-group-policy-round-trip-byte-equality", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_round_trip_byte_equality.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-unicode-byte-round-trip", "deployments": [], "key": "sagemaker/model-package-group-policy-unicode-byte-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_unicode_byte_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-group-policy-unicode-round-trip", "deployments": [], "key": "sagemaker/model-package-group-policy-unicode-round-trip", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_group_policy_unicode_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-lifecycle-transitions", "deployments": [], "key": "sagemaker/model-package-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:BatchDescribeModelPackage", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:UpdateModelPackage", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_model_package_lifecycle_transitions.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-metric-numeric-precision-preserved", "deployments": [], "key": "sagemaker/model-package-metric-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_model_package_metric_numeric_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-metrics-numeric-precision-preserved", "deployments": [], "key": "sagemaker/model-package-metrics-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ecr:CompleteLayerUpload", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "sagemaker:BatchDescribeModelPackage", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage"], "path": "behavioral/sagemaker/check_model_package_metrics_numeric_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-unicode-description-round-trip", "deployments": [], "key": "sagemaker/model-package-unicode-description-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:BatchDescribeModelPackage", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup"], "path": "behavioral/sagemaker/check_model_package_unicode_description_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.model-package-version-monotonic-and-server-assigned", "deployments": [], "key": "sagemaker/model-package-version-monotonic-and-server-assigned", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:ListModelPackages"], "path": "behavioral/sagemaker/check_model_package_version_monotonic_and_server_assigned.py", "service": "sagemaker"} {"check_id": "sagemaker.notebook-instance-create-stop-delete-lifecycle", "deployments": [], "key": "sagemaker/notebook-instance-create-stop-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateNotebookInstance", "sagemaker:DeleteNotebookInstance", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance"], "path": "behavioral/sagemaker/check_notebook_instance_create_stop_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.notebook-instance-delete-while-inservice-rejected", "deployments": [], "key": "sagemaker/notebook-instance-delete-while-inservice-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker:CreateNotebookInstance", "sagemaker:DeleteNotebookInstance", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance"], "path": "behavioral/sagemaker/check_notebook_instance_delete_while_inservice_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.notebook-lifecycle-config-applied-server-side", "deployments": [], "key": "sagemaker/notebook-lifecycle-config-applied-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "logs:GetLogEvents", "sagemaker:CreateNotebookInstance", "sagemaker:CreateNotebookInstanceLifecycleConfig", "sagemaker:DeleteNotebookInstance", "sagemaker:DeleteNotebookInstanceLifecycleConfig", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance"], "path": "behavioral/sagemaker/check_notebook_lifecycle_config_applied_server_side.py", "service": "sagemaker"} {"check_id": "sagemaker.parallel-create-cluster-scheduler-config-single-winner", "deployments": [], "key": "sagemaker/parallel-create-cluster-scheduler-config-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateClusterSchedulerConfig", "sagemaker:DeleteClusterSchedulerConfig", "sagemaker:ListClusterSchedulerConfigs", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_parallel_create_cluster_scheduler_config_single_winner.py", "service": "sagemaker"} {"check_id": "sagemaker.partner-app-presigned-url-expires-after-ttl", "deployments": [], "key": "sagemaker/partner-app-presigned-url-expires-after-ttl", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "sagemaker:CreatePartnerApp", "sagemaker:ListPartnerApps"], "path": "behavioral/sagemaker/check_partner_app_presigned_url_expires_after_ttl.py", "service": "sagemaker"} {"check_id": "sagemaker.pipeline-condition-step-outcome-selects-exactly-one-declared-branch", "deployments": [], "key": "sagemaker/pipeline-condition-step-outcome-selects-exactly-one-declared-branch", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreatePipeline", "sagemaker:DeletePipeline", "sagemaker:DescribePipeline", "sagemaker:DescribePipelineExecution", "sagemaker:ListPipelineExecutionSteps", "sagemaker:StartPipelineExecution"], "path": "behavioral/sagemaker/check_pipeline_condition_step_outcome_selects_exactly_one_declared_branch.py", "service": "sagemaker"} {"check_id": "sagemaker.pipeline-create-describe-delete", "deployments": [], "key": "sagemaker/pipeline-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreatePipeline", "sagemaker:DeletePipeline", "sagemaker:DescribePipeline"], "path": "behavioral/sagemaker/check_pipeline_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.pipeline-create-describe-delete-lifecycle", "deployments": [], "key": "sagemaker/pipeline-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker:CreatePipeline", "sagemaker:DeletePipeline", "sagemaker:DescribePipeline"], "path": "behavioral/sagemaker/check_pipeline_create_describe_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.presigned-domain-url-expires-after-ttl", "deployments": [], "key": "sagemaker/presigned-domain-url-expires-after-ttl", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateDomain", "sagemaker:CreatePresignedDomainUrl", "sagemaker:CreateUserProfile", "sagemaker:DeleteDomain", "sagemaker:DeleteUserProfile", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile"], "path": "behavioral/sagemaker/check_presigned_domain_url_expires_after_ttl.py", "service": "sagemaker"} {"check_id": "sagemaker.presigned-mlflow-app-url-not-found-for-missing-app", "deployments": [], "key": "sagemaker/presigned-mlflow-app-url-not-found-for-missing-app", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketTagging", "sagemaker:CreateMlflowApp", "sagemaker:CreatePresignedMlflowAppUrl", "sagemaker:DeleteMlflowApp", "sagemaker:DescribeMlflowApp", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_presigned_mlflow_app_url_not_found_for_missing_app.py", "service": "sagemaker"} {"check_id": "sagemaker.presigned-mlflow-tracking-server-url-duration-ranges-enforced", "deployments": [], "key": "sagemaker/presigned-mlflow-tracking-server-url-duration-ranges-enforced", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl", "sagemaker:DeleteMlflowTrackingServer", "sagemaker:DescribeMlflowTrackingServer"], "path": "behavioral/sagemaker/check_presigned_mlflow_tracking_server_url_duration_ranges_enforced.py", "service": "sagemaker"} {"check_id": "sagemaker.presigned-mlflow-tracking-server-url-expires-after-ttl", "deployments": [], "key": "sagemaker/presigned-mlflow-tracking-server-url-expires-after-ttl", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "sagemaker:CreateMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl", "sagemaker:DeleteMlflowTrackingServer", "sagemaker:DescribeMlflowTrackingServer"], "path": "behavioral/sagemaker/check_presigned_mlflow_tracking_server_url_expires_after_ttl.py", "service": "sagemaker"} {"check_id": "sagemaker.presigned-mlflow-tracking-server-url-ttl", "deployments": [], "key": "sagemaker/presigned-mlflow-tracking-server-url-ttl", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "sagemaker:CreateMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl", "sagemaker:DeleteMlflowTrackingServer", "sagemaker:DescribeMlflowTrackingServer"], "path": "behavioral/sagemaker/check_presigned_mlflow_tracking_server_url_ttl.py", "service": "sagemaker"} {"check_id": "sagemaker.presigned-notebook-instance-url-expires-after-ttl", "deployments": [], "key": "sagemaker/presigned-notebook-instance-url-expires-after-ttl", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateNotebookInstance", "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DeleteNotebookInstance", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance"], "path": "behavioral/sagemaker/check_presigned_notebook_instance_url_expires_after_ttl.py", "service": "sagemaker"} {"check_id": "sagemaker.presigned-notebook-instance-url-session-duration-range-enforced", "deployments": [], "key": "sagemaker/presigned-notebook-instance-url-session-duration-range-enforced", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateNotebookInstance", "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DeleteNotebookInstance", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance"], "path": "behavioral/sagemaker/check_presigned_notebook_instance_url_session_duration_range_enforced.py", "service": "sagemaker"} {"check_id": "sagemaker.presigned-notebook-url-expires-after-ttl", "deployments": [], "key": "sagemaker/presigned-notebook-url-expires-after-ttl", "labels": ["axis:rejection", "dp:endpoint", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateNotebookInstance", "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DeleteNotebookInstance", "sagemaker:DescribeNotebookInstance", "sagemaker:StopNotebookInstance"], "path": "behavioral/sagemaker/check_presigned_notebook_url_expires_after_ttl.py", "service": "sagemaker"} {"check_id": "sagemaker.processing-job-managed-terminal-state", "deployments": [], "key": "sagemaker/processing-job-managed-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateProcessingJob", "sagemaker:DeleteProcessingJob", "sagemaker:DescribeProcessingJob"], "path": "behavioral/sagemaker/check_processing_job_managed_terminal_state.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-concurrent-last-writer-wins", "deployments": [], "key": "sagemaker/put-model-package-group-policy-concurrent-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_concurrent_last_writer_wins.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-concurrent-overwrite", "deployments": [], "key": "sagemaker/put-model-package-group-policy-concurrent-overwrite", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_concurrent_overwrite.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-concurrent-overwrite-deterministic", "deployments": [], "key": "sagemaker/put-model-package-group-policy-concurrent-overwrite-deterministic", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_concurrent_overwrite_deterministic.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-concurrent-overwrite-last-writer-wins", "deployments": [], "key": "sagemaker/put-model-package-group-policy-concurrent-overwrite-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_concurrent_overwrite_last_writer_wins.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-concurrent-writes-serialize-to-one-policy", "deployments": [], "key": "sagemaker/put-model-package-group-policy-concurrent-writes-serialize-to-one-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_concurrent_writes_serialize_to_one_policy.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-conflicting-overwrite", "deployments": [], "key": "sagemaker/put-model-package-group-policy-conflicting-overwrite", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:DescribeModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_conflicting_overwrite.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-invalid-json-conflict", "deployments": [], "key": "sagemaker/put-model-package-group-policy-invalid-json-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_invalid_json_conflict.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-invalid-policy-rejected", "deployments": [], "key": "sagemaker/put-model-package-group-policy-invalid-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_invalid_policy_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-malformed-json-rejected", "deployments": [], "key": "sagemaker/put-model-package-group-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_malformed_json_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.put-model-package-group-policy-precondition-conflict", "deployments": [], "key": "sagemaker/put-model-package-group-policy-precondition-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteModelPackageGroupPolicy", "sagemaker:DescribeModelPackageGroup", "sagemaker:GetModelPackageGroupPolicy", "sagemaker:PutModelPackageGroupPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_put_model_package_group_policy_precondition_conflict.py", "service": "sagemaker"} {"check_id": "sagemaker.sagemaker-endpoint-prediction-is-deterministic-and-ordered-in-its-input", "deployments": [], "key": "sagemaker/sagemaker-endpoint-prediction-is-deterministic-and-ordered-in-its-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_sagemaker_endpoint_prediction_is_deterministic_and_ordered_in_its_input.py", "service": "sagemaker"} {"check_id": "sagemaker.sagemaker-feature-store-stale-event-time-write-not-applied-and-newer-record-survives", "deployments": [], "key": "sagemaker/sagemaker-feature-store-stale-event-time-write-not-applied-and-newer-record-survives", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sagemaker-featurestore-runtime:BatchGetRecord", "sagemaker-featurestore-runtime:DeleteRecord", "sagemaker-featurestore-runtime:GetRecord", "sagemaker-featurestore-runtime:PutRecord", "sagemaker:CreateFeatureGroup", "sagemaker:DeleteFeatureGroup", "sagemaker:DescribeFeatureGroup"], "path": "behavioral/sagemaker/check_sagemaker_feature_store_stale_event_time_write_not_applied_and_newer_record_survives.py", "service": "sagemaker"} {"check_id": "sagemaker.sagemaker-invoke-with-an-unsupported-content-type-rejected-by-the-model-container", "deployments": [], "key": "sagemaker/sagemaker-invoke-with-an-unsupported-content-type-rejected-by-the-model-container", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker-runtime:InvokeEndpoint", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateModel", "sagemaker:CreateTrainingJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_sagemaker_invoke_with_an_unsupported_content_type_rejected_by_the_model_container.py", "service": "sagemaker"} {"check_id": "sagemaker.scaling-configuration-recommendation-for-existing-endpoint", "deployments": [], "key": "sagemaker/scaling-configuration-recommendation-for-existing-endpoint", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateInferenceRecommendationsJob", "sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeInferenceRecommendationsJob", "sagemaker:GetScalingConfigurationRecommendation", "sagemaker:ListModelPackages", "sagemaker:StopInferenceRecommendationsJob"], "path": "behavioral/sagemaker/check_scaling_configuration_recommendation_for_existing_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.scaling-configuration-recommendation-for-live-endpoint", "deployments": [], "key": "sagemaker/scaling-configuration-recommendation-for-live-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:DescribeInferenceRecommendationsJob", "sagemaker:GetScalingConfigurationRecommendation"], "path": "behavioral/sagemaker/check_scaling_configuration_recommendation_for_live_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.scaling-configuration-recommendation-not-found-for-unknown-endpoint", "deployments": [], "key": "sagemaker/scaling-configuration-recommendation-not-found-for-unknown-endpoint", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:DescribeInferenceRecommendationsJob", "sagemaker:GetScalingConfigurationRecommendation", "sagemaker:ListInferenceRecommendationsJobs"], "path": "behavioral/sagemaker/check_scaling_configuration_recommendation_not_found_for_unknown_endpoint.py", "service": "sagemaker"} {"check_id": "sagemaker.search-and-in-filter-semantics", "deployments": [], "key": "sagemaker/search-and-in-filter-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:Search"], "path": "behavioral/sagemaker/check_search_and_in_filter_semantics.py", "service": "sagemaker"} {"check_id": "sagemaker.search-sort-order-returns-sequence-not-set", "deployments": [], "key": "sagemaker/search-sort-order-returns-sequence-not-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:Search"], "path": "behavioral/sagemaker/check_search_sort_order_returns_sequence_not_set.py", "service": "sagemaker"} {"check_id": "sagemaker.search-suggestions-reflects-created-resource-properties", "deployments": [], "key": "sagemaker/search-suggestions-reflects-created-resource-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:GetSearchSuggestions"], "path": "behavioral/sagemaker/check_search_suggestions_reflects_created_resource_properties.py", "service": "sagemaker"} {"check_id": "sagemaker.search-suggestions-return-relevant-property-names", "deployments": [], "key": "sagemaker/search-suggestions-return-relevant-property-names", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:GetSearchSuggestions"], "path": "behavioral/sagemaker/check_search_suggestions_return_relevant_property_names.py", "service": "sagemaker"} {"check_id": "sagemaker.search-suggestions-returns-matching-property-names", "deployments": [], "key": "sagemaker/search-suggestions-returns-matching-property-names", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrialComponent", "sagemaker:GetSearchSuggestions"], "path": "behavioral/sagemaker/check_search_suggestions_returns_matching_property_names.py", "service": "sagemaker"} {"check_id": "sagemaker.search-unknown-filter-name-rejected", "deployments": [], "key": "sagemaker/search-unknown-filter-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:DeleteExperiment", "sagemaker:Search"], "path": "behavioral/sagemaker/check_search_unknown_filter_name_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.secondary-status-transitions-follow-canonical-phase-order-and-attribute-failure", "deployments": [], "key": "sagemaker/secondary-status-transitions-follow-canonical-phase-order-and-attribute-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:ListTrainingJobs", "sagemaker:StopTrainingJob", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_secondary_status_transitions_follow_canonical_phase_order_and_attribute_failure.py", "service": "sagemaker"} {"check_id": "sagemaker.servicecatalog-portfolio-status-reflects-account-state", "deployments": [], "key": "sagemaker/servicecatalog-portfolio-status-reflects-account-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:DisableSagemakerServicecatalogPortfolio", "sagemaker:EnableSagemakerServicecatalogPortfolio", "sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_servicecatalog_portfolio_status_reflects_account_state.py", "service": "sagemaker"} {"check_id": "sagemaker.servicecatalog-portfolio-status-reflects-enablement", "deployments": [], "key": "sagemaker/servicecatalog-portfolio-status-reflects-enablement", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:DisableSagemakerServicecatalogPortfolio", "sagemaker:EnableSagemakerServicecatalogPortfolio", "sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_servicecatalog_portfolio_status_reflects_enablement.py", "service": "sagemaker"} {"check_id": "sagemaker.servicecatalog-portfolio-status-reflects-managed-state", "deployments": [], "key": "sagemaker/servicecatalog-portfolio-status-reflects-managed-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:DisableSagemakerServicecatalogPortfolio", "sagemaker:EnableSagemakerServicecatalogPortfolio", "sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_servicecatalog_portfolio_status_reflects_managed_state.py", "service": "sagemaker"} {"check_id": "sagemaker.servicecatalog-portfolio-status-reflects-toggle", "deployments": [], "key": "sagemaker/servicecatalog-portfolio-status-reflects-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:DisableSagemakerServicecatalogPortfolio", "sagemaker:EnableSagemakerServicecatalogPortfolio", "sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_servicecatalog_portfolio_status_reflects_toggle.py", "service": "sagemaker"} {"check_id": "sagemaker.servicecatalog-portfolio-status-toggle-reflected", "deployments": [], "key": "sagemaker/servicecatalog-portfolio-status-toggle-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:DisableSagemakerServicecatalogPortfolio", "sagemaker:EnableSagemakerServicecatalogPortfolio", "sagemaker:GetSagemakerServicecatalogPortfolioStatus"], "path": "behavioral/sagemaker/check_servicecatalog_portfolio_status_toggle_reflected.py", "service": "sagemaker"} {"check_id": "sagemaker.tag-unicode-value-round-trip", "deployments": [], "key": "sagemaker/tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackageGroup", "sagemaker:ListTags"], "path": "behavioral/sagemaker/check_tag_unicode_value_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.training-job-conflicting-algorithm-spec-rejected", "deployments": [], "key": "sagemaker/training-job-conflicting-algorithm-spec-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob", "sts:GetCallerIdentity"], "path": "behavioral/sagemaker/check_training_job_conflicting_algorithm_spec_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.training-job-empty-vs-absent-hyperparameter-preserved", "deployments": [], "key": "sagemaker/training-job-empty-vs-absent-hyperparameter-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_training_job_empty_vs_absent_hyperparameter_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.training-job-hyperparameter-numeric-precision-preserved", "deployments": [], "key": "sagemaker/training-job-hyperparameter-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_training_job_hyperparameter_numeric_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.training-job-hyperparameter-numeric-string-precision-preserved", "deployments": [], "key": "sagemaker/training-job-hyperparameter-numeric-string-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_training_job_hyperparameter_numeric_string_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.training-job-managed-completion-transition", "deployments": [], "key": "sagemaker/training-job-managed-completion-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sagemaker:CreateTrainingJob", "sagemaker:DeleteTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_training_job_managed_completion_transition.py", "service": "sagemaker"} {"check_id": "sagemaker.training-job-server-managed-status-progression", "deployments": [], "key": "sagemaker/training-job-server-managed-status-progression", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob"], "path": "behavioral/sagemaker/check_training_job_server_managed_status_progression.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-and-trial-component-association-lifecycle", "deployments": [], "key": "sagemaker/trial-and-trial-component-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrial", "sagemaker:DescribeTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_trial_and_trial_component_association_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-component-associate-disassociate-lifecycle", "deployments": [], "key": "sagemaker/trial-component-associate-disassociate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_trial_component_associate_disassociate_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-component-association-lifecycle", "deployments": [], "key": "sagemaker/trial-component-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrial", "sagemaker:DisassociateTrialComponent", "sagemaker:ListTrialComponents"], "path": "behavioral/sagemaker/check_trial_component_association_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-component-metric-numeric-precision-preserved", "deployments": [], "key": "sagemaker/trial-component-metric-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrialComponent"], "path": "behavioral/sagemaker/check_trial_component_metric_numeric_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-component-timestamp-millisecond-precision-preserved", "deployments": [], "key": "sagemaker/trial-component-timestamp-millisecond-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrialComponent"], "path": "behavioral/sagemaker/check_trial_component_timestamp_millisecond_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-component-timestamp-precision-preserved", "deployments": [], "key": "sagemaker/trial-component-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrialComponent", "sagemaker:UpdateTrialComponent"], "path": "behavioral/sagemaker/check_trial_component_timestamp_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-component-unicode-metadata-round-trip", "deployments": [], "key": "sagemaker/trial-component-unicode-metadata-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateTrialComponent", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrialComponent"], "path": "behavioral/sagemaker/check_trial_component_unicode_metadata_round_trip.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-create-describe-delete", "deployments": [], "key": "sagemaker/trial-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DescribeTrial", "sagemaker:UpdateTrial"], "path": "behavioral/sagemaker/check_trial_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-create-describe-delete-lifecycle", "deployments": [], "key": "sagemaker/trial-create-describe-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DescribeExperiment", "sagemaker:DescribeTrial", "sagemaker:UpdateTrial"], "path": "behavioral/sagemaker/check_trial_create_describe_delete_lifecycle.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-create-missing-experiment-rejected", "deployments": [], "key": "sagemaker/trial-create-missing-experiment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DescribeTrial"], "path": "behavioral/sagemaker/check_trial_create_missing_experiment_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-creation-missing-experiment-rejected", "deployments": [], "key": "sagemaker/trial-creation-missing-experiment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DescribeTrial"], "path": "behavioral/sagemaker/check_trial_creation_missing_experiment_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-creation-timestamp-precision-preserved", "deployments": [], "key": "sagemaker/trial-creation-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DescribeTrial"], "path": "behavioral/sagemaker/check_trial_creation_timestamp_precision_preserved.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-delete-with-attached-component-rejected", "deployments": [], "key": "sagemaker/trial-delete-with-attached-component-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:AssociateTrialComponent", "sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:CreateTrialComponent", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DeleteTrialComponent", "sagemaker:DescribeTrial", "sagemaker:DisassociateTrialComponent"], "path": "behavioral/sagemaker/check_trial_delete_with_attached_component_rejected.py", "service": "sagemaker"} {"check_id": "sagemaker.trial-lifecycle-create-describe-delete", "deployments": [], "key": "sagemaker/trial-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sagemaker:CreateExperiment", "sagemaker:CreateTrial", "sagemaker:DeleteExperiment", "sagemaker:DeleteTrial", "sagemaker:DescribeExperiment", "sagemaker:DescribeTrial"], "path": "behavioral/sagemaker/check_trial_lifecycle_create_describe_delete.py", "service": "sagemaker"} {"check_id": "sagemaker.update-model-package-invalid-approval-status-rejected", "deployments": [], "key": "sagemaker/update-model-package-invalid-approval-status-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sagemaker:CreateModelPackage", "sagemaker:CreateModelPackageGroup", "sagemaker:DeleteModelPackage", "sagemaker:DeleteModelPackageGroup", "sagemaker:DescribeModelPackage", "sagemaker:ListModelPackages", "sagemaker:UpdateModelPackage"], "path": "behavioral/sagemaker/check_update_model_package_invalid_approval_status_rejected.py", "service": "sagemaker"} {"check_id": "sagemakerjobruntime.complete-rollout-malformed-job-arn-rejected", "deployments": [], "key": "sagemakerjobruntime/complete-rollout-malformed-job-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:CompleteRollout"], "path": "behavioral/sagemakerjobruntime/check_complete_rollout_malformed_job_arn_rejected.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.complete-rollout-nonexistent-job-not-found", "deployments": [], "key": "sagemakerjobruntime/complete-rollout-nonexistent-job-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:CompleteRollout"], "path": "behavioral/sagemakerjobruntime/check_complete_rollout_nonexistent_job_not_found.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.concurrent-update-reward-notfound-consistency", "deployments": [], "key": "sagemakerjobruntime/concurrent-update-reward-notfound-consistency", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:UpdateReward", "sts:GetCallerIdentity"], "path": "behavioral/sagemakerjobruntime/check_concurrent_update_reward_notfound_consistency.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.cross-account-resource-condition-rejected", "deployments": [], "key": "sagemakerjobruntime/cross-account-resource-condition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sagemakerjobruntime:Sample", "sts:AssumeRole"], "path": "behavioral/sagemakerjobruntime/check_cross_account_resource_condition_rejected.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.failed-sample-leaves-no-residual-trajectory-state", "deployments": [], "key": "sagemakerjobruntime/failed-sample-leaves-no-residual-trajectory-state", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:CompleteRollout", "sagemakerjobruntime:Sample", "sagemakerjobruntime:UpdateReward"], "path": "behavioral/sagemakerjobruntime/check_failed_sample_leaves_no_residual_trajectory_state.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.fine-grained-action-permission-rejected", "deployments": [], "key": "sagemakerjobruntime/fine-grained-action-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sagemakerjobruntime:CompleteRollout", "sagemakerjobruntime:Sample", "sts:AssumeRole"], "path": "behavioral/sagemakerjobruntime/check_fine_grained_action_permission_rejected.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.sample-malformed-job-arn-rejected", "deployments": [], "key": "sagemakerjobruntime/sample-malformed-job-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:Sample", "sts:GetCallerIdentity"], "path": "behavioral/sagemakerjobruntime/check_sample_malformed_job_arn_rejected.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.sample-no-iam-permission-rejected", "deployments": [], "key": "sagemakerjobruntime/sample-no-iam-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sagemakerjobruntime:Sample", "sts:AssumeRole"], "path": "behavioral/sagemakerjobruntime/check_sample_no_iam_permission_rejected.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.sample-nonexistent-job-not-found", "deployments": [], "key": "sagemakerjobruntime/sample-nonexistent-job-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:Sample"], "path": "behavioral/sagemakerjobruntime/check_sample_nonexistent_job_not_found.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.sample-vs-stream-action-independence-rejected", "deployments": [], "key": "sagemakerjobruntime/sample-vs-stream-action-independence-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sagemakerjobruntime:Sample", "sagemakerjobruntime:SampleWithResponseStream", "sts:AssumeRole"], "path": "behavioral/sagemakerjobruntime/check_sample_vs_stream_action_independence_rejected.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.sample-with-response-stream-malformed-arn-raises-synchronously", "deployments": [], "key": "sagemakerjobruntime/sample-with-response-stream-malformed-arn-raises-synchronously", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:SampleWithResponseStream"], "path": "behavioral/sagemakerjobruntime/check_sample_with_response_stream_malformed_arn_raises_synchronously.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.sample-with-response-stream-nonexistent-job-not-found", "deployments": [], "key": "sagemakerjobruntime/sample-with-response-stream-nonexistent-job-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:SampleWithResponseStream"], "path": "behavioral/sagemakerjobruntime/check_sample_with_response_stream_nonexistent_job_not_found.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.update-reward-malformed-job-arn-rejected", "deployments": [], "key": "sagemakerjobruntime/update-reward-malformed-job-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:UpdateReward"], "path": "behavioral/sagemakerjobruntime/check_update_reward_malformed_job_arn_rejected.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakerjobruntime.update-reward-nonexistent-job-not-found", "deployments": [], "key": "sagemakerjobruntime/update-reward-nonexistent-job-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakerjobruntime:UpdateReward"], "path": "behavioral/sagemakerjobruntime/check_update_reward_nonexistent_job_not_found.py", "service": "sagemakerjobruntime"} {"check_id": "sagemakertrainingsessionruntime.concurrent-execute-sampling-notfound-consistency", "deployments": [], "key": "sagemakertrainingsessionruntime/concurrent-execute-sampling-notfound-consistency", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation"], "path": "behavioral/sagemakertrainingsessionruntime/check_concurrent_execute_sampling_notfound_consistency.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-operation-config-union-member-count", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-operation-config-union-member-count", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_operation_config_union_member_count.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-operation-load-weights-arn-format-unchecked", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-operation-load-weights-arn-format-unchecked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_operation_load_weights_arn_format_unchecked.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-operation-num-samples-range-rejected", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-operation-num-samples-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_operation_num_samples_range_rejected.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-operation-prompt-required-rejected", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-operation-prompt-required-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_operation_prompt_required_rejected.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-operation-sampling-params-range-rejected", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-operation-sampling-params-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_operation_sampling_params_range_rejected.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-operation-session-name-constraints-rejected", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-operation-session-name-constraints-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_operation_session_name_constraints_rejected.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-operation-well-formed-session-not-found", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-operation-well-formed-session-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_operation_well_formed_session_not_found.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-then-get-result-session-not-found-consistent", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-then-get-result-session-not-found-consistent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation", "sagemakertrainingsessionruntime:GetSamplingOperationResult"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_then_get_result_session_not_found_consistent.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.execute-sampling-vs-stream-same-malformed-session-diverge", "deployments": [], "key": "sagemakertrainingsessionruntime/execute-sampling-vs-stream-same-malformed-session-diverge", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation", "sagemakertrainingsessionruntime:SampleTrainingSessionWithResponseStream"], "path": "behavioral/sagemakertrainingsessionruntime/check_execute_sampling_vs_stream_same_malformed_session_diverge.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.get-endpoints-skip-session-name-pattern-validation", "deployments": [], "key": "sagemakertrainingsessionruntime/get-endpoints-skip-session-name-pattern-validation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:ExecuteSamplingOperation", "sagemakertrainingsessionruntime:GetSamplingOperationResult", "sagemakertrainingsessionruntime:GetTrainingOperationResult"], "path": "behavioral/sagemakertrainingsessionruntime/check_get_endpoints_skip_session_name_pattern_validation.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.get-sampling-operation-result-not-found-ignores-operation-id-pattern", "deployments": [], "key": "sagemakertrainingsessionruntime/get-sampling-operation-result-not-found-ignores-operation-id-pattern", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:GetSamplingOperationResult"], "path": "behavioral/sagemakertrainingsessionruntime/check_get_sampling_operation_result_not_found_ignores_operation_id_pattern.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.sample-training-session-with-response-stream-nonexistent-not-found", "deployments": [], "key": "sagemakertrainingsessionruntime/sample-training-session-with-response-stream-nonexistent-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:SampleTrainingSessionWithResponseStream"], "path": "behavioral/sagemakertrainingsessionruntime/check_sample_training_session_with_response_stream_nonexistent_not_found.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.sampling-operation-generates-text-from-running-session", "deployments": [], "key": "sagemakertrainingsessionruntime/sampling-operation-generates-text-from-running-session", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateTrainingSession", "sagemaker:DeleteContext", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteTrainingSession", "sagemaker:DescribeTrainingSession", "sagemaker:ListContexts", "sagemaker:StopTrainingSession", "sagemakertrainingsessionruntime:ExecuteSamplingOperation", "sagemakertrainingsessionruntime:GetSamplingOperationResult"], "path": "behavioral/sagemakertrainingsessionruntime/check_sampling_operation_generates_text_from_running_session.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.sampling-operation-result-not-found-for-unknown-operation-id", "deployments": [], "key": "sagemakertrainingsessionruntime/sampling-operation-result-not-found-for-unknown-operation-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateTrainingSession", "sagemaker:DeleteContext", "sagemaker:DeleteModelPackageGroup", "sagemaker:DeleteTrainingSession", "sagemaker:DescribeTrainingSession", "sagemaker:ListContexts", "sagemaker:StopTrainingSession", "sagemakertrainingsessionruntime:ExecuteSamplingOperation", "sagemakertrainingsessionruntime:GetSamplingOperationResult"], "path": "behavioral/sagemakertrainingsessionruntime/check_sampling_operation_result_not_found_for_unknown_operation_id.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "sagemakertrainingsessionruntime.training-vs-sampling-result-not-found-message-differs", "deployments": [], "key": "sagemakertrainingsessionruntime/training-vs-sampling-result-not-found-message-differs", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sagemakertrainingsessionruntime:GetSamplingOperationResult", "sagemakertrainingsessionruntime:GetTrainingOperationResult"], "path": "behavioral/sagemakertrainingsessionruntime/check_training_vs_sampling_result_not_found_message_differs.py", "service": "sagemakertrainingsessionruntime"} {"check_id": "savingsplans.create-savings-plan-concurrent-same-client-token-dedup", "deployments": [], "key": "savingsplans/create-savings-plan-concurrent-same-client-token-dedup", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_create_savings_plan_concurrent_same_client_token_dedup.py", "service": "savingsplans"} {"check_id": "savingsplans.create-savings-plan-future-purchase-enters-queued-state", "deployments": [], "key": "savingsplans/create-savings-plan-future-purchase-enters-queued-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_create_savings_plan_future_purchase_enters_queued_state.py", "service": "savingsplans"} {"check_id": "savingsplans.create-savings-plan-idempotent-client-token-returns-same-id", "deployments": [], "key": "savingsplans/create-savings-plan-idempotent-client-token-returns-same-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_create_savings_plan_idempotent_client_token_returns_same_id.py", "service": "savingsplans"} {"check_id": "savingsplans.create-savings-plan-negative-commitment-rejected", "deployments": [], "key": "savingsplans/create-savings-plan-negative-commitment-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_create_savings_plan_negative_commitment_rejected.py", "service": "savingsplans"} {"check_id": "savingsplans.delete-queued-savings-plan-not-found-rejected", "deployments": [], "key": "savingsplans/delete-queued-savings-plan-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_delete_queued_savings_plan_not_found_rejected.py", "service": "savingsplans"} {"check_id": "savingsplans.delete-queued-savings-plan-transitions-to-queued-deleted", "deployments": [], "key": "savingsplans/delete-queued-savings-plan-transitions-to-queued-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_delete_queued_savings_plan_transitions_to_queued_deleted.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-filter-by-ids-returns-exact-match", "deployments": [], "key": "savingsplans/describe-savings-plans-filter-by-ids-returns-exact-match", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_describe_savings_plans_filter_by_ids_returns_exact_match.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-filter-by-state-queued", "deployments": [], "key": "savingsplans/describe-savings-plans-filter-by-state-queued", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_describe_savings_plans_filter_by_state_queued.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-offering-rates-basic-fields", "deployments": [], "key": "savingsplans/describe-savings-plans-offering-rates-basic-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:DescribeSavingsPlansOfferingRates"], "path": "behavioral/savingsplans/check_describe_savings_plans_offering_rates_basic_fields.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-offering-rates-filtered-by-product-type", "deployments": [], "key": "savingsplans/describe-savings-plans-offering-rates-filtered-by-product-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:DescribeSavingsPlansOfferingRates"], "path": "behavioral/savingsplans/check_describe_savings_plans_offering_rates_filtered_by_product_type.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-offering-rates-pagination-distinct-pages", "deployments": [], "key": "savingsplans/describe-savings-plans-offering-rates-pagination-distinct-pages", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:DescribeSavingsPlansOfferingRates"], "path": "behavioral/savingsplans/check_describe_savings_plans_offering_rates_pagination_distinct_pages.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-offerings-basic-fields", "deployments": [], "key": "savingsplans/describe-savings-plans-offerings-basic-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_describe_savings_plans_offerings_basic_fields.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-offerings-filter-by-offering-id", "deployments": [], "key": "savingsplans/describe-savings-plans-offerings-filter-by-offering-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_describe_savings_plans_offerings_filter_by_offering_id.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-offerings-filtered-by-payment-option", "deployments": [], "key": "savingsplans/describe-savings-plans-offerings-filtered-by-payment-option", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_describe_savings_plans_offerings_filtered_by_payment_option.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-offerings-pagination-distinct-pages", "deployments": [], "key": "savingsplans/describe-savings-plans-offerings-pagination-distinct-pages", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_describe_savings_plans_offerings_pagination_distinct_pages.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-returns-list-shape", "deployments": [], "key": "savingsplans/describe-savings-plans-returns-list-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings"], "path": "behavioral/savingsplans/check_describe_savings_plans_returns_list_shape.py", "service": "savingsplans"} {"check_id": "savingsplans.describe-savings-plans-too-many-arns-rejected", "deployments": [], "key": "savingsplans/describe-savings-plans-too-many-arns-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["savingsplans:DescribeSavingsPlans"], "path": "behavioral/savingsplans/check_describe_savings_plans_too_many_arns_rejected.py", "service": "savingsplans"} {"check_id": "savingsplans.return-savings-plan-wrong-state-rejected", "deployments": [], "key": "savingsplans/return-savings-plan-wrong-state-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings", "savingsplans:ReturnSavingsPlan"], "path": "behavioral/savingsplans/check_return_savings_plan_wrong_state_rejected.py", "service": "savingsplans"} {"check_id": "savingsplans.tag-resource-and-list-tags-lifecycle", "deployments": [], "key": "savingsplans/tag-resource-and-list-tags-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings", "savingsplans:ListTagsForResource", "savingsplans:TagResource"], "path": "behavioral/savingsplans/check_tag_resource_and_list_tags_lifecycle.py", "service": "savingsplans"} {"check_id": "savingsplans.tag-resource-malformed-arn-rejected", "deployments": [], "key": "savingsplans/tag-resource-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings", "savingsplans:ListTagsForResource", "savingsplans:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/savingsplans/check_tag_resource_malformed_arn_rejected.py", "service": "savingsplans"} {"check_id": "savingsplans.untag-resource-removes-specific-key-only", "deployments": [], "key": "savingsplans/untag-resource-removes-specific-key-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["savingsplans:CreateSavingsPlan", "savingsplans:DeleteQueuedSavingsPlan", "savingsplans:DescribeSavingsPlans", "savingsplans:DescribeSavingsPlansOfferings", "savingsplans:ListTagsForResource", "savingsplans:TagResource", "savingsplans:UntagResource"], "path": "behavioral/savingsplans/check_untag_resource_removes_specific_key_only.py", "service": "savingsplans"} {"check_id": "scheduler.concurrent-create-schedule-same-name", "deployments": [], "key": "scheduler/concurrent-create-schedule-same-name", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_concurrent_create_schedule_same_name.py", "service": "scheduler"} {"check_id": "scheduler.concurrent-create-schedule-same-name-rejected", "deployments": [], "key": "scheduler/concurrent-create-schedule-same-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_concurrent_create_schedule_same_name_rejected.py", "service": "scheduler"} {"check_id": "scheduler.concurrent-delete-schedule-race-one-wins-one-404", "deployments": [], "key": "scheduler/concurrent-delete-schedule-race-one-wins-one-404", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_concurrent_delete_schedule_race_one_wins_one_404.py", "service": "scheduler"} {"check_id": "scheduler.concurrent-update-schedule-last-write-wins", "deployments": [], "key": "scheduler/concurrent-update-schedule-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_concurrent_update_schedule_last_write_wins.py", "service": "scheduler"} {"check_id": "scheduler.concurrent-update-schedule-last-writer-wins", "deployments": [], "key": "scheduler/concurrent-update-schedule-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_concurrent_update_schedule_last_writer_wins.py", "service": "scheduler"} {"check_id": "scheduler.concurrent-update-schedule-last-writer-wins-deterministic", "deployments": [], "key": "scheduler/concurrent-update-schedule-last-writer-wins-deterministic", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_concurrent_update_schedule_last_writer_wins_deterministic.py", "service": "scheduler"} {"check_id": "scheduler.create-default-group-forbidden", "deployments": [], "key": "scheduler/create-default-group-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetScheduleGroup"], "path": "behavioral/scheduler/check_create_default_group_forbidden.py", "service": "scheduler"} {"check_id": "scheduler.create-get-delete-schedule-smoke", "deployments": [], "key": "scheduler/create-get-delete-schedule-smoke", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_create_get_delete_schedule_smoke.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-action-after-completion-with-recurring-expression-rejected", "deployments": [], "key": "scheduler/create-schedule-action-after-completion-with-recurring-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_action_after_completion_with_recurring_expression_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-client-token-reuse-conflict-rejected", "deployments": [], "key": "scheduler/create-schedule-client-token-reuse-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_create_schedule_client_token_reuse_conflict_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-cron-last-weekday-and-nth-weekday-wildcards-accepted", "deployments": [], "key": "scheduler/create-schedule-cron-last-weekday-and-nth-weekday-wildcards-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_cron_last_weekday_and_nth_weekday_wildcards_accepted.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-cron-year-beyond-feasible-horizon-rejected", "deployments": [], "key": "scheduler/create-schedule-cron-year-beyond-feasible-horizon-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_cron_year_beyond_feasible_horizon_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-dead-letter-config-fifo-queue-rejected", "deployments": [], "key": "scheduler/create-schedule-dead-letter-config-fifo-queue-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_dead_letter_config_fifo_queue_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-duplicate-name-conflict", "deployments": [], "key": "scheduler/create-schedule-duplicate-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_create_schedule_duplicate_name_conflict.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-flexible-off-with-max-forbidden", "deployments": [], "key": "scheduler/create-schedule-flexible-off-with-max-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_create_schedule_flexible_off_with_max_forbidden.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-flexible-window-exceeds-max-rejected", "deployments": [], "key": "scheduler/create-schedule-flexible-window-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_flexible_window_exceeds_max_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-flexible-window-max-out-of-range-rejected", "deployments": [], "key": "scheduler/create-schedule-flexible-window-max-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_flexible_window_max_out_of_range_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-flexible-window-missing-max", "deployments": [], "key": "scheduler/create-schedule-flexible-window-missing-max", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_flexible_window_missing_max.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-flexible-window-out-of-range-rejected", "deployments": [], "key": "scheduler/create-schedule-flexible-window-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_flexible_window_out_of_range_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-group-active-state", "deployments": [], "key": "scheduler/create-schedule-group-active-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetScheduleGroup"], "path": "behavioral/scheduler/check_create_schedule_group_active_state.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-group-name-invalid-characters-rejected", "deployments": [], "key": "scheduler/create-schedule-group-name-invalid-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetScheduleGroup", "scheduler:ListScheduleGroups"], "path": "behavioral/scheduler/check_create_schedule_group_name_invalid_characters_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-group-name-length-exceeded-rejected", "deployments": [], "key": "scheduler/create-schedule-group-name-length-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetScheduleGroup", "scheduler:ListScheduleGroups"], "path": "behavioral/scheduler/check_create_schedule_group_name_length_exceeded_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-in-deleting-group-blocked", "deployments": [], "key": "scheduler/create-schedule-in-deleting-group-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_in_deleting_group_blocked.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-invalid-cron-expression", "deployments": [], "key": "scheduler/create-schedule-invalid-cron-expression", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_invalid_cron_expression.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-invalid-timezone-rejected", "deployments": [], "key": "scheduler/create-schedule-invalid-timezone-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_invalid_timezone_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-malformed-rate-expression-rejected", "deployments": [], "key": "scheduler/create-schedule-malformed-rate-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_malformed_rate_expression_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-missing-target-rejected", "deployments": [], "key": "scheduler/create-schedule-missing-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_missing_target_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-nonexistent-group-not-found", "deployments": [], "key": "scheduler/create-schedule-nonexistent-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule"], "path": "behavioral/scheduler/check_create_schedule_nonexistent_group_not_found.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-rate-expression-zero-value-rejected", "deployments": [], "key": "scheduler/create-schedule-rate-expression-zero-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_rate_expression_zero_value_rejected.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-role-without-invoke-permission-denied", "deployments": [], "key": "scheduler/create-schedule-role-without-invoke-permission-denied", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_create_schedule_role_without_invoke_permission_denied.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-start-after-end-date", "deployments": [], "key": "scheduler/create-schedule-start-after-end-date", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule"], "path": "behavioral/scheduler/check_create_schedule_start_after_end_date.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-unassumable-role-forbidden", "deployments": [], "key": "scheduler/create-schedule-unassumable-role-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_create_schedule_unassumable_role_forbidden.py", "service": "scheduler"} {"check_id": "scheduler.create-schedule-universal-target-read-only-action-rejected", "deployments": [], "key": "scheduler/create-schedule-universal-target-read-only-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_create_schedule_universal_target_read_only_action_rejected.py", "service": "scheduler"} {"check_id": "scheduler.default-schedule-group-deletion-rejected", "deployments": [], "key": "scheduler/default-schedule-group-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetScheduleGroup"], "path": "behavioral/scheduler/check_default_schedule_group_deletion_rejected.py", "service": "scheduler"} {"check_id": "scheduler.delete-default-group-forbidden", "deployments": [], "key": "scheduler/delete-default-group-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetScheduleGroup"], "path": "behavioral/scheduler/check_delete_default_group_forbidden.py", "service": "scheduler"} {"check_id": "scheduler.delete-schedule-group-cascade", "deployments": [], "key": "scheduler/delete-schedule-group-cascade", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_delete_schedule_group_cascade.py", "service": "scheduler"} {"check_id": "scheduler.delete-schedule-not-found", "deployments": [], "key": "scheduler/delete-schedule-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_delete_schedule_not_found.py", "service": "scheduler"} {"check_id": "scheduler.deploy-cfn-at-schedule-update-redirects-target-queue", "deployments": [], "key": "scheduler/deploy-cfn-at-schedule-update-redirects-target-queue", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_deploy_cfn_at_schedule_update_redirects_target_queue.py", "service": "scheduler"} {"check_id": "scheduler.deploy-cfn-schedule-group-with-nested-schedule", "deployments": [], "key": "scheduler/deploy-cfn-schedule-group-with-nested-schedule", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "scheduler:ListScheduleGroups", "scheduler:ListSchedules"], "path": "behavioral/scheduler/check_deploy_cfn_schedule_group_with_nested_schedule.py", "service": "scheduler"} {"check_id": "scheduler.deploy-cfn-schedule-invokes-sqs-target", "deployments": [], "key": "scheduler/deploy-cfn-schedule-invokes-sqs-target", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "scheduler:GetSchedule", "sqs:GetQueueUrl", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_deploy_cfn_schedule_invokes_sqs_target.py", "service": "scheduler"} {"check_id": "scheduler.deploy-cloudformation-schedule-group-membership-behaves", "deployments": [], "key": "scheduler/deploy-cloudformation-schedule-group-membership-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "scheduler:GetScheduleGroup", "scheduler:ListSchedules"], "path": "behavioral/scheduler/check_deploy_cloudformation_schedule_group_membership_behaves.py", "service": "scheduler"} {"check_id": "scheduler.deploy-cloudformation-schedule-invokes-target", "deployments": [], "key": "scheduler/deploy-cloudformation-schedule-invokes-target", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_deploy_cloudformation_schedule_invokes_target.py", "service": "scheduler"} {"check_id": "scheduler.e2e-disable-schedule-halts-invocation", "deployments": [], "key": "scheduler/e2e-disable-schedule-halts-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_disable_schedule_halts_invocation.py", "service": "scheduler"} {"check_id": "scheduler.e2e-schedule-fires-and-delivers-message-to-sqs", "deployments": [], "key": "scheduler/e2e-schedule-fires-and-delivers-message-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_schedule_fires_and_delivers_message_to_sqs.py", "service": "scheduler"} {"check_id": "scheduler.e2e-schedule-group-cascade-cleanup-stops-invocations", "deployments": [], "key": "scheduler/e2e-schedule-group-cascade-cleanup-stops-invocations", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_schedule_group_cascade_cleanup_stops_invocations.py", "service": "scheduler"} {"check_id": "scheduler.e2e-schedule-group-cascade-delete-stops-future-invocations", "deployments": [], "key": "scheduler/e2e-schedule-group-cascade-delete-stops-future-invocations", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_schedule_group_cascade_delete_stops_future_invocations.py", "service": "scheduler"} {"check_id": "scheduler.e2e-schedule-lifecycle-message-flow", "deployments": [], "key": "scheduler/e2e-schedule-lifecycle-message-flow", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:ListSchedules", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_schedule_lifecycle_message_flow.py", "service": "scheduler"} {"check_id": "scheduler.e2e-schedule-missing-iam-permission-blocks-delivery-rejected", "deployments": [], "key": "scheduler/e2e-schedule-missing-iam-permission-blocks-delivery-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_schedule_missing_iam_permission_blocks_delivery_rejected.py", "service": "scheduler"} {"check_id": "scheduler.e2e-schedule-retry-then-dlq-delivery", "deployments": [], "key": "scheduler/e2e-schedule-retry-then-dlq-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_schedule_retry_then_dlq_delivery.py", "service": "scheduler"} {"check_id": "scheduler.e2e-schedule-to-sqs-fire-and-receive", "deployments": [], "key": "scheduler/e2e-schedule-to-sqs-fire-and-receive", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_schedule_to_sqs_fire_and_receive.py", "service": "scheduler"} {"check_id": "scheduler.e2e-update-schedule-target-redirects-invocation", "deployments": [], "key": "scheduler/e2e-update-schedule-target-redirects-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_e2e_update_schedule_target_redirects_invocation.py", "service": "scheduler"} {"check_id": "scheduler.events-scheduler-semantics-create-with-a-past-end-date-and-no-start-date-rejected", "deployments": [], "key": "scheduler/events-scheduler-semantics-create-with-a-past-end-date-and-no-start-date-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_events_scheduler_semantics_create_with_a_past_end_date_and_no_start_date_rejected.py", "service": "scheduler"} {"check_id": "scheduler.events-scheduler-semantics-cron-in-a-half-hour-offset-zone-fires-at-the-zone-resolved-minute", "deployments": [], "key": "scheduler/events-scheduler-semantics-cron-in-a-half-hour-offset-zone-fires-at-the-zone-resolved-minute", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_events_scheduler_semantics_cron_in_a_half_hour_offset_zone_fires_at_the_zone_resolved_minute.py", "service": "scheduler"} {"check_id": "scheduler.events-scheduler-semantics-lapsed-window-schedule-delivers-nothing-scheduled-at-or-after-its-end-date", "deployments": [], "key": "scheduler/events-scheduler-semantics-lapsed-window-schedule-delivers-nothing-scheduled-at-or-after-its-end-date", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_events_scheduler_semantics_lapsed_window_schedule_delivers_nothing_scheduled_at_or_after_its_end_date.py", "service": "scheduler"} {"check_id": "scheduler.events-scheduler-semantics-nonexistent-target-queue-dead-letters-with-the-failure-detail", "deployments": [], "key": "scheduler/events-scheduler-semantics-nonexistent-target-queue-dead-letters-with-the-failure-detail", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_events_scheduler_semantics_nonexistent_target_queue_dead_letters_with_the_failure_detail.py", "service": "scheduler"} {"check_id": "scheduler.events-scheduler-semantics-one-time-at-schedule-fires-one-occurrence-and-persists-under-action-none", "deployments": [], "key": "scheduler/events-scheduler-semantics-one-time-at-schedule-fires-one-occurrence-and-persists-under-action-none", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_events_scheduler_semantics_one_time_at_schedule_fires_one_occurrence_and_persists_under_action_none.py", "service": "scheduler"} {"check_id": "scheduler.events-scheduler-semantics-same-schedule-name-in-two-groups-is-isolated-and-survives-the-sibling-group-deletion", "deployments": [], "key": "scheduler/events-scheduler-semantics-same-schedule-name-in-two-groups-is-isolated-and-survives-the-sibling-group-deletion", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "scheduler:ListSchedules", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_events_scheduler_semantics_same_schedule_name_in_two_groups_is_isolated_and_survives_the_sibling_group_deletion.py", "service": "scheduler"} {"check_id": "scheduler.events-scheduler-semantics-update-to-a-past-end-date-rejected-and-the-series-keeps-firing", "deployments": [], "key": "scheduler/events-scheduler-semantics-update-to-a-past-end-date-rejected-and-the-series-keeps-firing", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_events_scheduler_semantics_update_to_a_past_end_date_rejected_and_the_series_keeps_firing.py", "service": "scheduler"} {"check_id": "scheduler.flexible-time-window-invocation-jitter-within-bounds", "deployments": [], "key": "scheduler/flexible-time-window-invocation-jitter-within-bounds", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_flexible_time_window_invocation_jitter_within_bounds.py", "service": "scheduler"} {"check_id": "scheduler.flexible-time-window-max-minutes-out-of-range-rejected", "deployments": [], "key": "scheduler/flexible-time-window-max-minutes-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_flexible_time_window_max_minutes_out_of_range_rejected.py", "service": "scheduler"} {"check_id": "scheduler.flexible-window-minutes-out-of-range-rejected", "deployments": [], "key": "scheduler/flexible-window-minutes-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_flexible_window_minutes_out_of_range_rejected.py", "service": "scheduler"} {"check_id": "scheduler.list-schedules-group-filter", "deployments": [], "key": "scheduler/list-schedules-group-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:ListSchedules", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_list_schedules_group_filter.py", "service": "scheduler"} {"check_id": "scheduler.list-schedules-state-filter", "deployments": [], "key": "scheduler/list-schedules-state-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:ListSchedules", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_list_schedules_state_filter.py", "service": "scheduler"} {"check_id": "scheduler.schedule-dead-letter-queue-receives-failed-invocation", "deployments": [], "key": "scheduler/schedule-dead-letter-queue-receives-failed-invocation", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "iam:TagRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_dead_letter_queue_receives_failed_invocation.py", "service": "scheduler"} {"check_id": "scheduler.schedule-description-empty-string-vs-absent-preserved", "deployments": [], "key": "scheduler/schedule-description-empty-string-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_description_empty_string_vs_absent_preserved.py", "service": "scheduler"} {"check_id": "scheduler.schedule-description-exceeds-max-length-rejected", "deployments": [], "key": "scheduler/schedule-description-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:ListSchedules", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_description_exceeds_max_length_rejected.py", "service": "scheduler"} {"check_id": "scheduler.schedule-description-unicode-round-trip", "deployments": [], "key": "scheduler/schedule-description-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule"], "path": "behavioral/scheduler/check_schedule_description_unicode_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.schedule-disabled-state-suppresses-invocation", "deployments": [], "key": "scheduler/schedule-disabled-state-suppresses-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_schedule_disabled_state_suppresses_invocation.py", "service": "scheduler"} {"check_id": "scheduler.schedule-end-date-before-start-date-rejected", "deployments": [], "key": "scheduler/schedule-end-date-before-start-date-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule"], "path": "behavioral/scheduler/check_schedule_end_date_before_start_date_rejected.py", "service": "scheduler"} {"check_id": "scheduler.schedule-end-date-stops-future-invocations", "deployments": [], "key": "scheduler/schedule-end-date-stops-future-invocations", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_schedule_end_date_stops_future_invocations.py", "service": "scheduler"} {"check_id": "scheduler.schedule-end-date-stops-invocations-after-window", "deployments": [], "key": "scheduler/schedule-end-date-stops-invocations-after-window", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_schedule_end_date_stops_invocations_after_window.py", "service": "scheduler"} {"check_id": "scheduler.schedule-fire-delivers-to-target", "deployments": [], "key": "scheduler/schedule-fire-delivers-to-target", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_fire_delivers_to_target.py", "service": "scheduler"} {"check_id": "scheduler.schedule-flexible-time-window-invocation-within-bounds", "deployments": [], "key": "scheduler/schedule-flexible-time-window-invocation-within-bounds", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_flexible_time_window_invocation_within_bounds.py", "service": "scheduler"} {"check_id": "scheduler.schedule-flexible-time-window-out-of-range-rejected", "deployments": [], "key": "scheduler/schedule-flexible-time-window-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_flexible_time_window_out_of_range_rejected.py", "service": "scheduler"} {"check_id": "scheduler.schedule-flexible-window-absent-field-not-materialized", "deployments": [], "key": "scheduler/schedule-flexible-window-absent-field-not-materialized", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule"], "path": "behavioral/scheduler/check_schedule_flexible_window_absent_field_not_materialized.py", "service": "scheduler"} {"check_id": "scheduler.schedule-flexible-window-minutes-numeric-boundary-round-trip", "deployments": [], "key": "scheduler/schedule-flexible-window-minutes-numeric-boundary-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_schedule_flexible_window_minutes_numeric_boundary_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.schedule-group-lifecycle-cascade-delete", "deployments": [], "key": "scheduler/schedule-group-lifecycle-cascade-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_group_lifecycle_cascade_delete.py", "service": "scheduler"} {"check_id": "scheduler.schedule-nonexistent-target-role-rejected", "deployments": [], "key": "scheduler/schedule-nonexistent-target-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_nonexistent_target_role_rejected.py", "service": "scheduler"} {"check_id": "scheduler.schedule-retry-policy-exhausted-lands-in-dlq-exactly-once", "deployments": [], "key": "scheduler/schedule-retry-policy-exhausted-lands-in-dlq-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_retry_policy_exhausted_lands_in_dlq_exactly_once.py", "service": "scheduler"} {"check_id": "scheduler.schedule-self-delete-after-completion", "deployments": [], "key": "scheduler/schedule-self-delete-after-completion", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_self_delete_after_completion.py", "service": "scheduler"} {"check_id": "scheduler.schedule-start-date-defers-first-invocation", "deployments": [], "key": "scheduler/schedule-start-date-defers-first-invocation", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_schedule_start_date_defers_first_invocation.py", "service": "scheduler"} {"check_id": "scheduler.schedule-start-end-date-timestamp-precision-preserved", "deployments": [], "key": "scheduler/schedule-start-end-date-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_start_end_date_timestamp_precision_preserved.py", "service": "scheduler"} {"check_id": "scheduler.schedule-start-end-date-timestamp-precision-round-trip", "deployments": [], "key": "scheduler/schedule-start-end-date-timestamp-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_schedule_start_end_date_timestamp_precision_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.schedule-state-toggle-enabled-disabled", "deployments": [], "key": "scheduler/schedule-state-toggle-enabled-disabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_state_toggle_enabled_disabled.py", "service": "scheduler"} {"check_id": "scheduler.schedule-target-input-base64-blob-round-trip", "deployments": [], "key": "scheduler/schedule-target-input-base64-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_schedule_target_input_base64_blob_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.schedule-target-input-json-payload-round-trip", "deployments": [], "key": "scheduler/schedule-target-input-json-payload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_schedule_target_input_json_payload_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.schedule-target-input-numeric-precision-round-trip", "deployments": [], "key": "scheduler/schedule-target-input-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_target_input_numeric_precision_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.schedule-target-input-unicode-payload-round-trip", "deployments": [], "key": "scheduler/schedule-target-input-unicode-payload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_schedule_target_input_unicode_payload_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.schedule-timestamp-precision-round-trip", "deployments": [], "key": "scheduler/schedule-timestamp-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule"], "path": "behavioral/scheduler/check_schedule_timestamp_precision_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-action-after-completion-delete-removes-a-recurring-schedule-at-its-end-date", "deployments": [], "key": "scheduler/scheduler-action-after-completion-delete-removes-a-recurring-schedule-at-its-end-date", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:ListSchedules", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_action_after_completion_delete_removes_a_recurring_schedule_at_its_end_date.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-cron-expression-fires-once-on-the-derived-minute-boundary", "deployments": [], "key": "scheduler/scheduler-cron-expression-fires-once-on-the-derived-minute-boundary", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_cron_expression_fires_once_on_the_derived_minute_boundary.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-end-date-stops-a-recurring-series", "deployments": [], "key": "scheduler/scheduler-end-date-stops-a-recurring-series", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_end_date_stops_a_recurring_series.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-flexible-time-window-delivers-with-the-nominal-scheduled-time", "deployments": [], "key": "scheduler/scheduler-flexible-time-window-delivers-with-the-nominal-scheduled-time", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_flexible_time_window_delivers_with_the_nominal_scheduled_time.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-group-deletion-halts-recurring-invocations", "deployments": [], "key": "scheduler/scheduler-group-deletion-halts-recurring-invocations", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_group_deletion_halts_recurring_invocations.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-input-template-substitutes-scheduled-time-and-execution-id", "deployments": [], "key": "scheduler/scheduler-input-template-substitutes-scheduled-time-and-execution-id", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_input_template_substitutes_scheduled_time_and_execution_id.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-invocation-attempt-count-metric-counts-every-retry", "deployments": [], "key": "scheduler/scheduler-invocation-attempt-count-metric-counts-every-retry", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_invocation_attempt_count_metric_counts_every_retry.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-rate-schedule-delivers-successive-invocations-at-the-configured-cadence", "deployments": [], "key": "scheduler/scheduler-rate-schedule-delivers-successive-invocations-at-the-configured-cadence", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_rate_schedule_delivers_successive_invocations_at_the_configured_cadence.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-retry-exhaustion-condition-reported-only-for-event-age-bound", "deployments": [], "key": "scheduler/scheduler-retry-exhaustion-condition-reported-only-for-event-age-bound", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_retry_exhaustion_condition_reported_only_for_event_age_bound.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-schedule-expression-timezone-interpreted-in-a-real-iana-zone", "deployments": [], "key": "scheduler/scheduler-schedule-expression-timezone-interpreted-in-a-real-iana-zone", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_schedule_expression_timezone_interpreted_in_a_real_iana_zone.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-universal-target-invokes-the-aws-sdk-operation", "deployments": [], "key": "scheduler/scheduler-universal-target-invokes-the-aws-sdk-operation", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_universal_target_invokes_the_aws_sdk_operation.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-universal-target-operation-name-case-rejected", "deployments": [], "key": "scheduler/scheduler-universal-target-operation-name-case-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_universal_target_operation_name_case_rejected.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-update-target-role-to-an-unassumable-role-rejected", "deployments": [], "key": "scheduler/scheduler-update-target-role-to-an-unassumable-role-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_update_target_role_to_an_unassumable_role_rejected.py", "service": "scheduler"} {"check_id": "scheduler.scheduler-updated-retry-attempt-count-governs-the-next-occurrence", "deployments": [], "key": "scheduler/scheduler-updated-retry-attempt-count-governs-the-next-occurrence", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_scheduler_updated_retry_attempt_count_governs_the_next_occurrence.py", "service": "scheduler"} {"check_id": "scheduler.server-side-cascade-delete-halts-future-invocations", "deployments": [], "key": "scheduler/server-side-cascade-delete-halts-future-invocations", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_server_side_cascade_delete_halts_future_invocations.py", "service": "scheduler"} {"check_id": "scheduler.server-side-dead-letter-queue-receives-failed-event-payload", "deployments": [], "key": "scheduler/server-side-dead-letter-queue-receives-failed-event-payload", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_server_side_dead_letter_queue_receives_failed_event_payload.py", "service": "scheduler"} {"check_id": "scheduler.server-side-flexible-time-window-jitter-within-bounds", "deployments": [], "key": "scheduler/server-side-flexible-time-window-jitter-within-bounds", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_server_side_flexible_time_window_jitter_within_bounds.py", "service": "scheduler"} {"check_id": "scheduler.server-side-rate-expression-cadence-enforced", "deployments": [], "key": "scheduler/server-side-rate-expression-cadence-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_server_side_rate_expression_cadence_enforced.py", "service": "scheduler"} {"check_id": "scheduler.server-side-retry-policy-exhaustion-triggers-dlq", "deployments": [], "key": "scheduler/server-side-retry-policy-exhaustion-triggers-dlq", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_server_side_retry_policy_exhaustion_triggers_dlq.py", "service": "scheduler"} {"check_id": "scheduler.server-side-retry-policy-retries-on-target-failure", "deployments": [], "key": "scheduler/server-side-retry-policy-retries-on-target-failure", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler/check_server_side_retry_policy_retries_on_target_failure.py", "service": "scheduler"} {"check_id": "scheduler.server-side-schedule-invocation-uses-declared-role-arn", "deployments": [], "key": "scheduler/server-side-schedule-invocation-uses-declared-role-arn", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_server_side_schedule_invocation_uses_declared_role_arn.py", "service": "scheduler"} {"check_id": "scheduler.tag-and-list-tags-schedule-group", "deployments": [], "key": "scheduler/tag-and-list-tags-schedule-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:ListTagsForResource", "scheduler:TagResource"], "path": "behavioral/scheduler/check_tag_and_list_tags_schedule_group.py", "service": "scheduler"} {"check_id": "scheduler.tag-resource-reserved-aws-prefix-forbidden", "deployments": [], "key": "scheduler/tag-resource-reserved-aws-prefix-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:ListTagsForResource", "scheduler:TagResource"], "path": "behavioral/scheduler/check_tag_resource_reserved_aws_prefix_forbidden.py", "service": "scheduler"} {"check_id": "scheduler.tag-resource-schedule-arn-forbidden", "deployments": [], "key": "scheduler/tag-resource-schedule-arn-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:ListTagsForResource", "scheduler:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_tag_resource_schedule_arn_forbidden.py", "service": "scheduler"} {"check_id": "scheduler.tag-value-empty-string-vs-absent-preserved", "deployments": [], "key": "scheduler/tag-value-empty-string-vs-absent-preserved", "labels": ["axis:rejection", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:ListTagsForResource", "scheduler:TagResource", "scheduler:UntagResource"], "path": "behavioral/scheduler/check_tag_value_empty_string_vs_absent_preserved.py", "service": "scheduler"} {"check_id": "scheduler.tag-value-unicode-round-trip", "deployments": [], "key": "scheduler/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:ListTagsForResource", "scheduler:TagResource"], "path": "behavioral/scheduler/check_tag_value_unicode_round_trip.py", "service": "scheduler"} {"check_id": "scheduler.untag-resource-removes-tags", "deployments": [], "key": "scheduler/untag-resource-removes-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["scheduler:CreateScheduleGroup", "scheduler:DeleteScheduleGroup", "scheduler:ListTagsForResource", "scheduler:TagResource", "scheduler:UntagResource"], "path": "behavioral/scheduler/check_untag_resource_removes_tags.py", "service": "scheduler"} {"check_id": "scheduler.update-schedule-change-group-forbidden", "deployments": [], "key": "scheduler/update-schedule-change-group-forbidden", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_update_schedule_change_group_forbidden.py", "service": "scheduler"} {"check_id": "scheduler.update-schedule-full-replace-clears-fields", "deployments": [], "key": "scheduler/update-schedule-full-replace-clears-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sts:GetCallerIdentity"], "path": "behavioral/scheduler/check_update_schedule_full_replace_clears_fields.py", "service": "scheduler"} {"check_id": "scheduler.update-schedule-on-deleted-group-blocked", "deployments": [], "key": "scheduler/update-schedule-on-deleted-group-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:CreateScheduleGroup", "scheduler:DeleteSchedule", "scheduler:DeleteScheduleGroup", "scheduler:GetSchedule", "scheduler:GetScheduleGroup", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_update_schedule_on_deleted_group_blocked.py", "service": "scheduler"} {"check_id": "scheduler.update-schedule-target-role-deleted-succeeds", "deployments": [], "key": "scheduler/update-schedule-target-role-deleted-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/scheduler/check_update_schedule_target_role_deleted_succeeds.py", "service": "scheduler"} {"check_id": "scheduler__sns.scheduler-sns-target-delivers-the-notification-envelope-and-a-denied-role-withholds-it", "deployments": [], "key": "scheduler__sns/scheduler-sns-target-delivers-the-notification-envelope-and-a-denied-role-withholds-it", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/scheduler__sns/check_scheduler_sns_target_delivers_the_notification_envelope_and_a_denied_role_withholds_it.py", "service": "scheduler__sns"} {"check_id": "scheduler__sqs.scheduler-disabled-schedule-does-not-invoke-target", "deployments": [], "key": "scheduler__sqs/scheduler-disabled-schedule-does-not-invoke-target", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:UpdateSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/scheduler__sqs/check_scheduler_disabled_schedule_does_not_invoke_target.py", "service": "scheduler__sqs"} {"check_id": "scheduler__sqs.scheduler-fifo-target-applies-each-schedules-own-message-group-id", "deployments": [], "key": "scheduler__sqs/scheduler-fifo-target-applies-each-schedules-own-message-group-id", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler__sqs/check_scheduler_fifo_target_applies_each_schedules_own_message_group_id.py", "service": "scheduler__sqs"} {"check_id": "scheduler__sqs.scheduler-unauthorized-target-role-routes-invocation-to-the-dead-letter-queue", "deployments": [], "key": "scheduler__sqs/scheduler-unauthorized-target-role-routes-invocation-to-the-dead-letter-queue", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/scheduler__sqs/check_scheduler_unauthorized_target_role_routes_invocation_to_the_dead_letter_queue.py", "service": "scheduler__sqs"} {"check_id": "scheduler__stepfunctions.scheduler-schedule-starts-a-state-machine-execution-observed-at-step-functions", "deployments": [], "key": "scheduler__stepfunctions/scheduler-schedule-starts-a-state-machine-execution-observed-at-step-functions", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "scheduler:CreateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:ListStateMachines"], "path": "behavioral/scheduler__stepfunctions/check_scheduler_schedule_starts_a_state_machine_execution_observed_at_step_functions.py", "service": "scheduler__stepfunctions"} {"check_id": "schemas.code-binding-lifecycle-generates-and-downloads", "deployments": [], "key": "schemas/code-binding-lifecycle-generates-and-downloads", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeCodeBinding", "schemas:GetCodeBindingSource", "schemas:PutCodeBinding"], "path": "behavioral/schemas/check_code_binding_lifecycle_generates_and_downloads.py", "service": "schemas"} {"check_id": "schemas.concurrent-schema-updates-produce-unique-sequential-versions", "deployments": [], "key": "schemas/concurrent-schema-updates-produce-unique-sequential-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:ListSchemaVersions", "schemas:UpdateSchema"], "path": "behavioral/schemas/check_concurrent_schema_updates_produce_unique_sequential_versions.py", "service": "schemas"} {"check_id": "schemas.create-discoverer-duplicate-source-rejected-conflict", "deployments": [], "key": "schemas/create-discoverer-duplicate-source-rejected-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "schemas:CreateDiscoverer", "schemas:DeleteDiscoverer", "schemas:DescribeDiscoverer"], "path": "behavioral/schemas/check_create_discoverer_duplicate_source_rejected_conflict.py", "service": "schemas"} {"check_id": "schemas.create-registry-duplicate-name-rejected-conflict", "deployments": [], "key": "schemas/create-registry-duplicate-name-rejected-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:DeleteRegistry", "schemas:DescribeRegistry"], "path": "behavioral/schemas/check_create_registry_duplicate_name_rejected_conflict.py", "service": "schemas"} {"check_id": "schemas.create-schema-creates-version-one", "deployments": [], "key": "schemas/create-schema-creates-version-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeSchema"], "path": "behavioral/schemas/check_create_schema_creates_version_one.py", "service": "schemas"} {"check_id": "schemas.create-schema-duplicate-name-rejected-bad-request", "deployments": [], "key": "schemas/create-schema-duplicate-name-rejected-bad-request", "labels": ["axis:rejection", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeSchema"], "path": "behavioral/schemas/check_create_schema_duplicate_name_rejected_bad_request.py", "service": "schemas"} {"check_id": "schemas.delete-last-schema-version-removes-schema", "deployments": [], "key": "schemas/delete-last-schema-version-removes-schema", "labels": ["axis:rejection", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DeleteSchemaVersion", "schemas:DescribeSchema", "schemas:ListSchemaVersions", "schemas:ListSchemas", "schemas:UpdateSchema"], "path": "behavioral/schemas/check_delete_last_schema_version_removes_schema.py", "service": "schemas"} {"check_id": "schemas.delete-registry-nonempty-rejected", "deployments": [], "key": "schemas/delete-registry-nonempty-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeRegistry", "schemas:DescribeSchema"], "path": "behavioral/schemas/check_delete_registry_nonempty_rejected.py", "service": "schemas"} {"check_id": "schemas.delete-schema-version-keeps-remaining-versions", "deployments": [], "key": "schemas/delete-schema-version-keeps-remaining-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DeleteSchemaVersion", "schemas:DescribeSchema", "schemas:ListSchemaVersions", "schemas:UpdateSchema"], "path": "behavioral/schemas/check_delete_schema_version_keeps_remaining_versions.py", "service": "schemas"} {"check_id": "schemas.describe-schema-specific-version-returns-original-content", "deployments": [], "key": "schemas/describe-schema-specific-version-returns-original-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeSchema", "schemas:UpdateSchema"], "path": "behavioral/schemas/check_describe_schema_specific_version_returns_original_content.py", "service": "schemas"} {"check_id": "schemas.discoverer-lifecycle-start-stop-transitions", "deployments": [], "key": "schemas/discoverer-lifecycle-start-stop-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "schemas:CreateDiscoverer", "schemas:DeleteDiscoverer", "schemas:DescribeDiscoverer", "schemas:StartDiscoverer", "schemas:StopDiscoverer"], "path": "behavioral/schemas/check_discoverer_lifecycle_start_stop_transitions.py", "service": "schemas"} {"check_id": "schemas.export-schema-json-schema-draft4-conversion", "deployments": [], "key": "schemas/export-schema-json-schema-draft4-conversion", "labels": ["axis:rejection", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeSchema", "schemas:ExportSchema", "schemas:ListRegistries", "schemas:ListSchemas"], "path": "behavioral/schemas/check_export_schema_json_schema_draft4_conversion.py", "service": "schemas"} {"check_id": "schemas.get-discovered-schema-infers-openapi-from-events", "deployments": [], "key": "schemas/get-discovered-schema-infers-openapi-from-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["schemas:GetDiscoveredSchema"], "path": "behavioral/schemas/check_get_discovered_schema_infers_openapi_from_events.py", "service": "schemas"} {"check_id": "schemas.list-registries-scope-filter-local-vs-aws", "deployments": [], "key": "schemas/list-registries-scope-filter-local-vs-aws", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:DeleteRegistry", "schemas:DescribeRegistry", "schemas:ListRegistries", "schemas:TagResource", "schemas:UpdateRegistry"], "path": "behavioral/schemas/check_list_registries_scope_filter_local_vs_aws.py", "service": "schemas"} {"check_id": "schemas.list-schema-versions-reflects-all-versions", "deployments": [], "key": "schemas/list-schema-versions-reflects-all-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:ListSchemaVersions", "schemas:UpdateSchema"], "path": "behavioral/schemas/check_list_schema_versions_reflects_all_versions.py", "service": "schemas"} {"check_id": "schemas.list-schemas-prefix-filter", "deployments": [], "key": "schemas/list-schemas-prefix-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:ListSchemas"], "path": "behavioral/schemas/check_list_schemas_prefix_filter.py", "service": "schemas"} {"check_id": "schemas.put-code-binding-unsupported-language-rejected", "deployments": [], "key": "schemas/put-code-binding-unsupported-language-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeCodeBinding", "schemas:PutCodeBinding"], "path": "behavioral/schemas/check_put_code_binding_unsupported_language_rejected.py", "service": "schemas"} {"check_id": "schemas.put-resource-policy-stale-revision-rejected", "deployments": [], "key": "schemas/put-resource-policy-stale-revision-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:DeleteRegistry", "schemas:DeleteResourcePolicy", "schemas:GetResourcePolicy", "schemas:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/schemas/check_put_resource_policy_stale_revision_rejected.py", "service": "schemas"} {"check_id": "schemas.resource-policy-revision-id-round-trip", "deployments": [], "key": "schemas/resource-policy-revision-id-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:DeleteRegistry", "schemas:DeleteResourcePolicy", "schemas:GetResourcePolicy", "schemas:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/schemas/check_resource_policy_revision_id_round_trip.py", "service": "schemas"} {"check_id": "schemas.search-schemas-keyword-filters-results", "deployments": [], "key": "schemas/search-schemas-keyword-filters-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:SearchSchemas"], "path": "behavioral/schemas/check_search_schemas_keyword_filters_results.py", "service": "schemas"} {"check_id": "schemas.tag-resource-list-and-untag-round-trip", "deployments": [], "key": "schemas/tag-resource-list-and-untag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:DeleteRegistry", "schemas:ListTagsForResource", "schemas:TagResource", "schemas:UntagResource"], "path": "behavioral/schemas/check_tag_resource_list_and_untag_round_trip.py", "service": "schemas"} {"check_id": "schemas.update-discoverer-preserves-state", "deployments": [], "key": "schemas/update-discoverer-preserves-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["events:CreateEventBus", "events:DeleteEventBus", "schemas:CreateDiscoverer", "schemas:DeleteDiscoverer", "schemas:DescribeDiscoverer", "schemas:StopDiscoverer", "schemas:UpdateDiscoverer"], "path": "behavioral/schemas/check_update_discoverer_preserves_state.py", "service": "schemas"} {"check_id": "schemas.update-registry-description-persists-without-clobbering-tags", "deployments": [], "key": "schemas/update-registry-description-persists-without-clobbering-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:DeleteRegistry", "schemas:DescribeRegistry", "schemas:ListTagsForResource", "schemas:TagResource", "schemas:UpdateRegistry"], "path": "behavioral/schemas/check_update_registry_description_persists_without_clobbering_tags.py", "service": "schemas"} {"check_id": "schemas.update-schema-idempotency-token-reuses-version", "deployments": [], "key": "schemas/update-schema-idempotency-token-reuses-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:ListSchemaVersions", "schemas:UpdateSchema"], "path": "behavioral/schemas/check_update_schema_idempotency_token_reuses_version.py", "service": "schemas"} {"check_id": "schemas.update-schema-invalid-content-rejected-state-unchanged", "deployments": [], "key": "schemas/update-schema-invalid-content-rejected-state-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeSchema", "schemas:UpdateSchema"], "path": "behavioral/schemas/check_update_schema_invalid_content_rejected_state_unchanged.py", "service": "schemas"} {"check_id": "schemas.update-schema-new-content-increments-version", "deployments": [], "key": "schemas/update-schema-new-content-increments-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["schemas:CreateRegistry", "schemas:CreateSchema", "schemas:DeleteRegistry", "schemas:DeleteSchema", "schemas:DescribeSchema", "schemas:UpdateSchema"], "path": "behavioral/schemas/check_update_schema_new_content_increments_version.py", "service": "schemas"} {"check_id": "secretsmanager.batch-get-secret-value-binary-secret-returns-raw-bytes", "deployments": [], "key": "secretsmanager/batch-get-secret-value-binary-secret-returns-raw-bytes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:BatchGetSecretValue", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_batch_get_secret_value_binary_secret_returns_raw_bytes.py", "service": "secretsmanager"} {"check_id": "secretsmanager.batch-get-secret-value-duplicate-or-more-than-twenty-ids-rejected", "deployments": [], "key": "secretsmanager/batch-get-secret-value-duplicate-or-more-than-twenty-ids-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:BatchGetSecretValue", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/secretsmanager/check_batch_get_secret_value_duplicate_or_more_than_twenty_ids_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.batch-get-secret-value-filters-form-and-pagination", "deployments": [], "key": "secretsmanager/batch-get-secret-value-filters-form-and-pagination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:BatchGetSecretValue", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/secretsmanager/check_batch_get_secret_value_filters_form_and_pagination.py", "service": "secretsmanager"} {"check_id": "secretsmanager.batch-get-secret-value-filters-form-denied-without-list-secrets-permission", "deployments": [], "key": "secretsmanager/batch-get-secret-value-filters-form-denied-without-list-secrets-permission", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:BatchGetSecretValue", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_batch_get_secret_value_filters_form_denied_without_list_secrets_permission.py", "service": "secretsmanager"} {"check_id": "secretsmanager.batch-get-secret-value-order-independent-of-input", "deployments": [], "key": "secretsmanager/batch-get-secret-value-order-independent-of-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:BatchGetSecretValue", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret"], "path": "behavioral/secretsmanager/check_batch_get_secret_value_order_independent_of_input.py", "service": "secretsmanager"} {"check_id": "secretsmanager.batch-get-secret-value-partial-error-for-secret-marked-for-deletion", "deployments": [], "key": "secretsmanager/batch-get-secret-value-partial-error-for-secret-marked-for-deletion", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:BatchGetSecretValue", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_batch_get_secret_value_partial_error_for_secret_marked_for_deletion.py", "service": "secretsmanager"} {"check_id": "secretsmanager.batch-get-secret-value-returns-partial-results-with-a-per-secret-error-for-a-denied-secret", "deployments": [], "key": "secretsmanager/batch-get-secret-value-returns-partial-results-with-a-per-secret-error-for-a-denied-secret", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:BatchGetSecretValue", "secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_batch_get_secret_value_returns_partial_results_with_a_per_secret_error_for_a_denied_secret.py", "service": "secretsmanager"} {"check_id": "secretsmanager.binary-secret-scheduled-for-thirty-days-refuses-reads-and-restores-the-latest-version", "deployments": [], "key": "secretsmanager/binary-secret-scheduled-for-thirty-days-refuses-reads-and-restores-the-latest-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_binary_secret_scheduled_for_thirty_days_refuses_reads_and_restores_the_latest_version.py", "service": "secretsmanager"} {"check_id": "secretsmanager.block-public-policy-condition-key-refuses-a-put-resource-policy-that-disables-the-check", "deployments": [], "key": "secretsmanager/block-public-policy-condition-key-refuses-a-put-resource-policy-that-disables-the-check", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_block_public_policy_condition_key_refuses_a_put_resource_policy_that_disables_the_check.py", "service": "secretsmanager"} {"check_id": "secretsmanager.block-public-policy-false-attaches-the-policy-that-true-refuses", "deployments": [], "key": "secretsmanager/block-public-policy-false-attaches-the-policy-that-true-refuses", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_block_public_policy_false_attaches_the_policy_that_true_refuses.py", "service": "secretsmanager"} {"check_id": "secretsmanager.cancel-rotate-secret-on-a-scheduled-but-unfired-rotation", "deployments": [], "key": "secretsmanager/cancel-rotate-secret-on-a-scheduled-but-unfired-rotation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:FilterLogEvents", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_cancel_rotate_secret_on_a_scheduled_but_unfired_rotation.py", "service": "secretsmanager"} {"check_id": "secretsmanager.cancel-rotate-secret-when-not-rotating", "deployments": [], "key": "secretsmanager/cancel-rotate-secret-when-not-rotating", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_cancel_rotate_secret_when_not_rotating.py", "service": "secretsmanager"} {"check_id": "secretsmanager.cmk-key-policy-granting-only-decrypt-lets-a-role-read-but-refuses-its-write", "deployments": [], "key": "secretsmanager/cmk-key-policy-granting-only-decrypt-lets-a-role-read-but-refuses-its-write", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_cmk_key_policy_granting_only_decrypt_lets_a_role_read_but_refuses_its_write.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-create-secret-idempotent-token", "deployments": [], "key": "secretsmanager/concurrent-create-secret-idempotent-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds"], "path": "behavioral/secretsmanager/check_concurrent_create_secret_idempotent_token.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-delete-and-restore-race-consistent-state", "deployments": [], "key": "secretsmanager/concurrent-delete-and-restore-race-consistent-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_concurrent_delete_and_restore_race_consistent_state.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-delete-and-restore-race-deterministic-outcome", "deployments": [], "key": "secretsmanager/concurrent-delete-and-restore-race-deterministic-outcome", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_concurrent_delete_and_restore_race_deterministic_outcome.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-put-resource-policy-no-corruption", "deployments": [], "key": "secretsmanager/concurrent-put-resource-policy-no-corruption", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_concurrent_put_resource_policy_no_corruption.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-put-secret-value-no-lost-versions", "deployments": [], "key": "secretsmanager/concurrent-put-secret-value-no-lost-versions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_concurrent_put_secret_value_no_lost_versions.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-rotate-secret-single-execution-enforced", "deployments": [], "key": "secretsmanager/concurrent-rotate-secret-single-execution-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_concurrent_rotate_secret_single_execution_enforced.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-update-secret-version-stage-conflicting-move", "deployments": [], "key": "secretsmanager/concurrent-update-secret-version-stage-conflicting-move", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_concurrent_update_secret_version_stage_conflicting_move.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-update-secret-version-stage-last-write-wins", "deployments": [], "key": "secretsmanager/concurrent-update-secret-version-stage-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_concurrent_update_secret_version_stage_last_write_wins.py", "service": "secretsmanager"} {"check_id": "secretsmanager.concurrent-update-secret-version-stage-optimistic-lock", "deployments": [], "key": "secretsmanager/concurrent-update-secret-version-stage-optimistic-lock", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_concurrent_update_secret_version_stage_optimistic_lock.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-duplicate-secret-name-fails", "deployments": [], "key": "secretsmanager/create-duplicate-secret-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_create_duplicate_secret_name_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-active-state", "deployments": [], "key": "secretsmanager/create-secret-active-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_create_secret_active_state.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-both-string-and-binary-rejected", "deployments": [], "key": "secretsmanager/create-secret-both-string-and-binary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/secretsmanager/check_create_secret_both_string_and_binary_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-conflicting-secret-value-params-rejected", "deployments": [], "key": "secretsmanager/create-secret-conflicting-secret-value-params-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_create_secret_conflicting_secret_value_params_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-empty-string-description-preserved-vs-absent", "deployments": [], "key": "secretsmanager/create-secret-empty-string-description-preserved-vs-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/secretsmanager/check_create_secret_empty_string_description_preserved_vs_absent.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-idempotent-token", "deployments": [], "key": "secretsmanager/create-secret-idempotent-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds"], "path": "behavioral/secretsmanager/check_create_secret_idempotent_token.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-invalid-kms-key-rejected", "deployments": [], "key": "secretsmanager/create-secret-invalid-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_create_secret_invalid_kms_key_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-invalid-name-rejected", "deployments": [], "key": "secretsmanager/create-secret-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets"], "path": "behavioral/secretsmanager/check_create_secret_invalid_name_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-name-exceeds-max-length-rejected", "deployments": [], "key": "secretsmanager/create-secret-name-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets"], "path": "behavioral/secretsmanager/check_create_secret_name_exceeds_max_length_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-name-scheduled-for-deletion-fails", "deployments": [], "key": "secretsmanager/create-secret-name-scheduled-for-deletion-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_create_secret_name_scheduled_for_deletion_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.create-secret-under-a-cmk-pending-deletion-rejected", "deployments": [], "key": "secretsmanager/create-secret-under-a-cmk-pending-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_create_secret_under_a_cmk_pending_deletion_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.cross-region-replica-removed-by-remove-regions-and-promoted-by-stop-replication", "deployments": [], "key": "secretsmanager/cross-region-replica-removed-by-remove-regions-and-promoted-by-stop-replication", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions", "secretsmanager:StopReplicationToReplica"], "path": "behavioral/secretsmanager/check_cross_region_replica_removed_by_remove_regions_and_promoted_by_stop_replication.py", "service": "secretsmanager"} {"check_id": "secretsmanager.custom-staging-label-move-leaves-the-awscurrent-awsprevious-slots-untouched", "deployments": [], "key": "secretsmanager/custom-staging-label-move-leaves-the-awscurrent-awsprevious-slots-untouched", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_custom_staging_label_move_leaves_the_awscurrent_awsprevious_slots_untouched.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deep-secrets-and-params-force-deleted-secret-old-arn-and-version-ids-rejected-after-name-reuse", "deployments": [], "key": "secretsmanager/deep-secrets-and-params-force-deleted-secret-old-arn-and-version-ids-rejected-after-name-reuse", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_deep_secrets_and_params_force_deleted_secret_old_arn_and_version_ids_rejected_after_name_reuse.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deep-secrets-and-params-restore-secret-preserves-the-whole-staging-map-and-every-version", "deployments": [], "key": "secretsmanager/deep-secrets-and-params-restore-secret-preserves-the-whole-staging-map-and-every-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_deep_secrets_and_params_restore_secret_preserves_the_whole_staging_map_and_every_version.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-resource-policy-noop-when-absent", "deployments": [], "key": "secretsmanager/delete-resource-policy-noop-when-absent", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy"], "path": "behavioral/secretsmanager/check_delete_resource_policy_noop_when_absent.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-again-while-scheduled-reschedules-and-force-delete-overrides-the-window", "deployments": [], "key": "secretsmanager/delete-secret-again-while-scheduled-reschedules-and-force-delete-overrides-the-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_delete_secret_again_while_scheduled_reschedules_and_force_delete_overrides_the_window.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-conflicting-recovery-params-fails", "deployments": [], "key": "secretsmanager/delete-secret-conflicting-recovery-params-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_delete_secret_conflicting_recovery_params_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-conflicting-recovery-params-rejected", "deployments": [], "key": "secretsmanager/delete-secret-conflicting-recovery-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_delete_secret_conflicting_recovery_params_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-disables-rotation-and-restore-does-not-reenable-it", "deployments": [], "key": "secretsmanager/delete-secret-disables-rotation-and-restore-does-not-reenable-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_delete_secret_disables_rotation_and_restore_does_not_reenable_it.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-force-immediate", "deployments": [], "key": "secretsmanager/delete-secret-force-immediate", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_delete_secret_force_immediate.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-invalid-recovery-window-rejected", "deployments": [], "key": "secretsmanager/delete-secret-invalid-recovery-window-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_delete_secret_invalid_recovery_window_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-recovery-window-out-of-range-fails", "deployments": [], "key": "secretsmanager/delete-secret-recovery-window-out-of-range-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/secretsmanager/check_delete_secret_recovery_window_out_of_range_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-recovery-window-sets-deletion-date-offset", "deployments": [], "key": "secretsmanager/delete-secret-recovery-window-sets-deletion-date-offset", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_delete_secret_recovery_window_sets_deletion_date_offset.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-recovery-window-sets-exact-deletion-date", "deployments": [], "key": "secretsmanager/delete-secret-recovery-window-sets-exact-deletion-date", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_delete_secret_recovery_window_sets_exact_deletion_date.py", "service": "secretsmanager"} {"check_id": "secretsmanager.delete-secret-schedules-deletion", "deployments": [], "key": "secretsmanager/delete-secret-schedules-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_delete_secret_schedules_deletion.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-delete-stack-schedules-deletion", "deployments": [], "key": "secretsmanager/deploy-cfn-delete-stack-schedules-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/secretsmanager/check_deploy_cfn_delete_stack_schedules_deletion.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-description-update-keeps-the-generated-value-and-a-generator-change-regenerates", "deployments": [], "key": "secretsmanager/deploy-cfn-description-update-keeps-the-generated-value-and-a-generator-change-regenerates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_deploy_cfn_description_update_keeps_the_generated_value_and_a_generator_change_regenerates.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-dynamic-reference-resolves-the-json-key-of-the-named-version", "deployments": [], "key": "secretsmanager/deploy-cfn-dynamic-reference-resolves-the-json-key-of-the-named-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_deploy_cfn_dynamic_reference_resolves_the_json_key_of_the_named_version.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-dynamic-reference-to-a-missing-json-key-rejected-and-rolled-back", "deployments": [], "key": "secretsmanager/deploy-cfn-dynamic-reference-to-a-missing-json-key-rejected-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_deploy_cfn_dynamic_reference_to_a_missing_json_key_rejected_and_rolled_back.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-public-resource-policy-rejected-by-block-public-policy-and-rolled-back", "deployments": [], "key": "secretsmanager/deploy-cfn-public-resource-policy-rejected-by-block-public-policy-and-rolled-back", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_deploy_cfn_public_resource_policy_rejected_by_block_public_policy_and_rolled_back.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-replica-regions-serve-the-value-in-the-second-region-and-stack-delete-removes-both", "deployments": [], "key": "secretsmanager/deploy-cfn-replica-regions-serve-the-value-in-the-second-region-and-stack-delete-removes-both", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RemoveRegionsFromReplication"], "path": "behavioral/secretsmanager/check_deploy_cfn_replica_regions_serve_the_value_in_the_second_region_and_stack_delete_removes_both.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-resource-policy-attached-enforced", "deployments": [], "key": "secretsmanager/deploy-cfn-resource-policy-attached-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_deploy_cfn_resource_policy_attached_enforced.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-secret-creates-active", "deployments": [], "key": "secretsmanager/deploy-cfn-secret-creates-active", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_deploy_cfn_secret_creates_active.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-secret-generate-secret-string-matches-template", "deployments": [], "key": "secretsmanager/deploy-cfn-secret-generate-secret-string-matches-template", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_deploy_cfn_secret_generate_secret_string_matches_template.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-secret-generates-and-serves-value", "deployments": [], "key": "secretsmanager/deploy-cfn-secret-generates-and-serves-value", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_deploy_cfn_secret_generates_and_serves_value.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-cfn-stack-update-secret-value-new-version", "deployments": [], "key": "secretsmanager/deploy-cfn-stack-update-secret-value-new-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_deploy_cfn_stack_update_secret_value_new_version.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-rotation-schedule-cfn-triggers-rotation", "deployments": [], "key": "secretsmanager/deploy-rotation-schedule-cfn-triggers-rotation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_deploy_rotation_schedule_cfn_triggers_rotation.py", "service": "secretsmanager"} {"check_id": "secretsmanager.deploy-secret-cfn-stack-behaves", "deployments": [], "key": "secretsmanager/deploy-secret-cfn-stack-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_deploy_secret_cfn_stack_behaves.py", "service": "secretsmanager"} {"check_id": "secretsmanager.describe-nonexistent-secret-fails", "deployments": [], "key": "secretsmanager/describe-nonexistent-secret-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/secretsmanager/check_describe_nonexistent_secret_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.description-empty-vs-absent-distinct", "deployments": [], "key": "secretsmanager/description-empty-vs-absent-distinct", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret"], "path": "behavioral/secretsmanager/check_description_empty_vs_absent_distinct.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-create-use-rotate-delete-restore", "deployments": [], "key": "secretsmanager/e2e-create-use-rotate-delete-restore", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "secretsmanager:RestoreSecret", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_e2e_create_use_rotate_delete_restore.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-cross-service-lambda-rotation-consequence", "deployments": [], "key": "secretsmanager/e2e-cross-service-lambda-rotation-consequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_e2e_cross_service_lambda_rotation_consequence.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-replica-promotion-after-stop-replication", "deployments": [], "key": "secretsmanager/e2e-replica-promotion-after-stop-replication", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:ReplicateSecretToRegions", "secretsmanager:StopReplicationToReplica"], "path": "behavioral/secretsmanager/check_e2e_replica_promotion_after_stop_replication.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-replica-secret-propagation-and-teardown", "deployments": [], "key": "secretsmanager/e2e-replica-secret-propagation-and-teardown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions"], "path": "behavioral/secretsmanager/check_e2e_replica_secret_propagation_and_teardown.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-resource-policy-attach-detach-consequence", "deployments": [], "key": "secretsmanager/e2e-resource-policy-attach-detach-consequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_e2e_resource_policy_attach_detach_consequence.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-rotate-secret-lambda-invocation-flow", "deployments": [], "key": "secretsmanager/e2e-rotate-secret-lambda-invocation-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_e2e_rotate_secret_lambda_invocation_flow.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-rotation-produces-new-current-version", "deployments": [], "key": "secretsmanager/e2e-rotation-produces-new-current-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_e2e_rotation_produces_new_current_version.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-secret-create-use-delete-restore-flow", "deployments": [], "key": "secretsmanager/e2e-secret-create-use-delete-restore-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_e2e_secret_create_use_delete_restore_flow.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-secret-lifecycle-value-and-tombstone", "deployments": [], "key": "secretsmanager/e2e-secret-lifecycle-value-and-tombstone", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecrets", "secretsmanager:PutSecretValue", "secretsmanager:RestoreSecret", "secretsmanager:TagResource"], "path": "behavioral/secretsmanager/check_e2e_secret_lifecycle_value_and_tombstone.py", "service": "secretsmanager"} {"check_id": "secretsmanager.e2e-version-stage-promotion-consequence-flow", "deployments": [], "key": "secretsmanager/e2e-version-stage-promotion-consequence-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:ListSecrets", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_e2e_version_stage_promotion_consequence_flow.py", "service": "secretsmanager"} {"check_id": "secretsmanager.force-delete-of-a-missing-secret-succeeds-and-creates-nothing", "deployments": [], "key": "secretsmanager/force-delete-of-a-missing-secret-succeeds-and-creates-nothing", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets"], "path": "behavioral/secretsmanager/check_force_delete_of_a_missing_secret_succeeds_and_creates_nothing.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-random-password-default-length", "deployments": [], "key": "secretsmanager/get-random-password-default-length", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:GetRandomPassword"], "path": "behavioral/secretsmanager/check_get_random_password_default_length.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-random-password-exclude-all-characters-rejected", "deployments": [], "key": "secretsmanager/get-random-password-exclude-all-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:GetRandomPassword"], "path": "behavioral/secretsmanager/check_get_random_password_exclude_all_characters_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-random-password-exclude-include-conflict-rejected", "deployments": [], "key": "secretsmanager/get-random-password-exclude-include-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:GetRandomPassword"], "path": "behavioral/secretsmanager/check_get_random_password_exclude_include_conflict_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-random-password-excluded-chars-conflict-rejected", "deployments": [], "key": "secretsmanager/get-random-password-excluded-chars-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:GetRandomPassword"], "path": "behavioral/secretsmanager/check_get_random_password_excluded_chars_conflict_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-random-password-invalid-length-fails", "deployments": [], "key": "secretsmanager/get-random-password-invalid-length-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:GetRandomPassword"], "path": "behavioral/secretsmanager/check_get_random_password_invalid_length_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-random-password-satisfies-every-constraint", "deployments": [], "key": "secretsmanager/get-random-password-satisfies-every-constraint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:GetRandomPassword"], "path": "behavioral/secretsmanager/check_get_random_password_satisfies_every_constraint.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-resource-policy-absent-no-error", "deployments": [], "key": "secretsmanager/get-resource-policy-absent-no-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy"], "path": "behavioral/secretsmanager/check_get_resource_policy_absent_no_error.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-access-denied-by-resource-policy", "deployments": [], "key": "secretsmanager/get-secret-value-access-denied-by-resource-policy", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_get_secret_value_access_denied_by_resource_policy.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-malformed-version-id-rejected-by-length", "deployments": [], "key": "secretsmanager/get-secret-value-malformed-version-id-rejected-by-length", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_get_secret_value_malformed_version_id_rejected_by_length.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-missing-stage-rejected", "deployments": [], "key": "secretsmanager/get-secret-value-missing-stage-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_get_secret_value_missing_stage_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-nonexistent-fails", "deployments": [], "key": "secretsmanager/get-secret-value-nonexistent-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_get_secret_value_nonexistent_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-on-secret-created-without-value-rejected-until-first-put", "deployments": [], "key": "secretsmanager/get-secret-value-on-secret-created-without-value-rejected-until-first-put", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:BatchGetSecretValue", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_get_secret_value_on_secret_created_without_value_rejected_until_first_put.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-rejects-a-version-id-and-version-stage-that-disagree", "deployments": [], "key": "secretsmanager/get-secret-value-rejects-a-version-id-and-version-stage-that-disagree", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_get_secret_value_rejects_a_version_id_and_version_stage_that_disagree.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-scheduled-deletion-fails", "deployments": [], "key": "secretsmanager/get-secret-value-scheduled-deletion-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_get_secret_value_scheduled_deletion_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-sets-last-accessed-date-to-the-day-without-changing-last-changed-date", "deployments": [], "key": "secretsmanager/get-secret-value-sets-last-accessed-date-to-the-day-without-changing-last-changed-date", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds"], "path": "behavioral/secretsmanager/check_get_secret_value_sets_last_accessed_date_to_the_day_without_changing_last_changed_date.py", "service": "secretsmanager"} {"check_id": "secretsmanager.get-secret-value-wrong-version-id-fails", "deployments": [], "key": "secretsmanager/get-secret-value-wrong-version-id-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_get_secret_value_wrong_version_id_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.identity-policy-deny-overrides-a-resource-policy-allow-for-the-same-role", "deployments": [], "key": "secretsmanager/identity-policy-deny-overrides-a-resource-policy-allow-for-the-same-role", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_identity_policy_deny_overrides_a_resource_policy_allow_for_the_same_role.py", "service": "secretsmanager"} {"check_id": "secretsmanager.last-changed-date-advances-on-tag-put-and-update-but-not-on-reads", "deployments": [], "key": "secretsmanager/last-changed-date-advances-on-tag-put-and-update-but-not-on-reads", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "secretsmanager:TagResource", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_last_changed_date_advances_on_tag_put_and_update_but_not_on_reads.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secret-version-ids-chronological-order", "deployments": [], "key": "secretsmanager/list-secret-version-ids-chronological-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_list_secret_version_ids_chronological_order.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secret-version-ids-descending-creation-order", "deployments": [], "key": "secretsmanager/list-secret-version-ids-descending-creation-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_list_secret_version_ids_descending_creation_order.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secret-version-ids-includes-versions", "deployments": [], "key": "secretsmanager/list-secret-version-ids-includes-versions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_list_secret_version_ids_includes_versions.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secret-version-ids-max-results-pages-every-version-once", "deployments": [], "key": "secretsmanager/list-secret-version-ids-max-results-pages-every-version-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_list_secret_version_ids_max_results_pages_every_version_once.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secrets-description-and-all-filters-match-words-case-insensitively", "deployments": [], "key": "secretsmanager/list-secrets-description-and-all-filters-match-words-case-insensitively", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets"], "path": "behavioral/secretsmanager/check_list_secrets_description_and_all_filters_match_words_case_insensitively.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secrets-filter-and-planned-deletion", "deployments": [], "key": "secretsmanager/list-secrets-filter-and-planned-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecrets", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_list_secrets_filter_and_planned_deletion.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secrets-invalid-filter-key-value-and-page-size-rejected", "deployments": [], "key": "secretsmanager/list-secrets-invalid-filter-key-value-and-page-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets"], "path": "behavioral/secretsmanager/check_list_secrets_invalid_filter_key_value_and_page_size_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secrets-negated-filter-values-exclude-matches", "deployments": [], "key": "secretsmanager/list-secrets-negated-filter-values-exclude-matches", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets"], "path": "behavioral/secretsmanager/check_list_secrets_negated_filter_values_exclude_matches.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secrets-pagination-nexttoken-and-sort-order", "deployments": [], "key": "secretsmanager/list-secrets-pagination-nexttoken-and-sort-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets"], "path": "behavioral/secretsmanager/check_list_secrets_pagination_nexttoken_and_sort_order.py", "service": "secretsmanager"} {"check_id": "secretsmanager.list-secrets-tag-key-and-tag-value-filters-prefix-match-and-combine", "deployments": [], "key": "secretsmanager/list-secrets-tag-key-and-tag-value-filters-prefix-match-and-combine", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets"], "path": "behavioral/secretsmanager/check_list_secrets_tag_key_and_tag_value_filters_prefix_match_and_combine.py", "service": "secretsmanager"} {"check_id": "secretsmanager.live-replica-makes-the-primary-undeletable-and-the-replica-unwritable", "deployments": [], "key": "secretsmanager/live-replica-makes-the-primary-undeletable-and-the-replica-unwritable", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_live_replica_makes_the_primary_undeletable_and_the_replica_unwritable.py", "service": "secretsmanager"} {"check_id": "secretsmanager.promoted-replica-retains-tags-and-resource-policy-and-both-become-independently-mutable", "deployments": [], "key": "secretsmanager/promoted-replica-retains-tags-and-resource-policy-and-both-become-independently-mutable", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions", "secretsmanager:StopReplicationToReplica", "secretsmanager:TagResource"], "path": "behavioral/secretsmanager/check_promoted_replica_retains_tags_and_resource_policy_and_both_become_independently_mutable.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-resource-policy-malformed-json-rejected", "deployments": [], "key": "secretsmanager/put-resource-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_put_resource_policy_malformed_json_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-resource-policy-public-policy-rejected", "deployments": [], "key": "secretsmanager/put-resource-policy-public-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_put_resource_policy_public_policy_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-resource-policy-roundtrip", "deployments": [], "key": "secretsmanager/put-resource-policy-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy"], "path": "behavioral/secretsmanager/check_put_resource_policy_roundtrip.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-awspending-then-promote-to-current", "deployments": [], "key": "secretsmanager/put-secret-value-awspending-then-promote-to-current", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_put_secret_value_awspending_then_promote_to_current.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-binary-blob-byte-identical-round-trip", "deployments": [], "key": "secretsmanager/put-secret-value-binary-blob-byte-identical-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_binary_blob_byte_identical_round_trip.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-client-token-replay-is-idempotent-for-the-same-value-and-rejected-for-a-different-one", "deployments": [], "key": "secretsmanager/put-secret-value-client-token-replay-is-idempotent-for-the-same-value-and-rejected-for-a-different-one", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_client_token_replay_is_idempotent_for_the_same_value_and_rejected_for_a_different_one.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-conflicting-binary-and-string-rejected", "deployments": [], "key": "secretsmanager/put-secret-value-conflicting-binary-and-string-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_conflicting_binary_and_string_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-exceeds-size-limit-rejected", "deployments": [], "key": "secretsmanager/put-secret-value-exceeds-size-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_exceeds_size_limit_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-idempotent-token", "deployments": [], "key": "secretsmanager/put-secret-value-idempotent-token", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_idempotent_token.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-missing-value-fails", "deployments": [], "key": "secretsmanager/put-secret-value-missing-value-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_missing_value_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-new-current-version", "deployments": [], "key": "secretsmanager/put-secret-value-new-current-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_new_current_version.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-on-deleted-secret-fails", "deployments": [], "key": "secretsmanager/put-secret-value-on-deleted-secret-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_put_secret_value_on_deleted_secret_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-token-conflict", "deployments": [], "key": "secretsmanager/put-secret-value-token-conflict", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_token_conflict.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-token-conflict-rejected", "deployments": [], "key": "secretsmanager/put-secret-value-token-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_token_conflict_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-under-a-disabled-cmk-rejected-and-the-current-version-kept", "deployments": [], "key": "secretsmanager/put-secret-value-under-a-disabled-cmk-rejected-and-the-current-version-kept", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_under_a_disabled_cmk_rejected_and_the_current_version_kept.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-unicode-string-round-trip", "deployments": [], "key": "secretsmanager/put-secret-value-unicode-string-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_unicode_string_round_trip.py", "service": "secretsmanager"} {"check_id": "secretsmanager.put-secret-value-version-stages-list-moves-every-label-in-one-call", "deployments": [], "key": "secretsmanager/put-secret-value-version-stages-list-moves-every-label-in-one-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_put_secret_value_version_stages_list_moves_every_label_in_one_call.py", "service": "secretsmanager"} {"check_id": "secretsmanager.recovery-window-condition-keys-forbid-a-force-delete-and-a-short-window", "deployments": [], "key": "secretsmanager/recovery-window-condition-keys-forbid-a-force-delete-and-a-short-window", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_recovery_window_condition_keys_forbid_a_force_delete_and_a_short_window.py", "service": "secretsmanager"} {"check_id": "secretsmanager.replica-refuses-tag-and-resource-policy-mutations-while-reads-propagate", "deployments": [], "key": "secretsmanager/replica-refuses-tag-and-resource-policy-mutations-while-reads-propagate", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions", "secretsmanager:TagResource", "secretsmanager:UntagResource", "secretsmanager:ValidateResourcePolicy"], "path": "behavioral/secretsmanager/check_replica_refuses_tag_and_resource_policy_mutations_while_reads_propagate.py", "service": "secretsmanager"} {"check_id": "secretsmanager.replica-under-a-missing-kms-key-reports-failed-and-is-recoverable-by-remove-then-replicate", "deployments": [], "key": "secretsmanager/replica-under-a-missing-kms-key-reports-failed-and-is-recoverable-by-remove-then-replicate", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_replica_under_a_missing_kms_key_reports_failed_and_is_recoverable_by_remove_then_replicate.py", "service": "secretsmanager"} {"check_id": "secretsmanager.replicate-secret-refuses-a-name-collision-until-force-overwrite", "deployments": [], "key": "secretsmanager/replicate-secret-refuses-a-name-collision-until-force-overwrite", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions"], "path": "behavioral/secretsmanager/check_replicate_secret_refuses_a_name_collision_until_force_overwrite.py", "service": "secretsmanager"} {"check_id": "secretsmanager.replication-lifecycle", "deployments": [], "key": "secretsmanager/replication-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions", "secretsmanager:StopReplicationToReplica"], "path": "behavioral/secretsmanager/check_replication_lifecycle.py", "service": "secretsmanager"} {"check_id": "secretsmanager.request-tag-condition-refuses-a-create-secret-without-the-required-tag", "deployments": [], "key": "secretsmanager/request-tag-condition-refuses-a-create-secret-without-the-required-tag", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_request_tag_condition_refuses_a_create_secret_without_the_required_tag.py", "service": "secretsmanager"} {"check_id": "secretsmanager.resource-policy-deny-blocks-get-secret-value", "deployments": [], "key": "secretsmanager/resource-policy-deny-blocks-get-secret-value", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_resource_policy_deny_blocks_get_secret_value.py", "service": "secretsmanager"} {"check_id": "secretsmanager.resource-policy-deny-unless-principal-arn-locks-reads-to-one-role", "deployments": [], "key": "secretsmanager/resource-policy-deny-unless-principal-arn-locks-reads-to-one-role", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_resource_policy_deny_unless_principal_arn_locks_reads_to_one_role.py", "service": "secretsmanager"} {"check_id": "secretsmanager.resource-policy-large-json-byte-preserved", "deployments": [], "key": "secretsmanager/resource-policy-large-json-byte-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_resource_policy_large_json_byte_preserved.py", "service": "secretsmanager"} {"check_id": "secretsmanager.resource-policy-public-policy-blocked", "deployments": [], "key": "secretsmanager/resource-policy-public-policy-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_resource_policy_public_policy_blocked.py", "service": "secretsmanager"} {"check_id": "secretsmanager.resource-tag-condition-grants-get-secret-value-only-while-the-tag-matches", "deployments": [], "key": "secretsmanager/resource-tag-condition-grants-get-secret-value-only-while-the-tag-matches", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:TagResource", "secretsmanager:UntagResource", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_resource_tag_condition_grants_get_secret_value_only_while_the_tag_matches.py", "service": "secretsmanager"} {"check_id": "secretsmanager.restore-nonexistent-secret-fails", "deployments": [], "key": "secretsmanager/restore-nonexistent-secret-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_restore_nonexistent_secret_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.restore-secret-after-permanent-deletion-rejected", "deployments": [], "key": "secretsmanager/restore-secret-after-permanent-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_restore_secret_after_permanent_deletion_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.restore-secret-clears-deletion", "deployments": [], "key": "secretsmanager/restore-secret-clears-deletion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret"], "path": "behavioral/secretsmanager/check_restore_secret_clears_deletion.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotate-secret-duration-without-a-schedule-or-frequency-rejected", "deployments": [], "key": "secretsmanager/rotate-secret-duration-without-a-schedule-or-frequency-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RotateSecret", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_rotate_secret_duration_without_a_schedule_or_frequency_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotate-secret-lambda-invoke-permission-missing-denied", "deployments": [], "key": "secretsmanager/rotate-secret-lambda-invoke-permission-missing-denied", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_rotate_secret_lambda_invoke_permission_missing_denied.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotate-secret-lambda-without-invoke-permission-denied", "deployments": [], "key": "secretsmanager/rotate-secret-lambda-without-invoke-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetPolicy", "logs:DeleteLogGroup", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_rotate_secret_lambda_without_invoke_permission_denied.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotate-secret-scheduled-deletion-rejected", "deployments": [], "key": "secretsmanager/rotate-secret-scheduled-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RestoreSecret", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_rotate_secret_scheduled_deletion_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotate-secret-while-in-progress-rejected", "deployments": [], "key": "secretsmanager/rotate-secret-while-in-progress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_rotate_secret_while_in_progress_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotate-secret-without-lambda-arn-configured-rejected", "deployments": [], "key": "secretsmanager/rotate-secret-without-lambda-arn-configured-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_rotate_secret_without_lambda_arn_configured_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotation-after-cancel-rotate-secret-resumes-the-stuck-token-instead-of-the-requested-one", "deployments": [], "key": "secretsmanager/rotation-after-cancel-rotate-secret-resumes-the-stuck-token-instead-of-the-requested-one", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:UpdateFunctionConfiguration", "logs:DeleteLogGroup", "logs:FilterLogEvents", "secretsmanager:CancelRotateSecret", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_rotation_after_cancel_rotate_secret_resumes_the_stuck_token_instead_of_the_requested_one.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotation-history-preserves-chronological-version-order", "deployments": [], "key": "secretsmanager/rotation-history-preserves-chronological-version-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_rotation_history_preserves_chronological_version_order.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotation-lambda-missing-permission-rejected", "deployments": [], "key": "secretsmanager/rotation-lambda-missing-permission-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "logs:DeleteLogGroup", "logs:FilterLogEvents", "secretsmanager:DescribeSecret", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_rotation_lambda_missing_permission_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotation-rules-automatically-after-days-sets-next-rotation-date", "deployments": [], "key": "secretsmanager/rotation-rules-automatically-after-days-sets-next-rotation-date", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetPolicy", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_rotation_rules_automatically_after_days_sets_next_rotation_date.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotation-rules-sets-next-rotation-date-window", "deployments": [], "key": "secretsmanager/rotation-rules-sets-next-rotation-date-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_rotation_rules_sets_next_rotation_date_window.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotation-rules-validation-rejected", "deployments": [], "key": "secretsmanager/rotation-rules-validation-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:RotateSecret", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_rotation_rules_validation_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotation-schedule-expression-with-duration-places-next-rotation-in-the-window", "deployments": [], "key": "secretsmanager/rotation-schedule-expression-with-duration-places-next-rotation-in-the-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_rotation_schedule_expression_with_duration_places_next_rotation_in_the_window.py", "service": "secretsmanager"} {"check_id": "secretsmanager.rotation-schedule-next-rotation-date-advances", "deployments": [], "key": "secretsmanager/rotation-schedule-next-rotation-date-advances", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RotateSecret", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_rotation_schedule_next_rotation_date_advances.py", "service": "secretsmanager"} {"check_id": "secretsmanager.same-name-secrets-in-two-regions-are-independent", "deployments": [], "key": "secretsmanager/same-name-secrets-in-two-regions-are-independent", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_same_name_secrets_in_two_regions_are_independent.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-binary-blob-round-trip", "deployments": [], "key": "secretsmanager/secret-binary-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_secret_binary_blob_round_trip.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-binary-roundtrip-secretstring-absent", "deployments": [], "key": "secretsmanager/secret-binary-roundtrip-secretstring-absent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_secret_binary_roundtrip_secretstring_absent.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-scheduled-for-deletion-refuses-tag-policy-and-stage-changes", "deployments": [], "key": "secretsmanager/secret-scheduled-for-deletion-refuses-tag-policy-and-stage-changes", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutResourcePolicy", "secretsmanager:RestoreSecret", "secretsmanager:TagResource", "secretsmanager:UntagResource", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_secret_scheduled_for_deletion_refuses_tag_policy_and_stage_changes.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-string-large-numeric-precision-preserved", "deployments": [], "key": "secretsmanager/secret-string-large-numeric-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_secret_string_large_numeric_precision_preserved.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-string-max-size-boundary-enforced", "deployments": [], "key": "secretsmanager/secret-string-max-size-boundary-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_secret_string_max_size_boundary_enforced.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-string-unicode-round-trip", "deployments": [], "key": "secretsmanager/secret-string-unicode-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_secret_string_unicode_round_trip.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-value-empty-string-preserved", "deployments": [], "key": "secretsmanager/secret-value-empty-string-preserved", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_secret_value_empty_string_preserved.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-value-empty-string-vs-absent-preserved", "deployments": [], "key": "secretsmanager/secret-value-empty-string-vs-absent-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue"], "path": "behavioral/secretsmanager/check_secret_value_empty_string_vs_absent_preserved.py", "service": "secretsmanager"} {"check_id": "secretsmanager.secret-version-timestamp-precision-preserved", "deployments": [], "key": "secretsmanager/secret-version-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_secret_version_timestamp_precision_preserved.py", "service": "secretsmanager"} {"check_id": "secretsmanager.server-side-kms-decryption-transparent-on-get", "deployments": [], "key": "secretsmanager/server-side-kms-decryption-transparent-on-get", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_server_side_kms_decryption_transparent_on_get.py", "service": "secretsmanager"} {"check_id": "secretsmanager.server-side-kms-encryption-transparent-decryption", "deployments": [], "key": "secretsmanager/server-side-kms-encryption-transparent-decryption", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_server_side_kms_encryption_transparent_decryption.py", "service": "secretsmanager"} {"check_id": "secretsmanager.server-side-managed-rotation-lambda-invocation-enforced", "deployments": [], "key": "secretsmanager/server-side-managed-rotation-lambda-invocation-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RotateSecret"], "path": "behavioral/secretsmanager/check_server_side_managed_rotation_lambda_invocation_enforced.py", "service": "secretsmanager"} {"check_id": "secretsmanager.server-side-replication-propagates-value-without-client-action", "deployments": [], "key": "secretsmanager/server-side-replication-propagates-value-without-client-action", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RemoveRegionsFromReplication", "secretsmanager:ReplicateSecretToRegions"], "path": "behavioral/secretsmanager/check_server_side_replication_propagates_value_without_client_action.py", "service": "secretsmanager"} {"check_id": "secretsmanager.server-side-resource-policy-blocks-get-secret-value", "deployments": [], "key": "secretsmanager/server-side-resource-policy-blocks-get-secret-value", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_server_side_resource_policy_blocks_get_secret_value.py", "service": "secretsmanager"} {"check_id": "secretsmanager.server-side-resource-policy-enforced-on-access", "deployments": [], "key": "secretsmanager/server-side-resource-policy-enforced-on-access", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_server_side_resource_policy_enforced_on_access.py", "service": "secretsmanager"} {"check_id": "secretsmanager.staging-label-cap-refuses-the-twenty-first-label-on-a-version", "deployments": [], "key": "secretsmanager/staging-label-cap-refuses-the-twenty-first-label-on-a-version", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_staging_label_cap_refuses_the_twenty_first_label_on_a_version.py", "service": "secretsmanager"} {"check_id": "secretsmanager.staging-label-rollback-survives-scheduled-delete-and-restore", "deployments": [], "key": "secretsmanager/staging-label-rollback-survives-scheduled-delete-and-restore", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret", "secretsmanager:UpdateSecret", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_staging_label_rollback_survives_scheduled_delete_and_restore.py", "service": "secretsmanager"} {"check_id": "secretsmanager.tag-resource-fifty-tag-cap-and-duplicate-keys-rejected", "deployments": [], "key": "secretsmanager/tag-resource-fifty-tag-cap-and-duplicate-keys-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:TagResource"], "path": "behavioral/secretsmanager/check_tag_resource_fifty_tag_cap_and_duplicate_keys_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.tag-resource-invalid-key-format-rejected", "deployments": [], "key": "secretsmanager/tag-resource-invalid-key-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:TagResource"], "path": "behavioral/secretsmanager/check_tag_resource_invalid_key_format_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.tag-resource-invalid-tag-key-format-rejected", "deployments": [], "key": "secretsmanager/tag-resource-invalid-tag-key-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:TagResource"], "path": "behavioral/secretsmanager/check_tag_resource_invalid_tag_key_format_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.tag-resource-reserved-prefix-fails", "deployments": [], "key": "secretsmanager/tag-resource-reserved-prefix-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:TagResource"], "path": "behavioral/secretsmanager/check_tag_resource_reserved_prefix_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.tag-resource-visible-in-describe", "deployments": [], "key": "secretsmanager/tag-resource-visible-in-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:TagResource", "secretsmanager:UntagResource"], "path": "behavioral/secretsmanager/check_tag_resource_visible_in_describe.py", "service": "secretsmanager"} {"check_id": "secretsmanager.tag-untag-resource-lifecycle", "deployments": [], "key": "secretsmanager/tag-untag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:RestoreSecret", "secretsmanager:TagResource", "secretsmanager:UntagResource"], "path": "behavioral/secretsmanager/check_tag_untag_resource_lifecycle.py", "service": "secretsmanager"} {"check_id": "secretsmanager.tag-value-empty-string-preserved", "deployments": [], "key": "secretsmanager/tag-value-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:TagResource"], "path": "behavioral/secretsmanager/check_tag_value_empty_string_preserved.py", "service": "secretsmanager"} {"check_id": "secretsmanager.tag-value-unicode-preserved", "deployments": [], "key": "secretsmanager/tag-value-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:TagResource"], "path": "behavioral/secretsmanager/check_tag_value_unicode_preserved.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-client-request-token-replay-is-idempotent-and-reuse-with-a-new-value-rejected", "deployments": [], "key": "secretsmanager/update-secret-client-request-token-replay-is-idempotent-and-reuse-with-a-new-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_update_secret_client_request_token_replay_is_idempotent_and_reuse_with_a_new_value_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-creates-new-current-version", "deployments": [], "key": "secretsmanager/update-secret-creates-new-current-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:RestoreSecret", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_update_secret_creates_new_current_version.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-evicts-a-separately-staged-awspending-label", "deployments": [], "key": "secretsmanager/update-secret-evicts-a-separately-staged-awspending-label", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_update_secret_evicts_a_separately_staged_awspending_label.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-invalid-kms-key-rejected", "deployments": [], "key": "secretsmanager/update-secret-invalid-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:UpdateSecret", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_update_secret_invalid_kms_key_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-kms-key-change-re-encrypts-so-the-old-key-is-no-longer-needed", "deployments": [], "key": "secretsmanager/update-secret-kms-key-change-re-encrypts-so-the-old-key-is-no-longer-needed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DisableKey", "kms:EnableKey", "kms:Encrypt", "kms:ScheduleKeyDeletion", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_update_secret_kms_key_change_re_encrypts_so_the_old_key_is_no_longer_needed.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-nonexistent-kms-key-rejected", "deployments": [], "key": "secretsmanager/update-secret-nonexistent-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:UpdateSecret", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_update_secret_nonexistent_kms_key_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-on-deleted-secret-fails", "deployments": [], "key": "secretsmanager/update-secret-on-deleted-secret-fails", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:RestoreSecret", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_update_secret_on_deleted_secret_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-version-stage-move-awscurrent-without-moveto-rejected", "deployments": [], "key": "secretsmanager/update-secret-version-stage-move-awscurrent-without-moveto-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_update_secret_version_stage_move_awscurrent_without_moveto_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-version-stage-moves-label", "deployments": [], "key": "secretsmanager/update-secret-version-stage-moves-label", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_update_secret_version_stage_moves_label.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-version-stage-nonexistent-version-id-rejected", "deployments": [], "key": "secretsmanager/update-secret-version-stage-nonexistent-version-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_update_secret_version_stage_nonexistent_version_id_rejected.py", "service": "secretsmanager"} {"check_id": "secretsmanager.update-secret-version-stage-remove-current-without-move-fails", "deployments": [], "key": "secretsmanager/update-secret-version-stage-remove-current-without-move-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage"], "path": "behavioral/secretsmanager/check_update_secret_version_stage_remove_current_without_move_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.validate-resource-policy", "deployments": [], "key": "secretsmanager/validate-resource-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:ValidateResourcePolicy"], "path": "behavioral/secretsmanager/check_validate_resource_policy.py", "service": "secretsmanager"} {"check_id": "secretsmanager.validate-resource-policy-malformed-fails", "deployments": [], "key": "secretsmanager/validate-resource-policy-malformed-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:ValidateResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_validate_resource_policy_malformed_fails.py", "service": "secretsmanager"} {"check_id": "secretsmanager.validate-resource-policy-reports-validation-errors", "deployments": [], "key": "secretsmanager/validate-resource-policy-reports-validation-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:ValidateResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_validate_resource_policy_reports_validation_errors.py", "service": "secretsmanager"} {"check_id": "secretsmanager.version-loses-all-staging-labels-after-two-demotions", "deployments": [], "key": "secretsmanager/version-loses-all-staging-labels-after-two-demotions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_version_loses_all_staging_labels_after_two_demotions.py", "service": "secretsmanager"} {"check_id": "secretsmanager.version-stage-condition-key-scopes-a-read-to-one-staging-label", "deployments": [], "key": "secretsmanager/version-stage-condition-key-scopes-a-read-to-one-staging-label", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_version_stage_condition_key_scopes_a_read_to_one_staging_label.py", "service": "secretsmanager"} {"check_id": "secretsmanager.version-stage-history-linked-list-order-preserved", "deployments": [], "key": "secretsmanager/version-stage-history-linked-list-order-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue"], "path": "behavioral/secretsmanager/check_version_stage_history_linked_list_order_preserved.py", "service": "secretsmanager"} {"check_id": "secretsmanager.wildcard-principal-scoped-by-principal-account-is-not-public-and-admits-a-same-account-role", "deployments": [], "key": "secretsmanager/wildcard-principal-scoped-by-principal-account-is-not-public-and-admits-a-same-account-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "secretsmanager:CreateSecret", "secretsmanager:DeleteResourcePolicy", "secretsmanager:DeleteSecret", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:PutResourcePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager/check_wildcard_principal_scoped_by_principal_account_is_not_public_and_admits_a_same_account_role.py", "service": "secretsmanager"} {"check_id": "secretsmanager.write-calls-on-a-missing-secret-rejected-and-create-nothing", "deployments": [], "key": "secretsmanager/write-calls-on-a-missing-secret-rejected-and-create-nothing", "labels": ["axis:rejection", "plane:control"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:ListSecretVersionIds", "secretsmanager:ListSecrets", "secretsmanager:PutSecretValue", "secretsmanager:TagResource", "secretsmanager:UntagResource", "secretsmanager:UpdateSecret"], "path": "behavioral/secretsmanager/check_write_calls_on_a_missing_secret_rejected_and_create_nothing.py", "service": "secretsmanager"} {"check_id": "secretsmanager__ssm.parameter-store-reference-is-refused-without-the-secretsmanager-grant", "deployments": [], "key": "secretsmanager__ssm/parameter-store-reference-is-refused-without-the-secretsmanager-grant", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/secretsmanager__ssm/check_parameter_store_reference_is_refused_without_the_secretsmanager_grant.py", "service": "secretsmanager__ssm"} {"check_id": "secretsmanager__ssm.parameter-store-reference-serves-the-secret-and-honours-its-staging-labels", "deployments": [], "key": "secretsmanager__ssm/parameter-store-reference-serves-the-secret-and-honours-its-staging-labels", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "ssm:GetParameter", "ssm:GetParametersByPath"], "path": "behavioral/secretsmanager__ssm/check_parameter_store_reference_serves_the_secret_and_honours_its_staging_labels.py", "service": "secretsmanager__ssm"} {"check_id": "securityagent.add-artifact-get-round-trip", "deployments": [], "key": "securityagent/add-artifact-get-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["securityagent:AddArtifact", "securityagent:CreateAgentSpace", "securityagent:DeleteAgentSpace", "securityagent:DeleteArtifact", "securityagent:GetArtifact"], "path": "behavioral/securityagent/check_add_artifact_get_round_trip.py", "service": "securityagent"} {"check_id": "securityagent.add-artifact-invalid-type-rejected", "deployments": [], "key": "securityagent/add-artifact-invalid-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["securityagent:AddArtifact", "securityagent:CreateAgentSpace", "securityagent:DeleteAgentSpace", "securityagent:DeleteArtifact", "securityagent:ListArtifacts"], "path": "behavioral/securityagent/check_add_artifact_invalid_type_rejected.py", "service": "securityagent"} {"check_id": "securityagent.agent-space-lifecycle-crud", "deployments": [], "key": "securityagent/agent-space-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:BatchGetAgentSpaces", "securityagent:CreateAgentSpace", "securityagent:DeleteAgentSpace"], "path": "behavioral/securityagent/check_agent_space_lifecycle_crud.py", "service": "securityagent"} {"check_id": "securityagent.agent-space-update-persists-fields", "deployments": [], "key": "securityagent/agent-space-update-persists-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:BatchGetAgentSpaces", "securityagent:CreateAgentSpace", "securityagent:DeleteAgentSpace", "securityagent:UpdateAgentSpace"], "path": "behavioral/securityagent/check_agent_space_update_persists_fields.py", "service": "securityagent"} {"check_id": "securityagent.batch-create-security-requirements-duplicate-partial-failure", "deployments": [], "key": "securityagent/batch-create-security-requirements-duplicate-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:BatchCreateSecurityRequirements", "securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:ListSecurityRequirements"], "path": "behavioral/securityagent/check_batch_create_security_requirements_duplicate_partial_failure.py", "service": "securityagent"} {"check_id": "securityagent.batch-create-security-requirements-round-trip", "deployments": [], "key": "securityagent/batch-create-security-requirements-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:BatchCreateSecurityRequirements", "securityagent:BatchDeleteSecurityRequirements", "securityagent:BatchGetSecurityRequirements", "securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:ListSecurityRequirements"], "path": "behavioral/securityagent/check_batch_create_security_requirements_round_trip.py", "service": "securityagent"} {"check_id": "securityagent.batch-delete-aws-managed-security-requirement-rejected", "deployments": [], "key": "securityagent/batch-delete-aws-managed-security-requirement-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securityagent:BatchCreateSecurityRequirements", "securityagent:BatchDeleteSecurityRequirements", "securityagent:BatchGetSecurityRequirements", "securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:ListSecurityRequirementPacks", "securityagent:ListSecurityRequirements"], "path": "behavioral/securityagent/check_batch_delete_aws_managed_security_requirement_rejected.py", "service": "securityagent"} {"check_id": "securityagent.batch-delete-security-requirements-partial-not-found", "deployments": [], "key": "securityagent/batch-delete-security-requirements-partial-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["securityagent:BatchCreateSecurityRequirements", "securityagent:BatchDeleteSecurityRequirements", "securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:ListSecurityRequirements"], "path": "behavioral/securityagent/check_batch_delete_security_requirements_partial_not_found.py", "service": "securityagent"} {"check_id": "securityagent.batch-get-agent-spaces-partial-not-found", "deployments": [], "key": "securityagent/batch-get-agent-spaces-partial-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:BatchGetAgentSpaces", "securityagent:CreateAgentSpace", "securityagent:DeleteAgentSpace"], "path": "behavioral/securityagent/check_batch_get_agent_spaces_partial_not_found.py", "service": "securityagent"} {"check_id": "securityagent.batch-get-artifact-metadata-round-trip", "deployments": [], "key": "securityagent/batch-get-artifact-metadata-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["securityagent:AddArtifact", "securityagent:BatchGetArtifactMetadata", "securityagent:CreateAgentSpace", "securityagent:DeleteAgentSpace", "securityagent:DeleteArtifact"], "path": "behavioral/securityagent/check_batch_get_artifact_metadata_round_trip.py", "service": "securityagent"} {"check_id": "securityagent.batch-update-security-requirements-round-trip", "deployments": [], "key": "securityagent/batch-update-security-requirements-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:BatchCreateSecurityRequirements", "securityagent:BatchDeleteSecurityRequirements", "securityagent:BatchGetSecurityRequirements", "securityagent:BatchUpdateSecurityRequirements", "securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack"], "path": "behavioral/securityagent/check_batch_update_security_requirements_round_trip.py", "service": "securityagent"} {"check_id": "securityagent.code-review-job-reaches-terminal-state", "deployments": [], "key": "securityagent/code-review-job-reaches-terminal-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutObject", "securityagent:BatchDeleteCodeReviews", "securityagent:BatchGetCodeReviewJobs", "securityagent:CreateAgentSpace", "securityagent:CreateCodeReview", "securityagent:DeleteAgentSpace", "securityagent:StartCodeReviewJob"], "path": "behavioral/securityagent/check_code_review_job_reaches_terminal_state.py", "service": "securityagent"} {"check_id": "securityagent.concurrent-pack-creation-same-name-no-corruption", "deployments": [], "key": "securityagent/concurrent-pack-creation-same-name-no-corruption", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:GetSecurityRequirementPack", "securityagent:ListSecurityRequirementPacks"], "path": "behavioral/securityagent/check_concurrent_pack_creation_same_name_no_corruption.py", "service": "securityagent"} {"check_id": "securityagent.create-private-connection-missing-mode-rejected", "deployments": [], "key": "securityagent/create-private-connection-missing-mode-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securityagent:CreatePrivateConnection", "securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:GetSecurityRequirementPack", "securityagent:ListPrivateConnections"], "path": "behavioral/securityagent/check_create_private_connection_missing_mode_rejected.py", "service": "securityagent"} {"check_id": "securityagent.create-private-connection-nonexistent-self-managed-resource-rejected", "deployments": [], "key": "securityagent/create-private-connection-nonexistent-self-managed-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securityagent:CreatePrivateConnection", "securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:DescribePrivateConnection", "securityagent:ListPrivateConnections", "sts:GetCallerIdentity"], "path": "behavioral/securityagent/check_create_private_connection_nonexistent_self_managed_resource_rejected.py", "service": "securityagent"} {"check_id": "securityagent.create-target-domain-pending-with-verification-details", "deployments": [], "key": "securityagent/create-target-domain-pending-with-verification-details", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:BatchGetTargetDomains", "securityagent:CreateTargetDomain", "securityagent:DeleteTargetDomain"], "path": "behavioral/securityagent/check_create_target_domain_pending_with_verification_details.py", "service": "securityagent"} {"check_id": "securityagent.duplicate-security-requirement-pack-name-allowed", "deployments": [], "key": "securityagent/duplicate-security-requirement-pack-name-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:GetSecurityRequirementPack", "securityagent:ListSecurityRequirementPacks"], "path": "behavioral/securityagent/check_duplicate_security_requirement_pack_name_allowed.py", "service": "securityagent"} {"check_id": "securityagent.list-artifacts-reflects-additions-and-deletions", "deployments": [], "key": "securityagent/list-artifacts-reflects-additions-and-deletions", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:AddArtifact", "securityagent:CreateAgentSpace", "securityagent:DeleteAgentSpace", "securityagent:DeleteArtifact", "securityagent:GetArtifact", "securityagent:ListArtifacts"], "path": "behavioral/securityagent/check_list_artifacts_reflects_additions_and_deletions.py", "service": "securityagent"} {"check_id": "securityagent.security-requirement-pack-disabled-status-at-creation", "deployments": [], "key": "securityagent/security-requirement-pack-disabled-status-at-creation", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:GetSecurityRequirementPack"], "path": "behavioral/securityagent/check_security_requirement_pack_disabled_status_at_creation.py", "service": "securityagent"} {"check_id": "securityagent.security-requirement-pack-lifecycle-crud", "deployments": [], "key": "securityagent/security-requirement-pack-lifecycle-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:GetSecurityRequirementPack"], "path": "behavioral/securityagent/check_security_requirement_pack_lifecycle_crud.py", "service": "securityagent"} {"check_id": "securityagent.update-security-requirement-pack-persists-changes", "deployments": [], "key": "securityagent/update-security-requirement-pack-persists-changes", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:CreateSecurityRequirementPack", "securityagent:DeleteSecurityRequirementPack", "securityagent:GetSecurityRequirementPack", "securityagent:UpdateSecurityRequirementPack"], "path": "behavioral/securityagent/check_update_security_requirement_pack_persists_changes.py", "service": "securityagent"} {"check_id": "securityagent.verify-target-domain-never-succeeds-without-dns-record", "deployments": [], "key": "securityagent/verify-target-domain-never-succeeds-without-dns-record", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityagent:BatchGetTargetDomains", "securityagent:CreateTargetDomain", "securityagent:DeleteTargetDomain", "securityagent:VerifyTargetDomain"], "path": "behavioral/securityagent/check_verify_target_domain_never_succeeds_without_dns_record.py", "service": "securityagent"} {"check_id": "securityhub.automation-rule-disabled-rule-not-applied", "deployments": [], "key": "securityhub/automation-rule-disabled-rule-not-applied", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["securityhub:BatchDeleteAutomationRules", "securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:CreateAutomationRule", "securityhub:EnableSecurityHub", "securityhub:GetFindings", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_automation_rule_disabled_rule_not_applied.py", "service": "securityhub"} {"check_id": "securityhub.automation-rule-suppresses-matching-finding", "deployments": [], "key": "securityhub/automation-rule-suppresses-matching-finding", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["securityhub:BatchDeleteAutomationRules", "securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:CreateAutomationRule", "securityhub:EnableSecurityHub", "securityhub:GetFindings", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_automation_rule_suppresses_matching_finding.py", "service": "securityhub"} {"check_id": "securityhub.batch-enable-standards-invalid-arn-rejected", "deployments": [], "key": "securityhub/batch-enable-standards-invalid-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securityhub:BatchDisableStandards", "securityhub:BatchEnableStandards", "securityhub:DescribeStandards", "securityhub:EnableSecurityHub", "securityhub:GetEnabledStandards", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_batch_enable_standards_invalid_arn_rejected.py", "service": "securityhub"} {"check_id": "securityhub.batch-get-security-controls-parameter-round-trip", "deployments": [], "key": "securityhub/batch-get-security-controls-parameter-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityhub:BatchGetSecurityControls", "securityhub:EnableSecurityHub", "securityhub:GetSecurityControlDefinition", "securityhub:ListSecurityControlDefinitions", "securityhub:UpdateSecurityControl"], "path": "behavioral/securityhub/check_batch_get_security_controls_parameter_round_trip.py", "service": "securityhub"} {"check_id": "securityhub.batch-import-findings-customer-fields-preserved-on-reimport", "deployments": [], "key": "securityhub/batch-import-findings-customer-fields-preserved-on-reimport", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:EnableSecurityHub", "securityhub:GetFindings", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_batch_import_findings_customer_fields_preserved_on_reimport.py", "service": "securityhub"} {"check_id": "securityhub.batch-import-findings-partial-failure-isolated", "deployments": [], "key": "securityhub/batch-import-findings-partial-failure-isolated", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:EnableSecurityHub", "securityhub:GetFindings", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_batch_import_findings_partial_failure_isolated.py", "service": "securityhub"} {"check_id": "securityhub.batch-import-findings-round-trip", "deployments": [], "key": "securityhub/batch-import-findings-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:EnableSecurityHub", "securityhub:GetFindings", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_batch_import_findings_round_trip.py", "service": "securityhub"} {"check_id": "securityhub.batch-update-automation-rules-toggle-status", "deployments": [], "key": "securityhub/batch-update-automation-rules-toggle-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityhub:BatchDeleteAutomationRules", "securityhub:BatchGetAutomationRules", "securityhub:BatchUpdateAutomationRules", "securityhub:CreateAutomationRule", "securityhub:EnableSecurityHub"], "path": "behavioral/securityhub/check_batch_update_automation_rules_toggle_status.py", "service": "securityhub"} {"check_id": "securityhub.batch-update-findings-workflow-status-transition", "deployments": [], "key": "securityhub/batch-update-findings-workflow-status-transition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:EnableSecurityHub", "securityhub:GetFindings", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_batch_update_findings_workflow_status_transition.py", "service": "securityhub"} {"check_id": "securityhub.create-action-target-concurrent-race-exactly-one-wins", "deployments": [], "key": "securityhub/create-action-target-concurrent-race-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["securityhub:CreateActionTarget", "securityhub:DeleteActionTarget", "securityhub:DescribeActionTargets", "securityhub:EnableSecurityHub"], "path": "behavioral/securityhub/check_create_action_target_concurrent_race_exactly_one_wins.py", "service": "securityhub"} {"check_id": "securityhub.create-action-target-duplicate-id-rejected", "deployments": [], "key": "securityhub/create-action-target-duplicate-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securityhub:CreateActionTarget", "securityhub:DeleteActionTarget", "securityhub:DescribeActionTargets", "securityhub:EnableSecurityHub"], "path": "behavioral/securityhub/check_create_action_target_duplicate_id_rejected.py", "service": "securityhub"} {"check_id": "securityhub.create-finding-aggregator-singleton-limit-exceeded", "deployments": [], "key": "securityhub/create-finding-aggregator-singleton-limit-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["securityhub:CreateFindingAggregator", "securityhub:DeleteFindingAggregator", "securityhub:EnableSecurityHub", "securityhub:GetFindingAggregator", "securityhub:ListFindingAggregators"], "path": "behavioral/securityhub/check_create_finding_aggregator_singleton_limit_exceeded.py", "service": "securityhub"} {"check_id": "securityhub.create-insight-get-results-group-by-counts", "deployments": [], "key": "securityhub/create-insight-get-results-group-by-counts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:CreateInsight", "securityhub:DeleteInsight", "securityhub:EnableSecurityHub", "securityhub:GetFindings", "securityhub:GetInsightResults", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_create_insight_get_results_group_by_counts.py", "service": "securityhub"} {"check_id": "securityhub.create-members-lifecycle-created-then-deleted-returns-empty", "deployments": [], "key": "securityhub/create-members-lifecycle-created-then-deleted-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityhub:CreateMembers", "securityhub:DeleteMembers", "securityhub:EnableSecurityHub", "securityhub:GetMembers", "securityhub:ListMembers"], "path": "behavioral/securityhub/check_create_members_lifecycle_created_then_deleted_returns_empty.py", "service": "securityhub"} {"check_id": "securityhub.delete-action-target-removes-from-list", "deployments": [], "key": "securityhub/delete-action-target-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityhub:CreateActionTarget", "securityhub:DeleteActionTarget", "securityhub:DescribeActionTargets", "securityhub:EnableSecurityHub"], "path": "behavioral/securityhub/check_delete_action_target_removes_from_list.py", "service": "securityhub"} {"check_id": "securityhub.enable-security-hub-double-enable-rejected", "deployments": [], "key": "securityhub/enable-security-hub-double-enable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securityhub:DescribeHub", "securityhub:EnableSecurityHub"], "path": "behavioral/securityhub/check_enable_security_hub_double_enable_rejected.py", "service": "securityhub"} {"check_id": "securityhub.get-finding-history-records-update", "deployments": [], "key": "securityhub/get-finding-history-records-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:EnableSecurityHub", "securityhub:GetFindingHistory", "securityhub:GetFindings", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_get_finding_history_records_update.py", "service": "securityhub"} {"check_id": "securityhub.standards-lifecycle-enable-ready-disable-removed", "deployments": [], "key": "securityhub/standards-lifecycle-enable-ready-disable-removed", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityhub:BatchDisableStandards", "securityhub:BatchEnableStandards", "securityhub:DescribeStandards", "securityhub:DescribeStandardsControls", "securityhub:EnableSecurityHub", "securityhub:GetEnabledStandards"], "path": "behavioral/securityhub/check_standards_lifecycle_enable_ready_disable_removed.py", "service": "securityhub"} {"check_id": "securityhub.tag-resource-list-tags-untag-round-trip", "deployments": [], "key": "securityhub/tag-resource-list-tags-untag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["securityhub:EnableSecurityHub", "securityhub:ListTagsForResource", "securityhub:TagResource", "securityhub:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_tag_resource_list_tags_untag_round_trip.py", "service": "securityhub"} {"check_id": "securityhub.update-findings-record-state-archive-has-no-effect", "deployments": [], "key": "securityhub/update-findings-record-state-archive-has-no-effect", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["securityhub:BatchImportFindings", "securityhub:BatchUpdateFindings", "securityhub:EnableSecurityHub", "securityhub:GetFindings", "securityhub:UpdateFindings", "sts:GetCallerIdentity"], "path": "behavioral/securityhub/check_update_findings_record_state_archive_has_no_effect.py", "service": "securityhub"} {"check_id": "securityhub.update-standards-control-disable-requires-reason-rejected", "deployments": [], "key": "securityhub/update-standards-control-disable-requires-reason-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securityhub:BatchDisableStandards", "securityhub:BatchEnableStandards", "securityhub:DescribeStandards", "securityhub:DescribeStandardsControls", "securityhub:EnableSecurityHub", "securityhub:GetEnabledStandards", "securityhub:UpdateStandardsControl"], "path": "behavioral/securityhub/check_update_standards_control_disable_requires_reason_rejected.py", "service": "securityhub"} {"check_id": "securitylake.create-data-lake-exception-subscription-duplicate-conflict-rejected", "deployments": [], "key": "securitylake/create-data-lake-exception-subscription-duplicate-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securitylake:CreateDataLake", "securitylake:CreateDataLakeExceptionSubscription", "securitylake:GetDataLakeExceptionSubscription", "securitylake:GetDataLakeSources", "securitylake:ListDataLakes", "sts:GetCallerIdentity"], "path": "behavioral/securitylake/check_create_data_lake_exception_subscription_duplicate_conflict_rejected.py", "service": "securitylake"} {"check_id": "securitylake.delete-data-lake-removes-resource", "deployments": [], "key": "securitylake/delete-data-lake-removes-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "securitylake:CreateDataLake", "securitylake:DeleteDataLake", "securitylake:GetDataLakeSources", "securitylake:ListDataLakes"], "path": "behavioral/securitylake/check_delete_data_lake_removes_resource.py", "service": "securitylake"} {"check_id": "securitylake.get-data-lake-sources-without-data-lake-not-found-rejected", "deployments": [], "key": "securitylake/get-data-lake-sources-without-data-lake-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["securitylake:CreateDataLake", "securitylake:GetDataLakeSources", "securitylake:ListDataLakes", "sts:GetCallerIdentity"], "path": "behavioral/securitylake/check_get_data_lake_sources_without_data_lake_not_found_rejected.py", "service": "securitylake"} {"check_id": "serverlessrepo.application-policy-replace-semantics", "deployments": [], "key": "serverlessrepo/application-policy-replace-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["serverlessrepo:CreateApplication", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplicationPolicy", "serverlessrepo:PutApplicationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/serverlessrepo/check_application_policy_replace_semantics.py", "service": "serverlessrepo"} {"check_id": "serverlessrepo.application-version-publish-lifecycle", "deployments": [], "key": "serverlessrepo/application-version-publish-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions"], "path": "behavioral/serverlessrepo/check_application_version_publish_lifecycle.py", "service": "serverlessrepo"} {"check_id": "serverlessrepo.cloudformation-template-expiry-window", "deployments": [], "key": "serverlessrepo/cloudformation-template-expiry-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["serverlessrepo:CreateApplication", "serverlessrepo:CreateCloudFormationTemplate", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplication", "serverlessrepo:GetCloudFormationTemplate"], "path": "behavioral/serverlessrepo/check_cloudformation_template_expiry_window.py", "service": "serverlessrepo"} {"check_id": "serverlessrepo.rejects-duplicate-semantic-version", "deployments": [], "key": "serverlessrepo/rejects-duplicate-semantic-version", "labels": ["axis:rejection", "plane:control"], "operations": ["serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions"], "path": "behavioral/serverlessrepo/check_rejects_duplicate_semantic_version.py", "service": "serverlessrepo"} {"check_id": "serverlessrepo.rejects-template-without-transform", "deployments": [], "key": "serverlessrepo/rejects-template-without-transform", "labels": ["axis:rejection", "plane:control"], "operations": ["serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions"], "path": "behavioral/serverlessrepo/check_rejects_template_without_transform.py", "service": "serverlessrepo"} {"check_id": "serverlessrepo.rejects-unshareable-policy-statement", "deployments": [], "key": "serverlessrepo/rejects-unshareable-policy-statement", "labels": ["axis:rejection", "plane:control"], "operations": ["serverlessrepo:CreateApplication", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplicationPolicy", "serverlessrepo:PutApplicationPolicy", "sts:GetCallerIdentity"], "path": "behavioral/serverlessrepo/check_rejects_unshareable_policy_statement.py", "service": "serverlessrepo"} {"check_id": "serverlessrepo.sar-deploy-denied-for-role-scoped-to-another-application", "deployments": [], "key": "serverlessrepo/sar-deploy-denied-for-role-scoped-to-another-application", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:DeleteStack", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "serverlessrepo:CreateApplication", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplication", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/serverlessrepo/check_sar_deploy_denied_for_role_scoped_to_another_application.py", "service": "serverlessrepo"} {"check_id": "serverlessrepo.sar-prepared-template-serves-the-published-body", "deployments": [], "key": "serverlessrepo/sar-prepared-template-serves-the-published-body", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["serverlessrepo:CreateApplication", "serverlessrepo:CreateCloudFormationTemplate", "serverlessrepo:DeleteApplication", "serverlessrepo:GetCloudFormationTemplate"], "path": "behavioral/serverlessrepo/check_sar_prepared_template_serves_the_published_body.py", "service": "serverlessrepo"} {"check_id": "serverlessrepo.sar-version-pointer-follows-latest-published-version", "deployments": [], "key": "serverlessrepo/sar-version-pointer-follows-latest-published-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", "serverlessrepo:DeleteApplication", "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions"], "path": "behavioral/serverlessrepo/check_sar_version_pointer_follows_latest_published_version.py", "service": "serverlessrepo"} {"check_id": "service-quotas.auto-management-exclusion-list-invalid-quota-rejected", "deployments": [], "key": "service-quotas/auto-management-exclusion-list-invalid-quota-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetAutoManagementConfiguration", "service-quotas:ListServiceQuotas", "service-quotas:StartAutoManagement", "service-quotas:StopAutoManagement"], "path": "behavioral/service-quotas/check_auto_management_exclusion_list_invalid_quota_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.auto-management-lifecycle-transitions", "deployments": [], "key": "service-quotas/auto-management-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetAutoManagementConfiguration", "service-quotas:ListServiceQuotas", "service-quotas:StartAutoManagement", "service-quotas:StopAutoManagement", "service-quotas:UpdateAutoManagement", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/service-quotas/check_auto_management_lifecycle_transitions.py", "service": "service-quotas"} {"check_id": "service-quotas.auto-management-start-update-stop-lifecycle", "deployments": [], "key": "service-quotas/auto-management-start-update-stop-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetAutoManagementConfiguration", "service-quotas:StartAutoManagement", "service-quotas:StopAutoManagement", "service-quotas:UpdateAutoManagement"], "path": "behavioral/service-quotas/check_auto_management_start_update_stop_lifecycle.py", "service": "service-quotas"} {"check_id": "service-quotas.concurrent-duplicate-quota-increase-requests-dedup-race", "deployments": [], "key": "service-quotas/concurrent-duplicate-quota-increase-requests-dedup-race", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_concurrent_duplicate_quota_increase_requests_dedup_race.py", "service": "service-quotas"} {"check_id": "service-quotas.concurrent-requests-for-distinct-quotas-are-independent", "deployments": [], "key": "service-quotas/concurrent-requests-for-distinct-quotas-are-independent", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_concurrent_requests_for_distinct_quotas_are_independent.py", "service": "service-quotas"} {"check_id": "service-quotas.duplicate-pending-quota-increase-request-rejected", "deployments": [], "key": "service-quotas/duplicate-pending-quota-increase-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_duplicate_pending_quota_increase_request_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.get-requested-service-quota-change-invalid-request-id-rejected", "deployments": [], "key": "service-quotas/get-requested-service-quota-change-invalid-request-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_get_requested_service_quota_change_invalid_request_id_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.get-service-quota-at-least-aws-default", "deployments": [], "key": "service-quotas/get-service-quota-at-least-aws-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetAWSDefaultServiceQuota", "service-quotas:GetServiceQuota"], "path": "behavioral/service-quotas/check_get_service_quota_at_least_aws_default.py", "service": "service-quotas"} {"check_id": "service-quotas.get-service-quota-invalid-service-code-pattern-rejected", "deployments": [], "key": "service-quotas/get-service-quota-invalid-service-code-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetAWSDefaultServiceQuota", "service-quotas:GetServiceQuota"], "path": "behavioral/service-quotas/check_get_service_quota_invalid_service_code_pattern_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.get-service-quota-matches-list-service-quotas", "deployments": [], "key": "service-quotas/get-service-quota-matches-list-service-quotas", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetServiceQuota", "service-quotas:ListServiceQuotas"], "path": "behavioral/service-quotas/check_get_service_quota_matches_list_service_quotas.py", "service": "service-quotas"} {"check_id": "service-quotas.get-service-quota-unknown-quota-code-not-found", "deployments": [], "key": "service-quotas/get-service-quota-unknown-quota-code-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetAWSDefaultServiceQuota", "service-quotas:GetServiceQuota"], "path": "behavioral/service-quotas/check_get_service_quota_unknown_quota_code_not_found.py", "service": "service-quotas"} {"check_id": "service-quotas.invalid-pagination-token-rejected", "deployments": [], "key": "service-quotas/invalid-pagination-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:ListServiceQuotas"], "path": "behavioral/service-quotas/check_invalid_pagination_token_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.list-aws-default-service-quotas-matches-get-default", "deployments": [], "key": "service-quotas/list-aws-default-service-quotas-matches-get-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetAWSDefaultServiceQuota", "service-quotas:ListAWSDefaultServiceQuotas"], "path": "behavioral/service-quotas/check_list_aws_default_service_quotas_matches_get_default.py", "service": "service-quotas"} {"check_id": "service-quotas.list-aws-default-service-quotas-pagination", "deployments": [], "key": "service-quotas/list-aws-default-service-quotas-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListAWSDefaultServiceQuotas"], "path": "behavioral/service-quotas/check_list_aws_default_service_quotas_pagination.py", "service": "service-quotas"} {"check_id": "service-quotas.list-requested-quota-change-history-by-quota-includes-pending-request", "deployments": [], "key": "service-quotas/list-requested-quota-change-history-by-quota-includes-pending-request", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_list_requested_quota_change_history_by_quota_includes_pending_request.py", "service": "service-quotas"} {"check_id": "service-quotas.list-requested-service-quota-change-history-status-filter", "deployments": [], "key": "service-quotas/list-requested-service-quota-change-history-status-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_list_requested_service_quota_change_history_status_filter.py", "service": "service-quotas"} {"check_id": "service-quotas.list-service-quotas-applied-at-level-all-is-superset-of-account", "deployments": [], "key": "service-quotas/list-service-quotas-applied-at-level-all-is-superset-of-account", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListServiceQuotas"], "path": "behavioral/service-quotas/check_list_service_quotas_applied_at_level_all_is_superset_of_account.py", "service": "service-quotas"} {"check_id": "service-quotas.list-service-quotas-filter-by-quota-code", "deployments": [], "key": "service-quotas/list-service-quotas-filter-by-quota-code", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListServiceQuotas"], "path": "behavioral/service-quotas/check_list_service_quotas_filter_by_quota_code.py", "service": "service-quotas"} {"check_id": "service-quotas.list-service-quotas-invalid-pagination-token-rejected", "deployments": [], "key": "service-quotas/list-service-quotas-invalid-pagination-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:ListServiceQuotas"], "path": "behavioral/service-quotas/check_list_service_quotas_invalid_pagination_token_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.list-service-quotas-pagination-no-duplicates", "deployments": [], "key": "service-quotas/list-service-quotas-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListServiceQuotas"], "path": "behavioral/service-quotas/check_list_service_quotas_pagination_no_duplicates.py", "service": "service-quotas"} {"check_id": "service-quotas.list-services-pagination-no-duplicates", "deployments": [], "key": "service-quotas/list-services-pagination-no-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListServices"], "path": "behavioral/service-quotas/check_list_services_pagination_no_duplicates.py", "service": "service-quotas"} {"check_id": "service-quotas.list-services-pagination-returns-distinct-pages", "deployments": [], "key": "service-quotas/list-services-pagination-returns-distinct-pages", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListServices"], "path": "behavioral/service-quotas/check_list_services_pagination_returns_distinct_pages.py", "service": "service-quotas"} {"check_id": "service-quotas.list-tags-for-resource-invalid-arn-pattern-rejected", "deployments": [], "key": "service-quotas/list-tags-for-resource-invalid-arn-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetServiceQuota", "service-quotas:ListTagsForResource"], "path": "behavioral/service-quotas/check_list_tags_for_resource_invalid_arn_pattern_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.malformed-service-code-rejected", "deployments": [], "key": "service-quotas/malformed-service-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetServiceQuota", "service-quotas:ListServiceQuotas"], "path": "behavioral/service-quotas/check_malformed_service_code_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.non-adjustable-quota-increase-rejected", "deployments": [], "key": "service-quotas/non-adjustable-quota-increase-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:GetServiceQuota", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_non_adjustable_quota_increase_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.non-increasing-desired-value-rejected", "deployments": [], "key": "service-quotas/non-increasing-desired-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetAWSDefaultServiceQuota", "service-quotas:GetServiceQuota", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_non_increasing_desired_value_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.quota-utilization-report-lifecycle", "deployments": [], "key": "service-quotas/quota-utilization-report-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetQuotaUtilizationReport", "service-quotas:StartQuotaUtilizationReport"], "path": "behavioral/service-quotas/check_quota_utilization_report_lifecycle.py", "service": "service-quotas"} {"check_id": "service-quotas.quota-utilization-report-lifecycle-completes", "deployments": [], "key": "service-quotas/quota-utilization-report-lifecycle-completes", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetQuotaUtilizationReport", "service-quotas:StartQuotaUtilizationReport"], "path": "behavioral/service-quotas/check_quota_utilization_report_lifecycle_completes.py", "service": "service-quotas"} {"check_id": "service-quotas.quota-utilization-report-pagination-consistency", "deployments": [], "key": "service-quotas/quota-utilization-report-pagination-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetQuotaUtilizationReport", "service-quotas:StartQuotaUtilizationReport"], "path": "behavioral/service-quotas/check_quota_utilization_report_pagination_consistency.py", "service": "service-quotas"} {"check_id": "service-quotas.request-quota-increase-not-greater-than-current-rejected", "deployments": [], "key": "service-quotas/request-quota-increase-not-greater-than-current-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetAWSDefaultServiceQuota", "service-quotas:GetServiceQuota", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_request_quota_increase_not_greater_than_current_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.request-quota-increase-support-case-disallowed-not-approved", "deployments": [], "key": "service-quotas/request-quota-increase-support-case-disallowed-not-approved", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:GetServiceQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_request_quota_increase_support_case_disallowed_not_approved.py", "service": "service-quotas"} {"check_id": "service-quotas.request-service-quota-increase-creates-pending-request", "deployments": [], "key": "service-quotas/request-service-quota-increase-creates-pending-request", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_request_service_quota_increase_creates_pending_request.py", "service": "service-quotas"} {"check_id": "service-quotas.request-service-quota-increase-creates-valid-request", "deployments": [], "key": "service-quotas/request-service-quota-increase-creates-valid-request", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_request_service_quota_increase_creates_valid_request.py", "service": "service-quotas"} {"check_id": "service-quotas.requested-quota-change-appears-in-history", "deployments": [], "key": "service-quotas/requested-quota-change-appears-in-history", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_requested_quota_change_appears_in_history.py", "service": "service-quotas"} {"check_id": "service-quotas.requested-quota-change-history-status-filter", "deployments": [], "key": "service-quotas/requested-quota-change-history-status-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetRequestedServiceQuotaChange", "service-quotas:ListRequestedServiceQuotaChangeHistoryByQuota", "service-quotas:ListServiceQuotas", "service-quotas:RequestServiceQuotaIncrease"], "path": "behavioral/service-quotas/check_requested_quota_change_history_status_filter.py", "service": "service-quotas"} {"check_id": "service-quotas.service-quota-arn-format-consistency", "deployments": [], "key": "service-quotas/service-quota-arn-format-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetServiceQuota", "service-quotas:ListServiceQuotas", "sts:GetCallerIdentity"], "path": "behavioral/service-quotas/check_service_quota_arn_format_consistency.py", "service": "service-quotas"} {"check_id": "service-quotas.start-auto-management-invalid-opt-in-level-rejected", "deployments": [], "key": "service-quotas/start-auto-management-invalid-opt-in-level-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetAutoManagementConfiguration", "service-quotas:StartAutoManagement", "service-quotas:StopAutoManagement"], "path": "behavioral/service-quotas/check_start_auto_management_invalid_opt_in_level_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.tag-list-untag-service-quota-lifecycle", "deployments": [], "key": "service-quotas/tag-list-untag-service-quota-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["service-quotas:GetServiceQuota", "service-quotas:ListTagsForResource", "service-quotas:TagResource", "service-quotas:UntagResource"], "path": "behavioral/service-quotas/check_tag_list_untag_service_quota_lifecycle.py", "service": "service-quotas"} {"check_id": "service-quotas.template-operations-require-organization-membership-rejected", "deployments": [], "key": "service-quotas/template-operations-require-organization-membership-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["organizations:DescribeOrganization", "service-quotas:GetAWSDefaultServiceQuota", "service-quotas:GetServiceQuotaIncreaseRequestFromTemplate", "service-quotas:PutServiceQuotaIncreaseRequestIntoTemplate", "sts:GetCallerIdentity"], "path": "behavioral/service-quotas/check_template_operations_require_organization_membership_rejected.py", "service": "service-quotas"} {"check_id": "service-quotas.unknown-service-code-returns-not-found", "deployments": [], "key": "service-quotas/unknown-service-code-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["service-quotas:GetServiceQuota", "service-quotas:ListServiceQuotas"], "path": "behavioral/service-quotas/check_unknown_service_code_returns_not_found.py", "service": "service-quotas"} {"check_id": "servicecatalog.copy-product-result-rejected-until-portfolio-access", "deployments": [], "key": "servicecatalog/copy-product-result-rejected-until-portfolio-access", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:AssociatePrincipalWithPortfolio", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:CopyProduct", "servicecatalog:CreatePortfolio", "servicecatalog:CreateProduct", "servicecatalog:DeletePortfolio", "servicecatalog:DeleteProduct", "servicecatalog:DescribeCopyProductStatus", "servicecatalog:DisassociatePrincipalFromPortfolio", "servicecatalog:DisassociateProductFromPortfolio", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/servicecatalog/check_copy_product_result_rejected_until_portfolio_access.py", "service": "servicecatalog"} {"check_id": "servicecatalog.delete-associated-portfolio-and-product-rejected", "deployments": [], "key": "servicecatalog/delete-associated-portfolio-and-product-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:CreatePortfolio", "servicecatalog:CreateProduct", "servicecatalog:DeletePortfolio", "servicecatalog:DeleteProduct", "servicecatalog:DescribePortfolio", "servicecatalog:DescribeProductAsAdmin", "servicecatalog:DisassociateProductFromPortfolio", "servicecatalog:ListPortfoliosForProduct"], "path": "behavioral/servicecatalog/check_delete_associated_portfolio_and_product_rejected.py", "service": "servicecatalog"} {"check_id": "servicecatalog.launch-constraint-role-governs-plan-execution", "deployments": [], "key": "servicecatalog/launch-constraint-role-governs-plan-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:AssociatePrincipalWithPortfolio", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:CreateConstraint", "servicecatalog:CreatePortfolio", "servicecatalog:CreateProduct", "servicecatalog:CreateProvisionedProductPlan", "servicecatalog:DeleteConstraint", "servicecatalog:DeletePortfolio", "servicecatalog:DeleteProduct", "servicecatalog:DescribeConstraint", "servicecatalog:DescribeProvisionedProduct", "servicecatalog:DescribeProvisionedProductPlan", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:DescribeRecord", "servicecatalog:DisassociatePrincipalFromPortfolio", "servicecatalog:DisassociateProductFromPortfolio", "servicecatalog:ExecuteProvisionedProductPlan", "servicecatalog:GetProvisionedProductOutputs", "servicecatalog:ListLaunchPaths", "servicecatalog:ListPortfolios", "servicecatalog:TerminateProvisionedProduct", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/servicecatalog/check_launch_constraint_role_governs_plan_execution.py", "service": "servicecatalog"} {"check_id": "servicecatalog.launch-path-requires-product-and-principal-association", "deployments": [], "key": "servicecatalog/launch-path-requires-product-and-principal-association", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:ListPortfolios", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/servicecatalog/check_launch_path_requires_product_and_principal_association.py", "service": "servicecatalog"} {"check_id": "servicecatalog.portfolio-tagoption-reaches-cloudformation-stack", "deployments": [], "key": "servicecatalog/portfolio-tagoption-reaches-cloudformation-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStacks", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:AssociatePrincipalWithPortfolio", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:AssociateTagOptionWithResource", "servicecatalog:CreatePortfolio", "servicecatalog:CreateProduct", "servicecatalog:CreateTagOption", "servicecatalog:DeletePortfolio", "servicecatalog:DeleteProduct", "servicecatalog:DeleteTagOption", "servicecatalog:DescribeProvisionedProduct", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:DisassociatePrincipalFromPortfolio", "servicecatalog:DisassociateProductFromPortfolio", "servicecatalog:DisassociateTagOptionFromResource", "servicecatalog:GetProvisionedProductOutputs", "servicecatalog:ListLaunchPaths", "servicecatalog:ListResourcesForTagOption", "servicecatalog:ProvisionProduct", "servicecatalog:TerminateProvisionedProduct", "sts:GetCallerIdentity"], "path": "behavioral/servicecatalog/check_portfolio_tagoption_reaches_cloudformation_stack.py", "service": "servicecatalog"} {"check_id": "servicecatalog.provision-invalid-template-parameter-fails-asynchronously", "deployments": [], "key": "servicecatalog/provision-invalid-template-parameter-fails-asynchronously", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:ListPortfolios", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/servicecatalog/check_provision_invalid_template_parameter_fails_asynchronously.py", "service": "servicecatalog"} {"check_id": "servicecatalog.provision-unassociated-product-rejected", "deployments": [], "key": "servicecatalog/provision-unassociated-product-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:ListPortfolios", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/servicecatalog/check_provision_unassociated_product_rejected.py", "service": "servicecatalog"} {"check_id": "servicecatalog.provisioned-product-creates-cloudformation-stack", "deployments": [], "key": "servicecatalog/provisioned-product-creates-cloudformation-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:ListPortfolios", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/servicecatalog/check_provisioned_product_creates_cloudformation_stack.py", "service": "servicecatalog"} {"check_id": "servicecatalog.terminate-provisioned-product-deletes-cloudformation-stack", "deployments": [], "key": "servicecatalog/terminate-provisioned-product-deletes-cloudformation-stack", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "servicecatalog:ListPortfolios", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/servicecatalog/check_terminate_provisioned_product_deletes_cloudformation_stack.py", "service": "servicecatalog"} {"check_id": "servicediscovery.async-operation-completes-without-polling-action", "deployments": [], "key": "servicediscovery/async-operation-completes-without-polling-action", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_async_operation_completes_without_polling_action.py", "service": "servicediscovery"} {"check_id": "servicediscovery.concurrent-create-namespace-same-name-different-request-id-conflict", "deployments": [], "key": "servicediscovery/concurrent-create-namespace-same-name-different-request-id-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_concurrent_create_namespace_same_name_different_request_id_conflict.py", "service": "servicediscovery"} {"check_id": "servicediscovery.concurrent-create-service-same-name-conflict", "deployments": [], "key": "servicediscovery/concurrent-create-service-same-name-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:ListServices"], "path": "behavioral/servicediscovery/check_concurrent_create_service_same_name_conflict.py", "service": "servicediscovery"} {"check_id": "servicediscovery.concurrent-register-same-instance-id", "deployments": [], "key": "servicediscovery/concurrent-register-same-instance-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstance", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_concurrent_register_same_instance_id.py", "service": "servicediscovery"} {"check_id": "servicediscovery.concurrent-update-service-attributes-last-write-wins", "deployments": [], "key": "servicediscovery/concurrent-update-service-attributes-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetServiceAttributes", "servicediscovery:UpdateServiceAttributes"], "path": "behavioral/servicediscovery/check_concurrent_update_service_attributes_last_write_wins.py", "service": "servicediscovery"} {"check_id": "servicediscovery.concurrent-update-service-attributes-last-writer-wins", "deployments": [], "key": "servicediscovery/concurrent-update-service-attributes-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetServiceAttributes", "servicediscovery:UpdateServiceAttributes"], "path": "behavioral/servicediscovery/check_concurrent_update_service_attributes_last_writer_wins.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-http-namespace-lifecycle", "deployments": [], "key": "servicediscovery/create-http-namespace-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_create_http_namespace_lifecycle.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-namespace-duplicate-request-conflicting-params-is-accepted", "deployments": [], "key": "servicediscovery/create-namespace-duplicate-request-conflicting-params-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_create_namespace_duplicate_request_conflicting_params_is_accepted.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-namespace-idempotent-retry-same-id", "deployments": [], "key": "servicediscovery/create-namespace-idempotent-retry-same-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_create_namespace_idempotent_retry_same_id.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-namespace-invalid-dns-name-rejected", "deployments": [], "key": "servicediscovery/create-namespace-invalid-dns-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_create_namespace_invalid_dns_name_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-private-dns-namespace-invalid-domain-rejected", "deployments": [], "key": "servicediscovery/create-private-dns-namespace-invalid-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_create_private_dns_namespace_invalid_domain_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-private-dns-namespace-lifecycle", "deployments": [], "key": "servicediscovery/create-private-dns-namespace-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_create_private_dns_namespace_lifecycle.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-public-dns-namespace-lifecycle", "deployments": [], "key": "servicediscovery/create-public-dns-namespace-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_create_public_dns_namespace_lifecycle.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-service-dnsconfig-in-http-namespace-rejected", "deployments": [], "key": "servicediscovery/create-service-dnsconfig-in-http-namespace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListServices"], "path": "behavioral/servicediscovery/check_create_service_dnsconfig_in_http_namespace_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-service-invalid-dns-config-rejected", "deployments": [], "key": "servicediscovery/create-service-invalid-dns-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListServices"], "path": "behavioral/servicediscovery/check_create_service_invalid_dns_config_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-service-lifecycle", "deployments": [], "key": "servicediscovery/create-service-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetService"], "path": "behavioral/servicediscovery/check_create_service_lifecycle.py", "service": "servicediscovery"} {"check_id": "servicediscovery.create-service-namespace-not-found", "deployments": [], "key": "servicediscovery/create-service-namespace-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_create_service_namespace_not_found.py", "service": "servicediscovery"} {"check_id": "servicediscovery.custom-health-status-not-configured-error", "deployments": [], "key": "servicediscovery/custom-health-status-not-configured-error", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstancesHealthStatus", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus"], "path": "behavioral/servicediscovery/check_custom_health_status_not_configured_error.py", "service": "servicediscovery"} {"check_id": "servicediscovery.custom-health-status-transition", "deployments": [], "key": "servicediscovery/custom-health-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstancesHealthStatus", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus"], "path": "behavioral/servicediscovery/check_custom_health_status_transition.py", "service": "servicediscovery"} {"check_id": "servicediscovery.custom-health-status-without-custom-health-config-rejected", "deployments": [], "key": "servicediscovery/custom-health-status-without-custom-health-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstancesHealthStatus", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus"], "path": "behavioral/servicediscovery/check_custom_health_status_without_custom_health_config_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.delete-namespace-in-use-conflict", "deployments": [], "key": "servicediscovery/delete-namespace-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_delete_namespace_in_use_conflict.py", "service": "servicediscovery"} {"check_id": "servicediscovery.delete-namespace-with-active-service-rejected", "deployments": [], "key": "servicediscovery/delete-namespace-with-active-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_delete_namespace_with_active_service_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.delete-service-in-use-conflict", "deployments": [], "key": "servicediscovery/delete-service-in-use-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_delete_service_in_use_conflict.py", "service": "servicediscovery"} {"check_id": "servicediscovery.deploy-http-namespace-service-via-cloudformation", "deployments": [], "key": "servicediscovery/deploy-http-namespace-service-via-cloudformation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "servicediscovery:DiscoverInstances"], "path": "behavioral/servicediscovery/check_deploy_http_namespace_service_via_cloudformation.py", "service": "servicediscovery"} {"check_id": "servicediscovery.deploy-private-dns-namespace-cfn-service-discovery", "deployments": [], "key": "servicediscovery/deploy-private-dns-namespace-cfn-service-discovery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeVpcs", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_deploy_private_dns_namespace_cfn_service_discovery.py", "service": "servicediscovery"} {"check_id": "servicediscovery.deploy-private-dns-namespace-via-cloudformation", "deployments": [], "key": "servicediscovery/deploy-private-dns-namespace-via-cloudformation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ec2:DescribeVpcs", "servicediscovery:DiscoverInstances", "servicediscovery:GetNamespace"], "path": "behavioral/servicediscovery/check_deploy_private_dns_namespace_via_cloudformation.py", "service": "servicediscovery"} {"check_id": "servicediscovery.deregister-instance-not-registered-error", "deployments": [], "key": "servicediscovery/deregister-instance-not-registered-error", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstance", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListInstances", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_deregister_instance_not_registered_error.py", "service": "servicediscovery"} {"check_id": "servicediscovery.deregister-instance-visibility-immediate", "deployments": [], "key": "servicediscovery/deregister-instance-visibility-immediate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_deregister_instance_visibility_immediate.py", "service": "servicediscovery"} {"check_id": "servicediscovery.discover-instances-end-to-end", "deployments": [], "key": "servicediscovery/discover-instances-end-to-end", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_discover_instances_end_to_end.py", "service": "servicediscovery"} {"check_id": "servicediscovery.discover-instances-healthy-or-else-all-falls-back", "deployments": [], "key": "servicediscovery/discover-instances-healthy-or-else-all-falls-back", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus"], "path": "behavioral/servicediscovery/check_discover_instances_healthy_or_else_all_falls_back.py", "service": "servicediscovery"} {"check_id": "servicediscovery.discover-instances-namespace-not-found", "deployments": [], "key": "servicediscovery/discover-instances-namespace-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DiscoverInstances", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_discover_instances_namespace_not_found.py", "service": "servicediscovery"} {"check_id": "servicediscovery.discover-instances-reserved-aws-query-parameter-rejected", "deployments": [], "key": "servicediscovery/discover-instances-reserved-aws-query-parameter-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_discover_instances_reserved_aws_query_parameter_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.discover-instances-revision-increments", "deployments": [], "key": "servicediscovery/discover-instances-revision-increments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstancesRevision", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_discover_instances_revision_increments.py", "service": "servicediscovery"} {"check_id": "servicediscovery.dns-record-ttl-numeric-precision-preserved", "deployments": [], "key": "servicediscovery/dns-record-ttl-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_dns_record_ttl_numeric_precision_preserved.py", "service": "servicediscovery"} {"check_id": "servicediscovery.duplicate-request-idempotent-create-private-dns", "deployments": [], "key": "servicediscovery/duplicate-request-idempotent-create-private-dns", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_duplicate_request_idempotent_create_private_dns.py", "service": "servicediscovery"} {"check_id": "servicediscovery.e2e-service-discovery-full-flow", "deployments": [], "key": "servicediscovery/e2e-service-discovery-full-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus"], "path": "behavioral/servicediscovery/check_e2e_service_discovery_full_flow.py", "service": "servicediscovery"} {"check_id": "servicediscovery.e2e-service-discovery-full-lifecycle-flow", "deployments": [], "key": "servicediscovery/e2e-service-discovery-full-lifecycle-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListServices", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_e2e_service_discovery_full_lifecycle_flow.py", "service": "servicediscovery"} {"check_id": "servicediscovery.get-namespace-not-found", "deployments": [], "key": "servicediscovery/get-namespace-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_get_namespace_not_found.py", "service": "servicediscovery"} {"check_id": "servicediscovery.get-operation-not-found", "deployments": [], "key": "servicediscovery/get-operation-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_get_operation_not_found.py", "service": "servicediscovery"} {"check_id": "servicediscovery.instance-attribute-empty-string-vs-absent-preserved", "deployments": [], "key": "servicediscovery/instance-attribute-empty-string-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstance", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_instance_attribute_empty_string_vs_absent_preserved.py", "service": "servicediscovery"} {"check_id": "servicediscovery.instance-custom-attribute-numeric-precision-round-trip", "deployments": [], "key": "servicediscovery/instance-custom-attribute-numeric-precision-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstance", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_instance_custom_attribute_numeric_precision_round_trip.py", "service": "servicediscovery"} {"check_id": "servicediscovery.list-namespaces-filter-by-type-deterministic", "deployments": [], "key": "servicediscovery/list-namespaces-filter-by-type-deterministic", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreateHttpNamespace", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreatePublicDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_list_namespaces_filter_by_type_deterministic.py", "service": "servicediscovery"} {"check_id": "servicediscovery.list-namespaces-invalid-filter-error", "deployments": [], "key": "servicediscovery/list-namespaces-invalid-filter-error", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_list_namespaces_invalid_filter_error.py", "service": "servicediscovery"} {"check_id": "servicediscovery.list-namespaces-invalid-input-error", "deployments": [], "key": "servicediscovery/list-namespaces-invalid-input-error", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_list_namespaces_invalid_input_error.py", "service": "servicediscovery"} {"check_id": "servicediscovery.list-namespaces-pagination-stable-order", "deployments": [], "key": "servicediscovery/list-namespaces-pagination-stable-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_list_namespaces_pagination_stable_order.py", "service": "servicediscovery"} {"check_id": "servicediscovery.list-operations-chronological-order", "deployments": [], "key": "servicediscovery/list-operations-chronological-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetOperation", "servicediscovery:ListOperations"], "path": "behavioral/servicediscovery/check_list_operations_chronological_order.py", "service": "servicediscovery"} {"check_id": "servicediscovery.list-operations-filter-by-status", "deployments": [], "key": "servicediscovery/list-operations-filter-by-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetOperation", "servicediscovery:ListOperations"], "path": "behavioral/servicediscovery/check_list_operations_filter_by_status.py", "service": "servicediscovery"} {"check_id": "servicediscovery.mutate-deleted-service-rejected", "deployments": [], "key": "servicediscovery/mutate-deleted-service-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:RegisterInstance", "servicediscovery:UpdateService", "servicediscovery:UpdateServiceAttributes"], "path": "behavioral/servicediscovery/check_mutate_deleted_service_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.namespace-already-exists-error", "deployments": [], "key": "servicediscovery/namespace-already-exists-error", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_namespace_already_exists_error.py", "service": "servicediscovery"} {"check_id": "servicediscovery.namespace-already-exists-private-dns", "deployments": [], "key": "servicediscovery/namespace-already-exists-private-dns", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListNamespaces"], "path": "behavioral/servicediscovery/check_namespace_already_exists_private_dns.py", "service": "servicediscovery"} {"check_id": "servicediscovery.namespace-delete-async-operation-completes", "deployments": [], "key": "servicediscovery/namespace-delete-async-operation-completes", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_namespace_delete_async_operation_completes.py", "service": "servicediscovery"} {"check_id": "servicediscovery.namespace-description-empty-string-preserved", "deployments": [], "key": "servicediscovery/namespace-description-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation"], "path": "behavioral/servicediscovery/check_namespace_description_empty_string_preserved.py", "service": "servicediscovery"} {"check_id": "servicediscovery.namespace-description-unicode-round-trip", "deployments": [], "key": "servicediscovery/namespace-description-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:UpdatePrivateDnsNamespace"], "path": "behavioral/servicediscovery/check_namespace_description_unicode_round_trip.py", "service": "servicediscovery"} {"check_id": "servicediscovery.namespace-dns-record-ttl-persists", "deployments": [], "key": "servicediscovery/namespace-dns-record-ttl-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetService"], "path": "behavioral/servicediscovery/check_namespace_dns_record_ttl_persists.py", "service": "servicediscovery"} {"check_id": "servicediscovery.register-deregister-instance-lifecycle", "deployments": [], "key": "servicediscovery/register-deregister-instance-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstance", "servicediscovery:GetOperation", "servicediscovery:ListInstances", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_register_deregister_instance_lifecycle.py", "service": "servicediscovery"} {"check_id": "servicediscovery.register-instance-missing-required-attribute-rejected", "deployments": [], "key": "servicediscovery/register-instance-missing-required-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstance", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_register_instance_missing_required_attribute_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.register-instance-missing-required-dns-attribute-rejected", "deployments": [], "key": "servicediscovery/register-instance-missing-required-dns-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstance", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance"], "path": "behavioral/servicediscovery/check_register_instance_missing_required_dns_attribute_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.server-side-computed-health-status-from-route53", "deployments": [], "key": "servicediscovery/server-side-computed-health-status-from-route53", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:AllocateAddress", "ec2:ReleaseAddress", "servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:GetInstance", "servicediscovery:GetInstancesHealthStatus", "servicediscovery:GetOperation", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus"], "path": "behavioral/servicediscovery/check_server_side_computed_health_status_from_route53.py", "service": "servicediscovery"} {"check_id": "servicediscovery.service-already-exists-error", "deployments": [], "key": "servicediscovery/service-already-exists-error", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:ListServices"], "path": "behavioral/servicediscovery/check_service_already_exists_error.py", "service": "servicediscovery"} {"check_id": "servicediscovery.service-attribute-binary-blob-round-trip", "deployments": [], "key": "servicediscovery/service-attribute-binary-blob-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetServiceAttributes", "servicediscovery:UpdateServiceAttributes"], "path": "behavioral/servicediscovery/check_service_attribute_binary_blob_round_trip.py", "service": "servicediscovery"} {"check_id": "servicediscovery.service-attributes-crud", "deployments": [], "key": "servicediscovery/service-attributes-crud", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeleteServiceAttributes", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetServiceAttributes", "servicediscovery:UpdateServiceAttributes"], "path": "behavioral/servicediscovery/check_service_attributes_crud.py", "service": "servicediscovery"} {"check_id": "servicediscovery.service-attributes-delete-unknown-key-idempotent", "deployments": [], "key": "servicediscovery/service-attributes-delete-unknown-key-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeleteServiceAttributes", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:GetServiceAttributes", "servicediscovery:UpdateServiceAttributes"], "path": "behavioral/servicediscovery/check_service_attributes_delete_unknown_key_idempotent.py", "service": "servicediscovery"} {"check_id": "servicediscovery.service-attributes-unicode-value-round-trip", "deployments": [], "key": "servicediscovery/service-attributes-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetServiceAttributes", "servicediscovery:UpdateServiceAttributes"], "path": "behavioral/servicediscovery/check_service_attributes_unicode_value_round_trip.py", "service": "servicediscovery"} {"check_id": "servicediscovery.service-dns-record-type-change-rejected", "deployments": [], "key": "servicediscovery/service-dns-record-type-change-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:UpdateService"], "path": "behavioral/servicediscovery/check_service_dns_record_type_change_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.tag-resource-not-found-error", "deployments": [], "key": "servicediscovery/tag-resource-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListTagsForResource", "servicediscovery:TagResource"], "path": "behavioral/servicediscovery/check_tag_resource_not_found_error.py", "service": "servicediscovery"} {"check_id": "servicediscovery.tag-untag-resource-lifecycle", "deployments": [], "key": "servicediscovery/tag-untag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListTagsForResource", "servicediscovery:TagResource", "servicediscovery:UntagResource"], "path": "behavioral/servicediscovery/check_tag_untag_resource_lifecycle.py", "service": "servicediscovery"} {"check_id": "servicediscovery.tag-value-unicode-round-trip", "deployments": [], "key": "servicediscovery/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:ListTagsForResource", "servicediscovery:TagResource", "servicediscovery:UntagResource"], "path": "behavioral/servicediscovery/check_tag_value_unicode_round_trip.py", "service": "servicediscovery"} {"check_id": "servicediscovery.unhealthy-instance-excluded-from-discovery", "deployments": [], "key": "servicediscovery/unhealthy-instance-excluded-from-discovery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:GetOperation", "servicediscovery:ListInstances", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus"], "path": "behavioral/servicediscovery/check_unhealthy_instance_excluded_from_discovery.py", "service": "servicediscovery"} {"check_id": "servicediscovery.update-http-namespace-description", "deployments": [], "key": "servicediscovery/update-http-namespace-description", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreateHttpNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:UpdateHttpNamespace"], "path": "behavioral/servicediscovery/check_update_http_namespace_description.py", "service": "servicediscovery"} {"check_id": "servicediscovery.update-namespace-not-found-error", "deployments": [], "key": "servicediscovery/update-namespace-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:UpdatePrivateDnsNamespace"], "path": "behavioral/servicediscovery/check_update_namespace_not_found_error.py", "service": "servicediscovery"} {"check_id": "servicediscovery.update-namespace-not-found-error-private-dns", "deployments": [], "key": "servicediscovery/update-namespace-not-found-error-private-dns", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DeleteVpc", "ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:UpdatePrivateDnsNamespace"], "path": "behavioral/servicediscovery/check_update_namespace_not_found_error_private_dns.py", "service": "servicediscovery"} {"check_id": "servicediscovery.update-private-dns-namespace-invalid-ttl-rejected", "deployments": [], "key": "servicediscovery/update-private-dns-namespace-invalid-ttl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeVpcs", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:UpdatePrivateDnsNamespace"], "path": "behavioral/servicediscovery/check_update_private_dns_namespace_invalid_ttl_rejected.py", "service": "servicediscovery"} {"check_id": "servicediscovery.update-private-dns-namespace-properties", "deployments": [], "key": "servicediscovery/update-private-dns-namespace-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateVpc", "ec2:DeleteVpc", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:DeleteNamespace", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:UpdatePrivateDnsNamespace"], "path": "behavioral/servicediscovery/check_update_private_dns_namespace_properties.py", "service": "servicediscovery"} {"check_id": "servicediscovery.update-public-dns-namespace-properties", "deployments": [], "key": "servicediscovery/update-public-dns-namespace-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["servicediscovery:CreatePublicDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteNamespace", "servicediscovery:DeleteService", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListServices", "servicediscovery:UpdatePublicDnsNamespace"], "path": "behavioral/servicediscovery/check_update_public_dns_namespace_properties.py", "service": "servicediscovery"} {"check_id": "ses.account-sending-enabled-toggle", "deployments": [], "key": "ses/account-sending-enabled-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:GetAccountSendingEnabled", "ses:UpdateAccountSendingEnabled"], "path": "behavioral/ses/check_account_sending_enabled_toggle.py", "service": "ses"} {"check_id": "ses.clone-receipt-rule-set-copies-rules", "deployments": [], "key": "ses/clone-receipt-rule-set-copies-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CloneReceiptRuleSet", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_clone_receipt_rule_set_copies_rules.py", "service": "ses"} {"check_id": "ses.clone-receipt-rule-set-source-must-exist", "deployments": [], "key": "ses/clone-receipt-rule-set-source-must-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CloneReceiptRuleSet", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_clone_receipt_rule_set_source_must_exist.py", "service": "ses"} {"check_id": "ses.concurrent-configuration-set-create-exactly-one-wins", "deployments": [], "key": "ses/concurrent-configuration-set-create-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:ListConfigurationSets"], "path": "behavioral/ses/check_concurrent_configuration_set_create_exactly_one_wins.py", "service": "ses"} {"check_id": "ses.concurrent-receipt-rule-set-create-exactly-one-wins", "deployments": [], "key": "ses/concurrent-receipt-rule-set-create-exactly-one-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:ListReceiptRuleSets"], "path": "behavioral/ses/check_concurrent_receipt_rule_set_create_exactly_one_wins.py", "service": "ses"} {"check_id": "ses.concurrent-update-receipt-rule-last-write-wins", "deployments": [], "key": "ses/concurrent-update-receipt-rule-last-write-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:UpdateReceiptRule"], "path": "behavioral/ses/check_concurrent_update_receipt_rule_last_write_wins.py", "service": "ses"} {"check_id": "ses.concurrent-verify-email-identity-is-idempotent", "deployments": [], "key": "ses/concurrent-verify-email-identity-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityVerificationAttributes", "ses:ListIdentities", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_concurrent_verify_email_identity_is_idempotent.py", "service": "ses"} {"check_id": "ses.configuration-set-delete-nonexistent", "deployments": [], "key": "ses/configuration-set-delete-nonexistent", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet"], "path": "behavioral/ses/check_configuration_set_delete_nonexistent.py", "service": "ses"} {"check_id": "ses.configuration-set-duplicate-create-fails", "deployments": [], "key": "ses/configuration-set-duplicate-create-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet", "ses:ListConfigurationSets"], "path": "behavioral/ses/check_configuration_set_duplicate_create_fails.py", "service": "ses"} {"check_id": "ses.configuration-set-lifecycle", "deployments": [], "key": "ses/configuration-set-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet", "ses:ListConfigurationSets"], "path": "behavioral/ses/check_configuration_set_lifecycle.py", "service": "ses"} {"check_id": "ses.configuration-set-sending-pause-state", "deployments": [], "key": "ses/configuration-set-sending-pause-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetSendingEnabled"], "path": "behavioral/ses/check_configuration_set_sending_pause_state.py", "service": "ses"} {"check_id": "ses.configuration-set-tracking-options-lifecycle-with-verified-domain", "deployments": [], "key": "ses/configuration-set-tracking-options-lifecycle-with-verified-domain", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "ses:CreateConfigurationSet", "ses:CreateConfigurationSetTrackingOptions", "ses:DeleteConfigurationSet", "ses:DeleteConfigurationSetTrackingOptions", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetTrackingOptions", "sesv2:GetEmailIdentity"], "path": "behavioral/ses/check_configuration_set_tracking_options_lifecycle_with_verified_domain.py", "service": "ses"} {"check_id": "ses.configuration-set-update-on-nonexistent-rejected", "deployments": [], "key": "ses/configuration-set-update-on-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRuleSet"], "path": "behavioral/ses/check_configuration_set_update_on_nonexistent_rejected.py", "service": "ses"} {"check_id": "ses.configuration-sets-v1-and-v2-pagination-and-cross-api-token-continuation", "deployments": [], "key": "ses/configuration-sets-v1-and-v2-pagination-and-cross-api-token-continuation", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:ListConfigurationSets", "sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:ListConfigurationSets"], "path": "behavioral/ses/check_configuration_sets_v1_and_v2_pagination_and_cross_api_token_continuation.py", "service": "ses"} {"check_id": "ses.create-receipt-rule-invalid-header-name-rejected", "deployments": [], "key": "ses/create-receipt-rule-invalid-header-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRuleSet"], "path": "behavioral/ses/check_create_receipt_rule_invalid_header_name_rejected.py", "service": "ses"} {"check_id": "ses.create-receipt-rule-invalid-s3-bucket-fails", "deployments": [], "key": "ses/create-receipt-rule-invalid-s3-bucket-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketPolicy", "s3:PutBucketTagging", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_create_receipt_rule_invalid_s3_bucket_fails.py", "service": "ses"} {"check_id": "ses.create-receipt-rule-rich-actions-round-trip", "deployments": [], "key": "ses/create-receipt-rule-rich-actions-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/ses/check_create_receipt_rule_rich_actions_round_trip.py", "service": "ses"} {"check_id": "ses.custom-verification-template-not-found-semantics", "deployments": [], "key": "ses/custom-verification-template-not-found-semantics", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "ses:CreateCustomVerificationEmailTemplate", "ses:DeleteCustomVerificationEmailTemplate", "ses:GetCustomVerificationEmailTemplate", "ses:ListCustomVerificationEmailTemplates", "ses:UpdateCustomVerificationEmailTemplate", "sesv2:GetEmailIdentity"], "path": "behavioral/ses/check_custom_verification_template_not_found_semantics.py", "service": "ses"} {"check_id": "ses.custom-verification-template-unverified-from-fails", "deployments": [], "key": "ses/custom-verification-template-unverified-from-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateCustomVerificationEmailTemplate", "ses:DeleteCustomVerificationEmailTemplate", "ses:DeleteIdentity", "ses:GetCustomVerificationEmailTemplate", "ses:GetIdentityVerificationAttributes", "ses:ListIdentities", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_custom_verification_template_unverified_from_fails.py", "service": "ses"} {"check_id": "ses.custom-verification-template-unverified-sender-and-absent-name-rejected", "deployments": [], "key": "ses/custom-verification-template-unverified-sender-and-absent-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateCustomVerificationEmailTemplate", "ses:DeleteCustomVerificationEmailTemplate", "ses:GetCustomVerificationEmailTemplate", "ses:ListCustomVerificationEmailTemplates", "ses:UpdateCustomVerificationEmailTemplate"], "path": "behavioral/ses/check_custom_verification_template_unverified_sender_and_absent_name_rejected.py", "service": "ses"} {"check_id": "ses.custom-verification-template-unverified-sender-rejected", "deployments": [], "key": "ses/custom-verification-template-unverified-sender-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "ses:CreateCustomVerificationEmailTemplate", "ses:DeleteCustomVerificationEmailTemplate", "ses:GetCustomVerificationEmailTemplate", "sesv2:GetEmailIdentity"], "path": "behavioral/ses/check_custom_verification_template_unverified_sender_rejected.py", "service": "ses"} {"check_id": "ses.custom-verification-template-update-then-delete-then-not-found", "deployments": [], "key": "ses/custom-verification-template-update-then-delete-then-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "ses:CreateCustomVerificationEmailTemplate", "ses:DeleteCustomVerificationEmailTemplate", "ses:GetCustomVerificationEmailTemplate", "ses:ListCustomVerificationEmailTemplates", "ses:UpdateCustomVerificationEmailTemplate", "sesv2:GetEmailIdentity"], "path": "behavioral/ses/check_custom_verification_template_update_then_delete_then_not_found.py", "service": "ses"} {"check_id": "ses.delete-active-receipt-rule-set-fails", "deployments": [], "key": "ses/delete-active-receipt-rule-set-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_delete_active_receipt_rule_set_fails.py", "service": "ses"} {"check_id": "ses.delete-email-identity-cascades-policies-and-tags", "deployments": [], "key": "ses/delete-email-identity-cascades-policies-and-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:ListIdentityPolicies", "sesv2:CreateEmailIdentity", "sesv2:CreateEmailIdentityPolicy", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentityPolicies", "sesv2:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_delete_email_identity_cascades_policies_and_tags.py", "service": "ses"} {"check_id": "ses.delete-identity-idempotent", "deployments": [], "key": "ses/delete-identity-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:ListIdentities", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_delete_identity_idempotent.py", "service": "ses"} {"check_id": "ses.delete-identity-policy-nonexistent-policy-is-noop", "deployments": [], "key": "ses/delete-identity-policy-nonexistent-policy-is-noop", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteIdentityPolicy", "ses:GetIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_delete_identity_policy_nonexistent_policy_is_noop.py", "service": "ses"} {"check_id": "ses.delete-identity-via-v1-propagates-notfound-to-v2", "deployments": [], "key": "ses/delete-identity-via-v1-propagates-notfound-to-v2", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityVerificationAttributes", "ses:VerifyEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/ses/check_delete_identity_via_v1_propagates_notfound_to_v2.py", "service": "ses"} {"check_id": "ses.delete-receipt-rule-missing-rule-is-noop", "deployments": [], "key": "ses/delete-receipt-rule-missing-rule-is-noop", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRule", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_delete_receipt_rule_missing_rule_is_noop.py", "service": "ses"} {"check_id": "ses.delivery-options-invalid-tls-policy-rejected", "deployments": [], "key": "ses/delivery-options-invalid-tls-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet", "ses:PutConfigurationSetDeliveryOptions"], "path": "behavioral/ses/check_delivery_options_invalid_tls_policy_rejected.py", "service": "ses"} {"check_id": "ses.deploy-ses-configuration-set-cfn-usable", "deployments": [], "key": "ses/deploy-ses-configuration-set-cfn-usable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetSendingEnabled", "sesv2:GetConfigurationSet"], "path": "behavioral/ses/check_deploy_ses_configuration_set_cfn_usable.py", "service": "ses"} {"check_id": "ses.deploy-ses-receipt-rule-set-cfn-activatable", "deployments": [], "key": "ses/deploy-ses-receipt-rule-set-cfn-activatable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_deploy_ses_receipt_rule_set_cfn_activatable.py", "service": "ses"} {"check_id": "ses.deploy-ses-template-cfn-renders", "deployments": [], "key": "ses/deploy-ses-template-cfn-renders", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ses:GetTemplate", "ses:TestRenderTemplate"], "path": "behavioral/ses/check_deploy_ses_template_cfn_renders.py", "service": "ses"} {"check_id": "ses.dkim-cname-token-shape-and-cross-api-identity", "deployments": [], "key": "ses/dkim-cname-token-shape-and-cross-api-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:GetIdentityDkimAttributes", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/ses/check_dkim_cname_token_shape_and_cross_api_identity.py", "service": "ses"} {"check_id": "ses.domain-identity-dkim-tokens-stay-consistent-across-reads", "deployments": [], "key": "ses/domain-identity-dkim-tokens-stay-consistent-across-reads", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityDkimAttributes", "ses:GetIdentityVerificationAttributes", "ses:ListIdentities", "ses:SetIdentityDkimEnabled", "ses:VerifyDomainDkim", "ses:VerifyDomainIdentity"], "path": "behavioral/ses/check_domain_identity_dkim_tokens_stay_consistent_across_reads.py", "service": "ses"} {"check_id": "ses.e2e-identity-policy-grant-revoke-flow", "deployments": [], "key": "ses/e2e-identity-policy-grant-revoke-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteIdentityPolicy", "ses:GetIdentityPolicies", "ses:ListIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_e2e_identity_policy_grant_revoke_flow.py", "service": "ses"} {"check_id": "ses.email-identity-v1-v2-shared-store", "deployments": [], "key": "ses/email-identity-v1-v2-shared-store", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityVerificationAttributes", "ses:ListIdentities", "ses:VerifyDomainDkim", "ses:VerifyDomainIdentity", "ses:VerifyEmailIdentity", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_email_identity_v1_v2_shared_store.py", "service": "ses"} {"check_id": "ses.event-destination-duplicate-name-fails", "deployments": [], "key": "ses/event-destination-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:CreateConfigurationSetEventDestination", "ses:DeleteConfigurationSet", "ses:DeleteConfigurationSetEventDestination", "ses:DescribeConfigurationSet"], "path": "behavioral/ses/check_event_destination_duplicate_name_fails.py", "service": "ses"} {"check_id": "ses.event-destination-lifecycle", "deployments": [], "key": "ses/event-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:CreateConfigurationSetEventDestination", "ses:DeleteConfigurationSet", "ses:DeleteConfigurationSetEventDestination", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetEventDestination"], "path": "behavioral/ses/check_event_destination_lifecycle.py", "service": "ses"} {"check_id": "ses.event-destination-on-missing-configuration-set-rejected", "deployments": [], "key": "ses/event-destination-on-missing-configuration-set-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:CreateConfigurationSetEventDestination", "ses:DeleteConfigurationSet", "ses:DeleteConfigurationSetEventDestination", "ses:DescribeConfigurationSet"], "path": "behavioral/ses/check_event_destination_on_missing_configuration_set_rejected.py", "service": "ses"} {"check_id": "ses.event-destination-unowned-sns-topic-fails", "deployments": [], "key": "ses/event-destination-unowned-sns-topic-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:CreateConfigurationSetEventDestination", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet", "sns:CreateTopic", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_event_destination_unowned_sns_topic_fails.py", "service": "ses"} {"check_id": "ses.feedback-forwarding-toggle", "deployments": [], "key": "ses/feedback-forwarding-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityNotificationAttributes", "ses:SetIdentityFeedbackForwardingEnabled", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_feedback_forwarding_toggle.py", "service": "ses"} {"check_id": "ses.get-send-quota-reflects-state", "deployments": [], "key": "ses/get-send-quota-reflects-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:GetSendQuota", "sesv2:GetAccount"], "path": "behavioral/ses/check_get_send_quota_reflects_state.py", "service": "ses"} {"check_id": "ses.get-send-statistics-datapoint-shape", "deployments": [], "key": "ses/get-send-statistics-datapoint-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:GetSendStatistics"], "path": "behavioral/ses/check_get_send_statistics_datapoint_shape.py", "service": "ses"} {"check_id": "ses.iam-from-address-condition-gates-a-real-signed-send", "deployments": [], "key": "ses/iam-from-address-condition-gates-a-real-signed-send", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "ses:GetIdentityVerificationAttributes", "ses:GetSendQuota", "ses:ListIdentities", "ses:SendEmail", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_iam_from_address_condition_gates_a_real_signed_send.py", "service": "ses"} {"check_id": "ses.identity-dkim-attributes-reflect-verification-state-transition", "deployments": [], "key": "ses/identity-dkim-attributes-reflect-verification-state-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityDkimAttributes", "ses:VerifyDomainDkim"], "path": "behavioral/ses/check_identity_dkim_attributes_reflect_verification_state_transition.py", "service": "ses"} {"check_id": "ses.identity-headers-in-notifications-toggle", "deployments": [], "key": "ses/identity-headers-in-notifications-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityNotificationAttributes", "ses:SetIdentityHeadersInNotificationsEnabled", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_identity_headers_in_notifications_toggle.py", "service": "ses"} {"check_id": "ses.identity-mail-from-domain-pending-transition", "deployments": [], "key": "ses/identity-mail-from-domain-pending-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityMailFromDomainAttributes", "ses:SetIdentityMailFromDomain", "ses:VerifyDomainIdentity"], "path": "behavioral/ses/check_identity_mail_from_domain_pending_transition.py", "service": "ses"} {"check_id": "ses.identity-notification-topic-bogus-arn-rejected", "deployments": [], "key": "ses/identity-notification-topic-bogus-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityNotificationAttributes", "ses:SetIdentityNotificationTopic", "ses:VerifyEmailIdentity", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_notification_topic_bogus_arn_rejected.py", "service": "ses"} {"check_id": "ses.identity-notification-topic-roundtrip", "deployments": [], "key": "ses/identity-notification-topic-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityNotificationAttributes", "ses:SetIdentityHeadersInNotificationsEnabled", "ses:SetIdentityNotificationTopic", "ses:VerifyEmailIdentity", "sns:CreateTopic", "sns:DeleteTopic", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_notification_topic_roundtrip.py", "service": "ses"} {"check_id": "ses.identity-policy-invalid-json-rejected", "deployments": [], "key": "ses/identity-policy-invalid-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteIdentityPolicy", "ses:GetIdentityPolicies", "ses:ListIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_policy_invalid_json_rejected.py", "service": "ses"} {"check_id": "ses.identity-policy-invalid-policy-rejected", "deployments": [], "key": "ses/identity-policy-invalid-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_policy_invalid_policy_rejected.py", "service": "ses"} {"check_id": "ses.identity-policy-json-whitespace-preserved", "deployments": [], "key": "ses/identity-policy-json-whitespace-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteIdentityPolicy", "ses:GetIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_policy_json_whitespace_preserved.py", "service": "ses"} {"check_id": "ses.identity-policy-put-get-delete-roundtrip", "deployments": [], "key": "ses/identity-policy-put-get-delete-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteIdentityPolicy", "ses:GetIdentityPolicies", "ses:ListIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_policy_put_get_delete_roundtrip.py", "service": "ses"} {"check_id": "ses.identity-policy-rejects-an-unparseable-document", "deployments": [], "key": "ses/identity-policy-rejects-an-unparseable-document", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteIdentityPolicy", "ses:GetIdentityPolicies", "ses:ListIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyDomainIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_policy_rejects_an_unparseable_document.py", "service": "ses"} {"check_id": "ses.identity-policy-repeated-put-upserts-without-error", "deployments": [], "key": "ses/identity-policy-repeated-put-upserts-without-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteIdentityPolicy", "ses:GetIdentityPolicies", "ses:ListIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_policy_repeated_put_upserts_without_error.py", "service": "ses"} {"check_id": "ses.identity-policy-wildcard-resource-rejected", "deployments": [], "key": "ses/identity-policy-wildcard-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:ListIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_identity_policy_wildcard_resource_rejected.py", "service": "ses"} {"check_id": "ses.legacy-verified-email-address-apis", "deployments": [], "key": "ses/legacy-verified-email-address-apis", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteVerifiedEmailAddress", "ses:GetIdentityVerificationAttributes", "ses:ListIdentities", "ses:ListVerifiedEmailAddresses", "ses:VerifyEmailAddress"], "path": "behavioral/ses/check_legacy_verified_email_address_apis.py", "service": "ses"} {"check_id": "ses.list-identities-invalid-identity-type-rejected", "deployments": [], "key": "ses/list-identities-invalid-identity-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:ListIdentities", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_list_identities_invalid_identity_type_rejected.py", "service": "ses"} {"check_id": "ses.list-identities-pagination-exactness-v1-and-v2", "deployments": [], "key": "ses/list-identities-pagination-exactness-v1-and-v2", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:ListIdentities", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:ListEmailIdentities"], "path": "behavioral/ses/check_list_identities_pagination_exactness_v1_and_v2.py", "service": "ses"} {"check_id": "ses.list-identities-v1-token-continues-v2-list", "deployments": [], "key": "ses/list-identities-v1-token-continues-v2-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:ListIdentities", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:ListEmailIdentities"], "path": "behavioral/ses/check_list_identities_v1_token_continues_v2_list.py", "service": "ses"} {"check_id": "ses.list-templates-reflects-create-update-delete", "deployments": [], "key": "ses/list-templates-reflects-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:GetTemplate", "ses:ListTemplates", "ses:UpdateTemplate"], "path": "behavioral/ses/check_list_templates_reflects_create_update_delete.py", "service": "ses"} {"check_id": "ses.put-identity-policy-malformed-json-rejected", "deployments": [], "key": "ses/put-identity-policy-malformed-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:DeleteIdentityPolicy", "ses:ListIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_put_identity_policy_malformed_json_rejected.py", "service": "ses"} {"check_id": "ses.put-identity-policy-oversized-document-rejected", "deployments": [], "key": "ses/put-identity-policy-oversized-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityPolicies", "ses:PutIdentityPolicy", "ses:VerifyEmailIdentity", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_put_identity_policy_oversized_document_rejected.py", "service": "ses"} {"check_id": "ses.receipt-filter-invalid-cidr-rejected", "deployments": [], "key": "ses/receipt-filter-invalid-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptFilter", "ses:DeleteReceiptFilter", "ses:ListReceiptFilters"], "path": "behavioral/ses/check_receipt_filter_invalid_cidr_rejected.py", "service": "ses"} {"check_id": "ses.receipt-filter-lifecycle", "deployments": [], "key": "ses/receipt-filter-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptFilter", "ses:DeleteReceiptFilter", "ses:ListReceiptFilters"], "path": "behavioral/ses/check_receipt_filter_lifecycle.py", "service": "ses"} {"check_id": "ses.receipt-rule-create-after-nonexistent-rejected", "deployments": [], "key": "ses/receipt-rule-create-after-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_receipt_rule_create_after_nonexistent_rejected.py", "service": "ses"} {"check_id": "ses.receipt-rule-creation-prepends-and-set-position-reorders", "deployments": [], "key": "ses/receipt-rule-creation-prepends-and-set-position-reorders", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "ses:ListReceiptRuleSets", "ses:ReorderReceiptRuleSet", "ses:SetReceiptRulePosition", "ses:UpdateReceiptRule"], "path": "behavioral/ses/check_receipt_rule_creation_prepends_and_set_position_reorders.py", "service": "ses"} {"check_id": "ses.receipt-rule-describe-update-and-position", "deployments": [], "key": "ses/receipt-rule-describe-update-and-position", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "ses:SetReceiptRulePosition", "ses:UpdateReceiptRule"], "path": "behavioral/ses/check_receipt_rule_describe_update_and_position.py", "service": "ses"} {"check_id": "ses.receipt-rule-duplicate-name-rejected", "deployments": [], "key": "ses/receipt-rule-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_receipt_rule_duplicate_name_rejected.py", "service": "ses"} {"check_id": "ses.receipt-rule-empty-recipients-list-vs-absent-persists", "deployments": [], "key": "ses/receipt-rule-empty-recipients-list-vs-absent-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule"], "path": "behavioral/ses/check_receipt_rule_empty_recipients_list_vs_absent_persists.py", "service": "ses"} {"check_id": "ses.receipt-rule-lambda-action-requires-a-rule-scoped-invoke-permission", "deployments": [], "key": "ses/receipt-rule-lambda-action-requires-a-rule-scoped-invoke-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetPolicy", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_receipt_rule_lambda_action_requires_a_rule_scoped_invoke_permission.py", "service": "ses"} {"check_id": "ses.receipt-rule-lifecycle-and-position", "deployments": [], "key": "ses/receipt-rule-lifecycle-and-position", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet", "ses:SetReceiptRulePosition"], "path": "behavioral/ses/check_receipt_rule_lifecycle_and_position.py", "service": "ses"} {"check_id": "ses.receipt-rule-rejected-for-a-nonexistent-rule-set", "deployments": [], "key": "ses/receipt-rule-rejected-for-a-nonexistent-rule-set", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "ses:ListReceiptRuleSets"], "path": "behavioral/ses/check_receipt_rule_rejected_for_a_nonexistent_rule_set.py", "service": "ses"} {"check_id": "ses.receipt-rule-s3-action-kms-key-policy-is-evaluated-apart-from-the-bucket-grant", "deployments": [], "key": "ses/receipt-rule-s3-action-kms-key-policy-is-evaluated-apart-from-the-bucket-grant", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_receipt_rule_s3_action_kms_key_policy_is_evaluated_apart_from_the_bucket_grant.py", "service": "ses"} {"check_id": "ses.receipt-rule-s3-action-requires-a-live-bucket-policy-grant", "deployments": [], "key": "ses/receipt-rule-s3-action-requires-a-live-bucket-policy-grant", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketPolicy", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_receipt_rule_s3_action_requires_a_live_bucket_policy_grant.py", "service": "ses"} {"check_id": "ses.receipt-rule-set-active-lifecycle", "deployments": [], "key": "ses/receipt-rule-set-active-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_receipt_rule_set_active_lifecycle.py", "service": "ses"} {"check_id": "ses.receipt-rule-set-clone-preserves-order-and-stays-independent", "deployments": [], "key": "ses/receipt-rule-set-clone-preserves-order-and-stays-independent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CloneReceiptRuleSet", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:ListReceiptRuleSets", "ses:UpdateReceiptRule"], "path": "behavioral/ses/check_receipt_rule_set_clone_preserves_order_and_stays_independent.py", "service": "ses"} {"check_id": "ses.receipt-rule-set-delete-while-active-rejected", "deployments": [], "key": "ses/receipt-rule-set-delete-while-active-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:ListReceiptRuleSets", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_receipt_rule_set_delete_while_active_rejected.py", "service": "ses"} {"check_id": "ses.reorder-receipt-rule-set-duplicate-and-unknown-rule-rejected", "deployments": [], "key": "ses/reorder-receipt-rule-set-duplicate-and-unknown-rule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:ReorderReceiptRuleSet"], "path": "behavioral/ses/check_reorder_receipt_rule_set_duplicate_and_unknown_rule_rejected.py", "service": "ses"} {"check_id": "ses.reorder-receipt-rule-set-missing-rule-fails", "deployments": [], "key": "ses/reorder-receipt-rule-set-missing-rule-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:ReorderReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_reorder_receipt_rule_set_missing_rule_fails.py", "service": "ses"} {"check_id": "ses.reputation-metrics-flag-isolated-per-configuration-set", "deployments": [], "key": "ses/reputation-metrics-flag-isolated-per-configuration-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetReputationMetricsEnabled"], "path": "behavioral/ses/check_reputation_metrics_flag_isolated_per_configuration_set.py", "service": "ses"} {"check_id": "ses.reputation-metrics-toggle-persists-across-describe", "deployments": [], "key": "ses/reputation-metrics-toggle-persists-across-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetReputationMetricsEnabled"], "path": "behavioral/ses/check_reputation_metrics_toggle_persists_across_describe.py", "service": "ses"} {"check_id": "ses.send-bulk-templated-email-unverified-source-rejected", "deployments": [], "key": "ses/send-bulk-templated-email-unverified-source-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:CreateTemplate", "ses:DeleteIdentity", "ses:DeleteTemplate", "ses:GetAccountSendingEnabled", "ses:GetIdentityVerificationAttributes", "ses:GetSendQuota", "ses:SendBulkTemplatedEmail", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_send_bulk_templated_email_unverified_source_rejected.py", "service": "ses"} {"check_id": "ses.send-custom-verification-email-sandbox-gate", "deployments": [], "key": "ses/send-custom-verification-email-sandbox-gate", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:ListIdentities", "ses:SendCustomVerificationEmail"], "path": "behavioral/ses/check_send_custom_verification_email_sandbox_gate.py", "service": "ses"} {"check_id": "ses.send-email-missing-destination-rejected", "deployments": [], "key": "ses/send-email-missing-destination-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:DeleteIdentity", "ses:SendEmail", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_send_email_missing_destination_rejected.py", "service": "ses"} {"check_id": "ses.send-email-pending-identity-still-rejected", "deployments": [], "key": "ses/send-email-pending-identity-still-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityVerificationAttributes", "ses:SendEmail", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_send_email_pending_identity_still_rejected.py", "service": "ses"} {"check_id": "ses.send-email-unverified-source-rejected", "deployments": [], "key": "ses/send-email-unverified-source-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:DeleteIdentity", "ses:GetAccountSendingEnabled", "ses:GetIdentityVerificationAttributes", "ses:GetSendQuota", "ses:SendEmail", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_send_email_unverified_source_rejected.py", "service": "ses"} {"check_id": "ses.send-fault-precedence-is-a-stable-total-order", "deployments": [], "key": "ses/send-fault-precedence-is-a-stable-total-order", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DeleteIdentity", "ses:DescribeConfigurationSet", "ses:GetAccountSendingEnabled", "ses:GetIdentityVerificationAttributes", "ses:GetSendQuota", "ses:SendEmail", "ses:SendRawEmail", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_send_fault_precedence_is_a_stable_total_order.py", "service": "ses"} {"check_id": "ses.send-raw-email-unknown-configuration-set-fails", "deployments": [], "key": "ses/send-raw-email-unknown-configuration-set-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DeleteIdentity", "ses:DescribeConfigurationSet", "ses:GetAccountSendingEnabled", "ses:GetSendQuota", "ses:SendRawEmail", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_send_raw_email_unknown_configuration_set_fails.py", "service": "ses"} {"check_id": "ses.send-raw-email-unverified-source-rejected", "deployments": [], "key": "ses/send-raw-email-unverified-source-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:DeleteIdentity", "ses:GetAccountSendingEnabled", "ses:GetIdentityVerificationAttributes", "ses:GetSendQuota", "ses:SendRawEmail", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_send_raw_email_unverified_source_rejected.py", "service": "ses"} {"check_id": "ses.send-templated-email-validation-order", "deployments": [], "key": "ses/send-templated-email-validation-order", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:CreateTemplate", "ses:DeleteIdentity", "ses:DeleteTemplate", "ses:GetAccountSendingEnabled", "ses:GetIdentityVerificationAttributes", "ses:GetSendQuota", "ses:SendTemplatedEmail", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_send_templated_email_validation_order.py", "service": "ses"} {"check_id": "ses.send-unverified-identity-rejected-quota-unchanged", "deployments": [], "key": "ses/send-unverified-identity-rejected-quota-unchanged", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:GetAccountSendingEnabled", "ses:GetIdentityVerificationAttributes", "ses:GetSendQuota", "ses:SendEmail", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetAccount", "sesv2:GetEmailIdentity", "sesv2:SendEmail"], "path": "behavioral/ses/check_send_unverified_identity_rejected_quota_unchanged.py", "service": "ses"} {"check_id": "ses.set-active-receipt-rule-set-nonexistent-rejected", "deployments": [], "key": "ses/set-active-receipt-rule-set-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeActiveReceiptRuleSet", "ses:DescribeReceiptRuleSet", "ses:SetActiveReceiptRuleSet"], "path": "behavioral/ses/check_set_active_receipt_rule_set_nonexistent_rejected.py", "service": "ses"} {"check_id": "ses.set-identity-mail-from-domain-outside-the-identity-domain-rejected", "deployments": [], "key": "ses/set-identity-mail-from-domain-outside-the-identity-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityMailFromDomainAttributes", "ses:SetIdentityMailFromDomain", "ses:VerifyDomainIdentity"], "path": "behavioral/ses/check_set_identity_mail_from_domain_outside_the_identity_domain_rejected.py", "service": "ses"} {"check_id": "ses.template-lifecycle", "deployments": [], "key": "ses/template-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:GetTemplate", "ses:ListTemplates", "ses:TestRenderTemplate", "ses:UpdateTemplate"], "path": "behavioral/ses/check_template_lifecycle.py", "service": "ses"} {"check_id": "ses.template-render-applies-handlebars-conditional-branches", "deployments": [], "key": "ses/template-render-applies-handlebars-conditional-branches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:GetTemplate", "ses:TestRenderTemplate"], "path": "behavioral/ses/check_template_render_applies_handlebars_conditional_branches.py", "service": "ses"} {"check_id": "ses.template-render-rejects-a-missing-rendering-attribute", "deployments": [], "key": "ses/template-render-rejects-a-missing-rendering-attribute", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:GetTemplate", "ses:TestRenderTemplate"], "path": "behavioral/ses/check_template_render_rejects_a_missing_rendering_attribute.py", "service": "ses"} {"check_id": "ses.template-unicode-content-round-trip", "deployments": [], "key": "ses/template-unicode-content-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:GetTemplate", "ses:UpdateTemplate"], "path": "behavioral/ses/check_template_unicode_content_round_trip.py", "service": "ses"} {"check_id": "ses.template-without-subject-rejected", "deployments": [], "key": "ses/template-without-subject-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:GetTemplate"], "path": "behavioral/ses/check_template_without_subject_rejected.py", "service": "ses"} {"check_id": "ses.test-render-template-invalid-json-fails", "deployments": [], "key": "ses/test-render-template-invalid-json-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:TestRenderTemplate"], "path": "behavioral/ses/check_test_render_template_invalid_json_fails.py", "service": "ses"} {"check_id": "ses.test-render-template-missing-attribute-fails", "deployments": [], "key": "ses/test-render-template-missing-attribute-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:TestRenderTemplate"], "path": "behavioral/ses/check_test_render_template_missing_attribute_fails.py", "service": "ses"} {"check_id": "ses.test-render-template-success", "deployments": [], "key": "ses/test-render-template-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:TestRenderTemplate"], "path": "behavioral/ses/check_test_render_template_success.py", "service": "ses"} {"check_id": "ses.tracking-options-delete-on-unset-set-fails", "deployments": [], "key": "ses/tracking-options-delete-on-unset-set-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DeleteConfigurationSetTrackingOptions", "ses:DescribeConfigurationSet"], "path": "behavioral/ses/check_tracking_options_delete_on_unset_set_fails.py", "service": "ses"} {"check_id": "ses.tracking-options-unverified-domain-fails", "deployments": [], "key": "ses/tracking-options-unverified-domain-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:CreateConfigurationSetTrackingOptions", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet"], "path": "behavioral/ses/check_tracking_options_unverified_domain_fails.py", "service": "ses"} {"check_id": "ses.update-configuration-set-tracking-options-invalid-custom-redirect-rejected", "deployments": [], "key": "ses/update-configuration-set-tracking-options-invalid-custom-redirect-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:CreateConfigurationSetTrackingOptions", "ses:DeleteConfigurationSet", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetTrackingOptions"], "path": "behavioral/ses/check_update_configuration_set_tracking_options_invalid_custom_redirect_rejected.py", "service": "ses"} {"check_id": "ses.update-configuration-set-tracking-options-missing-tracking-options-rejected", "deployments": [], "key": "ses/update-configuration-set-tracking-options-missing-tracking-options-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DeleteConfigurationSetTrackingOptions", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetTrackingOptions"], "path": "behavioral/ses/check_update_configuration_set_tracking_options_missing_tracking_options_rejected.py", "service": "ses"} {"check_id": "ses.update-configuration-set-tracking-options-unknown-configuration-set-rejected", "deployments": [], "key": "ses/update-configuration-set-tracking-options-unknown-configuration-set-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:DeleteConfigurationSetTrackingOptions", "ses:DescribeConfigurationSet", "ses:UpdateConfigurationSetTrackingOptions"], "path": "behavioral/ses/check_update_configuration_set_tracking_options_unknown_configuration_set_rejected.py", "service": "ses"} {"check_id": "ses.update-receipt-rule-full-replace-resets-unspecified-fields", "deployments": [], "key": "ses/update-receipt-rule-full-replace-resets-unspecified-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:UpdateReceiptRule"], "path": "behavioral/ses/check_update_receipt_rule_full_replace_resets_unspecified_fields.py", "service": "ses"} {"check_id": "ses.update-receipt-rule-invalid-lambda-function-rejected", "deployments": [], "key": "ses/update-receipt-rule-invalid-lambda-function-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:UpdateReceiptRule", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_update_receipt_rule_invalid_lambda_function_rejected.py", "service": "ses"} {"check_id": "ses.update-receipt-rule-invalid-s3-configuration-rejected", "deployments": [], "key": "ses/update-receipt-rule-invalid-s3-configuration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketPolicy", "s3:PutBucketTagging", "ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:UpdateReceiptRule", "sts:GetCallerIdentity"], "path": "behavioral/ses/check_update_receipt_rule_invalid_s3_configuration_rejected.py", "service": "ses"} {"check_id": "ses.update-receipt-rule-invalid-sns-topic-rejected", "deployments": [], "key": "ses/update-receipt-rule-invalid-sns-topic-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:UpdateReceiptRule", "sns:CreateTopic", "sns:DeleteTopic"], "path": "behavioral/ses/check_update_receipt_rule_invalid_sns_topic_rejected.py", "service": "ses"} {"check_id": "ses.update-receipt-rule-on-nonexistent-rule-rejected", "deployments": [], "key": "ses/update-receipt-rule-on-nonexistent-rule-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "ses:UpdateReceiptRule"], "path": "behavioral/ses/check_update_receipt_rule_on_nonexistent_rule_rejected.py", "service": "ses"} {"check_id": "ses.update-receipt-rule-replaces-actions-and-preserves-position", "deployments": [], "key": "ses/update-receipt-rule-replaces-actions-and-preserves-position", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "ses:UpdateReceiptRule"], "path": "behavioral/ses/check_update_receipt_rule_replaces_actions_and_preserves_position.py", "service": "ses"} {"check_id": "ses.update-template-nonexistent-rejected", "deployments": [], "key": "ses/update-template-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteTemplate", "ses:GetTemplate", "ses:UpdateTemplate"], "path": "behavioral/ses/check_update_template_nonexistent_rejected.py", "service": "ses"} {"check_id": "ses.update-template-replaces-content", "deployments": [], "key": "ses/update-template-replaces-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:GetTemplate", "ses:UpdateTemplate"], "path": "behavioral/ses/check_update_template_replaces_content.py", "service": "ses"} {"check_id": "ses.v1-list-identities-forged-next-token-rejected", "deployments": [], "key": "ses/v1-list-identities-forged-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:ListIdentities", "ses:VerifyDomainIdentity"], "path": "behavioral/ses/check_v1_list_identities_forged_next_token_rejected.py", "service": "ses"} {"check_id": "ses.v1-list-templates-invalid-next-token-rejected", "deployments": [], "key": "ses/v1-list-templates-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:ListTemplates"], "path": "behavioral/ses/check_v1_list_templates_invalid_next_token_rejected.py", "service": "ses"} {"check_id": "ses.v1-list-templates-pages-without-duplicates", "deployments": [], "key": "ses/v1-list-templates-pages-without-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:ListTemplates"], "path": "behavioral/ses/check_v1_list_templates_pages_without_duplicates.py", "service": "ses"} {"check_id": "ses.verify-domain-identity-and-dkim-tokens", "deployments": [], "key": "ses/verify-domain-identity-and-dkim-tokens", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityDkimAttributes", "ses:GetIdentityVerificationAttributes", "ses:VerifyDomainDkim", "ses:VerifyDomainIdentity"], "path": "behavioral/ses/check_verify_domain_identity_and_dkim_tokens.py", "service": "ses"} {"check_id": "ses.verify-email-identity-lifecycle", "deployments": [], "key": "ses/verify-email-identity-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:DeleteIdentity", "ses:GetIdentityVerificationAttributes", "ses:ListIdentities", "ses:VerifyEmailIdentity"], "path": "behavioral/ses/check_verify_email_identity_lifecycle.py", "service": "ses"} {"check_id": "ses__sesv2.send-to-unverified-recipient-refused-both-apis-then-simulator-accepted", "deployments": [], "key": "ses__sesv2/send-to-unverified-recipient-refused-both-apis-then-simulator-accepted", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "ses:SendEmail", "sesv2:GetEmailIdentity", "sesv2:SendEmail"], "path": "behavioral/ses__sesv2/check_send_to_unverified_recipient_refused_both_apis_then_simulator_accepted.py", "service": "ses__sesv2"} {"check_id": "ses__sns.receipt-rule-sns-action-honours-an-explicit-topic-policy-deny", "deployments": [], "key": "ses__sns/receipt-rule-sns-action-honours-an-explicit-topic-policy-deny", "labels": ["axis:rejection", "plane:control"], "operations": ["ses:CreateReceiptRule", "ses:CreateReceiptRuleSet", "ses:DeleteReceiptRule", "ses:DeleteReceiptRuleSet", "ses:DescribeReceiptRule", "ses:DescribeReceiptRuleSet", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/ses__sns/check_receipt_rule_sns_action_honours_an_explicit_topic_policy_deny.py", "service": "ses__sns"} {"check_id": "sesv2.a-resource-belongs-to-at-most-one-tenant-and-both-views-agree", "deployments": [], "key": "sesv2/a-resource-belongs-to-at-most-one-tenant-and-both-views-agree", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteConfigurationSet", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:GetTenant", "sesv2:ListResourceTenants", "sesv2:ListTenantResources", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_a_resource_belongs_to_at_most_one_tenant_and_both_views_agree.py", "service": "sesv2"} {"check_id": "sesv2.account-dedicated-ip-auto-warmup-togglable", "deployments": [], "key": "sesv2/account-dedicated-ip-auto-warmup-togglable", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:GetAccount", "sesv2:PutAccountDedicatedIpWarmupAttributes"], "path": "behavioral/sesv2/check_account_dedicated_ip_auto_warmup_togglable.py", "service": "sesv2"} {"check_id": "sesv2.account-sending-attributes-toggle", "deployments": [], "key": "sesv2/account-sending-attributes-toggle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:GetAccount", "sesv2:PutAccountSendingAttributes"], "path": "behavioral/sesv2/check_account_sending_attributes_toggle.py", "service": "sesv2"} {"check_id": "sesv2.account-suppression-attributes-state", "deployments": [], "key": "sesv2/account-suppression-attributes-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:DeleteSuppressedDestination", "sesv2:GetAccount", "sesv2:GetSuppressedDestination", "sesv2:PutAccountSuppressionAttributes", "sesv2:PutSuppressedDestination"], "path": "behavioral/sesv2/check_account_suppression_attributes_state.py", "service": "sesv2"} {"check_id": "sesv2.associate-email-identity-certificate-duplicate-rejected", "deployments": [], "key": "sesv2/associate-email-identity-certificate-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:RequestCertificate", "sesv2:AssociateEmailIdentityCertificate", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:DisassociateEmailIdentityCertificate", "sesv2:ListEmailIdentityCertificates"], "path": "behavioral/sesv2/check_associate_email_identity_certificate_duplicate_rejected.py", "service": "sesv2"} {"check_id": "sesv2.associate-email-identity-certificate-unknown-identity-rejected", "deployments": [], "key": "sesv2/associate-email-identity-certificate-unknown-identity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:RequestCertificate", "sesv2:AssociateEmailIdentityCertificate", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:DisassociateEmailIdentityCertificate", "sesv2:ListEmailIdentityCertificates"], "path": "behavioral/sesv2/check_associate_email_identity_certificate_unknown_identity_rejected.py", "service": "sesv2"} {"check_id": "sesv2.batch-get-metric-data-invalid-metric-namespace-rejected", "deployments": [], "key": "sesv2/batch-get-metric-data-invalid-metric-namespace-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:BatchGetMetricData", "sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:GetAccount", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/sesv2/check_batch_get_metric_data_invalid_metric_namespace_rejected.py", "service": "sesv2"} {"check_id": "sesv2.batch-get-metric-data-unknown-resource-not-found", "deployments": [], "key": "sesv2/batch-get-metric-data-unknown-resource-not-found", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:BatchGetMetricData", "sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:GetAccount", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/sesv2/check_batch_get_metric_data_unknown_resource_not_found.py", "service": "sesv2"} {"check_id": "sesv2.byodkim-external-signing-attributes-rejected", "deployments": [], "key": "sesv2/byodkim-external-signing-attributes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:PutEmailIdentityDkimSigningAttributes"], "path": "behavioral/sesv2/check_byodkim_external_signing_attributes_rejected.py", "service": "sesv2"} {"check_id": "sesv2.concurrent-contact-creation-exactly-one-succeeds", "deployments": [], "key": "sesv2/concurrent-contact-creation-exactly-one-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:ListContactLists", "sesv2:ListContacts"], "path": "behavioral/sesv2/check_concurrent_contact_creation_exactly_one_succeeds.py", "service": "sesv2"} {"check_id": "sesv2.concurrent-template-create-exactly-one-body-renders", "deployments": [], "key": "sesv2/concurrent-template-create-exactly-one-body-renders", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_concurrent_template_create_exactly_one_body_renders.py", "service": "sesv2"} {"check_id": "sesv2.configuration-set-duplicate-create", "deployments": [], "key": "sesv2/configuration-set-duplicate-create", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSet"], "path": "behavioral/sesv2/check_configuration_set_duplicate_create.py", "service": "sesv2"} {"check_id": "sesv2.configuration-set-event-destination-lifecycle", "deployments": [], "key": "sesv2/configuration-set-event-destination-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:DeleteConfigurationSetEventDestination", "sesv2:GetConfigurationSetEventDestinations"], "path": "behavioral/sesv2/check_configuration_set_event_destination_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.configuration-set-event-destination-notfound", "deployments": [], "key": "sesv2/configuration-set-event-destination-notfound", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:DeleteConfigurationSetEventDestination", "sesv2:GetConfigurationSetEventDestinations"], "path": "behavioral/sesv2/check_configuration_set_event_destination_notfound.py", "service": "sesv2"} {"check_id": "sesv2.configuration-set-lifecycle", "deployments": [], "key": "sesv2/configuration-set-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSet", "sesv2:PutConfigurationSetSendingOptions"], "path": "behavioral/sesv2/check_configuration_set_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.configuration-set-sending-disabled-blocks-v2-send-email-then-restored", "deployments": [], "key": "sesv2/configuration-set-sending-disabled-blocks-v2-send-email-then-restored", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:PutConfigurationSetSendingOptions", "sesv2:SendEmail"], "path": "behavioral/sesv2/check_configuration_set_sending_disabled_blocks_v2_send_email_then_restored.py", "service": "sesv2"} {"check_id": "sesv2.configuration-set-suppression-options-scope", "deployments": [], "key": "sesv2/configuration-set-suppression-options-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSet", "sesv2:PutConfigurationSetSuppressionOptions"], "path": "behavioral/sesv2/check_configuration_set_suppression_options_scope.py", "service": "sesv2"} {"check_id": "sesv2.contact-attributes-data-round-trips-and-is-replaced-while-topic-preferences-merge", "deployments": [], "key": "sesv2/contact-attributes-data-round-trips-and-is-replaced-while-topic-preferences-merge", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:GetContactList", "sesv2:ListContactLists", "sesv2:UpdateContact", "sesv2:UpdateContactList"], "path": "behavioral/sesv2/check_contact_attributes_data_round_trips_and_is_replaced_while_topic_preferences_merge.py", "service": "sesv2"} {"check_id": "sesv2.contact-lifecycle-with-topic-preferences", "deployments": [], "key": "sesv2/contact-lifecycle-with-topic-preferences", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:UpdateContact"], "path": "behavioral/sesv2/check_contact_lifecycle_with_topic_preferences.py", "service": "sesv2"} {"check_id": "sesv2.contact-list-and-contacts-paginators-walk-every-item-once", "deployments": [], "key": "sesv2/contact-list-and-contacts-paginators-walk-every-item-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:ListContactLists", "sesv2:ListContacts"], "path": "behavioral/sesv2/check_contact_list_and_contacts_paginators_walk_every_item_once.py", "service": "sesv2"} {"check_id": "sesv2.contact-list-create-with-tags-tag-untag-lifecycle", "deployments": [], "key": "sesv2/contact-list-create-with-tags-tag-untag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateContactList", "sesv2:DeleteContactList", "sesv2:GetContactList", "sesv2:ListContactLists", "sesv2:ListTagsForResource", "sesv2:TagResource", "sesv2:UntagResource"], "path": "behavioral/sesv2/check_contact_list_create_with_tags_tag_untag_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.contact-list-lifecycle", "deployments": [], "key": "sesv2/contact-list-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateContactList", "sesv2:DeleteContactList", "sesv2:GetContactList", "sesv2:ListContactLists", "sesv2:UpdateContactList"], "path": "behavioral/sesv2/check_contact_list_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.contact-list-topic-removal-allowed-and-reflected", "deployments": [], "key": "sesv2/contact-list-topic-removal-allowed-and-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:GetContactList", "sesv2:UpdateContactList"], "path": "behavioral/sesv2/check_contact_list_topic_removal_allowed_and_reflected.py", "service": "sesv2"} {"check_id": "sesv2.contact-update-undefined-topic-rejected", "deployments": [], "key": "sesv2/contact-update-undefined-topic-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:UpdateContact", "sesv2:UpdateContactList"], "path": "behavioral/sesv2/check_contact_update_undefined_topic_rejected.py", "service": "sesv2"} {"check_id": "sesv2.create-tenant-resource-association-unsupported-resource-type-blocked", "deployments": [], "key": "sesv2/create-tenant-resource-association-unsupported-resource-type-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteConfigurationSet", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:ListTenantResources", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_create_tenant_resource_association_unsupported_resource_type_blocked.py", "service": "sesv2"} {"check_id": "sesv2.dedicated-ip-pool-create-with-tags-tag-untag-lifecycle", "deployments": [], "key": "sesv2/dedicated-ip-pool-create-with-tags-tag-untag-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateDedicatedIpPool", "sesv2:DeleteDedicatedIpPool", "sesv2:ListTagsForResource", "sesv2:TagResource", "sesv2:UntagResource"], "path": "behavioral/sesv2/check_dedicated_ip_pool_create_with_tags_tag_untag_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.dedicated-ip-pool-lifecycle", "deployments": [], "key": "sesv2/dedicated-ip-pool-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateDedicatedIpPool", "sesv2:DeleteDedicatedIpPool", "sesv2:GetDedicatedIpPool", "sesv2:ListDedicatedIpPools", "sesv2:PutDedicatedIpPoolScalingAttributes"], "path": "behavioral/sesv2/check_dedicated_ip_pool_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.dedicated-ip-pool-paginator-walks-every-pool-once", "deployments": [], "key": "sesv2/dedicated-ip-pool-paginator-walks-every-pool-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateDedicatedIpPool", "sesv2:DeleteDedicatedIpPool", "sesv2:ListDedicatedIpPools"], "path": "behavioral/sesv2/check_dedicated_ip_pool_paginator_walks_every_pool_once.py", "service": "sesv2"} {"check_id": "sesv2.dedicated-ip-pool-scaling-concurrent-modification-converges-to-managed", "deployments": [], "key": "sesv2/dedicated-ip-pool-scaling-concurrent-modification-converges-to-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateDedicatedIpPool", "sesv2:DeleteDedicatedIpPool", "sesv2:GetDedicatedIpPool", "sesv2:PutDedicatedIpPoolScalingAttributes"], "path": "behavioral/sesv2/check_dedicated_ip_pool_scaling_concurrent_modification_converges_to_managed.py", "service": "sesv2"} {"check_id": "sesv2.delete-email-identity-blocked-while-certificate-associated", "deployments": [], "key": "sesv2/delete-email-identity-blocked-while-certificate-associated", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:AssociateEmailIdentityCertificate", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:DisassociateEmailIdentityCertificate", "sesv2:GetEmailIdentity", "sesv2:ListEmailIdentityCertificates"], "path": "behavioral/sesv2/check_delete_email_identity_blocked_while_certificate_associated.py", "service": "sesv2"} {"check_id": "sesv2.delete-suppressed-destination-unknown-rejected", "deployments": [], "key": "sesv2/delete-suppressed-destination-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:DeleteSuppressedDestination", "sesv2:GetAccount", "sesv2:GetSuppressedDestination", "sesv2:PutSuppressedDestination"], "path": "behavioral/sesv2/check_delete_suppressed_destination_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.deleting-a-configuration-set-leaves-no-dangling-identity-default-reference", "deployments": [], "key": "sesv2/deleting-a-configuration-set-leaves-no-dangling-identity-default-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateEmailIdentity", "sesv2:DeleteConfigurationSet", "sesv2:DeleteEmailIdentity", "sesv2:GetConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:PutConfigurationSetSendingOptions", "sesv2:PutEmailIdentityConfigurationSetAttributes"], "path": "behavioral/sesv2/check_deleting_a_configuration_set_leaves_no_dangling_identity_default_reference.py", "service": "sesv2"} {"check_id": "sesv2.disabling-account-vdm-withdraws-the-metrics-surface-then-enabling-restores-it", "deployments": [], "key": "sesv2/disabling-account-vdm-withdraws-the-metrics-surface-then-enabling-restores-it", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:BatchGetMetricData", "sesv2:CreateExportJob", "sesv2:GetAccount", "sesv2:GetExportJob", "sesv2:ListExportJobs", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/sesv2/check_disabling_account_vdm_withdraws_the_metrics_surface_then_enabling_restores_it.py", "service": "sesv2"} {"check_id": "sesv2.disassociate-email-identity-certificate-unknown-rejected", "deployments": [], "key": "sesv2/disassociate-email-identity-certificate-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:DisassociateEmailIdentityCertificate", "sesv2:GetEmailIdentity", "sesv2:ListEmailIdentityCertificates"], "path": "behavioral/sesv2/check_disassociate_email_identity_certificate_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.duplicate-template-create-rejected-and-the-original-body-still-renders", "deployments": [], "key": "sesv2/duplicate-template-create-rejected-and-the-original-body-still-renders", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_duplicate_template_create_rejected_and_the_original_body_still_renders.py", "service": "sesv2"} {"check_id": "sesv2.e2e-tenant-suppression-blocks-send-then-teardown", "deployments": [], "key": "sesv2/e2e-tenant-suppression-blocks-send-then-teardown", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateEmailIdentity", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteEmailIdentity", "sesv2:DeleteSuppressedDestination", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:GetEmailIdentity", "sesv2:GetMessageInsights", "sesv2:GetSuppressedDestination", "sesv2:GetTenant", "sesv2:ListTenantResources", "sesv2:PutSuppressedDestination", "sesv2:PutTenantSuppressionAttributes", "sesv2:SendEmail", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_e2e_tenant_suppression_blocks_send_then_teardown.py", "service": "sesv2"} {"check_id": "sesv2.email-address-identity-not-verified-for-sending-on-create-or-get", "deployments": [], "key": "sesv2/email-address-identity-not-verified-for-sending-on-create-or-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/sesv2/check_email_address_identity_not_verified_for_sending_on_create_or_get.py", "service": "sesv2"} {"check_id": "sesv2.email-identity-configuration-set-association", "deployments": [], "key": "sesv2/email-identity-configuration-set-association", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateEmailIdentity", "sesv2:DeleteConfigurationSet", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:PutEmailIdentityConfigurationSetAttributes"], "path": "behavioral/sesv2/check_email_identity_configuration_set_association.py", "service": "sesv2"} {"check_id": "sesv2.email-identity-inherits-verified-parent-domain-dkim", "deployments": [], "key": "sesv2/email-identity-inherits-verified-parent-domain-dkim", "labels": ["axis:happy-path", "plane:control"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/sesv2/check_email_identity_inherits_verified_parent_domain_dkim.py", "service": "sesv2"} {"check_id": "sesv2.email-identity-lifecycle", "deployments": [], "key": "sesv2/email-identity-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:ListEmailIdentities", "sesv2:PutEmailIdentityFeedbackAttributes"], "path": "behavioral/sesv2/check_email_identity_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.email-identity-mail-from-invalid-subdomain-rejected", "deployments": [], "key": "sesv2/email-identity-mail-from-invalid-subdomain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:PutEmailIdentityMailFromAttributes"], "path": "behavioral/sesv2/check_email_identity_mail_from_invalid_subdomain_rejected.py", "service": "sesv2"} {"check_id": "sesv2.email-identity-policy-invalid-resource-rejected", "deployments": [], "key": "sesv2/email-identity-policy-invalid-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:CreateEmailIdentityPolicy", "sesv2:DeleteEmailIdentity", "sesv2:DeleteEmailIdentityPolicy", "sesv2:GetEmailIdentityPolicies", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_email_identity_policy_invalid_resource_rejected.py", "service": "sesv2"} {"check_id": "sesv2.email-identity-policy-lifecycle", "deployments": [], "key": "sesv2/email-identity-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:CreateEmailIdentityPolicy", "sesv2:DeleteEmailIdentity", "sesv2:DeleteEmailIdentityPolicy", "sesv2:GetEmailIdentityPolicies", "sesv2:UpdateEmailIdentityPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_email_identity_policy_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.email-identity-verification-info-separates-a-missing-dns-zone-from-a-pending-one", "deployments": [], "key": "sesv2/email-identity-verification-info-separates-a-missing-dns-zone-from-a-pending-one", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity"], "path": "behavioral/sesv2/check_email_identity_verification_info_separates_a_missing_dns_zone_from_a_pending_one.py", "service": "sesv2"} {"check_id": "sesv2.email-template-contract-limits-rejected", "deployments": [], "key": "sesv2/email-template-contract-limits-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_email_template_contract_limits_rejected.py", "service": "sesv2"} {"check_id": "sesv2.email-template-lifecycle", "deployments": [], "key": "sesv2/email-template-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailTemplate", "sesv2:ListEmailTemplates", "sesv2:TestRenderEmailTemplate", "sesv2:UpdateEmailTemplate"], "path": "behavioral/sesv2/check_email_template_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.export-job-lifecycle", "deployments": [], "key": "sesv2/export-job-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CancelExportJob", "sesv2:CreateExportJob", "sesv2:GetAccount", "sesv2:GetExportJob", "sesv2:ListExportJobs", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/sesv2/check_export_job_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.export-job-message-insights-completes-and-carries-its-destination", "deployments": [], "key": "sesv2/export-job-message-insights-completes-and-carries-its-destination", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateExportJob", "sesv2:GetAccount", "sesv2:GetExportJob", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/sesv2/check_export_job_message_insights_completes_and_carries_its_destination.py", "service": "sesv2"} {"check_id": "sesv2.get-blacklist-reports-invalid-ip-returns-empty", "deployments": [], "key": "sesv2/get-blacklist-reports-invalid-ip-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:GetBlacklistReports"], "path": "behavioral/sesv2/check_get_blacklist_reports_invalid_ip_returns_empty.py", "service": "sesv2"} {"check_id": "sesv2.get-dedicated-ip-unknown-rejected", "deployments": [], "key": "sesv2/get-dedicated-ip-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateDedicatedIpPool", "sesv2:DeleteDedicatedIpPool", "sesv2:GetDedicatedIp", "sesv2:GetDedicatedIpPool"], "path": "behavioral/sesv2/check_get_dedicated_ip_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.get-email-address-insights-malformed-address-low-syntax-verdict", "deployments": [], "key": "sesv2/get-email-address-insights-malformed-address-low-syntax-verdict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:GetEmailAddressInsights"], "path": "behavioral/sesv2/check_get_email_address_insights_malformed_address_low_syntax_verdict.py", "service": "sesv2"} {"check_id": "sesv2.get-import-job-unknown-rejected", "deployments": [], "key": "sesv2/get-import-job-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateImportJob", "sesv2:GetImportJob"], "path": "behavioral/sesv2/check_get_import_job_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.get-message-insights-unknown-message-id-rejected", "deployments": [], "key": "sesv2/get-message-insights-unknown-message-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:GetAccount", "sesv2:GetMessageInsights", "sesv2:ListEmailIdentities", "sesv2:PutAccountVdmAttributes", "sesv2:SendEmail"], "path": "behavioral/sesv2/check_get_message_insights_unknown_message_id_rejected.py", "service": "sesv2"} {"check_id": "sesv2.get-reputation-entity-unknown-rejected", "deployments": [], "key": "sesv2/get-reputation-entity-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetReputationEntity"], "path": "behavioral/sesv2/check_get_reputation_entity_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.import-job-create-get-list-lifecycle", "deployments": [], "key": "sesv2/import-job-create-get-list-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateImportJob", "sesv2:GetImportJob", "sesv2:ListImportJobs"], "path": "behavioral/sesv2/check_import_job_create_get_list_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.import-job-invalid-data-source-rejected", "deployments": [], "key": "sesv2/import-job-invalid-data-source-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateImportJob", "sesv2:GetImportJob"], "path": "behavioral/sesv2/check_import_job_invalid_data_source_rejected.py", "service": "sesv2"} {"check_id": "sesv2.list-contacts-topic-filter-isolates-the-use-default-flag", "deployments": [], "key": "sesv2/list-contacts-topic-filter-isolates-the-use-default-flag", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:GetContactList", "sesv2:ListContactLists", "sesv2:ListContacts", "sesv2:UpdateContactList"], "path": "behavioral/sesv2/check_list_contacts_topic_filter_isolates_the_use_default_flag.py", "service": "sesv2"} {"check_id": "sesv2.list-contacts-topic-filter-semantics", "deployments": [], "key": "sesv2/list-contacts-topic-filter-semantics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:ListContacts"], "path": "behavioral/sesv2/check_list_contacts_topic_filter_semantics.py", "service": "sesv2"} {"check_id": "sesv2.list-contacts-unknown-contact-list-rejected", "deployments": [], "key": "sesv2/list-contacts-unknown-contact-list-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateContactList", "sesv2:DeleteContactList", "sesv2:ListContactLists", "sesv2:ListContacts"], "path": "behavioral/sesv2/check_list_contacts_unknown_contact_list_rejected.py", "service": "sesv2"} {"check_id": "sesv2.list-dedicated-ip-pools-forged-next-token-rejected", "deployments": [], "key": "sesv2/list-dedicated-ip-pools-forged-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateDedicatedIpPool", "sesv2:DeleteDedicatedIpPool", "sesv2:ListDedicatedIpPools"], "path": "behavioral/sesv2/check_list_dedicated_ip_pools_forged_next_token_rejected.py", "service": "sesv2"} {"check_id": "sesv2.list-email-identity-certificates-unknown-identity-rejected", "deployments": [], "key": "sesv2/list-email-identity-certificates-unknown-identity-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:ListEmailIdentityCertificates"], "path": "behavioral/sesv2/check_list_email_identity_certificates_unknown_identity_rejected.py", "service": "sesv2"} {"check_id": "sesv2.list-email-templates-pages-without-duplicates", "deployments": [], "key": "sesv2/list-email-templates-pages-without-duplicates", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:ListEmailTemplates"], "path": "behavioral/sesv2/check_list_email_templates_pages_without_duplicates.py", "service": "sesv2"} {"check_id": "sesv2.list-export-jobs-filters-partition-the-jobs-this-check-created", "deployments": [], "key": "sesv2/list-export-jobs-filters-partition-the-jobs-this-check-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateExportJob", "sesv2:GetAccount", "sesv2:GetExportJob", "sesv2:ListExportJobs", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/sesv2/check_list_export_jobs_filters_partition_the_jobs_this_check_created.py", "service": "sesv2"} {"check_id": "sesv2.list-management-options-unknown-list-rejected-contact-auto-created", "deployments": [], "key": "sesv2/list-management-options-unknown-list-rejected-contact-auto-created", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateContactList", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:GetEmailIdentity", "sesv2:ListContactLists", "sesv2:SendEmail"], "path": "behavioral/sesv2/check_list_management_options_unknown_list_rejected_contact_auto_created.py", "service": "sesv2"} {"check_id": "sesv2.list-recommendations-invalid-filter-rejected", "deployments": [], "key": "sesv2/list-recommendations-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:ListRecommendations"], "path": "behavioral/sesv2/check_list_recommendations_invalid_filter_rejected.py", "service": "sesv2"} {"check_id": "sesv2.list-recommendations-unknown-resource-not-found", "deployments": [], "key": "sesv2/list-recommendations-unknown-resource-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:ListRecommendations", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_list_recommendations_unknown_resource_not_found.py", "service": "sesv2"} {"check_id": "sesv2.list-reputation-entities-reflects-managed-status-change", "deployments": [], "key": "sesv2/list-reputation-entities-reflects-managed-status-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:ListReputationEntities", "sesv2:UpdateReputationEntityCustomerManagedStatus"], "path": "behavioral/sesv2/check_list_reputation_entities_reflects_managed_status_change.py", "service": "sesv2"} {"check_id": "sesv2.list-resource-tenants-paginator-walks-every-tenant-once", "deployments": [], "key": "sesv2/list-resource-tenants-paginator-walks-every-tenant-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteConfigurationSet", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:ListResourceTenants"], "path": "behavioral/sesv2/check_list_resource_tenants_paginator_walks_every_tenant_once.py", "service": "sesv2"} {"check_id": "sesv2.list-suppressed-destinations-invalid-next-token-rejected", "deployments": [], "key": "sesv2/list-suppressed-destinations-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:ListSuppressedDestinations"], "path": "behavioral/sesv2/check_list_suppressed_destinations_invalid_next_token_rejected.py", "service": "sesv2"} {"check_id": "sesv2.list-tenant-resources-paginator-walks-every-resource-once", "deployments": [], "key": "sesv2/list-tenant-resources-paginator-walks-every-resource-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteConfigurationSet", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:ListTenantResources"], "path": "behavioral/sesv2/check_list_tenant_resources_paginator_walks_every_resource_once.py", "service": "sesv2"} {"check_id": "sesv2.list-tenants-paginator-walks-every-tenant-once", "deployments": [], "key": "sesv2/list-tenants-paginator-walks-every-tenant-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:ListTenants"], "path": "behavioral/sesv2/check_list_tenants_paginator_walks_every_tenant_once.py", "service": "sesv2"} {"check_id": "sesv2.metrics-export-presigned-url-serves-a-file-whose-shape-derives-from-the-request", "deployments": [], "key": "sesv2/metrics-export-presigned-url-serves-a-file-whose-shape-derives-from-the-request", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["sesv2:CreateExportJob", "sesv2:GetAccount", "sesv2:GetExportJob", "sesv2:PutAccountVdmAttributes"], "path": "behavioral/sesv2/check_metrics_export_presigned_url_serves_a_file_whose_shape_derives_from_the_request.py", "service": "sesv2"} {"check_id": "sesv2.multi-region-endpoint-concurrent-delete-race-rejected", "deployments": [], "key": "sesv2/multi-region-endpoint-concurrent-delete-race-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateMultiRegionEndpoint", "sesv2:DeleteMultiRegionEndpoint", "sesv2:GetMultiRegionEndpoint"], "path": "behavioral/sesv2/check_multi_region_endpoint_concurrent_delete_race_rejected.py", "service": "sesv2"} {"check_id": "sesv2.multi-region-endpoint-create-get-list-delete-lifecycle", "deployments": [], "key": "sesv2/multi-region-endpoint-create-get-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateMultiRegionEndpoint", "sesv2:DeleteMultiRegionEndpoint", "sesv2:GetMultiRegionEndpoint", "sesv2:ListMultiRegionEndpoints"], "path": "behavioral/sesv2/check_multi_region_endpoint_create_get_list_delete_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.multi-region-endpoint-duplicate-name-rejected", "deployments": [], "key": "sesv2/multi-region-endpoint-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateMultiRegionEndpoint", "sesv2:DeleteMultiRegionEndpoint", "sesv2:GetMultiRegionEndpoint", "sesv2:ListMultiRegionEndpoints"], "path": "behavioral/sesv2/check_multi_region_endpoint_duplicate_name_rejected.py", "service": "sesv2"} {"check_id": "sesv2.multi-region-endpoint-get-after-delete-not-found", "deployments": [], "key": "sesv2/multi-region-endpoint-get-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateMultiRegionEndpoint", "sesv2:DeleteMultiRegionEndpoint", "sesv2:GetMultiRegionEndpoint"], "path": "behavioral/sesv2/check_multi_region_endpoint_get_after_delete_not_found.py", "service": "sesv2"} {"check_id": "sesv2.put-account-dedicated-ip-warmup-attributes-out-of-range-percentage-rejected", "deployments": [], "key": "sesv2/put-account-dedicated-ip-warmup-attributes-out-of-range-percentage-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:GetAccount", "sesv2:PutAccountDedicatedIpWarmupAttributes", "sesv2:PutDedicatedIpWarmupAttributes"], "path": "behavioral/sesv2/check_put_account_dedicated_ip_warmup_attributes_out_of_range_percentage_rejected.py", "service": "sesv2"} {"check_id": "sesv2.put-account-pricing-attributes-unknown-plan-rejected", "deployments": [], "key": "sesv2/put-account-pricing-attributes-unknown-plan-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:GetAccount", "sesv2:PutAccountPricingAttributes"], "path": "behavioral/sesv2/check_put_account_pricing_attributes_unknown_plan_rejected.py", "service": "sesv2"} {"check_id": "sesv2.put-configuration-set-archiving-options-unknown-cs-rejected", "deployments": [], "key": "sesv2/put-configuration-set-archiving-options-unknown-cs-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:GetConfigurationSet", "sesv2:PutConfigurationSetArchivingOptions"], "path": "behavioral/sesv2/check_put_configuration_set_archiving_options_unknown_cs_rejected.py", "service": "sesv2"} {"check_id": "sesv2.put-dedicated-ip-in-pool-unknown-ip-rejected", "deployments": [], "key": "sesv2/put-dedicated-ip-in-pool-unknown-ip-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateDedicatedIpPool", "sesv2:DeleteDedicatedIpPool", "sesv2:GetDedicatedIpPool", "sesv2:GetDedicatedIps", "sesv2:PutDedicatedIpInPool"], "path": "behavioral/sesv2/check_put_dedicated_ip_in_pool_unknown_ip_rejected.py", "service": "sesv2"} {"check_id": "sesv2.put-dedicated-ip-warmup-attributes-unknown-rejected", "deployments": [], "key": "sesv2/put-dedicated-ip-warmup-attributes-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:GetAccount", "sesv2:GetDedicatedIps", "sesv2:PutAccountDedicatedIpWarmupAttributes", "sesv2:PutDedicatedIpWarmupAttributes"], "path": "behavioral/sesv2/check_put_dedicated_ip_warmup_attributes_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.put-email-identity-dkim-attributes-toggles-signing-enabled", "deployments": [], "key": "sesv2/put-email-identity-dkim-attributes-toggles-signing-enabled", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:PutEmailIdentityDkimAttributes"], "path": "behavioral/sesv2/check_put_email_identity_dkim_attributes_toggles_signing_enabled.py", "service": "sesv2"} {"check_id": "sesv2.put-email-identity-feedback-attributes-toggles-email-forwarding", "deployments": [], "key": "sesv2/put-email-identity-feedback-attributes-toggles-email-forwarding", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:GetEmailIdentity", "sesv2:PutEmailIdentityFeedbackAttributes"], "path": "behavioral/sesv2/check_put_email_identity_feedback_attributes_toggles_email_forwarding.py", "service": "sesv2"} {"check_id": "sesv2.put-tenant-suppression-attributes-roundtrip", "deployments": [], "key": "sesv2/put-tenant-suppression-attributes-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetTenant", "sesv2:PutTenantSuppressionAttributes"], "path": "behavioral/sesv2/check_put_tenant_suppression_attributes_roundtrip.py", "service": "sesv2"} {"check_id": "sesv2.send-bulk-email-missing-default-template-data-rejected", "deployments": [], "key": "sesv2/send-bulk-email-missing-default-template-data-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:SendBulkEmail"], "path": "behavioral/sesv2/check_send_bulk_email_missing_default_template_data_rejected.py", "service": "sesv2"} {"check_id": "sesv2.send-bulk-email-simulator-per-entry-message-ids", "deployments": [], "key": "sesv2/send-bulk-email-simulator-per-entry-message-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:CreateEmailTemplate", "sesv2:DeleteConfigurationSet", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailIdentity", "sesv2:SendBulkEmail", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sesv2/check_send_bulk_email_simulator_per_entry_message_ids.py", "service": "sesv2"} {"check_id": "sesv2.send-email-list-management-options-are-resolved-against-the-contact-list", "deployments": [], "key": "sesv2/send-email-list-management-options-are-resolved-against-the-contact-list", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:CreateContactList", "sesv2:DeleteContactList", "sesv2:GetContactList", "sesv2:ListContactLists", "sesv2:SendEmail", "sesv2:UpdateContactList"], "path": "behavioral/sesv2/check_send_email_list_management_options_are_resolved_against_the_contact_list.py", "service": "sesv2"} {"check_id": "sesv2.send-email-template-resolution-precedes-the-sender-verification-gate", "deployments": [], "key": "sesv2/send-email-template-resolution-precedes-the-sender-verification-gate", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailTemplate", "sesv2:SendEmail", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_send_email_template_resolution_precedes_the_sender_verification_gate.py", "service": "sesv2"} {"check_id": "sesv2.send-email-unverified-sender-rejected", "deployments": [], "key": "sesv2/send-email-unverified-sender-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:ListEmailIdentities", "sesv2:SendEmail"], "path": "behavioral/sesv2/check_send_email_unverified_sender_rejected.py", "service": "sesv2"} {"check_id": "sesv2.sesv2-associate-email-identity-certificate-missing-from-address-rejected", "deployments": [], "key": "sesv2/sesv2-associate-email-identity-certificate-missing-from-address-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:RequestCertificate", "sesv2:AssociateEmailIdentityCertificate", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:DisassociateEmailIdentityCertificate", "sesv2:ListEmailIdentityCertificates"], "path": "behavioral/sesv2/check_sesv2_associate_email_identity_certificate_missing_from_address_rejected.py", "service": "sesv2"} {"check_id": "sesv2.sesv2-email-identity-policy-delete-then-get", "deployments": [], "key": "sesv2/sesv2-email-identity-policy-delete-then-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateEmailIdentity", "sesv2:CreateEmailIdentityPolicy", "sesv2:DeleteEmailIdentity", "sesv2:DeleteEmailIdentityPolicy", "sesv2:GetEmailIdentityPolicies", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_sesv2_email_identity_policy_delete_then_get.py", "service": "sesv2"} {"check_id": "sesv2.sesv2-list-email-identity-certificates-pagination", "deployments": [], "key": "sesv2/sesv2-list-email-identity-certificates-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["acm:DeleteCertificate", "acm:RequestCertificate", "sesv2:AssociateEmailIdentityCertificate", "sesv2:CreateEmailIdentity", "sesv2:DeleteEmailIdentity", "sesv2:DisassociateEmailIdentityCertificate", "sesv2:ListEmailIdentityCertificates"], "path": "behavioral/sesv2/check_sesv2_list_email_identity_certificates_pagination.py", "service": "sesv2"} {"check_id": "sesv2.suppressed-destination-invalid-reason-rejected", "deployments": [], "key": "sesv2/suppressed-destination-invalid-reason-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:DeleteSuppressedDestination", "sesv2:GetAccount", "sesv2:GetSuppressedDestination", "sesv2:ListSuppressedDestinations", "sesv2:PutSuppressedDestination"], "path": "behavioral/sesv2/check_suppressed_destination_invalid_reason_rejected.py", "service": "sesv2"} {"check_id": "sesv2.suppressed-destination-put-get-delete-lifecycle", "deployments": [], "key": "sesv2/suppressed-destination-put-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:DeleteSuppressedDestination", "sesv2:GetAccount", "sesv2:GetSuppressedDestination", "sesv2:PutSuppressedDestination"], "path": "behavioral/sesv2/check_suppressed_destination_put_get_delete_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.suppressed-destination-sandbox-refusal-effect-absent", "deployments": [], "key": "sesv2/suppressed-destination-sandbox-refusal-effect-absent", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:GetAccount", "sesv2:GetSuppressedDestination", "sesv2:ListSuppressedDestinations", "sesv2:PutSuppressedDestination"], "path": "behavioral/sesv2/check_suppressed_destination_sandbox_refusal_effect_absent.py", "service": "sesv2"} {"check_id": "sesv2.tag-resource-lifecycle", "deployments": [], "key": "sesv2/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:ListTagsForResource", "sesv2:TagResource", "sesv2:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_tag_resource_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.tag-resource-reserved-prefix-and-key-limit-rejected", "deployments": [], "key": "sesv2/tag-resource-reserved-prefix-and-key-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:DeleteConfigurationSet", "sesv2:ListTagsForResource", "sesv2:TagResource", "sesv2:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_tag_resource_reserved_prefix_and_key_limit_rejected.py", "service": "sesv2"} {"check_id": "sesv2.template-render-conditional-semantics", "deployments": [], "key": "sesv2/template-render-conditional-semantics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_template_render_conditional_semantics.py", "service": "sesv2"} {"check_id": "sesv2.template-render-missing-variable-rejected", "deployments": [], "key": "sesv2/template-render-missing-variable-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_template_render_missing_variable_rejected.py", "service": "sesv2"} {"check_id": "sesv2.tenant-create-duplicate-name-rejected", "deployments": [], "key": "sesv2/tenant-create-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetTenant"], "path": "behavioral/sesv2/check_tenant_create_duplicate_name_rejected.py", "service": "sesv2"} {"check_id": "sesv2.tenant-create-get-list-delete-lifecycle", "deployments": [], "key": "sesv2/tenant-create-get-list-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetTenant", "sesv2:ListTenants"], "path": "behavioral/sesv2/check_tenant_create_get_list_delete_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.tenant-create-with-tags-tag-untag-and-tenant-id-resolution", "deployments": [], "key": "sesv2/tenant-create-with-tags-tag-untag-and-tenant-id-resolution", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:ListTagsForResource", "sesv2:TagResource", "sesv2:UntagResource"], "path": "behavioral/sesv2/check_tenant_create_with_tags_tag_untag_and_tenant_id_resolution.py", "service": "sesv2"} {"check_id": "sesv2.tenant-delete-unknown-rejected", "deployments": [], "key": "sesv2/tenant-delete-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetTenant"], "path": "behavioral/sesv2/check_tenant_delete_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.tenant-get-after-delete-not-found", "deployments": [], "key": "sesv2/tenant-get-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetTenant"], "path": "behavioral/sesv2/check_tenant_get_after_delete_not_found.py", "service": "sesv2"} {"check_id": "sesv2.tenant-get-unknown-rejected", "deployments": [], "key": "sesv2/tenant-get-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetTenant"], "path": "behavioral/sesv2/check_tenant_get_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.tenant-resource-association-delete-unknown-rejected", "deployments": [], "key": "sesv2/tenant-resource-association-delete-unknown-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteConfigurationSet", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:ListTenantResources", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_tenant_resource_association_delete_unknown_rejected.py", "service": "sesv2"} {"check_id": "sesv2.tenant-resource-association-duplicate-rejected", "deployments": [], "key": "sesv2/tenant-resource-association-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteConfigurationSet", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:ListTenantResources", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_tenant_resource_association_duplicate_rejected.py", "service": "sesv2"} {"check_id": "sesv2.tenant-resource-association-lifecycle", "deployments": [], "key": "sesv2/tenant-resource-association-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteConfigurationSet", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:ListResourceTenants", "sesv2:ListTenantResources", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_tenant_resource_association_lifecycle.py", "service": "sesv2"} {"check_id": "sesv2.tenant-resource-association-unknown-tenant-rejected", "deployments": [], "key": "sesv2/tenant-resource-association-unknown-tenant-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateTenant", "sesv2:CreateTenantResourceAssociation", "sesv2:DeleteConfigurationSet", "sesv2:DeleteTenant", "sesv2:DeleteTenantResourceAssociation", "sesv2:ListResourceTenants", "sts:GetCallerIdentity"], "path": "behavioral/sesv2/check_tenant_resource_association_unknown_tenant_rejected.py", "service": "sesv2"} {"check_id": "sesv2.tenant-tag-unicode-round-trip", "deployments": [], "key": "sesv2/tenant-tag-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:ListTagsForResource", "sesv2:TagResource"], "path": "behavioral/sesv2/check_tenant_tag_unicode_round_trip.py", "service": "sesv2"} {"check_id": "sesv2.test-render-email-template-assembles-a-multipart-alternative-mime-message", "deployments": [], "key": "sesv2/test-render-email-template-assembles-a-multipart-alternative-mime-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_test_render_email_template_assembles_a_multipart_alternative_mime_message.py", "service": "sesv2"} {"check_id": "sesv2.test-render-email-template-does-not-html-escape-substituted-values", "deployments": [], "key": "sesv2/test-render-email-template-does-not-html-escape-substituted-values", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_test_render_email_template_does_not_html_escape_substituted_values.py", "service": "sesv2"} {"check_id": "sesv2.test-render-email-template-mime-encodes-non-ascii-rendering-data", "deployments": [], "key": "sesv2/test-render-email-template-mime-encodes-non-ascii-rendering-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_test_render_email_template_mime_encodes_non_ascii_rendering_data.py", "service": "sesv2"} {"check_id": "sesv2.test-render-email-template-selects-the-mime-type-from-the-stored-parts", "deployments": [], "key": "sesv2/test-render-email-template-selects-the-mime-type-from-the-stored-parts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_test_render_email_template_selects_the_mime_type_from_the_stored_parts.py", "service": "sesv2"} {"check_id": "sesv2.test-render-with-incomplete-template-data-rejected-complete-data-renders", "deployments": [], "key": "sesv2/test-render-with-incomplete-template-data-rejected-complete-data-renders", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailTemplate", "sesv2:TestRenderEmailTemplate"], "path": "behavioral/sesv2/check_test_render_with_incomplete_template_data_rejected_complete_data_renders.py", "service": "sesv2"} {"check_id": "sesv2.unsubscribe-all-overrides-an-explicit-topic-optin-without-erasing-it", "deployments": [], "key": "sesv2/unsubscribe-all-overrides-an-explicit-topic-optin-without-erasing-it", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateContact", "sesv2:CreateContactList", "sesv2:DeleteContact", "sesv2:DeleteContactList", "sesv2:GetContact", "sesv2:GetContactList", "sesv2:ListContactLists", "sesv2:ListContacts", "sesv2:UpdateContact", "sesv2:UpdateContactList"], "path": "behavioral/sesv2/check_unsubscribe_all_overrides_an_explicit_topic_optin_without_erasing_it.py", "service": "sesv2"} {"check_id": "sesv2.update-reputation-entity-customer-managed-status-stale-conflict-rejected", "deployments": [], "key": "sesv2/update-reputation-entity-customer-managed-status-stale-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetReputationEntity", "sesv2:UpdateReputationEntityCustomerManagedStatus"], "path": "behavioral/sesv2/check_update_reputation_entity_customer_managed_status_stale_conflict_rejected.py", "service": "sesv2"} {"check_id": "sesv2.update-reputation-entity-policy-concurrent-writes-land-one-of-two", "deployments": [], "key": "sesv2/update-reputation-entity-policy-concurrent-writes-land-one-of-two", "labels": ["axis:happy-path", "plane:control"], "operations": ["sesv2:CreateTenant", "sesv2:DeleteTenant", "sesv2:GetReputationEntity", "sesv2:UpdateReputationEntityPolicy"], "path": "behavioral/sesv2/check_update_reputation_entity_policy_concurrent_writes_land_one_of_two.py", "service": "sesv2"} {"check_id": "sesv2.updating-a-template-changes-what-the-renderer-produces", "deployments": [], "key": "sesv2/updating-a-template-changes-what-the-renderer-produces", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sesv2:CreateEmailTemplate", "sesv2:DeleteEmailTemplate", "sesv2:TestRenderEmailTemplate", "sesv2:UpdateEmailTemplate"], "path": "behavioral/sesv2/check_updating_a_template_changes_what_the_renderer_produces.py", "service": "sesv2"} {"check_id": "sesv2.v1-template-token-continues-the-v2-list", "deployments": [], "key": "sesv2/v1-template-token-continues-the-v2-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ses:CreateTemplate", "ses:DeleteTemplate", "ses:ListTemplates", "sesv2:ListEmailTemplates"], "path": "behavioral/sesv2/check_v1_template_token_continues_the_v2_list.py", "service": "sesv2"} {"check_id": "sesv2__sns.event-destination-requires-a-topic-policy-that-actually-permits-ses-to-publish", "deployments": [], "key": "sesv2__sns/event-destination-requires-a-topic-policy-that-actually-permits-ses-to-publish", "labels": ["axis:rejection", "plane:control"], "operations": ["sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:DeleteConfigurationSetEventDestination", "sesv2:GetConfigurationSetEventDestinations", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sesv2__sns/check_event_destination_requires_a_topic_policy_that_actually_permits_ses_to_publish.py", "service": "sesv2__sns"} {"check_id": "sesv2__sns__sqs.account-suppression-from-a-hard-bounce-blocks-the-next-send", "deployments": [], "key": "sesv2__sns__sqs/account-suppression-from-a-hard-bounce-blocks-the-next-send", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:DeleteSuppressedDestination", "sesv2:GetAccount", "sesv2:GetEmailIdentity", "sesv2:GetSuppressedDestination", "sesv2:PutAccountSuppressionAttributes", "sesv2:SendEmail", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sesv2__sns__sqs/check_account_suppression_from_a_hard_bounce_blocks_the_next_send.py", "service": "sesv2__sns__sqs"} {"check_id": "sesv2__sns__sqs.event-destination-disabled-publishes-no-events", "deployments": [], "key": "sesv2__sns__sqs/event-destination-disabled-publishes-no-events", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sesv2:UpdateConfigurationSetEventDestination", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sesv2__sns__sqs/check_event_destination_disabled_publishes_no_events.py", "service": "sesv2__sns__sqs"} {"check_id": "sesv2__sns__sqs.send-bulk-email-per-entry-replacement-headers-override-the-template-default", "deployments": [], "key": "sesv2__sns__sqs/send-bulk-email-per-entry-replacement-headers-override-the-template-default", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendBulkEmail", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sesv2__sns__sqs/check_send_bulk_email_per_entry_replacement_headers_override_the_template_default.py", "service": "sesv2__sns__sqs"} {"check_id": "sesv2__sns__sqs.send-email-to-success-simulator-returns-message-id-and-a-delivery-event", "deployments": [], "key": "sesv2__sns__sqs/send-email-to-success-simulator-returns-message-id-and-a-delivery-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sesv2__sns__sqs/check_send_email_to_success_simulator_returns_message_id_and_a_delivery_event.py", "service": "sesv2__sns__sqs"} {"check_id": "sesv2__sns__sqs.send-raw-email-preserves-custom-headers-exactly-in-the-published-event", "deployments": [], "key": "sesv2__sns__sqs/send-raw-email-preserves-custom-headers-exactly-in-the-published-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sesv2__sns__sqs/check_send_raw_email_preserves_custom_headers_exactly_in_the_published_event.py", "service": "sesv2__sns__sqs"} {"check_id": "sesv2__sns__sqs.send-to-bounce-and-complaint-simulator-publishes-documented-event-shapes", "deployments": [], "key": "sesv2__sns__sqs/send-to-bounce-and-complaint-simulator-publishes-documented-event-shapes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:DeleteConfigurationSet", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sesv2__sns__sqs/check_send_to_bounce_and_complaint_simulator_publishes_documented_event_shapes.py", "service": "sesv2__sns__sqs"} {"check_id": "sesv2__sns__sqs.templated-send-with-missing-variable-publishes-rendering-failure", "deployments": [], "key": "sesv2__sns__sqs/templated-send-with-missing-variable-publishes-rendering-failure", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["route53:ListHostedZones", "route53:ListTagsForResource", "sesv2:CreateConfigurationSet", "sesv2:CreateConfigurationSetEventDestination", "sesv2:CreateEmailTemplate", "sesv2:DeleteConfigurationSet", "sesv2:DeleteEmailTemplate", "sesv2:GetEmailIdentity", "sesv2:SendEmail", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sesv2__sns__sqs/check_templated_send_with_missing_variable_publishes_rendering_failure.py", "service": "sesv2__sns__sqs"} {"check_id": "shield.create-protection-group-conflicting-pattern-fields-rejected", "deployments": [], "key": "shield/create-protection-group-conflicting-pattern-fields-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:CreateProtectionGroup", "shield:DeleteProtectionGroup", "shield:DescribeProtectionGroup"], "path": "behavioral/shield/check_create_protection_group_conflicting_pattern_fields_rejected.py", "service": "shield"} {"check_id": "shield.create-protection-group-unprotected-member-not-found", "deployments": [], "key": "shield/create-protection-group-unprotected-member-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:CreateProtectionGroup", "shield:DeleteProtectionGroup", "shield:DescribeProtectionGroup"], "path": "behavioral/shield/check_create_protection_group_unprotected_member_not_found.py", "service": "shield"} {"check_id": "shield.create-protection-invalid-name-pattern-rejected", "deployments": [], "key": "shield/create-protection-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:CreateProtection"], "path": "behavioral/shield/check_create_protection_invalid_name_pattern_rejected.py", "service": "shield"} {"check_id": "shield.describe-attack-statistics-time-range-structure", "deployments": [], "key": "shield/describe-attack-statistics-time-range-structure", "labels": ["axis:happy-path", "plane:control"], "operations": ["shield:DescribeAttackStatistics"], "path": "behavioral/shield/check_describe_attack_statistics_time_range_structure.py", "service": "shield"} {"check_id": "shield.describe-attack-unknown-id-no-fabricated-detail", "deployments": [], "key": "shield/describe-attack-unknown-id-no-fabricated-detail", "labels": ["axis:happy-path", "plane:control"], "operations": ["shield:DescribeAttack", "shield:ListAttacks"], "path": "behavioral/shield/check_describe_attack_unknown_id_no_fabricated_detail.py", "service": "shield"} {"check_id": "shield.describe-drt-access-absent-without-association", "deployments": [], "key": "shield/describe-drt-access-absent-without-association", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:DescribeDRTAccess"], "path": "behavioral/shield/check_describe_drt_access_absent_without_association.py", "service": "shield"} {"check_id": "shield.describe-emergency-contacts-absent-without-subscription", "deployments": [], "key": "shield/describe-emergency-contacts-absent-without-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:DescribeEmergencyContactSettings", "shield:GetSubscriptionState"], "path": "behavioral/shield/check_describe_emergency_contacts_absent_without_subscription.py", "service": "shield"} {"check_id": "shield.describe-protection-conflicting-params-rejected", "deployments": [], "key": "shield/describe-protection-conflicting-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:DescribeProtection"], "path": "behavioral/shield/check_describe_protection_conflicting_params_rejected.py", "service": "shield"} {"check_id": "shield.describe-subscription-absent-without-subscription", "deployments": [], "key": "shield/describe-subscription-absent-without-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:DescribeSubscription", "shield:GetSubscriptionState"], "path": "behavioral/shield/check_describe_subscription_absent_without_subscription.py", "service": "shield"} {"check_id": "shield.disassociate-drt-role-requires-subscription", "deployments": [], "key": "shield/disassociate-drt-role-requires-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:DescribeDRTAccess", "shield:DisassociateDRTRole", "shield:GetSubscriptionState"], "path": "behavioral/shield/check_disassociate_drt_role_requires_subscription.py", "service": "shield"} {"check_id": "shield.list-attacks-empty-for-time-range", "deployments": [], "key": "shield/list-attacks-empty-for-time-range", "labels": ["axis:happy-path", "plane:control"], "operations": ["shield:ListAttacks"], "path": "behavioral/shield/check_list_attacks_empty_for_time_range.py", "service": "shield"} {"check_id": "shield.list-protection-groups-invalid-pagination-token-rejected", "deployments": [], "key": "shield/list-protection-groups-invalid-pagination-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:ListProtectionGroups"], "path": "behavioral/shield/check_list_protection_groups_invalid_pagination_token_rejected.py", "service": "shield"} {"check_id": "shield.list-protection-groups-requires-subscription", "deployments": [], "key": "shield/list-protection-groups-requires-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:ListAttacks", "shield:ListProtectionGroups"], "path": "behavioral/shield/check_list_protection_groups_requires_subscription.py", "service": "shield"} {"check_id": "shield.list-protections-requires-subscription", "deployments": [], "key": "shield/list-protections-requires-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:GetSubscriptionState", "shield:ListProtections"], "path": "behavioral/shield/check_list_protections_requires_subscription.py", "service": "shield"} {"check_id": "shield.list-resources-in-protection-group-missing-group-not-found", "deployments": [], "key": "shield/list-resources-in-protection-group-missing-group-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:ListResourcesInProtectionGroup"], "path": "behavioral/shield/check_list_resources_in_protection_group_missing_group_not_found.py", "service": "shield"} {"check_id": "shield.subscription-state-inactive-by-default", "deployments": [], "key": "shield/subscription-state-inactive-by-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["shield:GetSubscriptionState"], "path": "behavioral/shield/check_subscription_state_inactive_by_default.py", "service": "shield"} {"check_id": "shield.tag-resource-nonexistent-resource-rejected", "deployments": [], "key": "shield/tag-resource-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:ListTagsForResource", "shield:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/shield/check_tag_resource_nonexistent_resource_rejected.py", "service": "shield"} {"check_id": "shield.update-subscription-requires-existing-subscription", "deployments": [], "key": "shield/update-subscription-requires-existing-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["shield:UpdateSubscription"], "path": "behavioral/shield/check_update_subscription_requires_existing_subscription.py", "service": "shield"} {"check_id": "signer-data.revoke-signature-marks-job-revoked", "deployments": [], "key": "signer-data/revoke-signature-marks-job-revoked", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject", "signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:GetRevocationStatus", "signer:PutSigningProfile", "signer:RevokeSignature", "signer:StartSigningJob"], "path": "behavioral/signer-data/check_revoke_signature_marks_job_revoked.py", "service": "signer-data"} {"check_id": "signer.access-denied-rejected", "deployments": [], "key": "signer/access-denied-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "signer:GetRevocationStatus", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_access_denied_rejected.py", "service": "signer"} {"check_id": "signer.add-profile-permission-add-and-remove-round-trip", "deployments": [], "key": "signer/add-profile-permission-add-and-remove-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:AddProfilePermission", "signer:CancelSigningProfile", "signer:ListProfilePermissions", "signer:PutSigningProfile", "signer:RemoveProfilePermission", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_add_profile_permission_add_and_remove_round_trip.py", "service": "signer"} {"check_id": "signer.add-profile-permission-concurrent-revision-conflict", "deployments": [], "key": "signer/add-profile-permission-concurrent-revision-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:AddProfilePermission", "signer:CancelSigningProfile", "signer:ListProfilePermissions", "signer:PutSigningProfile", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_add_profile_permission_concurrent_revision_conflict.py", "service": "signer"} {"check_id": "signer.add-profile-permission-stale-revision-conflict-rejected", "deployments": [], "key": "signer/add-profile-permission-stale-revision-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:AddProfilePermission", "signer:CancelSigningProfile", "signer:ListProfilePermissions", "signer:PutSigningProfile", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_add_profile_permission_stale_revision_conflict_rejected.py", "service": "signer"} {"check_id": "signer.cancel-signing-profile-transitions-to-canceled", "deployments": [], "key": "signer/cancel-signing-profile-transitions-to-canceled", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/signer/check_cancel_signing_profile_transitions_to_canceled.py", "service": "signer"} {"check_id": "signer.certificate-hash-entry-too-short-rejected", "deployments": [], "key": "signer/certificate-hash-entry-too-short-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_certificate_hash_entry_too_short_rejected.py", "service": "signer"} {"check_id": "signer.certificate-hash-length-boundaries-accepted", "deployments": [], "key": "signer/certificate-hash-length-boundaries-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_certificate_hash_length_boundaries_accepted.py", "service": "signer"} {"check_id": "signer.certificate-hash-order-independent", "deployments": [], "key": "signer/certificate-hash-order-independent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketVersioning", "s3:PutObject", "signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:GetRevocationStatus", "signer:PutSigningProfile", "signer:RevokeSignature", "signer:StartSigningJob"], "path": "behavioral/signer/check_certificate_hash_order_independent.py", "service": "signer"} {"check_id": "signer.certificate-hashes-empty-list-rejected", "deployments": [], "key": "signer/certificate-hashes-empty-list-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_certificate_hashes_empty_list_rejected.py", "service": "signer"} {"check_id": "signer.concurrent-reads-consistent", "deployments": [], "key": "signer/concurrent-reads-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["signer:CancelSigningProfile", "signer:GetRevocationStatus", "signer:PutSigningProfile", "signer:RevokeSigningProfile", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_concurrent_reads_consistent.py", "service": "signer"} {"check_id": "signer.describe-signing-job-unknown-job-not-found", "deployments": [], "key": "signer/describe-signing-job-unknown-job-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:PutSigningProfile", "signer:SignPayload"], "path": "behavioral/signer/check_describe_signing_job_unknown_job_not_found.py", "service": "signer"} {"check_id": "signer.get-revocation-status-malformed-arn-rejected", "deployments": [], "key": "signer/get-revocation-status-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:GetRevocationStatus", "signer:PutSigningProfile", "signer:SignPayload"], "path": "behavioral/signer/check_get_revocation_status_malformed_arn_rejected.py", "service": "signer"} {"check_id": "signer.get-signing-platform-returns-known-platform", "deployments": [], "key": "signer/get-signing-platform-returns-known-platform", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:GetSigningPlatform"], "path": "behavioral/signer/check_get_signing_platform_returns_known_platform.py", "service": "signer"} {"check_id": "signer.idempotent-repeated-calls", "deployments": [], "key": "signer/idempotent-repeated-calls", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:GetRevocationStatus", "signer:PutSigningProfile", "signer:RevokeSignature", "signer:StartSigningJob"], "path": "behavioral/signer/check_idempotent_repeated_calls.py", "service": "signer"} {"check_id": "signer.job-arn-too-long-rejected", "deployments": [], "key": "signer/job-arn-too-long-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_job_arn_too_long_rejected.py", "service": "signer"} {"check_id": "signer.list-signing-jobs-maxresults-out-of-range-rejected", "deployments": [], "key": "signer/list-signing-jobs-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:ListSigningJobs", "signer:PutSigningProfile", "signer:SignPayload"], "path": "behavioral/signer/check_list_signing_jobs_maxresults_out_of_range_rejected.py", "service": "signer"} {"check_id": "signer.list-signing-jobs-reflects-recent-signing-activity", "deployments": [], "key": "signer/list-signing-jobs-reflects-recent-signing-activity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["signer:CancelSigningProfile", "signer:ListSigningJobs", "signer:PutSigningProfile", "signer:SignPayload", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_list_signing_jobs_reflects_recent_signing_activity.py", "service": "signer"} {"check_id": "signer.list-signing-profiles-excludes-canceled-by-default", "deployments": [], "key": "signer/list-signing-profiles-excludes-canceled-by-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:ListSigningProfiles", "signer:PutSigningProfile"], "path": "behavioral/signer/check_list_signing_profiles_excludes_canceled_by_default.py", "service": "signer"} {"check_id": "signer.multiple-certificate-hashes-batch", "deployments": [], "key": "signer/multiple-certificate-hashes-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_multiple_certificate_hashes_batch.py", "service": "signer"} {"check_id": "signer.multiple-signing-jobs-independent-revocation", "deployments": [], "key": "signer/multiple-signing-jobs-independent-revocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:GetRevocationStatus", "signer:PutSigningProfile", "signer:RevokeSignature", "signer:StartSigningJob"], "path": "behavioral/signer/check_multiple_signing_jobs_independent_revocation.py", "service": "signer"} {"check_id": "signer.platform-id-pattern-rejected", "deployments": [], "key": "signer/platform-id-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_platform_id_pattern_rejected.py", "service": "signer"} {"check_id": "signer.profile-version-arn-format-rejected", "deployments": [], "key": "signer/profile-version-arn-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_profile_version_arn_format_rejected.py", "service": "signer"} {"check_id": "signer.put-signing-profile-creates-active-profile", "deployments": [], "key": "signer/put-signing-profile-creates-active-profile", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/signer/check_put_signing_profile_creates_active_profile.py", "service": "signer"} {"check_id": "signer.put-signing-profile-duplicate-name-permanently-rejected", "deployments": [], "key": "signer/put-signing-profile-duplicate-name-permanently-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:PutSigningProfile"], "path": "behavioral/signer/check_put_signing_profile_duplicate_name_permanently_rejected.py", "service": "signer"} {"check_id": "signer.put-signing-profile-invalid-name-pattern-rejected", "deployments": [], "key": "signer/put-signing-profile-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:ListSigningProfiles", "signer:PutSigningProfile"], "path": "behavioral/signer/check_put_signing_profile_invalid_name_pattern_rejected.py", "service": "signer"} {"check_id": "signer.revoke-signature-empty-reason-rejected", "deployments": [], "key": "signer/revoke-signature-empty-reason-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:PutSigningProfile", "signer:RevokeSignature", "signer:SignPayload"], "path": "behavioral/signer/check_revoke_signature_empty_reason_rejected.py", "service": "signer"} {"check_id": "signer.revoke-signature-marks-job-revoked", "deployments": [], "key": "signer/revoke-signature-marks-job-revoked", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:PutSigningProfile", "signer:RevokeSignature", "signer:SignPayload", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_revoke_signature_marks_job_revoked.py", "service": "signer"} {"check_id": "signer.revoke-signing-profile-blocks-signing-rejected", "deployments": [], "key": "signer/revoke-signing-profile-blocks-signing-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:GetSigningProfile", "signer:PutSigningProfile", "signer:RevokeSigningProfile", "signer:SignPayload"], "path": "behavioral/signer/check_revoke_signing_profile_blocks_signing_rejected.py", "service": "signer"} {"check_id": "signer.revoke-signing-profile-effective-time-boundary", "deployments": [], "key": "signer/revoke-signing-profile-effective-time-boundary", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:GetRevocationStatus", "signer:PutSigningProfile", "signer:RevokeSigningProfile", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_revoke_signing_profile_effective_time_boundary.py", "service": "signer"} {"check_id": "signer.sign-payload-missing-iam-permission-denied", "deployments": [], "key": "signer/sign-payload-missing-iam-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:ListSigningJobs", "signer:PutSigningProfile", "signer:SignPayload"], "path": "behavioral/signer/check_sign_payload_missing_iam_permission_denied.py", "service": "signer"} {"check_id": "signer.sign-payload-on-canceled-profile-rejected", "deployments": [], "key": "signer/sign-payload-on-canceled-profile-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:PutSigningProfile", "signer:SignPayload"], "path": "behavioral/signer/check_sign_payload_on_canceled_profile_rejected.py", "service": "signer"} {"check_id": "signer.sign-payload-payload-too-large-rejected", "deployments": [], "key": "signer/sign-payload-payload-too-large-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:ListSigningJobs", "signer:PutSigningProfile", "signer:SignPayload"], "path": "behavioral/signer/check_sign_payload_payload_too_large_rejected.py", "service": "signer"} {"check_id": "signer.sign-payload-synchronous-round-trip", "deployments": [], "key": "signer/sign-payload-synchronous-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:PutSigningProfile", "signer:SignPayload", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_sign_payload_synchronous_round_trip.py", "service": "signer"} {"check_id": "signer.signature-timestamp-future-rejected", "deployments": [], "key": "signer/signature-timestamp-future-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_signature_timestamp_future_rejected.py", "service": "signer"} {"check_id": "signer.signing-profile-status-transitions-to-revoked", "deployments": [], "key": "signer/signing-profile-status-transitions-to-revoked", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:GetSigningProfile", "signer:PutSigningProfile", "signer:RevokeSigningProfile"], "path": "behavioral/signer/check_signing_profile_status_transitions_to_revoked.py", "service": "signer"} {"check_id": "signer.start-signing-job-client-request-token-idempotent", "deployments": [], "key": "signer/start-signing-job-client-request-token-idempotent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectVersions", "s3:PutBucketVersioning", "s3:PutObject", "signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:ListSigningJobs", "signer:PutSigningProfile", "signer:StartSigningJob", "sts:GetCallerIdentity"], "path": "behavioral/signer/check_start_signing_job_client_request_token_idempotent.py", "service": "signer"} {"check_id": "signer.start-signing-job-invalid-source-transitions-to-failed", "deployments": [], "key": "signer/start-signing-job-invalid-source-transitions-to-failed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:HeadObject", "s3:ListObjectVersions", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "signer:CancelSigningProfile", "signer:DescribeSigningJob", "signer:PutSigningProfile", "signer:StartSigningJob"], "path": "behavioral/signer/check_start_signing_job_invalid_source_transitions_to_failed.py", "service": "signer"} {"check_id": "signer.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "signer/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["signer:CancelSigningProfile", "signer:ListTagsForResource", "signer:PutSigningProfile", "signer:TagResource", "signer:UntagResource"], "path": "behavioral/signer/check_tag_resource_and_list_tags_round_trip.py", "service": "signer"} {"check_id": "signer.unknown-identifiers-returns-empty", "deployments": [], "key": "signer/unknown-identifiers-returns-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_unknown_identifiers_returns_empty.py", "service": "signer"} {"check_id": "signer.unknown-platform-id-rejected", "deployments": [], "key": "signer/unknown-platform-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signer:GetRevocationStatus"], "path": "behavioral/signer/check_unknown_platform_id_rejected.py", "service": "signer"} {"check_id": "signin.console-authorization-configuration-disabled-after-delete", "deployments": [], "key": "signin/console-authorization-configuration-disabled-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["signin:DeleteConsoleAuthorizationConfiguration", "signin:GetConsoleAuthorizationConfiguration", "signin:PutConsoleAuthorizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_console_authorization_configuration_disabled_after_delete.py", "service": "signin"} {"check_id": "signin.console-authorization-configuration-full-lifecycle-workflow", "deployments": [], "key": "signin/console-authorization-configuration-full-lifecycle-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["signin:DeleteConsoleAuthorizationConfiguration", "signin:GetConsoleAuthorizationConfiguration", "signin:PutConsoleAuthorizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_console_authorization_configuration_full_lifecycle_workflow.py", "service": "signin"} {"check_id": "signin.create-oauth2-token-with-iam-rotates-access-token", "deployments": [], "key": "signin/create-oauth2-token-with-iam-rotates-access-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["signin:CreateOAuth2TokenWithIAM", "signin:IntrospectOAuth2TokenWithIAM"], "path": "behavioral/signin/check_create_oauth2_token_with_iam_rotates_access_token.py", "service": "signin"} {"check_id": "signin.create-oauth2-token-with-iam-success", "deployments": [], "key": "signin/create-oauth2-token-with-iam-success", "labels": ["axis:happy-path", "plane:control"], "operations": ["signin:CreateOAuth2TokenWithIAM", "signin:IntrospectOAuth2TokenWithIAM"], "path": "behavioral/signin/check_create_oauth2_token_with_iam_success.py", "service": "signin"} {"check_id": "signin.create-oauth2-token-with-iam-wrong-grant-type-rejected", "deployments": [], "key": "signin/create-oauth2-token-with-iam-wrong-grant-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:CreateOAuth2TokenWithIAM"], "path": "behavioral/signin/check_create_oauth2_token_with_iam_wrong_grant_type_rejected.py", "service": "signin"} {"check_id": "signin.delete-resource-permission-statement-invalid-sid-rejected", "deployments": [], "key": "signin/delete-resource-permission-statement-invalid-sid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:DeleteResourcePermissionStatement"], "path": "behavioral/signin/check_delete_resource_permission_statement_invalid_sid_rejected.py", "service": "signin"} {"check_id": "signin.get-console-authorization-configuration-not-found-when-unset", "deployments": [], "key": "signin/get-console-authorization-configuration-not-found-when-unset", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:DeleteConsoleAuthorizationConfiguration", "signin:GetConsoleAuthorizationConfiguration", "signin:PutConsoleAuthorizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_get_console_authorization_configuration_not_found_when_unset.py", "service": "signin"} {"check_id": "signin.get-resource-policy-not-found-without-statements", "deployments": [], "key": "signin/get-resource-policy-not-found-without-statements", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:GetResourcePolicy"], "path": "behavioral/signin/check_get_resource_policy_not_found_without_statements.py", "service": "signin"} {"check_id": "signin.introspect-oauth2-token-with-iam-hint-optional", "deployments": [], "key": "signin/introspect-oauth2-token-with-iam-hint-optional", "labels": ["axis:happy-path", "plane:control"], "operations": ["signin:CreateOAuth2TokenWithIAM", "signin:IntrospectOAuth2TokenWithIAM"], "path": "behavioral/signin/check_introspect_oauth2_token_with_iam_hint_optional.py", "service": "signin"} {"check_id": "signin.introspect-oauth2-token-with-iam-malformed-token-rejected", "deployments": [], "key": "signin/introspect-oauth2-token-with-iam-malformed-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:CreateOAuth2TokenWithIAM", "signin:IntrospectOAuth2TokenWithIAM"], "path": "behavioral/signin/check_introspect_oauth2_token_with_iam_malformed_token_rejected.py", "service": "signin"} {"check_id": "signin.introspect-oauth2-token-with-iam-resource-claim-round-trip-preserved", "deployments": [], "key": "signin/introspect-oauth2-token-with-iam-resource-claim-round-trip-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["signin:CreateOAuth2TokenWithIAM", "signin:IntrospectOAuth2TokenWithIAM", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_introspect_oauth2_token_with_iam_resource_claim_round_trip_preserved.py", "service": "signin"} {"check_id": "signin.list-resource-permission-statements-baseline-empty-shape", "deployments": [], "key": "signin/list-resource-permission-statements-baseline-empty-shape", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:ListResourcePermissionStatements"], "path": "behavioral/signin/check_list_resource_permission_statements_baseline_empty_shape.py", "service": "signin"} {"check_id": "signin.put-console-authorization-configuration-double-put-conflict-rejected", "deployments": [], "key": "signin/put-console-authorization-configuration-double-put-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:DeleteConsoleAuthorizationConfiguration", "signin:GetConsoleAuthorizationConfiguration", "signin:PutConsoleAuthorizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_put_console_authorization_configuration_double_put_conflict_rejected.py", "service": "signin"} {"check_id": "signin.put-console-authorization-configuration-nonexistent-org-rejected", "deployments": [], "key": "signin/put-console-authorization-configuration-nonexistent-org-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:DeleteConsoleAuthorizationConfiguration", "signin:GetConsoleAuthorizationConfiguration", "signin:PutConsoleAuthorizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_put_console_authorization_configuration_nonexistent_org_rejected.py", "service": "signin"} {"check_id": "signin.put-get-console-authorization-configuration-enables", "deployments": [], "key": "signin/put-get-console-authorization-configuration-enables", "labels": ["axis:happy-path", "plane:control"], "operations": ["signin:DeleteConsoleAuthorizationConfiguration", "signin:GetConsoleAuthorizationConfiguration", "signin:PutConsoleAuthorizationConfiguration", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_put_get_console_authorization_configuration_enables.py", "service": "signin"} {"check_id": "signin.put-resource-permission-statement-access-denied-without-permission", "deployments": [], "key": "signin/put-resource-permission-statement-access-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:ListResourcePermissionStatements", "signin:PutResourcePermissionStatement", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_put_resource_permission_statement_access_denied_without_permission.py", "service": "signin"} {"check_id": "signin.put-resource-permission-statement-concurrent-same-token-idempotent", "deployments": [], "key": "signin/put-resource-permission-statement-concurrent-same-token-idempotent", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "signin:ListResourcePermissionStatements", "signin:PutResourcePermissionStatement", "sts:GetCallerIdentity"], "path": "behavioral/signin/check_put_resource_permission_statement_concurrent_same_token_idempotent.py", "service": "signin"} {"check_id": "signin.revoke-oauth2-token-with-iam-idempotent-on-repeat", "deployments": [], "key": "signin/revoke-oauth2-token-with-iam-idempotent-on-repeat", "labels": ["axis:happy-path", "plane:control"], "operations": ["signin:IntrospectOAuth2TokenWithIAM", "signin:RevokeOAuth2TokenWithIAM"], "path": "behavioral/signin/check_revoke_oauth2_token_with_iam_idempotent_on_repeat.py", "service": "signin"} {"check_id": "signin.revoke-oauth2-token-with-iam-wrong-prefix-rejected", "deployments": [], "key": "signin/revoke-oauth2-token-with-iam-wrong-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["signin:CreateOAuth2TokenWithIAM", "signin:IntrospectOAuth2TokenWithIAM", "signin:RevokeOAuth2TokenWithIAM"], "path": "behavioral/signin/check_revoke_oauth2_token_with_iam_wrong_prefix_rejected.py", "service": "signin"} {"check_id": "simpledbv2.export-lifecycle-lands-verified-data-in-s3", "deployments": [], "key": "simpledbv2/export-lifecycle-lands-verified-data-in-s3", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sdb:CreateDomain", "sdb:DeleteDomain", "sdb:PutAttributes", "simpledbv2:GetExport", "simpledbv2:ListExports", "simpledbv2:StartDomainExport"], "path": "behavioral/simpledbv2/check_export_lifecycle_lands_verified_data_in_s3.py", "service": "simpledbv2"} {"check_id": "simpledbv2.list-exports-pagination-surfaces-own-exports", "deployments": [], "key": "simpledbv2/list-exports-pagination-surfaces-own-exports", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sdb:CreateDomain", "sdb:DeleteDomain", "sdb:PutAttributes", "simpledbv2:GetExport", "simpledbv2:ListExports", "simpledbv2:StartDomainExport"], "path": "behavioral/simpledbv2/check_list_exports_pagination_surfaces_own_exports.py", "service": "simpledbv2"} {"check_id": "simpledbv2.start-domain-export-idempotent-retry-returns-same-export", "deployments": [], "key": "simpledbv2/start-domain-export-idempotent-retry-returns-same-export", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sdb:CreateDomain", "sdb:DeleteDomain", "sdb:PutAttributes", "simpledbv2:GetExport", "simpledbv2:ListExports", "simpledbv2:StartDomainExport"], "path": "behavioral/simpledbv2/check_start_domain_export_idempotent_retry_returns_same_export.py", "service": "simpledbv2"} {"check_id": "simpledbv2.start-domain-export-token-reuse-with-changed-params-rejected", "deployments": [], "key": "simpledbv2/start-domain-export-token-reuse-with-changed-params-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "sdb:CreateDomain", "sdb:DeleteDomain", "sdb:PutAttributes", "simpledbv2:GetExport", "simpledbv2:StartDomainExport"], "path": "behavioral/simpledbv2/check_start_domain_export_token_reuse_with_changed_params_rejected.py", "service": "simpledbv2"} {"check_id": "sns.add-permission-invalid-action-rejected", "deployments": [], "key": "sns/add-permission-invalid-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_add_permission_invalid_action_rejected.py", "service": "sns"} {"check_id": "sns.add-permission-lifecycle-and-duplicate-label", "deployments": [], "key": "sns/add-permission-lifecycle-and-duplicate-label", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_add_permission_lifecycle_and_duplicate_label.py", "service": "sns"} {"check_id": "sns.add-permission-malformed-account-id-rejected", "deployments": [], "key": "sns/add-permission-malformed-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes"], "path": "behavioral/sns/check_add_permission_malformed_account_id_rejected.py", "service": "sns"} {"check_id": "sns.add-permission-merges-into-custom-policy", "deployments": [], "key": "sns/add-permission-merges-into-custom-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:RemovePermission", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_add_permission_merges_into_custom_policy.py", "service": "sns"} {"check_id": "sns.add-permission-nonexistent-topic-fails", "deployments": [], "key": "sns/add-permission-nonexistent-topic-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_add_permission_nonexistent_topic_fails.py", "service": "sns"} {"check_id": "sns.authenticate-on-unsubscribe-refuses-the-anonymous-unsubscribe-url", "deployments": [], "key": "sns/authenticate-on-unsubscribe-refuses-the-anonymous-unsubscribe-url", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_authenticate_on_unsubscribe_refuses_the_anonymous_unsubscribe_url.py", "service": "sns"} {"check_id": "sns.authorization-error-explicit-deny-returns-correct-code", "deployments": [], "key": "sns/authorization-error-explicit-deny-returns-correct-code", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sns:GetSMSSandboxAccountStatus"], "path": "behavioral/sns/check_authorization_error_explicit_deny_returns_correct_code.py", "service": "sns"} {"check_id": "sns.check-phone-number-opted-out-invalid-fails", "deployments": [], "key": "sns/check-phone-number-opted-out-invalid-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CheckIfPhoneNumberIsOptedOut"], "path": "behavioral/sns/check_check_phone_number_opted_out_invalid_fails.py", "service": "sns"} {"check_id": "sns.clearing-a-filter-policy-with-an-empty-value-restores-unfiltered-delivery", "deployments": [], "key": "sns/clearing-a-filter-policy-with-an-empty-value-restores-unfiltered-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_clearing_a_filter_policy_with_an_empty_value_restores_unfiltered_delivery.py", "service": "sns"} {"check_id": "sns.concurrent-add-permission-distinct-labels-all-retained", "deployments": [], "key": "sns/concurrent-add-permission-distinct-labels-all-retained", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes"], "path": "behavioral/sns/check_concurrent_add_permission_distinct_labels_all_retained.py", "service": "sns"} {"check_id": "sns.concurrent-create-topic-same-name-converges", "deployments": [], "key": "sns/concurrent-create-topic-same-name-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListTopics"], "path": "behavioral/sns/check_concurrent_create_topic_same_name_converges.py", "service": "sns"} {"check_id": "sns.concurrent-tag-resource-distinct-keys-all-retained", "deployments": [], "key": "sns/concurrent-tag-resource-distinct-keys-all-retained", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource", "sns:TagResource"], "path": "behavioral/sns/check_concurrent_tag_resource_distinct_keys_all_retained.py", "service": "sns"} {"check_id": "sns.confirm-subscription-token-confirms-only-its-own-subscription-whatever-the-topic-arn", "deployments": [], "key": "sns/confirm-subscription-token-confirms-only-its-own-subscription-whatever-the-topic-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_confirm_subscription_token_confirms_only_its_own_subscription_whatever_the_topic_arn.py", "service": "sns"} {"check_id": "sns.confirm-subscription-token-is-reusable-until-unsubscribe-then-not-found", "deployments": [], "key": "sns/confirm-subscription-token-is-reusable-until-unsubscribe-then-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_confirm_subscription_token_is_reusable_until_unsubscribe_then_not_found.py", "service": "sns"} {"check_id": "sns.confirmed-sqs-subscription-attributes-and-listing-agree-field-for-field", "deployments": [], "key": "sns/confirmed-sqs-subscription-attributes-and-listing-agree-field-for-field", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_confirmed_sqs_subscription_attributes_and_listing_agree_field_for_field.py", "service": "sns"} {"check_id": "sns.create-platform-application-unknown-platform-fails", "deployments": [], "key": "sns/create-platform-application-unknown-platform-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreatePlatformApplication", "sns:DeletePlatformApplication", "sns:ListPlatformApplications"], "path": "behavioral/sns/check_create_platform_application_unknown_platform_fails.py", "service": "sns"} {"check_id": "sns.create-platform-endpoint-nonexistent-app-fails", "deployments": [], "key": "sns/create-platform-endpoint-nonexistent-app-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreatePlatformApplication", "sns:CreatePlatformEndpoint", "sns:CreateTopic", "sns:DeleteEndpoint", "sns:DeletePlatformApplication", "sns:DeleteTopic", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_create_platform_endpoint_nonexistent_app_fails.py", "service": "sns"} {"check_id": "sns.create-sms-sandbox-invalid-number-rejected", "deployments": [], "key": "sns/create-sms-sandbox-invalid-number-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateSMSSandboxPhoneNumber", "sns:DeleteSMSSandboxPhoneNumber", "sns:ListSMSSandboxPhoneNumbers"], "path": "behavioral/sns/check_create_sms_sandbox_invalid_number_rejected.py", "service": "sns"} {"check_id": "sns.create-sms-sandbox-unsupported-country-code-rejected", "deployments": [], "key": "sns/create-sms-sandbox-unsupported-country-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateSMSSandboxPhoneNumber", "sns:DeleteSMSSandboxPhoneNumber", "sns:ListSMSSandboxPhoneNumbers"], "path": "behavioral/sns/check_create_sms_sandbox_unsupported_country_code_rejected.py", "service": "sns"} {"check_id": "sns.create-topic-idempotent-and-conflict", "deployments": [], "key": "sns/create-topic-idempotent-and-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes"], "path": "behavioral/sns/check_create_topic_idempotent_and_conflict.py", "service": "sns"} {"check_id": "sns.create-topic-invalid-attribute-creates-nothing", "deployments": [], "key": "sns/create-topic-invalid-attribute-creates-nothing", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes"], "path": "behavioral/sns/check_create_topic_invalid_attribute_creates_nothing.py", "service": "sns"} {"check_id": "sns.create-topic-with-different-tags-rejected", "deployments": [], "key": "sns/create-topic-with-different-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource"], "path": "behavioral/sns/check_create_topic_with_different_tags_rejected.py", "service": "sns"} {"check_id": "sns.cross-region-lambda-subscription-invokes-the-function-in-its-own-region", "deployments": [], "key": "sns/cross-region-lambda-subscription-invokes-the-function-in-its-own-region", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_cross_region_lambda_subscription_invokes_the_function_in_its_own_region.py", "service": "sns"} {"check_id": "sns.cross-region-sqs-subscription-delivers-with-the-topic-region-envelope", "deployments": [], "key": "sns/cross-region-sqs-subscription-delivers-with-the-topic-region-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptions", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_cross_region_sqs_subscription_delivers_with_the_topic_region_envelope.py", "service": "sns"} {"check_id": "sns.custom-attribute-type-labels-and-string-array-survive-both-delivery-modes", "deployments": [], "key": "sns/custom-attribute-type-labels-and-string-array-survive-both-delivery-modes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_custom_attribute_type_labels_and_string_array_survive_both_delivery_modes.py", "service": "sns"} {"check_id": "sns.delete-endpoint-nonexistent-idempotent", "deployments": [], "key": "sns/delete-endpoint-nonexistent-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteEndpoint", "sns:DeleteTopic", "sns:GetEndpointAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_delete_endpoint_nonexistent_idempotent.py", "service": "sns"} {"check_id": "sns.delete-platform-application-nonexistent-idempotent", "deployments": [], "key": "sns/delete-platform-application-nonexistent-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreatePlatformApplication", "sns:CreateTopic", "sns:DeletePlatformApplication", "sns:DeleteTopic", "sns:GetPlatformApplicationAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_delete_platform_application_nonexistent_idempotent.py", "service": "sns"} {"check_id": "sns.delete-topic-cascades-subscriptions", "deployments": [], "key": "sns/delete-topic-cascades-subscriptions", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_delete_topic_cascades_subscriptions.py", "service": "sns"} {"check_id": "sns.delete-topic-then-recreate-starts-fresh", "deployments": [], "key": "sns/delete-topic-then-recreate-starts-fresh", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:ListTagsForResource", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_delete_topic_then_recreate_starts_fresh.py", "service": "sns"} {"check_id": "sns.deleted-endpoint-queue-dead-letters-each-subscription-in-its-own-format", "deployments": [], "key": "sns/deleted-endpoint-queue-dead-letters-each-subscription-in-its-own-format", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_deleted_endpoint_queue_dead_letters_each_subscription_in_its_own_format.py", "service": "sns"} {"check_id": "sns.deploy-cfn-fifo-topic-delivers-in-order-and-deduplicates-by-content", "deployments": [], "key": "sns/deploy-cfn-fifo-topic-delivers-in-order-and-deduplicates-by-content", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:GetTopicAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_deploy_cfn_fifo_topic_delivers_in_order_and_deduplicates_by_content.py", "service": "sns"} {"check_id": "sns.deploy-cfn-kms-encrypted-topic-and-queue-deliver-plaintext", "deployments": [], "key": "sns/deploy-cfn-kms-encrypted-topic-and-queue-deliver-plaintext", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:DescribeKey", "sns:GetTopicAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_deploy_cfn_kms_encrypted_topic_and_queue_deliver_plaintext.py", "service": "sns"} {"check_id": "sns.deploy-cfn-removing-a-topic-inline-policy-restores-the-default-policy", "deployments": [], "key": "sns/deploy-cfn-removing-a-topic-inline-policy-restores-the-default-policy", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:GetTopicAttributes", "sns:Publish", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_deploy_cfn_removing_a_topic_inline_policy_restores_the_default_policy.py", "service": "sns"} {"check_id": "sns.deploy-cfn-stack-update-changes-a-filter-policy-in-place", "deployments": [], "key": "sns/deploy-cfn-stack-update-changes-a-filter-policy-in-place", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:GetSubscriptionAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_deploy_cfn_stack_update_changes_a_filter_policy_in_place.py", "service": "sns"} {"check_id": "sns.deploy-cfn-subscription-filter-policy-behaves", "deployments": [], "key": "sns/deploy-cfn-subscription-filter-policy-behaves", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:GetSubscriptionAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_deploy_cfn_subscription_filter_policy_behaves.py", "service": "sns"} {"check_id": "sns.deploy-cfn-subscription-redrive-policy-dead-letters-an-undeliverable-message", "deployments": [], "key": "sns/deploy-cfn-subscription-redrive-policy-dead-letters-an-undeliverable-message", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:GetSubscriptionAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_deploy_cfn_subscription_redrive_policy_dead_letters_an_undeliverable_message.py", "service": "sns"} {"check_id": "sns.deploy-cfn-topic-policy-authorizes-only-the-named-role-and-follows-updates", "deployments": [], "key": "sns/deploy-cfn-topic-policy-authorizes-only-the-named-role-and-follows-updates", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_deploy_cfn_topic_policy_authorizes_only_the_named_role_and_follows_updates.py", "service": "sns"} {"check_id": "sns.deploy-cfn-topic-publish-subscribe-flow", "deployments": [], "key": "sns/deploy-cfn-topic-publish-subscribe-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sns:GetTopicAttributes", "sns:Publish", "sqs:DeleteMessage", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_deploy_cfn_topic_publish_subscribe_flow.py", "service": "sns"} {"check_id": "sns.display-name-over-100-characters-rejected", "deployments": [], "key": "sns/display-name-over-100-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_display_name_over_100_characters_rejected.py", "service": "sns"} {"check_id": "sns.e2e-topic-fanout-filter-teardown-flow", "deployments": [], "key": "sns/e2e-topic-fanout-filter-teardown-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_e2e_topic_fanout_filter_teardown_flow.py", "service": "sns"} {"check_id": "sns.email-subscription-confirmation-state-attributes", "deployments": [], "key": "sns/email-subscription-confirmation-state-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_email_subscription_confirmation_state_attributes.py", "service": "sns"} {"check_id": "sns.empty-vs-absent-message-attribute-rejected", "deployments": [], "key": "sns/empty-vs-absent-message-attribute-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_empty_vs_absent_message_attribute_rejected.py", "service": "sns"} {"check_id": "sns.encrypted-topic-whose-key-policy-withholds-usage-refuses-publish", "deployments": [], "key": "sns/encrypted-topic-whose-key-policy-withholds-usage-refuses-publish", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:DescribeKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_encrypted_topic_whose_key_policy_withholds_usage_refuses_publish.py", "service": "sns"} {"check_id": "sns.feedback-role-without-logs-permission-still-delivers-and-writes-no-log-record", "deployments": [], "key": "sns/feedback-role-without-logs-permission-still-delivers-and-writes-no-log-record", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_feedback_role_without_logs_permission_still_delivers_and_writes_no_log_record.py", "service": "sns"} {"check_id": "sns.fifo-archive-replay-redelivers-archived-messages-to-a-new-subscription", "deployments": [], "key": "sns/fifo-archive-replay-redelivers-archived-messages-to-a-new-subscription", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_archive_replay_redelivers_archived_messages_to_a_new_subscription.py", "service": "sns"} {"check_id": "sns.fifo-concurrent-duplicate-publish-dedup", "deployments": [], "key": "sns/fifo-concurrent-duplicate-publish-dedup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_concurrent_duplicate_publish_dedup.py", "service": "sns"} {"check_id": "sns.fifo-concurrent-publishers-across-many-groups-keep-each-group-in-order", "deployments": [], "key": "sns/fifo-concurrent-publishers-across-many-groups-keep-each-group-in-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_concurrent_publishers_across_many_groups_keep_each_group_in_order.py", "service": "sns"} {"check_id": "sns.fifo-deduplication-collapses-duplicate-publish", "deployments": [], "key": "sns/fifo-deduplication-collapses-duplicate-publish", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_deduplication_collapses_duplicate_publish.py", "service": "sns"} {"check_id": "sns.fifo-delivery-preserves-order-per-group-and-carries-the-group-id", "deployments": [], "key": "sns/fifo-delivery-preserves-order-per-group-and-carries-the-group-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_delivery_preserves_order_per_group_and_carries_the_group_id.py", "service": "sns"} {"check_id": "sns.fifo-message-group-and-deduplication-ids-over-128-characters-rejected", "deployments": [], "key": "sns/fifo-message-group-and-deduplication-ids-over-128-characters-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_message_group_and_deduplication_ids_over_128_characters_rejected.py", "service": "sns"} {"check_id": "sns.fifo-message-group-dedup-scope-holds-per-group-under-concurrent-publishers", "deployments": [], "key": "sns/fifo-message-group-dedup-scope-holds-per-group-under-concurrent-publishers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_message_group_dedup_scope_holds_per_group_under_concurrent_publishers.py", "service": "sns"} {"check_id": "sns.fifo-message-group-id-validation", "deployments": [], "key": "sns/fifo-message-group-id-validation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_message_group_id_validation.py", "service": "sns"} {"check_id": "sns.fifo-publish-without-a-message-group-id-rejected-a-grouped-publish-delivers", "deployments": [], "key": "sns/fifo-publish-without-a-message-group-id-rejected-a-grouped-publish-delivers", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_publish_without_a_message_group_id_rejected_a_grouped_publish_delivers.py", "service": "sns"} {"check_id": "sns.fifo-sequence-numbers-monotonic-within-group", "deployments": [], "key": "sns/fifo-sequence-numbers-monotonic-within-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_sequence_numbers_monotonic_within_group.py", "service": "sns"} {"check_id": "sns.fifo-subscription-redrive-requires-a-fifo-dlq-and-dead-letters-into-it", "deployments": [], "key": "sns/fifo-subscription-redrive-requires-a-fifo-dlq-and-dead-letters-into-it", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_subscription_redrive_requires_a_fifo_dlq_and_dead_letters_into_it.py", "service": "sns"} {"check_id": "sns.fifo-throughput-scope-message-group-narrows-the-deduplication-scope", "deployments": [], "key": "sns/fifo-throughput-scope-message-group-narrows-the-deduplication-scope", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_throughput_scope_message_group_narrows_the_deduplication_scope.py", "service": "sns"} {"check_id": "sns.fifo-throughput-scope-on-a-standard-topic-or-an-unknown-value-rejected", "deployments": [], "key": "sns/fifo-throughput-scope-on-a-standard-topic-or-an-unknown-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_fifo_throughput_scope_on_a_standard_topic_or_an_unknown_value_rejected.py", "service": "sns"} {"check_id": "sns.fifo-topic-accepts-both-queue-types", "deployments": [], "key": "sns/fifo-topic-accepts-both-queue-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_topic_accepts_both_queue_types.py", "service": "sns"} {"check_id": "sns.fifo-topic-attributes-roundtrip", "deployments": [], "key": "sns/fifo-topic-attributes-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_fifo_topic_attributes_roundtrip.py", "service": "sns"} {"check_id": "sns.fifo-topic-fans-filtered-messages-to-fifo-queues-in-group-order-and-the-deleted-topic-refuses-publish", "deployments": [], "key": "sns/fifo-topic-fans-filtered-messages-to-fifo-queues-in-group-order-and-the-deleted-topic-refuses-publish", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_topic_fans_filtered_messages_to_fifo_queues_in_group_order_and_the_deleted_topic_refuses_publish.py", "service": "sns"} {"check_id": "sns.fifo-topic-name-suffix-required", "deployments": [], "key": "sns/fifo-topic-name-suffix-required", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTopics"], "path": "behavioral/sns/check_fifo_topic_name_suffix_required.py", "service": "sns"} {"check_id": "sns.fifo-topic-ordering-delivery", "deployments": [], "key": "sns/fifo-topic-ordering-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_topic_ordering_delivery.py", "service": "sns"} {"check_id": "sns.fifo-topic-preserves-publish-order-and-deduplicates-by-id", "deployments": [], "key": "sns/fifo-topic-preserves-publish-order-and-deduplicates-by-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_fifo_topic_preserves_publish_order_and_deduplicates_by_id.py", "service": "sns"} {"check_id": "sns.fifo-topic-rejects-email-protocol", "deployments": [], "key": "sns/fifo-topic-rejects-email-protocol", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_fifo_topic_rejects_email_protocol.py", "service": "sns"} {"check_id": "sns.filter-policy-cidr-matches-ip-address-attributes", "deployments": [], "key": "sns/filter-policy-cidr-matches-ip-address-attributes", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_cidr_matches_ip_address_attributes.py", "service": "sns"} {"check_id": "sns.filter-policy-exists-false-and-anything-but-decide-delivery", "deployments": [], "key": "sns/filter-policy-exists-false-and-anything-but-decide-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_exists_false_and_anything_but_decide_delivery.py", "service": "sns"} {"check_id": "sns.filter-policy-message-body-scope-cidr-and-or-conjunction-decide-delivery", "deployments": [], "key": "sns/filter-policy-message-body-scope-cidr-and-or-conjunction-decide-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_message_body_scope_cidr_and_or_conjunction_decide_delivery.py", "service": "sns"} {"check_id": "sns.filter-policy-message-body-scope-counts-nested-leaf-keys-toward-the-key-limit", "deployments": [], "key": "sns/filter-policy-message-body-scope-counts-nested-leaf-keys-toward-the-key-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_filter_policy_message_body_scope_counts_nested_leaf_keys_toward_the_key_limit.py", "service": "sns"} {"check_id": "sns.filter-policy-message-body-scope-matches-array-members-and-withholds-non-json", "deployments": [], "key": "sns/filter-policy-message-body-scope-matches-array-members-and-withholds-non-json", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_message_body_scope_matches_array_members_and_withholds_non_json.py", "service": "sns"} {"check_id": "sns.filter-policy-message-body-scope-numeric-exists-and-anything-but-decide-delivery", "deployments": [], "key": "sns/filter-policy-message-body-scope-numeric-exists-and-anything-but-decide-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_message_body_scope_numeric_exists_and_anything_but_decide_delivery.py", "service": "sns"} {"check_id": "sns.filter-policy-numeric-operator-boundary-decides-delivery", "deployments": [], "key": "sns/filter-policy-numeric-operator-boundary-decides-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_numeric_operator_boundary_decides_delivery.py", "service": "sns"} {"check_id": "sns.filter-policy-numeric-operator-ignores-a-string-typed-attribute", "deployments": [], "key": "sns/filter-policy-numeric-operator-ignores-a-string-typed-attribute", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_numeric_operator_ignores_a_string_typed_attribute.py", "service": "sns"} {"check_id": "sns.filter-policy-operator-vocabulary-round-trip", "deployments": [], "key": "sns/filter-policy-operator-vocabulary-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_filter_policy_operator_vocabulary_round_trip.py", "service": "sns"} {"check_id": "sns.filter-policy-or-and-cross-key-conjunction-decide-delivery", "deployments": [], "key": "sns/filter-policy-or-and-cross-key-conjunction-decide-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_or_and_cross_key_conjunction_decide_delivery.py", "service": "sns"} {"check_id": "sns.filter-policy-over-150-value-combinations-rejected", "deployments": [], "key": "sns/filter-policy-over-150-value-combinations-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_filter_policy_over_150_value_combinations_rejected.py", "service": "sns"} {"check_id": "sns.filter-policy-scope-constrains-policy-shape", "deployments": [], "key": "sns/filter-policy-scope-constrains-policy-shape", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_filter_policy_scope_constrains_policy_shape.py", "service": "sns"} {"check_id": "sns.filter-policy-scope-set-without-a-policy-is-hidden-until-a-policy-is-set", "deployments": [], "key": "sns/filter-policy-scope-set-without-a-policy-is-hidden-until-a-policy-is-set", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_scope_set_without_a_policy_is_hidden_until_a_policy_is_set.py", "service": "sns"} {"check_id": "sns.filter-policy-scope-switch-away-from-message-body-rejected-while-policy-is-nested", "deployments": [], "key": "sns/filter-policy-scope-switch-away-from-message-body-rejected-while-policy-is-nested", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_filter_policy_scope_switch_away_from_message_body_rejected_while_policy_is_nested.py", "service": "sns"} {"check_id": "sns.filter-policy-scope-switch-on-a-live-subscription-reroutes-delivery", "deployments": [], "key": "sns/filter-policy-scope-switch-on-a-live-subscription-reroutes-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_scope_switch_on_a_live_subscription_reroutes_delivery.py", "service": "sns"} {"check_id": "sns.filter-policy-scopes-delivery-and-lifting-it-restores-delivery", "deployments": [], "key": "sns/filter-policy-scopes-delivery-and-lifting-it-restores-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_scopes_delivery_and_lifting_it_restores_delivery.py", "service": "sns"} {"check_id": "sns.filter-policy-string-operators-decide-delivery", "deployments": [], "key": "sns/filter-policy-string-operators-decide-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filter_policy_string_operators_decide_delivery.py", "service": "sns"} {"check_id": "sns.filter-policy-unknown-operator-rejected", "deployments": [], "key": "sns/filter-policy-unknown-operator-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_filter_policy_unknown_operator_rejected.py", "service": "sns"} {"check_id": "sns.filtered-out-message-is-not-dead-lettered-for-a-deleted-endpoint", "deployments": [], "key": "sns/filtered-out-message-is-not-dead-lettered-for-a-deleted-endpoint", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_filtered_out_message_is_not_dead_lettered_for_a_deleted_endpoint.py", "service": "sns"} {"check_id": "sns.firehose-raw-subscription-writes-the-bare-message-bodies", "deployments": [], "key": "sns/firehose-raw-subscription-writes-the-bare-message-bodies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sts:AssumeRole"], "path": "behavioral/sns/check_firehose_raw_subscription_writes_the_bare_message_bodies.py", "service": "sns"} {"check_id": "sns.firehose-subscribe-without-a-subscription-role-rejected", "deployments": [], "key": "sns/firehose-subscribe-without-a-subscription-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe", "sts:AssumeRole"], "path": "behavioral/sns/check_firehose_subscribe_without_a_subscription_role_rejected.py", "service": "sns"} {"check_id": "sns.firehose-subscription-role-without-put-record-dead-letters-until-granted", "deployments": [], "key": "sns/firehose-subscription-role-without-put-record-dead-letters-until-granted", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole"], "path": "behavioral/sns/check_firehose_subscription_role_without_put_record_dead_letters_until_granted.py", "service": "sns"} {"check_id": "sns.firehose-subscription-writes-each-notification-envelope-into-the-stream-bucket", "deployments": [], "key": "sns/firehose-subscription-writes-each-notification-envelope-into-the-stream-bucket", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sts:AssumeRole"], "path": "behavioral/sns/check_firehose_subscription_writes_each_notification_envelope_into_the_stream_bucket.py", "service": "sns"} {"check_id": "sns.get-endpoint-attributes-not-found", "deployments": [], "key": "sns/get-endpoint-attributes-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreatePlatformApplication", "sns:DeletePlatformApplication", "sns:GetEndpointAttributes", "sns:GetPlatformApplicationAttributes"], "path": "behavioral/sns/check_get_endpoint_attributes_not_found.py", "service": "sns"} {"check_id": "sns.get-sms-attributes-unknown-name-rejected", "deployments": [], "key": "sns/get-sms-attributes-unknown-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:GetSMSAttributes"], "path": "behavioral/sns/check_get_sms_attributes_unknown_name_rejected.py", "service": "sns"} {"check_id": "sns.get-topic-attributes-malformed-arn-rejected", "deployments": [], "key": "sns/get-topic-attributes-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes"], "path": "behavioral/sns/check_get_topic_attributes_malformed_arn_rejected.py", "service": "sns"} {"check_id": "sns.https-endpoint-failing-with-500-is-retried-then-dead-lettered", "deployments": [], "key": "sns/https-endpoint-failing-with-500-is-retried-then-dead-lettered", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_https_endpoint_failing_with_500_is_retried_then_dead_lettered.py", "service": "sns"} {"check_id": "sns.https-raw-message-delivery-posts-the-bare-body-with-the-rawdelivery-header", "deployments": [], "key": "sns/https-raw-message-delivery-posts-the-bare-body-with-the-rawdelivery-header", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_https_raw_message_delivery_posts_the_bare_body_with_the_rawdelivery_header.py", "service": "sns"} {"check_id": "sns.https-subscription-receives-nothing-until-confirmed-then-gets-the-notification", "deployments": [], "key": "sns/https-subscription-receives-nothing-until-confirmed-then-gets-the-notification", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_https_subscription_receives_nothing_until_confirmed_then_gets_the_notification.py", "service": "sns"} {"check_id": "sns.https-subscription-with-a-zero-retry-delivery-policy-attempts-a-failing-notification-exactly-once", "deployments": [], "key": "sns/https-subscription-with-a-zero-retry-delivery-policy-attempts-a-failing-notification-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_https_subscription_with_a_zero_retry_delivery_policy_attempts_a_failing_notification_exactly_once.py", "service": "sns"} {"check_id": "sns.lambda-feedback-roles-log-the-invocation-delivery-record-and-the-uninvokable-function-failure", "deployments": [], "key": "sns/lambda-feedback-roles-log-the-invocation-delivery-record-and-the-uninvokable-function-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe"], "path": "behavioral/sns/check_lambda_feedback_roles_log_the_invocation_delivery_record_and_the_uninvokable_function_failure.py", "service": "sns"} {"check_id": "sns.lambda-function-error-is-retried-by-lambda-and-never-dead-lettered-by-sns", "deployments": [], "key": "sns/lambda-function-error-is-retried-by-lambda-and-never-dead-lettered-by-sns", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:PutFunctionEventInvokeConfig", "lambda:UpdateFunctionConfiguration", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_lambda_function_error_is_retried_by_lambda_and_never_dead_lettered_by_sns.py", "service": "sns"} {"check_id": "sns.lambda-subscription-invocation-carries-the-sns-records-envelope", "deployments": [], "key": "sns/lambda-subscription-invocation-carries-the-sns-records-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage"], "path": "behavioral/sns/check_lambda_subscription_invocation_carries_the_sns_records_envelope.py", "service": "sns"} {"check_id": "sns.lambda-subscription-the-function-refuses-to-sns-dead-letters-into-the-subscription-dlq", "deployments": [], "key": "sns/lambda-subscription-the-function-refuses-to-sns-dead-letters-into-the-subscription-dlq", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_lambda_subscription_the_function_refuses_to_sns_dead_letters_into_the_subscription_dlq.py", "service": "sns"} {"check_id": "sns.list-endpoints-by-nonexistent-application-fails", "deployments": [], "key": "sns/list-endpoints-by-nonexistent-application-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListEndpointsByPlatformApplication", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_list_endpoints_by_nonexistent_application_fails.py", "service": "sns"} {"check_id": "sns.list-platform-applications-invalid-next-token-rejected", "deployments": [], "key": "sns/list-platform-applications-invalid-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:ListPlatformApplications"], "path": "behavioral/sns/check_list_platform_applications_invalid_next_token_rejected.py", "service": "sns"} {"check_id": "sns.list-sms-sandbox-phone-numbers-max-results-over-limit-rejected", "deployments": [], "key": "sns/list-sms-sandbox-phone-numbers-max-results-over-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:ListSMSSandboxPhoneNumbers"], "path": "behavioral/sns/check_list_sms_sandbox_phone_numbers_max_results_over_limit_rejected.py", "service": "sns"} {"check_id": "sns.list-subscriptions-by-topic-pagination-exactness", "deployments": [], "key": "sns/list-subscriptions-by-topic-pagination-exactness", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe"], "path": "behavioral/sns/check_list_subscriptions_by_topic_pagination_exactness.py", "service": "sns"} {"check_id": "sns.list-subscriptions-by-topic-reflects-state", "deployments": [], "key": "sns/list-subscriptions-by-topic-reflects-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_list_subscriptions_by_topic_reflects_state.py", "service": "sns"} {"check_id": "sns.list-subscriptions-pages-every-subscription-exactly-once", "deployments": [], "key": "sns/list-subscriptions-pages-every-subscription-exactly-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptions", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_list_subscriptions_pages_every_subscription_exactly_once.py", "service": "sns"} {"check_id": "sns.list-subscriptions-paginates-and-drops-unsubscribed", "deployments": [], "key": "sns/list-subscriptions-paginates-and-drops-unsubscribed", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptions", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_list_subscriptions_paginates_and_drops_unsubscribed.py", "service": "sns"} {"check_id": "sns.list-tags-for-nonexistent-topic-fails", "deployments": [], "key": "sns/list-tags-for-nonexistent-topic-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource"], "path": "behavioral/sns/check_list_tags_for_nonexistent_topic_fails.py", "service": "sns"} {"check_id": "sns.list-topics-and-subscriptions-forged-next-token-rejected", "deployments": [], "key": "sns/list-topics-and-subscriptions-forged-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptions", "sns:ListTopics", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_list_topics_and_subscriptions_forged_next_token_rejected.py", "service": "sns"} {"check_id": "sns.list-topics-paginates-every-created-topic-exactly-once", "deployments": [], "key": "sns/list-topics-paginates-every-created-topic-exactly-once", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTopics"], "path": "behavioral/sns/check_list_topics_paginates_every_created_topic_exactly_once.py", "service": "sns"} {"check_id": "sns.message-attribute-name-length-and-period-rules-rejected", "deployments": [], "key": "sns/message-attribute-name-length-and-period-rules-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_message_attribute_name_length_and_period_rules_rejected.py", "service": "sns"} {"check_id": "sns.message-attribute-value-in-the-wrong-field-for-its-data-type-rejected", "deployments": [], "key": "sns/message-attribute-value-in-the-wrong-field-for-its-data-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_message_attribute_value_in_the_wrong_field_for_its_data_type_rejected.py", "service": "sns"} {"check_id": "sns.message-attributes-survive-delivery-byte-for-byte", "deployments": [], "key": "sns/message-attributes-survive-delivery-byte-for-byte", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_message_attributes_survive_delivery_byte_for_byte.py", "service": "sns"} {"check_id": "sns.message-structure-json-selects-the-protocol-body-and-falls-back-to-default", "deployments": [], "key": "sns/message-structure-json-selects-the-protocol-body-and-falls-back-to-default", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_message_structure_json_selects_the_protocol_body_and_falls_back_to_default.py", "service": "sns"} {"check_id": "sns.message-structure-json-stringifies-scalar-branches-and-ignores-object-branches", "deployments": [], "key": "sns/message-structure-json-stringifies-scalar-branches-and-ignores-object-branches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_message_structure_json_stringifies_scalar_branches_and_ignores_object_branches.py", "service": "sns"} {"check_id": "sns.notification-signature-verifies-against-the-signing-certificate", "deployments": [], "key": "sns/notification-signature-verifies-against-the-signing-certificate", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_notification_signature_verifies_against_the_signing_certificate.py", "service": "sns"} {"check_id": "sns.number-attribute-beyond-the-precision-or-scale-bounds-rejected", "deployments": [], "key": "sns/number-attribute-beyond-the-precision-or-scale-bounds-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_number_attribute_beyond_the_precision_or_scale_bounds_rejected.py", "service": "sns"} {"check_id": "sns.op-confirm-subscription-invalid-token-rejected", "deployments": [], "key": "sns/op-confirm-subscription-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic"], "path": "behavioral/sns/check_op_confirm_subscription_invalid_token_rejected.py", "service": "sns"} {"check_id": "sns.op-create-topic-invalid-name-rejected", "deployments": [], "key": "sns/op-create-topic-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListTopics"], "path": "behavioral/sns/check_op_create_topic_invalid_name_rejected.py", "service": "sns"} {"check_id": "sns.op-set-subscription-attributes-filter-policy-roundtrip", "deployments": [], "key": "sns/op-set-subscription-attributes-filter-policy-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_op_set_subscription_attributes_filter_policy_roundtrip.py", "service": "sns"} {"check_id": "sns.op-set-subscription-attributes-invalid-name-rejected", "deployments": [], "key": "sns/op-set-subscription-attributes-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_op_set_subscription_attributes_invalid_name_rejected.py", "service": "sns"} {"check_id": "sns.op-topic-attribute-defaults-and-effective-delivery-policy", "deployments": [], "key": "sns/op-topic-attribute-defaults-and-effective-delivery-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_op_topic_attribute_defaults_and_effective_delivery_policy.py", "service": "sns"} {"check_id": "sns.opt-in-phone-number-invalid-rejected", "deployments": [], "key": "sns/opt-in-phone-number-invalid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CheckIfPhoneNumberIsOptedOut", "sns:ListPhoneNumbersOptedOut", "sns:OptInPhoneNumber"], "path": "behavioral/sns/check_opt_in_phone_number_invalid_rejected.py", "service": "sns"} {"check_id": "sns.overlapping-filters-fan-one-message-to-every-matching-queue-and-the-deleted-topic-refuses-publish-and-listing", "deployments": [], "key": "sns/overlapping-filters-fan-one-message-to-every-matching-queue-and-the-deleted-topic-refuses-publish-and-listing", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_overlapping_filters_fan_one_message_to_every_matching_queue_and_the_deleted_topic_refuses_publish_and_listing.py", "service": "sns"} {"check_id": "sns.pending-subscription-arn-placeholder-not-resolvable", "deployments": [], "key": "sns/pending-subscription-arn-placeholder-not-resolvable", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_pending_subscription_arn_placeholder_not_resolvable.py", "service": "sns"} {"check_id": "sns.phone-number-opt-out-state", "deployments": [], "key": "sns/phone-number-opt-out-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CheckIfPhoneNumberIsOptedOut", "sns:ListPhoneNumbersOptedOut"], "path": "behavioral/sns/check_phone_number_opt_out_state.py", "service": "sns"} {"check_id": "sns.platform-application-bogus-credential-rejected", "deployments": [], "key": "sns/platform-application-bogus-credential-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreatePlatformApplication", "sns:DeletePlatformApplication", "sns:GetPlatformApplicationAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_platform_application_bogus_credential_rejected.py", "service": "sns"} {"check_id": "sns.platform-application-custom-attribute-round-trip", "deployments": [], "key": "sns/platform-application-custom-attribute-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreatePlatformApplication", "sns:DeletePlatformApplication", "sns:GetPlatformApplicationAttributes", "sns:SetPlatformApplicationAttributes"], "path": "behavioral/sns/check_platform_application_custom_attribute_round_trip.py", "service": "sns"} {"check_id": "sns.platform-application-not-found", "deployments": [], "key": "sns/platform-application-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetPlatformApplicationAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_platform_application_not_found.py", "service": "sns"} {"check_id": "sns.publish-batch-aggregate-size-at-the-exact-262144-byte-boundary", "deployments": [], "key": "sns/publish-batch-aggregate-size-at-the-exact-262144-byte-boundary", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_aggregate_size_at_the_exact_262144_byte_boundary.py", "service": "sns"} {"check_id": "sns.publish-batch-content-based-dedup-collapses-duplicate-bodies-in-one-call", "deployments": [], "key": "sns/publish-batch-content-based-dedup-collapses-duplicate-bodies-in-one-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_content_based_dedup_collapses_duplicate_bodies_in_one_call.py", "service": "sns"} {"check_id": "sns.publish-batch-duplicate-ids-rejected", "deployments": [], "key": "sns/publish-batch-duplicate-ids-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_duplicate_ids_rejected.py", "service": "sns"} {"check_id": "sns.publish-batch-empty-fails", "deployments": [], "key": "sns/publish-batch-empty-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:PublishBatch"], "path": "behavioral/sns/check_publish_batch_empty_fails.py", "service": "sns"} {"check_id": "sns.publish-batch-entry-group-or-dedup-id-over-128-characters-rejects-the-whole-batch", "deployments": [], "key": "sns/publish-batch-entry-group-or-dedup-id-over-128-characters-rejects-the-whole-batch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_entry_group_or_dedup_id_over_128_characters_rejects_the_whole_batch.py", "service": "sns"} {"check_id": "sns.publish-batch-entry-id-over-80-characters-or-with-invalid-characters-rejected", "deployments": [], "key": "sns/publish-batch-entry-id-over-80-characters-or-with-invalid-characters-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_entry_id_over_80_characters_or_with_invalid_characters_rejected.py", "service": "sns"} {"check_id": "sns.publish-batch-fifo-orders-entries-and-dedups-across-batches", "deployments": [], "key": "sns/publish-batch-fifo-orders-entries-and-dedups-across-batches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_fifo_orders_entries_and_dedups_across_batches.py", "service": "sns"} {"check_id": "sns.publish-batch-filter-policy-is-evaluated-per-entry", "deployments": [], "key": "sns/publish-batch-filter-policy-is-evaluated-per-entry", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_filter_policy_is_evaluated_per_entry.py", "service": "sns"} {"check_id": "sns.publish-batch-one-call-two-message-groups-each-keeps-its-own-order", "deployments": [], "key": "sns/publish-batch-one-call-two-message-groups-each-keeps-its-own-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_one_call_two_message_groups_each_keeps_its_own_order.py", "service": "sns"} {"check_id": "sns.publish-batch-one-invalid-fifo-entry-rejected-and-no-sibling-delivered", "deployments": [], "key": "sns/publish-batch-one-invalid-fifo-entry-rejected-and-no-sibling-delivered", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_one_invalid_fifo_entry_rejected_and_no_sibling_delivered.py", "service": "sns"} {"check_id": "sns.publish-batch-success-delivery", "deployments": [], "key": "sns/publish-batch-success-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sqs:TagQueue"], "path": "behavioral/sns/check_publish_batch_success_delivery.py", "service": "sns"} {"check_id": "sns.publish-batch-to-a-deleted-topic-not-found", "deployments": [], "key": "sns/publish-batch-to-a-deleted-topic-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_to_a_deleted_topic_not_found.py", "service": "sns"} {"check_id": "sns.publish-batch-too-long-in-aggregate-rejected-and-nothing-delivered", "deployments": [], "key": "sns/publish-batch-too-long-in-aggregate-rejected-and-nothing-delivered", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_too_long_in_aggregate_rejected_and_nothing_delivered.py", "service": "sns"} {"check_id": "sns.publish-batch-too-many-entries-rejected", "deployments": [], "key": "sns/publish-batch-too-many-entries-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_too_many_entries_rejected.py", "service": "sns"} {"check_id": "sns.publish-batch-validation-is-request-level", "deployments": [], "key": "sns/publish-batch-validation-is-request-level", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_batch_validation_is_request_level.py", "service": "sns"} {"check_id": "sns.publish-binary-message-attribute-byte-preserved", "deployments": [], "key": "sns/publish-binary-message-attribute-byte-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_binary_message_attribute_byte_preserved.py", "service": "sns"} {"check_id": "sns.publish-by-target-arn-naming-a-topic-delivers-like-topic-arn", "deployments": [], "key": "sns/publish-by-target-arn-naming-a-topic-delivers-like-topic-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_by_target_arn_naming_a_topic_delivers_like_topic_arn.py", "service": "sns"} {"check_id": "sns.publish-delivers-json-envelope-to-sqs", "deployments": [], "key": "sns/publish-delivers-json-envelope-to-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_delivers_json_envelope_to_sqs.py", "service": "sns"} {"check_id": "sns.publish-empty-message-fails", "deployments": [], "key": "sns/publish-empty-message-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish"], "path": "behavioral/sns/check_publish_empty_message_fails.py", "service": "sns"} {"check_id": "sns.publish-message-size-limit-enforced", "deployments": [], "key": "sns/publish-message-size-limit-enforced", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish"], "path": "behavioral/sns/check_publish_message_size_limit_enforced.py", "service": "sns"} {"check_id": "sns.publish-message-structure-json-semantics", "deployments": [], "key": "sns/publish-message-structure-json-semantics", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_message_structure_json_semantics.py", "service": "sns"} {"check_id": "sns.publish-non-bmp-message-attribute-value-rejected", "deployments": [], "key": "sns/publish-non-bmp-message-attribute-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_non_bmp_message_attribute_value_rejected.py", "service": "sns"} {"check_id": "sns.publish-of-exactly-256-kib-delivered-intact-and-one-byte-more-rejected", "deployments": [], "key": "sns/publish-of-exactly-256-kib-delivered-intact-and-one-byte-more-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_of_exactly_256_kib_delivered_intact_and_one_byte_more_rejected.py", "service": "sns"} {"check_id": "sns.publish-size-counts-attribute-name-type-and-value-but-not-the-subject", "deployments": [], "key": "sns/publish-size-counts-attribute-name-type-and-value-but-not-the-subject", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_size_counts_attribute_name_type_and_value_but_not_the_subject.py", "service": "sns"} {"check_id": "sns.publish-size-limit-counts-message-attributes", "deployments": [], "key": "sns/publish-size-limit-counts-message-attributes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish"], "path": "behavioral/sns/check_publish_size_limit_counts_message_attributes.py", "service": "sns"} {"check_id": "sns.publish-still-delivers-to-siblings-when-a-subscribed-queue-is-deleted", "deployments": [], "key": "sns/publish-still-delivers-to-siblings-when-a-subscribed-queue-is-deleted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_still_delivers_to_siblings_when_a_subscribed_queue_is_deleted.py", "service": "sns"} {"check_id": "sns.publish-to-deleted-topic-not-found", "deployments": [], "key": "sns/publish-to-deleted-topic-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListTopics", "sns:Publish"], "path": "behavioral/sns/check_publish_to_deleted_topic_not_found.py", "service": "sns"} {"check_id": "sns.publish-to-topic-whose-key-is-pending-deletion-fails-kms-invalid-state", "deployments": [], "key": "sns/publish-to-topic-whose-key-is-pending-deletion-fails-kms-invalid-state", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["kms:CancelKeyDeletion", "kms:CreateKey", "kms:DescribeKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish"], "path": "behavioral/sns/check_publish_to_topic_whose_key_is_pending_deletion_fails_kms_invalid_state.py", "service": "sns"} {"check_id": "sns.publish-unicode-body-preserved", "deployments": [], "key": "sns/publish-unicode-body-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_unicode_body_preserved.py", "service": "sns"} {"check_id": "sns.publish-with-a-reserved-attribute-name-prefix-rejected", "deployments": [], "key": "sns/publish-with-a-reserved-attribute-name-prefix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_with_a_reserved_attribute_name_prefix_rejected.py", "service": "sns"} {"check_id": "sns.publish-without-target-fails", "deployments": [], "key": "sns/publish-without-target-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_publish_without_target_fails.py", "service": "sns"} {"check_id": "sns.queue-policy-source-account-condition-decides-delivery", "deployments": [], "key": "sns/queue-policy-source-account-condition-decides-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_queue_policy_source_account_condition_decides_delivery.py", "service": "sns"} {"check_id": "sns.queue-policy-source-arn-of-another-topic-withholds-delivery", "deployments": [], "key": "sns/queue-policy-source-arn-of-another-topic-withholds-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_queue_policy_source_arn_of_another_topic_withholds_delivery.py", "service": "sns"} {"check_id": "sns.raw-delivery-normalises-number-attributes-the-envelope-carries-verbatim", "deployments": [], "key": "sns/raw-delivery-normalises-number-attributes-the-envelope-carries-verbatim", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_raw_delivery_normalises_number_attributes_the_envelope_carries_verbatim.py", "service": "sns"} {"check_id": "sns.raw-delivery-to-sqs-drops-a-message-with-more-than-ten-attributes", "deployments": [], "key": "sns/raw-delivery-to-sqs-drops-a-message-with-more-than-ten-attributes", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_raw_delivery_to_sqs_drops_a_message_with_more_than_ten_attributes.py", "service": "sns"} {"check_id": "sns.raw-delivery-toggle-on-a-live-subscription-switches-the-delivered-format", "deployments": [], "key": "sns/raw-delivery-toggle-on-a-live-subscription-switches-the-delivered-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_raw_delivery_toggle_on_a_live_subscription_switches_the_delivered_format.py", "service": "sns"} {"check_id": "sns.raw-message-delivery-drops-message-attributes-for-an-https-subscriber-but-keeps-them-for-sqs", "deployments": [], "key": "sns/raw-message-delivery-drops-message-attributes-for-an-https-subscriber-but-keeps-them-for-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:CreateFunctionUrlConfig", "lambda:DeleteFunction", "lambda:DeleteFunctionUrlConfig", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:UpdateFunctionConfiguration", "sns:ConfirmSubscription", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_raw_message_delivery_drops_message_attributes_for_an_https_subscriber_but_keeps_them_for_sqs.py", "service": "sns"} {"check_id": "sns.raw-message-delivery-flag-is-case-insensitive-and-reads-back-lowercase", "deployments": [], "key": "sns/raw-message-delivery-flag-is-case-insensitive-and-reads-back-lowercase", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_raw_message_delivery_flag_is_case_insensitive_and_reads_back_lowercase.py", "service": "sns"} {"check_id": "sns.raw-message-delivery-strips-the-envelope-for-only-that-subscription", "deployments": [], "key": "sns/raw-message-delivery-strips-the-envelope-for-only-that-subscription", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_raw_message_delivery_strips_the_envelope_for_only_that_subscription.py", "service": "sns"} {"check_id": "sns.recreated-queue-with-the-same-name-resumes-delivery-on-the-old-subscription", "deployments": [], "key": "sns/recreated-queue-with-the-same-name-resumes-delivery-on-the-old-subscription", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_recreated_queue_with_the_same_name_resumes_delivery_on_the_old_subscription.py", "service": "sns"} {"check_id": "sns.remove-permission-unknown-label-is-idempotent", "deployments": [], "key": "sns/remove-permission-unknown-label-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_remove_permission_unknown_label_is_idempotent.py", "service": "sns"} {"check_id": "sns.replay-policy-on-a-topic-without-an-archive-policy-rejected", "deployments": [], "key": "sns/replay-policy-on-a-topic-without-an-archive-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_replay_policy_on_a_topic_without_an_archive_policy_rejected.py", "service": "sns"} {"check_id": "sns.resubscribe-after-unsubscribe-mints-a-new-arn", "deployments": [], "key": "sns/resubscribe-after-unsubscribe-mints-a-new-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_resubscribe_after_unsubscribe_mints_a_new_arn.py", "service": "sns"} {"check_id": "sns.same-topic-name-in-two-regions-is-two-independent-topics", "deployments": [], "key": "sns/same-topic-name-in-two-regions-is-two-independent-topics", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListTagsForResource", "sns:ListTopics", "sns:SetTopicAttributes", "sns:TagResource"], "path": "behavioral/sns/check_same_topic_name_in_two_regions_is_two_independent_topics.py", "service": "sns"} {"check_id": "sns.set-endpoint-attributes-not-found", "deployments": [], "key": "sns/set-endpoint-attributes-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreatePlatformApplication", "sns:CreatePlatformEndpoint", "sns:DeleteEndpoint", "sns:DeletePlatformApplication", "sns:SetEndpointAttributes"], "path": "behavioral/sns/check_set_endpoint_attributes_not_found.py", "service": "sns"} {"check_id": "sns.set-platform-application-attributes-unknown-key-rejected", "deployments": [], "key": "sns/set-platform-application-attributes-unknown-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreatePlatformApplication", "sns:DeletePlatformApplication", "sns:GetPlatformApplicationAttributes", "sns:SetPlatformApplicationAttributes"], "path": "behavioral/sns/check_set_platform_application_attributes_unknown_key_rejected.py", "service": "sns"} {"check_id": "sns.set-sms-attributes-invalid-name-rejected", "deployments": [], "key": "sns/set-sms-attributes-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:GetSMSAttributes", "sns:SetSMSAttributes"], "path": "behavioral/sns/check_set_sms_attributes_invalid_name_rejected.py", "service": "sns"} {"check_id": "sns.set-sms-attributes-invalid-sms-type-rejected", "deployments": [], "key": "sns/set-sms-attributes-invalid-sms-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:GetSMSAttributes", "sns:SetSMSAttributes"], "path": "behavioral/sns/check_set_sms_attributes_invalid_sms_type_rejected.py", "service": "sns"} {"check_id": "sns.set-subscription-attributes-nonexistent-fails", "deployments": [], "key": "sns/set-subscription-attributes-nonexistent-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sns/check_set_subscription_attributes_nonexistent_fails.py", "service": "sns"} {"check_id": "sns.set-topic-attribute-invalid-policy-rejected", "deployments": [], "key": "sns/set-topic-attribute-invalid-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_set_topic_attribute_invalid_policy_rejected.py", "service": "sns"} {"check_id": "sns.set-topic-attributes-cross-account-feedback-role-rejected", "deployments": [], "key": "sns/set-topic-attributes-cross-account-feedback-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_set_topic_attributes_cross_account_feedback_role_rejected.py", "service": "sns"} {"check_id": "sns.set-topic-attributes-invalid-signature-version-rejected", "deployments": [], "key": "sns/set-topic-attributes-invalid-signature-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_set_topic_attributes_invalid_signature_version_rejected.py", "service": "sns"} {"check_id": "sns.set-topic-attributes-invalid-tracing-config-rejected", "deployments": [], "key": "sns/set-topic-attributes-invalid-tracing-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_set_topic_attributes_invalid_tracing_config_rejected.py", "service": "sns"} {"check_id": "sns.set-topic-attributes-malformed-feedback-role-arn-rejected", "deployments": [], "key": "sns/set-topic-attributes-malformed-feedback-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_set_topic_attributes_malformed_feedback_role_arn_rejected.py", "service": "sns"} {"check_id": "sns.set-topic-attributes-unknown-name-fails", "deployments": [], "key": "sns/set-topic-attributes-unknown-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_set_topic_attributes_unknown_name_fails.py", "service": "sns"} {"check_id": "sns.signature-version-two-switches-the-delivered-digest-to-sha256", "deployments": [], "key": "sns/signature-version-two-switches-the-delivered-digest-to-sha256", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_signature_version_two_switches_the_delivered_digest_to_sha256.py", "service": "sns"} {"check_id": "sns.sms-account-state-reads", "deployments": [], "key": "sns/sms-account-state-reads", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:GetSMSAttributes", "sns:GetSMSSandboxAccountStatus", "sns:ListOriginationNumbers"], "path": "behavioral/sns/check_sms_account_state_reads.py", "service": "sns"} {"check_id": "sns.sms-attributes-custom-value-round-trip", "deployments": [], "key": "sns/sms-attributes-custom-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:GetSMSAttributes", "sns:SetSMSAttributes"], "path": "behavioral/sns/check_sms_attributes_custom_value_round_trip.py", "service": "sns"} {"check_id": "sns.sms-attributes-filter-exactness-and-clear-via-empty", "deployments": [], "key": "sns/sms-attributes-filter-exactness-and-clear-via-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:GetSMSAttributes", "sns:SetSMSAttributes"], "path": "behavioral/sns/check_sms_attributes_filter_exactness_and_clear_via_empty.py", "service": "sns"} {"check_id": "sns.sms-sandbox-delete-unknown-number", "deployments": [], "key": "sns/sms-sandbox-delete-unknown-number", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateSMSSandboxPhoneNumber", "sns:DeleteSMSSandboxPhoneNumber", "sns:ListSMSSandboxPhoneNumbers"], "path": "behavioral/sns/check_sms_sandbox_delete_unknown_number.py", "service": "sns"} {"check_id": "sns.sqs-failure-feedback-role-logs-the-denied-delivery-while-the-message-never-reaches-the-queue", "deployments": [], "key": "sns/sqs-failure-feedback-role-logs-the-denied-delivery-while-the-message-never-reaches-the-queue", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_sqs_failure_feedback_role_logs_the_denied_delivery_while_the_message_never_reaches_the_queue.py", "service": "sns"} {"check_id": "sns.sqs-subscription-delivers-the-published-message-unconditionally", "deployments": [], "key": "sns/sqs-subscription-delivers-the-published-message-unconditionally", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_sqs_subscription_delivers_the_published_message_unconditionally.py", "service": "sns"} {"check_id": "sns.sqs-success-feedback-role-writes-the-delivery-record-to-cloudwatch-logs", "deployments": [], "key": "sns/sqs-success-feedback-role-writes-the-delivery-record-to-cloudwatch-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_sqs_success_feedback_role_writes_the_delivery_record_to_cloudwatch_logs.py", "service": "sns"} {"check_id": "sns.standard-topic-message-group-id-reaches-the-queue-as-its-message-group-id", "deployments": [], "key": "sns/standard-topic-message-group-id-reaches-the-queue-as-its-message-group-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:PublishBatch", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_standard_topic_message_group_id_reaches_the_queue_as_its_message_group_id.py", "service": "sns"} {"check_id": "sns.standard-topic-rejects-fifo-dedup-id", "deployments": [], "key": "sns/standard-topic-rejects-fifo-dedup-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_standard_topic_rejects_fifo_dedup_id.py", "service": "sns"} {"check_id": "sns.string-array-message-attribute-matches-a-member-and-binary-is-ignored", "deployments": [], "key": "sns/string-array-message-attribute-matches-a-member-and-binary-is-ignored", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_string_array_message_attribute_matches_a_member_and_binary_is_ignored.py", "service": "sns"} {"check_id": "sns.subject-over-100-characters-rejected-and-the-limit-counts-characters", "deployments": [], "key": "sns/subject-over-100-characters-rejected-and-the-limit-counts-characters", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_subject_over_100_characters_rejected_and_the_limit_counts_characters.py", "service": "sns"} {"check_id": "sns.subject-with-a-line-break-or-control-character-rejected", "deployments": [], "key": "sns/subject-with-a-line-break-or-control-character-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_subject_with_a_line_break_or_control_character_rejected.py", "service": "sns"} {"check_id": "sns.subscribe-email-pending-confirmation", "deployments": [], "key": "sns/subscribe-email-pending-confirmation", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe"], "path": "behavioral/sns/check_subscribe_email_pending_confirmation.py", "service": "sns"} {"check_id": "sns.subscribe-fifo-queue-to-standard-topic-rejected", "deployments": [], "key": "sns/subscribe-fifo-queue-to-standard-topic-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_subscribe_fifo_queue_to_standard_topic_rejected.py", "service": "sns"} {"check_id": "sns.subscribe-invalid-endpoint-rejected", "deployments": [], "key": "sns/subscribe-invalid-endpoint-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscribe_invalid_endpoint_rejected.py", "service": "sns"} {"check_id": "sns.subscribe-invalid-filter-policy-fails", "deployments": [], "key": "sns/subscribe-invalid-filter-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sns/check_subscribe_invalid_filter_policy_fails.py", "service": "sns"} {"check_id": "sns.subscribe-raw-message-delivery-end-to-end", "deployments": [], "key": "sns/subscribe-raw-message-delivery-end-to-end", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_subscribe_raw_message_delivery_end_to_end.py", "service": "sns"} {"check_id": "sns.subscribe-same-endpoint-is-idempotent", "deployments": [], "key": "sns/subscribe-same-endpoint-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscribe_same_endpoint_is_idempotent.py", "service": "sns"} {"check_id": "sns.subscribe-sqs-auto-confirms", "deployments": [], "key": "sns/subscribe-sqs-auto-confirms", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscribe_sqs_auto_confirms.py", "service": "sns"} {"check_id": "sns.subscribe-to-nonexistent-topic-fails", "deployments": [], "key": "sns/subscribe-to-nonexistent-topic-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe"], "path": "behavioral/sns/check_subscribe_to_nonexistent_topic_fails.py", "service": "sns"} {"check_id": "sns.subscribe-unknown-protocol-rejected", "deployments": [], "key": "sns/subscribe-unknown-protocol-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscribe_unknown_protocol_rejected.py", "service": "sns"} {"check_id": "sns.subscribe-with-an-unknown-attribute-rejected-and-creates-nothing", "deployments": [], "key": "sns/subscribe-with-an-unknown-attribute-rejected-and-creates-nothing", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_subscribe_with_an_unknown_attribute_rejected_and_creates_nothing.py", "service": "sns"} {"check_id": "sns.subscription-created-with-attributes-roundtrip", "deployments": [], "key": "sns/subscription-created-with-attributes-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscription_created_with_attributes_roundtrip.py", "service": "sns"} {"check_id": "sns.subscription-delivery-policy-reads-back-normalized-on-an-sqs-subscription", "deployments": [], "key": "sns/subscription-delivery-policy-reads-back-normalized-on-an-sqs-subscription", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sns/check_subscription_delivery_policy_reads_back_normalized_on_an_sqs_subscription.py", "service": "sns"} {"check_id": "sns.subscription-filter-policy-delivery", "deployments": [], "key": "sns/subscription-filter-policy-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_subscription_filter_policy_delivery.py", "service": "sns"} {"check_id": "sns.subscription-filter-policy-update-and-validation", "deployments": [], "key": "sns/subscription-filter-policy-update-and-validation", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscription_filter_policy_update_and_validation.py", "service": "sns"} {"check_id": "sns.subscription-raw-message-delivery-attribute", "deployments": [], "key": "sns/subscription-raw-message-delivery-attribute", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscription_raw_message_delivery_attribute.py", "service": "sns"} {"check_id": "sns.subscription-redrive-policy-non-sqs-target-rejected", "deployments": [], "key": "sns/subscription-redrive-policy-non-sqs-target-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscription_redrive_policy_non_sqs_target_rejected.py", "service": "sns"} {"check_id": "sns.subscription-redrive-policy-round-trip-and-replace", "deployments": [], "key": "sns/subscription-redrive-policy-round-trip-and-replace", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_subscription_redrive_policy_round_trip_and_replace.py", "service": "sns"} {"check_id": "sns.success-feedback-sample-rate-zero-writes-no-log-while-full-rate-logs-every-delivery", "deployments": [], "key": "sns/success-feedback-sample-rate-zero-writes-no-log-while-full-rate-logs-every-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:DeleteLogGroup", "logs:FilterLogEvents", "sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_success_feedback_sample_rate_zero_writes_no_log_while_full_rate_logs_every_delivery.py", "service": "sns"} {"check_id": "sns.tag-key-over-128-characters-rejected", "deployments": [], "key": "sns/tag-key-over-128-characters-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource", "sns:TagResource"], "path": "behavioral/sns/check_tag_key_over_128_characters_rejected.py", "service": "sns"} {"check_id": "sns.tag-resource-lifecycle", "deployments": [], "key": "sns/tag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource", "sns:TagResource", "sns:UntagResource"], "path": "behavioral/sns/check_tag_resource_lifecycle.py", "service": "sns"} {"check_id": "sns.tag-resource-lifecycle-and-limit", "deployments": [], "key": "sns/tag-resource-lifecycle-and-limit", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource", "sns:TagResource", "sns:UntagResource"], "path": "behavioral/sns/check_tag_resource_lifecycle_and_limit.py", "service": "sns"} {"check_id": "sns.tag-resource-nonexistent-topic-fails", "deployments": [], "key": "sns/tag-resource-nonexistent-topic-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource", "sns:TagResource"], "path": "behavioral/sns/check_tag_resource_nonexistent_topic_fails.py", "service": "sns"} {"check_id": "sns.tag-resource-reserved-aws-prefix-rejected", "deployments": [], "key": "sns/tag-resource-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource", "sns:TagResource"], "path": "behavioral/sns/check_tag_resource_reserved_aws_prefix_rejected.py", "service": "sns"} {"check_id": "sns.topic-arn-of-another-region-rejected-by-a-regional-endpoint", "deployments": [], "key": "sns/topic-arn-of-another-region-rejected-by-a-regional-endpoint", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_topic_arn_of_another_region_rejected_by_a_regional_endpoint.py", "service": "sns"} {"check_id": "sns.topic-attributes-subscription-counters-track-state", "deployments": [], "key": "sns/topic-attributes-subscription-counters-track-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_topic_attributes_subscription_counters_track_state.py", "service": "sns"} {"check_id": "sns.topic-create-idempotent-by-name", "deployments": [], "key": "sns/topic-create-idempotent-by-name", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTopics"], "path": "behavioral/sns/check_topic_create_idempotent_by_name.py", "service": "sns"} {"check_id": "sns.topic-delete-lifecycle-and-idempotent-delete", "deployments": [], "key": "sns/topic-delete-lifecycle-and-idempotent-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes"], "path": "behavioral/sns/check_topic_delete_lifecycle_and_idempotent_delete.py", "service": "sns"} {"check_id": "sns.topic-delivery-policy-computes-effective-policy", "deployments": [], "key": "sns/topic-delivery-policy-computes-effective-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_topic_delivery_policy_computes_effective_policy.py", "service": "sns"} {"check_id": "sns.topic-feedback-role-arn-and-sample-rate-round-trip", "deployments": [], "key": "sns/topic-feedback-role-arn-and-sample-rate-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sts:AssumeRole"], "path": "behavioral/sns/check_topic_feedback_role_arn_and_sample_rate_round_trip.py", "service": "sns"} {"check_id": "sns.topic-feedback-sample-rate-out-of-range-rejected", "deployments": [], "key": "sns/topic-feedback-sample-rate-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_topic_feedback_sample_rate_out_of_range_rejected.py", "service": "sns"} {"check_id": "sns.topic-maximum-message-size-above-256kib-requires-eligible-subscriptions", "deployments": [], "key": "sns/topic-maximum-message-size-above-256kib-requires-eligible-subscriptions", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_topic_maximum_message_size_above_256kib_requires_eligible_subscriptions.py", "service": "sns"} {"check_id": "sns.topic-maximum-message-size-round-trip-and-bounds-rejected", "deployments": [], "key": "sns/topic-maximum-message-size-round-trip-and-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_topic_maximum_message_size_round_trip_and_bounds_rejected.py", "service": "sns"} {"check_id": "sns.topic-mutable-attributes-round-trip-and-clear", "deployments": [], "key": "sns/topic-mutable-attributes-round-trip-and-clear", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_topic_mutable_attributes_round_trip_and_clear.py", "service": "sns"} {"check_id": "sns.topic-name-ending-in-fifo-without-the-fifo-topic-attribute-rejected", "deployments": [], "key": "sns/topic-name-ending-in-fifo-without-the-fifo-topic-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListTopics"], "path": "behavioral/sns/check_topic_name_ending_in_fifo_without_the_fifo_topic_attribute_rejected.py", "service": "sns"} {"check_id": "sns.topic-policy-add-remove-permission", "deployments": [], "key": "sns/topic-policy-add-remove-permission", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_topic_policy_add_remove_permission.py", "service": "sns"} {"check_id": "sns.topic-policy-endpoint-condition-limits-which-queue-a-role-may-subscribe", "deployments": [], "key": "sns/topic-policy-endpoint-condition-limits-which-queue-a-role-may-subscribe", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_topic_policy_endpoint_condition_limits_which_queue_a_role_may_subscribe.py", "service": "sns"} {"check_id": "sns.topic-policy-principal-arn-pattern-admits-only-matching-roles", "deployments": [], "key": "sns/topic-policy-principal-arn-pattern-admits-only-matching-roles", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_topic_policy_principal_arn_pattern_admits_only_matching_roles.py", "service": "sns"} {"check_id": "sns.topic-policy-protocol-condition-blocks-a-real-signed-subscribe", "deployments": [], "key": "sns/topic-policy-protocol-condition-blocks-a-real-signed-subscribe", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_topic_policy_protocol_condition_blocks_a_real_signed_subscribe.py", "service": "sns"} {"check_id": "sns.topic-policy-round-trips-and-deleted-topic-set-attributes-not-found", "deployments": [], "key": "sns/topic-policy-round-trips-and-deleted-topic-set-attributes-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_topic_policy_round_trips_and_deleted_topic_set_attributes_not_found.py", "service": "sns"} {"check_id": "sns.topic-policy-subscribe-only-grant-refuses-the-roles-publish", "deployments": [], "key": "sns/topic-policy-subscribe-only-grant-refuses-the-roles-publish", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sns/check_topic_policy_subscribe_only_grant_refuses_the_roles_publish.py", "service": "sns"} {"check_id": "sns.topic-set-attribute-immutable-rejected", "deployments": [], "key": "sns/topic-set-attribute-immutable-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes"], "path": "behavioral/sns/check_topic_set_attribute_immutable_rejected.py", "service": "sns"} {"check_id": "sns.topic-subscription-counters-converge-after-concurrent-subscribes-and-unsubscribes", "deployments": [], "key": "sns/topic-subscription-counters-converge-after-concurrent-subscribes-and-unsubscribes", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_topic_subscription_counters_converge_after_concurrent_subscribes_and_unsubscribes.py", "service": "sns"} {"check_id": "sns.topic-tags-at-create-overwrite-and-untag-absent-key", "deployments": [], "key": "sns/topic-tags-at-create-overwrite-and-untag-absent-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:ListTagsForResource", "sns:TagResource", "sns:UntagResource"], "path": "behavioral/sns/check_topic_tags_at_create_overwrite_and_untag_absent_key.py", "service": "sns"} {"check_id": "sns.unsubscribe-malformed-arn-fails", "deployments": [], "key": "sns/unsubscribe-malformed-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_unsubscribe_malformed_arn_fails.py", "service": "sns"} {"check_id": "sns.unsubscribe-nonexistent-is-idempotent", "deployments": [], "key": "sns/unsubscribe-nonexistent-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Unsubscribe"], "path": "behavioral/sns/check_unsubscribe_nonexistent_is_idempotent.py", "service": "sns"} {"check_id": "sns.unsubscribe-pending-subscription-rejected", "deployments": [], "key": "sns/unsubscribe-pending-subscription-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_unsubscribe_pending_subscription_rejected.py", "service": "sns"} {"check_id": "sns.unsubscribe-removes-subscription", "deployments": [], "key": "sns/unsubscribe-removes-subscription", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe"], "path": "behavioral/sns/check_unsubscribe_removes_subscription.py", "service": "sns"} {"check_id": "sns.unsubscribe-stops-delivery", "deployments": [], "key": "sns/unsubscribe-stops-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_unsubscribe_stops_delivery.py", "service": "sns"} {"check_id": "sns.unsubscribe-stops-delivery-and-attribute-lookup-is-rejected", "deployments": [], "key": "sns/unsubscribe-stops-delivery-and-attribute-lookup-is-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns/check_unsubscribe_stops_delivery_and_attribute_lookup_is_rejected.py", "service": "sns"} {"check_id": "sns.verify-sms-sandbox-wrong-otp-rejected", "deployments": [], "key": "sns/verify-sms-sandbox-wrong-otp-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sns:CreateSMSSandboxPhoneNumber", "sns:DeleteSMSSandboxPhoneNumber", "sns:ListSMSSandboxPhoneNumbers", "sns:VerifySMSSandboxPhoneNumber"], "path": "behavioral/sns/check_verify_sms_sandbox_wrong_otp_rejected.py", "service": "sns"} {"check_id": "sns__sqs.a-message-filtered-out-at-publish-time-is-never-redelivered-when-the-policy-is-relaxed", "deployments": [], "key": "sns__sqs/a-message-filtered-out-at-publish-time-is-never-redelivered-when-the-policy-is-relaxed", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_a_message_filtered_out_at_publish_time_is_never_redelivered_when_the_policy_is_relaxed.py", "service": "sns__sqs"} {"check_id": "sns__sqs.fifo-topic-subscription-filter-policy-withholds-non-matching-messages", "deployments": [], "key": "sns__sqs/fifo-topic-subscription-filter-policy-withholds-non-matching-messages", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:ListSubscriptionsByTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_fifo_topic_subscription_filter_policy_withholds_non_matching_messages.py", "service": "sns__sqs"} {"check_id": "sns__sqs.message-attribute-name-outside-the-allowed-charset-rejected", "deployments": [], "key": "sns__sqs/message-attribute-name-outside-the-allowed-charset-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_message_attribute_name_outside_the_allowed_charset_rejected.py", "service": "sns__sqs"} {"check_id": "sns__sqs.platform-application-event-endpoint-created-notifies-configured-topic", "deployments": [], "key": "sns__sqs/platform-application-event-endpoint-created-notifies-configured-topic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreatePlatformApplication", "sns:CreatePlatformEndpoint", "sns:CreateTopic", "sns:DeleteEndpoint", "sns:DeletePlatformApplication", "sns:DeleteTopic", "sns:GetPlatformApplicationAttributes", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_platform_application_event_endpoint_created_notifies_configured_topic.py", "service": "sns__sqs"} {"check_id": "sns__sqs.queue-maximum-message-size-does-not-bound-sns-delivery", "deployments": [], "key": "sns__sqs/queue-maximum-message-size-does-not-bound-sns-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_queue_maximum_message_size_does_not_bound_sns_delivery.py", "service": "sns__sqs"} {"check_id": "sns__sqs.sns-filter-policy-message-body-scope-suppresses-non-matching", "deployments": [], "key": "sns__sqs/sns-filter-policy-message-body-scope-suppresses-non-matching", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_sns_filter_policy_message_body_scope_suppresses_non_matching.py", "service": "sns__sqs"} {"check_id": "sns__sqs.sns-filter-policy-scope-is-orthogonal-and-message-body-matches-nested-keys", "deployments": [], "key": "sns__sqs/sns-filter-policy-scope-is-orthogonal-and-message-body-matches-nested-keys", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_sns_filter_policy_scope_is_orthogonal_and_message_body_matches_nested_keys.py", "service": "sns__sqs"} {"check_id": "sns__sqs.sns-publish-batch-delivers-one-envelope-per-entry-to-the-subscribed-queue", "deployments": [], "key": "sns__sqs/sns-publish-batch-delivers-one-envelope-per-entry-to-the-subscribed-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:PublishBatch", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_sns_publish_batch_delivers_one_envelope_per_entry_to_the_subscribed_queue.py", "service": "sns__sqs"} {"check_id": "sns__sqs.sns-sqs-queue-policy-deny-suppresses-delivery", "deployments": [], "key": "sns__sqs/sns-sqs-queue-policy-deny-suppresses-delivery", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_sns_sqs_queue_policy_deny_suppresses_delivery.py", "service": "sns__sqs"} {"check_id": "sns__sqs.sns-subscription-dlq-captures-the-notification-the-endpoint-policy-denied", "deployments": [], "key": "sns__sqs/sns-subscription-dlq-captures-the-notification-the-endpoint-policy-denied", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_sns_subscription_dlq_captures_the_notification_the_endpoint_policy_denied.py", "service": "sns__sqs"} {"check_id": "sns__sqs.sns-to-sqs-envelope-carries-the-subject-and-typed-message-attributes", "deployments": [], "key": "sns__sqs/sns-to-sqs-envelope-carries-the-subject-and-typed-message-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:GetTopicAttributes", "sns:Publish", "sns:SetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_sns_to_sqs_envelope_carries_the_subject_and_typed_message_attributes.py", "service": "sns__sqs"} {"check_id": "sns__sqs.sqs-envelope-raw-bytes-are-pretty-printed-in-canonical-key-order", "deployments": [], "key": "sns__sqs/sqs-envelope-raw-bytes-are-pretty-printed-in-canonical-key-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sns:CreateTopic", "sns:DeleteTopic", "sns:Publish", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sns__sqs/check_sqs_envelope_raw_bytes_are_pretty_printed_in_canonical_key_order.py", "service": "sns__sqs"} {"check_id": "sns__sqs__stepfunctions.aws-sdk-sns-publish-task-delivers-and-missing-topic-is-caught", "deployments": [], "key": "sns__sqs__stepfunctions/aws-sdk-sns-publish-task-delivers-and-missing-topic-is-caught", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/sns__sqs__stepfunctions/check_aws_sdk_sns_publish_task_delivers_and_missing_topic_is_caught.py", "service": "sns__sqs__stepfunctions"} {"check_id": "sns__sqs__stepfunctions.sfn-sns-publish-missing-permission-catch-denied-negative", "deployments": [], "key": "sns__sqs__stepfunctions/sfn-sns-publish-missing-permission-catch-denied-negative", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/sns__sqs__stepfunctions/check_sfn_sns_publish_missing_permission_catch_denied_negative.py", "service": "sns__sqs__stepfunctions"} {"check_id": "sns__sqs__stepfunctions.sns-publish-attributes-reach-subscriber-and-invalid-attribute-fails-task", "deployments": [], "key": "sns__sqs__stepfunctions/sns-publish-attributes-reach-subscriber-and-invalid-attribute-fails-task", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetSubscriptionAttributes", "sns:Subscribe", "sns:Unsubscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/sns__sqs__stepfunctions/check_sns_publish_attributes_reach_subscriber_and_invalid_attribute_fails_task.py", "service": "sns__sqs__stepfunctions"} {"check_id": "socialmessaging.associate-business-account-access-token-exceeds-max-rejected", "deployments": [], "key": "socialmessaging/associate-business-account-access-token-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:AssociateWhatsAppBusinessAccount"], "path": "behavioral/socialmessaging/check_associate_business_account_access_token_exceeds_max_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.concurrent-not-found-lookups-consistent", "deployments": [], "key": "socialmessaging/concurrent-not-found-lookups-consistent", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:GetLinkedWhatsAppBusinessAccount", "socialmessaging:ListLinkedWhatsAppBusinessAccounts"], "path": "behavioral/socialmessaging/check_concurrent_not_found_lookups_consistent.py", "service": "socialmessaging"} {"check_id": "socialmessaging.cross-resource-type-id-rejected", "deployments": [], "key": "socialmessaging/cross-resource-type-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:GetLinkedWhatsAppBusinessAccountPhoneNumber"], "path": "behavioral/socialmessaging/check_cross_resource_type_id_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.dataset-id-below-min-length-rejected", "deployments": [], "key": "socialmessaging/dataset-id-below-min-length-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["socialmessaging:SendWhatsAppConversionEvent"], "path": "behavioral/socialmessaging/check_dataset_id_below_min_length_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.dataset-id-pattern-violation-rejected", "deployments": [], "key": "socialmessaging/dataset-id-pattern-violation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["socialmessaging:SendWhatsAppConversionEvent"], "path": "behavioral/socialmessaging/check_dataset_id_pattern_violation_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.event-destinations-exceeds-max-rejected", "deployments": [], "key": "socialmessaging/event-destinations-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:PutWhatsAppBusinessAccountEventDestinations"], "path": "behavioral/socialmessaging/check_event_destinations_exceeds_max_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.flow-categories-exceeds-max-rejected", "deployments": [], "key": "socialmessaging/flow-categories-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:CreateWhatsAppFlow"], "path": "behavioral/socialmessaging/check_flow_categories_exceeds_max_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.flow-id-pattern-violation-rejected", "deployments": [], "key": "socialmessaging/flow-id-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:GetWhatsAppFlow", "socialmessaging:ListLinkedWhatsAppBusinessAccounts", "socialmessaging:ListWhatsAppFlows"], "path": "behavioral/socialmessaging/check_flow_id_pattern_violation_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.get-linked-waba-not-found", "deployments": [], "key": "socialmessaging/get-linked-waba-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:GetLinkedWhatsAppBusinessAccount", "socialmessaging:ListLinkedWhatsAppBusinessAccounts"], "path": "behavioral/socialmessaging/check_get_linked_waba_not_found.py", "service": "socialmessaging"} {"check_id": "socialmessaging.kms-key-arn-pattern-violation-rejected", "deployments": [], "key": "socialmessaging/kms-key-arn-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:ListLinkedWhatsAppBusinessAccounts", "socialmessaging:PutWhatsAppBusinessPublicKey"], "path": "behavioral/socialmessaging/check_kms_key_arn_pattern_violation_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.list-linked-accounts-max-results-over-limit-rejected", "deployments": [], "key": "socialmessaging/list-linked-accounts-max-results-over-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:ListLinkedWhatsAppBusinessAccounts"], "path": "behavioral/socialmessaging/check_list_linked_accounts_max_results_over_limit_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.list-linked-accounts-respects-max-results", "deployments": [], "key": "socialmessaging/list-linked-accounts-respects-max-results", "labels": ["axis:happy-path", "plane:control"], "operations": ["socialmessaging:ListLinkedWhatsAppBusinessAccounts"], "path": "behavioral/socialmessaging/check_list_linked_accounts_respects_max_results.py", "service": "socialmessaging"} {"check_id": "socialmessaging.list-tags-resource-arn-missing-prefix-rejected", "deployments": [], "key": "socialmessaging/list-tags-resource-arn-missing-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/socialmessaging/check_list_tags_resource_arn_missing_prefix_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.media-id-pattern-violation-rejected", "deployments": [], "key": "socialmessaging/media-id-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:DeleteWhatsAppMessageMedia"], "path": "behavioral/socialmessaging/check_media_id_pattern_violation_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.meta-template-id-pattern-violation-rejected", "deployments": [], "key": "socialmessaging/meta-template-id-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:GetWhatsAppMessageTemplate"], "path": "behavioral/socialmessaging/check_meta_template_id_pattern_violation_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.phone-number-id-pattern-violation-rejected", "deployments": [], "key": "socialmessaging/phone-number-id-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:GetLinkedWhatsAppBusinessAccount", "socialmessaging:GetWhatsAppBusinessPublicKey", "socialmessaging:ListLinkedWhatsAppBusinessAccounts"], "path": "behavioral/socialmessaging/check_phone_number_id_pattern_violation_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.template-definition-exceeds-max-bytes-rejected", "deployments": [], "key": "socialmessaging/template-definition-exceeds-max-bytes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:CreateWhatsAppMessageTemplate"], "path": "behavioral/socialmessaging/check_template_definition_exceeds_max_bytes_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.waba-id-exceeds-max-length-rejected", "deployments": [], "key": "socialmessaging/waba-id-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:GetLinkedWhatsAppBusinessAccount"], "path": "behavioral/socialmessaging/check_waba_id_exceeds_max_length_rejected.py", "service": "socialmessaging"} {"check_id": "socialmessaging.waba-id-pattern-violation-rejected", "deployments": [], "key": "socialmessaging/waba-id-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["socialmessaging:GetLinkedWhatsAppBusinessAccount"], "path": "behavioral/socialmessaging/check_waba_id_pattern_violation_rejected.py", "service": "socialmessaging"} {"check_id": "sqs.add-permission-invalid-action-rejected", "deployments": [], "key": "sqs/add-permission-invalid-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_add_permission_invalid_action_rejected.py", "service": "sqs"} {"check_id": "sqs.add-permission-over-limit-rejected", "deployments": [], "key": "sqs/add-permission-over-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_add_permission_over_limit_rejected.py", "service": "sqs"} {"check_id": "sqs.add-remove-permission", "deployments": [], "key": "sqs/add-remove-permission", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:RemovePermission"], "path": "behavioral/sqs/check_add_remove_permission.py", "service": "sqs"} {"check_id": "sqs.add-remove-permission-updates-policy", "deployments": [], "key": "sqs/add-remove-permission-updates-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_add_remove_permission_updates_policy.py", "service": "sqs"} {"check_id": "sqs.approx-count-tracks", "deployments": [], "key": "sqs/approx-count-tracks", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/sqs/check_approx_count_tracks.py", "service": "sqs"} {"check_id": "sqs.approximate-counters-converge-through-receive-release-and-delete", "deployments": [], "key": "sqs/approximate-counters-converge-through-receive-release-and-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_approximate_counters_converge_through_receive_release_and_delete.py", "service": "sqs"} {"check_id": "sqs.approximate-receive-count-increments", "deployments": [], "key": "sqs/approximate-receive-count-increments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_approximate_receive_count_increments.py", "service": "sqs"} {"check_id": "sqs.bad-receipt-handle", "deployments": [], "key": "sqs/bad-receipt-handle", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_bad_receipt_handle.py", "service": "sqs"} {"check_id": "sqs.batch-actions-authorize-under-their-singular-action", "deployments": [], "key": "sqs/batch-actions-authorize-under-their-singular-action", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_batch_actions_authorize_under_their_singular_action.py", "service": "sqs"} {"check_id": "sqs.batch-entry-id-character-and-length-rules-rejected", "deployments": [], "key": "sqs/batch-entry-id-character-and-length-rules-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_entry_id_character_and_length_rules_rejected.py", "service": "sqs"} {"check_id": "sqs.batch-entry-over-queue-max-message-size-fails-alone", "deployments": [], "key": "sqs/batch-entry-over-queue-max-message-size-fails-alone", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_entry_over_queue_max_message_size_fails_alone.py", "service": "sqs"} {"check_id": "sqs.batch-partial-failure-envelope-fields", "deployments": [], "key": "sqs/batch-partial-failure-envelope-fields", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_partial_failure_envelope_fields.py", "service": "sqs"} {"check_id": "sqs.batch-request-validation-rejected", "deployments": [], "key": "sqs/batch-request-validation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_request_validation_rejected.py", "service": "sqs"} {"check_id": "sqs.batch-send-partial-failure", "deployments": [], "key": "sqs/batch-send-partial-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_send_partial_failure.py", "service": "sqs"} {"check_id": "sqs.batch-send-partial-mixed", "deployments": [], "key": "sqs/batch-send-partial-mixed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_send_partial_mixed.py", "service": "sqs"} {"check_id": "sqs.batch-send-receive-count", "deployments": [], "key": "sqs/batch-send-receive-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_send_receive_count.py", "service": "sqs"} {"check_id": "sqs.batch-total-size-counts-message-attributes-not-only-bodies", "deployments": [], "key": "sqs/batch-total-size-counts-message-attributes-not-only-bodies", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_total_size_counts_message_attributes_not_only_bodies.py", "service": "sqs"} {"check_id": "sqs.batch-total-size-exceeds-limit-rejected", "deployments": [], "key": "sqs/batch-total-size-exceeds-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_batch_total_size_exceeds_limit_rejected.py", "service": "sqs"} {"check_id": "sqs.binary-message-attribute", "deployments": [], "key": "sqs/binary-message-attribute", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_binary_message_attribute.py", "service": "sqs"} {"check_id": "sqs.cancel-message-move-task-conserves-messages", "deployments": [], "key": "sqs/cancel-message-move-task-conserves-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CancelMessageMoveTask", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:SendMessage", "sqs:SetQueueAttributes", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_cancel_message_move_task_conserves_messages.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-batch", "deployments": [], "key": "sqs/change-message-visibility-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_change_message_visibility_batch.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-batch-partial", "deployments": [], "key": "sqs/change-message-visibility-batch-partial", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_message_visibility_batch_partial.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-batch-partial-failure", "deployments": [], "key": "sqs/change-message-visibility-batch-partial-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_message_visibility_batch_partial_failure.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-batch-repeated-receipt-handle-last-entry-wins", "deployments": [], "key": "sqs/change-message-visibility-batch-repeated-receipt-handle-last-entry-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_message_visibility_batch_repeated_receipt_handle_last_entry_wins.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-expired-handle-accepted", "deployments": [], "key": "sqs/change-message-visibility-expired-handle-accepted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_message_visibility_expired_handle_accepted.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-extends", "deployments": [], "key": "sqs/change-message-visibility-extends", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_message_visibility_extends.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-extends-timeout", "deployments": [], "key": "sqs/change-message-visibility-extends-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_message_visibility_extends_timeout.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-invalid-receipt-handle", "deployments": [], "key": "sqs/change-message-visibility-invalid-receipt-handle", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_message_visibility_invalid_receipt_handle.py", "service": "sqs"} {"check_id": "sqs.change-message-visibility-zero-makes-immediately-visible", "deployments": [], "key": "sqs/change-message-visibility-zero-makes-immediately-visible", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_message_visibility_zero_makes_immediately_visible.py", "service": "sqs"} {"check_id": "sqs.change-visibility-on-expired-handle-rejected", "deployments": [], "key": "sqs/change-visibility-on-expired-handle-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_change_visibility_on_expired_handle_rejected.py", "service": "sqs"} {"check_id": "sqs.changevis0-reexposes", "deployments": [], "key": "sqs/changevis0-reexposes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_changevis0_reexposes.py", "service": "sqs"} {"check_id": "sqs.clearing-kms-master-key-id-does-not-restore-sse-sqs", "deployments": [], "key": "sqs/clearing-kms-master-key-id-does-not-restore-sse-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_clearing_kms_master_key_id_does_not_restore_sse_sqs.py", "service": "sqs"} {"check_id": "sqs.cli-output-text-mode", "deployments": [], "key": "sqs/cli-output-text-mode", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sqs/check_cli_output_text_mode.py", "service": "sqs"} {"check_id": "sqs.cli-query-jmespath-filter", "deployments": [], "key": "sqs/cli-query-jmespath-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueues"], "path": "behavioral/sqs/check_cli_query_jmespath_filter.py", "service": "sqs"} {"check_id": "sqs.cli-script-sqs-fanout", "deployments": [], "key": "sqs/cli-script-sqs-fanout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sqs/check_cli_script_sqs_fanout.py", "service": "sqs"} {"check_id": "sqs.cli-sqs-create-send-receive-delete", "deployments": [], "key": "sqs/cli-sqs-create-send-receive-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_cli_sqs_create_send_receive_delete.py", "service": "sqs"} {"check_id": "sqs.cli-sqs-nonexistent-queue-error", "deployments": [], "key": "sqs/cli-sqs-nonexistent-queue-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_cli_sqs_nonexistent_queue_error.py", "service": "sqs"} {"check_id": "sqs.client-on-the-queue-url-host-sends-and-receives-on-that-queue", "deployments": [], "key": "sqs/client-on-the-queue-url-host-sends-and-receives-on-that-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_client_on_the_queue_url_host_sends_and_receives_on_that_queue.py", "service": "sqs"} {"check_id": "sqs.cloudwatch-alarm-state-transition-recorded", "deployments": [], "key": "sqs/cloudwatch-alarm-state-transition-recorded", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState", "sqs:CreateQueue", "sqs:DeleteQueue"], "path": "behavioral/sqs/check_cloudwatch_alarm_state_transition_recorded.py", "service": "sqs"} {"check_id": "sqs.conc-limits-and-fanout-fifo-stale-owner-handle-rejected-after-handoff", "deployments": [], "key": "sqs/conc-limits-and-fanout-fifo-stale-owner-handle-rejected-after-handoff", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_conc_limits_and_fanout_fifo_stale_owner_handle_rejected_after_handoff.py", "service": "sqs"} {"check_id": "sqs.conc-limits-and-fanout-in-flight-disjoint-and-cmv-zero-redelivers-exact-subset", "deployments": [], "key": "sqs/conc-limits-and-fanout-in-flight-disjoint-and-cmv-zero-redelivers-exact-subset", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_conc_limits_and_fanout_in_flight_disjoint_and_cmv_zero_redelivers_exact_subset.py", "service": "sqs"} {"check_id": "sqs.concurrent-create-queue-same-name-converges-to-one-queue", "deployments": [], "key": "sqs/concurrent-create-queue-same-name-converges-to-one-queue", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "sqs:ListQueues"], "path": "behavioral/sqs/check_concurrent_create_queue_same_name_converges_to_one_queue.py", "service": "sqs"} {"check_id": "sqs.concurrent-fifo-dedup-race", "deployments": [], "key": "sqs/concurrent-fifo-dedup-race", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_concurrent_fifo_dedup_race.py", "service": "sqs"} {"check_id": "sqs.concurrent-receive-no-duplicate-delivery", "deployments": [], "key": "sqs/concurrent-receive-no-duplicate-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_concurrent_receive_no_duplicate_delivery.py", "service": "sqs"} {"check_id": "sqs.concurrent-set-queue-attributes-last-writer-wins", "deployments": [], "key": "sqs/concurrent-set-queue-attributes-last-writer-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_concurrent_set_queue_attributes_last_writer_wins.py", "service": "sqs"} {"check_id": "sqs.concurrent-set-queue-attributes-on-distinct-attributes-lose-no-update", "deployments": [], "key": "sqs/concurrent-set-queue-attributes-on-distinct-attributes-lose-no-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_concurrent_set_queue_attributes_on_distinct_attributes_lose_no_update.py", "service": "sqs"} {"check_id": "sqs.concurrent-tag-queue-no-lost-updates", "deployments": [], "key": "sqs/concurrent-tag-queue-no-lost-updates", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:TagQueue"], "path": "behavioral/sqs/check_concurrent_tag_queue_no_lost_updates.py", "service": "sqs"} {"check_id": "sqs.content-based-dedup-id-is-the-sha256-of-the-body", "deployments": [], "key": "sqs/content-based-dedup-id-is-the-sha256-of-the-body", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_content_based_dedup_id_is_the_sha256_of_the_body.py", "service": "sqs"} {"check_id": "sqs.content-based-deduplication-toggled-on-live-fifo-queue", "deployments": [], "key": "sqs/content-based-deduplication-toggled-on-live-fifo-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_content_based_deduplication_toggled_on_live_fifo_queue.py", "service": "sqs"} {"check_id": "sqs.create-fifo-queue-after-set-queue-attributes-compares-current-values", "deployments": [], "key": "sqs/create-fifo-queue-after-set-queue-attributes-compares-current-values", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_create_fifo_queue_after_set_queue_attributes_compares_current_values.py", "service": "sqs"} {"check_id": "sqs.create-fifo-queue-without-suffix-fails", "deployments": [], "key": "sqs/create-fifo-queue-without-suffix-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_create_fifo_queue_without_suffix_fails.py", "service": "sqs"} {"check_id": "sqs.create-queue-after-set-queue-attributes-compares-current-values", "deployments": [], "key": "sqs/create-queue-after-set-queue-attributes-compares-current-values", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_create_queue_after_set_queue_attributes_compares_current_values.py", "service": "sqs"} {"check_id": "sqs.create-queue-existing-name-different-policy-not-conflicting", "deployments": [], "key": "sqs/create-queue-existing-name-different-policy-not-conflicting", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sqs/check_create_queue_existing_name_different_policy_not_conflicting.py", "service": "sqs"} {"check_id": "sqs.create-queue-existing-name-different-tags-rejected", "deployments": [], "key": "sqs/create-queue-existing-name-different-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListQueueTags"], "path": "behavioral/sqs/check_create_queue_existing_name_different_tags_rejected.py", "service": "sqs"} {"check_id": "sqs.create-queue-invalid-attribute-creates-nothing-rejected", "deployments": [], "key": "sqs/create-queue-invalid-attribute-creates-nothing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_create_queue_invalid_attribute_creates_nothing_rejected.py", "service": "sqs"} {"check_id": "sqs.create-queue-name-conflict-different-attributes-rejected", "deployments": [], "key": "sqs/create-queue-name-conflict-different-attributes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_create_queue_name_conflict_different_attributes_rejected.py", "service": "sqs"} {"check_id": "sqs.dead-letter-queue-redrive-after-max-receive-count", "deployments": [], "key": "sqs/dead-letter-queue-redrive-after-max-receive-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_dead_letter_queue_redrive_after_max_receive_count.py", "service": "sqs"} {"check_id": "sqs.dead-letter-wiring-to-another-region-rejected", "deployments": [], "key": "sqs/dead-letter-wiring-to-another-region-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListDeadLetterSourceQueues", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_dead_letter_wiring_to_another_region_rejected.py", "service": "sqs"} {"check_id": "sqs.dead-lettered-message-keeps-its-identity-and-names-its-source-queue", "deployments": [], "key": "sqs/dead-lettered-message-keeps-its-identity-and-names-its-source-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_dead_lettered_message_keeps_its_identity_and_names_its_source_queue.py", "service": "sqs"} {"check_id": "sqs.default-max-message-size-is-one-mib-boundary", "deployments": [], "key": "sqs/default-max-message-size-is-one-mib-boundary", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_default_max_message_size_is_one_mib_boundary.py", "service": "sqs"} {"check_id": "sqs.delay-queue", "deployments": [], "key": "sqs/delay-queue", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delay_queue.py", "service": "sqs"} {"check_id": "sqs.delayed-messages-are-counted-separately-from-visible-and-in-flight", "deployments": [], "key": "sqs/delayed-messages-are-counted-separately-from-visible-and-in-flight", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:PurgeQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delayed_messages_are_counted_separately_from_visible_and_in_flight.py", "service": "sqs"} {"check_id": "sqs.delete-and-visibility-batches-duplicate-ids-rejected", "deployments": [], "key": "sqs/delete-and-visibility-batches-duplicate-ids-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_delete_and_visibility_batches_duplicate_ids_rejected.py", "service": "sqs"} {"check_id": "sqs.delete-and-visibility-batches-over-ten-entries-rejected", "deployments": [], "key": "sqs/delete-and-visibility-batches-over-ten-entries-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_delete_and_visibility_batches_over_ten_entries_rejected.py", "service": "sqs"} {"check_id": "sqs.delete-and-visibility-batches-receipt-handle-from-another-queue-fails-alone", "deployments": [], "key": "sqs/delete-and-visibility-batches-receipt-handle-from-another-queue-fails-alone", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delete_and_visibility_batches_receipt_handle_from_another_queue_fails_alone.py", "service": "sqs"} {"check_id": "sqs.delete-message-batch", "deployments": [], "key": "sqs/delete-message-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_delete_message_batch.py", "service": "sqs"} {"check_id": "sqs.delete-message-batch-empty-request", "deployments": [], "key": "sqs/delete-message-batch-empty-request", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delete_message_batch_empty_request.py", "service": "sqs"} {"check_id": "sqs.delete-message-batch-partial-failure", "deployments": [], "key": "sqs/delete-message-batch-partial-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delete_message_batch_partial_failure.py", "service": "sqs"} {"check_id": "sqs.delete-message-invalid-receipt-handle-rejected", "deployments": [], "key": "sqs/delete-message-invalid-receipt-handle-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delete_message_invalid_receipt_handle_rejected.py", "service": "sqs"} {"check_id": "sqs.delete-message-repeated-with-the-same-receipt-handle-succeeds", "deployments": [], "key": "sqs/delete-message-repeated-with-the-same-receipt-handle-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delete_message_repeated_with_the_same_receipt_handle_succeeds.py", "service": "sqs"} {"check_id": "sqs.delete-message-stale-receipt-handle-after-redelivery-succeeds", "deployments": [], "key": "sqs/delete-message-stale-receipt-handle-after-redelivery-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delete_message_stale_receipt_handle_after_redelivery_succeeds.py", "service": "sqs"} {"check_id": "sqs.delete-then-empty", "deployments": [], "key": "sqs/delete-then-empty", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_delete_then_empty.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-attribute-update-takes-effect", "deployments": [], "key": "sqs/deploy-cfn-attribute-update-takes-effect", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_deploy_cfn_attribute_update_takes_effect.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-dlq-redrive-behaves", "deployments": [], "key": "sqs/deploy-cfn-dlq-redrive-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_deploy_cfn_dlq_redrive_behaves.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-encryption-update-keeps-earlier-messages-readable", "deployments": [], "key": "sqs/deploy-cfn-encryption-update-keeps-earlier-messages-readable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "sqs:ChangeMessageVisibility", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_deploy_cfn_encryption_update_keeps_earlier_messages_readable.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-fifo-dlq-redrive-allow-policy-admits-only-the-stack-source", "deployments": [], "key": "sqs/deploy-cfn-fifo-dlq-redrive-allow-policy-admits-only-the-stack-source", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data", "timing:real-time"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_deploy_cfn_fifo_dlq_redrive_allow_policy_admits_only_the_stack_source.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-fifo-queue-dedup-behaves", "deployments": [], "key": "sqs/deploy-cfn-fifo-queue-dedup-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_deploy_cfn_fifo_queue_dedup_behaves.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-kms-queue-inline-policy-enforces-key-and-queue-grants", "deployments": [], "key": "sqs/deploy-cfn-kms-queue-inline-policy-enforces-key-and-queue-grants", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_deploy_cfn_kms_queue_inline_policy_enforces_key_and_queue_grants.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-queue-behaves", "deployments": [], "key": "sqs/deploy-cfn-queue-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_deploy_cfn_queue_behaves.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-queue-invalid-message-contents-rejected", "deployments": [], "key": "sqs/deploy-cfn-queue-invalid-message-contents-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_deploy_cfn_queue_invalid_message_contents_rejected.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-queue-policy-grants-role-and-update-revokes", "deployments": [], "key": "sqs/deploy-cfn-queue-policy-grants-role-and-update-revokes", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_deploy_cfn_queue_policy_grants_role_and_update_revokes.py", "service": "sqs"} {"check_id": "sqs.deploy-cfn-stack-delete-removes-queue", "deployments": [], "key": "sqs/deploy-cfn-stack-delete-removes-queue", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_deploy_cfn_stack_delete_removes_queue.py", "service": "sqs"} {"check_id": "sqs.dlq-move-preserves-standard-enqueue-timestamp-and-resets-it-for-fifo", "deployments": [], "key": "sqs/dlq-move-preserves-standard-enqueue-timestamp-and-resets-it-for-fifo", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_dlq_move_preserves_standard_enqueue_timestamp_and_resets_it_for_fifo.py", "service": "sqs"} {"check_id": "sqs.dlq-move-withheld-until-the-maxreceivecount-th-delivery", "deployments": [], "key": "sqs/dlq-move-withheld-until-the-maxreceivecount-th-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_dlq_move_withheld_until_the_maxreceivecount_th_delivery.py", "service": "sqs"} {"check_id": "sqs.dlq-moves-only-the-undeleted-message-after-four-deliveries", "deployments": [], "key": "sqs/dlq-moves-only-the-undeleted-message-after-four-deliveries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_dlq_moves_only_the_undeleted_message_after_four_deliveries.py", "service": "sqs"} {"check_id": "sqs.dlq-redrive", "deployments": [], "key": "sqs/dlq-redrive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_dlq_redrive.py", "service": "sqs"} {"check_id": "sqs.duplicate-batch-ids", "deployments": [], "key": "sqs/duplicate-batch-ids", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_duplicate_batch_ids.py", "service": "sqs"} {"check_id": "sqs.e2e-delay-queue-then-consume", "deployments": [], "key": "sqs/e2e-delay-queue-then-consume", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_e2e_delay_queue_then_consume.py", "service": "sqs"} {"check_id": "sqs.e2e-dlq-redrive-full-cycle", "deployments": [], "key": "sqs/e2e-dlq-redrive-full-cycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_e2e_dlq_redrive_full_cycle.py", "service": "sqs"} {"check_id": "sqs.e2e-permission-boundary-then-revoke", "deployments": [], "key": "sqs/e2e-permission-boundary-then-revoke", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListUserPolicies", "iam:PutUserPolicy", "sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:RemovePermission", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_e2e_permission_boundary_then_revoke.py", "service": "sqs"} {"check_id": "sqs.e2e-work-queue-pattern", "deployments": [], "key": "sqs/e2e-work-queue-pattern", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_e2e_work_queue_pattern.py", "service": "sqs"} {"check_id": "sqs.empty-collection-parameters-validated-inconsistently", "deployments": [], "key": "sqs/empty-collection-parameters-validated-inconsistently", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "sqs:SetQueueAttributes", "sqs:TagQueue", "sqs:UntagQueue"], "path": "behavioral/sqs/check_empty_collection_parameters_validated_inconsistently.py", "service": "sqs"} {"check_id": "sqs.empty-message-body", "deployments": [], "key": "sqs/empty-message-body", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_empty_message_body.py", "service": "sqs"} {"check_id": "sqs.empty-vs-absent-message-attribute-preserved", "deployments": [], "key": "sqs/empty-vs-absent-message-attribute-preserved", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_empty_vs_absent_message_attribute_preserved.py", "service": "sqs"} {"check_id": "sqs.fifo-batch-with-a-group-less-entry-rejected-whole-and-group-stream-unchanged", "deployments": [], "key": "sqs/fifo-batch-with-a-group-less-entry-rejected-whole-and-group-stream-unchanged", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_fifo_batch_with_a_group_less_entry_rejected_whole_and_group_stream_unchanged.py", "service": "sqs"} {"check_id": "sqs.fifo-concurrent-senders-preserve-per-sender-order", "deployments": [], "key": "sqs/fifo-concurrent-senders-preserve-per-sender-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_concurrent_senders_preserve_per_sender_order.py", "service": "sqs"} {"check_id": "sqs.fifo-content-based-dedup", "deployments": [], "key": "sqs/fifo-content-based-dedup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_content_based_dedup.py", "service": "sqs"} {"check_id": "sqs.fifo-content-based-dedup-ignores-attributes", "deployments": [], "key": "sqs/fifo-content-based-dedup-ignores-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_content_based_dedup_ignores_attributes.py", "service": "sqs"} {"check_id": "sqs.fifo-dead-letter-queue-move-sets-dedup-id-to-original-message-id", "deployments": [], "key": "sqs/fifo-dead-letter-queue-move-sets-dedup-id-to-original-message-id", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_dead_letter_queue_move_sets_dedup_id_to_original_message_id.py", "service": "sqs"} {"check_id": "sqs.fifo-dedup", "deployments": [], "key": "sqs/fifo-dedup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_dedup.py", "service": "sqs"} {"check_id": "sqs.fifo-dedup-id-reusable-after-dedup-window-elapses", "deployments": [], "key": "sqs/fifo-dedup-id-reusable-after-dedup-window-elapses", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_dedup_id_reusable_after_dedup_window_elapses.py", "service": "sqs"} {"check_id": "sqs.fifo-dedup-scope-message-group-allows-same-dedup-id-in-different-groups", "deployments": [], "key": "sqs/fifo-dedup-scope-message-group-allows-same-dedup-id-in-different-groups", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_dedup_scope_message_group_allows_same_dedup_id_in_different_groups.py", "service": "sqs"} {"check_id": "sqs.fifo-dedup-survives-consumer-delete", "deployments": [], "key": "sqs/fifo-dedup-survives-consumer-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_dedup_survives_consumer_delete.py", "service": "sqs"} {"check_id": "sqs.fifo-exactly-once-multiple-sends", "deployments": [], "key": "sqs/fifo-exactly-once-multiple-sends", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_exactly_once_multiple_sends.py", "service": "sqs"} {"check_id": "sqs.fifo-group-blocked-by-a-poison-message-resumes-after-the-dlq-move", "deployments": [], "key": "sqs/fifo-group-blocked-by-a-poison-message-resumes-after-the-dlq-move", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_group_blocked_by_a_poison_message_resumes_after_the_dlq_move.py", "service": "sqs"} {"check_id": "sqs.fifo-group-held-for-the-extended-visibility-timeout-not-the-original", "deployments": [], "key": "sqs/fifo-group-held-for-the-extended-visibility-timeout-not-the-original", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_group_held_for_the_extended_visibility_timeout_not_the_original.py", "service": "sqs"} {"check_id": "sqs.fifo-group-isolation", "deployments": [], "key": "sqs/fifo-group-isolation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_group_isolation.py", "service": "sqs"} {"check_id": "sqs.fifo-group-less-send-rejected-without-consuming-its-deduplication-id", "deployments": [], "key": "sqs/fifo-group-less-send-rejected-without-consuming-its-deduplication-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_group_less_send_rejected_without_consuming_its_deduplication_id.py", "service": "sqs"} {"check_id": "sqs.fifo-group-natural-visibility-expiry-keeps-group-held-and-redelivers-same-head", "deployments": [], "key": "sqs/fifo-group-natural-visibility-expiry-keeps-group-held-and-redelivers-same-head", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_group_natural_visibility_expiry_keeps_group_held_and_redelivers_same_head.py", "service": "sqs"} {"check_id": "sqs.fifo-message-group-held-by-one-concurrent-receiver-at-a-time", "deployments": [], "key": "sqs/fifo-message-group-held-by-one-concurrent-receiver-at-a-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_message_group_held_by_one_concurrent_receiver_at_a_time.py", "service": "sqs"} {"check_id": "sqs.fifo-missing-group-id", "deployments": [], "key": "sqs/fifo-missing-group-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_missing_group_id.py", "service": "sqs"} {"check_id": "sqs.fifo-missing-message-group-id-rejected", "deployments": [], "key": "sqs/fifo-missing-message-group-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_missing_message_group_id_rejected.py", "service": "sqs"} {"check_id": "sqs.fifo-ordering", "deployments": [], "key": "sqs/fifo-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_ordering.py", "service": "sqs"} {"check_id": "sqs.fifo-per-group-order-preserved-under-concurrent-receivers", "deployments": [], "key": "sqs/fifo-per-group-order-preserved-under-concurrent-receivers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_per_group_order_preserved_under_concurrent_receivers.py", "service": "sqs"} {"check_id": "sqs.fifo-per-message-delay-seconds-rejected", "deployments": [], "key": "sqs/fifo-per-message-delay-seconds-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_fifo_per_message_delay_seconds_rejected.py", "service": "sqs"} {"check_id": "sqs.fifo-queue-moves-an-exact-multibyte-message-and-the-deleted-fifo-queue-is-gone", "deployments": [], "key": "sqs/fifo-queue-moves-an-exact-multibyte-message-and-the-deleted-fifo-queue-is-gone", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_queue_moves_an_exact_multibyte_message_and_the_deleted_fifo_queue_is_gone.py", "service": "sqs"} {"check_id": "sqs.fifo-receive-request-attempt-id-replays-batch", "deployments": [], "key": "sqs/fifo-receive-request-attempt-id-replays-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_receive_request_attempt_id_replays_batch.py", "service": "sqs"} {"check_id": "sqs.fifo-send-message-batch-shared-dedup-id-first-entry-wins", "deployments": [], "key": "sqs/fifo-send-message-batch-shared-dedup-id-first-entry-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_fifo_send_message_batch_shared_dedup_id_first_entry_wins.py", "service": "sqs"} {"check_id": "sqs.fifo-send-without-dedup-id-fails", "deployments": [], "key": "sqs/fifo-send-without-dedup-id-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_send_without_dedup_id_fails.py", "service": "sqs"} {"check_id": "sqs.fifo-send-without-message-group-id-rejected-and-group-stream-unchanged", "deployments": [], "key": "sqs/fifo-send-without-message-group-id-rejected-and-group-stream-unchanged", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_send_without_message_group_id_rejected_and_group_stream_unchanged.py", "service": "sqs"} {"check_id": "sqs.fifo-sequence-number-monotonic-within-group", "deployments": [], "key": "sqs/fifo-sequence-number-monotonic-within-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_sequence_number_monotonic_within_group.py", "service": "sqs"} {"check_id": "sqs.fifo-throughput-limit-per-message-group-requires-message-group-scope-rejected", "deployments": [], "key": "sqs/fifo-throughput-limit-per-message-group-requires-message-group-scope-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_fifo_throughput_limit_per_message_group_requires_message_group_scope_rejected.py", "service": "sqs"} {"check_id": "sqs.fifo-token-ids-limited-to-128-printable-characters-rejected", "deployments": [], "key": "sqs/fifo-token-ids-limited-to-128-printable-characters-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_fifo_token_ids_limited_to_128_printable_characters_rejected.py", "service": "sqs"} {"check_id": "sqs.fifo-twenty-group-head-of-line-isolation-at-volume", "deployments": [], "key": "sqs/fifo-twenty-group-head-of-line-isolation-at-volume", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_fifo_twenty_group_head_of_line_isolation_at_volume.py", "service": "sqs"} {"check_id": "sqs.get-queue-attributes-invalid-attribute-name", "deployments": [], "key": "sqs/get-queue-attributes-invalid-attribute-name", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sqs/check_get_queue_attributes_invalid_attribute_name.py", "service": "sqs"} {"check_id": "sqs.get-queue-attributes-invalid-attribute-name-rejected", "deployments": [], "key": "sqs/get-queue-attributes-invalid-attribute-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sqs/check_get_queue_attributes_invalid_attribute_name_rejected.py", "service": "sqs"} {"check_id": "sqs.get-queue-url-does-not-format-validate-the-name", "deployments": [], "key": "sqs/get-queue-url-does-not-format-validate-the-name", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_get_queue_url_does_not_format_validate_the_name.py", "service": "sqs"} {"check_id": "sqs.get-queue-url-with-the-owner-account-id-resolves-the-queue-and-a-missing-name-rejected", "deployments": [], "key": "sqs/get-queue-url-with-the-owner-account-id-resolves-the-queue-and-a-missing-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_get_queue_url_with_the_owner_account_id_resolves_the_queue_and_a_missing_name_rejected.py", "service": "sqs"} {"check_id": "sqs.identity-policy-requesttag-condition-gates-create-queue", "deployments": [], "key": "sqs/identity-policy-requesttag-condition-gates-create-queue", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ListQueueTags", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_identity_policy_requesttag_condition_gates_create_queue.py", "service": "sqs"} {"check_id": "sqs.identity-policy-resourcetag-condition-gates-send-message", "deployments": [], "key": "sqs/identity-policy-resourcetag-condition-gates-send-message", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_identity_policy_resourcetag_condition_gates_send_message.py", "service": "sqs"} {"check_id": "sqs.immutable-queue-arn-mutation-rejected", "deployments": [], "key": "sqs/immutable-queue-arn-mutation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_immutable_queue_arn_mutation_rejected.py", "service": "sqs"} {"check_id": "sqs.kms-data-key-reuse-period-bounds-rejected", "deployments": [], "key": "sqs/kms-data-key-reuse-period-bounds-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_kms_data_key_reuse_period_bounds_rejected.py", "service": "sqs"} {"check_id": "sqs.kms-key-permission-gates-send-message", "deployments": [], "key": "sqs/kms-key-permission-gates-send-message", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:TagQueue", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_kms_key_permission_gates_send_message.py", "service": "sqs"} {"check_id": "sqs.list-dead-letter-source-queues-paginates", "deployments": [], "key": "sqs/list-dead-letter-source-queues-paginates", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_list_dead_letter_source_queues_paginates.py", "service": "sqs"} {"check_id": "sqs.list-dead-letter-source-queues-reflects-redrive-policy", "deployments": [], "key": "sqs/list-dead-letter-source-queues-reflects-redrive-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues"], "path": "behavioral/sqs/check_list_dead_letter_source_queues_reflects_redrive_policy.py", "service": "sqs"} {"check_id": "sqs.list-message-move-tasks-max-results-out-of-range-rejected", "deployments": [], "key": "sqs/list-message-move-tasks-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:SendMessage", "sqs:SetQueueAttributes", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_list_message_move_tasks_max_results_out_of_range_rejected.py", "service": "sqs"} {"check_id": "sqs.list-queues-max-results-paginates-with-next-token", "deployments": [], "key": "sqs/list-queues-max-results-paginates-with-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueues"], "path": "behavioral/sqs/check_list_queues_max_results_paginates_with_next_token.py", "service": "sqs"} {"check_id": "sqs.list-queues-pagination-bad-input-rejected", "deployments": [], "key": "sqs/list-queues-pagination-bad-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueues"], "path": "behavioral/sqs/check_list_queues_pagination_bad_input_rejected.py", "service": "sqs"} {"check_id": "sqs.list-queues-prefix-matches-only-at-start", "deployments": [], "key": "sqs/list-queues-prefix-matches-only-at-start", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueues"], "path": "behavioral/sqs/check_list_queues_prefix_matches_only_at_start.py", "service": "sqs"} {"check_id": "sqs.list-queues-without-max-results-omits-next-token", "deployments": [], "key": "sqs/list-queues-without-max-results-omits-next-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueues"], "path": "behavioral/sqs/check_list_queues_without_max_results_omits_next_token.py", "service": "sqs"} {"check_id": "sqs.long-poll-blocks-on-empty", "deployments": [], "key": "sqs/long-poll-blocks-on-empty", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/sqs/check_long_poll_blocks_on_empty.py", "service": "sqs"} {"check_id": "sqs.long-poll-returns-immediately-when-message-already-available", "deployments": [], "key": "sqs/long-poll-returns-immediately-when-message-already-available", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_long_poll_returns_immediately_when_message_already_available.py", "service": "sqs"} {"check_id": "sqs.long-poll-wakes-when-delay-or-visibility-expires", "deployments": [], "key": "sqs/long-poll-wakes-when-delay-or-visibility-expires", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_long_poll_wakes_when_delay_or_visibility_expires.py", "service": "sqs"} {"check_id": "sqs.long-polling-returns-fast", "deployments": [], "key": "sqs/long-polling-returns-fast", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_long_polling_returns_fast.py", "service": "sqs"} {"check_id": "sqs.long-polling-wakes-on-message-arrival", "deployments": [], "key": "sqs/long-polling-wakes-on-message-arrival", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_long_polling_wakes_on_message_arrival.py", "service": "sqs"} {"check_id": "sqs.max-message-size", "deployments": [], "key": "sqs/max-message-size", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_max_message_size.py", "service": "sqs"} {"check_id": "sqs.max-message-size-lowered-spares-already-enqueued-messages", "deployments": [], "key": "sqs/max-message-size-lowered-spares-already-enqueued-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_max_message_size_lowered_spares_already_enqueued_messages.py", "service": "sqs"} {"check_id": "sqs.max-size-message-body-round-trip", "deployments": [], "key": "sqs/max-size-message-body-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_max_size_message_body_round_trip.py", "service": "sqs"} {"check_id": "sqs.maximum-message-size-is-a-byte-boundary-not-a-character-count", "deployments": [], "key": "sqs/maximum-message-size-is-a-byte-boundary-not-a-character-count", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_maximum_message_size_is_a_byte_boundary_not_a_character_count.py", "service": "sqs"} {"check_id": "sqs.md5-of-message-attributes", "deployments": [], "key": "sqs/md5-of-message-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_md5_of_message_attributes.py", "service": "sqs"} {"check_id": "sqs.message-attribute-name-rules-rejected", "deployments": [], "key": "sqs/message-attribute-name-rules-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_attribute_name_rules_rejected.py", "service": "sqs"} {"check_id": "sqs.message-attribute-names-differing-only-in-case-are-distinct", "deployments": [], "key": "sqs/message-attribute-names-differing-only-in-case-are-distinct", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_attribute_names_differing_only_in_case_are_distinct.py", "service": "sqs"} {"check_id": "sqs.message-attribute-type-and-number-value-validated", "deployments": [], "key": "sqs/message-attribute-type-and-number-value-validated", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_attribute_type_and_number_value_validated.py", "service": "sqs"} {"check_id": "sqs.message-attribute-type-length-bounds-rejected", "deployments": [], "key": "sqs/message-attribute-type-length-bounds-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_attribute_type_length_bounds_rejected.py", "service": "sqs"} {"check_id": "sqs.message-attribute-value-in-the-wrong-field-for-its-data-type-rejected", "deployments": [], "key": "sqs/message-attribute-value-in-the-wrong-field-for-its-data-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_message_attribute_value_in_the_wrong_field_for_its_data_type_rejected.py", "service": "sqs"} {"check_id": "sqs.message-attributes-round-trip-types", "deployments": [], "key": "sqs/message-attributes-round-trip-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_attributes_round_trip_types.py", "service": "sqs"} {"check_id": "sqs.message-attributes-round-trip-with-md5", "deployments": [], "key": "sqs/message-attributes-round-trip-with-md5", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_attributes_round_trip_with_md5.py", "service": "sqs"} {"check_id": "sqs.message-attributes-roundtrip", "deployments": [], "key": "sqs/message-attributes-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_attributes_roundtrip.py", "service": "sqs"} {"check_id": "sqs.message-digests-recomputed-from-the-documented-canonical-encoding", "deployments": [], "key": "sqs/message-digests-recomputed-from-the-documented-canonical-encoding", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_digests_recomputed_from_the_documented_canonical_encoding.py", "service": "sqs"} {"check_id": "sqs.message-move-task-across-regions-rejected", "deployments": [], "key": "sqs/message-move-task-across-regions-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_message_move_task_across_regions_rejected.py", "service": "sqs"} {"check_id": "sqs.message-move-task-completes-and-drains-dlq", "deployments": [], "key": "sqs/message-move-task-completes-and-drains-dlq", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_message_move_task_completes_and_drains_dlq.py", "service": "sqs"} {"check_id": "sqs.message-move-task-redrive-assigns-new-message-id-and-sent-timestamp", "deployments": [], "key": "sqs/message-move-task-redrive-assigns-new-message-id-and-sent-timestamp", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_message_move_task_redrive_assigns_new_message_id_and_sent_timestamp.py", "service": "sqs"} {"check_id": "sqs.message-move-task-redrives-dlq-back-to-source", "deployments": [], "key": "sqs/message-move-task-redrives-dlq-back-to-source", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_message_move_task_redrives_dlq_back_to_source.py", "service": "sqs"} {"check_id": "sqs.message-retention-period-expires-old-messages", "deployments": [], "key": "sqs/message-retention-period-expires-old-messages", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_retention_period_expires_old_messages.py", "service": "sqs"} {"check_id": "sqs.message-retention-period-expires-undeleted-message", "deployments": [], "key": "sqs/message-retention-period-expires-undeleted-message", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_retention_period_expires_undeleted_message.py", "service": "sqs"} {"check_id": "sqs.message-size-counts-attribute-name-type-and-value", "deployments": [], "key": "sqs/message-size-counts-attribute-name-type-and-value", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_size_counts_attribute_name_type_and_value.py", "service": "sqs"} {"check_id": "sqs.message-system-attribute-other-than-aws-trace-header-rejected", "deployments": [], "key": "sqs/message-system-attribute-other-than-aws-trace-header-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_message_system_attribute_other_than_aws_trace_header_rejected.py", "service": "sqs"} {"check_id": "sqs.message-timer", "deployments": [], "key": "sqs/message-timer", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_message_timer.py", "service": "sqs"} {"check_id": "sqs.more-than-ten-message-attributes-rejected", "deployments": [], "key": "sqs/more-than-ten-message-attributes-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_more_than_ten_message_attributes_rejected.py", "service": "sqs"} {"check_id": "sqs.nonexistent-queue", "deployments": [], "key": "sqs/nonexistent-queue", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/sqs/check_nonexistent_queue.py", "service": "sqs"} {"check_id": "sqs.numeric-message-attribute-precision-preserved", "deployments": [], "key": "sqs/numeric-message-attribute-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_numeric_message_attribute_precision_preserved.py", "service": "sqs"} {"check_id": "sqs.op-cancel-unknown-move-task-rejected", "deployments": [], "key": "sqs/op-cancel-unknown-move-task-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CancelMessageMoveTask", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:SendMessage", "sqs:SetQueueAttributes", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_op_cancel_unknown_move_task_rejected.py", "service": "sqs"} {"check_id": "sqs.op-delay-seconds-out-of-range-rejected", "deployments": [], "key": "sqs/op-delay-seconds-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_op_delay_seconds_out_of_range_rejected.py", "service": "sqs"} {"check_id": "sqs.op-fifo-attributes-on-standard-queue-rejected", "deployments": [], "key": "sqs/op-fifo-attributes-on-standard-queue-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_op_fifo_attributes_on_standard_queue_rejected.py", "service": "sqs"} {"check_id": "sqs.op-message-move-task-on-non-dlq-rejected", "deployments": [], "key": "sqs/op-message-move-task-on-non-dlq-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_op_message_move_task_on_non_dlq_rejected.py", "service": "sqs"} {"check_id": "sqs.op-queue-name-validation-rejected", "deployments": [], "key": "sqs/op-queue-name-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_op_queue_name_validation_rejected.py", "service": "sqs"} {"check_id": "sqs.op-receive-message-param-bounds-rejected", "deployments": [], "key": "sqs/op-receive-message-param-bounds-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_op_receive_message_param_bounds_rejected.py", "service": "sqs"} {"check_id": "sqs.op-send-message-oversize-rejected", "deployments": [], "key": "sqs/op-send-message-oversize-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_op_send_message_oversize_rejected.py", "service": "sqs"} {"check_id": "sqs.op-tag-and-permission-validation-rejected", "deployments": [], "key": "sqs/op-tag-and-permission-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "sqs:RemovePermission", "sqs:TagQueue", "sqs:UntagQueue", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_op_tag_and_permission_validation_rejected.py", "service": "sqs"} {"check_id": "sqs.op-visibility-timeout-out-of-range-rejected", "deployments": [], "key": "sqs/op-visibility-timeout-out-of-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_op_visibility_timeout_out_of_range_rejected.py", "service": "sqs"} {"check_id": "sqs.operations-fail-after-delete", "deployments": [], "key": "sqs/operations-fail-after-delete", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/sqs/check_operations_fail_after_delete.py", "service": "sqs"} {"check_id": "sqs.overly-permissive-cross-account-receive-denied", "deployments": [], "key": "sqs/overly-permissive-cross-account-receive-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:RemovePermission", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_overly_permissive_cross_account_receive_denied.py", "service": "sqs"} {"check_id": "sqs.overly-permissive-delete-queue-without-permission-denied", "deployments": [], "key": "sqs/overly-permissive-delete-queue-without-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_overly_permissive_delete_queue_without_permission_denied.py", "service": "sqs"} {"check_id": "sqs.overly-permissive-send-without-permission-denied", "deployments": [], "key": "sqs/overly-permissive-send-without-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:RemovePermission", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_overly_permissive_send_without_permission_denied.py", "service": "sqs"} {"check_id": "sqs.per-message-delay-seconds-overrides-queue-delay-both-directions", "deployments": [], "key": "sqs/per-message-delay-seconds-overrides-queue-delay-both-directions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_per_message_delay_seconds_overrides_queue_delay_both_directions.py", "service": "sqs"} {"check_id": "sqs.purge-empties", "deployments": [], "key": "sqs/purge-empties", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:PurgeQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_purge_empties.py", "service": "sqs"} {"check_id": "sqs.purge-queue-discards-in-flight-messages", "deployments": [], "key": "sqs/purge-queue-discards-in-flight-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:PurgeQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_purge_queue_discards_in_flight_messages.py", "service": "sqs"} {"check_id": "sqs.purge-queue-in-progress-rejected", "deployments": [], "key": "sqs/purge-queue-in-progress-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:PurgeQueue", "sqs:SendMessage"], "path": "behavioral/sqs/check_purge_queue_in_progress_rejected.py", "service": "sqs"} {"check_id": "sqs.purge-queue-removes-all-messages", "deployments": [], "key": "sqs/purge-queue-removes-all-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:PurgeQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_purge_queue_removes_all_messages.py", "service": "sqs"} {"check_id": "sqs.purge-queue-resets-the-fifo-dedup-cache", "deployments": [], "key": "sqs/purge-queue-resets-the-fifo-dedup-cache", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:PurgeQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_purge_queue_resets_the_fifo_dedup_cache.py", "service": "sqs"} {"check_id": "sqs.query-and-json-protocol-clients-share-one-queue", "deployments": [], "key": "sqs/query-and-json-protocol-clients-share-one-queue", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_query_and_json_protocol_clients_share_one_queue.py", "service": "sqs"} {"check_id": "sqs.query-compatible-error-carriers-differ-by-consumer-rejected", "deployments": [], "key": "sqs/query-compatible-error-carriers-differ-by-consumer-rejected", "labels": ["axis:rejection", "dp:api", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:Invoke", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_query_compatible_error_carriers_differ_by_consumer_rejected.py", "service": "sqs"} {"check_id": "sqs.query-protocol-refusals-are-xml-error-responses-rejected", "deployments": [], "key": "sqs/query-protocol-refusals-are-xml-error-responses-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_query_protocol_refusals_are_xml_error_responses_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-arn-and-get-queue-url-consistency", "deployments": [], "key": "sqs/queue-arn-and-get-queue-url-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_arn_and_get_queue_url_consistency.py", "service": "sqs"} {"check_id": "sqs.queue-arn-carries-the-creation-region", "deployments": [], "key": "sqs/queue-arn-carries-the-creation-region", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListQueues"], "path": "behavioral/sqs/check_queue_arn_carries_the_creation_region.py", "service": "sqs"} {"check_id": "sqs.queue-arn-stable-round-trip", "deployments": [], "key": "sqs/queue-arn-stable-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_arn_stable_round_trip.py", "service": "sqs"} {"check_id": "sqs.queue-attribute-range-bounds-rejected", "deployments": [], "key": "sqs/queue-attribute-range-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_queue_attribute_range_bounds_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-attributes-roundtrip", "deployments": [], "key": "sqs/queue-attributes-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sqs/check_queue_attributes_roundtrip.py", "service": "sqs"} {"check_id": "sqs.queue-create-idempotent-same-attributes", "deployments": [], "key": "sqs/queue-create-idempotent-same-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_queue_create_idempotent_same_attributes.py", "service": "sqs"} {"check_id": "sqs.queue-delay-change-is-retroactive-for-fifo-but-not-standard", "deployments": [], "key": "sqs/queue-delay-change-is-retroactive-for-fifo-but-not-standard", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_queue_delay_change_is_retroactive_for_fifo_but_not_standard.py", "service": "sqs"} {"check_id": "sqs.queue-delay-seconds-attribute-bounds-rejected", "deployments": [], "key": "sqs/queue-delay-seconds-attribute-bounds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_queue_delay_seconds_attribute_bounds_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-deleted-recently-on-fast-recreate-rejected", "deployments": [], "key": "sqs/queue-deleted-recently-on-fast-recreate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_queue_deleted_recently_on_fast_recreate_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-level-wait-time", "deployments": [], "key": "sqs/queue-level-wait-time", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/sqs/check_queue_level_wait_time.py", "service": "sqs"} {"check_id": "sqs.queue-level-wait-time-wakes-on-arrival", "deployments": [], "key": "sqs/queue-level-wait-time-wakes-on-arrival", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_queue_level_wait_time_wakes_on_arrival.py", "service": "sqs"} {"check_id": "sqs.queue-moves-a-batch-of-exact-messages-and-the-deleted-queue-refuses-batch-calls", "deployments": [], "key": "sqs/queue-moves-a-batch-of-exact-messages-and-the-deleted-queue-refuses-batch-calls", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_queue_moves_a_batch_of_exact_messages_and_the_deleted_queue_refuses_batch_calls.py", "service": "sqs"} {"check_id": "sqs.queue-moves-an-exact-message-and-the-deleted-queue-is-gone", "deployments": [], "key": "sqs/queue-moves-an-exact-message-and-the-deleted-queue-is-gone", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListQueues", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_queue_moves_an_exact_message_and_the_deleted_queue_is_gone.py", "service": "sqs"} {"check_id": "sqs.queue-name-eighty-character-boundary-rejected", "deployments": [], "key": "sqs/queue-name-eighty-character-boundary-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_queue_name_eighty_character_boundary_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-name-exists", "deployments": [], "key": "sqs/queue-name-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sqs/check_queue_name_exists.py", "service": "sqs"} {"check_id": "sqs.queue-name-exists-conflicting-attributes-rejected", "deployments": [], "key": "sqs/queue-name-exists-conflicting-attributes-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes"], "path": "behavioral/sqs/check_queue_name_exists_conflicting_attributes_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-name-resolution-is-case-sensitive-and-exact", "deployments": [], "key": "sqs/queue-name-resolution-is-case-sensitive-and-exact", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ListQueues"], "path": "behavioral/sqs/check_queue_name_resolution_is_case_sensitive_and_exact.py", "service": "sqs"} {"check_id": "sqs.queue-policy-action-names-outside-the-sqs-action-list-rejected", "deployments": [], "key": "sqs/queue-policy-action-names-outside-the-sqs-action-list-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_policy_action_names_outside_the_sqs_action_list_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-policy-attribute-normalizes-principal-and-clears", "deployments": [], "key": "sqs/queue-policy-attribute-normalizes-principal-and-clears", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_queue_policy_attribute_normalizes_principal_and_clears.py", "service": "sqs"} {"check_id": "sqs.queue-policy-explicit-deny-blocks-send", "deployments": [], "key": "sqs/queue-policy-explicit-deny-blocks-send", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_policy_explicit_deny_blocks_send.py", "service": "sqs"} {"check_id": "sqs.queue-policy-naming-nonexistent-principal-rejected", "deployments": [], "key": "sqs/queue-policy-naming-nonexistent-principal-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_policy_naming_nonexistent_principal_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-policy-naming-the-same-queue-name-in-another-region-grants-nothing", "deployments": [], "key": "sqs/queue-policy-naming-the-same-queue-name-in-another-region-grants-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_policy_naming_the_same_queue_name_in_another_region_grants_nothing.py", "service": "sqs"} {"check_id": "sqs.queue-policy-principal-tag-condition-gates-send", "deployments": [], "key": "sqs/queue-policy-principal-tag-condition-gates-send", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:TagRole", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_policy_principal_tag_condition_gates_send.py", "service": "sqs"} {"check_id": "sqs.queue-policy-send-grant-does-not-authorize-receive-or-delete", "deployments": [], "key": "sqs/queue-policy-send-grant-does-not-authorize-receive-or-delete", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_policy_send_grant_does_not_authorize_receive_or_delete.py", "service": "sqs"} {"check_id": "sqs.queue-policy-source-arn-condition-denies-a-direct-caller", "deployments": [], "key": "sqs/queue-policy-source-arn-condition-denies-a-direct-caller", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_policy_source_arn_condition_denies_a_direct_caller.py", "service": "sqs"} {"check_id": "sqs.queue-policy-statement-for-another-queue-grants-nothing", "deployments": [], "key": "sqs/queue-policy-statement-for-another-queue-grants-nothing", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_queue_policy_statement_for_another_queue_grants_nothing.py", "service": "sqs"} {"check_id": "sqs.queue-url-from-another-region-not-served-rejected", "deployments": [], "key": "sqs/queue-url-from-another-region-not-served-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_queue_url_from_another_region_not_served_rejected.py", "service": "sqs"} {"check_id": "sqs.queue-visibility-timeout-change-spares-in-flight-messages", "deployments": [], "key": "sqs/queue-visibility-timeout-change-spares-in-flight-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_queue_visibility_timeout_change_spares_in_flight_messages.py", "service": "sqs"} {"check_id": "sqs.random-body-roundtrip", "deployments": [], "key": "sqs/random-body-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_random_body_roundtrip.py", "service": "sqs"} {"check_id": "sqs.raw-json-post-missing-target-or-mismatched-content-type-rejected", "deployments": [], "key": "sqs/raw-json-post-missing-target-or-mismatched-content-type-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["sqs:DeleteQueue", "sqs:GetQueueUrl"], "path": "behavioral/sqs/check_raw_json_post_missing_target_or_mismatched_content_type_rejected.py", "service": "sqs"} {"check_id": "sqs.receipt-handle-changes-per-receive", "deployments": [], "key": "sqs/receipt-handle-changes-per-receive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receipt_handle_changes_per_receive.py", "service": "sqs"} {"check_id": "sqs.receipt-handle-from-a-deleted-queue-incarnation-rejected", "deployments": [], "key": "sqs/receipt-handle-from-a-deleted-queue-incarnation-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receipt_handle_from_a_deleted_queue_incarnation_rejected.py", "service": "sqs"} {"check_id": "sqs.receipt-handle-from-another-queue-rejected", "deployments": [], "key": "sqs/receipt-handle-from-another-queue-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receipt_handle_from_another_queue_rejected.py", "service": "sqs"} {"check_id": "sqs.receive-count-and-first-receive-timestamp-invariants-across-redeliveries", "deployments": [], "key": "sqs/receive-count-and-first-receive-timestamp-invariants-across-redeliveries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_count_and_first_receive_timestamp_invariants_across_redeliveries.py", "service": "sqs"} {"check_id": "sqs.receive-count-increments", "deployments": [], "key": "sqs/receive-count-increments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_count_increments.py", "service": "sqs"} {"check_id": "sqs.receive-hides", "deployments": [], "key": "sqs/receive-hides", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_hides.py", "service": "sqs"} {"check_id": "sqs.receive-max-messages", "deployments": [], "key": "sqs/receive-max-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_max_messages.py", "service": "sqs"} {"check_id": "sqs.receive-message-attribute-name-wildcard-selects-by-name-prefix", "deployments": [], "key": "sqs/receive-message-attribute-name-wildcard-selects-by-name-prefix", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_message_attribute_name_wildcard_selects_by_name_prefix.py", "service": "sqs"} {"check_id": "sqs.receive-message-attribute-selectivity", "deployments": [], "key": "sqs/receive-message-attribute-selectivity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_message_attribute_selectivity.py", "service": "sqs"} {"check_id": "sqs.receive-message-respects-max-number-of-messages-cap", "deployments": [], "key": "sqs/receive-message-respects-max-number-of-messages-cap", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_message_respects_max_number_of_messages_cap.py", "service": "sqs"} {"check_id": "sqs.receive-message-visibility-timeout-override-per-call", "deployments": [], "key": "sqs/receive-message-visibility-timeout-override-per-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_message_visibility_timeout_override_per_call.py", "service": "sqs"} {"check_id": "sqs.receive-request-attempt-id-not-retryable-after-batch-modified-rejected", "deployments": [], "key": "sqs/receive-request-attempt-id-not-retryable-after-batch-modified-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_request_attempt_id_not_retryable_after_batch_modified_rejected.py", "service": "sqs"} {"check_id": "sqs.receive-request-attempt-id-replay-resets-visibility-timeout", "deployments": [], "key": "sqs/receive-request-attempt-id-replay-resets-visibility-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_request_attempt_id_replay_resets_visibility_timeout.py", "service": "sqs"} {"check_id": "sqs.receive-wait-time-zero-overrides-queue-default", "deployments": [], "key": "sqs/receive-wait-time-zero-overrides-queue-default", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_receive_wait_time_zero_overrides_queue_default.py", "service": "sqs"} {"check_id": "sqs.recreated-queue-does-not-inherit-the-deleted-queues-policy", "deployments": [], "key": "sqs/recreated-queue-does-not-inherit-the-deleted-queues-policy", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_recreated_queue_does_not_inherit_the_deleted_queues_policy.py", "service": "sqs"} {"check_id": "sqs.redrive-allow-policy-by-queue-rejects-unlisted-source", "deployments": [], "key": "sqs/redrive-allow-policy-by-queue-rejects-unlisted-source", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_redrive_allow_policy_by_queue_rejects_unlisted_source.py", "service": "sqs"} {"check_id": "sqs.redrive-allow-policy-deny-all-rejects-dlq-association-rejected", "deployments": [], "key": "sqs/redrive-allow-policy-deny-all-rejects-dlq-association-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_redrive_allow_policy_deny_all_rejects_dlq_association_rejected.py", "service": "sqs"} {"check_id": "sqs.redrive-allow-policy-denyall-blocks-automatic-redrive-on-already-wired-source", "deployments": [], "key": "sqs/redrive-allow-policy-denyall-blocks-automatic-redrive-on-already-wired-source", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_redrive_allow_policy_denyall_blocks_automatic_redrive_on_already_wired_source.py", "service": "sqs"} {"check_id": "sqs.redrive-allow-policy-denyall-does-not-block-start-message-move-task", "deployments": [], "key": "sqs/redrive-allow-policy-denyall-does-not-block-start-message-move-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_redrive_allow_policy_denyall_does_not_block_start_message_move_task.py", "service": "sqs"} {"check_id": "sqs.redrive-allow-policy-document-validation-rejected", "deployments": [], "key": "sqs/redrive-allow-policy-document-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_redrive_allow_policy_document_validation_rejected.py", "service": "sqs"} {"check_id": "sqs.redrive-policy-cleared-by-empty-string-unlinks-dlq", "deployments": [], "key": "sqs/redrive-policy-cleared-by-empty-string-unlinks-dlq", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_redrive_policy_cleared_by_empty_string_unlinks_dlq.py", "service": "sqs"} {"check_id": "sqs.redrive-policy-dlq-source-listing", "deployments": [], "key": "sqs/redrive-policy-dlq-source-listing", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues"], "path": "behavioral/sqs/check_redrive_policy_dlq_source_listing.py", "service": "sqs"} {"check_id": "sqs.redrive-policy-dlq-type-mismatch-rejected", "deployments": [], "key": "sqs/redrive-policy-dlq-type-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_redrive_policy_dlq_type_mismatch_rejected.py", "service": "sqs"} {"check_id": "sqs.redrive-policy-max-receive-count-out-of-range-rejected", "deployments": [], "key": "sqs/redrive-policy-max-receive-count-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_redrive_policy_max_receive_count_out_of_range_rejected.py", "service": "sqs"} {"check_id": "sqs.redrive-policy-missing-target-or-count-rejected", "deployments": [], "key": "sqs/redrive-policy-missing-target-or-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_redrive_policy_missing_target_or_count_rejected.py", "service": "sqs"} {"check_id": "sqs.redriven-message-restarts-its-receive-count-and-dead-letters-again-at-maxreceivecount", "deployments": [], "key": "sqs/redriven-message-restarts-its-receive-count-and-dead-letters-again-at-maxreceivecount", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_redriven_message_restarts_its_receive_count_and_dead_letters_again_at_maxreceivecount.py", "service": "sqs"} {"check_id": "sqs.remove-permission-nonexistent-label-rejected", "deployments": [], "key": "sqs/remove-permission-nonexistent-label-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:AddPermission", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:RemovePermission", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_remove_permission_nonexistent_label_rejected.py", "service": "sqs"} {"check_id": "sqs.retention-expiry-discards-an-in-flight-message", "deployments": [], "key": "sqs/retention-expiry-discards-an-in-flight-message", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_retention_expiry_discards_an_in_flight_message.py", "service": "sqs"} {"check_id": "sqs.same-name-queues-in-two-regions-hold-separate-messages", "deployments": [], "key": "sqs/same-name-queues-in-two-regions-hold-separate-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_same_name_queues_in_two_regions_hold_separate_messages.py", "service": "sqs"} {"check_id": "sqs.sdk-create-cli-read-sqs", "deployments": [], "key": "sqs/sdk-create-cli-read-sqs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SendMessage"], "path": "behavioral/sqs/check_sdk_create_cli_read_sqs.py", "service": "sqs"} {"check_id": "sqs.send-message-batch-delay-seconds-applies-to-each-entry-alone", "deployments": [], "key": "sqs/send-message-batch-delay-seconds-applies-to-each-entry-alone", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_send_message_batch_delay_seconds_applies_to_each_entry_alone.py", "service": "sqs"} {"check_id": "sqs.send-message-batch-duplicate-ids-rejected-atomically", "deployments": [], "key": "sqs/send-message-batch-duplicate-ids-rejected-atomically", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_send_message_batch_duplicate_ids_rejected_atomically.py", "service": "sqs"} {"check_id": "sqs.send-message-batch-partial-failure", "deployments": [], "key": "sqs/send-message-batch-partial-failure", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_send_message_batch_partial_failure.py", "service": "sqs"} {"check_id": "sqs.send-message-batch-too-many-entries-rejected", "deployments": [], "key": "sqs/send-message-batch-too-many-entries-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_send_message_batch_too_many_entries_rejected.py", "service": "sqs"} {"check_id": "sqs.send-message-invalid-body-character-rejected", "deployments": [], "key": "sqs/send-message-invalid-body-character-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_send_message_invalid_body_character_rejected.py", "service": "sqs"} {"check_id": "sqs.send-message-malformed-awstraceheader-accepted-then-dropped", "deployments": [], "key": "sqs/send-message-malformed-awstraceheader-accepted-then-dropped", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_send_message_malformed_awstraceheader_accepted_then_dropped.py", "service": "sqs"} {"check_id": "sqs.send-receive-delete-lifecycle", "deployments": [], "key": "sqs/send-receive-delete-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_send_receive_delete_lifecycle.py", "service": "sqs"} {"check_id": "sqs.sender-id-and-sent-timestamp-derive-from-the-caller-and-the-live-clock", "deployments": [], "key": "sqs/sender-id-and-sent-timestamp-derive-from-the-caller-and-the-live-clock", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_sender_id_and_sent_timestamp_derive_from_the_caller_and_the_live_clock.py", "service": "sqs"} {"check_id": "sqs.server-side-message-retention-auto-expunge", "deployments": [], "key": "sqs/server-side-message-retention-auto-expunge", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_server_side_message_retention_auto_expunge.py", "service": "sqs"} {"check_id": "sqs.server-side-sse-kms-transparent-round-trip", "deployments": [], "key": "sqs/server-side-sse-kms-transparent-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_server_side_sse_kms_transparent_round_trip.py", "service": "sqs"} {"check_id": "sqs.set-queue-attributes-invalid-attribute-name", "deployments": [], "key": "sqs/set-queue-attributes-invalid-attribute-name", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_set_queue_attributes_invalid_attribute_name.py", "service": "sqs"} {"check_id": "sqs.set-queue-attributes-invalid-policy-json-rejected", "deployments": [], "key": "sqs/set-queue-attributes-invalid-policy-json-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_set_queue_attributes_invalid_policy_json_rejected.py", "service": "sqs"} {"check_id": "sqs.set-queue-attributes-one-invalid-value-applies-none-rejected", "deployments": [], "key": "sqs/set-queue-attributes-one-invalid-value-applies-none-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_set_queue_attributes_one_invalid_value_applies_none_rejected.py", "service": "sqs"} {"check_id": "sqs.set-queue-attributes-policy-statement-limits-rejected", "deployments": [], "key": "sqs/set-queue-attributes-policy-statement-limits-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateUser", "iam:DeleteUser", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_set_queue_attributes_policy_statement_limits_rejected.py", "service": "sqs"} {"check_id": "sqs.set-queue-attributes-propagates-to-get-queue-attributes", "deployments": [], "key": "sqs/set-queue-attributes-propagates-to-get-queue-attributes", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_set_queue_attributes_propagates_to_get_queue_attributes.py", "service": "sqs"} {"check_id": "sqs.set-queue-attributes-readonly-attribute-rejected", "deployments": [], "key": "sqs/set-queue-attributes-readonly-attribute-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_set_queue_attributes_readonly_attribute_rejected.py", "service": "sqs"} {"check_id": "sqs.set-queue-attributes-roundtrip", "deployments": [], "key": "sqs/set-queue-attributes-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_set_queue_attributes_roundtrip.py", "service": "sqs"} {"check_id": "sqs.short-poll-returns-immediately", "deployments": [], "key": "sqs/short-poll-returns-immediately", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage"], "path": "behavioral/sqs/check_short_poll_returns_immediately.py", "service": "sqs"} {"check_id": "sqs.sqsbatch-delete-duplicate-receipt-handle-deleted-once", "deployments": [], "key": "sqs/sqsbatch-delete-duplicate-receipt-handle-deleted-once", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_sqsbatch_delete_duplicate_receipt_handle_deleted_once.py", "service": "sqs"} {"check_id": "sqs.sqsbatch-delete-full-width-one-bogus-handle-rejected", "deployments": [], "key": "sqs/sqsbatch-delete-full-width-one-bogus-handle-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_sqsbatch_delete_full_width_one_bogus_handle_rejected.py", "service": "sqs"} {"check_id": "sqs.sqsbatch-fifo-send-one-invalid-entry-rejects-whole-batch", "deployments": [], "key": "sqs/sqsbatch-fifo-send-one-invalid-entry-rejects-whole-batch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_sqsbatch_fifo_send_one_invalid_entry_rejects_whole_batch.py", "service": "sqs"} {"check_id": "sqs.sqsbatch-send-full-width-one-invalid-entry-rejected", "deployments": [], "key": "sqs/sqsbatch-send-full-width-one-invalid-entry-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_sqsbatch_send_full_width_one_invalid_entry_rejected.py", "service": "sqs"} {"check_id": "sqs.sqsbatch-send-partial-failure-preserves-survivor-attributes", "deployments": [], "key": "sqs/sqsbatch-send-partial-failure-preserves-survivor-attributes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_sqsbatch_send_partial_failure_preserves_survivor_attributes.py", "service": "sqs"} {"check_id": "sqs.sqsbatch-send-request-level-error-preempts-entry-failures-rejected", "deployments": [], "key": "sqs/sqsbatch-send-request-level-error-preempts-entry-failures-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_sqsbatch_send_request_level_error_preempts_entry_failures_rejected.py", "service": "sqs"} {"check_id": "sqs.sse-kms-consumer-without-decrypt-drives-message-to-dlq", "deployments": [], "key": "sqs/sse-kms-consumer-without-decrypt-drives-message-to-dlq", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_sse_kms_consumer_without_decrypt_drives_message_to_dlq.py", "service": "sqs"} {"check_id": "sqs.sse-kms-invalid-key-rejected", "deployments": [], "key": "sqs/sse-kms-invalid-key-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_sse_kms_invalid_key_rejected.py", "service": "sqs"} {"check_id": "sqs.sse-kms-producer-needs-generate-data-key-on-a-customer-key", "deployments": [], "key": "sqs/sse-kms-producer-needs-generate-data-key-on-a-customer-key", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "kms:CreateKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sqs/check_sse_kms_producer_needs_generate_data_key_on_a_customer_key.py", "service": "sqs"} {"check_id": "sqs.sse-rejects-anonymous-sendmessage-that-an-unencrypted-queue-accepts", "deployments": [], "key": "sqs/sse-rejects-anonymous-sendmessage-that-an-unencrypted-queue-accepts", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_sse_rejects_anonymous_sendmessage_that_an_unencrypted_queue_accepts.py", "service": "sqs"} {"check_id": "sqs.sse-sqs-is-the-default-and-exclusive-with-sse-kms", "deployments": [], "key": "sqs/sse-sqs-is-the-default-and-exclusive-with-sse-kms", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_sse_sqs_is_the_default_and_exclusive_with_sse_kms.py", "service": "sqs"} {"check_id": "sqs.sse-sqs-managed-encryption-round-trips-body-byte-exact", "deployments": [], "key": "sqs/sse-sqs-managed-encryption-round-trips-body-byte-exact", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_sse_sqs_managed_encryption_round_trips_body_byte_exact.py", "service": "sqs"} {"check_id": "sqs.standard-queue-concurrent-producers-and-consumers-lose-no-message", "deployments": [], "key": "sqs/standard-queue-concurrent-producers-and-consumers-lose-no-message", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessageBatch", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_standard_queue_concurrent_producers_and_consumers_lose_no_message.py", "service": "sqs"} {"check_id": "sqs.standard-queue-holds-more-than-one-thousand-messages", "deployments": [], "key": "sqs/standard-queue-holds-more-than-one-thousand-messages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_standard_queue_holds_more_than_one_thousand_messages.py", "service": "sqs"} {"check_id": "sqs.standard-queue-message-deduplication-id-rejected", "deployments": [], "key": "sqs/standard-queue-message-deduplication-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_standard_queue_message_deduplication_id_rejected.py", "service": "sqs"} {"check_id": "sqs.standard-queue-message-group-id-is-surfaced-and-never-locks-the-group", "deployments": [], "key": "sqs/standard-queue-message-group-id-is-surfaced-and-never-locks-the-group", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch"], "path": "behavioral/sqs/check_standard_queue_message_group_id_is_surfaced_and_never_locks_the_group.py", "service": "sqs"} {"check_id": "sqs.standard-queue-message-group-id-validated", "deployments": [], "key": "sqs/standard-queue-message-group-id-validated", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_standard_queue_message_group_id_validated.py", "service": "sqs"} {"check_id": "sqs.start-message-move-task-destination-arn-to-third-queue-bypasses-original-source", "deployments": [], "key": "sqs/start-message-move-task-destination-arn-to-third-queue-bypasses-original-source", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_start_message_move_task_destination_arn_to_third_queue_bypasses_original_source.py", "service": "sqs"} {"check_id": "sqs.start-message-move-task-invalid-rate-rejected", "deployments": [], "key": "sqs/start-message-move-task-invalid-rate-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CancelMessageMoveTask", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues", "sqs:ListMessageMoveTasks", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_start_message_move_task_invalid_rate_rejected.py", "service": "sqs"} {"check_id": "sqs.start-message-move-task-on-directly-sent-message-fails-could-not-determine-source", "deployments": [], "key": "sqs/start-message-move-task-on-directly-sent-message-fails-could-not-determine-source", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_start_message_move_task_on_directly_sent_message_fails_could_not_determine_source.py", "service": "sqs"} {"check_id": "sqs.start-message-move-task-self-referential-destination-rejected", "deployments": [], "key": "sqs/start-message-move-task-self-referential-destination-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_start_message_move_task_self_referential_destination_rejected.py", "service": "sqs"} {"check_id": "sqs.start-message-move-task-type-mismatch-rejected", "deployments": [], "key": "sqs/start-message-move-task-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_start_message_move_task_type_mismatch_rejected.py", "service": "sqs"} {"check_id": "sqs.start-message-move-task-while-one-running-rejected", "deployments": [], "key": "sqs/start-message-move-task-while-one-running-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:CancelMessageMoveTask", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ListMessageMoveTasks", "sqs:SendMessageBatch", "sqs:SetQueueAttributes", "sqs:StartMessageMoveTask"], "path": "behavioral/sqs/check_start_message_move_task_while_one_running_rejected.py", "service": "sqs"} {"check_id": "sqs.tag-nonexistent-queue", "deployments": [], "key": "sqs/tag-nonexistent-queue", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:TagQueue"], "path": "behavioral/sqs/check_tag_nonexistent_queue.py", "service": "sqs"} {"check_id": "sqs.tag-operations-on-a-deleted-queue-rejected", "deployments": [], "key": "sqs/tag-operations-on-a-deleted-queue-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:TagQueue", "sqs:UntagQueue"], "path": "behavioral/sqs/check_tag_operations_on_a_deleted_queue_rejected.py", "service": "sqs"} {"check_id": "sqs.tag-queue-invalid-tag-key-rejected", "deployments": [], "key": "sqs/tag-queue-invalid-tag-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:TagQueue", "sqs:UntagQueue"], "path": "behavioral/sqs/check_tag_queue_invalid_tag_key_rejected.py", "service": "sqs"} {"check_id": "sqs.tag-queue-merge-preserves-existing-tags", "deployments": [], "key": "sqs/tag-queue-merge-preserves-existing-tags", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:TagQueue", "sqs:UntagQueue"], "path": "behavioral/sqs/check_tag_queue_merge_preserves_existing_tags.py", "service": "sqs"} {"check_id": "sqs.tag-queue-over-fifty-tags-rejected", "deployments": [], "key": "sqs/tag-queue-over-fifty-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:TagQueue", "sqs:UntagQueue"], "path": "behavioral/sqs/check_tag_queue_over_fifty_tags_rejected.py", "service": "sqs"} {"check_id": "sqs.tag-queue-roundtrip", "deployments": [], "key": "sqs/tag-queue-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:TagQueue", "sqs:UntagQueue"], "path": "behavioral/sqs/check_tag_queue_roundtrip.py", "service": "sqs"} {"check_id": "sqs.tag-queue-system-prefix-and-length-boundaries-rejected", "deployments": [], "key": "sqs/tag-queue-system-prefix-and-length-boundaries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ListQueueTags", "sqs:TagQueue", "sqs:UntagQueue"], "path": "behavioral/sqs/check_tag_queue_system_prefix_and_length_boundaries_rejected.py", "service": "sqs"} {"check_id": "sqs.visibility-extension-capped-at-twelve-hours-from-receive-rejected", "deployments": [], "key": "sqs/visibility-extension-capped-at-twelve-hours-from-receive-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:ChangeMessageVisibilityBatch", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_visibility_extension_capped_at_twelve_hours_from_receive_rejected.py", "service": "sqs"} {"check_id": "sqs.visibility-heartbeat-hides-a-message-from-concurrent-pollers", "deployments": [], "key": "sqs/visibility-heartbeat-hides-a-message-from-concurrent-pollers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_visibility_heartbeat_hides_a_message_from_concurrent_pollers.py", "service": "sqs"} {"check_id": "sqs.visibility-timeout-natural-expiry", "deployments": [], "key": "sqs/visibility-timeout-natural-expiry", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_visibility_timeout_natural_expiry.py", "service": "sqs"} {"check_id": "sqs.visibility-timeout-out-of-range-rejected", "deployments": [], "key": "sqs/visibility-timeout-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes"], "path": "behavioral/sqs/check_visibility_timeout_out_of_range_rejected.py", "service": "sqs"} {"check_id": "sqs.visibility-timeout-shorten-and-receive-override", "deployments": [], "key": "sqs/visibility-timeout-shorten-and-receive-override", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["sqs:ChangeMessageVisibility", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "sqs:SendMessage"], "path": "behavioral/sqs/check_visibility_timeout_shorten_and_receive_override.py", "service": "sqs"} {"check_id": "sqs__stepfunctions.cross-region-sqs-sendmessage-optimized-integration-succeeds", "deployments": [], "key": "sqs__stepfunctions/cross-region-sqs-sendmessage-optimized-integration-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/sqs__stepfunctions/check_cross_region_sqs_sendmessage_optimized_integration_succeeds.py", "service": "sqs__stepfunctions"} {"check_id": "sqs__stepfunctions.cross-region-sqs-sendmessage-without-permission-on-far-queue-denied", "deployments": [], "key": "sqs__stepfunctions/cross-region-sqs-sendmessage-without-permission-on-far-queue-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/sqs__stepfunctions/check_cross_region_sqs_sendmessage_without_permission_on_far_queue_denied.py", "service": "sqs__stepfunctions"} {"check_id": "sqs__stepfunctions.sfn-task-token-timeout-on-no-callback", "deployments": [], "key": "sqs__stepfunctions/sfn-task-token-timeout-on-no-callback", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/sqs__stepfunctions/check_sfn_task_token_timeout_on_no_callback.py", "service": "sqs__stepfunctions"} {"check_id": "ssm-guiconnect.concurrent-updates-all-denied-consistently", "deployments": [], "key": "ssm-guiconnect/concurrent-updates-all-denied-consistently", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "ssm-guiconnect:GetConnectionRecordingPreferences", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_concurrent_updates_all_denied_consistently.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.delete-echoes-client-token-in-response", "deployments": [], "key": "ssm-guiconnect/delete-echoes-client-token-in-response", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm-guiconnect:DeleteConnectionRecordingPreferences", "ssm-guiconnect:GetConnectionRecordingPreferences"], "path": "behavioral/ssm-guiconnect/check_delete_echoes_client_token_in_response.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.delete-not-configured-is-idempotent", "deployments": [], "key": "ssm-guiconnect/delete-not-configured-is-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm-guiconnect:DeleteConnectionRecordingPreferences", "ssm-guiconnect:GetConnectionRecordingPreferences"], "path": "behavioral/ssm-guiconnect/check_delete_not_configured_is_idempotent.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.denied-update-leaves-no-partial-state", "deployments": [], "key": "ssm-guiconnect/denied-update-leaves-no-partial-state", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "ssm-guiconnect:DeleteConnectionRecordingPreferences", "ssm-guiconnect:GetConnectionRecordingPreferences", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_denied_update_leaves_no_partial_state.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.get-denied-without-iam-permission", "deployments": [], "key": "ssm-guiconnect/get-denied-without-iam-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "ssm-guiconnect:GetConnectionRecordingPreferences"], "path": "behavioral/ssm-guiconnect/check_get_denied_without_iam_permission.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.get-not-configured-raises-resource-not-found", "deployments": [], "key": "ssm-guiconnect/get-not-configured-raises-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm-guiconnect:DeleteConnectionRecordingPreferences", "ssm-guiconnect:GetConnectionRecordingPreferences"], "path": "behavioral/ssm-guiconnect/check_get_not_configured_raises_resource_not_found.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.repeated-denied-update-delete-cycles-stay-consistent", "deployments": [], "key": "ssm-guiconnect/repeated-denied-update-delete-cycles-stay-consistent", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "ssm-guiconnect:DeleteConnectionRecordingPreferences", "ssm-guiconnect:GetConnectionRecordingPreferences", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_repeated_denied_update_delete_cycles_stay_consistent.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.update-access-denied-reason-differs-for-iam-vs-jit-gate", "deployments": [], "key": "ssm-guiconnect/update-access-denied-reason-differs-for-iam-vs-jit-gate", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "ssm-guiconnect:GetConnectionRecordingPreferences", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_update_access_denied_reason_differs_for_iam_vs_jit_gate.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.update-denial-is-stable-across-retries-with-same-client-token", "deployments": [], "key": "ssm-guiconnect/update-denial-is-stable-across-retries-with-same-client-token", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "ssm-guiconnect:GetConnectionRecordingPreferences", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_update_denial_is_stable_across_retries_with_same_client_token.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.update-jit-gate-precedes-resource-existence-check-for-s3-bucket", "deployments": [], "key": "ssm-guiconnect/update-jit-gate-precedes-resource-existence-check-for-s3-bucket", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_update_jit_gate_precedes_resource_existence_check_for_s3_bucket.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.update-jit-gate-precedes-shape-validation-for-kms-arn", "deployments": [], "key": "ssm-guiconnect/update-jit-gate-precedes-shape-validation-for-kms-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "ssm-guiconnect:DeleteConnectionRecordingPreferences", "ssm-guiconnect:GetConnectionRecordingPreferences", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_update_jit_gate_precedes_shape_validation_for_kms_arn.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.update-rejects-recording-destinations-not-exactly-one-bucket", "deployments": [], "key": "ssm-guiconnect/update-rejects-recording-destinations-not-exactly-one-bucket", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_update_rejects_recording_destinations_not_exactly_one_bucket.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.update-shape-validation-precedes-jit-gate-for-bucket-name", "deployments": [], "key": "ssm-guiconnect/update-shape-validation-precedes-jit-gate-for-bucket-name", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "ssm-guiconnect:GetConnectionRecordingPreferences", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_update_shape_validation_precedes_jit_gate_for_bucket_name.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.update-shape-validation-precedes-jit-gate-for-bucket-owner", "deployments": [], "key": "ssm-guiconnect/update-shape-validation-precedes-jit-gate-for-bucket-owner", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_update_shape_validation_precedes_jit_gate_for_bucket_owner.py", "service": "ssm-guiconnect"} {"check_id": "ssm-guiconnect.update-validates-client-token-length-before-jit-gate", "deployments": [], "key": "ssm-guiconnect/update-validates-client-token-length-before-jit-gate", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "s3:CreateBucket", "s3:DeleteBucket", "ssm-guiconnect:UpdateConnectionRecordingPreferences", "sts:GetCallerIdentity"], "path": "behavioral/ssm-guiconnect/check_update_validates_client_token_length_before_jit_gate.py", "service": "ssm-guiconnect"} {"check_id": "ssm-quicksetup.access-denied-without-permission-rejected", "deployments": [], "key": "ssm-quicksetup/access-denied-without-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurationManagers", "ssm-quicksetup:ListQuickSetupTypes", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_access_denied_without_permission_rejected.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.concurrent-update-configuration-manager-name-race", "deployments": [], "key": "ssm-quicksetup/concurrent-update-configuration-manager-name-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:TagRole", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListQuickSetupTypes", "ssm-quicksetup:UpdateConfigurationManager", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_concurrent_update_configuration_manager_name_race.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.configuration-manager-create-get-delete-lifecycle", "deployments": [], "key": "ssm-quicksetup/configuration-manager-create-get-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurationManagers", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_configuration_manager_create_get_delete_lifecycle.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.create-configuration-manager-invalid-name-pattern-rejected", "deployments": [], "key": "ssm-quicksetup/create-configuration-manager-invalid-name-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:TagRole", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurationManagers", "ssm-quicksetup:ListQuickSetupTypes", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_create_configuration_manager_invalid_name_pattern_rejected.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.create-configuration-manager-requires-nonempty-definitions", "deployments": [], "key": "ssm-quicksetup/create-configuration-manager-requires-nonempty-definitions", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurationManagers", "ssm-quicksetup:ListQuickSetupTypes", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_create_configuration_manager_requires_nonempty_definitions.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.create-configuration-manager-tags-at-creation-visible", "deployments": [], "key": "ssm-quicksetup/create-configuration-manager-tags-at-creation-visible", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListQuickSetupTypes", "ssm-quicksetup:ListTagsForResource", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_create_configuration_manager_tags_at_creation_visible.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.create-manager-status-progresses-past-initializing", "deployments": [], "key": "ssm-quicksetup/create-manager-status-progresses-past-initializing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListQuickSetupTypes", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_create_manager_status_progresses_past_initializing.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.get-configuration-manager-not-found", "deployments": [], "key": "ssm-quicksetup/get-configuration-manager-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListQuickSetupTypes", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_get_configuration_manager_not_found.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.get-configuration-matches-created-definition", "deployments": [], "key": "ssm-quicksetup/get-configuration-matches-created-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfiguration", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurations", "ssm-quicksetup:ListQuickSetupTypes", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_get_configuration_matches_created_definition.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.get-service-settings-returns-structured-object", "deployments": [], "key": "ssm-quicksetup/get-service-settings-returns-structured-object", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm-quicksetup:GetServiceSettings"], "path": "behavioral/ssm-quicksetup/check_get_service_settings_returns_structured_object.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.list-configuration-managers-max-items-out-of-range-rejected", "deployments": [], "key": "ssm-quicksetup/list-configuration-managers-max-items-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm-quicksetup:ListConfigurationManagers"], "path": "behavioral/ssm-quicksetup/check_list_configuration_managers_max_items_out_of_range_rejected.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.list-configuration-managers-pagination-max-items", "deployments": [], "key": "ssm-quicksetup/list-configuration-managers-pagination-max-items", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurationManagers", "ssm-quicksetup:ListQuickSetupTypes", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_list_configuration_managers_pagination_max_items.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.list-quick-setup-types-includes-host-mgmt", "deployments": [], "key": "ssm-quicksetup/list-quick-setup-types-includes-host-mgmt", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm-quicksetup:ListQuickSetupTypes"], "path": "behavioral/ssm-quicksetup/check_list_quick_setup_types_includes_host_mgmt.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.local-deployment-missing-role-rejected", "deployments": [], "key": "ssm-quicksetup/local-deployment-missing-role-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurationManagers", "ssm-quicksetup:ListQuickSetupTypes", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_local_deployment_missing_role_rejected.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.tag-resource-list-tags-roundtrip", "deployments": [], "key": "ssm-quicksetup/tag-resource-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListQuickSetupTypes", "ssm-quicksetup:ListTagsForResource", "ssm-quicksetup:TagResource", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_tag_resource_list_tags_roundtrip.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.untag-resource-empty-tag-keys-rejected", "deployments": [], "key": "ssm-quicksetup/untag-resource-empty-tag-keys-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetRole", "iam:UpdateAssumeRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurationManagers", "ssm-quicksetup:ListQuickSetupTypes", "ssm-quicksetup:ListTagsForResource", "ssm-quicksetup:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_untag_resource_empty_tag_keys_rejected.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.untag-resource-removes-tag", "deployments": [], "key": "ssm-quicksetup/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListConfigurationManagers", "ssm-quicksetup:ListTagsForResource", "ssm-quicksetup:UntagResource", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_untag_resource_removes_tag.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.update-configuration-definition-invalid-type-version-rejected", "deployments": [], "key": "ssm-quicksetup/update-configuration-definition-invalid-type-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListQuickSetupTypes", "ssm-quicksetup:UpdateConfigurationDefinition", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_update_configuration_definition_invalid_type_version_rejected.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.update-configuration-definition-triggers-redeployment", "deployments": [], "key": "ssm-quicksetup/update-configuration-definition-triggers-redeployment", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:ListAttachedRolePolicies", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListQuickSetupTypes", "ssm-quicksetup:UpdateConfigurationDefinition", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_update_configuration_definition_triggers_redeployment.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.update-configuration-manager-metadata-updates-fields", "deployments": [], "key": "ssm-quicksetup/update-configuration-manager-metadata-updates-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm-quicksetup:CreateConfigurationManager", "ssm-quicksetup:DeleteConfigurationManager", "ssm-quicksetup:GetConfigurationManager", "ssm-quicksetup:ListQuickSetupTypes", "ssm-quicksetup:UpdateConfigurationManager", "sts:GetCallerIdentity"], "path": "behavioral/ssm-quicksetup/check_update_configuration_manager_metadata_updates_fields.py", "service": "ssm-quicksetup"} {"check_id": "ssm-quicksetup.update-service-settings-persists-and-restores", "deployments": [], "key": "ssm-quicksetup/update-service-settings-persists-and-restores", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm-quicksetup:GetServiceSettings", "ssm-quicksetup:UpdateServiceSettings"], "path": "behavioral/ssm-quicksetup/check_update_service_settings_persists_and_restores.py", "service": "ssm-quicksetup"} {"check_id": "ssm-sap.concurrent-application-refresh-contention", "deployments": [], "key": "ssm-sap/concurrent-application-refresh-contention", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:ListOperations", "ssm-sap:RegisterApplication", "ssm-sap:StartApplicationRefresh"], "path": "behavioral/ssm-sap/check_concurrent_application_refresh_contention.py", "service": "ssm-sap"} {"check_id": "ssm-sap.deregister-application-removes-resource", "deployments": [], "key": "ssm-sap/deregister-application-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_deregister_application_removes_resource.py", "service": "ssm-sap"} {"check_id": "ssm-sap.get-application-missing-identifier-rejected", "deployments": [], "key": "ssm-sap/get-application-missing-identifier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_get_application_missing_identifier_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.get-application-nonexistent-id-validation-error", "deployments": [], "key": "ssm-sap/get-application-nonexistent-id-validation-error", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_get_application_nonexistent_id_validation_error.py", "service": "ssm-sap"} {"check_id": "ssm-sap.get-operation-invalid-uuid-format-rejected", "deployments": [], "key": "ssm-sap/get-operation-invalid-uuid-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:GetOperation", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_get_operation_invalid_uuid_format_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.get-operation-valid-uuid-not-found-rejected", "deployments": [], "key": "ssm-sap/get-operation-valid-uuid-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:GetOperation", "ssm-sap:RegisterApplication", "ssm-sap:TagResource"], "path": "behavioral/ssm-sap/check_get_operation_valid_uuid_not_found_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.list-applications-malformed-nexttoken-rejected", "deployments": [], "key": "ssm-sap/list-applications-malformed-nexttoken-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm-sap:ListApplications"], "path": "behavioral/ssm-sap/check_list_applications_malformed_nexttoken_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.list-components-nonexistent-application-resource-not-found", "deployments": [], "key": "ssm-sap/list-components-nonexistent-application-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:ListComponents", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_list_components_nonexistent_application_resource_not_found.py", "service": "ssm-sap"} {"check_id": "ssm-sap.list-operations-tracks-register-operation", "deployments": [], "key": "ssm-sap/list-operations-tracks-register-operation", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:ListOperationEvents", "ssm-sap:ListOperations", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_list_operations_tracks_register_operation.py", "service": "ssm-sap"} {"check_id": "ssm-sap.put-resource-permission-invalid-action-type-rejected", "deployments": [], "key": "ssm-sap/put-resource-permission-invalid-action-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:GetResourcePermission", "ssm-sap:ListApplications", "ssm-sap:PutResourcePermission", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_put_resource_permission_invalid_action_type_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.register-application-discovery-status-transition", "deployments": [], "key": "ssm-sap/register-application-discovery-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:GetOperation", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_register_application_discovery_status_transition.py", "service": "ssm-sap"} {"check_id": "ssm-sap.register-application-duplicate-id-conflict-rejected", "deployments": [], "key": "ssm-sap/register-application-duplicate-id-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_register_application_duplicate_id_conflict_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.register-application-invalid-instance-pattern-rejected", "deployments": [], "key": "ssm-sap/register-application-invalid-instance-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_register_application_invalid_instance_pattern_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.register-application-quota-limit-rejected", "deployments": [], "key": "ssm-sap/register-application-quota-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_register_application_quota_limit_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.register-application-sap-abap-credentials-rejected", "deployments": [], "key": "ssm-sap/register-application-sap-abap-credentials-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_register_application_sap_abap_credentials_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.register-application-synchronous-response-state", "deployments": [], "key": "ssm-sap/register-application-synchronous-response-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:GetOperation", "ssm-sap:ListOperations", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_register_application_synchronous_response_state.py", "service": "ssm-sap"} {"check_id": "ssm-sap.resource-permission-lifecycle-get-after-delete", "deployments": [], "key": "ssm-sap/resource-permission-lifecycle-get-after-delete", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeleteResourcePermission", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:GetResourcePermission", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication"], "path": "behavioral/ssm-sap/check_resource_permission_lifecycle_get_after_delete.py", "service": "ssm-sap"} {"check_id": "ssm-sap.start-application-nonexistent-rejected", "deployments": [], "key": "ssm-sap/start-application-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication", "ssm-sap:StartApplication"], "path": "behavioral/ssm-sap/check_start_application_nonexistent_rejected.py", "service": "ssm-sap"} {"check_id": "ssm-sap.start-configuration-checks-error-paths", "deployments": [], "key": "ssm-sap/start-configuration-checks-error-paths", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:RegisterApplication", "ssm-sap:StartConfigurationChecks"], "path": "behavioral/ssm-sap/check_start_configuration_checks_error_paths.py", "service": "ssm-sap"} {"check_id": "ssm-sap.stop-application-on-registering-app-is-accepted", "deployments": [], "key": "ssm-sap/stop-application-on-registering-app-is-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:ListTagsForResource", "ssm-sap:RegisterApplication", "ssm-sap:StopApplication", "ssm-sap:TagResource", "ssm-sap:UntagResource"], "path": "behavioral/ssm-sap/check_stop_application_on_registering_app_is_accepted.py", "service": "ssm-sap"} {"check_id": "ssm-sap.tag-resource-lifecycle-and-nonexistent-arn", "deployments": [], "key": "ssm-sap/tag-resource-lifecycle-and-nonexistent-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateServiceLinkedRole", "iam:GetRole", "ssm-sap:DeregisterApplication", "ssm-sap:GetApplication", "ssm-sap:ListApplications", "ssm-sap:ListTagsForResource", "ssm-sap:RegisterApplication", "ssm-sap:TagResource", "ssm-sap:UntagResource"], "path": "behavioral/ssm-sap/check_tag_resource_lifecycle_and_nonexistent_arn.py", "service": "ssm-sap"} {"check_id": "ssm.access-request-start-then-get-token-lifecycle", "deployments": [], "key": "ssm/access-request-start-then-get-token-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DescribeInstanceInformation", "ssm:GetAccessToken", "ssm:StartAccessRequest"], "path": "behavioral/ssm/check_access_request_start_then_get_token_lifecycle.py", "service": "ssm"} {"check_id": "ssm.activation-create-describe-delete", "deployments": [], "key": "ssm/activation-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations"], "path": "behavioral/ssm/check_activation_create_describe_delete.py", "service": "ssm"} {"check_id": "ssm.activation-list-and-describe-status", "deployments": [], "key": "ssm/activation-list-and-describe-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations"], "path": "behavioral/ssm/check_activation_list_and_describe_status.py", "service": "ssm"} {"check_id": "ssm.add-tags-existing-key-overwrites-and-duplicate-keys-last-wins", "deployments": [], "key": "ssm/add-tags-existing-key-overwrites-and-duplicate-keys-last-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:ListTagsForResource", "ssm:PutParameter"], "path": "behavioral/ssm/check_add_tags_existing_key_overwrites_and_duplicate_keys_last_wins.py", "service": "ssm"} {"check_id": "ssm.add-tags-nonexistent-parameter-fails", "deployments": [], "key": "ssm/add-tags-nonexistent-parameter-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:DeleteParameter", "ssm:ListTagsForResource", "ssm:PutParameter"], "path": "behavioral/ssm/check_add_tags_nonexistent_parameter_fails.py", "service": "ssm"} {"check_id": "ssm.advanced-secure-string-versions-decrypt-by-selector-and-vanish-after-delete", "deployments": [], "key": "ssm/advanced-secure-string-versions-decrypt-by-selector-and-vanish-after-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_advanced_secure_string_versions_decrypt_by_selector_and_vanish_after_delete.py", "service": "ssm"} {"check_id": "ssm.allowed-pattern-rejected-overwrite-burns-no-version", "deployments": [], "key": "ssm/allowed-pattern-rejected-overwrite-burns-no-version", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:PutParameter"], "path": "behavioral/ssm/check_allowed_pattern_rejected_overwrite_burns_no_version.py", "service": "ssm"} {"check_id": "ssm.associate-ops-item-related-item-duplicate-rejected", "deployments": [], "key": "ssm/associate-ops-item-related-item-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:AssociateOpsItemRelatedItem", "ssm:CreateDocument", "ssm:CreateOpsItem", "ssm:DeleteDocument", "ssm:DeleteOpsItem", "ssm:DisassociateOpsItemRelatedItem", "ssm:ListOpsItemRelatedItems", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_associate_ops_item_related_item_duplicate_rejected.py", "service": "ssm"} {"check_id": "ssm.association-create-update-versioning", "deployments": [], "key": "ssm/association-create-update-versioning", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:ListAssociationVersions", "ssm:UpdateAssociation"], "path": "behavioral/ssm/check_association_create_update_versioning.py", "service": "ssm"} {"check_id": "ssm.association-describe-list-and-delete", "deployments": [], "key": "ssm/association-describe-list-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeAssociation", "ssm:DescribeAssociationExecutions", "ssm:DescribeDocument", "ssm:ListAssociations", "ssm:StartAssociationsOnce"], "path": "behavioral/ssm/check_association_describe_list_and_delete.py", "service": "ssm"} {"check_id": "ssm.automation-execute-aws-api-reaches-success", "deployments": [], "key": "ssm/automation-execute-aws-api-reaches-success", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DeleteParameter", "ssm:DescribeAutomationExecutions", "ssm:DescribeAutomationStepExecutions", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:GetParameter", "ssm:PutParameter", "ssm:StartAutomationExecution"], "path": "behavioral/ssm/check_automation_execute_aws_api_reaches_success.py", "service": "ssm"} {"check_id": "ssm.automation-execution-cancel-lifecycle", "deployments": [], "key": "ssm/automation-execution-cancel-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeAutomationExecutions", "ssm:DescribeAutomationStepExecutions", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution"], "path": "behavioral/ssm/check_automation_execution_cancel_lifecycle.py", "service": "ssm"} {"check_id": "ssm.aws-owned-restart-ec2-instance-automation-document-is-described-and-listed", "deployments": [], "key": "ssm/aws-owned-restart-ec2-instance-automation-document-is-described-and-listed", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DescribeDocument", "ssm:ListDocuments"], "path": "behavioral/ssm/check_aws_owned_restart_ec2_instance_automation_document_is_described_and_listed.py", "service": "ssm"} {"check_id": "ssm.change-calendar-state-and-multi-calendar-intersection", "deployments": [], "key": "ssm/change-calendar-state-and-multi-calendar-intersection", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetCalendarState"], "path": "behavioral/ssm/check_change_calendar_state_and_multi_calendar_intersection.py", "service": "ssm"} {"check_id": "ssm.cloud-connector-delete-during-update-conflict-rejected", "deployments": [], "key": "ssm/cloud-connector-delete-during-update-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteCloudConnector", "ssm:ListCloudConnectors", "ssm:UpdateCloudConnector"], "path": "behavioral/ssm/check_cloud_connector_delete_during_update_conflict_rejected.py", "service": "ssm"} {"check_id": "ssm.cloud-connector-get-nonexistent-not-found", "deployments": [], "key": "ssm/cloud-connector-get-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetCloudConnector", "ssm:ListCloudConnectors"], "path": "behavioral/ssm/check_cloud_connector_get_nonexistent_not_found.py", "service": "ssm"} {"check_id": "ssm.compliance-item-empty-vs-absent-details-preserved", "deployments": [], "key": "ssm/compliance-item-empty-vs-absent-details-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:ListComplianceItems", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_compliance_item_empty_vs_absent_details_preserved.py", "service": "ssm"} {"check_id": "ssm.compliance-item-numeric-and-timestamp-precision-preserved", "deployments": [], "key": "ssm/compliance-item-numeric-and-timestamp-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListComplianceItems", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_compliance_item_numeric_and_timestamp_precision_preserved.py", "service": "ssm"} {"check_id": "ssm.compliance-item-timestamp-precision-preserved", "deployments": [], "key": "ssm/compliance-item-timestamp-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListComplianceItems", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_compliance_item_timestamp_precision_preserved.py", "service": "ssm"} {"check_id": "ssm.compliance-items-invalid-resource-type-rejected", "deployments": [], "key": "ssm/compliance-items-invalid-resource-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListComplianceItems", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_compliance_items_invalid_resource_type_rejected.py", "service": "ssm"} {"check_id": "ssm.compliance-items-put-overwrite-last-write-wins", "deployments": [], "key": "ssm/compliance-items-put-overwrite-last-write-wins", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:ListComplianceItems", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_compliance_items_put_overwrite_last_write_wins.py", "service": "ssm"} {"check_id": "ssm.compliance-summary-aggregates-by-status", "deployments": [], "key": "ssm/compliance-summary-aggregates-by-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:ListComplianceSummaries", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_compliance_summary_aggregates_by_status.py", "service": "ssm"} {"check_id": "ssm.compliance-summary-server-computed-aggregation", "deployments": [], "key": "ssm/compliance-summary-server-computed-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:ListComplianceSummaries", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_compliance_summary_server_computed_aggregation.py", "service": "ssm"} {"check_id": "ssm.concurrent-parameter-overwrite-version-monotonicity", "deployments": [], "key": "ssm/concurrent-parameter-overwrite-version-monotonicity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:PutParameter"], "path": "behavioral/ssm/check_concurrent_parameter_overwrite_version_monotonicity.py", "service": "ssm"} {"check_id": "ssm.connection-status-tracks-session-lifecycle", "deployments": [], "key": "ssm/connection-status-tracks-session-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:GetParameter", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_connection_status_tracks_session_lifecycle.py", "service": "ssm"} {"check_id": "ssm.create-activation-nonexistent-role-fails", "deployments": [], "key": "ssm/create-activation-nonexistent-role-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations"], "path": "behavioral/ssm/check_create_activation_nonexistent_role_fails.py", "service": "ssm"} {"check_id": "ssm.create-association-batch-and-list", "deployments": [], "key": "ssm/create-association-batch-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:CreateAssociationBatch", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:ListAssociations"], "path": "behavioral/ssm/check_create_association_batch_and_list.py", "service": "ssm"} {"check_id": "ssm.create-association-duplicate-rejected", "deployments": [], "key": "ssm/create-association-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeAssociation", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:ListAssociations"], "path": "behavioral/ssm/check_create_association_duplicate_rejected.py", "service": "ssm"} {"check_id": "ssm.create-association-lifecycle-and-versions", "deployments": [], "key": "ssm/create-association-lifecycle-and-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeAssociation", "ssm:ListAssociationVersions", "ssm:UpdateAssociation"], "path": "behavioral/ssm/check_create_association_lifecycle_and_versions.py", "service": "ssm"} {"check_id": "ssm.create-document-and-get-content", "deployments": [], "key": "ssm/create-document-and-get-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetDocument"], "path": "behavioral/ssm/check_create_document_and_get_content.py", "service": "ssm"} {"check_id": "ssm.create-document-duplicate-name-fails", "deployments": [], "key": "ssm/create-document-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetDocument"], "path": "behavioral/ssm/check_create_document_duplicate_name_fails.py", "service": "ssm"} {"check_id": "ssm.create-maintenance-window-and-get", "deployments": [], "key": "ssm/create-maintenance-window-and-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:GetMaintenanceWindow"], "path": "behavioral/ssm/check_create_maintenance_window_and_get.py", "service": "ssm"} {"check_id": "ssm.create-maintenance-window-rejects-idempotency-mismatch", "deployments": [], "key": "ssm/create-maintenance-window-rejects-idempotency-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindows"], "path": "behavioral/ssm/check_create_maintenance_window_rejects_idempotency_mismatch.py", "service": "ssm"} {"check_id": "ssm.create-opsitem-defaults-to-open-status", "deployments": [], "key": "ssm/create-opsitem-defaults-to-open-status", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateOpsItem", "ssm:GetOpsItem", "ssm:UpdateOpsItem"], "path": "behavioral/ssm/check_create_opsitem_defaults_to_open_status.py", "service": "ssm"} {"check_id": "ssm.create-patch-baseline-and-get", "deployments": [], "key": "ssm/create-patch-baseline-and-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:GetPatchBaseline"], "path": "behavioral/ssm/check_create_patch_baseline_and_get.py", "service": "ssm"} {"check_id": "ssm.create-time-tags-list-exactly-across-resource-types", "deployments": [], "key": "ssm/create-time-tags-list-exactly-across-resource-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:CreateDocument", "ssm:CreateMaintenanceWindow", "ssm:CreatePatchBaseline", "ssm:DeleteDocument", "ssm:DeleteMaintenanceWindow", "ssm:DeleteParameter", "ssm:DeletePatchBaseline", "ssm:DescribeDocument", "ssm:ListTagsForResource", "ssm:PutParameter", "ssm:RemoveTagsFromResource"], "path": "behavioral/ssm/check_create_time_tags_list_exactly_across_resource_types.py", "service": "ssm"} {"check_id": "ssm.deep-secrets-and-params-label-moves-back-to-an-older-version-and-does-not-follow-overwrites", "deployments": [], "key": "ssm/deep-secrets-and-params-label-moves-back-to-an-older-version-and-does-not-follow-overwrites", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:GetParameters", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_deep_secrets_and_params_label_moves_back_to_an_older_version_and_does_not_follow_overwrites.py", "service": "ssm"} {"check_id": "ssm.deep-secrets-and-params-parameter-version-ceiling-evicts-oldest-and-labelled-oldest-rejected", "deployments": [], "key": "ssm/deep-secrets-and-params-parameter-version-ceiling-evicts-oldest-and-labelled-oldest-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:LabelParameterVersion", "ssm:PutParameter", "ssm:UnlabelParameterVersion"], "path": "behavioral/ssm/check_deep_secrets_and_params_parameter_version_ceiling_evicts_oldest_and_labelled_oldest_rejected.py", "service": "ssm"} {"check_id": "ssm.default-patch-baseline-register-and-update", "deployments": [], "key": "ssm/default-patch-baseline-register-and-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DescribePatchBaselines", "ssm:GetDefaultPatchBaseline", "ssm:GetPatchBaseline", "ssm:RegisterDefaultPatchBaseline", "ssm:UpdatePatchBaseline"], "path": "behavioral/ssm/check_default_patch_baseline_register_and_update.py", "service": "ssm"} {"check_id": "ssm.delete-association-nonexistent-rejected", "deployments": [], "key": "ssm/delete-association-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeAssociation"], "path": "behavioral/ssm/check_delete_association_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.delete-document-then-get-fails", "deployments": [], "key": "ssm/delete-document-then-get-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:UpdateDocument"], "path": "behavioral/ssm/check_delete_document_then_get_fails.py", "service": "ssm"} {"check_id": "ssm.delete-flat-string-list-parameter-kills-every-labelled-version", "deployments": [], "key": "ssm/delete-flat-string-list-parameter-kills-every-labelled-version", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_delete_flat_string_list_parameter_kills_every_labelled_version.py", "service": "ssm"} {"check_id": "ssm.delete-inventory-invalid-parameters-rejected", "deployments": [], "key": "ssm/delete-inventory-invalid-parameters-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteInventory", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:PutInventory"], "path": "behavioral/ssm/check_delete_inventory_invalid_parameters_rejected.py", "service": "ssm"} {"check_id": "ssm.delete-inventory-schema-delete-builtin-type-rejected", "deployments": [], "key": "ssm/delete-inventory-schema-delete-builtin-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteInventory", "ssm:DescribeInstanceInformation", "ssm:DescribeInventoryDeletions", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_delete_inventory_schema_delete_builtin_type_rejected.py", "service": "ssm"} {"check_id": "ssm.delete-inventory-then-list-deletions", "deployments": [], "key": "ssm/delete-inventory-then-list-deletions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteInventory", "ssm:DescribeInstanceInformation", "ssm:DescribeInventoryDeletions", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_delete_inventory_then_list_deletions.py", "service": "ssm"} {"check_id": "ssm.delete-maintenance-window-then-get-fails", "deployments": [], "key": "ssm/delete-maintenance-window-then-get-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:GetMaintenanceWindow", "ssm:UpdateMaintenanceWindow"], "path": "behavioral/ssm/check_delete_maintenance_window_then_get_fails.py", "service": "ssm"} {"check_id": "ssm.delete-nonexistent-activation-fails", "deployments": [], "key": "ssm/delete-nonexistent-activation-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations"], "path": "behavioral/ssm/check_delete_nonexistent_activation_fails.py", "service": "ssm"} {"check_id": "ssm.delete-nonexistent-parameter-fails", "deployments": [], "key": "ssm/delete-nonexistent-parameter-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_delete_nonexistent_parameter_fails.py", "service": "ssm"} {"check_id": "ssm.delete-ops-metadata-nonexistent-rejected", "deployments": [], "key": "ssm/delete-ops-metadata-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteOpsMetadata", "ssm:GetOpsMetadata", "ssm:ListOpsMetadata", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_delete_ops_metadata_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.delete-parameter-destroys-every-version-and-the-dead-name-refuses-mutations", "deployments": [], "key": "ssm/delete-parameter-destroys-every-version-and-the-dead-name-refuses-mutations", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_delete_parameter_destroys_every_version_and_the_dead_name_refuses_mutations.py", "service": "ssm"} {"check_id": "ssm.delete-parameter-then-get-fails", "deployments": [], "key": "ssm/delete-parameter-then-get-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_delete_parameter_then_get_fails.py", "service": "ssm"} {"check_id": "ssm.delete-parameters-batch-kills-every-version-and-label-for-batch-reads", "deployments": [], "key": "ssm/delete-parameters-batch-kills-every-version-and-label-for-batch-reads", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DeleteParameters", "ssm:GetParameterHistory", "ssm:GetParameters", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_delete_parameters_batch_kills_every_version_and_label_for_batch_reads.py", "service": "ssm"} {"check_id": "ssm.delete-parameters-batch-partial-failure", "deployments": [], "key": "ssm/delete-parameters-batch-partial-failure", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DeleteParameters", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_delete_parameters_batch_partial_failure.py", "service": "ssm"} {"check_id": "ssm.delete-patch-baseline-rejects-when-registered-to-group", "deployments": [], "key": "ssm/delete-patch-baseline-rejects-when-registered-to-group", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:GetPatchBaseline", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_delete_patch_baseline_rejects_when_registered_to_group.py", "service": "ssm"} {"check_id": "ssm.delete-patch-baseline-then-get-fails", "deployments": [], "key": "ssm/delete-patch-baseline-then-get-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:GetPatchBaseline", "ssm:UpdatePatchBaseline"], "path": "behavioral/ssm/check_delete_patch_baseline_then_get_fails.py", "service": "ssm"} {"check_id": "ssm.delete-resource-policy-unknown-policy-id-rejected", "deployments": [], "key": "ssm/delete-resource-policy-unknown-policy-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DeleteResourcePolicy", "ssm:GetParameter", "ssm:GetResourcePolicies", "ssm:PutParameter", "ssm:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_delete_resource_policy_unknown_policy_id_rejected.py", "service": "ssm"} {"check_id": "ssm.deploy-document-via-cloudformation-then-associable", "deployments": [], "key": "ssm/deploy-document-via-cloudformation-then-associable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:CreateAssociation", "ssm:DeleteAssociation", "ssm:DescribeAssociation", "ssm:DescribeDocument", "ssm:GetDocument"], "path": "behavioral/ssm/check_deploy_document_via_cloudformation_then_associable.py", "service": "ssm"} {"check_id": "ssm.deploy-maintenance-window-via-cloudformation-then-registerable", "deployments": [], "key": "ssm/deploy-maintenance-window-via-cloudformation-then-registerable", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowTargets", "ssm:GetMaintenanceWindow", "ssm:RegisterTargetWithMaintenanceWindow"], "path": "behavioral/ssm/check_deploy_maintenance_window_via_cloudformation_then_registerable.py", "service": "ssm"} {"check_id": "ssm.deploy-parameter-via-cloudformation-then-overwrite-behaves", "deployments": [], "key": "ssm/deploy-parameter-via-cloudformation-then-overwrite-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_deploy_parameter_via_cloudformation_then_overwrite_behaves.py", "service": "ssm"} {"check_id": "ssm.deploy-ssm-document-via-cloudformation-then-send-command", "deployments": [], "key": "ssm/deploy-ssm-document-via-cloudformation-then-send-command", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetDocument", "ssm:SendCommand"], "path": "behavioral/ssm/check_deploy_ssm_document_via_cloudformation_then_send_command.py", "service": "ssm"} {"check_id": "ssm.deploy-ssm-maintenancewindow-stack-lifecycle", "deployments": [], "key": "ssm/deploy-ssm-maintenancewindow-stack-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DescribeMaintenanceWindowTargets", "ssm:GetMaintenanceWindow"], "path": "behavioral/ssm/check_deploy_ssm_maintenancewindow_stack_lifecycle.py", "service": "ssm"} {"check_id": "ssm.deploy-ssm-maintenancewindow-via-cloudformation-then-register-target", "deployments": [], "key": "ssm/deploy-ssm-maintenancewindow-via-cloudformation-then-register-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowTargets", "ssm:DescribeMaintenanceWindows", "ssm:RegisterTargetWithMaintenanceWindow"], "path": "behavioral/ssm/check_deploy_ssm_maintenancewindow_via_cloudformation_then_register_target.py", "service": "ssm"} {"check_id": "ssm.deploy-ssm-parameter-stack-lifecycle", "deployments": [], "key": "ssm/deploy-ssm-parameter-stack-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:DeleteParameter", "ssm:GetParameter"], "path": "behavioral/ssm/check_deploy_ssm_parameter_stack_lifecycle.py", "service": "ssm"} {"check_id": "ssm.deploy-ssm-parameter-via-cloudformation-then-behaves", "deployments": [], "key": "ssm/deploy-ssm-parameter-via-cloudformation-then-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_deploy_ssm_parameter_via_cloudformation_then_behaves.py", "service": "ssm"} {"check_id": "ssm.deregister-managed-instance-rejects-unknown-id", "deployments": [], "key": "ssm/deregister-managed-instance-rejects-unknown-id", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DeregisterManagedInstance", "ssm:DescribeActivations", "ssm:DescribeInstanceInformation"], "path": "behavioral/ssm/check_deregister_managed_instance_rejects_unknown_id.py", "service": "ssm"} {"check_id": "ssm.deregister-target-in-use-rejected", "deployments": [], "key": "ssm/deregister-target-in-use-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DeregisterTaskFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowTargets", "ssm:RegisterTargetWithMaintenanceWindow", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_deregister_target_in_use_rejected.py", "service": "ssm"} {"check_id": "ssm.deregister-target-rejects-when-task-references-it", "deployments": [], "key": "ssm/deregister-target-rejects-when-task-references-it", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DeregisterTaskFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowTargets", "ssm:RegisterTargetWithMaintenanceWindow", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_deregister_target_rejects_when_task_references_it.py", "service": "ssm"} {"check_id": "ssm.describe-association-execution-targets-nonexistent-execution-rejected", "deployments": [], "key": "ssm/describe-association-execution-targets-nonexistent-execution-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateAssociation", "ssm:DeleteAssociation", "ssm:DescribeAssociationExecutionTargets", "ssm:DescribeAssociationExecutions", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:StartAssociationsOnce"], "path": "behavioral/ssm/check_describe_association_execution_targets_nonexistent_execution_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-association-execution-targets-nonexistent-rejected", "deployments": [], "key": "ssm/describe-association-execution-targets-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateAssociation", "ssm:DeleteAssociation", "ssm:DescribeAssociationExecutionTargets", "ssm:DescribeAssociationExecutions"], "path": "behavioral/ssm/check_describe_association_execution_targets_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-association-execution-targets-unknown-execution-rejected", "deployments": [], "key": "ssm/describe-association-execution-targets-unknown-execution-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeAssociation", "ssm:DescribeAssociationExecutionTargets", "ssm:DescribeAssociationExecutions", "ssm:StartAssociationsOnce"], "path": "behavioral/ssm/check_describe_association_execution_targets_unknown_execution_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-available-patches-filters-by-product", "deployments": [], "key": "ssm/describe-available-patches-filters-by-product", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DescribeAvailablePatches"], "path": "behavioral/ssm/check_describe_available_patches_filters_by_product.py", "service": "ssm"} {"check_id": "ssm.describe-effective-instance-associations-lists-active", "deployments": [], "key": "ssm/describe-effective-instance-associations-lists-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeEffectiveInstanceAssociations", "ssm:DescribeInstanceInformation", "ssm:GetParameter"], "path": "behavioral/ssm/check_describe_effective_instance_associations_lists_active.py", "service": "ssm"} {"check_id": "ssm.describe-effective-patches-for-baseline-reflects-rules", "deployments": [], "key": "ssm/describe-effective-patches-for-baseline-reflects-rules", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DescribeEffectivePatchesForPatchBaseline"], "path": "behavioral/ssm/check_describe_effective_patches_for_baseline_reflects_rules.py", "service": "ssm"} {"check_id": "ssm.describe-effective-patches-nonexistent-baseline-rejected", "deployments": [], "key": "ssm/describe-effective-patches-nonexistent-baseline-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DescribeEffectivePatchesForPatchBaseline"], "path": "behavioral/ssm/check_describe_effective_patches_nonexistent_baseline_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-effective-patches-unknown-baseline-rejected", "deployments": [], "key": "ssm/describe-effective-patches-unknown-baseline-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DescribeEffectivePatchesForPatchBaseline"], "path": "behavioral/ssm/check_describe_effective_patches_unknown_baseline_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-instance-associations-status-invalid-instance-rejected", "deployments": [], "key": "ssm/describe-instance-associations-status-invalid-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DescribeInstanceAssociationsStatus"], "path": "behavioral/ssm/check_describe_instance_associations_status_invalid_instance_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-instance-patch-states-invalid-filter-rejected", "deployments": [], "key": "ssm/describe-instance-patch-states-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DescribeInstancePatchStatesForPatchGroup"], "path": "behavioral/ssm/check_describe_instance_patch_states_invalid_filter_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-instance-patches-invalid-filter-rejected", "deployments": [], "key": "ssm/describe-instance-patches-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DescribeInstancePatches", "ssm:DescribePatchBaselines"], "path": "behavioral/ssm/check_describe_instance_patches_invalid_filter_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-instance-patches-invalid-instance-rejected", "deployments": [], "key": "ssm/describe-instance-patches-invalid-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeInstancePatches", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_describe_instance_patches_invalid_instance_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-instance-properties-invalid-activation-rejected", "deployments": [], "key": "ssm/describe-instance-properties-invalid-activation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeInstanceProperties"], "path": "behavioral/ssm/check_describe_instance_properties_invalid_activation_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-inventory-deletions-unknown-id-rejected", "deployments": [], "key": "ssm/describe-inventory-deletions-unknown-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteInventory", "ssm:DescribeInstanceInformation", "ssm:DescribeInventoryDeletions", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_describe_inventory_deletions_unknown_id_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-maintenance-window-execution-task-invocations-lists-all", "deployments": [], "key": "ssm/describe-maintenance-window-execution-task-invocations-lists-all", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindowExecutionTaskInvocations", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetMaintenanceWindowExecution", "ssm:GetMaintenanceWindowExecutionTaskInvocation", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_describe_maintenance_window_execution_task_invocations_lists_all.py", "service": "ssm"} {"check_id": "ssm.describe-maintenance-window-execution-tasks-lists-all", "deployments": [], "key": "ssm/describe-maintenance-window-execution-tasks-lists-all", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetMaintenanceWindowExecution", "ssm:GetMaintenanceWindowExecutionTask", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_describe_maintenance_window_execution_tasks_lists_all.py", "service": "ssm"} {"check_id": "ssm.describe-parameters-filters-by-type-and-tier", "deployments": [], "key": "ssm/describe-parameters-filters-by-type-and-tier", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:PutParameter"], "path": "behavioral/ssm/check_describe_parameters_filters_by_type_and_tier.py", "service": "ssm"} {"check_id": "ssm.describe-parameters-label-filter-rejected", "deployments": [], "key": "ssm/describe-parameters-label-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParametersByPath", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_describe_parameters_label_filter_rejected.py", "service": "ssm"} {"check_id": "ssm.describe-parameters-path-filter-one-level-and-recursive-resolve-by-segment", "deployments": [], "key": "ssm/describe-parameters-path-filter-one-level-and-recursive-resolve-by-segment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:PutParameter"], "path": "behavioral/ssm/check_describe_parameters_path_filter_one_level_and_recursive_resolve_by_segment.py", "service": "ssm"} {"check_id": "ssm.describe-parameters-tag-filter-requires-exact-value-despite-beginswith-option", "deployments": [], "key": "ssm/describe-parameters-tag-filter-requires-exact-value-despite-beginswith-option", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:PutParameter"], "path": "behavioral/ssm/check_describe_parameters_tag_filter_requires_exact_value_despite_beginswith_option.py", "service": "ssm"} {"check_id": "ssm.describe-patch-group-state-aggregates-counts", "deployments": [], "key": "ssm/describe-patch-group-state-aggregates-counts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeInstancePatchStatesForPatchGroup", "ssm:DescribePatchGroupState", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:SendCommand"], "path": "behavioral/ssm/check_describe_patch_group_state_aggregates_counts.py", "service": "ssm"} {"check_id": "ssm.describe-patch-properties-returns-catalog-for-os", "deployments": [], "key": "ssm/describe-patch-properties-returns-catalog-for-os", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DescribePatchProperties"], "path": "behavioral/ssm/check_describe_patch_properties_returns_catalog_for_os.py", "service": "ssm"} {"check_id": "ssm.describe-sessions-filters-by-state", "deployments": [], "key": "ssm/describe-sessions-filters-by-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_describe_sessions_filters_by_state.py", "service": "ssm"} {"check_id": "ssm.document-content-unicode-round-trip", "deployments": [], "key": "ssm/document-content-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:GetDocument"], "path": "behavioral/ssm/check_document_content_unicode_round_trip.py", "service": "ssm"} {"check_id": "ssm.document-get-and-list-filters", "deployments": [], "key": "ssm/document-get-and-list-filters", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:ListDocuments", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_document_get_and_list_filters.py", "service": "ssm"} {"check_id": "ssm.document-get-resolves-default-not-latest", "deployments": [], "key": "ssm/document-get-resolves-default-not-latest", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:ListDocumentVersions", "ssm:UpdateDocument", "ssm:UpdateDocumentDefaultVersion"], "path": "behavioral/ssm/check_document_get_resolves_default_not_latest.py", "service": "ssm"} {"check_id": "ssm.document-permission-share-roundtrip", "deployments": [], "key": "ssm/document-permission-share-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:DescribeDocumentPermission", "ssm:ModifyDocumentPermission"], "path": "behavioral/ssm/check_document_permission_share_roundtrip.py", "service": "ssm"} {"check_id": "ssm.document-tags-roundtrip", "deployments": [], "key": "ssm/document-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:ListTagsForResource", "ssm:RemoveTagsFromResource"], "path": "behavioral/ssm/check_document_tags_roundtrip.py", "service": "ssm"} {"check_id": "ssm.e2e-maintenance-window-execution-history-flow", "deployments": [], "key": "ssm/e2e-maintenance-window-execution-history-flow", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DeregisterTaskFromMaintenanceWindow", "ssm:DescribeInstanceInformation", "ssm:DescribeMaintenanceWindowExecutionTaskInvocations", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:DescribeMaintenanceWindowExecutions", "ssm:DescribeMaintenanceWindowTargets", "ssm:GetMaintenanceWindow", "ssm:GetMaintenanceWindowExecutionTask", "ssm:GetParameter", "ssm:RegisterTargetWithMaintenanceWindow", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_e2e_maintenance_window_execution_history_flow.py", "service": "ssm"} {"check_id": "ssm.e2e-ops-item-related-items-and-event-trail-flow", "deployments": [], "key": "ssm/e2e-ops-item-related-items-and-event-trail-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AssociateOpsItemRelatedItem", "ssm:CreateDocument", "ssm:CreateOpsItem", "ssm:DeleteDocument", "ssm:DeleteOpsItem", "ssm:GetOpsItem", "ssm:ListOpsItemEvents", "ssm:ListOpsItemRelatedItems", "ssm:UpdateOpsItem", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_e2e_ops_item_related_items_and_event_trail_flow.py", "service": "ssm"} {"check_id": "ssm.e2e-opsitem-related-items-events-resolution-flow", "deployments": [], "key": "ssm/e2e-opsitem-related-items-events-resolution-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AssociateOpsItemRelatedItem", "ssm:CreateOpsItem", "ssm:DeleteOpsItem", "ssm:GetOpsItem", "ssm:ListOpsItemEvents", "ssm:ListOpsItemRelatedItems", "ssm:UpdateOpsItem", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_e2e_opsitem_related_items_events_resolution_flow.py", "service": "ssm"} {"check_id": "ssm.e2e-patch-baseline-compliance-flow", "deployments": [], "key": "ssm/e2e-patch-baseline-compliance-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:GetPatchBaseline", "ssm:ListComplianceItems", "ssm:ListResourceComplianceSummaries", "ssm:PutComplianceItems", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_e2e_patch_baseline_compliance_flow.py", "service": "ssm"} {"check_id": "ssm.e2e-patch-baseline-to-patch-group-compliance-flow", "deployments": [], "key": "ssm/e2e-patch-baseline-to-patch-group-compliance-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:DescribeInstanceInformation", "ssm:DescribePatchGroupState", "ssm:DescribePatchGroups", "ssm:GetParameter", "ssm:GetPatchBaseline", "ssm:GetPatchBaselineForPatchGroup", "ssm:ListComplianceItems", "ssm:ListResourceComplianceSummaries", "ssm:PutComplianceItems", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_e2e_patch_baseline_to_patch_group_compliance_flow.py", "service": "ssm"} {"check_id": "ssm.e2e-session-connect-command-terminate-flow", "deployments": [], "key": "ssm/e2e-session-connect-command-terminate-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:GetParameter", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_e2e_session_connect_command_terminate_flow.py", "service": "ssm"} {"check_id": "ssm.e2e-session-manager-connect-use-history-flow", "deployments": [], "key": "ssm/e2e-session-manager-connect-use-history-flow", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:GetParameter", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_e2e_session_manager_connect_use_history_flow.py", "service": "ssm"} {"check_id": "ssm.ec2-image-datatype-validation-is-asynchronous-and-the-parameter-never-lands", "deployments": [], "key": "ssm/ec2-image-datatype-validation-is-asynchronous-and-the-parameter-never-lands", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_ec2_image_datatype_validation_is_asynchronous_and_the_parameter_never_lands.py", "service": "ssm"} {"check_id": "ssm.eks-optimized-and-bottlerocket-ami-public-parameters-resolve-to-image-ids", "deployments": [], "key": "ssm/eks-optimized-and-bottlerocket-ami-public-parameters-resolve-to-image-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:GetParameter"], "path": "behavioral/ssm/check_eks_optimized_and_bottlerocket_ami_public_parameters_resolve_to_image_ids.py", "service": "ssm"} {"check_id": "ssm.execution-preview-result-expires-after-window", "deployments": [], "key": "ssm/execution-preview-result-expires-after-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:GetExecutionPreview", "ssm:StartExecutionPreview"], "path": "behavioral/ssm/check_execution_preview_result_expires_after_window.py", "service": "ssm"} {"check_id": "ssm.execution-preview-start-then-get-lifecycle", "deployments": [], "key": "ssm/execution-preview-start-then-get-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetExecutionPreview", "ssm:StartExecutionPreview"], "path": "behavioral/ssm/check_execution_preview_start_then_get_lifecycle.py", "service": "ssm"} {"check_id": "ssm.expiration-notification-requires-expiration-policy", "deployments": [], "key": "ssm/expiration-notification-requires-expiration-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_expiration_notification_requires_expiration_policy.py", "service": "ssm"} {"check_id": "ssm.get-access-token-denied-without-permission", "deployments": [], "key": "ssm/get-access-token-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:GetAccessToken", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_get_access_token_denied_without_permission.py", "service": "ssm"} {"check_id": "ssm.get-aws-owned-run-shell-script-document-shape", "deployments": [], "key": "ssm/get-aws-owned-run-shell-script-document-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DescribeDocument", "ssm:GetDocument"], "path": "behavioral/ssm/check_get_aws_owned_run_shell_script_document_shape.py", "service": "ssm"} {"check_id": "ssm.get-calendar-state-invalid-document-type-rejected", "deployments": [], "key": "ssm/get-calendar-state-invalid-document-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:GetCalendarState"], "path": "behavioral/ssm/check_get_calendar_state_invalid_document_type_rejected.py", "service": "ssm"} {"check_id": "ssm.get-connection-status-without-session-returns-notconnected", "deployments": [], "key": "ssm/get-connection-status-without-session-returns-notconnected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:GetConnectionStatus"], "path": "behavioral/ssm/check_get_connection_status_without_session_returns_notconnected.py", "service": "ssm"} {"check_id": "ssm.get-deployable-patch-snapshot-unsupported-os-rejected", "deployments": [], "key": "ssm/get-deployable-patch-snapshot-unsupported-os-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DescribeAvailablePatches", "ssm:GetDeployablePatchSnapshotForInstance"], "path": "behavioral/ssm/check_get_deployable_patch_snapshot_unsupported_os_rejected.py", "service": "ssm"} {"check_id": "ssm.get-document-invalid-version-fails", "deployments": [], "key": "ssm/get-document-invalid-version-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:GetDocument"], "path": "behavioral/ssm/check_get_document_invalid_version_fails.py", "service": "ssm"} {"check_id": "ssm.get-document-yaml-format-converts-json-content", "deployments": [], "key": "ssm/get-document-yaml-format-converts-json-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetDocument"], "path": "behavioral/ssm/check_get_document_yaml_format_converts_json_content.py", "service": "ssm"} {"check_id": "ssm.get-execution-preview-nonexistent-rejected", "deployments": [], "key": "ssm/get-execution-preview-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetExecutionPreview", "ssm:StartExecutionPreview"], "path": "behavioral/ssm/check_get_execution_preview_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.get-maintenance-window-execution-nonexistent-rejected", "deployments": [], "key": "ssm/get-maintenance-window-execution-nonexistent-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetMaintenanceWindowExecution", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_get_maintenance_window_execution_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.get-maintenance-window-execution-task-nonexistent-rejected", "deployments": [], "key": "ssm/get-maintenance-window-execution-task-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetMaintenanceWindowExecutionTask"], "path": "behavioral/ssm/check_get_maintenance_window_execution_task_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.get-maintenance-window-execution-unknown-id-rejected", "deployments": [], "key": "ssm/get-maintenance-window-execution-unknown-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:GetMaintenanceWindow", "ssm:GetMaintenanceWindowExecution"], "path": "behavioral/ssm/check_get_maintenance_window_execution_unknown_id_rejected.py", "service": "ssm"} {"check_id": "ssm.get-nonexistent-maintenance-window-fails", "deployments": [], "key": "ssm/get-nonexistent-maintenance-window-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:GetMaintenanceWindow"], "path": "behavioral/ssm/check_get_nonexistent_maintenance_window_fails.py", "service": "ssm"} {"check_id": "ssm.get-nonexistent-opsitem-fails", "deployments": [], "key": "ssm/get-nonexistent-opsitem-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateOpsItem", "ssm:GetOpsItem", "ssm:UpdateOpsItem"], "path": "behavioral/ssm/check_get_nonexistent_opsitem_fails.py", "service": "ssm"} {"check_id": "ssm.get-nonexistent-parameter-fails", "deployments": [], "key": "ssm/get-nonexistent-parameter-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_nonexistent_parameter_fails.py", "service": "ssm"} {"check_id": "ssm.get-ops-summary-aggregates-opsitems", "deployments": [], "key": "ssm/get-ops-summary-aggregates-opsitems", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateOpsItem", "ssm:DeleteOpsItem", "ssm:GetOpsSummary"], "path": "behavioral/ssm/check_get_ops_summary_aggregates_opsitems.py", "service": "ssm"} {"check_id": "ssm.get-ops-summary-invalid-aggregator-rejected", "deployments": [], "key": "ssm/get-ops-summary-invalid-aggregator-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetOpsSummary"], "path": "behavioral/ssm/check_get_ops_summary_invalid_aggregator_rejected.py", "service": "ssm"} {"check_id": "ssm.get-parameter-history-tracks-versions", "deployments": [], "key": "ssm/get-parameter-history-tracks-versions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameterHistory", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameter_history_tracks_versions.py", "service": "ssm"} {"check_id": "ssm.get-parameter-invalid-label-fails", "deployments": [], "key": "ssm/get-parameter-invalid-label-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameter_invalid_label_fails.py", "service": "ssm"} {"check_id": "ssm.get-parameter-rejects-unknown-version", "deployments": [], "key": "ssm/get-parameter-rejects-unknown-version", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameter_rejects_unknown_version.py", "service": "ssm"} {"check_id": "ssm.get-parameters-batch-orders-alphabetically-and-buckets-unresolvable-selectors", "deployments": [], "key": "ssm/get-parameters-batch-orders-alphabetically-and-buckets-unresolvable-selectors", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameters", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameters_batch_orders_alphabetically_and_buckets_unresolvable_selectors.py", "service": "ssm"} {"check_id": "ssm.get-parameters-by-path-filters-by-label-pins-version", "deployments": [], "key": "ssm/get-parameters-by-path-filters-by-label-pins-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParametersByPath", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameters_by_path_filters_by_label_pins_version.py", "service": "ssm"} {"check_id": "ssm.get-parameters-by-path-filters-by-type", "deployments": [], "key": "ssm/get-parameters-by-path-filters-by-type", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameters_by_path_filters_by_type.py", "service": "ssm"} {"check_id": "ssm.get-parameters-by-path-hierarchy", "deployments": [], "key": "ssm/get-parameters-by-path-hierarchy", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameters_by_path_hierarchy.py", "service": "ssm"} {"check_id": "ssm.get-parameters-by-path-mid-level-subtree-with-mixed-types", "deployments": [], "key": "ssm/get-parameters-by-path-mid-level-subtree-with-mixed-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameters_by_path_mid_level_subtree_with_mixed_types.py", "service": "ssm"} {"check_id": "ssm.get-parameters-by-path-pagination-token-exactness", "deployments": [], "key": "ssm/get-parameters-by-path-pagination-token-exactness", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameters_by_path_pagination_token_exactness.py", "service": "ssm"} {"check_id": "ssm.get-parameters-by-path-tag-filter-silently-ignored", "deployments": [], "key": "ssm/get-parameters-by-path-tag-filter-silently-ignored", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameters_by_path_tag_filter_silently_ignored.py", "service": "ssm"} {"check_id": "ssm.get-parameters-by-path-unsupported-filter-keys-rejected", "deployments": [], "key": "ssm/get-parameters-by-path-unsupported-filter-keys-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_get_parameters_by_path_unsupported_filter_keys_rejected.py", "service": "ssm"} {"check_id": "ssm.global-infrastructure-region-public-parameters-name-us-east-1", "deployments": [], "key": "ssm/global-infrastructure-region-public-parameters-name-us-east-1", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:GetParameter", "ssm:GetParametersByPath"], "path": "behavioral/ssm/check_global_infrastructure_region_public_parameters_name_us_east_1.py", "service": "ssm"} {"check_id": "ssm.inventory-custom-schema-numeric-precision-preserved", "deployments": [], "key": "ssm/inventory-custom-schema-numeric-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:RunInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_inventory_custom_schema_numeric_precision_preserved.py", "service": "ssm"} {"check_id": "ssm.inventory-custom-schema-server-side-validation", "deployments": [], "key": "ssm/inventory-custom-schema-server-side-validation", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteInventory", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_inventory_custom_schema_server_side_validation.py", "service": "ssm"} {"check_id": "ssm.inventory-deletion-lifecycle", "deployments": [], "key": "ssm/inventory-deletion-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteInventory", "ssm:DescribeInstanceInformation", "ssm:DescribeInventoryDeletions", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:PutInventory"], "path": "behavioral/ssm/check_inventory_deletion_lifecycle.py", "service": "ssm"} {"check_id": "ssm.inventory-empty-vs-absent-attribute-preserved", "deployments": [], "key": "ssm/inventory-empty-vs-absent-attribute-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_inventory_empty_vs_absent_attribute_preserved.py", "service": "ssm"} {"check_id": "ssm.inventory-schema-and-instance-views", "deployments": [], "key": "ssm/inventory-schema-and-instance-views", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DescribeInstanceInformation", "ssm:DescribeInstancePatchStates", "ssm:GetInventory", "ssm:GetInventorySchema"], "path": "behavioral/ssm/check_inventory_schema_and_instance_views.py", "service": "ssm"} {"check_id": "ssm.label-parameter-version-and-fetch-by-label", "deployments": [], "key": "ssm/label-parameter-version-and-fetch-by-label", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_label_parameter_version_and_fetch_by_label.py", "service": "ssm"} {"check_id": "ssm.label-parameter-version-rejects-over-label-quota", "deployments": [], "key": "ssm/label-parameter-version-rejects-over-label-quota", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameterHistory", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_label_parameter_version_rejects_over_label_quota.py", "service": "ssm"} {"check_id": "ssm.list-nodes-reflects-managed-instances", "deployments": [], "key": "ssm/list-nodes-reflects-managed-instances", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DescribeInstanceInformation", "ssm:ListNodes"], "path": "behavioral/ssm/check_list_nodes_reflects_managed_instances.py", "service": "ssm"} {"check_id": "ssm.list-nodes-summary-aggregates-by-filter", "deployments": [], "key": "ssm/list-nodes-summary-aggregates-by-filter", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DescribeInstanceInformation", "ssm:ListNodes", "ssm:ListNodesSummary"], "path": "behavioral/ssm/check_list_nodes_summary_aggregates_by_filter.py", "service": "ssm"} {"check_id": "ssm.list-nodes-summary-invalid-aggregator-rejected", "deployments": [], "key": "ssm/list-nodes-summary-invalid-aggregator-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DescribeInstanceInformation", "ssm:ListNodesSummary"], "path": "behavioral/ssm/check_list_nodes_summary_invalid_aggregator_rejected.py", "service": "ssm"} {"check_id": "ssm.list-ops-item-events-limit-exceeded-rejected", "deployments": [], "key": "ssm/list-ops-item-events-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateOpsItem", "ssm:DeleteOpsItem", "ssm:ListOpsItemEvents"], "path": "behavioral/ssm/check_list_ops_item_events_limit_exceeded_rejected.py", "service": "ssm"} {"check_id": "ssm.list-ops-metadata-invalid-argument-blocked", "deployments": [], "key": "ssm/list-ops-metadata-invalid-argument-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:ListOpsMetadata"], "path": "behavioral/ssm/check_list_ops_metadata_invalid_argument_blocked.py", "service": "ssm"} {"check_id": "ssm.list-ops-metadata-invalid-filter-rejected", "deployments": [], "key": "ssm/list-ops-metadata-invalid-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:ListOpsMetadata"], "path": "behavioral/ssm/check_list_ops_metadata_invalid_filter_rejected.py", "service": "ssm"} {"check_id": "ssm.list-tags-on-untagged-parameters-returns-empty-tag-list", "deployments": [], "key": "ssm/list-tags-on-untagged-parameters-returns-empty-tag-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:ListTagsForResource", "ssm:PutParameter"], "path": "behavioral/ssm/check_list_tags_on_untagged_parameters_returns_empty_tag_list.py", "service": "ssm"} {"check_id": "ssm.list-tags-resolves-parameter-id-forms-and-version-selector-rejected", "deployments": [], "key": "ssm/list-tags-resolves-parameter-id-forms-and-version-selector-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:ListTagsForResource", "ssm:PutParameter"], "path": "behavioral/ssm/check_list_tags_resolves_parameter_id_forms_and_version_selector_rejected.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-cutoff-blocks-task-execution-near-end", "deployments": [], "key": "ssm/maintenance-window-cutoff-blocks-task-execution-near-end", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTaskFromMaintenanceWindow", "ssm:DescribeInstanceInformation", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetMaintenanceWindow", "ssm:GetMaintenanceWindowExecution", "ssm:GetMaintenanceWindowTask", "ssm:GetParameter", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_maintenance_window_cutoff_blocks_task_execution_near_end.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-dates-echo-and-invalid-schedule-rejected", "deployments": [], "key": "ssm/maintenance-window-dates-echo-and-invalid-schedule-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindows", "ssm:GetMaintenanceWindow"], "path": "behavioral/ssm/check_maintenance_window_dates_echo_and_invalid_schedule_rejected.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-execution-lookup-nonexistent-rejected", "deployments": [], "key": "ssm/maintenance-window-execution-lookup-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindowExecutionTaskInvocations", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:GetMaintenanceWindow", "ssm:GetMaintenanceWindowExecution", "ssm:GetMaintenanceWindowExecutionTask", "ssm:GetMaintenanceWindowExecutionTaskInvocation"], "path": "behavioral/ssm/check_maintenance_window_execution_lookup_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-execution-task-invocation-describe-chain", "deployments": [], "key": "ssm/maintenance-window-execution-task-invocation-describe-chain", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeInstanceInformation", "ssm:DescribeMaintenanceWindowExecutionTaskInvocations", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetMaintenanceWindowExecution", "ssm:GetMaintenanceWindowExecutionTask", "ssm:GetMaintenanceWindowExecutionTaskInvocation", "ssm:GetParameter", "ssm:RegisterTargetWithMaintenanceWindow", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_maintenance_window_execution_task_invocation_describe_chain.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-execution-task-invocation-lifecycle", "deployments": [], "key": "ssm/maintenance-window-execution-task-invocation-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "logs:DeleteLogGroup", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindowExecutionTaskInvocations", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetMaintenanceWindowExecution", "ssm:GetMaintenanceWindowExecutionTask", "ssm:GetMaintenanceWindowExecutionTaskInvocation", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_maintenance_window_execution_task_invocation_lifecycle.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-execution-task-invocation-times-out", "deployments": [], "key": "ssm/maintenance-window-execution-task-invocation-times-out", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DeregisterTaskFromMaintenanceWindow", "ssm:DescribeInstanceInformation", "ssm:DescribeMaintenanceWindowExecutionTaskInvocations", "ssm:DescribeMaintenanceWindowExecutionTasks", "ssm:DescribeMaintenanceWindowExecutions", "ssm:GetParameter", "ssm:RegisterTargetWithMaintenanceWindow", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_maintenance_window_execution_task_invocation_times_out.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-next-execution-time-recomputed", "deployments": [], "key": "ssm/maintenance-window-next-execution-time-recomputed", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindowSchedule", "ssm:DescribeMaintenanceWindows", "ssm:GetMaintenanceWindow", "ssm:UpdateMaintenanceWindow"], "path": "behavioral/ssm/check_maintenance_window_next_execution_time_recomputed.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-target-update-and-describe", "deployments": [], "key": "ssm/maintenance-window-target-update-and-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowsForTarget", "ssm:RegisterTargetWithMaintenanceWindow", "ssm:UpdateMaintenanceWindowTarget"], "path": "behavioral/ssm/check_maintenance_window_target_update_and_describe.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-task-concurrent-registration-consistent", "deployments": [], "key": "ssm/maintenance-window-task-concurrent-registration-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:CreateMaintenanceWindow", "ssm:DeleteDocument", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTaskFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowTasks", "ssm:RegisterTaskWithMaintenanceWindow"], "path": "behavioral/ssm/check_maintenance_window_task_concurrent_registration_consistent.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-task-full-lifecycle", "deployments": [], "key": "ssm/maintenance-window-task-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DeregisterTaskFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowTasks", "ssm:GetMaintenanceWindowTask", "ssm:RegisterTargetWithMaintenanceWindow", "ssm:RegisterTaskWithMaintenanceWindow", "ssm:UpdateMaintenanceWindowTask"], "path": "behavioral/ssm/check_maintenance_window_task_full_lifecycle.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-task-update-and-schedule", "deployments": [], "key": "ssm/maintenance-window-task-update-and-schedule", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CancelMaintenanceWindowExecution", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTaskFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowExecutions", "ssm:DescribeMaintenanceWindowSchedule", "ssm:DescribeMaintenanceWindowTargets", "ssm:DescribeMaintenanceWindowTasks", "ssm:GetMaintenanceWindowTask", "ssm:RegisterTargetWithMaintenanceWindow", "ssm:RegisterTaskWithMaintenanceWindow", "ssm:UpdateMaintenanceWindowTarget", "ssm:UpdateMaintenanceWindowTask"], "path": "behavioral/ssm/check_maintenance_window_task_update_and_schedule.py", "service": "ssm"} {"check_id": "ssm.maintenance-window-update-and-schedule-describe", "deployments": [], "key": "ssm/maintenance-window-update-and-schedule-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DescribeMaintenanceWindowSchedule", "ssm:DescribeMaintenanceWindows", "ssm:UpdateMaintenanceWindow"], "path": "behavioral/ssm/check_maintenance_window_update_and_schedule_describe.py", "service": "ssm"} {"check_id": "ssm.managed-instance-role-invalid-instance-rejected", "deployments": [], "key": "ssm/managed-instance-role-invalid-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations", "ssm:DescribeInstanceInformation", "ssm:UpdateManagedInstanceRole"], "path": "behavioral/ssm/check_managed_instance_role_invalid_instance_rejected.py", "service": "ssm"} {"check_id": "ssm.managed-instance-role-update-persists", "deployments": [], "key": "ssm/managed-instance-role-update-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations", "ssm:DescribeInstanceProperties", "ssm:UpdateManagedInstanceRole"], "path": "behavioral/ssm/check_managed_instance_role_update_persists.py", "service": "ssm"} {"check_id": "ssm.ops-item-delete-and-events-list", "deployments": [], "key": "ssm/ops-item-delete-and-events-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateOpsItem", "ssm:DeleteOpsItem", "ssm:DescribeOpsItems", "ssm:GetOpsItem", "ssm:ListOpsItemEvents"], "path": "behavioral/ssm/check_ops_item_delete_and_events_list.py", "service": "ssm"} {"check_id": "ssm.ops-item-related-item-association", "deployments": [], "key": "ssm/ops-item-related-item-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AssociateOpsItemRelatedItem", "ssm:CreateDocument", "ssm:CreateOpsItem", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:DisassociateOpsItemRelatedItem", "ssm:ListOpsItemRelatedItems", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_ops_item_related_item_association.py", "service": "ssm"} {"check_id": "ssm.ops-item-related-items-lifecycle", "deployments": [], "key": "ssm/ops-item-related-items-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AssociateOpsItemRelatedItem", "ssm:CreateDocument", "ssm:CreateOpsItem", "ssm:DeleteDocument", "ssm:DeleteOpsItem", "ssm:DisassociateOpsItemRelatedItem", "ssm:ListOpsItemRelatedItems", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_ops_item_related_items_lifecycle.py", "service": "ssm"} {"check_id": "ssm.ops-metadata-create-duplicate-rejected", "deployments": [], "key": "ssm/ops-metadata-create-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:CreateOpsMetadata", "ssm:ListOpsMetadata", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_ops_metadata_create_duplicate_rejected.py", "service": "ssm"} {"check_id": "ssm.ops-metadata-delete-nonexistent-rejected", "deployments": [], "key": "ssm/ops-metadata-delete-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteOpsMetadata", "ssm:GetOpsMetadata", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_ops_metadata_delete_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.ops-metadata-get-nonexistent-rejected", "deployments": [], "key": "ssm/ops-metadata-get-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetOpsMetadata", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_ops_metadata_get_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.ops-metadata-invalid-argument-rejected", "deployments": [], "key": "ssm/ops-metadata-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:CreateOpsMetadata", "ssm:ListOpsMetadata", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_ops_metadata_invalid_argument_rejected.py", "service": "ssm"} {"check_id": "ssm.opsitem-events-list-after-related-item-association", "deployments": [], "key": "ssm/opsitem-events-list-after-related-item-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AssociateOpsItemRelatedItem", "ssm:CreateDocument", "ssm:CreateOpsItem", "ssm:DeleteDocument", "ssm:DeleteOpsItem", "ssm:DisassociateOpsItemRelatedItem", "ssm:ListOpsItemRelatedItems", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_opsitem_events_list_after_related_item_association.py", "service": "ssm"} {"check_id": "ssm.parameter-hierarchy-depth-and-prefix-conflict-rejected", "deployments": [], "key": "ssm/parameter-hierarchy-depth-and-prefix-conflict-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_parameter_hierarchy_depth_and_prefix_conflict_rejected.py", "service": "ssm"} {"check_id": "ssm.parameter-policies-survive-a-value-update-and-only-an-empty-array-clears-them", "deployments": [], "key": "ssm/parameter-policies-survive-a-value-update-and-only-an-empty-array-clears-them", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_parameter_policies_survive_a_value_update_and_only_an_empty_array_clears_them.py", "service": "ssm"} {"check_id": "ssm.parameter-tier-upgrade-is-one-way-and-intelligent-tiering-derives-the-tier", "deployments": [], "key": "ssm/parameter-tier-upgrade-is-one-way-and-intelligent-tiering-derives-the-tier", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_parameter_tier_upgrade_is_one_way_and_intelligent_tiering_derives_the_tier.py", "service": "ssm"} {"check_id": "ssm.parameter-unlabel-partial-semantics", "deployments": [], "key": "ssm/parameter-unlabel-partial-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameterHistory", "ssm:LabelParameterVersion", "ssm:PutParameter", "ssm:UnlabelParameterVersion"], "path": "behavioral/ssm/check_parameter_unlabel_partial_semantics.py", "service": "ssm"} {"check_id": "ssm.parameter-version-selector-and-label-move", "deployments": [], "key": "ssm/parameter-version-selector-and-label-move", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:LabelParameterVersion", "ssm:PutParameter", "ssm:UnlabelParameterVersion"], "path": "behavioral/ssm/check_parameter_version_selector_and_label_move.py", "service": "ssm"} {"check_id": "ssm.patch-baseline-amazon-linux-2023-echo-and-invalid-filter-key-rejected", "deployments": [], "key": "ssm/patch-baseline-amazon-linux-2023-echo-and-invalid-filter-key-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DescribePatchBaselines", "ssm:GetPatchBaseline"], "path": "behavioral/ssm/check_patch_baseline_amazon_linux_2023_echo_and_invalid_filter_key_rejected.py", "service": "ssm"} {"check_id": "ssm.patch-baseline-delete-while-registered-rejected", "deployments": [], "key": "ssm/patch-baseline-delete-while-registered-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:DescribePatchGroups", "ssm:GetPatchBaseline", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_patch_baseline_delete_while_registered_rejected.py", "service": "ssm"} {"check_id": "ssm.patch-baseline-group-registration-lifecycle", "deployments": [], "key": "ssm/patch-baseline-group-registration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:DescribePatchBaselines", "ssm:DescribePatchGroups", "ssm:GetPatchBaseline", "ssm:GetPatchBaselineForPatchGroup", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_patch_baseline_group_registration_lifecycle.py", "service": "ssm"} {"check_id": "ssm.patch-baseline-register-conflicting-os-rejected", "deployments": [], "key": "ssm/patch-baseline-register-conflicting-os-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:GetPatchBaselineForPatchGroup", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_patch_baseline_register_conflicting_os_rejected.py", "service": "ssm"} {"check_id": "ssm.patch-baseline-update-and-default-registration", "deployments": [], "key": "ssm/patch-baseline-update-and-default-registration", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DescribePatchBaselines", "ssm:GetDefaultPatchBaseline", "ssm:GetPatchBaseline", "ssm:RegisterDefaultPatchBaseline", "ssm:UpdatePatchBaseline"], "path": "behavioral/ssm/check_patch_baseline_update_and_default_registration.py", "service": "ssm"} {"check_id": "ssm.patch-group-registration-lifecycle", "deployments": [], "key": "ssm/patch-group-registration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:DescribePatchGroups", "ssm:GetPatchBaseline", "ssm:GetPatchBaselineForPatchGroup", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_patch_group_registration_lifecycle.py", "service": "ssm"} {"check_id": "ssm.patch-group-state-server-computed-from-baseline", "deployments": [], "key": "ssm/patch-group-state-server-computed-from-baseline", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:DescribeInstanceInformation", "ssm:DescribePatchGroupState", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:RegisterPatchBaselineForPatchGroup", "ssm:SendCommand"], "path": "behavioral/ssm/check_patch_group_state_server_computed_from_baseline.py", "service": "ssm"} {"check_id": "ssm.public-parameter-reference-data-readable-not-owned", "deployments": [], "key": "ssm/public-parameter-reference-data-readable-not-owned", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:GetParameters", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_public_parameter_reference_data_readable_not_owned.py", "service": "ssm"} {"check_id": "ssm.put-compliance-items-limit-exceeded-rejected", "deployments": [], "key": "ssm/put-compliance-items-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListComplianceItems", "ssm:PutComplianceItems", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_put_compliance_items_limit_exceeded_rejected.py", "service": "ssm"} {"check_id": "ssm.put-compliance-items-then-list-roundtrip", "deployments": [], "key": "ssm/put-compliance-items-then-list-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListComplianceItems", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_put_compliance_items_then_list_roundtrip.py", "service": "ssm"} {"check_id": "ssm.put-get-parameter-roundtrip", "deployments": [], "key": "ssm/put-get-parameter-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_put_get_parameter_roundtrip.py", "service": "ssm"} {"check_id": "ssm.put-inventory-custom-schema-limit-exceeded-rejected", "deployments": [], "key": "ssm/put-inventory-custom-schema-limit-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteInventory", "ssm:DescribeInstanceInformation", "ssm:DescribeInventoryDeletions", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_put_inventory_custom_schema_limit_exceeded_rejected.py", "service": "ssm"} {"check_id": "ssm.put-inventory-malformed-instance-id-blocked", "deployments": [], "key": "ssm/put-inventory-malformed-instance-id-blocked", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_put_inventory_malformed_instance_id_blocked.py", "service": "ssm"} {"check_id": "ssm.put-inventory-numeric-precision-preserved", "deployments": [], "key": "ssm/put-inventory-numeric-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_put_inventory_numeric_precision_preserved.py", "service": "ssm"} {"check_id": "ssm.put-inventory-then-delete-inventory-lifecycle", "deployments": [], "key": "ssm/put-inventory-then-delete-inventory-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DeleteInventory", "ssm:DescribeInstanceInformation", "ssm:DescribeInventoryDeletions", "ssm:GetParameter", "ssm:ListInventoryEntries", "ssm:PutInventory"], "path": "behavioral/ssm/check_put_inventory_then_delete_inventory_lifecycle.py", "service": "ssm"} {"check_id": "ssm.put-inventory-unauthorized-principal-denied", "deployments": [], "key": "ssm/put-inventory-unauthorized-principal-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:DescribeInstanceInformation", "ssm:PutInventory", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_put_inventory_unauthorized_principal_denied.py", "service": "ssm"} {"check_id": "ssm.put-parameter-create-tags-survive-overwrites", "deployments": [], "key": "ssm/put-parameter-create-tags-survive-overwrites", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:ListTagsForResource", "ssm:PutParameter"], "path": "behavioral/ssm/check_put_parameter_create_tags_survive_overwrites.py", "service": "ssm"} {"check_id": "ssm.put-parameter-overwrite-increments-version", "deployments": [], "key": "ssm/put-parameter-overwrite-increments-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_put_parameter_overwrite_increments_version.py", "service": "ssm"} {"check_id": "ssm.put-parameter-overwrite-with-tags-rejected", "deployments": [], "key": "ssm/put-parameter-overwrite-with-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:ListTagsForResource", "ssm:PutParameter"], "path": "behavioral/ssm/check_put_parameter_overwrite_with_tags_rejected.py", "service": "ssm"} {"check_id": "ssm.put-parameter-policies-without-advanced-tier-rejected", "deployments": [], "key": "ssm/put-parameter-policies-without-advanced-tier-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_put_parameter_policies_without_advanced_tier_rejected.py", "service": "ssm"} {"check_id": "ssm.put-parameter-rejects-pattern-mismatch", "deployments": [], "key": "ssm/put-parameter-rejects-pattern-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_put_parameter_rejects_pattern_mismatch.py", "service": "ssm"} {"check_id": "ssm.put-parameter-without-overwrite-fails", "deployments": [], "key": "ssm/put-parameter-without-overwrite-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_put_parameter_without_overwrite_fails.py", "service": "ssm"} {"check_id": "ssm.put-resource-policy-malformed-document-rejected", "deployments": [], "key": "ssm/put-resource-policy-malformed-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DeleteResourcePolicy", "ssm:GetParameter", "ssm:GetResourcePolicies", "ssm:PutParameter", "ssm:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_put_resource_policy_malformed_document_rejected.py", "service": "ssm"} {"check_id": "ssm.register-default-patch-baseline-nonexistent-rejected", "deployments": [], "key": "ssm/register-default-patch-baseline-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:GetDefaultPatchBaseline", "ssm:RegisterDefaultPatchBaseline"], "path": "behavioral/ssm/check_register_default_patch_baseline_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.register-deregister-maintenance-window-target", "deployments": [], "key": "ssm/register-deregister-maintenance-window-target", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:DeregisterTargetFromMaintenanceWindow", "ssm:DescribeMaintenanceWindowTargets", "ssm:RegisterTargetWithMaintenanceWindow"], "path": "behavioral/ssm/check_register_deregister_maintenance_window_target.py", "service": "ssm"} {"check_id": "ssm.register-patch-baseline-duplicate-patch-group-rejected", "deployments": [], "key": "ssm/register-patch-baseline-duplicate-patch-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:GetPatchBaselineForPatchGroup", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_register_patch_baseline_duplicate_patch_group_rejected.py", "service": "ssm"} {"check_id": "ssm.register-patch-baseline-duplicate-patchgroup-rejected", "deployments": [], "key": "ssm/register-patch-baseline-duplicate-patchgroup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:DescribePatchGroups", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_register_patch_baseline_duplicate_patchgroup_rejected.py", "service": "ssm"} {"check_id": "ssm.register-patch-baseline-for-patch-group-conflict-rejected", "deployments": [], "key": "ssm/register-patch-baseline-for-patch-group-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreatePatchBaseline", "ssm:DeletePatchBaseline", "ssm:DeregisterPatchBaselineForPatchGroup", "ssm:GetPatchBaselineForPatchGroup", "ssm:RegisterPatchBaselineForPatchGroup"], "path": "behavioral/ssm/check_register_patch_baseline_for_patch_group_conflict_rejected.py", "service": "ssm"} {"check_id": "ssm.remove-tags-absent-keys-noop-and-last-removal-leaves-empty-list", "deployments": [], "key": "ssm/remove-tags-absent-keys-noop-and-last-removal-leaves-empty-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:ListTagsForResource", "ssm:PutParameter", "ssm:RemoveTagsFromResource"], "path": "behavioral/ssm/check_remove_tags_absent_keys_noop_and_last_removal_leaves_empty_list.py", "service": "ssm"} {"check_id": "ssm.reset-service-setting-restores-default", "deployments": [], "key": "ssm/reset-service-setting-restores-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_reset_service_setting_restores_default.py", "service": "ssm"} {"check_id": "ssm.reset-service-setting-too-many-updates-rejected", "deployments": [], "key": "ssm/reset-service-setting-too-many-updates-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting"], "path": "behavioral/ssm/check_reset_service_setting_too_many_updates_rejected.py", "service": "ssm"} {"check_id": "ssm.reset-service-setting-unknown-setting-rejected", "deployments": [], "key": "ssm/reset-service-setting-unknown-setting-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_reset_service_setting_unknown_setting_rejected.py", "service": "ssm"} {"check_id": "ssm.resource-compliance-summary-reflects-resource-state", "deployments": [], "key": "ssm/resource-compliance-summary-reflects-resource-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetInventorySchema", "ssm:GetParameter", "ssm:ListResourceComplianceSummaries", "ssm:PutComplianceItems"], "path": "behavioral/ssm/check_resource_compliance_summary_reflects_resource_state.py", "service": "ssm"} {"check_id": "ssm.resource-data-sync-full-lifecycle", "deployments": [], "key": "ssm/resource-data-sync-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateResourceDataSync", "ssm:DeleteResourceDataSync", "ssm:ListResourceDataSync", "ssm:UpdateResourceDataSync"], "path": "behavioral/ssm/check_resource_data_sync_full_lifecycle.py", "service": "ssm"} {"check_id": "ssm.resource-data-sync-list-and-not-found", "deployments": [], "key": "ssm/resource-data-sync-list-and-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateResourceDataSync", "ssm:DeleteResourceDataSync", "ssm:ListResourceDataSync"], "path": "behavioral/ssm/check_resource_data_sync_list_and_not_found.py", "service": "ssm"} {"check_id": "ssm.resource-policy-hash-mismatch-delete-rejected", "deployments": [], "key": "ssm/resource-policy-hash-mismatch-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DeleteResourcePolicy", "ssm:GetParameter", "ssm:GetResourcePolicies", "ssm:PutParameter", "ssm:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_resource_policy_hash_mismatch_delete_rejected.py", "service": "ssm"} {"check_id": "ssm.resource-policy-lifecycle", "deployments": [], "key": "ssm/resource-policy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DeleteResourcePolicy", "ssm:GetParameter", "ssm:GetResourcePolicies", "ssm:PutParameter", "ssm:PutResourcePolicy", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_resource_policy_lifecycle.py", "service": "ssm"} {"check_id": "ssm.resume-nonexistent-session-rejected", "deployments": [], "key": "ssm/resume-nonexistent-session-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:ResumeSession", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_resume_nonexistent_session_rejected.py", "service": "ssm"} {"check_id": "ssm.resume-session-after-terminate-rejected", "deployments": [], "key": "ssm/resume-session-after-terminate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:ResumeSession", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_resume_session_after_terminate_rejected.py", "service": "ssm"} {"check_id": "ssm.role-scoped-to-parameter-path-prefix-denies-outside-subtree", "deployments": [], "key": "ssm/role-scoped-to-parameter-path-prefix-denies-outside-subtree", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameters", "ssm:GetParametersByPath", "ssm:PutParameter", "sts:AssumeRole"], "path": "behavioral/ssm/check_role_scoped_to_parameter_path_prefix_denies_outside_subtree.py", "service": "ssm"} {"check_id": "ssm.run-command-and-automation-execution-ids-resolve-only-in-their-own-api", "deployments": [], "key": "ssm/run-command-and-automation-execution-ids-resolve-only-in-their-own-api", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CancelCommand", "ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:ListCommands", "ssm:SendCommand", "ssm:StartAutomationExecution"], "path": "behavioral/ssm/check_run_command_and_automation_execution_ids_resolve_only_in_their_own_api.py", "service": "ssm"} {"check_id": "ssm.run-command-nonzero-exit-surfaces-as-failed-with-the-exact-response-code", "deployments": [], "key": "ssm/run-command-nonzero-exit-surfaces-as-failed-with-the-exact-response-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteInternetGateway", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstances", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:DetachInternetGateway", "ec2:ModifySubnetAttribute", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:GetCommandInvocation", "ssm:GetParameter", "ssm:ListCommandInvocations", "ssm:ListCommands", "ssm:SendCommand"], "path": "behavioral/ssm/check_run_command_nonzero_exit_surfaces_as_failed_with_the_exact_response_code.py", "service": "ssm"} {"check_id": "ssm.same-name-parameters-in-two-regions-are-independent", "deployments": [], "key": "ssm/same-name-parameters-in-two-regions-are-independent", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_same_name_parameters_in_two_regions_are_independent.py", "service": "ssm"} {"check_id": "ssm.secure-string-allowed-pattern-validates-plaintext", "deployments": [], "key": "ssm/secure-string-allowed-pattern-validates-plaintext", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:PutParameter"], "path": "behavioral/ssm/check_secure_string_allowed_pattern_validates_plaintext.py", "service": "ssm"} {"check_id": "ssm.secure-string-ciphertext-on-all-read-paths", "deployments": [], "key": "ssm/secure-string-ciphertext-on-all-read-paths", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:GetParameters", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_secure_string_ciphertext_on_all_read_paths.py", "service": "ssm"} {"check_id": "ssm.secure-string-customer-managed-kms-key-overwrite-rekeys-history", "deployments": [], "key": "ssm/secure-string-customer-managed-kms-key-overwrite-rekeys-history", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:DescribeKey", "kms:ScheduleKeyDeletion", "ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_secure_string_customer_managed_kms_key_overwrite_rekeys_history.py", "service": "ssm"} {"check_id": "ssm.secure-string-decrypts-on-batch-history-and-path-reads-and-leaves-them-after-delete", "deployments": [], "key": "ssm/secure-string-decrypts-on-batch-history-and-path-reads-and-leaves-them-after-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameterHistory", "ssm:GetParameters", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_secure_string_decrypts_on_batch_history_and_path_reads_and_leaves_them_after_delete.py", "service": "ssm"} {"check_id": "ssm.secure-string-reads-plaintext-only-with-decryption-and-is-gone-after-delete", "deployments": [], "key": "ssm/secure-string-reads-plaintext-only-with-decryption-and-is-gone-after-delete", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_secure_string_reads_plaintext_only_with_decryption_and_is_gone_after_delete.py", "service": "ssm"} {"check_id": "ssm.secure-string-roundtrip-decryption", "deployments": [], "key": "ssm/secure-string-roundtrip-decryption", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameter", "ssm:LabelParameterVersion", "ssm:PutParameter"], "path": "behavioral/ssm/check_secure_string_roundtrip_decryption.py", "service": "ssm"} {"check_id": "ssm.send-automation-signal-invalid-state-rejected", "deployments": [], "key": "ssm/send-automation-signal-invalid-state-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:SendAutomationSignal", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution"], "path": "behavioral/ssm/check_send_automation_signal_invalid_state_rejected.py", "service": "ssm"} {"check_id": "ssm.send-automation-signal-invalid-step-rejected", "deployments": [], "key": "ssm/send-automation-signal-invalid-step-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:SendAutomationSignal", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution"], "path": "behavioral/ssm/check_send_automation_signal_invalid_step_rejected.py", "service": "ssm"} {"check_id": "ssm.send-automation-signal-nonexistent-execution-rejected", "deployments": [], "key": "ssm/send-automation-signal-nonexistent-execution-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeAutomationExecutions", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:SendAutomationSignal", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution"], "path": "behavioral/ssm/check_send_automation_signal_nonexistent_execution_rejected.py", "service": "ssm"} {"check_id": "ssm.send-automation-signal-nonexistent-step-rejected", "deployments": [], "key": "ssm/send-automation-signal-nonexistent-step-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:GetAutomationExecution", "ssm:SendAutomationSignal", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution"], "path": "behavioral/ssm/check_send_automation_signal_nonexistent_step_rejected.py", "service": "ssm"} {"check_id": "ssm.send-automation-signal-unknown-execution-rejected", "deployments": [], "key": "ssm/send-automation-signal-unknown-execution-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeAutomationExecutions", "ssm:GetAutomationExecution", "ssm:SendAutomationSignal", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution"], "path": "behavioral/ssm/check_send_automation_signal_unknown_execution_rejected.py", "service": "ssm"} {"check_id": "ssm.send-automation-signal-unknown-step-rejected", "deployments": [], "key": "ssm/send-automation-signal-unknown-step-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:GetAutomationExecution", "ssm:SendAutomationSignal", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution"], "path": "behavioral/ssm/check_send_automation_signal_unknown_step_rejected.py", "service": "ssm"} {"check_id": "ssm.send-command-rejects-nonexistent-instance", "deployments": [], "key": "ssm/send-command-rejects-nonexistent-instance", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:ListCommands", "ssm:SendCommand"], "path": "behavioral/ssm/check_send_command_rejects_nonexistent_instance.py", "service": "ssm"} {"check_id": "ssm.send-command-zero-target-invocations", "deployments": [], "key": "ssm/send-command-zero-target-invocations", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CancelCommand", "ssm:GetCommandInvocation", "ssm:ListCommandInvocations", "ssm:ListCommands", "ssm:SendCommand"], "path": "behavioral/ssm/check_send_command_zero_target_invocations.py", "service": "ssm"} {"check_id": "ssm.service-setting-read-semantics", "deployments": [], "key": "ssm/service-setting-read-semantics", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:GetServiceSetting", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_service_setting_read_semantics.py", "service": "ssm"} {"check_id": "ssm.service-setting-reset-restores-default", "deployments": [], "key": "ssm/service-setting-reset-restores-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting"], "path": "behavioral/ssm/check_service_setting_reset_restores_default.py", "service": "ssm"} {"check_id": "ssm.service-setting-too-many-updates-rejected", "deployments": [], "key": "ssm/service-setting-too-many-updates-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_service_setting_too_many_updates_rejected.py", "service": "ssm"} {"check_id": "ssm.session-idle-timeout-terminates-session", "deployments": [], "key": "ssm/session-idle-timeout-terminates-session", "labels": ["axis:happy-path", "plane:control", "timing:real-time"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:TerminateSession"], "path": "behavioral/ssm/check_session_idle_timeout_terminates_session.py", "service": "ssm"} {"check_id": "ssm.session-resume-after-timeout-rejected", "deployments": [], "key": "ssm/session-resume-after-timeout-rejected", "labels": ["axis:rejection", "plane:control", "timing:real-time"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:ResumeSession", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_session_resume_after_timeout_rejected.py", "service": "ssm"} {"check_id": "ssm.session-resume-extends-existing-session", "deployments": [], "key": "ssm/session-resume-extends-existing-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:ResumeSession", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_session_resume_extends_existing_session.py", "service": "ssm"} {"check_id": "ssm.session-resume-within-timeout-succeeds", "deployments": [], "key": "ssm/session-resume-within-timeout-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:ResumeSession", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_session_resume_within_timeout_succeeds.py", "service": "ssm"} {"check_id": "ssm.session-start-describe-terminate-lifecycle", "deployments": [], "key": "ssm/session-start-describe-terminate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_session_start_describe_terminate_lifecycle.py", "service": "ssm"} {"check_id": "ssm.session-start-status-terminate-lifecycle", "deployments": [], "key": "ssm/session-start-status-terminate-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:GetParameter", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_session_start_status_terminate_lifecycle.py", "service": "ssm"} {"check_id": "ssm.ssm-automation-branch-takes-one-path-and-the-other-branchs-effect-is-absent", "deployments": [], "key": "ssm/ssm-automation-branch-takes-one-path-and-the-other-branchs-effect-is-absent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DeleteParameter", "ssm:DescribeAutomationStepExecutions", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:GetParameter", "ssm:StartAutomationExecution"], "path": "behavioral/ssm/check_ssm_automation_branch_takes_one_path_and_the_other_branchs_effect_is_absent.py", "service": "ssm"} {"check_id": "ssm.ssm-automation-execute-script-computes-its-output-in-the-managed-runtime", "deployments": [], "key": "ssm/ssm-automation-execute-script-computes-its-output-in-the-managed-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DeleteParameter", "ssm:DescribeAutomationStepExecutions", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:GetParameter", "ssm:StartAutomationExecution"], "path": "behavioral/ssm/check_ssm_automation_execute_script_computes_its_output_in_the_managed_runtime.py", "service": "ssm"} {"check_id": "ssm.ssm-concurrent-overwrites-keep-every-version-byte-exact-and-both-read-paths-agree", "deployments": [], "key": "ssm/ssm-concurrent-overwrites-keep-every-version-byte-exact-and-both-read-paths-agree", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameterHistory", "ssm:PutParameter"], "path": "behavioral/ssm/check_ssm_concurrent_overwrites_keep_every_version_byte_exact_and_both_read_paths_agree.py", "service": "ssm"} {"check_id": "ssm.ssm-get-parameters-by-path-returns-exactly-the-subtree-across-pages", "deployments": [], "key": "ssm/ssm-get-parameters-by-path-returns-exactly-the-subtree-across-pages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:DeleteParameters", "ssm:GetParameter", "ssm:GetParameters", "ssm:GetParametersByPath", "ssm:PutParameter"], "path": "behavioral/ssm/check_ssm_get_parameters_by_path_returns_exactly_the_subtree_across_pages.py", "service": "ssm"} {"check_id": "ssm.start-access-request-denied-without-permission", "deployments": [], "key": "ssm/start-access-request-denied-without-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:DescribeInstanceInformation", "ssm:StartAccessRequest", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_start_access_request_denied_without_permission.py", "service": "ssm"} {"check_id": "ssm.start-access-request-denied-without-permission-boundary", "deployments": [], "key": "ssm/start-access-request-denied-without-permission-boundary", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:ListDocuments", "ssm:StartAccessRequest"], "path": "behavioral/ssm/check_start_access_request_denied_without_permission_boundary.py", "service": "ssm"} {"check_id": "ssm.start-access-request-nonexistent-resource-rejected", "deployments": [], "key": "ssm/start-access-request-nonexistent-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "ssm:StartAccessRequest", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_start_access_request_nonexistent_resource_rejected.py", "service": "ssm"} {"check_id": "ssm.start-execution-preview-malformed-input-rejected", "deployments": [], "key": "ssm/start-execution-preview-malformed-input-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetExecutionPreview", "ssm:StartExecutionPreview"], "path": "behavioral/ssm/check_start_execution_preview_malformed_input_rejected.py", "service": "ssm"} {"check_id": "ssm.start-session-target-not-connected-rejected", "deployments": [], "key": "ssm/start-session-target-not-connected-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_start_session_target_not_connected_rejected.py", "service": "ssm"} {"check_id": "ssm.string-list-allowed-pattern-applies-per-element", "deployments": [], "key": "ssm/string-list-allowed-pattern-applies-per-element", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ssm:DeleteParameter", "ssm:GetParameter", "ssm:PutParameter"], "path": "behavioral/ssm/check_string_list_allowed_pattern_applies_per_element.py", "service": "ssm"} {"check_id": "ssm.tag-calls-reject-missing-window-and-mismatched-resource-type", "deployments": [], "key": "ssm/tag-calls-reject-missing-window-and-mismatched-resource-type", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:CreateMaintenanceWindow", "ssm:DeleteMaintenanceWindow", "ssm:ListTagsForResource"], "path": "behavioral/ssm/check_tag_calls_reject_missing_window_and_mismatched_resource_type.py", "service": "ssm"} {"check_id": "ssm.tag-parameter-add-list-remove", "deployments": [], "key": "ssm/tag-parameter-add-list-remove", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:DeleteParameter", "ssm:ListTagsForResource", "ssm:PutParameter", "ssm:RemoveTagsFromResource"], "path": "behavioral/ssm/check_tag_parameter_add_list_remove.py", "service": "ssm"} {"check_id": "ssm.tags-do-not-survive-parameter-delete-and-recreate-rejected", "deployments": [], "key": "ssm/tags-do-not-survive-parameter-delete-and-recreate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:AddTagsToResource", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:ListTagsForResource", "ssm:PutParameter", "ssm:RemoveTagsFromResource"], "path": "behavioral/ssm/check_tags_do_not_survive_parameter_delete_and_recreate_rejected.py", "service": "ssm"} {"check_id": "ssm.terminate-session-already-terminated-noop", "deployments": [], "key": "ssm/terminate-session-already-terminated-noop", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:DescribeInstanceInformation", "ssm:DescribeSessions", "ssm:GetParameter", "ssm:StartSession", "ssm:TerminateSession"], "path": "behavioral/ssm/check_terminate_session_already_terminated_noop.py", "service": "ssm"} {"check_id": "ssm.update-association-status-invalid-document-rejected", "deployments": [], "key": "ssm/update-association-status-invalid-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeAssociation", "ssm:GetDocument", "ssm:UpdateAssociationStatus"], "path": "behavioral/ssm/check_update_association_status_invalid_document_rejected.py", "service": "ssm"} {"check_id": "ssm.update-association-status-nonexistent-association-rejected", "deployments": [], "key": "ssm/update-association-status-nonexistent-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeAssociation", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:UpdateAssociationStatus"], "path": "behavioral/ssm/check_update_association_status_nonexistent_association_rejected.py", "service": "ssm"} {"check_id": "ssm.update-association-status-transitions-and-nonexistent-rejected", "deployments": [], "key": "ssm/update-association-status-transitions-and-nonexistent-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DetachRolePolicy", "iam:RemoveRoleFromInstanceProfile", "ssm:CreateAssociation", "ssm:CreateDocument", "ssm:DeleteAssociation", "ssm:DeleteDocument", "ssm:DescribeAssociation", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:UpdateAssociationStatus"], "path": "behavioral/ssm/check_update_association_status_transitions_and_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.update-document-creates-new-version", "deployments": [], "key": "ssm/update-document-creates-new-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:UpdateDocument"], "path": "behavioral/ssm/check_update_document_creates_new_version.py", "service": "ssm"} {"check_id": "ssm.update-document-default-version-switches-content", "deployments": [], "key": "ssm/update-document-default-version-switches-content", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:GetDocument", "ssm:UpdateDocument", "ssm:UpdateDocumentDefaultVersion"], "path": "behavioral/ssm/check_update_document_default_version_switches_content.py", "service": "ssm"} {"check_id": "ssm.update-document-rejects-duplicate-content", "deployments": [], "key": "ssm/update-document-rejects-duplicate-content", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:CreateDocument", "ssm:DeleteDocument", "ssm:DescribeDocument", "ssm:ListDocumentVersions", "ssm:UpdateDocument"], "path": "behavioral/ssm/check_update_document_rejects_duplicate_content.py", "service": "ssm"} {"check_id": "ssm.update-managed-instance-role-invalid-instance-rejected", "deployments": [], "key": "ssm/update-managed-instance-role-invalid-instance-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DetachRolePolicy", "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations", "ssm:DescribeInstanceInformation", "ssm:UpdateManagedInstanceRole"], "path": "behavioral/ssm/check_update_managed_instance_role_invalid_instance_rejected.py", "service": "ssm"} {"check_id": "ssm.update-ops-metadata-invalid-argument-rejected", "deployments": [], "key": "ssm/update-ops-metadata-invalid-argument-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetOpsMetadata", "ssm:UpdateOpsMetadata", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_update_ops_metadata_invalid_argument_rejected.py", "service": "ssm"} {"check_id": "ssm.update-opsitem-status-transition", "deployments": [], "key": "ssm/update-opsitem-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:CreateOpsItem", "ssm:DeleteOpsItem", "ssm:GetOpsItem", "ssm:UpdateOpsItem"], "path": "behavioral/ssm/check_update_opsitem_status_transition.py", "service": "ssm"} {"check_id": "ssm.update-service-setting-too-many-updates-rejected", "deployments": [], "key": "ssm/update-service-setting-too-many-updates-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetServiceSetting", "ssm:UpdateServiceSetting", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_update_service_setting_too_many_updates_rejected.py", "service": "ssm"} {"check_id": "ssm.update-service-setting-unknown-id-rejected", "deployments": [], "key": "ssm/update-service-setting-unknown-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting", "sts:GetCallerIdentity"], "path": "behavioral/ssm/check_update_service_setting_unknown_id_rejected.py", "service": "ssm"} {"check_id": "ssm.validate-cloud-connector-nonexistent-rejected", "deployments": [], "key": "ssm/validate-cloud-connector-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetCloudConnector", "ssm:ListCloudConnectors", "ssm:ValidateCloudConnector"], "path": "behavioral/ssm/check_validate_cloud_connector_nonexistent_rejected.py", "service": "ssm"} {"check_id": "ssm.validate-cloud-connector-unknown-id-rejected", "deployments": [], "key": "ssm/validate-cloud-connector-unknown-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ssm:GetCloudConnector", "ssm:ListCloudConnectors", "ssm:ValidateCloudConnector"], "path": "behavioral/ssm/check_validate_cloud_connector_unknown_id_rejected.py", "service": "ssm"} {"check_id": "ssm__sts.parameter-last-modified-user-is-the-live-sts-session-identity", "deployments": [], "key": "ssm__sts/parameter-last-modified-user-is-the-live-sts-session-identity", "labels": ["axis:happy-path", "plane:control"], "operations": ["ssm:DeleteParameter", "ssm:DescribeParameters", "ssm:GetParameterHistory", "ssm:PutParameter", "sts:GetCallerIdentity"], "path": "behavioral/ssm__sts/check_parameter_last_modified_user_is_the_live_sts_session_identity.py", "service": "ssm__sts"} {"check_id": "sso-admin.abac-configuration-lifecycle", "deployments": [], "key": "sso-admin/abac-configuration-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateInstance", "sso-admin:CreateInstanceAccessControlAttributeConfiguration", "sso-admin:DescribeInstance", "sso-admin:DescribeInstanceAccessControlAttributeConfiguration", "sso-admin:ListInstances"], "path": "behavioral/sso-admin/check_abac_configuration_lifecycle.py", "service": "sso-admin"} {"check_id": "sso-admin.account-assignment-full-lifecycle", "deployments": [], "key": "sso-admin/account-assignment-full-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "sso-admin:CreateAccountAssignment", "sso-admin:CreateInstance", "sso-admin:DeleteAccountAssignment", "sso-admin:DescribeAccountAssignmentCreationStatus", "sso-admin:DescribeAccountAssignmentDeletionStatus", "sso-admin:DescribeInstance", "sso-admin:ListAccountAssignments", "sso-admin:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/sso-admin/check_account_assignment_full_lifecycle.py", "service": "sso-admin"} {"check_id": "sso-admin.application-access-scope-round-trip", "deployments": [], "key": "sso-admin/application-access-scope-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DeleteApplicationAccessScope", "sso-admin:DescribeInstance", "sso-admin:GetApplicationAccessScope", "sso-admin:ListApplicationAccessScopes", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:PutApplicationAccessScope"], "path": "behavioral/sso-admin/check_application_access_scope_round_trip.py", "service": "sso-admin"} {"check_id": "sso-admin.application-assignment-configuration-round-trip", "deployments": [], "key": "sso-admin/application-assignment-configuration-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DescribeInstance", "sso-admin:GetApplicationAssignmentConfiguration", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:PutApplicationAssignmentConfiguration"], "path": "behavioral/sso-admin/check_application_assignment_configuration_round_trip.py", "service": "sso-admin"} {"check_id": "sso-admin.application-assignment-lifecycle", "deployments": [], "key": "sso-admin/application-assignment-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "sso-admin:CreateApplication", "sso-admin:CreateApplicationAssignment", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DeleteApplicationAssignment", "sso-admin:DescribeApplicationAssignment", "sso-admin:DescribeInstance", "sso-admin:ListApplicationAssignments", "sso-admin:ListApplicationAssignmentsForPrincipal", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances"], "path": "behavioral/sso-admin/check_application_assignment_lifecycle.py", "service": "sso-admin"} {"check_id": "sso-admin.application-authentication-method-round-trip", "deployments": [], "key": "sso-admin/application-authentication-method-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DeleteApplicationAuthenticationMethod", "sso-admin:DescribeInstance", "sso-admin:GetApplicationAuthenticationMethod", "sso-admin:ListApplicationAuthenticationMethods", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:PutApplicationAuthenticationMethod", "sts:GetCallerIdentity"], "path": "behavioral/sso-admin/check_application_authentication_method_round_trip.py", "service": "sso-admin"} {"check_id": "sso-admin.application-grant-not-found-rejected", "deployments": [], "key": "sso-admin/application-grant-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DeleteApplicationGrant", "sso-admin:DescribeInstance", "sso-admin:GetApplicationGrant", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:PutApplicationGrant"], "path": "behavioral/sso-admin/check_application_grant_not_found_rejected.py", "service": "sso-admin"} {"check_id": "sso-admin.application-grant-refresh-token-round-trip", "deployments": [], "key": "sso-admin/application-grant-refresh-token-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DeleteApplicationGrant", "sso-admin:DescribeInstance", "sso-admin:GetApplicationGrant", "sso-admin:ListApplicationGrants", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:PutApplicationGrant"], "path": "behavioral/sso-admin/check_application_grant_refresh_token_round_trip.py", "service": "sso-admin"} {"check_id": "sso-admin.application-lifecycle-status-transition", "deployments": [], "key": "sso-admin/application-lifecycle-status-transition", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DescribeApplication", "sso-admin:DescribeInstance", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:UpdateApplication"], "path": "behavioral/sso-admin/check_application_lifecycle_status_transition.py", "service": "sso-admin"} {"check_id": "sso-admin.application-not-found-describe-rejected", "deployments": [], "key": "sso-admin/application-not-found-describe-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DescribeApplication", "sso-admin:DescribeInstance", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sts:GetCallerIdentity"], "path": "behavioral/sso-admin/check_application_not_found_describe_rejected.py", "service": "sso-admin"} {"check_id": "sso-admin.application-provider-describe-round-trip", "deployments": [], "key": "sso-admin/application-provider-describe-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:DescribeApplicationProvider", "sso-admin:ListApplicationProviders"], "path": "behavioral/sso-admin/check_application_provider_describe_round_trip.py", "service": "sso-admin"} {"check_id": "sso-admin.application-provider-not-found-describe-rejected", "deployments": [], "key": "sso-admin/application-provider-not-found-describe-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:DescribeApplicationProvider"], "path": "behavioral/sso-admin/check_application_provider_not_found_describe_rejected.py", "service": "sso-admin"} {"check_id": "sso-admin.application-tag-quota-exceeded-rejected", "deployments": [], "key": "sso-admin/application-tag-quota-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DescribeInstance", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:ListTagsForResource", "sso-admin:TagResource"], "path": "behavioral/sso-admin/check_application_tag_quota_exceeded_rejected.py", "service": "sso-admin"} {"check_id": "sso-admin.application-tag-resource-round-trip", "deployments": [], "key": "sso-admin/application-tag-resource-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DescribeInstance", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:ListTagsForResource", "sso-admin:TagResource", "sso-admin:UntagResource"], "path": "behavioral/sso-admin/check_application_tag_resource_round_trip.py", "service": "sso-admin"} {"check_id": "sso-admin.create-account-assignment-bad-permission-set-not-found-rejected", "deployments": [], "key": "sso-admin/create-account-assignment-bad-permission-set-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "sso-admin:CreateAccountAssignment", "sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:CreatePermissionSet", "sso-admin:DeleteApplication", "sso-admin:DescribeApplication", "sso-admin:DescribeInstance", "sso-admin:ListAccountAssignments", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:ListPermissionSets", "sts:GetCallerIdentity"], "path": "behavioral/sso-admin/check_create_account_assignment_bad_permission_set_not_found_rejected.py", "service": "sso-admin"} {"check_id": "sso-admin.create-application-assignment-duplicate-idempotent", "deployments": [], "key": "sso-admin/create-application-assignment-duplicate-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "sso-admin:CreateApplication", "sso-admin:CreateApplicationAssignment", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DeleteApplicationAssignment", "sso-admin:DeleteInstance", "sso-admin:DescribeInstance", "sso-admin:ListApplicationAssignments", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances"], "path": "behavioral/sso-admin/check_create_application_assignment_duplicate_idempotent.py", "service": "sso-admin"} {"check_id": "sso-admin.create-application-client-token-idempotency", "deployments": [], "key": "sso-admin/create-application-client-token-idempotency", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DescribeApplication", "sso-admin:DescribeInstance", "sso-admin:ListApplicationProviders", "sso-admin:ListApplications", "sso-admin:ListInstances", "sso-admin:UpdateApplication"], "path": "behavioral/sso-admin/check_create_application_client_token_idempotency.py", "service": "sso-admin"} {"check_id": "sso-admin.create-instance-duplicate-singleton-conflict-rejected", "deployments": [], "key": "sso-admin/create-instance-duplicate-singleton-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances"], "path": "behavioral/sso-admin/check_create_instance_duplicate_singleton_conflict_rejected.py", "service": "sso-admin"} {"check_id": "sso-admin.delete-application-cascades-assignment", "deployments": [], "key": "sso-admin/delete-application-cascades-assignment", "labels": ["axis:happy-path", "plane:control"], "operations": ["identitystore:CreateGroup", "identitystore:DeleteGroup", "sso-admin:CreateApplication", "sso-admin:CreateApplicationAssignment", "sso-admin:CreateInstance", "sso-admin:DeleteApplication", "sso-admin:DescribeApplication", "sso-admin:DescribeApplicationAssignment", "sso-admin:DescribeInstance", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances"], "path": "behavioral/sso-admin/check_delete_application_cascades_assignment.py", "service": "sso-admin"} {"check_id": "sso-admin.delete-trusted-token-issuer-while-referenced-by-grant", "deployments": [], "key": "sso-admin/delete-trusted-token-issuer-while-referenced-by-grant", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateApplication", "sso-admin:CreateInstance", "sso-admin:CreateTrustedTokenIssuer", "sso-admin:DeleteApplication", "sso-admin:DeleteTrustedTokenIssuer", "sso-admin:DescribeInstance", "sso-admin:DescribeTrustedTokenIssuer", "sso-admin:GetApplicationGrant", "sso-admin:ListApplicationProviders", "sso-admin:ListInstances", "sso-admin:PutApplicationGrant"], "path": "behavioral/sso-admin/check_delete_trusted_token_issuer_while_referenced_by_grant.py", "service": "sso-admin"} {"check_id": "sso-admin.trusted-token-issuer-client-token-conflict-rejected", "deployments": [], "key": "sso-admin/trusted-token-issuer-client-token-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateInstance", "sso-admin:CreateTrustedTokenIssuer", "sso-admin:DeleteTrustedTokenIssuer", "sso-admin:DescribeInstance", "sso-admin:DescribeTrustedTokenIssuer", "sso-admin:ListInstances"], "path": "behavioral/sso-admin/check_trusted_token_issuer_client_token_conflict_rejected.py", "service": "sso-admin"} {"check_id": "sso-admin.trusted-token-issuer-lifecycle", "deployments": [], "key": "sso-admin/trusted-token-issuer-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateInstance", "sso-admin:CreateTrustedTokenIssuer", "sso-admin:DeleteTrustedTokenIssuer", "sso-admin:DescribeInstance", "sso-admin:DescribeTrustedTokenIssuer", "sso-admin:ListInstances", "sso-admin:ListTrustedTokenIssuers", "sso-admin:UpdateTrustedTokenIssuer"], "path": "behavioral/sso-admin/check_trusted_token_issuer_lifecycle.py", "service": "sso-admin"} {"check_id": "sso-admin.update-instance-name-round-trip", "deployments": [], "key": "sso-admin/update-instance-name-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances", "sso-admin:UpdateInstance"], "path": "behavioral/sso-admin/check_update_instance_name_round_trip.py", "service": "sso-admin"} {"check_id": "sso-oidc.create-token-device-code-bound-to-issuing-client", "deployments": [], "key": "sso-oidc/create-token-device-code-bound-to-issuing-client", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances", "sso-oidc:CreateToken", "sso-oidc:RegisterClient", "sso-oidc:StartDeviceAuthorization"], "path": "behavioral/sso-oidc/check_create_token_device_code_bound_to_issuing_client.py", "service": "sso-oidc"} {"check_id": "sso-oidc.create-token-invalid-grant-unknown-device-code-rejected", "deployments": [], "key": "sso-oidc/create-token-invalid-grant-unknown-device-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_create_token_invalid_grant_unknown_device_code_rejected.py", "service": "sso-oidc"} {"check_id": "sso-oidc.create-token-missing-device-code-invalid-request-rejected", "deployments": [], "key": "sso-oidc/create-token-missing-device-code-invalid-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_create_token_missing_device_code_invalid_request_rejected.py", "service": "sso-oidc"} {"check_id": "sso-oidc.create-token-refresh-token-invalid-grant-rejected", "deployments": [], "key": "sso-oidc/create-token-refresh-token-invalid-grant-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_create_token_refresh_token_invalid_grant_rejected.py", "service": "sso-oidc"} {"check_id": "sso-oidc.create-token-refresh-token-lookup-precedes-client-existence", "deployments": [], "key": "sso-oidc/create-token-refresh-token-lookup-precedes-client-existence", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_create_token_refresh_token_lookup_precedes_client_existence.py", "service": "sso-oidc"} {"check_id": "sso-oidc.create-token-unauthorized-client-wrong-grant-type-rejected", "deployments": [], "key": "sso-oidc/create-token-unauthorized-client-wrong-grant-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances", "sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_create_token_unauthorized_client_wrong_grant_type_rejected.py", "service": "sso-oidc"} {"check_id": "sso-oidc.create-token-unsupported-grant-type-rejected", "deployments": [], "key": "sso-oidc/create-token-unsupported-grant-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_create_token_unsupported_grant_type_rejected.py", "service": "sso-oidc"} {"check_id": "sso-oidc.create-token-with-iam-invalid-client-rejected", "deployments": [], "key": "sso-oidc/create-token-with-iam-invalid-client-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:CreateTokenWithIAM", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_create_token_with_iam_invalid_client_rejected.py", "service": "sso-oidc"} {"check_id": "sso-oidc.create-token-with-iam-unsupported-grant-type-rejected", "deployments": [], "key": "sso-oidc/create-token-with-iam-unsupported-grant-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateTokenWithIAM", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_create_token_with_iam_unsupported_grant_type_rejected.py", "service": "sso-oidc"} {"check_id": "sso-oidc.register-client-accepts-malformed-redirect-uri", "deployments": [], "key": "sso-oidc/register-client-accepts-malformed-redirect-uri", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_register_client_accepts_malformed_redirect_uri.py", "service": "sso-oidc"} {"check_id": "sso-oidc.register-client-accepts-unrecognized-scope", "deployments": [], "key": "sso-oidc/register-client-accepts-unrecognized-scope", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_register_client_accepts_unrecognized_scope.py", "service": "sso-oidc"} {"check_id": "sso-oidc.register-client-confidential-type-rejected", "deployments": [], "key": "sso-oidc/register-client-confidential-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_register_client_confidential_type_rejected.py", "service": "sso-oidc"} {"check_id": "sso-oidc.register-client-default-grant-types-allow-device-flow", "deployments": [], "key": "sso-oidc/register-client-default-grant-types-allow-device-flow", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_register_client_default_grant_types_allow_device_flow.py", "service": "sso-oidc"} {"check_id": "sso-oidc.register-client-distinct-credentials-per-call", "deployments": [], "key": "sso-oidc/register-client-distinct-credentials-per-call", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_register_client_distinct_credentials_per_call.py", "service": "sso-oidc"} {"check_id": "sso-oidc.register-client-returns-valid-credential-pair", "deployments": [], "key": "sso-oidc/register-client-returns-valid-credential-pair", "labels": ["axis:happy-path", "plane:control"], "operations": ["sso-oidc:CreateToken", "sso-oidc:RegisterClient"], "path": "behavioral/sso-oidc/check_register_client_returns_valid_credential_pair.py", "service": "sso-oidc"} {"check_id": "sso-oidc.start-device-authorization-starturl-precondition-rejects-any-starturl", "deployments": [], "key": "sso-oidc/start-device-authorization-starturl-precondition-rejects-any-starturl", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-oidc:RegisterClient", "sso-oidc:StartDeviceAuthorization"], "path": "behavioral/sso-oidc/check_start_device_authorization_starturl_precondition_rejects_any_starturl.py", "service": "sso-oidc"} {"check_id": "sso-oidc.start-device-authorization-wrong-client-secret-rejected", "deployments": [], "key": "sso-oidc/start-device-authorization-wrong-client-secret-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances", "sso-oidc:RegisterClient", "sso-oidc:StartDeviceAuthorization"], "path": "behavioral/sso-oidc/check_start_device_authorization_wrong_client_secret_rejected.py", "service": "sso-oidc"} {"check_id": "sso.concurrent-invalid-token-requests-all-rejected", "deployments": [], "key": "sso/concurrent-invalid-token-requests-all-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:GetRoleCredentials"], "path": "behavioral/sso/check_concurrent_invalid_token_requests_all_rejected.py", "service": "sso"} {"check_id": "sso.cross-operation-consistent-error-code-same-bad-token", "deployments": [], "key": "sso/cross-operation-consistent-error-code-same-bad-token", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:GetRoleCredentials", "sso:ListAccountRoles", "sso:ListAccounts", "sso:Logout"], "path": "behavioral/sso/check_cross_operation_consistent_error_code_same_bad_token.py", "service": "sso"} {"check_id": "sso.empty-access-token-unauthorized", "deployments": [], "key": "sso/empty-access-token-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:ListAccounts"], "path": "behavioral/sso/check_empty_access_token_unauthorized.py", "service": "sso"} {"check_id": "sso.get-role-credentials-invalid-token-unauthorized", "deployments": [], "key": "sso/get-role-credentials-invalid-token-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:GetRoleCredentials"], "path": "behavioral/sso/check_get_role_credentials_invalid_token_unauthorized.py", "service": "sso"} {"check_id": "sso.injection-like-role-name-and-account-id-rejected", "deployments": [], "key": "sso/injection-like-role-name-and-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:GetRoleCredentials"], "path": "behavioral/sso/check_injection_like_role_name_and_account_id_rejected.py", "service": "sso"} {"check_id": "sso.invalid-token-error-excludes-credentials-payload", "deployments": [], "key": "sso/invalid-token-error-excludes-credentials-payload", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:GetRoleCredentials"], "path": "behavioral/sso/check_invalid_token_error_excludes_credentials_payload.py", "service": "sso"} {"check_id": "sso.jwt-like-plausible-token-still-rejected", "deployments": [], "key": "sso/jwt-like-plausible-token-still-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:ListAccounts"], "path": "behavioral/sso/check_jwt_like_plausible_token_still_rejected.py", "service": "sso"} {"check_id": "sso.list-account-roles-invalid-token-unauthorized", "deployments": [], "key": "sso/list-account-roles-invalid-token-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:ListAccountRoles"], "path": "behavioral/sso/check_list_account_roles_invalid_token_unauthorized.py", "service": "sso"} {"check_id": "sso.list-accounts-invalid-token-unauthorized", "deployments": [], "key": "sso/list-accounts-invalid-token-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:ListAccounts"], "path": "behavioral/sso/check_list_accounts_invalid_token_unauthorized.py", "service": "sso"} {"check_id": "sso.logout-invalid-token-unauthorized", "deployments": [], "key": "sso/logout-invalid-token-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:Logout"], "path": "behavioral/sso/check_logout_invalid_token_unauthorized.py", "service": "sso"} {"check_id": "sso.logout-repeated-calls-same-invalid-token-stay-rejected", "deployments": [], "key": "sso/logout-repeated-calls-same-invalid-token-stay-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:Logout"], "path": "behavioral/sso/check_logout_repeated_calls_same_invalid_token_stay_rejected.py", "service": "sso"} {"check_id": "sso.malformed-next-token-pagination-invalid-access-unauthorized", "deployments": [], "key": "sso/malformed-next-token-pagination-invalid-access-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:ListAccounts"], "path": "behavioral/sso/check_malformed_next_token_pagination_invalid_access_unauthorized.py", "service": "sso"} {"check_id": "sso.max-results-boundary-values-invalid-token-unauthorized", "deployments": [], "key": "sso/max-results-boundary-values-invalid-token-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:ListAccounts"], "path": "behavioral/sso/check_max_results_boundary_values_invalid_token_unauthorized.py", "service": "sso"} {"check_id": "sso.oversized-access-token-value-rejected", "deployments": [], "key": "sso/oversized-access-token-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:ListAccounts"], "path": "behavioral/sso/check_oversized_access_token_value_rejected.py", "service": "sso"} {"check_id": "sso.unicode-role-name-query-param-rejected-safely", "deployments": [], "key": "sso/unicode-role-name-query-param-rejected-safely", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:GetRoleCredentials"], "path": "behavioral/sso/check_unicode_role_name_query_param_rejected_safely.py", "service": "sso"} {"check_id": "sso.whitespace-access-token-unauthorized", "deployments": [], "key": "sso/whitespace-access-token-unauthorized", "labels": ["axis:rejection", "plane:control"], "operations": ["sso:ListAccounts"], "path": "behavioral/sso/check_whitespace_access_token_unauthorized.py", "service": "sso"} {"check_id": "stepfunctions.activity-delete-then-describe-404", "deployments": [], "key": "stepfunctions/activity-delete-then-describe-404", "labels": ["axis:rejection", "plane:control"], "operations": ["stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DescribeActivity"], "path": "behavioral/stepfunctions/check_activity_delete_then_describe_404.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-deleted-mid-flight-orphans-its-outstanding-task", "deployments": [], "key": "stepfunctions/activity-deleted-mid-flight-orphans-its-outstanding-task", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_deleted_mid_flight_orphans_its_outstanding_task.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-heartbeat-timeout-catcher-order-decides-winner", "deployments": [], "key": "stepfunctions/activity-heartbeat-timeout-catcher-order-decides-winner", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_heartbeat_timeout_catcher_order_decides_winner.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-heartbeat-timeout-closes-task-before-task-timeout", "deployments": [], "key": "stepfunctions/activity-heartbeat-timeout-closes-task-before-task-timeout", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_heartbeat_timeout_closes_task_before_task_timeout.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-heartbeatsecondspath-success-keeps-execution-alive", "deployments": [], "key": "stepfunctions/activity-heartbeatsecondspath-success-keeps-execution-alive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_heartbeatsecondspath_success_keeps_execution_alive.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-heartbeatsecondspath-timeout-fails-execution", "deployments": [], "key": "stepfunctions/activity-heartbeatsecondspath-timeout-fails-execution", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskHeartbeat", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_heartbeatsecondspath_timeout_fails_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-list-describe-consistency", "deployments": [], "key": "stepfunctions/activity-list-describe-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DescribeActivity", "stepfunctions:ListActivities"], "path": "behavioral/stepfunctions/check_activity_list_describe_consistency.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-resource-wait-for-task-token-suffix-rejected", "deployments": [], "key": "stepfunctions/activity-resource-wait-for-task-token-suffix-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_resource_wait_for_task_token_suffix_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-second-task-not-pollable-before-first-completes", "deployments": [], "key": "stepfunctions/activity-second-task-not-pollable-before-first-completes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_second_task_not_pollable_before_first_completes.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-stopped-execution-refuses-its-outstanding-token", "deployments": [], "key": "stepfunctions/activity-stopped-execution-refuses-its-outstanding-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_stopped_execution_refuses_its_outstanding_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-task-failure-flow", "deployments": [], "key": "stepfunctions/activity-task-failure-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_task_failure_flow.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-task-failure-lifecycle", "deployments": [], "key": "stepfunctions/activity-task-failure-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_task_failure_lifecycle.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-task-heartbeat-timeout-triggers-failure", "deployments": [], "key": "stepfunctions/activity-task-heartbeat-timeout-triggers-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_activity_task_heartbeat_timeout_triggers_failure.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-task-timeout-starts-at-the-claim-not-the-schedule", "deployments": [], "key": "stepfunctions/activity-task-timeout-starts-at-the-claim-not-the-schedule", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_task_timeout_starts_at_the_claim_not_the_schedule.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-token-consumed-by-failure-refuses-a-later-success", "deployments": [], "key": "stepfunctions/activity-token-consumed-by-failure-refuses-a-later-success", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_token_consumed_by_failure_refuses_a_later_success.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-two-queued-tasks-do-not-cross-executions", "deployments": [], "key": "stepfunctions/activity-two-queued-tasks-do-not-cross-executions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_two_queued_tasks_do_not_cross_executions.py", "service": "stepfunctions"} {"check_id": "stepfunctions.activity-worker-input-and-reply-round-trip", "deployments": [], "key": "stepfunctions/activity-worker-input-and-reply-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_activity_worker_input_and_reply_round_trip.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-and-version-mutations-rejected-while-state-machine-deleting", "deployments": [], "key": "stepfunctions/alias-and-version-mutations-rejected-while-state-machine-deleting", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_alias_and_version_mutations_rejected_while_state_machine_deleting.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-create-describe-update-delete-lifecycle", "deployments": [], "key": "stepfunctions/alias-create-describe-update-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_alias_create_describe_update_delete_lifecycle.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-delete-then-describe-not-found", "deployments": [], "key": "stepfunctions/alias-delete-then-describe-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_alias_delete_then_describe_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-list-ordering-consistent", "deployments": [], "key": "stepfunctions/alias-list-ordering-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_alias_list_ordering_consistent.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-repoint-to-foreign-state-machine-version-rejected", "deployments": [], "key": "stepfunctions/alias-repoint-to-foreign-state-machine-version-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_alias_repoint_to_foreign_state_machine_version_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-routing-config-invalid-routing-configuration-reason-rejected", "deployments": [], "key": "stepfunctions/alias-routing-config-invalid-routing-configuration-reason-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_alias_routing_config_invalid_routing_configuration_reason_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-routing-config-invalid-version-rejected", "deployments": [], "key": "stepfunctions/alias-routing-config-invalid-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_alias_routing_config_invalid_version_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-routing-config-length-and-weight-bound-rejected", "deployments": [], "key": "stepfunctions/alias-routing-config-length-and-weight-bound-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_alias_routing_config_length_and_weight_bound_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-routing-config-multiple-versions", "deployments": [], "key": "stepfunctions/alias-routing-config-multiple-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_alias_routing_config_multiple_versions.py", "service": "stepfunctions"} {"check_id": "stepfunctions.alias-routing-pins-execution-to-target-version", "deployments": [], "key": "stepfunctions/alias-routing-pins-execution-to-target-version", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_alias_routing_pins_execution_to_target_version.py", "service": "stepfunctions"} {"check_id": "stepfunctions.array-get-item-negative-index-rejected", "deployments": [], "key": "stepfunctions/array-get-item-negative-index-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_array_get_item_negative_index_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.catch-custom-error", "deployments": [], "key": "stepfunctions/catch-custom-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_catch_custom_error.py", "service": "stepfunctions"} {"check_id": "stepfunctions.catch-error-info-in-result", "deployments": [], "key": "stepfunctions/catch-error-info-in-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_catch_error_info_in_result.py", "service": "stepfunctions"} {"check_id": "stepfunctions.catch-matches-256-char-errorequals-against-activity-sendtaskfailure", "deployments": [], "key": "stepfunctions/catch-matches-256-char-errorequals-against-activity-sendtaskfailure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_catch_matches_256_char_errorequals_against_activity_sendtaskfailure.py", "service": "stepfunctions"} {"check_id": "stepfunctions.catch-resultpath-null-discards-error", "deployments": [], "key": "stepfunctions/catch-resultpath-null-discards-error", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_catch_resultpath_null_discards_error.py", "service": "stepfunctions"} {"check_id": "stepfunctions.catch-resultpath-unresolvable-path-reference-path-conflict", "deployments": [], "key": "stepfunctions/catch-resultpath-unresolvable-path-reference-path-conflict", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_catch_resultpath_unresolvable_path_reference_path_conflict.py", "service": "stepfunctions"} {"check_id": "stepfunctions.catch-states-all", "deployments": [], "key": "stepfunctions/catch-states-all", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_catch_states_all.py", "service": "stepfunctions"} {"check_id": "stepfunctions.catch-timeout-empty-cause", "deployments": [], "key": "stepfunctions/catch-timeout-empty-cause", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_catch_timeout_empty_cause.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-and-condition", "deployments": [], "key": "stepfunctions/choice-and-condition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_and_condition.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-boolean-equals", "deployments": [], "key": "stepfunctions/choice-boolean-equals", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_boolean_equals.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-comparators-are-type-strict-and-never-coerce-rejected", "deployments": [], "key": "stepfunctions/choice-comparators-are-type-strict-and-never-coerce-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_comparators_are_type_strict_and_never_coerce_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-default", "deployments": [], "key": "stepfunctions/choice-default", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_default.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-input-path-scopes-comparator-variable-resolution", "deployments": [], "key": "stepfunctions/choice-input-path-scopes-comparator-variable-resolution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_input_path_scopes_comparator_variable_resolution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-jsonata-assign-is-scoped-to-the-selected-rule", "deployments": [], "key": "stepfunctions/choice-jsonata-assign-is-scoped-to-the-selected-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_jsonata_assign_is_scoped_to_the_selected_rule.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-jsonata-condition-reads-assigned-variables", "deployments": [], "key": "stepfunctions/choice-jsonata-condition-reads-assigned-variables", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_jsonata_condition_reads_assigned_variables.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-jsonata-evaluation-order-condition-output-assign", "deployments": [], "key": "stepfunctions/choice-jsonata-evaluation-order-condition-output-assign", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_jsonata_evaluation_order_condition_output_assign.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-jsonata-non-boolean-condition-rejected", "deployments": [], "key": "stepfunctions/choice-jsonata-non-boolean-condition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_jsonata_non_boolean_condition_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-jsonata-rule-assign-scoped-inside-map-caught-by-catch", "deployments": [], "key": "stepfunctions/choice-jsonata-rule-assign-scoped-inside-map-caught-by-catch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_jsonata_rule_assign_scoped_inside_map_caught_by_catch.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-no-match-without-default-rejected", "deployments": [], "key": "stepfunctions/choice-no-match-without-default-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_no_match_without_default_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-not-condition", "deployments": [], "key": "stepfunctions/choice-not-condition", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_not_condition.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-null-execution-input-is-null-not-absent", "deployments": [], "key": "stepfunctions/choice-null-execution-input-is-null-not-absent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_null_execution_input_is_null_not_absent.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-numeric-greater-than", "deployments": [], "key": "stepfunctions/choice-numeric-greater-than", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_numeric_greater_than.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-output-path-filters-what-is-passed-on", "deployments": [], "key": "stepfunctions/choice-output-path-filters-what-is-passed-on", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_output_path_filters_what_is_passed_on.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-path-comparators-dereference-the-referenced-field", "deployments": [], "key": "stepfunctions/choice-path-comparators-dereference-the-referenced-field", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_path_comparators_dereference_the_referenced_field.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-state-exited-output-and-map-choice-history-count", "deployments": [], "key": "stepfunctions/choice-state-exited-output-and-map-choice-history-count", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_state_exited_output_and_map_choice_history_count.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-string-equals", "deployments": [], "key": "stepfunctions/choice-string-equals", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_string_equals.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-string-matches-path-comparators-and-precedence", "deployments": [], "key": "stepfunctions/choice-string-matches-path-comparators-and-precedence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_string_matches_path_comparators_and_precedence.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-timestamp-comparators-compare-instants-not-lexical-strings", "deployments": [], "key": "stepfunctions/choice-timestamp-comparators-compare-instants-not-lexical-strings", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_timestamp_comparators_compare_instants_not_lexical_strings.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-timestampgreaterthanpath-non-string-target-rejected", "deployments": [], "key": "stepfunctions/choice-timestampgreaterthanpath-non-string-target-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_timestampgreaterthanpath_non_string_target_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-type-predicates-null-vs-absent", "deployments": [], "key": "stepfunctions/choice-type-predicates-null-vs-absent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_type_predicates_null_vs_absent.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-variable-comparators-and-type-predicates", "deployments": [], "key": "stepfunctions/choice-variable-comparators-and-type-predicates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_variable_comparators_and_type_predicates.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-variable-comparators-never-coerce-across-json-types-rejected", "deployments": [], "key": "stepfunctions/choice-variable-comparators-never-coerce-across-json-types-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_variable_comparators_never_coerce_across_json_types_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.choice-variable-path-invalid-reference-rejected", "deployments": [], "key": "stepfunctions/choice-variable-path-invalid-reference-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_choice_variable_path_invalid_reference_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.conc-distributed-map-200-s3-objects-processed-once-under-concurrency-cap", "deployments": [], "key": "stepfunctions/conc-distributed-map-200-s3-objects-processed-once-under-concurrency-cap", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_conc_distributed_map_200_s3_objects_processed_once_under_concurrency_cap.py", "service": "stepfunctions"} {"check_id": "stepfunctions.conc-distributed-map-accepts-items-whose-inline-map-history-limit-fails", "deployments": [], "key": "stepfunctions/conc-distributed-map-accepts-items-whose-inline-map-history-limit-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:GetExecutionHistory", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_conc_distributed_map_accepts_items_whose_inline_map_history_limit_fails.py", "service": "stepfunctions"} {"check_id": "stepfunctions.conc-distributed-map-child-executions-listed-and-describable-per-item", "deployments": [], "key": "stepfunctions/conc-distributed-map-child-executions-listed-and-describable-per-item", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_conc_distributed_map_child_executions_listed_and_describable_per_item.py", "service": "stepfunctions"} {"check_id": "stepfunctions.conc-distributed-map-csv-item-reader-delivers-header-keyed-string-columns", "deployments": [], "key": "stepfunctions/conc-distributed-map-csv-item-reader-delivers-header-keyed-string-columns", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_conc_distributed_map_csv_item_reader_delivers_header_keyed_string_columns.py", "service": "stepfunctions"} {"check_id": "stepfunctions.conc-distributed-map-item-batcher-groups-items-into-configured-batches", "deployments": [], "key": "stepfunctions/conc-distributed-map-item-batcher-groups-items-into-configured-batches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_conc_distributed_map_item_batcher_groups_items_into_configured_batches.py", "service": "stepfunctions"} {"check_id": "stepfunctions.conc-distributed-map-item-reader-missing-object-fails-before-any-child", "deployments": [], "key": "stepfunctions/conc-distributed-map-item-reader-missing-object-fails-before-any-child", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListExecutions", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_conc_distributed_map_item_reader_missing_object_fails_before_any_child.py", "service": "stepfunctions"} {"check_id": "stepfunctions.conc-distributed-map-tolerated-failure-percentage-succeeds-and-names-failed-items", "deployments": [], "key": "stepfunctions/conc-distributed-map-tolerated-failure-percentage-succeeds-and-names-failed-items", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListExecutions", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_conc_distributed_map_tolerated_failure_percentage_succeeds_and_names_failed_items.py", "service": "stepfunctions"} {"check_id": "stepfunctions.conc-distributed-map-zero-tolerance-run-fails-and-keeps-completed-items", "deployments": [], "key": "stepfunctions/conc-distributed-map-zero-tolerance-run-fails-and-keeps-completed-items", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_conc_distributed_map_zero_tolerance_run_fails_and_keeps_completed_items.py", "service": "stepfunctions"} {"check_id": "stepfunctions.concurrent-alias-update-delete-race", "deployments": [], "key": "stepfunctions/concurrent-alias-update-delete-race", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_concurrent_alias_update_delete_race.py", "service": "stepfunctions"} {"check_id": "stepfunctions.concurrent-get-activity-task-single-delivery", "deployments": [], "key": "stepfunctions/concurrent-get-activity-task-single-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_concurrent_get_activity_task_single_delivery.py", "service": "stepfunctions"} {"check_id": "stepfunctions.concurrent-publish-version-same-revision", "deployments": [], "key": "stepfunctions/concurrent-publish-version-same-revision", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_concurrent_publish_version_same_revision.py", "service": "stepfunctions"} {"check_id": "stepfunctions.concurrent-start-execution-idempotency", "deployments": [], "key": "stepfunctions/concurrent-start-execution-idempotency", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_concurrent_start_execution_idempotency.py", "service": "stepfunctions"} {"check_id": "stepfunctions.concurrent-start-execution-same-name-conflicting-input-exactly-one-succeeds", "deployments": [], "key": "stepfunctions/concurrent-start-execution-same-name-conflicting-input-exactly-one-succeeds", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_concurrent_start_execution_same_name_conflicting_input_exactly_one_succeeds.py", "service": "stepfunctions"} {"check_id": "stepfunctions.concurrent-start-execution-same-name-idempotent", "deployments": [], "key": "stepfunctions/concurrent-start-execution-same-name-idempotent", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_concurrent_start_execution_same_name_idempotent.py", "service": "stepfunctions"} {"check_id": "stepfunctions.concurrent-tag-untag-resource-race", "deployments": [], "key": "stepfunctions/concurrent-tag-untag-resource-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListTagsForResource", "stepfunctions:TagResource", "stepfunctions:UntagResource"], "path": "behavioral/stepfunctions/check_concurrent_tag_untag_resource_race.py", "service": "stepfunctions"} {"check_id": "stepfunctions.concurrent-update-state-machine-conflicting-revision", "deployments": [], "key": "stepfunctions/concurrent-update-state-machine-conflicting-revision", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_concurrent_update_state_machine_conflicting_revision.py", "service": "stepfunctions"} {"check_id": "stepfunctions.context-object-path-resolves-in-inputpath-outputpath-itemspath-and-choice-variable", "deployments": [], "key": "stepfunctions/context-object-path-resolves-in-inputpath-outputpath-itemspath-and-choice-variable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_context_object_path_resolves_in_inputpath_outputpath_itemspath_and_choice_variable.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-activity-already-exists-conflict", "deployments": [], "key": "stepfunctions/create-activity-already-exists-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DescribeActivity", "stepfunctions:ListActivities"], "path": "behavioral/stepfunctions/check_create_activity_already_exists_conflict.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-activity-already-exists-omitting-cmk", "deployments": [], "key": "stepfunctions/create-activity-already-exists-omitting-cmk", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DescribeActivity", "stepfunctions:ListActivities"], "path": "behavioral/stepfunctions/check_create_activity_already_exists_omitting_cmk.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-activity-name-exceeds-length-limit-rejected", "deployments": [], "key": "stepfunctions/create-activity-name-exceeds-length-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DescribeActivity", "stepfunctions:ListActivities"], "path": "behavioral/stepfunctions/check_create_activity_name_exceeds_length_limit_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-activity-nonexistent-key-arn-invalid-encryption-config-rejected", "deployments": [], "key": "stepfunctions/create-activity-nonexistent-key-arn-invalid-encryption-config-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:ListActivities"], "path": "behavioral/stepfunctions/check_create_activity_nonexistent_key_arn_invalid_encryption_config_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-alias-conflict-duplicate-name", "deployments": [], "key": "stepfunctions/create-alias-conflict-duplicate-name", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_create_alias_conflict_duplicate_name.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-alias-numeric-name-rejected", "deployments": [], "key": "stepfunctions/create-alias-numeric-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_create_alias_numeric_name_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-alias-routing-weights", "deployments": [], "key": "stepfunctions/create-alias-routing-weights", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_create_alias_routing_weights.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-and-update-alias-qualifier-condition-needs-name-and-every-version", "deployments": [], "key": "stepfunctions/create-and-update-alias-qualifier-condition-needs-name-and-every-version", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_create_and_update_alias_qualifier_condition_needs_name_and_every_version.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-describe-roundtrip", "deployments": [], "key": "stepfunctions/create-describe-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_create_describe_roundtrip.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-encryption-config-invalid-rejected", "deployments": [], "key": "stepfunctions/create-encryption-config-invalid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:ListActivities"], "path": "behavioral/stepfunctions/check_create_encryption_config_invalid_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-express-state-machine-ecs-run-task-sync-rejected", "deployments": [], "key": "stepfunctions/create-express-state-machine-ecs-run-task-sync-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_create_express_state_machine_ecs_run_task_sync_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-express-state-machine-sqs-wait-for-task-token-rejected", "deployments": [], "key": "stepfunctions/create-express-state-machine-sqs-wait-for-task-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_create_express_state_machine_sqs_wait_for_task_token_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-accepts-nonexistent-activity-arn-execution-fails-states-runtime", "deployments": [], "key": "stepfunctions/create-state-machine-accepts-nonexistent-activity-arn-execution-fails-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_create_state_machine_accepts_nonexistent_activity_arn_execution_fails_states_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-alias-invalid-routing-weights-fails", "deployments": [], "key": "stepfunctions/create-state-machine-alias-invalid-routing-weights-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_create_state_machine_alias_invalid_routing_weights_fails.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-already-exists-conflict", "deployments": [], "key": "stepfunctions/create-state-machine-already-exists-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_create_state_machine_already_exists_conflict.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-already-exists-publish-state-mismatch", "deployments": [], "key": "stepfunctions/create-state-machine-already-exists-publish-state-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:ListStateMachineVersions"], "path": "behavioral/stepfunctions/check_create_state_machine_already_exists_publish_state_mismatch.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-definition-exceeds-size-limit-rejected", "deployments": [], "key": "stepfunctions/create-state-machine-definition-exceeds-size-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_create_state_machine_definition_exceeds_size_limit_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-express-logging-role-source-arn-mismatch-denied", "deployments": [], "key": "stepfunctions/create-state-machine-express-logging-role-source-arn-mismatch-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_create_state_machine_express_logging_role_source_arn_mismatch_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-idempotent-same-params", "deployments": [], "key": "stepfunctions/create-state-machine-idempotent-same-params", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_create_state_machine_idempotent_same_params.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-insufficient-role-permissions-denied", "deployments": [], "key": "stepfunctions/create-state-machine-insufficient-role-permissions-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_create_state_machine_insufficient_role_permissions_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-invalid-definition-did-you-mean-hint", "deployments": [], "key": "stepfunctions/create-state-machine-invalid-definition-did-you-mean-hint", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_create_state_machine_invalid_definition_did_you_mean_hint.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-invalid-role-arn-format-rejected", "deployments": [], "key": "stepfunctions/create-state-machine-invalid-role-arn-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_create_state_machine_invalid_role_arn_format_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-invalid-type-value-rejected", "deployments": [], "key": "stepfunctions/create-state-machine-invalid-type-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_create_state_machine_invalid_type_value_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-near-max-definition-round-trips-byte-exact", "deployments": [], "key": "stepfunctions/create-state-machine-near-max-definition-round-trips-byte-exact", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_create_state_machine_near_max_definition_round_trips_byte_exact.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-publish-idempotent-same-version-arn", "deployments": [], "key": "stepfunctions/create-state-machine-publish-idempotent-same-version-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions"], "path": "behavioral/stepfunctions/check_create_state_machine_publish_idempotent_same_version_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-request-tags-evaluated-as-resource-tag", "deployments": [], "key": "stepfunctions/create-state-machine-request-tags-evaluated-as-resource-tag", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListTagsForResource", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_create_state_machine_request_tags_evaluated_as_resource_tag.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-state-machine-version-description-without-publish-rejected", "deployments": [], "key": "stepfunctions/create-state-machine-version-description-without-publish-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_create_state_machine_version_description_without_publish_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.create-with-tags-implicitly-requires-tagresource-permission", "deployments": [], "key": "stepfunctions/create-with-tags-implicitly-requires-tagresource-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeStateMachine", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_create_with_tags_implicitly_requires_tagresource_permission.py", "service": "stepfunctions"} {"check_id": "stepfunctions.cross-account-alias-version-and-list-ops-access-denied", "deployments": [], "key": "stepfunctions/cross-account-alias-version-and-list-ops-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_cross_account_alias_version_and_list_ops_access_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-child-fail-surfaces-as-task-failed-in-parent", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-child-fail-surfaces-as-task-failed-in-parent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_child_fail_surfaces_as_task_failed_in_parent.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-express-machine-sync-task-rejected-at-runtime", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-express-machine-sync-task-rejected-at-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_express_machine_sync_task_rejected_at_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-lambda-function-timeout-is-sandbox-timedout-not-states-timeout", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-lambda-function-timeout-is-sandbox-timedout-not-states-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_lambda_function_timeout_is_sandbox_timedout_not_states_timeout.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-lambda-invoke-envelope-vs-raw-arn-bare-payload", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-lambda-invoke-envelope-vs-raw-arn-bare-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_lambda_invoke_envelope_vs_raw_arn_bare_payload.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-lambda-result-over-256kib-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-lambda-result-over-256kib-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_lambda_result_over_256kib_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-lambda-unhandled-exception-error-and-json-cause", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-lambda-unhandled-exception-error-and-json-cause", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_lambda_unhandled_exception_error_and_json_cause.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-parallel-sibling-fail-aborts-inflight-child", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-parallel-sibling-fail-aborts-inflight-child", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_parallel_sibling_fail_aborts_inflight_child.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-parent-stop-aborts-running-child", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-parent-stop-aborts-running-child", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_parent_stop_aborts_running_child.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-start-unpermitted-child-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-start-unpermitted-child-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_start_unpermitted_child_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-1-sfn-sync-v1-output-string-vs-v2-output-object", "deployments": [], "key": "stepfunctions/deep-sfn-1-sfn-sync-v1-output-string-vs-v2-output-object", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_1_sfn_sync_v1_output_string_vs_v2_output_object.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-catch-output-from-states-error-output", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-catch-output-from-states-error-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_catch_output_from_states_error_output.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-context-redrive-count-joins-describe-execution", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-context-redrive-count-joins-describe-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_context_redrive_count_joins_describe_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-context-retry-count-increments-per-attempt", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-context-retry-count-increments-per-attempt", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_context_retry_count_increments_per_attempt.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-error-output-outside-catch-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-error-output-outside-catch-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_error_output_outside_catch_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-jsonpath-state-under-jsonata-machine-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-jsonpath-state-under-jsonata-machine-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_jsonpath_state_under_jsonata_machine_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-map-items-expression-and-item-context", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-map-items-expression-and-item-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_map_items_expression_and_item_context.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-mixed-query-language-state-override", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-mixed-query-language-state-override", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_mixed_query_language_state_override.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-pass-states-result-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-pass-states-result-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_pass_states_result_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-state-error-caught-by-jsonpath-catch", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-state-error-caught-by-jsonpath-catch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_state_error_caught_by_jsonpath_catch.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-states-context-execution-name-and-entered-time", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-states-context-execution-name-and-entered-time", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_states_context_execution_name_and_entered_time.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonata-task-arguments-aws-sdk-result-output", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonata-task-arguments-aws-sdk-result-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonata_task_arguments_aws_sdk_result_output.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-2-sfn-jsonpath-timeout-caught-by-jsonata-catch", "deployments": [], "key": "stepfunctions/deep-sfn-2-sfn-jsonpath-timeout-caught-by-jsonata-catch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_2_sfn_jsonpath_timeout_caught_by_jsonata_catch.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-3-parallel-branches-concurrent-map-serial", "deployments": [], "key": "stepfunctions/deep-sfn-3-parallel-branches-concurrent-map-serial", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_3_parallel_branches_concurrent_map_serial.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-3-parallel-retry-reruns-completed-sibling", "deployments": [], "key": "stepfunctions/deep-sfn-3-parallel-retry-reruns-completed-sibling", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_3_parallel_retry_reruns_completed_sibling.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-3-wait-absolute-timestamp-future-and-past", "deployments": [], "key": "stepfunctions/deep-sfn-3-wait-absolute-timestamp-future-and-past", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_3_wait_absolute_timestamp_future_and_past.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-3-wait-timestamp-path-malformed-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-3-wait-timestamp-path-malformed-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_3_wait_timestamp_path_malformed_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-array-and-string-intrinsics-edge-semantics", "deployments": [], "key": "stepfunctions/deep-sfn-language-array-and-string-intrinsics-edge-semantics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_array_and_string_intrinsics_edge_semantics.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-array-range-over-1000-items-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-array-range-over-1000-items-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_array_range_over_1000_items_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-choice-missing-comparator-path-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-choice-missing-comparator-path-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_choice_missing_comparator_path_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-choice-nested-and-or-not-path-comparators", "deployments": [], "key": "stepfunctions/deep-sfn-language-choice-nested-and-or-not-path-comparators", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_choice_nested_and_or_not_path_comparators.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-choice-operand-path-null-vs-absent-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-choice-operand-path-null-vs-absent-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_choice_operand_path_null_vs_absent_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-fail-cause-path-non-string-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-fail-cause-path-non-string-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_fail_cause_path_non_string_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-fail-error-path-cause-path-intrinsics-and-context", "deployments": [], "key": "stepfunctions/deep-sfn-language-fail-error-path-cause-path-intrinsics-and-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_fail_error_path_cause_path_intrinsics_and_context.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-fail-error-path-cause-path-reach-execution", "deployments": [], "key": "stepfunctions/deep-sfn-language-fail-error-path-cause-path-reach-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_fail_error_path_cause_path_reach_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-fail-error-path-intrinsic-error-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-fail-error-path-intrinsic-error-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_fail_error_path_intrinsic_error_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-fail-error-path-non-string-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-fail-error-path-non-string-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_fail_error_path_non_string_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-fail-long-error-untrimmed-in-sync-and-logs-trimmed-in-standard-history", "deployments": [], "key": "stepfunctions/deep-sfn-language-fail-long-error-untrimmed-in-sync-and-logs-trimmed-in-standard-history", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_fail_long_error_untrimmed_in_sync_and_logs_trimmed_in_standard_history.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-format-absent-path-argument-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-format-absent-path-argument-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_format_absent_path_argument_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-format-placeholder-count-mismatch-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-format-placeholder-count-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_format_placeholder_count_mismatch_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-hash-every-algorithm-matches-hashlib", "deployments": [], "key": "stepfunctions/deep-sfn-language-hash-every-algorithm-matches-hashlib", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_hash_every_algorithm_matches_hashlib.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-hash-unsupported-algorithm-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-hash-unsupported-algorithm-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_hash_unsupported_algorithm_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-intrinsic-type-mismatch-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-intrinsic-type-mismatch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_intrinsic_type_mismatch_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-json-merge-deep-mode-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-json-merge-deep-mode-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_json_merge_deep_mode_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-json-merge-shallow-and-string-json-roundtrip", "deployments": [], "key": "stepfunctions/deep-sfn-language-json-merge-shallow-and-string-json-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_json_merge_shallow_and_string_json_roundtrip.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-map-items-path-and-task-timing-path-wrong-type-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-map-items-path-and-task-timing-path-wrong-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_map_items_path_and_task_timing_path_wrong_type_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-path-pipeline-applies-in-documented-order", "deployments": [], "key": "stepfunctions/deep-sfn-language-path-pipeline-applies-in-documented-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_path_pipeline_applies_in_documented_order.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-retry-first-matching-retrier-and-catch-order", "deployments": [], "key": "stepfunctions/deep-sfn-language-retry-first-matching-retrier-and-catch-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_language_retry_first_matching_retrier_and_catch_order.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-states-runtime-escapes-retry-and-catch-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-states-runtime-escapes-retry-and-catch-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_deep_sfn_language_states_runtime_escapes_retry_and_catch_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-string-to-json-malformed-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-string-to-json-malformed-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_string_to_json_malformed_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-uuid-distinct-per-call-and-math-random-bounds", "deployments": [], "key": "stepfunctions/deep-sfn-language-uuid-distinct-per-call-and-math-random-bounds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_uuid_distinct_per_call_and_math_random_bounds.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-language-wait-seconds-path-invalid-value-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-language-wait-seconds-path-invalid-value-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_language_wait_seconds_path_invalid_value_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-wait-seconds-zero-and-timestamppath-past-proceed-immediately", "deployments": [], "key": "stepfunctions/deep-sfn-wait-seconds-zero-and-timestamppath-past-proceed-immediately", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_wait_seconds_zero_and_timestamppath_past_proceed_immediately.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-wait-secondspath-array-index-unresolved-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-wait-secondspath-array-index-unresolved-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_wait_secondspath_array_index_unresolved_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deep-sfn-wait-timestamppath-absent-and-array-index-unresolved-rejected", "deployments": [], "key": "stepfunctions/deep-sfn-wait-timestamppath-absent-and-array-index-unresolved-rejected", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_deep_sfn_wait_timestamppath_absent_and_array_index_unresolved_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.delete-state-machine", "deployments": [], "key": "stepfunctions/delete-state-machine", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_delete_state_machine.py", "service": "stepfunctions"} {"check_id": "stepfunctions.delete-state-machine-alias-after-sm-delete-not-found", "deployments": [], "key": "stepfunctions/delete-state-machine-alias-after-sm-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_delete_state_machine_alias_after_sm_delete_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.delete-state-machine-alias-conflict", "deployments": [], "key": "stepfunctions/delete-state-machine-alias-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_delete_state_machine_alias_conflict.py", "service": "stepfunctions"} {"check_id": "stepfunctions.delete-state-machine-version-idempotent-for-unknown-targets", "deployments": [], "key": "stepfunctions/delete-state-machine-version-idempotent-for-unknown-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_delete_state_machine_version_idempotent_for_unknown_targets.py", "service": "stepfunctions"} {"check_id": "stepfunctions.delete-state-machine-version-referenced-by-alias-rejected", "deployments": [], "key": "stepfunctions/delete-state-machine-version-referenced-by-alias-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_delete_state_machine_version_referenced_by_alias_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.delete-state-machine-version-removes-from-list", "deployments": [], "key": "stepfunctions/delete-state-machine-version-removes-from-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_delete_state_machine_version_removes_from_list.py", "service": "stepfunctions"} {"check_id": "stepfunctions.delete-state-machine-version-validation-guard", "deployments": [], "key": "stepfunctions/delete-state-machine-version-validation-guard", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_delete_state_machine_version_validation_guard.py", "service": "stepfunctions"} {"check_id": "stepfunctions.delete-version-referenced-by-alias-conflict", "deployments": [], "key": "stepfunctions/delete-version-referenced-by-alias-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_delete_version_referenced_by_alias_conflict.py", "service": "stepfunctions"} {"check_id": "stepfunctions.denied-states-action-names-resource-by-api-category", "deployments": [], "key": "stepfunctions/denied-states-action-names-resource-by-api-category", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:ListActivities", "stepfunctions:ListStateMachines", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_denied_states_action_names_resource_by_api_category.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deploy-activity-via-cloudformation-then-get-activity-task", "deployments": [], "key": "stepfunctions/deploy-activity-via-cloudformation-then-get-activity-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "stepfunctions:DescribeActivity", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_deploy_activity_via_cloudformation_then_get_activity_task.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deploy-cfn-stack-deletion-removes-state-machine", "deployments": [], "key": "stepfunctions/deploy-cfn-stack-deletion-removes-state-machine", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_deploy_cfn_stack_deletion_removes_state_machine.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deploy-cfn-update-state-machine-definition-changes-execution-behavior", "deployments": [], "key": "stepfunctions/deploy-cfn-update-state-machine-definition-changes-execution-behavior", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_deploy_cfn_update_state_machine_definition_changes_execution_behavior.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deploy-sfn-1-dangling-substituted-transition-rejected", "deployments": [], "key": "stepfunctions/deploy-sfn-1-dangling-substituted-transition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_deploy_sfn_1_dangling_substituted_transition_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deploy-sfn-1-type-change-replaces-state-machine", "deployments": [], "key": "stepfunctions/deploy-sfn-1-type-change-replaces-state-machine", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_deploy_sfn_1_type_change_replaces_state_machine.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deploy-sfn-2-invalid-definition-rolls-back-stack-and-retained-machine-survives-delete", "deployments": [], "key": "stepfunctions/deploy-sfn-2-invalid-definition-rolls-back-stack-and-retained-machine-survives-delete", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_deploy_sfn_2_invalid_definition_rolls_back_stack_and_retained_machine_survives_delete.py", "service": "stepfunctions"} {"check_id": "stepfunctions.deploy-state-machine-via-cloudformation-executes", "deployments": [], "key": "stepfunctions/deploy-state-machine-via-cloudformation-executes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_deploy_state_machine_via_cloudformation_executes.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-activity-with-state-machine-arn-rejected", "deployments": [], "key": "stepfunctions/describe-activity-with-state-machine-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity"], "path": "behavioral/stepfunctions/check_describe_activity_with_state_machine_arn_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-execution-kms-access-denied", "deployments": [], "key": "stepfunctions/describe-execution-kms-access-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateKey", "kms:GenerateDataKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_describe_execution_kms_access_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-execution-succeeded", "deployments": [], "key": "stepfunctions/describe-execution-succeeded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_describe_execution_succeeded.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-map-run-default-fields-and-execution-counts", "deployments": [], "key": "stepfunctions/describe-map-run-default-fields-and-execution-counts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_describe_map_run_default_fields_and_execution_counts.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-map-run-invalid-arn", "deployments": [], "key": "stepfunctions/describe-map-run-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeMapRun"], "path": "behavioral/stepfunctions/check_describe_map_run_invalid_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-map-run-not-found", "deployments": [], "key": "stepfunctions/describe-map-run-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_describe_map_run_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-map-run-reflects-map-state-execution", "deployments": [], "key": "stepfunctions/describe-map-run-reflects-map-state-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:GetExecutionHistory", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_describe_map_run_reflects_map_state_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-nonexistent-state-machine-not-found", "deployments": [], "key": "stepfunctions/describe-nonexistent-state-machine-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_describe_nonexistent_state_machine_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-state-machine-for-execution-after-recreate-execution-does-not-exist", "deployments": [], "key": "stepfunctions/describe-state-machine-for-execution-after-recreate-execution-does-not-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_describe_state_machine_for_execution_after_recreate_execution_does_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-state-machine-for-execution-labeled-arn-ignores-metadata-only", "deployments": [], "key": "stepfunctions/describe-state-machine-for-execution-labeled-arn-ignores-metadata-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:ListExecutions", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_describe_state_machine_for_execution_labeled_arn_ignores_metadata_only.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-state-machine-for-execution-matches-started", "deployments": [], "key": "stepfunctions/describe-state-machine-for-execution-matches-started", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_describe_state_machine_for_execution_matches_started.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-state-machine-for-execution-not-exist", "deployments": [], "key": "stepfunctions/describe-state-machine-for-execution-not-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_describe_state_machine_for_execution_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-state-machine-for-execution-returns-definition", "deployments": [], "key": "stepfunctions/describe-state-machine-for-execution-returns-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_describe_state_machine_for_execution_returns_definition.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-state-machine-kms-invalid-state", "deployments": [], "key": "stepfunctions/describe-state-machine-kms-invalid-state", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateKey", "kms:DescribeKey", "kms:DisableKey", "kms:EnableKey", "kms:ScheduleKeyDeletion", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_describe_state_machine_kms_invalid_state.py", "service": "stepfunctions"} {"check_id": "stepfunctions.describe-state-machine-variable-references-nested-and-version-arn", "deployments": [], "key": "stepfunctions/describe-state-machine-variable-references-nested-and-version-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_describe_state_machine_variable_references_nested_and_version_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.e2e-activity-worker-heartbeat-success-pipeline", "deployments": [], "key": "stepfunctions/e2e-activity-worker-heartbeat-success-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_e2e_activity_worker_heartbeat_success_pipeline.py", "service": "stepfunctions"} {"check_id": "stepfunctions.e2e-alias-weighted-routing-traffic-split-observed", "deployments": [], "key": "stepfunctions/e2e-alias-weighted-routing-traffic-split-observed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeExecution", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_e2e_alias_weighted_routing_traffic_split_observed.py", "service": "stepfunctions"} {"check_id": "stepfunctions.e2e-data-pipeline", "deployments": [], "key": "stepfunctions/e2e-data-pipeline", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_e2e_data_pipeline.py", "service": "stepfunctions"} {"check_id": "stepfunctions.e2e-fan-out-aggregate", "deployments": [], "key": "stepfunctions/e2e-fan-out-aggregate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_e2e_fan_out_aggregate.py", "service": "stepfunctions"} {"check_id": "stepfunctions.e2e-order-processing-workflow", "deployments": [], "key": "stepfunctions/e2e-order-processing-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_e2e_order_processing_workflow.py", "service": "stepfunctions"} {"check_id": "stepfunctions.e2e-retry-with-backoff", "deployments": [], "key": "stepfunctions/e2e-retry-with-backoff", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_e2e_retry_with_backoff.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-activity-already-exists", "deployments": [], "key": "stepfunctions/error-activity-already-exists", "labels": ["axis:rejection", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DescribeActivity"], "path": "behavioral/stepfunctions/check_error_activity_already_exists.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-conflict-create-state-machine-duplicate-name", "deployments": [], "key": "stepfunctions/error-conflict-create-state-machine-duplicate-name", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_error_conflict_create_state_machine_duplicate_name.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-conflict-delete-state-machine-version-in-use", "deployments": [], "key": "stepfunctions/error-conflict-delete-state-machine-version-in-use", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_error_conflict_delete_state_machine_version_in_use.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-conflict-publish-version-stale-revision", "deployments": [], "key": "stepfunctions/error-conflict-publish-version-stale-revision", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_error_conflict_publish_version_stale_revision.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-execution-already-exists", "deployments": [], "key": "stepfunctions/error-execution-already-exists", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_error_execution_already_exists.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-execution-does-not-exist", "deployments": [], "key": "stepfunctions/error-execution-does-not-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_error_execution_does_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-execution-not-redrivable-on-succeeded", "deployments": [], "key": "stepfunctions/error-execution-not-redrivable-on-succeeded", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_error_execution_not_redrivable_on_succeeded.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-invalid-arn", "deployments": [], "key": "stepfunctions/error-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_error_invalid_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-invalid-definition", "deployments": [], "key": "stepfunctions/error-invalid-definition", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_error_invalid_definition.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-invalid-output-send-task-success", "deployments": [], "key": "stepfunctions/error-invalid-output-send-task-success", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_error_invalid_output_send_task_success.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-invalid-token-list-map-runs", "deployments": [], "key": "stepfunctions/error-invalid-token-list-map-runs", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_error_invalid_token_list_map_runs.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-kms-access-denied-describe-execution", "deployments": [], "key": "stepfunctions/error-kms-access-denied-describe-execution", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_error_kms_access_denied_describe_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-resource-not-found-describe-alias", "deployments": [], "key": "stepfunctions/error-resource-not-found-describe-alias", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_error_resource_not_found_describe_alias.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-send-task-failure-invalid-token", "deployments": [], "key": "stepfunctions/error-send-task-failure-invalid-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_error_send_task_failure_invalid_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-sm-does-not-exist", "deployments": [], "key": "stepfunctions/error-sm-does-not-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_error_sm_does_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-task-does-not-exist-heartbeat", "deployments": [], "key": "stepfunctions/error-task-does-not-exist-heartbeat", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_error_task_does_not_exist_heartbeat.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-validation-exception-list-versions-bad-arn", "deployments": [], "key": "stepfunctions/error-validation-exception-list-versions-bad-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachineVersions"], "path": "behavioral/stepfunctions/check_error_validation_exception_list_versions_bad_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.error-validation-exception-update-map-run", "deployments": [], "key": "stepfunctions/error-validation-exception-update-map-run", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateMapRun"], "path": "behavioral/stepfunctions/check_error_validation_exception_update_map_run.py", "service": "stepfunctions"} {"check_id": "stepfunctions.execution-history-timestamp-precision-preserved", "deployments": [], "key": "stepfunctions/execution-history-timestamp-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_execution_history_timestamp_precision_preserved.py", "service": "stepfunctions"} {"check_id": "stepfunctions.execution-input-unicode-round-trip", "deployments": [], "key": "stepfunctions/execution-input-unicode-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_execution_input_unicode_round_trip.py", "service": "stepfunctions"} {"check_id": "stepfunctions.execution-level-timeoutseconds-yields-timed-out-not-failed", "deployments": [], "key": "stepfunctions/execution-level-timeoutseconds-yields-timed-out-not-failed", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_execution_level_timeoutseconds_yields_timed_out_not_failed.py", "service": "stepfunctions"} {"check_id": "stepfunctions.execution-metrics-reach-cloudwatch-under-the-state-machine-dimension", "deployments": [], "key": "stepfunctions/execution-metrics-reach-cloudwatch-under-the-state-machine-dimension", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_execution_metrics_reach_cloudwatch_under_the_state_machine_dimension.py", "service": "stepfunctions"} {"check_id": "stepfunctions.execution-output-numeric-precision-preserved", "deployments": [], "key": "stepfunctions/execution-output-numeric-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_execution_output_numeric_precision_preserved.py", "service": "stepfunctions"} {"check_id": "stepfunctions.execution-role-trust-source-arn-naming-another-account-blocks-task", "deployments": [], "key": "stepfunctions/execution-role-trust-source-arn-naming-another-account-blocks-task", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_execution_role_trust_source_arn_naming_another_account_blocks_task.py", "service": "stepfunctions"} {"check_id": "stepfunctions.execution-started-event-carries-alias-and-version-arn", "deployments": [], "key": "stepfunctions/execution-started-event-carries-alias-and-version-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_execution_started_event_carries_alias_and_version_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.execution-with-name", "deployments": [], "key": "stepfunctions/execution-with-name", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_execution_with_name.py", "service": "stepfunctions"} {"check_id": "stepfunctions.explicit-deny-blocks-every-states-api", "deployments": [], "key": "stepfunctions/explicit-deny-blocks-every-states-api", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:ListActivities", "stepfunctions:ListExecutions", "stepfunctions:ListStateMachines", "stepfunctions:ListTagsForResource", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:TagResource", "stepfunctions:UntagResource", "stepfunctions:UpdateStateMachine", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_explicit_deny_blocks_every_states_api.py", "service": "stepfunctions"} {"check_id": "stepfunctions.express-execution-not-persisted-in-list", "deployments": [], "key": "stepfunctions/express-execution-not-persisted-in-list", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_express_execution_not_persisted_in_list.py", "service": "stepfunctions"} {"check_id": "stepfunctions.express-state-machine-sync-execution-update-delete-gone", "deployments": [], "key": "stepfunctions/express-state-machine-sync-execution-update-delete-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:StartSyncExecution", "stepfunctions:UpdateStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_express_state_machine_sync_execution_update_delete_gone.py", "service": "stepfunctions"} {"check_id": "stepfunctions.express-sync-execution", "deployments": [], "key": "stepfunctions/express-sync-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_express_sync_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.express-sync-execution-id-carries-express-arn-form", "deployments": [], "key": "stepfunctions/express-sync-execution-id-carries-express-arn-form", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_express_sync_execution_id_carries_express_arn_form.py", "service": "stepfunctions"} {"check_id": "stepfunctions.express-sync-failure-returns-a-result-not-an-error-with-billing-details", "deployments": [], "key": "stepfunctions/express-sync-failure-returns-a-result-not-an-error-with-billing-details", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:StartSyncExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_express_sync_failure_returns_a_result_not_an_error_with_billing_details.py", "service": "stepfunctions"} {"check_id": "stepfunctions.express-sync-machine-timeoutseconds-shorter-than-wait-yields-timed-out", "deployments": [], "key": "stepfunctions/express-sync-machine-timeoutseconds-shorter-than-wait-yields-timed-out", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_express_sync_machine_timeoutseconds_shorter_than_wait_yields_timed_out.py", "service": "stepfunctions"} {"check_id": "stepfunctions.fail-no-output", "deployments": [], "key": "stepfunctions/fail-no-output", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_fail_no_output.py", "service": "stepfunctions"} {"check_id": "stepfunctions.fail-state-causes-failed", "deployments": [], "key": "stepfunctions/fail-state-causes-failed", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_fail_state_causes_failed.py", "service": "stepfunctions"} {"check_id": "stepfunctions.fail-state-null-error-uncaught-by-named-parallel-catch", "deployments": [], "key": "stepfunctions/fail-state-null-error-uncaught-by-named-parallel-catch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_fail_state_null_error_uncaught_by_named_parallel_catch.py", "service": "stepfunctions"} {"check_id": "stepfunctions.get-activity-task-activity-does-not-exist", "deployments": [], "key": "stepfunctions/get-activity-task-activity-does-not-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:GetActivityTask"], "path": "behavioral/stepfunctions/check_get_activity_task_activity_does_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.get-activity-task-blocks-until-execution-schedules-task", "deployments": [], "key": "stepfunctions/get-activity-task-blocks-until-execution-schedules-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_get_activity_task_blocks_until_execution_schedules_task.py", "service": "stepfunctions"} {"check_id": "stepfunctions.get-activity-task-long-poll-returns-empty-on-timeout", "deployments": [], "key": "stepfunctions/get-activity-task-long-poll-returns-empty-on-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:GetActivityTask"], "path": "behavioral/stepfunctions/check_get_activity_task_long_poll_returns_empty_on_timeout.py", "service": "stepfunctions"} {"check_id": "stepfunctions.get-activity-task-long-poll-worker-limit", "deployments": [], "key": "stepfunctions/get-activity-task-long-poll-worker-limit", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_get_activity_task_long_poll_worker_limit.py", "service": "stepfunctions"} {"check_id": "stepfunctions.get-execution-history-execution-not-exist", "deployments": [], "key": "stepfunctions/get-execution-history-execution-not-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_get_execution_history_execution_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.get-execution-history-invalid-token", "deployments": [], "key": "stepfunctions/get-execution-history-invalid-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_get_execution_history_invalid_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.get-execution-history-page-is-byte-bounded-not-just-count-bounded", "deployments": [], "key": "stepfunctions/get-execution-history-page-is-byte-bounded-not-just-count-bounded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_get_execution_history_page_is_byte_bounded_not_just_count_bounded.py", "service": "stepfunctions"} {"check_id": "stepfunctions.get-execution-history-pagination-preserves-event-order", "deployments": [], "key": "stepfunctions/get-execution-history-pagination-preserves-event-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_get_execution_history_pagination_preserves_event_order.py", "service": "stepfunctions"} {"check_id": "stepfunctions.history-event-chain-pairing-and-reverse-order", "deployments": [], "key": "stepfunctions/history-event-chain-pairing-and-reverse-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_history_event_chain_pairing_and_reverse_order.py", "service": "stepfunctions"} {"check_id": "stepfunctions.history-event-ordering", "deployments": [], "key": "stepfunctions/history-event-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_history_event_ordering.py", "service": "stepfunctions"} {"check_id": "stepfunctions.history-has-started-and-succeeded", "deployments": [], "key": "stepfunctions/history-has-started-and-succeeded", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_history_has_started_and_succeeded.py", "service": "stepfunctions"} {"check_id": "stepfunctions.history-pass-state-events", "deployments": [], "key": "stepfunctions/history-pass-state-events", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_history_pass_state_events.py", "service": "stepfunctions"} {"check_id": "stepfunctions.iam-resource-prefix-on-activity-grants-activity-ops-and-matching-token", "deployments": [], "key": "stepfunctions/iam-resource-prefix-on-activity-grants-activity-ops-and-matching-token", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetActivityTask", "stepfunctions:ListTagsForResource", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:TagResource"], "path": "behavioral/stepfunctions/check_iam_resource_prefix_on_activity_grants_activity_ops_and_matching_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.iam-resource-prefix-on-execution-grants-execution-ops-not-start", "deployments": [], "key": "stepfunctions/iam-resource-prefix-on-execution-grants-execution-ops-not-start", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_iam_resource_prefix_on_execution_grants_execution_ops_not_start.py", "service": "stepfunctions"} {"check_id": "stepfunctions.iam-resource-prefix-on-state-machine-scopes-sm-ops-not-executions", "deployments": [], "key": "stepfunctions/iam-resource-prefix-on-state-machine-scopes-sm-ops-not-executions", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutUserPolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:ListExecutions", "stepfunctions:ListStateMachines", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_iam_resource_prefix_on_state_machine_scopes_sm_ops_not_executions.py", "service": "stepfunctions"} {"check_id": "stepfunctions.input-output-processing-stages-apply-in-the-documented-order", "deployments": [], "key": "stepfunctions/input-output-processing-stages-apply-in-the-documented-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_input_output_processing_stages_apply_in_the_documented_order.py", "service": "stepfunctions"} {"check_id": "stepfunctions.input-path-filters", "deployments": [], "key": "stepfunctions/input-path-filters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_input_path_filters.py", "service": "stepfunctions"} {"check_id": "stepfunctions.input-threading", "deployments": [], "key": "stepfunctions/input-threading", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_input_threading.py", "service": "stepfunctions"} {"check_id": "stepfunctions.intrinsic-function-library-evaluates-exactly", "deployments": [], "key": "stepfunctions/intrinsic-function-library-evaluates-exactly", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_intrinsic_function_library_evaluates_exactly.py", "service": "stepfunctions"} {"check_id": "stepfunctions.intrinsic-states-array", "deployments": [], "key": "stepfunctions/intrinsic-states-array", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_intrinsic_states_array.py", "service": "stepfunctions"} {"check_id": "stepfunctions.intrinsic-states-format", "deployments": [], "key": "stepfunctions/intrinsic-states-format", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_intrinsic_states_format.py", "service": "stepfunctions"} {"check_id": "stepfunctions.intrinsic-states-json-to-string", "deployments": [], "key": "stepfunctions/intrinsic-states-json-to-string", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_intrinsic_states_json_to_string.py", "service": "stepfunctions"} {"check_id": "stepfunctions.intrinsic-states-string-to-json", "deployments": [], "key": "stepfunctions/intrinsic-states-string-to-json", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_intrinsic_states_string_to_json.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-assign-variables-scope-across-states", "deployments": [], "key": "stepfunctions/jsonata-assign-variables-scope-across-states", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonata_assign_variables_scope_across_states.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-boolean-null-and-array-values-round-trip-through-output-assign-and-task-arguments", "deployments": [], "key": "stepfunctions/jsonata-boolean-null-and-array-values-round-trip-through-output-assign-and-task-arguments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_jsonata_boolean_null_and_array_values_round_trip_through_output_assign_and_task_arguments.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-fail-and-succeed-evaluate-expressions-undefined-rejected", "deployments": [], "key": "stepfunctions/jsonata-fail-and-succeed-evaluate-expressions-undefined-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonata_fail_and_succeed_evaluate_expressions_undefined_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-fail-error-and-cause-each-get-their-own-diagnostic", "deployments": [], "key": "stepfunctions/jsonata-fail-error-and-cause-each-get-their-own-diagnostic", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_jsonata_fail_error_and_cause_each_get_their_own_diagnostic.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-malformed-string-and-arguments-schema-validation-messages", "deployments": [], "key": "stepfunctions/jsonata-malformed-string-and-arguments-schema-validation-messages", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_jsonata_malformed_string_and_arguments_schema_validation_messages.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-output-and-states-input-transform", "deployments": [], "key": "stepfunctions/jsonata-output-and-states-input-transform", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonata_output_and_states_input_transform.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-parallel-evaluation-failure-timing-and-catch", "deployments": [], "key": "stepfunctions/jsonata-parallel-evaluation-failure-timing-and-catch", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonata_parallel_evaluation_failure_timing_and_catch.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-task-arguments-evaluating-to-non-object-fails-with-states-runtime", "deployments": [], "key": "stepfunctions/jsonata-task-arguments-evaluating-to-non-object-fails-with-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_jsonata_task_arguments_evaluating_to_non_object_fails_with_states_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-task-error-two-levels-deep-propagates-through-map-and-parallel", "deployments": [], "key": "stepfunctions/jsonata-task-error-two-levels-deep-propagates-through-map-and-parallel", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonata_task_error_two_levels_deep_propagates_through_map_and_parallel.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-variable-scope-nested-map-parallel-boundaries", "deployments": [], "key": "stepfunctions/jsonata-variable-scope-nested-map-parallel-boundaries", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonata_variable_scope_nested_map_parallel_boundaries.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonata-wait-field-runtime-type-and-format-errors-are-catchable", "deployments": [], "key": "stepfunctions/jsonata-wait-field-runtime-type-and-format-errors-are-catchable", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonata_wait_field_runtime_type_and_format_errors_are_catchable.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonpath-assign-reads-task-catch-map-and-choice-rule", "deployments": [], "key": "stepfunctions/jsonpath-assign-reads-task-catch-map-and-choice-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonpath_assign_reads_task_catch_map_and_choice_rule.py", "service": "stepfunctions"} {"check_id": "stepfunctions.jsonpath-variables-read-across-fields-and-types", "deployments": [], "key": "stepfunctions/jsonpath-variables-read-across-fields-and-types", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_jsonpath_variables_read_across_fields_and_types.py", "service": "stepfunctions"} {"check_id": "stepfunctions.lambda-task-inputpath-missing-field-states-runtime", "deployments": [], "key": "stepfunctions/lambda-task-inputpath-missing-field-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_lambda_task_inputpath_missing_field_states_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.large-payload", "deployments": [], "key": "stepfunctions/large-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_large_payload.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-activities-pagination-token", "deployments": [], "key": "stepfunctions/list-activities-pagination-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:ListActivities"], "path": "behavioral/stepfunctions/check_list_activities_pagination_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-aliases-next-token-valid-after-delete", "deployments": [], "key": "stepfunctions/list-aliases-next-token-valid-after-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_list_aliases_next_token_valid_after_delete.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-aliases-nonexistent-version-not-found", "deployments": [], "key": "stepfunctions/list-aliases-nonexistent-version-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_list_aliases_nonexistent_version_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-aliases-pagination", "deployments": [], "key": "stepfunctions/list-aliases-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_list_aliases_pagination.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-aliases-scoped-to-version-arn", "deployments": [], "key": "stepfunctions/list-aliases-scoped-to-version-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_list_aliases_scoped_to_version_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions", "deployments": [], "key": "stepfunctions/list-executions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_list_executions.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions-filtered-by-version-and-alias-arn", "deployments": [], "key": "stepfunctions/list-executions-filtered-by-version-and-alias-arn", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_list_executions_filtered_by_version_and_alias_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions-filters-by-status-field", "deployments": [], "key": "stepfunctions/list-executions-filters-by-status-field", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_list_executions_filters_by_status_field.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions-invalid-arn", "deployments": [], "key": "stepfunctions/list-executions-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/stepfunctions/check_list_executions_invalid_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions-maxresults-change-keeps-token-valid", "deployments": [], "key": "stepfunctions/list-executions-maxresults-change-keeps-token-valid", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_list_executions_maxresults_change_keeps_token_valid.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions-missing-required-filter-rejected", "deployments": [], "key": "stepfunctions/list-executions-missing-required-filter-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/stepfunctions/check_list_executions_missing_required_filter_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions-redrive-filter-unsupported-for-express", "deployments": [], "key": "stepfunctions/list-executions-redrive-filter-unsupported-for-express", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/stepfunctions/check_list_executions_redrive_filter_unsupported_for_express.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions-resource-not-found", "deployments": [], "key": "stepfunctions/list-executions-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListExecutions"], "path": "behavioral/stepfunctions/check_list_executions_resource_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-executions-status-filter-ordering", "deployments": [], "key": "stepfunctions/list-executions-status-filter-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_list_executions_status_filter_ordering.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-map-runs-execution-not-exist", "deployments": [], "key": "stepfunctions/list-map-runs-execution-not-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_list_map_runs_execution_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-map-runs-for-execution", "deployments": [], "key": "stepfunctions/list-map-runs-for-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_list_map_runs_for_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-state-machine-aliases-errors", "deployments": [], "key": "stepfunctions/list-state-machine-aliases-errors", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachineAliases"], "path": "behavioral/stepfunctions/check_list_state_machine_aliases_errors.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-state-machine-versions-invalid-token-rejected", "deployments": [], "key": "stepfunctions/list-state-machine-versions-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_list_state_machine_versions_invalid_token_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-state-machine-versions-max-results-exceeds-limit-rejected", "deployments": [], "key": "stepfunctions/list-state-machine-versions-max-results-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachineVersions"], "path": "behavioral/stepfunctions/check_list_state_machine_versions_max_results_exceeds_limit_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-state-machine-versions-ordering", "deployments": [], "key": "stepfunctions/list-state-machine-versions-ordering", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_list_state_machine_versions_ordering.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-state-machines", "deployments": [], "key": "stepfunctions/list-state-machines", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_list_state_machines.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-state-machines-pagination-token", "deployments": [], "key": "stepfunctions/list-state-machines-pagination-token", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_list_state_machines_pagination_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-state-machines-reflects-created-and-deleted", "deployments": [], "key": "stepfunctions/list-state-machines-reflects-created-and-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_list_state_machines_reflects_created_and_deleted.py", "service": "stepfunctions"} {"check_id": "stepfunctions.list-versions-pagination", "deployments": [], "key": "stepfunctions/list-versions-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_list_versions_pagination.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-level-selects-which-history-events-reach-cloudwatch-logs", "deployments": [], "key": "stepfunctions/log-level-selects-which-history-events-reach-cloudwatch-logs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_log_level_selects_which_history_events_reach_cloudwatch_logs.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-sfn-apigw-agreement-all-level-log-events-mirror-execution-history-event-for-event", "deployments": [], "key": "stepfunctions/log-sfn-apigw-agreement-all-level-log-events-mirror-execution-history-event-for-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_log_sfn_apigw_agreement_all_level_log_events_mirror_execution_history_event_for_event.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-sfn-apigw-agreement-error-level-delivers-only-failure-events-with-history-ids", "deployments": [], "key": "stepfunctions/log-sfn-apigw-agreement-error-level-delivers-only-failure-events-with-history-ids", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_log_sfn_apigw_agreement_error_level_delivers_only_failure_events_with_history_ids.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-sfn-apigw-agreement-fail-state-error-and-cause-agree-across-log-history-and-describe", "deployments": [], "key": "stepfunctions/log-sfn-apigw-agreement-fail-state-error-and-cause-agree-across-log-history-and-describe", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_log_sfn_apigw_agreement_fail_state_error_and_cause_agree_across_log_history_and_describe.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-sfn-apigw-agreement-logging-off-by-update-blocks-delivery-until-reenabled", "deployments": [], "key": "stepfunctions/log-sfn-apigw-agreement-logging-off-by-update-blocks-delivery-until-reenabled", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_log_sfn_apigw_agreement_logging_off_by_update_blocks_delivery_until_reenabled.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-sfn-apigw-agreement-redacted-log-keeps-transitions-and-errors-while-history-keeps-payload", "deployments": [], "key": "stepfunctions/log-sfn-apigw-agreement-redacted-log-keeps-transitions-and-errors-while-history-keeps-payload", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_log_sfn_apigw_agreement_redacted_log_keeps_transitions_and_errors_while_history_keeps_payload.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-sfn-apigw-agreement-update-to-unqualified-log-group-arn-rejected-and-delivery-unchanged", "deployments": [], "key": "stepfunctions/log-sfn-apigw-agreement-update-to-unqualified-log-group-arn-rejected-and-delivery-unchanged", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogStreams", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachineForExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_log_sfn_apigw_agreement_update_to_unqualified_log_group_arn_rejected_and_delivery_unchanged.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-sfn-sync-child-failure-cause-redacts-input-but-keeps-failed-status", "deployments": [], "key": "stepfunctions/log-sfn-sync-child-failure-cause-redacts-input-but-keeps-failed-status", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:FilterLogEvents", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_log_sfn_sync_child_failure_cause_redacts_input_but_keeps_failed_status.py", "service": "stepfunctions"} {"check_id": "stepfunctions.log-sfn-sync-nonexistent-child-rejected", "deployments": [], "key": "stepfunctions/log-sfn-sync-nonexistent-child-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_log_sfn_sync_nonexistent_child_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-catch-iteration-error-routes-on", "deployments": [], "key": "stepfunctions/map-catch-iteration-error-routes-on", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_catch_iteration_error_routes_on.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-invalid-input-path-fails-states-runtime", "deployments": [], "key": "stepfunctions/map-invalid-input-path-fails-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_map_invalid_input_path_fails_states_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-item-selector-context-and-result-ordering", "deployments": [], "key": "stepfunctions/map-item-selector-context-and-result-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_item_selector_context_and_result_ordering.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-itemselector-invalid-context-path-rejected", "deployments": [], "key": "stepfunctions/map-itemselector-invalid-context-path-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_itemselector_invalid_context_path_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-legacy-parameters-field-with-iterator-and-item-context", "deployments": [], "key": "stepfunctions/map-legacy-parameters-field-with-iterator-and-item-context", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_legacy_parameters_field_with_iterator_and_item_context.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-max-concurrency", "deployments": [], "key": "stepfunctions/map-max-concurrency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_max_concurrency.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-maxconcurrency-negative-literal-rejected-at-create", "deployments": [], "key": "stepfunctions/map-maxconcurrency-negative-literal-rejected-at-create", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine"], "path": "behavioral/stepfunctions/check_map_maxconcurrency_negative_literal_rejected_at_create.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-maxconcurrency-one-serialises-iterations-against-an-unbounded-twin", "deployments": [], "key": "stepfunctions/map-maxconcurrency-one-serialises-iterations-against-an-unbounded-twin", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_maxconcurrency_one_serialises_iterations_against_an_unbounded_twin.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-maxconcurrency-one-succeeds-at-3000-serial-iterations", "deployments": [], "key": "stepfunctions/map-maxconcurrency-one-succeeds-at-3000-serial-iterations", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_maxconcurrency_one_succeeds_at_3000_serial_iterations.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-maxconcurrency-runtime-overflow-and-negative-path-fail-with-states-runtime", "deployments": [], "key": "stepfunctions/map-maxconcurrency-runtime-overflow-and-negative-path-fail-with-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_maxconcurrency_runtime_overflow_and_negative_path_fail_with_states_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-maxconcurrency-zero-and-above-int32-accepted-every-iteration-runs", "deployments": [], "key": "stepfunctions/map-maxconcurrency-zero-and-above-int32-accepted-every-iteration-runs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_maxconcurrency_zero_and_above_int32_accepted_every_iteration_runs.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-maxconcurrency-zero-over-many-items-plateaus-at-an-internal-cap", "deployments": [], "key": "stepfunctions/map-maxconcurrency-zero-over-many-items-plateaus-at-an-internal-cap", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_maxconcurrency_zero_over_many_items_plateaus_at_an_internal_cap.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-non-array-input-fails-states-runtime", "deployments": [], "key": "stepfunctions/map-non-array-input-fails-states-runtime", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_map_non_array_input_fails_states_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-over-array", "deployments": [], "key": "stepfunctions/map-over-array", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_over_array.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-over-primitives-and-empty-array-history", "deployments": [], "key": "stepfunctions/map-over-primitives-and-empty-array-history", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_over_primitives_and_empty_array_history.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-result-path", "deployments": [], "key": "stepfunctions/map-result-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_map_result_path.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-run-describe-list-update", "deployments": [], "key": "stepfunctions/map-run-describe-list-update", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:UpdateMapRun"], "path": "behavioral/stepfunctions/check_map_run_describe_list_update.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-run-list-ordered-by-start-time", "deployments": [], "key": "stepfunctions/map-run-list-ordered-by-start-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_map_run_list_ordered_by_start_time.py", "service": "stepfunctions"} {"check_id": "stepfunctions.map-run-tolerated-failure-enforced", "deployments": [], "key": "stepfunctions/map-run-tolerated-failure-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateMapRun"], "path": "behavioral/stepfunctions/check_map_run_tolerated_failure_enforced.py", "service": "stepfunctions"} {"check_id": "stepfunctions.nested-fire-and-forget-start-execution-does-not-block-on-child", "deployments": [], "key": "stepfunctions/nested-fire-and-forget-start-execution-does-not-block-on-child", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_nested_fire_and_forget_start_execution_does_not_block_on_child.py", "service": "stepfunctions"} {"check_id": "stepfunctions.nested-parallel-output-ordered-by-branch-position", "deployments": [], "key": "stepfunctions/nested-parallel-output-ordered-by-branch-position", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_nested_parallel_output_ordered_by_branch_position.py", "service": "stepfunctions"} {"check_id": "stepfunctions.null-input", "deployments": [], "key": "stepfunctions/null-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_null_input.py", "service": "stepfunctions"} {"check_id": "stepfunctions.output-path-filters", "deployments": [], "key": "stepfunctions/output-path-filters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_output_path_filters.py", "service": "stepfunctions"} {"check_id": "stepfunctions.parallel-all-branches", "deployments": [], "key": "stepfunctions/parallel-all-branches", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_parallel_all_branches.py", "service": "stepfunctions"} {"check_id": "stepfunctions.parallel-branch-and-whole-output-over-256kib-rejected", "deployments": [], "key": "stepfunctions/parallel-branch-and-whole-output-over-256kib-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_parallel_branch_and_whole_output_over_256kib_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.parallel-branch-failure-caught", "deployments": [], "key": "stepfunctions/parallel-branch-failure-caught", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_parallel_branch_failure_caught.py", "service": "stepfunctions"} {"check_id": "stepfunctions.parallel-result-ordering-and-sibling-branch-abort", "deployments": [], "key": "stepfunctions/parallel-result-ordering-and-sibling-branch-abort", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_parallel_result_ordering_and_sibling_branch_abort.py", "service": "stepfunctions"} {"check_id": "stepfunctions.parameters-jsonpath", "deployments": [], "key": "stepfunctions/parameters-jsonpath", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_parameters_jsonpath.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-chain", "deployments": [], "key": "stepfunctions/pass-chain", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_pass_chain.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-context-object-shape-excludes-retry-count-and-task", "deployments": [], "key": "stepfunctions/pass-context-object-shape-excludes-retry-count-and-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_pass_context_object_shape_excludes_retry_count_and_task.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-input-output-path", "deployments": [], "key": "stepfunctions/pass-input-output-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_pass_input_output_path.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-jsonata-runtime-error-emits-evaluation-failed-then-execution-failed", "deployments": [], "key": "stepfunctions/pass-jsonata-runtime-error-emits-evaluation-failed-then-execution-failed", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_pass_jsonata_runtime_error_emits_evaluation_failed_then_execution_failed.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-parameters", "deployments": [], "key": "stepfunctions/pass-parameters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_pass_parameters.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-result", "deployments": [], "key": "stepfunctions/pass-result", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_pass_result.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-result-path", "deployments": [], "key": "stepfunctions/pass-result-path", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_pass_result_path.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-result-path-doubling-output-over-256kib-rejected", "deployments": [], "key": "stepfunctions/pass-result-path-doubling-output-over-256kib-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_pass_result_path_doubling_output_over_256kib_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.pass-resultpath-no-result-grafts-effective-input", "deployments": [], "key": "stepfunctions/pass-resultpath-no-result-grafts-effective-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_pass_resultpath_no_result_grafts_effective_input.py", "service": "stepfunctions"} {"check_id": "stepfunctions.publish-state-machine-version-permission-denied-on-create-and-update", "deployments": [], "key": "stepfunctions/publish-state-machine-version-permission-denied-on-create-and-update", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines", "stepfunctions:UpdateStateMachine", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_publish_state_machine_version_permission_denied_on_create_and_update.py", "service": "stepfunctions"} {"check_id": "stepfunctions.publish-version-conflict-revision-mismatch", "deployments": [], "key": "stepfunctions/publish-version-conflict-revision-mismatch", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_publish_version_conflict_revision_mismatch.py", "service": "stepfunctions"} {"check_id": "stepfunctions.publish-version-number-never-reused", "deployments": [], "key": "stepfunctions/publish-version-number-never-reused", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_publish_version_number_never_reused.py", "service": "stepfunctions"} {"check_id": "stepfunctions.publish-version-qualified-arn-rejected", "deployments": [], "key": "stepfunctions/publish-version-qualified-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_publish_version_qualified_arn_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.publish-version-service-quota-exceeded", "deployments": [], "key": "stepfunctions/publish-version-service-quota-exceeded", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_publish_version_service_quota_exceeded.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-and-express-sync-start-rejected-while-state-machine-deleting", "deployments": [], "key": "stepfunctions/redrive-and-express-sync-start-rejected-while-state-machine-deleting", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_redrive_and_express_sync_start_rejected_while_state_machine_deleting.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-alternates-failed-and-redriven-history", "deployments": [], "key": "stepfunctions/redrive-execution-alternates-failed-and-redriven-history", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_alternates_failed_and_redriven_history.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-at-history-limit-rejected", "deployments": [], "key": "stepfunctions/redrive-execution-at-history-limit-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_at_history_limit_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-client-token-constraint-rejected", "deployments": [], "key": "stepfunctions/redrive-execution-client-token-constraint-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_client_token_constraint_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-client-token-idempotent-redrive-date", "deployments": [], "key": "stepfunctions/redrive-execution-client-token-idempotent-redrive-date", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_client_token_idempotent_redrive_date.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-not-exist", "deployments": [], "key": "stepfunctions/redrive-execution-not-exist", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-preserves-original-history-order", "deployments": [], "key": "stepfunctions/redrive-execution-preserves-original-history-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_preserves_original_history_order.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-resumes-from-aborted-status", "deployments": [], "key": "stepfunctions/redrive-execution-resumes-from-aborted-status", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_resumes_from_aborted_status.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-resumes-from-failed-state", "deployments": [], "key": "stepfunctions/redrive-execution-resumes-from-failed-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_resumes_from_failed_state.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-resumes-from-failure-point", "deployments": [], "key": "stepfunctions/redrive-execution-resumes-from-failure-point", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_resumes_from_failure_point.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-resumes-from-timed-out-status", "deployments": [], "key": "stepfunctions/redrive-execution-resumes-from-timed-out-status", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_resumes_from_timed_out_status.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-execution-succeeded-not-redrivable", "deployments": [], "key": "stepfunctions/redrive-execution-succeeded-not-redrivable", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_execution_succeeded_not_redrivable.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-of-jsonata-parallel-evaluation-failure-fails-again", "deployments": [], "key": "stepfunctions/redrive-of-jsonata-parallel-evaluation-failure-fails-again", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_redrive_of_jsonata_parallel_evaluation_failure_fails_again.py", "service": "stepfunctions"} {"check_id": "stepfunctions.redrive-succeeded-execution-rejected", "deployments": [], "key": "stepfunctions/redrive-succeeded-execution-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_redrive_succeeded_execution_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.reject-create-state-machine-alias-invalid-name", "deployments": [], "key": "stepfunctions/reject-create-state-machine-alias-invalid-name", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_reject_create_state_machine_alias_invalid_name.py", "service": "stepfunctions"} {"check_id": "stepfunctions.reject-delete-nonempty-activity-in-use", "deployments": [], "key": "stepfunctions/reject-delete-nonempty-activity-in-use", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_reject_delete_nonempty_activity_in_use.py", "service": "stepfunctions"} {"check_id": "stepfunctions.reject-redrive-nonexistent-execution", "deployments": [], "key": "stepfunctions/reject-redrive-nonexistent-execution", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_reject_redrive_nonexistent_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.reject-start-sync-execution-on-standard-workflow", "deployments": [], "key": "stepfunctions/reject-start-sync-execution-on-standard-workflow", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_reject_start_sync_execution_on_standard_workflow.py", "service": "stepfunctions"} {"check_id": "stepfunctions.reject-test-state-invalid-execution-input", "deployments": [], "key": "stepfunctions/reject-test-state-invalid-execution-input", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_reject_test_state_invalid_execution_input.py", "service": "stepfunctions"} {"check_id": "stepfunctions.reject-update-map-run-invalid-arn", "deployments": [], "key": "stepfunctions/reject-update-map-run-invalid-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateMapRun"], "path": "behavioral/stepfunctions/check_reject_update_map_run_invalid_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.reject-update-state-machine-on-version-arn", "deployments": [], "key": "stepfunctions/reject-update-state-machine-on-version-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_reject_update_state_machine_on_version_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.reject-validate-definition-catches-invalid-asl", "deployments": [], "key": "stepfunctions/reject-validate-definition-catches-invalid-asl", "labels": ["axis:happy-path", "plane:control"], "operations": ["stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_reject_validate_definition_catches_invalid_asl.py", "service": "stepfunctions"} {"check_id": "stepfunctions.request-tag-and-tag-keys-conditions-deny-forbidden-tag-mutations", "deployments": [], "key": "stepfunctions/request-tag-and-tag-keys-conditions-deny-forbidden-tag-mutations", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeStateMachine", "stepfunctions:ListTagsForResource", "stepfunctions:TagResource", "stepfunctions:UntagResource", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_request_tag_and_tag_keys_conditions_deny_forbidden_tag_mutations.py", "service": "stepfunctions"} {"check_id": "stepfunctions.resource-tag-condition-denies-tagged-activity-state-machine-and-its-executions", "deployments": [], "key": "stepfunctions/resource-tag-condition-denies-tagged-activity-state-machine-and-its-executions", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StartSyncExecution", "stepfunctions:StopExecution", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_resource_tag_condition_denies_tagged_activity_state_machine_and_its_executions.py", "service": "stepfunctions"} {"check_id": "stepfunctions.result-selector", "deployments": [], "key": "stepfunctions/result-selector", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_result_selector.py", "service": "stepfunctions"} {"check_id": "stepfunctions.retry-backoffrate-below-one-rejected-at-create-state-machine", "deployments": [], "key": "stepfunctions/retry-backoffrate-below-one-rejected-at-create-state-machine", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_retry_backoffrate_below_one_rejected_at_create_state_machine.py", "service": "stepfunctions"} {"check_id": "stepfunctions.retry-error-name-specificity-not-retried", "deployments": [], "key": "stepfunctions/retry-error-name-specificity-not-retried", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_retry_error_name_specificity_not_retried.py", "service": "stepfunctions"} {"check_id": "stepfunctions.retry-fractional-backoffrate-rounds-delay-down", "deployments": [], "key": "stepfunctions/retry-fractional-backoffrate-rounds-delay-down", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_retry_fractional_backoffrate_rounds_delay_down.py", "service": "stepfunctions"} {"check_id": "stepfunctions.retry-intervals-grow-by-backoffrate-and-clamp-at-maxdelayseconds", "deployments": [], "key": "stepfunctions/retry-intervals-grow-by-backoffrate-and-clamp-at-maxdelayseconds", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_retry_intervals_grow_by_backoffrate_and_clamp_at_maxdelayseconds.py", "service": "stepfunctions"} {"check_id": "stepfunctions.retry-multi-name-retrier-shares-counter-across-alternating-errors", "deployments": [], "key": "stepfunctions/retry-multi-name-retrier-shares-counter-across-alternating-errors", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_retry_multi_name_retrier_shares_counter_across_alternating_errors.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-failure-after-timeout-token-invalid", "deployments": [], "key": "stepfunctions/send-task-failure-after-timeout-token-invalid", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_send_task_failure_after_timeout_token_invalid.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-failure-invalid-token", "deployments": [], "key": "stepfunctions/send-task-failure-invalid-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_failure_invalid_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-failure-kms-access-denied", "deployments": [], "key": "stepfunctions/send-task-failure-kms-access-denied", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "kms:CreateKey", "kms:GenerateDataKey", "kms:PutKeyPolicy", "kms:ScheduleKeyDeletion", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_failure_kms_access_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-failure-null-error-and-cause-preserved", "deployments": [], "key": "stepfunctions/send-task-failure-null-error-and-cause-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_failure_null_error_and_cause_preserved.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-failure-oversized-error-or-cause-validated-before-token", "deployments": [], "key": "stepfunctions/send-task-failure-oversized-error-or-cause-validated-before-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_failure_oversized_error_or_cause_validated_before_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-failure-without-cause-fails-execution", "deployments": [], "key": "stepfunctions/send-task-failure-without-cause-fails-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_failure_without_cause_fails_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-failure-without-error-fails-execution", "deployments": [], "key": "stepfunctions/send-task-failure-without-error-fails-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_failure_without_error_fails_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-heartbeat-after-timeout-fails", "deployments": [], "key": "stepfunctions/send-task-heartbeat-after-timeout-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_heartbeat_after_timeout_fails.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-heartbeat-invalid-token", "deployments": [], "key": "stepfunctions/send-task-heartbeat-invalid-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_heartbeat_invalid_token.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-heartbeat-invalid-token-fails", "deployments": [], "key": "stepfunctions/send-task-heartbeat-invalid-token-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_send_task_heartbeat_invalid_token_fails.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-heartbeat-keeps-task-alive", "deployments": [], "key": "stepfunctions/send-task-heartbeat-keeps-task-alive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_heartbeat_keeps_task_alive.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-heartbeat-task-does-not-exist", "deployments": [], "key": "stepfunctions/send-task-heartbeat-task-does-not-exist", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeActivity", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_heartbeat_task_does_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-success-after-completion-rejected", "deployments": [], "key": "stepfunctions/send-task-success-after-completion-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_send_task_success_after_completion_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-success-invalid-output-rejected", "deployments": [], "key": "stepfunctions/send-task-success-invalid-output-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_success_invalid_output_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-success-invalid-token-after-timeout", "deployments": [], "key": "stepfunctions/send-task-success-invalid-token-after-timeout", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_success_invalid_token_after_timeout.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-success-output-256kib-boundary", "deployments": [], "key": "stepfunctions/send-task-success-output-256kib-boundary", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_success_output_256kib_boundary.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-success-token-reuse-fails", "deployments": [], "key": "stepfunctions/send-task-success-token-reuse-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_send_task_success_token_reuse_fails.py", "service": "stepfunctions"} {"check_id": "stepfunctions.send-task-success-with-invalid-token-fails", "deployments": [], "key": "stepfunctions/send-task-success-with-invalid-token-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_send_task_success_with_invalid_token_fails.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-aws-sdk-task-writes-dynamodb-and-a-later-state-reads-it-back", "deployments": [], "key": "stepfunctions/sfn-aws-sdk-task-writes-dynamodb-and-a-later-state-reads-it-back", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_sfn_aws_sdk_task_writes_dynamodb_and_a_later_state_reads_it_back.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-concurrent-redrive-of-one-failed-execution-succeeds-exactly-once", "deployments": [], "key": "stepfunctions/sfn-concurrent-redrive-of-one-failed-execution-succeeds-exactly-once", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:RedriveExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_concurrent_redrive_of_one_failed_execution_succeeds_exactly_once.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-create-activity-resource-policy-on-future-arn", "deployments": [], "key": "stepfunctions/sfn-create-activity-resource-policy-on-future-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:DeleteActivity", "stepfunctions:DescribeActivity", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_sfn_create_activity_resource_policy_on_future_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-create-state-machine-negative-interval-seconds-rejected", "deployments": [], "key": "stepfunctions/sfn-create-state-machine-negative-interval-seconds-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine"], "path": "behavioral/stepfunctions/check_sfn_create_state_machine_negative_interval_seconds_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-create-state-machine-resource-policy-on-future-arn", "deployments": [], "key": "stepfunctions/sfn-create-state-machine-resource-policy-on-future-arn", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_sfn_create_state_machine_resource_policy_on_future_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-create-state-machine-without-passrole-grant-is-denied", "deployments": [], "key": "stepfunctions/sfn-create-state-machine-without-passrole-grant-is-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_sfn_create_state_machine_without_passrole_grant_is_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-jsonata-evaluation-failed-location-truncated-over-256-chars", "deployments": [], "key": "stepfunctions/sfn-jsonata-evaluation-failed-location-truncated-over-256-chars", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_jsonata_evaluation_failed_location_truncated_over_256_chars.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-jsonata-pass-state-output-over-256kib-rejected", "deployments": [], "key": "stepfunctions/sfn-jsonata-pass-state-output-over-256kib-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_jsonata_pass_state_output_over_256kib_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-jsonata-undefined-result-query-evaluation-error", "deployments": [], "key": "stepfunctions/sfn-jsonata-undefined-result-query-evaluation-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_jsonata_undefined_result_query_evaluation_error.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-nested-sync-child-execution-output-is-returned-to-the-parent", "deployments": [], "key": "stepfunctions/sfn-nested-sync-child-execution-output-is-returned-to-the-parent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_sfn_nested_sync_child_execution_output_is_returned_to_the_parent.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-parallel-branch-task-local-catch-handles-failure", "deployments": [], "key": "stepfunctions/sfn-parallel-branch-task-local-catch-handles-failure", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_parallel_branch_task_local_catch_handles_failure.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-payload-above-the-256-kilobyte-limit-is-rejected-and-a-just-under-payload-succeeds", "deployments": [], "key": "stepfunctions/sfn-payload-above-the-256-kilobyte-limit-is-rejected-and-a-just-under-payload-succeeds", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_payload_above_the_256_kilobyte_limit_is_rejected_and_a_just_under_payload_succeeds.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-reassigning-or-leaving-map-scope-frees-variable-space", "deployments": [], "key": "stepfunctions/sfn-reassigning-or-leaving-map-scope-frees-variable-space", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sfn_reassigning_or_leaving_map_scope_frees_variable_space.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-result-selector-and-result-path-compose-over-a-real-sdk-task", "deployments": [], "key": "stepfunctions/sfn-result-selector-and-result-path-compose-over-a-real-sdk-task", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_sfn_result_selector_and_result_path_compose_over_a_real_sdk_task.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-retry-exhaustion-routes-to-catch-and-the-success-state-is-never-entered", "deployments": [], "key": "stepfunctions/sfn-retry-exhaustion-routes-to-catch-and-the-success-state-is-never-entered", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_retry_exhaustion_routes_to_catch_and_the_success_state_is_never_entered.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-retry-interval-seconds-zero-retries-with-no-wait", "deployments": [], "key": "stepfunctions/sfn-retry-interval-seconds-zero-retries-with-no-wait", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_retry_interval_seconds_zero_retries_with_no_wait.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-retry-jitter-full-bounds-delay-by-computed-backoff", "deployments": [], "key": "stepfunctions/sfn-retry-jitter-full-bounds-delay-by-computed-backoff", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_retry_jitter_full_bounds_delay_by_computed_backoff.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-retry-jitter-none-gives-deterministic-delay", "deployments": [], "key": "stepfunctions/sfn-retry-jitter-none-gives-deterministic-delay", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_retry_jitter_none_gives_deterministic_delay.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-retry-with-backoff", "deployments": [], "key": "stepfunctions/sfn-retry-with-backoff", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_retry_with_backoff.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-service-level-only-actions-succeed-resource-scoped-actions-denied", "deployments": [], "key": "stepfunctions/sfn-service-level-only-actions-succeed-resource-scoped-actions-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListActivities", "stepfunctions:ListStateMachines", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_sfn_service_level_only_actions_succeed_resource_scoped_actions_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-startexecution-integration-child-started-by-alias-or-version-arn", "deployments": [], "key": "stepfunctions/sfn-startexecution-integration-child-started-by-alias-or-version-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_startexecution_integration_child_started_by_alias_or_version_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-startexecution-integration-malformed-arn-invalid-arn-exception", "deployments": [], "key": "stepfunctions/sfn-startexecution-integration-malformed-arn-invalid-arn-exception", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_startexecution_integration_malformed_arn_invalid_arn_exception.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-startexecution-integration-missing-machine-does-not-exist-exception", "deployments": [], "key": "stepfunctions/sfn-startexecution-integration-missing-machine-does-not-exist-exception", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_startexecution_integration_missing_machine_does_not_exist_exception.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-startexecution-waitfortasktoken-child-receives-token-parent-resumes", "deployments": [], "key": "stepfunctions/sfn-startexecution-waitfortasktoken-child-receives-token-parent-resumes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_startexecution_waitfortasktoken_child_receives_token_parent_resumes.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-static-variable-validation-field-and-syntax-rejections", "deployments": [], "key": "stepfunctions/sfn-static-variable-validation-field-and-syntax-rejections", "labels": ["axis:rejection", "plane:control"], "operations": ["stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_sfn_static_variable_validation_field_and_syntax_rejections.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-task-state-invokes-lambda", "deployments": [], "key": "stepfunctions/sfn-task-state-invokes-lambda", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_task_state_invokes_lambda.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-task-timeout", "deployments": [], "key": "stepfunctions/sfn-task-timeout", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sfn_task_timeout.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-undefined-variable-is-error-not-warning-in-jsonpath-fields", "deployments": [], "key": "stepfunctions/sfn-undefined-variable-is-error-not-warning-in-jsonpath-fields", "labels": ["axis:rejection", "plane:control"], "operations": ["stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_sfn_undefined_variable_is_error_not_warning_in_jsonpath_fields.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-update-state-machine-with-an-unpassable-role-is-denied", "deployments": [], "key": "stepfunctions/sfn-update-state-machine-with-an-unpassable-role-is-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_sfn_update_state_machine_with_an_unpassable_role_is_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sfn-variable-size-limit-exceeded-per-variable-state-and-execution", "deployments": [], "key": "stepfunctions/sfn-variable-size-limit-exceeded-per-variable-state-and-execution", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sfn_variable_size_limit_exceeded_per_variable_state_and_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sm-alias-create-describe-delete", "deployments": [], "key": "stepfunctions/sm-alias-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_sm_alias_create_describe_delete.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sm-alias-list-pagination", "deployments": [], "key": "stepfunctions/sm-alias-list-pagination", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:ListStateMachineAliases", "stepfunctions:PublishStateMachineVersion"], "path": "behavioral/stepfunctions/check_sm_alias_list_pagination.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sm-alias-update-routing-weights", "deployments": [], "key": "stepfunctions/sm-alias-update-routing-weights", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_sm_alias_update_routing_weights.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sm-version-describe-immutable-definition", "deployments": [], "key": "stepfunctions/sm-version-describe-immutable-definition", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_sm_version_describe_immutable_definition.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sm-version-publish-list-delete", "deployments": [], "key": "stepfunctions/sm-version-publish-list-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_sm_version_publish_list_delete.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sqs-send-message-optimized-integration-output-carries-the-sdk-envelope", "deployments": [], "key": "stepfunctions/sqs-send-message-optimized-integration-output-carries-the-sdk-envelope", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sqs_send_message_optimized_integration_output_carries_the_sdk_envelope.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sqs-send-message-task-without-permission-is-denied", "deployments": [], "key": "stepfunctions/sqs-send-message-task-without-permission-is-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:ReceiveMessage", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sqs_send_message_task_without_permission_is_denied.py", "service": "stepfunctions"} {"check_id": "stepfunctions.standard-parent-sync-runs-express-child-to-completion", "deployments": [], "key": "stepfunctions/standard-parent-sync-runs-express-child-to-completion", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_standard_parent_sync_runs_express_child_to_completion.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-execution-input-exactly-256kib-succeeds", "deployments": [], "key": "stepfunctions/start-execution-input-exactly-256kib-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_start_execution_input_exactly_256kib_succeeds.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-execution-invalid-json-input-rejected", "deployments": [], "key": "stepfunctions/start-execution-invalid-json-input-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_start_execution_invalid_json_input_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-execution-invalid-name-rejected", "deployments": [], "key": "stepfunctions/start-execution-invalid-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListExecutions", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_start_execution_invalid_name_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-execution-name-idempotent-same-input", "deployments": [], "key": "stepfunctions/start-execution-name-idempotent-same-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_start_execution_name_idempotent_same_input.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-execution-on-deleting-state-machine-rejected", "deployments": [], "key": "stepfunctions/start-execution-on-deleting-state-machine-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_start_execution_on_deleting_state_machine_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-execution-returns-arn", "deployments": [], "key": "stepfunctions/start-execution-returns-arn", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:ListExecutions", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_start_execution_returns_arn.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-execution-sync-heartbeatseconds-over-child-wait-fails-parent", "deployments": [], "key": "stepfunctions/start-execution-sync-heartbeatseconds-over-child-wait-fails-parent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_start_execution_sync_heartbeatseconds_over_child_wait_fails_parent.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-execution-then-describe-history-consistency", "deployments": [], "key": "stepfunctions/start-execution-then-describe-history-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_start_execution_then_describe_history_consistency.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-sync-execution-invalid-name-rejected", "deployments": [], "key": "stepfunctions/start-sync-execution-invalid-name-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_start_sync_execution_invalid_name_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-sync-execution-nonexistent-version-and-alias-rejected", "deployments": [], "key": "stepfunctions/start-sync-execution-nonexistent-version-and-alias-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_start_sync_execution_nonexistent_version_and_alias_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-sync-execution-on-deleted-version-and-alias-arn-does-not-exist", "deployments": [], "key": "stepfunctions/start-sync-execution-on-deleted-version-and-alias-arn-does-not-exist", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_start_sync_execution_on_deleted_version_and_alias_arn_does_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.start-sync-execution-on-deleting-state-machine-rejected", "deployments": [], "key": "stepfunctions/start-sync-execution-on-deleting-state-machine-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_start_sync_execution_on_deleting_state_machine_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.state-machine-choice-and-intrinsic-math-recomputed-after-update", "deployments": [], "key": "stepfunctions/state-machine-choice-and-intrinsic-math-recomputed-after-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_state_machine_choice_and_intrinsic_math_recomputed_after_update.py", "service": "stepfunctions"} {"check_id": "stepfunctions.state-machine-lifecycle-execute-update-delete-gone", "deployments": [], "key": "stepfunctions/state-machine-lifecycle-execute-update-delete-gone", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:StartExecution", "stepfunctions:UpdateStateMachine", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_state_machine_lifecycle_execute_update_delete_gone.py", "service": "stepfunctions"} {"check_id": "stepfunctions.state-machine-recreated-with-same-name-resets-executions-and-redrive-count", "deployments": [], "key": "stepfunctions/state-machine-recreated-with-same-name-resets-executions-and-redrive-count", "labels": ["axis:happy-path", "dp:api", "plane:control", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeStateMachine", "stepfunctions:GetActivityTask", "stepfunctions:ListExecutions", "stepfunctions:RedriveExecution", "stepfunctions:SendTaskFailure", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_state_machine_recreated_with_same_name_resets_executions_and_redrive_count.py", "service": "stepfunctions"} {"check_id": "stepfunctions.state-machine-version-list-ordered-newest-first", "deployments": [], "key": "stepfunctions/state-machine-version-list-ordered-newest-first", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:ListStateMachineVersions", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_state_machine_version_list_ordered_newest_first.py", "service": "stepfunctions"} {"check_id": "stepfunctions.statemachinequalifier-condition-restricts-qualifier-value-not-its-absence", "deployments": [], "key": "stepfunctions/statemachinequalifier-condition-restricts-qualifier-value-not-its-absence", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeExecution", "stepfunctions:PublishStateMachineVersion", "stepfunctions:StopExecution", "sts:AssumeRole"], "path": "behavioral/stepfunctions/check_statemachinequalifier_condition_restricts_qualifier_value_not_its_absence.py", "service": "stepfunctions"} {"check_id": "stepfunctions.stop-execution", "deployments": [], "key": "stepfunctions/stop-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_stop_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.stop-execution-aborted-event-details-with-and-without-cause", "deployments": [], "key": "stepfunctions/stop-execution-aborted-event-details-with-and-without-cause", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_stop_execution_aborted_event_details_with_and_without_cause.py", "service": "stepfunctions"} {"check_id": "stepfunctions.stop-execution-not-exist", "deployments": [], "key": "stepfunctions/stop-execution-not-exist", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_stop_execution_not_exist.py", "service": "stepfunctions"} {"check_id": "stepfunctions.stop-execution-on-express-unsupported", "deployments": [], "key": "stepfunctions/stop-execution-on-express-unsupported", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_stop_execution_on_express_unsupported.py", "service": "stepfunctions"} {"check_id": "stepfunctions.stop-execution-oversized-error-rejected-execution-keeps-running", "deployments": [], "key": "stepfunctions/stop-execution-oversized-error-rejected-execution-keeps-running", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_stop_execution_oversized_error_rejected_execution_keeps_running.py", "service": "stepfunctions"} {"check_id": "stepfunctions.stop-execution-transitions-running-to-aborted", "deployments": [], "key": "stepfunctions/stop-execution-transitions-running-to-aborted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_stop_execution_transitions_running_to_aborted.py", "service": "stepfunctions"} {"check_id": "stepfunctions.stopexecution-implicit-vs-explicit-deny-message-suffix", "deployments": [], "key": "stepfunctions/stopexecution-implicit-vs-explicit-deny-message-suffix", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/stepfunctions/check_stopexecution_implicit_vs_explicit_deny_message_suffix.py", "service": "stepfunctions"} {"check_id": "stepfunctions.succeed-after-pass", "deployments": [], "key": "stepfunctions/succeed-after-pass", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_succeed_after_pass.py", "service": "stepfunctions"} {"check_id": "stepfunctions.succeed-input-path-output-path-filters", "deployments": [], "key": "stepfunctions/succeed-input-path-output-path-filters", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_succeed_input_path_output_path_filters.py", "service": "stepfunctions"} {"check_id": "stepfunctions.succeed-terminates", "deployments": [], "key": "stepfunctions/succeed-terminates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_succeed_terminates.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-child-externally-aborted-gives-parent-taskfailed-status-aborted", "deployments": [], "key": "stepfunctions/sync-child-externally-aborted-gives-parent-taskfailed-status-aborted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sync_child_externally_aborted_gives_parent_taskfailed_status_aborted.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-child-timed-out-gives-parent-taskfailed-status-timed-out", "deployments": [], "key": "stepfunctions/sync-child-timed-out-gives-parent-taskfailed-status-timed-out", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sync_child_timed_out_gives_parent_taskfailed_status_timed_out.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-choice-no-match-without-default-fails", "deployments": [], "key": "stepfunctions/sync-choice-no-match-without-default-fails", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sync_choice_no_match_without_default_fails.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-inline-map-second-item-fail-state-fails-execution", "deployments": [], "key": "stepfunctions/sync-inline-map-second-item-fail-state-fails-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sync_inline_map_second_item_fail_state_fails_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-parallel-branch-fail-fails-execution-sibling-result-omitted", "deployments": [], "key": "stepfunctions/sync-parallel-branch-fail-fails-execution-sibling-result-omitted", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sync_parallel_branch_fail_fails_execution_sibling_result_omitted.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-pass-inputpath-missing-field-states-runtime", "deployments": [], "key": "stepfunctions/sync-pass-inputpath-missing-field-states-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sync_pass_inputpath_missing_field_states_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-pass-outputpath-missing-field-states-runtime", "deployments": [], "key": "stepfunctions/sync-pass-outputpath-missing-field-states-runtime", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sync_pass_outputpath_missing_field_states_runtime.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-pass-resultpath-null-output-equals-input", "deployments": [], "key": "stepfunctions/sync-pass-resultpath-null-output-equals-input", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sync_pass_resultpath_null_output_equals_input.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-resultpath-over-array-reference-path-conflict", "deployments": [], "key": "stepfunctions/sync-resultpath-over-array-reference-path-conflict", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution"], "path": "behavioral/stepfunctions/check_sync_resultpath_over_array_reference_path_conflict.py", "service": "stepfunctions"} {"check_id": "stepfunctions.sync-task-output-is-full-describeexecution-shape", "deployments": [], "key": "stepfunctions/sync-task-output-is-full-describeexecution-shape", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_sync_task_output_is_full_describeexecution_shape.py", "service": "stepfunctions"} {"check_id": "stepfunctions.tag-resource-invalid-tag-key-format-rejected", "deployments": [], "key": "stepfunctions/tag-resource-invalid-tag-key-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListTagsForResource", "stepfunctions:TagResource"], "path": "behavioral/stepfunctions/check_tag_resource_invalid_tag_key_format_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.tag-resource-too-many-tags-limit", "deployments": [], "key": "stepfunctions/tag-resource-too-many-tags-limit", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListTagsForResource", "stepfunctions:TagResource", "stepfunctions:UntagResource"], "path": "behavioral/stepfunctions/check_tag_resource_too_many_tags_limit.py", "service": "stepfunctions"} {"check_id": "stepfunctions.tag-untagged-resource-not-found", "deployments": [], "key": "stepfunctions/tag-untagged-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListTagsForResource", "stepfunctions:TagResource", "stepfunctions:UntagResource"], "path": "behavioral/stepfunctions/check_tag_untagged_resource_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.tag-value-empty-string-preserved", "deployments": [], "key": "stepfunctions/tag-value-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:ListTagsForResource", "stepfunctions:TagResource", "stepfunctions:UntagResource"], "path": "behavioral/stepfunctions/check_tag_value_empty_string_preserved.py", "service": "stepfunctions"} {"check_id": "stepfunctions.task-credentials-role-arn-from-variable-resolved-before-assume", "deployments": [], "key": "stepfunctions/task-credentials-role-arn-from-variable-resolved-before-assume", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_task_credentials_role_arn_from_variable_resolved_before_assume.py", "service": "stepfunctions"} {"check_id": "stepfunctions.task-heartbeat-keeps-execution-alive", "deployments": [], "key": "stepfunctions/task-heartbeat-keeps-execution-alive", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_task_heartbeat_keeps_execution_alive.py", "service": "stepfunctions"} {"check_id": "stepfunctions.task-io-base64-blob-round-trip", "deployments": [], "key": "stepfunctions/task-io-base64-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskSuccess", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_task_io_base64_blob_round_trip.py", "service": "stepfunctions"} {"check_id": "stepfunctions.task-timed-out-error-on-heartbeat-after-window", "deployments": [], "key": "stepfunctions/task-timed-out-error-on-heartbeat-after-window", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateActivity", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteActivity", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetActivityTask", "stepfunctions:SendTaskHeartbeat", "stepfunctions:StartExecution"], "path": "behavioral/stepfunctions/check_task_timed_out_error_on_heartbeat_after_window.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-assign-rejected-on-succeed-and-fail", "deployments": [], "key": "stepfunctions/test-state-assign-rejected-on-succeed-and-fail", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_assign_rejected_on_succeed_and_fail.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-assign-returns-variables-in-inspection-data", "deployments": [], "key": "stepfunctions/test-state-assign-returns-variables-in-inspection-data", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_assign_returns_variables_in_inspection_data.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-executes-single-state-without-execution", "deployments": [], "key": "stepfunctions/test-state-executes-single-state-without-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["stepfunctions:ListStateMachines", "stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_executes_single_state_without_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-fail-error-cause-read-variables", "deployments": [], "key": "stepfunctions/test-state-fail-error-cause-read-variables", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_fail_error_cause_read_variables.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-invalid-definition-rejected", "deployments": [], "key": "stepfunctions/test-state-invalid-definition-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_invalid_definition_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-invalid-execution-input-rejected", "deployments": [], "key": "stepfunctions/test-state-invalid-execution-input-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_invalid_execution_input_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-invalid-variables-rejected", "deployments": [], "key": "stepfunctions/test-state-invalid-variables-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_invalid_variables_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-map-type-rejected", "deployments": [], "key": "stepfunctions/test-state-map-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_map_type_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-pass-state", "deployments": [], "key": "stepfunctions/test-state-pass-state", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_pass_state.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-rejects-invalid-arns-and-unknown-integration", "deployments": [], "key": "stepfunctions/test-state-rejects-invalid-arns-and-unknown-integration", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_rejects_invalid_arns_and_unknown_integration.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-request-variables-echoed-and-merged-with-assign", "deployments": [], "key": "stepfunctions/test-state-request-variables-echoed-and-merged-with-assign", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_request_variables_echoed_and_merged_with_assign.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-runtime-cause-omits-execution-prefix", "deployments": [], "key": "stepfunctions/test-state-runtime-cause-omits-execution-prefix", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution", "stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_runtime_cause_omits_execution_prefix.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-schema-validation-rejects-unsupported-fields", "deployments": [], "key": "stepfunctions/test-state-schema-validation-rejects-unsupported-fields", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_schema_validation_rejects_unsupported_fields.py", "service": "stepfunctions"} {"check_id": "stepfunctions.test-state-task-unassumable-role", "deployments": [], "key": "stepfunctions/test-state-task-unassumable-role", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:TestState"], "path": "behavioral/stepfunctions/check_test_state_task_unassumable_role.py", "service": "stepfunctions"} {"check_id": "stepfunctions.uncaught-error-fails-execution", "deployments": [], "key": "stepfunctions/uncaught-error-fails-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_uncaught_error_fails_execution.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-alias-concurrent-modification-converges", "deployments": [], "key": "stepfunctions/update-alias-concurrent-modification-converges", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_update_alias_concurrent_modification_converges.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-map-run-adjusts-concurrency-limits", "deployments": [], "key": "stepfunctions/update-map-run-adjusts-concurrency-limits", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:GetExecutionHistory", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateMapRun"], "path": "behavioral/stepfunctions/check_update_map_run_adjusts_concurrency_limits.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-map-run-invalid-concurrency-rejected", "deployments": [], "key": "stepfunctions/update-map-run-invalid-concurrency-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeMapRun", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateMapRun"], "path": "behavioral/stepfunctions/check_update_map_run_invalid_concurrency_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-map-run-resource-not-found", "deployments": [], "key": "stepfunctions/update-map-run-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:UpdateMapRun"], "path": "behavioral/stepfunctions/check_update_map_run_resource_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-map-run-validation-exception", "deployments": [], "key": "stepfunctions/update-map-run-validation-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:DescribeMapRun", "stepfunctions:GetExecutionHistory", "stepfunctions:ListMapRuns", "stepfunctions:StartExecution", "stepfunctions:StopExecution", "stepfunctions:UpdateMapRun"], "path": "behavioral/stepfunctions/check_update_map_run_validation_exception.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-never-existed-alias-resource-not-found", "deployments": [], "key": "stepfunctions/update-never-existed-alias-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_update_never_existed_alias_resource_not_found.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine", "deployments": [], "key": "stepfunctions/update-state-machine", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-alias-invalid-routing-weights-rejected", "deployments": [], "key": "stepfunctions/update-state-machine-alias-invalid-routing-weights-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_update_state_machine_alias_invalid_routing_weights_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-alias-no-fields-rejected", "deployments": [], "key": "stepfunctions/update-state-machine-alias-no-fields-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineAlias", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_update_state_machine_alias_no_fields_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-alias-shifts-routing", "deployments": [], "key": "stepfunctions/update-state-machine-alias-shifts-routing", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:CreateStateMachineAlias", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachineAlias", "stepfunctions:PublishStateMachineVersion", "stepfunctions:UpdateStateMachine", "stepfunctions:UpdateStateMachineAlias"], "path": "behavioral/stepfunctions/check_update_state_machine_alias_shifts_routing.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-conflict-exception", "deployments": [], "key": "stepfunctions/update-state-machine-conflict-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine_conflict_exception.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-encryption-configuration-without-definition-missing-required-parameter", "deployments": [], "key": "stepfunctions/update-state-machine-encryption-configuration-without-definition-missing-required-parameter", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "kms:CreateKey", "kms:ScheduleKeyDeletion", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine_encryption_configuration_without_definition_missing_required_parameter.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-invalid-role-arn-format-rejected", "deployments": [], "key": "stepfunctions/update-state-machine-invalid-role-arn-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine_invalid_role_arn_format_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-missing-required-parameter", "deployments": [], "key": "stepfunctions/update-state-machine-missing-required-parameter", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine_missing_required_parameter.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-missing-required-parameter-fails", "deployments": [], "key": "stepfunctions/update-state-machine-missing-required-parameter-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine_missing_required_parameter_fails.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-no-op-and-publish-idempotency", "deployments": [], "key": "stepfunctions/update-state-machine-no-op-and-publish-idempotency", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine_no_op_and_publish_idempotency.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-publish-at-version-cap-quota-exceeded", "deployments": [], "key": "stepfunctions/update-state-machine-publish-at-version-cap-quota-exceeded", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine_publish_at_version_cap_quota_exceeded.py", "service": "stepfunctions"} {"check_id": "stepfunctions.update-state-machine-version-description-without-publish-rejected", "deployments": [], "key": "stepfunctions/update-state-machine-version-description-without-publish-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DeleteStateMachineVersion", "stepfunctions:DescribeStateMachine", "stepfunctions:UpdateStateMachine"], "path": "behavioral/stepfunctions/check_update_state_machine_version_description_without_publish_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.validate-state-machine-definition-invalid-type-value-rejected", "deployments": [], "key": "stepfunctions/validate-state-machine-definition-invalid-type-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_validate_state_machine_definition_invalid_type_value_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.validate-state-machine-definition-ok-and-fail", "deployments": [], "key": "stepfunctions/validate-state-machine-definition-ok-and-fail", "labels": ["axis:happy-path", "plane:control"], "operations": ["stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_validate_state_machine_definition_ok_and_fail.py", "service": "stepfunctions"} {"check_id": "stepfunctions.validate-state-machine-definition-reports-errors", "deployments": [], "key": "stepfunctions/validate-state-machine-definition-reports-errors", "labels": ["axis:happy-path", "plane:control"], "operations": ["stepfunctions:ValidateStateMachineDefinition"], "path": "behavioral/stepfunctions/check_validate_state_machine_definition_reports_errors.py", "service": "stepfunctions"} {"check_id": "stepfunctions.wait-inputpath-rebases-secondspath-and-timestamppath", "deployments": [], "key": "stepfunctions/wait-inputpath-rebases-secondspath-and-timestamppath", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_wait_inputpath_rebases_secondspath_and_timestamppath.py", "service": "stepfunctions"} {"check_id": "stepfunctions.wait-outputpath-is-applied-after-the-wait-completes", "deployments": [], "key": "stepfunctions/wait-outputpath-is-applied-after-the-wait-completes", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_wait_outputpath_is_applied_after_the_wait_completes.py", "service": "stepfunctions"} {"check_id": "stepfunctions.wait-seconds", "deployments": [], "key": "stepfunctions/wait-seconds", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_wait_seconds.py", "service": "stepfunctions"} {"check_id": "stepfunctions.wait-seconds-negative-literal-rejected", "deployments": [], "key": "stepfunctions/wait-seconds-negative-literal-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeStateMachine", "stepfunctions:ListStateMachines"], "path": "behavioral/stepfunctions/check_wait_seconds_negative_literal_rejected.py", "service": "stepfunctions"} {"check_id": "stepfunctions.wait-seconds-path", "deployments": [], "key": "stepfunctions/wait-seconds-path", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_wait_seconds_path.py", "service": "stepfunctions"} {"check_id": "stepfunctions.wait-secondspath-numeric-string-51-years-accepted-then-stop-aborts", "deployments": [], "key": "stepfunctions/wait-secondspath-numeric-string-51-years-accepted-then-stop-aborts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_wait_secondspath_numeric_string_51_years_accepted_then_stop_aborts.py", "service": "stepfunctions"} {"check_id": "stepfunctions.wait-state-duration-is-two-sided-and-history-does-not-advance-on-reads", "deployments": [], "key": "stepfunctions/wait-state-duration-is-two-sided-and-history-does-not-advance-on-reads", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:DescribeExecution", "stepfunctions:GetExecutionHistory", "stepfunctions:StartExecution", "stepfunctions:StopExecution"], "path": "behavioral/stepfunctions/check_wait_state_duration_is_two_sided_and_history_does_not_advance_on_reads.py", "service": "stepfunctions"} {"check_id": "stepfunctions__xray.tracing-enabled-state-machine-publishes-a-trace-and-a-disabled-twin-does-not", "deployments": [], "key": "stepfunctions__xray/tracing-enabled-state-machine-publishes-a-trace-and-a-disabled-twin-does-not", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "stepfunctions:CreateStateMachine", "stepfunctions:DeleteStateMachine", "stepfunctions:StartSyncExecution", "xray:BatchGetTraces", "xray:GetTraceSummaries"], "path": "behavioral/stepfunctions__xray/check_tracing_enabled_state_machine_publishes_a_trace_and_a_disabled_twin_does_not.py", "service": "stepfunctions__xray"} {"check_id": "sts.a-chained-session-outlasts-the-parent-role-and-expires-later-than-the-parent-session", "deployments": [], "key": "sts/a-chained-session-outlasts-the-parent-role-and-expires-later-than-the-parent-session", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_a_chained_session_outlasts_the_parent_role_and_expires_later_than_the_parent_session.py", "service": "sts"} {"check_id": "sts.access-key-quota-enforced-under-concurrent-creation", "deployments": [], "key": "sts/access-key-quota-enforced-under-concurrent-creation", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetUser", "iam:ListAccessKeys"], "path": "behavioral/sts/check_access_key_quota_enforced_under_concurrent_creation.py", "service": "sts"} {"check_id": "sts.assume-role-arn-pattern-validation-rejected", "deployments": [], "key": "sts/assume-role-arn-pattern-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_arn_pattern_validation_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-authorization-precedes-policy-parsing", "deployments": [], "key": "sts/assume-role-authorization-precedes-policy-parsing", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_authorization_precedes_policy_parsing.py", "service": "sts"} {"check_id": "sts.assume-role-chaining-caps-duration-at-one-hour", "deployments": [], "key": "sts/assume-role-chaining-caps-duration-at-one-hour", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_chaining_caps_duration_at_one_hour.py", "service": "sts"} {"check_id": "sts.assume-role-concurrent-calls-produce-unique-credentials", "deployments": [], "key": "sts/assume-role-concurrent-calls-produce-unique-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_concurrent_calls_produce_unique_credentials.py", "service": "sts"} {"check_id": "sts.assume-role-credentials-expiration-anchored-to-requested-duration", "deployments": [], "key": "sts/assume-role-credentials-expiration-anchored-to-requested-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_credentials_expiration_anchored_to_requested_duration.py", "service": "sts"} {"check_id": "sts.assume-role-credentials-usable-until-expiration-boundary", "deployments": [], "key": "sts/assume-role-credentials-usable-until-expiration-boundary", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_credentials_usable_until_expiration_boundary.py", "service": "sts"} {"check_id": "sts.assume-role-credentials-valid-until-exact-expiration-timestamp", "deployments": [], "key": "sts/assume-role-credentials-valid-until-exact-expiration-timestamp", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_credentials_valid_until_exact_expiration_timestamp.py", "service": "sts"} {"check_id": "sts.assume-role-default-duration-is-one-hour", "deployments": [], "key": "sts/assume-role-default-duration-is-one-hour", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_default_duration_is_one_hour.py", "service": "sts"} {"check_id": "sts.assume-role-duplicate-tag-keys-rejected", "deployments": [], "key": "sts/assume-role-duplicate-tag-keys-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_duplicate_tag_keys_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-duration-exceeds-max-rejected", "deployments": [], "key": "sts/assume-role-duration-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_duration_exceeds_max_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-duration-exceeds-role-max-session-duration-rejected", "deployments": [], "key": "sts/assume-role-duration-exceeds-role-max-session-duration-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_duration_exceeds_role_max_session_duration_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-expiration-is-issuance-plus-requested-duration", "deployments": [], "key": "sts/assume-role-expiration-is-issuance-plus-requested-duration", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:ListObjectsV2", "sts:AssumeRole"], "path": "behavioral/sts/check_assume_role_expiration_is_issuance_plus_requested_duration.py", "service": "sts"} {"check_id": "sts.assume-role-external-id-mismatch-rejected", "deployments": [], "key": "sts/assume-role-external-id-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_external_id_mismatch_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-external-id-required-denied", "deployments": [], "key": "sts/assume-role-external-id-required-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_external_id_required_denied.py", "service": "sts"} {"check_id": "sts.assume-role-external-id-success-with-correct-id", "deployments": [], "key": "sts/assume-role-external-id-success-with-correct-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_external_id_success_with_correct_id.py", "service": "sts"} {"check_id": "sts.assume-role-foreign-account-role-denied", "deployments": [], "key": "sts/assume-role-foreign-account-role-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_foreign_account_role_denied.py", "service": "sts"} {"check_id": "sts.assume-role-invalid-session-name-chars-rejected", "deployments": [], "key": "sts/assume-role-invalid-session-name-chars-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_invalid_session_name_chars_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-malformed-session-policy-rejected", "deployments": [], "key": "sts/assume-role-malformed-session-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_malformed_session_policy_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-managed-policy-arns-exceeding-max-count-rejected", "deployments": [], "key": "sts/assume-role-managed-policy-arns-exceeding-max-count-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_managed_policy_arns_exceeding_max_count_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-nonexistent-role-denied", "deployments": [], "key": "sts/assume-role-nonexistent-role-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_nonexistent_role_denied.py", "service": "sts"} {"check_id": "sts.assume-role-packed-policy-too-large-rejected", "deployments": [], "key": "sts/assume-role-packed-policy-too-large-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_packed_policy_too_large_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-session-name-empty-vs-absent-distinction", "deployments": [], "key": "sts/assume-role-session-name-empty-vs-absent-distinction", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_name_empty_vs_absent_distinction.py", "service": "sts"} {"check_id": "sts.assume-role-session-name-unicode-preserved-in-arn", "deployments": [], "key": "sts/assume-role-session-name-unicode-preserved-in-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_name_unicode_preserved_in_arn.py", "service": "sts"} {"check_id": "sts.assume-role-session-policy-action-wildcard-granularity", "deployments": [], "key": "sts/assume-role-session-policy-action-wildcard-granularity", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_policy_action_wildcard_granularity.py", "service": "sts"} {"check_id": "sts.assume-role-session-policy-arns-intersect-role-permissions", "deployments": [], "key": "sts/assume-role-session-policy-arns-intersect-role-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_policy_arns_intersect_role_permissions.py", "service": "sts"} {"check_id": "sts.assume-role-session-policy-cannot-exceed-role-permissions", "deployments": [], "key": "sts/assume-role-session-policy-cannot-exceed-role-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_policy_cannot_exceed_role_permissions.py", "service": "sts"} {"check_id": "sts.assume-role-session-policy-cannot-exceed-role-permissions-denied", "deployments": [], "key": "sts/assume-role-session-policy-cannot-exceed-role-permissions-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListUsers", "iam:PutRolePolicy", "s3:ListBuckets", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_policy_cannot_exceed_role_permissions_denied.py", "service": "sts"} {"check_id": "sts.assume-role-session-policy-explicit-deny-wins", "deployments": [], "key": "sts/assume-role-session-policy-explicit-deny-wins", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_policy_explicit_deny_wins.py", "service": "sts"} {"check_id": "sts.assume-role-session-policy-intersection-allows-and-denies", "deployments": [], "key": "sts/assume-role-session-policy-intersection-allows-and-denies", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_policy_intersection_allows_and_denies.py", "service": "sts"} {"check_id": "sts.assume-role-session-policy-over-max-length-rejected", "deployments": [], "key": "sts/assume-role-session-policy-over-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_policy_over_max_length_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-session-tag-decides-policy-condition", "deployments": [], "key": "sts/assume-role-session-tag-decides-policy-condition", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_tag_decides_policy_condition.py", "service": "sts"} {"check_id": "sts.assume-role-session-tag-empty-string-value-preserved", "deployments": [], "key": "sts/assume-role-session-tag-empty-string-value-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:ListBuckets", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_tag_empty_string_value_preserved.py", "service": "sts"} {"check_id": "sts.assume-role-session-tag-unicode-value-round-trip", "deployments": [], "key": "sts/assume-role-session-tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:ListBuckets", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_tag_unicode_value_round_trip.py", "service": "sts"} {"check_id": "sts.assume-role-session-tag-value-exceeds-max-length-rejected", "deployments": [], "key": "sts/assume-role-session-tag-value-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_tag_value_exceeds_max_length_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-session-tags-require-tag-session-permission", "deployments": [], "key": "sts/assume-role-session-tags-require-tag-session-permission", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_tags_require_tag_session_permission.py", "service": "sts"} {"check_id": "sts.assume-role-session-tags-unicode-value-round-trip", "deployments": [], "key": "sts/assume-role-session-tags-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListRoles", "iam:PutRolePolicy", "iam:PutUserPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_session_tags_unicode_value_round_trip.py", "service": "sts"} {"check_id": "sts.assume-role-source-identity-echoed", "deployments": [], "key": "sts/assume-role-source-identity-echoed", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudtrail:LookupEvents", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_source_identity_echoed.py", "service": "sts"} {"check_id": "sts.assume-role-transitive-tag-survives-role-chaining", "deployments": [], "key": "sts/assume-role-transitive-tag-survives-role-chaining", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_transitive_tag_survives_role_chaining.py", "service": "sts"} {"check_id": "sts.assume-role-trust-policy-mfa-condition-refuses-non-mfa-assume", "deployments": [], "key": "sts/assume-role-trust-policy-mfa-condition-refuses-non-mfa-assume", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_trust_policy_mfa_condition_refuses_non_mfa_assume.py", "service": "sts"} {"check_id": "sts.assume-role-trust-policy-principal-arn-condition-enforced", "deployments": [], "key": "sts/assume-role-trust-policy-principal-arn-condition-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_trust_policy_principal_arn_condition_enforced.py", "service": "sts"} {"check_id": "sts.assume-role-trust-policy-principal-restriction-enforced", "deployments": [], "key": "sts/assume-role-trust-policy-principal-restriction-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_trust_policy_principal_restriction_enforced.py", "service": "sts"} {"check_id": "sts.assume-role-trust-policy-session-name-condition-enforced", "deployments": [], "key": "sts/assume-role-trust-policy-session-name-condition-enforced", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_trust_policy_session_name_condition_enforced.py", "service": "sts"} {"check_id": "sts.assume-role-with-saml-expired-assertion-rejected", "deployments": [], "key": "sts/assume-role-with-saml-expired-assertion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "sts:AssumeRoleWithSAML", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_with_saml_expired_assertion_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-saml-expired-token-rejected", "deployments": [], "key": "sts/assume-role-with-saml-expired-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "iam:TagSAMLProvider", "sts:AssumeRoleWithSAML"], "path": "behavioral/sts/check_assume_role_with_saml_expired_token_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-saml-forged-assertion-rejected", "deployments": [], "key": "sts/assume-role-with-saml-forged-assertion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "sts:AssumeRoleWithSAML"], "path": "behavioral/sts/check_assume_role_with_saml_forged_assertion_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-saml-idp-rejected-claim-denied", "deployments": [], "key": "sts/assume-role-with-saml-idp-rejected-claim-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "sts:AssumeRoleWithSAML"], "path": "behavioral/sts/check_assume_role_with_saml_idp_rejected_claim_denied.py", "service": "sts"} {"check_id": "sts.assume-role-with-saml-invalid-identity-token-rejected", "deployments": [], "key": "sts/assume-role-with-saml-invalid-identity-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "sts:AssumeRoleWithSAML"], "path": "behavioral/sts/check_assume_role_with_saml_invalid_identity_token_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-saml-non-base64-assertion-rejected", "deployments": [], "key": "sts/assume-role-with-saml-non-base64-assertion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "sts:AssumeRoleWithSAML"], "path": "behavioral/sts/check_assume_role_with_saml_non_base64_assertion_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-saml-provider-deleted-blocked", "deployments": [], "key": "sts/assume-role-with-saml-provider-deleted-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "iam:GetSAMLProvider", "sts:AssumeRoleWithSAML", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_with_saml_provider_deleted_blocked.py", "service": "sts"} {"check_id": "sts.assume-role-with-saml-rejects-xpath-based-transforms", "deployments": [], "key": "sts/assume-role-with-saml-rejects-xpath-based-transforms", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:CreateSAMLProvider", "iam:DeleteRole", "iam:DeleteSAMLProvider", "sts:AssumeRoleWithSAML"], "path": "behavioral/sts/check_assume_role_with_saml_rejects_xpath_based_transforms.py", "service": "sts"} {"check_id": "sts.assume-role-with-web-identity-expired-token-rejected", "deployments": [], "key": "sts/assume-role-with-web-identity-expired-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:AdminCreateUser", "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminSetUserPassword", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity"], "path": "behavioral/sts/check_assume_role_with_web_identity_expired_token_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-web-identity-forged-token-rejected", "deployments": [], "key": "sts/assume-role-with-web-identity-forged-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "sts:AssumeRole", "sts:AssumeRoleWithWebIdentity"], "path": "behavioral/sts/check_assume_role_with_web_identity_forged_token_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-web-identity-invalid-session-name-rejected", "deployments": [], "key": "sts/assume-role-with-web-identity-invalid-session-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "sts:AssumeRoleWithWebIdentity"], "path": "behavioral/sts/check_assume_role_with_web_identity_invalid_session_name_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-web-identity-invalid-token-format-rejected", "deployments": [], "key": "sts/assume-role-with-web-identity-invalid-token-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_with_web_identity_invalid_token_format_rejected.py", "service": "sts"} {"check_id": "sts.assume-role-with-web-identity-nonexistent-role-denied", "deployments": [], "key": "sts/assume-role-with-web-identity-nonexistent-role-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assume_role_with_web_identity_nonexistent_role_denied.py", "service": "sts"} {"check_id": "sts.assume-role-with-web-identity-oidc-provider-deleted-blocked", "deployments": [], "key": "sts/assume-role-with-web-identity-oidc-provider-deleted-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:GetOpenIDConnectProvider", "sts:AssumeRoleWithWebIdentity"], "path": "behavioral/sts/check_assume_role_with_web_identity_oidc_provider_deleted_blocked.py", "service": "sts"} {"check_id": "sts.assumed-role-arn-omits-the-role-path-and-honours-a-raised-max-session-duration", "deployments": [], "key": "sts/assumed-role-arn-omits-the-role-path-and-honours-a-raised-max-session-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_assumed_role_arn_omits_the_role_path_and_honours_a_raised_max_session_duration.py", "service": "sts"} {"check_id": "sts.chained-session-carries-the-second-role-identity-and-its-deletion-refuses-the-first-session", "deployments": [], "key": "sts/chained-session-carries-the-second-role-identity-and-its-deletion-refuses-the-first-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_chained_session_carries_the_second_role_identity_and_its_deletion_refuses_the_first_session.py", "service": "sts"} {"check_id": "sts.concurrent-assume-role-session-tag-updates-do-not-leak-across-sessions", "deployments": [], "key": "sts/concurrent-assume-role-session-tag-updates-do-not-leak-across-sessions", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_concurrent_assume_role_session_tag_updates_do_not_leak_across_sessions.py", "service": "sts"} {"check_id": "sts.concurrent-get-federation-token-calls-produce-independent-policies", "deployments": [], "key": "sts/concurrent-get-federation-token-calls-produce-independent-policies", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:ListBuckets", "secretsmanager:ListSecrets", "sts:GetFederationToken"], "path": "behavioral/sts/check_concurrent_get_federation_token_calls_produce_independent_policies.py", "service": "sts"} {"check_id": "sts.concurrent-get-federation-token-calls-with-same-name-produce-independent-sessions", "deployments": [], "key": "sts/concurrent-get-federation-token-calls-with-same-name-produce-independent-sessions", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:AttachUserPolicy", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DetachUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedUserPolicies", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_concurrent_get_federation_token_calls_with_same_name_produce_independent_sessions.py", "service": "sts"} {"check_id": "sts.concurrent-role-trust-policy-update-and-assume-role-race-consistent", "deployments": [], "key": "sts/concurrent-role-trust-policy-update-and-assume-role-race-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:GetRole", "iam:UpdateAssumeRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_concurrent_role_trust_policy_update_and_assume_role_race_consistent.py", "service": "sts"} {"check_id": "sts.decode-authorization-message-invalid-rejected", "deployments": [], "key": "sts/decode-authorization-message-invalid-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "ssm:GetParameter", "sts:AssumeRole", "sts:DecodeAuthorizationMessage", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_decode_authorization_message_invalid_rejected.py", "service": "sts"} {"check_id": "sts.decode-authorization-message-rejects-realistic-fake-blob", "deployments": [], "key": "sts/decode-authorization-message-rejects-realistic-fake-blob", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:DecodeAuthorizationMessage"], "path": "behavioral/sts/check_decode_authorization_message_rejects_realistic_fake_blob.py", "service": "sts"} {"check_id": "sts.decode-authorization-message-round-trip", "deployments": [], "key": "sts/decode-authorization-message-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:AssumeRole", "sts:DecodeAuthorizationMessage", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_decode_authorization_message_round_trip.py", "service": "sts"} {"check_id": "sts.deleting-the-role-invalidates-credentials-already-issued-and-recreating-it-by-name-does-not-restore-them", "deployments": [], "key": "sts/deleting-the-role-invalidates-credentials-already-issued-and-recreating-it-by-name-does-not-restore-them", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject"], "path": "behavioral/sts/check_deleting_the_role_invalidates_credentials_already_issued_and_recreating_it_by_name_does_not_restore_them.py", "service": "sts"} {"check_id": "sts.e2e-access-key-lifecycle-independent-of-session-token-validity", "deployments": [], "key": "sts/e2e-access-key-lifecycle-independent-of-session-token-validity", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:ListAccessKeys", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_e2e_access_key_lifecycle_independent_of_session_token_validity.py", "service": "sts"} {"check_id": "sts.e2e-assume-role-oversized-session-policy-rejected", "deployments": [], "key": "sts/e2e-assume-role-oversized-session-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_e2e_assume_role_oversized_session_policy_rejected.py", "service": "sts"} {"check_id": "sts.e2e-assume-role-session-tag-propagates-to-resource-access", "deployments": [], "key": "sts/e2e-assume-role-session-tag-propagates-to-resource-access", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_e2e_assume_role_session_tag_propagates_to_resource_access.py", "service": "sts"} {"check_id": "sts.e2e-federation-token-policy-restricts-then-expires", "deployments": [], "key": "sts/e2e-federation-token-policy-restricts-then-expires", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListUsers", "iam:PutUserPolicy", "s3:ListBuckets", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_e2e_federation_token_policy_restricts_then_expires.py", "service": "sts"} {"check_id": "sts.e2e-federation-token-policy-scopes-down-then-expires", "deployments": [], "key": "sts/e2e-federation-token-policy-scopes-down-then-expires", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:ListBuckets", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_e2e_federation_token_policy_scopes_down_then_expires.py", "service": "sts"} {"check_id": "sts.e2e-role-lifecycle-assume-use-delete-revokes-future-assumption", "deployments": [], "key": "sts/e2e-role-lifecycle-assume-use-delete-revokes-future-assumption", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutObject", "sts:AssumeRole", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_e2e_role_lifecycle_assume_use_delete_revokes_future_assumption.py", "service": "sts"} {"check_id": "sts.e2e-session-tag-propagation-through-role-chain", "deployments": [], "key": "sts/e2e-session-tag-propagation-through-role-chain", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:ListObjectsV2", "s3:PutBucketPolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_e2e_session_tag_propagation_through_role_chain.py", "service": "sts"} {"check_id": "sts.e2e-temporary-credentials-expire-and-become-unusable", "deployments": [], "key": "sts/e2e-temporary-credentials-expire-and-become-unusable", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_e2e_temporary_credentials_expire_and_become_unusable.py", "service": "sts"} {"check_id": "sts.encoded-authorization-failure-message-decodes-to-the-denied-principal-and-action", "deployments": [], "key": "sts/encoded-authorization-failure-message-decodes-to-the-denied-principal-and-action", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["ec2:DescribeInstances", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "ssm:GetParameter", "sts:DecodeAuthorizationMessage", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_encoded_authorization_failure_message_decodes_to_the_denied_principal_and_action.py", "service": "sts"} {"check_id": "sts.federation-token-credentials-expiration-anchored-to-requested-duration", "deployments": [], "key": "sts/federation-token-credentials-expiration-anchored-to-requested-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_federation_token_credentials_expiration_anchored_to_requested_duration.py", "service": "sts"} {"check_id": "sts.federation-token-session-policy-scope-and-expiration-at-requested-duration", "deployments": [], "key": "sts/federation-token-session-policy-scope-and-expiration-at-requested-duration", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:ListBuckets", "sts:GetFederationToken"], "path": "behavioral/sts/check_federation_token_session_policy_scope_and_expiration_at_requested_duration.py", "service": "sts"} {"check_id": "sts.forged-credentials-rejected", "deployments": [], "key": "sts/forged-credentials-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_forged_credentials_rejected.py", "service": "sts"} {"check_id": "sts.get-access-key-info-malformed-key-rejected", "deployments": [], "key": "sts/get-access-key-info-malformed-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_access_key_info_malformed_key_rejected.py", "service": "sts"} {"check_id": "sts.get-access-key-info-persists-after-key-deletion", "deployments": [], "key": "sts/get-access-key-info-persists-after-key-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:GetUser", "iam:ListAccessKeys", "sts:GetAccessKeyInfo", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_access_key_info_persists_after_key_deletion.py", "service": "sts"} {"check_id": "sts.get-access-key-info-resolves-temporary-asia-key", "deployments": [], "key": "sts/get-access-key-info-resolves-temporary-asia-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetAccessKeyInfo", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_access_key_info_resolves_temporary_asia_key.py", "service": "sts"} {"check_id": "sts.get-access-key-info-returns-correct-account", "deployments": [], "key": "sts/get-access-key-info-returns-correct-account", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetAccessKeyInfo", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_access_key_info_returns_correct_account.py", "service": "sts"} {"check_id": "sts.get-access-key-info-round-trip-preserves-account-id", "deployments": [], "key": "sts/get-access-key-info-round-trip-preserves-account-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "sts:GetAccessKeyInfo", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_access_key_info_round_trip_preserves_account_id.py", "service": "sts"} {"check_id": "sts.get-caller-identity-account-id-matches-across-credential-types-workflow", "deployments": [], "key": "sts/get-caller-identity-account-id-matches-across-credential-types-workflow", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:AssumeRole", "sts:GetCallerIdentity", "sts:GetFederationToken", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_caller_identity_account_id_matches_across_credential_types_workflow.py", "service": "sts"} {"check_id": "sts.get-caller-identity-cannot-be-denied-by-policy", "deployments": [], "key": "sts/get-caller-identity-cannot-be-denied-by-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_caller_identity_cannot_be_denied_by_policy.py", "service": "sts"} {"check_id": "sts.get-caller-identity-is-stable-across-calls", "deployments": [], "key": "sts/get-caller-identity-is-stable-across-calls", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_caller_identity_is_stable_across_calls.py", "service": "sts"} {"check_id": "sts.get-caller-identity-reflects-assumed-role-session", "deployments": [], "key": "sts/get-caller-identity-reflects-assumed-role-session", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_caller_identity_reflects_assumed_role_session.py", "service": "sts"} {"check_id": "sts.get-caller-identity-reflects-iam-user", "deployments": [], "key": "sts/get-caller-identity-reflects-iam-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_caller_identity_reflects_iam_user.py", "service": "sts"} {"check_id": "sts.get-caller-identity-rejects-tampered-session-token", "deployments": [], "key": "sts/get-caller-identity-rejects-tampered-session-token", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_caller_identity_rejects_tampered_session_token.py", "service": "sts"} {"check_id": "sts.get-caller-identity-rejects-wrong-secret-key", "deployments": [], "key": "sts/get-caller-identity-rejects-wrong-secret-key", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_caller_identity_rejects_wrong_secret_key.py", "service": "sts"} {"check_id": "sts.get-caller-identity-unsigned-request-rejected", "deployments": [], "key": "sts/get-caller-identity-unsigned-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_caller_identity_unsigned_request_rejected.py", "service": "sts"} {"check_id": "sts.get-caller-identity-userid-matches-created-role-id", "deployments": [], "key": "sts/get-caller-identity-userid-matches-created-role-id", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_caller_identity_userid_matches_created_role_id.py", "service": "sts"} {"check_id": "sts.get-delegated-access-token-returns-usable-credentials", "deployments": [], "key": "sts/get-delegated-access-token-returns-usable-credentials", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["sts:GetCallerIdentity", "sts:GetDelegatedAccessToken"], "path": "behavioral/sts/check_get_delegated_access_token_returns_usable_credentials.py", "service": "sts"} {"check_id": "sts.get-delegated-access-token-without-required-permission-denied", "deployments": [], "key": "sts/get-delegated-access-token-without-required-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetDelegatedAccessToken"], "path": "behavioral/sts/check_get_delegated_access_token_without_required_permission_denied.py", "service": "sts"} {"check_id": "sts.get-federation-token-cannot-be-called-by-role-session", "deployments": [], "key": "sts/get-federation-token-cannot-be-called-by-role-session", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_federation_token_cannot_be_called_by_role_session.py", "service": "sts"} {"check_id": "sts.get-federation-token-cannot-call-iam-denied", "deployments": [], "key": "sts/get-federation-token-cannot-call-iam-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_cannot_call_iam_denied.py", "service": "sts"} {"check_id": "sts.get-federation-token-duration-reflected-in-expiration", "deployments": [], "key": "sts/get-federation-token-duration-reflected-in-expiration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_duration_reflected_in_expiration.py", "service": "sts"} {"check_id": "sts.get-federation-token-expiration-boundary-enforced", "deployments": [], "key": "sts/get-federation-token-expiration-boundary-enforced", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3:ListBuckets", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_expiration_boundary_enforced.py", "service": "sts"} {"check_id": "sts.get-federation-token-invalid-name-rejected", "deployments": [], "key": "sts/get-federation-token-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_invalid_name_rejected.py", "service": "sts"} {"check_id": "sts.get-federation-token-malformed-policy-rejected", "deployments": [], "key": "sts/get-federation-token-malformed-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_malformed_policy_rejected.py", "service": "sts"} {"check_id": "sts.get-federation-token-name-special-chars-preserved-in-arn", "deployments": [], "key": "sts/get-federation-token-name-special-chars-preserved-in-arn", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_name_special_chars_preserved_in_arn.py", "service": "sts"} {"check_id": "sts.get-federation-token-no-policy-grants-no-permissions", "deployments": [], "key": "sts/get-federation-token-no-policy-grants-no-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "s3:ListBuckets", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_no_policy_grants_no_permissions.py", "service": "sts"} {"check_id": "sts.get-federation-token-packed-policy-too-large-rejected", "deployments": [], "key": "sts/get-federation-token-packed-policy-too-large-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_packed_policy_too_large_rejected.py", "service": "sts"} {"check_id": "sts.get-federation-token-policy-caps-caller-permissions", "deployments": [], "key": "sts/get-federation-token-policy-caps-caller-permissions", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_policy_caps_caller_permissions.py", "service": "sts"} {"check_id": "sts.get-federation-token-policy-document-unicode-round-trip", "deployments": [], "key": "sts/get-federation-token-policy-document-unicode-round-trip", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectVersions", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_policy_document_unicode_round_trip.py", "service": "sts"} {"check_id": "sts.get-federation-token-policy-over-max-length-rejected", "deployments": [], "key": "sts/get-federation-token-policy-over-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_policy_over_max_length_rejected.py", "service": "sts"} {"check_id": "sts.get-federation-token-returns-federated-user", "deployments": [], "key": "sts/get-federation-token-returns-federated-user", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_returns_federated_user.py", "service": "sts"} {"check_id": "sts.get-federation-token-without-policy-denies-actions", "deployments": [], "key": "sts/get-federation-token-without-policy-denies-actions", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:ListBuckets", "sts:GetFederationToken"], "path": "behavioral/sts/check_get_federation_token_without_policy_denies_actions.py", "service": "sts"} {"check_id": "sts.get-session-token-cannot-call-other-sts-operations", "deployments": [], "key": "sts/get-session-token-cannot-call-other-sts-operations", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_session_token_cannot_call_other_sts_operations.py", "service": "sts"} {"check_id": "sts.get-session-token-credentials-invalid-after-expiration-boundary", "deployments": [], "key": "sts/get-session-token-credentials-invalid-after-expiration-boundary", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_session_token_credentials_invalid_after_expiration_boundary.py", "service": "sts"} {"check_id": "sts.get-session-token-default-duration-is-twelve-hours", "deployments": [], "key": "sts/get-session-token-default-duration-is-twelve-hours", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_session_token_default_duration_is_twelve_hours.py", "service": "sts"} {"check_id": "sts.get-session-token-duration-below-minimum-rejected", "deployments": [], "key": "sts/get-session-token-duration-below-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_get_session_token_duration_below_minimum_rejected.py", "service": "sts"} {"check_id": "sts.get-session-token-duration-reflected-in-expiration", "deployments": [], "key": "sts/get-session-token-duration-reflected-in-expiration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_session_token_duration_reflected_in_expiration.py", "service": "sts"} {"check_id": "sts.get-session-token-expiration-timestamp-precision-preserved", "deployments": [], "key": "sts/get-session-token-expiration-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_session_token_expiration_timestamp_precision_preserved.py", "service": "sts"} {"check_id": "sts.get-session-token-invalid-mfa-code-rejected", "deployments": [], "key": "sts/get-session-token-invalid-mfa-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_session_token_invalid_mfa_code_rejected.py", "service": "sts"} {"check_id": "sts.get-session-token-rejected-for-assumed-role-session", "deployments": [], "key": "sts/get-session-token-rejected-for-assumed-role-session", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_session_token_rejected_for_assumed_role_session.py", "service": "sts"} {"check_id": "sts.get-session-token-returns-usable-credentials", "deployments": [], "key": "sts/get-session-token-returns-usable-credentials", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_get_session_token_returns_usable_credentials.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-duration-escalation-rejected", "deployments": [], "key": "sts/get-web-identity-token-duration-escalation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "iam:GetRole", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_duration_escalation_rejected.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-duration-exceeds-max-rejected", "deployments": [], "key": "sts/get-web-identity-token-duration-exceeds-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_duration_exceeds_max_rejected.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-outbound-federation-disabled-blocked", "deployments": [], "key": "sts/get-web-identity-token-outbound-federation-disabled-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_outbound_federation_disabled_blocked.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-outbound-federation-disabled-rejected", "deployments": [], "key": "sts/get-web-identity-token-outbound-federation-disabled-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_outbound_federation_disabled_rejected.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-payload-size-exceeded-rejected", "deployments": [], "key": "sts/get-web-identity-token-payload-size-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_payload_size_exceeded_rejected.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-rejected-by-assume-role-with-web-identity", "deployments": [], "key": "sts/get-web-identity-token-rejected-by-assume-role-with-web-identity", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateOpenIDConnectProvider", "iam:CreateRole", "iam:DeleteOpenIDConnectProvider", "iam:DeleteRole", "iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:AssumeRole", "sts:AssumeRoleWithWebIdentity", "sts:GetCallerIdentity", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_rejected_by_assume_role_with_web_identity.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-returns-valid-jwt-structure", "deployments": [], "key": "sts/get-web-identity-token-returns-valid-jwt-structure", "labels": ["axis:happy-path", "dp:endpoint", "plane:control", "plane:data"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetCallerIdentity", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_returns_valid_jwt_structure.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-session-duration-escalation-rejected", "deployments": [], "key": "sts/get-web-identity-token-session-duration-escalation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_session_duration_escalation_rejected.py", "service": "sts"} {"check_id": "sts.get-web-identity-token-ttl-matches-requested-duration", "deployments": [], "key": "sts/get-web-identity-token-ttl-matches-requested-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:DisableOutboundWebIdentityFederation", "iam:EnableOutboundWebIdentityFederation", "iam:GetOutboundWebIdentityFederationInfo", "sts:GetWebIdentityToken"], "path": "behavioral/sts/check_get_web_identity_token_ttl_matches_requested_duration.py", "service": "sts"} {"check_id": "sts.in-flight-session-denied-after-a-revoke-older-sessions-policy-is-attached-to-the-role", "deployments": [], "key": "sts/in-flight-session-denied-after-a-revoke-older-sessions-policy-is-attached-to-the-role", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_in_flight_session_denied_after_a_revoke_older_sessions_policy_is_attached_to_the_role.py", "service": "sts"} {"check_id": "sts.managed-policy-arn-and-inline-session-policy-intersect-to-the-narrower-of-the-two", "deployments": [], "key": "sts/managed-policy-arn-and-inline-session-policy-intersect-to-the-narrower-of-the-two", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_managed_policy_arn_and_inline_session_policy_intersect_to_the_narrower_of_the_two.py", "service": "sts"} {"check_id": "sts.mfa-conditioned-role-assumable-only-with-a-real-virtual-mfa-device-token", "deployments": [], "key": "sts/mfa-conditioned-role-assumable-only-with-a-real-virtual-mfa-device-token", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:CreateVirtualMFADevice", "iam:DeactivateMFADevice", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:DeleteVirtualMFADevice", "iam:DetachRolePolicy", "iam:DetachUserPolicy", "iam:EnableMFADevice", "iam:GetRole", "iam:GetUser", "iam:ListAccessKeys", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies", "iam:ListMFADevices", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutRolePolicy", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_mfa_conditioned_role_assumable_only_with_a_real_virtual_mfa_device_token.py", "service": "sts"} {"check_id": "sts.permissions-boundary-denies-an-action-the-roles-own-identity-policy-allows", "deployments": [], "key": "sts/permissions-boundary-denies-an-action-the-roles-own-identity-policy-allows", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreatePolicy", "iam:CreateRole", "iam:DeletePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_permissions_boundary_denies_an_action_the_roles_own_identity_policy_allows.py", "service": "sts"} {"check_id": "sts.presigned-get-caller-identity-url-is-authenticated-by-query-string-sigv4", "deployments": [], "key": "sts/presigned-get-caller-identity-url-is-authenticated-by-query-string-sigv4", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["sts:GetCallerIdentity"], "path": "behavioral/sts/check_presigned_get_caller_identity_url_is_authenticated_by_query_string_sigv4.py", "service": "sts"} {"check_id": "sts.principal-arn-condition-resolves-to-the-role-arn-not-the-session-arn", "deployments": [], "key": "sts/principal-arn-condition-resolves-to-the-role-arn-not-the-session-arn", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_principal_arn_condition_resolves_to_the_role_arn_not_the_session_arn.py", "service": "sts"} {"check_id": "sts.principal-type-condition-distinguishes-an-assumed-role-from-a-federated-user", "deployments": [], "key": "sts/principal-type-condition-distinguishes-an-assumed-role-from-a-federated-user", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateRole", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetRole", "iam:GetUser", "iam:ListAccessKeys", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:PutRolePolicy", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_principal_type_condition_distinguishes_an_assumed_role_from_a_federated_user.py", "service": "sts"} {"check_id": "sts.role-chain-with-a-conflicting-source-identity-denied-and-the-matching-one-permitted", "deployments": [], "key": "sts/role-chain-with-a-conflicting-source-identity-denied-and-the-matching-one-permitted", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_role_chain_with_a_conflicting_source_identity_denied_and_the_matching_one_permitted.py", "service": "sts"} {"check_id": "sts.server-side-assumed-role-arn-includes-original-session-name-through-chain", "deployments": [], "key": "sts/server-side-assumed-role-arn-includes-original-session-name-through-chain", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_server_side_assumed_role_arn_includes_original_session_name_through_chain.py", "service": "sts"} {"check_id": "sts.server-side-source-identity-missing-permission-rejected", "deployments": [], "key": "sts/server-side-source-identity-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_server_side_source_identity_missing_permission_rejected.py", "service": "sts"} {"check_id": "sts.server-side-source-identity-persists-through-role-chain", "deployments": [], "key": "sts/server-side-source-identity-persists-through-role-chain", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_server_side_source_identity_persists_through_role_chain.py", "service": "sts"} {"check_id": "sts.session-policy-region-condition-rejected-in-one-region-and-permitted-in-another", "deployments": [], "key": "sts/session-policy-region-condition-rejected-in-one-region-and-permitted-in-another", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketLocation", "s3:HeadBucket", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_session_policy_region_condition_rejected_in_one_region_and_permitted_in_another.py", "service": "sts"} {"check_id": "sts.session-token-credentials-expiration-anchored-to-requested-duration", "deployments": [], "key": "sts/session-token-credentials-expiration-anchored-to-requested-duration", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "sts:GetCallerIdentity", "sts:GetSessionToken"], "path": "behavioral/sts/check_session_token_credentials_expiration_anchored_to_requested_duration.py", "service": "sts"} {"check_id": "sts.tightening-the-trust-policy-does-not-invalidate-an-already-vended-session", "deployments": [], "key": "sts/tightening-the-trust-policy-does-not-invalidate-an-already-vended-session", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_tightening_the_trust_policy_does_not_invalidate_an_already_vended_session.py", "service": "sts"} {"check_id": "sts.token-issue-time-is-present-only-for-the-temporary-half-of-one-identity", "deployments": [], "key": "sts/token-issue-time-is-present-only-for-the-temporary-half-of-one-identity", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUser", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_token_issue_time_is_present_only_for_the_temporary_half_of_one_identity.py", "service": "sts"} {"check_id": "sts.two-differently-scoped-sessions-used-concurrently-keep-their-own-authorization-outcomes", "deployments": [], "key": "sts/two-differently-scoped-sessions-used-concurrently-keep-their-own-authorization-outcomes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_two_differently_scoped_sessions_used_concurrently_keep_their_own_authorization_outcomes.py", "service": "sts"} {"check_id": "sts.userid-condition-matches-the-role-id-and-session-name-composite", "deployments": [], "key": "sts/userid-condition-matches-the-role-id-and-session-name-composite", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:ListRolePolicies", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:HeadBucket", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "sts:GetCallerIdentity"], "path": "behavioral/sts/check_userid_condition_matches_the_role_id_and_session_name_composite.py", "service": "sts"} {"check_id": "supplychain.bom-import-job-fails-without-s3-access", "deployments": [], "key": "supplychain/bom-import-job-fails-without-s3-access", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:CreateBillOfMaterialsImportJob", "supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetBillOfMaterialsImportJob", "supplychain:GetInstance"], "path": "behavioral/supplychain/check_bom_import_job_fails_without_s3_access.py", "service": "supplychain"} {"check_id": "supplychain.concurrent-create-namespace-same-name-single-winner", "deployments": [], "key": "supplychain/concurrent-create-namespace-same-name-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataLakeNamespace", "supplychain:GetInstance"], "path": "behavioral/supplychain/check_concurrent_create_namespace_same_name_single_winner.py", "service": "supplychain"} {"check_id": "supplychain.create-dataset-duplicate-name-conflict-then-new-name-succeeds", "deployments": [], "key": "supplychain/create-dataset-duplicate-name-conflict-then-new-name-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:CreateDataLakeDataset", "supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataLakeDataset", "supplychain:GetInstance"], "path": "behavioral/supplychain/check_create_dataset_duplicate_name_conflict_then_new_name_succeeds.py", "service": "supplychain"} {"check_id": "supplychain.create-flow-duplicate-name-conflict-rejected", "deployments": [], "key": "supplychain/create-flow-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "supplychain:CreateDataIntegrationFlow", "supplychain:CreateDataLakeDataset", "supplychain:CreateInstance", "supplychain:DeleteDataIntegrationFlow", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteInstance", "supplychain:GetDataIntegrationFlow", "supplychain:GetInstance"], "path": "behavioral/supplychain/check_create_flow_duplicate_name_conflict_rejected.py", "service": "supplychain"} {"check_id": "supplychain.create-namespace-name-length-exceeded-rejected", "deployments": [], "key": "supplychain/create-namespace-name-length-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataLakeNamespace", "supplychain:GetInstance", "supplychain:ListDataLakeNamespaces"], "path": "behavioral/supplychain/check_create_namespace_name_length_exceeded_rejected.py", "service": "supplychain"} {"check_id": "supplychain.dataset-create-get-list-roundtrip", "deployments": [], "key": "supplychain/dataset-create-get-list-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["supplychain:CreateDataLakeDataset", "supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataLakeDataset", "supplychain:GetInstance", "supplychain:ListDataLakeDatasets"], "path": "behavioral/supplychain/check_dataset_create_get_list_roundtrip.py", "service": "supplychain"} {"check_id": "supplychain.dataset-update-schema-description-persists", "deployments": [], "key": "supplychain/dataset-update-schema-description-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["supplychain:CreateDataLakeDataset", "supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataLakeDataset", "supplychain:GetInstance", "supplychain:UpdateDataLakeDataset"], "path": "behavioral/supplychain/check_dataset_update_schema_description_persists.py", "service": "supplychain"} {"check_id": "supplychain.delete-namespace-with-dataset-conflict-then-succeeds", "deployments": [], "key": "supplychain/delete-namespace-with-dataset-conflict-then-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:CreateDataLakeDataset", "supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataLakeNamespace", "supplychain:GetInstance"], "path": "behavioral/supplychain/check_delete_namespace_with_dataset_conflict_then_succeeds.py", "service": "supplychain"} {"check_id": "supplychain.flow-create-get-roundtrip-with-config", "deployments": [], "key": "supplychain/flow-create-get-roundtrip-with-config", "labels": ["axis:happy-path", "plane:control"], "operations": ["supplychain:CreateDataIntegrationFlow", "supplychain:CreateDataLakeDataset", "supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataIntegrationFlow", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataIntegrationFlow", "supplychain:GetInstance", "supplychain:ListDataIntegrationFlows"], "path": "behavioral/supplychain/check_flow_create_get_roundtrip_with_config.py", "service": "supplychain"} {"check_id": "supplychain.flow-update-transformation-persists", "deployments": [], "key": "supplychain/flow-update-transformation-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["supplychain:CreateDataIntegrationFlow", "supplychain:CreateDataLakeDataset", "supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataIntegrationFlow", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataIntegrationFlow", "supplychain:GetInstance", "supplychain:UpdateDataIntegrationFlow"], "path": "behavioral/supplychain/check_flow_update_transformation_persists.py", "service": "supplychain"} {"check_id": "supplychain.get-flow-execution-nonexistent-not-found", "deployments": [], "key": "supplychain/get-flow-execution-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:GetDataIntegrationFlowExecution"], "path": "behavioral/supplychain/check_get_flow_execution_nonexistent_not_found.py", "service": "supplychain"} {"check_id": "supplychain.get-instance-nonexistent-not-found", "deployments": [], "key": "supplychain/get-instance-nonexistent-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetInstance"], "path": "behavioral/supplychain/check_get_instance_nonexistent_not_found.py", "service": "supplychain"} {"check_id": "supplychain.instance-delete-lifecycle-to-deleted", "deployments": [], "key": "supplychain/instance-delete-lifecycle-to-deleted", "labels": ["axis:happy-path", "plane:control"], "operations": ["supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetInstance"], "path": "behavioral/supplychain/check_instance_delete_lifecycle_to_deleted.py", "service": "supplychain"} {"check_id": "supplychain.instance-lifecycle-create-to-active", "deployments": [], "key": "supplychain/instance-lifecycle-create-to-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetInstance"], "path": "behavioral/supplychain/check_instance_lifecycle_create_to_active.py", "service": "supplychain"} {"check_id": "supplychain.instance-update-persists-and-bumps-version", "deployments": [], "key": "supplychain/instance-update-persists-and-bumps-version", "labels": ["axis:happy-path", "plane:control"], "operations": ["supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetInstance", "supplychain:UpdateInstance"], "path": "behavioral/supplychain/check_instance_update_persists_and_bumps_version.py", "service": "supplychain"} {"check_id": "supplychain.list-instances-maxresults-out-of-range-rejected", "deployments": [], "key": "supplychain/list-instances-maxresults-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:ListInstances"], "path": "behavioral/supplychain/check_list_instances_maxresults_out_of_range_rejected.py", "service": "supplychain"} {"check_id": "supplychain.namespace-create-get-list-roundtrip", "deployments": [], "key": "supplychain/namespace-create-get-list-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataLakeNamespace", "supplychain:GetInstance", "supplychain:ListDataLakeNamespaces", "supplychain:UpdateDataLakeNamespace"], "path": "behavioral/supplychain/check_namespace_create_get_list_roundtrip.py", "service": "supplychain"} {"check_id": "supplychain.send-data-integration-event-dataset-target-succeeds", "deployments": [], "key": "supplychain/send-data-integration-event-dataset-target-succeeds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["supplychain:CreateDataLakeDataset", "supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataIntegrationEvent", "supplychain:GetInstance", "supplychain:ListDataIntegrationEvents", "supplychain:SendDataIntegrationEvent"], "path": "behavioral/supplychain/check_send_data_integration_event_dataset_target_succeeds.py", "service": "supplychain"} {"check_id": "supplychain.send-event-dataset-target-missing-ref-not-found", "deployments": [], "key": "supplychain/send-event-dataset-target-missing-ref-not-found", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sts:GetCallerIdentity", "supplychain:CreateDataLakeDataset", "supplychain:CreateDataLakeNamespace", "supplychain:CreateInstance", "supplychain:DeleteDataLakeDataset", "supplychain:DeleteDataLakeNamespace", "supplychain:DeleteInstance", "supplychain:GetDataIntegrationEvent", "supplychain:GetInstance", "supplychain:ListDataIntegrationEvents", "supplychain:SendDataIntegrationEvent"], "path": "behavioral/supplychain/check_send_event_dataset_target_missing_ref_not_found.py", "service": "supplychain"} {"check_id": "supplychain.send-event-payload-too-large-rejected", "deployments": [], "key": "supplychain/send-event-payload-too-large-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetDataIntegrationEvent", "supplychain:GetInstance", "supplychain:ListDataIntegrationEvents", "supplychain:SendDataIntegrationEvent"], "path": "behavioral/supplychain/check_send_event_payload_too_large_rejected.py", "service": "supplychain"} {"check_id": "supplychain.tag-resource-missing-permission-rejected", "deployments": [], "key": "supplychain/tag-resource-missing-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity", "supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetInstance", "supplychain:ListTagsForResource", "supplychain:TagResource"], "path": "behavioral/supplychain/check_tag_resource_missing_permission_rejected.py", "service": "supplychain"} {"check_id": "supplychain.tag-untag-resource-roundtrip", "deployments": [], "key": "supplychain/tag-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetInstance", "supplychain:ListTagsForResource", "supplychain:TagResource", "supplychain:UntagResource"], "path": "behavioral/supplychain/check_tag_untag_resource_roundtrip.py", "service": "supplychain"} {"check_id": "supplychain.update-instance-during-deletion-rejected", "deployments": [], "key": "supplychain/update-instance-during-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["supplychain:CreateInstance", "supplychain:DeleteInstance", "supplychain:GetInstance", "supplychain:UpdateInstance"], "path": "behavioral/supplychain/check_update_instance_during_deletion_rejected.py", "service": "supplychain"} {"check_id": "support-app.account-alias-concurrent-puts-last-writer-consistent", "deployments": [], "key": "support-app/account-alias-concurrent-puts-last-writer-consistent", "labels": ["axis:happy-path", "plane:control"], "operations": ["support-app:DeleteAccountAlias", "support-app:GetAccountAlias", "support-app:PutAccountAlias"], "path": "behavioral/support-app/check_account_alias_concurrent_puts_last_writer_consistent.py", "service": "support-app"} {"check_id": "support-app.account-alias-delete-clears-state", "deployments": [], "key": "support-app/account-alias-delete-clears-state", "labels": ["axis:happy-path", "plane:control"], "operations": ["support-app:DeleteAccountAlias", "support-app:GetAccountAlias", "support-app:PutAccountAlias"], "path": "behavioral/support-app/check_account_alias_delete_clears_state.py", "service": "support-app"} {"check_id": "support-app.account-alias-delete-without-existing-not-found", "deployments": [], "key": "support-app/account-alias-delete-without-existing-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["support-app:DeleteAccountAlias", "support-app:GetAccountAlias", "support-app:PutAccountAlias"], "path": "behavioral/support-app/check_account_alias_delete_without_existing_not_found.py", "service": "support-app"} {"check_id": "support-app.account-alias-invalid-pattern-rejected", "deployments": [], "key": "support-app/account-alias-invalid-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["support-app:DeleteAccountAlias", "support-app:GetAccountAlias", "support-app:PutAccountAlias"], "path": "behavioral/support-app/check_account_alias_invalid_pattern_rejected.py", "service": "support-app"} {"check_id": "support-app.account-alias-length-exceeded-invalid", "deployments": [], "key": "support-app/account-alias-length-exceeded-invalid", "labels": ["axis:rejection", "plane:control"], "operations": ["support-app:DeleteAccountAlias", "support-app:GetAccountAlias", "support-app:PutAccountAlias"], "path": "behavioral/support-app/check_account_alias_length_exceeded_invalid.py", "service": "support-app"} {"check_id": "support-app.account-alias-put-get-roundtrip", "deployments": [], "key": "support-app/account-alias-put-get-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["support-app:DeleteAccountAlias", "support-app:GetAccountAlias", "support-app:PutAccountAlias"], "path": "behavioral/support-app/check_account_alias_put_get_roundtrip.py", "service": "support-app"} {"check_id": "support-app.account-alias-upsert-overwrites-previous-value", "deployments": [], "key": "support-app/account-alias-upsert-overwrites-previous-value", "labels": ["axis:happy-path", "plane:control"], "operations": ["support-app:DeleteAccountAlias", "support-app:GetAccountAlias", "support-app:PutAccountAlias"], "path": "behavioral/support-app/check_account_alias_upsert_overwrites_previous_value.py", "service": "support-app"} {"check_id": "support-app.create-channel-config-channel-id-whitespace-invalid", "deployments": [], "key": "support-app/create-channel-config-channel-id-whitespace-invalid", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "support-app:CreateSlackChannelConfiguration", "support-app:ListSlackChannelConfigurations", "support-app:ListSlackWorkspaceConfigurations"], "path": "behavioral/support-app/check_create_channel_config_channel_id_whitespace_invalid.py", "service": "support-app"} {"check_id": "support-app.create-channel-config-malformed-role-arn-rejected", "deployments": [], "key": "support-app/create-channel-config-malformed-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "support-app:CreateSlackChannelConfiguration", "support-app:ListSlackChannelConfigurations", "support-app:ListSlackWorkspaceConfigurations"], "path": "behavioral/support-app/check_create_channel_config_malformed_role_arn_rejected.py", "service": "support-app"} {"check_id": "support-app.create-channel-config-severity-high-without-flags-rejected", "deployments": [], "key": "support-app/create-channel-config-severity-high-without-flags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "support-app:CreateSlackChannelConfiguration", "support-app:DeleteSlackChannelConfiguration", "support-app:ListSlackChannelConfigurations"], "path": "behavioral/support-app/check_create_channel_config_severity_high_without_flags_rejected.py", "service": "support-app"} {"check_id": "support-app.create-channel-config-severity-none-flag-mismatch-invalid", "deployments": [], "key": "support-app/create-channel-config-severity-none-flag-mismatch-invalid", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "support-app:CreateSlackChannelConfiguration", "support-app:DeleteSlackChannelConfiguration", "support-app:ListSlackChannelConfigurations", "support-app:ListSlackWorkspaceConfigurations"], "path": "behavioral/support-app/check_create_channel_config_severity_none_flag_mismatch_invalid.py", "service": "support-app"} {"check_id": "support-app.create-slack-channel-configuration-no-workspace-rejected", "deployments": [], "key": "support-app/create-slack-channel-configuration-no-workspace-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "support-app:CreateSlackChannelConfiguration", "support-app:DeleteSlackChannelConfiguration", "support-app:ListSlackChannelConfigurations", "support-app:ListSlackWorkspaceConfigurations"], "path": "behavioral/support-app/check_create_slack_channel_configuration_no_workspace_rejected.py", "service": "support-app"} {"check_id": "support-app.delete-nonexistent-slack-workspace-configuration-not-found", "deployments": [], "key": "support-app/delete-nonexistent-slack-workspace-configuration-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["support-app:DeleteSlackWorkspaceConfiguration", "support-app:ListSlackWorkspaceConfigurations"], "path": "behavioral/support-app/check_delete_nonexistent_slack_workspace_configuration_not_found.py", "service": "support-app"} {"check_id": "support-app.delete-slack-channel-configuration-no-workspace-not-found", "deployments": [], "key": "support-app/delete-slack-channel-configuration-no-workspace-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["support-app:DeleteSlackChannelConfiguration", "support-app:ListSlackChannelConfigurations", "support-app:ListSlackWorkspaceConfigurations"], "path": "behavioral/support-app/check_delete_slack_channel_configuration_no_workspace_not_found.py", "service": "support-app"} {"check_id": "support-app.delete-slack-workspace-configuration-malformed-team-id-invalid", "deployments": [], "key": "support-app/delete-slack-workspace-configuration-malformed-team-id-invalid", "labels": ["axis:rejection", "plane:control"], "operations": ["support-app:DeleteSlackWorkspaceConfiguration"], "path": "behavioral/support-app/check_delete_slack_workspace_configuration_malformed_team_id_invalid.py", "service": "support-app"} {"check_id": "support-app.get-account-alias-access-denied-for-restricted-role", "deployments": [], "key": "support-app/get-account-alias-access-denied-for-restricted-role", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "support-app:GetAccountAlias"], "path": "behavioral/support-app/check_get_account_alias_access_denied_for_restricted_role.py", "service": "support-app"} {"check_id": "support-app.list-slack-channel-configurations-well-formed", "deployments": [], "key": "support-app/list-slack-channel-configurations-well-formed", "labels": ["axis:happy-path", "plane:control"], "operations": ["support-app:ListSlackChannelConfigurations"], "path": "behavioral/support-app/check_list_slack_channel_configurations_well_formed.py", "service": "support-app"} {"check_id": "support-app.list-slack-workspace-configurations-well-formed", "deployments": [], "key": "support-app/list-slack-workspace-configurations-well-formed", "labels": ["axis:happy-path", "plane:control"], "operations": ["support-app:ListSlackWorkspaceConfigurations"], "path": "behavioral/support-app/check_list_slack_workspace_configurations_well_formed.py", "service": "support-app"} {"check_id": "support-app.register-slack-workspace-malformed-team-id-invalid", "deployments": [], "key": "support-app/register-slack-workspace-malformed-team-id-invalid", "labels": ["axis:rejection", "plane:control"], "operations": ["support-app:RegisterSlackWorkspaceForOrganization"], "path": "behavioral/support-app/check_register_slack_workspace_malformed_team_id_invalid.py", "service": "support-app"} {"check_id": "support-app.update-slack-channel-configuration-no-workspace-not-found", "deployments": [], "key": "support-app/update-slack-channel-configuration-no-workspace-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["support-app:ListSlackChannelConfigurations", "support-app:ListSlackWorkspaceConfigurations", "support-app:UpdateSlackChannelConfiguration"], "path": "behavioral/support-app/check_update_slack_channel_configuration_no_workspace_not_found.py", "service": "support-app"} {"check_id": "sustainability.carbon-dimension-values-echo-requested-dimension", "deployments": [], "key": "sustainability/carbon-dimension-values-echo-requested-dimension", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_carbon_dimension_values_echo_requested_dimension.py", "service": "sustainability"} {"check_id": "sustainability.carbon-dimension-values-invalid-dimension-enum-rejected", "deployments": [], "key": "sustainability/carbon-dimension-values-invalid-dimension-enum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_carbon_dimension_values_invalid_dimension_enum_rejected.py", "service": "sustainability"} {"check_id": "sustainability.carbon-dimension-values-pagination-respects-max-results", "deployments": [], "key": "sustainability/carbon-dimension-values-pagination-respects-max-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_carbon_dimension_values_pagination_respects_max_results.py", "service": "sustainability"} {"check_id": "sustainability.carbon-dimension-values-subset-of-groupby-results", "deployments": [], "key": "sustainability/carbon-dimension-values-subset-of-groupby-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions", "sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_carbon_dimension_values_subset_of_groupby_results.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-concurrent-pagination-walks-independent", "deployments": [], "key": "sustainability/carbon-emissions-concurrent-pagination-walks-independent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_concurrent_pagination_walks_independent.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-dimension-discovery-then-filter-e2e-workflow", "deployments": [], "key": "sustainability/carbon-emissions-dimension-discovery-then-filter-e2e-workflow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions", "sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_carbon_emissions_dimension_discovery_then_filter_e2e_workflow.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-group-by-multiple-dimensions", "deployments": [], "key": "sustainability/carbon-emissions-group-by-multiple-dimensions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_group_by_multiple_dimensions.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-group-by-service-key-present", "deployments": [], "key": "sustainability/carbon-emissions-group-by-service-key-present", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_group_by_service_key_present.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-group-by-usage-account-id-matches-caller", "deployments": [], "key": "sustainability/carbon-emissions-group-by-usage-account-id-matches-caller", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sts:GetCallerIdentity", "sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_group_by_usage_account_id_matches_caller.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-groupby-region-key-present", "deployments": [], "key": "sustainability/carbon-emissions-groupby-region-key-present", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_groupby_region_key_present.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-invalid-emissions-type-rejected", "deployments": [], "key": "sustainability/carbon-emissions-invalid-emissions-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_invalid_emissions_type_rejected.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-invalid-groupby-enum-rejected", "deployments": [], "key": "sustainability/carbon-emissions-invalid-groupby-enum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_invalid_groupby_enum_rejected.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-max-results-cap-respected-and-out-of-range-rejected", "deployments": [], "key": "sustainability/carbon-emissions-max-results-cap-respected-and-out-of-range-rejected", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_max_results_cap_respected_and_out_of_range_rejected.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-missing-permission-access-denied-rejected", "deployments": [], "key": "sustainability/carbon-emissions-missing-permission-access-denied-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity", "sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_missing_permission_access_denied_rejected.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-pagination-no-duplicate-across-pages", "deployments": [], "key": "sustainability/carbon-emissions-pagination-no-duplicate-across-pages", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_pagination_no_duplicate_across_pages.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-pagination-respects-max-results", "deployments": [], "key": "sustainability/carbon-emissions-pagination-respects-max-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_pagination_respects_max_results.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-repeated-query-deterministic", "deployments": [], "key": "sustainability/carbon-emissions-repeated-query-deterministic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_repeated_query_deterministic.py", "service": "sustainability"} {"check_id": "sustainability.carbon-emissions-response-shape-and-time-period-bounds", "deployments": [], "key": "sustainability/carbon-emissions-response-shape-and-time-period-bounds", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_emissions_response_shape_and_time_period_bounds.py", "service": "sustainability"} {"check_id": "sustainability.carbon-time-period-end-before-start-rejected", "deployments": [], "key": "sustainability/carbon-time-period-end-before-start-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_carbon_time_period_end_before_start_rejected.py", "service": "sustainability"} {"check_id": "sustainability.concurrent-identical-queries-consistent", "deployments": [], "key": "sustainability/concurrent-identical-queries-consistent", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_concurrent_identical_queries_consistent.py", "service": "sustainability"} {"check_id": "sustainability.dimension-values-echo-requested-dimension", "deployments": [], "key": "sustainability/dimension-values-echo-requested-dimension", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_dimension_values_echo_requested_dimension.py", "service": "sustainability"} {"check_id": "sustainability.dimension-values-end-before-start-rejected", "deployments": [], "key": "sustainability/dimension-values-end-before-start-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_dimension_values_end_before_start_rejected.py", "service": "sustainability"} {"check_id": "sustainability.dimension-values-invalid-dimension-enum-rejected", "deployments": [], "key": "sustainability/dimension-values-invalid-dimension-enum-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_dimension_values_invalid_dimension_enum_rejected.py", "service": "sustainability"} {"check_id": "sustainability.dimension-values-multi-dimension-request", "deployments": [], "key": "sustainability/dimension-values-multi-dimension-request", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_dimension_values_multi_dimension_request.py", "service": "sustainability"} {"check_id": "sustainability.dimension-values-pagination-consistency", "deployments": [], "key": "sustainability/dimension-values-pagination-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedCarbonEmissionsDimensionValues"], "path": "behavioral/sustainability/check_dimension_values_pagination_consistency.py", "service": "sustainability"} {"check_id": "sustainability.explicit-deny-policy-overrides-allow-rejected", "deployments": [], "key": "sustainability/explicit-deny-policy-overrides-allow-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:AssumeRole", "sts:GetCallerIdentity", "sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_explicit_deny_policy_overrides_allow_rejected.py", "service": "sustainability"} {"check_id": "sustainability.get-carbon-emissions-denied-without-permission-rejected", "deployments": [], "key": "sustainability/get-carbon-emissions-denied-without-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "sts:GetCallerIdentity", "sustainability:GetEstimatedCarbonEmissions"], "path": "behavioral/sustainability/check_get_carbon_emissions_denied_without_permission_rejected.py", "service": "sustainability"} {"check_id": "sustainability.water-allocation-deterministic-repeat-call", "deployments": [], "key": "sustainability/water-allocation-deterministic-repeat-call", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedWaterAllocation"], "path": "behavioral/sustainability/check_water_allocation_deterministic_repeat_call.py", "service": "sustainability"} {"check_id": "sustainability.water-allocation-invalid-allocation-type-rejected", "deployments": [], "key": "sustainability/water-allocation-invalid-allocation-type-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedWaterAllocation"], "path": "behavioral/sustainability/check_water_allocation_invalid_allocation_type_rejected.py", "service": "sustainability"} {"check_id": "sustainability.water-allocation-pagination-consistency", "deployments": [], "key": "sustainability/water-allocation-pagination-consistency", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedWaterAllocation"], "path": "behavioral/sustainability/check_water_allocation_pagination_consistency.py", "service": "sustainability"} {"check_id": "sustainability.water-dimension-values-subset-of-groupby-results", "deployments": [], "key": "sustainability/water-dimension-values-subset-of-groupby-results", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedWaterAllocation", "sustainability:GetEstimatedWaterAllocationDimensionValues"], "path": "behavioral/sustainability/check_water_dimension_values_subset_of_groupby_results.py", "service": "sustainability"} {"check_id": "sustainability.water-unsupported-monthly-granularity-rejected", "deployments": [], "key": "sustainability/water-unsupported-monthly-granularity-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["sustainability:GetEstimatedWaterAllocation"], "path": "behavioral/sustainability/check_water_unsupported_monthly_granularity_rejected.py", "service": "sustainability"} {"check_id": "swf.activity-heartbeat-timeout-triggers-timeout-event", "deployments": [], "key": "swf/activity-heartbeat-timeout-triggers-timeout-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_activity_heartbeat_timeout_triggers_timeout_event.py", "service": "swf"} {"check_id": "swf.activity-result-binary-blob-round-trip", "deployments": [], "key": "swf/activity-result-binary-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_activity_result_binary_blob_round_trip.py", "service": "swf"} {"check_id": "swf.activity-result-payload-round-trip", "deployments": [], "key": "swf/activity-result-payload-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_activity_result_payload_round_trip.py", "service": "swf"} {"check_id": "swf.activity-task-double-completion-rejected", "deployments": [], "key": "swf/activity-task-double-completion-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_activity_task_double_completion_rejected.py", "service": "swf"} {"check_id": "swf.activity-task-heartbeat-timeout-reaping", "deployments": [], "key": "swf/activity-task-heartbeat-timeout-reaping", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_activity_task_heartbeat_timeout_reaping.py", "service": "swf"} {"check_id": "swf.cancel-request-triggers-server-emitted-event", "deployments": [], "key": "swf/cancel-request-triggers-server-emitted-event", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RequestCancelWorkflowExecution", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_cancel_request_triggers_server_emitted_event.py", "service": "swf"} {"check_id": "swf.child-policy-terminate-enforced-on-parent-termination", "deployments": [], "key": "swf/child-policy-terminate-enforced-on-parent-termination", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_child_policy_terminate_enforced_on_parent_termination.py", "service": "swf"} {"check_id": "swf.concurrent-activity-pollers-no-duplicate-delivery", "deployments": [], "key": "swf/concurrent-activity-pollers-no-duplicate-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["swf:CountPendingActivityTasks", "swf:DescribeDomain", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_concurrent_activity_pollers_no_duplicate_delivery.py", "service": "swf"} {"check_id": "swf.concurrent-activity-task-terminal-response-race", "deployments": [], "key": "swf/concurrent-activity-task-terminal-response-race", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondActivityTaskFailed", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_concurrent_activity_task_terminal_response_race.py", "service": "swf"} {"check_id": "swf.concurrent-decision-pollers-no-duplicate-delivery", "deployments": [], "key": "swf/concurrent-decision-pollers-no-duplicate-delivery", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["swf:CountPendingDecisionTasks", "swf:DescribeDomain", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_concurrent_decision_pollers_no_duplicate_delivery.py", "service": "swf"} {"check_id": "swf.concurrent-decision-task-completion-single-winner", "deployments": [], "key": "swf/concurrent-decision-task-completion-single-winner", "labels": ["axis:rejection", "dp:api", "plane:data", "timing:real-time"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_concurrent_decision_task_completion_single_winner.py", "service": "swf"} {"check_id": "swf.count-open-executions-unknown-domain-returns-zero", "deployments": [], "key": "swf/count-open-executions-unknown-domain-returns-zero", "labels": ["axis:happy-path", "plane:control"], "operations": ["swf:CountOpenWorkflowExecutions", "swf:DeprecateDomain", "swf:RegisterDomain"], "path": "behavioral/swf/check_count_open_executions_unknown_domain_returns_zero.py", "service": "swf"} {"check_id": "swf.count-pending-tasks-unknown-domain-returns-zero", "deployments": [], "key": "swf/count-pending-tasks-unknown-domain-returns-zero", "labels": ["axis:happy-path", "plane:control"], "operations": ["swf:CountPendingActivityTasks", "swf:CountPendingDecisionTasks", "swf:DeprecateDomain", "swf:RegisterDomain"], "path": "behavioral/swf/check_count_pending_tasks_unknown_domain_returns_zero.py", "service": "swf"} {"check_id": "swf.count-pending-tasks-unknown-tasklist-error", "deployments": [], "key": "swf/count-pending-tasks-unknown-tasklist-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["swf:CountPendingActivityTasks", "swf:CountPendingDecisionTasks", "swf:DescribeDomain", "swf:RegisterDomain", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_count_pending_tasks_unknown_tasklist_error.py", "service": "swf"} {"check_id": "swf.decision-task-start-to-close-timeout-requeues", "deployments": [], "key": "swf/decision-task-start-to-close-timeout-requeues", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_decision_task_start_to_close_timeout_requeues.py", "service": "swf"} {"check_id": "swf.decision-task-start-to-close-timeout-reschedules", "deployments": [], "key": "swf/decision-task-start-to-close-timeout-reschedules", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_decision_task_start_to_close_timeout_reschedules.py", "service": "swf"} {"check_id": "swf.decision-task-timeout-server-enforced", "deployments": [], "key": "swf/decision-task-timeout-server-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_decision_task_timeout_server_enforced.py", "service": "swf"} {"check_id": "swf.decision-token-used-for-activity-response-rejected", "deployments": [], "key": "swf/decision-token-used-for-activity-response-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_decision_token_used_for_activity_response_rejected.py", "service": "swf"} {"check_id": "swf.delete-non-deprecated-activity-type-rejected", "deployments": [], "key": "swf/delete-non-deprecated-activity-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeleteActivityType", "swf:DeprecateActivityType", "swf:DescribeActivityType", "swf:DescribeDomain", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_delete_non_deprecated_activity_type_rejected.py", "service": "swf"} {"check_id": "swf.delete-non-deprecated-workflow-type-rejected", "deployments": [], "key": "swf/delete-non-deprecated-workflow-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeleteWorkflowType", "swf:DeprecateWorkflowType", "swf:DescribeDomain", "swf:DescribeWorkflowType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_delete_non_deprecated_workflow_type_rejected.py", "service": "swf"} {"check_id": "swf.deploy-domain-cfn-stack-behaves", "deployments": [], "key": "swf/deploy-domain-cfn-stack-behaves", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:ValidateTemplate", "swf:DescribeDomain"], "path": "behavioral/swf/check_deploy_domain_cfn_stack_behaves.py", "service": "swf"} {"check_id": "swf.deploy-domain-via-cloudformation", "deployments": [], "key": "swf/deploy-domain-via-cloudformation", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "swf:DeprecateDomain", "swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution"], "path": "behavioral/swf/check_deploy_domain_via_cloudformation.py", "service": "swf"} {"check_id": "swf.deprecate-already-deprecated-activity-type-rejected", "deployments": [], "key": "swf/deprecate-already-deprecated-activity-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateActivityType", "swf:DescribeActivityType", "swf:DescribeDomain", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:UndeprecateActivityType", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_deprecate_already_deprecated_activity_type_rejected.py", "service": "swf"} {"check_id": "swf.deprecate-already-deprecated-domain-rejected", "deployments": [], "key": "swf/deprecate-already-deprecated-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateDomain", "swf:DescribeDomain", "swf:RegisterDomain", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_deprecate_already_deprecated_domain_rejected.py", "service": "swf"} {"check_id": "swf.deprecate-already-deprecated-workflow-type-rejected", "deployments": [], "key": "swf/deprecate-already-deprecated-workflow-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateWorkflowType", "swf:DescribeDomain", "swf:DescribeWorkflowType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:UndeprecateDomain", "swf:UndeprecateWorkflowType"], "path": "behavioral/swf/check_deprecate_already_deprecated_workflow_type_rejected.py", "service": "swf"} {"check_id": "swf.describe-activity-type-cross-domain-rejected", "deployments": [], "key": "swf/describe-activity-type-cross-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateActivityType", "swf:DeprecateDomain", "swf:DescribeActivityType", "swf:ListActivityTypes", "swf:RegisterActivityType", "swf:RegisterDomain"], "path": "behavioral/swf/check_describe_activity_type_cross_domain_rejected.py", "service": "swf"} {"check_id": "swf.duplicate-open-workflow-start-rejected", "deployments": [], "key": "swf/duplicate-open-workflow-start-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:CountOpenWorkflowExecutions", "swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_duplicate_open_workflow_start_rejected.py", "service": "swf"} {"check_id": "swf.e2e-workflow-activity-full-lifecycle", "deployments": [], "key": "swf/e2e-workflow-activity-full-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:ListClosedWorkflowExecutions", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RecordActivityTaskHeartbeat", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_e2e_workflow_activity_full_lifecycle.py", "service": "swf"} {"check_id": "swf.e2e-workflow-cancellation-flow", "deployments": [], "key": "swf/e2e-workflow-cancellation-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RequestCancelWorkflowExecution", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_e2e_workflow_cancellation_flow.py", "service": "swf"} {"check_id": "swf.e2e-workflow-execution-lifecycle", "deployments": [], "key": "swf/e2e-workflow-execution-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RecordActivityTaskHeartbeat", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_e2e_workflow_execution_lifecycle.py", "service": "swf"} {"check_id": "swf.empty-vs-absent-input-preserved", "deployments": [], "key": "swf/empty-vs-absent-input-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_empty_vs_absent_input_preserved.py", "service": "swf"} {"check_id": "swf.execution-timeout-enforced-server-side", "deployments": [], "key": "swf/execution-timeout-enforced-server-side", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:ListClosedWorkflowExecutions", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_execution_timeout_enforced_server_side.py", "service": "swf"} {"check_id": "swf.get-workflow-execution-history-paginates", "deployments": [], "key": "swf/get-workflow-execution-history-paginates", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:SignalWorkflowExecution", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_get_workflow_execution_history_paginates.py", "service": "swf"} {"check_id": "swf.get-workflow-execution-history-reverse-order", "deployments": [], "key": "swf/get-workflow-execution-history-reverse-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_get_workflow_execution_history_reverse_order.py", "service": "swf"} {"check_id": "swf.get-workflow-history-unknown-execution-error", "deployments": [], "key": "swf/get-workflow-history-unknown-execution-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_get_workflow_history_unknown_execution_error.py", "service": "swf"} {"check_id": "swf.history-event-order-matches-schedule-order", "deployments": [], "key": "swf/history-event-order-matches-schedule-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_history_event_order_matches_schedule_order.py", "service": "swf"} {"check_id": "swf.history-pagination-tokens-stable", "deployments": [], "key": "swf/history-pagination-tokens-stable", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:SignalWorkflowExecution", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_history_pagination_tokens_stable.py", "service": "swf"} {"check_id": "swf.history-reverse-order-matches-forward", "deployments": [], "key": "swf/history-reverse-order-matches-forward", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:SignalWorkflowExecution", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_history_reverse_order_matches_forward.py", "service": "swf"} {"check_id": "swf.list-tags-unknown-resource-error", "deployments": [], "key": "swf/list-tags-unknown-resource-error", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateDomain", "swf:DescribeDomain", "swf:ListTagsForResource", "swf:RegisterDomain"], "path": "behavioral/swf/check_list_tags_unknown_resource_error.py", "service": "swf"} {"check_id": "swf.list-tags-unknown-resource-rejected", "deployments": [], "key": "swf/list-tags-unknown-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DescribeDomain", "swf:ListTagsForResource", "swf:RegisterDomain", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_list_tags_unknown_resource_rejected.py", "service": "swf"} {"check_id": "swf.numeric-timeout-precision-preserved", "deployments": [], "key": "swf/numeric-timeout-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_numeric_timeout_precision_preserved.py", "service": "swf"} {"check_id": "swf.operation-on-deprecated-domain-still-succeeds", "deployments": [], "key": "swf/operation-on-deprecated-domain-still-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["swf:DeprecateDomain", "swf:DeprecateWorkflowType", "swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:DescribeWorkflowType", "swf:ListOpenWorkflowExecutions", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution"], "path": "behavioral/swf/check_operation_on_deprecated_domain_still_succeeds.py", "service": "swf"} {"check_id": "swf.poll-decision-task-unknown-domain-rejected", "deployments": [], "key": "swf/poll-decision-task-unknown-domain-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data", "timing:real-time"], "operations": ["swf:DescribeDomain", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_poll_decision_task_unknown_domain_rejected.py", "service": "swf"} {"check_id": "swf.poll-for-decision-task-limit-exceeded-error", "deployments": [], "key": "swf/poll-for-decision-task-limit-exceeded-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_poll_for_decision_task_limit_exceeded_error.py", "service": "swf"} {"check_id": "swf.record-heartbeat-unknown-task-token-error", "deployments": [], "key": "swf/record-heartbeat-unknown-task-token-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_record_heartbeat_unknown_task_token_error.py", "service": "swf"} {"check_id": "swf.request-cancel-unknown-execution-error", "deployments": [], "key": "swf/request-cancel-unknown-execution-error", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RequestCancelWorkflowExecution", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_request_cancel_unknown_execution_error.py", "service": "swf"} {"check_id": "swf.request-cancel-unknown-execution-rejected", "deployments": [], "key": "swf/request-cancel-unknown-execution-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RequestCancelWorkflowExecution", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_request_cancel_unknown_execution_rejected.py", "service": "swf"} {"check_id": "swf.respond-activity-completed-after-task-timeout-rejected", "deployments": [], "key": "swf/respond-activity-completed-after-task-timeout-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_respond_activity_completed_after_task_timeout_rejected.py", "service": "swf"} {"check_id": "swf.respond-activity-failed-wrong-token-rejected", "deployments": [], "key": "swf/respond-activity-failed-wrong-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondActivityTaskFailed", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_respond_activity_failed_wrong_token_rejected.py", "service": "swf"} {"check_id": "swf.respond-activity-task-canceled-unknown-token-error", "deployments": [], "key": "swf/respond-activity-task-canceled-unknown-token-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_respond_activity_task_canceled_unknown_token_error.py", "service": "swf"} {"check_id": "swf.respond-activity-task-completed-twice-rejected", "deployments": [], "key": "swf/respond-activity-task-completed-twice-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_respond_activity_task_completed_twice_rejected.py", "service": "swf"} {"check_id": "swf.respond-activity-task-failed-invalid-token-rejected", "deployments": [], "key": "swf/respond-activity-task-failed-invalid-token-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondActivityTaskFailed", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_respond_activity_task_failed_invalid_token_rejected.py", "service": "swf"} {"check_id": "swf.respond-decision-task-completed-after-timeout-rejected", "deployments": [], "key": "swf/respond-decision-task-completed-after-timeout-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_respond_decision_task_completed_after_timeout_rejected.py", "service": "swf"} {"check_id": "swf.schedule-activity-unregistered-type-fails-decision", "deployments": [], "key": "swf/schedule-activity-unregistered-type-fails-decision", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_schedule_activity_unregistered_type_fails_decision.py", "service": "swf"} {"check_id": "swf.signal-after-close-rejected", "deployments": [], "key": "swf/signal-after-close-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:SignalWorkflowExecution", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_signal_after_close_rejected.py", "service": "swf"} {"check_id": "swf.signal-closed-workflow-execution-rejected", "deployments": [], "key": "swf/signal-closed-workflow-execution-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:SignalWorkflowExecution", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_signal_closed_workflow_execution_rejected.py", "service": "swf"} {"check_id": "swf.stale-decision-task-token-reused-rejected", "deployments": [], "key": "swf/stale-decision-task-token-reused-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_stale_decision_task_token_reused_rejected.py", "service": "swf"} {"check_id": "swf.start-workflow-execution-with-deprecated-type-rejected", "deployments": [], "key": "swf/start-workflow-execution-with-deprecated-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateWorkflowType", "swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:ListClosedWorkflowExecutions", "swf:ListOpenWorkflowExecutions", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain", "swf:UndeprecateWorkflowType"], "path": "behavioral/swf/check_start_workflow_execution_with_deprecated_type_rejected.py", "service": "swf"} {"check_id": "swf.tag-resource-exceeds-limit-rejected", "deployments": [], "key": "swf/tag-resource-exceeds-limit-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateDomain", "swf:DescribeDomain", "swf:ListTagsForResource", "swf:RegisterDomain", "swf:TagResource", "swf:UntagResource"], "path": "behavioral/swf/check_tag_resource_exceeds_limit_rejected.py", "service": "swf"} {"check_id": "swf.tag-resource-too-many-tags-rejected", "deployments": [], "key": "swf/tag-resource-too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateDomain", "swf:DescribeDomain", "swf:ListTagsForResource", "swf:RegisterDomain", "swf:TagResource"], "path": "behavioral/swf/check_tag_resource_too_many_tags_rejected.py", "service": "swf"} {"check_id": "swf.tag-value-unicode-round-trip", "deployments": [], "key": "swf/tag-value-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["swf:DeprecateDomain", "swf:DescribeDomain", "swf:ListTagsForResource", "swf:RegisterDomain", "swf:TagResource"], "path": "behavioral/swf/check_tag_value_unicode_round_trip.py", "service": "swf"} {"check_id": "swf.timer-start-fire-cancel-and-unknown-cancel", "deployments": [], "key": "swf/timer-start-fire-cancel-and-unknown-cancel", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:PollForDecisionTask", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_timer_start_fire_cancel_and_unknown_cancel.py", "service": "swf"} {"check_id": "swf.undeprecate-active-activity-type-rejected", "deployments": [], "key": "swf/undeprecate-active-activity-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateActivityType", "swf:DescribeActivityType", "swf:DescribeDomain", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:UndeprecateActivityType", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_undeprecate_active_activity_type_rejected.py", "service": "swf"} {"check_id": "swf.undeprecate-active-domain-rejected", "deployments": [], "key": "swf/undeprecate-active-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateDomain", "swf:DescribeDomain", "swf:RegisterDomain", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_undeprecate_active_domain_rejected.py", "service": "swf"} {"check_id": "swf.undeprecate-active-workflow-type-rejected", "deployments": [], "key": "swf/undeprecate-active-workflow-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["swf:DeprecateWorkflowType", "swf:DescribeDomain", "swf:DescribeWorkflowType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:UndeprecateDomain", "swf:UndeprecateWorkflowType"], "path": "behavioral/swf/check_undeprecate_active_workflow_type_rejected.py", "service": "swf"} {"check_id": "swf.workflow-execution-timeout-terminates-open-execution", "deployments": [], "key": "swf/workflow-execution-timeout-terminates-open-execution", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:DescribeWorkflowExecution", "swf:GetWorkflowExecutionHistory", "swf:ListClosedWorkflowExecutions", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_workflow_execution_timeout_terminates_open_execution.py", "service": "swf"} {"check_id": "swf.workflow-history-event-ordering-monotonic", "deployments": [], "key": "swf/workflow-history-event-ordering-monotonic", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:PollForActivityTask", "swf:PollForDecisionTask", "swf:RegisterActivityType", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:RespondActivityTaskCompleted", "swf:RespondDecisionTaskCompleted", "swf:StartWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_workflow_history_event_ordering_monotonic.py", "service": "swf"} {"check_id": "swf.workflow-input-blob-round-trip", "deployments": [], "key": "swf/workflow-input-blob-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_workflow_input_blob_round_trip.py", "service": "swf"} {"check_id": "swf.workflow-input-unicode-round-trip", "deployments": [], "key": "swf/workflow-input-unicode-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["swf:DescribeDomain", "swf:GetWorkflowExecutionHistory", "swf:RegisterDomain", "swf:RegisterWorkflowType", "swf:StartWorkflowExecution", "swf:TerminateWorkflowExecution", "swf:UndeprecateDomain"], "path": "behavioral/swf/check_workflow_input_unicode_round_trip.py", "service": "swf"} {"check_id": "synthetics.associate-resource-duplicate-association-conflict-rejected", "deployments": [], "key": "synthetics/associate-resource-duplicate-association-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "sts:GetCallerIdentity", "synthetics:AssociateResource", "synthetics:CreateCanary", "synthetics:CreateGroup", "synthetics:DeleteCanary", "synthetics:DeleteGroup", "synthetics:DescribeRuntimeVersions", "synthetics:DisassociateResource", "synthetics:GetCanary", "synthetics:ListGroupResources", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_associate_resource_duplicate_association_conflict_rejected.py", "service": "synthetics"} {"check_id": "synthetics.associate-resource-nonexistent-group-resource-not-found", "deployments": [], "key": "synthetics/associate-resource-nonexistent-group-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity", "synthetics:AssociateResource", "synthetics:CreateCanary", "synthetics:CreateGroup", "synthetics:DeleteCanary", "synthetics:DeleteGroup", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:ListGroupResources", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_associate_resource_nonexistent_group_resource_not_found.py", "service": "synthetics"} {"check_id": "synthetics.canary-run-completes-publishes-artifacts-and-metrics", "deployments": [], "key": "synthetics/canary-run-completes-publishes-artifacts-and-metrics", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["cloudwatch:GetMetricStatistics", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:GetCanaryRuns", "synthetics:StartCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_canary_run_completes_publishes_artifacts_and_metrics.py", "service": "synthetics"} {"check_id": "synthetics.canary-run-fails-without-execution-role-permissions", "deployments": [], "key": "synthetics/canary-run-fails-without-execution-role-permissions", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:GetCanaryRuns", "synthetics:StartCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_canary_run_fails_without_execution_role_permissions.py", "service": "synthetics"} {"check_id": "synthetics.concurrent-associate-resource-single-winner", "deployments": [], "key": "synthetics/concurrent-associate-resource-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity", "synthetics:AssociateResource", "synthetics:CreateCanary", "synthetics:CreateGroup", "synthetics:DeleteCanary", "synthetics:DeleteGroup", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:ListGroupResources", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_concurrent_associate_resource_single_winner.py", "service": "synthetics"} {"check_id": "synthetics.create-canary-invalid-runtime-version-rejected", "deployments": [], "key": "synthetics/create-canary-invalid-runtime-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeCanaries", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_create_canary_invalid_runtime_version_rejected.py", "service": "synthetics"} {"check_id": "synthetics.create-canary-lifecycle-creating-to-ready", "deployments": [], "key": "synthetics/create-canary-lifecycle-creating-to-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_create_canary_lifecycle_creating_to_ready.py", "service": "synthetics"} {"check_id": "synthetics.delete-canary-removes-resource", "deployments": [], "key": "synthetics/delete-canary-removes-resource", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeCanaries", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:StartCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_delete_canary_removes_resource.py", "service": "synthetics"} {"check_id": "synthetics.delete-canary-while-running-conflict-rejected", "deployments": [], "key": "synthetics/delete-canary-while-running-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:StartCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_delete_canary_while_running_conflict_rejected.py", "service": "synthetics"} {"check_id": "synthetics.delete-group-nonexistent-resource-not-found", "deployments": [], "key": "synthetics/delete-group-nonexistent-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["synthetics:CreateGroup", "synthetics:DeleteGroup", "synthetics:GetGroup"], "path": "behavioral/synthetics/check_delete_group_nonexistent_resource_not_found.py", "service": "synthetics"} {"check_id": "synthetics.describe-canaries-max-results-out-of-range-rejected", "deployments": [], "key": "synthetics/describe-canaries-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["synthetics:DescribeCanaries"], "path": "behavioral/synthetics/check_describe_canaries_max_results_out_of_range_rejected.py", "service": "synthetics"} {"check_id": "synthetics.disassociate-resource-removes-association", "deployments": [], "key": "synthetics/disassociate-resource-removes-association", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity", "synthetics:AssociateResource", "synthetics:CreateCanary", "synthetics:CreateGroup", "synthetics:DeleteCanary", "synthetics:DeleteGroup", "synthetics:DescribeRuntimeVersions", "synthetics:DisassociateResource", "synthetics:GetCanary", "synthetics:ListGroupResources", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_disassociate_resource_removes_association.py", "service": "synthetics"} {"check_id": "synthetics.get-canary-nonexistent-name-validation-exception", "deployments": [], "key": "synthetics/get-canary-nonexistent-name-validation-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_get_canary_nonexistent_name_validation_exception.py", "service": "synthetics"} {"check_id": "synthetics.get-canary-runs-nonexistent-canary-resource-not-found", "deployments": [], "key": "synthetics/get-canary-runs-nonexistent-canary-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:GetCanaryRuns", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_get_canary_runs_nonexistent_canary_resource_not_found.py", "service": "synthetics"} {"check_id": "synthetics.list-associated-groups-reflects-membership", "deployments": [], "key": "synthetics/list-associated-groups-reflects-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "sts:GetCallerIdentity", "synthetics:AssociateResource", "synthetics:CreateCanary", "synthetics:CreateGroup", "synthetics:DeleteCanary", "synthetics:DeleteGroup", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:ListAssociatedGroups", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_list_associated_groups_reflects_membership.py", "service": "synthetics"} {"check_id": "synthetics.list-tags-for-resource-nonexistent-not-found-exception", "deployments": [], "key": "synthetics/list-tags-for-resource-nonexistent-not-found-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "synthetics:CreateGroup", "synthetics:DeleteGroup", "synthetics:ListTagsForResource"], "path": "behavioral/synthetics/check_list_tags_for_resource_nonexistent_not_found_exception.py", "service": "synthetics"} {"check_id": "synthetics.start-canary-dry-run-independent-of-schedule", "deployments": [], "key": "synthetics/start-canary-dry-run-independent-of-schedule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:GetCanaryRuns", "synthetics:StartCanaryDryRun", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_start_canary_dry_run_independent_of_schedule.py", "service": "synthetics"} {"check_id": "synthetics.start-canary-transitions-running-then-stopped", "deployments": [], "key": "synthetics/start-canary-transitions-running-then-stopped", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:GetCanaryRuns", "synthetics:StartCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_start_canary_transitions_running_then_stopped.py", "service": "synthetics"} {"check_id": "synthetics.stop-canary-transitions-running-to-stopped", "deployments": [], "key": "synthetics/stop-canary-transitions-running-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:StartCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_stop_canary_transitions_running_to_stopped.py", "service": "synthetics"} {"check_id": "synthetics.stop-canary-when-not-running-conflict-rejected", "deployments": [], "key": "synthetics/stop-canary-when-not-running-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:StartCanary", "synthetics:StopCanary"], "path": "behavioral/synthetics/check_stop_canary_when_not_running_conflict_rejected.py", "service": "synthetics"} {"check_id": "synthetics.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "synthetics/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["synthetics:CreateGroup", "synthetics:DeleteGroup", "synthetics:GetGroup", "synthetics:ListTagsForResource", "synthetics:TagResource"], "path": "behavioral/synthetics/check_tag_resource_and_list_tags_roundtrip.py", "service": "synthetics"} {"check_id": "synthetics.tag-resource-invalid-arn-bad-request-exception", "deployments": [], "key": "synthetics/tag-resource-invalid-arn-bad-request-exception", "labels": ["axis:rejection", "plane:control"], "operations": ["synthetics:CreateGroup", "synthetics:DeleteGroup", "synthetics:ListTagsForResource", "synthetics:TagResource"], "path": "behavioral/synthetics/check_tag_resource_invalid_arn_bad_request_exception.py", "service": "synthetics"} {"check_id": "synthetics.untag-resource-removes-only-specified-key", "deployments": [], "key": "synthetics/untag-resource-removes-only-specified-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["synthetics:CreateGroup", "synthetics:DeleteGroup", "synthetics:ListTagsForResource", "synthetics:UntagResource"], "path": "behavioral/synthetics/check_untag_resource_removes_only_specified_key.py", "service": "synthetics"} {"check_id": "synthetics.update-canary-transitions-updating-to-update-complete", "deployments": [], "key": "synthetics/update-canary-transitions-updating-to-update-complete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "synthetics:CreateCanary", "synthetics:DeleteCanary", "synthetics:DescribeRuntimeVersions", "synthetics:GetCanary", "synthetics:StopCanary", "synthetics:UpdateCanary"], "path": "behavioral/synthetics/check_update_canary_transitions_updating_to_update_complete.py", "service": "synthetics"} {"check_id": "taxsettings.batch-get-tax-exemptions-foreign-account-rejected", "deployments": [], "key": "taxsettings/batch-get-tax-exemptions-foreign-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "taxsettings:BatchGetTaxExemptions"], "path": "behavioral/taxsettings/check_batch_get_tax_exemptions_foreign_account_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.batch-get-tax-exemptions-own-account-accessible", "deployments": [], "key": "taxsettings/batch-get-tax-exemptions-own-account-accessible", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "taxsettings:BatchGetTaxExemptions"], "path": "behavioral/taxsettings/check_batch_get_tax_exemptions_own_account_accessible.py", "service": "taxsettings"} {"check_id": "taxsettings.batch-put-tax-registration-empty-accountids-rejected", "deployments": [], "key": "taxsettings/batch-put-tax-registration-empty-accountids-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "taxsettings:BatchPutTaxRegistration", "taxsettings:GetTaxRegistration"], "path": "behavioral/taxsettings/check_batch_put_tax_registration_empty_accountids_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.concurrent-delete-supplemental-tax-registration-consistent", "deployments": [], "key": "taxsettings/concurrent-delete-supplemental-tax-registration-consistent", "labels": ["axis:rejection", "plane:control"], "operations": ["taxsettings:DeleteSupplementalTaxRegistration"], "path": "behavioral/taxsettings/check_concurrent_delete_supplemental_tax_registration_consistent.py", "service": "taxsettings"} {"check_id": "taxsettings.delete-supplemental-tax-registration-not-found", "deployments": [], "key": "taxsettings/delete-supplemental-tax-registration-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["taxsettings:DeleteSupplementalTaxRegistration"], "path": "behavioral/taxsettings/check_delete_supplemental_tax_registration_not_found.py", "service": "taxsettings"} {"check_id": "taxsettings.get-tax-exemption-types-returns-populated-catalog", "deployments": [], "key": "taxsettings/get-tax-exemption-types-returns-populated-catalog", "labels": ["axis:happy-path", "plane:control"], "operations": ["taxsettings:GetTaxExemptionTypes"], "path": "behavioral/taxsettings/check_get_tax_exemption_types_returns_populated_catalog.py", "service": "taxsettings"} {"check_id": "taxsettings.get-tax-registration-document-invalid-token-rejected", "deployments": [], "key": "taxsettings/get-tax-registration-document-invalid-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["taxsettings:GetTaxRegistrationDocument", "taxsettings:ListTaxRegistrations"], "path": "behavioral/taxsettings/check_get_tax_registration_document_invalid_token_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.get-tax-registration-malformed-account-id-rejected", "deployments": [], "key": "taxsettings/get-tax-registration-malformed-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "taxsettings:GetTaxRegistration"], "path": "behavioral/taxsettings/check_get_tax_registration_malformed_account_id_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.list-supplemental-tax-registrations-max-results-out-of-range-rejected", "deployments": [], "key": "taxsettings/list-supplemental-tax-registrations-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["taxsettings:ListSupplementalTaxRegistrations"], "path": "behavioral/taxsettings/check_list_supplemental_tax_registrations_max_results_out_of_range_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.list-tax-registrations-max-results-out-of-range-rejected", "deployments": [], "key": "taxsettings/list-tax-registrations-max-results-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["taxsettings:ListTaxRegistrations"], "path": "behavioral/taxsettings/check_list_tax_registrations_max_results_out_of_range_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.primary-tax-registration-full-lifecycle", "deployments": [], "key": "taxsettings/primary-tax-registration-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "taxsettings:BatchDeleteTaxRegistration", "taxsettings:BatchPutTaxRegistration", "taxsettings:DeleteTaxRegistration", "taxsettings:GetTaxRegistration", "taxsettings:PutTaxRegistration"], "path": "behavioral/taxsettings/check_primary_tax_registration_full_lifecycle.py", "service": "taxsettings"} {"check_id": "taxsettings.put-tax-exemption-invalid-certificate-filename-rejected", "deployments": [], "key": "taxsettings/put-tax-exemption-invalid-certificate-filename-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "taxsettings:PutTaxExemption"], "path": "behavioral/taxsettings/check_put_tax_exemption_invalid_certificate_filename_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.put-tax-registration-missing-required-field-rejected", "deployments": [], "key": "taxsettings/put-tax-registration-missing-required-field-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["taxsettings:GetTaxRegistration", "taxsettings:PutTaxRegistration"], "path": "behavioral/taxsettings/check_put_tax_registration_missing_required_field_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.supplemental-tax-registration-unsupported-country-rejected", "deployments": [], "key": "taxsettings/supplemental-tax-registration-unsupported-country-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["taxsettings:DeleteSupplementalTaxRegistration", "taxsettings:ListSupplementalTaxRegistrations", "taxsettings:PutSupplementalTaxRegistration"], "path": "behavioral/taxsettings/check_supplemental_tax_registration_unsupported_country_rejected.py", "service": "taxsettings"} {"check_id": "taxsettings.tax-inheritance-requires-management-account", "deployments": [], "key": "taxsettings/tax-inheritance-requires-management-account", "labels": ["axis:rejection", "plane:control"], "operations": ["taxsettings:GetTaxInheritance", "taxsettings:PutTaxInheritance"], "path": "behavioral/taxsettings/check_tax_inheritance_requires_management_account.py", "service": "taxsettings"} {"check_id": "textract.analyze-document-combined-features-tables-and-forms", "deployments": [], "key": "textract/analyze-document-combined-features-tables-and-forms", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["textract:AnalyzeDocument"], "path": "behavioral/textract/check_analyze_document_combined_features_tables_and_forms.py", "service": "textract"} {"check_id": "textract.analyze-document-forms-extracts-key-value-pairs", "deployments": [], "key": "textract/analyze-document-forms-extracts-key-value-pairs", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["textract:AnalyzeDocument"], "path": "behavioral/textract/check_analyze_document_forms_extracts_key_value_pairs.py", "service": "textract"} {"check_id": "textract.analyze-document-queries-feature-returns-query-block", "deployments": [], "key": "textract/analyze-document-queries-feature-returns-query-block", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["textract:AnalyzeDocument"], "path": "behavioral/textract/check_analyze_document_queries_feature_returns_query_block.py", "service": "textract"} {"check_id": "textract.analyze-document-queries-without-feature-flag-rejected", "deployments": [], "key": "textract/analyze-document-queries-without-feature-flag-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["textract:AnalyzeDocument"], "path": "behavioral/textract/check_analyze_document_queries_without_feature_flag_rejected.py", "service": "textract"} {"check_id": "textract.analyze-expense-extracts-summary-fields", "deployments": [], "key": "textract/analyze-expense-extracts-summary-fields", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["textract:AnalyzeExpense"], "path": "behavioral/textract/check_analyze_expense_extracts_summary_fields.py", "service": "textract"} {"check_id": "textract.block-relationship-hierarchy-integrity", "deployments": [], "key": "textract/block-relationship-hierarchy-integrity", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["textract:DetectDocumentText"], "path": "behavioral/textract/check_block_relationship_hierarchy_integrity.py", "service": "textract"} {"check_id": "textract.create-adapter-concurrent-same-token-idempotent", "deployments": [], "key": "textract/create-adapter-concurrent-same-token-idempotent", "labels": ["axis:happy-path", "plane:control"], "operations": ["textract:CreateAdapter", "textract:DeleteAdapter", "textract:ListAdapters"], "path": "behavioral/textract/check_create_adapter_concurrent_same_token_idempotent.py", "service": "textract"} {"check_id": "textract.create-adapter-idempotent-token-mismatch-rejected", "deployments": [], "key": "textract/create-adapter-idempotent-token-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["textract:CreateAdapter", "textract:DeleteAdapter", "textract:ListAdapters"], "path": "behavioral/textract/check_create_adapter_idempotent_token_mismatch_rejected.py", "service": "textract"} {"check_id": "textract.create-adapter-idempotent-token-returns-same-adapter", "deployments": [], "key": "textract/create-adapter-idempotent-token-returns-same-adapter", "labels": ["axis:happy-path", "plane:control"], "operations": ["textract:CreateAdapter", "textract:DeleteAdapter", "textract:ListAdapters"], "path": "behavioral/textract/check_create_adapter_idempotent_token_returns_same_adapter.py", "service": "textract"} {"check_id": "textract.create-adapter-lifecycle-get-delete", "deployments": [], "key": "textract/create-adapter-lifecycle-get-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["textract:CreateAdapter", "textract:DeleteAdapter", "textract:GetAdapter"], "path": "behavioral/textract/check_create_adapter_lifecycle_get_delete.py", "service": "textract"} {"check_id": "textract.create-adapter-validation-rejected", "deployments": [], "key": "textract/create-adapter-validation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["textract:CreateAdapter", "textract:DeleteAdapter", "textract:GetAdapter", "textract:ListAdapters"], "path": "behavioral/textract/check_create_adapter_validation_rejected.py", "service": "textract"} {"check_id": "textract.detect-document-text-blank-image-returns-no-words", "deployments": [], "key": "textract/detect-document-text-blank-image-returns-no-words", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["textract:DetectDocumentText"], "path": "behavioral/textract/check_detect_document_text_blank_image_returns_no_words.py", "service": "textract"} {"check_id": "textract.detect-document-text-corrupt-image-rejected", "deployments": [], "key": "textract/detect-document-text-corrupt-image-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["textract:DetectDocumentText"], "path": "behavioral/textract/check_detect_document_text_corrupt_image_rejected.py", "service": "textract"} {"check_id": "textract.detect-document-text-from-s3-object-source", "deployments": [], "key": "textract/detect-document-text-from-s3-object-source", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "textract:DetectDocumentText"], "path": "behavioral/textract/check_detect_document_text_from_s3_object_source.py", "service": "textract"} {"check_id": "textract.detect-document-text-reads-rendered-text", "deployments": [], "key": "textract/detect-document-text-reads-rendered-text", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["textract:DetectDocumentText"], "path": "behavioral/textract/check_detect_document_text_reads_rendered_text.py", "service": "textract"} {"check_id": "textract.get-document-text-detection-invalid-job-id-rejected", "deployments": [], "key": "textract/get-document-text-detection-invalid-job-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "textract:GetDocumentTextDetection", "textract:StartDocumentTextDetection"], "path": "behavioral/textract/check_get_document_text_detection_invalid_job_id_rejected.py", "service": "textract"} {"check_id": "textract.list-adapter-versions-empty-for-new-adapter", "deployments": [], "key": "textract/list-adapter-versions-empty-for-new-adapter", "labels": ["axis:happy-path", "plane:control"], "operations": ["textract:CreateAdapter", "textract:DeleteAdapter", "textract:ListAdapterVersions"], "path": "behavioral/textract/check_list_adapter_versions_empty_for_new_adapter.py", "service": "textract"} {"check_id": "textract.list-adapters-reflects-created-adapter", "deployments": [], "key": "textract/list-adapters-reflects-created-adapter", "labels": ["axis:happy-path", "plane:control"], "operations": ["textract:CreateAdapter", "textract:DeleteAdapter", "textract:ListAdapters"], "path": "behavioral/textract/check_list_adapters_reflects_created_adapter.py", "service": "textract"} {"check_id": "textract.start-document-analysis-async-tables-feature", "deployments": [], "key": "textract/start-document-analysis-async-tables-feature", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "textract:GetDocumentAnalysis", "textract:StartDocumentAnalysis"], "path": "behavioral/textract/check_start_document_analysis_async_tables_feature.py", "service": "textract"} {"check_id": "textract.start-document-text-detection-invalid-s3-object-rejected", "deployments": [], "key": "textract/start-document-text-detection-invalid-s3-object-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "textract:StartDocumentTextDetection"], "path": "behavioral/textract/check_start_document_text_detection_invalid_s3_object_rejected.py", "service": "textract"} {"check_id": "textract.start-document-text-detection-job-lifecycle", "deployments": [], "key": "textract/start-document-text-detection-job-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "textract:GetDocumentTextDetection", "textract:StartDocumentTextDetection"], "path": "behavioral/textract/check_start_document_text_detection_job_lifecycle.py", "service": "textract"} {"check_id": "textract.tag-and-untag-resource-roundtrip", "deployments": [], "key": "textract/tag-and-untag-resource-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "textract:CreateAdapter", "textract:DeleteAdapter", "textract:ListTagsForResource", "textract:TagResource", "textract:UntagResource"], "path": "behavioral/textract/check_tag_and_untag_resource_roundtrip.py", "service": "textract"} {"check_id": "textract.textract-access-denied-without-permission-rejected", "deployments": [], "key": "textract/textract-access-denied-without-permission-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "textract:DetectDocumentText"], "path": "behavioral/textract/check_textract_access_denied_without_permission_rejected.py", "service": "textract"} {"check_id": "textract.update-adapter-persists-metadata-change", "deployments": [], "key": "textract/update-adapter-persists-metadata-change", "labels": ["axis:happy-path", "plane:control"], "operations": ["textract:CreateAdapter", "textract:DeleteAdapter", "textract:GetAdapter", "textract:UpdateAdapter"], "path": "behavioral/textract/check_update_adapter_persists_metadata_change.py", "service": "textract"} {"check_id": "timestream-influxdb.create-db-backup-completes-and-lists", "deployments": [], "key": "timestream-influxdb/create-db-backup-completes-and-lists", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "timestream-influxdb:CreateDbBackup", "timestream-influxdb:CreateDbInstance", "timestream-influxdb:DeleteDbBackup", "timestream-influxdb:DeleteDbInstance", "timestream-influxdb:GetDbBackup", "timestream-influxdb:GetDbInstance", "timestream-influxdb:ListDbBackups"], "path": "behavioral/timestream-influxdb/check_create_db_backup_completes_and_lists.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-cluster-reaches-available", "deployments": [], "key": "timestream-influxdb/create-db-cluster-reaches-available", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "timestream-influxdb:CreateDbCluster", "timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:DeleteDbCluster", "timestream-influxdb:ListDbClusters"], "path": "behavioral/timestream-influxdb/check_create_db_cluster_reaches_available.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-instance-duplicate-name-conflict-rejected", "deployments": [], "key": "timestream-influxdb/create-db-instance-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "timestream-influxdb:CreateDbInstance", "timestream-influxdb:DeleteDbInstance", "timestream-influxdb:GetDbInstance", "timestream-influxdb:ListDbInstances"], "path": "behavioral/timestream-influxdb/check_create_db_instance_duplicate_name_conflict_rejected.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-instance-full-lifecycle", "deployments": [], "key": "timestream-influxdb/create-db-instance-full-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "timestream-influxdb:CreateDbInstance", "timestream-influxdb:DeleteDbInstance", "timestream-influxdb:GetDbInstance", "timestream-influxdb:RebootDbInstance"], "path": "behavioral/timestream-influxdb/check_create_db_instance_full_lifecycle.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-instance-invalid-input-boundaries-rejected", "deployments": [], "key": "timestream-influxdb/create-db-instance-invalid-input-boundaries-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "timestream-influxdb:CreateDbInstance", "timestream-influxdb:DeleteDbInstance", "timestream-influxdb:GetDbInstance", "timestream-influxdb:ListDbInstances"], "path": "behavioral/timestream-influxdb/check_create_db_instance_invalid_input_boundaries_rejected.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-parameter-group-duplicate-name-conflict-rejected", "deployments": [], "key": "timestream-influxdb/create-db-parameter-group-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:GetDbParameterGroup", "timestream-influxdb:ListDbParameterGroups"], "path": "behavioral/timestream-influxdb/check_create_db_parameter_group_duplicate_name_conflict_rejected.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-parameter-group-missing-permission-denied", "deployments": [], "key": "timestream-influxdb/create-db-parameter-group-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:GetDbParameterGroup", "timestream-influxdb:ListDbParameterGroups"], "path": "behavioral/timestream-influxdb/check_create_db_parameter_group_missing_permission_denied.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-parameter-group-name-race-exactly-one-wins", "deployments": [], "key": "timestream-influxdb/create-db-parameter-group-name-race-exactly-one-wins", "labels": ["axis:happy-path", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:GetDbParameterGroup", "timestream-influxdb:ListDbParameterGroups"], "path": "behavioral/timestream-influxdb/check_create_db_parameter_group_name_race_exactly_one_wins.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-parameter-group-success-and-get", "deployments": [], "key": "timestream-influxdb/create-db-parameter-group-success-and-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:GetDbParameterGroup"], "path": "behavioral/timestream-influxdb/check_create_db_parameter_group_success_and_get.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.create-db-parameter-group-with-parameters-persists", "deployments": [], "key": "timestream-influxdb/create-db-parameter-group-with-parameters-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:GetDbParameterGroup"], "path": "behavioral/timestream-influxdb/check_create_db_parameter_group_with_parameters_persists.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.list-db-parameter-groups-includes-created-group", "deployments": [], "key": "timestream-influxdb/list-db-parameter-groups-includes-created-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:ListDbParameterGroups"], "path": "behavioral/timestream-influxdb/check_list_db_parameter_groups_includes_created_group.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.list-db-parameter-groups-invalid-max-results-rejected", "deployments": [], "key": "timestream-influxdb/list-db-parameter-groups-invalid-max-results-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:ListDbParameterGroups"], "path": "behavioral/timestream-influxdb/check_list_db_parameter_groups_invalid_max_results_rejected.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.reboot-db-instance-conflict-while-creating-then-succeeds", "deployments": [], "key": "timestream-influxdb/reboot-db-instance-conflict-while-creating-then-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "timestream-influxdb:CreateDbInstance", "timestream-influxdb:DeleteDbInstance", "timestream-influxdb:GetDbInstance", "timestream-influxdb:RebootDbInstance"], "path": "behavioral/timestream-influxdb/check_reboot_db_instance_conflict_while_creating_then_succeeds.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.restore-from-db-backup-creates-available-instance", "deployments": [], "key": "timestream-influxdb/restore-from-db-backup-creates-available-instance", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "timestream-influxdb:CreateDbBackup", "timestream-influxdb:CreateDbInstance", "timestream-influxdb:DeleteDbBackup", "timestream-influxdb:DeleteDbInstance", "timestream-influxdb:GetDbBackup", "timestream-influxdb:GetDbInstance", "timestream-influxdb:RestoreFromDbBackup"], "path": "behavioral/timestream-influxdb/check_restore_from_db_backup_creates_available_instance.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.tag-and-untag-resource-lifecycle", "deployments": [], "key": "timestream-influxdb/tag-and-untag-resource-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:ListTagsForResource", "timestream-influxdb:TagResource", "timestream-influxdb:UntagResource"], "path": "behavioral/timestream-influxdb/check_tag_and_untag_resource_lifecycle.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.tag-resource-nonexistent-arn-not-found", "deployments": [], "key": "timestream-influxdb/tag-resource-nonexistent-arn-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:ListTagsForResource", "timestream-influxdb:TagResource"], "path": "behavioral/timestream-influxdb/check_tag_resource_nonexistent_arn_not_found.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.untag-resource-nonexistent-key-no-error", "deployments": [], "key": "timestream-influxdb/untag-resource-nonexistent-key-no-error", "labels": ["axis:happy-path", "plane:control"], "operations": ["timestream-influxdb:CreateDbParameterGroup", "timestream-influxdb:ListTagsForResource", "timestream-influxdb:TagResource", "timestream-influxdb:UntagResource"], "path": "behavioral/timestream-influxdb/check_untag_resource_nonexistent_key_no_error.py", "service": "timestream-influxdb"} {"check_id": "timestream-influxdb.update-db-instance-storage-decrease-rejected-then-increase-succeeds", "deployments": [], "key": "timestream-influxdb/update-db-instance-storage-decrease-rejected-then-increase-succeeds", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "timestream-influxdb:CreateDbInstance", "timestream-influxdb:DeleteDbInstance", "timestream-influxdb:GetDbInstance", "timestream-influxdb:UpdateDbInstance"], "path": "behavioral/timestream-influxdb/check_update_db_instance_storage_decrease_rejected_then_increase_succeeds.py", "service": "timestream-influxdb"} {"check_id": "transcribe-streaming.stream-transcription-channel-identification-separates-two-channels", "deployments": [], "key": "transcribe-streaming/stream-transcription-channel-identification-separates-two-channels", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/transcribe-streaming/check_stream_transcription_channel_identification_separates_two_channels.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-event-stream-framing-and-session-identity", "deployments": [], "key": "transcribe-streaming/stream-transcription-event-stream-framing-and-session-identity", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/transcribe-streaming/check_stream_transcription_event_stream_framing_and_session_identity.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-identifies-the-spoken-language", "deployments": [], "key": "transcribe-streaming/stream-transcription-identifies-the-spoken-language", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/transcribe-streaming/check_stream_transcription_identifies_the_spoken_language.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-partial-results-stabilization-adds-stable-flag", "deployments": [], "key": "transcribe-streaming/stream-transcription-partial-results-stabilization-adds-stable-flag", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/transcribe-streaming/check_stream_transcription_partial_results_stabilization_adds_stable_flag.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-partial-then-final-transcript", "deployments": [], "key": "transcribe-streaming/stream-transcription-partial-then-final-transcript", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/transcribe-streaming/check_stream_transcription_partial_then_final_transcript.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-rejects-channel-count-without-channel-identification", "deployments": [], "key": "transcribe-streaming/stream-transcription-rejects-channel-count-without-channel-identification", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/transcribe-streaming/check_stream_transcription_rejects_channel_count_without_channel_identification.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-rejects-corrupted-event-stream-message", "deployments": [], "key": "transcribe-streaming/stream-transcription-rejects-corrupted-event-stream-message", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/transcribe-streaming/check_stream_transcription_rejects_corrupted_event_stream_message.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-rejects-invalid-signature-on-the-stream-not-the-upgrade", "deployments": [], "key": "transcribe-streaming/stream-transcription-rejects-invalid-signature-on-the-stream-not-the-upgrade", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/transcribe-streaming/check_stream_transcription_rejects_invalid_signature_on_the_stream_not_the_upgrade.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-rejects-oversized-audio-frame", "deployments": [], "key": "transcribe-streaming/stream-transcription-rejects-oversized-audio-frame", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/transcribe-streaming/check_stream_transcription_rejects_oversized_audio_frame.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-rejects-partial-results-stability-without-stabilization", "deployments": [], "key": "transcribe-streaming/stream-transcription-rejects-partial-results-stability-without-stabilization", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/transcribe-streaming/check_stream_transcription_rejects_partial_results_stability_without_stabilization.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-rejects-unsupported-media-encoding", "deployments": [], "key": "transcribe-streaming/stream-transcription-rejects-unsupported-media-encoding", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/transcribe-streaming/check_stream_transcription_rejects_unsupported_media_encoding.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-rejects-unsupported-sample-rate", "deployments": [], "key": "transcribe-streaming/stream-transcription-rejects-unsupported-sample-rate", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": [], "path": "behavioral/transcribe-streaming/check_stream_transcription_rejects_unsupported_sample_rate.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-speaker-label-annotates-final-items", "deployments": [], "key": "transcribe-streaming/stream-transcription-speaker-label-annotates-final-items", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["polly:SynthesizeSpeech"], "path": "behavioral/transcribe-streaming/check_stream_transcription_speaker_label_annotates_final_items.py", "service": "transcribe-streaming"} {"check_id": "transcribe-streaming.stream-transcription-vocabulary-filter-masks-filtered-words", "deployments": [], "key": "transcribe-streaming/stream-transcription-vocabulary-filter-masks-filtered-words", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["polly:SynthesizeSpeech", "transcribe:CreateVocabularyFilter", "transcribe:DeleteVocabularyFilter", "transcribe:GetVocabularyFilter"], "path": "behavioral/transcribe-streaming/check_stream_transcription_vocabulary_filter_masks_filtered_words.py", "service": "transcribe-streaming"} {"check_id": "transcribe.concurrent-create-vocabulary-same-name-one-wins", "deployments": [], "key": "transcribe/concurrent-create-vocabulary-same-name-one-wins", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary"], "path": "behavioral/transcribe/check_concurrent_create_vocabulary_same_name_one_wins.py", "service": "transcribe"} {"check_id": "transcribe.create-vocabulary-duplicate-name-conflict", "deployments": [], "key": "transcribe/create-vocabulary-duplicate-name-conflict", "labels": ["axis:rejection", "dp:endpoint", "plane:control", "plane:data"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary"], "path": "behavioral/transcribe/check_create_vocabulary_duplicate_name_conflict.py", "service": "transcribe"} {"check_id": "transcribe.create-vocabulary-filter-without-words-or-fileuri-rejected", "deployments": [], "key": "transcribe/create-vocabulary-filter-without-words-or-fileuri-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transcribe:CreateVocabularyFilter", "transcribe:DeleteVocabularyFilter", "transcribe:GetVocabularyFilter"], "path": "behavioral/transcribe/check_create_vocabulary_filter_without_words_or_fileuri_rejected.py", "service": "transcribe"} {"check_id": "transcribe.create-vocabulary-without-phrases-or-fileuri-rejected", "deployments": [], "key": "transcribe/create-vocabulary-without-phrases-or-fileuri-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary"], "path": "behavioral/transcribe/check_create_vocabulary_without_phrases_or_fileuri_rejected.py", "service": "transcribe"} {"check_id": "transcribe.delete-transcription-job-while-in-progress-rejected", "deployments": [], "key": "transcribe/delete-transcription-job-while-in-progress-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "transcribe:DeleteTranscriptionJob", "transcribe:GetTranscriptionJob", "transcribe:StartTranscriptionJob"], "path": "behavioral/transcribe/check_delete_transcription_job_while_in_progress_rejected.py", "service": "transcribe"} {"check_id": "transcribe.delete-vocabulary-while-pending-rejected", "deployments": [], "key": "transcribe/delete-vocabulary-while-pending-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary"], "path": "behavioral/transcribe/check_delete_vocabulary_while_pending_rejected.py", "service": "transcribe"} {"check_id": "transcribe.get-vocabulary-not-found", "deployments": [], "key": "transcribe/get-vocabulary-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary"], "path": "behavioral/transcribe/check_get_vocabulary_not_found.py", "service": "transcribe"} {"check_id": "transcribe.list-vocabularies-name-contains-filter", "deployments": [], "key": "transcribe/list-vocabularies-name-contains-filter", "labels": ["axis:happy-path", "plane:control"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary", "transcribe:ListVocabularies"], "path": "behavioral/transcribe/check_list_vocabularies_name_contains_filter.py", "service": "transcribe"} {"check_id": "transcribe.list-vocabularies-state-equals-ready-reflects-vocabulary", "deployments": [], "key": "transcribe/list-vocabularies-state-equals-ready-reflects-vocabulary", "labels": ["axis:happy-path", "plane:control"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary", "transcribe:ListVocabularies"], "path": "behavioral/transcribe/check_list_vocabularies_state_equals_ready_reflects_vocabulary.py", "service": "transcribe"} {"check_id": "transcribe.medical-transcription-job-lifecycle-completes", "deployments": [], "key": "transcribe/medical-transcription-job-lifecycle-completes", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "transcribe:DeleteMedicalTranscriptionJob", "transcribe:GetMedicalTranscriptionJob", "transcribe:StartMedicalTranscriptionJob"], "path": "behavioral/transcribe/check_medical_transcription_job_lifecycle_completes.py", "service": "transcribe"} {"check_id": "transcribe.medical-vocabulary-lifecycle-pending-to-ready", "deployments": [], "key": "transcribe/medical-vocabulary-lifecycle-pending-to-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "transcribe:CreateMedicalVocabulary", "transcribe:DeleteMedicalVocabulary", "transcribe:GetMedicalVocabulary"], "path": "behavioral/transcribe/check_medical_vocabulary_lifecycle_pending_to_ready.py", "service": "transcribe"} {"check_id": "transcribe.native-speech-to-text-round-trip-via-polly", "deployments": [], "key": "transcribe/native-speech-to-text-round-trip-via-polly", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["polly:SynthesizeSpeech", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "transcribe:DeleteTranscriptionJob", "transcribe:GetTranscriptionJob", "transcribe:StartTranscriptionJob"], "path": "behavioral/transcribe/check_native_speech_to_text_round_trip_via_polly.py", "service": "transcribe"} {"check_id": "transcribe.start-transcription-job-without-language-params-rejected", "deployments": [], "key": "transcribe/start-transcription-job-without-language-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "transcribe:DeleteTranscriptionJob", "transcribe:GetTranscriptionJob", "transcribe:StartTranscriptionJob"], "path": "behavioral/transcribe/check_start_transcription_job_without_language_params_rejected.py", "service": "transcribe"} {"check_id": "transcribe.tag-resource-list-untag-roundtrip", "deployments": [], "key": "transcribe/tag-resource-list-untag-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:ListTagsForResource", "transcribe:TagResource", "transcribe:UntagResource"], "path": "behavioral/transcribe/check_tag_resource_list_untag_roundtrip.py", "service": "transcribe"} {"check_id": "transcribe.transcription-job-identify-language-reflects-detected-code", "deployments": [], "key": "transcribe/transcription-job-identify-language-reflects-detected-code", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["polly:SynthesizeSpeech", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "transcribe:DeleteTranscriptionJob", "transcribe:GetTranscriptionJob", "transcribe:StartTranscriptionJob"], "path": "behavioral/transcribe/check_transcription_job_identify_language_reflects_detected_code.py", "service": "transcribe"} {"check_id": "transcribe.transcription-job-lifecycle-completes", "deployments": [], "key": "transcribe/transcription-job-lifecycle-completes", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "transcribe:DeleteTranscriptionJob", "transcribe:GetTranscriptionJob", "transcribe:StartTranscriptionJob"], "path": "behavioral/transcribe/check_transcription_job_lifecycle_completes.py", "service": "transcribe"} {"check_id": "transcribe.transcription-job-output-written-to-custom-s3-bucket", "deployments": [], "key": "transcribe/transcription-job-output-written-to-custom-s3-bucket", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "transcribe:DeleteTranscriptionJob", "transcribe:GetTranscriptionJob", "transcribe:StartTranscriptionJob"], "path": "behavioral/transcribe/check_transcription_job_output_written_to_custom_s3_bucket.py", "service": "transcribe"} {"check_id": "transcribe.update-vocabulary-filter-words-reflected-in-download", "deployments": [], "key": "transcribe/update-vocabulary-filter-words-reflected-in-download", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["transcribe:CreateVocabularyFilter", "transcribe:DeleteVocabularyFilter", "transcribe:GetVocabularyFilter", "transcribe:UpdateVocabularyFilter"], "path": "behavioral/transcribe/check_update_vocabulary_filter_words_reflected_in_download.py", "service": "transcribe"} {"check_id": "transcribe.update-vocabulary-resets-state-and-content", "deployments": [], "key": "transcribe/update-vocabulary-resets-state-and-content", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary", "transcribe:UpdateVocabulary"], "path": "behavioral/transcribe/check_update_vocabulary_resets_state_and_content.py", "service": "transcribe"} {"check_id": "transcribe.vocabulary-filter-content-roundtrip-via-download-uri", "deployments": [], "key": "transcribe/vocabulary-filter-content-roundtrip-via-download-uri", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["transcribe:CreateVocabularyFilter", "transcribe:DeleteVocabularyFilter", "transcribe:GetVocabularyFilter"], "path": "behavioral/transcribe/check_vocabulary_filter_content_roundtrip_via_download_uri.py", "service": "transcribe"} {"check_id": "transcribe.vocabulary-lifecycle-pending-to-ready", "deployments": [], "key": "transcribe/vocabulary-lifecycle-pending-to-ready", "labels": ["axis:happy-path", "plane:control"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary"], "path": "behavioral/transcribe/check_vocabulary_lifecycle_pending_to_ready.py", "service": "transcribe"} {"check_id": "transcribe.vocabulary-transitions-to-failed-on-unreachable-file", "deployments": [], "key": "transcribe/vocabulary-transitions-to-failed-on-unreachable-file", "labels": ["axis:rejection", "plane:control"], "operations": ["transcribe:CreateVocabulary", "transcribe:DeleteVocabulary", "transcribe:GetVocabulary"], "path": "behavioral/transcribe/check_vocabulary_transitions_to_failed_on_unreachable_file.py", "service": "transcribe"} {"check_id": "transfer.access-create-on-service-managed-server-invalid-request-rejected", "deployments": [], "key": "transfer/access-create-on-service-managed-server-invalid-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateAccess", "transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeAccess"], "path": "behavioral/transfer/check_access_create_on_service_managed_server_invalid_request_rejected.py", "service": "transfer"} {"check_id": "transfer.access-lifecycle-create-update-delete", "deployments": [], "key": "transfer/access-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ds:CreateMicrosoftAD", "ds:DeleteDirectory", "ds:DescribeDirectories", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "transfer:CreateAccess", "transfer:CreateServer", "transfer:DeleteAccess", "transfer:DeleteServer", "transfer:DescribeAccess", "transfer:ListAccesses", "transfer:UpdateAccess"], "path": "behavioral/transfer/check_access_lifecycle_create_update_delete.py", "service": "transfer"} {"check_id": "transfer.agreement-create-describe-delete-404", "deployments": [], "key": "transfer/agreement-create-describe-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateAgreement", "transfer:CreateProfile", "transfer:CreateServer", "transfer:DeleteAgreement", "transfer:DeleteProfile", "transfer:DeleteServer", "transfer:DescribeAgreement"], "path": "behavioral/transfer/check_agreement_create_describe_delete_404.py", "service": "transfer"} {"check_id": "transfer.agreement-lifecycle-create-describe-delete", "deployments": [], "key": "transfer/agreement-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateAgreement", "transfer:CreateProfile", "transfer:CreateServer", "transfer:DeleteAgreement", "transfer:DeleteProfile", "transfer:DeleteServer", "transfer:DescribeAgreement"], "path": "behavioral/transfer/check_agreement_lifecycle_create_describe_delete.py", "service": "transfer"} {"check_id": "transfer.agreement-lifecycle-create-update-delete", "deployments": [], "key": "transfer/agreement-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "transfer:CreateAgreement", "transfer:CreateProfile", "transfer:CreateServer", "transfer:DeleteAgreement", "transfer:DeleteProfile", "transfer:DeleteServer", "transfer:DescribeAgreement", "transfer:ListAgreements", "transfer:UpdateAgreement"], "path": "behavioral/transfer/check_agreement_lifecycle_create_update_delete.py", "service": "transfer"} {"check_id": "transfer.agreement-update-conflicting-directories-rejected", "deployments": [], "key": "transfer/agreement-update-conflicting-directories-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "transfer:CreateAgreement", "transfer:CreateProfile", "transfer:CreateServer", "transfer:DeleteAgreement", "transfer:DeleteProfile", "transfer:DeleteServer", "transfer:DescribeAgreement", "transfer:UpdateAgreement"], "path": "behavioral/transfer/check_agreement_update_conflicting_directories_rejected.py", "service": "transfer"} {"check_id": "transfer.certificate-blob-preserved", "deployments": [], "key": "transfer/certificate-blob-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:DeleteCertificate", "transfer:DescribeCertificate", "transfer:ImportCertificate"], "path": "behavioral/transfer/check_certificate_blob_preserved.py", "service": "transfer"} {"check_id": "transfer.certificate-import-describe-delete-404", "deployments": [], "key": "transfer/certificate-import-describe-delete-404", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:DeleteCertificate", "transfer:DescribeCertificate", "transfer:ImportCertificate"], "path": "behavioral/transfer/check_certificate_import_describe_delete_404.py", "service": "transfer"} {"check_id": "transfer.certificate-unicode-description-rejected", "deployments": [], "key": "transfer/certificate-unicode-description-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:DeleteCertificate", "transfer:DescribeCertificate", "transfer:ImportCertificate", "transfer:ListCertificates", "transfer:UpdateCertificate"], "path": "behavioral/transfer/check_certificate_unicode_description_rejected.py", "service": "transfer"} {"check_id": "transfer.concurrent-update-server-optimistic-lock", "deployments": [], "key": "transfer/concurrent-update-server-optimistic-lock", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:UpdateServer"], "path": "behavioral/transfer/check_concurrent_update_server_optimistic_lock.py", "service": "transfer"} {"check_id": "transfer.concurrent-update-webapp-optimistic-lock", "deployments": [], "key": "transfer/concurrent-update-webapp-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sso-admin:CreateInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DescribeWebApp", "transfer:UpdateWebApp"], "path": "behavioral/transfer/check_concurrent_update_webapp_optimistic_lock.py", "service": "transfer"} {"check_id": "transfer.connector-config-exclusivity-and-described-shape", "deployments": [], "key": "transfer/connector-config-exclusivity-and-described-shape", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateConnector", "transfer:CreateProfile", "transfer:DeleteConnector", "transfer:DeleteProfile", "transfer:DescribeConnector", "transfer:ListConnectors"], "path": "behavioral/transfer/check_connector_config_exclusivity_and_described_shape.py", "service": "transfer"} {"check_id": "transfer.connector-create-describe-delete-404", "deployments": [], "key": "transfer/connector-create-describe-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:DescribeConnector", "transfer:UpdateConnector"], "path": "behavioral/transfer/check_connector_create_describe_delete_404.py", "service": "transfer"} {"check_id": "transfer.connector-lifecycle-create-describe-delete", "deployments": [], "key": "transfer/connector-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:DescribeConnector"], "path": "behavioral/transfer/check_connector_lifecycle_create_describe_delete.py", "service": "transfer"} {"check_id": "transfer.connector-lifecycle-create-update-delete", "deployments": [], "key": "transfer/connector-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:DescribeConnector", "transfer:ListConnectors", "transfer:UpdateConnector"], "path": "behavioral/transfer/check_connector_lifecycle_create_update_delete.py", "service": "transfer"} {"check_id": "transfer.create-access-duplicate-external-id-rejected", "deployments": [], "key": "transfer/create-access-duplicate-external-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity", "transfer:CreateAccess", "transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeAccess", "transfer:DescribeServer"], "path": "behavioral/transfer/check_create_access_duplicate_external_id_rejected.py", "service": "transfer"} {"check_id": "transfer.create-access-invalid-role-arn-rejected", "deployments": [], "key": "transfer/create-access-invalid-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateAccess", "transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeAccess"], "path": "behavioral/transfer/check_create_access_invalid_role_arn_rejected.py", "service": "transfer"} {"check_id": "transfer.create-access-on-service-managed-server-rejected", "deployments": [], "key": "transfer/create-access-on-service-managed-server-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "transfer:CreateAccess", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeAccess", "transfer:DescribeUser"], "path": "behavioral/transfer/check_create_access_on_service_managed_server_rejected.py", "service": "transfer"} {"check_id": "transfer.create-access-rejected-non-directory-server", "deployments": [], "key": "transfer/create-access-rejected-non-directory-server", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateAccess", "transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeAccess"], "path": "behavioral/transfer/check_create_access_rejected_non_directory_server.py", "service": "transfer"} {"check_id": "transfer.create-connector-duplicate-config-mints-independent-connectors", "deployments": [], "key": "transfer/create-connector-duplicate-config-mints-independent-connectors", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateConnector", "transfer:CreateProfile", "transfer:DeleteConnector", "transfer:DeleteProfile", "transfer:DescribeConnector", "transfer:ListConnectors"], "path": "behavioral/transfer/check_create_connector_duplicate_config_mints_independent_connectors.py", "service": "transfer"} {"check_id": "transfer.create-connector-invalid-url-rejected", "deployments": [], "key": "transfer/create-connector-invalid-url-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateConnector", "transfer:CreateProfile", "transfer:DeleteConnector", "transfer:DeleteProfile", "transfer:DescribeConnector", "transfer:ListConnectors"], "path": "behavioral/transfer/check_create_connector_invalid_url_rejected.py", "service": "transfer"} {"check_id": "transfer.create-connector-malformed-url-rejected", "deployments": [], "key": "transfer/create-connector-malformed-url-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:DescribeConnector", "transfer:ListConnectors"], "path": "behavioral/transfer/check_create_connector_malformed_url_rejected.py", "service": "transfer"} {"check_id": "transfer.create-connector-missing-url-rejected", "deployments": [], "key": "transfer/create-connector-missing-url-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:DescribeConnector", "transfer:ListConnectors"], "path": "behavioral/transfer/check_create_connector_missing_url_rejected.py", "service": "transfer"} {"check_id": "transfer.create-profile-invalid-type-rejected", "deployments": [], "key": "transfer/create-profile-invalid-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateProfile", "transfer:DeleteProfile", "transfer:ListProfiles"], "path": "behavioral/transfer/check_create_profile_invalid_type_rejected.py", "service": "transfer"} {"check_id": "transfer.create-server-invalid-endpoint-type-rejected", "deployments": [], "key": "transfer/create-server-invalid-endpoint-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:ListServers"], "path": "behavioral/transfer/check_create_server_invalid_endpoint_type_rejected.py", "service": "transfer"} {"check_id": "transfer.create-server-missing-iam-role-denied", "deployments": [], "key": "transfer/create-server-missing-iam-role-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:ListServers"], "path": "behavioral/transfer/check_create_server_missing_iam_role_denied.py", "service": "transfer"} {"check_id": "transfer.create-server-missing-permission-denied", "deployments": [], "key": "transfer/create-server-missing-permission-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:PutUserPolicy", "transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:ListServers"], "path": "behavioral/transfer/check_create_server_missing_permission_denied.py", "service": "transfer"} {"check_id": "transfer.create-server-rejects-invalid-protocol-and-idp-config", "deployments": [], "key": "transfer/create-server-rejects-invalid-protocol-and-idp-config", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DescribeSecurityPolicy", "transfer:DescribeServer", "transfer:ListServers"], "path": "behavioral/transfer/check_create_server_rejects_invalid_protocol_and_idp_config.py", "service": "transfer"} {"check_id": "transfer.create-user-duplicate-username-rejected", "deployments": [], "key": "transfer/create-user-duplicate-username-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser"], "path": "behavioral/transfer/check_create_user_duplicate_username_rejected.py", "service": "transfer"} {"check_id": "transfer.create-user-logical-home-directory-mapping-rules", "deployments": [], "key": "transfer/create-user-logical-home-directory-mapping-rules", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeServer", "transfer:DescribeUser", "transfer:ListUsers"], "path": "behavioral/transfer/check_create_user_logical_home_directory_mapping_rules.py", "service": "transfer"} {"check_id": "transfer.create-user-posix-id-out-of-range-rejected", "deployments": [], "key": "transfer/create-user-posix-id-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser"], "path": "behavioral/transfer/check_create_user_posix_id_out_of_range_rejected.py", "service": "transfer"} {"check_id": "transfer.create-user-unicode-homedirectory-round-trip", "deployments": [], "key": "transfer/create-user-unicode-homedirectory-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser"], "path": "behavioral/transfer/check_create_user_unicode_homedirectory_round_trip.py", "service": "transfer"} {"check_id": "transfer.create-webapp-without-identity-center-denied", "deployments": [], "key": "transfer/create-webapp-without-identity-center-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "transfer:CreateWebApp", "transfer:DescribeWebApp", "transfer:ListWebApps"], "path": "behavioral/transfer/check_create_webapp_without_identity_center_denied.py", "service": "transfer"} {"check_id": "transfer.create-workflow-rejects-unknown-step-type-and-targetless-custom", "deployments": [], "key": "transfer/create-workflow-rejects-unknown-step-type-and-targetless-custom", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateWorkflow", "transfer:DeleteWorkflow", "transfer:DescribeWorkflow", "transfer:ListWorkflows"], "path": "behavioral/transfer/check_create_workflow_rejects_unknown_step_type_and_targetless_custom.py", "service": "transfer"} {"check_id": "transfer.delete-access-on-service-managed-server-invalid-request-rejected", "deployments": [], "key": "transfer/delete-access-on-service-managed-server-invalid-request-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteAccess", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeAccess", "transfer:DescribeServer", "transfer:DescribeUser"], "path": "behavioral/transfer/check_delete_access_on_service_managed_server_invalid_request_rejected.py", "service": "transfer"} {"check_id": "transfer.delete-host-key-not-found-error", "deployments": [], "key": "transfer/delete-host-key-not-found-error", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteHostKey", "transfer:DeleteServer", "transfer:ImportHostKey", "transfer:ListHostKeys"], "path": "behavioral/transfer/check_delete_host_key_not_found_error.py", "service": "transfer"} {"check_id": "transfer.delete-profile-not-found", "deployments": [], "key": "transfer/delete-profile-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateProfile", "transfer:DeleteProfile"], "path": "behavioral/transfer/check_delete_profile_not_found.py", "service": "transfer"} {"check_id": "transfer.delete-server-nonexistent-resource-not-found-rejected", "deployments": [], "key": "transfer/delete-server-nonexistent-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer"], "path": "behavioral/transfer/check_delete_server_nonexistent_resource_not_found_rejected.py", "service": "transfer"} {"check_id": "transfer.delete-server-referenced-by-agreement-succeeds-and-orphans-agreement", "deployments": [], "key": "transfer/delete-server-referenced-by-agreement-succeeds-and-orphans-agreement", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketTagging", "transfer:CreateAgreement", "transfer:CreateProfile", "transfer:CreateServer", "transfer:DeleteAgreement", "transfer:DeleteProfile", "transfer:DeleteServer", "transfer:DescribeAgreement", "transfer:DescribeServer"], "path": "behavioral/transfer/check_delete_server_referenced_by_agreement_succeeds_and_orphans_agreement.py", "service": "transfer"} {"check_id": "transfer.delete-webapp-customization-conflict-blocked", "deployments": [], "key": "transfer/delete-webapp-customization-conflict-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sso-admin:CreateInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DeleteWebAppCustomization", "transfer:DescribeWebAppCustomization", "transfer:UpdateWebAppCustomization"], "path": "behavioral/transfer/check_delete_webapp_customization_conflict_blocked.py", "service": "transfer"} {"check_id": "transfer.delete-webapp-customization-conflict-while-in-use", "deployments": [], "key": "transfer/delete-webapp-customization-conflict-while-in-use", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sso-admin:CreateInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DeleteWebAppCustomization", "transfer:DescribeWebAppCustomization", "transfer:UpdateWebAppCustomization"], "path": "behavioral/transfer/check_delete_webapp_customization_conflict_while_in_use.py", "service": "transfer"} {"check_id": "transfer.delete-webapp-customization-while-referenced-conflict", "deployments": [], "key": "transfer/delete-webapp-customization-while-referenced-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DeleteWebAppCustomization", "transfer:DescribeWebAppCustomization", "transfer:UpdateWebAppCustomization"], "path": "behavioral/transfer/check_delete_webapp_customization_while_referenced_conflict.py", "service": "transfer"} {"check_id": "transfer.delete-workflow-referenced-by-server-rejected", "deployments": [], "key": "transfer/delete-workflow-referenced-by-server-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "transfer:CreateServer", "transfer:CreateWorkflow", "transfer:DeleteServer", "transfer:DeleteWorkflow", "transfer:DescribeWorkflow", "transfer:UpdateServer"], "path": "behavioral/transfer/check_delete_workflow_referenced_by_server_rejected.py", "service": "transfer"} {"check_id": "transfer.deploy-server-cfn-start-stop-behavior", "deployments": [], "key": "transfer/deploy-server-cfn-start-stop-behavior", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer"], "path": "behavioral/transfer/check_deploy_server_cfn_start_stop_behavior.py", "service": "transfer"} {"check_id": "transfer.deploy-server-cloudformation-then-start-stop-behaves", "deployments": [], "key": "transfer/deploy-server-cloudformation-then-start-stop-behaves", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer"], "path": "behavioral/transfer/check_deploy_server_cloudformation_then_start_stop_behaves.py", "service": "transfer"} {"check_id": "transfer.describe-security-policy-not-found", "deployments": [], "key": "transfer/describe-security-policy-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:DescribeSecurityPolicy", "transfer:ListSecurityPolicies"], "path": "behavioral/transfer/check_describe_security_policy_not_found.py", "service": "transfer"} {"check_id": "transfer.describe-webapp-access-denied-unauthorized-caller", "deployments": [], "key": "transfer/describe-webapp-access-denied-unauthorized-caller", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity", "transfer:DescribeWebApp"], "path": "behavioral/transfer/check_describe_webapp_access_denied_unauthorized_caller.py", "service": "transfer"} {"check_id": "transfer.describe-workflow-computed-step-defaults-and-order", "deployments": [], "key": "transfer/describe-workflow-computed-step-defaults-and-order", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateWorkflow", "transfer:DeleteWorkflow", "transfer:DescribeWorkflow", "transfer:ListWorkflows"], "path": "behavioral/transfer/check_describe_workflow_computed_step_defaults_and_order.py", "service": "transfer"} {"check_id": "transfer.duplicate-ssh-public-key-rejected", "deployments": [], "key": "transfer/duplicate-ssh-public-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser", "transfer:ImportSshPublicKey"], "path": "behavioral/transfer/check_duplicate_ssh_public_key_rejected.py", "service": "transfer"} {"check_id": "transfer.e2e-connector-remote-directory-flow", "deployments": [], "key": "transfer/e2e-connector-remote-directory-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:HeadObject", "s3:ListObjectsV2", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteConnector", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeServer", "transfer:StartDirectoryListing", "transfer:StartRemoteDelete", "transfer:StartRemoteMove", "transfer:StartServer", "transfer:TestConnection", "transfer:UpdateConnector"], "path": "behavioral/transfer/check_e2e_connector_remote_directory_flow.py", "service": "transfer"} {"check_id": "transfer.e2e-server-user-connector-file-transfer-flow", "deployments": [], "key": "transfer/e2e-server-user-connector-file-transfer-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteConnector", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeConnector", "transfer:DescribeServer", "transfer:ListFileTransferResults", "transfer:StartFileTransfer", "transfer:StartServer", "transfer:TestConnection", "transfer:UpdateConnector"], "path": "behavioral/transfer/check_e2e_server_user_connector_file_transfer_flow.py", "service": "transfer"} {"check_id": "transfer.e2e-server-user-file-transfer-flow", "deployments": [], "key": "transfer/e2e-server-user-file-transfer-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "sts:GetCallerIdentity", "transfer:CreateConnector", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteConnector", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeServer", "transfer:ListFileTransferResults", "transfer:StartFileTransfer", "transfer:StartServer", "transfer:TestConnection", "transfer:UpdateConnector"], "path": "behavioral/transfer/check_e2e_server_user_file_transfer_flow.py", "service": "transfer"} {"check_id": "transfer.file-transfer-result-status-visibility-ttl", "deployments": [], "key": "transfer/file-transfer-result-status-visibility-ttl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteConnector", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeServer", "transfer:ListFileTransferResults", "transfer:StartFileTransfer", "transfer:StartServer", "transfer:StopServer", "transfer:TestConnection", "transfer:UpdateConnector"], "path": "behavioral/transfer/check_file_transfer_result_status_visibility_ttl.py", "service": "transfer"} {"check_id": "transfer.host-key-added-timestamp-precision-preserved", "deployments": [], "key": "transfer/host-key-added-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteHostKey", "transfer:DeleteServer", "transfer:DescribeHostKey", "transfer:ImportHostKey"], "path": "behavioral/transfer/check_host_key_added_timestamp_precision_preserved.py", "service": "transfer"} {"check_id": "transfer.host-key-lifecycle-import-describe-delete", "deployments": [], "key": "transfer/host-key-lifecycle-import-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteHostKey", "transfer:DeleteServer", "transfer:DescribeHostKey", "transfer:ImportHostKey"], "path": "behavioral/transfer/check_host_key_lifecycle_import_describe_delete.py", "service": "transfer"} {"check_id": "transfer.hostkey-import-describe-delete-404", "deployments": [], "key": "transfer/hostkey-import-describe-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteHostKey", "transfer:DeleteServer", "transfer:DescribeHostKey", "transfer:ImportHostKey", "transfer:ListHostKeys"], "path": "behavioral/transfer/check_hostkey_import_describe_delete_404.py", "service": "transfer"} {"check_id": "transfer.import-certificate-timestamp-precision-preserved", "deployments": [], "key": "transfer/import-certificate-timestamp-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:DeleteCertificate", "transfer:DescribeCertificate", "transfer:ImportCertificate"], "path": "behavioral/transfer/check_import_certificate_timestamp_precision_preserved.py", "service": "transfer"} {"check_id": "transfer.import-host-key-duplicate-rejected", "deployments": [], "key": "transfer/import-host-key-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteHostKey", "transfer:DeleteServer", "transfer:ImportHostKey", "transfer:ListHostKeys"], "path": "behavioral/transfer/check_import_host_key_duplicate_rejected.py", "service": "transfer"} {"check_id": "transfer.import-hostkey-duplicate-resource-exists-rejected", "deployments": [], "key": "transfer/import-hostkey-duplicate-resource-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteHostKey", "transfer:DeleteServer", "transfer:ImportHostKey", "transfer:ListHostKeys"], "path": "behavioral/transfer/check_import_hostkey_duplicate_resource_exists_rejected.py", "service": "transfer"} {"check_id": "transfer.import-ssh-public-key-body-validated-and-scoped-to-user", "deployments": [], "key": "transfer/import-ssh-public-key-body-validated-and-scoped-to-user", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteSshPublicKey", "transfer:DeleteUser", "transfer:DescribeServer", "transfer:DescribeUser", "transfer:ImportSshPublicKey", "transfer:ListUsers"], "path": "behavioral/transfer/check_import_ssh_public_key_body_validated_and_scoped_to_user.py", "service": "transfer"} {"check_id": "transfer.import-ssh-public-key-duplicate-rejected", "deployments": [], "key": "transfer/import-ssh-public-key-duplicate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteSshPublicKey", "transfer:DeleteUser", "transfer:DescribeUser", "transfer:ImportSshPublicKey"], "path": "behavioral/transfer/check_import_ssh_public_key_duplicate_rejected.py", "service": "transfer"} {"check_id": "transfer.import-sshpublickey-duplicate-resource-exists-rejected", "deployments": [], "key": "transfer/import-sshpublickey-duplicate-resource-exists-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser", "transfer:ImportSshPublicKey"], "path": "behavioral/transfer/check_import_sshpublickey_duplicate_resource_exists_rejected.py", "service": "transfer"} {"check_id": "transfer.imported-host-key-active-without-downtime-window", "deployments": [], "key": "transfer/imported-host-key-active-without-downtime-window", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteHostKey", "transfer:DeleteServer", "transfer:DescribeHostKey", "transfer:DescribeServer", "transfer:ImportHostKey", "transfer:ListHostKeys"], "path": "behavioral/transfer/check_imported_host_key_active_without_downtime_window.py", "service": "transfer"} {"check_id": "transfer.list-file-transfer-results-preserves-submission-order", "deployments": [], "key": "transfer/list-file-transfer-results-preserves-submission-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:ListFileTransferResults", "transfer:StartFileTransfer"], "path": "behavioral/transfer/check_list_file_transfer_results_preserves_submission_order.py", "service": "transfer"} {"check_id": "transfer.list-profiles-pagination-next-token-exactness", "deployments": [], "key": "transfer/list-profiles-pagination-next-token-exactness", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateProfile", "transfer:DeleteProfile", "transfer:ListProfiles"], "path": "behavioral/transfer/check_list_profiles_pagination_next_token_exactness.py", "service": "transfer"} {"check_id": "transfer.list-profiles-reflects-created", "deployments": [], "key": "transfer/list-profiles-reflects-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateProfile", "transfer:DeleteProfile", "transfer:ListProfiles"], "path": "behavioral/transfer/check_list_profiles_reflects_created.py", "service": "transfer"} {"check_id": "transfer.list-security-policies-and-describe", "deployments": [], "key": "transfer/list-security-policies-and-describe", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:DescribeSecurityPolicy", "transfer:ListSecurityPolicies"], "path": "behavioral/transfer/check_list_security_policies_and_describe.py", "service": "transfer"} {"check_id": "transfer.nonexistent-server-id-refused-not-empty-success", "deployments": [], "key": "transfer/nonexistent-server-id-refused-not-empty-success", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteSshPublicKey", "transfer:DescribeServer", "transfer:ListServers", "transfer:ListUsers", "transfer:StartServer", "transfer:StopServer", "transfer:UpdateServer"], "path": "behavioral/transfer/check_nonexistent_server_id_refused_not_empty_success.py", "service": "transfer"} {"check_id": "transfer.profile-create-describe-delete", "deployments": [], "key": "transfer/profile-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateProfile", "transfer:DeleteProfile", "transfer:DescribeProfile"], "path": "behavioral/transfer/check_profile_create_describe_delete.py", "service": "transfer"} {"check_id": "transfer.security-policy-catalog-is-fixed-reference-data", "deployments": [], "key": "transfer/security-policy-catalog-is-fixed-reference-data", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:DescribeSecurityPolicy", "transfer:ListSecurityPolicies"], "path": "behavioral/transfer/check_security_policy_catalog_is_fixed_reference_data.py", "service": "transfer"} {"check_id": "transfer.send-workflow-step-state-unauthorized-denied", "deployments": [], "key": "transfer/send-workflow-step-state-unauthorized-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sts:AssumeRole", "sts:GetCallerIdentity", "transfer:SendWorkflowStepState"], "path": "behavioral/transfer/check_send_workflow_step_state_unauthorized_denied.py", "service": "transfer"} {"check_id": "transfer.server-auto-generates-host-key-when-none-supplied", "deployments": [], "key": "transfer/server-auto-generates-host-key-when-none-supplied", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeHostKey", "transfer:DescribeServer", "transfer:ListHostKeys"], "path": "behavioral/transfer/check_server_auto_generates_host_key_when_none_supplied.py", "service": "transfer"} {"check_id": "transfer.server-lifecycle-create-start-stop-delete", "deployments": [], "key": "transfer/server-lifecycle-create-start-stop-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer"], "path": "behavioral/transfer/check_server_lifecycle_create_start_stop_delete.py", "service": "transfer"} {"check_id": "transfer.server-lifecycle-start-stop-delete", "deployments": [], "key": "transfer/server-lifecycle-start-stop-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer"], "path": "behavioral/transfer/check_server_lifecycle_start_stop_delete.py", "service": "transfer"} {"check_id": "transfer.server-reaches-online-then-stops-offline", "deployments": [], "key": "transfer/server-reaches-online-then-stops-offline", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:ListServers", "transfer:StartServer", "transfer:StopServer"], "path": "behavioral/transfer/check_server_reaches_online_then_stops_offline.py", "service": "transfer"} {"check_id": "transfer.server-side-default-host-key-managed", "deployments": [], "key": "transfer/server-side-default-host-key-managed", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeHostKey", "transfer:DescribeServer", "transfer:ListHostKeys"], "path": "behavioral/transfer/check_server_side_default_host_key_managed.py", "service": "transfer"} {"check_id": "transfer.server-side-security-policy-enforced-default", "deployments": [], "key": "transfer/server-side-security-policy-enforced-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeSecurityPolicy", "transfer:DescribeServer"], "path": "behavioral/transfer/check_server_side_security_policy_enforced_default.py", "service": "transfer"} {"check_id": "transfer.ssh-public-key-bytes-preserved", "deployments": [], "key": "transfer/ssh-public-key-bytes-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser", "transfer:ImportSshPublicKey"], "path": "behavioral/transfer/check_ssh_public_key_bytes_preserved.py", "service": "transfer"} {"check_id": "transfer.sshpublickey-import-attach-delete-reflected", "deployments": [], "key": "transfer/sshpublickey-import-attach-delete-reflected", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteSshPublicKey", "transfer:DeleteUser", "transfer:DescribeUser", "transfer:ImportSshPublicKey"], "path": "behavioral/transfer/check_sshpublickey_import_attach_delete_reflected.py", "service": "transfer"} {"check_id": "transfer.start-file-transfer-inactive-connector-rejected", "deployments": [], "key": "transfer/start-file-transfer-inactive-connector-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:PutBucketTagging", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:DescribeConnector", "transfer:ListFileTransferResults", "transfer:StartFileTransfer"], "path": "behavioral/transfer/check_start_file_transfer_inactive_connector_rejected.py", "service": "transfer"} {"check_id": "transfer.start-remote-move-invalid-path-error", "deployments": [], "key": "transfer/start-remote-move-invalid-path-error", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "transfer:CreateConnector", "transfer:CreateProfile", "transfer:DeleteConnector", "transfer:DeleteProfile", "transfer:StartRemoteMove"], "path": "behavioral/transfer/check_start_remote_move_invalid_path_error.py", "service": "transfer"} {"check_id": "transfer.start-server-in-stopping-state-blocked", "deployments": [], "key": "transfer/start-server-in-stopping-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer"], "path": "behavioral/transfer/check_start_server_in_stopping_state_blocked.py", "service": "transfer"} {"check_id": "transfer.start-server-nonexistent-rejected", "deployments": [], "key": "transfer/start-server-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer"], "path": "behavioral/transfer/check_start_server_nonexistent_rejected.py", "service": "transfer"} {"check_id": "transfer.start-server-transitions-through-starting-before-online", "deployments": [], "key": "transfer/start-server-transitions-through-starting-before-online", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer"], "path": "behavioral/transfer/check_start_server_transitions_through_starting_before_online.py", "service": "transfer"} {"check_id": "transfer.tag-resource-and-list", "deployments": [], "key": "transfer/tag-resource-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateProfile", "transfer:DeleteProfile", "transfer:DescribeProfile", "transfer:ListTagsForResource", "transfer:TagResource"], "path": "behavioral/transfer/check_tag_resource_and_list.py", "service": "transfer"} {"check_id": "transfer.test-connection-connector-not-found", "deployments": [], "key": "transfer/test-connection-connector-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:DescribeConnector", "transfer:TestConnection"], "path": "behavioral/transfer/check_test_connection_connector_not_found.py", "service": "transfer"} {"check_id": "transfer.test-identity-provider-invalid-request-error", "deployments": [], "key": "transfer/test-identity-provider-invalid-request-error", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeServer", "transfer:TestIdentityProvider"], "path": "behavioral/transfer/check_test_identity_provider_invalid_request_error.py", "service": "transfer"} {"check_id": "transfer.test-identity-provider-invokes-configured-endpoint", "deployments": [], "key": "transfer/test-identity-provider-invokes-configured-endpoint", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity", "transfer:CreateServer", "transfer:DeleteServer", "transfer:TestIdentityProvider"], "path": "behavioral/transfer/check_test_identity_provider_invokes_configured_endpoint.py", "service": "transfer"} {"check_id": "transfer.test-identity-provider-service-managed-rejected", "deployments": [], "key": "transfer/test-identity-provider-service-managed-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sts:GetCallerIdentity", "transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:TestIdentityProvider"], "path": "behavioral/transfer/check_test_identity_provider_service_managed_rejected.py", "service": "transfer"} {"check_id": "transfer.test-identity-provider-wrong-server-type-error", "deployments": [], "key": "transfer/test-identity-provider-wrong-server-type-error", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "lambda:AddPermission", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "logs:DeleteLogGroup", "sts:GetCallerIdentity", "transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:TestIdentityProvider"], "path": "behavioral/transfer/check_test_identity_provider_wrong_server_type_error.py", "service": "transfer"} {"check_id": "transfer.untag-resource-removes-key", "deployments": [], "key": "transfer/untag-resource-removes-key", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateProfile", "transfer:DeleteProfile", "transfer:DescribeProfile", "transfer:ListTagsForResource", "transfer:TagResource", "transfer:UntagResource"], "path": "behavioral/transfer/check_untag_resource_removes_key.py", "service": "transfer"} {"check_id": "transfer.update-certificate-after-delete-not-found", "deployments": [], "key": "transfer/update-certificate-after-delete-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:DeleteCertificate", "transfer:DescribeCertificate", "transfer:ImportCertificate", "transfer:UpdateCertificate"], "path": "behavioral/transfer/check_update_certificate_after_delete_not_found.py", "service": "transfer"} {"check_id": "transfer.update-connector-nonexistent-resource-not-found-rejected", "deployments": [], "key": "transfer/update-connector-nonexistent-resource-not-found-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:DeleteConnector", "transfer:DescribeConnector", "transfer:UpdateConnector"], "path": "behavioral/transfer/check_update_connector_nonexistent_resource_not_found_rejected.py", "service": "transfer"} {"check_id": "transfer.update-server-concurrent-modification-conflict", "deployments": [], "key": "transfer/update-server-concurrent-modification-conflict", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer", "transfer:UpdateServer"], "path": "behavioral/transfer/check_update_server_concurrent_modification_conflict.py", "service": "transfer"} {"check_id": "transfer.update-server-conflicting-state-blocked", "deployments": [], "key": "transfer/update-server-conflicting-state-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer", "transfer:UpdateServer"], "path": "behavioral/transfer/check_update_server_conflicting_state_blocked.py", "service": "transfer"} {"check_id": "transfer.update-server-ip-address-type-conflict-while-online-rejected", "deployments": [], "key": "transfer/update-server-ip-address-type-conflict-while-online-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer", "transfer:UpdateServer"], "path": "behavioral/transfer/check_update_server_ip_address_type_conflict_while_online_rejected.py", "service": "transfer"} {"check_id": "transfer.update-server-ip-address-type-online-rejected", "deployments": [], "key": "transfer/update-server-ip-address-type-online-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["transfer:CreateServer", "transfer:DeleteServer", "transfer:DescribeServer", "transfer:StartServer", "transfer:StopServer", "transfer:UpdateServer"], "path": "behavioral/transfer/check_update_server_ip_address_type_online_rejected.py", "service": "transfer"} {"check_id": "transfer.update-user-invalid-policy-rejected", "deployments": [], "key": "transfer/update-user-invalid-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser", "transfer:UpdateUser"], "path": "behavioral/transfer/check_update_user_invalid_policy_rejected.py", "service": "transfer"} {"check_id": "transfer.update-user-malformed-role-arn-rejected", "deployments": [], "key": "transfer/update-user-malformed-role-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser", "transfer:UpdateUser"], "path": "behavioral/transfer/check_update_user_malformed_role_arn_rejected.py", "service": "transfer"} {"check_id": "transfer.update-webapp-customization-concurrent-conflict", "deployments": [], "key": "transfer/update-webapp-customization-concurrent-conflict", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DeleteWebAppCustomization", "transfer:DescribeWebAppCustomization", "transfer:UpdateWebAppCustomization"], "path": "behavioral/transfer/check_update_webapp_customization_concurrent_conflict.py", "service": "transfer"} {"check_id": "transfer.user-create-describe-delete-404", "deployments": [], "key": "transfer/user-create-describe-delete-404", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeServer", "transfer:DescribeUser", "transfer:ListServers", "transfer:ListUsers", "transfer:StartServer", "transfer:UpdateUser"], "path": "behavioral/transfer/check_user_create_describe_delete_404.py", "service": "transfer"} {"check_id": "transfer.user-home-directory-unicode-preserved", "deployments": [], "key": "transfer/user-home-directory-unicode-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser"], "path": "behavioral/transfer/check_user_home_directory_unicode_preserved.py", "service": "transfer"} {"check_id": "transfer.user-lifecycle-create-describe-delete", "deployments": [], "key": "transfer/user-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "transfer:CreateServer", "transfer:CreateUser", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DescribeUser", "transfer:ListUsers"], "path": "behavioral/transfer/check_user_lifecycle_create_describe_delete.py", "service": "transfer"} {"check_id": "transfer.webapp-customization-binary-data-plane-round-trip", "deployments": [], "key": "transfer/webapp-customization-binary-data-plane-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PutRolePolicy", "sso-admin:CreateInstance", "sso-admin:DescribeInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DescribeWebAppCustomization", "transfer:UpdateWebAppCustomization"], "path": "behavioral/transfer/check_webapp_customization_binary_data_plane_round_trip.py", "service": "transfer"} {"check_id": "transfer.webapp-customization-logo-binary-round-trip", "deployments": [], "key": "transfer/webapp-customization-logo-binary-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sso-admin:CreateInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DeleteWebAppCustomization", "transfer:DescribeWebAppCustomization", "transfer:UpdateWebAppCustomization"], "path": "behavioral/transfer/check_webapp_customization_logo_binary_round_trip.py", "service": "transfer"} {"check_id": "transfer.webapp-customization-update-reflected-immediately", "deployments": [], "key": "transfer/webapp-customization-update-reflected-immediately", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "sso-admin:CreateInstance", "sso-admin:DeleteInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DeleteWebAppCustomization", "transfer:DescribeWebAppCustomization", "transfer:UpdateWebAppCustomization"], "path": "behavioral/transfer/check_webapp_customization_update_reflected_immediately.py", "service": "transfer"} {"check_id": "transfer.webapp-lifecycle-create-describe-delete", "deployments": [], "key": "transfer/webapp-lifecycle-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "sso-admin:CreateInstance", "sso-admin:ListInstances", "transfer:CreateWebApp", "transfer:DeleteWebApp", "transfer:DescribeWebApp", "transfer:UpdateWebApp"], "path": "behavioral/transfer/check_webapp_lifecycle_create_describe_delete.py", "service": "transfer"} {"check_id": "transfer.workflow-create-describe-delete", "deployments": [], "key": "transfer/workflow-create-describe-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["transfer:CreateWorkflow", "transfer:DeleteWorkflow", "transfer:DescribeWorkflow", "transfer:ListExecutions"], "path": "behavioral/transfer/check_workflow_create_describe_delete.py", "service": "transfer"} {"check_id": "transfer.workflow-step-state-out-of-order-rejected", "deployments": [], "key": "transfer/workflow-step-state-out-of-order-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "logs:DeleteLogGroup", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret", "transfer:CreateConnector", "transfer:CreateServer", "transfer:CreateUser", "transfer:CreateWorkflow", "transfer:DeleteConnector", "transfer:DeleteServer", "transfer:DeleteUser", "transfer:DeleteWorkflow", "transfer:DescribeExecution", "transfer:DescribeServer", "transfer:ListFileTransferResults", "transfer:SendWorkflowStepState", "transfer:StartFileTransfer", "transfer:StartServer", "transfer:StopServer", "transfer:TestConnection", "transfer:UpdateConnector", "transfer:UpdateServer"], "path": "behavioral/transfer/check_workflow_step_state_out_of_order_rejected.py", "service": "transfer"} {"check_id": "translate.concurrent-terminology-import-same-name-no-corruption", "deployments": [], "key": "translate/concurrent-terminology-import-same-name-no-corruption", "labels": ["axis:happy-path", "plane:control"], "operations": ["translate:DeleteTerminology", "translate:GetTerminology", "translate:ImportTerminology"], "path": "behavioral/translate/check_concurrent_terminology_import_same_name_no_corruption.py", "service": "translate"} {"check_id": "translate.delete-terminology-then-get-returns-not-found", "deployments": [], "key": "translate/delete-terminology-then-get-returns-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["translate:DeleteTerminology", "translate:GetTerminology", "translate:ImportTerminology"], "path": "behavioral/translate/check_delete_terminology_then_get_returns_not_found.py", "service": "translate"} {"check_id": "translate.list-languages-unsupported-display-language-code-rejected", "deployments": [], "key": "translate/list-languages-unsupported-display-language-code-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["translate:ListLanguages"], "path": "behavioral/translate/check_list_languages_unsupported_display_language_code_rejected.py", "service": "translate"} {"check_id": "translate.list-terminologies-reflects-created-terminology", "deployments": [], "key": "translate/list-terminologies-reflects-created-terminology", "labels": ["axis:happy-path", "plane:control"], "operations": ["translate:DeleteTerminology", "translate:ImportTerminology", "translate:ListTerminologies"], "path": "behavioral/translate/check_list_terminologies_reflects_created_terminology.py", "service": "translate"} {"check_id": "translate.tag-resource-and-list-tags-round-trip", "deployments": [], "key": "translate/tag-resource-and-list-tags-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["translate:DeleteTerminology", "translate:ImportTerminology", "translate:ListTagsForResource", "translate:TagResource"], "path": "behavioral/translate/check_tag_resource_and_list_tags_round_trip.py", "service": "translate"} {"check_id": "translate.tag-resource-too-many-tags-rejected", "deployments": [], "key": "translate/tag-resource-too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["translate:DeleteTerminology", "translate:ImportTerminology", "translate:ListTagsForResource", "translate:TagResource"], "path": "behavioral/translate/check_tag_resource_too_many_tags_rejected.py", "service": "translate"} {"check_id": "translate.terminology-import-creates-resource-with-expected-properties", "deployments": [], "key": "translate/terminology-import-creates-resource-with-expected-properties", "labels": ["axis:happy-path", "plane:control"], "operations": ["translate:DeleteTerminology", "translate:GetTerminology", "translate:ImportTerminology"], "path": "behavioral/translate/check_terminology_import_creates_resource_with_expected_properties.py", "service": "translate"} {"check_id": "translate.terminology-import-overwrite-merge-strategy-updates-term-count", "deployments": [], "key": "translate/terminology-import-overwrite-merge-strategy-updates-term-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["translate:DeleteTerminology", "translate:GetTerminology", "translate:ImportTerminology"], "path": "behavioral/translate/check_terminology_import_overwrite_merge_strategy_updates_term_count.py", "service": "translate"} {"check_id": "translate.translate-document-plain-text-round-trip", "deployments": [], "key": "translate/translate-document-plain-text-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["translate:TranslateDocument"], "path": "behavioral/translate/check_translate_document_plain_text_round_trip.py", "service": "translate"} {"check_id": "translate.translate-text-auto-detect-source-language", "deployments": [], "key": "translate/translate-text-auto-detect-source-language", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["translate:TranslateText"], "path": "behavioral/translate/check_translate_text_auto_detect_source_language.py", "service": "translate"} {"check_id": "translate.translate-text-basic-round-trip", "deployments": [], "key": "translate/translate-text-basic-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["translate:TranslateText"], "path": "behavioral/translate/check_translate_text_basic_round_trip.py", "service": "translate"} {"check_id": "translate.translate-text-custom-terminology-applied", "deployments": [], "key": "translate/translate-text-custom-terminology-applied", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["translate:DeleteTerminology", "translate:ImportTerminology", "translate:TranslateText"], "path": "behavioral/translate/check_translate_text_custom_terminology_applied.py", "service": "translate"} {"check_id": "translate.translate-text-formality-setting-applied", "deployments": [], "key": "translate/translate-text-formality-setting-applied", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["translate:TranslateText"], "path": "behavioral/translate/check_translate_text_formality_setting_applied.py", "service": "translate"} {"check_id": "translate.translate-text-profanity-masking-setting", "deployments": [], "key": "translate/translate-text-profanity-masking-setting", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["translate:TranslateText"], "path": "behavioral/translate/check_translate_text_profanity_masking_setting.py", "service": "translate"} {"check_id": "translate.translate-text-size-limit-exceeded-rejected", "deployments": [], "key": "translate/translate-text-size-limit-exceeded-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["translate:TranslateText"], "path": "behavioral/translate/check_translate_text_size_limit_exceeded_rejected.py", "service": "translate"} {"check_id": "translate.translate-text-terminology-reference-not-found-rejected", "deployments": [], "key": "translate/translate-text-terminology-reference-not-found-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["translate:DeleteTerminology", "translate:GetTerminology", "translate:ImportTerminology", "translate:TranslateText"], "path": "behavioral/translate/check_translate_text_terminology_reference_not_found_rejected.py", "service": "translate"} {"check_id": "translate.translate-text-unsupported-language-pair-rejected", "deployments": [], "key": "translate/translate-text-unsupported-language-pair-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["translate:TranslateText"], "path": "behavioral/translate/check_translate_text_unsupported_language_pair_rejected.py", "service": "translate"} {"check_id": "translate.translation-job-completes-successfully", "deployments": [], "key": "translate/translation-job-completes-successfully", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "translate:DescribeTextTranslationJob", "translate:StartTextTranslationJob"], "path": "behavioral/translate/check_translation_job_completes_successfully.py", "service": "translate"} {"check_id": "translate.translation-job-stop-transitions-to-stopped", "deployments": [], "key": "translate/translation-job-stop-transitions-to-stopped", "labels": ["axis:happy-path", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:PutRolePolicy", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "s3:PutObject", "translate:DescribeTextTranslationJob", "translate:StartTextTranslationJob", "translate:StopTextTranslationJob"], "path": "behavioral/translate/check_translation_job_stop_transitions_to_stopped.py", "service": "translate"} {"check_id": "translate.untag-resource-removes-tag", "deployments": [], "key": "translate/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["translate:DeleteTerminology", "translate:ImportTerminology", "translate:ListTagsForResource", "translate:TagResource", "translate:UntagResource"], "path": "behavioral/translate/check_untag_resource_removes_tag.py", "service": "translate"} {"check_id": "trustedadvisor.batch-update-resource-exclusion-exceeds-max-items-rejected", "deployments": [], "key": "trustedadvisor/batch-update-resource-exclusion-exceeds-max-items-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:BatchUpdateRecommendationResourceExclusion", "trustedadvisor:GetRecommendation"], "path": "behavioral/trustedadvisor/check_batch_update_resource_exclusion_exceeds_max_items_rejected.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.batch-update-resource-exclusion-toggle-observable", "deployments": [], "key": "trustedadvisor/batch-update-resource-exclusion-toggle-observable", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:BatchUpdateRecommendationResourceExclusion", "trustedadvisor:ListChecks", "trustedadvisor:ListRecommendationResources", "trustedadvisor:ListRecommendations"], "path": "behavioral/trustedadvisor/check_batch_update_resource_exclusion_toggle_observable.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.get-recommendation-malformed-arn-rejected", "deployments": [], "key": "trustedadvisor/get-recommendation-malformed-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:GetRecommendation"], "path": "behavioral/trustedadvisor/check_get_recommendation_malformed_arn_rejected.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.get-recommendation-matches-list-summary", "deployments": [], "key": "trustedadvisor/get-recommendation-matches-list-summary", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:GetRecommendation", "trustedadvisor:ListRecommendations"], "path": "behavioral/trustedadvisor/check_get_recommendation_matches_list_summary.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-checks-aws-service-filter-consistency", "deployments": [], "key": "trustedadvisor/list-checks-aws-service-filter-consistency", "labels": ["axis:rejection", "plane:control"], "operations": ["trustedadvisor:ListChecks"], "path": "behavioral/trustedadvisor/check_list_checks_aws_service_filter_consistency.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-checks-catalog-smoke", "deployments": [], "key": "trustedadvisor/list-checks-catalog-smoke", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:ListChecks", "trustedadvisor:ListRecommendations"], "path": "behavioral/trustedadvisor/check_list_checks_catalog_smoke.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-checks-invalid-pillar-enum-rejected", "deployments": [], "key": "trustedadvisor/list-checks-invalid-pillar-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["trustedadvisor:ListChecks"], "path": "behavioral/trustedadvisor/check_list_checks_invalid_pillar_enum_rejected.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-checks-pagination-no-duplicates", "deployments": [], "key": "trustedadvisor/list-checks-pagination-no-duplicates", "labels": ["axis:rejection", "plane:control"], "operations": ["trustedadvisor:ListChecks"], "path": "behavioral/trustedadvisor/check_list_checks_pagination_no_duplicates.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-checks-pillar-filter-consistency", "deployments": [], "key": "trustedadvisor/list-checks-pillar-filter-consistency", "labels": ["axis:happy-path", "plane:control"], "operations": ["trustedadvisor:ListChecks"], "path": "behavioral/trustedadvisor/check_list_checks_pillar_filter_consistency.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-checks-source-filter-consistency", "deployments": [], "key": "trustedadvisor/list-checks-source-filter-consistency", "labels": ["axis:rejection", "plane:control"], "operations": ["trustedadvisor:ListChecks"], "path": "behavioral/trustedadvisor/check_list_checks_source_filter_consistency.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-recommendation-resources-exclusion-partition-invariant", "deployments": [], "key": "trustedadvisor/list-recommendation-resources-exclusion-partition-invariant", "labels": ["axis:happy-path", "plane:control"], "operations": ["trustedadvisor:ListRecommendationResources", "trustedadvisor:ListRecommendations"], "path": "behavioral/trustedadvisor/check_list_recommendation_resources_exclusion_partition_invariant.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-recommendation-resources-status-partition-invariant", "deployments": [], "key": "trustedadvisor/list-recommendation-resources-status-partition-invariant", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:ListRecommendationResources"], "path": "behavioral/trustedadvisor/check_list_recommendation_resources_status_partition_invariant.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-recommendations-check-identifier-filter-consistency", "deployments": [], "key": "trustedadvisor/list-recommendations-check-identifier-filter-consistency", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:ListChecks", "trustedadvisor:ListRecommendations"], "path": "behavioral/trustedadvisor/check_list_recommendations_check_identifier_filter_consistency.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-recommendations-for-resource-unknown-arn-returns-empty", "deployments": [], "key": "trustedadvisor/list-recommendations-for-resource-unknown-arn-returns-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:ListRecommendationsForResource"], "path": "behavioral/trustedadvisor/check_list_recommendations_for_resource_unknown_arn_returns_empty.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-recommendations-invalid-type-enum-rejected", "deployments": [], "key": "trustedadvisor/list-recommendations-invalid-type-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["trustedadvisor:ListRecommendations"], "path": "behavioral/trustedadvisor/check_list_recommendations_invalid_type_enum_rejected.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-recommendations-status-partition-invariant", "deployments": [], "key": "trustedadvisor/list-recommendations-status-partition-invariant", "labels": ["axis:rejection", "plane:control"], "operations": ["trustedadvisor:ListRecommendations"], "path": "behavioral/trustedadvisor/check_list_recommendations_status_partition_invariant.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.list-recommendations-type-partition-invariant", "deployments": [], "key": "trustedadvisor/list-recommendations-type-partition-invariant", "labels": ["axis:happy-path", "plane:control"], "operations": ["trustedadvisor:ListRecommendations"], "path": "behavioral/trustedadvisor/check_list_recommendations_type_partition_invariant.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.update-recommendation-lifecycle-concurrent-idempotent-writes", "deployments": [], "key": "trustedadvisor/update-recommendation-lifecycle-concurrent-idempotent-writes", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:GetRecommendation", "trustedadvisor:ListRecommendations", "trustedadvisor:UpdateRecommendationLifecycle"], "path": "behavioral/trustedadvisor/check_update_recommendation_lifecycle_concurrent_idempotent_writes.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.update-recommendation-lifecycle-full-cycle-transitions", "deployments": [], "key": "trustedadvisor/update-recommendation-lifecycle-full-cycle-transitions", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:GetRecommendation", "trustedadvisor:UpdateRecommendationLifecycle"], "path": "behavioral/trustedadvisor/check_update_recommendation_lifecycle_full_cycle_transitions.py", "service": "trustedadvisor"} {"check_id": "trustedadvisor.update-recommendation-lifecycle-short-reason-rejected", "deployments": [], "key": "trustedadvisor/update-recommendation-lifecycle-short-reason-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "trustedadvisor:UpdateRecommendationLifecycle"], "path": "behavioral/trustedadvisor/check_update_recommendation_lifecycle_short_reason_rejected.py", "service": "trustedadvisor"} {"check_id": "uxc.account-color-cycle-through-all-enum-values", "deployments": [], "key": "uxc/account-color-cycle-through-all-enum-values", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_account_color_cycle_through_all_enum_values.py", "service": "uxc"} {"check_id": "uxc.account-color-reset-to-none-after-being-set", "deployments": [], "key": "uxc/account-color-reset-to-none-after-being-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_account_color_reset_to_none_after_being_set.py", "service": "uxc"} {"check_id": "uxc.arbitrary-pattern-valid-service-id-accepted-without-existence-check", "deployments": [], "key": "uxc/arbitrary-pattern-valid-service-id-accepted-without-existence-check", "labels": ["axis:rejection", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_arbitrary_pattern_valid_service_id_accepted_without_existence_check.py", "service": "uxc"} {"check_id": "uxc.concurrent-visible-services-updates-atomic-replace", "deployments": [], "key": "uxc/concurrent-visible-services-updates-atomic-replace", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:ListServices", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_concurrent_visible_services_updates_atomic_replace.py", "service": "uxc"} {"check_id": "uxc.e2e-admin-curates-console-then-resets-to-default", "deployments": [], "key": "uxc/e2e-admin-curates-console-then-resets-to-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:ListServices", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_e2e_admin_curates_console_then_resets_to_default.py", "service": "uxc"} {"check_id": "uxc.invalid-account-color-enum-value-rejected", "deployments": [], "key": "uxc/invalid-account-color-enum-value-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_invalid_account_color_enum_value_rejected.py", "service": "uxc"} {"check_id": "uxc.list-services-malformed-next-token-rejected", "deployments": [], "key": "uxc/list-services-malformed-next-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["uxc:ListServices"], "path": "behavioral/uxc/check_list_services_malformed_next_token_rejected.py", "service": "uxc"} {"check_id": "uxc.list-services-max-results-page-size-respected", "deployments": [], "key": "uxc/list-services-max-results-page-size-respected", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:ListServices"], "path": "behavioral/uxc/check_list_services_max_results_page_size_respected.py", "service": "uxc"} {"check_id": "uxc.list-services-pagination-no-duplicates-or-gaps", "deployments": [], "key": "uxc/list-services-pagination-no-duplicates-or-gaps", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:ListServices"], "path": "behavioral/uxc/check_list_services_pagination_no_duplicates_or_gaps.py", "service": "uxc"} {"check_id": "uxc.list-services-values-usable-in-update-round-trip", "deployments": [], "key": "uxc/list-services-values-usable-in-update-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:ListServices", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_list_services_values_usable_in_update_round_trip.py", "service": "uxc"} {"check_id": "uxc.partial-update-preserves-unspecified-fields", "deployments": [], "key": "uxc/partial-update-preserves-unspecified-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_partial_update_preserves_unspecified_fields.py", "service": "uxc"} {"check_id": "uxc.update-denied-without-iam-permission-rejected", "deployments": [], "key": "uxc/update-denied-without-iam-permission-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_update_denied_without_iam_permission_rejected.py", "service": "uxc"} {"check_id": "uxc.update-idempotent-repeated-identical-call", "deployments": [], "key": "uxc/update-idempotent-repeated-identical-call", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_update_idempotent_repeated_identical_call.py", "service": "uxc"} {"check_id": "uxc.update-multiple-fields-single-call-all-persisted", "deployments": [], "key": "uxc/update-multiple-fields-single-call-all-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_update_multiple_fields_single_call_all_persisted.py", "service": "uxc"} {"check_id": "uxc.visible-regions-round-trip-after-update", "deployments": [], "key": "uxc/visible-regions-round-trip-after-update", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_visible_regions_round_trip_after_update.py", "service": "uxc"} {"check_id": "uxc.visible-service-invalid-pattern-rejected", "deployments": [], "key": "uxc/visible-service-invalid-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_visible_service_invalid_pattern_rejected.py", "service": "uxc"} {"check_id": "uxc.visible-services-empty-list-distinct-from-configured-list", "deployments": [], "key": "uxc/visible-services-empty-list-distinct-from-configured-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_visible_services_empty_list_distinct_from_configured_list.py", "service": "uxc"} {"check_id": "uxc.visible-services-exceed-max-size-rejected", "deployments": [], "key": "uxc/visible-services-exceed-max-size-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:ListServices", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_visible_services_exceed_max_size_rejected.py", "service": "uxc"} {"check_id": "uxc.visible-services-max-length-service-id-boundary-accepted", "deployments": [], "key": "uxc/visible-services-max-length-service-id-boundary-accepted", "labels": ["axis:rejection", "plane:control"], "operations": ["uxc:GetAccountCustomizations", "uxc:UpdateAccountCustomizations"], "path": "behavioral/uxc/check_visible_services_max_length_service_id_boundary_accepted.py", "service": "uxc"} {"check_id": "verifiedpermissions.batch-get-policy-partial-not-found", "deployments": [], "key": "verifiedpermissions/batch-get-policy-partial-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:BatchGetPolicy", "verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore"], "path": "behavioral/verifiedpermissions/check_batch_get_policy_partial_not_found.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.batch-is-authorized-mixed-decisions", "deployments": [], "key": "verifiedpermissions/batch-is-authorized-mixed-decisions", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:BatchIsAuthorized", "verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore"], "path": "behavioral/verifiedpermissions/check_batch_is_authorized_mixed_decisions.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.concurrent-create-policy-store-alias-race", "deployments": [], "key": "verifiedpermissions/concurrent-create-policy-store-alias-race", "labels": ["axis:rejection", "plane:control"], "operations": ["verifiedpermissions:CreatePolicyStore", "verifiedpermissions:CreatePolicyStoreAlias", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:DeletePolicyStoreAlias", "verifiedpermissions:GetPolicyStoreAlias"], "path": "behavioral/verifiedpermissions/check_concurrent_create_policy_store_alias_race.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.create-identity-source-nonexistent-user-pool-rejected", "deployments": [], "key": "verifiedpermissions/create-identity-source-nonexistent-user-pool-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "sts:GetCallerIdentity", "verifiedpermissions:CreateIdentitySource", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:ListIdentitySources"], "path": "behavioral/verifiedpermissions/check_create_identity_source_nonexistent_user_pool_rejected.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.create-policy-from-template-resolves-placeholders", "deployments": [], "key": "verifiedpermissions/create-policy-from-template-resolves-placeholders", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:CreatePolicyTemplate", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:DeletePolicyTemplate", "verifiedpermissions:GetPolicy", "verifiedpermissions:IsAuthorized"], "path": "behavioral/verifiedpermissions/check_create_policy_from_template_resolves_placeholders.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.create-policy-store-alias-conflict-while-pending-deletion-rejected", "deployments": [], "key": "verifiedpermissions/create-policy-store-alias-conflict-while-pending-deletion-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["verifiedpermissions:CreatePolicyStore", "verifiedpermissions:CreatePolicyStoreAlias", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:DeletePolicyStoreAlias", "verifiedpermissions:GetPolicyStoreAlias"], "path": "behavioral/verifiedpermissions/check_create_policy_store_alias_conflict_while_pending_deletion_rejected.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.delete-policy-store-alias-soft-delete-transitions-to-pending-deletion", "deployments": [], "key": "verifiedpermissions/delete-policy-store-alias-soft-delete-transitions-to-pending-deletion", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicyStore", "verifiedpermissions:CreatePolicyStoreAlias", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:DeletePolicyStoreAlias", "verifiedpermissions:GetPolicyStoreAlias", "verifiedpermissions:ListPolicyStoreAliases"], "path": "behavioral/verifiedpermissions/check_delete_policy_store_alias_soft_delete_transitions_to_pending_deletion.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.delete-policy-store-deletion-protection-blocks-delete-rejected", "deployments": [], "key": "verifiedpermissions/delete-policy-store-deletion-protection-blocks-delete-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:GetPolicyStore", "verifiedpermissions:UpdatePolicyStore"], "path": "behavioral/verifiedpermissions/check_delete_policy_store_deletion_protection_blocks_delete_rejected.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.delete-policy-template-conflict-with-linked-policy", "deployments": [], "key": "verifiedpermissions/delete-policy-template-conflict-with-linked-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:CreatePolicyTemplate", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:DeletePolicyTemplate", "verifiedpermissions:GetPolicy", "verifiedpermissions:GetPolicyTemplate", "verifiedpermissions:ListPolicies"], "path": "behavioral/verifiedpermissions/check_delete_policy_template_conflict_with_linked_policy.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.get-schema-lifecycle-not-found-then-present", "deployments": [], "key": "verifiedpermissions/get-schema-lifecycle-not-found-then-present", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:GetSchema", "verifiedpermissions:PutSchema"], "path": "behavioral/verifiedpermissions/check_get_schema_lifecycle_not_found_then_present.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.is-authorized-action-scope-denies-other-action", "deployments": [], "key": "verifiedpermissions/is-authorized-action-scope-denies-other-action", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorized"], "path": "behavioral/verifiedpermissions/check_is_authorized_action_scope_denies_other_action.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.is-authorized-context-type-mismatch-rejected", "deployments": [], "key": "verifiedpermissions/is-authorized-context-type-mismatch-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorized", "verifiedpermissions:PutSchema"], "path": "behavioral/verifiedpermissions/check_is_authorized_context_type_mismatch_rejected.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.is-authorized-default-deny-no-policy", "deployments": [], "key": "verifiedpermissions/is-authorized-default-deny-no-policy", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorized"], "path": "behavioral/verifiedpermissions/check_is_authorized_default_deny_no_policy.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.is-authorized-entity-hierarchy-grants-via-group", "deployments": [], "key": "verifiedpermissions/is-authorized-entity-hierarchy-grants-via-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorized"], "path": "behavioral/verifiedpermissions/check_is_authorized_entity_hierarchy_grants_via_group.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.is-authorized-forbid-overrides-permit", "deployments": [], "key": "verifiedpermissions/is-authorized-forbid-overrides-permit", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorized"], "path": "behavioral/verifiedpermissions/check_is_authorized_forbid_overrides_permit.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.is-authorized-permit-policy-allows", "deployments": [], "key": "verifiedpermissions/is-authorized-permit-policy-allows", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorized"], "path": "behavioral/verifiedpermissions/check_is_authorized_permit_policy_allows.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.is-authorized-when-clause-context-condition", "deployments": [], "key": "verifiedpermissions/is-authorized-when-clause-context-condition", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:IsAuthorized"], "path": "behavioral/verifiedpermissions/check_is_authorized_when_clause_context_condition.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.list-policies-pagination-returns-all", "deployments": [], "key": "verifiedpermissions/list-policies-pagination-returns-all", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:ListPolicies"], "path": "behavioral/verifiedpermissions/check_list_policies_pagination_returns_all.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.policy-store-alias-resolves-in-is-authorized", "deployments": [], "key": "verifiedpermissions/policy-store-alias-resolves-in-is-authorized", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:CreatePolicyStoreAlias", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:DeletePolicyStoreAlias", "verifiedpermissions:GetPolicyStoreAlias", "verifiedpermissions:IsAuthorized"], "path": "behavioral/verifiedpermissions/check_policy_store_alias_resolves_in_is_authorized.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.put-schema-strict-mode-validates-policy-actions", "deployments": [], "key": "verifiedpermissions/put-schema-strict-mode-validates-policy-actions", "labels": ["axis:rejection", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:GetPolicy", "verifiedpermissions:ListPolicies", "verifiedpermissions:PutSchema", "verifiedpermissions:UpdatePolicyStore"], "path": "behavioral/verifiedpermissions/check_put_schema_strict_mode_validates_policy_actions.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.tag-resource-and-list-tags-roundtrip", "deployments": [], "key": "verifiedpermissions/tag-resource-and-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:GetPolicyStore", "verifiedpermissions:ListTagsForResource", "verifiedpermissions:TagResource", "verifiedpermissions:UntagResource"], "path": "behavioral/verifiedpermissions/check_tag_resource_and_list_tags_roundtrip.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.tag-resource-too-many-tags-rejected", "deployments": [], "key": "verifiedpermissions/tag-resource-too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:GetPolicyStore", "verifiedpermissions:ListTagsForResource", "verifiedpermissions:TagResource", "verifiedpermissions:UntagResource"], "path": "behavioral/verifiedpermissions/check_tag_resource_too_many_tags_rejected.py", "service": "verifiedpermissions"} {"check_id": "verifiedpermissions.update-policy-immutable-principal-mutation-rejected", "deployments": [], "key": "verifiedpermissions/update-policy-immutable-principal-mutation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["verifiedpermissions:CreatePolicy", "verifiedpermissions:CreatePolicyStore", "verifiedpermissions:DeletePolicy", "verifiedpermissions:DeletePolicyStore", "verifiedpermissions:GetPolicy", "verifiedpermissions:GetPolicyStore", "verifiedpermissions:TagResource", "verifiedpermissions:UpdatePolicy"], "path": "behavioral/verifiedpermissions/check_update_policy_immutable_principal_mutation_rejected.py", "service": "verifiedpermissions"} {"check_id": "vpc-lattice.auth-policy-state-tracks-service-network-auth-type", "deployments": [], "key": "vpc-lattice/auth-policy-state-tracks-service-network-auth-type", "labels": ["axis:happy-path", "plane:control"], "operations": ["vpc-lattice:CreateServiceNetwork", "vpc-lattice:DeleteAuthPolicy", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:GetAuthPolicy", "vpc-lattice:PutAuthPolicy", "vpc-lattice:UpdateServiceNetwork"], "path": "behavioral/vpc-lattice/check_auth_policy_state_tracks_service_network_auth_type.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.batch-update-rule-partial-failure-keeps-successful-updates", "deployments": [], "key": "vpc-lattice/batch-update-rule-partial-failure-keeps-successful-updates", "labels": ["axis:rejection", "plane:control"], "operations": ["vpc-lattice:BatchUpdateRule", "vpc-lattice:CreateListener", "vpc-lattice:CreateRule", "vpc-lattice:CreateService", "vpc-lattice:DeleteListener", "vpc-lattice:DeleteRule", "vpc-lattice:DeleteService", "vpc-lattice:GetRule", "vpc-lattice:GetService"], "path": "behavioral/vpc-lattice/check_batch_update_rule_partial_failure_keeps_successful_updates.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.delete-service-network-with-active-service-association-rejected", "deployments": [], "key": "vpc-lattice/delete-service-network-with-active-service-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["vpc-lattice:CreateService", "vpc-lattice:CreateServiceNetwork", "vpc-lattice:CreateServiceNetworkServiceAssociation", "vpc-lattice:DeleteService", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:DeleteServiceNetworkServiceAssociation", "vpc-lattice:GetService", "vpc-lattice:GetServiceNetwork", "vpc-lattice:GetServiceNetworkServiceAssociation"], "path": "behavioral/vpc-lattice/check_delete_service_network_with_active_service_association_rejected.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.delete-service-with-active-service-network-association-rejected", "deployments": [], "key": "vpc-lattice/delete-service-with-active-service-network-association-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["vpc-lattice:CreateService", "vpc-lattice:CreateServiceNetwork", "vpc-lattice:CreateServiceNetworkServiceAssociation", "vpc-lattice:DeleteService", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:DeleteServiceNetworkServiceAssociation", "vpc-lattice:GetService", "vpc-lattice:GetServiceNetworkServiceAssociation"], "path": "behavioral/vpc-lattice/check_delete_service_with_active_service_network_association_rejected.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.deleting-a-service-network-is-rejected-while-an-association-survives-it", "deployments": [], "key": "vpc-lattice/deleting-a-service-network-is-rejected-while-an-association-survives-it", "labels": ["axis:rejection", "plane:control"], "operations": ["vpc-lattice:CreateService", "vpc-lattice:CreateServiceNetwork", "vpc-lattice:CreateServiceNetworkServiceAssociation", "vpc-lattice:DeleteService", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:DeleteServiceNetworkServiceAssociation", "vpc-lattice:GetService", "vpc-lattice:GetServiceNetwork", "vpc-lattice:GetServiceNetworkServiceAssociation"], "path": "behavioral/vpc-lattice/check_deleting_a_service_network_is_rejected_while_an_association_survives_it.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.duplicate-listener-rule-priority-rejected", "deployments": [], "key": "vpc-lattice/duplicate-listener-rule-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["vpc-lattice:CreateListener", "vpc-lattice:CreateRule", "vpc-lattice:CreateService", "vpc-lattice:DeleteListener", "vpc-lattice:DeleteRule", "vpc-lattice:DeleteService", "vpc-lattice:GetService"], "path": "behavioral/vpc-lattice/check_duplicate_listener_rule_priority_rejected.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.lambda-target-group-rejects-second-target-keeps-first", "deployments": [], "key": "vpc-lattice/lambda-target-group-rejects-second-target-keeps-first", "labels": ["axis:rejection", "plane:control"], "operations": ["iam:CreateRole", "iam:DeleteRole", "lambda:CreateFunction", "lambda:DeleteFunction", "vpc-lattice:CreateTargetGroup", "vpc-lattice:DeleteTargetGroup", "vpc-lattice:DeregisterTargets", "vpc-lattice:GetTargetGroup", "vpc-lattice:ListTargets", "vpc-lattice:RegisterTargets"], "path": "behavioral/vpc-lattice/check_lambda_target_group_rejects_second_target_keeps_first.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.put-auth-policy-malformed-json-rejected-existing-unchanged", "deployments": [], "key": "vpc-lattice/put-auth-policy-malformed-json-rejected-existing-unchanged", "labels": ["axis:rejection", "plane:control"], "operations": ["vpc-lattice:CreateServiceNetwork", "vpc-lattice:DeleteAuthPolicy", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:GetAuthPolicy", "vpc-lattice:PutAuthPolicy"], "path": "behavioral/vpc-lattice/check_put_auth_policy_malformed_json_rejected_existing_unchanged.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.resource-policy-survives-unrelated-update-then-clears", "deployments": [], "key": "vpc-lattice/resource-policy-survives-unrelated-update-then-clears", "labels": ["axis:happy-path", "plane:control"], "operations": ["vpc-lattice:CreateServiceNetwork", "vpc-lattice:DeleteResourcePolicy", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:GetResourcePolicy", "vpc-lattice:GetServiceNetwork", "vpc-lattice:PutResourcePolicy", "vpc-lattice:UpdateServiceNetwork"], "path": "behavioral/vpc-lattice/check_resource_policy_survives_unrelated_update_then_clears.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.service-network-service-association-propagates-dns-and-clears", "deployments": [], "key": "vpc-lattice/service-network-service-association-propagates-dns-and-clears", "labels": ["axis:happy-path", "plane:control"], "operations": ["vpc-lattice:CreateService", "vpc-lattice:CreateServiceNetwork", "vpc-lattice:CreateServiceNetworkServiceAssociation", "vpc-lattice:DeleteService", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:DeleteServiceNetworkServiceAssociation", "vpc-lattice:GetService", "vpc-lattice:GetServiceNetworkServiceAssociation"], "path": "behavioral/vpc-lattice/check_service_network_service_association_propagates_dns_and_clears.py", "service": "vpc-lattice"} {"check_id": "vpc-lattice.tags-round-trip-isolated-across-resources", "deployments": [], "key": "vpc-lattice/tags-round-trip-isolated-across-resources", "labels": ["axis:happy-path", "plane:control"], "operations": ["vpc-lattice:CreateServiceNetwork", "vpc-lattice:DeleteServiceNetwork", "vpc-lattice:ListTagsForResource", "vpc-lattice:TagResource", "vpc-lattice:UntagResource"], "path": "behavioral/vpc-lattice/check_tags_round_trip_isolated_across_resources.py", "service": "vpc-lattice"} {"check_id": "wafv2.apikey-create-idempotent-on-domain-set", "deployments": [], "key": "wafv2/apikey-create-idempotent-on-domain-set", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:GetDecryptedAPIKey", "wafv2:ListAPIKeys"], "path": "behavioral/wafv2/check_apikey_create_idempotent_on_domain_set.py", "service": "wafv2"} {"check_id": "wafv2.apikey-decrypt-invalid-format-rejected", "deployments": [], "key": "wafv2/apikey-decrypt-invalid-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:GetDecryptedAPIKey"], "path": "behavioral/wafv2/check_apikey_decrypt_invalid_format_rejected.py", "service": "wafv2"} {"check_id": "wafv2.apikey-decrypt-payload-round-trip", "deployments": [], "key": "wafv2/apikey-decrypt-payload-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:GetDecryptedAPIKey"], "path": "behavioral/wafv2/check_apikey_decrypt_payload_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.apikey-decrypted-value-byte-equal-to-generated", "deployments": [], "key": "wafv2/apikey-decrypted-value-byte-equal-to-generated", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:GetDecryptedAPIKey"], "path": "behavioral/wafv2/check_apikey_decrypted_value_byte_equal_to_generated.py", "service": "wafv2"} {"check_id": "wafv2.apikey-invalid-token-domain-rejected", "deployments": [], "key": "wafv2/apikey-invalid-token-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:ListAPIKeys"], "path": "behavioral/wafv2/check_apikey_invalid_token_domain_rejected.py", "service": "wafv2"} {"check_id": "wafv2.apikey-lifecycle-create-list-delete", "deployments": [], "key": "wafv2/apikey-lifecycle-create-list-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey"], "path": "behavioral/wafv2/check_apikey_lifecycle_create_list_delete.py", "service": "wafv2"} {"check_id": "wafv2.apikey-token-domain-limit-and-validation-layers-rejected", "deployments": [], "key": "wafv2/apikey-token-domain-limit-and-validation-layers-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:ListAPIKeys"], "path": "behavioral/wafv2/check_apikey_token_domain_limit_and_validation_layers_rejected.py", "service": "wafv2"} {"check_id": "wafv2.associate-webacl-pricing-plan-feature-denied", "deployments": [], "key": "wafv2/associate-webacl-pricing-plan-feature-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_associate_webacl_pricing_plan_feature_denied.py", "service": "wafv2"} {"check_id": "wafv2.associate-webacl-unsupported-resource-rejected", "deployments": [], "key": "wafv2/associate-webacl-unsupported-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_associate_webacl_unsupported_resource_rejected.py", "service": "wafv2"} {"check_id": "wafv2.capacity-scales-linearly-with-rule-count", "deployments": [], "key": "wafv2/capacity-scales-linearly-with-rule-count", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity"], "path": "behavioral/wafv2/check_capacity_scales_linearly_with_rule_count.py", "service": "wafv2"} {"check_id": "wafv2.captcha-and-challenge-actions-return-their-documented-edge-response", "deployments": [], "key": "wafv2/captcha-and-challenge-actions-return-their-documented-edge-response", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_captcha_and_challenge_actions_return_their_documented_edge_response.py", "service": "wafv2"} {"check_id": "wafv2.check-capacity-nested-logical-statement-composition", "deployments": [], "key": "wafv2/check-capacity-nested-logical-statement-composition", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity"], "path": "behavioral/wafv2/check_check_capacity_nested_logical_statement_composition.py", "service": "wafv2"} {"check_id": "wafv2.check-capacity-rate-based-custom-key-increments", "deployments": [], "key": "wafv2/check-capacity-rate-based-custom-key-increments", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity"], "path": "behavioral/wafv2/check_check_capacity_rate_based_custom_key_increments.py", "service": "wafv2"} {"check_id": "wafv2.check-capacity-statement-type-base-wcus", "deployments": [], "key": "wafv2/check-capacity-statement-type-base-wcus", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity"], "path": "behavioral/wafv2/check_check_capacity_statement_type_base_wcus.py", "service": "wafv2"} {"check_id": "wafv2.check-capacity-text-transformation-wcu-delta", "deployments": [], "key": "wafv2/check-capacity-text-transformation-wcu-delta", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity"], "path": "behavioral/wafv2/check_check_capacity_text_transformation_wcu_delta.py", "service": "wafv2"} {"check_id": "wafv2.checkcapacity-wcu-cost-model-and-ceiling", "deployments": [], "key": "wafv2/checkcapacity-wcu-cost-model-and-ceiling", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_checkcapacity_wcu_cost_model_and_ceiling.py", "service": "wafv2"} {"check_id": "wafv2.concurrent-ipset-update-lock-contention", "deployments": [], "key": "wafv2/concurrent-ipset-update-lock-contention", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_concurrent_ipset_update_lock_contention.py", "service": "wafv2"} {"check_id": "wafv2.count-action-does-not-block-and-does-not-terminate-evaluation", "deployments": [], "key": "wafv2/count-action-does-not-block-and-does-not-terminate-evaluation", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_count_action_does_not_block_and_does_not_terminate_evaluation.py", "service": "wafv2"} {"check_id": "wafv2.create-webacl-duplicate-rule-name-within-webacl-rejected", "deployments": [], "key": "wafv2/create-webacl-duplicate-rule-name-within-webacl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_create_webacl_duplicate_rule_name_within_webacl_rejected.py", "service": "wafv2"} {"check_id": "wafv2.create-webacl-managed-rule-group-pinned-version-persisted", "deployments": [], "key": "wafv2/create-webacl-managed-rule-group-pinned-version-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DescribeManagedRuleGroup", "wafv2:GetWebACL", "wafv2:ListAvailableManagedRuleGroupVersions", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_create_webacl_managed_rule_group_pinned_version_persisted.py", "service": "wafv2"} {"check_id": "wafv2.createapikey-invalid-parameter-empty-domain-rejected", "deployments": [], "key": "wafv2/createapikey-invalid-parameter-empty-domain-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:ListAPIKeys"], "path": "behavioral/wafv2/check_createapikey_invalid_parameter_empty_domain_rejected.py", "service": "wafv2"} {"check_id": "wafv2.default-action-block-refuses-unmatched-requests-and-an-allow-rule-admits-one", "deployments": [], "key": "wafv2/default-action-block-refuses-unmatched-requests-and-an-allow-rule-admits-one", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_default_action_block_refuses_unmatched_requests_and_an_allow_rule_admits_one.py", "service": "wafv2"} {"check_id": "wafv2.delete-apikey-nonexistent-rejected", "deployments": [], "key": "wafv2/delete-apikey-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:GetDecryptedAPIKey", "wafv2:ListAPIKeys"], "path": "behavioral/wafv2/check_delete_apikey_nonexistent_rejected.py", "service": "wafv2"} {"check_id": "wafv2.delete-firewall-manager-rule-groups-nonexistent-rejected", "deployments": [], "key": "wafv2/delete-firewall-manager-rule-groups-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteFirewallManagerRuleGroups", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_delete_firewall_manager_rule_groups_nonexistent_rejected.py", "service": "wafv2"} {"check_id": "wafv2.delete-ipset-referenced-by-webacl-rejected", "deployments": [], "key": "wafv2/delete-ipset-referenced-by-webacl-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:CreateWebACL", "wafv2:DeleteIPSet", "wafv2:DeleteWebACL", "wafv2:GetIPSet", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_delete_ipset_referenced_by_webacl_rejected.py", "service": "wafv2"} {"check_id": "wafv2.delete-webacl-associated-with-resource-blocked", "deployments": [], "key": "wafv2/delete-webacl-associated-with-resource-blocked", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_delete_webacl_associated_with_resource_blocked.py", "service": "wafv2"} {"check_id": "wafv2.delete-webacl-blocked-while-associated-rejected", "deployments": [], "key": "wafv2/delete-webacl-blocked-while-associated-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_delete_webacl_blocked_while_associated_rejected.py", "service": "wafv2"} {"check_id": "wafv2.deploy-ipset-cfn-blocks-listed-address", "deployments": [], "key": "wafv2/deploy-ipset-cfn-blocks-listed-address", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wafv2:GetIPSet"], "path": "behavioral/wafv2/check_deploy_ipset_cfn_blocks_listed_address.py", "service": "wafv2"} {"check_id": "wafv2.deploy-ipset-cfn-referenced-webacl-rule", "deployments": [], "key": "wafv2/deploy-ipset-cfn-referenced-webacl-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetIPSet", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_deploy_ipset_cfn_referenced_webacl_rule.py", "service": "wafv2"} {"check_id": "wafv2.deploy-ipset-cloudformation-membership-enforced", "deployments": [], "key": "wafv2/deploy-ipset-cloudformation-membership-enforced", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetIPSet"], "path": "behavioral/wafv2/check_deploy_ipset_cloudformation_membership_enforced.py", "service": "wafv2"} {"check_id": "wafv2.deploy-webacl-cfn-blocks-matching-request", "deployments": [], "key": "wafv2/deploy-webacl-cfn-blocks-matching-request", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wafv2:AssociateWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_deploy_webacl_cfn_blocks_matching_request.py", "service": "wafv2"} {"check_id": "wafv2.deploy-webacl-cfn-enforces-default-block-action", "deployments": [], "key": "wafv2/deploy-webacl-cfn-enforces-default-block-action", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_deploy_webacl_cfn_enforces_default_block_action.py", "service": "wafv2"} {"check_id": "wafv2.deploy-webacl-cloudformation-enforces-block-rule", "deployments": [], "key": "wafv2/deploy-webacl-cloudformation-enforces-block-rule", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "wafv2:AssociateWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_deploy_webacl_cloudformation_enforces_block_rule.py", "service": "wafv2"} {"check_id": "wafv2.describe-managed-products", "deployments": [], "key": "wafv2/describe-managed-products", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:DescribeAllManagedProducts", "wafv2:DescribeManagedProductsByVendor"], "path": "behavioral/wafv2/check_describe_managed_products.py", "service": "wafv2"} {"check_id": "wafv2.describe-managed-rule-group-nonexistent-rejected", "deployments": [], "key": "wafv2/describe-managed-rule-group-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:DescribeManagedRuleGroup"], "path": "behavioral/wafv2/check_describe_managed_rule_group_nonexistent_rejected.py", "service": "wafv2"} {"check_id": "wafv2.disassociate-webacl-removes-association-visible-in-getwebaclforresource", "deployments": [], "key": "wafv2/disassociate-webacl-removes-association-visible-in-getwebaclforresource", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_disassociate_webacl_removes_association_visible_in_getwebaclforresource.py", "service": "wafv2"} {"check_id": "wafv2.disassociate-webacl-unsupported-resource-rejected", "deployments": [], "key": "wafv2/disassociate-webacl-unsupported-resource-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_disassociate_webacl_unsupported_resource_rejected.py", "service": "wafv2"} {"check_id": "wafv2.duplicate-ipset-name-rejected", "deployments": [], "key": "wafv2/duplicate-ipset-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:ListIPSets"], "path": "behavioral/wafv2/check_duplicate_ipset_name_rejected.py", "service": "wafv2"} {"check_id": "wafv2.e2e-apikey-generate-decrypt-then-delete-invalidates", "deployments": [], "key": "wafv2/e2e-apikey-generate-decrypt-then-delete-invalidates", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateAPIKey", "wafv2:DeleteAPIKey", "wafv2:GetDecryptedAPIKey"], "path": "behavioral/wafv2/check_e2e_apikey_generate_decrypt_then_delete_invalidates.py", "service": "wafv2"} {"check_id": "wafv2.e2e-create-associate-block-disassociate-teardown", "deployments": [], "key": "wafv2/e2e-create-associate-block-disassociate-teardown", "labels": ["axis:happy-path", "plane:control"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateIPSet", "wafv2:CreateWebACL", "wafv2:DeleteIPSet", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetIPSet", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:ListResourcesForWebACL"], "path": "behavioral/wafv2/check_e2e_create_associate_block_disassociate_teardown.py", "service": "wafv2"} {"check_id": "wafv2.e2e-ipset-block-then-update-allows-traffic", "deployments": [], "key": "wafv2/e2e-ipset-block-then-update-allows-traffic", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateIPSet", "wafv2:CreateWebACL", "wafv2:DeleteIPSet", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetIPSet", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateIPSet", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_e2e_ipset_block_then_update_allows_traffic.py", "service": "wafv2"} {"check_id": "wafv2.e2e-logging-capture-then-teardown", "deployments": [], "key": "wafv2/e2e-logging-capture-then-teardown", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "logs:CreateLogGroup", "logs:DeleteLogGroup", "sts:GetCallerIdentity", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetLoggingConfiguration", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:ListLoggingConfigurations", "wafv2:PutLoggingConfiguration"], "path": "behavioral/wafv2/check_e2e_logging_capture_then_teardown.py", "service": "wafv2"} {"check_id": "wafv2.e2e-logging-configuration-capture-flow", "deployments": [], "key": "wafv2/e2e-logging-configuration-capture-flow", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObjects", "s3:GetObject", "s3:ListObjectsV2", "s3:PutBucketTagging", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetLoggingConfiguration", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:PutLoggingConfiguration"], "path": "behavioral/wafv2/check_e2e_logging_configuration_capture_flow.py", "service": "wafv2"} {"check_id": "wafv2.e2e-logging-configuration-lifecycle-with-traffic", "deployments": [], "key": "wafv2/e2e-logging-configuration-lifecycle-with-traffic", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetLoggingConfiguration", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:ListLoggingConfigurations", "wafv2:PutLoggingConfiguration"], "path": "behavioral/wafv2/check_e2e_logging_configuration_lifecycle_with_traffic.py", "service": "wafv2"} {"check_id": "wafv2.e2e-webacl-blocks-traffic-and-teardown-removes-effect", "deployments": [], "key": "wafv2/e2e-webacl-blocks-traffic-and-teardown-removes-effect", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:DeleteRestApi", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateIPSet", "wafv2:CreateRuleGroup", "wafv2:CreateWebACL", "wafv2:DeleteIPSet", "wafv2:DeleteRuleGroup", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetIPSet", "wafv2:GetRuleGroup", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_e2e_webacl_blocks_traffic_and_teardown_removes_effect.py", "service": "wafv2"} {"check_id": "wafv2.generate-mobile-sdk-release-url-invalid-platform-rejected", "deployments": [], "key": "wafv2/generate-mobile-sdk-release-url-invalid-platform-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:GenerateMobileSdkReleaseUrl", "wafv2:ListMobileSdkReleases"], "path": "behavioral/wafv2/check_generate_mobile_sdk_release_url_invalid_platform_rejected.py", "service": "wafv2"} {"check_id": "wafv2.get-revenue-statistics-empty-for-new-webacl", "deployments": [], "key": "wafv2/get-revenue-statistics-empty-for-new-webacl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sts:GetCallerIdentity", "wafv2:GetRevenueStatistics"], "path": "behavioral/wafv2/check_get_revenue_statistics_empty_for_new_webacl.py", "service": "wafv2"} {"check_id": "wafv2.get-revenue-statistics-summary-empty-for-new-webacl", "deployments": [], "key": "wafv2/get-revenue-statistics-summary-empty-for-new-webacl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sts:GetCallerIdentity", "wafv2:GetRevenueStatisticsSummary"], "path": "behavioral/wafv2/check_get_revenue_statistics_summary_empty_for_new_webacl.py", "service": "wafv2"} {"check_id": "wafv2.get-revenue-statistics-time-series-empty-for-new-webacl", "deployments": [], "key": "wafv2/get-revenue-statistics-time-series-empty-for-new-webacl", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["sts:GetCallerIdentity", "wafv2:GetRevenueStatisticsTimeSeries"], "path": "behavioral/wafv2/check_get_revenue_statistics_time_series_empty_for_new_webacl.py", "service": "wafv2"} {"check_id": "wafv2.get-sampled-requests-empty-for-new-webacl", "deployments": [], "key": "wafv2/get-sampled-requests-empty-for-new-webacl", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:GetSampledRequests"], "path": "behavioral/wafv2/check_get_sampled_requests_empty_for_new_webacl.py", "service": "wafv2"} {"check_id": "wafv2.get-top-path-statistics-pricing-plan-denied", "deployments": [], "key": "wafv2/get-top-path-statistics-pricing-plan-denied", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetTopPathStatisticsByTraffic"], "path": "behavioral/wafv2/check_get_top_path_statistics_pricing_plan_denied.py", "service": "wafv2"} {"check_id": "wafv2.get-top-path-statistics-pricing-plan-rejected", "deployments": [], "key": "wafv2/get-top-path-statistics-pricing-plan-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetSampledRequests", "wafv2:GetTopPathStatisticsByTraffic", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_get_top_path_statistics_pricing_plan_rejected.py", "service": "wafv2"} {"check_id": "wafv2.get-webacl-for-resource-unsupported-arn-rejected", "deployments": [], "key": "wafv2/get-webacl-for-resource-unsupported-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_get_webacl_for_resource_unsupported_arn_rejected.py", "service": "wafv2"} {"check_id": "wafv2.get-webacl-nonexistent-id-rejected", "deployments": [], "key": "wafv2/get-webacl-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_get_webacl_nonexistent_id_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-address-list-round-trip-preserves-order-and-cidr", "deployments": [], "key": "wafv2/ipset-address-list-round-trip-preserves-order-and-cidr", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet"], "path": "behavioral/wafv2/check_ipset_address_list_round_trip_preserves_order_and_cidr.py", "service": "wafv2"} {"check_id": "wafv2.ipset-addresses-round-trip-order-preserved", "deployments": [], "key": "wafv2/ipset-addresses-round-trip-order-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_ipset_addresses_round_trip_order_preserved.py", "service": "wafv2"} {"check_id": "wafv2.ipset-concurrent-updates-single-winner", "deployments": [], "key": "wafv2/ipset-concurrent-updates-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_ipset_concurrent_updates_single_winner.py", "service": "wafv2"} {"check_id": "wafv2.ipset-create-get-update-delete-lifecycle", "deployments": [], "key": "wafv2/ipset-create-get-update-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_ipset_create_get_update_delete_lifecycle.py", "service": "wafv2"} {"check_id": "wafv2.ipset-delete-blocked-while-referenced", "deployments": [], "key": "wafv2/ipset-delete-blocked-while-referenced", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:CreateRuleGroup", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:GetRuleGroup", "wafv2:ListIPSets", "wafv2:UpdateIPSet", "wafv2:UpdateRuleGroup"], "path": "behavioral/wafv2/check_ipset_delete_blocked_while_referenced.py", "service": "wafv2"} {"check_id": "wafv2.ipset-delete-stale-locktoken-rejected", "deployments": [], "key": "wafv2/ipset-delete-stale-locktoken-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_ipset_delete_stale_locktoken_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-duplicate-name-rejected", "deployments": [], "key": "wafv2/ipset-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet"], "path": "behavioral/wafv2/check_ipset_duplicate_name_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-get-nonexistent-id-rejected", "deployments": [], "key": "wafv2/ipset-get-nonexistent-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet"], "path": "behavioral/wafv2/check_ipset_get_nonexistent_id_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-invalid-cidr-rejected", "deployments": [], "key": "wafv2/ipset-invalid-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet"], "path": "behavioral/wafv2/check_ipset_invalid_cidr_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-invalid-name-rejected", "deployments": [], "key": "wafv2/ipset-invalid-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet"], "path": "behavioral/wafv2/check_ipset_invalid_name_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-ipv6-cidr-notation-preserved", "deployments": [], "key": "wafv2/ipset-ipv6-cidr-notation-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_ipset_ipv6_cidr_notation_preserved.py", "service": "wafv2"} {"check_id": "wafv2.ipset-malformed-cidr-rejected", "deployments": [], "key": "wafv2/ipset-malformed-cidr-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:ListIPSets"], "path": "behavioral/wafv2/check_ipset_malformed_cidr_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-mismatched-ip-version-rejected", "deployments": [], "key": "wafv2/ipset-mismatched-ip-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:ListIPSets"], "path": "behavioral/wafv2/check_ipset_mismatched_ip_version_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-stale-lock-token-rejected", "deployments": [], "key": "wafv2/ipset-stale-lock-token-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_ipset_stale_lock_token_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-stale-locktoken-update-rejected", "deployments": [], "key": "wafv2/ipset-stale-locktoken-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_ipset_stale_locktoken_update_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-update-stale-locktoken-rejected", "deployments": [], "key": "wafv2/ipset-update-stale-locktoken-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_ipset_update_stale_locktoken_rejected.py", "service": "wafv2"} {"check_id": "wafv2.ipset-version-mismatch-rejected", "deployments": [], "key": "wafv2/ipset-version-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet"], "path": "behavioral/wafv2/check_ipset_version_mismatch_rejected.py", "service": "wafv2"} {"check_id": "wafv2.list-available-managed-rule-groups-and-versions", "deployments": [], "key": "wafv2/list-available-managed-rule-groups-and-versions", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:ListAvailableManagedRuleGroupVersions"], "path": "behavioral/wafv2/check_list_available_managed_rule_groups_and_versions.py", "service": "wafv2"} {"check_id": "wafv2.list-ipsets-pagination-and-membership", "deployments": [], "key": "wafv2/list-ipsets-pagination-and-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:ListIPSets"], "path": "behavioral/wafv2/check_list_ipsets_pagination_and_membership.py", "service": "wafv2"} {"check_id": "wafv2.list-regex-pattern-sets-membership", "deployments": [], "key": "wafv2/list-regex-pattern-sets-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:DeleteRegexPatternSet", "wafv2:GetRegexPatternSet"], "path": "behavioral/wafv2/check_list_regex_pattern_sets_membership.py", "service": "wafv2"} {"check_id": "wafv2.list-resources-for-webacl-empty-when-unassociated", "deployments": [], "key": "wafv2/list-resources-for-webacl-empty-when-unassociated", "labels": ["axis:happy-path", "plane:control"], "operations": ["appsync:CreateGraphqlApi", "appsync:DeleteGraphqlApi", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DisassociateWebACL", "wafv2:ListResourcesForWebACL"], "path": "behavioral/wafv2/check_list_resources_for_webacl_empty_when_unassociated.py", "service": "wafv2"} {"check_id": "wafv2.list-rule-groups-membership", "deployments": [], "key": "wafv2/list-rule-groups-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateRuleGroup"], "path": "behavioral/wafv2/check_list_rule_groups_membership.py", "service": "wafv2"} {"check_id": "wafv2.list-settlement-records-empty-initial", "deployments": [], "key": "wafv2/list-settlement-records-empty-initial", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wafv2:ListSettlementRecords"], "path": "behavioral/wafv2/check_list_settlement_records_empty_initial.py", "service": "wafv2"} {"check_id": "wafv2.list-web-acls-membership", "deployments": [], "key": "wafv2/list-web-acls-membership", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_list_web_acls_membership.py", "service": "wafv2"} {"check_id": "wafv2.logging-configuration-invalid-destination-name-rejected", "deployments": [], "key": "wafv2/logging-configuration-invalid-destination-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "sts:GetCallerIdentity", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:GetLoggingConfiguration", "wafv2:PutLoggingConfiguration"], "path": "behavioral/wafv2/check_logging_configuration_invalid_destination_name_rejected.py", "service": "wafv2"} {"check_id": "wafv2.logging-configuration-redacted-fields-round-trip", "deployments": [], "key": "wafv2/logging-configuration-redacted-fields-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:DescribeLogGroups", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:DeleteWebACL", "wafv2:GetLoggingConfiguration", "wafv2:GetWebACL", "wafv2:PutLoggingConfiguration"], "path": "behavioral/wafv2/check_logging_configuration_redacted_fields_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.loggingconfiguration-lifecycle", "deployments": [], "key": "wafv2/loggingconfiguration-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:CreateLogGroup", "logs:DeleteLogGroup", "wafv2:CreateWebACL", "wafv2:DeleteLoggingConfiguration", "wafv2:GetLoggingConfiguration", "wafv2:PutLoggingConfiguration"], "path": "behavioral/wafv2/check_loggingconfiguration_lifecycle.py", "service": "wafv2"} {"check_id": "wafv2.managed-rule-group-default-version-selection", "deployments": [], "key": "wafv2/managed-rule-group-default-version-selection", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:ListAvailableManagedRuleGroupVersions"], "path": "behavioral/wafv2/check_managed_rule_group_default_version_selection.py", "service": "wafv2"} {"check_id": "wafv2.managed-rule-group-describe-catalog-contents", "deployments": [], "key": "wafv2/managed-rule-group-describe-catalog-contents", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:DescribeManagedRuleGroup", "wafv2:ListAvailableManagedRuleGroupVersions"], "path": "behavioral/wafv2/check_managed_rule_group_describe_catalog_contents.py", "service": "wafv2"} {"check_id": "wafv2.managed-rule-group-pinned-version-nonexistent-rejected", "deployments": [], "key": "wafv2/managed-rule-group-pinned-version-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CheckCapacity", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:ListAvailableManagedRuleGroupVersions"], "path": "behavioral/wafv2/check_managed_rule_group_pinned_version_nonexistent_rejected.py", "service": "wafv2"} {"check_id": "wafv2.managed-rule-set-get-nonexistent-rejected", "deployments": [], "key": "wafv2/managed-rule-set-get-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:GetManagedRuleSet", "wafv2:ListManagedRuleSets"], "path": "behavioral/wafv2/check_managed_rule_set_get_nonexistent_rejected.py", "service": "wafv2"} {"check_id": "wafv2.mobile-sdk-release-lifecycle", "deployments": [], "key": "wafv2/mobile-sdk-release-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:GenerateMobileSdkReleaseUrl", "wafv2:GetMobileSdkRelease", "wafv2:ListMobileSdkReleases", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_mobile_sdk_release_lifecycle.py", "service": "wafv2"} {"check_id": "wafv2.mobile-sdk-release-nonexistent-rejected", "deployments": [], "key": "wafv2/mobile-sdk-release-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:GetMobileSdkRelease", "wafv2:ListMobileSdkReleases", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_mobile_sdk_release_nonexistent_rejected.py", "service": "wafv2"} {"check_id": "wafv2.mobile-sdk-release-url-generation-lifecycle", "deployments": [], "key": "wafv2/mobile-sdk-release-url-generation-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:GenerateMobileSdkReleaseUrl", "wafv2:GetMobileSdkRelease", "wafv2:ListMobileSdkReleases", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_mobile_sdk_release_url_generation_lifecycle.py", "service": "wafv2"} {"check_id": "wafv2.permission-policy-invalid-document-rejected", "deployments": [], "key": "wafv2/permission-policy-invalid-document-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:DeletePermissionPolicy", "wafv2:DeleteRuleGroup", "wafv2:GetPermissionPolicy", "wafv2:GetRuleGroup", "wafv2:PutPermissionPolicy"], "path": "behavioral/wafv2/check_permission_policy_invalid_document_rejected.py", "service": "wafv2"} {"check_id": "wafv2.permissionpolicy-invalid-policy-rejected", "deployments": [], "key": "wafv2/permissionpolicy-invalid-policy-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "wafv2:CreateRuleGroup", "wafv2:DeletePermissionPolicy", "wafv2:GetPermissionPolicy", "wafv2:PutPermissionPolicy"], "path": "behavioral/wafv2/check_permissionpolicy_invalid_policy_rejected.py", "service": "wafv2"} {"check_id": "wafv2.permissionpolicy-lifecycle", "deployments": [], "key": "wafv2/permissionpolicy-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["sts:GetCallerIdentity", "wafv2:CreateRuleGroup", "wafv2:DeletePermissionPolicy", "wafv2:GetPermissionPolicy", "wafv2:PutPermissionPolicy"], "path": "behavioral/wafv2/check_permissionpolicy_lifecycle.py", "service": "wafv2"} {"check_id": "wafv2.permissionpolicy-wildcard-action-rejected", "deployments": [], "key": "wafv2/permissionpolicy-wildcard-action-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "wafv2:CreateRuleGroup", "wafv2:DeletePermissionPolicy", "wafv2:GetPermissionPolicy", "wafv2:PutPermissionPolicy"], "path": "behavioral/wafv2/check_permissionpolicy_wildcard_action_rejected.py", "service": "wafv2"} {"check_id": "wafv2.put-managed-rule-set-versions-invalid-version-format-rejected", "deployments": [], "key": "wafv2/put-managed-rule-set-versions-invalid-version-format-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "wafv2:ListAvailableManagedRuleGroups", "wafv2:ListManagedRuleSets", "wafv2:PutManagedRuleSetVersions"], "path": "behavioral/wafv2/check_put_managed_rule_set_versions_invalid_version_format_rejected.py", "service": "wafv2"} {"check_id": "wafv2.put-managed-rule-set-versions-invalid-version-rejected", "deployments": [], "key": "wafv2/put-managed-rule-set-versions-invalid-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "wafv2:GetManagedRuleSet", "wafv2:ListAvailableManagedRuleGroups", "wafv2:ListManagedRuleSets", "wafv2:PutManagedRuleSetVersions"], "path": "behavioral/wafv2/check_put_managed_rule_set_versions_invalid_version_rejected.py", "service": "wafv2"} {"check_id": "wafv2.put-managed-rule-set-versions-nonexistent-rule-group-rejected", "deployments": [], "key": "wafv2/put-managed-rule-set-versions-nonexistent-rule-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "wafv2:ListAvailableManagedRuleGroups", "wafv2:ListManagedRuleSets", "wafv2:PutManagedRuleSetVersions"], "path": "behavioral/wafv2/check_put_managed_rule_set_versions_nonexistent_rule_group_rejected.py", "service": "wafv2"} {"check_id": "wafv2.rate-based-rule-window-expires-after-evaluation-period", "deployments": [], "key": "wafv2/rate-based-rule-window-expires-after-evaluation-period", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetRateBasedStatementManagedKeys", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_rate_based_rule_window_expires_after_evaluation_period.py", "service": "wafv2"} {"check_id": "wafv2.rate-based-statement-managed-keys-empty", "deployments": [], "key": "wafv2/rate-based-statement-managed-keys-empty", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:GetRateBasedStatementManagedKeys"], "path": "behavioral/wafv2/check_rate_based_statement_managed_keys_empty.py", "service": "wafv2"} {"check_id": "wafv2.regex-pattern-set-concurrent-updates-single-winner", "deployments": [], "key": "wafv2/regex-pattern-set-concurrent-updates-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:DeleteRegexPatternSet", "wafv2:GetRegexPatternSet", "wafv2:UpdateRegexPatternSet"], "path": "behavioral/wafv2/check_regex_pattern_set_concurrent_updates_single_winner.py", "service": "wafv2"} {"check_id": "wafv2.regex-pattern-set-duplicate-name-rejected", "deployments": [], "key": "wafv2/regex-pattern-set-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:GetRegexPatternSet"], "path": "behavioral/wafv2/check_regex_pattern_set_duplicate_name_rejected.py", "service": "wafv2"} {"check_id": "wafv2.regex-pattern-set-stale-locktoken-update-rejected", "deployments": [], "key": "wafv2/regex-pattern-set-stale-locktoken-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:GetRegexPatternSet", "wafv2:UpdateRegexPatternSet"], "path": "behavioral/wafv2/check_regex_pattern_set_stale_locktoken_update_rejected.py", "service": "wafv2"} {"check_id": "wafv2.regex-pattern-set-unsupported-pcre-construct-rejected", "deployments": [], "key": "wafv2/regex-pattern-set-unsupported-pcre-construct-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:GetRegexPatternSet", "wafv2:UpdateRegexPatternSet"], "path": "behavioral/wafv2/check_regex_pattern_set_unsupported_pcre_construct_rejected.py", "service": "wafv2"} {"check_id": "wafv2.regexpatternset-delete-blocked-while-referenced", "deployments": [], "key": "wafv2/regexpatternset-delete-blocked-while-referenced", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:CreateRuleGroup", "wafv2:DeleteRegexPatternSet", "wafv2:GetRegexPatternSet"], "path": "behavioral/wafv2/check_regexpatternset_delete_blocked_while_referenced.py", "service": "wafv2"} {"check_id": "wafv2.regexpatternset-invalid-regex-rejected", "deployments": [], "key": "wafv2/regexpatternset-invalid-regex-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:DeleteRegexPatternSet", "wafv2:GetRegexPatternSet"], "path": "behavioral/wafv2/check_regexpatternset_invalid_regex_rejected.py", "service": "wafv2"} {"check_id": "wafv2.regexpatternset-invalid-syntax-rejected", "deployments": [], "key": "wafv2/regexpatternset-invalid-syntax-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:DeleteRegexPatternSet", "wafv2:GetRegexPatternSet", "wafv2:ListRegexPatternSets"], "path": "behavioral/wafv2/check_regexpatternset_invalid_syntax_rejected.py", "service": "wafv2"} {"check_id": "wafv2.regexpatternset-lifecycle", "deployments": [], "key": "wafv2/regexpatternset-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:DeleteRegexPatternSet", "wafv2:GetRegexPatternSet", "wafv2:UpdateRegexPatternSet"], "path": "behavioral/wafv2/check_regexpatternset_lifecycle.py", "service": "wafv2"} {"check_id": "wafv2.regexpatternset-unicode-pattern-round-trip", "deployments": [], "key": "wafv2/regexpatternset-unicode-pattern-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateRegexPatternSet", "wafv2:DeleteRegexPatternSet", "wafv2:GetRegexPatternSet", "wafv2:UpdateRegexPatternSet"], "path": "behavioral/wafv2/check_regexpatternset_unicode_pattern_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.revenue-statistics-summary-matches-time-series-aggregate", "deployments": [], "key": "wafv2/revenue-statistics-summary-matches-time-series-aggregate", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wafv2:GetRevenueStatisticsSummary", "wafv2:GetRevenueStatisticsTimeSeries"], "path": "behavioral/wafv2/check_revenue_statistics_summary_matches_time_series_aggregate.py", "service": "wafv2"} {"check_id": "wafv2.revenue-statistics-summary-matches-timeseries-aggregation", "deployments": [], "key": "wafv2/revenue-statistics-summary-matches-timeseries-aggregation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wafv2:GetRevenueStatisticsSummary", "wafv2:GetRevenueStatisticsTimeSeries"], "path": "behavioral/wafv2/check_revenue_statistics_summary_matches_timeseries_aggregation.py", "service": "wafv2"} {"check_id": "wafv2.rule-action-override-unknown-rule-name-asymmetry", "deployments": [], "key": "wafv2/rule-action-override-unknown-rule-name-asymmetry", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:CreateWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_rule_action_override_unknown_rule_name_asymmetry.py", "service": "wafv2"} {"check_id": "wafv2.rule-action-overrides-downgrade-a-rule-group-block-to-count-at-the-edge", "deployments": [], "key": "wafv2/rule-action-overrides-downgrade-a-rule-group-block-to-count-at-the-edge", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CheckCapacity", "wafv2:CreateRuleGroup", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_rule_action_overrides_downgrade_a_rule_group_block_to_count_at_the_edge.py", "service": "wafv2"} {"check_id": "wafv2.rule-group-capacity-mismatch-rejected", "deployments": [], "key": "wafv2/rule-group-capacity-mismatch-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CheckCapacity", "wafv2:CreateRuleGroup", "wafv2:DeleteRuleGroup", "wafv2:GetRuleGroup", "wafv2:ListRuleGroups"], "path": "behavioral/wafv2/check_rule_group_capacity_mismatch_rejected.py", "service": "wafv2"} {"check_id": "wafv2.rule-group-duplicate-name-rejected", "deployments": [], "key": "wafv2/rule-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:GetRuleGroup"], "path": "behavioral/wafv2/check_rule_group_duplicate_name_rejected.py", "service": "wafv2"} {"check_id": "wafv2.rule-group-reference-capacity-derives-from-the-referenced-groups-own-reported-capacity", "deployments": [], "key": "wafv2/rule-group-reference-capacity-derives-from-the-referenced-groups-own-reported-capacity", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity", "wafv2:CreateRuleGroup", "wafv2:CreateWebACL", "wafv2:DescribeManagedRuleGroup", "wafv2:GetRuleGroup", "wafv2:GetWebACL", "wafv2:ListAvailableManagedRuleGroupVersions"], "path": "behavioral/wafv2/check_rule_group_reference_capacity_derives_from_the_referenced_groups_own_reported_capacity.py", "service": "wafv2"} {"check_id": "wafv2.rule-priority-decides-which-matching-rule-fires", "deployments": [], "key": "wafv2/rule-priority-decides-which-matching-rule-fires", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_rule_priority_decides_which_matching_rule_fires.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-capacity-exceeded-rejected", "deployments": [], "key": "wafv2/rulegroup-capacity-exceeded-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CheckCapacity", "wafv2:CreateRuleGroup", "wafv2:GetRuleGroup", "wafv2:UpdateRuleGroup"], "path": "behavioral/wafv2/check_rulegroup_capacity_exceeded_rejected.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-concurrent-updates-single-winner", "deployments": [], "key": "wafv2/rulegroup-concurrent-updates-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:DeleteRuleGroup", "wafv2:GetRuleGroup", "wafv2:UpdateRuleGroup"], "path": "behavioral/wafv2/check_rulegroup_concurrent_updates_single_winner.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-custom-label-round-trip", "deployments": [], "key": "wafv2/rulegroup-custom-label-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:DeleteRuleGroup", "wafv2:GetRuleGroup", "wafv2:UpdateRuleGroup"], "path": "behavioral/wafv2/check_rulegroup_custom_label_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-custom-response-body-round-trip", "deployments": [], "key": "wafv2/rulegroup-custom-response-body-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:DeleteRuleGroup", "wafv2:GetRuleGroup"], "path": "behavioral/wafv2/check_rulegroup_custom_response_body_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-custom-response-body-unicode-round-trip", "deployments": [], "key": "wafv2/rulegroup-custom-response-body-unicode-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:DeleteRuleGroup", "wafv2:GetRuleGroup"], "path": "behavioral/wafv2/check_rulegroup_custom_response_body_unicode_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-delete-blocked-while-referenced-by-webacl", "deployments": [], "key": "wafv2/rulegroup-delete-blocked-while-referenced-by-webacl", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:CreateWebACL", "wafv2:DeleteRuleGroup", "wafv2:GetRuleGroup", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_rulegroup_delete_blocked_while_referenced_by_webacl.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-lifecycle-with-ipset-reference", "deployments": [], "key": "wafv2/rulegroup-lifecycle-with-ipset-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:CreateRuleGroup", "wafv2:DeleteRuleGroup", "wafv2:GetRuleGroup", "wafv2:UpdateRuleGroup"], "path": "behavioral/wafv2/check_rulegroup_lifecycle_with_ipset_reference.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-nonexistent-reference-rejected", "deployments": [], "key": "wafv2/rulegroup-nonexistent-reference-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "wafv2:CreateIPSet", "wafv2:CreateRuleGroup", "wafv2:GetRuleGroup"], "path": "behavioral/wafv2/check_rulegroup_nonexistent_reference_rejected.py", "service": "wafv2"} {"check_id": "wafv2.rulegroup-rules-priority-ordering-preserved", "deployments": [], "key": "wafv2/rulegroup-rules-priority-ordering-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateRuleGroup", "wafv2:DeleteRuleGroup", "wafv2:GetRuleGroup", "wafv2:UpdateRuleGroup"], "path": "behavioral/wafv2/check_rulegroup_rules_priority_ordering_preserved.py", "service": "wafv2"} {"check_id": "wafv2.sampled-requests-reflects-recent-window-only", "deployments": [], "key": "wafv2/sampled-requests-reflects-recent-window-only", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_sampled_requests_reflects_recent_window_only.py", "service": "wafv2"} {"check_id": "wafv2.settlement-records-consistent-with-revenue-statistics", "deployments": [], "key": "wafv2/settlement-records-consistent-with-revenue-statistics", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:GetRevenueStatistics", "wafv2:ListSettlementRecords"], "path": "behavioral/wafv2/check_settlement_records_consistent_with_revenue_statistics.py", "service": "wafv2"} {"check_id": "wafv2.settlement-records-list-empty-for-new-account", "deployments": [], "key": "wafv2/settlement-records-list-empty-for-new-account", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:ListSettlementRecords"], "path": "behavioral/wafv2/check_settlement_records_list_empty_for_new_account.py", "service": "wafv2"} {"check_id": "wafv2.size-constraint-statement-boundary-is-exact-at-the-edge", "deployments": [], "key": "wafv2/size-constraint-statement-boundary-is-exact-at-the-edge", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_size_constraint_statement_boundary_is_exact_at_the_edge.py", "service": "wafv2"} {"check_id": "wafv2.stale-lock-token-ipset-update-rejected", "deployments": [], "key": "wafv2/stale-lock-token-ipset-update-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_stale_lock_token_ipset_update_rejected.py", "service": "wafv2"} {"check_id": "wafv2.tag-reserved-prefix-rejected", "deployments": [], "key": "wafv2/tag-reserved-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:ListTagsForResource", "wafv2:TagResource"], "path": "behavioral/wafv2/check_tag_reserved_prefix_rejected.py", "service": "wafv2"} {"check_id": "wafv2.tag-resource-reserved-aws-prefix-rejected", "deployments": [], "key": "wafv2/tag-resource-reserved-aws-prefix-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:ListTagsForResource", "wafv2:TagResource"], "path": "behavioral/wafv2/check_tag_resource_reserved_aws_prefix_rejected.py", "service": "wafv2"} {"check_id": "wafv2.tag-unicode-value-round-trip", "deployments": [], "key": "wafv2/tag-unicode-value-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:ListTagsForResource", "wafv2:TagResource", "wafv2:UntagResource"], "path": "behavioral/wafv2/check_tag_unicode_value_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.tag-value-empty-string-preserved", "deployments": [], "key": "wafv2/tag-value-empty-string-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:ListTagsForResource", "wafv2:TagResource"], "path": "behavioral/wafv2/check_tag_value_empty_string_preserved.py", "service": "wafv2"} {"check_id": "wafv2.tagging-lifecycle-tag-list-untag", "deployments": [], "key": "wafv2/tagging-lifecycle-tag-list-untag", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:ListTagsForResource", "wafv2:TagResource", "wafv2:UntagResource"], "path": "behavioral/wafv2/check_tagging_lifecycle_tag_list_untag.py", "service": "wafv2"} {"check_id": "wafv2.text-transformations-apply-in-priority-order-at-the-edge", "deployments": [], "key": "wafv2/text-transformations-apply-in-priority-order-at-the-edge", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["apigateway:CreateDeployment", "apigateway:CreateResource", "apigateway:CreateRestApi", "apigateway:CreateStage", "apigateway:DeleteRestApi", "apigateway:DeleteStage", "apigateway:GetResources", "apigateway:PutIntegration", "apigateway:PutIntegrationResponse", "apigateway:PutMethod", "apigateway:PutMethodResponse", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetSampledRequests", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_text_transformations_apply_in_priority_order_at_the_edge.py", "service": "wafv2"} {"check_id": "wafv2.top-path-statistics-reflects-traffic-volume-ordering", "deployments": [], "key": "wafv2/top-path-statistics-reflects-traffic-volume-ordering", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetTopPathStatisticsByTraffic", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_top_path_statistics_reflects_traffic_volume_ordering.py", "service": "wafv2"} {"check_id": "wafv2.update-ipset-nonexistent-rejected", "deployments": [], "key": "wafv2/update-ipset-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateIPSet", "wafv2:DeleteIPSet", "wafv2:GetIPSet", "wafv2:UpdateIPSet"], "path": "behavioral/wafv2/check_update_ipset_nonexistent_rejected.py", "service": "wafv2"} {"check_id": "wafv2.update-managed-rule-set-version-expiry-nonexistent-version-rejected", "deployments": [], "key": "wafv2/update-managed-rule-set-version-expiry-nonexistent-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:GetManagedRuleSet", "wafv2:ListAvailableManagedRuleGroups", "wafv2:ListManagedRuleSets", "wafv2:UpdateManagedRuleSetVersionExpiryDate"], "path": "behavioral/wafv2/check_update_managed_rule_set_version_expiry_nonexistent_version_rejected.py", "service": "wafv2"} {"check_id": "wafv2.update-webacl-concurrent-lock-token-conflict-rejected", "deployments": [], "key": "wafv2/update-webacl-concurrent-lock-token-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_update_webacl_concurrent_lock_token_conflict_rejected.py", "service": "wafv2"} {"check_id": "wafv2.update-webacl-configuration-warning-surfaced", "deployments": [], "key": "wafv2/update-webacl-configuration-warning-surfaced", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_update_webacl_configuration_warning_surfaced.py", "service": "wafv2"} {"check_id": "wafv2.wafv2-rule-evaluation-allows-blocks", "deployments": [], "key": "wafv2/wafv2-rule-evaluation-allows-blocks", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateInternetGateway", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "elbv2:CreateListener", "elbv2:CreateLoadBalancer", "elbv2:DeleteListener", "elbv2:DeleteLoadBalancer", "elbv2:DescribeLoadBalancers", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DisassociateWebACL"], "path": "behavioral/wafv2/check_wafv2_rule_evaluation_allows_blocks.py", "service": "wafv2"} {"check_id": "wafv2.web-acl-challenge-immunity-time-below-service-minimum-rejected", "deployments": [], "key": "wafv2/web-acl-challenge-immunity-time-below-service-minimum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_web_acl_challenge_immunity_time_below_service_minimum_rejected.py", "service": "wafv2"} {"check_id": "wafv2.web-acl-custom-response-body-key-missing-rejected", "deployments": [], "key": "wafv2/web-acl-custom-response-body-key-missing-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_web_acl_custom_response_body_key_missing_rejected.py", "service": "wafv2"} {"check_id": "wafv2.webacl-association-lifecycle-associate-disassociate-reassociate", "deployments": [], "key": "wafv2/webacl-association-lifecycle-associate-disassociate-reassociate", "labels": ["axis:happy-path", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource"], "path": "behavioral/wafv2/check_webacl_association_lifecycle_associate_disassociate_reassociate.py", "service": "wafv2"} {"check_id": "wafv2.webacl-capacity-matches-rule-wcu-sum", "deployments": [], "key": "wafv2/webacl-capacity-matches-rule-wcu-sum", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity", "wafv2:CreateWebACL", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_webacl_capacity_matches_rule_wcu_sum.py", "service": "wafv2"} {"check_id": "wafv2.webacl-concurrent-updates-single-winner", "deployments": [], "key": "wafv2/webacl-concurrent-updates-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_webacl_concurrent_updates_single_winner.py", "service": "wafv2"} {"check_id": "wafv2.webacl-configuration-warning-on-inconsistent-override-rejected", "deployments": [], "key": "wafv2/webacl-configuration-warning-on-inconsistent-override-rejected", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_webacl_configuration_warning_on_inconsistent_override_rejected.py", "service": "wafv2"} {"check_id": "wafv2.webacl-create-expired-managed-rule-group-version-rejected", "deployments": [], "key": "wafv2/webacl-create-expired-managed-rule-group-version-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DescribeManagedRuleGroup", "wafv2:GetWebACL", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_webacl_create_expired_managed_rule_group_version_rejected.py", "service": "wafv2"} {"check_id": "wafv2.webacl-custom-response-body-base64-round-trip", "deployments": [], "key": "wafv2/webacl-custom-response-body-base64-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_webacl_custom_response_body_base64_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.webacl-delete-blocked-while-associated-to-resource", "deployments": [], "key": "wafv2/webacl-delete-blocked-while-associated-to-resource", "labels": ["axis:rejection", "plane:control"], "operations": ["cognito-idp:CreateUserPool", "cognito-idp:DeleteUserPool", "wafv2:AssociateWebACL", "wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACL", "wafv2:GetWebACLForResource", "wafv2:ListResourcesForWebACL"], "path": "behavioral/wafv2/check_webacl_delete_blocked_while_associated_to_resource.py", "service": "wafv2"} {"check_id": "wafv2.webacl-description-empty-vs-absent-preserved", "deployments": [], "key": "wafv2/webacl-description-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_webacl_description_empty_vs_absent_preserved.py", "service": "wafv2"} {"check_id": "wafv2.webacl-description-non-ascii-rejected", "deployments": [], "key": "wafv2/webacl-description-non-ascii-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_webacl_description_non_ascii_rejected.py", "service": "wafv2"} {"check_id": "wafv2.webacl-description-pattern-violation-rejected", "deployments": [], "key": "wafv2/webacl-description-pattern-violation-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_webacl_description_pattern_violation_rejected.py", "service": "wafv2"} {"check_id": "wafv2.webacl-duplicate-name-rejected", "deployments": [], "key": "wafv2/webacl-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL"], "path": "behavioral/wafv2/check_webacl_duplicate_name_rejected.py", "service": "wafv2"} {"check_id": "wafv2.webacl-duplicate-rule-priority-rejected", "deployments": [], "key": "wafv2/webacl-duplicate-rule-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_webacl_duplicate_rule_priority_rejected.py", "service": "wafv2"} {"check_id": "wafv2.webacl-lifecycle-create-update-delete", "deployments": [], "key": "wafv2/webacl-lifecycle-create-update-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:ListWebACLs", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_webacl_lifecycle_create_update_delete.py", "service": "wafv2"} {"check_id": "wafv2.webacl-managed-rule-group-reference", "deployments": [], "key": "wafv2/webacl-managed-rule-group-reference", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CheckCapacity", "wafv2:CreateWebACL", "wafv2:DescribeManagedRuleGroup", "wafv2:GetWebACL"], "path": "behavioral/wafv2/check_webacl_managed_rule_group_reference.py", "service": "wafv2"} {"check_id": "wafv2.webacl-reference-nonexistent-rulegroup-rejected", "deployments": [], "key": "wafv2/webacl-reference-nonexistent-rulegroup-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "wafv2:CreateRuleGroup", "wafv2:CreateWebACL", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_webacl_reference_nonexistent_rulegroup_rejected.py", "service": "wafv2"} {"check_id": "wafv2.webacl-rules-priority-ordering-preserved", "deployments": [], "key": "wafv2/webacl-rules-priority-ordering-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_webacl_rules_priority_ordering_preserved.py", "service": "wafv2"} {"check_id": "wafv2.webacl-unicode-description-round-trip", "deployments": [], "key": "wafv2/webacl-unicode-description-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:ListWebACLs"], "path": "behavioral/wafv2/check_webacl_unicode_description_round_trip.py", "service": "wafv2"} {"check_id": "wafv2.webacl-update-configuration-warning-surfaced", "deployments": [], "key": "wafv2/webacl-update-configuration-warning-surfaced", "labels": ["axis:happy-path", "plane:control"], "operations": ["wafv2:CreateWebACL", "wafv2:DeleteWebACL", "wafv2:GetWebACL", "wafv2:UpdateWebACL"], "path": "behavioral/wafv2/check_webacl_update_configuration_warning_surfaced.py", "service": "wafv2"} {"check_id": "wellarchitected.answer-moves-lens-review-risk-counts", "deployments": [], "key": "wellarchitected/answer-moves-lens-review-risk-counts", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wellarchitected:CreateWorkload", "wellarchitected:DeleteWorkload", "wellarchitected:GetLensReview", "wellarchitected:ListAnswers", "wellarchitected:UpdateAnswer"], "path": "behavioral/wellarchitected/check_answer_moves_lens_review_risk_counts.py", "service": "wellarchitected"} {"check_id": "wellarchitected.custom-lens-risk-rules-derive-answer-risk", "deployments": [], "key": "wellarchitected/custom-lens-risk-rules-derive-answer-risk", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wellarchitected:CreateLensVersion", "wellarchitected:CreateWorkload", "wellarchitected:DeleteLens", "wellarchitected:DeleteWorkload", "wellarchitected:GetLensReview", "wellarchitected:ImportLens", "wellarchitected:ListAnswers", "wellarchitected:ListLensReviews", "wellarchitected:UpdateAnswer"], "path": "behavioral/wellarchitected/check_custom_lens_risk_rules_derive_answer_risk.py", "service": "wellarchitected"} {"check_id": "wellarchitected.disassociate-default-lens-rejected", "deployments": [], "key": "wellarchitected/disassociate-default-lens-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wellarchitected:AssociateLenses", "wellarchitected:CreateLensVersion", "wellarchitected:CreateWorkload", "wellarchitected:DeleteLens", "wellarchitected:DeleteWorkload", "wellarchitected:DisassociateLenses", "wellarchitected:GetAnswer", "wellarchitected:GetLensReview", "wellarchitected:ImportLens", "wellarchitected:ListLensReviews", "wellarchitected:UpdateAnswer"], "path": "behavioral/wellarchitected/check_disassociate_default_lens_rejected.py", "service": "wellarchitected"} {"check_id": "wellarchitected.duplicate-milestone-name-rejected", "deployments": [], "key": "wellarchitected/duplicate-milestone-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wellarchitected:CreateMilestone", "wellarchitected:CreateWorkload", "wellarchitected:DeleteWorkload", "wellarchitected:GetMilestone", "wellarchitected:ListMilestones"], "path": "behavioral/wellarchitected/check_duplicate_milestone_name_rejected.py", "service": "wellarchitected"} {"check_id": "wellarchitected.duplicate-workload-name-rejected", "deployments": [], "key": "wellarchitected/duplicate-workload-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wellarchitected:CreateWorkload", "wellarchitected:DeleteWorkload", "wellarchitected:GetWorkload", "wellarchitected:ListWorkloads"], "path": "behavioral/wellarchitected/check_duplicate_workload_name_rejected.py", "service": "wellarchitected"} {"check_id": "wellarchitected.improvements-track-at-risk-answers", "deployments": [], "key": "wellarchitected/improvements-track-at-risk-answers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wellarchitected:CreateLensVersion", "wellarchitected:CreateWorkload", "wellarchitected:DeleteLens", "wellarchitected:DeleteWorkload", "wellarchitected:GetLensReview", "wellarchitected:ImportLens", "wellarchitected:ListLensReviewImprovements", "wellarchitected:UpdateAnswer"], "path": "behavioral/wellarchitected/check_improvements_track_at_risk_answers.py", "service": "wellarchitected"} {"check_id": "wellarchitected.lens-upgrade-preserves-recorded-answers", "deployments": [], "key": "wellarchitected/lens-upgrade-preserves-recorded-answers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wellarchitected:CreateLensVersion", "wellarchitected:CreateWorkload", "wellarchitected:DeleteLens", "wellarchitected:DeleteWorkload", "wellarchitected:GetAnswer", "wellarchitected:GetLensReview", "wellarchitected:GetLensVersionDifference", "wellarchitected:ImportLens", "wellarchitected:ListAnswers", "wellarchitected:ListMilestones", "wellarchitected:UpdateAnswer", "wellarchitected:UpgradeLensReview"], "path": "behavioral/wellarchitected/check_lens_upgrade_preserves_recorded_answers.py", "service": "wellarchitected"} {"check_id": "wellarchitected.milestone-freezes-answers-while-workload-moves", "deployments": [], "key": "wellarchitected/milestone-freezes-answers-while-workload-moves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wellarchitected:CreateMilestone", "wellarchitected:CreateWorkload", "wellarchitected:DeleteWorkload", "wellarchitected:GetAnswer", "wellarchitected:GetLensReview", "wellarchitected:GetMilestone", "wellarchitected:GetWorkload", "wellarchitected:ListAnswers", "wellarchitected:UpdateAnswer", "wellarchitected:UpdateWorkload"], "path": "behavioral/wellarchitected/check_milestone_freezes_answers_while_workload_moves.py", "service": "wellarchitected"} {"check_id": "wellarchitected.review-template-prefills-new-workload-answers", "deployments": [], "key": "wellarchitected/review-template-prefills-new-workload-answers", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wellarchitected:CreateReviewTemplate", "wellarchitected:CreateWorkload", "wellarchitected:DeleteReviewTemplate", "wellarchitected:DeleteWorkload", "wellarchitected:GetAnswer", "wellarchitected:GetLensReview", "wellarchitected:ListAnswers", "wellarchitected:ListLensReviews", "wellarchitected:ListReviewTemplateAnswers", "wellarchitected:UpdateReviewTemplateAnswer"], "path": "behavioral/wellarchitected/check_review_template_prefills_new_workload_answers.py", "service": "wellarchitected"} {"check_id": "wellarchitected.share-with-own-account-rejected", "deployments": [], "key": "wellarchitected/share-with-own-account-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "wellarchitected:CreateWorkload", "wellarchitected:CreateWorkloadShare", "wellarchitected:DeleteWorkload", "wellarchitected:DeleteWorkloadShare", "wellarchitected:ListWorkloadShares"], "path": "behavioral/wellarchitected/check_share_with_own_account_rejected.py", "service": "wellarchitected"} {"check_id": "wellarchitected.unpublished-lens-rejected", "deployments": [], "key": "wellarchitected/unpublished-lens-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wellarchitected:AssociateLenses", "wellarchitected:CreateLensVersion", "wellarchitected:CreateWorkload", "wellarchitected:DeleteLens", "wellarchitected:DeleteWorkload", "wellarchitected:GetLens", "wellarchitected:GetLensReview", "wellarchitected:ImportLens", "wellarchitected:ListLensReviews", "wellarchitected:ListLenses"], "path": "behavioral/wellarchitected/check_unpublished_lens_rejected.py", "service": "wellarchitected"} {"check_id": "wellarchitected.workload-share-stays-pending-until-accepted", "deployments": [], "key": "wellarchitected/workload-share-stays-pending-until-accepted", "labels": ["axis:happy-path", "plane:control"], "operations": ["wellarchitected:CreateWorkload", "wellarchitected:CreateWorkloadShare", "wellarchitected:DeleteWorkload", "wellarchitected:DeleteWorkloadShare", "wellarchitected:ListShareInvitations", "wellarchitected:ListWorkloadShares", "wellarchitected:UpdateWorkloadShare"], "path": "behavioral/wellarchitected/check_workload_share_stays_pending_until_accepted.py", "service": "wellarchitected"} {"check_id": "wickr.bot-count-and-listing-reflect-accumulated-creates-and-deletes", "deployments": [], "key": "wickr/bot-count-and-listing-reflect-accumulated-creates-and-deletes", "labels": ["axis:happy-path", "plane:control"], "operations": ["wickr:CreateBot", "wickr:CreateNetwork", "wickr:DeleteBot", "wickr:DeleteNetwork", "wickr:GetBotsCount", "wickr:ListBots", "wickr:ListSecurityGroups"], "path": "behavioral/wickr/check_bot_count_and_listing_reflect_accumulated_creates_and_deletes.py", "service": "wickr"} {"check_id": "wickr.bots-count-tracks-create-and-delete", "deployments": [], "key": "wickr/bots-count-tracks-create-and-delete", "labels": ["axis:happy-path", "plane:control"], "operations": ["wickr:CreateBot", "wickr:CreateNetwork", "wickr:DeleteBot", "wickr:DeleteNetwork", "wickr:GetBotsCount", "wickr:ListBots", "wickr:ListSecurityGroups"], "path": "behavioral/wickr/check_bots_count_tracks_create_and_delete.py", "service": "wickr"} {"check_id": "wickr.create-bot-appears-in-get-and-list", "deployments": [], "key": "wickr/create-bot-appears-in-get-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["wickr:CreateBot", "wickr:CreateNetwork", "wickr:CreateSecurityGroup", "wickr:DeleteBot", "wickr:DeleteNetwork", "wickr:DeleteSecurityGroup", "wickr:GetBot", "wickr:ListBots"], "path": "behavioral/wickr/check_create_bot_appears_in_get_and_list.py", "service": "wickr"} {"check_id": "wickr.create-bot-duplicate-username-rejected", "deployments": [], "key": "wickr/create-bot-duplicate-username-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wickr:CreateBot", "wickr:CreateNetwork", "wickr:CreateSecurityGroup", "wickr:DeleteBot", "wickr:DeleteNetwork", "wickr:DeleteSecurityGroup", "wickr:GetBot", "wickr:ListBots"], "path": "behavioral/wickr/check_create_bot_duplicate_username_rejected.py", "service": "wickr"} {"check_id": "wickr.create-bot-weak-challenge-rejected-by-password-policy", "deployments": [], "key": "wickr/create-bot-weak-challenge-rejected-by-password-policy", "labels": ["axis:rejection", "plane:control"], "operations": ["wickr:CreateBot", "wickr:CreateNetwork", "wickr:DeleteNetwork", "wickr:ListBots", "wickr:ListSecurityGroups"], "path": "behavioral/wickr/check_create_bot_weak_challenge_rejected_by_password_policy.py", "service": "wickr"} {"check_id": "wickr.delete-network-cascades-to-bots-and-security-groups", "deployments": [], "key": "wickr/delete-network-cascades-to-bots-and-security-groups", "labels": ["axis:rejection", "plane:control"], "operations": ["wickr:CreateBot", "wickr:CreateNetwork", "wickr:DeleteNetwork", "wickr:GetBot", "wickr:GetNetwork", "wickr:GetSecurityGroup", "wickr:ListSecurityGroups"], "path": "behavioral/wickr/check_delete_network_cascades_to_bots_and_security_groups.py", "service": "wickr"} {"check_id": "wickr.list-security-groups-pages-all-created-groups", "deployments": [], "key": "wickr/list-security-groups-pages-all-created-groups", "labels": ["axis:happy-path", "plane:control"], "operations": ["wickr:CreateNetwork", "wickr:CreateSecurityGroup", "wickr:DeleteNetwork", "wickr:ListSecurityGroups"], "path": "behavioral/wickr/check_list_security_groups_pages_all_created_groups.py", "service": "wickr"} {"check_id": "wickr.update-network-settings-merges-without-clobbering", "deployments": [], "key": "wickr/update-network-settings-merges-without-clobbering", "labels": ["axis:happy-path", "plane:control"], "operations": ["wickr:CreateNetwork", "wickr:DeleteNetwork", "wickr:GetNetworkSettings", "wickr:UpdateNetworkSettings"], "path": "behavioral/wickr/check_update_network_settings_merges_without_clobbering.py", "service": "wickr"} {"check_id": "wisdom.assistant-association-client-token-idempotent-conflict-rejected", "deployments": [], "key": "wisdom/assistant-association-client-token-idempotent-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateAssistantAssociation", "wisdom:CreateKnowledgeBase", "wisdom:DeleteAssistant", "wisdom:DeleteAssistantAssociation", "wisdom:DeleteKnowledgeBase", "wisdom:ListAssistantAssociations"], "path": "behavioral/wisdom/check_assistant_association_client_token_idempotent_conflict_rejected.py", "service": "wisdom"} {"check_id": "wisdom.assistant-association-delete-transitions-to-not-found", "deployments": [], "key": "wisdom/assistant-association-delete-transitions-to-not-found", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateAssistantAssociation", "wisdom:CreateKnowledgeBase", "wisdom:DeleteAssistant", "wisdom:DeleteAssistantAssociation", "wisdom:DeleteKnowledgeBase", "wisdom:GetAssistant", "wisdom:GetAssistantAssociation", "wisdom:GetKnowledgeBase", "wisdom:ListAssistantAssociations"], "path": "behavioral/wisdom/check_assistant_association_delete_transitions_to_not_found.py", "service": "wisdom"} {"check_id": "wisdom.assistant-association-multiple-distinct-knowledge-bases-allowed", "deployments": [], "key": "wisdom/assistant-association-multiple-distinct-knowledge-bases-allowed", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateAssistantAssociation", "wisdom:CreateKnowledgeBase", "wisdom:DeleteAssistant", "wisdom:DeleteAssistantAssociation", "wisdom:DeleteKnowledgeBase", "wisdom:GetAssistant", "wisdom:GetAssistantAssociation", "wisdom:GetKnowledgeBase", "wisdom:ListAssistantAssociations"], "path": "behavioral/wisdom/check_assistant_association_multiple_distinct_knowledge_bases_allowed.py", "service": "wisdom"} {"check_id": "wisdom.assistant-create-active-lifecycle", "deployments": [], "key": "wisdom/assistant-create-active-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:GetAssistant"], "path": "behavioral/wisdom/check_assistant_create_active_lifecycle.py", "service": "wisdom"} {"check_id": "wisdom.assistant-delete-removes-and-not-found", "deployments": [], "key": "wisdom/assistant-delete-removes-and-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:GetAssistant"], "path": "behavioral/wisdom/check_assistant_delete_removes_and_not_found.py", "service": "wisdom"} {"check_id": "wisdom.assistant-knowledge-base-content-session-end-to-end-workflow", "deployments": [], "key": "wisdom/assistant-knowledge-base-content-session-end-to-end-workflow", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateAssistantAssociation", "wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:CreateSession", "wisdom:DeleteAssistant", "wisdom:DeleteAssistantAssociation", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetAssistantAssociation", "wisdom:GetContent", "wisdom:GetRecommendations", "wisdom:GetSession", "wisdom:ListAssistantAssociations", "wisdom:QueryAssistant", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_assistant_knowledge_base_content_session_end_to_end_workflow.py", "service": "wisdom"} {"check_id": "wisdom.concurrent-assistant-association-race-single-winner", "deployments": [], "key": "wisdom/concurrent-assistant-association-race-single-winner", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateAssistantAssociation", "wisdom:CreateKnowledgeBase", "wisdom:DeleteAssistant", "wisdom:DeleteAssistantAssociation", "wisdom:DeleteKnowledgeBase", "wisdom:ListAssistantAssociations"], "path": "behavioral/wisdom/check_concurrent_assistant_association_race_single_winner.py", "service": "wisdom"} {"check_id": "wisdom.content-delete-removes-and-not-found", "deployments": [], "key": "wisdom/content-delete-removes-and-not-found", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_content_delete_removes_and_not_found.py", "service": "wisdom"} {"check_id": "wisdom.content-metadata-and-linkouturi-persisted", "deployments": [], "key": "wisdom/content-metadata-and-linkouturi-persisted", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:GetKnowledgeBase", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_content_metadata_and_linkouturi_persisted.py", "service": "wisdom"} {"check_id": "wisdom.content-search-finds-created-content", "deployments": [], "key": "wisdom/content-search-finds-created-content", "labels": ["axis:happy-path", "dp:api", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:SearchContent", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_content_search_finds_created_content.py", "service": "wisdom"} {"check_id": "wisdom.content-update-persists-title-and-bumps-revision", "deployments": [], "key": "wisdom/content-update-persists-title-and-bumps-revision", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:StartContentUpload", "wisdom:UpdateContent"], "path": "behavioral/wisdom/check_content_update_persists_title_and_bumps_revision.py", "service": "wisdom"} {"check_id": "wisdom.content-update-stale-revision-precondition-failed-rejected", "deployments": [], "key": "wisdom/content-update-stale-revision-precondition-failed-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:StartContentUpload", "wisdom:UpdateContent"], "path": "behavioral/wisdom/check_content_update_stale_revision_precondition_failed_rejected.py", "service": "wisdom"} {"check_id": "wisdom.content-upload-and-download-round-trip", "deployments": [], "key": "wisdom/content-upload-and-download-round-trip", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_content_upload_and_download_round_trip.py", "service": "wisdom"} {"check_id": "wisdom.create-assistant-client-token-idempotent-conflict-rejected", "deployments": [], "key": "wisdom/create-assistant-client-token-idempotent-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:ListAssistants"], "path": "behavioral/wisdom/check_create_assistant_client_token_idempotent_conflict_rejected.py", "service": "wisdom"} {"check_id": "wisdom.create-assistant-invalid-type-enum-rejected", "deployments": [], "key": "wisdom/create-assistant-invalid-type-enum-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:GetAssistant", "wisdom:ListAssistants"], "path": "behavioral/wisdom/check_create_assistant_invalid_type_enum_rejected.py", "service": "wisdom"} {"check_id": "wisdom.create-assistant-with-tags-persisted", "deployments": [], "key": "wisdom/create-assistant-with-tags-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:GetAssistant", "wisdom:ListTagsForResource"], "path": "behavioral/wisdom/check_create_assistant_with_tags_persisted.py", "service": "wisdom"} {"check_id": "wisdom.create-content-against-quick-responses-kb-rejected", "deployments": [], "key": "wisdom/create-content-against-quick-responses-kb-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_create_content_against_quick_responses_kb_rejected.py", "service": "wisdom"} {"check_id": "wisdom.create-content-duplicate-name-conflict-rejected", "deployments": [], "key": "wisdom/create-content-duplicate-name-conflict-rejected", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:GetKnowledgeBase", "wisdom:ListContents", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_create_content_duplicate_name_conflict_rejected.py", "service": "wisdom"} {"check_id": "wisdom.create-content-invalid-upload-id-not-found", "deployments": [], "key": "wisdom/create-content-invalid-upload-id-not-found", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:ListContents", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_create_content_invalid_upload_id_not_found.py", "service": "wisdom"} {"check_id": "wisdom.create-knowledge-base-with-tags-persisted", "deployments": [], "key": "wisdom/create-knowledge-base-with-tags-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:DeleteKnowledgeBase", "wisdom:GetKnowledgeBase", "wisdom:ListTagsForResource"], "path": "behavioral/wisdom/check_create_knowledge_base_with_tags_persisted.py", "service": "wisdom"} {"check_id": "wisdom.create-quick-response-against-custom-kb-rejected", "deployments": [], "key": "wisdom/create-quick-response-against-custom-kb-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetQuickResponse", "wisdom:ListQuickResponses"], "path": "behavioral/wisdom/check_create_quick_response_against_custom_kb_rejected.py", "service": "wisdom"} {"check_id": "wisdom.create-quick-response-invalid-content-type-rejected", "deployments": [], "key": "wisdom/create-quick-response-invalid-content-type-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetKnowledgeBase", "wisdom:GetQuickResponse", "wisdom:ListQuickResponses"], "path": "behavioral/wisdom/check_create_quick_response_invalid_content_type_rejected.py", "service": "wisdom"} {"check_id": "wisdom.create-session-lifecycle-and-get", "deployments": [], "key": "wisdom/create-session-lifecycle-and-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateSession", "wisdom:DeleteAssistant", "wisdom:GetAssistant", "wisdom:GetSession"], "path": "behavioral/wisdom/check_create_session_lifecycle_and_get.py", "service": "wisdom"} {"check_id": "wisdom.delete-knowledge-base-with-active-association-succeeds", "deployments": [], "key": "wisdom/delete-knowledge-base-with-active-association-succeeds", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateAssistantAssociation", "wisdom:CreateKnowledgeBase", "wisdom:DeleteAssistant", "wisdom:DeleteAssistantAssociation", "wisdom:DeleteKnowledgeBase", "wisdom:GetAssistant", "wisdom:GetAssistantAssociation", "wisdom:GetKnowledgeBase"], "path": "behavioral/wisdom/check_delete_knowledge_base_with_active_association_succeeds.py", "service": "wisdom"} {"check_id": "wisdom.delete-quick-response-removes-from-search", "deployments": [], "key": "wisdom/delete-quick-response-removes-from-search", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetKnowledgeBase", "wisdom:GetQuickResponse", "wisdom:SearchQuickResponses"], "path": "behavioral/wisdom/check_delete_quick_response_removes_from_search.py", "service": "wisdom"} {"check_id": "wisdom.get-assistant-not-found", "deployments": [], "key": "wisdom/get-assistant-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:GetAssistant"], "path": "behavioral/wisdom/check_get_assistant_not_found.py", "service": "wisdom"} {"check_id": "wisdom.get-content-summary-matches-full-content-and-omits-url", "deployments": [], "key": "wisdom/get-content-summary-matches-full-content-and-omits-url", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:GetContentSummary", "wisdom:GetKnowledgeBase", "wisdom:StartContentUpload"], "path": "behavioral/wisdom/check_get_content_summary_matches_full_content_and_omits_url.py", "service": "wisdom"} {"check_id": "wisdom.get-recommendations-nonexistent-session-rejected", "deployments": [], "key": "wisdom/get-recommendations-nonexistent-session-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateSession", "wisdom:DeleteAssistant", "wisdom:GetAssistant", "wisdom:GetRecommendations"], "path": "behavioral/wisdom/check_get_recommendations_nonexistent_session_rejected.py", "service": "wisdom"} {"check_id": "wisdom.knowledge-base-create-active-lifecycle", "deployments": [], "key": "wisdom/knowledge-base-create-active-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:DeleteKnowledgeBase", "wisdom:GetKnowledgeBase"], "path": "behavioral/wisdom/check_knowledge_base_create_active_lifecycle.py", "service": "wisdom"} {"check_id": "wisdom.knowledge-base-delete-removes-and-not-found", "deployments": [], "key": "wisdom/knowledge-base-delete-removes-and-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:DeleteKnowledgeBase", "wisdom:GetKnowledgeBase"], "path": "behavioral/wisdom/check_knowledge_base_delete_removes_and_not_found.py", "service": "wisdom"} {"check_id": "wisdom.list-assistants-pagination-covers-all-created", "deployments": [], "key": "wisdom/list-assistants-pagination-covers-all-created", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:ListAssistants"], "path": "behavioral/wisdom/check_list_assistants_pagination_covers_all_created.py", "service": "wisdom"} {"check_id": "wisdom.notify-recommendations-received-nonexistent-assistant-rejected", "deployments": [], "key": "wisdom/notify-recommendations-received-nonexistent-assistant-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:CreateSession", "wisdom:DeleteAssistant", "wisdom:NotifyRecommendationsReceived"], "path": "behavioral/wisdom/check_notify_recommendations_received_nonexistent_assistant_rejected.py", "service": "wisdom"} {"check_id": "wisdom.quick-response-channels-language-fields-persisted", "deployments": [], "key": "wisdom/quick-response-channels-language-fields-persisted", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetKnowledgeBase", "wisdom:GetQuickResponse"], "path": "behavioral/wisdom/check_quick_response_channels_language_fields_persisted.py", "service": "wisdom"} {"check_id": "wisdom.quick-response-create-created-lifecycle", "deployments": [], "key": "wisdom/quick-response-create-created-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetQuickResponse"], "path": "behavioral/wisdom/check_quick_response_create_created_lifecycle.py", "service": "wisdom"} {"check_id": "wisdom.quick-response-delete-removes-and-not-found", "deployments": [], "key": "wisdom/quick-response-delete-removes-and-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetQuickResponse", "wisdom:UpdateQuickResponse"], "path": "behavioral/wisdom/check_quick_response_delete_removes_and_not_found.py", "service": "wisdom"} {"check_id": "wisdom.quick-response-search-finds-created", "deployments": [], "key": "wisdom/quick-response-search-finds-created", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetQuickResponse", "wisdom:SearchQuickResponses"], "path": "behavioral/wisdom/check_quick_response_search_finds_created.py", "service": "wisdom"} {"check_id": "wisdom.quick-response-shortcut-key-conflict-rejected", "deployments": [], "key": "wisdom/quick-response-shortcut-key-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetKnowledgeBase", "wisdom:GetQuickResponse", "wisdom:ListQuickResponses"], "path": "behavioral/wisdom/check_quick_response_shortcut_key_conflict_rejected.py", "service": "wisdom"} {"check_id": "wisdom.quick-response-shortcut-key-race-concurrency", "deployments": [], "key": "wisdom/quick-response-shortcut-key-race-concurrency", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetKnowledgeBase", "wisdom:ListQuickResponses"], "path": "behavioral/wisdom/check_quick_response_shortcut_key_race_concurrency.py", "service": "wisdom"} {"check_id": "wisdom.search-quick-responses-name-prefix-filter", "deployments": [], "key": "wisdom/search-quick-responses-name-prefix-filter", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetKnowledgeBase", "wisdom:GetQuickResponse", "wisdom:SearchQuickResponses"], "path": "behavioral/wisdom/check_search_quick_responses_name_prefix_filter.py", "service": "wisdom"} {"check_id": "wisdom.tag-resource-list-and-untag-round-trip", "deployments": [], "key": "wisdom/tag-resource-list-and-untag-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:ListTagsForResource", "wisdom:TagResource", "wisdom:UntagResource"], "path": "behavioral/wisdom/check_tag_resource_list_and_untag_round_trip.py", "service": "wisdom"} {"check_id": "wisdom.tag-resource-nonexistent-arn-rejected", "deployments": [], "key": "wisdom/tag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:ListTagsForResource", "wisdom:TagResource"], "path": "behavioral/wisdom/check_tag_resource_nonexistent_arn_rejected.py", "service": "wisdom"} {"check_id": "wisdom.too-many-tags-rejected", "deployments": [], "key": "wisdom/too-many-tags-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:ListTagsForResource", "wisdom:TagResource", "wisdom:UntagResource"], "path": "behavioral/wisdom/check_too_many_tags_rejected.py", "service": "wisdom"} {"check_id": "wisdom.untag-resource-nonexistent-arn-rejected", "deployments": [], "key": "wisdom/untag-resource-nonexistent-arn-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["wisdom:CreateAssistant", "wisdom:DeleteAssistant", "wisdom:ListTagsForResource", "wisdom:UntagResource"], "path": "behavioral/wisdom/check_untag_resource_nonexistent_arn_rejected.py", "service": "wisdom"} {"check_id": "wisdom.untag-resource-removes-tag", "deployments": [], "key": "wisdom/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:DeleteKnowledgeBase", "wisdom:ListTagsForResource", "wisdom:UntagResource"], "path": "behavioral/wisdom/check_untag_resource_removes_tag.py", "service": "wisdom"} {"check_id": "wisdom.update-content-removes-override-link-out-uri", "deployments": [], "key": "wisdom/update-content-removes-override-link-out-uri", "labels": ["axis:happy-path", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:GetKnowledgeBase", "wisdom:StartContentUpload", "wisdom:UpdateContent"], "path": "behavioral/wisdom/check_update_content_removes_override_link_out_uri.py", "service": "wisdom"} {"check_id": "wisdom.update-content-revisionid-race-concurrency", "deployments": [], "key": "wisdom/update-content-revisionid-race-concurrency", "labels": ["axis:rejection", "dp:endpoint", "plane:data"], "operations": ["wisdom:CreateContent", "wisdom:CreateKnowledgeBase", "wisdom:DeleteContent", "wisdom:DeleteKnowledgeBase", "wisdom:GetContent", "wisdom:GetKnowledgeBase", "wisdom:StartContentUpload", "wisdom:UpdateContent"], "path": "behavioral/wisdom/check_update_content_revisionid_race_concurrency.py", "service": "wisdom"} {"check_id": "wisdom.update-quick-response-concurrent-race", "deployments": [], "key": "wisdom/update-quick-response-concurrent-race", "labels": ["axis:happy-path", "plane:control"], "operations": ["wisdom:CreateKnowledgeBase", "wisdom:CreateQuickResponse", "wisdom:DeleteKnowledgeBase", "wisdom:DeleteQuickResponse", "wisdom:GetKnowledgeBase", "wisdom:GetQuickResponse", "wisdom:UpdateQuickResponse"], "path": "behavioral/wisdom/check_update_quick_response_concurrent_race.py", "service": "wisdom"} {"check_id": "workspaces-instances.associate-disassociate-volume-roundtrip", "deployments": [], "key": "workspaces-instances/associate-disassociate-volume-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "iam:GetRole", "ssm:GetParameter", "workspaces-instances:AssociateVolume", "workspaces-instances:CreateVolume", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteVolume", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:DisassociateVolume", "workspaces-instances:GetWorkspaceInstance"], "path": "behavioral/workspaces-instances/check_associate_disassociate_volume_roundtrip.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.associate-volume-duplicate-device-rejected", "deployments": [], "key": "workspaces-instances/associate-volume-duplicate-device-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "ssm:GetParameter", "workspaces-instances:AssociateVolume", "workspaces-instances:CreateVolume", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteVolume", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:DisassociateVolume", "workspaces-instances:GetWorkspaceInstance"], "path": "behavioral/workspaces-instances/check_associate_volume_duplicate_device_rejected.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.associate-volume-nonexistent-instance-not-found", "deployments": [], "key": "workspaces-instances/associate-volume-nonexistent-instance-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateTags", "ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "iam:CreateServiceLinkedRole", "workspaces-instances:AssociateVolume", "workspaces-instances:CreateVolume", "workspaces-instances:DeleteVolume"], "path": "behavioral/workspaces-instances/check_associate_volume_nonexistent_instance_not_found.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.billing-configuration-monthly-reflected-in-get", "deployments": [], "key": "workspaces-instances/billing-configuration-monthly-reflected-in-get", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "ssm:GetParameter", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:GetWorkspaceInstance"], "path": "behavioral/workspaces-instances/check_billing_configuration_monthly_reflected_in_get.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.create-volume-clienttoken-reuse-rejected", "deployments": [], "key": "workspaces-instances/create-volume-clienttoken-reuse-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "iam:CreateServiceLinkedRole", "iam:ListRoles", "workspaces-instances:CreateVolume", "workspaces-instances:DeleteVolume"], "path": "behavioral/workspaces-instances/check_create_volume_clienttoken_reuse_rejected.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.create-volume-delete-volume-lifecycle", "deployments": [], "key": "workspaces-instances/create-volume-delete-volume-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "iam:CreateServiceLinkedRole", "workspaces-instances:CreateVolume", "workspaces-instances:DeleteVolume"], "path": "behavioral/workspaces-instances/check_create_volume_delete_volume_lifecycle.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.create-volume-invalid-tag-key-pattern-rejected", "deployments": [], "key": "workspaces-instances/create-volume-invalid-tag-key-pattern-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "iam:CreateServiceLinkedRole", "workspaces-instances:CreateVolume", "workspaces-instances:DeleteVolume"], "path": "behavioral/workspaces-instances/check_create_volume_invalid_tag_key_pattern_rejected.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.create-volume-iops-exceeds-range-rejected", "deployments": [], "key": "workspaces-instances/create-volume-iops-exceeds-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "iam:CreateServiceLinkedRole", "workspaces-instances:CreateVolume", "workspaces-instances:DeleteVolume"], "path": "behavioral/workspaces-instances/check_create_volume_iops_exceeds_range_rejected.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.create-volume-nonexistent-snapshot-conflict-rejected", "deployments": [], "key": "workspaces-instances/create-volume-nonexistent-snapshot-conflict-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeAvailabilityZones", "ec2:DescribeVolumes", "iam:CreateServiceLinkedRole", "workspaces-instances:CreateVolume", "workspaces-instances:DeleteVolume"], "path": "behavioral/workspaces-instances/check_create_volume_nonexistent_snapshot_conflict_rejected.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.create-workspace-instance-duplicate-client-token-conflicting-params-rejected", "deployments": [], "key": "workspaces-instances/create-workspace-instance-duplicate-client-token-conflicting-params-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "ssm:GetParameter", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:ListWorkspaceInstances"], "path": "behavioral/workspaces-instances/check_create_workspace_instance_duplicate_client_token_conflicting_params_rejected.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.create-workspace-instance-invalid-ami-error-allocating-transition", "deployments": [], "key": "workspaces-instances/create-workspace-instance-invalid-ami-error-allocating-transition", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "ssm:GetParameter", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:GetWorkspaceInstance", "workspaces-instances:ListTagsForResource", "workspaces-instances:ListWorkspaceInstances"], "path": "behavioral/workspaces-instances/check_create_workspace_instance_invalid_ami_error_allocating_transition.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.create-workspace-instance-state-transition-to-allocated", "deployments": [], "key": "workspaces-instances/create-workspace-instance-state-transition-to-allocated", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "ssm:GetParameter", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:GetWorkspaceInstance", "workspaces-instances:ListWorkspaceInstances"], "path": "behavioral/workspaces-instances/check_create_workspace_instance_state_transition_to_allocated.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.delete-volume-not-found", "deployments": [], "key": "workspaces-instances/delete-volume-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces-instances:DeleteVolume"], "path": "behavioral/workspaces-instances/check_delete_volume_not_found.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.delete-volume-while-attached-rejected", "deployments": [], "key": "workspaces-instances/delete-volume-while-attached-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVolumes", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "iam:GetRole", "ssm:GetParameter", "workspaces-instances:AssociateVolume", "workspaces-instances:CreateVolume", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteVolume", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:DisassociateVolume", "workspaces-instances:GetWorkspaceInstance"], "path": "behavioral/workspaces-instances/check_delete_volume_while_attached_rejected.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.delete-workspace-instance-not-found", "deployments": [], "key": "workspaces-instances/delete-workspace-instance-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces-instances:DeleteWorkspaceInstance"], "path": "behavioral/workspaces-instances/check_delete_workspace_instance_not_found.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.delete-workspace-instance-state-transition-to-deallocated", "deployments": [], "key": "workspaces-instances/delete-workspace-instance-state-transition-to-deallocated", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "iam:CreateServiceLinkedRole", "iam:GetRole", "ssm:GetParameter", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:GetWorkspaceInstance"], "path": "behavioral/workspaces-instances/check_delete_workspace_instance_state_transition_to_deallocated.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.get-workspace-instance-malformed-id-validation", "deployments": [], "key": "workspaces-instances/get-workspace-instance-malformed-id-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces-instances:GetWorkspaceInstance"], "path": "behavioral/workspaces-instances/check_get_workspace_instance_malformed_id_validation.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.get-workspace-instance-not-found", "deployments": [], "key": "workspaces-instances/get-workspace-instance-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces-instances:GetWorkspaceInstance"], "path": "behavioral/workspaces-instances/check_get_workspace_instance_not_found.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.list-instance-types-returns-supported-types", "deployments": [], "key": "workspaces-instances/list-instance-types-returns-supported-types", "labels": ["axis:happy-path", "plane:control"], "operations": ["workspaces-instances:ListInstanceTypes"], "path": "behavioral/workspaces-instances/check_list_instance_types_returns_supported_types.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.list-regions-malformed-next-token-validation", "deployments": [], "key": "workspaces-instances/list-regions-malformed-next-token-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces-instances:ListRegions"], "path": "behavioral/workspaces-instances/check_list_regions_malformed_next_token_validation.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.list-regions-returns-supported-regions", "deployments": [], "key": "workspaces-instances/list-regions-returns-supported-regions", "labels": ["axis:happy-path", "plane:control"], "operations": ["workspaces-instances:ListRegions"], "path": "behavioral/workspaces-instances/check_list_regions_returns_supported_regions.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.list-tags-for-resource-not-found", "deployments": [], "key": "workspaces-instances/list-tags-for-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:DescribeInstanceTypeOfferings", "iam:CreateServiceLinkedRole", "ssm:GetParameter", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:GetWorkspaceInstance", "workspaces-instances:ListTagsForResource"], "path": "behavioral/workspaces-instances/check_list_tags_for_resource_not_found.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.list-workspace-instances-invalid-provision-state-enum-validation", "deployments": [], "key": "workspaces-instances/list-workspace-instances-invalid-provision-state-enum-validation", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces-instances:ListWorkspaceInstances"], "path": "behavioral/workspaces-instances/check_list_workspace_instances_invalid_provision_state_enum_validation.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.tag-resource-list-tags-roundtrip", "deployments": [], "key": "workspaces-instances/tag-resource-list-tags-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:CreateServiceLinkedRole", "ssm:GetParameter", "workspaces-instances:CreateWorkspaceInstance", "workspaces-instances:DeleteWorkspaceInstance", "workspaces-instances:ListTagsForResource", "workspaces-instances:TagResource", "workspaces-instances:UntagResource"], "path": "behavioral/workspaces-instances/check_tag_resource_list_tags_roundtrip.py", "service": "workspaces-instances"} {"check_id": "workspaces-instances.tag-resource-not-found", "deployments": [], "key": "workspaces-instances/tag-resource-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces-instances:TagResource"], "path": "behavioral/workspaces-instances/check_tag_resource_not_found.py", "service": "workspaces-instances"} {"check_id": "workspaces.account-link-invalid-target-account-id-rejected", "deployments": [], "key": "workspaces/account-link-invalid-target-account-id-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "workspaces:CreateAccountLinkInvitation", "workspaces:ListAccountLinks"], "path": "behavioral/workspaces/check_account_link_invalid_target_account_id_rejected.py", "service": "workspaces"} {"check_id": "workspaces.account-link-invitation-pending-state-lifecycle", "deployments": [], "key": "workspaces/account-link-invitation-pending-state-lifecycle", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "workspaces:CreateAccountLinkInvitation", "workspaces:DeleteAccountLinkInvitation", "workspaces:GetAccountLink", "workspaces:ListAccountLinks"], "path": "behavioral/workspaces/check_account_link_invitation_pending_state_lifecycle.py", "service": "workspaces"} {"check_id": "workspaces.concurrent-ip-group-creation-race", "deployments": [], "key": "workspaces/concurrent-ip-group-creation-race", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces:CreateIpGroup", "workspaces:DeleteIpGroup", "workspaces:DescribeIpGroups"], "path": "behavioral/workspaces/check_concurrent_ip_group_creation_race.py", "service": "workspaces"} {"check_id": "workspaces.connection-alias-create-delete-lifecycle", "deployments": [], "key": "workspaces/connection-alias-create-delete-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["workspaces:CreateConnectionAlias", "workspaces:DeleteConnectionAlias", "workspaces:DescribeConnectionAliases"], "path": "behavioral/workspaces/check_connection_alias_create_delete_lifecycle.py", "service": "workspaces"} {"check_id": "workspaces.describe-account-dedicated-tenancy-shape", "deployments": [], "key": "workspaces/describe-account-dedicated-tenancy-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["workspaces:DescribeAccount"], "path": "behavioral/workspaces/check_describe_account_dedicated_tenancy_shape.py", "service": "workspaces"} {"check_id": "workspaces.describe-workspace-bundles-amazon-owned-shape", "deployments": [], "key": "workspaces/describe-workspace-bundles-amazon-owned-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["workspaces:DescribeWorkspaceBundles"], "path": "behavioral/workspaces/check_describe_workspace_bundles_amazon_owned_shape.py", "service": "workspaces"} {"check_id": "workspaces.ip-group-duplicate-name-and-missing-group-rejected", "deployments": [], "key": "workspaces/ip-group-duplicate-name-and-missing-group-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["workspaces:CreateIpGroup", "workspaces:DeleteIpGroup", "workspaces:DescribeIpGroups"], "path": "behavioral/workspaces/check_ip_group_duplicate_name_and_missing_group_rejected.py", "service": "workspaces"} {"check_id": "workspaces.ip-group-lifecycle-rules-round-trip", "deployments": [], "key": "workspaces/ip-group-lifecycle-rules-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["workspaces:AuthorizeIpRules", "workspaces:CreateIpGroup", "workspaces:DeleteIpGroup", "workspaces:DescribeIpGroups", "workspaces:RevokeIpRules", "workspaces:UpdateRulesOfIpGroup"], "path": "behavioral/workspaces/check_ip_group_lifecycle_rules_round_trip.py", "service": "workspaces"} {"check_id": "workspaces.list-available-management-cidr-ranges-shape", "deployments": [], "key": "workspaces/list-available-management-cidr-ranges-shape", "labels": ["axis:happy-path", "plane:control"], "operations": ["ec2:DescribeVpcs", "workspaces:ListAvailableManagementCidrRanges"], "path": "behavioral/workspaces/check_list_available_management_cidr_ranges_shape.py", "service": "workspaces"} {"check_id": "workspaces.tags-round-trip-on-ip-group", "deployments": [], "key": "workspaces/tags-round-trip-on-ip-group", "labels": ["axis:happy-path", "plane:control"], "operations": ["workspaces:CreateIpGroup", "workspaces:CreateTags", "workspaces:DeleteIpGroup", "workspaces:DeleteTags", "workspaces:DescribeTags"], "path": "behavioral/workspaces/check_tags_round_trip_on_ip_group.py", "service": "workspaces"} {"check_id": "xray.annotation-value-types-are-indexed-by-type-not-stringified", "deployments": [], "key": "xray/annotation-value-types-are-indexed-by-type-not-stringified", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_annotation_value_types_are_indexed_by_type_not_stringified.py", "service": "xray"} {"check_id": "xray.batch-get-traces-binary-segment-document-round-trip", "deployments": [], "key": "xray/batch-get-traces-binary-segment-document-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_batch_get_traces_binary_segment_document_round_trip.py", "service": "xray"} {"check_id": "xray.batch-get-traces-five-id-limit-boundary", "deployments": [], "key": "xray/batch-get-traces-five-id-limit-boundary", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_batch_get_traces_five_id_limit_boundary.py", "service": "xray"} {"check_id": "xray.batch-get-traces-invalid-format-fails", "deployments": [], "key": "xray/batch-get-traces-invalid-format-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces"], "path": "behavioral/xray/check_batch_get_traces_invalid_format_fails.py", "service": "xray"} {"check_id": "xray.batch-get-traces-mixed-known-unknown", "deployments": [], "key": "xray/batch-get-traces-mixed-known-unknown", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_batch_get_traces_mixed_known_unknown.py", "service": "xray"} {"check_id": "xray.batch-get-traces-segment-document-round-trip", "deployments": [], "key": "xray/batch-get-traces-segment-document-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_batch_get_traces_segment_document_round_trip.py", "service": "xray"} {"check_id": "xray.cancel-trace-retrieval-already-completed-fails", "deployments": [], "key": "xray/cancel-trace-retrieval-already-completed-fails", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_cancel_trace_retrieval_already_completed_fails.py", "service": "xray"} {"check_id": "xray.cancel-trace-retrieval-stops-in-progress-retrieval", "deployments": [], "key": "xray/cancel-trace-retrieval-stops-in-progress-retrieval", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_cancel_trace_retrieval_stops_in_progress_retrieval.py", "service": "xray"} {"check_id": "xray.cancel-trace-retrieval-unknown-token-fails", "deployments": [], "key": "xray/cancel-trace-retrieval-unknown-token-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_cancel_trace_retrieval_unknown_token_fails.py", "service": "xray"} {"check_id": "xray.concurrent-create-group-duplicate-name-race", "deployments": [], "key": "xray/concurrent-create-group-duplicate-name-race", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroups"], "path": "behavioral/xray/check_concurrent_create_group_duplicate_name_race.py", "service": "xray"} {"check_id": "xray.concurrent-create-sampling-rule-duplicate-name", "deployments": [], "key": "xray/concurrent-create-sampling-rule-duplicate-name", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_concurrent_create_sampling_rule_duplicate_name.py", "service": "xray"} {"check_id": "xray.concurrent-put-resource-policy-optimistic-lock", "deployments": [], "key": "xray/concurrent-put-resource-policy-optimistic-lock", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:DeleteResourcePolicy", "xray:GetGroups", "xray:ListResourcePolicies", "xray:PutResourcePolicy"], "path": "behavioral/xray/check_concurrent_put_resource_policy_optimistic_lock.py", "service": "xray"} {"check_id": "xray.concurrent-start-trace-retrieval-same-window-dedupes", "deployments": [], "key": "xray/concurrent-start-trace-retrieval-same-window-dedupes", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_concurrent_start_trace_retrieval_same_window_dedupes.py", "service": "xray"} {"check_id": "xray.concurrent-update-sampling-rule-conflicting-writes", "deployments": [], "key": "xray/concurrent-update-sampling-rule-conflicting-writes", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:UpdateSamplingRule"], "path": "behavioral/xray/check_concurrent_update_sampling_rule_conflicting_writes.py", "service": "xray"} {"check_id": "xray.create-group-defaults", "deployments": [], "key": "xray/create-group-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup"], "path": "behavioral/xray/check_create_group_defaults.py", "service": "xray"} {"check_id": "xray.create-group-duplicate-name-fails", "deployments": [], "key": "xray/create-group-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup"], "path": "behavioral/xray/check_create_group_duplicate_name_fails.py", "service": "xray"} {"check_id": "xray.create-group-duplicate-name-rejected", "deployments": [], "key": "xray/create-group-duplicate-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup"], "path": "behavioral/xray/check_create_group_duplicate_name_rejected.py", "service": "xray"} {"check_id": "xray.create-group-empty-filter-expression-persists", "deployments": [], "key": "xray/create-group-empty-filter-expression-persists", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup"], "path": "behavioral/xray/check_create_group_empty_filter_expression_persists.py", "service": "xray"} {"check_id": "xray.create-group-empty-name-rejected", "deployments": [], "key": "xray/create-group-empty-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroups"], "path": "behavioral/xray/check_create_group_empty_name_rejected.py", "service": "xray"} {"check_id": "xray.create-group-invalid-filter-expression-fails", "deployments": [], "key": "xray/create-group-invalid-filter-expression-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup"], "path": "behavioral/xray/check_create_group_invalid_filter_expression_fails.py", "service": "xray"} {"check_id": "xray.create-group-name-exceeds-max-length-rejected", "deployments": [], "key": "xray/create-group-name-exceeds-max-length-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetGroups"], "path": "behavioral/xray/check_create_group_name_exceeds_max_length_rejected.py", "service": "xray"} {"check_id": "xray.create-sampling-rule-attributes-exceed-max-rejected", "deployments": [], "key": "xray/create-sampling-rule-attributes-exceed-max-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_create_sampling_rule_attributes_exceed_max_rejected.py", "service": "xray"} {"check_id": "xray.create-sampling-rule-defaults", "deployments": [], "key": "xray/create-sampling-rule-defaults", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_create_sampling_rule_defaults.py", "service": "xray"} {"check_id": "xray.create-sampling-rule-duplicate-name-fails", "deployments": [], "key": "xray/create-sampling-rule-duplicate-name-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_create_sampling_rule_duplicate_name_fails.py", "service": "xray"} {"check_id": "xray.create-sampling-rule-invalid-fixed-rate-fails", "deployments": [], "key": "xray/create-sampling-rule-invalid-fixed-rate-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_create_sampling_rule_invalid_fixed_rate_fails.py", "service": "xray"} {"check_id": "xray.create-sampling-rule-malformed-resource-arn-rejected", "deployments": [], "key": "xray/create-sampling-rule-malformed-resource-arn-rejected", "labels": ["axis:rejection", "dp:api", "plane:control", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_create_sampling_rule_malformed_resource_arn_rejected.py", "service": "xray"} {"check_id": "xray.create-sampling-rule-out-of-range-priority-rejected", "deployments": [], "key": "xray/create-sampling-rule-out-of-range-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_create_sampling_rule_out_of_range_priority_rejected.py", "service": "xray"} {"check_id": "xray.delete-default-sampling-rule-fails", "deployments": [], "key": "xray/delete-default-sampling-rule-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_delete_default_sampling_rule_fails.py", "service": "xray"} {"check_id": "xray.delete-group-lifecycle", "deployments": [], "key": "xray/delete-group-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetGroups", "xray:UpdateGroup"], "path": "behavioral/xray/check_delete_group_lifecycle.py", "service": "xray"} {"check_id": "xray.delete-resource-policy-wrong-revision-fails", "deployments": [], "key": "xray/delete-resource-policy-wrong-revision-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:DeleteResourcePolicy", "xray:GetGroups", "xray:ListResourcePolicies", "xray:PutResourcePolicy"], "path": "behavioral/xray/check_delete_resource_policy_wrong_revision_fails.py", "service": "xray"} {"check_id": "xray.delete-sampling-rule-lifecycle", "deployments": [], "key": "xray/delete-sampling-rule-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:UpdateSamplingRule"], "path": "behavioral/xray/check_delete_sampling_rule_lifecycle.py", "service": "xray"} {"check_id": "xray.deploy-group-via-cloudformation-filters-traces", "deployments": [], "key": "xray/deploy-group-via-cloudformation-filters-traces", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "xray:GetGroup", "xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_deploy_group_via_cloudformation_filters_traces.py", "service": "xray"} {"check_id": "xray.deploy-group-via-cloudformation-invalid-filter-expression-rejected", "deployments": [], "key": "xray/deploy-group-via-cloudformation-invalid-filter-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "xray:GetGroup"], "path": "behavioral/xray/check_deploy_group_via_cloudformation_invalid_filter_expression_rejected.py", "service": "xray"} {"check_id": "xray.deploy-sampling-rule-via-cloudformation-active", "deployments": [], "key": "xray/deploy-sampling-rule-via-cloudformation-active", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "xray:GetSamplingRules", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_deploy_sampling_rule_via_cloudformation_active.py", "service": "xray"} {"check_id": "xray.deploy-xray-group-cfn-filter-behaves", "deployments": [], "key": "xray/deploy-xray-group-cfn-filter-behaves", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "xray:GetGroup", "xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_deploy_xray_group_cfn_filter_behaves.py", "service": "xray"} {"check_id": "xray.deploy-xray-group-cfn-then-filters-traces", "deployments": [], "key": "xray/deploy-xray-group-cfn-then-filters-traces", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "xray:GetGroup", "xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_deploy_xray_group_cfn_then_filters_traces.py", "service": "xray"} {"check_id": "xray.deploy-xray-sampling-rule-cfn-applies", "deployments": [], "key": "xray/deploy-xray-sampling-rule-cfn-applies", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "xray:GetSamplingRules", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_deploy_xray_sampling_rule_cfn_applies.py", "service": "xray"} {"check_id": "xray.deploy-xray-sampling-rule-cfn-then-serves-targets", "deployments": [], "key": "xray/deploy-xray-sampling-rule-cfn-then-serves-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "xray:GetSamplingRules", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_deploy_xray_sampling_rule_cfn_then_serves_targets.py", "service": "xray"} {"check_id": "xray.e2e-group-malformed-filter-expression-rejected", "deployments": [], "key": "xray/e2e-group-malformed-filter-expression-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetGroups"], "path": "behavioral/xray/check_e2e_group_malformed_filter_expression_rejected.py", "service": "xray"} {"check_id": "xray.e2e-sampling-rule-affects-target-then-cleanup", "deployments": [], "key": "xray/e2e-sampling-rule-affects-target-then-cleanup", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:GetSamplingStatisticSummaries", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_e2e_sampling_rule_affects_target_then_cleanup.py", "service": "xray"} {"check_id": "xray.e2e-sampling-rule-drives-target-allocation", "deployments": [], "key": "xray/e2e-sampling-rule-drives-target-allocation", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:GetSamplingStatisticSummaries", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_e2e_sampling_rule_drives_target_allocation.py", "service": "xray"} {"check_id": "xray.e2e-sampling-rule-invalid-fixed-rate-rejected", "deployments": [], "key": "xray/e2e-sampling-rule-invalid-fixed-rate-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_e2e_sampling_rule_invalid_fixed_rate_rejected.py", "service": "xray"} {"check_id": "xray.e2e-sampling-rule-lifecycle-affects-sampling-targets", "deployments": [], "key": "xray/e2e-sampling-rule-lifecycle-affects-sampling-targets", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:GetSamplingTargets", "xray:PutTraceSegments", "xray:UpdateSamplingRule"], "path": "behavioral/xray/check_e2e_sampling_rule_lifecycle_affects_sampling_targets.py", "service": "xray"} {"check_id": "xray.e2e-trace-lifecycle-group-filter-consequence", "deployments": [], "key": "xray/e2e-trace-lifecycle-group-filter-consequence", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_e2e_trace_lifecycle_group_filter_consequence.py", "service": "xray"} {"check_id": "xray.e2e-trace-lifecycle-put-retrieve-cancel", "deployments": [], "key": "xray/e2e-trace-lifecycle-put-retrieve-cancel", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetRetrievedTracesGraph", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_e2e_trace_lifecycle_put_retrieve_cancel.py", "service": "xray"} {"check_id": "xray.e2e-trace-retrieval-full-flow", "deployments": [], "key": "xray/e2e-trace-retrieval-full-flow", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetRetrievedTracesGraph", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_e2e_trace_retrieval_full_flow.py", "service": "xray"} {"check_id": "xray.encryption-config-kms-enforced-on-put-trace-segments", "deployments": [], "key": "xray/encryption-config-kms-enforced-on-put-trace-segments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:DescribeKey", "xray:BatchGetTraces", "xray:GetEncryptionConfig", "xray:PutEncryptionConfig", "xray:PutTraceSegments"], "path": "behavioral/xray/check_encryption_config_kms_enforced_on_put_trace_segments.py", "service": "xray"} {"check_id": "xray.encryption-config-kms-enforced-on-subsequent-segments", "deployments": [], "key": "xray/encryption-config-kms-enforced-on-subsequent-segments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity", "xray:BatchGetTraces", "xray:GetEncryptionConfig", "xray:PutEncryptionConfig", "xray:PutTraceSegments"], "path": "behavioral/xray/check_encryption_config_kms_enforced_on_subsequent_segments.py", "service": "xray"} {"check_id": "xray.fault-error-throttle-flags-and-root-causes-derived-from-segment-document", "deployments": [], "key": "xray/fault-error-throttle-flags-and-root-causes-derived-from-segment-document", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_fault_error_throttle_flags_and_root_causes_derived_from_segment_document.py", "service": "xray"} {"check_id": "xray.filter-expression-operand-type-mismatch-rejected-on-both-surfaces", "deployments": [], "key": "xray/filter-expression-operand-type-mismatch-rejected-on-both-surfaces", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetGroups", "xray:GetTraceSummaries"], "path": "behavioral/xray/check_filter_expression_operand_type_mismatch_rejected_on_both_surfaces.py", "service": "xray"} {"check_id": "xray.get-encryption-config-default", "deployments": [], "key": "xray/get-encryption-config-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:GetEncryptionConfig", "xray:PutEncryptionConfig"], "path": "behavioral/xray/check_get_encryption_config_default.py", "service": "xray"} {"check_id": "xray.get-groups-reflects-lifecycle", "deployments": [], "key": "xray/get-groups-reflects-lifecycle", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroups"], "path": "behavioral/xray/check_get_groups_reflects_lifecycle.py", "service": "xray"} {"check_id": "xray.get-insight-events-unknown-id-fails", "deployments": [], "key": "xray/get-insight-events-unknown-id-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetInsightEvents", "xray:GetInsightSummaries"], "path": "behavioral/xray/check_get_insight_events_unknown_id_fails.py", "service": "xray"} {"check_id": "xray.get-insight-impact-graph-unknown-id-fails", "deployments": [], "key": "xray/get-insight-impact-graph-unknown-id-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetInsightImpactGraph", "xray:GetInsightSummaries"], "path": "behavioral/xray/check_get_insight_impact_graph_unknown_id_fails.py", "service": "xray"} {"check_id": "xray.get-insight-summaries-window", "deployments": [], "key": "xray/get-insight-summaries-window", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetInsightSummaries"], "path": "behavioral/xray/check_get_insight_summaries_window.py", "service": "xray"} {"check_id": "xray.get-insight-unknown-id-fails", "deployments": [], "key": "xray/get-insight-unknown-id-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:GetInsight"], "path": "behavioral/xray/check_get_insight_unknown_id_fails.py", "service": "xray"} {"check_id": "xray.get-retrieved-traces-graph-unknown-token-fails", "deployments": [], "key": "xray/get-retrieved-traces-graph-unknown-token-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetRetrievedTracesGraph", "xray:GetTraceSegmentDestination", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_get_retrieved_traces_graph_unknown_token_fails.py", "service": "xray"} {"check_id": "xray.get-sampling-rules-returns-priority-ordered", "deployments": [], "key": "xray/get-sampling-rules-returns-priority-ordered", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_get_sampling_rules_returns_priority_ordered.py", "service": "xray"} {"check_id": "xray.get-sampling-statistic-summaries-numeric-precision-preserved", "deployments": [], "key": "xray/get-sampling-statistic-summaries-numeric-precision-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingStatisticSummaries", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_get_sampling_statistic_summaries_numeric_precision_preserved.py", "service": "xray"} {"check_id": "xray.get-sampling-statistic-summaries-returns-list", "deployments": [], "key": "xray/get-sampling-statistic-summaries-returns-list", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:GetSamplingStatisticSummaries"], "path": "behavioral/xray/check_get_sampling_statistic_summaries_returns_list.py", "service": "xray"} {"check_id": "xray.get-sampling-targets-fixed-rate-and-unknown-rule", "deployments": [], "key": "xray/get-sampling-targets-fixed-rate-and-unknown-rule", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_get_sampling_targets_fixed_rate_and_unknown_rule.py", "service": "xray"} {"check_id": "xray.get-sampling-targets-for-created-rule", "deployments": [], "key": "xray/get-sampling-targets-for-created-rule", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_get_sampling_targets_for_created_rule.py", "service": "xray"} {"check_id": "xray.get-sampling-targets-partial-failure", "deployments": [], "key": "xray/get-sampling-targets-partial-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_get_sampling_targets_partial_failure.py", "service": "xray"} {"check_id": "xray.get-sampling-targets-reservoir-ttl-honored", "deployments": [], "key": "xray/get-sampling-targets-reservoir-ttl-honored", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_get_sampling_targets_reservoir_ttl_honored.py", "service": "xray"} {"check_id": "xray.get-service-graph-invalid-time-range-fails", "deployments": [], "key": "xray/get-service-graph-invalid-time-range-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:GetServiceGraph"], "path": "behavioral/xray/check_get_service_graph_invalid_time_range_fails.py", "service": "xray"} {"check_id": "xray.get-service-graph-returns-window", "deployments": [], "key": "xray/get-service-graph-returns-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetServiceGraph", "xray:PutTraceSegments"], "path": "behavioral/xray/check_get_service_graph_returns_window.py", "service": "xray"} {"check_id": "xray.get-time-series-service-statistics-buckets-two-segments-into-two-periods", "deployments": [], "key": "xray/get-time-series-service-statistics-buckets-two-segments-into-two-periods", "labels": ["axis:happy-path", "dp:api", "plane:data", "timing:real-time"], "operations": ["xray:GetTimeSeriesServiceStatistics", "xray:GetTraceSegmentDestination", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_get_time_series_service_statistics_buckets_two_segments_into_two_periods.py", "service": "xray"} {"check_id": "xray.get-time-series-service-statistics-window", "deployments": [], "key": "xray/get-time-series-service-statistics-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTimeSeriesServiceStatistics", "xray:PutTraceSegments"], "path": "behavioral/xray/check_get_time_series_service_statistics_window.py", "service": "xray"} {"check_id": "xray.get-trace-graph-unknown-trace-fails", "deployments": [], "key": "xray/get-trace-graph-unknown-trace-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:GetTraceGraph", "xray:PutTraceSegments"], "path": "behavioral/xray/check_get_trace_graph_unknown_trace_fails.py", "service": "xray"} {"check_id": "xray.get-trace-segment-destination-default", "deployments": [], "key": "xray/get-trace-segment-destination-default", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_get_trace_segment_destination_default.py", "service": "xray"} {"check_id": "xray.get-trace-summaries-end-before-start-fails", "deployments": [], "key": "xray/get-trace-summaries-end-before-start-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:GetTraceSummaries"], "path": "behavioral/xray/check_get_trace_summaries_end_before_start_fails.py", "service": "xray"} {"check_id": "xray.get-trace-summaries-fault-flag-reflects-segment", "deployments": [], "key": "xray/get-trace-summaries-fault-flag-reflects-segment", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_get_trace_summaries_fault_flag_reflects_segment.py", "service": "xray"} {"check_id": "xray.get-trace-summaries-filter-expression-excludes-non-matching", "deployments": [], "key": "xray/get-trace-summaries-filter-expression-excludes-non-matching", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_get_trace_summaries_filter_expression_excludes_non_matching.py", "service": "xray"} {"check_id": "xray.get-trace-summaries-malformed-filter-expression-rejected", "deployments": [], "key": "xray/get-trace-summaries-malformed-filter-expression-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:GetTraceSummaries"], "path": "behavioral/xray/check_get_trace_summaries_malformed_filter_expression_rejected.py", "service": "xray"} {"check_id": "xray.get-trace-summaries-number-keyword-filters-derive-from-the-submitted-span", "deployments": [], "key": "xray/get-trace-summaries-number-keyword-filters-derive-from-the-submitted-span", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_get_trace_summaries_number_keyword_filters_derive_from_the_submitted_span.py", "service": "xray"} {"check_id": "xray.get-trace-summaries-returns-time-descending-order", "deployments": [], "key": "xray/get-trace-summaries-returns-time-descending-order", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_get_trace_summaries_returns_time_descending_order.py", "service": "xray"} {"check_id": "xray.get-trace-summaries-string-operators-match-the-submitted-url", "deployments": [], "key": "xray/get-trace-summaries-string-operators-match-the-submitted-url", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_get_trace_summaries_string_operators_match_the_submitted_url.py", "service": "xray"} {"check_id": "xray.get-trace-summaries-time-range-type-selects-start-or-end-time", "deployments": [], "key": "xray/get-trace-summaries-time-range-type-selects-start-or-end-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_get_trace_summaries_time_range_type_selects_start_or_end_time.py", "service": "xray"} {"check_id": "xray.group-filter-expression-on-metadata-field-rejected", "deployments": [], "key": "xray/group-filter-expression-on-metadata-field-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetGroups", "xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_group_filter_expression_on_metadata_field_rejected.py", "service": "xray"} {"check_id": "xray.group-filter-expression-scopes-service-graph", "deployments": [], "key": "xray/group-filter-expression-scopes-service-graph", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetGroups", "xray:GetServiceGraph", "xray:PutTraceSegments"], "path": "behavioral/xray/check_group_filter_expression_scopes_service_graph.py", "service": "xray"} {"check_id": "xray.group-filter-expression-unicode-persists", "deployments": [], "key": "xray/group-filter-expression-unicode-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup"], "path": "behavioral/xray/check_group_filter_expression_unicode_persists.py", "service": "xray"} {"check_id": "xray.in-progress-segment-is-overwritten-by-its-completed-twin", "deployments": [], "key": "xray/in-progress-segment-is-overwritten-by-its-completed-twin", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:GetTraceSegmentDestination", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_in_progress_segment_is_overwritten_by_its_completed_twin.py", "service": "xray"} {"check_id": "xray.indexing-rule-empty-vs-absent-preserved", "deployments": [], "key": "xray/indexing-rule-empty-vs-absent-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:GetIndexingRules", "xray:UpdateIndexingRule"], "path": "behavioral/xray/check_indexing_rule_empty_vs_absent_preserved.py", "service": "xray"} {"check_id": "xray.list-retrieved-traces-status-progresses-over-time", "deployments": [], "key": "xray/list-retrieved-traces-status-progresses-over-time", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_list_retrieved_traces_status_progresses_over_time.py", "service": "xray"} {"check_id": "xray.list-retrieved-traces-unknown-token-fails", "deployments": [], "key": "xray/list-retrieved-traces-unknown-token-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_list_retrieved_traces_unknown_token_fails.py", "service": "xray"} {"check_id": "xray.put-encryption-config-invalid-kms-key-rejected", "deployments": [], "key": "xray/put-encryption-config-invalid-kms-key-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "xray:GetEncryptionConfig", "xray:PutEncryptionConfig"], "path": "behavioral/xray/check_put_encryption_config_invalid_kms_key_rejected.py", "service": "xray"} {"check_id": "xray.put-encryption-config-kms-key-arn-round-trip", "deployments": [], "key": "xray/put-encryption-config-kms-key-arn-round-trip", "labels": ["axis:happy-path", "plane:control"], "operations": ["kms:CreateKey", "kms:ScheduleKeyDeletion", "sts:GetCallerIdentity", "xray:GetEncryptionConfig", "xray:PutEncryptionConfig"], "path": "behavioral/xray/check_put_encryption_config_kms_key_arn_round_trip.py", "service": "xray"} {"check_id": "xray.put-encryption-config-kms-missing-keyid-fails", "deployments": [], "key": "xray/put-encryption-config-kms-missing-keyid-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:GetEncryptionConfig", "xray:PutEncryptionConfig"], "path": "behavioral/xray/check_put_encryption_config_kms_missing_keyid_fails.py", "service": "xray"} {"check_id": "xray.put-encryption-config-none-roundtrip", "deployments": [], "key": "xray/put-encryption-config-none-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:GetEncryptionConfig", "xray:PutEncryptionConfig"], "path": "behavioral/xray/check_put_encryption_config_none_roundtrip.py", "service": "xray"} {"check_id": "xray.put-get-encryption-config-transitions", "deployments": [], "key": "xray/put-get-encryption-config-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:GetEncryptionConfig", "xray:PutEncryptionConfig"], "path": "behavioral/xray/check_put_get_encryption_config_transitions.py", "service": "xray"} {"check_id": "xray.put-resource-policy-lockout-prevented", "deployments": [], "key": "xray/put-resource-policy-lockout-prevented", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:DeleteResourcePolicy", "xray:ListResourcePolicies", "xray:PutResourcePolicy"], "path": "behavioral/xray/check_put_resource_policy_lockout_prevented.py", "service": "xray"} {"check_id": "xray.put-resource-policy-malformed-document-fails", "deployments": [], "key": "xray/put-resource-policy-malformed-document-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:DeleteResourcePolicy", "xray:GetGroups", "xray:ListResourcePolicies", "xray:PutResourcePolicy"], "path": "behavioral/xray/check_put_resource_policy_malformed_document_fails.py", "service": "xray"} {"check_id": "xray.put-resource-policy-optimistic-lock-fails", "deployments": [], "key": "xray/put-resource-policy-optimistic-lock-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:DeleteResourcePolicy", "xray:GetGroups", "xray:ListResourcePolicies", "xray:PutResourcePolicy"], "path": "behavioral/xray/check_put_resource_policy_optimistic_lock_fails.py", "service": "xray"} {"check_id": "xray.put-resource-policy-roundtrip-and-list", "deployments": [], "key": "xray/put-resource-policy-roundtrip-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:DeleteResourcePolicy", "xray:GetGroups", "xray:ListResourcePolicies", "xray:PutResourcePolicy"], "path": "behavioral/xray/check_put_resource_policy_roundtrip_and_list.py", "service": "xray"} {"check_id": "xray.put-telemetry-records-accepts-batch", "deployments": [], "key": "xray/put-telemetry-records-accepts-batch", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:PutTelemetryRecords"], "path": "behavioral/xray/check_put_telemetry_records_accepts_batch.py", "service": "xray"} {"check_id": "xray.put-telemetry-records-malformed-payload-rejected", "deployments": [], "key": "xray/put-telemetry-records-malformed-payload-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:PutTelemetryRecords"], "path": "behavioral/xray/check_put_telemetry_records_malformed_payload_rejected.py", "service": "xray"} {"check_id": "xray.put-telemetry-records-malformed-resource-arn-rejected", "deployments": [], "key": "xray/put-telemetry-records-malformed-resource-arn-rejected", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["xray:GetServiceGraph", "xray:GetTraceSegmentDestination", "xray:PutTelemetryRecords", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_put_telemetry_records_malformed_resource_arn_rejected.py", "service": "xray"} {"check_id": "xray.put-trace-segments-and-query-summaries", "deployments": [], "key": "xray/put-trace-segments-and-query-summaries", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_put_trace_segments_and_query_summaries.py", "service": "xray"} {"check_id": "xray.put-trace-segments-binary-document-base64-roundtrip", "deployments": [], "key": "xray/put-trace-segments-binary-document-base64-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_put_trace_segments_binary_document_base64_roundtrip.py", "service": "xray"} {"check_id": "xray.put-trace-segments-high-precision-timestamp-preserved", "deployments": [], "key": "xray/put-trace-segments-high-precision-timestamp-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_put_trace_segments_high_precision_timestamp_preserved.py", "service": "xray"} {"check_id": "xray.put-trace-segments-invalid-trace-id-reports-segment-id", "deployments": [], "key": "xray/put-trace-segments-invalid-trace-id-reports-segment-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:GetTraceSegmentDestination", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_put_trace_segments_invalid_trace_id_reports_segment_id.py", "service": "xray"} {"check_id": "xray.put-trace-segments-malformed-partial-failure", "deployments": [], "key": "xray/put-trace-segments-malformed-partial-failure", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_put_trace_segments_malformed_partial_failure.py", "service": "xray"} {"check_id": "xray.put-trace-segments-missing-trace-id-rejected", "deployments": [], "key": "xray/put-trace-segments-missing-trace-id-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_put_trace_segments_missing_trace_id_rejected.py", "service": "xray"} {"check_id": "xray.put-trace-segments-partial-failure-preserves-valid-members", "deployments": [], "key": "xray/put-trace-segments-partial-failure-preserves-valid-members", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_put_trace_segments_partial_failure_preserves_valid_members.py", "service": "xray"} {"check_id": "xray.put-trace-segments-roundtrip", "deployments": [], "key": "xray/put-trace-segments-roundtrip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:PutTraceSegments"], "path": "behavioral/xray/check_put_trace_segments_roundtrip.py", "service": "xray"} {"check_id": "xray.put-trace-segments-unicode-annotation-preserved", "deployments": [], "key": "xray/put-trace-segments-unicode-annotation-preserved", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:GetEncryptionConfig", "xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutEncryptionConfig", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_put_trace_segments_unicode_annotation_preserved.py", "service": "xray"} {"check_id": "xray.put-trace-segments-unicode-annotation-round-trip", "deployments": [], "key": "xray/put-trace-segments-unicode-annotation-round-trip", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:GetEncryptionConfig", "xray:GetTraceSegmentDestination", "xray:PutEncryptionConfig", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_put_trace_segments_unicode_annotation_round_trip.py", "service": "xray"} {"check_id": "xray.resource-policy-lockout-prevention-rejected", "deployments": [], "key": "xray/resource-policy-lockout-prevention-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["sts:GetCallerIdentity", "xray:DeleteResourcePolicy", "xray:ListResourcePolicies", "xray:PutResourcePolicy"], "path": "behavioral/xray/check_resource_policy_lockout_prevention_rejected.py", "service": "xray"} {"check_id": "xray.sampling-reservoir-quota-allocated-from-reported-statistics", "deployments": [], "key": "xray/sampling-reservoir-quota-allocated-from-reported-statistics", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:GetSamplingStatisticSummaries", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_sampling_reservoir_quota_allocated_from_reported_statistics.py", "service": "xray"} {"check_id": "xray.sampling-rule-fixed-rate-out-of-range-rejected", "deployments": [], "key": "xray/sampling-rule-fixed-rate-out-of-range-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_sampling_rule_fixed_rate_out_of_range_rejected.py", "service": "xray"} {"check_id": "xray.sampling-rule-fixed-rate-precision-preserved", "deployments": [], "key": "xray/sampling-rule-fixed-rate-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:TagResource"], "path": "behavioral/xray/check_sampling_rule_fixed_rate_precision_preserved.py", "service": "xray"} {"check_id": "xray.sampling-rule-numeric-precision-preserved", "deployments": [], "key": "xray/sampling-rule-numeric-precision-preserved", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules"], "path": "behavioral/xray/check_sampling_rule_numeric_precision_preserved.py", "service": "xray"} {"check_id": "xray.sampling-rules-priority-ordering-affects-targets", "deployments": [], "key": "xray/sampling-rules-priority-ordering-affects-targets", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_sampling_rules_priority_ordering_affects_targets.py", "service": "xray"} {"check_id": "xray.sampling-targets-ttl-refresh-interval", "deployments": [], "key": "xray/sampling-targets-ttl-refresh-interval", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingTargets"], "path": "behavioral/xray/check_sampling_targets_ttl_refresh_interval.py", "service": "xray"} {"check_id": "xray.segment-start-time-not-trace-id-epoch-determines-query-window", "deployments": [], "key": "xray/segment-start-time-not-trace-id-epoch-determines-query-window", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSummaries", "xray:PutTraceSegments"], "path": "behavioral/xray/check_segment_start_time_not_trace_id_epoch_determines_query_window.py", "service": "xray"} {"check_id": "xray.server-side-put-trace-segments-async-service-graph-population", "deployments": [], "key": "xray/server-side-put-trace-segments-async-service-graph-population", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetServiceGraph", "xray:PutTraceSegments"], "path": "behavioral/xray/check_server_side_put_trace_segments_async_service_graph_population.py", "service": "xray"} {"check_id": "xray.service-and-edge-filter-keywords-select-by-submitted-topology", "deployments": [], "key": "xray/service-and-edge-filter-keywords-select-by-submitted-topology", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_service_and_edge_filter_keywords_select_by_submitted_topology.py", "service": "xray"} {"check_id": "xray.start-trace-retrieval-consistent-token-data-plane", "deployments": [], "key": "xray/start-trace-retrieval-consistent-token-data-plane", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetRetrievedTracesGraph", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_start_trace_retrieval_consistent_token_data_plane.py", "service": "xray"} {"check_id": "xray.start-trace-retrieval-invalid-time-range-rejected", "deployments": [], "key": "xray/start-trace-retrieval-invalid-time-range-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:CancelTraceRetrieval", "xray:ListRetrievedTraces", "xray:StartTraceRetrieval"], "path": "behavioral/xray/check_start_trace_retrieval_invalid_time_range_rejected.py", "service": "xray"} {"check_id": "xray.start-trace-retrieval-lifecycle-transitions", "deployments": [], "key": "xray/start-trace-retrieval-lifecycle-transitions", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:DescribeResourcePolicies", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetRetrievedTracesGraph", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_start_trace_retrieval_lifecycle_transitions.py", "service": "xray"} {"check_id": "xray.start-trace-retrieval-malformed-time-format-fails", "deployments": [], "key": "xray/start-trace-retrieval-malformed-time-format-fails", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:CancelTraceRetrieval", "xray:StartTraceRetrieval"], "path": "behavioral/xray/check_start_trace_retrieval_malformed_time_format_fails.py", "service": "xray"} {"check_id": "xray.start-trace-retrieval-missing-permission-denied", "deployments": [], "key": "xray/start-trace-retrieval-missing-permission-denied", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:GetUserPolicy", "iam:PutUserPolicy", "xray:GetSamplingRules", "xray:StartTraceRetrieval"], "path": "behavioral/xray/check_start_trace_retrieval_missing_permission_denied.py", "service": "xray"} {"check_id": "xray.start-trace-retrieval-results-not-immediately-available", "deployments": [], "key": "xray/start-trace-retrieval-results-not-immediately-available", "labels": ["axis:happy-path", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_start_trace_retrieval_results_not_immediately_available.py", "service": "xray"} {"check_id": "xray.start-trace-retrieval-unknown-destination-not-found", "deployments": [], "key": "xray/start-trace-retrieval-unknown-destination-not-found", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_start_trace_retrieval_unknown_destination_not_found.py", "service": "xray"} {"check_id": "xray.start-trace-retrieval-unknown-trace-ids-rejected", "deployments": [], "key": "xray/start-trace-retrieval-unknown-trace-ids-rejected", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_start_trace_retrieval_unknown_trace_ids_rejected.py", "service": "xray"} {"check_id": "xray.state-machine-trace-retrieval-token-lifecycle", "deployments": [], "key": "xray/state-machine-trace-retrieval-token-lifecycle", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetRetrievedTracesGraph", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_state_machine_trace_retrieval_token_lifecycle.py", "service": "xray"} {"check_id": "xray.tag-resource-and-list", "deployments": [], "key": "xray/tag-resource-and-list", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:ListTagsForResource", "xray:TagResource"], "path": "behavioral/xray/check_tag_resource_and_list.py", "service": "xray"} {"check_id": "xray.tag-resource-unknown-arn-fails", "deployments": [], "key": "xray/tag-resource-unknown-arn-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:ListTagsForResource", "xray:TagResource"], "path": "behavioral/xray/check_tag_resource_unknown_arn_fails.py", "service": "xray"} {"check_id": "xray.telemetry-only-host-absent-from-service-graph", "deployments": [], "key": "xray/telemetry-only-host-absent-from-service-graph", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetServiceGraph", "xray:GetTraceSegmentDestination", "xray:PutTelemetryRecords", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_telemetry_only_host_absent_from_service_graph.py", "service": "xray"} {"check_id": "xray.time-series-service-statistics-counts-the-submitted-trace", "deployments": [], "key": "xray/time-series-service-statistics-counts-the-submitted-trace", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTimeSeriesServiceStatistics", "xray:PutTraceSegments"], "path": "behavioral/xray/check_time_series_service_statistics_counts_the_submitted_trace.py", "service": "xray"} {"check_id": "xray.trace-assembled-from-independently-submitted-out-of-order-segments", "deployments": [], "key": "xray/trace-assembled-from-independently-submitted-out-of-order-segments", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:GetTraceSegmentDestination", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_trace_assembled_from_independently_submitted_out_of_order_segments.py", "service": "xray"} {"check_id": "xray.trace-graph-derives-per-trace-topology-and-rejects-unknown-trace-id", "deployments": [], "key": "xray/trace-graph-derives-per-trace-topology-and-rejects-unknown-trace-id", "labels": ["axis:rejection", "dp:api", "plane:data"], "operations": ["xray:BatchGetTraces", "xray:GetTraceGraph", "xray:PutTraceSegments"], "path": "behavioral/xray/check_trace_graph_derives_per_trace_topology_and_rejects_unknown_trace_id.py", "service": "xray"} {"check_id": "xray.trace-retrieval-lifecycle-status-transitions", "deployments": [], "key": "xray/trace-retrieval-lifecycle-status-transitions", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_trace_retrieval_lifecycle_status_transitions.py", "service": "xray"} {"check_id": "xray.trace-segment-destination-cloudwatch-logs-delivery-enforced", "deployments": [], "key": "xray/trace-segment-destination-cloudwatch-logs-delivery-enforced", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:FilterLogEvents", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:GetTraceSegmentDestination", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_trace_segment_destination_cloudwatch_logs_delivery_enforced.py", "service": "xray"} {"check_id": "xray.trace-summaries-ordered-by-time", "deployments": [], "key": "xray/trace-summaries-ordered-by-time", "labels": ["axis:happy-path", "dp:api", "plane:data"], "operations": ["xray:GetTraceSegmentDestination", "xray:GetTraceSummaries", "xray:PutTraceSegments", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_trace_summaries_ordered_by_time.py", "service": "xray"} {"check_id": "xray.untag-resource-removes-tag", "deployments": [], "key": "xray/untag-resource-removes-tag", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:ListTagsForResource", "xray:TagResource", "xray:UntagResource"], "path": "behavioral/xray/check_untag_resource_removes_tag.py", "service": "xray"} {"check_id": "xray.update-group-conflicting-name-rejected", "deployments": [], "key": "xray/update-group-conflicting-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:UpdateGroup"], "path": "behavioral/xray/check_update_group_conflicting_name_rejected.py", "service": "xray"} {"check_id": "xray.update-group-filter-expression-persists", "deployments": [], "key": "xray/update-group-filter-expression-persists", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetGroups", "xray:UpdateGroup"], "path": "behavioral/xray/check_update_group_filter_expression_persists.py", "service": "xray"} {"check_id": "xray.update-group-invalid-filter-expression-preserves-prior", "deployments": [], "key": "xray/update-group-invalid-filter-expression-preserves-prior", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateGroup", "xray:DeleteGroup", "xray:GetGroup", "xray:GetGroups", "xray:UpdateGroup"], "path": "behavioral/xray/check_update_group_invalid_filter_expression_preserves_prior.py", "service": "xray"} {"check_id": "xray.update-indexing-rule-roundtrip", "deployments": [], "key": "xray/update-indexing-rule-roundtrip", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:GetIndexingRules", "xray:UpdateIndexingRule"], "path": "behavioral/xray/check_update_indexing_rule_roundtrip.py", "service": "xray"} {"check_id": "xray.update-sampling-rule-fields", "deployments": [], "key": "xray/update-sampling-rule-fields", "labels": ["axis:happy-path", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:UpdateSamplingRule"], "path": "behavioral/xray/check_update_sampling_rule_fields.py", "service": "xray"} {"check_id": "xray.update-sampling-rule-negative-priority-rejected", "deployments": [], "key": "xray/update-sampling-rule-negative-priority-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:UpdateSamplingRule"], "path": "behavioral/xray/check_update_sampling_rule_negative_priority_rejected.py", "service": "xray"} {"check_id": "xray.update-sampling-rule-nonexistent-name-rejected", "deployments": [], "key": "xray/update-sampling-rule-nonexistent-name-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:UpdateSamplingRule"], "path": "behavioral/xray/check_update_sampling_rule_nonexistent_name_rejected.py", "service": "xray"} {"check_id": "xray.update-sampling-rule-nonexistent-rejected", "deployments": [], "key": "xray/update-sampling-rule-nonexistent-rejected", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:CreateSamplingRule", "xray:DeleteSamplingRule", "xray:GetSamplingRules", "xray:UpdateSamplingRule"], "path": "behavioral/xray/check_update_sampling_rule_nonexistent_rejected.py", "service": "xray"} {"check_id": "xray.update-trace-segment-destination-invalid-value-fails", "deployments": [], "key": "xray/update-trace-segment-destination-invalid-value-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_update_trace_segment_destination_invalid_value_fails.py", "service": "xray"} {"check_id": "xray.update-trace-segment-destination-without-logs-policy-fails", "deployments": [], "key": "xray/update-trace-segment-destination-without-logs-policy-fails", "labels": ["axis:rejection", "plane:control"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:GetTraceSegmentDestination", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_update_trace_segment_destination_without_logs_policy_fails.py", "service": "xray"} {"check_id": "xray.visibility-trace-retrieval-processing-window", "deployments": [], "key": "xray/visibility-trace-retrieval-processing-window", "labels": ["axis:negative-delivery", "dp:api", "plane:data"], "operations": ["logs:DeleteResourcePolicy", "logs:PutResourcePolicy", "sts:GetCallerIdentity", "xray:CancelTraceRetrieval", "xray:GetTraceSegmentDestination", "xray:ListRetrievedTraces", "xray:PutTraceSegments", "xray:StartTraceRetrieval", "xray:UpdateTraceSegmentDestination"], "path": "behavioral/xray/check_visibility_trace_retrieval_processing_window.py", "service": "xray"}